郭 靜
(1.重慶工商大學(xué) 人工智能學(xué)院,重慶 400067;2.檢測控制集成系統(tǒng)重慶市工程實(shí)驗(yàn)室,重慶 400067)
國防、軍工等領(lǐng)域的數(shù)據(jù)量爆炸式增長使得對信號(hào)處理系統(tǒng)的運(yùn)算處理速度、數(shù)據(jù)帶寬、傳輸速率和通道數(shù)量等方面的要求愈來愈高。隨著硬件設(shè)計(jì)工藝的發(fā)展以及為了滿足各行業(yè)對高速數(shù)據(jù)傳輸?shù)膽?yīng)用需求,各大品牌主流FPGA 產(chǎn)品都在芯片中集成了多路高速串行收發(fā)器[1],這種高速串行收發(fā)器可以用于實(shí)現(xiàn)串行Rapid IO(SRIO)、PCIe以及以太網(wǎng)等標(biāo)準(zhǔn)的高速串行總線,也可以用于實(shí)現(xiàn)簡單的自定義傳輸協(xié)議,具有很大的應(yīng)用靈活性[2]。本文使用Xilinx公司的FPGA及其集成的高速串行收發(fā)器設(shè)計(jì)了一種多路高速互連信息處理系統(tǒng)。該系統(tǒng)采用VPX標(biāo)準(zhǔn)和SRIO交換技術(shù),提供多路高速FPGA GHT(Gigabit Transceiver)高速收發(fā)器信號(hào)以及多路千兆網(wǎng)絡(luò)接口實(shí)現(xiàn)模塊板內(nèi)外的高速數(shù)據(jù)交互,具有處理能力強(qiáng)、數(shù)據(jù)吞吐量大的特點(diǎn),獲得了良好的實(shí)踐效果。該系統(tǒng)可廣泛應(yīng)用于雷達(dá)、通信、電子對抗、聲吶等領(lǐng)域。
基于VPX的多路高速互連處理系統(tǒng)的核心組件,采用3片Xilinx公司Virtex-7 FPGA 690T芯片用于接口連接與信號(hào)處理,1片飛思卡爾T2080高性能PPC(Power Architecture PC)處理器用于系統(tǒng)控制及數(shù)據(jù)處理,同時(shí)使用1片第二代SRIO交換芯片CPS1432,用于板內(nèi)外高速互連,通過VPX接口與系統(tǒng)組成數(shù)據(jù)傳輸網(wǎng)絡(luò),以實(shí)現(xiàn)數(shù)據(jù)傳輸和處理的高效結(jié)合。其中FPGA芯片功能強(qiáng)大,資源豐富,在本設(shè)計(jì)中實(shí)現(xiàn)的主要功能是板間10 Gbps高速GTH信號(hào)通信。PPC配置了1通道DDR3 SDRM,大大提高了處理性能,還設(shè)計(jì)了1路4x SRIO到CPS1432芯片交換,速度可達(dá)到5 Gbps,從而也提高板內(nèi)各芯片之間的通信能力[3]。系統(tǒng)還設(shè)計(jì)了3路千兆網(wǎng)絡(luò)接口用于測試和數(shù)據(jù)傳輸,其中1路 1000 Base-T 到前面板,2路1000 Base-X到VPX接口。系統(tǒng)的各個(gè)主芯片均連接4 GB的DDR3, 擴(kuò)展了板載內(nèi)存,各個(gè)主芯片還連接了128 MB的Nor Flash,用于數(shù)據(jù)處理和重要信息存儲(chǔ),極大地?cái)U(kuò)展了系統(tǒng)的存儲(chǔ)器容量以滿足不同的應(yīng)用需求[4]。系統(tǒng)背板采用6U尺寸的VPX20連接器,系統(tǒng)前面板使用J63-31連接器,主要用于FPGA_JTAG調(diào)試以及min串口與網(wǎng)絡(luò)支持PPC調(diào)試,前面板還設(shè)計(jì)了8個(gè)LED指示燈,用于反應(yīng)系統(tǒng)工作狀態(tài)。在板上控制器(OBC)方面,系統(tǒng)采用Xilinx公司XC3S1400AN芯片來管控整板工作狀態(tài)以及做3片F(xiàn)PGA的主機(jī)端加載。整個(gè)系統(tǒng)互連原理框圖如圖1 所示。
Virtex-7系列FPGA作為業(yè)內(nèi)高端高性能FPGA產(chǎn)品,在邏輯規(guī)模、串行I/O帶寬、抖動(dòng)性、收發(fā)器、DSP性能和低功耗等方面表現(xiàn)突出[5],可以減少整個(gè)嵌入式系統(tǒng)內(nèi)器件使用的總數(shù)量,從而降低系統(tǒng)成本以及互連和設(shè)計(jì)方面的復(fù)雜度,在高速網(wǎng)絡(luò)設(shè)備中得到了越來越廣泛的應(yīng)用[6]。Xilinx公司的Virtex-7FFGA690T芯片提供3 600個(gè)DSPSlices、690 k邏輯單元、600個(gè)IO口。該芯片擁有80個(gè)GTH通道,其中每個(gè)GTH通道有一個(gè)GTH(TX)發(fā)送模塊和一個(gè)GTH(RX)接收模塊,收發(fā)最大速率可達(dá)13.1 Gbps。該芯片還支持Gen2SRIO和最大2組64位DDR3控制器。
基于VPX的多路高速互連處理系統(tǒng)中,F(xiàn)PGA設(shè)計(jì)是關(guān)鍵技術(shù)之一。為了實(shí)現(xiàn)板間多路10 Gbps高速GTH信號(hào)通信,如FPGA功能框圖(見圖2)所示,將板外信號(hào)通過VPX總線接入FPGA的32個(gè)GTH通道,再經(jīng)過GTH通道選擇模塊和信道化算法模塊進(jìn)行傳輸和處理。處理后的信號(hào)可通過SRIO交換技術(shù)傳出板外,也可傳入PPC進(jìn)行數(shù)據(jù)處理或CRT邏輯仿真。系統(tǒng)中OBC的Debug模塊連接FPGA的4個(gè)GTH通道可對FPGA進(jìn)行主機(jī)端加載。板內(nèi)信號(hào)通過FPGA的4個(gè)GTH發(fā)送模塊傳入光纖接口光模塊,可供板外其他系統(tǒng)使用。
本系統(tǒng)選用3片該芯片進(jìn)行互連(見圖1),再與SRIO交換芯片和VPX總線連接器合理連接,設(shè)計(jì)細(xì)節(jié)如下:
(1) 總共56路GTH(TX)和96路GTH(RX)連接到VPX接口,板內(nèi)32路GTH。其中,F(xiàn)PGA1有32路GTH(RX)連接到VPX連接器P2口,12路GTH(TX)連接到P4口,16路GTH(TX)連接到FPGA3芯片,4路GTH(TX)連接到光模塊SNAP12。FPGA2有32路GTH(RX)連接到VPX連接器P3口,12路GTH(T)連接到P4口,16路GTH(TX)連接到FPGA3芯片,4路GTH(TX)連接到光模塊SNAP12。FPGA3有32路GTH(RX)連接到VPX連接器P5口,32路GTH(TX)連接到P6口,16路GTH(RX)連接到FPGA1芯片,16路GTH(RX)連接到FPGA2芯片,4路GTH(TX)連接到光模塊SNAP12。各路傳輸速率可達(dá)10 Gbps;
(2) 每片F(xiàn)PGA掛接一組64位DDR3存儲(chǔ)器,容量為4 GB,速率800 Mbps;
(3) 每片F(xiàn)PGA外掛一片NorFlash,容量為128 MB,用于存放系數(shù);
(4) 每片F(xiàn)PGA有一組4xSRIO連接到CPS1432,速度可達(dá)到5 Gbps;
(5) 另外有一片F(xiàn)PGA外掛兩片18位QDR存儲(chǔ)器,總位寬36位。
該模塊大量使用GTH高速接口,為滿足不同的應(yīng)用場景,其接口也需滿足不同速率配置需求,這就對FPGA GTH參考時(shí)鐘的設(shè)計(jì)提出巨大的挑戰(zhàn)。因?yàn)閂irtex-7 FPGA提高了集成度,故其高速串行收發(fā)器不再獨(dú)占一個(gè)單獨(dú)的參考時(shí)鐘,而是以Quad來對串行高速收發(fā)器進(jìn)行分組[7],1個(gè)COMMOM 和4個(gè)串行高速收發(fā)器組成1個(gè)Quad,每個(gè)串行高速收發(fā)器稱為1個(gè)Channel。也即,1個(gè)Quad包含1個(gè)時(shí)鐘模塊CMT(Clock Management Tiles)、4個(gè)頻率范圍為1.65 GHz~5.16 GH的Channel PLL(CPLL)和1個(gè)頻率范圍為8.0 GHz~13.1 GHz的Quad PLL(QPLL)。當(dāng)GTH的線速度非常高,其CPLL的頻率范圍已無法滿足需求時(shí),QPLL就配合其工作。每個(gè)Quad都有兩個(gè)專用的差分參考時(shí)鐘輸入引腳(MGTREFCLK0 和MGTREFCLK1)可以連接到外部時(shí)鐘源。根據(jù)Xilinx設(shè)計(jì)資料以及設(shè)計(jì)軟件提供的信息,對本系統(tǒng)上FPGAGTH時(shí)鐘設(shè)計(jì)需求進(jìn)行了統(tǒng)計(jì)如表1所示,最終確定GTH參考時(shí)鐘MGTREFCLK0選擇125 MHz,MGTREFCLK1選擇200 MHz,即可滿足不同接口速率對時(shí)鐘的需求。
表1 GTH接口數(shù)量時(shí)鐘需求統(tǒng)計(jì)(單位:Hz)Table 1 Statistics of clock requirements for the number of GTH interfaces (Hz)
Xilinx FPGA可滿足高速同步電路對時(shí)鐘觸發(fā)沿的苛刻需求。對FPGA的設(shè)計(jì)而言,最好的時(shí)鐘設(shè)計(jì)方案是采用專用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)單個(gè)全局時(shí)鐘,并用后者去控制設(shè)計(jì)中的每個(gè)觸發(fā)器。全局時(shí)鐘資源作為專用的布線資源,其處于全銅布線層上,故使用全局時(shí)鐘資源不會(huì)影響芯片的其他布線資源,可大量使用。Virtex-7 FPGA 690T集成了專用時(shí)鐘資源和時(shí)鐘管理模塊。它含有20個(gè)CMT,每個(gè)CMT由MMCM(Mixed-Mode Clock Manager) 混合時(shí)鐘管理器和PLL(Phase-Locked Loop)鎖相環(huán)組成[8]。每個(gè)CMT負(fù)責(zé)管理其所在Quad中的4個(gè)CPPL和1個(gè)QPLL。每個(gè)CMT需要通過IBUFG原語調(diào)用[9]。每個(gè)Quad有兩個(gè)外部差分參考時(shí)鐘源,每個(gè)外部參考時(shí)鐘的輸入必須經(jīng)過IBUFDS_GTE2原語之后才能使用。對于每一個(gè)Quad來說,可以選擇兩個(gè)不同的參考時(shí)鐘,每一個(gè)CHANNEL的接收端和發(fā)送端都可以獨(dú)立選擇參考時(shí)鐘。對于第一個(gè)外部參考時(shí)鐘(MGTREFCLK0),將IBUFDS_GTE2輸出連接到單個(gè)Quad的COMMON和4個(gè)CHANNEL。類似地,對于第二個(gè)外部參考時(shí)鐘(MGTREFCLK1),將IBUFDS_GTE2輸出連接到這個(gè)Quad的COMMON和4個(gè)CHANNEL。然后用戶可以通過相關(guān)參數(shù)的設(shè)置動(dòng)態(tài)選擇參考時(shí)鐘源,這種方式就能實(shí)現(xiàn)GTH多參考時(shí)鐘設(shè)計(jì)。又因Virtex-7 FPGA GTH時(shí)鐘具有共享能力,即Quad(n-1)及Quad(n+1)可以使用Quad(n)的參考時(shí)鐘作為其參考時(shí)鐘,結(jié)合本系統(tǒng)的需求,在考慮PCB布局布線、減少晶振數(shù)量的原則下,對本系統(tǒng)的3片F(xiàn)PGA GTH共享時(shí)鐘設(shè)計(jì)如圖3和圖4所示。
每片F(xiàn)PGA均由4片125 MHz的晶振[10]和4個(gè)Clock Buffer來配合管理GTH時(shí)鐘。將FPGA1和FPGA2的Quad210~217中的32路接收端口連接至VPX連接器,Quad118~116中的12路發(fā)送端口連接至VPX連接器,Quad115和114中的4路發(fā)送端口分別連接至SRIO和光模塊,Quad110~113中的16路發(fā)送端口連接至FPGA3。將FPGA3的Quad212~219中的32路發(fā)送端口連接至VPX連接器,Quad214~217中的16路發(fā)送端口連接至FPGA1,Quad210~213中的16路發(fā)送端口連接至FPGA2,Quad112~119中的32路接收端口連接至VPX連接器,Quad110和111中的4路發(fā)送端口分別連接至光模塊和SRIO。從這種設(shè)計(jì)中能看出,F(xiàn)PGA3中GTH的Transceiver存在復(fù)用的情況,即GTH Quad 214~217的16路接收端口連接至FPGA1,16發(fā)送端口連接至VPX連接器;GTH Quad 212~213的8路接收端口連接至FPGA2,8發(fā)送端口連接至VPX連接器。目前,對GTH的Transceiver收發(fā)獨(dú)立使用僅考慮速率一致的情況,同一Transceiver收發(fā)獨(dú)立使用且速率不一致的情況待驗(yàn)證。
如圖5所示,本系統(tǒng)板載FPGA1、FPGA2、FPGA3均通過主機(jī)端加載方式實(shí)現(xiàn)邏輯代碼加載。邏輯代碼通過網(wǎng)絡(luò)傳輸至T2080,T2080將數(shù)據(jù)通過LB總線經(jīng)OBC下載至Nor Flash,上電后,OBC通過FPGA1、FPGA2、FPGA3(FPGA1、2、3均配置為Slave SelectMap模式)的專用加載接口,將代碼加載進(jìn)FPGA。
本文研制的信息處理系統(tǒng)的測試在實(shí)驗(yàn)室環(huán)境下進(jìn)行。測試所需的設(shè)備包括2塊信息處理待測系統(tǒng)板、1臺(tái)CHASSIS-VPX-4U-A測試機(jī)箱、1臺(tái)測試計(jì)算機(jī)、1個(gè)USB-RS232串口、千兆交換機(jī),標(biāo)準(zhǔn)的RS232轉(zhuǎn)換成mini串口調(diào)試線纜、標(biāo)準(zhǔn)千兆網(wǎng)線以及10GVPX連接跳線。通過命令測試方法,本系統(tǒng)經(jīng)過了主機(jī)端加載測試、存儲(chǔ)測試、網(wǎng)絡(luò)測試、FPGA板內(nèi)板間GTH測試、FPGA DDR測試、FPGA QDR測試、Rapid IO板內(nèi)板間測試等共16項(xiàng)功能測試。此處僅介紹FPGA板內(nèi)板間GTH測試。為了測試系統(tǒng)FPGA板內(nèi)GTH是否工作正常,將系統(tǒng)板PPC與3片F(xiàn)PGA采用圖6方式連接。PPC通過串口發(fā)送一條指令,使FPGA1和FPGA2通過板內(nèi)的GTH(X16)不停地發(fā)送數(shù)據(jù)到FPGA3,F(xiàn)PGA3收到數(shù)據(jù)后,與本地?cái)?shù)據(jù)進(jìn)行比較。比較結(jié)果反饋給PPC,并通過串口顯示出來。為了測試系統(tǒng)FPGA板間GTH是否工作正常,將測試機(jī)箱插入兩塊待測系統(tǒng)板,將兩塊待測系統(tǒng)板通過VPX跳線互連起來,也即將一塊系統(tǒng)板的TX接到另一塊系統(tǒng)板的RX(圖7)。由于跳線有限,故一次只能測X8。板間GTH測試時(shí),將PPC通過串口發(fā)送一條指令,使系統(tǒng)板1通過板間的GTH不停地接收系統(tǒng)板2發(fā)送的數(shù)據(jù), 系統(tǒng)板1收到數(shù)據(jù)后,與本地?cái)?shù)據(jù)進(jìn)行比較。比較結(jié)果反饋給PPC,并通過串口顯示出來。
測試計(jì)算機(jī)可以通過系統(tǒng)PCB測試板與模塊SGMII建立網(wǎng)絡(luò)連接,4路4x SRIO到VPX 連接器P1口,4路4xSRIO分別連到3片F(xiàn)PGA 和T2080處理器,它們的速度均能達(dá)到5 Gbps。系統(tǒng)板內(nèi) 32路GHT ibert測試結(jié)果如圖8所示,可看出每路通道能正常通信,并且均能達(dá)到10 Gbps的數(shù)據(jù)傳輸速率。其他所有FGPA GTH的測試結(jié)果圖與該圖相似,也分別能看出3片F(xiàn)PGA每路GTH速率均可達(dá)10 Gbps。此處不再提供全部測試結(jié)果圖。
基于VPX的多路高速互連信息處理系統(tǒng)具有高帶寬、高速率、低誤碼率數(shù)據(jù)傳輸能力。系統(tǒng)采用VPX結(jié)構(gòu)標(biāo)準(zhǔn)和SRIO2.1總線,板載了3片F(xiàn)PGA芯片,通過嚴(yán)謹(jǐn)?shù)卦O(shè)計(jì)和仿真,最后再加載測試。該系統(tǒng)在6U尺寸內(nèi)很好地實(shí)現(xiàn)了板間96路10 Gbps高速數(shù)據(jù)信號(hào)接收、56路10 Gbps高速數(shù)據(jù)信號(hào)發(fā)送、12路10 Gbps高速數(shù)據(jù)光信號(hào)發(fā)送,板內(nèi)32路10 Gbps高速數(shù)據(jù)信號(hào)互連。同時(shí)該系統(tǒng)10 Gbps數(shù)據(jù)傳輸通路可滿足軍工級苛刻環(huán)境應(yīng)用要求。