亚稳态的有关概念和分析

此为精简版,建议阅读下面的链接:

亚稳态的定义
由于 timing margine 不够,电路的输入没有能够上到所需要的逻辑电平高度,导致逻辑器内部不得不花费额外的时间使得输出达到所需的稳定逻辑状态,这个额外的时间,我们也叫作决断时间(resolution time)。 当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

1.亚稳态发生的原因  
在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间
处于不确定的状态,在这段时间里Q端毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。 这段时间 称为
决断时间(resolution time)。 经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系
2.亚稳态的危害  
由于输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此亚稳态除了导致
逻辑误判 之外, 输出0~1之间的中间电压值 还会 使下一级产生亚稳态(即导致亚稳态的传播) 。   逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理。
3.亚稳态的解决办法(异步电路)
只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要
减少亚稳态导致错误的发生 ,其次要 使系统对产生的错误不敏感 。前者要用 双寄存器同步法 来实现,而后者根据不同的设计应用有不同的处理办法。用同步来减少亚稳态发生机会的典型电路如图所示。 
亚稳态的有关概念和分析 - qingyu_1984 - 采臣的博客    
        左边为异步输入端, 经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态 。其原理是即使第一个触发器的输出端存在亚稳态,经过一个CLK周期后,第二个触发器D端的电平仍未稳定的概率非常小,因此 第二个触发器Q端基本不会产生亚稳态 。注意,这里说的是“基本”,也就是无法“根除”,那么如果第二个触发器Q出现了亚稳态会有什么后果呢?后果的严重程度是有你的设计决定的,如果系统对产生的错误不敏感,那么系统可能正常工作,或者经过短暂的异常之后可以恢复正常工作,例如设计异步FIFO时使用格雷码计数器当读写地址的指针就是处于这方面的考虑。如果设计上没有考虑如何降低系统对亚稳态的敏感程度,那么一旦出现亚稳态,系统可能就崩溃了。
4.    双寄存器同步法的原理

        同步器就是将几个用本地时钟驱动的时序器件串联起来,去采样输入的异步数据。为什么会有这种方法呢。回忆决断时间的概念。当在第一级的时序器件出现亚稳态的问题时,其输出会出现一种不稳定的中间值,并且这个时间受多种因素影响,或者说这个输出在高电平到低电平之间满足一定形式的概率分布。当第二个时序器件的采样窗口到来的时候,在第二级输入端口上的电平仍然处在可以使第二级出现亚稳态的电平范围内的概率会变得很小,如果再加上第三级,在第三极上的这个概率几乎可以忽略不计。从数学上讲,每个时序器件的亚稳态的出现都有一定的概率,如果多个期间串联,总概率是各自概率的积,因此增加期间,会消除“亚稳态”。但是这里的消除是指降低不稳定的时间,使得输出电平的稳定时间接近时钟周期至于能否采样到正确的逻辑,则基本取决于第一个时序器件的输出。前面分析过,当亚稳态出现时,输出逻辑与输入逻辑的关系是不确定的。因此在逻辑上无法消除亚稳态的影响。

前面提到MTBF=1/失效率,当多个DFF串连时,
MTBF=1/(失效率1×失效率2×…×失效率n)
当两个DFF串联的时候,基本可以保证这个MTBF很大。对于量产的产品,全部产品无故障的时间为MTBF/产品量,因此如果产量较大,则需要有非常大的MTBF。

如果这种方法作用在控制信号上的时候,如果出现采样失效(比如跨时钟域时,采样率不匹配),则可以多等待几个周期,以保证有效采样到逻辑信号。还有机会完成控制操作。如果是数据信号,则这种方法很难保证无差错传输。

