《硬件架构的艺术》笔记(一)

亚稳态

1.1 亚稳态的来源

        在同步系统中,数据相对于时钟总有固定的关系。当这种关系满足器件的建立和保持时间的要求时,输出端会在特定的传输延迟时间内输出一个有效状态。因为在同步系统中输入信号总是满足触发器的时序要求,所以不会发生亚稳态。但是,在异步系统中,由于数据和时钟的关系不是固定的,因此有时会出现违反建立和保持时间的现象。当违反建立和保持时间时,就会输出介于两个有效状态之间的中间级电平且无法确定停留在中间状态的时间,或者在经过一定的延迟后才能进行正常转换。

1.2 亚稳态理论

        亚稳态是由于违背了触发器的建立和保持时间而产生的。设计中任何个触发器都有特定的建立和保持时间,在时钟上升沿前后的这段时间窗口内,数据输入信号必须保持稳定。如果信号在这段时期发生了变化,那么输出将是未知的或者称为“亚稳的”。这种有害状态的传播就叫做亚稳态。触发器的输出会因此而产生毛刺,或者暂时保持在不稳定状态而且需要较长时间才能回到稳定状态。

        如图1.1所示,当触发器处在亚稳态时,输出会在高低电平之间波动,这会导致延迟输出转换过程,并超出所规定的时钟到输出的延迟值(t。)。亚稳态输出恢复到稳定状态所需的超出t的额外时间部分称为稳定时间 (tmr)。并非所有不满足建立和保持时间的输人变化都会导致亚稳态输出。触发器是否进入亚稳态和返回稳态所需时间取决于生产器件的工艺技术与外界环境。一般来说,触发器都会在一个或者两个时钟周期内返回稳态。

         当信号在一个时钟域 (src_data_out)里变化,在另个时钟域(dest_date_in)内采样时,就会导致输出变成亚稳态。这就是所谓的同步失败(见图1.3)。

 1.3 亚稳态窗口

        亚稳态窗口(Metastability Window)具有特定的时间长度,在这段时间内输人信号和时钟都应该保持不变。如果它们发生变化,输出就可能变成亚稳态。如图1.4所示,建立时间和保持时间共同决定亚稳态窗口的宽度。

 窗口越大,进入亚稳态的概率越高。

1.4 计算MTBF

        系统的故障率恒定时,MTBF(Mean/Average Time Between Failures,平均无故障时间),故障率的倒数。

式中 :

        tr = 允许超出器件正常传输延迟时间的解析时间。

        τ = 触发器的亚稳态时间常数

        W = 亚稳态窗口
        fc = 时钟频率
        fd = 异步信号边沿频率

        常数W和τ 跟触发器的电气特性有关,会根据工艺技术而改变。所以,相同工艺生产出来的不同器件有着相似的w和值。
τ的计算公式是:

 根据上面两个公式,可以计算两级同步器的MTBF:

 1.5 避免亚稳态

        每当违背建立、保持时间时,亚稳态就会出现。在以下条件中,信号可能违背时序要求。
        1. 输入信号是异步信号。
        2. 时钟偏移/摆动(上升/下降时间)高于容限值。
        3. 信号在两个不同频率或者相同频率但是相位和偏移不同的时钟域下跨时钟域工作。
        4. 组合延迟使触发器的数据输入在亚稳态窗口内发生变化。

        所有的触发器和寄存器都存在亚稳态。虽然亚稳态不能根除,但是可以减小亚稳态发生的概率。

1. 通过确保时钟周期足够长来避免亚稳态,这个时钟周期要大于准稳态的解析时间,也要大于=通往下一级触发器的路径上的组合逻辑延迟。该方法虽然简单,但多数情况下不实用。

2. 使用多级同步器

        避免亚稳态最常见的方法是在跨时钟域的信号上加上一个或者多个同步触发器,如图1.6所示。这种方法用一个完整的时钟周期来解决第一级同步触发器的亚稳态问题(不包括第二级触发器的建立时间)。但是这种方式增加了观察同步逻辑输人的延迟。

 3. 使用时钟倍频电路的多级同步器

        由于多级同步器的一个局限就是系统需要花费较长的时间去响应异步输入(即亚稳态不需要一个时钟周期,即可稳定),但使用倍频时钟降低MTBF能让系统在一个系统时钟周期内响应一个异步输入。

 注意:这几种方法都不能保证阻止亚稳态传播,仅仅是减小了亚稳态发生的概率。

1.6 亚稳态测试电路

        FFa上升沿触发,FFb和FFc下降沿触发(增加亚稳态发生的概率)。当异步信号输入时,两个互补的信号传入FFb,FFc,无论FFa什么时候发生亚稳态,异或门的输出都会变成高电平,触发器FFd输出端捕捉到高电平表示检测到亚稳态发生。

 测试电路中的时序:

 1.7 同步器的类型

       1. 当异步输入信号比时钟周期大得多时使用。即使异步输入在建立时间区间外稳定,它仍然需要由时钟驱动产生两个周期的延迟,否则FF1可能进入亚稳态。

        如果亚稳态在不到一个时钟周期内就解析了,FF2就会有稳定的输入,否则就需要更深层的级联。当异步输入信号宽度小于时钟周期时,模式A失效,此时应使用模式B。

         2. 注意,对于同步器的模式B,第一级触发器的输人 D与 Vcc相连,同时时钟信号是异步输入信号。另外两个触发器直接由系统时钟 (clk) 控制。一个短脉冲让q1变成高电平,这个高电平在经过两个时钟(clk)沿后从sync_out输出。

 总结了如下经验规则:
        1)当信号必须跨时钟域工作时,要采用同步器。
        2)如果clk1<clk2,在时钟域2里用同器的模式A否则就采用同步器的模式B。

1.8 亚稳态综合建议        

在两个相互异步系统的交界面亚稳态是不可避免的。但是下面的几点建议可以明显减小亚稳态发生的概率。
        (a)采用同步器。
        (b)采用响应更快的触发器(缩短亚态窗口Tw)。
        (c)使用亚稳态硬化触发器(专为高宽带设计并且减少为时钟域输人电路而优化的采样时间)。
        (d)使用级联触发器(两个或者多个)作为同步器如果一个触发器的亚稳态失败概率为 P,那么N个触发器的亚稳态失败率就是P
        (e)减少采样速率。
        (f)避免使用dV/dt低的输入信号 。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值