第三章:预加重与去加重——TX 均衡基本原理归纳总结
好,我们进入第三章。聊链路参数调优,有一个坎儿你绕不过去——TX 均衡。说白了,就是发射端怎么把信号“预处理”一下,让它在经过损耗严重的通道后,接收端还能看清楚是 0 还是 1。
我个人习惯把 TX 均衡叫做“信号整形”。它不是放大,也不是滤波,而是有针对性地调整每个 bit 的发射幅度。为什么需要这样?你想想看,高速信号穿越 PCB 走线、连接器、背板,高频分量衰减得厉害。一个孤立的 1 比特,到了接收端可能已经软趴趴的了。
核心思想:TX 均衡通过在发送端对相邻比特进行幅度补偿,抵偿通道的低通特性。它不增加总功耗,但能显著提升眼图张开度。
3.1 预加重 vs 去加重:一字之差,天壤之别
这两个词容易搞混。我刚入行那会儿也迷糊过。它们的区别很简单,看参照物。
- 预加重(Pre-emphasis):提升高频分量的幅度。把跳变沿(从 0→1 或 1→0 的瞬间)的发射幅度增大。
- 去加重(De-emphasis):降低低频分量的幅度。把连续相同 bit(如一连串的 1 或一连串的 0)的发射幅度减小。
大多数 SerDes 厂商实际用的是 去加重。为什么?因为预加重需要提高峰值电压,容易触发射频前端器件的线性区限制。而去加重只是把非跳变 bit 的幅度压下来,峰值电压基本不变,设计上更友好。
嗯,这里要注意:工程上说的“预加重”很多时候指的就是去加重。你去看芯片手册,标着“Pre-emphasis”的寄存器,实际调节的是主抽头(cursor)和前/后抽头(pre-cursor / post-cursor)的比例。它本质上还是在做去加重。
3.2 基本原理:一个三抽头的故事
现在 SerDes 普遍采用 有限冲击响应(FIR)滤波器 来实现 TX 均衡。最常见的是 3 抽头结构。你把它想象成一个 Delay line:当前要发的 bit 叫 cursor,前面那个 bit 叫 pre-cursor,后面那个叫 post-cursor。
每个抽头都有个权重系数。发射端把这些抽头加权求和,然后发送。这三个系数通常记作:
// 伪代码表示
tap_pre = -α // pre-cursor 系数,通常为负值
tap_main = 1.0 // cursor 系数,归一化
tap_post = -β // post-cursor 系数,通常为负值
// 发射波形幅度
Tx_out = tap_main × Cursor + tap_pre × Pre_cursor + tap_post × Post_cursor
你看,负系数意味着当你发送一个孤立跳变时,pre 和 post 抽头会从主抽头的能量里“借”走一部分。这就在发送端人为地制造了一个幅度差。这个差值就是要用来抵消通道 ISI(码间干扰)的。
3.3 波形对比:看看时域发生了什么
假设我们要发送一串数据:110001。我们看看去加重前后的波形长什么样。
| 数据序列 | 去加重前(理想方波) | 去加重后(3-tap FIR) | 解释 |
|---|---|---|---|
| 1→1 | Vhigh | Vhigh - Δ | 连续相同 bit,被去加重,幅度降低 |
| 0→1 | Vhigh | Vhigh | 跳变沿,保持满摆幅 |
| 1→0 | Vlow | Vlow | 跳变沿,保持满摆幅(负方向) |
| 0→0 | Vlow | Vlow + Δ | 连续 0,被去加重(往正方向抬了一点) |
我在项目中遇到过这样的情况:有次调 Gen4 链路,眼图总闭合。示波器一看,发射波形四个电平清清楚楚,但到接收端就糊了。后来发现是去加重深度不够,通道的衰减没能被抵消掉。加了 3dB 去加重,眼图瞬间就睁开了。
3.4 从去加重到 FFE:更灵活的均衡
去加重只是 FFE(前馈均衡)的一种特例。FFE 允许你调节更多的抽头系数,而不止是主抽头的正负。
为什么需要更多抽头?因为通道的脉冲响应拖尾可能很长。一串 bit 的影响,可能延续到后面第 3、第 4 个 bit。单靠一个 post-cursor 系数不够。这就是 4-tap、5-tap FFE 登场的原因。
配置 FFE 系数有点像调 EQ 均衡器。你给不同频率分量做不同的增益。只不过这个“频率”是离散的,对应于 bit 间隔。
3.5 知识脉络:一张图理清关系
下面这张图,把预加重、去加重、FFE 和 FIR 的关系串起来了。你看一眼,应该能对 TX 均衡的全貌有个直观认识。
3.6 寄存器配置:用数字说话
实际调优的时候,你面对的不是原理图,而是寄存器。拿某主流 SerDes IP 举例,TX 均衡控制寄存器一般是这样的:
// TX 均衡系数寄存器(假设)
// 地址 0x0044:主抽头系数 [11:0]
// 地址 0x0048:第一后抽头系数 [11:0]
// 地址 0x004C:第二后抽头系数 [11:0]
// 地址 0x0050:第一前抽头系数 [11:0]
// 一个实际的 Gen4 配置例子(去加重约 3.5dB)
write_reg(0x0044, 0x7A3); // 主抽头:1955 (10进制)
write_reg(0x0048, 0x1D4); // 第一后抽头:468 (10进制)
write_reg(0x004C, 0x000); // 第二后抽头:0 (未使用)
write_reg(0x0050, 0x000); // 第一前抽头:0 (未使用)
去加重深度用 dB 表示,计算公式大致是:
De-emphasis (dB) = 20 × log₁₀( cursor / (cursor - sum_posts) )
还是刚才的例子:cursor = 1955,post1 = 468,代入就算出大约 3.5 dB。
3.7 小结
TX 均衡没有多神秘。它就是利用 FIR 滤波器,在发送侧对相邻比特的发送幅度做差异化调整。去加重是主流,FFE 是它的升级版。记住一个原则:去加重深度 ≈ 通道损耗(中低频段)。调得太轻,ISI 压不住;调得太重,接收端信号动态范围不够。