本文討論了高速串行鏈路中常用的測試碼型偽隨機碼流的原理,以及不同的測試碼型對物理層測試結果的影響。
高速串行總線的常用測試碼型
在當今的電信和計算機產品上,相比傳統的并行總線,電路中的串行總線越來越多,速率越來越快。比如通信產品中的10GBase-KR、CPRI2代,計算機中的PCIeGen2、SATA6G,存儲產品中的SAS6G、FC8.5G,這些串行總線都陸續的跨過了5Gbps。由于速率比較高,使得串行總線上的相關的收發器芯片(SERDES)、連接器、單板、背板的設計面臨著越來越多的挑戰。對于這些高速串行總線的物理層測試,測試碼型的選用至關重要,在很多串行總線的規范中對測試碼型有嚴格的要求。本文將對此進行探討。
首先,串行總線的物理層測試通常分為發射機測試和接收機測試,又稱為TX測試和RX測試。發射機測試通常包括眼圖、抖動、信號波形、幅度、上升下降時間等測試項目,接收機測試通常包括誤碼率、抖動容限、接收機靈敏度等測試項目。對于眼圖測試、誤碼率和抖動容限測試,最常用的測試碼是偽隨機碼(PseudoRandomBinarySequence,簡稱PRBS),主要有PRBS7、PRBS15、PRBS23和PRBS31。除了PRBS以外,K28.5、1010、CJPAT等碼型在很多串行總線的物理層測試中都很常用,特別是計算機上的串行標準(比如SATA、USB3.0、SAS)的測試碼型有所不同,在本文中主要討論最常用的測試碼型——PRBS。
PRBS的實現方法
顧名思義,PRBS是偽隨機碼流,在其碼流中包括了所有可能出現的比特組合,而且其出現的概率是相同的。PRBS信號是由PRBS碼型發生器生成的。PRBS發生器通常是由線性反饋移位寄存器(LinearFeedbackShiftRegister,簡稱LFSR)和異或電路組成。如下圖1所示為最簡單的PRBS3的碼型發生器,其多項式為X3+X2+1,即寄存器的第3位與第2位做異或(XOR)的邏輯運算后返回到寄存器的第1位,寄存器的第3位X3同時也是PRBS3發生器的輸出。
圖 1:PRBS3碼型發生器原理
在表格1中顯示了PRBS3的n個周期的時鐘后輸出n個比特的碼流。X1/X2/X3分別是3個比特移位寄存器的低位到高位,輸出位是X3,初始狀態為X1/X2/X3=1/1/1,如表格第1行所示。
第1個時鐘沿到達后,X3與X2異或后等于0,輸入到X1,同時X1和X2前移到X2和X3,所以X1/X2/X3=0/1/1,如表格第2行所示;
第2個時鐘沿到達后,X3與X2異或后等于0,輸入到X1,同時X1和X2前移到X2和X3,所以X1/X2/X3=0/0/1,如表格第3行所示;
第3個時鐘沿到達后,X3與X2異或后等于1,輸入到X1,同時X1和X2前移到X2和X3,所以X1/X2/X3=1/0/0,如表格第4行所示;
……
以此類推,第5行為0/1/0,第6行為1/0/1,第7行為1/1/0,第8行為1/1/1,與初始狀態相同,接下來的第9行和第10行與第2行和第3行完全相同,也就是說PRBS3的碼型輸出7個比特后開始重復。X3是PRBS3的輸出位,所以PRBS3輸出的碼型為1110010,碼長為7,如圖2所示,每7個比特后開始重復輸出同一碼型。在PRBS3中包括了11100屬于碼流中頻率最低的碼型,010是頻率最高的碼型。
表格1:PRBS3的3位寄存器數值
圖2:PRBS3輸出信號
為何PRBSN的碼長為2^N-1
在PRBS3的3位寄存器可以產生2的3次方合計8個排列組合。采用XOR異或電路的PRBS發生器在3個比特都是0的時候,下一個時鐘到來的時候,第3個比特和第2個比特異或后還是0,輸入到寄存器的第一位還是0,同時第1個和第2個比特前移到第2個和第3個比特,這樣,移位后寄存器的3個比特都是0,則PRBS發生器的輸出一直都是0,被鎖住。所以PRBS3碼流中不能出現3個全0的比特,這樣,PRBS3的組合方式為2^3-1=7共7種,碼長位7個比特。同理,PRBS7的碼長為2^7-1=127個比特,PRBS15的碼長為2^15-1=32767個比特。
PRBS7和PRBS31
PRBS7是目前10Gbps以下的串行總線中最常用的測試碼型。常用的PRBS7的多項式為X7+X6+1,碼長為127個比特,在ITU-TV.29規范中規定。PRBS7屬于短偽隨機碼型,與8b10bNRZ編碼的數據流很相似,所以,在PCIe、SATA、XAUI、1000BASE-LX、FC、SAS等采用8b10b編碼的串行總線中,PRBS7是最常用的測試碼型,支持這些總線的芯片通常都可以輸出PRBS7測試碼型,用于眼圖、抖動或誤碼率測量。
圖 3:PRBS7碼型發生器原理
PRBS7的碼流中最長的連1為7個,最長的連0為6個;而8b10b編碼中最長的連1為5,最長的連0也是5;因此,相比8b10b編碼,PRBS7可以產生的較低頻率的碼型。使用PRBS7作為驅動源,在同一信道(比如背板上20英寸長走線)上傳輸到接收端后得到眼圖和抖動,都比8b10b編碼的作為驅動源時的結果稍差些。這樣,PRBS7作為8b10b編碼的串行總線的測試碼型,留出了一定的設計余量。
圖4:幾種常用PRBS的說明
PRBS31的多項式為X31+X28+1,碼長為2^31-1=2147,483,647個比特,屬于長偽隨機碼型。碼流中最長的連1為31個,最長的連0為30個,包含了相當多的低頻成分而這正是SONET/SDH系統測試規范中所要求的,所以可用于像SONET/SDH信號那樣包含了很多低頻成分的物理層測量。
除了PRBS外,K28.5也是常用的測試碼型之一。K28.5是8b10b編碼表中的一個命令字,也是采用8b10b編碼的串行鏈路中最常用的測試碼型,由K28.5-=0011111010和K28.5+=1100000101組成,它有五個連續的1和五個連續的0,是8b10b編碼中最長的連1和連0,也就是說K28.5包括了8b10b編碼中最低頻的碼型,同時,K28.5中有101和010這樣的高頻碼型,因此,K28.5非常適合測量和SI仿真時作為驅動端的激勵,來計算信道的碼間干擾(又稱ISI)。我們知道,在8Gbps以下的串行總線上,8b10b編碼是最常用的編碼技術,這樣也導致了K28.5是最流行的測試碼型之一。在FC和XAUI標準中,也規定了K28.5為固有抖動的測試碼型。
各種測試碼型在同一信道上傳輸到接收端的測試結果分析
圖5所示為高速背板、電纜的物理層測試的示意圖,在發送端使用碼型發射器作為驅動信號源,接收端使用誤碼檢測器測量誤碼,或者使用示波器測量眼圖。這樣,就組成了完整的高速背板、電纜的物理層測試系統。
圖5:高速印刷電路板的評估與測試系統
在本次測試中,我們使用了美國Centellax公司的可編程碼型發生器PPG12500,PPG12500的輸出信號速率可在1G到12.5Gbps任意調節。把輸出信號的比特率設置為10.3125Gbps,幅度1V,去加重為1dB,輸出碼型分別為PRBS7/15/23/31。信道為某24英寸長PCB走線,在接收端使用Centellax的誤碼儀PCB12500測量誤碼率。表格2為測試結果,可見,驅動碼型為短碼型PRBS7時,誤碼率為0,而驅動碼型為長碼型PRBS31時,接收端的誤碼率最高。隨著串行速率不斷升高,8b10b編碼在某些高速率鏈路上已不被采用,因此,在這些鏈路中很少使用PRBS7作為測試碼型,幾乎都使用了PRBS31作為測試碼型,以產生最大的抖動和最惡化的激勵信號。
表格2:誤碼率測試結果
Centellax的PPG12500產品介紹,特點,應用范圍。
Centellax公司的PPG12500是速率在1-12.5Gbps可調的可編程碼型發射器,相比其他碼型發射器,有以下特點:
1.可編程碼型長度高達24M個比特
2.內置了2個tap的去加重,可以用于評估某特定長度背板走線的TX端所需的去加重程度,而很多碼型發射器都沒有內置去加重功能,必須使用昂貴的外置去加重儀器附件。如下圖6所示為示波器測量PPG12500輸出的某6dB去加重的波形。
3.抖動透明傳遞功能,即碼型發射器的參考輸入時鐘中注入抖動后,PPG12500的輸出數據中也帶有同類型抖動。如下圖7為PPG12500搭配Centellax的時鐘源TG1C1A,可以輸出比特率為1-12.5Gbps、帶有正弦抖動的串行數據。
4.可前面板控制,或者使用USB和GPIB遙控,提供了Labview驅動或者GUI來控制。
圖6:PPG12500輸出的帶6dB去加重的碼型
圖7:Centellax的碼型發射器PPG12500與時鐘源TG1C1A
結語
在高速數字電路的互聯設計中,偽隨機碼型PRBS是最常用的測試碼型,Centellax的解決方案(碼型發射器PPG12500加時鐘源TG1C1A)提供了1-12.5G的比特率任意可調、集成去加重、可注入正弦抖動等強大功能,可以作為驗證高速背板與高速電纜的驅動信號源、或者接收機抖動容限的加壓信號源、以及發送端去加重程度的仿真器,是目前業界最高性價比的碼型發生器。
評論
查看更多