目录
建立与保持时间与亚稳态的概念要放在一起学习,这是因为二者息息相关。
1. 亚稳态(Metastability)的物理意义
通过小球通过山坡过程中的状态来类型比数字电路中高低电平跳转时候的不稳定性,下图显示了置于山坡上的小球的稳定性:
下图为数字电路的高低电平和亚稳态区域:
数字电路中,对于电平小于电压阈值 VL的称为0,大于电压阈值VL 称之为1,而对于从0到1之间跳变或从1到0之间跳变期间叫做系统的亚稳态。
2. 什么是亚稳态
亚稳态是指触发器无法在 某个规定的时间段 内达到可以确认的状态。一旦触发器进入亚稳态,则既无法预测触发器的输出电平,也无法预测什么时候稳定在某个确认的电平上。此时的触发器输出端Q在较长时间内处于震荡状态且不等于输入端D,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
在同步系统中,输入信号总是与系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发生。亚稳态通常发生在跨时钟域信号传输以及异步信号采集上。
3. 亚稳态产生的原因
亚稳态产生的最根本原因就是:时序上不满足触发器的建立与保持时间。而导致触发器建立与保持时间违例的情况有很多。
时序设计的本质就是要:满足建立与保持时间。
- 在跨时钟域信号传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间达到异步时钟域的目的寄存器,因此无法保证这些数据满足目的寄存器的建立时间Tsu 和保持时间Th 的要求。
- 在异步信号采集中,由于异步信号可以在任意时间点到达目的寄存器,也无法保证满足目的寄存器的建立时间Tsu 和保持时间Th的要求。
当数据在目的寄存器的Tsu-Th窗口发生变化时,即当数据的建立时间或保持时间不满足时,就可能发生亚稳态现象。如下图:
由图可知,当产生亚稳态后,Tco(时钟输出延迟)时间后会有个Tmet(决断时间)的振荡时间段,当振荡结束回到稳定状态时为“0”或“1”,这个是随机的。因此会对后续电路的判断造成影响。
4. Setup 和Holdup时间
在介绍亚稳态时,最后指出亚稳态产生的根本原因是因为不满足触发器的建立与保持时间。下图是异步时钟域信号采集电路图,100Mhz时钟域采集30Mhz时钟域控制使能信号的电路。
下图是100Mhz时钟域采样33Mhz时钟域的控制使能信号时序:
4.1 建立时间
建立时间(Tsu )指 数据信号 到达触发器 输入端 的时间要早于 时钟敏感边沿 到达触发器的时间,只有满足建立时间,信号才能正确的保存到触发器。
更具体来说是,触发器要求数据信号要早于时钟触发沿一定的时间到达输入端。这是因为触发器在数字电路中理论上都是稳态的(即要么为0,要么为1),但是实际上器件本身对数据是有要求的,即建立时间与保持时间,否则器件就会进入亚稳态。
4.2 保持时间
保持时间(Tsu )是指 时钟边沿 到达后 输入数据 需要保持稳定不变的时间,这是保证数据能够保存到触发器的另一个指标。
5. 异步复位恢复时间
异步复位恢复时间Tr : 是 异步控制 信号,在下一有效沿到达 前 必须稳定下来的 最短 时间。有点类似于复位信号的建立时间的意思。
6. 建立时间、保持时间违例(violation)
在一个同步数字电路系统中,时间脉冲信号每改变一次,数据能够改变一次。这种运作方式是通过 同步的数字电路器件,例如 触发器 或 锁存器 实现的,这类器件以时钟信号为指示,将其输入端数据复制到其输出端。在同步电路中,存在两种时序错误:
建立时间违例:时钟信号有效沿变化之前,如果数据没能保持足够长的时间,数据就不能在此时钟信号变化时被记录下来。
保持时间违例:时钟信号有效沿变化之后,如果输入信号没能保持足够长时间,数据就不能在下一个时钟信号变化时被记录下来。
Ex:下图是一个同步系统设计,需要用时钟域CLK2对异步输入Asyn(CLK1时钟域下)进行同步。在时序图中,在A时刻,由于异步输入满足触发器的建立和保持时间(在时钟沿A时刻到前后时,异步输入已经保持稳定),两个触发器都稳定输出高电平,然后在B和E时刻点,由于时钟上升沿落在建立和保持时间的窗口之内,不满足建立和保持时间,触发器器输出亚稳态。从图上看出,当采样落在异步输入信号的建立和保持时间窗口之内,触发器经过一段时间恢复为稳定的状态,但是恢复出来的状态可能为0,也可能是1,这一点可以从图中Sync1和Sync2在C和F点亚稳态恢复结果可以看出,这种不确定性常常导致系统崩溃。
同步系统逻辑电路图:
同步系统逻辑时序图:
7. 亚稳态的恢复时间
触发器的恢复时间 :从触发器采样到亚稳态输出,再到最终恢复为稳定状态的一段时间叫做触发器的恢复时间。这是触发器保持亚稳态输出不至于使得系统失效的最大时间。
亚稳态不会继续传播条件:T>Tr +Tsu
8. 寄存器的MTBF
平均故障间隔时间(Mean Time Between Failure,MTBF)。亚稳态平均故障间隔时间MTBF的计算公式为:
式中,C1 和C2 是常数,依赖于器件工艺和操作环境。fCLK 和fDATA 参数取决于设计规格:fCLK 是接收异步信号的时钟域的时钟频率,fDATA 是异步数据的翻转频率(toggling frequency)。更快的时钟速率和更快的数据翻转会降低平均故障无时间。TMET 参数是亚稳态转稳定的时间(Metastability setting time),或者说时序裕量大于寄存器Tco可以让潜在的亚稳态信号达到稳定的值的时间。TMET 对同步链来说就是链中每个寄存器输出时序裕量的和。MTBF越大就越不容易出现亚稳态。下图为通用器件的亚稳态参数