魏志瑾
(中國電子科技集團公司第二十研究所,陜西 西安 710068)
在我國國防科技工業發展過程中,成熟的國防工業產品其核心處理器件多為國外現場可編程門陣列(FPGA)及數字信號處理(DSP)等芯片,但近年來,亞太安全形勢急劇變化,“中興事件”、“華為事件”、“中美貿易戰”等事件的發生,提醒著我們必須掌握核心科技技術才能做到自主可控,不受制于人。因此,發展武器裝備國產化與性能提升勢在必行。隨著國產芯片的設計水平提高,國產FPGA的系列和性能在逐步增加和提升,也開始大量應用到自主可控模塊和設備中。
結合自主可控信號處理模塊研制需求,將國產K7和V5系列的FPGA芯片應用到模塊中,作為信號處理及數據傳輸的核心芯片。為保證數據穩定傳輸且有較高傳輸速率,高速總線協議采用Aurora總線協議。Aurora總線協議是一種可裁剪、輕量級、鏈路層點對點的串行傳輸通信協議,與SRIO、PCIE等總線相比,Aurora總線特征明顯:用于解決FPGA之間的數據傳輸,支持通道綁定,帶寬利用率高,傳輸速率靈活可配,目前可支持500 Mbps~13.1 Gbps[1]。其物理層采用差分信號進行數據傳輸,抗干擾能力強;鏈路層主要根據用戶自定義協議,形成符合Aurora包格式的數據,完成打包、組幀以及8B/10B編/解碼功能[2]。
Aurora總線協議適用于多個FPGA間點對點通信,支持全雙工及單工2種通信架構,以及幀模式和流模式2種數據通信方式。一個Aurora 8B/10B的傳輸鏈路可包含一個或多個通道,以組合方式(X2、X4)支持更高的傳輸速度[3]。Aurora協議的IP核主要是基于GTX傳輸器作為物理層,根據Aurora協議實現鏈路層功能,并以AXI4協議接口與發送端和接收端實現用戶數據交互,架構圖[4]如圖1所示。

圖1 Aurora IP核架構
根據信號處理模塊的研制需求,調用Aurora協議IP核,在國產K7系列FPGA的GTX接口上采用X4全雙工模式,用流模式傳輸數據,傳輸位寬為32 bit,Aurora驅動模塊與應用層之間通過先進先出(FIFO)進行數據交互[5],交互關系如圖2所示。其中接收FIFO設計為寫位寬64 bit,深度32,讀位寬64 bit(位寬深度可根據調試情況實時調整)。當本地復位有效或channel_up未拉高時復位FIFO;當Aurora接收端m_axi_rx_tvalid有效時,Aurora將數據m_axi_rx_tdata存入RX FIFO;當FIFO中rd_data_count為設定的某值時,開始從FIFO中讀出數據。發送FIFO設計為寫位寬64 bit,深度32,讀位寬64 bit。當Aurora發送端s_axi_tx_tready信號有效時,s_axi_tx_tvalid拉高,開始往FIFO中寫入數據s_axi_tx_tdata,并注意將s_axi_tx_tvalid和s_axi_tx_tdata對齊發出。

圖2 X4流模式Aurora驅動交互關系圖
在國產V5系列FPGA的GTX接口上采用X1全雙工模式,用幀模式傳輸數據,傳輸位寬為32 bit,傳輸速率為3.125 Gbps,Aurora驅動模塊與應用層之間通過雙口隨機存儲器(RAM)進行數據交互,交互關系如圖3所示。發送RAM可設計為位寬64 bit、深度32大小的雙口RAM,將要發送的數據先寫入雙口RAM中,再將RAM中的數搬移到發送FIFO中,發送FIFO工作流程同流模式;當s_axi_tx_tvalid信號有效時,RAM地址開始累加,當s_axi_tx_tlast信號有效時,RAM地址清零。接收RAM大小同發送RAM,當m_axi_rx_tvalid信號有效時,RAM地址開始累加,當m_axi_rx_tlast信號有效時,RAM地址清零。

