`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