热度 1| |
由于建立时间或保持时间违规等原因,使得触发器的输出在一段时间内无法达到一个确定的状态,这种状态称之为亚稳态。如图1所示,clock1和clock2分别为两个不同的时钟,如果Din在DFF2的建立时间和保持时间窗口内发生翻转,Dout会在一段时间内处于亚稳态,
图1 跨时钟域电路
图2 亚稳态时序电路
二、设计风险
亚稳态可能是毛刺、可能是震荡、也可能是某一电压值。如果亚稳态的传导入后续电路会导致系统功能异常,甚至崩溃。
三、解决方案
设计中采用两级同步器对单比特跨时钟域信号进行同步,如图3所示。图4是两级同步器时序图。图中,DB1是第一个触发器的输出,Dout 是第二个触发器的输出。Dout用来避免亚稳态信号传递到其他后续电路中,一旦同步后的信号有机会稳定下来,就会把信号传递出去。两个触发器之间不加任何逻辑,可以为信号稳定争取足够的时间。
图3 两级同步原理图
图4 两级同步时序图
注:两级同步电路只适用于单比特信号同步,多比特或总线信号同步除了考虑亚稳态,还应该考虑信号汇聚问题。