时钟抖动(*clock jitter*)和时钟偏移(*clock skew*)的定义,及其对时序的影响-Anlogic-安路社区-FPGA CPLD-ChipDebug

时钟抖动(*clock jitter*)和时钟偏移(*clock skew*)的定义,及其对时序的影响

参考链接:
http://en.wikipedia.org/wiki/Clock_skew#Confusion_between_clock_skew_and_clock_jitter
http://www.eetop.cn/blog/html/14/56214-26659.html
http://electronicsgurukulam.blogspot.hk/2012/11/clock-skew-and-jitter-in-digital.html
http://www.wildpackets.com/resources/compendium/wireless_lan/signal_characteristics

定义

  • 时钟抖动(clock jitter——是指多个时钟周期之间存在的差值(如上图),这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。除此之外,还有一种由于周期内信号的占空比发生变化而引起的抖 动,称之为半周期抖动。总的来说,jitter可以认为在时钟信号本身在传输过程中的一些偶然和不定的变化之总和。

    20240331201237255-image

  • 时钟偏移(clock skew——是指同样的时钟产生的多个子时钟信号之间的延时差异(如上图)。它表现的形式是多种多样的,既包含了时钟驱动器的多个输出之间的偏移,也包含了由于PCB走线误差造成的接收端和驱动端时钟信号之间的偏移。
    信号完整性对时序的影响,比如串扰会影响微带线传播延迟;反射会造成数据信号在逻辑门限附近波动,从而影响最大/最 小飞行时间;时钟走线的干扰会造成一定的时钟偏移。有些误差或不确定因素是仿真中无法预见的,设计者只有通过周密的思考和实际经验的积累来逐步提高系统设计的水平。

    20240331201253933-image

     

    Clock Skew: The spatial variation in arrival time of a clock transition on an integrated circuit;
    Clock jitter: The temporal vatiation of the clock period at a given point on the chip;
    简言之,skew通常是时钟相位上的不确定,而jitter是指时钟频率上的不确定(uncertainty)。由于时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了
    skew。而由于晶振本身稳定性,电源以及温度变化等原因造成了时钟频率的变化,就是jitter。

对时序的影响

skew和jitter对电路的影响可以用一个简单的时间模型来解释。假设下图中t(c-q)代表寄存器的最大输出延迟,
t(c-q, cd)表示最大输出延时;t(su)和t(hold)分别代表寄存器的setup, hold time(暂不考虑p.v.t)差异;t(logic)
和t(logic, cd)分别表示最大的组合逻辑传输延迟和最小组合逻辑传输延迟;

20240331201302647-image

 

在不考虑skew和jitter的情况下,及t(clk1)和t(clk2)同频同相时,时钟周期T和t(hold)需要满足
T > t(c-q) + t(logic) + t(su)
t(hold) < t(c-q, cd) + t(logic, cd)
这样才能保证电路的功能正常,且避免竞争的发生。如果考虑CLK2比CLK1晚t1的相位,及skew=t1。则
t(hold) < t(c-q, cd) + t(logic, cd) – t1
这意味着电路由更大的倾向发生hold time violation;如果考虑CLK1比CLK2晚t2的相位,及skew=-t2,则
T > t(c-q) + t(logic) + t(su) + t2
这意味着电路的性能下降了,但由于R2的hold time始终满足,所以不会有竞争的麻烦存在。clock jitter始终是对性能造成负面的影响,一般设计中都需要专门留取10%左右的margin来保证。
clock uncertainty = clock jitter + clock skew
jitter 是 由时钟源产生的抖动。skew是时钟树不平衡引起的到达两个寄存器的延迟差。在cts之后,skew由工具算出,因此sta的时候clock uncertainty 可以设一个比较小的值。另外做hold check的时候因为检查的是同一个时钟沿,因此没有jitter只有skew.

请登录后发表评论

    没有回复内容