Vortragsprogramm/2011/Aufbau und Nutzung von FPGAs/entprellen

Aus LaborWiki
Version vom 10. Juni 2011, 01:16 Uhr von Sauron (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Dieses Modul entprellt eine Taste `timescale 1ns / 1ps module debounce(clk, in, out); input clk; input in; output reg out; reg signed [5…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Dieses Modul entprellt eine Taste

`timescale 1ns / 1ps

module debounce(clk, in, out);
    input clk;
    input in;
    output reg out;
 
  reg signed [5:0]counter = 0;
  reg in2;
  
 always @ (posedge clk) begin
 
 if (in2 == 1) begin
	if (counter != 6) 
		counter <= counter + 1;
		end
 else 
	if (counter != 0)
		counter <= counter - 1;

	if (counter == 6)
		out <= 1;
	else
		if (counter == 0)
		 out <= 0;
end

always @ (posedge clk)
 in2 <= in;

endmodule