mirror of https://github.com/YosysHQ/yosys.git
58 lines
1004 B
Verilog
58 lines
1004 B
Verilog
module testbench;
|
|
reg clk;
|
|
|
|
initial begin
|
|
// $dumpfile("testbench.vcd");
|
|
// $dumpvars(0, testbench);
|
|
|
|
#5 clk = 0;
|
|
repeat (10000) begin
|
|
#5 clk = 1;
|
|
#5 clk = 0;
|
|
end
|
|
end
|
|
|
|
|
|
reg [2:0] dinA = 0;
|
|
wire doutB,doutB1,doutB2;
|
|
reg lat,latn,latsr = 0;
|
|
|
|
top uut (
|
|
.clk (clk ),
|
|
.a (dinA[0] ),
|
|
.pre (dinA[1] ),
|
|
.clr (dinA[2] ),
|
|
.b (doutB ),
|
|
.b1 (doutB1 ),
|
|
.b2 (doutB2 )
|
|
);
|
|
|
|
always @(posedge clk) begin
|
|
#3;
|
|
dinA <= dinA + 1;
|
|
end
|
|
|
|
always @*
|
|
if ( clk )
|
|
lat <= dinA[0];
|
|
|
|
|
|
always @*
|
|
if ( !clk )
|
|
latn <= dinA[0];
|
|
|
|
|
|
always @*
|
|
if ( dinA[2] )
|
|
latsr <= 1'b0;
|
|
else if ( dinA[1] )
|
|
latsr <= 1'b1;
|
|
else if ( clk )
|
|
latsr <= dinA[0];
|
|
|
|
assert_dff lat_test(.clk(clk), .test(doutB), .pat(lat));
|
|
assert_dff latn_test(.clk(clk), .test(doutB1), .pat(latn));
|
|
assert_dff latsr_test(.clk(clk), .test(doutB2), .pat(latsr));
|
|
|
|
endmodule
|