跨时钟域(CDC)的主要问题是,当目标时钟域采样时,跨时钟域信号可能出现的 setup 和 hold violation 然后出现亚稳态,其中亚稳态可以在整个设计中传播,导致数据丢失,甚至芯片故障。
亚稳态是无法预防的,但可以使用同步器来避免亚稳态的传播;因此,防止系统故障。
双触发器同步器如何防止亚稳态传播?
如上图所示,当第一个触发器(FF)数据输入违反 setup 或 hold 时间要求时,输出 A/B 将变为亚稳态。然而,在不可预测的延迟(Tco)后,FF 输出将稳定在某个逻辑 0/1。
然后这个输出进入第二个 FF,防止亚稳态在整个设计中传播。由于亚稳态将在 Tco 后稳定到稳定状态,当在时钟的下一个上升沿被第二个触发器采样时,Q1 输出可能已经稳定,也就是第二个触发器没有 setup 或 hold violation。因此,FF2 可以成功存储 Q1/D1 的稳定数据,没有亚稳态。换句话说,FF2 的输出可以由下一个逻辑块安全使用,而不会传播亚稳态。
目标时钟的时钟周期越高,亚稳态传播到下一个逻辑块的概率就越小,因为这为亚稳态在被第二个 FF 采样之前稳定下来提供了更多时间。
双触发器同步器是 CDC 设计中最常用的同步器。尽管如此,如下图所示,在同步链中添加额外的 FF 将进一步提高防止亚稳定性传播的概率。
三触发器同步器
由平均故障间隔时间(MTBF)参数对亚稳态导致的设计失败概率进行建模。
END
作者:learn vlsi
来源:数字芯片实验室
推荐阅读
更多数字 IC 设计技术干货等请关注数字芯片实验室专栏。添加极术小姐姐(微信:aijishu20)微信可申请加入IC设计交流群。