之前一直在講高速串行的協議,MAC,PHY,PMD層,PMA層嗎,PCS層。。。看大家回答的數量也不是很多,弱弱的問一句大家都消化了嗎?的確,講到各個層的功能,數據在芯片內部如何去運作協調這方面的確有點高深。其實坦白說哈,作為同組的一員,我也對上面的文章和劉工深感佩服(點贊點贊)。既然上層的東西不那么好理解的話,我們還是說回點接地氣的吧。我們知道,無論上層如何運作,最終還是要去到物理層上面去,最終我們的數據就在上面傳輸,而傳輸的方式就是各種不同速率的碼型。從本期開始,我們將介紹下關于碼型的一些東西。
PRBS:Pseudo-Random Binary Sequence,中文翻譯叫做偽隨機二進制序列,江湖人簡稱它為偽隨機碼。做過測試的朋友們都應該特別熟悉,就是使用PRBS這種偽隨機碼進行高速串行通道的測試,主要是測試誤碼率的情況,例如我們常用的一些協議,PCIE,USB,以太網或者下圖的光模塊的測試等等……
當然我們信號高速串行信號仿真的時候,也會有各種prbs碼型進行,一個10G-SFP+光模塊PCB通道的仿真模型如下:
為什么業界公認選擇這種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碼型發生器產生的,下面是一個簡單發生器的示意圖:
架構很簡單,就由兩部分組成:移位寄存器和異或運算器。首先移位寄存器,顧名思義作用就是移位,1個bit發送后,把下一個bit推向前準備發送;異或運算,簡單點說就是兩個不一樣就是“1”,兩個一樣就是“0”,因此有“1”和“1”是0,“0”和“0”是0,“1”和“0”是1。那像上面這個PRBS3發生器,進行異或的位是第二位和第三位,因此用一個多項式命名它,叫做1+X2+X3。
這樣我們可以開始進行計算了。首先我們有一個初始狀態“111”。我們就有了下面這么一個計算過程(畫得不好,大家看內容就好)。簡單說明一下,紅色為異或運算過程,藍色為每次移位后的bit,綠色為輸出的數據bit,紫色說明繞一圈之后又回到了原先,循環了一次。
經過本文之后,大家是不是對感覺很高深神秘的prbs碼型有了更接地氣的認識和理解了呢?
編輯:hfy
-
移位寄存器
+關注
關注
3文章
258瀏覽量
22274 -
運算器
+關注
關注
1文章
163瀏覽量
16568 -
光模塊
+關注
關注
77文章
1266瀏覽量
59013 -
串行信號
+關注
關注
0文章
26瀏覽量
8504 -
PRBS
+關注
關注
0文章
10瀏覽量
2609
發布評論請先 登錄
相關推薦
評論