按键作为一种机械开关,在进行按键操作时,机械接触点的弹性及电压突变等原因,在机械开关合闭的时候会出现电压抖动,因此在实际的应用当中需要做一定的处理。
一般按键按下就是低电压,这种按键去抖动的关键就是获取稳定的低电压电平状态,因此,对于对于一个按键信号,可以用一个脉冲信号对其进行采样,如果连续三次采样都为低电平的话,就认为是按键被按下。其数字电路原型为下图

其实,我们在做FPGA设计之前,就应该大概知道自己的coding 在FPGA芯片上面会映射成什么电路,这样写的代码才是可靠的,有了上面的原理图,那么Verilog代码就很容易了,如下
input wire Clk ;
input wire key_in ;
output wire key_out ;
reg key_dly1;
reg key_dly2;
reg key_dly3;
always @(posedge Clk)
begin
if(Rst_n == 1'b0) begin
key_dly1 <= 1'b0; key_dly2 <= 1'b0; key_dly3 <= 1'b0; end
else
begin
key_dly1 <= key_in ;
key_dly2 <= key_dly1;
key_dly3 <= key_dly2;
end
end
assign key_out = key_dly1 | key_dly2 | key_dly3;
对于复杂的电路我们也可以把他分解为每一个触发器,然后心里有个大概的硬件原理图,这样写代码才胸有成竹。
审核编辑:刘清
-
FPGA设计
+关注
关注
9文章
429浏览量
28005 -
触发器
+关注
关注
14文章
2051浏览量
63043 -
FPGA芯片
+关注
关注
3文章
250浏览量
40858
原文标题:按键抖动消除 verilog
文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
关于按键抖动问题的解决
消除按键抖动的两种方法分享
如何通过软件编程实现消除键盘的抖动
运用外部中断函数消除按键抖动
按键弹跳消除模块的程序设计与应用
外部中断的按键抖动(按键消抖)
单片机按键去抖动的方法

按键抖动消除verilog设计
评论