【FPGA】三段式状态机按键消抖

本文介绍了使用FPGA实现按键消抖的三段式状态机设计,包括状态机分析、设计步骤及编码。通过状态机消除按键抖动,确保LED灯按二进制顺序稳定亮起。详细讲解了状态编码、状态切换逻辑以及顶层模块的编写,最终通过仿真验证了设计的正确性。
摘要由CSDN通过智能技术生成


状态机

状态机分类:

Moore型状态机:
状态机的变化只与当前的状态有关

Mearly型状态机:
状态机的变化不仅与当前的状态有关,还与输入有关

状态机编写方法:

一段式:
主要是讲所有的状态变化以及导致的输出变化都写在了一个always块中。

两段式:
将一些复位信号,clk信号单独写在一个always块中,其他的状态变化,输出值得变化写在一个always块中。

三段式:
将一些复位信号,clk信号单独写在一个always块中,其他的状态迁移变化写在一个always块中,对应状态的输出值得变化写在一个always块中


一、题目分析

本次设计需要用到状态机进行按键消抖的编写,同时使用按键控制led灯实现每按下一次按键使led灯以二进制顺序亮起,按键消抖的原理图如下:
在这里插入图片描述

原理图说明:

前沿抖动与后沿抖动持续时间均约为5-10ms,键稳定状态持续时间约为20ms-40ms

二、设计分析

当前沿抖动时将高低电平切换的状态分为高低电平两个状态两个状态来回切换,当按键稳定时进入下一个状态并将标志信号拉高一个时钟周期,当按键长时间保持时标志信号并不一直保持高电平状态,所以在按键松开时重新回到空闲状态。

三、状态图

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值