Equalization基础概念:信号均衡的“还我漂漂拳”

好了,聊完了PCIe链路训练的大框架,咱们得深入一个核心环节——Equalization。这词翻译过来叫“信号均衡”,名字挺学术,但干的事特别接地气。

你想想看,PCIe Gen3跑在8GT/s,Gen4跑在16GT/s,Gen5更是飙到32GT/s。信号频率这么高,在PCB板子上走一小段,衰减就非常严重。波形本来方方正正的,跑一段路就变得圆头圆脑,这叫“码间干扰”(ISI)。

说白了,均衡就是一套补偿机制。发射端和接收端联手,把被信道“整容整歪了”的信号,再给它拉回原样。我在Gen3刚普及那几年,曾因为没搞懂均衡参数,联调死活过不去,最后发现就是预加重没配对。

一句话总结:信号均衡,就是发射端“预变形”+ 接收端“再矫正”,让最终进入采样器的波形尽量干净。

为什么非要搞均衡?

高频信号在传输线上的损耗很大。尤其你走FR4板材,介质损耗和趋肤效应会严重拉低信号的高频分量。

  • 趋肤效应:电流只走导体表面,频率越高,有效截面越小,阻抗越大。
  • 介质损耗:PCB板材会吸收部分电磁能量,频率越高越明显。

结果就是:上升沿变缓,眼图闭合,接收端很难判断“0”还是“1”。如果不开均衡,信号可能根本过不了PCB上30cm的走线。

经验之谈:在Gen3时代,链路长度超过25英寸(约63厘米)而不开均衡,眼图基本上就是一团泥巴。我实测过,不开均衡时眼高只有30mV,开了能达到180mV,差距巨大。

PCIe里的均衡三板斧

PCIe的Equalization分发射端和接收端两部分。发射端做“预加重/去加重”,接收端做“CTLE”和“DFE”。我画了个图,帮你把这些概念串起来。

PCIe 均衡链路全景图 发射端 (Tx) FFE / 预加重 / 去加重 3 个 Tap 系数 接收端 (Rx) CTLE + DFE 模拟 + 数字 通道 (Channel) PCB + 连接器 + 线缆 预加重 增强跳变位幅度 补偿高频衰减 去加重 压低非跳变位幅度 效果同预加重 CTLE 连续时间线性均衡 模拟高通滤波器 DFE 判决反馈均衡 消除后标符干扰 均衡流程 1. Tx:先做预加重/去加重 2. 信号经过信道进一步衰减 3. Rx:CTLE 做高频增益 4. Rx:DFE 消除残差 5. 最终眼图达标

发射端均衡:预加重与去加重

发射端均衡其实是个“反向操作”。信道对高频分量损耗大,那就在发射时把高频分量故意增强。但具体怎么增强?两种方式。

预加重 (Pre-emphasis)

就是“跳变的地方加把劲”。当信号从0变1或从1变0时,发射器多输出一点电压。持续不变的部分就保持正常幅度。

  • 本质:提高信号跳变边沿的高频能量。
  • 设置方式:PCIe Gen3里通过设置 Tx Preset 来控制。
  • 影响:预加重过大,会导致过冲;过小,则无法补偿信道损耗。

去加重 (De-emphasis)

名字听起来相反,但效果一样。它不增强跳变位,而是降低非跳变位(连续相同电平的部分)的幅度。

  • 本质:相对地凸显了跳变位的高频分量。
  • PCIe规范:Gen1/Gen2里常说的 -3.5dB 去加重,就是非跳变位幅度比跳变位低 3.5dB。
  • 背后原理:降低直流分量,让交流分量更突出。

我个人的习惯:调试时先看去加重值。如果链路跑不稳,我会先尝试把去加重从 -6dB 改成 -3.5dB。别小看这 2.5dB 的差距,经常就能把误码率从 1e-6 降到 1e-12。

接收端均衡:CTLE与DFE

信号经过信道后,已经被虐得不成样子了。接收端得负责“善后”。接收端均衡分两步走:CTLE是模拟的粗调,DFE是数字的精调。

CTLE (Continuous Time Linear Equalizer)

就是一个模拟高通滤波器。它放大信号的高频部分,同时压制低频噪声。

  • 特点:连续时间、线性。不依赖时钟,实时处理。
  • 参数:增益 (Peaking Gain) 和 零点/极点位置。
  • 优点:不放大噪声,只放大信号中的高频分量。
  • 缺点:增益太大,会放大串扰噪声。

DFE (Decision Feedback Equalizer)

它是数字域的处理。DFE 通过“判决-反馈”回路,把上一个已经判决出来的符号产生的干扰,从当前符号里减掉。

  • 本质:消除后标符干扰 (Post-cursor ISI)。
  • 实现:通常有 1~4 个 Tap。每个 Tap 对应一个不同的延时和系数。
  • 和CTLE的关系:CTLE先做模拟预处理,把眼图稍微打开一点,DFE再去咬掉剩下的干扰。两者配合使用。

我曾经踩过的坑:DFE的Tap数看着多就好?不是。Tap数越多,DFE环路的延迟约束越严格,而且容易误收敛。我见过一个案例,DFE的Tap3系数调得太猛,结果本该收敛到正确值的环路,反而锁在了一个错误状态,导致链路无法建立。后来我是强制锁死DFE的初始系数,才绕过去的。

FFE(前馈均衡)

FFE其实和预加重是一回事,只是从不同的角度描述。预加重是站在时域看,FFE是站在数字滤波器角度看。FFE有多个Tap(通常3个),延迟相加后输出。

  • Pre-cursor Tap:超前于主码。
  • Main Cursor:当前判决的码。
  • Post-cursor Tap:滞后于主码。

预加重/去加重其实就是调整这几个Tap的系数。PCIe Gen3规范里定义的Tx Preset,本质上就是预定义好的几组Tap系数。

术语速查表

术语 全称 所在位置 一句话作用
Pre-emphasis 预加重 发射端 增强跳变沿的高频分量
De-emphasis 去加重 发射端 降低非跳变位的直流分量
CTLE 连续时间线性均衡器 接收端 高频增益,模拟粗调
DFE 判决反馈均衡器 接收端 消除后标符干扰,数字精调
FFE 前馈均衡器 发射端 多Tap滤波器,实现预加重/去加重
ISI 码间干扰 信道 前后码符号相互影响的现象

避坑指南:CTLE和DFE的配置,强烈建议先看芯片的Application Note。不同厂家的SerDes,内部CTLE的零点位置和DFE的收敛算法差别很大。我曾经碰到过一个情况,某FPGA的CTLE增益范围是0~15dB,但实测超过12dB就开始狂噪,白费了我两天时间。

嗯,这些就是Equalization的基础概念。说白了,就是一套“我预判了你的预判”的补偿机制。记住每个角色干的活,后面讲它们怎么跟ASPM(主动电源管理)交互时,你才不会被绕晕。