程軍++何冠冠
[摘 要]隨著現(xiàn)代工業(yè)的發(fā)展,人們對(duì)數(shù)字信號(hào)的處理要求越來越高,特別是對(duì)數(shù)字信號(hào)的實(shí)時(shí)性要求提出很高的要求,但是當(dāng)現(xiàn)有的信號(hào)處理器都無(wú)法達(dá)到所需要的速度時(shí),首先想到的解決辦法是增加處理器的數(shù)目,或者是采取門陣列的方式。另一方面,隨著可編程邏輯器件技術(shù)的發(fā)展,擁有特殊并行處理能力的現(xiàn)場(chǎng)可編程門陣列在不管是體積、性能還是成本等方面都顯示出了無(wú)與倫比的優(yōu)勢(shì)。本文就基于FPGA的數(shù)字信號(hào)處理算法研究與高效實(shí)現(xiàn)問題,進(jìn)行了淺要探討。
[關(guān)鍵詞]FPGA;數(shù)字信號(hào)處理;算法研究;高效實(shí)現(xiàn)
中圖分類號(hào):TN791 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-914X(2016)20-0275-01
FPGA(現(xiàn)場(chǎng)可編程門陣列)和DSP(數(shù)字信號(hào)處理芯片)發(fā)展至今已經(jīng)有了二十多年的歷史,但和DSP很早就確立數(shù)字信號(hào)處理領(lǐng)域的霸主地位相比,F(xiàn)PGA由于成本、功耗和性能限制,一直被使用在系統(tǒng)外圍,從最初用于膠合邏輯,到控制邏輯,再到用于數(shù)據(jù)通路,慢慢地接近系統(tǒng)的核心”。進(jìn)入21世紀(jì)后,隨著90和65納米工藝的采用,F(xiàn)PGA在成本、功耗和性能上大幅改善,具備成為系統(tǒng)核心的條件;另一方面,3G和互聯(lián)網(wǎng)時(shí)代的來臨,要求復(fù)雜和大量并行處理,DSP在做并行處理時(shí)不如FPGA,這為具有強(qiáng)大并行處理能力的FPGA帶來了需求。正因?yàn)槿绱?,Xilinx、Altera公司推出的多款FPGA都具備了強(qiáng)大的數(shù)字信號(hào)處理能力在通信、消費(fèi)、嵌入式等領(lǐng)域,并開始行使DSP的功能。Xilinx于2008年初向市場(chǎng)推出的針對(duì)高性能數(shù)字信號(hào)處理而優(yōu)化的65納米virtex一5sxT現(xiàn)場(chǎng)可編程門陣列,最高DSP性能達(dá)到352GMAC(每秒十億次乘累加),192至660個(gè)專用18x25位DSPSlices。同時(shí)該公司又推出低成本Spartan一DsP系列新型xtremeDsP組合,可提供超過30GMAC/2200GbPs存儲(chǔ)器帶寬,與同類的其它高性能可配置DSP器件相比,動(dòng)態(tài)功耗降低多達(dá)50%,而價(jià)格不到30美元。與此同時(shí),Altera公司也推出了65納米低成本cyclonem系列產(chǎn)品,它含有288個(gè)數(shù)字信號(hào)處理乘法器,其性能可達(dá)260MHz,存儲(chǔ)器能達(dá)到4MB,適合寬帶并行處理應(yīng)用,而功耗與上一代90納米CycloneH相比降低了50%。FPGA強(qiáng)大的并行處理能力也給水聲信號(hào)處理領(lǐng)域注入了新的活力。如在圖像聲納、多波束測(cè)深等系統(tǒng)中需要對(duì)幾十路甚至上百路信號(hào)進(jìn)行處理,運(yùn)算量十分龐大,對(duì)實(shí)時(shí)性的要求也非常高,如果利用FPGA實(shí)現(xiàn)則可能極大的減小系統(tǒng)的功耗,體積和成本。
一、FPGA的設(shè)計(jì)基礎(chǔ)
1、FPGA的基本構(gòu)成
現(xiàn)在主要的生產(chǎn)FPGA的公司有四家,他們分別是Xilinx、Altera、Lattice、以及 Actel。但是這四家生產(chǎn)的FPGA各有特點(diǎn)。主要工藝有SRAM和FLASH這兩種。
(1)可編程輸入輸出單元:輸入輸出單元簡(jiǎn)稱I/O單元,I/O單元特供了連接外接器件的引腳和內(nèi)部邏輯陣列之間的連接。I/O單元主要由輸入觸發(fā)器、輸入緩沖器、輸出觸發(fā)和輸出緩沖器組成。
(2)基本可編程邏輯單元:可編程邏輯單元是FPGA的主要結(jié)構(gòu),是實(shí)現(xiàn)邏輯功能的結(jié)構(gòu),可編程邏輯單元主要由觸發(fā)器和查找表組成。
(3)嵌入式塊RAM:RAM可用作單端口和雙端口,這極大地?cái)U(kuò)展了FPGA的應(yīng)用范圍和靈活性。
(4)布線資源:各種長(zhǎng)度的連線和一些可編程連接開關(guān),他們將各個(gè)基本可編程和輸入與輸出連接在一起,構(gòu)成了各種各樣的復(fù)雜結(jié)構(gòu)。
2、關(guān)于FPGA的設(shè)計(jì)流程
FPGA的設(shè)計(jì)流程主要由以下幾部分組成:設(shè)計(jì)輸入、綜合設(shè)計(jì)、適配、仿真、編程下載。
(1)設(shè)計(jì)輸入:以一定的方式將電路系統(tǒng)輸入給EDA工具,現(xiàn)在最為常用的兩種輸入方式為圖形法和文本輸入法。
(2)綜合設(shè)計(jì):總額輸入是指把HDL語(yǔ)言、原理圖等設(shè)計(jì)輸入翻譯成由與、或、非、觸發(fā)器、RAM等元器件的連接,并且根據(jù)最終的目標(biāo)要求將生成的連接進(jìn)行優(yōu)化,輸出能夠使FPGA實(shí)現(xiàn)的標(biāo)準(zhǔn)的網(wǎng)表文件。
(3)適配:配置的用途是將生成好的網(wǎng)表文件配置到指定的目標(biāo)期間之中,使之產(chǎn)生最終的的下載文件。
(4)仿真:將完成布局線后的時(shí)延信息反標(biāo)到網(wǎng)表中所進(jìn)行的仿真,也叫做時(shí)序仿真,簡(jiǎn)稱后仿真。
3、高速FFT處理器設(shè)計(jì)
針對(duì)圖像聲納實(shí)時(shí)性的要求,研究了FFT處理器的三種體系結(jié)構(gòu):級(jí)聯(lián)、遞歸、陣列。考慮到器件片內(nèi)資源和處理器性能的限制,采用了級(jí)聯(lián)和并行遞歸結(jié)構(gòu)的FFT處理器。級(jí)聯(lián)結(jié)構(gòu)采用了多級(jí)流水線,在節(jié)約資源的同時(shí)提高了處理速度。同時(shí)在蝶形運(yùn)算中引入了CORDIC算法,提高了處理器的最高工作頻率:并行遞歸結(jié)構(gòu)充分利用基四蝶形運(yùn)算的特點(diǎn),采用了并行和塊浮點(diǎn)結(jié)構(gòu),兼顧定點(diǎn)的高速率和浮點(diǎn)的高精度。此外,在通過了時(shí)序仿真的基礎(chǔ)上還設(shè)計(jì)了硬件測(cè)試平臺(tái),對(duì)實(shí)時(shí)采集的數(shù)據(jù)進(jìn)行FFT運(yùn)算,進(jìn)一步驗(yàn)證了設(shè)計(jì)的正確。本文設(shè)計(jì)的兩種FFT處理器,工作在150MHz時(shí),完成1024點(diǎn)FFT運(yùn)算分別只需要6.83us和8.sus,達(dá)到了設(shè)計(jì)指標(biāo)。
4、數(shù)字濾波器及相關(guān)器設(shè)計(jì)
數(shù)字濾波和相關(guān)器中最主要的操作是乘累加(MAC),根據(jù)所選FPGA的片內(nèi)資源,采用了有乘法器和無(wú)乘法器兩種結(jié)構(gòu)。無(wú)乘法器結(jié)構(gòu)采用分布式算法,將乘法運(yùn)算轉(zhuǎn)化為FPGA易于實(shí)現(xiàn)的查找表和移位累加操作。針對(duì)相關(guān)運(yùn)算對(duì)實(shí)時(shí)性的要求,采用了可擴(kuò)展MAC的結(jié)構(gòu)。此外,對(duì)相關(guān)運(yùn)算的頻域?qū)崿F(xiàn)方法進(jìn)行了研究,利用復(fù)數(shù)乘法與4點(diǎn)DFT的相似性,分時(shí)復(fù)用乘法器資源,實(shí)現(xiàn)了對(duì)資源的共享。
5、工程應(yīng)用
(1)在MAC和DA方法的基礎(chǔ)上設(shè)計(jì)了多通道濾波器結(jié)構(gòu),為超短基線定位系統(tǒng)設(shè)計(jì)了8通道、256階、200kHz采樣率、通頻帶為8.skHz一15.skHz的帶通FIR濾波器,實(shí)際測(cè)試表明該濾波器性能良好。
(2)圖像聲納預(yù)處理模塊的實(shí)現(xiàn)。在單片EPZS6O上實(shí)現(xiàn)了對(duì)160路信號(hào)的接收、濾波、正交變換以及發(fā)送。性能良好,達(dá)到了設(shè)計(jì)要求。本文對(duì)數(shù)字信號(hào)處理算法在FPGA中的實(shí)現(xiàn)做了有益的嘗試,所設(shè)計(jì)的FFT、濾波及相關(guān)等算法均接近了IP核的效率,達(dá)到了高效實(shí)現(xiàn)的目的。通過完成圖像聲納預(yù)處理模塊的經(jīng)驗(yàn)可以看出,在高速、大運(yùn)算量、算法結(jié)構(gòu)規(guī)整等場(chǎng)合選擇FPGA作為處理器,可以有效地減小系統(tǒng)的成本、體積和功耗,使得系統(tǒng)的單芯片解決方案成為可能。同時(shí)論文中還存在以下幾點(diǎn)不足和需要改進(jìn)的地方:①FFT處理器的并行遞歸結(jié)構(gòu)中,當(dāng)點(diǎn)數(shù)N大于1024時(shí),若仍采用單蝶形運(yùn)算模塊,N點(diǎn)FFT運(yùn)算的時(shí)間將大于N個(gè)時(shí)鐘周期,為達(dá)到高速運(yùn)算的目的,有必要采用多蝶形單元并行運(yùn)算。②相關(guān)運(yùn)算的頻域方法僅實(shí)現(xiàn)了32點(diǎn)和128點(diǎn),由于時(shí)間關(guān)系未能完成更高點(diǎn)數(shù)的運(yùn)算。這些問題有待后續(xù)同學(xué)完善和提高。③圖像聲納預(yù)處理模塊僅完成了在實(shí)驗(yàn)室的聯(lián)調(diào),需要在水池做進(jìn)一步的實(shí)驗(yàn)。
二、結(jié)論
本文以FPGA在數(shù)字信號(hào)處理的背景下,討論了高效FFT的實(shí)現(xiàn)、相關(guān)運(yùn)算與濾波器的實(shí)現(xiàn)、圖像聲吶的實(shí)現(xiàn)等 FPGA 實(shí)現(xiàn)方法的具體事項(xiàng)。 綜合驗(yàn)證了FPGA在這些領(lǐng)域的應(yīng)用,結(jié)果都較為理想,為以后FPGA的更廣泛的發(fā)展提供一點(diǎn)粗略的經(jīng)驗(yàn)。
參考文獻(xiàn)
[1]行韶谞,段衍東,韓濤.基于FPGA的簡(jiǎn)易數(shù)字信號(hào)傳輸性能分析系統(tǒng)[J].氣象水文海洋儀器,2012,29(3):41-46.
[2]彭宇,姜紅蘭,楊智明等.基于DSP和FPGA的通用數(shù)字信號(hào)處理系統(tǒng)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2013,(1):17-21.