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 的基本原理就差不多了。下面我用一张图做一个知识脉络的总结,方便大家复习时对照。