0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

按键抖动消除verilog设计

FPGA之家 来源:FPGA之家 2023-04-27 09:55 次阅读

按键作为一种机械开关,在进行按键操作时,机械接触点的弹性及电压突变等原因,在机械开关合闭的时候会出现电压抖动,因此在实际的应用当中需要做一定的处理。

一般按键按下就是低电压,这种按键去抖动的关键就是获取稳定的低电压电平状态,因此,对于对于一个按键信号,可以用一个脉冲信号对其进行采样,如果连续三次采样都为低电平的话,就认为是按键被按下。其数字电路原型为下图

acc2c9de-e455-11ed-ab56-dac502259ad0.png

其实,我们在做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

    文章

    428

    浏览量

    26502
  • 触发器
    +关注

    关注

    14

    文章

    2000

    浏览量

    61124
  • FPGA芯片
    +关注

    关注

    3

    文章

    246

    浏览量

    39792

原文标题:按键抖动消除 verilog

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    verilog写cpld的程序如何消除按键抖动

    verilog写cpld的程序如何消除按键抖动
    发表于 04-02 09:22

    关于按键抖动问题的解决

    电路图如下,,左侧按钮按下后给74LS192提供脉冲信号,但实物焊接时却存在按下一次按钮,192多次计数。是因为选用的按钮存在按键抖动,按下一次按钮会提供多个脉冲信号,让192多次计数吗?如果是,有什么办法能消除这种
    发表于 06-25 02:31

    消除按键抖动的两种方法分享

      按键也是机械装置,在按下或放开的一瞬间会产生抖动,如下图:    消除方法有两种:  软件除抖和硬件除抖,其中硬件除抖是应用了电容对高频信号短路的原理。  软件除抖是检测出键闭合后执行一个延时
    发表于 09-02 17:52

    如何通过软件编程实现消除键盘的抖动

    如何通过软件编程实现消除键盘的抖动?记文本答:由于按键是机械开关结构,所以当用手按下其中-一个键时,往往会出现所按键在闭合位置和断开位置之间发生跳几下后才会稳定到闭合状态的情况。在释放
    发表于 07-22 08:24

    单片机如何消除按键抖动

    单片机如何消除按键抖动
    发表于 10-21 09:29

    如何消除按键抖动的影响

    ,从而引起误处理。因此,为了确保单片机对一次按键动作只作—次响应,就必须考虑如何消除按键抖动的影响。按键读取识
    发表于 01-17 07:46

    运用外部中断函数消除按键抖动

    目的实现:按键数码管数字加减,运用外部中断函数,消除按键抖动***仿真c代码#includecode unsigned char SEG[]={0XC0
    发表于 03-02 06:31

    按键消抖的原理和基于verilog的消抖设计

    按键开关是各种电子设备不可或缺的人机接口。在实际应用中,很大一部分的按键是机械按键。在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统
    发表于 02-11 01:14 2.3w次阅读
    <b class='flag-5'>按键</b>消抖的原理和基于<b class='flag-5'>verilog</b>的消抖设计

    按键弹跳消除模块的程序设计与应用

    按键开关是电子设备人机交互的主要器件之一。按键大多是机械式开关结构,由于机械式开关的核心部件为弹性金属簧片,因而在开关切换的瞬间会在接触点出现来回弹跳的现象。对于灵敏度比较高的电路,这种弹跳现象引起的信号抖动会造成误动作而影响到
    的头像 发表于 01-07 08:45 2739次阅读
    <b class='flag-5'>按键</b>弹跳<b class='flag-5'>消除</b>模块的程序设计与应用

    外部中断的按键抖动按键消抖)

    当我们写完一个外部中断程序测试时,例如按键计数和按键点亮led灯,我们可能会遇到一次按键按下松开却触发了多次外部中断,这是因为按键抖动的存在
    发表于 11-22 15:36 27次下载
    外部中断的<b class='flag-5'>按键</b><b class='flag-5'>抖动</b>(<b class='flag-5'>按键</b>消抖)

    STM32F407 按键抖动 延时消抖

    ,从而引起误处理。因此,为了确保单片机对一次按键动作只作—次响应,就必须考虑如何消除按键抖动的影响。按键读取识
    发表于 01-18 10:30 4次下载
    STM32F407 <b class='flag-5'>按键</b><b class='flag-5'>抖动</b> 延时消抖

    开关抖动消除设计

    当按下和释放微动按键时,会由短时间的抖动现象才会到达想要的状态。
    的头像 发表于 12-26 16:25 2908次阅读

    单片机按键抖动的方法

    在使用按键时,我们想按一次按键,但在实际中却经常发现我们要的”一次“,实际上去并不是”一次“而可能是多次。为什么呢?这是因为,我们使用的机械按键,在我们按下时,并非只是接触一次,因为存在机械
    的头像 发表于 11-02 15:16 5327次阅读
    单片机<b class='flag-5'>按键</b>去<b class='flag-5'>抖动</b>的方法

    rs触发器消除按键抖动的原因

    按键抖动是指由于按键接点的不完美接触而导致的按键信号在短时间内多次跳变的现象。在电子设备的设计与制造中,消除
    的头像 发表于 11-17 15:53 2106次阅读

    FPGA如何消除时钟抖动

    在FPGA(现场可编程门阵列)设计中,消除时钟抖动是一个关键任务,因为时钟抖动会直接影响系统的时序性能、稳定性和可靠性。以下将详细阐述FPGA中消除时钟
    的头像 发表于 08-19 17:58 1234次阅读