張大銘,王 昕
(北京宇航系統工程研究所,北京 100076)
隨著現代化艦船作戰體系對于大數據獲取和數據分析的要求日益強烈,新一代艦船裝備對復雜海情和通信信息的處理需求不斷增長。這些先進的電子裝備包括:光電探測、電子對抗、光纖傳感[1]、射頻天線[2]、雷達、通信[3]等,如圖1所示。為了適應復雜信息的處理需求,艦船裝備上的電子系統規模越來越復雜,而且設備升級換代速度也越來越快。
為了快速、高效地實現這些復雜的電子系統,在數字電路和系統中越來越多地采用了軟硬件協同設計方法。它是指對系統中的軟硬件部分使用統一的描述和工具進行集成開發,可完成全系統的設計驗證并跨越軟硬件界面進行系統優化。核心思想是從軟件平臺的算法到硬件代碼的實現形成統一的映射描述方式。采用軟硬件協同設計的方法,進行數字電路的設計,可以有效地提高設計效率。
軟硬件協同設計所涉及到的內容有軟硬件協同設計流程、軟硬件劃分、軟硬件并行綜合、軟硬件并行仿真,如圖2所示。它的設計基本方法是:
1)用C語言等(高層次設計語言)進行系統描述,并進行模擬仿真和系統功能驗證;
2)對軟硬件實現進行功能劃分,分別用語言進行設計并將其綜合起來進行功能驗證和性能預測等仿真確認(聯調模擬仿真);
3)如無問題則進行軟件和硬件詳細設計和修改;
4)最后進行系統測試驗證。
但是,在傳統數字電路的軟硬件協同設計流程中,硬件部分的設計往往耗時又費力,通常是在有了軟件代碼(如C代碼)之后,還需要通過人工的方式轉換成硬件代碼。隨著數字電路設計對快速實現硬件化需求的不斷增長、面世時間不斷縮短,數字電路工程師們的設計壓力越來越大。
為了有效解決這一問題,本文采用了一種高效的、基于自動化綜合工具的數字電路快速設計方法。采用該方法,能夠在實現正確、快速綜合的同時,保證綜合后模塊的速度快、面積小。文中首先給出該快速設計方法的基本流程,其次介紹基于該方法進行快速設計的2個艦船上常用的頻域數據處理和圖像傳輸設計實例——快速傅里葉變換和圖片壓縮編碼模塊,最后對論文進行小結。
目前,在系統算法設計到硬件設計的轉換中,很多算法是以C語言的形式存在,轉換過程主要還是以手工翻譯為主,算法的改變會使得硬件設計的修改費時、費力。為此,采用一種實用的自動化綜合工具eXCite,進行從C代碼向HDL語言的自動轉換,執行效率很高,大大縮短系統設計的周期,如圖3所示。自動化綜合工具eXCite是由Y.Explorations.Inc開發的一款將C代碼轉化為RTL級硬件代碼的綜合工具[4]。引入自動化綜合工具eXCite進行部分軟件代碼的硬件化,實現C代碼的高層次修改和硬件綜合過程。基本過程包括:選定需要加速的模塊、篩選需要加速的函數、自動化綜合(即C2RTL轉換)和現場可編程門陣列(FPGA)加速等幾個部分。
自動化綜合工具eXCite采用軟硬件協同設計的思想,在軟件算法層面進行修改設計,并將C代碼庫文件及各個函數單元映射到相應的硬件單元庫中,以有限狀態機的形式生成HDL硬件代碼,在FPGA等硬件平臺上進行下載驗證。實現流程如圖4所示。
使用eXCite進行軟硬件協同設計的優勢主要包括:
1)用C/C++等高級語言進行FPGA/ASIC設計可大大使設計簡化;
2)C到硬件描述語言的自動轉換比手工設計快數倍;
3)要修改是在高級語言層級修改,簡單容易,可使整個FPGA/ASIC設計開發周期大大縮短;
4)可充分利用大量當前存在的C算法庫。
下面介紹2個艦船上常用的頻域數據處理和圖像傳輸設計實例——快速傅里葉變換(FFT)和圖片壓縮編碼(JPEG)模塊。
快速傅里葉變換是電子設備中進行數據頻域處理時最主要的步驟之一,對于艦船上振動頻率、通信濾波的測量計算發揮著非常重要的作用。FFT算法有很多,本文采用基2的時間抽選算法(Coolkey-Tukey算法)。設輸入序列長度為N=2M(M為正整數,將該序列按時間順序的奇偶分解為越來越短的子序列,稱為基2按時間抽取的FFT算法。也稱為Coolkey-Tukey算法。其中基2表示:N=2M,M為整數。若不滿足這個條件,可以人為地加上若干零值(加零補長)使其達到N=2M。該算法的流程如圖5所示。
將該FFT算法中處理部分的C代碼經過配置和優化,輸入給eXCite工具來綜合成硬件。其中:輸入數據16位寬度(short int),256個(含實部和虛部)。輸出數據16位寬度(short int),256個(含實部和虛部)。輸入輸出使用同一個MEM接口,握手信號start與done用HS接口。硬件化的界面如圖6所示。
對128點FFT的不同輸入進行多組測試,同時對比2種情況的測量結果。在相同硬件條件下,共測量5組數據,每組128個(含實部和虛部),每個數輸入分別為16位,輸出分別為16位。其中,第1組數均相同;第2,3,4,5組數,按照周期分別為8,16,32,64進行循環,第6組128數字均不相同。在DE2板上運行后,用示波器測量執行頻率(換算成執行周期)。綜合后生成RTL報告:在50 MHz的頻率下,最長路徑延時117 MHz,滿足時序的要求,相對面積918,最長路徑有2條。
將硬件化之后的代碼寫入硬件開發板DE2-70[7]中進行驗證。其中,DE2-70開發板是Altera公司推出的一款Cyclone II系列教學開發板。同時,將FPGA硬件實現的算法運行的時間與處理器軟件實現的結果進行多組對比,如表1所示。

表1 軟件和硬件FFT處理的比較Tab. 1 Comparison of FFT processing between software and hardware
通過上面的實驗可以看到,將運算較為復雜的FFT的C代碼,通過自動化綜合工具eXCite進行硬件化,轉換為硬件描述代碼,作為硬件加速器的執行頻率,是處理器運行軟件代碼執行頻率的20多倍,并且隨著數據的復雜,加速比越高,加速效果非常明顯,集成其他運算模塊的潛力也非常大。
此外,將手工進行FFT算法硬件模塊設計的時間與自動化綜合工具eXCite綜合所用的時間進行對比,如表2所示。可以看出,與傳統手工硬件設計相比,基于自動化綜合的快速設計方法可以有效減少設計時間達20倍以上。同時,綜合后的相對面積與執行時間相差很小。這充分說明了該方法進行FFT模塊硬件設計的有效性。
圖片壓縮編碼是電子設備上進行圖像傳輸的關鍵步驟,通過壓縮可以大大減少數據傳遞量,對于艦船上實時進行大容量的視頻該圖像識別、重組分析等具有重要的意義。當前,使用最廣泛的圖像壓縮算法是JPEG。JPEG是用于灰度圖與真彩圖的靜態圖像壓縮的國際標準[8],它是有損壓縮的算法[9]。它的主要步驟包括:8*8分塊、正向離散余弦變換(FDCT)、量化、Z字形編碼、使用差分脈沖編碼調制對直流系數進行編碼、使用行程長度編碼(RLE)對交流系數(AC)進行編碼[10]。

表2 兩種設計方法設計FFT模塊的比較Tab. 2 Comparison of FFT module design between two methods
基于JPEG壓縮編碼算法中的處理部分用C代碼進行實現。考慮到驗證數據量的大小,將這部分代碼(處理的像素為256*256)加入eXCite軟件中。其中:輸入數據16位寬度(short int),65 535個(含實部和虛部);輸出有用數據8位寬度(short int),4 979個(與圖片本身有關);無用數據在jpg圖片中用“0”補充完整;輸入使用MEM1接口,輸入使用MEM2接口,握手信號start與done用HS接口。用eXCite軟件進行硬件化綜合后生成result.v文件。綜合后生成RTL報告:在28 MHz的頻率下,最長路徑延時47 MHz,滿足時序的要求,面積3 798,最長路徑有1條。
本文將硬件化之后的代碼寫入硬件開發板DE2-70中進行驗證,多組圖片的硬件壓縮比參見表3。

表3 多組圖片的壓縮比Tab. 3 Compression ratio of several pictures
從表中可以看到,采用基于自動化綜合的快速設計方法得到的硬件化JPEG模塊平均壓縮比超過10倍,說明該硬件化的JPEG模塊具有良好的壓縮性能。對于同第一組圖片,將手工進行FFT算法硬件模塊設計的時間與自動化綜合工具eXCite綜合所用的時間進行對比,如表4所示。可以看出,與傳統手工硬件設計相比,基于自動化綜合的快速設計方法可以有效減少設計時間達25倍以上。同時,綜合后的相對面積與圖片壓縮比相差很小。這充分說明了該方法進行JPEG模塊硬件設計的有效性。
本文根據新一代艦船裝備上電子系統對復雜海情和通信信息的處理需求,提出了一種高效的、基于自動化綜合工具的快速協同設計方法,并基于方法設計實現了2個艦船上常用的頻域數據處理和圖像傳輸設計實例——快速傅里葉變換和圖片壓縮編碼硬件模塊。實驗證明,采用該方法設計的硬件模塊能夠實現相應的功能,同時有效地縮短設計時間,提高設計效率。

表4 兩種設計方法設計JPEG模塊的比較Tab. 4 Comparison of JPEG module design between two methods
在未來的工作中,還會進一步對帶有選擇和反饋等更復雜功能模塊進行硬件化處理,并對其性能進行深入的優化和評估,讓自動化綜合工具能夠在實際的艦船裝備上電子系統設計中發揮出更大的作用,并在艦船的相關電子設備上進行更為精確的實驗測試。
參考文獻:
[ 1 ]MAINWARING A, CULLER D, POLASTRE J, et al.Wireless sensor networks for habitat monitoring[J]. Wireless Sensor Networks and Applications, 2002(2): 88–97.
[ 2 ]HEMPSTEAD M, TRIPATHI N, MAURO P, et al. An ultra low power system architecture for sensor network applications.[J] ACM SIGARCH Computer Architecture News, 2005(33–2): 208–219.
[ 3 ]SHEETS M, BURGHARDT F, KARALAR T, et al. A Powermanaged protocol processor for wireless sensor networks[J].Proc. IEEE Symp. VLSI Circuits, 2006(4): 262–263.
[ 4 ]ZHANG Pei. eXCite: From C-code to RTL-code. Y Explorations Inc [R]. 2009.
[ 5 ]Qureshi, Fahad, Analysis of twiddle factor memory complexity of radix-2.i pipelined FFTs[C]. Conference Record - Asilomar Conference on Signals, Systems and Computers.2009:217–220.
[ 6 ]HUSSAIN W, GARZIA F, NURMI J. Evaluation of Padix-2 and Radix-4 FFT processing on a reconfigurable platform [C].13th IEEE Symposium on Design and Diagnostics of Electronic Circuits and Systems, 2010: 249–254.
[ 7 ]Altera DE2–70 Development and Education Board User Manual [M]. 2007.
[ 8 ]EMIR O, ALTAN M, AYDIN C. Performance comparison of JPEG, JPEG2000 & JPEG XR imagecompression standards[C]. 24th Signal Processing and Communication Application Conference, 2016: 201–204.
[ 9 ]LIN Fu-zhong. JPEG compress encoding[M]. Beijing: Multimedia Technology, Tsinghua University Press, 2000.
[10]YU Tao. JPEG principle of detailed case analysis and its application in embedded Linux[R]. Computer Programming Network, 2008.