8,结语
亚稳态产生的主要原因是,在时序器件的采样窗口内,无法保证输入信号始终保持在一个稳定的电平上。因此我们需要通过减小采样窗口来增加采样成功率(使用边沿触发器件对于电平触发器件来说,也是一种减小采样窗口的方法),或者通过对采样窗口或输入数据的稳定窗口的“移动”来保证采样成功,用以解决亚稳态问题。但在有异步信号的参与时,问题的解决将变得异常复杂。因此目前还没有一种通用的,有效的,可行的解决方法。但通过对亚稳态形成机制的探讨,可以使我们游刃有余的从工程的角度上解决实际项目中可能出现的具体的亚稳态问题。


 ***************************************************************************************

5. 触发器的亚稳态

像D锁存器那样,边沿触发器D触发器也存在着一个建立和保持时间窗,在这段时间内D端的输入一定不能变化。在这一窗口时间也是在CLK信号的触发沿附近,若未能满足建立和保持时间的要求,触发器的输出通常会进入一个稳定状态。尽管这个状态不可预知,但他不是0就是1。但是,有时输出也可能会震荡或者进入亚稳态,或进入一个界于0和1之间的亚稳态,如果触发器进入亚稳态,则它只是在经过一个随机的延时后,才会自己回到一个稳定状态。在触发器的建立时间和保持时间要求没有得到满足时,触发器就会进入一个界于状态1与状态0之间的第三种状态,即亚稳态状态。

 

最糟糕的是,理论上讲,门电路个触发器接受到这个亚稳态的输入信号之后,有些部件会把这个信号当成0,而另一些则把它当1,于是会产生不一样的输出,或者,还有一些门电路和触发器本身也可能产生亚稳态的输出信号(毕竟,这些器件现在都工作在其工作区的线性部分)。幸运的是,尽管触发器的输出保持亚稳态的可能性永远也不会为0,但这种可能性随着时间呈指数的下降趋势!


     使触发器脱离亚稳态有两种方法:

1)利用满足最小脉宽宽度,建立时间等规定的输入信号,迫使触发器进入一个有效的逻辑状态。(什么意思?)

2)等待足够长的时间,以便触发器自己脱离亚稳态状态。

亚稳定性分辨时间

如果满足了D触发器的建立和保持时间要求,那么在时钟沿到来后的Tpd时间(传播延迟)内触发器就会稳定在一个新的输出值上。如果没有满足D触发器的建立保持时间要求,触发器的输出就会进入亚稳态,并保持随机长的时间。在特定的系统设计中,我们用一个参数Tr(称为亚稳定分辨时间),来表示在不引起同步器故障的情况下,输出会停留在亚稳态的最大时间。


有效的亚稳态分辨时间:

Tr=Tclk(时钟周期)-Tcomb(组合逻辑的传播延迟)-Tsetup

Tpd时间(传播延迟):输入信号变化到产生输出信号变化所需的时间。


最可靠同步器设计

最可靠的同步器就是具有最大亚稳定性分辨时间的同步器。但是,在数字系统的设计中,我们不仅很少因为系统的可靠性而奢侈地降低时钟频率,而且为了让系统具有更好的性能还常常要求提高时钟频率。因此,通常需要能够在很短的时钟内可靠工作的同步器。

Tr=Tclk-Tcomb-Tsetup

速度越快的触发器建立时间就越短。Tcomb(组合逻辑的传播延迟)最小值为0;


用两级D触发器构成同步器,时钟异步信号输入DFF1,这个信号可能会违反触发器的建立时间和保持时间的规定。一旦发生这种情况。输出信号就会进入亚稳态,而且这个状态停留一个任意长的时间。然而,我们已经假设在时钟沿之后,亚稳定性保持的最长时间为Tr(称为亚稳定分辨时间)。
只要时钟周期比Tr与DFF2的建立时间之和要大,那么从下一个时钟触发沿开始,DFF2的输出信号就是异步信号(DFF的输入信号)的同步拷贝,而且不会进入亚稳态。于是就可以把DFF2的输出信号(时钟异步信号)分发到系统的其余部分!


通过两极触发器其实就是给亚稳态足够的脱离时间!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值