这几年的高速互联圈里,有个很有意思的变化:很多刚接触112G/224G SerDes设计的工程师,拿到芯片手册时会发现,接收端CTLE(Continuous Time Linear Equalizer,连续时间线性均衡器)这一栏的参数几乎都是寄存器直接配置的,根本没有背景自适应(Background Adaptation)的控制位。问前辈,前辈往往丢过来一句“现在速率太高,做不了自适应”,然后就没有然后了。
我当年也是带着这个疑惑去啃了大量白皮书、测试报告和IP手册,又在实验室里反复测过好几轮板卡,才逐渐把这件事的前因后果理顺。今天这篇就把这个问题彻底讲透:112G/224G系统里,CTLE为什么不再需要背景自适应?这背后涉及的是模拟均衡和数字均衡的分工变化、超高速率下的物理约束、以及链路训练机制带来的架构调整。不管你是做信号完整性仿真的、做芯片验证的,还是调硬件板卡的,把这条逻辑线捋清楚,对做高速链路设计都会有直接的帮助。
1. 先说结论:CTLE在112G/224G里不再当“主力均衡器”了
1.1 传统接收机的均衡架构:CTLE是绝对主力
要看懂现在的变化,得先回到十多年前的经典接收机架构。那时候的SerDes接收端,一般由线性均衡器(CTLE)、判决反馈均衡器(DFE)、时钟恢复电路(CDR)组成。CTLE是模拟域的滤波器,负责补偿信道的高频插损;DFE在判决之后反馈消除残余的码间干扰(ISI);CDR负责恢复时钟。
在那个架构里,CTLE起到了承上启下的作用:输入信号经历背板或PCB走线之后,高频分量衰减严重,眼图几乎闭合,必须靠CTLE先把高频分量抬起来,让后级的DFE和CDR能正常“看到”信号。如果CTLE的增益和零点频率设得不对,后级再怎么努力都是白搭。所以早期系统对CTLE的依赖性非常高,也催生了CTLE自适应的需求:板卡插入不同长度的背板走线,不同材质、不同过孔数量的信道,插损曲线千差万别,接收机没法预先知道信道长什么样,只能靠一个自适应算法来寻找合适的CTLE参数。
那时候的“背景自适应”怎么做呢?大致思路是:接收端在正常接收数据的同时,用额外的采样器或判决误差信息,估计当前眼图张开的程度、误码率或者均方误差,再通过梯度下降之类的算法,缓慢调整CTLE的高频增益和零点位置,让目标函数收敛到最优。这个过程是持续进行的,贯穿整个正常工作状态,所以才叫“背景自适应”(Background Adaptation),意思是它一直在后台跑,不占用正常数据通道。
1.2 ADC+DSP架构下,CTLE变成了“前置放大器”
到了112G/224G时代,主流的SerDes接收机架构几乎都换成了ADC + DSP。简单说,接收端把模拟信号经过CTLE预处理、AGC(自动增益控制)之后,直接用高速ADC采样成数字信号,后续的所有均衡、判决、时钟恢复都在数字域用DSP算法完成。
在这种架构下,CTLE的角色发生了质变:它不再负责把眼图“打开”到最终状态,而是变成一个相对简单的前置信号调理模块。它的主要任务有两件事。第一,提供一个可控的低频增益和高频补偿,使信号的幅度范围落在ADC的输入动态范围之内,别让ADC饱和,也别让小信号淹没在量化噪声里。第二,对信道做一个粗略的高频预补偿,减轻ADC后面数字均衡器的压力,但不能过度整形,否则会把ADC的动态范围浪费在无谓的频段上。
也就是说,CTLE从“主力”变成了“辅助”。后续真正负责精细均衡的,是DSP里的前馈均衡器(FFE)、判决反馈均衡器(DFE)甚至最大似然序列检测(MLSD)。这意味着CTLE即使固定在一个合理的配置上,也不用担心均衡效果不好,因为后面还有一大串数字信号处理手段来兜底。
1.3 自适应没有消失,它搬到了数字域
很多人听到“CTLE无需背景自适应”,第一反应是系统没有均衡能力了,其实恰恰相反。均衡自适应的核心工作,已经从模拟的CTLE,挪到了数字域里FEE/DFE的系数自适应上。
数字域做自适应的优势非常明显:算法可以用硬件的数字逻辑实现,精度高、收敛快、重复性好,而且不会像模拟电路那样受工艺、电压、温度影响出现参数漂移。更重要的是,数字域对误差信号的提取非常自然,因为数据经过ADC之后本来就是一个个量化的数字样点,直接就可以计算出眼高、眼宽、信噪比等信息,用来驱动自适应系数更新。相比之下,模拟域的自适应需要额外的高频模拟采样器、误差比较器,又费功耗又难设计,在400G/800G这种集群规模下完全不划算。
所以你会看到,112G/224G SerDes的接收端,往往有一个非常强大的DSP均衡引擎,能够在前几微秒内完成信道估计和均衡器收敛。而CTLE的配置,只要在链路训练时定下来,后面正常传数据的阶段完全可以固定不动。
2. 为什么模拟CTLE的背景自适应在超高速率下“玩不转”了
2.1 UI时间太短,自适应环路的扰动根本没法容忍
这是最直观的一个原因。112Gbps PAM4链路的符号率是56GBaud,一个UI(单位间隔)大约是17.9ps;224Gbps PAM4的符号率到112GBaud,一个UI只剩大约8.9ps。要知道,决定链路能不能跑通的核心指标之一,就是接收端的抖动预算里那几十ps的眼宽裕量。
传统背景自适应需要持续调整CTLE的反馈网络,比如通过开关电容阵列、可调电阻或者电流源扫描来实现调节。这些模拟开关在切换瞬间会产生毛刺、电荷注入和参考电压扰动,直接反映到输出波形上就是相位抖动和幅度抖动。在10G/25G时代,一个UI有40到100ps,切换毛刺只要控制在几ps以内,睁一只眼闭一只眼也就过去了。但在112G/224G下,一个UI连9ps都不到,模拟开关切换引起的毛刺可能直接吞掉大半的眼宽裕量,这是系统没法接受的。
所以从设计上就干脆放弃持续的自适应:CTLE设置好之后,整个数据链路工作期间不再切换任何模拟调节开关,让信号路径保持完全静态,尽最大努力降低扰动源。
2.2 模拟自适应环路的稳定性与功耗成本
另一个根子是模拟反馈环路的稳定性和带宽矛盾。背景自适应要跟踪信道变化,环路带宽不能做太低;但CTLE本身是一个高频模拟放大器,在数十GHz带宽下,反馈环路稍微增加一点增益,相位裕量就迅速恶化,容易引起振荡。为了避免振荡,就得把环路带宽降得很低,结果就只能去跟踪非常缓慢的变化,比如温度漂移。可既然只跟踪缓慢变化,其实用一次性校准加定期重训练就够了,真的没必要常年在后台跑一个模拟环路。
再看成本。一个完整的高速CTLE背景自适应,需要额外的误差检测采样器、模式开关、状态机、环路滤波器和相关校准DAC。这些电路在56GBaud甚至112GBaud的速率下,每一路的偏置电流和匹配要求都相当高,占用不小的面积和功耗。对于一张会集成几十甚至上百条SerDes lanes的大规模交换芯片来说,每一条lane省掉这些开销,带来的面积和功耗收益非常可观。这也是为什么商用112G IP的CTLE大多只保留寄存器配置和一次性校准,而不是带上完整的后台自适应回路。
2.3 PAM4调制对增益稳定性的要求更苛刻了
NRZ时代,信号只有高和低两个电平,判决门限在0附近,CTLE增益漂移一点,顶多是眼高变小一些,容忍度其实比较高。PAM4则不同,它把同一个符号间隔里塞进了4个电平,相邻电平之间的间距只有NRZ信号的三分之一。
这意味着接收端对信号通路上的增益波动极其敏感。CTLE自适应过程中,如果高频增益或其他参数发生了哪怕零点几个dB的波动,PAM4四个电平之间的相对间距就会改变,直接表现为判决裕量下降、误码率上升。也就是说,在PAM4系统里,自适应带来的“好处”可能还没它引入的“参数波动副作用”大。与其冒着风险去动态调CTLE,不如把CTLE固定在一个经优化验证的档位上,把剩余的微调交给数字DSP去做——DSP的系数更新是纯数字运算,没有模拟域的毛刺和漂移问题。
这就像你戴了一副度数固定的眼镜,后面还跟了一套随时可以变焦的数字摄像头算法;你没必要让眼镜本身一遍遍地变度数,那只会让你头晕目眩。
3. “不需要背景自适应”不等于“不调CTLE”:链路训练与一次性校准
3.1 背景自适应和前景校准,别搞混了
要准确理解“无需背景自适应”,首先得区分两个概念:背景自适应(Background Adaptation)和前景校准(Foreground Calibration)。背景自适应是正常传输数据期间,不间断地调整参数,系统没有任何专门用来校准的窗口。前景校准则是在一段时间里暂停或暂时不关心业务数据流,利用已知的训练序列来测量信道、配置均衡器,完成后恢复正常传输。
112G/224G系统里,CTLE并不是靠运气“猜”一个固定值就用一辈子,而是通过链路训练(Link Training)机制,在链路建立的初始阶段就完成一次前景校准。IEEE 802.3ck、OIF CEI-112G等规范里,都有明确的链路训练流程:训练期间收发双方会发送预定义好的训练序列,接收端用这些已知信号对信道进行测量,然后更新接收端各均衡模块的配置参数。
3.2 一次典型的112G链路训练中,CTLE是怎么被定下来的
我以比较常见的以太网背板/铜缆场景为例,把CTLE配置的过程拆开讲。
第一步,物理层进入训练模式。发送端发出连续的训练信号,这个信号在一个副载波频率上带有已知的调制图案,例如重复的PRBS或者其他标准定义的训练帧。接收端的CDR先恢复时钟,从信号中获取链路的基本同步信息。
第二步,接收端的DSP或者模拟前端辅助电路测量信道特性。设计者通常会利用训练信号计算接收信号的眼图质量、频响估计或冲激响应。根据测量结果,预估信道插损在高频处的衰减量以及低频损耗的差距。
第三步,CTLE参数设定。接收端会根据信道估计结果,在预先设计好的一系列CTLE配置档位里,选择一个在目标误码率下综合表现最优的组合。这些配置档位一般包括低频增益、高频提升量(Boost)、零点位置、极点位置等,每个参数都有数字寄存器来控制。
第四步,锁定配置。训练完成后,CTLE的寄存器直接锁定,整个正常数据传输阶段保持不变。后续如果链路因为温漂等原因出现轻微劣化,DSP的均衡器系数会去自适应调整,而CTLE纹丝不动。
为了更直观,我用一个简化表格罗列一下CTLE里常见的可配置项和它们影响什么:
| 配置项 | 对信号的影响 | 典型范围(示意) |
|---|---|---|
| 低频增益(DC Gain) | 决定信号的基准放大倍数 | 0 ~ 6 dB |
| 高频增益/Boost | 补偿信道高频插损,抬升高频分量 | 0 ~ 14 dB |
| 零点频率(Zero) | 控制补偿从哪个频段开始抬升 | 2 ~ 10 GHz |
| 极点频率(Pole) | 限制高频增益继续上升,避免放大噪声 | 20 ~ 40 GHz |
不同芯片的实现会略有差异,有的还会把增益和零点耦合在一起,用统一的EQ index档位来表达。你只要记住,所有这些参数都支持在训练阶段被写入和锁定就可以了。
3.3 训练过程中怎么判断哪个CTLE配置“最好”
实际工程里,“最好的CTLE配置”不是靠主观感觉拍脑袋,而是有一个明确的目标函数。最常见的一类是最大眼高和眼宽:发完训练序列之后,DSP会统计接收信号在采样点位置的电平分布,算出一个三维眼图,然后以眼图张开高度和宽度作为评估指标。另一类是直接以误码率或信噪比为目标,选择能让后级DSP均衡器输出信噪比最高的配置。
一个容易忽略的细节是:CTLE的配置不能孤立地看,必须考虑它和AGC、DSP均衡器的联动。比如CTLE的boost设得太高,信号高频噪声和串扰也被一起放大,ADC输入端的有效信噪比反而下降;设得太低,高频分量衰减严重,ADC采样出来的信号可能已经淹没了量化噪声。所以在链路训练里,系统往往会把AGC固定到一个合适的值,然后对CTLE档位做扫描,选出一个“CTLE+DSP”联合信噪比最高的点。这个点才是真正的最优工作点。
仿真阶段,我建议可以用IBIS-AMI模型配合通道S参数做完整链路仿真,把CTLE所有档位扫描一遍,事先确定整个温度范围内的推荐配置。到了实验室再用实际板卡做验证,通常能提高不少效率,也可以避免在实验室里毫无头绪地翻寄存器。
3.4 校准完成之后,凭什么CTLE能长期不动
有人会问:温度升高、PCB损耗变化,信道特性会漂移啊,CTLE一直不动,后面不就偏了吗?这个问题需要从两个维度看。
第一,信道特性在正常工作范围内的变化幅度,其实没有想象中那么大。优质的高速板材(如Megtron 6/7)在温度变化下的插损漂移是有限且缓慢的,通常只有零点几dB到一两dB级别。而DSP里面的FFE和DFE,本身就具备跟踪这种细微变化的能力,它们会在后台自适应地更新系数,不需要CTLE跟着动。
第二,CTLE的设计余量已经覆盖了一部分变化。链路设计工程师在做预算时,目标误码率下的眼图/信噪比裕量会留出足够的margin,这个margin足以吸收长期温漂、老化和不同批次板卡差异。换句话说,固定CTLE并不是对信道变化视而不见,而是预测到变化在可控范围内,然后把修正任务交给了更擅长持续调整的数字模块。这就像你先把大方向对准了,剩下的细微晃动交给自动驾驶去修,总比自己不停地拨方向盘要稳定。
4. 但有些地方CTLE还是会“动一动”:边界与例外
既然是工程问题,就一定有边界条件。说“无需背景自适应”是指主流112G/224G片上SerDes的接收端,因为后面有强大的DSP兜底。但如果换一个场景,这条规则并不总是成立。
4.1 重定时器、光模块DSP里的均衡器仍会自适应
重定时器(Retimer)工作在两条链路之间,它既要接收一端信号并均衡,也要把信号重新发送给另一端。在一些重定时器芯片内部,接收端的均衡架构如果不完全是ADC-DSP,而是保留了较多模拟均衡成分,那么它仍然可能在后台做适应。原因很简单:重定时器两侧的链路是不同板卡、不同线缆、不同标准定义的,信道不确定性比固定背板大得多,没法只靠一组固定CTLE覆盖。
类似的情况也出现在光模块的DSP里。光模块内部的DSP(通常叫DSP DimRed)处理的是经过光电转换后的信号,信道的特性与PCB背板完全不同,而且模块插入的交换机端口、对端设备不同,光路衰减差异也大。这类应用中的均衡模块往往会保留自适应的机制。不过,很多情况下它们的自适应也是在数字域完成的,真正在模拟CTLE上做连续背景自适应的方案已经越来越少见。
4.2 多速率、多协议切换时的档位切换不是“背景自适应”
有的芯片需要同时支持不同的速率档位,比如同一颗PHY在10G/25G/50G/100G之间切换,或者同一lane在PCIe和以太网协议之间复用。不同速率下信道的相对衰减特性不同,CTLE当然不能一个档位打天下。因此芯片内部会预定好几组CTLE配置,在模式切换时一次性写入对应的寄存器值。
这种操作本质上还是“前向校准/档位切换”,不是数据流运行期间的连续背景自适应。它的特点是切换动作发生在速率协商阶段,链路还没有开始传业务数据,即使切换过程有一些毛刺或非线性,也不会造成误码,因此工程上是安全的。
4.3 极端温度环境下靠什么兜底
最后说一个工程里比较精妙的点:如果在高温环境下,链路余量告警,我们该怎么办?很多资深工程师都会告诉你,不要等误码率已经爆了再去动CTLE,而是应该在链路余量下降到某个门限时,做一次“重新训练”(Retraining),把CTLE和DSP参数重新校准一遍。
重训练的触发机制可以用BER监测、SNR监测或者温度传感器来实现。一旦触发,链路会短暂中断或进入训练状态,再重复一遍第3章说的流程,重新找一组CTLE配置。这种方式既避开了数据流中的连续自适应,又能应对大范围的环境变化,逻辑上更干净,实现上更简单。毕竟,只要你对重训练的频率没有苛刻要求,就不需要为了让CTLE每时每刻都完美而付出巨大的模拟硬件代价。
5. 落实到工程:固定CTLE配置的开发与验证心得
讲了这么多原理,最后分享一些我在项目里亲测有效的经验和踩过的坑。
5.1 选定一组CTLE配置的标准流程
第一步,收集所有可能用到的通道S参数。包括背板不同走线长度的最差情况、各种跨接连接器的组合、以及不同温区下的实测或仿真S参数。把通道模型建好,这是后续所有工作的基础。
第二步,使用IBIS-AMI仿真工具做CTLE档位扫描。每个档位跑一遍全链路仿真,统计目标误码率下的眼高、眼宽和SNR。特别注意要把发送端Tx FFE的设置一起纳入扫描,得到一张“Tx系数+CTLE档位”的二维性能表,而不是单独看CTLE。
第三步,根据最差通道选配置。工程上要选一个在大多数通道、大多数温度条件下都能达到目标误码率的配置,而不是在某一条漂亮短走线上性能最好的配置。同时留出足够的锁存裕量和温漂裕量。
第四步,拿着这个配置去实验室做极限测试。换不同板卡、不同模块、高低温箱,用BERT(误码率测试仪)验证实际链路余量。如果室温下余量充足,但高温下掉了,就要回到仿真结果里重新调整选档。
5.2 固定CTLE配置最容易踩的三个坑
我见过不少团队在CTLE固定配置上栽跟头,反复出现的坑主要就是下面这三个。
第一个坑是过补偿。为了让眼图“看起来”很open,把CTLE的boost调得过高,高频噪声和串扰被同步放大,结果误码率反而更差。这个现象在长走线和串扰严重的通道上尤其明显。调CTLE的时候不能只看高频补偿得好不好,还要看整体SNR和浴缸曲线。
第二个坑是把AGC和CTLE割裂开来调。CTLE的高频boost会影响信号总功率,如果AGC的参考电平是固定的,boost一加大,ADC输入信号就可能削顶;AGC一自动变化,CTLE的相对效果又被削弱。这两个模块必须联合起来理解。我的习惯是先调AGC到一个不上不下的状态,再动CTLE,最后再微调AGC,来回迭代两次就能找到稳定工作点。
第三个坑是忽视电源噪声和耦合路径。CTLE是模拟放大电路,它的性能高度依赖供电的干净程度。固定配置之后,如果电源域的开关噪声落在CTLE的工作频带附近,哪怕CTLE本身设置完全正确,输出眼图的抖动也压不下去。因此,CTLE的电源引脚、去耦电容、参考电压的PCB布局,跟CTLE参数设置一样重要,这一点经常被新入行的工程师忽略。
5.3 固定CTLE之后,链路优化重心应该放到哪里
既然CTLE不再参与后台调节,链路的在线优化重心就转移到了发送端Tx FFE和接收端DSP上。实践下来,优先调整发送端的Tx FFE通常比调接收端要更高效,因为发送端的信号经过信道后,同样会影响接收端眼图,而且Tx FFE的调节会直接改变信道入口处的信号频谱形状。
我在实际项目中,比较推荐的做法是:先保持CTLE为推荐配置不动,然后通过Tx FFE的预加重把高频分量适当补偿一部分,再观察接收端DSP的均衡系数是否收敛到一个偏离默认较远的位置。如果DSP的系数明显偏到边界,说明整体均衡预算分配不合理,这时候再回过头去调整CTLE档位,而不是在DSP上硬拉。把CTLE当一个粗调旋钮、Tx FFE当一个中调旋钮、DSP系数当精调旋钮,三层搭配好了,链路余量通常都能比较健康。
我个人的体会是,CTLE在112G/224G时代去背景自适应化,不是功能缩水,而是模拟和数字分工演进的必然结果。做高速系统设计,最忌讳的是抱着原来某一代产品的惯性思维,去硬套新一代架构。CTLE从一个智能均衡器变成一个可配置的前置放大器,看起来很“退化”,实际上是整个系统变得更强之后,把最不擅长在超高速下工作的环节简化到了它最擅长的位置。理解了这个思路,你再去看未来224G甚至448G芯片的手册,就会更从容:看到CTLE只有几个寄存器配置位,不会再惊讶,也不用慌。