`timescale 1 ns/1 ns module LaserTimer_TB(); reg Rst_s, Clk_s, B_s; wire X_s; LaserTimer X1(B_s, X_s, Clk_s, Rst_s); // Clock Procedure always begin Clk_s <= 0; #10; Clk_s <= 1; #10; end // Vector Procedure initial begin Rst_s <= 1; // don't forget to start with reset high, this // sets the FSM's initial state B_s <= 0; // also good to initialize inputs @(posedge Clk_s); #5 if (X_s != 0) $display("%t: Reset failed", $time); Rst_s <= 0; // if reset stays high FSM remainis in initial state @(posedge Clk_s); #5 B_s <= 1; @(posedge Clk_s); #5 B_s <= 0; if (X_s != 1) $display("%t: First X=1 failed", $time); @(posedge Clk_s); #5 if (X_s != 1) $display("%t: Second X=1 failed", $time); @(posedge Clk_s); #5 if (X_s != 1) $display("%t: Third X=1 failed", $time); @(posedge Clk_s); #5 if (X_s != 0) $display("%t: Final X=0 failed", $time); end endmodule