1. 课程概述:BERT与眼影仪在高速信号调试中的作用
高速信号调试,说白了就是跟时间、噪声、抖动这些看不见的对手打架。我刚入行那会儿,觉得拿个示波器看看波形就够用了,结果第一次调10Gbps信号,眼图乱得像一锅粥,根本不知道问题出在哪儿。后来前辈丢给我一台BERT和一台眼影仪,说:“先拿这俩家伙把底摸清楚。” —— 嗯,从那以后,我就再也没离开过它们。
为什么需要BERT和眼影仪?
信号速率一高,传统示波器就靠不住了。为什么呢?因为你需要看的不再是单个波形的样子,而是成千上万个比特叠加出来的统计规律。BERT(误码率测试仪)和眼影仪(高灵敏度眼图/抖动分析仪)就是干这个活的。
- BERT:发一串已知的伪随机码,收回来比对,看错了几个比特。它告诉你链路“有没有出错”,但说不出“哪里有问题”。
- 眼影仪:把收到的信号叠加成眼图,能直观看到上升沿、下降沿、眼高、眼宽、抖动。它告诉你“信号质量好不好”。
一个管结果,一个管原因。两者配合,才谈得上调试。
核心观点:BERT给出数字域的结论(误码率),眼影仪给出模拟域的细节(眼图参数)。两者缺一不可。
BERT的作用与选型要点
BERT看起来很“笨”——就是发码、收码、数错。但实际用起来,有几个地方特别容易翻车。
1. 码型选择
我最常用的是PRBS(伪随机二进制序列)。不同阶数覆盖的比特模式长度不一样:
| 码型 | 长度(bits) | 典型应用 |
|---|---|---|
| PRBS7 | 27-1 = 127 | 短距离、低速率链路,比如SATA |
| PRBS9 | 511 | PCIe Gen3以前常用 |
| PRBS15 | 32767 | 高速串行链路如USB3.0、DisplayPort |
| PRBS31 | 231-1 | 长距离、超高速(≥28Gbps)链路 |
我记得有次调一款56Gbps PAM4信号,客户坚持用PRBS7,结果眼图很好但系统跑起来老掉线。换PRBS31一试,误码率直接飙到1e-5。码型太短,激励不到链路的低频截止效应。避坑指南:工控类场景至少用PRBS15,数据中心级至少PRBS31。
2. 误码率门限
BERT可以设一个“误码率达标线”,比如1e-12。但实际调试时,我习惯先看有没有成片错误(类似“误码簇”)。
小技巧:打开BERT的“错误率分布图”,观察错误是随机散落的还是集中在某些比特位上。后者往往指向时钟或电源问题。
眼影仪的核心价值
眼影仪本质是一台宽带采样示波器 + 时钟恢复单元。但它最大的本事是——能画出百万次波形叠加后的统计眼图。
1. 眼图参数解读
- 眼睛高度:电压裕量。低于100mV基本不可靠。
- 眼睛宽度:时间裕量。一般要大于0.3UI。
- 抖动(TJ/RJ/DJ):总抖动、随机抖动、确定性抖动。RJ服从高斯分布,DJ往往有固定分量(如串扰、ISI)。
- 占空比失真:看左右过零点是否偏移。
我有个习惯:先看眼图轮廓是否“干净”。如果眼图上下边缘有毛刺,八成是阻抗不连续;如果眼睛闭合得像一条细线,多半是抖动太大。
2. 时钟恢复模式
眼影仪内部有两种恢复时钟的方式:PLL和Golden PLL。PLL模拟接收端CDR行为,Golden PLL则用理想时钟来分离抖动成分。我调PCIe链路时,经常切换看两种模式下的眼图差异——
| 模式 | 适用场景 | 注意 |
|---|---|---|
| PLL(一阶/二阶) | 模拟真实接收端CDR行为,看信号能否被正确采样 | 环路带宽要匹配实际CDR |
| Golden PLL | 分离抖动类型(RJ / DJ / SJ) | 不能直接看眼图裕量,只适合分析 |
警告:千万不要在眼影仪没有正确锁定时读取眼图参数!我见过不少同事用“free run”模式测试,结果眼图扭曲得像蜘蛛网,还以为链路有问题。首先要确保时钟恢复锁定,再开始采集。
BERT + 眼影仪的联合调试流程
实际项目中,我一般走下面这个流程:
- BERT发码:选择合适码型(PRBS31优先),设置比特率,连上被测链路。
- 眼影仪同步:触发源接到BERT的时钟输出,或者用内部CDR。确认锁定后开始采集。
- 快速扫图:看眼图是否张开。如果完全闭合,检查阻抗、偏置、信号幅度。
- 定量分析:读取眼高、眼宽、TJ、RJ、DJ。记录基线值。
- BERT测误码:运行长时间误码率测试(至少10秒,高速率建议60秒以上)。
- 定位问题:结合眼图参数和误码率分布,判断是衰减、ISI、串扰还是时钟问题。
- 调试后复测:修改PCB layout、加均衡器、调驱动幅度,回到第1步。
有一次调试25Gbps背板,第3步眼图就明显有双线,我判断是接收端均衡不足。改了一拍CTLE后,眼高从65mV升到210mV,误码率直接从1e-8降到1e-14以下。你看,两个工具一搭,问题半小时就定位了。
两种工具的互补关系
最后总结一下,到底什么时候用BERT,什么时候用眼影仪?我画了个简单对比:
| 场景 | 首选工具 | 原因 |
|---|---|---|
| 想知道链路有没有错码 | BERT | 直接数误码率,最精确 |
| 看信号波形形状 | 眼影仪 | 眼图告诉你裕量、抖动分布 |
| 调试完验证 | BERT + 眼影仪 | 先扫眼图是否张开,再测误码 |
| 排查抖动根源 | 眼影仪(抖动分解) | RJ/DJ分离,定位串扰或电源噪声 |
| 产线快速检测 | BERT(开眼图模式) | 部分BERT自带简易眼图扫描 |
你想想看,如果把链路调试比作看病,BERT就是血常规检查——告诉你指标有没有异常;眼影仪就是CT扫描——告诉你病变在哪个位置。两个都做了,诊断才靠谱。
个人习惯:我每次拿到一块新板子,第一件事不是连BERT,而是先用眼影仪看输出点的眼图。如果眼图本身就很差(比如眼高<30mV),那后面测BER也是白搭。先让信号“健康”起来,再聊误码率的事。
本章重点回顾
- BERT是数字域测试,给出“对/错”结论;眼影仪是模拟域测试,给出“好/坏”的细节。
- PRBS码型长度要匹配链路速率和协议要求,至少PRBS15起步。
- 眼影仪必须先正确锁定CDR,否则数据不可信。
- 联合调试流程:发码→同步→扫眼图→测误码→分析→迭代。
- 千万不要只依赖单一工具,两者互补才是王道。
嗯,这就是第一章的核心内容。后续每个章节,我会结合自己做过的项目,把BERT参数设置、眼图模板、抖动分离、PAM4调测、预加重/均衡等实用技巧一一拆开讲。跟着走一遍,你也能成为信号调试的老手。