作者丨鼎陽科技 張賀陽
什么是PRBS碼型
PRBS的全稱是Pseudo-Random Binary Sequence,也就是偽隨機二進制序列。這是一種通過確定性算法生成的序列,但是很難預測,所以它的統(tǒng)計結果類似于真正的隨機序列。
我們形容不同的PRBS碼型時,通常用PRBSk或PRBS-k符號(例如PRBS5或PRBS-5)來指示不同序列的大小。在序列中最大有N=2k-1個比特數(shù),因此在PRBS-k中,k表達了序列中唯一的數(shù)據(jù)字節(jié)的長度。如果將N位數(shù)據(jù)分割成長度為k的每一種可能的字段,那么除了全是0的字之外,我們可以找到k位二進制字的每一種可能的0和1的組合。
我們以PRBS-4為例子,可以看出除了0000的狀態(tài)外,剩下的15個狀態(tài)都輸出過:
已知PRBS-4的生成多項式為1+X3+X4
這里1代表輸入,計算移位寄存器的第3位和第4位的異或計算結果作為下一個狀態(tài)的輸入,將第四位作為輸出,假設我們令多項式的狀態(tài)從1111開始,則生成的隨機碼序列為:
得到結果111100010011010。
以此類推,最后的幾個四比特字節(jié)繞到序列的另一端來補全,這樣就除去0000狀態(tài)外,該序列在剩下的15個狀態(tài)中循環(huán)切換的序列。其中不同的k對應的生成多項式也是不同的,比如:
每一個多項式都規(guī)定了反饋的位數(shù),如果選用其他的情況會怎樣?我們還以PRBS-4為例,如果選擇第二位和第四位的異或作為反饋,得到的結果為111001111,可以看到,只經(jīng)過了6個狀態(tài)就已經(jīng)回到了初始狀態(tài),隨機性要更差。
當PRBS-4信號在500M比特率的速度下運行時,使用頻譜儀掃描的結果如下圖所示:
圖1-1 使用頻譜儀觀察PRBS信號
從圖中可以看到,比特率500MHz的PRBS信號能量集中在500MHz以內(nèi),由多條線狀譜構成。在頻率譜的主葉中,含有15根譜線(包括DC的0Hz)。每根譜線之間的間距為33.333MHz(500MHz÷15)。
PRBS序列的頻譜分量取決于比特率和序列長度,通常,PRBS-k序列的長度為2k-1位。在給定的比特率,頻譜分量會以等間隔出現(xiàn),間隔大小為比特率除以序列長度。
為了觀察除了主葉之外的頻譜成分對信號帶來的影響,我們使用示波器觀察信號,如下圖所示。在不同的帶寬限制下觀察信號??梢杂^察到,為了獲得一個信號完整性較好的波形,至少要包含兩組諧波分量,也就是信號路徑的模擬帶寬最好大于比特率的三倍。這對于測試高速數(shù)字接口信號非常重要。
圖1-2 示波器帶寬為1.5GHz的測試結果
圖1-3 示波器帶寬為1GHz測試結果
圖1-4 示波器帶寬為500MHz的測試結果
PRBS碼型的應用
在真實的使用場景中,數(shù)據(jù)流是完全隨機的,PRBS碼型與實際場景的數(shù)據(jù)流很相似,因此我們常用PRBS來模擬真實的數(shù)據(jù)流。
在信號完整性測試中,為了驗證通道的性能,我們通常需要發(fā)送PRBS碼型來觀察輸出的信號質(zhì)量,特別是對于眼圖測試、誤碼率和抖動容限測試。
PRBS-7是目前10Gbps以下的串行總線中最常用的測試碼型。因為PRBS-7的碼型與8b/10b NRZ編碼的數(shù)據(jù)流很相似,因此,在PCIe、SATA、100base-TX、SAS等采用8b/10b編碼的串行總線中,PRBS-7是最常用的測試碼型。