4、Retimer架构详解:PLL/CDR模块、时钟恢复、数据重定时、前向纠错支持

好,咱们今天来啃一块硬骨头——Retimer的内部架构。

说实话,很多工程师用了好几年Retimer,但问起它里面到底怎么工作的,往往就卡壳了。我当年刚接触高速设计时也一样,总觉得这玩意儿就是个“信号放大器plus”。直到有一次项目里信号死活过不了眼图模板,我才被迫把Retimer的数据手册从头啃到尾……嗯,从那以后,我再也不敢小看这个小小的芯片了。

4.1 Retimer的核心模块:PLL与CDR

Retimer的心脏,说白了就是两个东西:PLL(锁相环)CDR(时钟数据恢复)。这两个模块配合工作,才能完成“把烂信号洗干净”的任务。

关键区别:Redriver只是放大信号,Retimer是重新生成信号。一个是“美颜滤镜”,一个是“整容手术”。

4.1.1 PLL模块:产生干净的本地时钟

PLL的作用,是从输入的参考时钟(或者从数据中提取的时钟)里,生成一个低抖动、高精度的本地时钟。这个时钟用来给后面的数据重定时模块做“节拍器”。

我个人习惯把PLL分成三个部分来看:

  • 鉴相器(PFD):比较输入时钟和反馈时钟的相位差
  • 环路滤波器(LF):滤掉高频噪声,决定PLL的带宽
  • 压控振荡器(VCO):产生高频时钟信号

这里有个坑——PLL的带宽选择。带宽太宽,噪声抑制差;带宽太窄,锁定时间太长。我在一个PCIe Gen4的项目里就吃过这个亏,PLL带宽设得太窄,结果链路训练时老是超时……后来把环路滤波器的电容改小了一档,问题就解决了。

4.1.2 CDR模块:从数据里“抠”出时钟

CDR是Retimer最核心的技术。它的任务是从串行数据流中提取出时钟信息,然后用这个时钟去采样数据。

为什么需要CDR?因为高速信号在传输过程中,时钟和数据的相位关系已经乱了。你想想看,信号经过PCB走线、连接器、电缆,抖动和漂移早就把时序搞得一塌糊涂。CDR就是要把这个“失散”的时钟找回来。

CDR的实现方式主要有两种:

类型 原理 优点 缺点
基于PLL的CDR 用PLL跟踪输入数据的相位 结构简单,成熟可靠 锁定时间长,对抖动敏感
基于相位插值的CDR 用数字算法调整采样相位 锁定快,抖动容限大 功耗稍高,设计复杂

现在的Retimer芯片,主流方案都是基于相位插值的CDR。我记得2018年做一款25Gbps的背板设计时,用的就是这种方案。当时测试眼图,CDR锁定后的抖动只有0.2UI,效果相当不错。

4.2 时钟恢复:把“脏”时钟洗干净

时钟恢复,说白了就是CDR的“干活过程”。它包含三个步骤:

  1. 边沿检测:找到数据信号的上升沿和下降沿
  2. 相位调整:调整本地时钟的相位,使其对准数据眼图的中心
  3. 时钟生成:输出一个与数据同步的干净时钟

这里有个重要的概念——抖动传递函数。CDR对输入抖动的响应,就像一个低通滤波器。低频抖动会被跟踪,高频抖动会被抑制。这个转折频率,就是CDR的带宽。

实战经验:CDR带宽一般设为数据速率的1/1000到1/500。比如10Gbps的信号,CDR带宽在10MHz到20MHz之间比较合适。我曾经试过把带宽设到50MHz,结果高频噪声全进来了,眼图反而更差。

4.3 数据重定时:重新“对齐”数据

数据重定时,是Retimer的“最后一公里”。CDR恢复出时钟后,用这个时钟去重新采样输入数据,输出一个全新的、干净的信号。

这个过程可以用一个简单的框图表示:

输入数据 CDR PLL 重定时 输出数据 时钟路径 数据路径 抖动输入 干净输出

重定时最关键的一点是:它消除了输入信号的抖动。输入信号即使有再大的抖动,经过重定时后,输出的信号只包含Retimer自身PLL产生的抖动。这就是Retimer能“净化”信号的根本原因。

注意:重定时不是万能的。如果输入信号的抖动太大,超过了CDR的跟踪范围,CDR就会失锁。我曾经在一个40Gbps的背板测试中,因为连接器接触不良导致信号抖动超过0.8UI,结果Retimer直接罢工了……所以,Retimer虽然能改善信号质量,但也不能完全无视通道的物理限制。

4.4 前向纠错支持:Retimer的“高级技能”

前向纠错(FEC)是高速串行通信中不可或缺的技术。Retimer对FEC的支持,主要体现在两个方面:

4.4.1 透传模式

最简单的支持方式——Retimer不关心FEC编码,直接把数据透传过去。这种方式实现简单,但Retimer无法参与FEC的纠错过程。

4.4.2 参与模式

高级的Retimer会内置FEC引擎,能够:

  • 检测错误:识别FEC编码中的错误码字
  • 纠正错误:在重定时过程中直接纠正错误
  • 重新编码:输出重新编码后的FEC数据

我记得在IEEE 802.3bj(100Gbps背板)的标准制定过程中,就明确要求Retimer必须支持FEC的参与模式。因为100Gbps的信号经过背板后,误码率可能高达10^-6,没有FEC根本跑不起来。

FEC类型 编码效率 纠错能力 Retimer支持
RS-FEC (528,514) 97.3% 可纠正7个符号错误 主流支持
Fire Code 96.8% 可纠正11位突发错误 部分支持
CRC + 重传 取决于重传概率 检测错误后重传 不支持

选型建议:如果你的系统使用了RS-FEC(比如PCIe Gen5/Gen6、100G以太网),一定要选支持FEC参与模式的Retimer。否则,FEC的纠错能力会大打折扣。我见过一个项目,因为选了便宜的透传模式Retimer,结果链路误码率始终降不下来……最后换芯片,多花了两个月时间。

4.5 总结:Retimer架构的核心要点

好了,咱们把Retimer的架构捋一遍:

  • PLL:产生干净时钟,是Retimer的“心脏”
  • CDR:从数据中恢复时钟,是Retimer的“眼睛”
  • 重定时:用恢复的时钟重新采样数据,是Retimer的“手”
  • FEC支持:参与纠错,是Retimer的“大脑”

这四个模块缺一不可。选型时,一定要根据你的系统需求(数据速率、通道长度、FEC类型)来选择合适的Retimer。别光看价格,性能才是王道。

嗯,这一章的内容就到这儿。下一章咱们聊聊Retimer的选型实战,到时候我会拿几个真实案例出来分析。


公众号:蓝海资料掘金营,微信deep3321