一文读懂PRBS定义、生成办法、作用
对于眼图测试、误码率和抖动容限测试,最常用的测试码是PRBS,主要有PRBS7、PRBS15、PRBS23和PRBS31。本文主要解释了PRBS的定义,生成方法以及简单应用。
PRBS定义
二进制序列指的是,a0, ..... , aN-1的N bit的序列,其中 aj∈{0,1},j=0, 1, ..., N-1。
一个二进制序列中,包含m=∑aj个1, 以及N-M个0。
如果一个二进制序列的自相关函数
只有两个值
且
将这个二进制序列称为伪随机二进制序列pseudo-random binary sequence (PRBS)。c称作PRBS的占空比(duty cycle),这个和时序信号里的占空比的定义类似。
PRBS被称为“伪随机”的,是因为实际上它是确定的。它看上去是随机的原因是,aj的值和序列中其它码值无关,和真实的随机序列类似。
如果每N bit就重复一下的话,伪随机码PRBS码可以扩展到无穷位码长。相对而言,大部分随机码流的码长本质上是无穷长的(不重复),比如放射性信号的衰减或者白噪声。N 位最大码长的伪随机码,一般都是由线性反馈移位寄存器产生的。伪随机码的占空比一般都是1/2,并且,一个k位长度的寄存器,产生的伪随机码的码长为N=2K-1。伪随机码被广泛应用在无线/有线通讯,密码学,仿真,光谱分析法等。
PRBS的生成方法
PRBS信号是由PRBS码形发生器生成的。PRBS发生器通常是由线性反馈移位寄存器(linear feedback shift registers,LFSR)和异或电路组成。如下图1是PRBS7的码形发生器,其初始值是0000001,本原多项式是X6+X7+1。即将寄存器的第6位和第7位做异或运算后,输入到寄存器的第1位,寄存器的第7位同时也是PRBS7发生器的输出。
在图一中可以看到,PRBS7最长是127bit(27-1), 理论上来说,7bit的2进制码,一共会有27个不同组合,但是,如果码流全部为‘0’的时候,经过异或运算,输入到寄存器第一位的值还是0, 这样移位寄存器将会一直输出为零,移位寄存器被死锁。所以PRBS码流不能全部为零。另外,PRBS7 码流中最长的连续‘1’个数为7个,最长的连续‘0’个数为6个。127bit的连续码流中,一共有64个‘1’,63个‘0’。
同理,PRBSn的码长为2n-1 bits,其中包括2n-1个‘1’,2n-1-1个‘0’。
一些常用的PRBS码的本原多项式如下:
PRBS7 = X6+X7+1
PRBS9 = X9+X5+1
PRBS11 = X11+X9+1
PRBS15 = X15+X14+1
PRBS20 = X20+X3+1
PRBS23 = X23+X18+1
PRBS31 = X31+X28+1
PRBS作用
串行总线的物理层测试通常分为发射机测试和接收机测试,又称为TX测试和RX测试。发射机测试通常包括眼图、抖动、信号波形、幅度、上升下降时间等测试项目,接收机测试通常包括误码率、抖动容限、接收机灵敏度等测试项目。对于眼图测试、误码率和抖动容限测试,最常用的测试码是PRBS,主要有PRBS7、PRBS15、PRBS23和PRBS31。
PRBS7是目前10Gbps以下的串行总线中最常用的测试码型,在ITU-TV.29规范中规定。PRBS7属于短伪随机码型,与8b10b NRZ编码的数据流很相似,所以,在PCIe、SATA、XAUI、1000BASE-LX、FC、SAS等采用8b10b编码的串行总线中,PRBS7是最常用的测试码型,支持这些总线的芯片通常都可以输出PRBS7测试码型,用于眼图、抖动或误码率测量。
PRBS7的码流中最长的连1为7个,最长的连0为6个;而8b10b编码中最长的连1为5,最长的连0也是5;因此,相比8b10b编码,PRBS7可以产生的较低频率的码型。使用PRBS7作为驱动源,在同一信道(比如背板上20inch长走线)上传输到接收端后得到眼图和抖动,都比8b10b编码的作为驱动源时的结果稍差些。这样,PRBS7作为8b10b编码的串行总线的测试码型,留出了一定的设计余量。
10GBASE-KR标准里特别标注了推荐的测试码形为PRBS11。
参考文献:
1.http://en.wikipedia.org/wiki/Pseudorandom_binary_sequence
2.http://www.docin.com/p-329701854.html
3.http://wenku.baidu.com/view/6cce37323968011ca2009105.html
转载于:https://www.cnblogs.com/davebryant/p/10722346.html
一文读懂PRBS定义、生成办法、作用相关推荐
- java内存屏障详解_一文读懂Java关键词之volatile作用(内存屏障)
之前在一篇文章中跟大家一同学习了CPU缓存一致性,通过缓存一致性协议MESI我们可以让CPU各个计算核心中缓存的数据保持一致,避免造成计算结果的差异. 我们还知道Java内存模型中,各个线程还保存了一 ...
- 一文读懂HDMI和VGA接口针脚定义
一文读懂HDMI和VGA接口针脚定义 摘自:http://www.elecfans.com/yuanqijian/jiekou/20180423666604.html HDMI概述 HDMI是高清 ...
- 一文读懂Faster RCNN
来源:信息网络工程研究中心本文约7500字,建议阅读10+分钟 本文从四个切入点为你介绍Faster R-CNN网络. 经过R-CNN和Fast RCNN的积淀,Ross B. Girshick在20 ...
- 一文读懂EfficientDet
一文读懂EfficientDet. 今年年初Google Brain团队在 CVPR 2020 上发布了 EfficientDet目标检测模型, EfficientDet是一系列可扩展的高效的目标检测 ...
- | 一文读懂迁移学习(附学习工具包)
当一个CNN用于另一个领域,就使用到了迁移学习.迁移学习是一种用于模型领域泛化和扩展的工具. 文章链接:独家 | 一文读懂迁移学习(附学习工具包) 参考:当深度学习成为过去,迁移学习才是真正的未来? ...
- 独家 | 一文读懂语音识别(附学习资源)
原标题:独家 | 一文读懂语音识别(附学习资源) 一.前言 6月27日,美国权威科技杂志<MIT科技评论>公布2017全球最聪明50家公司榜单.科大讯飞名列中国第一.全球第六.全世界排在科 ...
- 一文读懂JS继承相关知识点
一文读懂JS继承相关知识点 Javascript 面向对象编程(一):封装 一. 生成实例对象的原始模式 二. 原始模式的改进 三. 构造函数模式 四.构造函数模式的问题 五. Prototype模式 ...
- 一文读懂密码学中的证书
一文读懂密码学中的证书 之前的文章中,我们讲到了数字签名,数字签名的作用就是防止篡改和伪装,并且能够防止否认.但是要正确运用数字签名技术还有一个非常大的前提,那就是用来验证签名的公钥必须真正的属于发送 ...
- 一文读懂 Linux 内存分配全过程
在<你真的理解内存分配>一文中,我们介绍了 malloc 申请内存的原理,但其在内核怎么实现的呢?所以,本文主要分析在 Linux 内核中对堆内存分配的实现过程. 本文使用 Linux 2 ...
最新文章
- Entity Framework如何得到数据库表的名字
- 抽象SQL查询:SQL-MAP技术的使用
- 随便说说---java初级学习路线
- 代码质量的几点新思考
- 对象与内存控制1---实例变量和类变量
- PPT下载下来是php,用php下载jpg,doc,ppt文件已损坏
- 数据工作者的福音:Google 发布正式版数据搜索工具啦!
- 学生管理系统总结(c语言)
- matlab仿真三相变压器,三相变压器励磁涌流的MATLAB仿真与分析
- Android FFmpeg集成
- 乐动手环app下载安装_乐动健康手环app下载-乐动健康 安卓版v2.34-pc6智能硬件网...
- H5活动之家平台,开启国庆双十一福利,活动全免费
- Python 报错 Fatal Python error: PyFrame_BlockPop: block stack underflow 如何解决?
- python求和:1/3+3/5+5/7+7/9+...+97/99
- Kubernetes---Secret配置管理
- Linux 中 Netcat 工具的使用
- 本特利传感器330901-00-90-10-02-CN
- 2023年租房投影仪推荐,出租屋投影仪值得买吗?又该怎么选择?
- EXCEL技巧2:EXCEL中的数组公式
- 破解山东网通adsl共享封杀