圖3 X1幀模式Aurora驅動交互關系圖
近年來雖然國產FPGA芯片設計水平和芯片性能都在不斷提升,但由于國產芯片多為逆向設計,生產加工工藝與國外仍有差距,所以同一系列不同批次產品的性能也有一定差異,這些差異可能會帶來門電路延時增大、高速口傳輸穩定性差等問題,如高速總線復位邏輯與時鐘邏輯在布局布線中距離過遠時,總線延時不可控,將導致傳輸誤碼率增加,傳輸速率降低,甚至鏈路無法正常建立[6]。針對某國產FPGA類似問題,在ISE軟件Floorplan Area/IO/Logic中,使用Draw Pblock工具在靠近FPGA高速口引腳處圈定高速總線協議邏輯范圍,形成物理上的約束,使得所有的邏輯電路物理上都在較近的范圍內,可以有效減少延時,增加國產芯片的傳輸穩定性。在本次Aurora驅動設計時使用了這種約束方法,將Aurora相關的驅動邏輯以及用戶邏輯約束在如圖4、圖5所示的范圍內,解決了鏈路無法建立、延時不可控等問題。

圖4 Aurora鏈路1高速口邏輯約束圖

圖5 Aurora鏈路2高速口邏輯約束
在調試時還需要注意調整預加重、擺幅等參數,以達到鏈路速率要求。某國產FPGA在調用Aurora IP核時,需要將Aurora_8b10b IP目錄里的aurora_8b10b_0_gt.v第350行:.PMA_RSV2 (16'h2050)參數修改為.PMA_RSV2 (16′h2070)。修改完參數后,需要重新綜合。最后打開Synthesized design,在Tcl console運行下述命令,可查看參數PMA_RSV是否修改成功:get_property PMA_RSV2 [lindex [get_cells -hierarchical -regexp -filter { PRIMITIVE_TYPE==IO.GT.GTXE2_CHANNEL } ] 0]。
測試驗證系統主要由自主可控信號處理模塊、測試底板、直流穩壓電源、JTAG調試器以及測試計算機組成,測試連接圖如圖6所示。測試底板上也有對應的國產K7系列、V5系列FPGA,通過連接器可以與信號處理模塊進行國產FPGA間高速口數據收發測試。

圖6 測試系統連接關系圖
針對X4流模式Aurora驅動,本地FPGA通過Aurora驅動發送變化的數據給測試底板上對端FPGA,測試底板將收到的數據再回傳給本地FPGA,從FPGA接收到的數據來判斷收發數據的一致性,圖7所示為本地FPGA接收到的數據,與發送數據對比,沒有誤碼,結果一致。
針對1X幀模式Aurora驅動,本地FPGA利用task產生一包幀格式數據,并設計2個RAM分別發送不同格式數據,利用DSP將幀數據前后各加上RAM_Sel及發送完成標識,組成一包數據通過Aurora驅動發送給對端FPGA,對端檢測到發送完成標識后開始接收數據,并通過判斷RAM_Sel以及幀頭進行數據解析,從對端FPGA解析后的數據來判斷是否與發送數據一致,如圖8所示為對端FPGA接收到的數據,與發送數據對比,沒有誤碼,結果一致。

圖7 X4流模式Aurora接收數據

圖8 X1幀模式Aurora接收數據
本文基于國產K7系列、V5系列FPGA完成了高速總線Aurora驅動的設計和驗證。在設計及調試過程中根據國產FPGA的實際情況,通過對FPGA高速口邏輯約束及時序優化解決了高速口延時不可控、Aurora鏈路無法建立等問題,并利用自主可控信號處理模塊與測試底板進行FPGA高速數據收發測試,通過對比收發數據的一致性,驗證了驅動設計方案的可行性,對提高國產FPGA傳輸速率、穩定性具有促進意義,也對其他應用國產FPGA的國防工業產品提供了應用參考。