文档介绍:跨时钟域信号同步的IP解决方案
作者:Rick Kelly , Synopsys 研发经理
2009年1月
为了确保拥有多个异步时钟域的系统级芯片 (Soc)能够可靠运行,设计人员必须使这些跨越了多个域的时钟和数据信号保持同
步。尽管这并不属于新提出的要求,但随着多时钟域的越来越常见和复杂化,使得这一要求具备了新的重要意义。大规模集成
加上对性能的严格要求以及频率调节都导致在许多不同频率下发生了很多时钟域跨越现象-就像一场数字化的 完美风暴U
跨时钟域(CDC )问题会以许多种形式出现,其评估难度相当高。 幸好,Synopsys DesignWare 库产品提供了许多卓越的 CDC
解决方案,这些方案应用简便,设计人员只需掌握在何时以及何处应用它们即可。
本文解释了在时钟和数据信号从一个时钟域跨越到另一个时钟域时所发生的许多类型的同步问题。在任何情况下,本文所包含
的问题都涉及到相互异步的时钟域。随着每一个问题的提出,本文将概述一个或多个 DesignWare解决方案。这些主题和解决
方案包括:
?基本同步 一DW_sy nc
?临时事件同步 一DW_pulse_s ync, DW_pulseack_sy nc
?简单数据传输同步 一DW_data_sync, DW_data_sync_na, DW_data_sync_1c
?数据流同步 一DW_fifo_s2_sf, DW_fifo_2c_df, DW_stream_sync
?复位排序 一DW_reset_sync
?相关时钟系统数据同步 一DW_data_qsync_hl, DW_data_qsync_lh
基本同步问题
当来自一个时钟系统的信号将用作另一个与其不同步的时钟系统的输入时,就需要对信号进行同步以达成。而不进行同步就无 法达成时序收敛。图1所示为采用一个单寄存器来同步至目的时钟域的异步输入。
伴随这种方法会出现的一个问题是,当一个触发器的数据输入处于逻辑 0至逻辑1之间的过渡过程当中时,发给这个触发器时
钟信号时有可能产生亚稳态现象。亚稳态现象也有可能发生在触发器的建立时间或保持时间出现违反现象时。解决亚稳态事件
使其达至逻辑1或逻辑0所要求的时间量取决于建立时间或保持时间被违反的严重程度(图 2)。
n-MiniTiiinn ip»c&
Clock to Q delay 时钟至Q延迟
FF Mi nimum specs 触发器最小规格
图2解决亚稳态事件所用时间
MTBF )通常计算如下:
当亚稳态事件持续时间长至足以影响到下一个逻辑阶段时,同步器就发生了故障。故障间平均时间(
〔 tr«
MTBF 二 * T]
fdk * f data * To
其中:
fclk是采样时钟频率
fdata是数据变化频率
tres是解决亚稳态所允许占用的时间
T0和T1是与具体触发器相关的常数(下文将进一步叙述)
通常,由于在综合时会尝试在时序能够满足的条件下缩减门电路数以节省占用面积,所以设计人员无法控制至下一阶段间的时
间预算。为了保持稳定一致的解决用时,设计人员可以采用一个 2个触发器组成的序列。但是,这种传统解决方案肯定会增加
时延。
在采用2个触发器的解决方案,时钟树就以减去触发器 FF1的时钟至Q延时后的时钟周期以及 FF2的建立时间要求为基础。
tres = - tcko 1 -tsetup2
fclk
对于有着相对较高数据传输速率的高速应用来说,即使两级同步器也有可能无法获得足够的 MTBF,特别是在FPGA实现方案
中。如果加入第3级,则只有在第1级在亚稳态保持了足够长的时间,导致侵占了 FF2的建立时间的情况下,第2级才有可能 发生亚稳态事件(图3)。
data s
D Q
D Q
D Q
>
>
>
匚匚了 匚匚N
► data d
图3 3级同步器
Sampe MTBF test …MTBF测试电路示例
Error Coun ter错误计数器
采用这一方法,MTBF可计算为:
] trwl +
MTBF= 「打 r 「 T;
Rlk * f dd(a T D
TO和T1常数与所选用的具体触发器相关,并有可能从库供应商处获得。库供应商会采用如图 4所示的电路来测定这些常数。
错误计数器用于测量在输入时钟处于某一特定组合的输入频率下的 MTBF。通过在不同频率比率下让此电路运行,就可以测定
TO和T1的数值。
图4用于测定触发器常数的电路
参见以下资料,可以了解更多有关亚稳态和 MTBF计算的信息:
?确保亚稳态不会破坏您的数字设计方案 作者:Debora Grosse