第4章 Retimer 工作原理:CDR 与重新定时
大家做高速串行链路的时候,总会在某个节点被一个问题卡住:信号经过一段 PCB 走线后,眼图闭合了。这时候你加个 Repeater 不行,必须上 Retimer。为什么?因为 Retimer 不只是把信号推一把,它把时钟和数据一起“洗干净”了。
这一章我重点讲 Retimer 最核心的两个能力:
- 时钟数据恢复(CDR) – 从数据流里把时钟捞出来。
- 重新定时 – 用恢复出来的干净时钟,把数据重新对齐,再发出去。
说白了就是:Retimer 不光修幅度,还修相位和时序。这就是它跟 Repeater 本质的区别。
4.1 为什么要同时恢复幅度和相位?
我们先想一个问题。信号从发送端经过通道,到接收端这一路,会受到哪些损伤?
- 幅度衰减 – 高频成分被板子上的损耗吃掉,眼高缩水。
- 相位抖动 – 走线的不同路径、串扰、电源噪声,让数据过零点前后偏移。
- 时序偏移 – 比特周期不再均匀,眼图左右晃动。
Repeater 做的事情只是均衡+放大,它不知道什么时候是一个 bit 的边界。所以它处理的信号,幅度可能恢复了,但抖动和漂移还在。眼图看起来“开口”没变宽,只是更亮了。
而 Retimer 不同。它先通过 CDR 锁定数据流的频率和相位,然后重新生成一个干净的本地时钟,用这个时钟对齐数据采样点。等价于在链路中间插入一个“重新整形”的节点——幅度、相位、时序全部重置。
4.2 CDR 是怎么工作的?
CDR 的全称是 Clock and Data Recovery。它的任务不复杂:从一串没有独立时钟线的数据流里,恢复出与数据同步的时钟。然后拿这个时钟去判断每个 bit 的值。
实现 CDR 的主流方案有两种:
- 基于 PLL 的 CDR – 最常见的方案。用 PLL 锁定输入数据的频率和相位,VCO 输出恢复时钟。
- 基于延时锁定环(DLL)的 CDR – 通过调整延时链来对齐时钟边沿,适合短距离或低速应用。
我工作这么多年,绝大部分 10Gbps 以上的 Retimer 用的都是 PLL 型 CDR。原因很简单:PLL 能灵活跟踪抖动,还能提供不同速率下的多相时钟。DLL 在低频还行,到了 25Gbps 以上,相位噪声和锁定范围都不够。
4.2.1 CDR 工作流程
- 相位检测 – 对比输入数据边沿与本地 VCO 时钟的相位差。
- 环路滤波 – 把相位误差信号滤成稳定的电压控制信号。
- VCO 调整 – 控制电压改变 VCO 频率,使时钟跟踪数据。
- 数据采样 – 用恢复出的时钟在最佳采样点抓取数据。
这四步在 Retimer 芯片里是连续闭环的。你看不到单个步骤,它每秒钟要跑几十亿次调整。
4.3 重新定时机制:怎么解决相位问题?
CDR 恢复出时钟之后,接下来就是“重新定时”登场。这一步也叫做 re-timing 或 re-shaping。
核心动作只有两个:
- 用恢复时钟重新采样输入数据。
- 用本地干净时钟把采样后的数据传到输出端。
看起来简单,对吧?但实际实现时要处理一个问题:
输入数据的相位和恢复时钟的相位不可能完全同步。 CDR 只能跟踪相位变化,不可能消除所有动态抖动。所以 Retimer 内部一般有一个弹性缓冲(或者叫 FIFO),用来吸收瞬时相位漂移。
4.3.1 什么是确定性延迟?
确定性延迟是指:数据经过 Retimer 后,从输入到输出的延迟是固定的、可以预测的。Repeater 没有这个问题,因为它没有存储单元。但 Retimer 因为有 CDR 和 FIFO,延迟会随输入数据和恢复时钟的相位关系而变化。
现代高速 Retimer 通常都支持延迟锁定模式,通过固定跳过或对齐的方式,让延迟保持恒定。选型的时候一定要看 Datasheet 里是否支持 Deterministic Latency 或者 Low Latency Mode。
4.4 幅度恢复:不是重点,但不能忽略
很多人以为 Retimer 只管时钟和数据,幅度问题交给均衡器就行。实际上,Retimer 内部集成了 CTLE 和 DFE,负责把闭合的眼图掰开。幅度恢复是 CDR 能够正常工作的前提——CDR 需要看到数据边沿,眼图如果完全闭合,边沿都找不到,CDR 就无法锁定。
所以 Retimer 的典型信号路径是这样的:
- 输入信号 → CTLE(连续时间线性均衡) → 增益调整
- 均衡后的信号 → CDR 相位检测
- CDR 恢复时钟 → 采样判决器(Slicer)
- 判决结果 → 输出驱动器 → 送出去
这里面第 2 步和第 3 步同时在做幅度和相位的恢复。幅度恢复通过 CTLE/DFE 实现,相位恢复通过 CDR 实现。 二者不能分家,必须协同工作。
4.5 本章知识结构
下面这张图总结了 Retimer 内部的工作原理和信号流。大家可以对照着捋一遍流程。
可以看到,CDR 在幅度恢复之后才开始工作。如果 CTLE 给不出可用的眼图,CDR 就是盲人摸象。而重新定时环节依赖 CDR 恢复的时钟和弹性缓冲,最后把干净的数据送到输出端。
4.6 实战选型要点
了解了原理之后,我们回头看看选型 Retimer 时应该关注什么:
| 参数 | 影响 | 我踩过的坑 |
|---|---|---|
| CDR 抖动容限 | 决定 Retimer 能跟踪多严重的抖动 | 曾经选了一款 25G 芯片,抖动容限只有 0.3 UI,遇到链路较差时频繁失锁 |
| PLL 带宽 | 低带宽滤高频抖动但跟踪慢,高带宽反之 | 建议根据上游时钟源噪声来定,一般选 5~10 MHz |
| 弹性缓冲深度 | 影响确定性延迟和延迟范围 | 不要盲目选大的,够用就好,不然延迟抖动会超标 |
| CTLE 增益范围 | 影响 Retimer 能处理的信道损耗上限 | 超过 25dB 损耗必须前置 Repeater 或者选更高级的 Retimer |
| 延迟锁定模式 | 是否有确定延迟模式 | 很多国产 Retimer 不标注这一项,需要咨询 FAE |
4.7 小结
Retimer 的核心价值就是同时恢复幅度和相位。幅度恢复靠 CTLE/DFE,相位恢复靠 CDR,重新定时靠弹性缓冲和本地时钟。这三个环节缺一不可。
你想想看,如果你的系统链路要求 10G 以上,并且你希望在每个中继点都“重置”信号质量,Retimer 是不二之选。但记住,它的延迟比 Repeater 大好几个 ns,而且对电源质量更敏感。咱们在实际布局时,Retimer 的电源滤波电容必须紧贴管教放,远一点就可能是灾难。