韓思齊,韓力,孫林,吳瓊之
(北京理工大學信息與電子學院,北京100081)
合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種有源微波成像系統,廣泛應用于軍事和民用的各個領域[1]。它解決了真實孔徑雷達分辨率受天線孔徑、距離、脈沖寬度等因素制約的問題,可獲得二維高分辨率圖像。但由于實驗條件、成本等問題,獲取特定情況下的SAR原始回波數據較為困難。因此,研制可靈活配置參數、快速產生不同工作狀態下回波信號的模擬系統具有重要意義。
回波信號生成的實時性是衡量模擬系統的重要指標。回波模擬算法計算復雜度高,傳統的SAR回波模擬一般在個人計算機(Personal Computer,PC機)平臺實現,文獻[2]提出通過改進算法,減少回波信號生成計算量;或借助多臺PC機,并行計算數據,從而減少耗時[3];文獻[4]提出了基于多圖形處理器(Graphics Processing Unit,GPU)平臺的回波模擬器。盡管如此,在大場景應用中,基于PC機平臺的回波模擬仍然難以滿足實時性需求。因此,將硬件加速[5]應用于SAR回波信號模擬,成為保障回波生成實時性的關鍵方法之一。
國內外學者對于SAR回波模擬的現場可編程門陣列(Field Programmable Gate Array,FPGA)硬件加速[6]進行了相關研究,應用結果表明,基于FPGA的SAR回波模擬平臺可實現快速模擬、并提供高精度的回波數據[7]。但PC機平臺的回波模擬算法均用高級語言描述,移植到硬件平臺(如FPGA)時,需要開發者根據算法邏輯一步步轉換為硬件描述語言,開發周期很長。在SAR回波模擬中,存在著精度不同的系統參數,并涉及到浮點數運算,這對于硬件描述語言來說極為復雜。此外,回波模擬的時序邏輯復雜,一般需設計有限狀態機。不僅開發過程耗時較多,反復的寄存器傳輸級(Register Transfer Level,RTL)仿真及算法優化更加繁瑣,如果無法減小這一環節的復雜度,將嚴重制約研究進度,影響研究成果。
為此,本文將介紹一種把FPGA應用于硬件加速的SAR實時回波模擬系統。該系統引入了高層次綜合(High Level Synthesis,HLS)技術,用C或C++等高級語言實現FPGA開發的自動化。這種設計不僅極大地縮短了開發時間,還可發揮高級語言仿真迅速、調試便捷的優勢,對算法進行優化調整[8],并具有很好的可移植性。最終實現了一套完整的SAR回波模擬數據生成、存儲、驗證及成像系統,在SAR的系統設計、測試檢驗等方面都有廣泛的應用背景與需求。
隨著數字系統集成度的不斷提升,使用硬件描述語言的設計方式逐漸顯露出不足之處。在大型數字電路設計中,將軟件算法人工轉換為硬件可表述語言十分繁瑣。而高層次綜合技術的實質,就是從行為級描述到門級電路結構描述的自動轉換[9]。
文中所使用的高層次綜合工具Vivado HLS,支持用戶自定義數據類型(整數、定點或浮點),支持先進先出(First In First Out,FIFO)存儲器、第4代高級可擴展接口(Advanced Extensible Interface 4,AXI4)、AXI4-Lite、AXI4-Stream[10]等通用接口,可靈活、快速地與系統中其他部分對接,還可在C/C++測試平臺進行仿真,并高速轉化為VHDL或Verilog硬件描述語言。Vivado HLS工作時自動將高級語言操作分解為按時鐘周期的步驟,映射到硬件資源,進而產生有限狀態機(Finite State Machine,FSM)來控制實際操作,最終輸出RTL語言描述的工程文件。
高層次綜合技術的關鍵一點是可以實現浮點數運算,這在本系統中具有重要意義。在某組SAR系統參數中,發射信號載波頻率為109量級,而脈沖寬度為10-6量級,數量級相差如此之多的浮點數,如果在FPGA中轉化為定點數運算,不僅開發過程復雜、修改不易,更會因多次截位等操作累積誤差。而高層次綜合則為高精度浮點運算提供了可能性,保障回波數據的精確度。
生成SAR回波信號時,先由基本參數計算調頻斜率、SAR照射到的地面區域范圍等;在某一采樣時刻,累加所有目標的回波,并保存;循環上一步驟,直至采集完該位置的全部采樣點;然后搭載SAR的飛行平臺進入下一個方位向位置,繼續循環以上步驟,直至照射完全部地面區域,獲取完整回波。
其算法的實現流程如圖1所示。

