做高速串行链路调试时,误码率测试是最直接的验收手段,但很多人一上来就跑 PRBS31,结果眼图都看不懂。我的做法是先分层:先确认物理层,再谈码型。
第一,码型要跟速率和场景匹配。PRBS7 适合短链路快速验证,PRBS15 是通用折中,PRBS31 更接近真实随机数据,但对均衡器压力大,链路余量不足时容易把均衡问题误判成误码问题。调试初期先用 PRBS15 建立基线,再切 PRBS31 做压力验证。
第二,眼图和误码要对照看。只看 BER 数字会漏掉信息:眼高收窄但 BER 仍为 0,说明余量已吃紧,温度一变就可能翻车;眼图张开但偶发误码,往往是突发干扰或时钟抖动,不是信道损耗。我的习惯是同时记录眼高、眼宽和 BER,三个量一起变化才下结论。
第三,测试时间要算清楚。10G 速率下测到 1e-12 量级至少要跑十几分钟,跑 30 秒就宣称无误码没有意义。做回归测试时固定码型、固定时长、固定温度,否则前后数据无法对比。
第四,别忽略发送端。很多“接收端问题”最后查下来是发送端预加重设错,或者参考时钟抖动超标。先把发送端眼图测合格,再去调接收端 CTLE 和 DFE。
你平时做误码测试时,PRBS 码型一般怎么选?有没有遇到过眼图好看但 BER 始终下不去的情况?