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