圖1 SAR回波模擬算法流程圖
其中,快時間域采樣序列以數組的形式表示為:

式(1)中,Nf為距離向采樣點數;i為第幾個采樣點。
慢時間域采樣序列同樣以數組的形式表示:

式(2)中,Ns為方位向采樣點數;i為第幾個采樣點。
具體實現上述流程時,可加以簡化。SAR回波由方位向和距離向的二維數據構成,而對于同一個方位向采樣點,其方位向距離、距離向斜距及距離向時延不隨距離向采樣點變化。因此在生成回波數據時,將某一方位向采樣點的計算結果存儲起來,即可供該方位向采樣點上的所有距離向采樣點計算使用,不再需要在快時間域上逐一計算,從而將這一步驟的運算復雜度降低了(Nf-1)倍。
此外,不同參數的SAR系統具有相應的有效掃描范圍。回波數據的二維數組中,有部分采樣點為0。實際上,為0的采樣點不需參與回波運算,只需判斷是否在掃描范圍之外;若是,則直接記為0。這樣可避免不必要的運算過程,進一步減少時間消耗。
與其它回波模擬算法相比[11],此種算法雖然運算效率不是最高的,但具有通用性,可模擬多種模式下的回波。
高層次綜合分為兩個不同的階段:
1)算法的綜合,從代碼中提取出操作步驟并分配至不同的時鐘周期進行;
2)接口的綜合,把頂層函數的變量和參數轉換為帶有握手信號的硬件端口。
針對這兩個階段,設計基于HLS的SAR回波模擬硬件系統。
C算法的仿真速度比相同算法在RTL的仿真速度快若干數量級,這為根據性能、資源、功耗等指標來細調架構、優化算法提供了可能。高層次綜合技術可實現回波模擬算法的C語言描述,但C函數與硬件設備的映射關系不可忽視。在回波模擬硬件系統中,可根據硬件描述語言對應的FPGA實際工作流程,利用HLS工具對關鍵C函數進行流水線(PIPE?LINE)、循環展開(UNROLL)、循環并行等優化。
1)流水線:
流水線優化是指在不打破依賴關系的前提下,令函數或循環內的多個操作互相交疊。回波模擬算法的主函數中,有若干計算量較大的循環體。而某些循環體的各次循環之間沒有依賴關系,可使用PIPELINE命令對其進行優化,插入預編譯指令(#pragma HLS PIPELINE),使各次循環在前后操作時間上可以重疊,而不是按照C語言的順序執行方式依次執行。
以慢時間域某一采樣點的回波生成過程為例。回波模擬硬件系統依次對各個雷達目標進行回波模擬,此為第一重循環;對各個快時間域采樣點,逐個計算距離向時間序列、回波相位等,進而生成回波的實部和虛部,此為第二重循環。
對于表1中的多重循環,如果直接對最外層循環使用PIPELINE優化指令(如表2中的第一行),會導致其內部的所有循環被展開[12]。這種方法可以有效縮短時延,但作為代價資源消耗會急劇增加,不符合用面積換取效率的合理性。應選擇一個折衷的優化策略,即在不占用過多資源的前提下,盡可能地縮短時延。

表1 多重循環代碼示例

表2 HLS工具的PIPELINE優化指令
經過分析和嘗試,最終確定的回波模擬算法PIPELINE優化策略可以簡述為:對第一重循環不使用流水線優化;在第二重循環中,將計算距離向時間序列、回波相位等,與生成回波實部、虛部的步驟合并,置于同一循環體中實現(以上步驟有順序關系);再使用PIPELINE指令,使第二重循環可以在時間上重疊(如表2中的第二行)當前慢時間域采樣點的距離向時間序列計算完畢后,即可進行下一采樣點的處理,無需等待循環體內的操作全部完成、回波數據計算完畢后再進行。示意圖如圖2所示。

圖2 PIPELINE優化策略示意圖
PIPELINE優化前后的綜合(Synthesis)報告如表3所示。
通過對比可明顯看出,延遲(latency)和循環間隔(interval)的最大值與優化前相比減小了3個數量級,極大程度地提高了回波數據生成速率,進而提升硬件加速比。
2)循環并行:
對于同一函數中兩個并列的循環,即使兩循環沒有任何依賴關系,在高層次綜合時,依然會按照C函數的順序執行方式,待前一循環執行完畢后,才開始下一循環。而映射到硬件系統后,應進行適當的并行化,以發揮FPGA的并行處理優勢、加速運算過程。

