4、抖动与误码率的关系
做高速数字设计的朋友,多半都被抖动折磨过。抖动这玩意儿,说白了就是信号边沿在时间轴上的漂移。你想象一下——本来应该在整点到达的时钟沿,一会儿早到,一会儿晚到,接收端采样时拿不准该采哪里,结果就是误码。
我刚开始做 10Gbps SerDes 测试那会儿,总以为只要信号幅度够大,误码率就不会高。直到有一次在实验室调了三天,发现眼图看着还行,但误码率就是降不下去……后来才明白,是抖动在捣鬼。
4.1 抖动为什么会导致误码?
接收端对信号做判决时,需要在每个 bit 的中间位置采样。如果抖动把数据边沿“推”到了采样点附近,判决器就可能把一个“1”判成“0”,或者反过来。简单说:抖动让采样时刻失去确定性。
为什么会这样?你可以把接收端的采样窗口想象成一个“门”。门开得太窄,数据刚好在门缝里挤过去,那肯定出错。抖动就是把这扇门不断左右摇晃,你想想看,数据还能稳稳通过吗?
| 抖动类型 | 误码的影响机制 | 典型场景 |
|---|---|---|
| 随机抖动 (RJ) | 高斯分布,长时间会覆盖采样点边界 | 热噪声、半导体随机起伏 |
| 确定性抖动 (DJ) | 固定偏移,造成眼图水平闭合 | 时钟串扰、SSO、EMI |
| 周期性抖动 (PJ) | 特定频率下反复跨越阈值 | 开关电源耦合、参考时钟谐波 |
关键概念:抖动容限
接收端能容忍的最大抖动幅度,超过这个阈值误码率就会陡升。我习惯用浴盆曲线来量化这个关系——后面会细说。
4.2 眼图——抖动的“可视化”
眼图是把连续的数字波形按照时钟周期叠加显示出来的结果。横轴是时间,纵轴是电压。一个干净的眼图,中间那个“眼睛”睁得又大又圆;抖动大的时候,眼睛就眯成一条缝。
我个人判断串行链路健康程度,最先看的就是眼图水平张开度。垂直张开度对应噪声,水平张开度对应抖动。水平张开度越窄,留给采样的“安全地带”就越小,误码率自然高。
眼图参数与误码率的关系
| 眼图参数 | 物理意义 | 对误码率的影响 |
|---|---|---|
| 眼高 | 信号有效摆幅 | 眼高不足 → 噪声裕度小 → 误码 |
| 眼宽 | 采样窗口的时间宽度 | 眼宽 ≤ 1UI → 采样失败 |
| 抖动峰峰值 (TJ) | 所有抖动分量叠加后的范围 | TJ > 0.7UI → 误码率 > 1e-12 |
| 交叉点高度 (crossing) | 差分信号交叉点相对50%的比例 | 交叉点偏移会减小眼宽 |
实战技巧:看眼图时,别只盯着波形轮廓。把光标放在眼图中心交叉点,测量上下两个电平的厚度——如果厚度超过 0.2UI,基本可以判断抖动已经影响到了误码率。
4.3 从抖动到误码率的量化分析
抖动的直接后果是减小采样裕度(Sampling Margin)。这个裕度可以用公式简单表示:
采样裕度 = 1UI - TJ (peak-to-peak)
其中 TJ = DJ + 2 * α * RJ,rms
α 取决于目标误码率,通常 BER=1e-12 时 α≈14
也就是说,抖动越大,能用余量越少。当采样裕度降低到 0 以下,就必然出误码。
实际工程中更常用的工具是 浴盆曲线(Bathtub Curve)。曲线横轴是采样相位偏移,纵轴是 BER。曲线两边高中间低,像浴缸形状。中间平底区域就是“无错区”,宽度等于眼图水平张开度。
我记得有一回做 25Gbps 链路验证,标准要求 BER ≤ 1e-12。测出来的浴盆曲线平底宽度只有 0.35UI,明显偏小。后来定位到是参考时钟的 PJ 过大,加了一级 LC 滤波才搞定。
注意:浴盆曲线的测量需要长时间采集数据才能得到高置信度的低误码率点(比如 1e-12 需要测几千秒)。不要为了节省时间缩短测量窗口,否则会把瞬态抖动漏掉。
4.4 实际测试中的避坑指南
做 BERT 测试时,抖动和误码率的关系很容易被忽略。我把自己的教训整理成几点,希望你少走弯路。
- 时钟触发设置不能偷懒。 有一次我直接把示波器时钟源接到被测设备的恢复时钟上,结果眼图看起来很好,误码率却很高。后来才发现,恢复时钟本身带抖动,等于把参考也污染了。我建议:用参考时钟作为触发源,或者用外部合成器提供干净时钟。
- 测量线缆长度会影响抖动分解。 线缆本身会产生 ISI 和趋肤效应,引入额外抖动。做对比测试时,一定要保持所有通道的线缆长度一致。我曾经在 100m 长电缆上测试,结果误码率比短缆高两个数量级——但那不是链路本身的问题,是电缆拉了太长。
- 不要只看峰值,看统计分布。 抖动有随机分量和确定分量。光看峰峰值可能会被少数极限值带偏。我用频谱仪或者示波器的抖动分析软件,把 RJ 和 DJ 分开看。如果 DJ 占总抖动比例超过 60%,那基本是串扰或电源噪声,调芯片内部均衡器不如先去处理板级问题。
警告:某些 BERT 仪器默认使用“快速测量”模式,只统计短时间内的误码。对于低频抖动(如 10Hz 以下的电源纹波),短时间测量根本抓不到。务必设置测量时长至少覆盖 1000 个最低抖动频率周期。
说到这,你应该能理解:抖动和误码率本质上是“窗口”与“时间偏移”的博弈。眼图是直观的工具,浴盆曲线是量化的武器。做高速设计,没有哪个环节能绕开这两个概念。我自己做项目时,每一版样机必测眼图和浴盆曲线,哪怕芯片数据手册说已经综合过了——实际 PCB 走线、连接器、温度变化,都可能把抖动推过红线。
嗯,绕了这么大一圈,其实核心就一句话:控制抖动,就是控制误码率。