4、时钟数据恢复(CDR)测试

CDR 是 SerDes 接收端的“心脏”。它要从满是噪声的数据流里,把时钟和信号一起拽出来。说实话,CDR 测不好,整个链路都白搭。我见过太多“眼图看着还行,但误码率就是降不下来”的案例,最后问题都出在 CDR 上。

4.1 CDR 环路带宽测量

CDR 本质是个锁相环(PLL)。它有个关键参数——环路带宽。带宽太宽,噪声滤不掉;太窄,跟踪不了数据抖动。说白了,这就是个“捕捉精度”和“响应速度”的权衡。

核心要点:CDR 环路带宽通常设定在数据波特率的 1/1000 ~ 1/500 之间。比如 10Gbps 的链路,带宽大约在 10MHz ~ 20MHz 之间。

怎么测?我个人喜欢用“正弦抖动注入法”。把已知频率的正弦抖动加到数据上去,然后看 CDR 输出的相位误差有多大。扫一圈频率,就能画出带宽曲线。

  • 第一步:关掉所有随机抖动,只加正弦抖。
  • 第二步:抖动频率从低到高扫,比如 100kHz 到 100MHz。
  • 第三步:实时监测 CDR 输出的相位误差电压。
  • 第四步:找到 -3dB 点,那就是带宽。
测量方法优点缺点
正弦抖动注入法精度高,可复现需要高精度信号源
相位阶跃响应法速度快,直观易受噪声干扰
PRBS 自相关法接近真实工况计算复杂
避坑提示:我曾经在测试中忽略了信号源本身的抖动,结果带宽测出来比实际大了 30%。后来用了相噪分析仪校准信号源,数据才正常。你想想看,信号源不干净,测出来的结果怎么可能对?

4.2 锁定时间测试

锁定时间,就是 CDR 从“失锁”到“捕获”所需的时间。在高速系统中,这个时间直接影响链路的建立时间。比如 PCIe 的重训练,如果 CDR 锁定时间过长,协议层直接报错。

测试方法:我习惯用“丢帧法”。发送一段数据,突然中断一下,再恢复。示波器单次触发,抓 CDR 输出的锁定指示(Lock Detect)脚。

测试流程:
  1. 先让链路锁定,跑个几秒钟。
  2. 瞬间切断数据输入(用射频开关控制)。
  3. 等 100μs 左右,再恢复数据。
  4. 抓 Lock Detect 从低到高的时间。

这里有个坑:锁定时间往往和输入数据的抖动幅度有关。抖动越大,锁定越慢。我建议至少在 0.3UI 和 0.7UI 这两个抖动幅度下各测一次。

经验数据:常见 CMOS 工艺的 CDR,锁定时间通常在 1μs ~ 50μs 之间。超过 100μs 基本算不合格。

4.3 相位噪声影响分析

相位噪声是 CDR 的“隐形杀手”。它看不见摸不着,但影响实实在在。相位噪声会恶化 CDR 的恢复时钟,进而影响后续的数据采样。

相位噪声对 CDR 的三个主要影响:
  • 增加误码率:时钟抖了,采样点飘了。
  • 降低抖动容限:CDR 对输入抖动的忍受能力下降。
  • 引起锁定失败:极端情况下,直接失锁。

怎么评估?我一般用“相位噪声转抖动”的方法。先测恢复时钟的相噪曲线,然后积分算出 RMS 抖动。这个抖动值如果超过 0.05UI,误码率基本就会上浮一个量级。

避坑指南:我曾经在一个 16nm 项目上,CDR 明明锁定了,但比特误码率始终在 1e-12 下不来。查了三天,最后发现是电源的 PSRR 在高频段太差,把电源噪声串进了 VCO。换了 LDO 之后,相噪降了 8dB,误码率也正常了。记住,CDR 对电源噪声极其敏感。

还有一点:远端点噪声 vs 近端点噪声。近端 (<100kHz) 影响长期时钟偏移,远端 (>1MHz) 影响采样抖动。我建议分开看,别混为一谈。

CDR 测试与调试核心知识框架 CDR 性能三要素 环路带宽测量 测量方法: • 正弦抖动注入法(精度高) • 相位阶跃响应法(速度快) 锁定时间测试 关键步骤: • 数据中断恢复法 • 0.3UI 和 0.7UI 抖动下各测一次 相位噪声分析 主要影响: • 增加误码率 • 降低抖动容限 / 锁定失败 调试关键:电源噪声 = 最大杀手 📌 带宽测量 带宽 = 数据率 / 500 ~ 1000 示例:10Gbps → 10~20MHz 📌 锁定时间 典型值:1μs ~ 50μs 超标:>100μs = 不合格

最后说一句:CDR 测试不是孤立存在的,它和前面的眼图测试、后面的抖动容限测试是连在一起的。你测完 CDR 的带宽和锁定时间后,一定要回看眼图和误码率的结果,做交叉验证。