`timescale 1ns / 1ps //////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 11:25:16 03/16/06 // Design Name: // Module Name: debouncer // Project Name: // Target Device: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // //////////////////////////////////////////////////////////////////////////////// module debouncer(signal_in, signal_out, clock); input signal_in; output signal_out; input clock; reg [0:15] counter; reg signal_out; always@(posedge signal_in or posedge clock) if(signal_in) counter <= 0; else if(~&counter) counter <= counter + 1; always@(posedge clock) signal_out <= ~&counter; endmodule