【導(dǎo)讀】RBS是Pseudo Random Binary Sequence的縮寫,即“偽隨機(jī)二進(jìn)制序列”的意思。PRBS碼具有“隨機(jī)”特性,是因?yàn)樵赑RBS碼流中,二進(jìn)制數(shù)“0”和“1”是隨機(jī)出現(xiàn)的,但是它又和真正意義上的隨機(jī)碼不同,這種“隨機(jī)”特性只是局部的,即在周期內(nèi)部,“0”和“1”是隨機(jī)出現(xiàn)的,但各個(gè)周期中的碼流卻是完全相同的,所以我們稱其為偽隨機(jī)碼。
PRBS定義
二進(jìn)制序列指的是,a0, ..... , aN-1的N bit的序列,其中 aj∈{0,1},j=0, 1, ..., N-1。
一個(gè)二進(jìn)制序列中,包含m=∑aj個(gè)1, 以及N-M個(gè)0。
如果一個(gè)二進(jìn)制序列的自相關(guān)函數(shù)
只有兩個(gè)值
且
那么,將這個(gè)二進(jìn)制序列稱為偽隨機(jī)二進(jìn)制序列pseudo-random binary sequence (PRBS)。c稱作PRBS的占空比(duty cycle),這個(gè)和時(shí)序信號里的占空比的定義類似。
PRBS被稱為“偽隨機(jī)”的,是因?yàn)閷?shí)際上它是確定的。它看上去是隨機(jī)的原因是,aj的值和序列中其它碼值無關(guān),和真實(shí)的隨機(jī)序列類似。
如果每N bit就重復(fù)一下的話,偽隨機(jī)碼PRBS碼可以擴(kuò)展到無窮位碼長。相對而言,大部分隨機(jī)碼流的碼長本質(zhì)上是無窮長的(不重復(fù)),比如放射性信號的衰減或者白噪聲。N 位最大碼長的偽隨機(jī)碼,一般都是由線性反饋移位寄存器產(chǎn)生的。偽隨機(jī)碼的占空比一般都是1/2,并且,一個(gè)k位長度的寄存器,產(chǎn)生的偽隨機(jī)碼的碼長為N=2K-1。偽隨機(jī)碼被廣泛應(yīng)用在無線/有線通訊,密碼學(xué),仿真,光譜分析法等。
PRBS的生成方法
PRBS信號是由PRBS碼形發(fā)生器生成的。PRBS發(fā)生器通常是由線性反饋移位寄存器(linear feedback shift registers,LFSR)和異或電路組成。如下圖1是PRBS7的碼形發(fā)生器,其初始值是0000001,本原多項(xiàng)式是X6+X7+1。即將寄存器的第6位和第7位做異或運(yùn)算后,輸入到寄存器的第1位,寄存器的第7位同時(shí)也是PRBS7發(fā)生器的輸出。
在圖一中可以看到,PRBS7最長是127bit(27-1), 理論上來說,7bit的2進(jìn)制碼,一共會有27個(gè)不同組合,但是,如果碼流全部為‘0’的時(shí)候,經(jīng)過異或運(yùn)算,輸入到寄存器第一位的值還是0, 這樣移位寄存器將會一直輸出為零,移位寄存器被死鎖。所以PRBS碼流不能全部為零。另外,PRBS7 碼流中最長的連續(xù)‘1’個(gè)數(shù)為7個(gè),最長的連續(xù)‘0’個(gè)數(shù)為6個(gè)。127bit的連續(xù)碼流中,一共有64個(gè)‘1’,63個(gè)‘0’。
同理,PRBSn的碼長為2n-1 bits,其中包括2n-1個(gè)‘1’,2n-1-1個(gè)‘0’。
一些常用的PRBS碼的本原多項(xiàng)式如下:
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作用
串行總線的物理層測試通常分為發(fā)射機(jī)測試和接收機(jī)測試,又稱為TX測試和RX測試。發(fā)射機(jī)測試通常包括眼圖、抖動(dòng)、信號波形、幅度、上升下降時(shí)間等測試項(xiàng)目,接收機(jī)測試通常包括誤碼率、抖動(dòng)容限、接收機(jī)靈敏度等測試項(xiàng)目。對于眼圖測試、誤碼率和抖動(dòng)容限測試,最常用的測試碼是PRBS,主要有PRBS7、PRBS15、PRBS23和PRBS31。
PRBS7是目前10Gbps以下的串行總線中最常用的測試碼型,在ITU-TV.29規(guī)范中規(guī)定。PRBS7屬于短偽隨機(jī)碼型,與8b10b NRZ編碼的數(shù)據(jù)流很相似,所以,在PCIe、SATA、XAUI、1000BASE-LX、FC、SAS等采用8b10b編碼的串行總線中,PRBS7是最常用的測試碼型,支持這些總線的芯片通常都可以輸出PRBS7測試碼型,用于眼圖、抖動(dòng)或誤碼率測量。
PRBS7的碼流中最長的連1為7個(gè),最長的連0為6個(gè);而8b10b編碼中最長的連1為5,最長的連0也是5;因此,相比8b10b編碼,PRBS7可以產(chǎn)生的較低頻率的碼型。使用PRBS7作為驅(qū)動(dòng)源,在同一信道(比如背板上20inch長走線)上傳輸?shù)浇邮斩撕蟮玫窖蹐D和抖動(dòng),都比8b10b編碼的作為驅(qū)動(dòng)源時(shí)的結(jié)果稍差些。這樣,PRBS7作為8b10b編碼的串行總線的測試碼型,留出了一定的設(shè)計(jì)余量。
10GBASE-KR標(biāo)準(zhǔn)里特別標(biāo)注了推薦的測試碼形為PRBS11。