4、时钟数据恢复(CDR)测试
CDR 是 SerDes 接收端的“心脏”。它要从满是噪声的数据流里,把时钟和信号一起拽出来。说实话,CDR 测不好,整个链路都白搭。我见过太多“眼图看着还行,但误码率就是降不下来”的案例,最后问题都出在 CDR 上。
4.1 CDR 环路带宽测量
CDR 本质是个锁相环(PLL)。它有个关键参数——环路带宽。带宽太宽,噪声滤不掉;太窄,跟踪不了数据抖动。说白了,这就是个“捕捉精度”和“响应速度”的权衡。
怎么测?我个人喜欢用“正弦抖动注入法”。把已知频率的正弦抖动加到数据上去,然后看 CDR 输出的相位误差有多大。扫一圈频率,就能画出带宽曲线。
- 第一步:关掉所有随机抖动,只加正弦抖。
- 第二步:抖动频率从低到高扫,比如 100kHz 到 100MHz。
- 第三步:实时监测 CDR 输出的相位误差电压。
- 第四步:找到 -3dB 点,那就是带宽。
| 测量方法 | 优点 | 缺点 |
|---|---|---|
| 正弦抖动注入法 | 精度高,可复现 | 需要高精度信号源 |
| 相位阶跃响应法 | 速度快,直观 | 易受噪声干扰 |
| PRBS 自相关法 | 接近真实工况 | 计算复杂 |
4.2 锁定时间测试
锁定时间,就是 CDR 从“失锁”到“捕获”所需的时间。在高速系统中,这个时间直接影响链路的建立时间。比如 PCIe 的重训练,如果 CDR 锁定时间过长,协议层直接报错。
测试方法:我习惯用“丢帧法”。发送一段数据,突然中断一下,再恢复。示波器单次触发,抓 CDR 输出的锁定指示(Lock Detect)脚。
- 先让链路锁定,跑个几秒钟。
- 瞬间切断数据输入(用射频开关控制)。
- 等 100μs 左右,再恢复数据。
- 抓 Lock Detect 从低到高的时间。
这里有个坑:锁定时间往往和输入数据的抖动幅度有关。抖动越大,锁定越慢。我建议至少在 0.3UI 和 0.7UI 这两个抖动幅度下各测一次。
4.3 相位噪声影响分析
相位噪声是 CDR 的“隐形杀手”。它看不见摸不着,但影响实实在在。相位噪声会恶化 CDR 的恢复时钟,进而影响后续的数据采样。
- 增加误码率:时钟抖了,采样点飘了。
- 降低抖动容限:CDR 对输入抖动的忍受能力下降。
- 引起锁定失败:极端情况下,直接失锁。
怎么评估?我一般用“相位噪声转抖动”的方法。先测恢复时钟的相噪曲线,然后积分算出 RMS 抖动。这个抖动值如果超过 0.05UI,误码率基本就会上浮一个量级。
还有一点:远端点噪声 vs 近端点噪声。近端 (<100kHz) 影响长期时钟偏移,远端 (>1MHz) 影响采样抖动。我建议分开看,别混为一谈。
最后说一句:CDR 测试不是孤立存在的,它和前面的眼图测试、后面的抖动容限测试是连在一起的。你测完 CDR 的带宽和锁定时间后,一定要回看眼图和误码率的结果,做交叉验证。