aboutsummaryrefslogtreecommitdiffstats
path: root/generic/examples/blinky_tb.v
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-11-27 15:17:53 +0000
committerDavid Shah <dave@ds0.me>2019-11-27 15:17:53 +0000
commit2f56b989598def4682b29ccfe3bbe6f540e4e12a (patch)
treef6b1878164c1341511b69872bdabd32ed2ccf8f0 /generic/examples/blinky_tb.v
parent6562edc98e212516f466a70e949c71b2d48cc75d (diff)
downloadnextpnr-2f56b989598def4682b29ccfe3bbe6f540e4e12a.tar.gz
nextpnr-2f56b989598def4682b29ccfe3bbe6f540e4e12a.tar.bz2
nextpnr-2f56b989598def4682b29ccfe3bbe6f540e4e12a.zip
generic: Add support for post-PnR simulation
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'generic/examples/blinky_tb.v')
-rw-r--r--generic/examples/blinky_tb.v38
1 files changed, 38 insertions, 0 deletions
diff --git a/generic/examples/blinky_tb.v b/generic/examples/blinky_tb.v
new file mode 100644
index 00000000..f9925e6f
--- /dev/null
+++ b/generic/examples/blinky_tb.v
@@ -0,0 +1,38 @@
+`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