首页/文章/ 详情

信号编码之64b/66b_128b/130b_PRBS

2年前浏览7477

上篇文章介绍了信号编码的作用和一些编码的原理,这篇文章继续看几种编码;


64b/66b这种编码和之前的8b/10b不太一样了,是将64bit的序列变为66bit,只在序列前边添加了2bit的同步头,然后再对后边的序列进行扰码

同步头分为0110两种,0011表示错误,01表示后边全是数据,而10表示后边是数据和控制信息的混合,如下图:

 

10后边的第一个字节为后边的序列类型,涵盖了后边的数据和控制信号的混合情况,S是数据开始位,T是数据结束位,S只能在D0字节或者D4字节,T可以在任意字节;

这种编码的关键在扰码,扰码是对原序列进行重新排列的一种运算,由移位寄存器和异或运算组成,目的是拆散连续的01,尽量使生成的数据序列随机化

扰码器由移位寄存器和异或运算组成,下面看一下三个寄存器的异或运算:

 


上图(网上找的)就演示了三个移位寄存器的扰码运算,进行异或运算的是X2X3两个寄存器,输入寄存器的初始值为111,扰码后,为11100101...

一个设置良好的扰码器,可以有效地打散原序列中的连0和连1,生成比较随机的序列

64b/66b采用的扰码器为:X58 X39 1

 

这种编码有一定的直流平衡能力,但是效率很高

128b/130b这种编码和64b/66b类似,在128bit的序列前边加2bit同步头0110,在PCIE3.0中,01表示接下来的数据为order set类型数据,10表示接下来的数据是非order set数据,总之,这两个bit用作特殊字符,此编码的关键也是对后边的数据进行扰码,扰码器和扰码规则根据不同协议规定而定;

例如PCIE3.0的扰码器如下:


 USB3.0的扰码器如下:


USB4.0的扰码器如下:

可见,只要速率差不多,不同协议的扰码器也大致相同,毕竟有专家已经计算好了一组合适的组合;

64/66b128/130b这种编码主要靠扰码进行码型序列的随机排布,和之前的8/10b的映射表不同,这种编码的DC平衡能得到一定的保证,最主要的是编码效率极高;

PRBSPseudo random binary sequence,即伪随机码,和扰码器是一个东西,由移位寄存器和异或运算组成,进行异或运算的寄存器称为taps,寄存器的初始值称为seed


PRBS码型有一定的规律,比如PRBS5,则可由此推断出,此随机码序列共有2^5-1bit组成,而且最长连1bit数为5,最长连0bit数为4PRBS码不会出现全是0的情况,这样不管怎么进行异或运算,最后都还是0

ADS仿真软件中使用的PRBS为:

所以PRBS码有一定的规律,PRBSnn的值越大,整个序列越长,随机程度越大,同时连续出现10的长度也越长,因此在一些高速的串行信号(如QSFP28 25Gserdes)的一致性测试中就采用了PRBS31来暴露通道的缺点,这个要根据实际信号来选择;

在一些一致性测试和仿真中都是用的PRBS码模拟实际数据序列,这对眼图、抖动等都有一定的影响,因此要选择合适PRBS码;

下篇文章为大家介绍常用协议的一致性测试码型

推荐阅读

耦合电容焊盘的影响

AC耦合电容对信号的影响

来源:Sig008
ADS控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-10-19
最近编辑:2年前
开仿啦
测试仿真工程... 开始就不晚^o^
获赞 192粉丝 201文章 15课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