`default_nettype none module top; reg clock, clear; reg a; wire x; FSM dut( .clock(clock), .clear(clear), .a(a), .x(x) ); initial begin clock = 1; forever #5 clock = ~clock; end initial begin $monitor($time, " a: %b x: %b state: %h", a, x, dut.currentState); clear = 1'b1; a = 1'b0; repeat(3) @(posedge clock); clear = 1'b0; a = 1'b1; repeat(5) @(posedge clock); a = 1'b0; repeat(5) @(posedge clock); a = 1'b1; @(posedge clock); a = 1'b0; @(posedge clock); a = 1'b1; @(posedge clock); a = 1'b1; @(posedge clock); a = 1'b0; @(posedge clock); $finish; end endmodule