summaryrefslogtreecommitdiff
path: root/led_toggle.tb.v
diff options
context:
space:
mode:
authoruvok2025-12-26 15:12:58 +0100
committeruvok2025-12-26 15:12:58 +0100
commite1c081bd2089b87808c592e3dabc4ac464b2a57c (patch)
tree41c5d4fb2e94ae4514b4b0e560eece7e16a1bb58 /led_toggle.tb.v
parenta36697cf98292e28e82870f0b2fdaa4243021671 (diff)
Add working toggle implementation
Diffstat (limited to 'led_toggle.tb.v')
-rw-r--r--led_toggle.tb.v55
1 files changed, 55 insertions, 0 deletions
diff --git a/led_toggle.tb.v b/led_toggle.tb.v
new file mode 100644
index 0000000..f6c6dad
--- /dev/null
+++ b/led_toggle.tb.v
@@ -0,0 +1,55 @@
+`timescale 1us/1ns
+
+module led_toggle_tb (
+);
+
+reg clk_i;
+reg rst_i;
+reg key_i;
+wire [5:0] led;
+integer i = 0;
+
+led_toggle uut(
+ .rst_i(rst_i),
+ .clk_i(clk_i),
+ .key_i(key_i),
+ .led(led)
+);
+defparam uut.STABLE_PERIOD = 2;
+
+initial begin
+ $dumpfile("led_toggle.lxt2"); $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
+ #25
+ key_i <= ~key_i;
+ #40
+ key_i <= ~key_i;
+
+ // try bouncing
+
+ #50
+
+ for (i=0; i < 19; i = i + 1) begin
+ #20
+ key_i <= ~key_i;
+ end
+ #200
+ key_i <= ~key_i;
+
+ #205
+ $finish();
+end
+
+endmodule