Repeater与Retimer概述
咱们做高速串行设计的,肯定都遇到过信号衰减的问题。PCIe、SATA、USB这些总线,跑得越快,板上的走线就越像一根天线——损耗、串扰、抖动全来了。这时候就得请出两样法宝:Repeater和Retimer。
很多人觉得它俩就是一回事嘛,都是“中继器”。其实不然。我在一个PCIe Gen4的项目里就吃过这个亏,一开始用了Repeater,结果链路死活不稳,后来换成Retimer才搞定。你说差异大不大?
这一章咱们先搞清楚最基本的东西——它俩到底是谁,在链路上站在哪儿,又干了什么活。
什么是Repeater
Repeater,中文叫“中继器”或“转接驱动器”。它的本职工作很简单:把进来的信号放大,再原封不动地发出去。说白了就是模拟域的“信号放大器”。
它不关心信号里装的是什么数据,也不管时钟对不对。只做两件事:
• 补偿传输损耗(让眼图张开一点)
• 均衡高频衰减(用CTLE/DFE把高频分量拉回来)
但它有个硬伤——不能消除抖动。进来的抖动多大,出去的抖动也多大,甚至还会因为放大电路引入额外噪声。
什么是Retimer
Retimer,中文叫“重定时器”。它比Repeater多了一个关键能力——恢复时钟并重新对齐数据。
它的内部一般有CDR电路(时钟数据恢复),能把进来的比特流跟本地的PLL锁相,重新生成一个干净的时钟,再用这个时钟把数据重新发出去。这样不只放大了信号,还把抖动和时钟歪斜都清理掉了。
我记得有一次调试SAS链路,线缆长了点,眼图已经闭了一半。加了Retimer之后,眼图直接恢复到跟芯片输出差不多——这就是CDR的力量。
它们在高速串行链路中的位置
无论是PCIe、USB4、还是100G以太网,典型的高速链路结构是这样的:
发送端 → 走线/线缆 → 中继器件 → 走线/线缆 → 接收端
Repeater和Retimer就插在中间的某个位置。具体放哪,取决于链路损耗和抖动预算。
我习惯用下面这张图来给团队讲清楚它们的作用范围:
功能差异速览表
| 对比项 | Repeater | Retimer |
|---|---|---|
| 处理域 | 模拟域 (放大、均衡) | 数字域 (CDR + 重发) |
| 抖动抑制 | 无,甚至可能增加 | 强,可清除大部分抖动 |
| 时钟恢复 | 不需要(透明直通) | 必须(内部PLL + CDR) |
| 延迟 | 极低(1~2 UI) | 中等(几~十几 UI) |
| 协议感知 | 无(完全透传) | 部分(比如PCIe可识别L1状态) |
| 功耗 | 较低 | 较高(因为CDR+PLL) |
| 典型成本 | 低 | 高 |
为什么需要区分它们
你想想看,一个高速链路的设计,第一步就是算损。总损耗 = 发送端输出摆幅衰减 + 走线/连接器损耗 + 接收端灵敏度拐点。算完之后你就要决定:
- 损耗不大,只是眼图有点塌 → Repeater 够用
- 损耗大,而且抖动已经超标 → Retimer 必须上
说白了就是:Repeater解决幅度问题,Retimer解决时间问题。幅度问题好办,加个放大;时间问题就麻烦多了,必须把时钟和数据的对齐关系重建一遍。
我个人习惯在方案定型前,先拉一个链路预算表格,把抖动分量一项项列清楚(TX抖动、走线ISI、串扰、PLL噪声……)。如果随机抖动RMS超过0.3UI,我就直接选用Retimer,不纠结。
它们的长相和接口
实物上,Repeater和Retimer的封装可能一模一样——都是QFN、BGA之类。但看数据手册里的功能框图就能一眼分辨:
- Repeater框图里只有EQ(均衡器)和Driver(驱动)
- Retimer框图里一定有CDR和PLL,有时还带分频器
另外要注意:有些芯片厂商会管自己的Repeater叫“线性Repeater”或“Redriver”,而Retimer有时也叫“Re-timer with CDR”。但本质没变——看它带不带时钟恢复。
链路距离短,抖动小 → 用Repeater,省成本省功耗
链路距离长,抖动大 → 上Retimer,保眼图保误码率
好,这一章我们把Repeater和Retimer的定义、区别、在链路上的位置都梳理清楚了。你心里应该有个底:它们不是同一个东西,选错了,后面调试会让你很头疼。