时钟抖动(jitter)和时钟偏斜(skew)有什么区别?
更新时间:2026-09-21。问题驱动短答页。时钟树见 时钟树综合,时序基础见 时序入门,违例修法见 时序违例怎么修。
一句话回答
jitter(抖动)是「同一个时钟」的边沿相对理想时刻在时间轴上前后随机偏移,描述边沿来得时早时晚,主要来自 PLL、电源噪声和片上干扰;skew(偏斜)是「同一个边沿」到达芯片上不同触发器的时刻有先后,描述空间上不同点的时钟不同步,主要来自时钟走线长度和负载差异。一个是时间维度的不确定,一个是空间维度的不一致。
核心对照
| 维度 | jitter 抖动 | skew 偏斜 |
|---|---|---|
| 本质 | 边沿时刻相对理想位置的随机偏差 | 同一沿到不同寄存器的到达时间差 |
| 维度 | 时间(时早时晚) | 空间(点与点不一致) |
| 来源 | PLL/DLL、电源/串扰/热噪声、晶振 | 走线长度不等、负载/缓冲不均衡 |
| 影响 | 主要吃 setup 周期裕量(周期抖动) | 同时影响 setup 与 hold |
| 谁来治 | 选好 PLL、加不确定性约束、降频/留 margin | CTS 平衡时钟树、有用偏斜 |
对时序的不同影响
- jitter:周期可能突然变短,数据可用时间被压缩,主要恶化 setup(尤其高频、PLL 生成时钟)。STA 用
set_clock_uncertainty预留 jitter 裕量。 - skew:若捕获寄存器时钟比发射寄存器晚到(正向偏斜),数据有更多时间,对 setup 有利甚至是「有用偏斜」;但若捕获时钟早到(负向偏斜),数据可能快到穿越,导致 hold 违例。所以 skew 对 setup/hold 都可能起作用。
- 还要区分与时钟相关的另外两个量:latency(时钟源到寄存器的绝对延迟)和 uncertainty(jitter + 余量的统称)。
怎么控制
- skew 靠 CTS(时钟树综合):插入均衡的缓冲树,让时钟到各个叶子触发器的路径长度/负载尽量一致,把 skew 压到很小,见 时钟树综合。FPGA 则走全局时钟网络(低 skew 专用布线),见 FPGA 时钟与复位。
- jitter 靠时钟源和约束:用低抖动 PLL/MMCM、做好电源完整性,并在 STA 里按工艺/锁相环指标设 uncertainty。
- 时钟相关非理想因素(jitter、skew、OCV)在签核时用不确定性和 derating 一起覆盖,见 OCV/AOCV/POCV。
常见坑
- 把两者混为一谈:治 skew 去换 PLL,或治 jitter 去做 CTS,方向全错。
- 只压 setup 忽略 skew 造成的 hold:负偏斜短路径最容易 hold 翻车。
- 门控时钟、分频时钟不走专用网络导致局部 skew 变大,见 门控时钟。
- 约束里漏掉生成时钟的 uncertainty,等于没给 jitter 留裕量。
总结
jitter 是同一时钟边沿在时间上相对理想位置的随机抖动,源于 PLL 与噪声、主要压缩周期裕量恶化 setup,用 set_clock_uncertainty 和低抖动时钟源覆盖;skew 是同一沿到达不同触发器的空间时间差,源于走线与负载不均衡,方向可正可负、同时关系到 setup 与 hold,靠 CTS 平衡时钟树或 FPGA 全局网络抑制。搞清一个是时间不确定、一个是空间不一致,才能在 STA 里对症下药。