`timescale 1ns/1ps module tb_blink; reg clk; wire led; blink DUT( .clk(clk), .led(led) ); // Clock generator (50 MHz) always #10 clk = ~clk; // Self checking logic integer error_count = 0; reg led_prev; initial begin clk = 0; led_prev = 0; #100000; // simulate time if(error_count == 0) $display("SELF CHECK PASSED"); else $display("SELF CHECK FAILED, errors = %d", error_count); $stop; end // Check LED toggle behavior always @(posedge clk) begin #1; if(led == led_prev) error_count = error_count + 1; led_prev = led; end endmodule