余 鑫,李躍忠
(東華理工大學(xué)機(jī)械與電子工程學(xué)院,江西南昌 330013)
隨著數(shù)字電路的快速發(fā)展,數(shù)據(jù)傳輸容量和實(shí)時(shí)性已經(jīng)成為關(guān)鍵問題。高速串行通信技術(shù)被廣泛使用,Xilinx部分系列FPGA集成了高速數(shù)據(jù)收發(fā)Rocket I/O模塊,采用預(yù)加重等技術(shù)使傳輸速率,最高達(dá)到10 Gbit·s-1以上,可用于吉比特以太網(wǎng)、PCI- Express等常用接口[1]。因此改善相應(yīng)的高速串行通信質(zhì)量的測試也變得尤為重要。利用Xilinx提供的Integrated Bit Error Ratio(IBERT)對高速串行通信測試,不僅使測試更加方便快捷,更有利于快速檢測、改善FPGA板卡上高速吉比特收發(fā)器的通信質(zhì)量。
測試使用Xilinx Virtex-7開發(fā)套件和中國科學(xué)研究院計(jì)算所SOC組自制的FMC(FPGA Mezzanine Card)[2]板卡,通過IBERT對FMC上的高速串行吉比特收發(fā)器(GTX)進(jìn)行相應(yīng)測試,并進(jìn)行比較,總結(jié)得出有效快速找到改善通信質(zhì)量調(diào)試參數(shù)的方法。
IBERT是Xilinx提供用于調(diào)試FPGA芯片內(nèi)高速串行接口比特誤碼率性能的工具,具備實(shí)時(shí)調(diào)整高速串行接口的多種參數(shù)、與系統(tǒng)其他模塊通信及測量多通道誤比特率等功能,支持的高速串行標(biāo)準(zhǔn)包括:PCI Express、Rapid IO、千兆以太網(wǎng)、XAUI 等[3]。本測試使用Xilinx的ISE套件里面的Chip Scope Pro Analyzer來查看并調(diào)試IBERT的誤碼率以及觀察相應(yīng)的2 D眼圖。Virtex-7高速串行模塊GTX接收器,線速率從500 Mbit·s-1到 12.5 Gbit·s-1。具有如下特性[4]:(1)靈活編碼形式,8B/10B、64B/66B、64B/67B。(2)多種發(fā)射的去加重和接收的均衡技術(shù),使之有著最佳的信號完整性。(3)偽隨機(jī)位序列(PRBS)的產(chǎn)生和檢測。(4)高精度低抖動(dòng)的時(shí)鐘控制。(5)符合常用標(biāo)準(zhǔn),如 PCI- Express,OC - 48,OTU -1/2/3/4,XAUI,CAUI,XLAUI。
測試軟件版本為Xilinx ISE 14.7,開發(fā)板套件為Xilinx Virtex-7 FPGA VC707。測試參數(shù)為GTX的誤碼率以及眼圖。
首先打開ISE套件中的軟件Core Generator,新建工程,根據(jù)開發(fā)板套件VC707選定相應(yīng)的器件類型和封裝、速度。其次在IP Catalog里面查找到IBERT,選中IBERT 7 Series GTX,開始IBERT核的自定義配置。
根據(jù)Xilinx VC707官方手冊,配置系統(tǒng)時(shí)鐘頻率、約束引腳,并且選中產(chǎn)生相應(yīng)的Bitstream。再配置各個(gè)GTX的獨(dú)立時(shí)鐘源,選擇傳輸?shù)淖畲笏俣?0 Gbit·s-1[5]。為了測試一致,因此每個(gè)GTX選擇一致的時(shí)鐘源。最后產(chǎn)生配置好的相應(yīng)Bitstream文件。配置好IBERT的全部Summary如圖1所示。
圖1 IBERT配置summary
測試使用光纖適配器。以JTAG方式啟動(dòng)開發(fā)板,調(diào)整相應(yīng)VC707開發(fā)板上的撥碼開關(guān);連接光纖傳輸線,并配置相對應(yīng)的GTX光纖適配器。打開Chip Scope Pro Analyzer,點(diǎn)擊 JTAG Chain,查找到相應(yīng)的FPGA,在Device內(nèi)進(jìn)行相應(yīng)的配置,即選擇之前生成的Bitstream文件。當(dāng)FPGA下載完相應(yīng)的Bitstream文件后,即可查看IBERT Console窗口,可在該窗口中看到每個(gè)GTX相應(yīng)的參數(shù)狀態(tài)和設(shè)置。
在Chip Scope Pro Analyzer的IBERT Console窗口中,如圖2所示,有4個(gè)標(biāo)簽頁:MGT/BERT Settings、DRPSettings、Port Settings、RX Margin Analysis。對于本測試來說,只需要關(guān)注Virtex-7各個(gè)GTX端口的誤碼率,并快速找到最佳改善通信質(zhì)量的相應(yīng)參數(shù)即可,所以這里只關(guān)心 MGT/BERT Settings和 RX Margin Analysis。其他兩項(xiàng)可以參考Xilinx的官方文檔[6]。
圖2 IBERT Console窗口
(1)MGT/BERT Settings。它由3部分組成:MGT Settings、BERT Settings和 Clocking Settings。其中 MGT Settings 里顯示每個(gè) GTX Alias、MGT Link Status、PLL Status,Loopback Mode、TX Diff Output Swing、TX Pre -Cursor、TX Post-Cursor等。而 BERT Settings中有TX、RX端傳輸PRBS(偽隨機(jī)位序列)模式,RX端的接收數(shù)據(jù)總數(shù)、誤碼個(gè)數(shù)以及誤碼率。Clocking Settings中主要是TX、RX端口參考時(shí)鐘頻率的實(shí)時(shí)狀態(tài)。
(2)RX Margin Analysis。主要針對TX Diff Output Swing、TX Pre- Cursor、TX Post-Cursor大量相關(guān)數(shù)據(jù)組合,測試并查看某個(gè)GTX端口的1D Bathtub和2D眼圖。在高速信號傳輸過程中,存在信道插值損耗,并且隨著信號頻率增加,損耗增大。故而信道高頻部分的損耗遠(yuǎn)大于低頻部分。另外信道的不連續(xù)性,造成了傳輸信號反射,因而造成信號在傳輸過程中放大或者丟失[7]。所以在Xilinx 7系列的FPGA中采用了多種改善通信質(zhì)量的技術(shù)。
(3)TX(GTX的發(fā)送)端口。其采用De-emphasis(去加重),對要傳輸?shù)母咚傩盘栠M(jìn)行預(yù)處理,從而減少高頻信號在傳輸過程中的損耗,具體處理流程如圖3所示。
圖3 De-emphasis配置模塊
De-emphasis主要有pre-cursor emphasis和post-cursor emphasis兩種調(diào)節(jié),分別對傳輸信號的波形前半部分和后半部分進(jìn)行相應(yīng)的加重處理。這正對應(yīng)于IBERT Console窗口上的TX Pre-Cursor和TX Post- Cursor。
(4)在RX端口,它采用了DEF(動(dòng)態(tài)反饋均衡技術(shù))和CTLE(線性均衡補(bǔ)償技術(shù))來還原初始信號。為簡化調(diào)節(jié)信號質(zhì)量,這兩種參數(shù)在Xilinx 7系列的FPGA中自動(dòng)調(diào)節(jié)并優(yōu)化到最佳配置。根據(jù)Xilinx官方推薦,測試所關(guān)心的參數(shù)為Loopback Mode、TX Diff Output Swing、TX Pre-Cursor、TX Post-Cursor 4 種參數(shù)。其中 Loopback Mode有 None、Near-End PCS、Near-End PMA、Far-End PCS、Far-End PMA。這4種近端或遠(yuǎn)端回環(huán)模式,針對某一個(gè)GTX而設(shè)定有效,來檢測它自身的誤碼率和通信質(zhì)量狀況。測試中而其他參數(shù)取值如下:
1)TX Diff Output Swing[mV](250、350、450、550、650、750、850、950、1000)。
2)TX Post- Cursor[dB](0.00、0.45、0.92、1.41、1.94、2.50、3.10、3.74、4.44、5.19、6.94、7.96、9.12、10.46、12.96)。
3)TX Pre- Cursor[dB](0.00、0.45、0.92、1.41、1.67、2.21、3.41、4.08、4.81、5.60、6.02)。
由于3種參數(shù)的中間值并不是固定步長,且他們在Xilinx中為固定值,故每個(gè)可調(diào)參數(shù)的取值數(shù)都不相同。
在測試過程中,每個(gè)GTX都有相應(yīng)狀態(tài)指示,當(dāng)上面通道顯示綠色,說明該GTX工作正常。Loopback Mode設(shè)置為NONE,并且每次調(diào)整相應(yīng)的參數(shù)后,為使測試更精準(zhǔn),必須Reset重置相應(yīng)的GTX。圖4~圖6表示TX Diff Output Swing、TX Pre-Cursor和 Post-cursor只改變一個(gè)參數(shù)值,其余兩個(gè)參數(shù)值固定時(shí),測得的GTX誤碼率的數(shù)量級值。
圖4 TX Diff Output Swing(Pre-cursor 1.67 dB,Post-cursor 0.68 dB)測試結(jié)果
圖5 TX Pre-cursor(Swing 850 mV,Post-cursor 0.68 dB)測試結(jié)果
圖6 TX Post-cursor(Swing 850 mV,Pre-cursor 1.67 dB)測試結(jié)果
如圖6所示,若某GTX的誤碼率為9.097e-013,在測試統(tǒng)計(jì)中,只取誤碼率數(shù)量級的數(shù)值,如前面誤碼率值中的013作為統(tǒng)計(jì)標(biāo)準(zhǔn),故而數(shù)量級數(shù)值越大,誤碼率越小,通信質(zhì)量越好。Y17和Y18等分別代表每個(gè)GTX通道的測量結(jié)果,圖中測試了6個(gè) GTX的誤碼率。
通過測試表明,在改善通信質(zhì)量時(shí),首先是要調(diào)節(jié)TX Post-Cursor,選取一個(gè)恰當(dāng)?shù)闹虚g值,然后再調(diào)節(jié)TX Pre-Cursor,從而使通信質(zhì)量達(dá)到最優(yōu)點(diǎn),而對于TX Diff Output Swing,一般情況選擇850 mV。在 RX(接收)端,由于采用的自動(dòng)均衡技術(shù),測試中并沒有修改相應(yīng)的參數(shù),而接收到的信號質(zhì)量不需要人工干預(yù)也能取得較好效果。對于GTX,如果誤碼率達(dá)到10~9的數(shù)量級,表明該GTX端口信號傳輸質(zhì)量可靠。另外在GTX的測試2D眼圖中,整個(gè)UI范圍采樣掃描測試時(shí),信號眼圖的眼睛張得越大,信道質(zhì)量也就越好,但還要結(jié)合相應(yīng)的誤碼率,從而調(diào)整參數(shù)得到最佳信號優(yōu)化值。通過大量測試并根據(jù)Xilinx官方文檔,在IBERT測試Virtex-7 GTX上有了一定的經(jīng)驗(yàn),為后續(xù)千兆以太網(wǎng)的實(shí)現(xiàn)和測試奠定了基礎(chǔ)。
[1]田耕,徐文波.Xilinx FPGA開發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2008.
[2]Raj Seelam.I/O design flexibility with the FPGA Mezzanine Card(FMC)wp315[M].Tex USA:Xilinx Corporation,2009.
[3]徐妍,馬麗珍,張麗.2012.IBERT在 FPGA中的應(yīng)用[J].電子科技,2012,25(7):103 -105.
[4]Xilinx Corporation.Series FPGAs GTX/GTH transceivers UG476[M].USA:Xilinx Corporation,2014.
[5]Xilinx Corporation.VC707 evaluation board for the Virtex - 7 FPGA user guide UG885[M].USA:Xilinx Corporation,2013.
[6]Xilinx Corporation.Chip scope pro - software and cores user guide UG029[M].USA:Xilinx Corporation,2010.
[7]Harry Hu.Equalization for high - speed serial interfaces in Xilinx 7 series FPGA transceivers[M].USA:Xilinx Corporation,2010.