`timescale 1us/1us module led_toggle_tb ( ); logic clk_i; logic rst_i; logic key_i; logic [5:0] led; led_toggle #(.STABLE_PERIOD(2)) uut ( .rst_i(rst_i), .clk_i(clk_i), .key_i(key_i), .led(led) ); string filename; initial begin `ifdef DUMP_FILE_NAME filename=`DUMP_FILE_NAME; `else filename="led_toggle.lxt2"; `endif $dumpfile(filename); $dumpvars(); clk_i = 0; key_i = 1'b1; #1 rst_i = 0; #1 rst_i = 1; end always #10 clk_i = ~clk_i; initial begin // initial key press #13 key_i = ~key_i; repeat(2) @(negedge clk_i); key_i = ~key_i; // try bouncing repeat(3) @(negedge clk_i); for (integer i=0; i < 19; i = i + 1) begin @(negedge clk_i); key_i = ~key_i; end repeat(10) @(negedge clk_i); key_i = ~key_i; repeat(10) @(negedge clk_i); $finish(); end endmodule