第4章 ReDriver 的工作原理:CTLE/DFE 均衡、预加重、去加重、线性放大
ReDriver 这玩意儿,说白了就是个信号整形器。你想想看,高速信号在 PCB 上跑,经过连接器、过孔、长走线,波形早就歪歪扭扭了。眼图闭合、抖动变大,这时候就需要 ReDriver 来救场。
我个人习惯把 ReDriver 的工作拆成三个核心环节:接收端均衡、发送端预/去加重、以及中间的线性放大。嗯,咱们一个一个聊。
4.1 接收端均衡:CTLE 与 DFE
信号从远端传过来,经历信道损耗,高频分量衰减得比低频厉害。结果就是码间干扰(ISI)——一个 bit 拖泥带水地影响到后面的 bit。典型的应对手段就是 CTLE 和 DFE。
4.1.1 CTLE(连续时间线性均衡)
CTLE 是个模拟滤波器,专门抬高高频增益。它的频率响应像一个带通的峰——在信道衰减最大的频点上把信号拉回来。好处是无延迟、无反馈,适合固定信道损耗的场景。
关键参数:CTLE 的增益峰值频率和提升量要跟信道特性对齐。我在项目中遇到过有人直接套用芯片默认配置,结果低频分量反而被过度提升,眼图更差。建议实测信道插损曲线后再调 CTLE。
CTLE 的传递函数大致长这样:
H(s) = A * (s/ωz + 1) / (s/ωp1 + 1) / (s/ωp2 + 1)
你可以通过外部引脚或寄存器调整零点 ωz 和极点 ωp1/ωp2 的位置。不同速率(比如 10Gbps vs 25Gbps)要用不同的提升曲线。
4.1.2 DFE(判决反馈均衡)
CTLE 是线性均衡,它能做的有限。对于残留的长尾 ISI,需要用 DFE 来去掉。DFE 靠的是判决后的反馈——把当前 bit 判断出来后,减掉它对后序 bit 的干扰。
DFE 的处理流程我用个图来展示:
经验提示:DFE 的抽头数量决定了它能消除多长的 ISI。一般 3~5 个 tap 足够应对 30 inch 以下的 FR4 走线。tap 太多会带来收敛慢和功耗增加的问题。
4.1.3 CTLE 与 DFE 的配合
实际 ReDriver 芯片里,CTLE 和 DFE 是串联工作的。CTLE 先做粗略均衡,把眼图稍微睁开;DFE 再精细化修正。这种组合的好处是——CTLE 减轻了 DFE 的压力,DFE 又补足了 CTLE 搞不定的长尾。
我建议你看芯片数据手册里的眼图裕度改善值来判断均衡能力。比如某颗芯片标称:CTLE 最大提升 12dB,DFE 可消除 15dB 的 ISI,两者叠加大约能补偿 27dB 的信道损耗。
| 参数 | CTLE | DFE |
|---|---|---|
| 类型 | 线性模拟 | 非线性数字反馈 |
| 延迟 | 低(无反馈) | 中(需1~2 UI 延迟) |
| 功耗 | 低 | 中等 |
| 适用 ISI | 短中距(< 5 UI) | 长尾(5+ UI) |
| 收敛问题 | 无 | 有(需训练) |
4.2 发送端均衡:预加重与去加重
接收端靠 CTLE/DFE 把进来的坏信号修好,但发送端也可以提前做手脚——预加重和去加重就是干这事儿的。
4.2.1 预加重
预加重是在发送端把高频分量额外抬高。具体做法:在数据跳变沿(01 或 10 转换)时,把发射幅度加大;连续相同的 bit 时保持正常幅度。这样信号经过信道衰减后,高频和低频分量反而更接近。
预加重的效果用预加重比来衡量,单位 dB。公式如下:
预加重比 = 20 * log10( 跳变沿幅度 / 非跳变沿幅度 )
举个例子:如果跳变沿送 1200mV,非跳变沿送 800mV,那预加重比就是 20*log10(1200/800) ≈ 3.5dB。
4.2.2 去加重
去加重跟预加重正好反过来。它保持跳变沿幅度不变,把连续相同 bit 的幅度压低。效果上跟预加重是一样的——让信号经过信道后,高频和低频的衰减更一致。
为什么会有两种?我个人的理解是:预加重对发送端功耗影响更大(因为跳变时要额外抬升),而去加重相对省电(只是压低非跳变部分)。但去加重会拉低信号的平均幅度,对接收端灵敏度要求更高。
避坑指南:我曾经在一个 25Gbps 项目中,选了默认去加重-6dB 的 ReDriver,结果接收端 CTLE 饱和了——信号幅度太低,CTLE 被迫开满增益,反而引入更多噪声。后来把去加重调到-3.5dB,眼图一下子就打开了。所以预/去加重和接收均衡必须联动调试。
4.3 线性放大(LA)
均衡做好了,信号形状对了,但幅度可能还不够。线性放大器 LA 就是干这个的——把信号整体提升到标准摆幅(通常是 PCIe 标准的 800~1200mV 差分峰峰值)。
注意这里强调线性。LA 不能引入非线性失真(比如饱和削波),否则前面的均衡就白做了。LA 的增益一般可调,典型范围 0~12dB,步进 1dB 或 0.5dB。
有些 ReDriver 把 LA 和 CTLE 集成在一起,用一个可调增益放大器(VGA)实现。但区分清楚:CTLE 只提升高频,LA 全频段放大。
4.4 均衡方案的综合对比
选 ReDriver 时,均衡方案是核心决策点。我整理了一张对比表:
| 均衡类型 | 部署位置 | 处理信号 | 典型功耗 | 适用速率 |
|---|---|---|---|---|
| CTLE | 接收端 | 模拟 | 5~20 mW | 所有高速 |
| DFE | 接收端 | 模拟+数字 | 20~100 mW | ≥ 10Gbps |
| 预加重 | 发送端 | 模拟 | 15~30 mW | 所有高速 |
| 去加重 | 发送端 | 模拟 | 10~25 mW | 所有高速 |
| 线性放大 | 发送/接收 | 模拟 | 10~30 mW | 所有高速 |
4.5 实际调试中要注意的细节
讲几个我踩过的坑吧:
- CTLE 和 DFE 的耦合效应:CTLE 增益太高会让 DFE 的输入信号过冲,导致 DFE 错误判决。我习惯先给 CTLE 一个保守的增益(比如 6dB),再让 DFE 自动训练,最后微调 CTLE。
- 预加重/去加重与发送端摆幅冲突:有些芯片的预设组合是去加重+高摆幅,结果信号发射端已经接近限幅,再加重就削波了。一定要检查芯片的发射幅度和预/去加重联合限制。
- 线性放大器的带宽:LA 的 -3dB 带宽必须大于信号速率的 0.7 倍(比如 25Gbps 信号需要 > 17.5GHz 带宽)。我在项目中看到过一次 LA 带宽不够,25Gbps 信号直接被滚降,眼图像被刀切了一刀。
小技巧:调试时可以用 PRBS31 码流,配合眼图仪观测。先从 CTLE 开始调,看眼图高度和宽度变化;再打开 DFE,看眼图中央的"眼睛"是否变清晰;最后微调预/去加重。别一上来就啥都动,分步验证才能找到最优解。
好了,ReDriver 的均衡原理就这些。核心一句话:接收端靠 CTLE+DFE 修复信号,发送端靠预/去加重预防衰减,中间用 LA 补足幅度。你理解了这个框架,后面看芯片 datasheet 的那些复杂曲线和寄存器表就不会懵了。