PRBS碼是什麼?PRBS生成原理介紹(轉)

轉自:http://blog.sina.com.cn/s/blog_9fa828d10102y3dp.html

之前一直在講高速串行的協議,MACPHYPMD層,PMA層嗎,PCS層。。。看大家回答的數量也不是很多,弱弱的問一句大家都消化了嗎?的確,講到各個層的功能,數據在芯片內部如何去運作協調這方面的確有點高深。其實坦白說哈,作爲同組的一員,我也對上面的文章和劉工深感佩服(點贊點贊)。既然上層的東西不那麼好理解的話,我們還是說回點接地氣的吧。我們知道,無論上層如何運作,最終還是要去到物理層上面去,最終我們的數據就在上面傳輸,而傳輸的方式就是各種不同速率的碼型。從本期開始,我們將介紹下關於碼型的一些東西。

 PRBS:Pseudo-Random Binary Sequence,中文翻譯叫做僞隨機二進制序列,江湖人簡稱它爲僞隨機碼。做過測試的朋友們都應該特別熟悉,就是使用PRBS這種僞隨機碼進行高速串行通道的測試,主要是測試誤碼率的情況,例如我們常用的一些協議,PCIE,USB,以太網或者下圖的光模塊的測試等等……

prbs碼,prbs7,prbs僞隨機碼

當然我們信號高速串行信號仿真的時候,也會有各種prbs碼型進行,一個10G-SFP+光模塊PCB通道的仿真模型如下:

prbs碼,prbs7,prbs僞隨機碼


爲什麼業界公認選擇這種prbs碼型進行測試(仿真)呢?主要原因是這種碼型與真實鏈路的數據傳輸情況非常接近。因爲在真實情況中,所以的數據組合都是隨機出現的,沒有任何規律可言。 而PRBS 的碼流在很大程度上具有這種“隨機數據”的特性,“0”和“1”隨機出現,這種碼流的頻譜特徵和白噪聲非常接近,所謂“白噪聲”就是在一個比較寬的頻域裏功率密度譜均勻分佈,也就是所有的頻率都具有相同的能量,因此該碼型能夠模擬各種不同頻率數據組成的情況,使測試更符合真實的情況。

那prbs這種隨機碼真的就是沒有任何規律的嗎??當然不是,不然的話爲什麼還要分prbs1-31那麼多種呢。之所以要叫僞隨機碼,其實就是碼流在週期內部是隨機的,但是在各個週期裏面又是完全相同的。咋一看,好像說了等於沒有,大家可能有疑問,在週期內部是隨機的,那不還是隨機嘛?其實這個隨機是要打個問號的,正確來說是“有順序的隨機”。所謂順序就是通過不同階數的prbs碼來體現,例如,我們常用的有階數7、9、11、15、20、23、31,也就是我們常說的PRBS7、PRBS9、PRBS11、PRBS15、PRBS20、PRBS23、PRBS31。

 

前面說了,不同的階數會有不同的碼型,那它們之間有什麼規律呢?不同階數是怎樣生成碼型的呢?我們以PRBS3進行說明。

PRBS碼型是由PRBS碼型發生器產生的,下面是一個簡單發生器的示意圖:

 prbs碼介紹,prbs7,prbs僞隨機碼


架構很簡單,就由兩部分組成:移位寄存器和異或運算器。首先移位寄存器,顧名思義作用就是移位,1個bit發送後,把下一個bit推向前準備發送;異或運算,簡單點說就是兩個不一樣就是“1”,兩個一樣就是“0”,因此有“1”和“1”是0,“0”和“0”是0,“1”和“0”是1。那像上面這個PRBS3發生器,進行異或的位是第二位和第三位,因此用一個多項式命名它,叫做1+X2+X3。

這樣我們可以開始進行計算了。首先我們有一個初始狀態“111”。我們就有了下面這麼一個計算過程(畫得不好,大家看內容就好)。簡單說明一下,紅色爲異或運算過程,藍色爲每次移位後的bit,綠色爲輸出的數據bit,紫色說明繞一圈之後又回到了原先,循環了一次。

 什麼是prbs碼,prbs7,prbs僞隨機碼

 

經過本文之後,大家是不是對感覺很高深神祕的prbs碼型有了更接地氣的認識和理解了呢?當然,本文舉例的prbs3是比較簡單的,感覺它沒經過幾位就可以循環一次了,大家推導起來也比較方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章