王松明
(中國電子科技集團(tuán)公司第十研究所,四川 成都 610036)
高速數(shù)據(jù)交換的FPGA實現(xiàn)
王松明
(中國電子科技集團(tuán)公司第十研究所,四川 成都610036)
針對數(shù)字信號處理系統(tǒng)前端數(shù)據(jù)采集與后端信號處理之間的數(shù)據(jù)流傳輸效率問題,介紹了基于RapidIO協(xié)議和Aurora協(xié)議在FPGA上實現(xiàn)高速數(shù)據(jù)交換的設(shè)計方案。該交換模塊采用Aurora協(xié)議與光纖傳輸結(jié)合實現(xiàn)高速數(shù)據(jù)采集的點到點通信,并利用RapidIO協(xié)議的高效率解決數(shù)據(jù)高速交換問題。驗證結(jié)果表明該方法在數(shù)據(jù)傳輸效率上達(dá)到了預(yù)先設(shè)計指標(biāo),其對提高數(shù)字信號處理系統(tǒng)處理帶寬、改進(jìn)系統(tǒng)性能具有較大的意義。
FPGA;RapidIO;Aurora;交換
隨著模數(shù)轉(zhuǎn)換器件以及各種信號處理器件性能的提高,復(fù)雜的高速實時數(shù)字信號處理系統(tǒng)已經(jīng)可以實現(xiàn)[1],相應(yīng)的板間及機(jī)箱間的數(shù)據(jù)交互要求越來越高,連接各種器件的總線問題成為實現(xiàn)高性能數(shù)字信號處理系統(tǒng)的關(guān)鍵。
為有效解決系統(tǒng)連接的瓶頸、實現(xiàn)互連架構(gòu)的可重構(gòu),本文介紹了一種基于Aurora協(xié)議和RapidIO總線技術(shù)的數(shù)字信號處理系統(tǒng)高速數(shù)據(jù)交換設(shè)計方案,主要技術(shù)指標(biāo)如下:
(1)支持18個通道前端高速數(shù)據(jù)輸入,單通道最大支持6.5 Gb/s的傳輸,數(shù)據(jù)輸入總帶寬小于30 Gb/s;
(2)支持RapidIO 2.2標(biāo)準(zhǔn),物理層采用4X串行RapidIO;
(3)支持4路4X RapidIO實現(xiàn)板卡內(nèi)通信,單路數(shù)據(jù)率10 Gb/s,總帶寬40 Gb/s;
(4)支持3路4X RapidIO實現(xiàn)板卡間通信,單路數(shù)據(jù)率10 Gb/s,總帶寬30 Gb/s;
(5)支持2路4X RapidIO實現(xiàn)機(jī)箱間通信,單路數(shù)據(jù)率為10 Gb/s,總帶寬為20 Gb/s。
數(shù)字信號處理系統(tǒng)的前端通常數(shù)據(jù)流量大且是點對點傳輸,Aurora IP用戶接口簡單并支持與光纖的無縫連接[2],是實現(xiàn)與數(shù)字信號處理系統(tǒng)前端數(shù)據(jù)互連的最佳選擇之一。
Aurora協(xié)議是由Xilinx公司提供的一個開放、免費(fèi)的鏈路層協(xié)議,可以用來進(jìn)行點對點的串行數(shù)據(jù)傳輸。Aurora IP內(nèi)部封裝了RocketIO硬核,將RocketIO控制結(jié)構(gòu)轉(zhuǎn)化為簡單的用戶接口。同時,協(xié)議自帶的信道初始化與時鐘校正等功能有效保證了點對點傳輸?shù)母咚贁?shù)據(jù)同步,能有效解決數(shù)據(jù)傳輸?shù)钠款i。
Aurora 64B/66B Core結(jié)構(gòu)如圖1所示[3],主要功能模塊如下:
(1)通道邏輯:收發(fā)器初始化、控制字符編解碼、通道數(shù)據(jù)錯誤檢測;
(2)全局邏輯:初始化時通道對齊;
(3)接收側(cè)用戶接口:從通道中接收數(shù)據(jù)傳輸?shù)綉?yīng)用、接收流量控制;
圖1 Aurora 64B/66B Core結(jié)構(gòu)圖
(4)發(fā)送側(cè)用戶接口:從應(yīng)用中接收數(shù)據(jù)并發(fā)送出去,發(fā)送流量控制及時鐘補(bǔ)償。
本設(shè)計需要實現(xiàn)9路4X RapidIO接口和18路Aurora協(xié)議接口,可選擇的最佳FPGA是Xilinx公司的Virtex7系列,具體型號選擇XC7VX690T。XC7VX690T有80個高速串行接口,特別適合高速串行互連設(shè)計。本設(shè)計需要實現(xiàn)54個高速串行接口,采用一片XC7VX690T就可以滿足設(shè)計需求。
IP核的參考時鐘不能有過大的抖動,考慮到本設(shè)計IP核傳輸數(shù)據(jù)速率都比較高,所以使用高精度的差分時鐘用作IP核的參考時鐘。根據(jù)Xilinx公司發(fā)布的用戶指南,一組差分時鐘只能給3個Bank或12個GTX/GTH作為參考時鐘[4]。FPGA參考時鐘設(shè)計如圖 2所示,Aurora IP需要2組差分時鐘,用于機(jī)箱間通信的RapidIO IP需要1組差分時鐘,用于板卡內(nèi)通信的RapidIO IP需要2組差分時鐘,用于板卡間通信的RapidIO IP需要1組差分時鐘,除此之外1組差分時鐘用作系統(tǒng)處理時鐘,總共需要7組差分時鐘輸入。
圖2 FPGA參考時鐘設(shè)計
XC7VX690T總共有32個全局時鐘,即32個BUFGCTRL,這32個全局時鐘可以分配為BUFG、BUFGCE、BUFGMUX。在實際使用時需要預(yù)留幾個全局時鐘,否則在布局和布線時會出現(xiàn)布線布不開等問題。軟件生成的Aurora 64B/66B Core內(nèi)部使用了1個BUFGCE,RapidIO Core內(nèi)部使用了5個BUFG,如果直接使用IP,則僅IP就需要消耗63個全局時鐘資源,因此需要設(shè)計IP共享時鐘方案。
在4X 2.5 Gb/s線速模式下,RapidIO Core內(nèi)部gt_clk、phy_clk、log_clk、cfg_clk四個時鐘頻率均為125 MHz[5],因此在RapidIO時鐘共享設(shè)計方案時可以使用同一時鐘驅(qū)動,如圖 3所示??紤]到Core內(nèi)部時鐘不會在Core以外其他任何地方使用,為了節(jié)約全局時鐘資源,將Core代碼內(nèi)部的所有BUFG替換為BUFH,這樣每個Core可以節(jié)約4個全局時鐘資源。
Aurora 64B/66B Core時鐘共享方案如圖4所示,12個或6個Core共用一組差分時鐘作為參考時鐘,每4個Core共用一個GTXE2_COMMON,所有Aurora Core所需的初始化時鐘init_clk均來自系統(tǒng)處理時鐘。同時為了節(jié)約全局時鐘資源,將Core代碼內(nèi)部的BUFGCE替換為BUFHCE。
數(shù)據(jù)交換系統(tǒng)主要包含三個部分:Aurora IP、RapidIO IP和數(shù)據(jù)交叉電路。數(shù)據(jù)交叉電路實現(xiàn)多路Aurora接口到多路RapidIO接口的數(shù)據(jù)調(diào)度,主要功能目標(biāo)為根據(jù)系統(tǒng)應(yīng)用需求,實現(xiàn)多個Aurora端口的數(shù)據(jù)到多個RapidIO端口的任意交叉,以及不同通信目的地的RapidIO端口之間的數(shù)據(jù)任意交叉。數(shù)據(jù)交換系統(tǒng)框圖如圖 5所示。
使用異步FIFO對IP核輸入輸出接口完成數(shù)據(jù)跨時鐘域的變換,可以避免其他模塊進(jìn)行異步時鐘處理。由于Aurora 64B/66B Core與RapidIO Core數(shù)據(jù)總線大小端不一致,需要調(diào)整Aurora接口接收到的數(shù)據(jù)位序。RapidIO接口接收來自Aurora IP和其他RapidIO IP的數(shù)據(jù),組包后緩存到異步FIFO中,再以RapidIO SWrite操作發(fā)送到RapidIO目的端。
圖3 RapidIO Core時鐘共享方案
圖4 Aurora Core時鐘共享方案
圖5 數(shù)據(jù)交換系統(tǒng)框圖
可由軟件通過板卡內(nèi)的4路RapidIO接口中任意一路配置Aurora 端口和其余RapidIO端口的寄存器,通過擴(kuò)展RapidIO NWrite操作實現(xiàn)寄存器寫訪問和擴(kuò)展RapidIO NRead操作實現(xiàn)寄存器讀訪問。
對于板卡內(nèi)的RapidIO接口,每一個端口可能接收來自18路Aurora數(shù)據(jù)、來自板卡間的3路RapidIO數(shù)據(jù)以及來自機(jī)箱間的2路RapidIO數(shù)據(jù),共計23路數(shù)據(jù),經(jīng)過調(diào)度后發(fā)送到目的端。對于板卡間或機(jī)箱間的RapidIO接口,每一個端口可能接收來自18路Aurora的數(shù)據(jù),經(jīng)過調(diào)度后發(fā)送到目的端。RapidIO數(shù)據(jù)調(diào)度處理結(jié)構(gòu)如圖 6所示。
圖6 RapidIO數(shù)據(jù)調(diào)度處理結(jié)構(gòu)
RapidIO SWrite操作一次發(fā)送256 B數(shù)據(jù),基于雙FIFO的乒乓操作是通過FIFO寫邏輯與讀邏輯的相互配合,將需要緩存的數(shù)據(jù)包連貫地送到RapidIO接口進(jìn)行處理的一種控制方法。FIFO寫邏輯先選擇FIFO 0,待FIFO 0寫滿之后切換FIFO寫邏輯選擇FIFO 1,F(xiàn)IFO 1寫滿之后切換回寫FIFO 0。FIFO 0寫滿之后才會啟動FIFO讀邏輯,先選擇讀取FIFO 0數(shù)據(jù),F(xiàn)IFO 0空之后切換FIFO讀邏輯選擇FIFO 1,F(xiàn)IFO 1讀空之后切換回讀FIFO 0,如此循環(huán)。
數(shù)據(jù)調(diào)度采用周期輪詢:板卡內(nèi)的RapidIO接口可能接收23路數(shù)據(jù),編號為1,2,3,…;各路數(shù)據(jù)按照1,2,3,…的順序輪流接受服務(wù),若當(dāng)前通路有數(shù)據(jù)則輸出到RapidIO,否則跳過本輪服務(wù)。
測試過程中隨機(jī)選擇一路Aurora數(shù)據(jù),配置到板卡內(nèi)、板卡間的任意一路RapidIO輸出,通過判斷數(shù)據(jù)的一致性來驗證數(shù)據(jù)調(diào)度系統(tǒng)的正確性和有效性。通過圖 7和圖 8的對比,得到測試結(jié)果為:Aurora IP接收到的數(shù)據(jù)與RapidIO IP發(fā)送的數(shù)據(jù)完全一致。
圖7 Aurora數(shù)據(jù)接收測試
圖8 RapidIO數(shù)據(jù)發(fā)送測試
經(jīng)過測試,本設(shè)計實現(xiàn)了Aurora接口數(shù)據(jù)輸出到RapidIO接口的任意調(diào)度和RapidIO接口數(shù)據(jù)到RapidIO接口的任意調(diào)度,數(shù)據(jù)帶寬滿足要求。
本文針對高性能數(shù)字信號處理系統(tǒng)大規(guī)模實時數(shù)據(jù)交換的需求,結(jié)合具體的模塊設(shè)計,給出了一種采用Xilinx公司的FPGA芯片實現(xiàn)多端口、高速率、大規(guī)模數(shù)據(jù)交換設(shè)計。在實際的數(shù)字信號處理系統(tǒng)中,本設(shè)計取得了很好的效果。
[1] 陳麗華.多DSP并行處理技術(shù)的研究[D]. 上海:華東計算技術(shù)研究所,2004.
[2] 李維明,陳建軍,陳星锜. 基于Aurora協(xié)議的高速通信技術(shù)的研究[J]. 電子技術(shù)應(yīng)用,2013,39(12):37-40.
[3] Xilinx.Aurora 64B/66B v11.0 logiCORE IP product guide[Z]. 2015.
[4] Xilinx.7 series FPGAs GTX/GTH transceivers user guide[Z]. 2015.
[5] Xilinx. LogiCORE IP serial RapidIO Gen2 endpoint v2.0[Z]. 2013.
An implementation of high-speed communication system on FPGA
Wang Songming
(The Tenth Research Institute of China Electronic Technology Group Corporation,Chengdu 610036,China)
Aiming at the problem of data transmission efficiency between front-end data acquisition and back-end signal processing of digital signal processing system,this paper designs a high-speed communication system based on FPGA with Aurora and RapidIO protocol. This method combined optical transmission and Aurora protocol to achieve high-speed communication of front-end data acquisition,and used the RapidIO protocol’s characteristic of high efficiency to implement high-speed data switch. The test results show that the data transmission efficiency of the method could reach the preset index,and it has great meaning in improving the signal processing bandwidth and performance of digital signal processing system.
FPGA; RapidIO; Aurora; switch
TN914
A
10.19358/j.issn.1674-7720.2017.24.028
王松明.高速數(shù)據(jù)交換的FPGA實現(xiàn)J.微型機(jī)與應(yīng)用,2017,36(24):98-101.
2017-06-27)
王松明(1986-),男,碩士,工程師,主要研究方向:集成電路設(shè)計。