3、高速串行链路架构:发送端(TX)、接收端(RX)、时钟恢复(CDR)、链路训练与状态机
高速SerDes(Serializer/Deserializer)链路是PCIe、USB、以太网等接口的物理层基础。无论是PCIe Gen5的32GT/s,还是USB4的20Gbps,抑或100G/400G以太网的PAM4信号,其底层都遵循相似的串行链路架构。理解发送端(TX)、接收端(RX)、时钟恢复(CDR)以及链路训练状态机(LTSSM)的协同工作原理,是进行协议一致性测试和合规性验证的前提。本章将深入剖析这四个核心模块的工程实现、测试要点与常见误区。
上图展示了高速串行链路的核心架构。发送端将并行数据串行化并驱动到差分通道上,经过有损信道传输后,接收端通过均衡器和CDR恢复出数据和时钟,同时链路训练状态机(LTSSM)负责链路的初始化、速率协商和电源管理。测试工程师需要理解每个模块的功能边界和相互作用,才能准确解读一致性测试中的失败项。
3.1 发送端(TX)的关键参数与测试方法
核心原理:TX的信号质量决定链路预算上限
发送端的主要职责是将并行数据转换为高速串行比特流,并以规定的电压摆幅、时序和频谱特性驱动到传输线。在PCIe 5.0(32GT/s)和USB4 Gen4(40Gbps)时代,TX的电气特性直接决定了信号能传输多远、能承受多大的信道损耗。TX的核心参数包括:
- 差分输出电压(Vdiff):通常为800mV~1200mV(PCIe),USB4为500mV~1000mV。测试时需测量差分峰峰值。
- 去加重(De-emphasis)与预加重(Pre-emphasis):通过调整第一个比特的幅度来补偿信道的高频损耗。PCIe Gen3/4/5使用-3.5dB、-6dB等预设值。
- 抖动(Jitter):包括随机抖动(RJ)和确定性抖动(DJ),其中确定性抖动又包含数据相关抖动(DDJ)和周期抖动(PJ)。总抖动(TJ)是误码率(BER)的函数。
- 上升/下降时间(Tr/Tf):通常为20%~80%的摆幅变化时间,过慢会导致码间干扰(ISI),过快会产生过冲和EMI。
判断方法:使用实时示波器进行TX电气测试
TX一致性测试通常遵循以下流程:
- 测试环境搭建:使用符合规范要求的测试夹具(如PCIe CEM夹具),连接示波器(带宽至少为信号速率的3倍以上,推荐5倍)。
- 信号捕获:让DUT(被测设备)发送特定的测试码型(如PRBS-16或PCIe的Compliance Pattern)。
- 参数测量:使用示波器的串行数据分析软件(如Keysight的U4160A或Tektronix的SDLA)自动测量眼图、抖动、摆幅等参数。
- 合规性判定:将测量值与规范中的模板(Mask)和限值(Limit)比对。例如,PCIe Gen4的TX眼图模板要求眼高≥70mV,眼宽≥0.3UI。
案例拆解:PCIe Gen4 TX眼图模板测试失败分析
背景:某服务器主板在PCIe Gen4插槽上测得TX眼图高度仅58mV,低于规范要求的70mV,导致系统在高负载下出现偶发CRC错误。
分析过程:
- 检查TX摆幅设置:发现BIOS中PCIe TX摆幅被设置为“Reduced”(约600mV),而非默认的800mV。这是为了降低EMI而做的全局设置,但牺牲了信号完整性。
- 检查去加重设置:在链路训练阶段,TX使用-3.5dB去加重,但该主板在BIOS中强制使用了-6dB,导致高频分量过度衰减。
- 检查PCB走线:插槽到CPU的走线长度约12英寸,插入损耗在16GHz时达到-18dB,接近规范上限-20dB。
操作步骤:
- 将BIOS中PCIe TX摆幅改回“Auto”或“Full Swing”(800mV)。
- 将去加重设置为“Auto”,让链路训练自动协商最优值。
- 在PCB走线中增加一个中继器(Redriver)或重新布局缩短走线。
结果对比:修改后,眼高恢复至82mV,眼宽从0.28UI提升至0.35UI,CRC错误消失。
复盘经验:TX测试失败时,不要只盯着示波器波形,先检查DUT的配置寄存器(如PCIe的Link Control 2寄存器)和BIOS设置。很多“电气问题”实际上是配置问题。
3.2 接收端(RX)的均衡与抖动容限测试
核心原理:RX的均衡能力决定链路能容忍多差信道
接收端面对的是被信道严重劣化的信号。为了恢复数据,RX必须包含以下关键模块:
- 连续时间线性均衡器(CTLE):在模拟域放大高频分量,抑制低频噪声。其增益曲线通常有多个可编程档位。
- 判决反馈均衡器(DFE):消除前一个比特对当前比特的码间干扰(ISI)。DFE的抽头数(如PCIe Gen4要求至少1个抽头,Gen5要求2个)直接影响均衡效果。
- 自适应算法:RX在训练阶段会根据接收到的信号质量自动调整CTLE和DFE参数。测试时需确保自适应算法已收敛。
判断方法:接收端容限测试(Rx Tolerance Test)
RX测试的核心是验证其在最差信道条件下仍能保持目标误码率(通常为1e-12)。测试方法如下:
- 使用误码率测试仪(BERT):BERT的TX端发送经过信道损伤的测试信号,该信号通过一个可调的通道模拟器(如ISI注入板)连接到DUT的RX引脚。
- 注入抖动和干扰:在BERT的TX端注入正弦抖动(SJ)、随机抖动(RJ)和共模噪声,模拟真实系统环境。
- 监测DUT的误码率:DUT的RX将接收到的数据通过环回(Loopback)方式发送回BERT,BERT统计误码数。
- 判定标准:在规定的抖动幅度和信道损耗下,误码率必须低于1e-12(或规范指定的值)。
案例拆解:USB4 RX容限测试中的DFE收敛问题
背景:某USB4主控芯片在Rx Tolerance测试中,当信道损耗为-28dB时,误码率始终在1e-9左右徘徊,无法达到1e-12。
关键数据:
- 信道损耗:-28dB @ 10GHz(USB4 Gen3速率)。
- DFE抽头数:2个(规范要求至少1个)。
- CTLE增益:最大档位。
分析判断:误码率呈“地板效应”,增加CTLE增益无效,说明问题不在高频损耗,而在于DFE无法消除长尾ISI。进一步检查发现,DFE自适应算法在训练序列(TS1)阶段未完全收敛,因为TS1序列的重复周期较短,DFE抽头系数更新不充分。
操作步骤:
- 修改DUT固件,延长DFE自适应训练时间(从TS1阶段延长至TS2阶段)。
- 在测试码型中增加长PRBS序列(如PRBS-31),以激励更长的ISI。
- 调整DFE最小步进(Step Size),使其能更精细地逼近最优系数。
结果对比:修改后,误码率降至1e-13,通过测试。
复盘经验:RX测试失败时,优先检查DFE是否收敛。可以通过读取DUT的寄存器(如PCIe的EQ Control寄存器)来确认DFE系数是否在合理范围内。如果系数为0或饱和,说明自适应算法未正常工作。
3.3 时钟恢复(CDR)的带宽与抖动传递特性
核心原理:CDR是RX的“心脏”,决定采样时刻
CDR从接收到的数据流中提取时钟信号,并用该时钟对数据进行采样。CDR的关键参数包括:
- 环路带宽(Loop Bandwidth):决定了CDR跟踪输入抖动和频率偏移的能力。带宽越宽,跟踪越快,但会引入更多高频噪声;带宽越窄,滤除噪声能力越强,但无法跟踪快速变化的频率。
- 抖动传递(Jitter Transfer):CDR输出抖动与输入抖动的比值。规范通常要求在高频段(如10MHz以上)抖动传递小于-3dB,以抑制高频抖动放大。
- 频率偏移容忍(Frequency Offset Tolerance):CDR必须能容忍发送端和接收端参考时钟之间的频率偏差(如±300ppm)。
判断方法:CDR测试的两种模式
在一致性测试中,CDR的测试通常分为两类:
- 抖动传递测试:使用BERT在输入信号上叠加已知幅度的正弦抖动,测量CDR输出端的抖动幅度。通过扫频得到抖动传递曲线。
- 抖动容限测试:在输入信号上叠加逐渐增大的抖动,直到误码率超过阈值,记录此时的抖动幅度作为容限值。这通常与RX容限测试合并进行。
案例拆解:以太网100G PAM4 CDR抖动传递超标
背景:某100G光模块在抖动传递测试中,在8MHz频率点测得抖动增益为+2dB,超过IEEE 802.3cd规范要求的-3dB限值。
分析过程:
- 检查CDR环路滤波器设计:发现模拟PLL的电荷泵电流设置过大,导致环路带宽从标称的5MHz扩展到了12MHz。
- 检查数字滤波器系数:数字低通滤波器的截止频率设置过高,导致高频抖动未被充分抑制。
操作步骤:
- 通过I2C寄存器调整电荷泵电流,将PLL带宽恢复至5MHz。
- 修改数字滤波器的系数,将截止频率从10MHz降至4MHz。
- 重新进行抖动传递扫描,确认所有频点均低于-3dB。
结果对比:调整后,8MHz处的抖动增益降至-5dB,满足规范要求。
复盘经验:CDR参数调整需要权衡。带宽过窄会导致频率偏移容忍不足,带宽过宽则抖动传递超标。建议在测试前先通过仿真确定最优参数范围,再通过寄存器配置进行微调。
3.4 链路训练与状态机(LTSSM)的协议一致性
核心原理:LTSSM是链路管理的“操作系统”
链路训练状态机(LTSSM)定义了链路从初始化和训练到正常工作和电源管理的完整状态转换流程。以PCIe为例,LTSSM包含以下主要状态:
| 状态 | 功能 | 关键动作 | 测试关注点 |
|---|---|---|---|
| Detect | 检测对端设备是否存在 | 发送Detect信号,检测接收器阻抗 | 检测时间是否超时 |
| Polling | 建立基本链路通信 | 发送TS1/TS2训练序列,交换端口信息 | TS1/TS2的符号率、极性、位锁定位 |
| Configuration | 协商链路宽度和速率 | 交换链路控制寄存器,进行速率协商 | 宽度协商是否按规范降级 |
| L0 | 正常工作状态 | 传输数据和控制信息 | 数据完整性、电源管理退出延迟 |
| Recovery | 重新训练或速率变更 | 重新发送TS1,调整均衡参数 | Recovery触发条件是否合理 |
| L1/L2 | 低功耗状态 | 关闭主时钟,保持辅助电源 | 进入/退出延迟是否符合规范 |
判断方法:使用协议分析仪进行LTSSM状态跟踪
LTSSM一致性测试的核心是验证状态转换是否符合规范定义的时序和条件。测试方法:
- 连接协议分析仪:将协议分析仪(如Keysight的U4301A或Teledyne LeCroy的Mercury)串接在链路中,或使用探针监听TX/RX差分对。
- 触发链路事件:通过软件命令触发链路进入特定状态(如L1、Recovery),或模拟错误条件(如CRC错误、TS1超时)。
- 捕获训练序列:分析仪记录所有TS1/TS2序列的内容和时序。
- 比对规范:检查状态转换时间(如Polling到L0的时间应小于100ms)、TS1/TS2中的字段(如速率ID、端口号)是否正确。
案例拆解:PCIe链路在L0状态下的意外Recovery
背景:某GPU服务器在运行AI训练任务时,PCIe链路每隔几分钟就会从L0进入Recovery,导致GPU通信中断,训练任务失败。
关键数据:
- 协议分析仪捕获到Recovery前的最后数据包:发现一个TLP(事务层包)的CRC校验错误。
- 电气测试:TX眼图、抖动均正常,BER低于1e-12。
- LTSSM日志:Recovery的触发原因是“RX检测到TS1序列中的符号错误”。
分析判断:CRC错误和TS1符号错误同时出现,说明问题可能不在物理层,而在数据链路层的重放机制。进一步检查发现,GPU的PCIe控制器在检测到CRC错误后,错误地发送了“Force Recovery”信号,而非标准的“Replay”机制。
操作步骤:
- 更新GPU的PCIe驱动和固件,修复数据链路层的错误处理逻辑。
- 在BIOS中禁用“PCIe Link Error Recovery”选项,避免过度敏感的错误触发。
- 使用协议分析仪验证修复后,链路在注入CRC错误时能正确进入Replay而非Recovery。
结果对比:更新固件后,链路稳定运行72小时无Recovery事件。
复盘经验:LTSSM问题往往涉及协议栈的软件实现,而非硬件。在排查时,务必结合协议分析仪的日志和驱动/固件代码审查,不要盲目更换硬件。
3.5 常见误区与总结复盘
在高速SerDes测试中,以下误区需要特别注意:
- 误区一:只测TX不测RX。很多团队认为只要TX眼图好,链路就没问题。实际上,随着速率提升,RX的均衡能力成为瓶颈。PCIe Gen5规范中,RX容限测试的复杂度远高于TX测试。
- 误区二:忽略CDR模型差异。不同示波器或BERT的CDR模型(如一阶、二阶、Gold Standard)会导致抖动测量结果差异巨大。测试前必须确认CDR设置与规范一致。
- 误区三:将LTSSM问题归咎于物理层。当链路训练失败时,先检查TS1/TS2序列的字段内容,再检查电气参数。很多训练失败是由于对端设备的速率协商逻辑错误,而非信号质量。
- 误区四:使用不规范的测试码型。例如,使用PRBS-7代替规范要求的PRBS-16或PRBS-31,会导致抖动测量结果偏乐观。