一、理论概念
亚稳态是由于数据违背触发器的建立时间和保持时间而发生的,在时钟上升沿前后的一段时间内(亚稳态窗口),数据必须保持稳定,否则输出将会产生毛刺或者保持在不稳定状态而且需要较长时间才会回到稳定状态(可能为0,也可能为1),这种有害状态的传播被称为亚稳态。亚稳态窗口越大,进入亚稳态的概率越高。亚稳态不能根除,但是可以减小其发生发概率。
在同步电路中,数据相对于时钟总有固定的关系,在设计中保证满足器件的建立时间和保持时间要求时,就不会发证亚稳态。但是在异步电路中,由于数据和时钟的关系不是固定的,因此有时候就会出现违反建立时间和保持时间的现象,从而出现亚稳态。在以下条件中,可能违背时序要求从而出现亚稳态。
1、输入信号是异步信号。
2、信号在两个不同频率或者相同频率但是香味和偏移不同的 时钟域下跨时钟工作。
3、时钟偏移/摆动高于容限值。
4、组合延迟使触发器的数据输入在亚稳态窗口内发生变化。
二、避免亚稳态的方法(单bit数据)
系统平均无故障时间MTBF可用如下方式计算:
因此可用如下方法减少亚稳态发生的概率:
1、延长时钟周期(不实用)。
2、使用同步器。
3、采用响应更快的触发器(减小W)。
4、使用亚稳态硬化触发器(专为高宽带设计并且减少为时钟域输入电路而优化的采样时间)。
5、减少采样速率。
6、避免使用dV/dt低的输入信号。
三、同步器的类型
1、多级同步器(信号宽度大于时钟周期宽度),这种方法用一个完整的时钟周期来解决第一级同步器的亚稳态问题,但是这种方式增加了观察同步逻辑输入的延迟。
2、使用时钟倍频电路的多级同步器,这种方法能够减少响应异步输入的时间,并且改善了MTBF
3、信号宽度小于时钟周期宽度时,用如下同步器:
注:通常,需要跨时钟的信号,需要在源时钟域先经过一级FF进行寄存输出。也就是说,跨时钟信号必须是寄存器的输出,中间不能有组合逻辑。