【摘要】隨著現(xiàn)代工業(yè)的發(fā)展,人們對數(shù)字信號的處理要求越來越高,特別是對數(shù)字信號的實時性要求提出很高的要求,但是當(dāng)現(xiàn)有的信號處理器都無法達(dá)到所需要的速度時,首先想到的解決辦法是增加處理器的數(shù)目,或者是采取門陣列的方式。另一方面,隨著可編程邏輯器件技術(shù)的發(fā)展,擁有特殊并行處理能力的現(xiàn)場可編程門陣列在不管是體積、性能還是成本等方面都顯示出了無與倫比的優(yōu)勢。本文就基于FPGA的數(shù)字信號處理算法研究與高效實現(xiàn)問題,進(jìn)行了淺要探討。
【關(guān)鍵詞】FPGA的數(shù)字信號處理算法研究高效實現(xiàn)
FPGA即現(xiàn)場可編程門陣列,它和數(shù)字信號處理領(lǐng)域的霸主地位的DSP相比,F(xiàn)PGA由于能耗、成本、性能的限制,一直沒有受到重視,只是在一些外圍部分中使用。進(jìn)入到21世紀(jì),隨著新型的納米技術(shù)的使用,F(xiàn)PGA在功耗、性能、成本等方面有了顯著的改善,具備在核心中使用的條件;在另一方面來看,3G和互聯(lián)網(wǎng)時代的到來,要求處理的數(shù)字信號量越來越大,并且數(shù)字信號的復(fù)雜性也將大大增加,要求大量的并行處理。而DSP在做并行處理時并不如FPGA要強(qiáng),所以,這就為能夠處理大量的并行處理的FPGA帶來了非常好的發(fā)展機(jī)遇。
本文在此基礎(chǔ)之上,研究了基于FPGA的快速傅里葉變換、數(shù)字濾波、相關(guān)運算等數(shù)字信號的高效處理。首先對體系架構(gòu)發(fā)展現(xiàn)狀進(jìn)行了闡述;然后,研究了兩種具有相同結(jié)構(gòu)的數(shù)字濾波和相關(guān)運算的特征,采取了有無乘法器的兩種結(jié)構(gòu)實現(xiàn)乘累加運算。無乘法器結(jié)構(gòu)采用分布算法,將復(fù)雜的乘法運算轉(zhuǎn)化為易于實現(xiàn)的FPGA的查表和位移累加操作,明顯的提高了運算效率;最后,完成了相控陣?yán)走_(dá)系統(tǒng)的FFT FPGA算法實現(xiàn),實驗結(jié)果表明,本次試驗均達(dá)到了設(shè)計要求。
一、體系架構(gòu)發(fā)展現(xiàn)狀
對于體系架構(gòu)標(biāo)準(zhǔn)而言,是指對設(shè)備機(jī)械尺寸、電氣標(biāo)準(zhǔn)、互聯(lián)結(jié)構(gòu)等一系列的規(guī)范。而對于現(xiàn)階段所用到的雷達(dá)信號處理機(jī)而言,主要采用主要采用采用CPCI與VME兩種架構(gòu)方式,它們所采用的規(guī)范分別為PICMIG與VITA組織的規(guī)范。
但是隨著處理數(shù)據(jù)量的不斷增加增加,CPCI與VME這兩種架構(gòu)的總線帶寬已不能滿足現(xiàn)階段實際應(yīng)用需求。為此,PICMIG和VITA組織各自推出了CPCI Express和VPX總線標(biāo)準(zhǔn),在一定程度上打破了體系結(jié)構(gòu)與帶寬的限制。對于CPCI Express架構(gòu)而言,支持通用操作系統(tǒng)與熱插拔技術(shù),具有良好的軟件適應(yīng)性特點;對于VPX架構(gòu)而言,擁有堅固的機(jī)械結(jié)構(gòu)與良好的冷卻能力,在現(xiàn)階段對高速傳輸要求要求不斷提升的形勢下有著良好的應(yīng)用前景。
二、FPGA的設(shè)計基礎(chǔ)
2.1FPGA的基本構(gòu)成
現(xiàn)在主要的生產(chǎn)FPGA的公司有四家,他們分別是Xilinx、Altera、Lattice、以及Actel。但是這四家生產(chǎn)的FPGA各有特點。主要工藝有SRAM和FLASH這兩種。
(1)可編程輸入輸出單元:輸入輸出單元簡稱I/O單元,I/O單元特供了連接外接器件的引腳和內(nèi)部邏輯陣列之間的連接。I/O單元主要由輸入觸發(fā)器、輸入緩沖器、輸出觸發(fā)和輸出緩沖器組成。(2)基本可編程邏輯單元:可編程邏輯單元是FPGA的主要結(jié)構(gòu),是實現(xiàn)邏輯功能的結(jié)構(gòu),可編程邏輯單元主要由觸發(fā)器和查找表組成。(3)嵌入式塊RAM:RAM可用作單端口和雙端口,這極大地擴(kuò)展了FPGA的應(yīng)用范圍和靈活性。(4)布線資源:各種長度的連線和一些可編程連接開關(guān),他們將各個基本可編程和輸入與輸出連接在一起,構(gòu)成了各種各樣的復(fù)雜結(jié)構(gòu)。
2.2關(guān)于FPGA的設(shè)計流程
FPGA的設(shè)計流程主要由以下幾部分組成:設(shè)計輸入、綜合設(shè)計、適配、仿真、編程下載。
(1)設(shè)計輸入:以一定的方式將電路系統(tǒng)輸入給EDA工具,現(xiàn)在最為常用的兩種輸入方式為圖形法和文本輸入法。(2)綜合設(shè)計:總額輸入是指把HDL語言、原理圖等設(shè)計輸入翻譯成由與、或、非、觸發(fā)器、RAM等元器件的連接,并且根據(jù)最終的目標(biāo)要求將生成的連接進(jìn)行優(yōu)化,輸出能夠使FPGA實現(xiàn)的標(biāo)準(zhǔn)的網(wǎng)表文件。(3)適配:配置的用途是將生成好的網(wǎng)表文件配置到指定的目標(biāo)期間之中,使之產(chǎn)生最終的的下載文件。(4)仿真:將完成布局線后的時延信息反標(biāo)到網(wǎng)表中所進(jìn)行的仿真,也叫做時序仿真,簡稱后仿真。(5)編程下載:到了設(shè)計的最后階段便要進(jìn)行在線調(diào)試或者是將生成的文件寫入芯片中進(jìn)行測試。
三、高效FFT處理器的FPGA設(shè)計
3.1FFT實現(xiàn)的硬件結(jié)構(gòu)
(1)遞歸結(jié)構(gòu)。遞歸結(jié)構(gòu)簡單講就是順序結(jié)構(gòu),采用遞歸結(jié)構(gòu)的優(yōu)點是系統(tǒng)占用的資源比較少,簡單控制方便;其缺點是運行速度比較慢,很難滿足實時信號的處理要求。
(2)級聯(lián)結(jié)構(gòu)。簡單的遞歸結(jié)構(gòu)使用一次蝶形運算單元,占用的資源比較少,但是處理速度慢。級聯(lián)結(jié)構(gòu)根據(jù)不同的級劃分出不同的蝶形運算單元,這樣每一級就占用一次蝶形單元,沒以及完成固定的數(shù)據(jù)處理操作,然后傳遞給下一級的蝶形運算單元,以流水線的方式進(jìn)行處理。這樣的結(jié)構(gòu)對于連續(xù)的實時信后處理的速度大大提升。
(3)陣列結(jié)構(gòu)。陣列結(jié)構(gòu)采用的是多個蝶形單元的并列放置來提高FFT的點數(shù),但是由于這種方法會成倍的增加蝶形單元的數(shù)量,無形中也就增加了資源的消耗。
3.2存儲單元結(jié)構(gòu)
為了達(dá)到連續(xù)數(shù)據(jù)流的目的,在各級蝶形運算單元中采用了雙口RAM對計算的中間結(jié)果設(shè)計,實補(bǔ)和虛部的容量一共是單個蝶形運算原件的兩倍,存儲單元還包括旋轉(zhuǎn)因子的存儲,每一級蝶形運算單元包括兩塊ROM旋轉(zhuǎn)因子的實部和虛部。
3.3地址產(chǎn)生單元
FFT在運算過程中需要用到大量的RAM和ROM,如何能夠正確的取出數(shù)據(jù)及存儲數(shù)據(jù)是一個非常重要的問題。當(dāng)FFT運算時會產(chǎn)生3組地址,蝶形運算輸入數(shù)據(jù)的地址、蝶形運算結(jié)果輸入下一級的地址、以及運算結(jié)束后最終的輸出地址。由于采用的是同位運算,所以讀地址也就是寫地址,延遲時間即為一次蝶形運算的時間。
3.4FFT處理器的性能分析
提高FFT處理器的性能主要的方法就是采用并行處理和流水線技術(shù)。在采用流水線技術(shù)時,根據(jù)FFT的級聯(lián)結(jié)構(gòu)的特點采用了多級流水線這一解決方案,使得整個信號序列的運算時間僅為一級蝶形單元的運算時間。在提高并行度方面,并行遞歸結(jié)構(gòu)設(shè)計了能夠同時產(chǎn)生四個RAM地址和3個ROM地址的地址發(fā)生器,提高了處理器的運算效率。
四、FPGA對于濾波及相關(guān)運算的實現(xiàn)
4.1基于MAC的濾波器設(shè)計
采用MAC方法就是直接調(diào)用乘累加單元進(jìn)行計算,而FPGA內(nèi)置乘法器,所以FPGA對于此非常適合該功能?;诓蓸勇屎碗A數(shù)的要求,可以采用一個或多個乘法器。采用多個乘法器可以提高運算效率降低運算成本,但需要消耗較多的資源。
N階濾波器需要用到前(N-1)個數(shù)據(jù),每當(dāng)采集一個新數(shù)據(jù),將需要所有的數(shù)據(jù)都往前移一位,把老數(shù)據(jù)用新數(shù)據(jù)代替,在FPGA中可以使用有多個D觸發(fā)器組成的位移器來寄存。該方法的優(yōu)點是靈活,缺點是占用大量的資源。
4.2用FPGA來實現(xiàn)相關(guān)的運算
(1)在時域內(nèi)的相關(guān)運算。相關(guān)運算是數(shù)字信號處理的基本處理方法,實現(xiàn)相關(guān)運算的方法有時域與頻域兩種。時域內(nèi)的相關(guān)處理相對來說比較簡單,但對于系統(tǒng)的性能要求比較高,相關(guān)運算和數(shù)字濾波都是基于成累加,所以設(shè)計濾波的兩種方法都是用于相關(guān)運算的設(shè)計。一種是用查表的形式實現(xiàn)運算,該方法實現(xiàn)相關(guān)運算時與點數(shù)沒有關(guān)系,缺點是占用大量的資源。另一種是采用成累加的方法,在用這種方法時可以考慮采用FPGA并行運算的特點,用多個乘累加單元進(jìn)行并行運算,這樣FPGA可以工作在一個時鐘頻率較低的環(huán)境中。
(2)在頻域內(nèi)的相關(guān)運算。時域內(nèi)的相關(guān)運算的特點是實現(xiàn)簡單,實時性強(qiáng)。但當(dāng)先關(guān)運算的點數(shù)較大時,時域內(nèi)的相關(guān)運算量會十分龐大,很難滿足實時性的要求。頻域內(nèi)的相關(guān)運算采用了FFT的相關(guān)方法,可以大大的減少運算量。所采用的方法是時域相關(guān)法。根據(jù)傅里葉變化規(guī)律、時卷積定理,可以采用快速傅里葉變換和反變換在頻域內(nèi)實現(xiàn),稱為快速頻域卷積法。
五、基于FPGA的相控陣?yán)走_(dá)系統(tǒng)
各種各樣的應(yīng)用背景要求現(xiàn)代的雷達(dá)不僅局限于對目標(biāo)的探測,更要給出被探測物的方位、速度、形狀等參數(shù),這就對現(xiàn)代雷達(dá)的性能提出了很高的要求。
為了提高雷達(dá)系統(tǒng)的性能,可以采取多種高速串行結(jié)合的傳輸方式來提高雷達(dá)的性能,F(xiàn)PGA技術(shù)和PowerPC技術(shù)相結(jié)合的處理結(jié)構(gòu)單元,利用高速差分連接器技術(shù)實現(xiàn)苛刻環(huán)境下的超大功率、超大帶寬傳輸。
在雷達(dá)信號處理領(lǐng)域,目前主要處理單元有FPGA和CPU,隨著半導(dǎo)體的迅猛發(fā)展,F(xiàn)PGA憑借其天然的可編性,大數(shù)據(jù)處理量,大有取代DSP硬核和高速串行傳輸技術(shù)的勢頭,同時FPGA支持多種通信協(xié)議和電平標(biāo)準(zhǔn),在未來的雷達(dá)信號處理系統(tǒng)中可以扮演轉(zhuǎn)換橋的角色,采用CPU與FPGA結(jié)合的處理結(jié)構(gòu)單元使雷達(dá)系統(tǒng)后的更靈活的處理能力。
六、結(jié)語
本文以FPGA在數(shù)字信號處理的背景下,討論了高效FFT的實現(xiàn)、相關(guān)運算與濾波器的實現(xiàn)、圖像聲吶的實現(xiàn)等FPGA實現(xiàn)方法的具體事項。綜合驗證了FPGA在這些領(lǐng)域的應(yīng)用,結(jié)果都較為理想,為以后FPGA的更廣泛的發(fā)展提供一點粗略的經(jīng)驗。
參考文獻(xiàn)
[1]行韶胥讠,段衍東,韓濤.基于FPGA的簡易數(shù)字信號傳輸性能分析系統(tǒng)[J].氣象水文海洋儀器,2012,29(3):41-46.
[2]彭宇,姜紅蘭,楊智明等.基于DSP和FPGA的通用數(shù)字信號處理系統(tǒng)設(shè)計[J].國外電子測量技術(shù),2013,(1):17-21.
[3]廖聰裕,魯錦濤,蘇建如.基于FPGA的數(shù)字信號傳輸性能分析儀[J].河北農(nóng)機(jī),2012,(2):59-60.
[4]霍志,謝啟友,郭靖等.一種基于FPGA的雷達(dá)數(shù)字信號處理機(jī)設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(1):13-16.