表3 PIPELINE優化前后仿真報告
回波模擬的C函數中,回波實部和虛部的計算完全可以并行化,但如果在兩個循環中分別實現,即如表4所示。

表4 C函數中順序執行的兩個并列循環
則兩循環會順序執行,即等待回波實部計算完畢后,再開始虛部的計算。這會導致回波的實部和虛部不能同時生成,進而增加回波模擬的整體時間。為解決該問題,可將這一步驟提取為一個子函數,計算實部和虛部時,分別以不同的參數在頂層C函數中調用該子函數,那么兩個子函數可以同時執行了。
經過高層次綜合后,頂層C函數的參數會映射為硬件設備的輸入/輸出(Input/Output,I/O)端口。據此,把需要對應硬件接口的函數變量,寫入頂層C函數的輸入、輸出參數中。
為便于人機交互,回波模擬硬件加速系統應具備與上位機通信的功能。上位機可對回波模擬系統配置SAR系統參數、控制指令等,回波模擬系統則將生成的回波數據回傳至上位機。因此,頂層C函數的輸入變量有系統參數、控制指令等,輸出變量為實時生成的SAR回波數據。
回波由實部和虛部構成,C語言中無虛數表示,所以將回波的實部和虛部分別存入兩個單精度浮點(float)型數組Echorl和Echoim。綜合后,數組會映射會塊隨機存儲器(block random-access memory,block RAM)端口。
Vivado HLS支持多種通用的頂層函數I/O協議,通過指定頂層函數參數的不同I/O協議,使得回波模擬系統具有靈活的可移植性。以對接外設組件互連標準(Peripheral Component Interconnection,PCI)總線的應用場景為例,即回波模擬硬件系統通過PCI總線與上位機建立通信連接。可采用AXI4總線協議,即:將頂層函數的輸入變量端口類型設置為AXI LITE-Slave,以便上位機下發SAR預置參數、控制指令等;輸出變量端口類型設置為AXI STREAM(即axis),生成的回波以數據流形式輸出,先經過一級FIFO緩沖,再與PCI通信部分的AXItoPCI(AXI協議轉為PCI協議)模塊相連。如圖3所示。

圖3 回波模擬部分與PCI通信部分的端口對接示意圖
配置頂層函數I/O協議時,除了可在Directive窗口中操作,也可通過在源代碼中添加預編譯指令實現,如:
#pragma HLS INTERFACE axis port=Echorl(將輸出變量Echorl的端口類型設置為axis)
以Xilinx公司的Kintex-7系列FPGA XC7K325T為硬件加速平臺,實時生成特定場景下的SAR回波數據。在Vivado 2015.1中建立工程,調用Vivado HLS導出的回波模擬知識產權(intellectual property,IP)核,并添加其他模塊(時鐘、復位、PCI通信等),成后續的回波模擬硬件系統設計工作。
選擇PCI9054芯片實現硬件平臺與上位機的PCI總線通信,該芯片的數據位為32位,與SAR回波模擬C函數的float型輸出變量位寬一致。以3個點目標的機載SAR回波模擬應用場景為例,選取3個方位向、距離向坐標兩兩相同的點目標。系統參數如表5所示。

