module Key_syn
{//in
clk,
rst,
key_press,
//out
key_out
}
//==========================================================================
//Input and output declaration
//==========================================================================
input clk;
input rst;
input key_press;
output key_out;
//==========================================================================
//Wire and reg declaration
//==========================================================================
reg[2:0] syn_key1_reg;
reg[15:0] cnt;
//==========================================================================
always@(posedge clk)// 50M
syn_key1_reg <= {syn_key1_reg[1:0],key1};
always@(posedge clk)
if(rst)
cnt <= 0;
else if(syn_key1_reg[2:1] = 2'b10)
cnt <= 50000;
else if(if(cnt > 0 ) ) //增加个判断,防止空跑
cnt <= cnt - 1;
always@(cnt,syn_key1_reg)
if((cnt == 1) && (syn_key1_reg[1] == 1'b0))
key_out = 1'b1;
else
key_out = 1'b0;
endmodule |