MODULE:
`timescale 1ns / 1ps
module count4(out,reset,clk);
output [3:0] out;
input reset;
input clk;
reg [3:0] out;
initial
begin
out=4'd0;
end
always @ (posedge clk)
begin
if( reset==1'd0 )
out=4'd0;
else
out=out+4'd1;
end
endmodule
FIXTURE:
module test_fixture;
// Inputs
reg reset;
reg clk;
// Outputs
wire [3:0] out;
// Instantiate the Unit Under Test (UUT)
count4 uut (
.out(out),
.reset(reset),
.clk(clk)
);
initial
begin
// Initialize Inputs
reset = 0;
clk = 0;
// Wait 100 ns for global reset to finish
#120 reset =1'd1;
// Add stimulus here
end
always #50 clk=~clk;
endmodule
KEY POINT:
1. initial: how to use.
2. always: delay # using.
SYMBOL:
WAVEFORM: