资讯动态

SerDes眼图测试实战:PRBS激励、示波器设置与时钟恢复全解析

发布时间:2026/10/6 15:36:22 来源:尧图企业网站定制
第一次把差分探头点到10.3125Gbps的传输线上的时候我下意识屏住呼吸。屏幕上要是不出现一张干净敞开的眼图后面所有调试动作都等于盲人摸象。做了这么多年信号完整性SI测试SerDes眼图测试已经成了我的固定动作而且每一步都离不开PRBS、示波器、时钟恢复这三样东西。这篇文章写给两类人一类是刚接手高速接口板卡调试的硬件工程师另一类是实验室里需要自己搭环境做高速信号验证的测试工程师。PRBS为什么是默认激励源、示波器要在哪几个菜单里点、参数怎么设、眼图读数怎么看我会按实际操作的顺序完整走一遍。读完这篇文章你至少能独立测出一张可以交差的SerDes眼图也能在眼睛打不开的时候知道从哪里开始排查。1. PRBS为什么是SerDes眼图测试的默认“刺激源”1.1 PRBS的生成原理一个移位寄存器搞定PRBS全称是Pseudo Random Binary Sequence中文叫伪随机二进制序列。它长得像随机掷硬币的结果实际上是由线性反馈移位寄存器LFSR按照固定多项式生成的周期序列。拿最常见的PRBS7来说生成多项式是x^7x^61意思是7级移位寄存器里把第7位和第6位做异或后反馈到第1位其余位依次往后移然后选择一个输出抽头作为码流输出。只要初始化时寄存器不全为0这个序列就会按固定周期不停循环。PRBS7一个周期的长度是2^7-1127个bitPRBS31则长达2^31-1个bit光一个周期就有21亿多个bit。因为它是“伪随机”所以测试结果有可重复性出问题能复现、能定位这是它比纯随机噪声更适合做测试信号的重要原因。从频域看PRBS的频谱比固定方波平坦得多能近似覆盖从低频到高频的较宽带范围。SerDes链路里最怕两种损伤一个是高频损耗它让边沿变圆、眼高降低另一个是低频/直流相关损伤它让长串相同bit之后的电平发生漂移。PRBS提供足够的0/1翻转把两种损伤都暴露出来所以它成了串行链路激励的默认选择。1.2 PRBS7、PRBS23、PRBS31到底选哪个不同阶数的PRBS最大的区别在低频分量和最长连续bit长度。阶数越高序列周期越长低频成分越丰富连续相同bit的数量也越多对AC耦合电容、时钟恢复电路和均衡器的压力就越大。实际测试中不能随手抓一个模式就用要按被测链路的协议要求和调试目的来选。PRBS阶数常见生成多项式最长连续bit量级典型测试场合PRBS7x^7x^61约7bit基础收发器眼图、快速验证、串行链路初调PRBS9x^9x^51约9bit部分并行总线、短距离链路验证PRBS15x^15x^141约15bit中距离链路、部分接口规范PRBS23x^23x^181约23bit背板、光模块、低频率伤链路测试PRBS31x^31x^281约31bit高速SerDes压力测试、CDR低频跟踪能力测试我的习惯是先上PRBS7。它最容易出眼图信号频谱能量相对集中用来确认探针接触、触发、通道设置这些“测试环境本身”有没有问题。等环境确认干净了再切PRBS23或PRBS31去做压力测试。如果一上来就PRBS31眼图往往很难看但你分不清是链路真不行还是探针阻抗没匹配好排查会很痛苦。另外要提醒一句PRBS只是实验室里的通用激励。很多协议标准里实际要求的是带编码的流量比如8b/10b、64b/66b或者各种合规码型。测MIPI D-PHY这类有自己帧结构的接口时也不能直接拿PRBS往数据线上捅需要按协议生成HS模式再测。PRBS是“信号链路有没有问题”的工具不是“协议能不能过”的工具。2. 测试系统搭建示波器、码型发生器与探头怎么配2.1 示波器带宽和采样率的下限怎么定测SerDes眼图示波器是第一道门槛也是最容易暴露预算问题的环节。低速数字芯片用几十兆带宽的示波器还能看个大概到了Gbps级别的SerDes示波器带宽不够眼图会被测出“假闭眼”。工程上常用一个估算公式所需示波器带宽≈0.35/信号上升时间。假设某10.3125Gbps信号的上升时间是30ps0.35除以30ps大约是11.7GHz也就是说至少要一台12GHz级别的示波器才能让测出来的上升沿接近真实值。实际做合规或严谨验证最好再留50%以上的裕量20GHz带宽的实时示波器是这个速率下的舒适区。采样率方面实时示波器要考虑Nyquist采样定理但实际测眼图时远不能卡着两倍采样率干活。我的经验是对10Gbps级别的NRZ信号示波器采样率至少20GSa/s起步30GSa/s以上才看得比较舒服。采样率太低眼图里的跳变沿会明显“发毛”抖动分析结果也会失真。别迷信示波器的“自动设置”自动设置往往会把采样率调到能正常显示的档位但对高速眼图来说未必够。被测信号速率建议实时示波器带宽建议采样率3.125Gbps8GHz以上20GSa/s以上10.3125Gbps16~20GHz以上30GSa/s以上28Gbps33GHz以上40GSa/s以上或采样示波器如果你手上只有6GHz或4GHz的示波器测10Gbps是不是完全不能测能测但必须明确你看到的是经过示波器前端滤波之后的“假眼图”眼高会偏小、上升沿会变缓只能拿来做相对比较不能拿去对标协议模板。2.2 探头、线缆、阻抗匹配细节决定成败很多人测高速信号翻车不是示波器不够好而是探头和接线没弄对。普通10×无源探头的地线夹一夹就上这种接法在100MHz以下问题不大到了GHz级别探头尖端和地线夹形成的回路电感会引发振铃你看到的波形根本不是板上真实信号。测SerDes的高频信号可靠的方案有三种。第一如果PCB上有SMA测试点直接用一对等长SMA线缆接到示波器的两个50Ω通道这是最推荐的方式路径最短、损耗最可控。第二用带宽覆盖测试频率的差分有源探头把探头尖直接压在TX差分焊盘上注意接地要短。第三在接收端测试时如果被测信号是经由连接器、背板再进来的可以把示波器接在接收端的测试点这时候SMA线缆本身的损耗也要算进去。阻抗匹配是另一个高频翻车点。SerDes收发端的差分阻抗通常是100Ω单端对地是50Ω。示波器通道的输入阻抗要选50Ω端接不是1MΩ。如果用的是差分探头探头本身的输入阻抗已经是设计好的按厂商建议接就行。要是信号幅度超过示波器量程比如输出幅度到了1.5Vpp串一个带宽足够的衰减器然后一定要在通道菜单里把衰减系数填进去否则参数读数全部作废。还有两个小细节容易被忽略。一个是DC Block当DUT的TX输出端有偏置电压时要用隔直电容或DC Block把直流分量挡掉但如果你在用示波器内部的交流耦合要注意它会切掉部分低频对PRBS23/31这种低频分量丰富的码型影响更明显最好外接DC Block并用DC耦合。另一个是通道间skew校准两个通道的路径长度不一致会让差分信号交叉点看偏好的示波器菜单里有Deskew校准功能测试前一定要做。3. 从开机到出图码型发生器和示波器操作全流程3.1 先把码型发生器配好眼图测试不是示波器单机就能完成的它需要一个明确的激励源把数据链路跑起来。如果被测对象是DUT自己的发送端那么DUT要处于“发PRBS码”的状态比如FPGA里用IBERT或者SerDes自带的回环测试IP产生PRBS。如果被测对象是接收端那么外部码型发生器Pattern Generator负责把质量已知的PRBS码流送到DUT的RX端。我以10.3125Gbps的SerDes链路为例码型发生器的配置步骤大概是打开码型发生器先把输出频率设成10.3125GHz确保不是误设成10.0000GHz这一步差一点眼图周期就不对。选择码型为PRBS7先跑基本眼图链路调通后再换PRBS23或PRBS31做压力验证。设置输出幅度。常见NRZ差分信号是700~900mVpp先按800mVpp差分设置具体按DUT和链路标准要求来。去加重De-emphasis先关掉。如果链路损耗大需要去加重也应该是在基础眼图出来之后一步步打开而不是一开始就把状态搞复杂。把码型发生器上的SYNC同步输出接一条SMA线到示波器的外部触发通道。这一步看起来简单但实际能省掉大量触发设置的时间。确认输出口是打开的有些仪器的输出需要手动按一下“Output On”别在仪器面板上急着找眼图找半天最后发现信号根本没出来。这一步的核心思路是“先让码流简单、干净”排除激励源本身的干扰。很多实验室里眼图闭成一条缝最后查出是码型发生器幅度设错或输出口是坏的这种情况并不少见。3.2 示波器上把这个功能打开示波器品牌不同菜单名称有差异但眼图功能的位置和逻辑基本一致。以主流实时示波器为例操作顺序如下在通道菜单里把输入阻抗设为50Ω关闭带宽限制设置好探头衰减和Deskew。把垂直灵敏度调到100mV/div附近让信号占屏幕高度60%~80%。幅度太小测不准噪声太大容易超过ADC满量程出现削顶。找到“Eye Diagram”眼图模式也可以叫“Eye and Mask”或“串行数据分析”不要直接按普通“Run/Stop”去吃灰。选择数据通道。如果信号是差分对选择Ch1和Ch2相减示波器会把两个通道做差分运算后显示眼图。设置参考/恢复时钟。实时示波器一般内置CDR时钟恢复选择“Clock Recovery”或“CDR”进入设置界面。设置采集的bit数量。做普通观察采10^4~10^5个UI就够了要做模板和抖动分析采10^6个UI以上。开启无限余辉或Color Grade彩色余辉这会让累加后的眼图轮廓更直观。显示器上颜色越亮的区域说明信号落在这里的时间占比越高。在分析菜单里加上所需测量项比如眼高、眼宽、交叉点百分比、Q因子、抖动峰峰值。这里我要特别强调一个反直觉的操作不要用示波器的“Autoset自动设置”按钮。自动设置是按普通波形显示逻辑来配的它不知道你要测什么速率的SerDes也不会自动帮你选好CDR参数。按一下Autoset常常会把你已经调好的眼图模式切成普通时基显示折腾半天又得改回来。3.3 时钟恢复设置不要让眼睛被“骗”眼图本质上是把多个UI的信号周期性地叠加在一起显示。叠加的“参考时钟”从哪来决定了眼图的好坏和外貌。如果外部触发器用的是码型发生器的SYNC输出那么码流中的大部分抖动都会在眼图上显现这是最原始的叠加方式。但协议合规测试更常用的是示波器自带的CDR也就是从数据信号本身恢复出时钟再按这个恢复时钟来对齐眼图。CDR有两个参数最影响结果一个是数据门限电平另一个是环路带宽。门限一般设在信号的50%幅度点更准确的做法是先看清单端或差分波形幅度再手动设置门限。环路带宽按被测系统的标准来如果没有标准可以先从4MHz左右开始看效果。环路带宽设得太高恢复时钟会跟着数据的高频抖动一起走眼图看起来比实际好设得太低恢复时钟追踪不到低频相位变化眼图会在水平方向晃动。不同协议对CDR带宽有明确要求实验室里的白眉毛做法是找到对应标准的测试程序把环路带宽输进去而不是随便拍脑袋。设置完CDR以后注意看示波器上的“Clock Locked”或“PLL Lock”指示灯。如果指示灯一直闪通常说明输入信号太弱、门限不对或者是CDR带宽设得和实际码率不匹配。先回到时基模式看一眼数据波形确认信号幅度、占空比和边沿是正常的再回到眼图模式不要在东倒西歪的信号上反复调参。4. 眼图出来了五个指标怎么解读4.1 眼高、眼宽、交叉点三分钟看链路好坏眼图打开以后不要先想着截图发工作群先看三个最基础的参数。眼高Eye Height反映的是电压裕量。它等于0电平和1电平之间最窄处的电压差。眼高变小说明链路里叠加了大量噪声和码间干扰常见原因是损耗太大、串扰严重、地弹或者电源噪声。实际测试中如果10Gbps信号在接收端测出来的眼高低于200mV链路可能已经很难保证稳定的误码率。眼宽Eye Width反映的是时间裕量。它等于眼睛在交叉点附近水平方向的开放宽度通常用ps或UI表示。眼宽小于0.5UI意味着采样点在时间上几乎没有余量很小的抖动就可能采错bit。眼宽收窄最常见的原因是总抖动变大、CDR跟踪能力不足或者参考时钟本身太脏。交叉点百分比Crossing Percentage看的是跳变沿对称性。理想情况是50%也就是上下跳变的交叉位置在幅度中点。交叉点偏高或偏低说明上升沿和下降沿不对称可能是驱动器的输出级不对称也可能是链路对上升和下降沿的损耗不一样。这个参数在调试时很有价值它能把问题往“发射端”“通道”或“串扰”上引而不是一概归结于损耗。除了这三个还会经常看每个bit上沿和下沿的“双线”分叉程度。双线越明显说明确定性抖动特别是码间干扰越严重双线模糊成一片则更多是随机噪声在做乱。4.2 抖动分解和浴盆曲线眼图之外的判断眼图是“结果”抖动分析告诉你是“为什么”。现代示波器通过测量每个边沿相对恢复时钟的时间差得到TIE时间间隔误差序列然后对这个序列做统计和频谱分析把总抖动TJ分解成随机抖动RJ和确定性抖动DJ。确定性抖动还常继续细分成数据相关抖动DDJ、占空比失真DCD和周期性抖动PJ。数据相关抖动通常来自链路带宽不足、反射和均衡不匹配占空比失真是上升下降速率不一致周期性抖动多半是电源噪声、参考时钟串扰或者邻近通道串扰。这一步可以帮助测试人员判断眼图闭合的根因。比如说TIE频谱里出现一个和开关电源频率一样的尖峰那基本可以锁死是电源问题。浴盆曲线Bathtub Curve则是眼图水平方向的另一种表达。它把不同时间偏移处的估算误码率画成对数曲线左右两侧像浴缸壁一样升起中间平坦的区域就是误码率低于某个门限的“安全区”。通过外推可以看到在BER1e-12甚至1e-15下的眼宽裕量。注意这是统计外推不是真正跑误码仪测出来的实时误码率。眼图测试适合调试和筛选最终验收该用BERT跑误码率还是得跑两条腿走路。5. 常见翻车现场与排查手册5.1 屏幕上什么都没有或者全糊掉了先别急着怀疑DUT报废九成问题出在测试搭建上。我见过太多案例最后发现是通道没打开或者信号接在了第2通道却盯着第1通道找眼图。这种低级错误写在方案里没人看但现场试一次就长记性。还有几个高频翻车点示波器的带宽限制没关高频分量被切掉眼图边缘全部变圆输入阻抗误设成1MΩ传输线在示波器端形成反射图案变得乱糟糟差分信号只接了一根线另外一根悬空看到的是共模噪声叠加后的“假眼睛”。用表格快速排查现象可能原因先做这一步完全没有波形通道没开、信号没输出、连接线断回到普通时基模式看单端波形屏幕一团噪声1MΩ/50Ω设错、探头没接地检查通道输入阻抗和探针接触眼图边缘全糊带宽限制开启、采样率过低关掉带宽限制提高采样率和存储深度两只眼不能稳定对齐触发/恢复时钟错误、码率设错改用SYNC触发或重新设CDR带宽眼图上下削顶垂直幅度过大ADC饱和调垂直灵敏度或加衰减器提示发现异常后先回普通时基模式看单个bit的波形。眼睛看不清单bit就谈不上看清100万个bit的叠加。5.2 眼睛偏小、左右发散先查测量环境再查DUT有次在某FPGA的SerDes链路上测眼图眼宽只有0.3UI折腾了两天反复检查码型发生器、探头和电缆最后才发现给PLL供电的LDO输出纹波超标。界上眼图看上去就是“毛茸茸”的一片左右轻微抖动换掉那个LDO模块以后眼宽直接恢复到0.85UI。测量环境的干扰往往比DUT本身的问题更容易让眼图变难看。另一个常见容易被忽视的是均衡器。很多高速接收端内部有CTLE/DFE如果测试点是从接收端芯片的RX引脚后面的均衡器输入测的那需要明确你测到的是“带均衡之前”的信号这个眼图未必是芯片内部真实看到的质量。示波器测出来的“眼图难看不代表一定Fails”要结合接收端均衡算法和误码仪结果一起判断。链路损耗大的场景也别指望码型发生器关掉去加重还能测出漂亮的眼睛。发送端不去加重接收端看到的高频分量自然被通道吃掉眼图闭合很正常。正确流程是先关去加重看基线的真面目再打开符合链路标准的去加重看改善后的最终眼图。两条曲线一对比链路损耗到底有多大心里就有数了。5.3 触发同步问题以及为什么别拿玩具示波器硬上眼图左右飘、一个bit叠不上另一个bit多数情况是触发或者时钟恢复没设对。用码型发生器的SYNC输出触发是调试阶段最省事的方法。如果SYNC没接到示波器也可以让示波器用CDR恢复时钟。但CDR恢复不是万能的信号信噪比太差时恢复出来的时钟本身就带大量抖动眼图自然更糊。还有一个现实问题高速测试对设备上限要求很高。我见过有人拿入门DIY示波器套件比如DSO138去测Gbps信号显示器上当然什么都看不见。DSO138这类套件的ADC采样率只有1MSa/s量级模拟前端带宽非常有限再怎么折腾FFT固件、换液晶屏、改模拟前端电路它的物理上限就摆在那里测低频音频或低速串口可以测SerDes等于拿毫米尺量纳米级精度。研究这类玩具示波器的模拟前端设计是非常好的学习项目但别把它当高速测试工具。如果手上只有4GHz或6GHz的示波器测10Gbps眼图只能作为前期预检。你需要明确告诉同事这次测试看到的是设备带宽限制后的结果可以做相对变化观察但数据不适合进正式的测试报告。真正要出合规数据还是得上20GHz以上实时示波器或者采样示波器加时钟恢复模块。6. 一次复测后我总结出的三条测试习惯6.1 每次测试前先做“开机自检”眼图测试的结果好不好很大程度取决于测试系统本身干不干净。我现在的习惯是正式接DUT之前先找一个已知良好的信号源把整套探头、线缆、衰减器走一遍全链路自检。用码型发生器输出一个已知幅度和固有抖动的PRBS7测一眼看测出来的眼高是不是在预期范围内。如果自检都过不了一定是测试系统有问题拿这套系统去测DUT结果就是白白浪费时间。6.2 把环境条件写进测试记录眼图对环境和链路状态很敏感。同样的板卡电源电压波动0.1V、芯片温度从25℃升到85℃、参考时钟换成另一台合成器眼图的形状和抖动参数都会有变化。所以我记录眼图时一定会附上几条关键信息码型发生器的码型和输出幅度、示波器带宽和CDR环路带宽、被测链路的供电电压、芯片温度和时钟源型号。没有这些信息的眼图时间一长就变成废图自己都看不懂当时是怎么测出来的。最后再分享一个我个人的小习惯拿到一个新板子别一上来就接仪表。先用万用表和低带宽示波器确认电源正常、时钟有没有起振、芯片配置有没有加载再去搭高速测试。眼图是链路健康的“最终成绩单”但试卷上有一堆送分题先把送分题做了后面测眼图才不至于反复翻车。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