diff options
| author | uvok | 2025-12-30 10:21:27 +0100 |
|---|---|---|
| committer | uvok | 2025-12-30 10:21:27 +0100 |
| commit | d0a372c3112b28ff3b1bf03ff4a7a0e5a3cafe8e (patch) | |
| tree | 633ac83187da0a244d081e124d4cfba5c2b712c1 /debounce_tb.v | |
| parent | 613e0e72128d7745ab084f2f703984e154c75d67 (diff) | |
linting, use different naming
use _tb.v instead of .tb.v,
to stop verilator from shouting
the module name doesn't
match
Diffstat (limited to 'debounce_tb.v')
| -rw-r--r-- | debounce_tb.v | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/debounce_tb.v b/debounce_tb.v new file mode 100644 index 0000000..a7017c7 --- /dev/null +++ b/debounce_tb.v @@ -0,0 +1,77 @@ +`timescale 1us/1us + +module debounce_tb ( +); + +logic rst_i; +logic clk_i; +logic signal_i; +logic signal_o; + +integer i = 0; + +debounce #(.STABLE_PERIOD(5)) uut ( + .rst_i(rst_i), + .clk_i(clk_i), + .signal_i(signal_i), + .signal_o(signal_o) +); + +string filename; +initial begin +`ifdef DUMP_FILE_NAME + filename=`DUMP_FILE_NAME; +`else + filename="debounce.lxt2"; +`endif + $dumpfile(filename); $dumpvars(); + + clk_i = 0; + rst_i = 1'b1; + signal_i = 1'b1; + #1 + rst_i = 1'b0; + #1 + rst_i = 1'b1; +end + +always #10 clk_i = ~clk_i; + +initial begin + // initial key press + @(negedge clk_i); + signal_i = ~signal_i; + assert (signal_o == 1'b1); + + repeat(2) @(negedge clk_i); + + signal_i = ~signal_i; + assert (signal_o == 1'b1); + + // try bouncing + + repeat(2) @(negedge clk_i); + + for (i=0; i < 20; i = i + 1) begin + @(negedge clk_i); + signal_i = ~signal_i; + assert (signal_o == 1'b1); + end + @(negedge clk_i); + signal_i = ~signal_i; + assert (signal_o == 1'b1); + + repeat(10) @(negedge clk_i); + assert (signal_o == 1'b0); + + repeat(10) @(negedge clk_i); + signal_i = ~signal_i; + + repeat(10) @(negedge clk_i); + assert (signal_o == 1'b1); + + repeat(10) @(negedge clk_i); + $finish(); +end + +endmodule |
