最近在看代码的时候遇到异步复位同步释放的问题,代码里实现的方法如下:
reg rst1, rst2;
wire rst_n_delay;
always @(posedge clk or negedge rst_n)
if(!rst_n)
begin
rst1 <= 1'b0;
rst2 <= 1'b0;
end
else
begin
rst1 <= 1'b1;
rst2 <= rst1;
end
异步复位是没有疑问的,但是为什么要经过2级的触发器才输出复位信号呢?第一级输出不可以吗?上网找了一下,都是说亚稳态的问题,但是始终看不明白为什么第二级就消除了亚稳态。第二级不就是比第一级延长了一个周期吗?如果第一级存在亚稳态,那么延长一个周期之后这个亚稳态不是也会影响到第二级输出吗?
求解。
|