基于FPGA的按键消抖你真的设计正确了吗?
时间:09-12 11:58 阅读:890次
*温馨提示:点击图片可以放大观看高清大图
简介:其实这个代码本来不想发的,因为一说按键消抖,FPGA入门的第一个设计就是它。
然而......
翻开百度结果却很难找到正确的程序。
通常设计思想是酱紫的
1,采集key_in 进入key_reg 寄存器1
2,延时DELAY_TIME后,再采集的数据进入寄存器2
3,如果寄存器1和寄存器2数据相等 —— 同为1或者0 。
4,证明稳定,输出。
网络上某金以及某权的代码都是写了很长,很长。用了很多的reg,最终还是这么设计的 。
他们的代码太长,手机看着累,就省略了吧。
而实际的设计思路是这样子的:
1,采集key_in 进入key_reg 寄存器
2,如果key_in 在输入保持0/1不变,保持了DELAY_TIME时间
3,证明数据稳定,输出。
基于这种思路,所以我的代码是这样子的:
如果大家有好的设计方案,欢迎提出哦。
本宝宝最怕的是有人会说,你这个设计没看出有啥区别啊
1,本宝宝的设计才是正确的。几个大网咖的大家熟知的程序居然是错误的。
2,比起其他正确代码,用的逻辑少了至少1/3.