`timescale 1 ns / 1 ns module shift_reg_var_tb(); parameter Td2 = 5; reg clk, d; wire q1, q2; initial begin clk = 1'b0; @(negedge clk); repeat (2) begin d <= 1; repeat (6) @(negedge clk); d <= 0; repeat (6) @(negedge clk); end end always @ (negedge clk) begin if (q1 !== q2) $display("%t : in %m q1 and q2 differ! q1=%b, q2=%b", $time, q1, q2); end always # Td2 clk = ~clk; shift_reg_var dut1(.clk(clk), .d(d), .q(q1)); shift_reg_var_ok dut2(.clk(clk), .d(d), .q(q2)); endmodule