2. PRBS 基本原理:伪随机序列定义、生成原理、特性

做通信测试这么多年,我打交道最多的信号就是 PRBS。说它是通信行业的“万能测试码”一点不为过。今天咱们就来扒一扒,这个“伪随机”到底伪在哪里,又是怎么生成的。

2.1 伪随机序列的定义:到底哪里“伪”?

先搞清基本概念。你想想看,真正的随机序列是不可预测的。就像抛硬币,下一次是正还是反,你永远猜不准。那我们做测试怎么办?每次测出来的结果都不一样,这bug还怎么复现?

于是就有了伪随机序列。它叫“伪随机”,是因为它看起来随机,本质却是确定的。有两个关键特征:

  • 确定性:只要初始状态(种子)一样,生成的序列一模一样。这点对测试太重要了。
  • 随机性外观:它通过一系列统计检验,看起来和真随机几乎没区别。例如“0”和“1”的个数几乎相等,游程分布符合数学规律。

我的习惯:每次做一致性测试前,我都会先记下 PRBS 的种子值。这样出问题了,换个实验室也能原样复现。有次产线测试就是靠这个定位了芯片批量故障,省了大半个月的返工时间。

2.2 PRBS 的生成原理:LFSR 的奥妙

PRBS 怎么造出来的?说白了就是“线性反馈移位寄存器”,英文叫 LFSR。结构很简单:一组移位寄存器,加一个异或门。

看一个经典例子:3 阶 PRBS 生成器。

             +-->[D2]--->[D1]--->[D0]--+
             |                         |
             +--<--- XOR <----(抽头)----+
                         |
                     输出序列

这里面 D0、D1、D2 是三个寄存器。通常 D2 和 D0 的输出经过异或后,反馈到 D2 的输入端。每个时钟周期,寄存器右移一位,反馈值填入最高位。

我刚开始学这个的时候,总觉得反馈抽头是随便选的。后来做过一次误码测试,选了不好的抽头,序列周期特别短,根本测不出误码来。这才知道,抽头决定序列质量。

2.3 PRBS 的特性:你不得不知的三个秘密

PRBS 之所以能成为通信测试的“黄金标准”,全靠它这几个硬核特性。

2.3.1 均衡性

在一个完整周期内,“1”的个数只比“0”的个数多 1 个。比如 7 阶 PRBS(127 bit),里面有 64 个“1”和 63 个“0”。去掉直流分量,适合耦合传输。我有个印象深刻的教训:一次项目中用 PRBS15 测光模块,发现误码率总是偏高,查了一天才发现码流里直流偏置太严重,换了高均衡性的 PRBS 就好了。

2.3.2 游程特性

“游程”就是连续相同比特的个数。假设游程长度为 1,概率就是 1/2;长度为 2 是 1/4;以此类推。这符合随机信号的基本分布。你想想,一个只有“010101”交替的信号,能算随机吗?不能。PRBS 在这点上做的很好。

2.3.3 自相关性

PRBS 的自相关函数是周期性的脉冲信号,在零偏移时最大,其他偏移时几乎为 0。这个特性有多重要?很多通信系统的时钟恢复、信道估计都靠它。我在设计有线电视回传通道时,就是用 PRBS 的自相关峰来锁定帧头,比任何协议都可靠。

避坑指南:我曾经遇到一个高速串行链路测试问题,TX 输出 PRBS31 一切正常,但接收端的误码测试就是抓不到错。最后发现,接收端的 PRBS 生成器复位时序错了,导致序列偏移了一个时钟周期。自相关性不对,测试全废。

2.4 常见 PRBS 阶数与用途

不同阶数的 PRBS,特性和应用场景差别很大。我整理了一个表,大家实际选型时可以参考。

阶数 序列长度 特征多项式 典型应用
PRBS7 127 bit x7 + x6 + 1 G.703 接口、SDH/SONET 测试
PRBS15 32767 bit x15 + x14 + 1 光模块、以太网 10GBase-R
PRBS23 8388607 bit x23 + x18 + 1 高速背板、PCIe Gen3/4
PRBS31 2.147e9 bit x31 + x28 + 1 80 km 光纤链路、400G 以太网

你会注意到,阶数越高,序列越长,覆盖的码型组合越丰富。但问题也来了:高阶 PRBS 的同步锁定时间更长,测试耗时也就越久。如何在测试充分性和效率之间平衡?我一般建议:对已知链路跑 PRBS7 快速筛查,对新产品 QC 必须跑 PRBS31 全覆盖。

注意事项:PRBS31 的序列长度超过 21 亿 bit。如果信道有低频截止或直流偏移问题,长码流会产生大量低频分量,让接收端产生大量误码。我曾经在一个 10 km 微波链路项目上吃过亏,最后改用 PRBS23 才正常工作的。

2.5 为什么不直接用真随机?

有人问过我:“随便找个随机数生成器不就行了?何必费劲用 PRBS?”原因很简单:你复现不了。真随机序列需要物理熵源,不同设备、不同时间生成的序列都不一样。测试结果没法横向对比,问题定位等于盲人摸象。

PRBS 就不一样了。用同一个种子,在东京的实验室和深圳的产线上,看到的码流完全一样。这对制造业的复测、返修、品质追溯来说,是底线级别的需求。

嗯,聊到这,PRBS 的基本原理就差不多了。下面我用一张图做一个知识脉络的总结,方便大家复习时对照。

PRBS知识框架图 PRBS基本原理知识框架 伪随机序列定义 确定性 + 随机性外观 生成原理:LFSR 移位寄存器 + 反馈异或 核心特性 均衡性/游程/自相关 与真随机对比 可复现、可同步、可验证 LFSR 结构 抽头选择决定周期与质量 统计特性 0/1平衡、游程分布、自相关峰 PRBS 的工程价值 可复现误码场景 · 链路质量评估 · 系统一致性测试 高阶 PRBS(如31)序列更长,覆盖更多码型,但同步锁定时间也更长;低阶(如7)适合快速筛查 选型原则:测试充分性 vs. 测试效率的平衡