异步复位,同步释放

对于复位情况下的亚稳态,常常是由于恢复时间(Recovery Time)和移除时间(Removal Time)不满足造成的。最常用的处理方式是采用异步复位,同步释放。采用第二级寄存器输出作为全局复位信号输出,模块如下:

module rst(
    input I_Clk,
    input I_Rst_n, //异步复位输入
    output O_Sys_Rst_n //异步复位,同步释放输出
);

reg [1:0] rst_n;

assign O_Sys_Rst_n = rst_n[1];

always@(posedge I_Clk or negedge I_Rst_n)
    if(!I_Rst_n)
        rst_n <= 2'd0;
    else
        rst_n <= {rst_n[0],1'b1};

endmodule

如果异步复位信号的撤销时间在恢复时间和移除时间之内,势必造成亚稳态,输出在时钟边沿后产生振荡,最终稳定到0或1。由此产生的结果是,在不同的触发器上,复位撤销的时间可能有一个时钟周期的差异。异步复位,同步释放的意义在于解决这个差异,亚稳态现象同样会出现在rst[0]上,但rst[1]却是同步输出的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值