同步异步复位与亚稳态可靠性设计

时间:2013-11-30来源:网络
px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/25px 宋体, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  亚稳态在设计中的问题分析

  1. 亚稳态与设计可靠性

  设计数字电路时大家都知道同步是非常重要的,特别当要输入一个信号到一个同步电路中,但是该信号由另一个时钟驱动时,这是要在接口处采取一些措施,使输入的异步信号同步化,否则电路将无法正常工作,因为输入端很可能出现亚稳态(Metastability),导致采样错误。这里我们对亚稳态的起因、危害、对可靠性的影响和消除仿真做一些介绍。

  2. 亚稳态发生的原因

  在同步系统中,如果触发器的 setup time / hold time 不满足,就可能产生亚稳态,此时触发器输出端 Q 在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里 Q 端会出现毛刺、振荡、或固定在某一电压值,而不一定等于数据输入端 D 的值。这段之间称为决断时间(resolution time)。经过 resolution time 之后 Q端将稳定到 0 或1上,但是究竟是0 还是 1,这是随机的,与输入没有必然的关系。亚稳态实质是介于”0””1”电平之间的一个状态。亚稳态是 FF的一个固有特性。正常采样也会有一个亚稳态时间。当建立保持时间满足时,FF 在经历采样、亚稳态后,进入一个正确的状态。如果建立保持时间不满足,那么FF会有一个相当长的亚稳态时间,最后随机进入一个固定态。

  3. 亚稳态的危害

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

4. 亚稳态的简单解决办法

  只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其次要使系统对产生的错误不敏感。前者要靠同步来实现,而后者根据不同的威廉希尔 官网app 有不同的处理办法。用同步来减少亚稳态发生机会的典型电路如图 1 所示。

  

典型电路

  图 1 两级同步化电路

  在图 1 中,左边为异步输入端,经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。其原理是即使第一个触发器的输出端存在亚稳态,经过一个 CLK 周期后,第二个触发器 D 端的电平仍未稳定的概率非常小,因此第二个触发器 Q 端基本不会产生亚稳态。

  注意,这里说的是“基本”,也就是无法“根除”,那么如果第二个触发器 Q出现了亚稳态会有什么后果呢?后果的严重程度是由你的设计决定的,如果系统对产生的错误不敏感,那么系统可能正常工作,或者经过短暂的异常之后可以恢复正常工作,例如设计异步 FIFO时使用格雷码计数器当读写地址的指针就是处于这方面的考虑。如果设计上没有考虑如何降低系统对亚稳态的敏感程度,那么一旦出现亚稳态,系统可能就崩溃了。

  5. 亚稳态与系统可靠性

1 2 3

关键词: 同步异步 复位 亚稳态可靠性

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版