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