張大銘,王 昕
(北京宇航系統(tǒng)工程研究所,北京 100076)
隨著現(xiàn)代化艦船作戰(zhàn)體系對于大數(shù)據(jù)獲取和數(shù)據(jù)分析的要求日益強烈,新一代艦船裝備對復(fù)雜海情和通信信息的處理需求不斷增長。這些先進的電子裝備包括:光電探測、電子對抗、光纖傳感[1]、射頻天線[2]、雷達、通信[3]等,如圖1所示。為了適應(yīng)復(fù)雜信息的處理需求,艦船裝備上的電子系統(tǒng)規(guī)模越來越復(fù)雜,而且設(shè)備升級換代速度也越來越快。
為了快速、高效地實現(xiàn)這些復(fù)雜的電子系統(tǒng),在數(shù)字電路和系統(tǒng)中越來越多地采用了軟硬件協(xié)同設(shè)計方法。它是指對系統(tǒng)中的軟硬件部分使用統(tǒng)一的描述和工具進行集成開發(fā),可完成全系統(tǒng)的設(shè)計驗證并跨越軟硬件界面進行系統(tǒng)優(yōu)化。核心思想是從軟件平臺的算法到硬件代碼的實現(xiàn)形成統(tǒng)一的映射描述方式。采用軟硬件協(xié)同設(shè)計的方法,進行數(shù)字電路的設(shè)計,可以有效地提高設(shè)計效率。
軟硬件協(xié)同設(shè)計所涉及到的內(nèi)容有軟硬件協(xié)同設(shè)計流程、軟硬件劃分、軟硬件并行綜合、軟硬件并行仿真,如圖2所示。它的設(shè)計基本方法是:
1)用C語言等(高層次設(shè)計語言)進行系統(tǒng)描述,并進行模擬仿真和系統(tǒng)功能驗證;
2)對軟硬件實現(xiàn)進行功能劃分,分別用語言進行設(shè)計并將其綜合起來進行功能驗證和性能預(yù)測等仿真確認(rèn)(聯(lián)調(diào)模擬仿真);
3)如無問題則進行軟件和硬件詳細設(shè)計和修改;
4)最后進行系統(tǒng)測試驗證。
但是,在傳統(tǒng)數(shù)字電路的軟硬件協(xié)同設(shè)計流程中,硬件部分的設(shè)計往往耗時又費力,通常是在有了軟件代碼(如C代碼)之后,還需要通過人工的方式轉(zhuǎn)換成硬件代碼。隨著數(shù)字電路設(shè)計對快速實現(xiàn)硬件化需求的不斷增長、面世時間不斷縮短,數(shù)字電路工程師們的設(shè)計壓力越來越大。
為了有效解決這一問題,本文采用了一種高效的、基于自動化綜合工具的數(shù)字電路快速設(shè)計方法。采用該方法,能夠在實現(xiàn)正確、快速綜合的同時,保證綜合后模塊的速度快、面積小。文中首先給出該快速設(shè)計方法的基本流程,其次介紹基于該方法進行快速設(shè)計的2個艦船上常用的頻域數(shù)據(jù)處理和圖像傳輸設(shè)計實例——快速傅里葉變換和圖片壓縮編碼模塊,最后對論文進行小結(jié)。
目前,在系統(tǒng)算法設(shè)計到硬件設(shè)計的轉(zhuǎn)換中,很多算法是以C語言的形式存在,轉(zhuǎn)換過程主要還是以手工翻譯為主,算法的改變會使得硬件設(shè)計的修改費時、費力。為此,采用一種實用的自動化綜合工具eXCite,進行從C代碼向HDL語言的自動轉(zhuǎn)換,執(zhí)行效率很高,大大縮短系統(tǒng)設(shè)計的周期,如圖3所示。自動化綜合工具eXCite是由Y.Explorations.Inc開發(fā)的一款將C代碼轉(zhuǎn)化為RTL級硬件代碼的綜合工具[4]。引入自動化綜合工具eXCite進行部分軟件代碼的硬件化,實現(xiàn)C代碼的高層次修改和硬件綜合過程?;具^程包括:選定需要加速的模塊、篩選需要加速的函數(shù)、自動化綜合(即C2RTL轉(zhuǎn)換)和現(xiàn)場可編程門陣列(FPGA)加速等幾個部分。
自動化綜合工具eXCite采用軟硬件協(xié)同設(shè)計的思想,在軟件算法層面進行修改設(shè)計,并將C代碼庫文件及各個函數(shù)單元映射到相應(yīng)的硬件單元庫中,以有限狀態(tài)機的形式生成HDL硬件代碼,在FPGA等硬件平臺上進行下載驗證。實現(xiàn)流程如圖4所示。
使用eXCite進行軟硬件協(xié)同設(shè)計的優(yōu)勢主要包括:
1)用C/C++等高級語言進行FPGA/ASIC設(shè)計可大大使設(shè)計簡化;
2)C到硬件描述語言的自動轉(zhuǎn)換比手工設(shè)計快數(shù)倍;
3)要修改是在高級語言層級修改,簡單容易,可使整個FPGA/ASIC設(shè)計開發(fā)周期大大縮短;
4)可充分利用大量當(dāng)前存在的C算法庫。
下面介紹2個艦船上常用的頻域數(shù)據(jù)處理和圖像傳輸設(shè)計實例——快速傅里葉變換(FFT)和圖片壓縮編碼(JPEG)模塊。
快速傅里葉變換是電子設(shè)備中進行數(shù)據(jù)頻域處理時最主要的步驟之一,對于艦船上振動頻率、通信濾波的測量計算發(fā)揮著非常重要的作用。FFT算法有很多,本文采用基2的時間抽選算法(Coolkey-Tukey算法)。設(shè)輸入序列長度為N=2M(M為正整數(shù),將該序列按時間順序的奇偶分解為越來越短的子序列,稱為基2按時間抽取的FFT算法。也稱為Coolkey-Tukey算法。其中基2表示:N=2M,M為整數(shù)。若不滿足這個條件,可以人為地加上若干零值(加零補長)使其達到N=2M。該算法的流程如圖5所示。
將該FFT算法中處理部分的C代碼經(jīng)過配置和優(yōu)化,輸入給eXCite工具來綜合成硬件。其中:輸入數(shù)據(jù)16位寬度(short int),256個(含實部和虛部)。輸出數(shù)據(jù)16位寬度(short int),256個(含實部和虛部)。輸入輸出使用同一個MEM接口,握手信號start與done用HS接口。硬件化的界面如圖6所示。
對128點FFT的不同輸入進行多組測試,同時對比2種情況的測量結(jié)果。在相同硬件條件下,共測量5組數(shù)據(jù),每組128個(含實部和虛部),每個數(shù)輸入分別為16位,輸出分別為16位。其中,第1組數(shù)均相同;第2,3,4,5組數(shù),按照周期分別為8,16,32,64進行循環(huán),第6組128數(shù)字均不相同。在DE2板上運行后,用示波器測量執(zhí)行頻率(換算成執(zhí)行周期)。綜合后生成RTL報告:在50 MHz的頻率下,最長路徑延時117 MHz,滿足時序的要求,相對面積918,最長路徑有2條。
將硬件化之后的代碼寫入硬件開發(fā)板DE2-70[7]中進行驗證。其中,DE2-70開發(fā)板是Altera公司推出的一款Cyclone II系列教學(xué)開發(fā)板。同時,將FPGA硬件實現(xiàn)的算法運行的時間與處理器軟件實現(xiàn)的結(jié)果進行多組對比,如表1所示。
表1 軟件和硬件FFT處理的比較Tab. 1 Comparison of FFT processing between software and hardware
通過上面的實驗可以看到,將運算較為復(fù)雜的FFT的C代碼,通過自動化綜合工具eXCite進行硬件化,轉(zhuǎn)換為硬件描述代碼,作為硬件加速器的執(zhí)行頻率,是處理器運行軟件代碼執(zhí)行頻率的20多倍,并且隨著數(shù)據(jù)的復(fù)雜,加速比越高,加速效果非常明顯,集成其他運算模塊的潛力也非常大。
此外,將手工進行FFT算法硬件模塊設(shè)計的時間與自動化綜合工具eXCite綜合所用的時間進行對比,如表2所示??梢钥闯?,與傳統(tǒng)手工硬件設(shè)計相比,基于自動化綜合的快速設(shè)計方法可以有效減少設(shè)計時間達20倍以上。同時,綜合后的相對面積與執(zhí)行時間相差很小。這充分說明了該方法進行FFT模塊硬件設(shè)計的有效性。
圖片壓縮編碼是電子設(shè)備上進行圖像傳輸?shù)年P(guān)鍵步驟,通過壓縮可以大大減少數(shù)據(jù)傳遞量,對于艦船上實時進行大容量的視頻該圖像識別、重組分析等具有重要的意義。當(dāng)前,使用最廣泛的圖像壓縮算法是JPEG。JPEG是用于灰度圖與真彩圖的靜態(tài)圖像壓縮的國際標(biāo)準(zhǔn)[8],它是有損壓縮的算法[9]。它的主要步驟包括:8*8分塊、正向離散余弦變換(FDCT)、量化、Z字形編碼、使用差分脈沖編碼調(diào)制對直流系數(shù)進行編碼、使用行程長度編碼(RLE)對交流系數(shù)(AC)進行編碼[10]。
表2 兩種設(shè)計方法設(shè)計FFT模塊的比較Tab. 2 Comparison of FFT module design between two methods
基于JPEG壓縮編碼算法中的處理部分用C代碼進行實現(xiàn)??紤]到驗證數(shù)據(jù)量的大小,將這部分代碼(處理的像素為256*256)加入eXCite軟件中。其中:輸入數(shù)據(jù)16位寬度(short int),65 535個(含實部和虛部);輸出有用數(shù)據(jù)8位寬度(short int),4 979個(與圖片本身有關(guān));無用數(shù)據(jù)在jpg圖片中用“0”補充完整;輸入使用MEM1接口,輸入使用MEM2接口,握手信號start與done用HS接口。用eXCite軟件進行硬件化綜合后生成result.v文件。綜合后生成RTL報告:在28 MHz的頻率下,最長路徑延時47 MHz,滿足時序的要求,面積3 798,最長路徑有1條。
本文將硬件化之后的代碼寫入硬件開發(fā)板DE2-70中進行驗證,多組圖片的硬件壓縮比參見表3。
表3 多組圖片的壓縮比Tab. 3 Compression ratio of several pictures
從表中可以看到,采用基于自動化綜合的快速設(shè)計方法得到的硬件化JPEG模塊平均壓縮比超過10倍,說明該硬件化的JPEG模塊具有良好的壓縮性能。對于同第一組圖片,將手工進行FFT算法硬件模塊設(shè)計的時間與自動化綜合工具eXCite綜合所用的時間進行對比,如表4所示??梢钥闯觯c傳統(tǒng)手工硬件設(shè)計相比,基于自動化綜合的快速設(shè)計方法可以有效減少設(shè)計時間達25倍以上。同時,綜合后的相對面積與圖片壓縮比相差很小。這充分說明了該方法進行JPEG模塊硬件設(shè)計的有效性。
本文根據(jù)新一代艦船裝備上電子系統(tǒng)對復(fù)雜海情和通信信息的處理需求,提出了一種高效的、基于自動化綜合工具的快速協(xié)同設(shè)計方法,并基于方法設(shè)計實現(xiàn)了2個艦船上常用的頻域數(shù)據(jù)處理和圖像傳輸設(shè)計實例——快速傅里葉變換和圖片壓縮編碼硬件模塊。實驗證明,采用該方法設(shè)計的硬件模塊能夠?qū)崿F(xiàn)相應(yīng)的功能,同時有效地縮短設(shè)計時間,提高設(shè)計效率。
表4 兩種設(shè)計方法設(shè)計JPEG模塊的比較Tab. 4 Comparison of JPEG module design between two methods
在未來的工作中,還會進一步對帶有選擇和反饋等更復(fù)雜功能模塊進行硬件化處理,并對其性能進行深入的優(yōu)化和評估,讓自動化綜合工具能夠在實際的艦船裝備上電子系統(tǒng)設(shè)計中發(fā)揮出更大的作用,并在艦船的相關(guān)電子設(shè)備上進行更為精確的實驗測試。
參考文獻:
[ 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.