module testbench; reg clk; initial begin // $dumpfile("testbench.vcd"); // $dumpvars(0, testbench); #0 clk = 0; repeat (10000) begin #5 clk = 1; #5 clk = 0; end $display("OKAY"); end reg [1:0] a = 0; reg rst = 0; top uut ( .x(x), .clk(clk), .rst(rst), .a(a) ); always @(posedge clk) begin a <= a + 1; end always @(posedge clk) begin #2; rst <= !rst; end uut_checker q_test(.clk(clk), .en(rst), .A(x)); endmodule module uut_checker(input clk, input en, input A); always @(posedge clk) begin #1; if (en == 1 & A === 1'bz) begin $display("ERROR: ASSERTION FAILED in %m:",$time," ",A); $stop; end end endmodule