表5 SAR回波模擬系統參數
為驗證Vivado HLS中回波模擬模塊的邏輯控制及輸出數據的正確性、以便與后續模塊對接,在RTL仿真完成后,將生成的回波數據導入Matlab平臺,進行對比驗證。
如表5所述的SAR系統中,生成的回波為2048×8192的二維矩陣;共有2048個方位向采樣點,每個采樣點的數據深度為8192,即距離向采樣點數為8192。RTL仿真生成的原始回波數據實部及虛部均為32位二進制數,需按照單精度浮點數的規律轉化為十進制有符號數。
SAR回波的每個方位向采樣點數據均應為線性調頻信號(即chirp),在Matlab中繪制其時域實部圖、時域相位圖及快速傅里葉變換(Fast Fourier Transformation,FFT)后頻譜的幅度譜(如圖4所示,其中橫軸為距離向采樣點),結果分別符合chirp信號的頻率隨時間線性增加、時域相位為二次函數曲線、頻譜的幅度譜為方波的特性。
與相同系統參數下Matlab生成的原始回波數據比較,差值數量級為10-7。這與float數據類型的機器精度相符,驗證了硬件系統回波模擬結果的正確性。
將回波模擬模塊導出為IP核,生成一個方位向采樣點的回波數據對FPGA內部資源的消耗及時鐘信息,如表6、表7所示。

圖4 RTL仿真的回波數據

表6 回波模擬的FPGA資源消耗

表7 回波模擬的FPGA時鐘信息
以100 MHz為時鐘頻率約束條件時,在XC7K325T FPGA上完成布局、布線后,時鐘可達到114.3 MHz。
對回波模擬硬件系統的回波數據進行距離-多普勒(Range-Doppler,RD)算法成像[13],3個點目標的原始回波數據經二維脈沖壓縮后,在距離向和方位向均壓縮為辛格函數[14]。圖5(a)為mesh函數繪制的距離向-方位向坐標系下的三維表面網格圖;圖5(b)為地面x-y坐標系中3個點目標的二維位置示意圖,從圖中可直接讀出3個點目標的坐標位置,與初始設定值(200,10043)、(40,10043)、(40,10214)基本相符,驗證了該SAR回波模擬硬件加速設計的正確性。

圖5 3個點目標的回波模擬成像結果
進行成像處理后,繼續對點目標成像質量進行評估[15]。主要有以下指標,如表8、表9中所示。

表8 峰值旁瓣比(PSLR)

表9 積分旁瓣比(ISLR)
綜合以上結果,回波模擬數據的實際值與理論值基本相符,成像結果通過了質量評估,證實了基于HLS的SAR回波模擬硬件加速設計具有可靠性和可行性。
以表4中的SAR系統參數為例,測試回波模擬硬件系統的硬件加速比[16]。所用的軟件計算平臺為一臺搭載 Intel Core i7-4550U CPU(1.5 GHz)的 PC機,在Matlab中完成SAR回波模擬的仿真。硬件系統選用的FPGA芯片型號為 Xilinx XC7K325T,在Vivado 2015.1中對系統進行硬件仿真,時鐘頻率設置為114 MHz。軟件和硬件的計算時間及硬件加速比在表10中列出。

表10 硬件加速比
本文從合成孔徑雷達對回波模擬的需求出發,實現了基于HLS的SAR回波模擬硬件加速設計。在硬件系統設計中,選擇了以Xilinx Kintex-7為處理核心的平臺進行硬件加速;并引入高層次綜合技術,在Vivado HLS中用C語言實現回波模擬算法,自動完成高級語言到RTL語言的轉換。此外,選擇AXI4通信接口協議,使回波模擬硬件系統具備靈活的可移植性;使用優化策略對算法進行調整,減小延遲時間,發揮硬件計算的并行優勢,進一步提高了硬件加速比。
本設計可滿足不同體制SAR系統的回波模擬需求,具有穩定性和通用性。并驗證了高層次綜合技術在硬件加速領域應用的可行性,具有廣闊的發展前景。在未來的工作中,將繼續針對硬件層面改善算法,彌補高層次綜合的不足,提高FPGA處理效率;研究HLS中時間延遲與資源占用的關系,考慮不同硬件設備的具體應用場景,以資源利用最大化為目標,縮短模塊功能實現的耗時。