如果是prbs7、prbs15呢?它们循环一次需要多少个bit呢?那……拓展到prbsN呢?
咳咳,这个问题从我发出去开始就知道难不倒各位,从我对prbs3的逐位分析也能看出它的运算方式。prbsN中的N其实是一个阶数,它是影响prbs码型一个循环的位数的主要因素,因为根据异或的运算,不同阶数的码型无论如何都是全部排列一次,N就刚好代表了参与运算的码型的长度(当然,也有网友提到seed也会影响码型,的确,seed会决定了初始的码型)。那根据排列组合的运算,理论上N=3的时候,应该是2的3次方,也就是8位才对,那为什么是7位一个循环呢?原因很简单,因为有一个状态经过异或之后还是保持原样,不能跳转到其他的状态。那就是全0的时候,因此我们聪明的状态机肯定不允许这种死机的情况发生,所以呢,就变成了2的3次方减1,也就是7位了!当然知道这个原理之后,就能非常轻易的推导出prbsN的周期了,也就是几乎所有人的答案了。
那,要不再说点别了?刚刚说了,上面这个问题有点简单,体现不出各位的水平。那就说说不同阶数的码型除了循环的位数不一样之外,有没有其他对我们进行信号仿真或者测试更有影响的区别呢?当然有,各种不同的prbs码型在时域上我们就只看到“1”和“0“,它们不同的组合方式估计我们看上个几十位之后都会有点晕的感觉了吧。那要不我们转成频域上去看看,看能不能得到一些意外的收获吧。
我们把下面4个不同阶数的prbs码(速率为10Gbps)通过傅里叶变换到频域上去看,结果如下:
从频域上看,不同阶数的prbs码型的区别更明显了吧?在速率为10Gbps情况下,我们观察它们从0频段到基频5GHz的幅度分布。可以看到,阶段越小,能量分布范围越集中,像3阶的情况下,能量主要就只分布在几个频点。阶数越多后,能量的分布就越平均,当然每个频点的能量也越小了。到了高阶的码型时,能量几乎能覆盖分布到每个频点。就像前期文章讲过,阶数越高,码型的频谱越接近白噪声,也就是在频谱上均匀分布。
因为阶数越高,码型序列长了,才更有可能包含各种频点的组合,例如长1和长0的低频。不同的码型在我们的测试应用中更有讲究,很多不同的信号协议都要求使用某种阶数的prbs码型进行测试,例如像很多10G以下的串行信号,协议规范要求测试的码型为prbs7,这方面在本文就不详细展开说了,有兴趣可以翻阅下相关协议,里面就能得到关于测试码型的信息。本期就先说到这了,我们下期会讲什么呢?敬请大家继续关注。
1.prbs7是七位为随机序列:循环一次需要127个bit。
2.prbs15是十五位伪随机序列:循环一次需要32767个bit。
3.prbsN则需要2^N-1个。
prbs7:
11111011001110000110101001000101111111000000100000110000101000111100100010110011101010011111010000111000100100110110101101111011000110100101110111001100101010
prbs5:
1111101100111000011010100100010