馬小鵬,聶本明,杭平平
(中國電子科技集團(tuán)公司第五十二研究所,浙江 杭州 311100)
近年來,國外對我國的半導(dǎo)體產(chǎn)品與技術(shù)出口進(jìn)行封鎖和禁運(yùn),使得我國多個(gè)科研領(lǐng)域都受到制約,面臨的形勢十分嚴(yán)峻,因此,電子器件產(chǎn)品的自主要求就越來越高,F(xiàn)PGA器件產(chǎn)品亦是如此。
FPGA器件作為通信、航天、軍工等領(lǐng)域的關(guān)鍵核心處理器件,被運(yùn)用于電子偵察、雷達(dá)、采集存儲(chǔ)系統(tǒng)等領(lǐng)域,是裝備制造的重要基礎(chǔ)元器件。國內(nèi)半導(dǎo)體產(chǎn)業(yè)鏈的不斷成熟完善以及芯片設(shè)計(jì)能力的不斷加強(qiáng),在一定程度上實(shí)現(xiàn)了自我供給。
在存儲(chǔ)系統(tǒng)領(lǐng)域,依賴豐富的接口類型和可編程資源,F(xiàn)PGA也得到了廣泛應(yīng)用,因此,有必要開展國產(chǎn)FPGA應(yīng)用驗(yàn)證工作,為系統(tǒng)提供有效的驗(yàn)證數(shù)據(jù),并保障系統(tǒng)的自主安全。
國內(nèi)各研制單位對國產(chǎn)FPGA器件的進(jìn)行了持續(xù)的研究和創(chuàng)新,推出了各類系列產(chǎn)品,在各個(gè)裝備系統(tǒng)中得到了推廣和應(yīng)用。總體上來看,無論是邏輯資源規(guī)模,還是對外接口種類、運(yùn)行性能,國產(chǎn)FPGA器件都達(dá)到了裝備系統(tǒng)的基本應(yīng)用需求。
現(xiàn)階段國產(chǎn)FPGA器件由于研制起步晚,在芯片研制及裝備應(yīng)用驗(yàn)證上不夠充分,與進(jìn)口器件使用相比存在使用及上裝經(jīng)歷少等問題。因此,國產(chǎn)器件的選用需要通過不斷地應(yīng)用驗(yàn)證來優(yōu)化,從而進(jìn)一步促使FPGA器件設(shè)計(jì)能力的提高和裝備應(yīng)用的推廣。
該文提出了國產(chǎn)FPGA應(yīng)用上存在的問題,給出在存儲(chǔ)刀片產(chǎn)品上的一種應(yīng)用驗(yàn)證實(shí)現(xiàn)方法,重點(diǎn)闡述在存儲(chǔ)刀片上集成國產(chǎn)FPGA器件后板卡的功能性能技術(shù)指標(biāo)情況,以供用戶和研制單位參考。
經(jīng)過對國產(chǎn)FPGA器件的技術(shù)分析與應(yīng)用情況梳理,國產(chǎn)FPGA在實(shí)際應(yīng)用時(shí)還有改進(jìn)空間,具體包括:
(1)國產(chǎn)FPGA器件本身設(shè)計(jì)存在改進(jìn)空間。
(2)使用國產(chǎn)FPGA器件后應(yīng)用電路設(shè)計(jì)尚不夠完善。高性能國產(chǎn)FPGA器件為近兩年內(nèi)才流片上市,在項(xiàng)目工程運(yùn)用時(shí)照搬進(jìn)口器件的設(shè)計(jì)思路,導(dǎo)致存在不穩(wěn)定的硬件隱患,相應(yīng)的設(shè)計(jì)要求有待明確。
(3)采用國產(chǎn)FPGA器件進(jìn)行邏輯設(shè)計(jì)時(shí),應(yīng)用設(shè)計(jì)方法沒有根據(jù)國產(chǎn)FPGA性能差異做出相應(yīng)的更改和適配,設(shè)計(jì)方法有待進(jìn)一步適應(yīng)調(diào)整和優(yōu)化。
(4)利用EDA工具開發(fā)國產(chǎn)FPGA器件有待改進(jìn)。FPGA設(shè)計(jì)特有的邏輯綜合和布局布線算法及相關(guān)配置參數(shù)與國產(chǎn)FPGA器件需要適配和修正,時(shí)序綜合報(bào)告以反映器件運(yùn)行的實(shí)際狀態(tài)。
由此可見,電子元器件FPGA的國產(chǎn)化設(shè)計(jì)實(shí)現(xiàn)和應(yīng)用驗(yàn)證工作需要繼續(xù)推進(jìn)。
為驗(yàn)證國產(chǎn)FPGA器件的功能性能,尤其是PCIe、RapidIO、DDR等IP核集成了多個(gè)高速收發(fā)器、串并IO、時(shí)鐘驅(qū)動(dòng)器等資源情況,通過構(gòu)建最簡數(shù)據(jù)采集存儲(chǔ)刀片,覆蓋芯片內(nèi)部的這些特殊資源對國產(chǎn)FPGA器件進(jìn)行驗(yàn)證。
圖1 FPGA設(shè)計(jì)框圖
存儲(chǔ)刀片F(xiàn)PGA設(shè)計(jì)框圖如圖1所示,其中PCIe接口1路作為通訊接口,用于FPGA邏輯與通用處理器進(jìn)行命令交互,另兩路PCIe可根據(jù)通道數(shù)量及帶寬需求選擇1路或者2路PCIe接口;前端用戶為RapidIO接口輸入,數(shù)據(jù)由FPGA接口邏輯代碼進(jìn)行運(yùn)算處理后傳輸至DDR3存儲(chǔ)器對應(yīng)的接口通道中,然后在DDR3緩存管理模塊控制下寫入存儲(chǔ)器中;PCIe IP通過BAR空間及AXI空間的映射,將FPGA端外掛DDR3存儲(chǔ)器直接映射在CPU的內(nèi)存空間,CPU可以直接訪問FPGA端DDR緩存中的數(shù)據(jù),進(jìn)而將數(shù)據(jù)寫入到SSD電子盤中。
PCIe接口用于實(shí)現(xiàn)PCIe數(shù)據(jù)包處理、寄存器通信及數(shù)據(jù)交互,包括接口處理模塊、寄存器模塊及PCIe IP核;主要完成與處理器之間命令交互以及響應(yīng)NVMe盤的請求數(shù)據(jù)包,其中IP核采用PCIe 3.0,接口支持x8模式,速率為8 Gbps,整個(gè)FPGA中采用兩路PCIe IP進(jìn)行通信,可以提高通信速率。
FPGA DDR3緩存管理模塊的主要功能為將前端接收到的數(shù)據(jù)或者測試數(shù)據(jù)按照通道號(hào)寫入軟件分配的對應(yīng)DDR空間中,同時(shí)根據(jù)數(shù)據(jù)流方向進(jìn)行通道數(shù)據(jù)處理、仲裁及控制管理,實(shí)現(xiàn)不同邏輯通道數(shù)據(jù)寫入不同緩存空間的功能;同時(shí)讀緩存管理模塊會(huì)根據(jù)軟件配置的讀緩存地址從給定的DDR區(qū)域中讀出數(shù)據(jù)并寫入到后級單元中。
RapidIO接口模塊遵循SRIO接口協(xié)議,完成SRIO協(xié)議幀頭和數(shù)據(jù)的組包并發(fā)送,用于實(shí)現(xiàn)RapidIO總線通信,可以接收來自其他模塊發(fā)送的RapidIO數(shù)據(jù)信息,F(xiàn)PGA內(nèi)RapidIO通道采用2路x4鏈路實(shí)現(xiàn),總線速率為6.25 Gbps,模塊中使用到的RapidIO事務(wù)類型主要為NWrite事務(wù),可以保證高效率的數(shù)據(jù)傳輸。
FPGA采用高性能器件,可滿足高速數(shù)據(jù)傳輸及處理要求,F(xiàn)PGA內(nèi)各邏輯單元及IP均通過AXI總線通信,F(xiàn)PGA端通過PCIe BAR空間及AXI空間的映射,實(shí)現(xiàn)了FPGA內(nèi)存對CPU可見,從而CPU內(nèi)存與FPGA緩存之前數(shù)據(jù)搬移建立了高速通道。另外,F(xiàn)PGA與CPU之間采用PCIe MSI中斷,從而提高數(shù)據(jù)傳輸及命令處理效率。
在邏輯設(shè)計(jì)過程中,通過增加數(shù)據(jù)處理位寬,降低工作頻率,減少時(shí)鐘域,多流水線處理等方法來優(yōu)化工程代碼,通過這些存儲(chǔ)刀片設(shè)計(jì)工作,完成了基于國產(chǎn)FPGA器件的驗(yàn)證平臺(tái)構(gòu)建,包含了多種類型的高性能接口,可以運(yùn)用大量的邏輯資源來充分驗(yàn)證FPGA的功能性能指標(biāo)。
在FPGA開發(fā)過程中,利用國產(chǎn)EDA工具及補(bǔ)丁包的方式對FPGA內(nèi)部高速總線IP核、PCIe IP核以及DDR控制器IP核等相關(guān)參數(shù)進(jìn)行適配調(diào)整,以優(yōu)化國產(chǎn)器件在不同環(huán)境下的特性參數(shù),提高國產(chǎn)FPGA適應(yīng)能力。
存儲(chǔ)刀片內(nèi)FPGA資源使用情況如表1所示,其中高速總線收發(fā)器GTH、觸發(fā)器、時(shí)鐘資源BUFG及PCIe IP等資源使用較充分,其他資源均還有較多余量,對于后續(xù)功能及性能提升具有較大空間,整個(gè)設(shè)計(jì)幾乎遍歷了所有器件資源種類。
表1 FPGA資源使用情況統(tǒng)計(jì)
采用EDA工具編譯設(shè)計(jì)程序,可根據(jù)FPGA內(nèi)部資源、時(shí)鐘及IO等使用情況分析出FPGA器件的大致功耗,如表2所示。其中高速收發(fā)器GTH、動(dòng)態(tài)功耗以及IO功耗較高,其余資源功耗較小,整片F(xiàn)PGA功耗預(yù)估為26 W。FPGA器件內(nèi)部各個(gè)電源的功耗中,內(nèi)核、MGT及輔助電源占比較多,其余占比較小。
表2 FPGA功耗分布
國產(chǎn)FPGA器件一般采用反向設(shè)計(jì),功能性能相對于進(jìn)口FPGA器件會(huì)存在一定差距。為了將國產(chǎn)FPGA器件應(yīng)用于存儲(chǔ)刀片并能夠達(dá)到同等的設(shè)計(jì)效果,需要對芯片的供電電路、時(shí)鐘源穩(wěn)定性、散熱處理以及邏輯優(yōu)化等方面進(jìn)行優(yōu)化設(shè)計(jì)及適配。
4.2.1 時(shí)鐘優(yōu)化及適配
國產(chǎn)FPGA器件時(shí)鐘包括邏輯時(shí)鐘輸入和高速總線參考時(shí)鐘輸入,相對應(yīng)進(jìn)口FPGA器件,其對時(shí)鐘信號(hào)較為敏感,對時(shí)鐘抖動(dòng)、偏移等要求較高。為適應(yīng)國產(chǎn)FPGA器件時(shí)鐘輸入要求,對時(shí)鐘電路進(jìn)行了優(yōu)化設(shè)計(jì),包括采用高穩(wěn)定性、高可靠的時(shí)鐘晶體,采用大扇出、驅(qū)動(dòng)能力強(qiáng)的時(shí)鐘BUFFER,減少高速總線時(shí)鐘共享,在滿足性能要求的前提下降低時(shí)鐘頻率等優(yōu)化措施。
根據(jù)應(yīng)用需求設(shè)計(jì)了FPGA時(shí)鐘電路,如圖2所示,共有4組時(shí)鐘電路,其中25 MHz、156.25 MHz由差分晶振產(chǎn)生,各自經(jīng)過時(shí)鐘Buffer后供FPGA的高速收發(fā)器GTH作為參考時(shí)鐘,分別用以配合FPGA產(chǎn)生不同總線速率;同時(shí)25 MHz Buffer輸出1路時(shí)鐘供給DDR作為系統(tǒng)時(shí)鐘使用;另外125 MHz和25 MHz晶振為單端輸出,給FPGA內(nèi)部邏輯使用,并充分考慮內(nèi)部時(shí)鐘資源布局,結(jié)合外部時(shí)鐘電路進(jìn)行規(guī)劃,使設(shè)計(jì)性能達(dá)到最優(yōu),滿足數(shù)據(jù)的高帶寬穩(wěn)定傳輸。
圖2 FPGA時(shí)鐘電路
4.2.2 供電資源優(yōu)化及適配
根據(jù)國產(chǎn)FPGA器件手冊要求,F(xiàn)PGA供電要求相比進(jìn)口器件更高,在整個(gè)FPGA器件中,主要功耗分為器件靜態(tài)功耗、器件動(dòng)態(tài)功耗、高速總線功耗以及硬件IP功耗;為降低功耗,對FPGA相關(guān)電路進(jìn)行了優(yōu)化設(shè)計(jì),提高部分供電電壓的設(shè)計(jì)余量,以及將未使用的GTH BANK不進(jìn)行供電,降低FPGA內(nèi)部時(shí)鐘頻率,同時(shí)為保證各級提供電壓能夠滿足FPGA的上電要求,對相應(yīng)的電源時(shí)序使能控制電路進(jìn)行了優(yōu)化設(shè)計(jì)。
4.2.3 FPGA程序設(shè)計(jì)優(yōu)化及適配
在FPGA程序設(shè)計(jì)時(shí)將工程進(jìn)行模塊劃分,減少FPGA內(nèi)部不必要邏輯及緩存單元使用,利用編譯工具,對FPGA資源情況進(jìn)行了統(tǒng)計(jì)分析、策略對比選擇、時(shí)序綜合優(yōu)化等,同時(shí)對FPGA底層資源物理參數(shù)的調(diào)優(yōu)以達(dá)到高性能的邏輯時(shí)序結(jié)果。另外,在FPGA程序中使用的SRIO接口程序,官方IP會(huì)使用大量的BUFG,導(dǎo)致BUFG使用過多,影響布局布線,因此對BUFG資源進(jìn)行了優(yōu)化設(shè)計(jì)。
4.2.4 散熱設(shè)計(jì)優(yōu)化及適配
由于國產(chǎn)FPGA較進(jìn)口器件功耗略高,因此整個(gè)模塊對散熱的要求更高,一般的風(fēng)冷設(shè)計(jì)很難滿足散熱要求。對模塊上的各部件進(jìn)行結(jié)構(gòu)優(yōu)化設(shè)計(jì)以利于快速散熱,同時(shí)散熱冷板采用高強(qiáng)度鋁合金板材一體銑削加工成型,作為模塊主要的強(qiáng)度支撐,對所有大功耗元器件進(jìn)行傳導(dǎo)散熱,通過熱管、導(dǎo)熱墊、導(dǎo)熱塊實(shí)現(xiàn)從熱源到導(dǎo)冷面的快速傳熱,能夠高效地將模塊任意位置上的熱源傳導(dǎo)到冷板兩側(cè)。
4.3.1 FPGA PCIe接口驗(yàn)證
對FPGA的兩路PCIe接口進(jìn)行測試,測試內(nèi)容為低溫、常溫、高溫條件下PCIe接口在Gen3.0是否工作正常。
FPGA的兩路PCIe接口分別與PCIe橋片的兩個(gè)端口相連接,均采用x8模式,在系統(tǒng)內(nèi)可查看FPGA兩路PCIe連接狀態(tài)信息,并在CPU軟件控制下實(shí)現(xiàn)FPGA內(nèi)部數(shù)據(jù)由PCIe接口搬移至NVMe盤中,統(tǒng)計(jì)數(shù)據(jù)傳輸速率。
如表3所示,PCIe接口連接狀態(tài)為8 GT/s x8模式,總線速率為8 GT/s,兩路PCIe接口數(shù)據(jù)傳輸速率均大于2.0 GB/s。
表3 PCIe測試結(jié)果
4.3.2 FPGA DDR3接口驗(yàn)證
對FPGA的兩組DDR3緩存接口進(jìn)行讀寫測試,測試內(nèi)容為低溫、常溫、高溫環(huán)境條件下DDR3工作是否正常。
DDR3工作頻率設(shè)計(jì)為600 MHz時(shí),利用測試程序?qū)DR3進(jìn)行數(shù)據(jù)讀寫測試,同時(shí)監(jiān)測寫入與讀出的數(shù)據(jù)是否一致。
測試結(jié)果如表4和圖3所示,結(jié)果顯示,國產(chǎn)FPGA DDR3接口在不同環(huán)境下工作正常,讀寫時(shí)序能夠滿足要求。
表4 DDR3測試結(jié)果
圖3 FPGA DDR3讀寫時(shí)序
4.3.3 FPGA RapidIO接口驗(yàn)證
對FPGA兩路RapidIO接口進(jìn)行測試,測試內(nèi)容為低溫、常溫、高溫條件下兩路RapidIO接口是否工作正常。
FPGA兩路RapidIO接口分別通過背板與接口模塊FPGA連接,均采用x4模式,總線速率為6.25 Gbps,編譯RapidIO測試程序,由接口模塊FPGA產(chǎn)生信號(hào)源數(shù)據(jù)發(fā)送至存儲(chǔ)刀片F(xiàn)PGA,存儲(chǔ)刀片F(xiàn)PGA通過RapidIO接口接收數(shù)據(jù),進(jìn)行校驗(yàn)及統(tǒng)計(jì),結(jié)果如表5及圖4所示。結(jié)果表明,RapidIO接口事務(wù)發(fā)起及響應(yīng)功能正常,RapidIO總線數(shù)據(jù)傳輸速率約16 Gb/s。
表5 RapidIO接口測試結(jié)果
圖4 FPGA RapidIO接口時(shí)序
4.3.4 FPGA集成記錄功能測試
為驗(yàn)證核心器件在模塊上的功能和性能,存儲(chǔ)刀片上通過安裝各層級的基礎(chǔ)軟件或者應(yīng)用軟件工程,在不同的層面上測試驗(yàn)證各器件的指標(biāo),同時(shí)可以評估核心器件對模塊上其他的電子元器件的影響。
將存儲(chǔ)刀片與信號(hào)源通過背板連接,存儲(chǔ)刀片F(xiàn)PGA與信號(hào)源模塊之間總線速率為6.25 Gbps,采用x4模式,兩路RapidIO總線同時(shí)工作,由信號(hào)源發(fā)送數(shù)據(jù)至存儲(chǔ)刀片,存儲(chǔ)刀片接收數(shù)據(jù)后進(jìn)行統(tǒng)計(jì)及校驗(yàn)。存儲(chǔ)刀片集成測試除了可以驗(yàn)證各接口的工作情況,還可以驗(yàn)證FPGA內(nèi)部邏輯單元和相關(guān)特殊資源工作情況以及在存儲(chǔ)刀片集成環(huán)境下的整體工作性能。測試結(jié)果如表6所示,數(shù)據(jù)存儲(chǔ)速率約為3 500 MB/s。
表6 FPGA集成記錄功能測試結(jié)果
通過國產(chǎn)FPGA器件驗(yàn)證平臺(tái)的測試與驗(yàn)證,得出了國產(chǎn)FPGA在本項(xiàng)目中的具體性能情況,同時(shí)可以分析出相關(guān)驗(yàn)證結(jié)果是否滿足本項(xiàng)目設(shè)計(jì)要求,具體情況如表7所示。從表中可以看出,國產(chǎn)FPGA器件在PCIe接口傳輸、DDR3接口傳輸、Rapid IO接口傳輸、集成記錄功能測試以及功耗指標(biāo)上均滿足本項(xiàng)目的設(shè)計(jì)要求,可以實(shí)現(xiàn)對進(jìn)口器件的國產(chǎn)化替代。
表7 國產(chǎn)FPGA器件在存儲(chǔ)刀片中的驗(yàn)證結(jié)果
文中介紹了基于國產(chǎn)FPGA搭建的存儲(chǔ)刀片以及驗(yàn)證測試的實(shí)施過程,得出了存儲(chǔ)刀片使用國產(chǎn)FPGA器件后相關(guān)的使用情況,對于類似設(shè)計(jì)的驗(yàn)證具有參考價(jià)值。國產(chǎn)FPGA器件在設(shè)計(jì)、應(yīng)用、適配以及EDA工具等方面需要進(jìn)一步完善。另外,一些協(xié)議符合性驗(yàn)證在現(xiàn)有驗(yàn)證平臺(tái)上難以實(shí)現(xiàn),需要借助其他一些測試設(shè)備才能完成,這部分工作后續(xù)將進(jìn)一步補(bǔ)充完善。