复位滤毛刺
有关复位信号的滤毛刺方法,在ASIC中异步复位信号的处理——滤毛刺和异步复位/同步撤离中有过相关的说明,而本次由于crg模块不做为虚拟项目的培训重点,因此我们采用更加简单的方式来对复位信号进行滤波。
输入的复位信号为异步信号,在此我们不考虑亚稳态的问题(实际处理中CRG有更为复杂的结构和专用电路,在此只作为仿真模拟),需要将100ns一下的复位误触进行滤除。一种简单的思路,就是数一下rst_n连续出现了多少拍,对于100M时钟rst_n需要连续出现10拍才达到100ns。
由于输入的rst_n为异步信号不应直接使用,因此我们将rst_n打拍后进行统计。同时因为我们需要捕捉rst_n的跳变沿,因此最后的方案即:将rst_n打两拍rst_n_ff1/rst_n_ff2,当rst_n_ff2持续达到10拍后,拉低对外输出的rst_xxx_n信号。
关于此行为的波形如下图:
对应的代码如下:
// --------------------------------------------------
// rst_spt_n in 100m
// --------------------------------------------------
reg rst_n_ff1, rst_n_ff2;
reg [3:0]vcnt_