均衡器概述:CTLE 与 DFE 归纳总结
信号从发射端跑到接收端,中间经过 PCB 走线、连接器、过孔……一路下来,高频分量衰减得厉害。咱们在接收侧看到的眼图,往往是闭着的、抖的、乱的。
这时候就要上均衡器了。我个人习惯把均衡器理解成「信号整形器」——它不是放大整个信号,而是有选择地补偿不同频率的损失。目前高速串行链路里最主流的两种均衡手段,就是 CTLE(连续时间线性均衡器)和 DFE(判决反馈均衡器)。
这章我带你过一遍它俩的核心思路、优缺点,以及怎么搭配着用。
为什么需要均衡?——先看信道干了什么
信道是个低通滤波器。你发一个方波,等它跑到接收端,上升沿变缓、幅值变小、码间串扰(ISI)冒出来了。
举个我实际遇到的例子:某次调试 25Gbps 背板,链路长度大约 30 英寸。不加均衡时,眼图完全闭合,根本测不出误码率。当时我以为是 PCB 设计问题,后来加了 CTLE 和 DFE,眼图直接打开到 0.3UI 以上。嗯,信道欠你一个均衡。
均衡的作用就是反着来:在接收端提供一个高通或带通的特性,抵消信道的低通效应。
CTLE:连续时间线性均衡器
它是怎么工作的?
CTLE 本质上是一个模拟滤波器。它用一对零点和一个极点,在特定频率上提升增益。你调节零点/极点的位置,就能控制高频提升的量和开始提升的频率点。
说白了,CTLE 是「线性」的——它对输入信号做线性滤波,不会产生额外的非线性失真。这也是它名字里“线性”的由来。
传递函数 H(s) = (s/ωz + 1) / (s/ωp + 1)
ωz 是零点频率,ωp 是极点频率。零点频率决定了高频提升的起始点,极点频率限制了提升的最高频率。
实际调参要点
- 高频增益(Peaking Gain):提升量太小,高频分量补不够;提升量太大,会把噪声和高频串扰也放大。我在某次 56G PAM4 项目中,CTLE 峰值增益调到了 8 dB,结果高频噪声直接把信号淹没了……后来降到 5 dB,配合 DFE 才搞定。
- 低频增益(Low-Frequency Gain):通常就是直流增益,一般设为 0 dB 或略负。如果低频增益太高,低频能量过大,会导致 DFE 抽头饱和。
- 零极点位置:通常芯片会提供几个固定档位。你扫一遍眼图,选眼宽最大的那个档位就行。
CTLE 的带宽不要设得太高。曾经我为了贪眼图高度,把 CTLE 带宽推到 20 GHz 以上,结果高频噪声全部进来了,DFE 根本收不住。建议 CTLE 带宽控制在信号奈奎斯特频率的 1.5 倍以内。
DFE:判决反馈均衡器
它跟 CTLE 有什么不同?
DFE 是「非线性」的。它用之前已经判决出来的符号来抵消当前符号受到的码间串扰。具体做法是:把前几个符号乘上一个系数(抽头系数),然后从当前符号中减掉。
你想想看,DFE 不会放大噪声——因为它减掉的是后光标 ISI,这部分是确定的,不包含噪声。这是 DFE 相比 CTLE 最大的优势。
DFE 结构
| 参数 | 说明 |
|---|---|
| 抽头数(Taps) | 决定了能抵消的 ISI 长度。通常 1~5 个抽头。更多抽头能抵消更长的 ISI,但也会增加功耗和收敛难度。 |
| 抽头系数 | 每个抽头对应的权重。通过 LMS 算法自适应更新。第一抽头最重要,通常最大。 |
| 反馈环路 | 必须在 1 个 UI 时间内完成判决和减法,所以时序要求很苛刻。我记得某个 112G 项目中,DFE 第一抽头反馈延时要求小于 8 ps,否则效果会大打折扣。 |
DFE 抽头数并不是越多越好。抽头一多,自适应收敛速度变慢,而且相邻抽头容易互相干扰。我通常建议:从 1 个抽头开始,逐个增加,直到眼图改善不明显为止。
DFE 的局限性
- 错误传播:一旦某个符号判决错误,后续几个符号的 ISI 抵消也会跟着错,形成一连串误码。好在大部分芯片都有纠错码兜底。
- 无法抵消前光标 ISI:DFE 只能处理后光标 ISI,前光标 ISI 要靠 CTLE 或 FFE 来补偿。
- 时序闭环:必须配合时钟恢复(CDR)一起工作。CDR 的采样相位要刚好对准眼图中心,DFE 才能准确判决。
CTLE 与 DFE 对比速览
| 维度 | CTLE | DFE |
|---|---|---|
| 处理域 | 频域(连续时间) | 时域(离散时间) |
| 线性/非线性 | 线性 | 非线性(判决反馈) |
| 噪声影响 | 会放大噪声 | 不放大噪声 |
| ISI 类型 | 前光标+后光标均可补偿 | 仅补偿后光标 |
| 功耗 | 低(模拟电路) | 中高(数字逻辑+模拟反馈) |
| 自适应 | 通常手动或简单自适应 | 多用 LMS 自适应 |
| 适合信道 | 中等损耗(< 15 dB) | 高损耗(> 20 dB) |
CTLE + DFE 联合调整的逻辑
为什么非要联合调整?
因为单独的 CTLE 对噪声敏感,单独的 DFE 又处理不了前光标。你想想看,一个链路损耗 25 dB,单靠 CTLE 把高频提上去,噪声也跟着上去了,眼图张开度反而下降。单靠 DFE,前光标 ISI 留那儿,同样打不开眼。
正确的做法是:CTLE 做主升,DFE 做精调。
- 第一步:设定 CTLE 的峰值增益和零点位置,让后光标 ISI 的主要部分被压缩,同时前光标 ISI 降到可接受范围。这个过程可以先用仿真扫一遍,也可以直接在芯片上扫眼图。
- 第二步:启动 DFE 自适应。通常芯片会先从训练序列或盲均衡开始,快速收敛第一抽头。然后依次收敛后续抽头。
- 第三步:互调优化。有时候 CTLE 增益调高一点,DFE 的抽头系数可以小一点,整体噪声更小。我习惯列一个矩阵:CTLE 增益 3/5/7 dB,配合 DFE 抽头 1/2/3,分别测眼高眼宽,选综合最优的。
- 第四步:检查裕量。联合调整完,记得留一点余量给温度和工艺变化。硬件上通常要跑 -3 dB 的裕量测试。
CTLE 负责砍掉大部分 ISI,DFE 负责清理残留在后光标上的小尾巴。CTLE 不要做得太狠,给 DFE 留点空间;DFE 抽头不要太多,避免收敛困难。
整体知识框架
下面这张图总结了这个章节的核心内容——从信道问题出发,到 CTLE、DFE 各自的角色,最后落到联合调整流程。
一些心里话
我做了这么多年信号完整性,最深的一个体会是:CTLE 和 DFE 从来不是非此即彼的选择。它们是搭档,甚至可以说是「兄弟」——一个负责粗调,一个负责精修。
实际芯片调试时,我经常遇到新人只看到 CTLE 把眼图打开了,就以为搞定了。但其实这时候眼图的高度可能很大,宽度却不够,稍微有点抖动就跑飞了。再加 DFE 之后,眼宽明显变好,这才是真正的「打开眼图」。
还有一句话想说:调试均衡器,一定要结合你的实际信道。别迷信理论最优值。我在仿真软件里算出的 CTLE 最佳增益是 7 dB,结果在板上一测,因为电源噪声的存在,5 dB 才是最好的。所以,以实际眼图为准。