10G以太網(wǎng)光接口的FPGA實現(xiàn)
4 設(shè)計驗證
4.1 設(shè)計驗證方法
為了驗證該電路設(shè)計的正確性,對電路的可靠性進(jìn)行了測試。在該FPGA設(shè)計系統(tǒng)中加入一個偽隨機(jī)數(shù)列(PRBS)產(chǎn)生和檢查電路。由于Xilinx公司的Virtex6型芯片中的IP核GTP中含有偽隨機(jī)數(shù)列(PRBS)產(chǎn)生和檢測電路,所以本文采用其內(nèi)部電路自動生成PRBS并經(jīng)過整個10 Gb/s的以太網(wǎng)高速數(shù)據(jù)鏈路,最終由其檢測電路來檢驗數(shù)據(jù)傳輸中是否出現(xiàn)誤碼。測試方案如圖2所示。FPGA中用于產(chǎn)生和檢測PRBS的GTX核為4個,每一個分別對應(yīng)一個2.5G鏈路。
圖2 測試方案
由Xilinx公司給出的GTP的用戶說明[9]可知,分別設(shè)置信號TXENPRBSTST0、TXENPRBSTST1、RXENPRBSTST0以及RXENPRBSTST1的值為01,而信號INTDATAWIDTH的值為1,其產(chǎn)生的偽隨機(jī)數(shù)列類型為PRBS7。產(chǎn)生PRBS7數(shù)列的多項式為1+X6+X7,數(shù)據(jù)長度為128,其可以檢驗經(jīng)過8b/10b轉(zhuǎn)換的數(shù)據(jù)。設(shè)置信號RXPRBSERR的值為1,以檢測高速數(shù)據(jù)傳輸過程中數(shù)據(jù)是否出現(xiàn)誤碼。設(shè)置信號PRBS_ERR_THRESHOLD0和PRBS_ERR_THRESHOLD1的值,其含義為PRBS循環(huán)檢測中發(fā)生錯誤總數(shù)的閾值,以控制信號RXPRBSERR(0,1)。信號RXPRBSERR標(biāo)志著在PRBS循環(huán)測試中檢測數(shù)據(jù)錯誤發(fā)生的總值超過了PRBS_ERR_THRESHOLD所設(shè)置的閾值,則該信號變?yōu)?。產(chǎn)生的PRBS序列經(jīng)過發(fā)送鏈路和外部鏈路環(huán)回,再傳輸?shù)浇邮真溌?,?jīng)過相應(yīng)的處理后到達(dá)PRBS檢測電路,進(jìn)而驗證數(shù)據(jù)的正確性。其中,外部鏈路環(huán)回是主要是指將一根光纖的兩端分別接入到10G光接口的接收與發(fā)送端,使數(shù)據(jù)本身在設(shè)計系統(tǒng)中環(huán)回。
4.2 驗證結(jié)果
在實驗室常溫環(huán)境下,對系統(tǒng)的高速傳輸數(shù)據(jù)進(jìn)行驗證。該驗證分為兩個部分,第一部分是運(yùn)用Xilinx公司研發(fā)的軟件工具Chipscope抓取FPGA內(nèi)部接收和發(fā)送的數(shù)據(jù)進(jìn)行比較,以驗證所設(shè)計的系統(tǒng)是否能實現(xiàn)所要求的功能。Chipscope抓取的結(jié)果如圖3所示。信號program_after_data0~3為PRBS產(chǎn)生模塊輸出的數(shù)據(jù)經(jīng)過功能模塊處理后的數(shù)據(jù)。信號RX0_PRBSERR0和RX0_PRBSERR1是第一鏈路中PRBS檢測模塊中RXPRBSERR0、1,由圖可知其值為1,即該系統(tǒng)中第0數(shù)據(jù)鏈路的錯誤計數(shù)沒有超過閾值PRBS_ERR_THRESHOLD的值。由圖可知,信號RX1_PRBSERR0、1,RX2_PRBSERR0、1和RX3_PRBSERR0、1的值均為0,所以系統(tǒng)的4條數(shù)據(jù)鏈路的錯誤計數(shù)均未超過閾值。
圖3 Chipscope系統(tǒng)測試結(jié)果
第二部分是運(yùn)用高頻率范圍示波器抓取FPGA輸出給PHY芯片的數(shù)據(jù),以檢測該系統(tǒng)傳輸?shù)男盘栙|(zhì)量,由示波器測試的數(shù)據(jù)傳輸眼圖如圖4所示。由于4路2.5G的傳輸鏈路配置相同且篇幅有限,只是列舉出第0路傳輸數(shù)據(jù)的眼圖。該系統(tǒng)傳輸?shù)难蹐D的比特錯誤率(EyeBER)可達(dá)到10-45,眼高為600 mV左右。
圖4 高速數(shù)據(jù)傳輸眼圖
結(jié)語
通過反復(fù)驗證和長時間連續(xù)測試,測試結(jié)果證明,該設(shè)計能夠有效、正確地實現(xiàn)10 Gb/s的高速數(shù)據(jù)傳輸,并且傳輸數(shù)據(jù)的誤碼均未超過閾值,進(jìn)而證明了該設(shè)計系統(tǒng)的可靠性和穩(wěn)定性。采用FPGA中的RocketIO接口來設(shè)計10 Gb/s速率的光纖傳輸,極大地增強(qiáng)了光纖傳輸設(shè)計的靈活性,通過修改FPGA代碼即可用于高速信號傳輸?shù)亩喾N情況和場合。
評論