#PRBS# PRBS7高速串行总线的常用测试码型
PRBS的定义:PRBS: Pseudo-Random Binary Sequence 伪随机二进制序列PRBS 码具有“随机”特性,是因为在 PRBS 码流中,二进制数“ 0 ” 和“ 1 ” 是随机出现的,但是它又和真正意义上的随机码不同,这种“随机”特性只是局部的,即在周期内部,“0”和“1”是随机出现的(码流生成函数与初始码确定后,码流的顺序也是固定的),但各个周期中的码流却是完全相同的,
PRBS的定义:
PRBS: Pseudo-Random Binary Sequence 伪随机二进制序列
PRBS 码具有“随机”特性,是因为在 PRBS 码流中,二进制数“ 0 ” 和“ 1 ” 是随机出现的,但是它又和真正意义上的随机码不同,这种“随机”特性只是局部的,即在周期内部,“0”和“1”是随机出现的(码流生成函数与初始码确定后,码流的顺序也是固定的),但各个周期中的码流却是完全相同的,所以我们称其为“”伪随机码。
PRBS 码的周期长度与其阶数有关,常用的阶数有 7 、 9 、 11 、 15 、 20 、 23 、 31 ,也就是我们常说的 PRBS7 、 PRBS9 、 PRBS11 、 PRBS15 、 PRBS20 、 PRBS23 、 PRBS31 。
对于 n 阶 PRBS 码,每个周期的序列长度为 2^n-1 。在每个周期内,“ 0 ” 和“ 1 ” 是随机分布的,并且“ 1” 的个数较“ 0 ” 的个数多一个,连“ 1 ” 的最大数目为 n ,连“ 0 ” 的最大数目为 n-1。
PRBS的用途:
在高速设计中为了测试高速串行通道传输的误码率,通常通过发送PRBS码来进行测试。
在对高速信号链路进行误码测试时,基本上都是利用 PRBS 码流来模拟真实的线网码流环境,因为在线网中,所有的数据都是随机出现的,没有任何规律可言,而 PRBS 码流在一定程度上具有这种“随机数据”特性,二进制“ 0 ”和“ 1 ”随机出现,其频谱特征与白噪声非常接近。 PRBS 码流的阶数越高,其包含的码型就越丰富,就越接近真实的线网环境,测试的结果就越准确。
PRBS的验证:
就是PRBS的产生的反过程,具体方法是Transceiver接收端首先将收到的数据寄存一拍(并行数据),将寄存的数据进行PRBS编码,编码后的数据与最新接收到的数据进行比较,如果一致则表示PRBS校验正确。
PRBS信号的产生方法
PRBS信号是由PRBS码型发生器生成的。PRBS发生器通常是由线性反馈移位寄存器(LinearFeedbackShiftRegister,简称LFSR)和异或电路组成。如下图1所示为最简单的PRBS3的码型发生器,其多项式为X3+X2+1,即寄存器的第3位与第2位做异或(XOR)的逻辑运算后返回到寄存器的第1位,寄存器的第3位X3同时也是PRBS3发生器的输出。
PRBS7,高速串行总线的常用测试码型
图1:PRBS3码型发生器原理
在表格1中显示了PRBS3的n个周期的时钟后输出n个比特的码流。X1/X2/X3分别是3个比特移位寄存器的低位到高位,输出位是X3,初始状态为X1/X2/X3=1/1/1,如表格第1行所示。
第1个时钟沿到达后,X3与X2异或后等于0,输入到X1,同时X1和X2前移到X2和X3,所以X1/X2/X3=0/1/1,如表格第2行所示;
第2个时钟沿到达后,X3与X2异或后等于0,输入到X1,同时X1和X2前移到X2和X3,所以X1/X2/X3=0/0/1,如表格第3行所示;
第3个时钟沿到达后,X3与X2异或后等于1,输入到X1,同时X1和X2前移到X2和X3,所以X1/X2/X3=1/0/0,如表格第4行所示;
……
以此类推,第5行为0/1/0,第6行为1/0/1,第7行为1/1/0,第8行为1/1/1,与初始状态相同,接下来的第9行和第10行与第2行和第3行完全相同,也就是说PRBS3的码型输出7个比特后开始重复。X3是PRBS3的输出位,所以PRBS3输出的码型为1110010,码长为7,如图2所示,每7个比特后开始重复输出同一码型。在PRBS3中包括了11100属于码流中频率最低的码型,010是频率最高的码型。
表1:PRBS3的3位寄存器数值
PRBS7,高速串行总线的常用测试码型
PRBS7,高速串行总线的常用测试码型
图2:几种常用PRBS的说明
PRBS7:
PRBS7是目前10Gbps以下的串行总线中最常用的测试码型。常用的PRBS7的多项式为X7+X6+1,码长为127个比特,在ITU-TV.29规范中规定。PRBS7属于短伪随机码型,与8b10bNRZ编码的数据流很相似,所以,在PCIe、SATA、XAUI、1000BASE-LX、FC、SAS等采用8b10b编码的串行总线中,PRBS7是最常用的测试码型,支持这些总线的芯片通常都可以输出PRBS7测试码型,用于眼图、抖动或误码率测量。
PRBS7的码流中最长的连1为7个,最长的连0为6个;而8b10b编码中最长的连1为5,最长的连0也是5;因此,相比8b10b编码,PRBS7可以产生的较低频率的码型。使用PRBS7作为驱动源,在同一信道(比如背板上20英寸长走线)上传输到接收端后得到眼图和抖动,都比8b10b编码的作为驱动源时的结果稍差些。这样,PRBS7作为8b10b编码的串行总线的测试码型,留出了一定的设计余量。
PRBS7,高速串行总线的常用测试码型
图3:PRBS7码型发生器原理
PRBS31:
PRBS31的多项式为X31+X28+1,码长为2^31-1=2147,483,647个比特,属于长伪随机码型。码流中最长的连1为31个,最长的连0为30个,包含了相当多的低频成分而这正是SONET/SDH系统测试规范中所要求的,所以可用于像SONET/SDH信号那样包含了很多低频成分的物理层测量。
实际应用中,一个 PRBS 序列可以串 / 并转换成多路( 2 、 4 、 8 、 16 …路)并行输出,每路输出的速率降低,但仍然保持原序列的一切特征;反之,同一时钟源低速率多路( 2 、 4 、 8 、 16 …路)同一 n 阶的 PRBS 可以经并 / 串转换成高速率的 n 阶 PRBS 系列。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)