summaryrefslogtreecommitdiff
path: root/rtl/debounce.sv
blob: 919588ad671df066d033dc00adb0bf8b68dfb761 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module debounce
(
	input  logic clk,
	             dirty,
	output logic clean
);

	logic last;

	// 168ms para reloj de 50MHz
	logic[22: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