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。
常见 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 提供了一种标准化的激励信号,让不同实验室、不同时间测出来的眼图具有可比性。
我遇到过很多工程师,觉得随便发几个 0 和 1 就能看眼图。结果眼图张开度很差,以为是链路有问题,最后发现是码型太简单,没有激发出 ISI(码间串扰)。换成 PRBS 后,眼图立刻暴露出了真正的缺陷。
PRBS 的局限性
PRBS 虽然好用,但也不是万能的。我分享两个实际体会:
- 周期问题: PRBS7 的周期只有 127 个码元,如果被测链路的群时延比较大,可能覆盖不了所有码间干扰场景。这时需要升阶。
- 频率成分: PRBS 的频谱包络是 Sinc 函数形状,在某些频点能量衰减严重。如果你关心特定频点的损伤,可能需要补充正弦波或自定义码型。
经验总结: PRBS7 适合快速筛查,PRBS31 适合严苛认证。别过度追求高阶数,够用就行。
本章小结
我们聊了 PRBS 的核心概念——什么是伪随机、为什么它重要、怎么用 LFSR 生成。也看了常见阶数和它们的使用场景。还画了结构图帮助理解。
我特别强调的是种子问题。别看它小,出过不少事。你可以在仿真时故意设一个全 0 种子,看看输出是不是全 0——这能帮你加深印象。