原创 简单实用的按键去抖Verilog实现

2010-7-2 16:14 6049 5 6 分类: FPGA/CPLD

和单片机用软件实现消抖是一样的原理,这里有一个采样时钟,对按键输入信号进行采样,用两个计数器对高低信号持续时间进行计时,当达到阈值时,就认为信号稳定,输出稳定的信号。


一下是代码,为了方便仿真时间,设定采样持续时间为4个时钟周期。


module key_fangdou(clk,key_in,key_out);
parameter SAMPLE_TIME = 4;
input clk;
input key_in;
output key_out;


reg [21:0] count_low;
reg [21:0] count_high;


reg key_out_reg;


always @(posedge clk)
 if(key_in ==1'b0)
  count_low <= count_low + 1;
 else
  count_low <= 0;


always @(posedge clk)
 if(key_in ==1'b1)
  count_high <= count_high + 1;
 else
  count_high <= 0;
  
always @(posedge clk)
 if(count_high == SAMPLE_TIME)
  key_out_reg <= 1;
 else if(count_low == SAMPLE_TIME)
  key_out_reg <= 0;


assign key_out = key_out_reg;
endmodule
点击看大图


从波形中可以看出,短时间的抖动对输出没有影响,key_out比key_in延时4个时钟周期输出。

文章评论1条评论)

登录后参与讨论

用户3809271 2016-6-18 17:46

相关推荐阅读
用户180508 2011-08-08 22:29
运算放大器指标
1.输入失调电压VIO(input offset voltage) :输入电压为零时,将输出电压除以电压增益,再加上负号,即为折算到输入端的失调电压。亦即使输出电压为零时在输入端所加的补偿电压。VIO...
用户180508 2011-02-18 22:21
UDE(u盘超级加密2008)失效解决
UDE伪装成唐诗三百首的加密软件,在忘记密码资料还没有丢失,操作系统改变时加密文件没有显示在加密区内。此时文件也没有丢失。 采用R-Studio(注册后)可以探测到隐藏的文件,并恢复。 本人遇到的隐藏...
用户180508 2011-02-01 12:35
Altea公司FPGA开发软件安装指南与注意
Quartus II安装点击Setup,和安装其他应用程序一样。可以根据自己的需要决定安装的大小。比如可以选择是否安装某种型号的器件 QuartusII8.0 破解补丁1将sys_cpt.dll覆盖掉...
用户180508 2011-02-01 12:02
Altea公司FPGA开发软件安装指南与注意
Quartus II安装点击Setup,和安装其他应用程序一样。可以根据自己的需要决定安装的大小。比如可以选择是否安装某种型号的器件QuartusII8.0 破解补丁1将sys_cpt.dll覆盖掉安...
用户180508 2011-02-01 12:01
Altea公司FPGA开发软件安装指南与注意
Quartus II安装点击Setup,和安装其他应用程序一样。可以根据自己的需要决定安装的大小。比如可以选择是否安装某种型号的器件QuartusII8.0 破解补丁1将sys_cpt.dll覆盖掉安...
用户180508 2010-12-30 10:18
VC安装错误解决
安装VC++6.0时候总是说我的安装程序无法创建一个DCOM用户来注册? 右击我的电脑-》管理-》本地用户和组-》用户-》删除VSA Sever Account项 再安装,成功!...
我要评论
1
5
关闭 站长推荐上一条 /2 下一条