时钟抖动是时钟边缘与其理想位置的时间偏差。时钟沿可以在一个范围内到达,两个连续时钟沿之间的差值将决定该周期的实际有效周期长度。因此,时钟抖动在静态时序分析中非常重要。 让我们借助一个例子来阐述时钟抖动的概念: 时钟源(比如PLL)应该提供频率为10 MHz的时钟,总计时间为100 ns。如果它是理想的时钟源,则连续的上升沿将出现在0 ns,100 ns,200 ns,300 ns等等。然而,由于PLL是一个非理想的时钟源,它在产生clock edge时会有一些不确定性。它可能在0 ns,99.9 ns,201 ns等时产生clock edge。或者我们可以说时钟边沿可能在(<ideal_time> - jitter)之间的任何时间发生。即0,在99-101ns之间,在199-201ns之间等等(1ns是抖动)。但是计算多个周期后,平均周期将达到〜100 ns。 Clock jitter的种类
周期抖动是在多个随机选择的周期(例如10K周期)内时钟信号的周期时间相对于理想周期的偏差。它可以指定所选周期内的时钟周期偏差的平均值(RMS值),也可以是所选组内最大偏差和最小偏差之间的差值(peak-to-peak period jitter)
Cycle-to-cycle jitter是随机数个时钟周期内两个相邻时钟周期的偏差。
在时间或相位上的偏移,会导致误差及同步丢失。电缆越长、电缆衰减越大或数据速率越高,抖动就越大,也称作相位抖动、定时失真或码间干扰。
clock jitter原因 抖动的原因很多,主要包括以下几种类型
对于高频模块,通常为了最大限度减少电源纹波,我们往往要在这种模块中插入足够多的DECAP cell。这点应用实践表明效果很明显。
目前芯片仅仅做IR Drop分析电源压降,已经不能满足实际应用的需求了。另外还需要做热噪声的分析。
Clock jitter的影响
根据STA基础知识得知,setup的检查是launch clock edge在edge 1,capture clock edge在edge 3。现在我们假设edge 1到达时刻为20 ns,则edge 3可以在时间区间(20 ns CLOCK_PERIOD 抖动)和(20 ns CLOCK_PERIOD - 抖动)到达。因此,为了考虑最坏情况下的时序情况,我们采用edge 3到达时刻为(20 ns CLOCK_PERIOD - 抖动)。即实际的有效时钟周期变为(CLOCK_PERIOD - jitter),较理想时钟周期缩短。因此setup timing更为严格了。 秒杀数字后端实现中clock gating使能端setup violation问题 深入浅出讲透set_multicycle_path,从此彻底掌握它
由于hold check是同沿检查。因此clock jitter对hold没有影响。因此在芯片timing signoff时,往往hold 的uncertainty会比较小。 考虑clock jitter的实现策略 通过设置clock uncertainty来给design预留margin。 Pre-cts阶段 clock_uncertainty = clock jitter 预估clock skew Post-cts阶段 clock_uncertainty = clock jitter (此时clock skew已经确定)
|
|