Retimer 的工作原理

老规矩,讲 Retimer 之前,咱们得先搞明白一件事:它到底在信号链路里干了什么?说白了,Retimer 就是一个“信号重生器”——它不光放大眼图,还把时钟和数据重新对齐,把抖动的时钟抖掉,再送出去。我个人习惯把这过程拆成三步:CDR 时钟数据恢复、PLL 重定时、去抖动机制。嗯,这三步串起来,才是真正的 Retimer 核心。

一句话说清:ReDriver 只是放大波形,Retimer 是重新造一个干净信号。差在“有没有 CDR + PLL”。

3.1 CDR 时钟数据恢复——眼睛的“时钟锁”

CDR(Clock Data Recovery)是 Retimer 的第一关。它要从带有抖动的数据流里,把嵌入的时钟硬“抠”出来。你想想看,高速串行信号里根本没有单独的时钟线,时钟是藏在数据跳变里的。CDR 必须盯着每个边沿,动态调整自己的本地时钟,让它和数据的相位锁住。

我在项目里遇到过一个问题:CDR 的锁定时间太长,导致链路训练失败,整个 PCIe 链路死活不协商。后来查出来是 CDR 环路带宽设得太窄了。这东西其实讲究一个“带宽取舍”——带宽太窄,锁定慢,抗抖动差;带宽太宽,又容易被数据模式干扰。一般 PCIe Gen4 的 CDR 带宽在 2~10 MHz 之间,看具体芯片。

CDR 关键指标:
  • 锁定时间(Lock Time):通常要求 < 10 µs
  • 抖动传输带宽(Jitter Transfer Bandwidth):影响去抖能力
  • 环路带宽(Loop Bandwidth):太宽会引入数据模式抖动(DDJ)

3.2 PLL 重定时——把信号“对齐到新的时钟”

CDR 恢复出来的时钟其实还有残余抖动。接下来,Retimer 会用 PLL(锁相环)生成一个全新的、干净的低抖动时钟,然后用这个时钟对数据进行重采样。这就是“重定时”的核心——数据被重新同步到一个本地低抖动时钟域。

PLL 的设计也很有讲究。我建议重点关注PLL 的相位噪声和锁定范围。相位噪声直接影响输出信号的抖动预算。比如 12G-SDI 的 Retimer,PLL 相位噪声峰峰值要控制在 1 ps 以内,否则后面链路很容易超规格。

有一次我做 10G 以太网 Retimer 选型,发现有一款芯片的 PLL 在低温下频率锁定点漂了 200 ppm,结果整板测试眼图全闭。后来换了带温度补偿的 PLL 方案才搞定。嗯,这类坑其实不少见。

PLL 重定时关键参数对比
参数典型值影响
相位噪声(@1MHz offset)-120 dBc/Hz 以下决定输出抖动
锁定范围±500 ppm 或更宽适应数据率变化
PLL 环路带宽与 CDR 环路匹配避免干扰
VCO 中心频率目标数据率 × N决定输出时钟质量

3.3 去抖动机制——把眼图“推”开

去抖动(De-jitter)是 Retimer 的“画龙点睛”之功。CDR 和 PLL 已经帮信号恢复了时钟,但信号里还可能残留一些低频抖动(比如 Wander)或高频抖动。Retimer 通常在 PLL 之后加一个抖动衰减滤波器,进一步压住输出抖动。

实际上去抖动能力就是 Retimer 和 ReDriver 最大的分水岭。ReDriver 只能等比例放大抖动,而 Retimer 能降低抖动。我记得有个 8K 视频传输项目,整板走线很长,信号经过两个板内连接器后眼高只剩 30%。一开始想着用 ReDriver boost 一下,测试发现抖动从 0.3 UI 涨到 0.5 UI,直接废了。换了个 Retimer,最后出去的眼图干净得像刚发出来一样。

避坑指南:去抖动不是越多越好!过量去抖动会增加 CDR 锁相难度,甚至引起 PLL 失锁。我曾经一个项目把 Retimer 的抖动衰减带宽设得太低,结果信号跳变稀疏时 PLL 直接 unlock,整条链路丢包。后来按照芯片手册推荐的带宽设置才算稳定。

3.4 Retimer 内部核心流程

下面这张图把 Retimer 从输入到输出的信号处理流程画出来了。你看一眼就明白——进来一个脏信号,经过 CDR → PLL 重定时 → 去抖动,出去一个干净信号。

Retimer 内部工作原理流程图 带抖动的输入信号 CDR 时钟数据恢复 提取时钟,同步相位 PLL 重定时 生成干净时钟,重采样数据 去抖动滤波器 衰减残余抖动 干净的输出信号 关键关系 CDR 恢复时钟送给 PLL PLL 产生干净时钟用于重定时 去抖动在 PLL 之后做 去抖动本质 通过衰减低频抖动 保留数据频率成分 注意环路带宽匹配

3.5 三个关键机制的协同

CDR、PLL、去抖动不是独立工作的。CDR 恢复的时钟质量,直接影响 PLL 的锁定噪声;PLL 的环路带宽又决定了去抖动的效果范围。选型时我经常看芯片的整体抖动传递函数,而不是只看单一指标。

协同要点:
  • CDR 环路带宽 ≤ PLL 环路带宽的 1/5(避免相互干扰)
  • 去抖动滤波器的截止频率应低于 PLL 带宽
  • 整体输出抖动 = 输入抖动 × 抖动传递增益 + 内部附加抖动
  • 链路预算时保证输出总抖动 < 0.25 UI(对 PCIe Gen4 而言)

3.6 实战中的快速检查清单

每次评估 Retimer,我都会拿这个清单过一遍,省得踩坑:

  1. CDR 锁定时间:手册里有没有标?没标的话,实测或找 FAE 要。PCIe 训练要求几十 µs 内锁定。
  2. PLL 相位噪声:关注 1 MHz 和 10 MHz offset 处的噪声密度。
  3. 抖动衰减带宽:看芯片是否提供可编程选项。固定带宽的 Retimer 在某些协议下会很尴尬。
  4. 支持的数据率范围:有些 Retimer 只能锁定在几个离散频率,而不是连续范围。比如有的只能支持 8.1 Gbps 和 16.3 Gbps,中间没有。
  5. 眼图裕量:在芯片输出端测眼图,看眼高、眼宽是否留够 20% 以上裕量。
别踩这个坑:某次我在 25G NRZ 链路上选了一个号称支持 1-28 Gbps 的 Retimer,结果实测 25.78125 Gbps 时 PLL 失锁。后来才发现它的 CDR 环路在高于 25 Gbps 时增益不够。所以一定要用实际数据率去验证,别只看标称范围。