【FPGA】异步复位,同步释放的理解

如果没有前面两级触发器的处理。异步信号直接驱动系统的触发器。会出现什么情况?

回答:很多人只知道触发器D端口来源是异步的话,会因为建立保持时间的时序违反而在触发器Q端口产生亚稳态。 但是不清楚,异步复位信号为什么会导致亚稳态的产生。

首先,回顾理论教材里介绍的建立保持时间违反分析,教材一般都是拿没有复位端口的D触发器举例。

然后,画出带有异步复位端口的D触发器,下图带异步复位Rd,并带有异步置位端口Sd。

由此得知,异步复位信号或者异步置位信号,跟数据端口D信号,没有什么区别,都会存在建立保持时间的违反,从而时序冲突,引发输出亚稳态。


问题2

复位信号存在亚稳态,有危险吗?

回答:

亚稳态,出现的问题或者麻烦,是在信号变化的时候,不能保证第一拍采样的值是固定的。

如果信号稳定,不会出现亚稳态的。就是采样后的跳变,时刻不确定,也许早,也许晚。

系统不希望这样的未知状态发生,系统希望知道在某一个时刻,后续逻辑需要的输入信号,是稳定值。

二级触发器同步后,第二季触发器的输出基本上是稳定值。后续逻辑根据稳定值,会有稳定的行为。这就是追求的系统稳定性。

最好是系统一起复位释放,但是时钟域不同,不可能保证系统一起复位释放。一般来说,系统复位释放的顺序,是需要保证的。否则系统就是不安全的。

举个例子,系统启动时,内核读取启动指令,要powerdown某外设;但是powerdown的逻辑要求外设和内核没有通信请求正在发生。此时,外设比内核先释放复位的情况(复位释放的时刻,外设有可能已经开始与内核发生请求),与内核比外设先释放复位的情况(复位释放的时刻,外设肯定与内核没有发生请求),是不一样的,powerdown也许不能处理成功。

这也是异步复位信号需要同步释放的原因,目的都是为了避免亚稳态的产生。


问题3

如果只做一级触发器同步,如何?

回答:不可以。第一级触发器的输出,永远存在亚稳态的可能。亚稳态,导致系统不会复位初始化到已知状态。

当第一级触发器采样异步输入之后,允许输出出现的亚稳态可以长达一个周期,在这个周期内,亚稳态特性减弱。在第二个时钟沿到来时,第二级同步器采样,之后才把该信号传递到内部逻辑中去。第二级输出是稳定且已被同步了的。如果在第二级采样时保持时间不够,第一级的输出仍然处于很强的亚稳态,将会导致第二级同步器也进入亚稳态,但这种故障出现的概率比较小。

一般情况下,两级同步器总体的故障概率是一级同步器故障概率的平方。在大部分的同步化设计中,两级同步器足以消除所有可能的亚稳态了。


问题4

两级触发器同步,就能消除亚稳态吗?

回答:不能。大大降低概率,如果几十年出现一次,也无所谓了。毕竟芯片不会用几十年,早就老化严重淘汰了。


问题5

第一级触发器的数据端口为什么是1’b1? 回答:

  1. 如果第一级触发器的数据端口,使用rst_async_n。综合后的第一级触发器电路图如下

  1. 如果第一级触发器的数据端口,使用1’b1。综合后的第一级触发器电路图如下:

考虑到电路实现的资源,还是第2种方案最节省,为最佳设计。


参考资料

https://blog.csdn.net/cainiaoyizhiyang/article/details/98479356






 https://blog.csdn.net/wordwarwordwar/article/details/79889725

版权归以上作者所有!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值