
1. PCIe 5.0 PHY测试到底在测什么第一次接触PCIe 5.0 PHY测试的人最容易犯的一个错误就是把“PHY测试”和“协议一致性测试”混为一谈。我刚开始做这块的时候也踩过这个坑拿着一套协议分析仪跑了一轮LTSSM状态机跳转以为就算把PHY测完了结果被前辈一句话点醒“你测的是链路训练不是PHY本身。”PCIe 5.0的PHY全称是Physical Layer物理层。它负责的是最底层的电信号收发——把数字逻辑的0和1变成差分线上的电压摆幅经过信道传输后在接收端从被衰减、被反射、被串扰污染过的波形里把0和1恢复出来。32 GT/s的速率下一个UI只有31.25 ps这个时间尺度上PCB走线多出来的几毫米 stub、连接器的一个阻抗不连续点都足以让眼图彻底闭合。所以PHY测试的核心目标就三个发端信号质量是否达标、信道传输后信号是否还能被正确恢复、收端在恶劣条件下是否仍有足够的容限。围绕这三个目标PCIe 5.0规范定义了一套完整的测试项包括发送端眼图测试、抖动测试、回波损耗测试、接收端压力眼测试、链路训练测试等等。这篇文章适合谁看如果你是刚进入高速接口测试领域的工程师或者是从PCIe 3.0/4.0过渡到5.0的从业者再或者你是做硬件设计需要了解PHY测试对PCB设计有哪些约束那这篇内容应该能帮你少走一些弯路。我会从测试规范的核心逻辑讲起把每个测试项背后的原理、实操方法、常见坑点都拆开说清楚。2. 测试规范的整体框架与核心逻辑2.1 为什么PCIe 5.0的PHY测试比4.0难这么多PCIe 4.0是16 GT/sPCIe 5.0直接翻倍到32 GT/s。很多人觉得不就是速率翻倍嘛测试方法应该差不多。但实际情况是从16 GT/s到32 GT/s信号完整性的挑战不是线性增加的而是指数级恶化的。原因在于信道损耗。PCIe 4.0时代信道在8 GHz处的插入损耗通常在-20 dB到-28 dB之间到了PCIe 5.0这个损耗在16 GHz处要达到-28 dB到-36 dB。损耗增加了但发送端的电压摆幅不能无限增大——功耗和EMI都受不了。所以PCIe 5.0引入了发送端均衡TX EQ包括前馈均衡FFE和判决反馈均衡DFE接收端也有连续的时域线性均衡CTLE和DFE。这就导致测试逻辑发生了变化你不能只测发送端裸信号的品质还要测均衡后的效果你不能只测接收端在理想信道下的误码率还要在加入压力损伤的条件下测接收容限。2.2 测试规范的核心框架PCIe 5.0 PHY测试规范大致可以分为以下几个层次测试层次测试对象核心测试项参考规范发送端电气测试TX PHY眼图、抖动、电压摆幅、上升下降时间PCIe Base Spec 5.0 Chapter 8信道测试PCB连接器线缆插入损耗、回波损耗、串扰IEEE 802.3 / PCIe Channel Spec接收端容限测试RX PHY压力眼、抖动容限、误码率PCIe Base Spec 5.0 Chapter 8链路训练测试LTSSM状态跳转、均衡协商、速率切换PCIe Base Spec 5.0 Chapter 4这个框架的逻辑是先保证发端信号合格再保证信道不会把信号毁掉然后保证收端在最坏情况下还能正常工作最后验证整个链路能正确协商到最高速率。2.3 测试规范背后的设计哲学PCIe 5.0 PHY测试规范有一个很重要的设计哲学用最少的测试点覆盖最大的风险空间。你不可能穷举所有可能的信道、所有可能的温度、所有可能的电压组合所以规范定义了一套“压力条件”这些条件代表了实际应用中最恶劣的场景。比如接收端容限测试中的压力眼它把正弦抖动、随机抖动、占空比失真、符号间干扰全部叠加在一起形成一个“最坏情况”的输入信号。如果你的接收端能在这个信号下正常工作那在实际信道中大概率也没问题。这种思路的好处是测试效率高坏处是压力眼的校准非常关键——如果压力眼本身没校准准后面的测试结果就完全没有意义。我在实际项目中见过不止一次因为压力眼校准偏差导致误判的情况后面会详细说。3. 发送端测试眼图、抖动与均衡3.1 发送端眼图测试的实操要点发送端眼图测试是PHY测试中最基础也最直观的一项。你用一个高带宽示波器配上差分探头在发送端测试点上抓取波形然后用软件合成眼图。听起来简单但PCIe 5.0的眼图测试有几个关键点第一测试点的选择。PCIe规范定义的发送端测试点是在芯片引脚处但实际中你很难直接在引脚上探测。通常的做法是在PCB上靠近芯片的位置预留测试过孔或者同轴连接器。这个测试点的引入会带来额外的寄生电容和阻抗不连续所以测试点的设计本身就需要仿真验证。第二示波器带宽。PCIe 5.0的Nyquist频率是16 GHz按照示波器带宽至少是信号最高频率分量2到3倍的经验法则你需要至少32 GHz带宽的示波器。实际上业界普遍推荐使用50 GHz以上的带宽因为你需要捕获到足够的高频细节来准确评估眼图。第三均衡的设置。PCIe 5.0发送端有FFE通常有3到4个抽头。测试时你需要按照规范定义的预设Preset来设置均衡参数。规范定义了11个PresetP0到P10每个Preset对应不同的FFE抽头系数组合。测试时需要遍历这些Preset确认每个Preset下的眼图都满足规范要求。注意眼图测试时一定要确认示波器的均衡设置和DUT的发送端均衡设置是匹配的。我见过有人用示波器内置的FFE去“补偿”DUT的FFE结果测出来的眼图比实际好很多这种自欺欺人的做法在调试阶段可能蒙混过关但到了合规测试阶段一定会暴露。3.2 抖动测试的分解与测量抖动是PCIe 5.0 PHY测试中最复杂的部分之一。规范把抖动分解为几个分量随机抖动RJ服从高斯分布理论上无界通常用RMS值或者特定误码率下的峰峰值来表示。确定性抖动DJ有界的包括周期性抖动PJ、数据相关抖动DDJ、占空比失真DCD等。总抖动TJ在指定误码率通常是1E-12下的峰峰值。PCIe 5.0规范对发送端抖动的要求是在1E-12误码率下总抖动不超过0.3 UI。0.3 UI在32 GT/s下就是9.375 ps。这个预算非常紧张需要仔细分配。测量抖动的方法有两种一种是直接用示波器的抖动分析软件另一种是用误码率测试仪BERT扫描浴盆曲线。示波器方法的优势是速度快但精度受限于示波器的采样率和噪声BERT方法的精度更高但测试时间很长。我在实际项目中通常先用示波器做快速筛查如果发现抖动接近限值再用BERT做精确测量。这样可以在保证测试覆盖率的前提下控制测试时间。3.3 发送端均衡的验证方法PCIe 5.0发送端均衡的验证是一个容易被忽视的环节。很多人只测了眼图觉得眼图张开就够了但实际上发送端均衡的验证需要确认几件事Preset的覆盖性。规范定义的11个Preset覆盖了从低均衡到高均衡的范围。你需要确认DUT在所有Preset下都能正常工作并且每个Preset的实际均衡效果和规范定义的一致。均衡的自适应能力。在链路训练过程中发送端和接收端会通过交换TS1/TS2有序集来协商均衡参数。你需要验证这个协商过程是否正确发送端是否能根据接收端的反馈调整均衡设置。均衡对眼图的影响。不同的Preset下眼图的高度和宽度会有明显变化。高均衡Preset会压低低频分量、提升高频分量眼图的高度可能降低但宽度会增加。你需要确认在所有Preset下眼图都满足规范的眼高和眼宽要求。这里有一个实操技巧测试发送端均衡时可以用示波器的FFE功能来“模拟”接收端的均衡效果但一定要把示波器的FFE设置和DUT的发送端FFE分开。正确的做法是先用示波器捕获DUT的原始输出波形然后在软件中分别应用发送端FFE和接收端CTLE/DFE的模型最后合成眼图。4. 信道测试插入损耗、回波损耗与串扰4.1 插入损耗测试的细节插入损耗是信道测试中最基本的参数。它描述的是信号经过信道后的幅度衰减通常用S参数中的S21来表示。PCIe 5.0对信道的插入损耗要求是在16 GHz处插入损耗不超过-36 dB。这个数值看起来很大但实际上很多PCB在这个频率下的损耗都接近甚至超过这个限值。测试插入损耗需要用到矢量网络分析仪VNA。测试时需要注意几点校准。VNA测试前必须做完整的校准包括开路、短路、负载、直通。校准件的质量直接影响测试精度。我建议使用电子校准件ECal虽然贵但一致性更好。测试夹具的去嵌入。如果你是通过测试夹具来测量PCB信道夹具本身的损耗必须被去嵌入掉。常用的方法有TRL校准、AFRAutomatic Fixture Removal等。去嵌入不干净是插入损耗测试中最常见的误差来源。差分与共模。PCIe是差分信号所以你需要测差分插入损耗SDD21同时也要关注共模到差分的转换SCD21。SCD21过大意味着信道的不对称性严重会导致共模噪声转化为差分噪声恶化眼图。4.2 回波损耗与阻抗匹配回波损耗描述的是信道阻抗不匹配导致的信号反射用S11或S22表示。PCIe 5.0对回波损耗的要求是在16 GHz处不超过-10 dB。回波损耗差通常意味着信道中存在阻抗不连续点比如过孔stub、连接器、封装引脚等。这些不连续点会导致信号反射反射信号与原始信号叠加后会产生码间干扰。改善回波损耗的方法包括使用背钻减少过孔stub、优化连接器的阻抗匹配、在封装设计中使用可控阻抗的走线。我在一个项目中遇到过回波损耗在特定频点突然恶化的情况后来发现是PCB叠层中某个电源平面的谐振导致的调整叠层后问题解决。4.3 串扰的影响与测试串扰是相邻信道之间的电磁耦合。PCIe 5.0的速率下串扰的影响比前几代严重得多。规范对串扰的要求通常用串扰功率和ICN或者串扰到信号比ICR来表示。测试串扰需要测量多个相邻信道之间的S参数包括近端串扰NEXT和远端串扰FEXT。测试时需要注意串扰测试需要同时测量 aggressor 和 victim 信道测试配置比较复杂。串扰的大小与信道的物理布局密切相关测试结果只能代表特定布局下的情况。在实际系统中串扰还受到信号码型的影响所以S参数测试只是第一步还需要通过系统级仿真来评估实际影响。提示信道测试的S参数文件是后续接收端容限测试和系统仿真的基础。如果S参数测试不准确后面的所有测试和仿真都会建立在错误的基础上。所以信道测试一定要做扎实不要为了赶进度而跳过校准和去嵌入步骤。5. 接收端容限测试压力眼与误码率5.1 压力眼的校准方法接收端容限测试是PCIe 5.0 PHY测试中最复杂、最耗时、也最容易出问题的环节。它的核心思路是用一个经过校准的压力信号去“攻击”接收端看接收端在多大的压力下还能保持足够的误码率余量。压力眼的校准包括以下几个步骤第一步设置基础信号。用BERT或者任意波形发生器AWG产生一个32 GT/s的PRBS码型信号调整电压摆幅和上升下降时间到规范要求的值。第二步加入抖动分量。按照规范要求加入指定量的随机抖动RJ、正弦抖动SJ和占空比失真DCD。这些抖动分量需要通过示波器精确测量和校准。第三步加入符号间干扰ISI。通过一个专门的ISI信道板或者可调ISI发生器在信号中引入指定量的ISI。ISI的大小通常用眼图的高度和宽度来表征。第四步验证压力眼。用示波器测量最终的压力眼确认眼高、眼宽、抖动等参数都在规范要求的范围内。这个过程说起来简单但实际操作中每一步都有很多细节。比如抖动注入的精度、ISI信道的温度稳定性、电缆和连接器的损耗补偿等等。我见过一个实验室因为压力眼校准偏差了0.5 dB导致一批本来合格的芯片被误判为不合格。5.2 误码率测试的执行与判读压力眼校准完成后就可以开始误码率测试了。测试的基本流程是将压力信号输入到接收端DUT。DUT接收信号后通过内部环回或者外部环回将数据送回BERT。BERT比较发送和接收的数据统计误码率。调整压力眼的参数通常是眼高或眼宽找到误码率刚好达到1E-12的临界点。这个临界点与规范要求的压力眼之间的余量就是接收端的容限。误码率测试的时间是一个关键参数。要统计到1E-12的误码率理论上需要传输至少1E12个比特。在32 GT/s下这需要大约31秒。但为了统计置信度通常需要传输10倍以上的比特数也就是5分钟以上。如果要做多个压力眼点的扫描整个测试可能需要几个小时甚至几天。为了提高测试效率业界通常采用外推法先测量较高误码率比如1E-6下的浴盆曲线然后用数学模型外推到1E-12。这种方法的精度取决于模型的准确性通常需要至少测量到1E-8才能保证外推的可靠性。5.3 接收端均衡的验证PCIe 5.0接收端有CTLE和DFE这些均衡器的自适应能力直接影响接收容限。测试时需要验证CTLE的峰值增益和带宽是否可调调整范围是否满足规范要求。DFE的抽头数量和自适应算法是否能在各种信道条件下收敛。均衡器的自适应过程是否会在某些码型下出现误收敛。验证接收端均衡的一个实用方法是用不同损耗和不同长度的信道板来测试观察接收端在不同信道下的误码率表现。如果接收端在某个信道下误码率突然恶化很可能是均衡器没有正确收敛。6. 常见问题与排查技巧实录6.1 眼图测试中常见的异常波形在实际测试中眼图异常是最常见的问题。下面整理了几种典型异常及其可能原因异常现象可能原因排查方向眼图高度不足发送端电压摆幅偏低、信道损耗过大检查TX摆幅设置、测量信道S21眼图宽度不足抖动过大、均衡设置不当分解抖动分量、检查FFE Preset眼图不对称占空比失真、上升下降时间不匹配检查时钟占空比、测量上升下降时间眼图有周期性塌陷电源噪声、周期性抖动检查电源纹波、测量PJ眼图整体模糊随机抖动过大、示波器噪声测量RJ、检查示波器底噪6.2 压力眼校准的避坑指南压力眼校准是接收端测试中最容易出问题的环节。以下是我在实际项目中总结的几个避坑要点坑点一电缆和连接器的损耗没有补偿。从BERT到DUT之间的电缆和连接器会引入额外的损耗如果不补偿实际到达DUT的压力眼会比预期的小。解决方法是在校准点测量实际的眼图而不是在BERT输出端测量。坑点二ISI信道的温度漂移。ISI信道板通常是用PCB走线实现的PCB的损耗会随温度变化。如果实验室温度不稳定ISI的量会漂移。建议在恒温环境下测试或者定期重新校准。坑点三抖动注入的精度不够。正弦抖动和随机抖动的注入精度直接影响压力眼的准确性。建议使用经过校准的抖动注入源并在注入后用电示波器验证实际抖动值。坑点四DUT的环回路径没有校准。如果DUT内部有环回路径环回路径本身的误码率需要先测量并扣除。否则你测到的误码率是压力眼和环回路径的叠加。6.3 链路训练失败的排查思路链路训练失败是另一个常见问题。PCIe 5.0的链路训练比前几代复杂得多因为涉及到均衡协商和速率切换。排查链路训练问题时可以按照以下顺序确认物理连接。检查差分对的极性是否正确、AC耦合电容是否安装、参考时钟是否正常。检查LTSSM状态。用协议分析仪抓取LTSSM状态跳转看卡在哪个状态。常见的是卡在Polling或者Configuration状态。检查均衡协商。如果链路能训练到2.5 GT/s但无法切换到32 GT/s通常是均衡协商失败。检查发送端和接收端的均衡Preset是否匹配。检查信号质量。如果LTSSM能走到L0但误码率很高需要回过去检查发送端眼图和信道质量。提示链路训练问题有时候是“软”问题比如固件中的均衡参数配置错误而不是硬件问题。排查时不要只盯着硬件也要检查固件和配置寄存器。7. 测试环境搭建与工具选型7.1 示波器与探头的选择PCIe 5.0 PHY测试对示波器的要求很高。选择示波器时需要考虑以下几个参数带宽至少50 GHz推荐70 GHz以上。采样率至少160 GSa/s推荐200 GSa/s以上。通道数至少2个差分通道推荐4个。抖动分析软件需要支持PCIe 5.0的抖动分解和眼图模板测试。探头方面推荐使用差分探头或者同轴连接器直接连接。差分探头的带宽需要与示波器匹配否则会成为瓶颈。同轴连接器的优势是带宽高、损耗小但需要PCB上有对应的连接器。7.2 BERT与压力眼发生器的配置BERT是接收端测试的核心设备。选择BERT时需要考虑码型支持需要支持PRBS7、PRBS15、PRBS31等标准码型。抖动注入需要支持RJ、SJ、DCD的独立注入和精确控制。ISI生成需要支持可调ISI或者配合外部ISI信道板使用。误码率统计需要支持长时间误码率统计和浴盆曲线扫描。压力眼发生器可以是BERT的内置功能也可以是独立的AWG。AWG的优势是灵活性高可以产生任意波形但需要额外的校准和验证。7.3 信道板的制作与验证信道板是接收端容限测试中的关键耗材。制作信道板时需要注意板材选择推荐使用低损耗板材如Megtron 6或类似等级。走线设计需要控制阻抗在100欧姆差分走线长度根据需要的损耗来确定。连接器推荐使用SMA或2.92mm连接器保证带宽足够。验证每块信道板都需要用VNA测量S参数确认损耗和回波损耗符合预期。我在实际项目中通常会准备多块不同损耗的信道板从-20 dB到-36 dB用于测试接收端在不同信道条件下的容限。8. 从测试结果到设计改进的闭环8.1 测试数据的分析方法PHY测试产生的数据量很大如何从数据中提取有价值的信息是一个关键能力。我通常从以下几个维度分析趋势分析。把不同Preset、不同信道、不同温度下的测试结果画成趋势图看是否有明显的规律。比如眼图高度随温度升高而下降说明发送端的温度补偿需要优化。相关性分析。把发送端测试结果和接收端测试结果做相关性分析。如果发送端眼图很好但接收端容限很差问题可能在接收端均衡或者信道。余量分析。计算每个测试项的余量找出余量最小的项。余量最小的项就是设计的薄弱环节需要优先改进。8.2 常见设计问题的改进方向根据测试结果常见的设计改进方向包括发送端眼图余量不足优化FFE抽头系数、增大电压摆幅、改善封装和PCB的阻抗匹配。抖动超标优化时钟电路、改善电源滤波、减少电源噪声耦合。回波损耗差增加背钻深度、优化过孔设计、调整连接器布局。接收端容限不足优化CTLE和DFE参数、改善接收端前端电路的线性度。串扰过大增加差分对间距、使用屏蔽走线、优化地平面设计。8.3 测试与仿真的迭代PHY测试不是一次性的工作而是一个迭代的过程。通常的流程是设计 - 仿真 - 测试 - 发现问题 - 改进设计 - 再仿真 - 再测试。这个循环可能需要重复多次直到所有测试项都有足够的余量。仿真在这个循环中扮演着重要角色。通过仿真你可以在流片前预测PHY的性能提前发现潜在问题。但仿真模型需要与实测结果对标否则仿真的可信度会大打折扣。我通常会用第一版测试结果来校准仿真模型然后用校准后的模型来指导后续设计。9. 写在最后的一些实操体会做PCIe 5.0 PHY测试这几年最大的体会就是测试规范是死的但测试场景是活的。规范定义了一套标准的测试方法但实际项目中你遇到的情况往往比规范复杂得多。比如你的信道可能不是标准的PCB走线而是经过连接器和线缆的复杂信道你的DUT可能不支持所有的测试模式你的测试设备可能无法完全满足规范要求的精度。这时候就需要你根据规范的精神灵活设计测试方案。规范的核心目的是保证互操作性只要你的测试方案能覆盖互操作性的风险点就是合理的。另一个体会是测试的精度取决于校准的精度。无论是眼图测试、抖动测试还是压力眼测试校准都是最关键的一步。我见过太多因为校准不到位导致测试结果不可信的例子。所以在测试上花时间做校准永远不是浪费。最后分享一个小技巧在做接收端容限测试时可以先用一个已知性能的参考DUT来验证整个测试系统的准确性。如果参考DUT的测试结果和预期一致说明测试系统是可靠的如果不一致先排查测试系统的问题而不是怀疑DUT。这个做法可以帮你避免很多误判。