异步复位,同步释放

 其实异步复位的话,优点就是可以直接用EDA工具综合库DFF的异步复位端,相对同步复位来说又简单又省逻辑资源,但其致命缺点就是复位结束也就是释放的时刻恰在时钟上升沿的建立时间和保持时间之间时无法决定现在的复位状态是1还是0,造成亚稳态。
         试想下,如果这样的复位信号应用在一个大的系统中,复位信号路径到每一个模块乃至到每一个寄存器的偏斜都会不同,如果恰在时钟上升沿时刻附近必然引起诸多问题。
        因此最好全局复位信号送出之前做一个“异步复位,同步释放”的处理。
        下面是常见两种方式:
 
方式一:(自己看来应该是“异步复位同步化”)
               
always @ (posedge clk)

         rst_nr <= rst_n;                 //现将异步复位信号用同步时钟打一拍

 

always @ (posedge clk or negedge rst_nr)

         if(!rst_nr) b <= 1'b0;

         else b <= a;
 
 
方式二:(自己看来才是“异步复位,同步释放”)
 
reg pllrst1,pllrst2;
wire pllrst;
 
always @(posedge clk or negedge rst_n)
    if(!rst_n) begin pllrst1 <= 1'b1;
                          pllrst2 <= 1'b1; end
    else begin pllrst1 <= 1'b0;
                  pllrst2 <= pllrst1; end
 
 
assign pllrst = pllrst2;       //锁相环复位信号
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值