异步复位同步释放电路理解

在CSDN上学习异步复位同步释放的体会

转载自长弓的坚持链接:异步复位和同步释放电路的详细解释_长弓的坚持的博客-CSDN博客_异步复位同步释放1、首先给出异步复位信号亚稳态的原因:  复位结束也就是释放的时刻恰在时钟上升沿的建立时间和保持时间之间时无法决定现在的复位状态是1还是0,造成亚稳态。  下面是具体解释:  在带有复位端的D触发器中,当reset信号“复位”有效时,它可以直接驱动最后一级的与非门,令Q端“异步”置位为“1”or“0”。这就是异步复位。当这个复位信号release时,Q的输出由前一级的内部输出决定。https://blog.csdn.net/wordwarwordwar/article/details/74091796

学习笔记要点:

1、防止信号撤除时产生亚稳态

2、复位信号的发生与clk无关,复位信号的撤除也与clk无关,但是之后的输出取决于clk上升沿时候的输入

3、当复位信号rst_async_n撤除时,由于双缓冲电路(双寄存器)的作用,rst_sync_n复位信号不会随着rst_async_n的撤除而撤除。(两级同步原因)

4、假设rst_async_n撤除时发生在clk上升沿,如果不加此电路则可能发生亚稳态事件,但是加上此电路以后,假设第一级D触发器clk上升沿时rst_async_n正好撤除,则D触发器1输出高电平“1”,此时第二级触发器也会更新输出,但是输出值为前一级触发器clk来之前时的Q1输出状态。显然Q1之前为低电平,第二级触发器输出保持复位低电平,直到下一个clk来之后,才随着变为高电平。即同步释放。(亚稳态”1“会不会传递?)

module reset_sync(
    input clk,
    input rst_async_n,
    output rst_sync_n   
);
    reg rst_s1;
    reg rst_s2;
    wire rst_sync_n;

always @(posedge clk, posedge rst_async_n) begin
    if(rst_async_n) begin
        rst_s1 <= 1'b0;
        rst_s2 <= 1'b0;
    end
    else begin
        rst_s1 <= 1'b1;
        rst_s2 <= rst_s1;
    end
end

assign rst_sync_n <= rst_s2;

endmodule

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值