拓冰建站拓冰建站
首页 / 资讯中心 / 正文

PCIe 5.0 PHY测试实战:Tx/Rx/链路训练与时钟全解析

1. 为什么PCIe 5.0 PHY测试值得单独拿出来讲PCIe 5.0 单通道速率跑到 32 GT/s这个数字放在几年前还是实验室里少数人才能碰的东西现在已经在主流服务器、AI加速卡、高端存储阵列里批量落地了。但速率翻倍带来的直接后果就是信号完整性裕量被压缩得极其厉害以前在 16 GT/s 上能糊过去的链路到了 32 GT/s 可能连训练都过不去。PHY 层作为整个 PCIe 协议栈最底下、离物理介质最近的一层它的测试规范直接决定了链路能不能稳定跑起来。我接触 PCIe PHY 测试大概有几年时间从 Gen3 到 Gen4 再到现在的 Gen5每一代的测试复杂度都是指数级上升。Gen5 最要命的地方在于Nyquist 频率到了 16 GHz这个频段上 PCB 走线的损耗、连接器的阻抗不连续、过孔 stub 的谐振全都会跳出来捣乱。所以 PHY 测试不再是简单测个眼图就完事而是要覆盖发送端Tx、接收端Rx、时钟、均衡器、链路训练等一整套环节。这篇文章主要面向三类人一是刚接触 PCIe PHY 测试的验证工程师二是需要搭建 Gen5 测试环境的硬件工程师三是想搞清楚 PHY 测试到底在测什么、为什么这么测的系统架构师。我会从测试规范的整体框架讲起然后逐层拆解 Tx、Rx、链路训练、时钟这几个核心测试项把参数怎么算、设备怎么配、坑在哪里都讲清楚。内容基于我在实际项目中的经验部分细节是基于行业通用实践做的合理补充具体项目请以你手上的规范和器件手册为准。2. PCIe 5.0 PHY测试规范的整体框架与设计逻辑2.1 测试规范到底覆盖哪些层面PCIe 5.0 PHY 测试规范不是一份单一文档它是一整套分层的东西。最上层是Base Specification里定义的电气参数要求比如 Tx 差分输出电压、Rx 容限、抖动预算这些中间层是PHY Test Specification也叫 Electrical Compliance Test Spec它把 Base Spec 里的参数转化成可执行的测试方法、测试点定义、夹具要求最底层是各家 IP 厂商和测试设备厂商提供的具体测试脚本和校准流程。这三层的关系有点像Base Spec 说“你要跑进 10 秒”PHY Test Spec 说“在 100 米跑道上、穿钉鞋、电子计时”设备厂商说“我们这台计时器精度 0.001 秒校准流程如下”。你如果只盯着 Base Spec 看会发现很多参数根本不知道怎么测只盯着设备手册看又不知道为什么要测这些点。所以做 PHY 测试的人这三层都得翻。Gen5 相比 Gen4测试规范最大的变化集中在几个地方Tx 测试增加了更严格的抖动分解要求要把随机抖动 RJ、确定性抖动 DJ、占空比失真 DCD 分开看Rx 测试引入了更复杂的压力眼图校准流程链路训练测试新增了均衡器自适应过程的验证。这些变化的核心逻辑只有一个速率翻倍后任何一个小误差都会被放大所以测试必须更精细。2.2 为什么Gen5的测试策略和Gen4完全不同Gen4 时代很多测试项目还可以用“测个眼图 看 BER 是否达标”的方式糊过去。到了 Gen5这种做法基本失效了。原因在于32 GT/s 的 UI 只有 31.25 ps而一个典型的 Gen5 信道在 16 GHz 处的插入损耗可能达到 -30 dB 甚至更差。信号到达接收端时眼图几乎完全闭合必须依赖Tx 均衡FFE和 Rx 均衡CTLE DFE才能把眼图重新“打开”。这就导致测试策略发生根本性转变Tx 测试不再只看原始眼图而是要看经过参考接收机均衡后的眼图Rx 测试不再只测固定压力而是要根据实际信道特性做压力校准。换句话说Gen5 的 PHY 测试是“带均衡的测试”测试设备本身必须模拟真实的均衡行为。我个人的经验是如果你用 Gen4 的测试思路去做 Gen5最常见的翻车场景是Tx 眼图测出来很好但链路实际跑起来 BER 超标。原因就是测试时没开参考接收机均衡看到的“好眼图”是假象。所以下面讲具体测试项时我会反复强调均衡配置这个点。2.3 测试环境搭建的核心组件与选型逻辑一套完整的 Gen5 PHY 测试环境核心组件包括高性能示波器带宽至少 50 GHz最好 60 GHz 以上、误码仪BERT支持 32 GT/s 码型生成和误码检测、矢量网络分析仪VNA用于信道 S 参数测量、测试夹具和校准件、被测设备DUT及其参考时钟源。选型逻辑上示波器带宽是最关键的参数。按照经验公式示波器带宽 ≥ 0.7 / UIGen5 的 UI 是 31.25 ps算下来至少需要 22.4 GHz。但这只是理论下限实际测试中为了准确捕获三次谐波以上的分量通常要求带宽达到50 GHz 以上。我见过有人用 33 GHz 的示波器测 Gen5结果 Tx 眼图的上升沿明显被带宽限制压慢测出来的抖动偏大后来换了 59 GHz 的设备才正常。BERT 的选型要注意两点一是码型生成必须支持 Gen5 规定的 PRBS 码型如 PRBS31、PRBS15 等二是误码检测要能配合压力眼图做校准。VNA 主要用于信道表征如果你要做 Rx 压力校准VNA 测出来的 S 参数是计算压力眼图的基础。注意测试夹具的校准件必须和夹具配套不同厂商的校准件不能混用。我踩过一次坑用 A 厂的校准件去校准 B 厂的夹具结果阻抗不连续点定位完全错误浪费了两天时间排查。3. 发送端Tx测试的核心细节与实操要点3.1 Tx眼图与抖动测试的参数计算过程Tx 测试的核心是眼图和抖动。Gen5 规范里Tx 眼图测试要求在参考接收机均衡后测量参考接收机通常是一个5 抽头 FFE。为什么要用 5 抽头因为 Gen5 信道损耗大需要足够的均衡能力才能把眼图打开而 5 抽头是规范里定义的参考模型保证不同实验室测出来的结果有可比性。抖动测试是 Gen5 Tx 测试的重头戏。规范要求把总抖动 TJ 分解为随机抖动 RJ、确定性抖动 DJDJ 里还要进一步区分占空比失真 DCD、码间干扰 ISI、周期性抖动 PJ。分解方法通常用双狄拉克模型先测不同 BER 下的 TJ然后拟合出 RJ 和 DJ 的分布。具体计算过程假设你在 BER1e-12 处测得 TJ0.3 UI在 BER1e-6 处测得 TJ0.2 UI。双狄拉克模型下TJ(BER) DJ 2 × Q(BER) × RJ其中 Q(1e-12)≈7.03Q(1e-6)≈4.75。联立两个方程可以解出 DJ 和 RJ。这个计算看起来简单但实际操作中BER 测点的选择很关键测点太少拟合不准测点太多测试时间爆炸。我的经验是至少取 5 个 BER 点从 1e-6 到 1e-12 均匀分布。3.2 参考接收机均衡配置的实操细节参考接收机均衡的配置是 Tx 测试里最容易出错的地方。规范里定义的参考接收机是一个5 抽头 FFE 一个一阶高通滤波器模拟 AC 耦合。FFE 的抽头系数不是随便设的而是要根据被测信道的 S 参数计算出来的。实操步骤是这样的先用 VNA 测出从 DUT Tx 引脚到示波器输入端的 S 参数包括夹具和电缆然后把 S 参数导入测试软件软件会自动计算最优 FFE 抽头系数。这里有个坑S 参数的质量直接决定均衡效果如果 VNA 校准不好或者夹具连接不稳定算出来的抽头系数就是错的眼图会越均衡越差。我一般会做两次验证第一次用软件自动算的抽头系数第二次手动微调主抽头系数看眼图高度和宽度是否还有改善空间。实测下来自动算的系数通常已经接近最优但偶尔会有 5% 到 10% 的改善空间特别是在信道损耗特别大的情况下。3.3 Tx测试中的常见陷阱与规避方法Tx 测试有几个经典陷阱。第一个是示波器本底噪声和抖动。Gen5 的抖动预算很紧如果示波器本身的抖动底噪太大测出来的 RJ 会偏高。规避方法是先用一个已知抖动的标准源校准示波器确认本底抖动在可接受范围内。第二个陷阱是码型选择。Gen5 规范要求 Tx 测试使用PRBS31 码型但有些工程师为了加快测试速度会用 PRBS15 甚至 PRBS9。短码型会导致 ISI 分量测不准因为短码型的游程长度不够无法充分激发信道的低频响应。我实测过用 PRBS9 测出来的 DJ 比 PRBS31 低 15% 左右这个偏差足以让一个边缘器件“假通过”。第三个陷阱是AC 耦合电容的影响。Gen5 要求 AC 耦合电容值在176 nF 到 265 nF之间不同容值会影响低频抖动分量。测试时如果用了不合适的电容测出来的 DCD 会异常。建议直接用规范推荐的 220 nF。提示Tx 测试前一定要做示波器去嵌de-embedding把夹具和电缆的影响去掉。去嵌用的 S 参数必须和实际测试链路一致否则去嵌后反而引入误差。4. 接收端Rx测试的完整流程与压力眼图校准4.1 Rx容限测试的基本原理与压力眼图构建Rx 测试的本质是验证接收机在最差信号条件下还能不能正确恢复数据。Gen5 的 Rx 容限测试用的是一个压力眼图这个眼图比实际链路的最差情况还要差一些留出裕量。压力眼图的构建包括几个要素加性高斯白噪声AWGN、正弦抖动SJ、随机抖动RJ、ISI 和占空比失真。构建压力眼图的核心工具是 BERT 和压力眼图校准软件。流程是先根据信道 S 参数和规范要求计算出目标压力眼图的参数比如眼高、眼宽、抖动分量然后通过 BERT 的抖动注入和噪声注入功能合成这个眼图最后用示波器验证合成眼图是否达标。这里的关键难点是压力眼图的校准精度。Gen5 规范对压力眼图的参数容差要求很严比如眼高容差可能只有 ±5%。我见过一个案例压力眼图校准偏了 8%导致 Rx 测试结果不可信后来重新校准 VNA 和 BERT 的同步才解决。4.2 压力眼图校准的逐步操作记录压力眼图校准我一般按以下步骤走信道表征用 VNA 测 DUT Rx 引脚到 BERT 输出端的 S 参数频率范围至少覆盖 100 MHz 到 40 GHz。计算目标压力眼图把 S 参数导入校准软件结合规范要求的抖动和噪声预算算出目标眼图的各项参数。BERT 配置设置码型PRBS31、幅度、抖动注入量、噪声注入量。初步合成启动 BERT 输出用示波器观察眼图对比目标参数。迭代调整根据示波器测量结果微调 BERT 的抖动和噪声注入量直到眼图参数落在容差范围内。记录校准结果保存校准后的 BERT 配置和示波器截图作为测试报告的一部分。这个过程听起来线性实际做起来经常要迭代好几轮。最耗时间的是第 5 步因为抖动和噪声是耦合的调一个会影响另一个。我的经验是先调噪声再调抖动因为噪声对眼高的影响更直接抖动对眼宽的影响更直接分开调效率更高。4.3 Rx测试中的误码率统计与判定标准Rx 测试的最终判定标准是BER ≤ 1e-12。但直接测 1e-12 的 BER 需要传输至少 1e12 个比特按 32 GT/s 算大概需要 31 秒。这听起来不长但实际测试中为了覆盖不同的压力条件比如不同的均衡器配置、不同的温度总测试时间会累积到几小时甚至几天。为了提高效率通常采用外推法先测 BER1e-9 或 1e-10 处的误码率然后用指数外推估算 1e-12 处的 BER。外推的准确性取决于误码分布是否符合预期模型。如果测到的误码分布有异常比如突发误码外推结果就不可信必须延长测试时间直接测到 1e-12。我个人的做法是先做短时间扫描确认误码分布正常再做外推。如果扫描发现误码集中在特定码型或特定时间点说明可能有系统性问题比如电源噪声、时钟抖动这时候外推就是自欺欺人必须先解决根本问题。5. 链路训练与时钟测试的关键环节5.1 链路训练过程的测试点与验证方法链路训练是 PCIe 链路建立的核心过程Gen5 的训练过程比 Gen4 复杂得多主要因为均衡器自适应需要在训练过程中完成。训练过程大致分为几个阶段Detect、Polling、Configuration、Recovery、L0。每个阶段都有对应的测试点。测试链路训练最直接的方法是用协议分析仪抓取训练过程中的 TS1/TS2 有序集看双方协商的参数是否正确。Gen5 新增的测试点是均衡器自适应过程的验证在 Recovery 阶段双方会交换均衡器设置信息测试要确认这些信息是否被正确应用。实操中我通常会用协议分析仪配合PHY 层的寄存器读取来验证。比如训练完成后读取 Rx 均衡器的 CTLE 和 DFE 设置看是否和协商结果一致。如果不一致可能是固件配置问题或者 PHY IP 的 bug。5.2 参考时钟测试抖动与频率精度Gen5 的参考时钟要求是100 MHz ±300 ppm抖动要求是RMS 抖动 ≤ 1 ps12 kHz 到 20 MHz 积分带宽。这个抖动要求比 Gen4 紧了一倍因为 Gen5 的 CDR时钟数据恢复对参考时钟抖动更敏感。测试参考时钟抖动通常用相位噪声分析仪或高带宽示波器 抖动分析软件。相位噪声分析仪更准但设备贵示波器方案便宜但要注意示波器本底抖动的影响。我一般先用示波器做快速筛查如果抖动接近限值再用相位噪声分析仪做精确测量。频率精度测试相对简单用频率计数器测 100 MHz 时钟的频率算偏差是否在 ±300 ppm 内。但要注意测试点的选择参考时钟在到达 PHY 引脚前可能经过时钟缓冲器或分配器这些器件会引入额外的抖动和频偏所以测试点应该尽量靠近 PHY 引脚。5.3 均衡器自适应测试的实操经验均衡器自适应测试是 Gen5 特有的也是最容易出问题的环节。测试方法是在链路训练完成后人为改变信道条件比如切换不同的夹具或电缆看均衡器能否重新自适应到最优设置。我做过一个实验在链路稳定后故意在信道中插入一个额外的连接器增加 3 dB 损耗然后触发链路重训练。结果发现有些 DUT 能顺利重新自适应有些则训练失败。失败的原因通常是自适应算法收敛速度不够或者均衡器动态范围不足。这个测试的价值在于它能暴露那些在固定信道下测不出来的问题。很多器件在实验室的“好信道”下表现完美一到实际系统的“坏信道”就歇菜。所以我的建议是Gen5 的 PHY 测试一定要包含变信道条件下的自适应测试哪怕规范里没有强制要求。6. 常见问题与排查技巧实录6.1 Tx测试常见问题速查表问题现象可能原因排查方法解决措施眼图高度偏低参考接收机均衡未开或配置错误检查 FFE 抽头系数是否根据 S 参数计算重新测 S 参数重新计算抽头系数抖动偏大示波器本底抖动大或码型选择不当用标准源校准示波器确认码型为 PRBS31更换示波器或延长测试时间DCD 异常AC 耦合电容值不对测量耦合电容值更换为 220 nF眼图不对称夹具阻抗不连续用 TDR 测夹具阻抗更换夹具或做去嵌6.2 Rx测试常见问题速查表问题现象可能原因排查方法解决措施压力眼图校准不通过VNA 校准或 S 参数质量差重新校准 VNA检查夹具连接重新测 S 参数重新校准BER 外推结果不可信误码分布异常检查误码是否集中延长测试时间直接测到 1e-12Rx 容限测试失败均衡器配置错误或信道损耗过大读取均衡器寄存器检查信道 S 参数调整均衡器配置或更换信道测试重复性差温度漂移或电源噪声监控温度和电源稳定环境后重测6.3 链路训练与时钟测试的避坑经验链路训练最常见的问题是训练卡在 Polling 或 Configuration 阶段。原因可能是参考时钟频偏太大、Tx 幅度不够、或者双方协商的速率不匹配。排查时先用协议分析仪看训练过程中的有序集交换确认卡在哪个阶段再针对性检查。时钟测试的坑主要在测试点选择。我见过有人在时钟缓冲器输入端测抖动结果很好但 PHY 引脚处抖动超标。原因是缓冲器本身引入了抖动。所以测试点一定要靠近 PHY 引脚如果做不到就要把缓冲器的抖动贡献算进去。提示Gen5 的链路训练对电源噪声很敏感。如果训练不稳定先检查电源纹波特别是 PHY 的模拟电源。我遇到过一次训练随机失败最后发现是电源纹波在 10 MHz 附近有尖峰加了个 LC 滤波器就好了。7. 我个人在实际操作中的几点体会做 Gen5 PHY 测试这几年最大的感受是测试规范是死的信道是活的。规范里定义的测试条件都是理想化的但实际系统的信道千差万别。所以测试不能只满足于“规范通过”还要根据实际应用场景做额外的压力测试。另外测试设备的校准比测试本身更重要。我见过太多案例测试结果异常排查半天发现是设备没校准好。所以我的习惯是每次正式测试前花半小时做设备校准和验证这半小时能省下后面几小时的排查时间。最后分享一个小技巧建立自己的测试数据基线。每次测试后把关键参数眼高、眼宽、抖动分量、BER记录下来形成历史数据。这样下次测试时如果某个参数突然偏离基线你能立刻发现异常。这个习惯帮我抓到了好几次器件批次性问题。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门