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