`timescale 1ns / 1ps
module blinky_tb;

reg clk = 1'b0, rst = 1'b0;
reg [7:0] ctr_gold = 8'h00;
wire [7:0] ctr_gate;
top dut_i(.clk(clk), .rst(rst), .leds(ctr_gate));

task oneclk;
	begin
		clk = 1'b1;
		#10;
		clk = 1'b0;
		#10;
	end
endtask

initial begin
	$dumpfile("blinky_simtest.vcd");
	$dumpvars(0, blinky_tb);
	#100;
	rst = 1'b1;
	repeat (5) oneclk;
	#5
	rst = 1'b0;
	#5
	repeat (500) begin
		if (ctr_gold !== ctr_gate) begin
			$display("mismatch gold=%b gate=%b", ctr_gold, ctr_gate);
			$stop;
		end
		oneclk;
		ctr_gold = ctr_gold + 1'b1;
	end
	$finish;
end

endmodule