游淑民
(集美大學(xué) 信息工程學(xué)院,福建 廈門 361021)
基于FPGA的光通信誤碼率測試系統(tǒng)設(shè)計
游淑民
(集美大學(xué) 信息工程學(xué)院,福建 廈門 361021)
誤碼率是數(shù)據(jù)傳輸設(shè)備的衡量指標(biāo)之一,誤碼率測試是SFP光通信模塊生產(chǎn)與設(shè)計中重要的環(huán)節(jié)。針對SFP光通信模塊設(shè)計了一種基于FPGA的誤碼率測試系統(tǒng),系統(tǒng)采用并行m型偽隨機序列編碼,可實現(xiàn)PRBS-7至PRBS-31標(biāo)準(zhǔn)的m序列碼流生成,與SFP光通信模塊的通信速率為1.25Gbps。系統(tǒng)打破常規(guī)測試的局限性,模塊連接簡便,可以在短時間內(nèi)對SFP光通信模塊進行準(zhǔn)確測試,提高了SFP光通信模塊誤碼率測試的效率。
SFP;誤碼率測試;FPGA;m型偽隨機序列
隨著光通信系統(tǒng)的傳輸速率越來越高,對光電設(shè)備的可靠性要求也在提高。數(shù)據(jù)鏈路長距離的傳輸或者是外部的干擾都會引起通信數(shù)據(jù)出現(xiàn)錯誤。因此需要誤碼檢測來模擬通信鏈路中的數(shù)據(jù)傳輸,在通信系統(tǒng)實際工作之前對通信設(shè)備可靠性進行驗證。在傳輸速率確定的情況下,光通信系統(tǒng)的誤碼率成為了檢測光電系統(tǒng)性能的關(guān)鍵所在。在實際系統(tǒng)測試中,通常使用誤碼儀對數(shù)字通信系統(tǒng)的誤碼進行檢測。但是傳統(tǒng)的誤碼檢測儀速率較低、接口單一,擁有光接口的型號也較少,已經(jīng)不能滿足當(dāng)今光通信系統(tǒng)的誤碼檢測要求。本文針對SFP光通信模塊設(shè)計了一種通信速率為1.25Gbps的誤碼檢測系統(tǒng),系統(tǒng)采用FPGA作為主控設(shè)備,可以克服傳統(tǒng)誤碼檢測儀在數(shù)字信號處理(DSP)、擴展性及實時性等方面的不足,同時可以在門級進行設(shè)計和改動,也能更快的移植到更高速率的光通信模塊誤碼率檢測平臺。
本文所設(shè)計的誤碼測試系統(tǒng)是基于Xilinx公司的Virtex-6 FPGA ML605開發(fā)板,F(xiàn)PGA芯片型號為:XC6VLX240T-1FFG1156。系統(tǒng)由一塊FPGA開發(fā)板和一個SFP光通信模塊測試板構(gòu)成,結(jié)構(gòu)如圖1所示,F(xiàn)PGA片上系統(tǒng)產(chǎn)生PRBS偽隨機碼,通過GTX高速收發(fā)器接口發(fā)送到標(biāo)準(zhǔn)SFP模塊,標(biāo)準(zhǔn)SFP模塊再通過光纖傳輸?shù)酵獠看郎y的SFP光通信模塊,最后再通過GTX高速收發(fā)器傳輸回FPGA進行碼流對比,判斷是否有誤碼。FPGA片上系統(tǒng)采用32位SOC軟核MicroB-laze做為系統(tǒng)控制內(nèi)核,誤碼測試部分由誤碼計數(shù)和狀態(tài)控制、并行m序列生成、GTX高速串行收發(fā)器和同步接收與比較等模塊組成。
圖1 系統(tǒng)結(jié)構(gòu)框圖
為使測試結(jié)果盡可能真實地反映系統(tǒng)的性能,需要采用偽隨機序列作為測試中傳輸?shù)男盘?,常用的偽隨機序列有m序列、Gold序列以及Walsh序列等,m序列在誤碼檢測中應(yīng)用最廣泛,其它序列均由m序列推衍產(chǎn)生的,所以本系統(tǒng)選擇m序列作為誤碼檢測偽隨機序列。
m序列是一種線性反饋移位寄存器序列,由移位寄存器的反饋運算生成。本次設(shè)計采用Fibonacci型移位寄存器生成m序列[1-2],該結(jié)構(gòu)中移位寄存器的反饋抽頭位置與本原多項式一致,序列與初始狀態(tài)相對應(yīng),其產(chǎn)生速度主要受反饋網(wǎng)絡(luò)的時延限制。如圖2所示,n個寄存器D,從左至右分別代表第1級,第2級,…,第n級寄存器。假設(shè)在開始狀態(tài),第1級的內(nèi)容為an-1,第2級內(nèi)容為an-2,…,第n級內(nèi)容為a0,可以推導(dǎo)出偽隨機序列在最大長度情況下的本征多項式為:
圖2 Fibonacci型線性移位寄存器模型
理論上n值越大,偽隨機序列每個周期數(shù)就越大,隨機性就越強。但是n的取值不能太大,n取值越大,占用FPGA的資源越多,影響電路的工作頻率。通過公式及模型可知,m序列可通過基本的移位寄存器經(jīng)過多級異或運算產(chǎn)生,核心代碼如圖3所示,偽隨機序列的并行輸出寬度為Nbits,移位寄存器反饋拍數(shù)為TAP,LENGHT為D觸發(fā)器的個數(shù)。D觸發(fā)器的個數(shù)(LENGTH)和PRBS數(shù)組的寬度(Nbits)決定了進行反饋的邏輯深度和偽隨機序列并行輸出的個數(shù)。LENGHT的取值越大,偽隨機序列的周期數(shù)就越大,m序列的隨機性越強,但是FPGA內(nèi)部資源的消耗和電路的反饋深度會相應(yīng)增加,電路的關(guān)鍵路徑會變長,影響電路的工作頻率,如表1所示。圖4為偽隨機序列產(chǎn)生模塊在LENGHT為7,TAP為6的情況下的仿真波形。
圖3 偽隨機序列產(chǎn)生核心代碼
表1偽隨機序列參數(shù)對比列表
圖4 偽隨機序列產(chǎn)生模塊仿真圖
系統(tǒng)所需要進行誤碼測試的SFP光模塊的速率為1.25Gbps,F(xiàn)PGA普通IO口的翻轉(zhuǎn)特性無法達到此要求,系統(tǒng)采用了Xilinx Virtex6中提供的GTX高速串行收發(fā)器進行高速碼流的發(fā)射與接收。
GTX作為一種低功耗的Gigabit收發(fā)器[3],配置靈活,功能強大,與FPGA內(nèi)部的其他邏輯資源緊密聯(lián)系,可用于實現(xiàn)多種高速接口,如XAUI、PCIE、SATA等。本次設(shè)計所選用的FPGA中,GTX傳輸速率為600 Mb/s到6.6 Gb/s,支持雙向收發(fā),GTX的結(jié)構(gòu)如圖5所示,接收和發(fā)送均由物理編碼子層(PCS)和物理媒體接入子層(PMA)兩部分組成,PCS提供豐富的物理編碼層特性,如8b/10b編碼/解碼器、彈性緩沖器及時鐘校準(zhǔn)等功能;PMA部分為模擬電路,包括串行/解串器(SERDES)、TX/RX輸入/輸出緩沖、時鐘產(chǎn)生器和時鐘恢復(fù)電路,提供高性能的串行接口特性,如預(yù)加重、均衡等功能。
圖5 Virtex6 GTX結(jié)構(gòu)框圖
3.1 GTX發(fā)送模塊設(shè)計
GTX發(fā)送模塊的設(shè)計主要包括CRC電路、8B/10B編碼電路和電流模式邏輯電路 (CML)3個部分,F(xiàn)PGA將要傳送的數(shù)據(jù)傳給GTX模塊,GTX模塊首先對數(shù)據(jù)進行CRC校驗,然后按照用戶的設(shè)置對數(shù)據(jù)編碼,經(jīng)過相位調(diào)整和并串轉(zhuǎn)換之后發(fā)射出去。發(fā)送模塊主要包括兩個時鐘域,時鐘(TXUSRCLK2)為GTX模塊的數(shù)據(jù)裝載時鐘,另一個時鐘(TXUSRCLK)為內(nèi)部的PCS邏輯電路提供發(fā)送時鐘。
圖6 8B/10B編碼映射關(guān)系
8B/10B編碼是一種預(yù)防通信鏈路DC失調(diào)的編碼機制,在多個連續(xù)的“1”或者“0”后插入一位“0”或者“1”,從而保證信號DC平衡。如圖6所示,設(shè)計中將8位數(shù)據(jù)分解為兩組數(shù)據(jù),一組3位,一組5位,經(jīng)過編碼后分別映射為4位和6位的子碼,同時各自對應(yīng)一個反碼。在對數(shù)據(jù)進行編碼時,根據(jù)當(dāng)前的DC偏差決定使用子碼的正碼還是反碼,保證信道中的數(shù)據(jù)DC平衡。8B/10B編碼中通過“K碼”來實現(xiàn)信號的傳輸控制,本系統(tǒng)中采用D28.5的碼型,即以0xBC為原碼,在接收數(shù)據(jù)時根據(jù)原碼進行數(shù)據(jù)的幀對齊。
GTX模塊中有兩個PLL,參考時鐘可以單獨提供或者從其他GTX模塊中引入,本文采用板載125M的晶振做為驅(qū)動GTX模塊的PLL時鐘。FPGA到GTX的發(fā)送模塊有兩個并行的時鐘“TXUSRCLK”和“TXUSRCLK2”。TXUSRCLK是用來進行PCS邏輯的內(nèi)部時鐘,時鐘速率取決于GTX模塊的接口寬度(INTDATAWIDTH)與發(fā)射器的線速率,計算公式如式(2)所示:
GTX發(fā)送模塊的數(shù)據(jù)裝載時鐘 (TXUSRCLK2)頻率由發(fā)送的線速率、TXDATA的位寬以及8B/ 10B編碼所決定。本文基于系統(tǒng)同步時序設(shè)計的考慮,將TXUSRCLK2作為GTX模塊的裝載時鐘、FPGA的系統(tǒng)時鐘和同步FIFO的讀寫時鐘,內(nèi)置PLL的輸出端GTXCLKOUT驅(qū)動GTX模塊時鐘的電路框圖如圖7所示。
3.2 GTX接收模塊設(shè)計
GTX接收模塊的核心電路為接收均衡電路,其內(nèi)部含有自同步電路,當(dāng)接收外部高速數(shù)據(jù)時,不需要提供高速時鐘,因此可以簡化鏈路互連以及時鐘樹的復(fù)雜度,而且比源同步和系統(tǒng)同步更有保證且更有效率。接收均衡電路中的直接邏輯實現(xiàn)電路(CDR)可以直接從編碼后的串行數(shù)據(jù)流中依據(jù)數(shù)據(jù)的跳變沿提取傳輸數(shù)據(jù)的時鐘,并且恢復(fù)高速數(shù)據(jù),完整的CDR電路包括延遲線相位檢測器(DPD)、壓控振蕩器(VCO)、環(huán)路濾波器和控制電路等。其主要結(jié)構(gòu)如圖8所示。
圖7 GTXCLKOUT驅(qū)動GTX時鐘框圖
圖8 CDR電路結(jié)構(gòu)圖
鑒相/頻器將壓控振蕩器的輸出頻率鎖定在數(shù)倍于串行數(shù)據(jù)的參考時鐘上,并根據(jù)串行數(shù)據(jù)的跳變沿實時調(diào)整壓控振蕩器的輸出頻率分頻時鐘的瞬態(tài)相位,以修正其瞬時頻率,實現(xiàn)與串行數(shù)據(jù)的匹配,從而恢復(fù)時鐘。數(shù)據(jù)的恢復(fù)則是在眼圖搜索的基礎(chǔ)上從多級延遲線中取出信號質(zhì)量最好的采樣點輸出,也可以采用過采樣器以邏輯的方式實現(xiàn)數(shù)據(jù)的動態(tài)恢復(fù)。
GTX接收高速串行數(shù)據(jù)首先需要位對齊,才能接收到準(zhǔn)確的數(shù)據(jù)流,否則接收的數(shù)據(jù)如果錯位或者丟失,則會導(dǎo)致串并轉(zhuǎn)換恢復(fù)的數(shù)據(jù)并不是原數(shù)據(jù),后面FPGA進行的數(shù)據(jù)處理工作也就沒有了意義。本文中設(shè)計使用的“K碼”為0101111100即0xBC,接收器的位對齊操作如圖9所示。
圖9 接收器對接收數(shù)據(jù)進行對齊校準(zhǔn)
誤碼檢測電路使用同步FIFO對發(fā)射序列和接收序列進行緩存,然后比較和計算得到SFP光通信模塊的誤碼率。FPGA中誤碼序列的比較框圖如圖10所示。在誤碼序列的比較電路中,兩個FIFO的讀寫時鐘均為系統(tǒng)時鐘,F(xiàn)PGA生成偽隨機序列并裝載至GTX發(fā)射器,同時將裝載數(shù)據(jù)寫入TX_FIFO中,由于系統(tǒng)延遲,接收器在一段時間后開始接收數(shù)據(jù),并將接收數(shù)據(jù)寫入RX_FIFO。FPGA同步讀取這發(fā)送和接收FIFO的數(shù)據(jù)進行比較,如果相同說明沒出現(xiàn)誤碼,反之則說明通信出現(xiàn)誤碼。
GTX發(fā)送模塊從復(fù)位到正常工作需要一個準(zhǔn)備時間,為了防止在GTX模塊未準(zhǔn)備就緒FPGA就開始發(fā)送數(shù)據(jù)的情況出現(xiàn),需要在控制模塊里使用一個計數(shù)器電路進行延時控制。當(dāng)發(fā)送標(biāo)志位為1并且計數(shù)器溢出時,F(xiàn)PGA傳送偽隨機序列給GTX發(fā)送模塊進行裝載發(fā)送;反之,則FPGA把“K碼”裝載至GTX發(fā)送模塊,進行信道同步工作。
本設(shè)計中,為了便于序列的比較,防止信號抖動帶來的影響,將16個偽隨機數(shù)設(shè)置為1幀,在FPGA比較模塊內(nèi)用0xBC作為幀同步標(biāo)志。FPGA每向GTX發(fā)送模塊裝載16個偽隨機碼,插入一個幀同步標(biāo)志0xBC,并將幀同步標(biāo)志后裝載的16個數(shù)據(jù)寫入發(fā)送緩存模塊TX_FIFO,以便與接收緩存模塊RX_FIFO中的數(shù)據(jù)進行比較,當(dāng)接收器識別到幀同步標(biāo)志0xBC后,F(xiàn)PGA將其隨后的16個數(shù)據(jù)寫入接收緩存模塊RX_FIFO。當(dāng)RX_FIFO的數(shù)據(jù)個數(shù)小于32時,兩個FIFO的讀端口被禁止,當(dāng)RX_FIFO的數(shù)據(jù)等于32時,表明RX_FIFO里至少有兩幀偽隨機序列,這時使能兩個FIFO讀操作,如圖11所示誤碼檢測流程。FPGA讀出兩個FIFO的數(shù)據(jù)進行異或比較,如果為0則說明無誤碼,反之則有誤碼,并將誤碼數(shù)量和誤碼標(biāo)志傳給控制內(nèi)核。
圖10 誤碼檢測電路框圖
圖11 誤碼率檢測流程
如圖12所示FPGA誤碼檢測模塊仿真波形,偽隨機序列模塊的輸出DATA_OUT向GTX發(fā)送模塊傳送偽隨機數(shù)??刂颇K的使能端switch以及收發(fā)器延遲計數(shù)器的標(biāo)志位start_B5同時為1時,GTX發(fā)送模塊的接口 TX_DATA_buf開始接收 FPGA產(chǎn)生的偽隨機序列,同時計數(shù)器read_count_i開始計算GTX發(fā)送的偽隨機序列字節(jié)數(shù)。GTX模塊每發(fā)送16字節(jié),K碼使能接口txcharisk置1使GTX在發(fā)送序列中插入一個幀對齊標(biāo)志0xBC。經(jīng)過一段時間后接收端RX_DATA接收到偽隨機序列,當(dāng)檢測到幀對齊標(biāo)志位0xBC時,接收計數(shù)器RX_read_count開始計算接收的偽隨機序列字節(jié)數(shù)。接收字節(jié)數(shù)大于32時,同步讀取發(fā)送FIFO和接收FIFO的數(shù)據(jù)進行比較,誤碼標(biāo)志位check_err為0,說明通信正常,反之則說明出現(xiàn)誤碼。
圖12 FPGA誤碼率檢測仿真波形
本文針對SFP光通信模塊設(shè)計了一種基于FPGA的誤碼率測試系統(tǒng),測試系統(tǒng)實物圖、最終測試SFP模塊眼圖誤碼檢測模塊的Chipscope實時監(jiān)測波形圖如圖13~15所示。
圖13 測試系統(tǒng)硬件實物圖
圖14 測試完成后SFP模塊的眼圖
圖 15 誤碼檢測模塊Chipscope實時監(jiān)測波形
系統(tǒng)采用并行m型偽隨機序列編碼,可實現(xiàn)PRBS-7至PRBS-31標(biāo)準(zhǔn)的m序列碼流生成,與SFP光通信模塊的通信速率為1.25Gbps,系統(tǒng)打破常規(guī)測試的局限性,模塊連接簡便,可以在短時間內(nèi)對SFP光通信模塊進行準(zhǔn)確測試,提高了SFP光通信模塊誤碼率測試的效率。
[1]鄒學(xué)玉,易建國.一類基于FPGA的m序列發(fā)生器的設(shè)計[J].長江大學(xué)學(xué)報:自然科學(xué)版.2006,3(3):84-86.
[2]林可祥,汪一飛.偽隨機碼的原理與應(yīng)用[M].北京:人民郵電出版社,1998.
[3]XI LIN X.Virtex-6 FPGA GTX transceivers user guide[BD].www.xilinx.com,2011.
[4]劉江,張宏霄,劉洛琨.基于FPGA的誤碼率測試儀的設(shè)計與實現(xiàn)[J].微計算機信息,2005,21(4):162-163.
[5]張馳.基于SFP光模塊的誤碼儀的研制[D].成都:電子科技大學(xué),2009.
[6]BETZ V,ROSE J.VPR:a new packing,placement and routing tool for FPGA research[M].[s.l.]:Springer,1997.
[7]曾金.高速實時信號處理系統(tǒng)的 FPGA軟件設(shè)計與實現(xiàn)[D].北京:北京工業(yè)大學(xué),2009.
[8]王道憲.CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā)[M].北京:國防工業(yè)出版社,2004.
[9]孫航.Xilinx可編程邏輯器件的高級應(yīng)用與設(shè)計技巧[M].北京:電子工業(yè)出版社,2004.
[10]趙不賄,景亮,徐雷鈞,等.在系統(tǒng)可編程器件與開發(fā)技術(shù)[M].北京:機械工業(yè)出版社,2001.
[11]趙曙光,郭萬有,楊頌華.可編程邏輯器件原理、開發(fā)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006.
[12]楊暉,張鳳言.大規(guī)??删幊踢壿嬈骷c數(shù)字系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1998.
[13]PETERSON B A,MEDINA R,PETERSON F J.Pluggable transceiver module having rotatable release and removal lever with living hinge[Z].Google Patents,2002.
[14]王妮,侯韶華.基于 SFP光模塊控制系統(tǒng)的設(shè)計和實現(xiàn)[J].光通信技術(shù),2010(009):36-38.
[15]王三.千兆光纖收發(fā)模塊SFP的設(shè)計及測試.[C]//第十三屆全國青年通信學(xué)術(shù)會議論文集(上).[s.n.],2008.
(責(zé)任編輯:朱聯(lián)九)
Design of FPGA Based Bit-error Rate Test System for Optical Communication
YOU Shu-min
(The College of Information Engineering Jimei University,Xiamen 361021,China)
Bit-error rate (BER)is a criterion used for testing the data transmission equipment and BER test is an important procedure in manufacturing and design of SFP optical communication modules.In this paper,a BER test system based on FPGA for SFP optical communication module is proposed.This system employs parallel m-sequence based pseudo-random coding and therefore is capable to generate standardized m-sequences from PRBS-7 to PRBS-31.The communication rate between BER test system and SFP optical communication module is 1.25 Gbps.The proposed BER test system employed a novel testing method and connection to SFP modules is simple,thus it is able to test SFP modules in a short time with high accuracy,i.e.,the test efficiency is improved.
SFP;bit-error r ate test;FPGA;m-style pseudo random sequence
TP312
:A
1673-4343(2014)04-0079-07
10.14098/j.cn35-1288/z.2014.04.015
2014-07-08
集美大學(xué)育研基金項目(XX201406)
游淑民,女,福建龍巖人,助教。研究方向:集成電路設(shè)計。