summaryrefslogtreecommitdiff
path: root/rtl/debounce.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2022-11-10 20:16:05 -0600
committerAlejandro Soto <alejandro@34project.org>2022-11-13 05:54:44 -0600
commit7d171c1e3ae6dab855ee264e7926281c3a4d25ca (patch)
treea76910c97fcebc9cbbd39994ae7ca50bfad13346 /rtl/debounce.sv
parentfb572d6cfb54ce212d2f43de00cb2702f0f433ce (diff)
Add reset debounce
Diffstat (limited to 'rtl/debounce.sv')
-rw-r--r--rtl/debounce.sv25
1 files changed, 25 insertions, 0 deletions
diff --git a/rtl/debounce.sv b/rtl/debounce.sv
new file mode 100644
index 0000000..dff9e9e
--- /dev/null
+++ b/rtl/debounce.sv
@@ -0,0 +1,25 @@
+module debounce
+(
+ input logic clk,
+ dirty,
+ output logic clean
+);
+
+ logic last;
+ logic[15:0] clean_for;
+
+ always @(posedge clk) begin
+ last <= dirty;
+ clean_for <= last == dirty ? clean_for + 1 : 0;
+
+ if(&clean_for)
+ clean <= last;
+ end
+
+ initial begin
+ last = 0;
+ clean = 0;
+ clean_for = 0;
+ end
+
+endmodule