ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PCIe 5.0信号完整性测试实战:Keysight示波器+M8040A误码仪详解

PCIe 5.0信号完整性测试实战:Keysight示波器+M8040A误码仪详解 干我们这行的都知道PCIe 5.0一出来以前在4.0上跑得挺顺的测试方案好多都不好使了。32GT/s的速率一个UI码元周期只有31.25ps信号在链路里跑一趟插损随随便便就几十dB要是再用老方法测眼图、读抖动出来的结果基本只能用来安慰自己。我这两年在实验室里配合做PCIe 5.0信号完整性测试用得最顺手的组合就是Keysight Infinium实时示波器加M8040A误码仪一个管TX发射端质量一个管RX接收端容错配合起来基本能把链路两侧该验证的东西都覆盖到。这篇主要写给两类人一类是刚接触PCIe 5.0测试、还在摸索仪器怎么配怎么设的硬件工程师另一类是已经有测试基础但想在TX/RX测试流程上少踩几个坑的同学。我在这里不会给你堆规范条款就是把我实际操作过程中的仪器连接、参数设置、软件操作顺序、判定标准以及踩过的坑一条条捋清楚。1. 先想清楚PCIe 5.0的信号完整性测试到底在测什么很多人拿到测试任务第一反应是赶紧开仪器但PCIe 5.0和4.0在测试思路上有本质区别。先把测试目标拆清楚后面做事才不会乱。1.1 32GT/s带来的链路质变这里的关键词是32GT/s配合NRZ编码。NRZ意味着一个UI内只有高低两个电平信号频率翻倍有效信号带宽推高到16GHz的奈奎斯特频率。对主板PCB、连接器、线缆来说这个频率下的插损已经非常难看。PCIe 5.0的典型通道插损预算在一整条链路上可以到33dB以上意思是发射端送出1V的信号到了接收端可能只剩20mV左右的摆幅再加上串扰和反射你很难再用“看波形”的直觉去判断信号好坏。同时时序预算也被压得很紧。一个UI是31.25ps上升时间通常在10ps上下。示波器如果带宽不够波形上升沿被拖慢眼图的宽度和高度数据都会失真测出来的结果压根没法写进报告。所以PCIe 5.0的测试并不是简单把PCIe 4.0的流程搬过来。它对测试设备的分辨率、通道损耗补偿能力、抖动分析的精度都提出了全新要求。这也是为什么Keysight的Infinium UXR这类高带宽实时示波器在5.0测试中成为主线10bit ADC和超高的点位密度可以让波形细节不被量化噪声吃掉。1.2 TX和RX各自测什么边界怎么划PCIe链路的信号完整性测试通常分成TX和RX两个方向。TX测试针对发射端。测试目标是确认发送芯片输出的信号“足够干净”眼图的幅度、宽度、模板裕量、总抖动、随机抖动、确定性抖动、SSC扩频……这些指标决定了信号在进入损耗链路之前有没有足够好的起点。RX测试针对接收端。它验证的是接收器在收到一个已经被链路折腾得七零八落、还叠加了额外噪声和抖动的信号时能不能正确恢复出数据。这一步用示波器看不出名堂必须靠误码仪发出一路故意加压力干扰的信号在被测接收机一端统计误码率。这套分工决定了设备选型TX侧核心是示波器RX侧核心是误码仪。Keysight Infinium平台覆盖前者M8040A覆盖后者两者之间还可以共享测试夹具和链路装置省了不少事。2. 测试系统搭建Infinium示波器和M8040A误码仪怎么分工2.1 示波器规格怎么选带宽、采样率、ADC位数先讲TX侧的“眼睛”Infinium。PCIe 5.0测试中示波器带宽至少要满足能够准确捕捉一个UI内的信号变化。业界普遍推荐带宽不低于32GHz实际操作中我会优先选50GHz级别的Infinium UXR系列。为什么推荐高一个量级因为示波器的幅度误差和上升时间误差都是随带宽逐步累积的信号本身的5次、7次谐波分量都需要保留下来眼图边缘才真实。带宽越低上升沿被拉得越平眼宽和眼高都会虚肥看起来合格实际完全不可信。另一项关键参数是采样率。实时示波器的采样率至少要达到带宽的2.5倍到4倍以上例如50GHz带宽通常对应128GSa/s或更高的采样率。高采样率带来的好处不只是看波形更细腻在做眼图和抖动测量时采样点密度直接决定了时间间隔测量的分辨率。抖动测量中精度差几个皮秒都可能决定项目是过还是不过。ADC位数也很重要。Infinium UXR系列做到了10bit ADC相比传统8bit示波器量化噪声更低对小信号的测量更稳定。做PCIe 5.0测试时信号经过长链路后摆幅已经很小8bit示波器有时候连电平之间的台阶都分不清楚10bit会让眼图的“眼睛”边界清楚很多。仪器选型完成后探头和线缆一定不能拖后腿。我始终用差分探头或者高频转接方式确保探头本身的带宽超过33GHz。如果探头带宽只有25GHz那整个测量系统的带宽就被探头卡死了示波器买得再好也白搭。线缆的注意点在后面单独说。2.2 M8040A误码仪到底能干多少活RX侧的主力是M8040A误码仪。很多人觉得误码仪就是发码、收码、数错误数但M8040A在这个基础上做了非常多针对PCIe测试的集成。它支持到32GT/s甚至更高的数据速率内置码型发生器、误码检测器还能产生SSC扩频时钟。做PCIe 5.0接收机测试时需要给信号加上指定幅度的随机抖动、正弦抖动以及频率偏移M8040A可以直接把这些损伤合成到输出码流中不需要外接一堆信号源和混频器。这一点在实际操作中省了大量时间也减少了链路中因为过多外接模块引入的反射。它还有压力眼图校准功能。接收机测试要求把送入DUT的信号调节到规范规定的一定电压幅度和抖动水平M8040A可以在测试端配合示波器做校准把输出参数调到目标值附近然后再接上被测设备。从测试链路来看整个RX测试大致是M8040A的发送端输出压力信号经过测试夹具和线缆进入被测设备被测设备的接收端恢复出数据再通过回传通道送给M8040A的误码检测端。中间信号可能还要经过转接卡、衰减器之类每一段都要仔细处理具体操作在第四章细说。2.3 连线、接地和夹具里的那些坑这一节如果不注意后面所有操作都是徒劳。首先是夹具。PCIe 5.0测试通常要用支持32GT/s的专用测试夹具或转接卡普通PCIe 4.0夹具在16GHz频率下的损耗和串扰已经不规则了测出来会有额外偏差。我推荐在条件允许的情况下用测试夹具自带的高性能SMA/差分连接器尽量减少手工焊接飞线因为手工焊线的一致性很差。其次是同轴线缆长度和类型。做PCIe 5.0测试时线缆本身也要当传输线看待普通低频线缆在这个频率下损耗大得离谱。应该选择带宽在40GHz以上的相位稳定型线缆且尽量把线缆长度控制在允许范围内。线缆越短去嵌入的压力越小。另外所有仪器必须共地。示波器、误码仪、被测设备DUT、以及可能用到的直流电源接地环路要统一。否则在16GHz频点上地环路噪声可能会直接变成眼图上的“雾”让你误判信号质量。实测中我遇到过一次很典型的例子仪器全部连接好后眼图底噪异常高排查半天发现是一台辅助电源没有接同一个接地排接地不良造成环路干扰。还有一个容易被忽略的点是S参数文件的准备。在做去嵌入前需要把从示波器探测点到测试板接口之间的通道S参数测出来或由夹具厂商提供。提前确认S参数文件的频点覆盖范围到40GHz以上否则去嵌入后的波形在高频段会有明显抖动。3. TX端测试实操用Infinium把发端质量完整读出来3.1 波形采集前的软件设置TX测试的第一步是在Infinium示波器里把采集条件准备好。我会先把示波器的垂直分辨率设到最高档位水平时基调整到能够同时捕获多个连续码元的状态。触发一般用信号自身的边沿触发即可关键是采集足够多的码元个数。PCIe 5.0规范中很多参数统计是基于百万单位级别的码元样本比如做眼图和模板测量时至少要采集10^6个以上码元才能让抖动统计可靠。软件里可以把采集长度设成一次采集多个UI再配合多次统计让总码元数达到百万级。这个阶段还要注意带宽限制。PCIe 5.0规范测试通常要求示波器带宽不限制全带宽或者按测试点要求设置。如果是做芯片级TX测试一般全带宽采集软件后续会做均衡处理如果是做系统级测试可能需要配合通道特性来分析。采集到数据后先不要急着看眼图。建议先在时间波形上检查有没有异常的边沿过冲、非单调沿、振铃之类问题。如果波形本身有异常后面的统计指标都会受影响。3.2 去嵌入和均衡把链路损耗影响先从测量里拿走这是TX测试里最容易做错、也最关键的一步。示波器探头测试的点往往不是芯片引脚本身而是经过了一段PCB走线、连接器和线缆。这段测试夹具和连接路径的损耗会叠加在信号上把原始发射信号“弄脏”。为了还原芯片引脚处的真实发射波形需要用通道的S参数把这段影响在数学上去除掉这个过程就是去嵌入。在Infinium软件的测量流程里我会先导入对应测试点的S参数文件指定S参数的正方向再选择“去嵌入”选项。软件会通过频域均衡的方式补偿通道的插入损耗和相位畸变。注意不要一开始就去做接收端均衡先做去嵌入再看波形是否恢复干净。去嵌入之后还需要按照规范做接收均衡。PCIe 5.0规范允许在TX测试时用一组特定的CTLE和DFE接收均衡设置来模拟接收端芯片的处理能力。因为PCIe 5.0的链路很长发射信号本身可能带有明显的码间干扰ISI如果不加均衡“裸眼图”会非常糟糕但这不代表发射芯片不合格。规范认可的是“经过指定均衡后的眼图”满足要求。实际操作中我会在Infinium的均衡配置界面里选择CTLE填入规范要求的交流增益和零极点频率再叠加一个3阶或5阶的DFE然后看均衡后的眼图。这里有一个常见的坑不要把均衡强度调得太激进。有些人为了让眼图好看DFE抽头系数随便给结果测出一个假合格的眼图。均衡参数必须跟着规范走规范用什么抽头系数就用什么抽头系数。3.3 眼图、模板与抖动指标怎么判处理完去嵌入和均衡接下来就是出眼图、读指标。在Infinium的眼图分析界面上可以把采集到的波形按UI叠加成一幅眼图然后套用PCIe 5.0的规范模板。模板测试会判断眼图是否“碰”到模板的内眼区域碰到就Fail有些许裕量才是通过。需要重点关注的参数有这么几个眼高Eye Height规范会有最低值要求实际测量值要比最低值留出余量。如果余量不足要考虑链路损耗是否补偿过度、探头带宽是否不够。眼宽Eye Width衡量时间方向上的开口程度和抖动直接相关。眼宽不够说明时序抖动过大。总抖动TJ和随机/确定性抖动RJ/DJInfinium的抖动分解功能可以把总抖动分解为随机部分和确定性部分方便定位抖动来源。RJ通常来自热噪声和电源噪声等随机源DJ往往来自码间干扰和串扰。模板命中率统计有多少码元落进了模板区域。理想情况是零命中如果命中次数多需要逐条排查数据。实测下来PCIe 5.0 TX最容易不达标的地方是眼高。高速串行链路到了32GT/s发射端的摆幅已经不大再经过测试夹具损耗示波器最后看到的高频幅度衰减不少。如果去嵌入没做对眼高结果会相差几十毫伏直接影响判定。所以我说去嵌入这步是TX测试的“命门”。SSC扩频时钟的影响也值得留意。PCIe 5.0规范要求发送端有扩频时钟常见的配置是0.5%的down-spread调制频率在30kHz到33kHz之间。SSC会导致信号的时间基准慢速变化使眼图看起来有“呼吸”感。在做抖动分析时软件会区分慢速调制分量和快速抖动分量通常低频的SSC不是作为RJ或DJ计入抖动预算的这一点要特别看软件设置。4. RX端测试实操M8040A怎样把接收机逼到极限4.1 为什么要用压力眼图而不是干净信号RX端测试的思路和TX完全不同。如果你给接收机送一个非常干净的信号它当然能正确接收但这不能证明它在真实链路中还能正常工作。真实链路中接收端收到的信号已经被信道插损、串扰、反射、电源噪声折腾过一遍幅度变小边沿变模糊抖动变大。所以规范规定RX测试必须使用“压力眼图”Stressed Eye信号。所谓压力眼图就是在原本干净的信号上人为叠加一些规范指定类型的干扰让接收端工作在一个接近极限的状态然后测量它的误码率还能不能保持在可接受范围内。这就像训练一个人时要在他状态接近极限的情况下看他还能不能稳定完成任务。M8040A的压力信号生成逻辑核心是三个方面随机抖动注入模拟真实系统中的随机噪声源通过加大RJ的幅度来考验接收机CDR电路的去抖动能力。正弦干扰注入模拟周期性噪声例如电源耦合或时钟串扰带来的周期性抖动指定一个或多个干扰频率。符号间干扰ISI调节通过调节通道特性或均衡设置制造码间干扰用来考验接收机均衡器能否把前一个码元的拖尾影响消掉。这三部分合成的压力信号需要通过示波器在校准端反复校准最终达到规范要求的电压幅度、抖动总量和各个分量比例然后再接到被测接收机上。4.2 链路训练、码型选择与误码统计RX测试流程我习惯按下面这个顺序走第一步是链路初始化。接好DUT电源和链路后让PCIe链路先完成训练。很多情况下需要把DUT里的PCIe配置成loopback模式或者指定的测试模式这样它才会持续发/收已知的测试码型。链路训练如果失败后面都白搭。我在项目里遇到链路训练失败大多数原因是M8040A的输出幅度和DUT要求对不上需要调节输出电平和预加重。第二步是选择合适的测试码型。PCIe 5.0的测试码型通常用PRBS系列具体用哪一种要参考规范或DUT厂商的建议。通常选用与PCIe链路兼容的伪随机序列比如PRBS11、PRBS13或PRBS15。码型的长度决定了测试覆盖的码型组合数量码型太短可能覆盖不到某些比特模式码型太长则耗费更多测试时间。实际操作中对PCIe 5.0 BER测试我会以规范推荐码型为准同时兼顾测试时长。第三步是让误码仪进入误码检测状态。M8040A接收端需要锁定DUT返回的数据流并同步到本地生成的参考码型上然后开始逐bit比较。在误码仪界面上可以看到误码计数、误码率实时数值以及误码位分布。第四步是设置采样点位置。一般来说误码率并不是在一个固定采样点就能代表接收机性能的。更严谨的测试是对采样点位置做扫描画出“浴盆曲线”Bathtub Curve。曲线越宽、底部越平坦说明接收机的时序容限越好。浴盆曲线的两个边沿对应BER低于目标值的极限采样点位置左右宽度就是接收机的眼宽裕度。4.3 BER目标和测试时间怎么算PCIe 5.0的误码率目标在无纠错情况下通常要求BER低于1e-12级别。这意味着如果要直接统计验证BER 1e-12至少要接收到约10^12个bit在32GT/s速率下大概几十秒就可以收集够但前提是链路全程没有非正常中断和失步。实际项目中我们不会傻等那么久才判断通常做法是先观察初始误码情况如果误码计数持续为0再结合测试时长用统计置信度换算出BER上限。有一种常见情况是BER在长时间测试中偶尔跳出一两个错误。这时候不要急着判断失败先看看错误码型是否有规律是单bit错误还是连续错误是否和温度波动、电源波动相关。另一个容易被忽略的是抖动容限JTOL测量。除了在单一压力条件下测BER还可以让M8040A以固定的步进逐步增加某个特定频率的正弦抖动直到接收机误码率恶化到目标值以上画出一条“抖动容限曲线”。这条曲线能非常直观地告诉你接收机在哪些频率上最脆弱。PCIe 5.0规范对JTOL有明确的包络要求实测中我经常发现那些在标准压力眼图下能过的芯片JTOL曲线上会暴露出CDR带宽设置的问题。4.4 实测过程中的几个细节压力眼图的校准通常不是一次就成功。M8040A发出压力信号后我会用示波器在校准点测一组眼图检查抖动总量和幅度是否和目标一致。如果幅度偏低优先调节输出摆幅如果抖动总量偏低就要加大RJ或SJ注入量如果眼图底部出现异常畸变可能是线缆或夹具引入的反射需要先修正链路再接DUT。另外压力眼图校准用的示波器最好和TX测试是同一台Infinium或者至少校准方法和参考点保持一致。否则误差会叠加。RX测试中的去嵌入方向与TX相反还需要特别注意“参考点”的概念。校准压力眼图时示波器测试点通常在夹具末端或DUT引脚附近而DUT看到的是经过线缆、连接器衰减后的信号。很多刚入手的人搞混这两个位置以为在校准点测到符合规范DUT就自然也能通过其实中间那段链路损耗已经让信号面目全非了。5. 实测中的常见问题与排查思路5.1 示波器侧三个最头疼的问题第一个是去嵌入后的波形出现明显振铃。这种问题我在调试中遇到得好多次大多是S参数文件导入方向错了或者S参数频点覆盖不足。解决方案是先确认S参数文件是针对哪一段通道测试的正反S参数别选反。还有就是频域去嵌入在高频段容易放大噪声如果振铃频率集中在16GHz以上大概率是S参数在高频段不平滑导致的可以尝试平滑滤波后重新处理。第二个是模板测试时报错“命中数超限”但眼高眼宽数值看上去还行。这通常是因为采集码元数量不足模板测试统计样本不够时极端码元还没出现。加大采集次数让总码元数达到百万级再重新跑模板测试结果往往就变了。第三个是抖动测量结果不稳定前一次测和下一次测差很多。大概率是触发点或者SSC没有处理好。PCIe 5.0的SSC会在测量中引入较慢的时间漂移如果软件把SSC也算进了抖动统计TJ会虚高。要确认测量算法把低频慢变化单独建模只把剔除SSC后的抖动计入判定。5.2 误码仪侧四个常见问题问题一链路训练成功但误码仪无法锁定DUT返回的数据。先查回传通道上的信号幅度是不是太低PCIe 5.0的返回信号也在32GT/s如果回传路径上串了衰减器幅度压到接收门限以下就锁不住。适当调整误码仪接收端的灵敏度和均衡设置。问题二BER一直稳定在某个数量级比如1e-10上不去。这很可能是压力眼图中的某个干扰分量没校准好或者DUT在新压力条件下触发了内部的纠错机制。先回归到较低压力条件逐项检查每个损伤分量的幅度再逐步升压力找到BER恶化的拐点。问题三压力眼图校准值和目标差得越来越大。这个和链路温度相关。高速链路跑一段时间后芯片和线缆温度升高损耗和抖动都会变化校准出来的眼图参数会漂。建议在测试开始前先把整个系统预热20到30分钟让温度稳定下来再校准。问题四连续误码但误码仪显示单比特错。这种情况经常和DUT的CDR或时钟恢复电路相关。可以试着在M8040A上调整恢复时钟的带宽设置如果问题消失说明DUT侧时钟恢复带宽太窄对某些低频抖动分量过度响应。5.3 一套快速排查表现象优先排查项常用处理办法TX眼图偏小去嵌入是否正确重新检查S参数方向确认参考点TX模板频繁Fail采集样本数不足提升采集码元数到10^6以上TX抖动虚高SSC是否被计入调整抖动分析算法剔除SSC分量RX无法锁定回传链路幅度低调高误码仪接收端灵敏度RX BER不达标压力校准值漂移预热系统重新校准所有损伤分量RX浴盆曲线不对称采样点扫描步进过大缩小步进增加扫描点数眼图底噪大接地环路问题统一接地检查线缆屏蔽层高频段振铃S参数高频不平滑检查S参数有效性平滑处理后重测6. 把方案真正落地测试文档、报告技巧与个人体会测试做完最终要落到报告上。PCIe 5.0的信号完整性报告不是把示波器和误码仪截图贴上去就行关键是把测量条件写清楚。我这里有一个固定的报告模板思路先写明被测设备、速率、测试码型、参考点、均衡参数、S参数文件再贴出眼图和模板结果、抖动分解表、BER曲线和浴盆曲线。参数和曲线都要标注测试软件版本否则后续复核时经常对不上。报告里我还会重点标注“裕量”而不是只写Pass/Fail。Pass说明合格但裕量大小才真正体现链路的稳健程度。比如眼高最低要求30mV实测35mV和实测80mV虽然都Pass但后者在量产后显然更不容易出问题。把这些写在报告里对后续设计改进更有参考价值。最后说几句个人心得。第一不要迷信“一键测量”。Infinium和M8040A都有很多自动化测试功能但前提是你知道它背后的测量参数是什么。每次跑自动测量前我都会手动跑一次单点看波形确认链路状态正常。第二要舍得在夹具和线缆上花钱PCIe 5.0的测试瓶颈常常不在仪器而是在那些不起眼的连接件上。第三测试环境和温度影响非常大高速链路对温度敏感特别是RX压力测试尽量在恒温环境下进行。这套Keysight Infinium M8040A的组合我在多个项目上反复用下来流程固定后稳定性相当好。如果你手上的项目刚进入PCIe 5.0阶段建议先照这个思路把TX和RX链路分别打通再逐步深入协议层的进阶测试。后续如果再碰到新的信号完整性测试问题也可以按“链路、参考点、均衡、抖动来源、测量参数”这个顺序反向排查。
返回列表