2. 抖动测量参数:定义与计算
做抖动测试,你首先得搞清楚我们到底在测什么。我见过不少新手,拿着BERT跑一遍,看到一堆数值就懵了。其实抖动的参数就那么几个核心的:峰峰值抖动、均方根抖动、周期抖动、相位抖动。搞懂它们,眼图分析才入得了门。
2.1 峰峰值抖动(Peak-to-Peak Jitter, Pk-Pk)
说白了,峰峰值抖动就是抖动波形上最高点和最低点之间的差距。单位通常是皮秒(ps)或时间单位。它反映了抖动的最差情况——也就是信号边缘偏移的最大范围。
定义:Pk-Pk = max(edge time) - min(edge time),对足够多的边沿采样。
我在项目里遇到过一种情况:BERT上看到的Pk-Pk只有30ps,看起来挺漂亮,但系统还是偶尔误码。为什么呢?因为Pk-Pk只描述了极值,看不到中间抖动的分布。你想想,如果大部分抖动集中在中心,但偶尔来两个极端值,Pk-Pk就被拉大了,可实际误码率并不高。所以Pk-Pk更像一个“警戒线”——告诉你最坏可能偏移多少,但不能完全代表系统可靠性。
测量时一般会采集10^6到10^8个边沿,然后取最大值减最小值。简单吧?但要注意:采样数太少,Pk-Pk会偏小;太多,可能被噪声拖出更极端的值。我建议在工程中固定一个比较标准,比如一次测量采10^7个边沿,这样不同批次结果才有可比性。
2.2 均方根抖动(RMS Jitter)
RMS抖动就是抖动时间偏差的均方根值。它描述的是抖动能量的平均波动大小。和Pk-Pk不同,RMS对偶尔的离群点不敏感,更能反映抖动“本体”的水平。
公式不难:
RMS_Jitter = sqrt( (1/N) * Σ (t_i - t_avg)² )
其中 t_i 是每个边沿的实际时间,t_avg 是平均时间,N 是采样数。
个人习惯:当我需要评估一个时钟源的质量时,我更看重RMS而不是Pk-Pk。因为RMS能稳定反映抖动的主体水平。比如晶振的RMS抖动通常在亚皮秒级,而PLL输出可能会到几皮秒。
曾经有个项目,FPGA输出时钟抖动太大,导致ADC采样出错。我用示波器看眼图,眼张开得还行,但一看RMS抖动值已经超过1ps——对于那个ADC的要求0.5ps来说,就是超标了。所以RMS是个很好的“体检指标”。
2.3 周期抖动(Period Jitter, Tj / Tperiod Jitter)
周期抖动,顾名思义,是测量每个时钟周期的长度变化。它直接反映时钟周期的稳定度。对于DDR、SerDes这类需要精确采样时序的系统,周期抖动非常关键。
测量方法:取相邻两个上升沿的时间差作为周期,再统计这些周期的变化。注意:周期抖动也可以分为Pk-Pk周期抖动和RMS周期抖动。行业里常说的“周期抖动”一般默认指峰峰值。
| 参数 | 含义 | 工程常用范围 |
|---|---|---|
| 周期抖动Pk-Pk | 最长时间周期与最短时间周期之差 | 几十皮秒到几百皮秒(取决于频率) |
| 周期抖动RMS | 周期变化的均方根值 | 亚皮秒到几皮秒 |
| 周期抖动σ(标准差) | 与RMS相同,假设均值已去除 | 同上 |
注意:周期抖动和累加抖动(Accumulated Jitter)不是一个概念。累加抖动看的是经过N个周期后相位累积的偏移,常用于锁相环评估。千万别搞混了。
我记得一次调试DDR3接口,周期性报错。用BERT测周期抖动,发现周期抖动的Pk-Pk在特定数据模式下飘到了80ps,但平时只有20ps。最后定位到电源噪声引起了占空比失真→周期抖动恶化。所以测周期抖动时,最好配合不同的码型(比如PRBS7、PRBS31),排查电源串扰问题。
2.4 相位抖动(Phase Jitter)
相位抖动是从相位域来描述的。它把时间偏移换算成相位偏移,单位是度或弧度。对于高频信号,时间上的微小抖动对应着不小的相位变化。很多通信芯片的规格书里会用“相位抖动(rms)”来作为指标。
关系:Δφ = 360° × (Δt / T) ,其中Δt是时间抖动,T是时钟周期。例如一个1GHz时钟(周期1ns),时间抖动1ps对应的相位抖动就是0.36°。
我当年测一个高速串行收发器,芯片手册要求相位抖动rms < 1°。一开始用时间域看,总觉得指标模糊。后来换算成相位,心里就有底了。相位抖动的优势在于它独立于频率吗?——不完全是。你把时间抖动换成相位,虽然数值变了,但物理本质一样。只是不同行业习惯不同。射频微波领域喜欢用相位噪声(Phase Noise)的积分得到相位抖动,而数字工程师更爱用时间抖动。
该怎么选?
- 做时序预算(Timing Budget)→ 用时间抖动(Pk-Pk或RMS)
- 做时钟品质评估 → 用相位噪声→相位抖动(rms)
- 做眼图分析 → 主要看Pk-Pk总抖动(Total Jitter, Tj)
说到Total Jitter(Tj),它实际上是Pk-Pk抖动的一种特殊形式——往往指在指定误码率(如10^-12)下的抖动峰峰值。Tj = Dj + Rj × α,其中Dj是确定性抖动(有界),Rj是随机抖动(无界,高斯分布),α是BER对应的峰值因子。我们在下一部分眼图分析里会详细讲Tj怎么算,这里先知道它是抖动参数的集合就够。
2.5 如何在实际测试中选择参数
讲了这么多参数,你可能会问:到底该测哪个?我的经验是分场景:
- 串行链路一致性测试(如PCIe、SATA):主要测Tj(总抖动)和Dj(确定性抖动),因为规范就是这么定义的。眼图模板也基于总抖动。
- 时钟源评估:先看RMS抖动,再看相位噪声积分得到的相位抖动。Pk-Pk只作粗筛。
- 系统调试找问题:测周期抖动和Pk-Pk,对比不同码型,容易暴露电源噪声和串扰。
- 批量生产测试:通常只测Pk-Pk和RMS,因为快。但注意设定合理的限值,把误码率风险控制好。
一个小技巧:当你看到RMS抖动很小但误码率很高时,先别急着怀疑设备——很可能存在大的确定性抖动(比如ISI)。这时候用BERT的抖动分解功能,把Dj和Rj拆开看,就明了了。我曾经就这么干过,结果发现是PCB走线阻抗不连续导致的。