PRBS生成多项式:常用多项式与选择依据

说起PRBS测试,很多人第一反应就是找个信号源怼上去。但实际干活的时候你会发现,选哪个多项式,直接决定了你能测出什么问题、测不出什么问题。

我刚开始做高速串行链路测试那会儿,就吃过这个亏。随便抓了个PRBS7就开始跑,结果眼图看着挺漂亮,一到系统联调就翻车。后来才明白——多项式选错了,等于白测。

PRBS是怎么“生”出来的?

说白了,PRBS不是随机数,而是靠一个线性反馈移位寄存器(LFSR)按照特定多项式算出来的伪随机序列。你给它一个种子(Seed),它就能无限循环地输出一串看起来随机的比特。

这个多项式决定了反馈的抽头位置。比如 PRBS7 = x⁷ + x⁶ + 1,意思就是用第7位和第6位做异或,反馈回去。你想想看,不同的抽头组合,出来的序列特性完全不一样。

实际快速生成技巧: 我习惯用Python写个LFSR模拟器,先短跑几个周期验证多项式配置是否正确。别直接上仪器,万一抽头焊错了,排查起来很麻烦。

# 简易LFSR伪代码示意
def lfsr(seed, taps, length):
    state = seed
    for i in range(length):
        bit = 0
        for t in taps:
            bit ^= (state >> t) & 1
        output = state & 1
        state = (state >> 1) | (bit << (max(taps)))
        yield output

常用多项式一览

业界最常用的就那么几个,我把它们列在下面这张表里。你可以把它当成快速选型菜单。

名称 多项式 序列长度(比特) 典型应用场景
PRBS7 x⁷ + x⁶ + 1 127 短距离、低速链路(如I²C、SPI)
PRBS15 x¹⁵ + x¹⁴ + 1 32,767 SATA、USB 2.0、一般背板
PRBS23 x²³ + x¹⁸ + 1 8,388,607 PCIe Gen3、10G光模块
PRBS31 x³¹ + x²⁸ + 1 2,147,483,647 长距离、高速串行(如100G以太网、SerDes)

曾经踩过的坑: 有次我帮客户调试一款25G光模块,对方坚持用PRBS7做误码测试。结果误码率一直压不下去。我换了个PRBS31上去,情况立马变了——才发现是CDR锁相环的带宽适配问题。低阶序列连PLL的慢漂移都刺激不到,白忙活了两天。

选择依据:到底该用哪一个?

你可能会问:“这么多多项式,我该用哪个?”

我个人习惯按下面这几条来选,不容易翻车。

1. 看链路速率和距离

  • 低速、短距(<1Gbps、板内走线):PRBS7 就够了。它序列短,跑得快,测个眼图开合度绰绰有余。
  • 中速、中等距离(1~10Gbps、背板或3米线缆):上 PRBS15 或 PRBS23。我一般先用PRBS23,因为它能覆盖更多码间干扰场景。
  • 高速、长距(>10Gbps、光纤或多米长链路):必须上 PRBS31。长序列才能充分激励均衡器和CDR,不然时序余量测出来虚高。

2. 看被测件的均衡能力

很多芯片内部有CTLE或DFE。你用PRBS7这种短序列测,均衡器很快就能收敛。但系统实际跑的流量是长序列,均衡器根本跟不上。

嗯,这里要注意:如果你想知道均衡器的真实表现,至少要用PRBS23或更长的序列。

3. 看测试时间能否接受

PRBS31虽然好,但序列长度超过21亿比特。在10Gbps速率下,扫完一个完整周期需要200多毫秒。要是测误码率到1e-12,你得算算要跑多少比特。我遇到过有人用PRBS31测1e-15,结果跑了一整天。

  • 快速验证眼图: PRBS7 足够,几毫秒出结果
  • 标准合规测试: 按协议走,比如PCIe Gen4强制用PRBS31
  • 深度压力测试: PRBS31 + 长时间捕获

4. 看协议规范要求

这个最简单:协议让你用什么,你就用什么。别自作聪明换多项式,认证测试时会被打回来。

  • USB 3.0/3.1:PRBS15
  • PCIe Gen3/Gen4:PRBS23 / PRBS31
  • 100G以太网:PRBS31

我的个人经验: 如果你不确定选什么,就按最坏情况来。在项目早期用PRBS31测一遍,虽然慢,但能暴露所有问题。后期回归测试再用短序列提速。这个策略帮我至少省了两轮改板。

知识体系速览

下面这张图帮你把本章的核心逻辑串起来。从多项式定义到选型决策,一条线走到底。

PRBS多项式选择决策流程 PRBS生成多项式 LFSR + 反馈抽头 PRBS7 127bit PRBS15 32,767bit PRBS23 8.3Mbit PRBS31 2.1Gbit 选择四大依据 ① 链路速率与距离 ② 被测件均衡能力 ③ 测试时间预算 ④ 协议强制要求 最终选定多项式的依据