39 lines
581 B
Coq
39 lines
581 B
Coq
![]() |
`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
|