3、均衡参数详解:TxEQ(去加重/预加重)、RxEQ(CTLE/DFE)、Coefficient C-1, C0, C+1

好,咱们直接切入正题。上一节我们聊了为什么需要均衡,这一节我们来看看具体的“武器”是什么。说白了,PCIe链路均衡就是一套“发端整形、收端补偿”的组合拳。

我个人习惯把均衡分成两大部分来看:发送端(Tx)接收端(Rx)。发送端负责“预失真”,接收端负责“再修复”。你想想看,信号在传输过程中高频分量衰减得厉害,那我在发的时候就把高频分量多给一点,低频分量压一压,这不就扯平了吗?

3.1 发送端均衡:TxEQ(去加重 / 预加重)

TxEQ,全称是Transmitter Equalization。很多刚入行的同学容易把“去加重”和“预加重”搞混。我简单解释一下:

  • 预加重(Pre-emphasis):提升高频分量的幅度。说白了,就是让信号的跳变沿更“陡”。
  • 去加重(De-emphasis):降低低频分量的幅度。这是PCIe里更常用的说法。实际上,我们通常保持高频分量不变,把低频分量压下去。

嗯,这里要注意:在PCIe规范里,我们通常说“去加重”而不是“预加重”。因为实现上,我们是在降低非跳变位的幅度,而不是提升跳变位的幅度。这样做的好处是——不增加总功耗。

核心概念:TxEQ的本质就是通过调整连续相同bit(非跳变位)与跳变位之间的幅度差,来补偿信道的高频损耗。

3.2 三个关键系数:C-1, C0, C+1

说到TxEQ,就绕不开这三个系数。我在项目中遇到过不少工程师,对着这三个系数一脸懵。其实没那么复杂,我换个角度给你讲。

PCIe Gen3及以后的规范,把发送端的抽头(Tap)模型抽象成了三个系数:

系数 名称 作用 典型值范围
C-1 前光标(Pre-cursor) 影响下一个bit(未来bit)的幅度 0 ~ 0.2(通常较小)
C0 主光标(Main-cursor) 影响当前bit的幅度 0.5 ~ 0.9(最大)
C+1 后光标(Post-cursor) 影响上一个bit(过去bit)的幅度 0 ~ 0.4(去加重主要靠它)

为什么会这样设计?因为信号在信道中传输时,不仅当前bit会受到前面bit的干扰(ISI),还会影响到后面的bit。这三个系数就是用来做“前后抵消”的。

约束条件:C-1 + C0 + C+1 = 1(归一化后)。这个等式必须成立,因为总能量要保持不变。

我的经验:调试时,我一般先固定C0,然后调整C+1来补偿信道的长尾效应。C-1通常用得比较少,除非你遇到的是特别严重的“前向干扰”。

3.3 接收端均衡:RxEQ(CTLE / DFE)

发送端做完“预失真”后,信号到了接收端,还得再处理一下。接收端均衡主要分两步走:

3.3.1 CTLE(连续时间线性均衡器)

CTLE本质上是一个高通滤波器。它做的事情很简单:放大高频,抑制低频

我曾经调试过一个板卡,眼图在CTLE之前完全是闭合的,CTLE一打开,眼图立马张开了一半。CTLE的优点是线性、无延时,但它有个硬伤——它会同时放大高频噪声。

  • 优点:实现简单,功耗低,无时序问题
  • 缺点:无法区分信号和噪声,高频噪声会被一起放大
  • 典型参数:DC增益、高频增益、零点/极点频率

3.3.2 DFE(判决反馈均衡器)

CTLE搞不定的残余ISI,就交给DFE来处理。DFE是非线性的,它利用之前判决出的bit值来“预测”并抵消当前bit受到的干扰。

说白了,DFE就是“以毒攻毒”——用过去的判决结果来修正现在的信号。

避坑指南:我曾经遇到过DFE发散的情况,眼图反而变得更差。原因很简单——DFE的初始训练没做好,或者信道变化太快。记住,DFE对“错误传播”非常敏感,一个bit判错,后面可能跟着错一串。

DFE的典型参数包括:

  • 抽头数(Taps):PCIe Gen3通常用1~2个抽头,Gen4/Gen5可能需要4~5个
  • 系数(d1, d2, ...):每个抽头的权重,需要自适应算法来调整
  • 自适应速率:太快容易振荡,太慢跟不上信道变化

3.4 知识体系结构图

下面这张图,是我自己总结的PCIe均衡参数全景图。你可以把它当作一个“地图”,调试时对照着看,思路会清晰很多。

PCIe链路均衡参数全景图 发送端 (Tx) 接收端 (Rx) 信道 TxEQ (去加重/预加重) 调整跳变位与非跳变位的幅度差 三个关键系数 C-1 (前光标): 影响未来bit C0 (主光标): 影响当前bit C+1 (后光标): 影响过去bit 约束: C-1 + C0 + C+1 = 1 Preset / 预设 PCIe规范定义了多组预设值 (P0~P10),方便快速切换 RxEQ (CTLE + DFE) 线性均衡 + 非线性均衡 CTLE (连续时间线性均衡) 高通滤波器,放大高频 参数: DC增益、高频增益、零点 缺点: 会同时放大高频噪声 DFE (判决反馈均衡) 非线性,用过去判决修正当前 参数: 抽头数、系数、自适应速率 注意: 错误传播问题 调优思路 先调TxEQ (C-1, C0, C+1) → 再调CTLE (高频增益) → 最后调DFE (抽头系数)

3.5 实战中的调优顺序

好了,参数都认识了,那实际调试时怎么下手?我个人的习惯是:

  1. 先调TxEQ:用预设值(Preset)快速扫一遍,找到眼图相对较好的区域
  2. 再微调C+1:如果眼图有“拖尾”,适当增加C+1的值
  3. 然后调CTLE:增加高频增益,让眼图进一步张开
  4. 最后调DFE:处理CTLE搞不定的残余ISI

小技巧:调试时不要同时动太多参数。我见过有人一口气改了TxEQ、CTLE、DFE三个地方,结果眼图变差了,根本不知道是哪个参数导致的。一次只改一个变量,这是调试的基本原则。

嗯,这一节的内容就到这里。均衡参数看起来多,但核心逻辑其实很清晰——发端预补偿,收端再修复。下一节我们会把这些参数放到实际的眼图测试中去,看看它们到底是怎么影响眼图形状的。


专注资料整理