魏志瑾
(中國電子科技集團公司第二十研究所,陜西 西安 710068)
在我國國防科技工業(yè)發(fā)展過程中,成熟的國防工業(yè)產(chǎn)品其核心處理器件多為國外現(xiàn)場可編程門陣列(FPGA)及數(shù)字信號處理(DSP)等芯片,但近年來,亞太安全形勢急劇變化,“中興事件”、“華為事件”、“中美貿(mào)易戰(zhàn)”等事件的發(fā)生,提醒著我們必須掌握核心科技技術(shù)才能做到自主可控,不受制于人。因此,發(fā)展武器裝備國產(chǎn)化與性能提升勢在必行。隨著國產(chǎn)芯片的設(shè)計水平提高,國產(chǎn)FPGA的系列和性能在逐步增加和提升,也開始大量應(yīng)用到自主可控模塊和設(shè)備中。
結(jié)合自主可控信號處理模塊研制需求,將國產(chǎn)K7和V5系列的FPGA芯片應(yīng)用到模塊中,作為信號處理及數(shù)據(jù)傳輸?shù)暮诵男酒?。為保證數(shù)據(jù)穩(wěn)定傳輸且有較高傳輸速率,高速總線協(xié)議采用Aurora總線協(xié)議。Aurora總線協(xié)議是一種可裁剪、輕量級、鏈路層點對點的串行傳輸通信協(xié)議,與SRIO、PCIE等總線相比,Aurora總線特征明顯:用于解決FPGA之間的數(shù)據(jù)傳輸,支持通道綁定,帶寬利用率高,傳輸速率靈活可配,目前可支持500 Mbps~13.1 Gbps[1]。其物理層采用差分信號進行數(shù)據(jù)傳輸,抗干擾能力強;鏈路層主要根據(jù)用戶自定義協(xié)議,形成符合Aurora包格式的數(shù)據(jù),完成打包、組幀以及8B/10B編/解碼功能[2]。
Aurora總線協(xié)議適用于多個FPGA間點對點通信,支持全雙工及單工2種通信架構(gòu),以及幀模式和流模式2種數(shù)據(jù)通信方式。一個Aurora 8B/10B的傳輸鏈路可包含一個或多個通道,以組合方式(X2、X4)支持更高的傳輸速度[3]。Aurora協(xié)議的IP核主要是基于GTX傳輸器作為物理層,根據(jù)Aurora協(xié)議實現(xiàn)鏈路層功能,并以AXI4協(xié)議接口與發(fā)送端和接收端實現(xiàn)用戶數(shù)據(jù)交互,架構(gòu)圖[4]如圖1所示。
圖1 Aurora IP核架構(gòu)
根據(jù)信號處理模塊的研制需求,調(diào)用Aurora協(xié)議IP核,在國產(chǎn)K7系列FPGA的GTX接口上采用X4全雙工模式,用流模式傳輸數(shù)據(jù),傳輸位寬為32 bit,Aurora驅(qū)動模塊與應(yīng)用層之間通過先進先出(FIFO)進行數(shù)據(jù)交互[5],交互關(guān)系如圖2所示。其中接收FIFO設(shè)計為寫位寬64 bit,深度32,讀位寬64 bit(位寬深度可根據(jù)調(diào)試情況實時調(diào)整)。當本地復位有效或channel_up未拉高時復位FIFO;當Aurora接收端m_axi_rx_tvalid有效時,Aurora將數(shù)據(jù)m_axi_rx_tdata存入RX FIFO;當FIFO中rd_data_count為設(shè)定的某值時,開始從FIFO中讀出數(shù)據(jù)。發(fā)送FIFO設(shè)計為寫位寬64 bit,深度32,讀位寬64 bit。當Aurora發(fā)送端s_axi_tx_tready信號有效時,s_axi_tx_tvalid拉高,開始往FIFO中寫入數(shù)據(jù)s_axi_tx_tdata,并注意將s_axi_tx_tvalid和s_axi_tx_tdata對齊發(fā)出。
圖2 X4流模式Aurora驅(qū)動交互關(guān)系圖
在國產(chǎn)V5系列FPGA的GTX接口上采用X1全雙工模式,用幀模式傳輸數(shù)據(jù),傳輸位寬為32 bit,傳輸速率為3.125 Gbps,Aurora驅(qū)動模塊與應(yīng)用層之間通過雙口隨機存儲器(RAM)進行數(shù)據(jù)交互,交互關(guān)系如圖3所示。發(fā)送RAM可設(shè)計為位寬64 bit、深度32大小的雙口RAM,將要發(fā)送的數(shù)據(jù)先寫入雙口RAM中,再將RAM中的數(shù)搬移到發(fā)送FIFO中,發(fā)送FIFO工作流程同流模式;當s_axi_tx_tvalid信號有效時,RAM地址開始累加,當s_axi_tx_tlast信號有效時,RAM地址清零。接收RAM大小同發(fā)送RAM,當m_axi_rx_tvalid信號有效時,RAM地址開始累加,當m_axi_rx_tlast信號有效時,RAM地址清零。
圖3 X1幀模式Aurora驅(qū)動交互關(guān)系圖
近年來雖然國產(chǎn)FPGA芯片設(shè)計水平和芯片性能都在不斷提升,但由于國產(chǎn)芯片多為逆向設(shè)計,生產(chǎn)加工工藝與國外仍有差距,所以同一系列不同批次產(chǎn)品的性能也有一定差異,這些差異可能會帶來門電路延時增大、高速口傳輸穩(wěn)定性差等問題,如高速總線復位邏輯與時鐘邏輯在布局布線中距離過遠時,總線延時不可控,將導致傳輸誤碼率增加,傳輸速率降低,甚至鏈路無法正常建立[6]。針對某國產(chǎn)FPGA類似問題,在ISE軟件Floorplan Area/IO/Logic中,使用Draw Pblock工具在靠近FPGA高速口引腳處圈定高速總線協(xié)議邏輯范圍,形成物理上的約束,使得所有的邏輯電路物理上都在較近的范圍內(nèi),可以有效減少延時,增加國產(chǎn)芯片的傳輸穩(wěn)定性。在本次Aurora驅(qū)動設(shè)計時使用了這種約束方法,將Aurora相關(guān)的驅(qū)動邏輯以及用戶邏輯約束在如圖4、圖5所示的范圍內(nèi),解決了鏈路無法建立、延時不可控等問題。
圖4 Aurora鏈路1高速口邏輯約束圖
圖5 Aurora鏈路2高速口邏輯約束
在調(diào)試時還需要注意調(diào)整預加重、擺幅等參數(shù),以達到鏈路速率要求。某國產(chǎn)FPGA在調(diào)用Aurora IP核時,需要將Aurora_8b10b IP目錄里的aurora_8b10b_0_gt.v第350行:.PMA_RSV2 (16'h2050)參數(shù)修改為.PMA_RSV2 (16′h2070)。修改完參數(shù)后,需要重新綜合。最后打開Synthesized design,在Tcl console運行下述命令,可查看參數(shù)PMA_RSV是否修改成功:get_property PMA_RSV2 [lindex [get_cells -hierarchical -regexp -filter { PRIMITIVE_TYPE==IO.GT.GTXE2_CHANNEL } ] 0]。
測試驗證系統(tǒng)主要由自主可控信號處理模塊、測試底板、直流穩(wěn)壓電源、JTAG調(diào)試器以及測試計算機組成,測試連接圖如圖6所示。測試底板上也有對應(yīng)的國產(chǎn)K7系列、V5系列FPGA,通過連接器可以與信號處理模塊進行國產(chǎn)FPGA間高速口數(shù)據(jù)收發(fā)測試。
圖6 測試系統(tǒng)連接關(guān)系圖
針對X4流模式Aurora驅(qū)動,本地FPGA通過Aurora驅(qū)動發(fā)送變化的數(shù)據(jù)給測試底板上對端FPGA,測試底板將收到的數(shù)據(jù)再回傳給本地FPGA,從FPGA接收到的數(shù)據(jù)來判斷收發(fā)數(shù)據(jù)的一致性,圖7所示為本地FPGA接收到的數(shù)據(jù),與發(fā)送數(shù)據(jù)對比,沒有誤碼,結(jié)果一致。
針對1X幀模式Aurora驅(qū)動,本地FPGA利用task產(chǎn)生一包幀格式數(shù)據(jù),并設(shè)計2個RAM分別發(fā)送不同格式數(shù)據(jù),利用DSP將幀數(shù)據(jù)前后各加上RAM_Sel及發(fā)送完成標識,組成一包數(shù)據(jù)通過Aurora驅(qū)動發(fā)送給對端FPGA,對端檢測到發(fā)送完成標識后開始接收數(shù)據(jù),并通過判斷RAM_Sel以及幀頭進行數(shù)據(jù)解析,從對端FPGA解析后的數(shù)據(jù)來判斷是否與發(fā)送數(shù)據(jù)一致,如圖8所示為對端FPGA接收到的數(shù)據(jù),與發(fā)送數(shù)據(jù)對比,沒有誤碼,結(jié)果一致。
圖7 X4流模式Aurora接收數(shù)據(jù)
圖8 X1幀模式Aurora接收數(shù)據(jù)
本文基于國產(chǎn)K7系列、V5系列FPGA完成了高速總線Aurora驅(qū)動的設(shè)計和驗證。在設(shè)計及調(diào)試過程中根據(jù)國產(chǎn)FPGA的實際情況,通過對FPGA高速口邏輯約束及時序優(yōu)化解決了高速口延時不可控、Aurora鏈路無法建立等問題,并利用自主可控信號處理模塊與測試底板進行FPGA高速數(shù)據(jù)收發(fā)測試,通過對比收發(fā)數(shù)據(jù)的一致性,驗證了驅(qū)動設(shè)計方案的可行性,對提高國產(chǎn)FPGA傳輸速率、穩(wěn)定性具有促進意義,也對其他應(yīng)用國產(chǎn)FPGA的國防工業(yè)產(chǎn)品提供了應(yīng)用參考。