推荐答案
测试一下
题目
4.8 去抖滤波
参考答案与知识点
参考答案
去抖滤波通常用于消除机械开关或按键的抖动,避免因触点弹跳导致的误判。核心思想是:对输入信号进行周期采样,只有当连续N个采样值相同时才判定信号稳定。典型实现使用计数器,在输入信号跳变时复位计数器,每次采样若电平不变则计数器加1,达到设定阈值后输出新电平。若采样到跳变,则重置计数器并保持输出不变。设计时注意:采样时钟频率应远高于抖动持续时间,同时阈值需合理选择(如20ms抖动,10MHz时钟则计数200000次)。Verilog实现采用三段式状态机或直接计数:always@(posedge clk or negedge rst_n)中,if(!rst_n)计数器清零;else if(in != in_reg)计数器清零;else if(cnt < MAX) cnt <= cnt+1;else out <= in。此外,边沿检测可与去抖结合,去抖后的信号再经两级寄存器产生上升沿/下降沿标志。易错点:1)计数器宽度要足够,避免溢出;2)rst_n需同步处理;3)输入信号需先打拍同步到时钟域(两级寄存器防亚稳态);4)阈值设定需根据实际抖动时长和时钟频率计算,不能任意选取。
涉及知识点
- 按键抖动原理
- 计数器去抖方法
- 同步器与亚稳态消除
- 状态机设计
- 边沿检测技术