我是靠谱客的博主 开放红牛,最近开发中收集的这篇文章主要介绍亚稳态的成因,危害,解决方法1. 什么是亚稳态?2.亚稳态发生的原因3.亚稳态的危害4.亚稳态的解决办法5.亚稳态与系统可行性6. 总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

时序图见:https://www.cnblogs.com/linjie-swust/archive/2012/01/07/YWT.html


目录

1. 什么是亚稳态?

2.亚稳态发生的原因

3.亚稳态的危害

4.亚稳态的解决办法

5.亚稳态与系统可行性

6. 总结


1. 什么是亚稳态?

亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。

2.亚稳态发生的原因

在以下的情况下,可能违背时序要求:

  • 输入信号是异步信号
  • 时钟偏移超过容限值
  • 信号在两个不同频率或者同频不同相的时钟域下工作
  • 组合延时使触发器的输入信号在亚稳态窗口内发生变化

亚稳态会引起过多的传输延时和系统故障。虽然亚稳态不能根除,但是可以减小亚稳态发生的概率。

在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。这段之间成为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系。

3.亚稳态的危害

由于输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出0~1之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)。 逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理。


4.亚稳态的解决办法

常用对亚稳态消除有三种方式:

1、对异步信号进行同步处理(采用同步器);

2、采用FIFO对跨时钟域数据通信进行缓冲设计;

3、对复位电路采用异步复位、同步释放方式处理;

4、使用采样相应更快的触发器(亚稳态窗口小);

5、降低采样速率(降频);

6、避免使用dV/dt 低的输入信号;


1、对异步信号进行同步处理:

只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其次要使系统对产生的错误不敏感。                                                                        前者要同步来实现,而后者根据不同的设计应用有不同的处理办法。

①使用多级同步器

最常见的方法就是在跨时钟域内的信号后加上同步触发器。该方法是用一个时间周期(不包括第二级触发器的建立时间)来解决第一级同步触发器亚稳态的问题。但是这种方法增加了观察同步逻辑输入的延时。

N级同步器

②使用倍频时钟同步器

多级同步器的局限就是系统需要花费较长的时间去响应异步输入信号。解决办法就是使用倍频时钟作为两个同步触发器的输入时钟

两级同步电路的思想,其实是为了给亚稳态留出足够的时间,好让亚稳态变成稳定态。一般情况下亚稳态持续的时间很短,所以两级DFF同步之后的信号基本上不会出现亚稳态,可以给后级使用。这里用两级DFF的目的就是给亚稳态留出一个DFF的工作时钟周期,如果第一级DFF的输出出现亚稳态,那么在一个时钟周期内,让亚稳态变成稳定态。这样第二级DFF采样第一级DFF的输出时,第一级DFF的输出早就稳定了,因此不会出现亚稳态的传播。所以在用两级同步电路对异步信号做了处理后,降低同步电路的工作时钟,就可以给亚稳态留更多的时间让它变成稳定态,因此可以起到使电路更稳定安全的效果。

倍频时钟同步器


2、采用FIFO对跨时钟域数据通信进行缓冲设计

当数据流从一个时钟域到另一个时钟域的时候,绝大多数情况下都采用FIFO来作为中间缓冲,采用双时钟对数据缓冲,就可以避免亚稳态的发生;


3、对复位电路采用异步复位、同步释放方式处理

对于复位情况下的亚稳态,常常是由于恢复时间和移除时钟不满足造成的,因此,最常用的处理方式是采用异步复位、同步释放。采用第二级寄存器输出作为全局复位信号输出;


4、使用采样相应更快的触发器(亚稳态窗口小);5、降低采样速率(降频);

5.亚稳态与系统可行性

C1 和C2常数,依赖于器件工艺和操作环境。
fCLK 和fDATA 参数取决于设计规格: fCLK 是接收异步信号的时钟域的时钟频率,fDATA 是异步数据的翻转频率(toggling frequency)。更快的时钟速率和更快的数据翻转(faster-toggling data)会降低平均无故障时间。
tMET 参数是 有效亚稳态沉降时间(vailable metastability settling time),或者说时序裕量大于寄存器Tco(时钟上升沿与输出端(Q端)数据稳定输出的时间差)可以让潜在的亚稳态信号达到稳定值的时间。tMET 对同步链来说就是链中每个寄存器输出时序裕量的和。

使用同步电路以后,亚稳态仍然有发生的可能,与此相连的是平均故障间隔时间  MTBF(Mean Time Between Failure)亚稳态的发生概率与时钟频率无关,但是MTBF与时钟有密切关系。 有文章提供了一个例子,某一系统在20MHz时钟下工作时,MTBF约为50年,但是时钟频率提高到40MHz时,MTBF只有1分钟!可见降低时钟频率可以大大减小亚稳态导致的系统错误的出现,其原因在于,提供较长的resolution time可减小亚稳态传递到下一级的机会,提高系统的MTBF,如图2所示。


图 2 resolution time与MTBF的关系

6. 总结

亚稳态与设计可靠性有非常密切的关系,当前对很多设计来说,实现需要的功能并不困难,难的是提高系统的稳定性、可靠性,较小亚稳态发生的概率,并降低系统对亚稳态错误的敏感程度可以提高系统的可靠性。

最后

以上就是开放红牛为你收集整理的亚稳态的成因,危害,解决方法1. 什么是亚稳态?2.亚稳态发生的原因3.亚稳态的危害4.亚稳态的解决办法5.亚稳态与系统可行性6. 总结的全部内容,希望文章能够帮你解决亚稳态的成因,危害,解决方法1. 什么是亚稳态?2.亚稳态发生的原因3.亚稳态的危害4.亚稳态的解决办法5.亚稳态与系统可行性6. 总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部