• 不一样的信号消抖——你们遇到的都是伪消抖


    上一篇写了一个按键消抖,按键消抖需要一个计数器。可是有些信号是不需要这么负责的,仅仅是抖动而已。于是我在上一篇博文的基础上做了一点修改,于是有了这个信号消抖的程序

     1 module sig_nojitter (
     2                     clock ,
     3                     rst_n ,
     4                     sig_in,
     5                     sig_out
     6                     );
     7 input             clock ,rst_n ; 
     8 input             sig_in ; 
     9 output     reg        sig_out ; 
    10 
    11 reg     [7:0]     sig_reg ; 
    12 wire             sig_dy ; 
    13 always @ (posedge clock or negedge rst_n)
    14     if (!rst_n)
    15             sig_reg     <= 8'd0 ; 
    16     else 
    17             sig_reg     <= {sig_reg[6:0],sig_in} ; 
    18 // 稳定判定
    19 assign sig_dy = (sig_reg[7:4] == sig_reg[3:0]) ? 1'd1 : 1'd0 ; 
    20 
    21 always @ (posedge clock or negedge rst_n)
    22     if (!rst_n)
    23             sig_out     <= 1'd0 ; 
    24     else  if (sig_dy)
    25             sig_out<= sig_reg[7] ; 
    26 
    27 endmodule 

    很简短的一个程序,可以过滤掉出现max 8个脉冲抖动的信号 —— 根据需要进行修改。

    欢迎加入: FPGA广东交流群:162664354

          FPGA开发者联盟: 485678884

    微信公众号:FPGA攻城狮之家

  • 相关阅读:
    Promise
    includes()
    常见的数组去重方法
    concat()
    面试感想
    常见的前端面试题
    让div水平垂直居中的几种方法
    实现斐波拉契的几种方法
    使用lib-flexible
    什么是token
  • 原文地址:https://www.cnblogs.com/sepeng/p/5818182.html
Copyright © 2020-2023  润新知