diff options
| author | uvok | 2025-12-26 13:33:40 +0100 |
|---|---|---|
| committer | uvok | 2025-12-26 13:33:40 +0100 |
| commit | 35210703cb1fbd3d45365b22f425cc84ea630c90 (patch) | |
| tree | a9af058734bcfd7909c8979c096eddf382bf02a6 | |
| parent | 71ec72d7c63a7739fb760c2bdf1df86c0c2561aa (diff) | |
prepare debouncer
| -rw-r--r-- | debounce.tb.v | 58 | ||||
| -rw-r--r-- | debounce.v | 15 |
2 files changed, 73 insertions, 0 deletions
diff --git a/debounce.tb.v b/debounce.tb.v new file mode 100644 index 0000000..36f3a27 --- /dev/null +++ b/debounce.tb.v @@ -0,0 +1,58 @@ +`timescale 1us/1ns + +module debounce_tb ( +); + +reg rst_i; +reg clk_i; +reg signal_i; +wire signal_o; + +integer i = 0; + +debounce uut( + .rst_i(rst_i), + .clk_i(clk_i), + .signal_i(signal_i), + .signal_o(signal_o) +); + +initial begin + $dumpfile("debounce.lxt2"); $dumpvars(); + + clk_i <= 0; + rst_i <= 1'b1; + signal_i <= 1'b1; + #4 + rst_i <= 1'b0; + #4 + rst_i <= 1'b1; +end + +always #10 clk_i = ~clk_i; + +initial begin + // initial key press + #25 + signal_i <= ~signal_i; + #40 + signal_i <= ~signal_i; + + // try bouncing + + #50 + + for (i=0; i < 20; i = i + 1) begin + #20 + signal_i <= ~signal_i; + end + #20 + signal_i <= ~signal_i; + #500 + signal_i <= ~signal_i; + + #105 + $finish(); +end + +endmodule diff --git a/debounce.v b/debounce.v new file mode 100644 index 0000000..efeb845 --- /dev/null +++ b/debounce.v @@ -0,0 +1,15 @@ +module debounce ( + input rst_i, + input clk_i, + input signal_i, + output reg signal_o +); + +always @(posedge clk_i or negedge rst_i) begin + if (!rst_i) begin + + end + signal_o <= signal_i; +end + +endmodule |
