PRBS 概述与基本概念

什么是 PRBS?

PRBS,全称 Pseudo-Random Binary Sequence,伪随机二进制序列。说白了,就是一串看起来随机、但实际上是按固定算法生成的 0 和 1。

你可能会问:为什么不用真正的随机数?

我早期也这么想。直到有一次做高速串行链路测试,用真随机源测出来的眼图每次都不一样,根本没法重复验证。后来才发现,PRBS 才是工程界的标准做法——它能复现,能对比,能定位问题。

核心理念: PRBS 用有限长度的移位寄存器生成周期性序列,其统计特性(如 0/1 平衡性、游程分布)近似于理想随机序列。

特性真随机序列PRBS
可重复性不可重复完全可重复
生成复杂度需要物理熵源简单线性反馈移位寄存器
统计特性完美随机近似随机(周期内完美)
典型应用密码学、仿真通信测试、眼图测量

PRBS 的数学原理

实现 PRBS 的核心是线性反馈移位寄存器(LFSR)。结构很简单:一组寄存器 + 几个异或门。

举个例子,PRBS7 用的多项式是 x⁷ + x⁶ + 1。意思就是第 7 位和第 6 位异或后的结果反馈到第 1 位。

嗯,我记得以前调试一款 12.5Gbps 的 SerDes,眼图总是不合格。排查了三天,最后发现是 PRBS 种子值设成了全 0——全 0 状态下移位寄存器永远出不来 1。所以千万记住:种子不能全 0。

常见陷阱: LFSR 的种子值不能为全 0,否则序列永远停滞在 0 状态。建议使用 0x1、0x3 等非零初值。

常见 PRBS 阶数

工程中常见的 PRBS 阶数有 PRBS7、PRBS15、PRBS23、PRBS31。不同标准下使用不同的阶数。

  • PRBS7(2⁷-1 = 127 位):用于低速接口,如 1Gbps 以太网、SATA 1.0。
  • PRBS15(2¹⁵-1 = 32767 位):用于 PCIe Gen2/Gen3、10G 以太网。
  • PRBS23(2²³-1 = 8388607 位):用于光纤通道、25G 以太网。
  • PRBS31(2³¹-1 = 21 亿位):用于高速 SerDes、100G 及以上速率测试。

我建议初学者从 PRBS7 入手。它周期短,容易观察,也能暴露出基本的抖动和噪声问题。别一上来就上 PRBS31,周期太长,采集眼图都要半天。

实战建议: 如果你用的示波器支持 PRBS 触发模式,记得把码型发生器设置为相同的 PRBS 阶数,这样眼图才能稳定捕获。

PRBS 在眼图测试中的作用

眼图是衡量信号质量最直观的工具。而 PRBS 提供了一种标准化的激励信号,让不同实验室、不同时间测出来的眼图具有可比性。

我遇到过很多工程师,觉得随便发几个 0 和 1 就能看眼图。结果眼图张开度很差,以为是链路有问题,最后发现是码型太简单,没有激发出 ISI(码间串扰)。换成 PRBS 后,眼图立刻暴露出了真正的缺陷。

PRBS 核心概念结构 LFSR 生成器 种子值(非全0) PRBS 序列输出 统计特性近似随机 游程分布符合理论 可重复可复现 眼图测试 / 抖动分析 PRBS 通过 LFSR 生成,种子非全0 → 输出伪随机序列 → 用于标准化眼图测试

PRBS 的局限性

PRBS 虽然好用,但也不是万能的。我分享两个实际体会:

  1. 周期问题: PRBS7 的周期只有 127 个码元,如果被测链路的群时延比较大,可能覆盖不了所有码间干扰场景。这时需要升阶。
  2. 频率成分: PRBS 的频谱包络是 Sinc 函数形状,在某些频点能量衰减严重。如果你关心特定频点的损伤,可能需要补充正弦波或自定义码型。

经验总结: PRBS7 适合快速筛查,PRBS31 适合严苛认证。别过度追求高阶数,够用就行。

本章小结

我们聊了 PRBS 的核心概念——什么是伪随机、为什么它重要、怎么用 LFSR 生成。也看了常见阶数和它们的使用场景。还画了结构图帮助理解。

我特别强调的是种子问题。别看它小,出过不少事。你可以在仿真时故意设一个全 0 种子,看看输出是不是全 0——这能帮你加深印象。