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