基于FPGA的FIR濾波器的設(shè)計(jì)(畢業(yè)設(shè)計(jì))----可用(共44頁(yè))_第1頁(yè)
基于FPGA的FIR濾波器的設(shè)計(jì)(畢業(yè)設(shè)計(jì))----可用(共44頁(yè))_第2頁(yè)
基于FPGA的FIR濾波器的設(shè)計(jì)(畢業(yè)設(shè)計(jì))----可用(共44頁(yè))_第3頁(yè)
基于FPGA的FIR濾波器的設(shè)計(jì)(畢業(yè)設(shè)計(jì))----可用(共44頁(yè))_第4頁(yè)
基于FPGA的FIR濾波器的設(shè)計(jì)(畢業(yè)設(shè)計(jì))----可用(共44頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目 錄專心-專注-專業(yè)基于FPGA的FIR濾波器的設(shè)計(jì)摘要:本文設(shè)計(jì)了一個(gè)基于FPGA的16階FIR低通濾波器,使用分布式算法作為濾波器的硬件實(shí)現(xiàn)算法,并對(duì)其進(jìn)行了詳細(xì)的討論。針對(duì)分布式算法中LUT規(guī)模過大的缺點(diǎn),采用多塊查找表的方式減小硬件規(guī)模。在設(shè)計(jì)中采用了自頂向下的層次化、模塊化的設(shè)計(jì)思想,將整個(gè)濾波器劃分為多個(gè)模塊,利用VHDL語(yǔ)言的描述方法進(jìn)行了各個(gè)功能模塊的設(shè)計(jì),最終完成了FIR數(shù)字濾波器的系統(tǒng)設(shè)計(jì)。文章采用CycloneII系列器件實(shí)現(xiàn)一個(gè)16階的FIR低通濾波器的設(shè)計(jì)實(shí)例,用QuartusII軟件進(jìn)行了仿真,并用Matlab對(duì)仿真結(jié)果進(jìn)行了分析,證明所

2、設(shè)計(jì)的FIR濾波器功能正確。仿真結(jié)果表明,本論文所設(shè)計(jì)的FIR濾波器硬件模較小,采樣率達(dá)到了10MHz。同時(shí)只要將查找表進(jìn)行相應(yīng)的改動(dòng),就能分別實(shí)現(xiàn)低通、高通、帶通FIR濾波器,體現(xiàn)了設(shè)計(jì)的靈活性。關(guān)鍵詞:FIR濾波器;FPGA器件;VHDL語(yǔ)言;分布式算法;查找表Design of FIR Filters Based on FPGAAbstract: In this paper, a sixteen tapped low pass FIR filter is designed based on FPGA, a scheme of hardware implementation is work

3、ed out using distributed arithmetic algorithm, and is discussed in detail. As the scale of the LUT in the distributed arithmetic algorithm is so large, the thesis reduces it with the using of multiple coefficient memory banks. From the clew of implementing a top-down stratified modular design, the t

4、hesis describes the hardware designed of all functional modules and the FIR system with the VHDL and schematic diagram designed methods.In this thesis, A sixteen tapped low-pass FIR filter implemented using CycloneII taken as an example, and the simulation designed carried out using QuartusII. The r

5、esult of the simulation is analyzed with the use of Matlab, and it proved that the functional of the design if correct.The result of the simulation indicates that the scale of the design is small,and the sample rate of the FIR filter can search 10MHz. Modifying the LUT can realize the low-pass, high

6、-pass and band-pass FIR filters and respectively and incarnates the flexibility of the design.Key Words:FIR Filter;FPGA;VHDL;Distribute Darithmatic;LUT1 引言濾波技術(shù)是信號(hào)分析、信號(hào)處理技術(shù)中的重要分支。無論是信號(hào)的獲取、傳輸,還是信號(hào)的處理、轉(zhuǎn)換都離不開濾波技術(shù)。濾波技術(shù)對(duì)信號(hào)安全可靠和有效靈活的傳遞至關(guān)重要1。在電子系統(tǒng)中,由于濾波器的好壞直接影響系統(tǒng)的性能,所以濾波技術(shù)己成為備受關(guān)注而熱門的課題,濾波器的研制己受到各國(guó)研究者越來越多的重視

7、。我國(guó)在上世紀(jì)50年代后期開始廣泛使用濾波器,主要應(yīng)用在報(bào)路和話路濾波。經(jīng)過半個(gè)多世紀(jì)的發(fā)展,我國(guó)濾波器在研制、生產(chǎn)、應(yīng)用等方面己進(jìn)入國(guó)際發(fā)展軌道,但由于缺少專門研制機(jī)構(gòu),加之集成工藝和材料工業(yè)發(fā)展步伐的緩慢,使得我國(guó)在許多新型濾波器的研制和應(yīng)用方面與國(guó)外仍有較大的差距。數(shù)字濾波器是對(duì)離散時(shí)間信號(hào)進(jìn)行濾波處理以得到期望的響應(yīng)特性的離散時(shí)間系統(tǒng)。數(shù)字濾波器一般由寄存器、延時(shí)器、加法器和乘法器等基本數(shù)字電路來實(shí)現(xiàn)。數(shù)字濾波器能滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,避免模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題。隨著集成電路技術(shù)的發(fā)展,數(shù)字濾波器性能不斷提高而成本卻不斷降低。數(shù)字濾波器在語(yǔ)

8、音信號(hào)處理、圖像信號(hào)處理、醫(yī)學(xué)生物信號(hào)處理以及其他應(yīng)用領(lǐng)域都得到了廣泛應(yīng)用。隨著電子計(jì)算機(jī)和大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字濾波器可用計(jì)算機(jī)軟件實(shí)現(xiàn),也可用大規(guī)模集成數(shù)字硬件實(shí)時(shí)實(shí)現(xiàn),數(shù)字濾波器已具備了高精度、高可靠性、可程控改變性或復(fù)用、便于集成等眾多優(yōu)點(diǎn)。按照數(shù)字濾波器(DF)的特性,可分為線性與非線性、因果與非因果、無限長(zhǎng)沖激響應(yīng)(IIR)與有限長(zhǎng)沖激響應(yīng)(FIR)等類型。在這些濾波器中,線性時(shí)不變的數(shù)字濾波器是最基本的類型。由于數(shù)字系統(tǒng)可以對(duì)延時(shí)器加以利用,因此若在數(shù)字濾波器中引入一定程序的非因果性,就可獲得比傳統(tǒng)的因果濾波器更靈活強(qiáng)大的特性。相對(duì)于IIR濾波器,F(xiàn)IR濾波器具有易于實(shí)現(xiàn)

9、和系統(tǒng)絕對(duì)穩(wěn)定的優(yōu)勢(shì),因此得到廣泛的應(yīng)用2。1.1 國(guó)內(nèi)外研究現(xiàn)狀在國(guó)內(nèi)外的研究中,設(shè)計(jì)FIR濾波器所涉及的乘法運(yùn)算方式有:并行乘法、位串行乘法和采用分布式算法的乘法。并行乘法雖然速度快,同時(shí)占用的硬件資源極大。如果濾波器的長(zhǎng)度增加,乘法器位數(shù)也將變大,硬件規(guī)模將變得十分龐大。位串行乘法器的實(shí)現(xiàn)方法主要是通過對(duì)乘法運(yùn)算進(jìn)行分解,用加法器來完成乘法的功能,也即無乘法操作的乘法器。但由于一個(gè)8*8位的乘法器輸出為16位,為了得到正確的16位結(jié)果,串行輸入的二進(jìn)制補(bǔ)碼數(shù)要進(jìn)行符號(hào)位擴(kuò)展,即將串行輸入的8位二進(jìn)制補(bǔ)碼前補(bǔ)8個(gè)0(對(duì)正數(shù))或8個(gè)1(對(duì)負(fù)數(shù))后才輸入乘法器。如果每一位的運(yùn)算需要一個(gè)時(shí)鐘周期

10、的話,這個(gè)乘法器需要16個(gè)時(shí)鐘周期才能計(jì)算出正確結(jié)果,這就意味著此類乘法器要完全計(jì)算出結(jié)果的延遲必將會(huì)很大。所以位串行乘法器雖然使得乘法器的硬件規(guī)模達(dá)到了最省,但是由于是串行運(yùn)算,使得它的運(yùn)算周期過長(zhǎng),速度與規(guī)模折衷考慮時(shí)不是最優(yōu)的。分布式算法(distributed arithmetic,AD)的主要特點(diǎn)是巧妙的利用ROM查找表將固定系數(shù)的乘累加(Multiply-accumulator,MAC)運(yùn)算轉(zhuǎn)化為查表操作,它與傳統(tǒng)算法實(shí)現(xiàn)乘累加運(yùn)算的不同在于執(zhí)行部分積運(yùn)算的先后順序不同。分布式算法在完成乘累加功能時(shí)是通過將各輸入數(shù)據(jù)每一對(duì)應(yīng)位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)的部分積,然后再對(duì)各個(gè)部

11、分積累加產(chǎn)生最終結(jié)果,而傳統(tǒng)算法是等到所有乘積已經(jīng)產(chǎn)生之后再來相加來完成乘累加運(yùn)算的。就小位寬來說,AD算法設(shè)計(jì)的FIR濾波器的速度可以顯著的超過基于MAC的設(shè)計(jì)。相對(duì)于前兩種方法,DA算法既可以全并行實(shí)現(xiàn),又可以全串行實(shí)現(xiàn),還可以串并行結(jié)合實(shí)現(xiàn),可以在硬件規(guī)模和濾波器速度之間作適當(dāng)?shù)恼壑?,是現(xiàn)在被研究的主要方法。FIR數(shù)字濾波器的實(shí)現(xiàn),大體可以分為軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)方法兩種。軟件實(shí)現(xiàn)方法即是在通用的微型計(jì)算機(jī)上用軟件實(shí)現(xiàn)。利用計(jì)算機(jī)的存儲(chǔ)器、運(yùn)算器和控制器把濾波所要完成的運(yùn)算編成程序通過計(jì)算機(jī)來執(zhí)行,軟件可由使用者自己編寫,也可以使用現(xiàn)成的。國(guó)內(nèi)外的研究機(jī)構(gòu)、公司已經(jīng)推出了不同語(yǔ)一言的信號(hào)濾

12、波處理軟件包。但是這種方法速度慢,難以對(duì)信號(hào)進(jìn)行實(shí)時(shí)處理,雖然可以用快速傅立葉變換算法來加快計(jì)算速度,但要達(dá)到實(shí)時(shí)處理要付出很高的代價(jià),因而多用于教學(xué)與科研。硬件實(shí)現(xiàn)即是設(shè)計(jì)專門的數(shù)字濾波硬件,采用硬件實(shí)現(xiàn)的方法一般都比采用軟件實(shí)現(xiàn)方法要困難得多,目前主要采用的方法有以下幾種3:(1)采用DSP(Digital Signal Processing)處理器實(shí)現(xiàn)DSP處理器是專為數(shù)字信號(hào)處理而設(shè)計(jì)的,如TI公司的TMS32OCX系列,AD公司的ADSPZXI,ADSP210X系列等。它主要數(shù)字運(yùn)算單元是一個(gè)乘累加器(Multiply-accumulator MAC),能夠在一個(gè)機(jī)器周期內(nèi)完成一次乘

13、累加運(yùn)算,配有適合于信號(hào)處理的指令,具備獨(dú)特的循環(huán)尋址和倒序?qū)ぶ纺芰?。這些特點(diǎn)都非常適合數(shù)字信號(hào)處理中的濾波器設(shè)計(jì)的有效實(shí)現(xiàn),并且它速度快,成本低,在過去的20多年的時(shí)間里,軟件可編程的DPS器件幾乎統(tǒng)治了商用數(shù)字信號(hào)處理硬件的市場(chǎng)。(2)采用固定功能的專用信號(hào)處理器來實(shí)現(xiàn),適用于過程固定而又追求高速的信號(hào)處理任務(wù),是以指定的算法來確定它的結(jié)構(gòu),使用各種隨機(jī)邏輯器件組成的信號(hào)處理器。它們體積小、保密性好,具有極高的性能,然而靈活性差。二者相比,固定功能的DSP專用器件可以提供很好的實(shí)時(shí)性能,但其靈活性差,研發(fā)周期長(zhǎng),難度也比較大;DSP處理器的成本低且速度較快,靈活性好,但由于軟件算法在執(zhí)行時(shí)

14、的順序性,限制了它在高速和實(shí)時(shí)系統(tǒng)中的應(yīng)用。在一些高速應(yīng)用中,系統(tǒng)性能的要求不斷增長(zhǎng),而DSP性能的提高卻落后于需求的增長(zhǎng)?,F(xiàn)在,大規(guī)模可編程邏輯器件為數(shù)字信號(hào)處理提供了一種新的實(shí)現(xiàn)方案。分布式算法可以很好地在FPGA(Field Programmable Gate Array)中實(shí)現(xiàn),然而卻不能有效的在DSP處理器中實(shí)現(xiàn),所以采用FPGA使用分布式算法實(shí)現(xiàn)FIR數(shù)字濾波器有著很好的發(fā)展前景。采用現(xiàn)場(chǎng)可編程門陣列FPGA來實(shí)現(xiàn)FIR數(shù)字濾波器,既兼顧ASIC器件(固定功能DSP專用芯片)的實(shí)時(shí)性、又具有DSP處理器的靈活性。FPGA和DSP技術(shù)的結(jié)合能夠更進(jìn)一步提高集成度、加快速度和擴(kuò)展系統(tǒng)功

15、能。用FPGA設(shè)計(jì)的產(chǎn)品還具有體積小、速度快、重量輕、功耗低、可靠性高、仿制困難、上批量成本低等優(yōu)點(diǎn)。但是,DA算法中的查找表的規(guī)模隨著FIR數(shù)字濾波器長(zhǎng)度的增加呈指數(shù)增長(zhǎng),而且隨著濾波器系數(shù)的位數(shù)的增加,查找表的規(guī)模也會(huì)增加,這將極大的增加設(shè)計(jì)的硬件規(guī)模。所以如何減小查找表的規(guī)模成為尚待解決的問題。1.2 本論文的研究?jī)?nèi)容及主要工作本論文重點(diǎn)研究的是FIR低通數(shù)字濾波器的研究與設(shè)計(jì),具體內(nèi)容分為五節(jié):第一節(jié)引言主要介紹了本課題的來源及研究意義、國(guó)內(nèi)外現(xiàn)狀。第二節(jié)主要介紹了FIR數(shù)字濾波器的原理以及線性相位FIR濾波器的結(jié)構(gòu)和設(shè)計(jì)方法。第三節(jié)介紹了FPGA設(shè)計(jì)優(yōu)點(diǎn)及DA算法優(yōu)化研究,重點(diǎn)是分布

16、式算法的原理以及DA算法優(yōu)化的研究與設(shè)計(jì),并對(duì)具體的分組優(yōu)化方法做了詳細(xì)的討論。第四節(jié)首先利用Matlab制定設(shè)計(jì)指標(biāo),提取16階FIR低通數(shù)字濾波器的抽頭數(shù)并進(jìn)行量化。然后基于FPGA分模塊對(duì)其進(jìn)行研究設(shè)計(jì),并進(jìn)行綜合系統(tǒng)仿真和驗(yàn)證。最后介紹了A/D、D/A模塊的具體設(shè)計(jì)方法,給出了電路原理圖。文章最后給出了現(xiàn)場(chǎng)測(cè)試的一些照片。2 FIR數(shù)字濾波器設(shè)計(jì)2.1 數(shù)字濾波器基礎(chǔ)數(shù)字濾波器在數(shù)字信號(hào)處理中屬于預(yù)處理的部分,因而起著基礎(chǔ)性的作用,數(shù)字濾波器包括IIR和FIR數(shù)字濾波器。數(shù)字濾波器具有精度高、穩(wěn)定性好、靈活性強(qiáng)、不要求阻抗匹配,易于修改等特點(diǎn)。下面將首先介紹一下數(shù)字濾波器,然后重點(diǎn)討論

17、FIR數(shù)字濾波器的設(shè)計(jì)原理和結(jié)構(gòu)4。2.1.1 數(shù)字濾波器簡(jiǎn)介一個(gè)簡(jiǎn)單的數(shù)字濾波系統(tǒng)如圖2-1所示。圖中,x(t)為模擬信號(hào),經(jīng)過A/D轉(zhuǎn)換器后變?yōu)橐粋€(gè)有著先后順序的數(shù)字序列x(n)。然后x(n)通過數(shù)字濾波系統(tǒng)H(z),即得到數(shù)字濾波器的輸出y(n)。H(z)為該數(shù)字濾波系統(tǒng)的單位脈沖響應(yīng)h(n)的Z變換,即: (2-1)若h(n)為無限長(zhǎng)序列,則得到的數(shù)字濾波器為IIR數(shù)字濾波器,又稱遞歸濾波器;反之,若h(n)為有限長(zhǎng)序列,則得到的數(shù)字濾波器為FIR濾波器,也稱非遞歸濾波器。一個(gè)線形時(shí)不變因果濾波器可表示為: (2-2)其中N為h(n)的長(zhǎng)度,即濾波器的長(zhǎng)度。圖2-1 數(shù)字濾波系統(tǒng)IIR

18、濾波器主要是基于對(duì)模擬濾波器如巴特沃斯濾波器、橢圓濾波器等的幅頻響應(yīng)進(jìn)行逼近,而其相頻響應(yīng)是非線性的。與IIR濾波器不同,F(xiàn)IR濾波器可以把相位特性設(shè)計(jì)成線性。這使得FIR數(shù)字濾波器在信號(hào)無失真?zhèn)鬏敗?shù)據(jù)通信、圖像傳輸與處理、語(yǔ)音信號(hào)處理等有線性相位要求的領(lǐng)域應(yīng)用廣泛。FIR濾波器的優(yōu)點(diǎn)是軟硬件實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單,不用考慮系統(tǒng)的穩(wěn)定性問題;缺點(diǎn)是實(shí)現(xiàn)較高性能的頻率響應(yīng)需要較高的濾波器階數(shù)。2.1.2 FIR數(shù)字濾波器的結(jié)構(gòu)由于FIR數(shù)字濾波器實(shí)現(xiàn)算法的不同,我們可以把FIR濾波器的結(jié)構(gòu)劃分為直接型、級(jí)聯(lián)型、頻率采樣型和快速卷積型四種基本形式。本文主要討論前兩種結(jié)構(gòu)。(1)直接型結(jié)構(gòu)由式2-2可直接畫

19、出FIR數(shù)字濾波器的直接型結(jié)構(gòu),如圖2-2所示。對(duì)于直接型結(jié)構(gòu)來說,一個(gè)長(zhǎng)度為N的FIR濾波器,每產(chǎn)生一個(gè)輸出數(shù)據(jù),要經(jīng)過N次乘法,N-1次加法。對(duì)于使用FPGA開發(fā)FIR數(shù)字濾波器,這樣的結(jié)果顯然不令人滿意。圖2-2 直接型結(jié)構(gòu)于是本文做了一下改進(jìn),這種改進(jìn)是基于線性相位的FIR數(shù)字濾波器的。以嚴(yán)格線性相位,N為偶數(shù)的FIR濾波器為例,如圖2-3所示。圖2-3 直接型的改進(jìn)由于關(guān)于對(duì)稱,我們可以將經(jīng)過延時(shí)環(huán)節(jié)的位置關(guān)于對(duì)稱的數(shù)據(jù)預(yù)先相加,然后可以再乘以相應(yīng)的濾波器系數(shù)進(jìn)行累加得到最終的輸出結(jié)果。這樣,每產(chǎn)生一個(gè)輸出,經(jīng)過次乘法,次加法,比原來減少次乘法。(2)級(jí)聯(lián)型結(jié)構(gòu)對(duì)式(2-2)進(jìn)行因式

20、分解,并將零點(diǎn)共軛的因式放在一起,這樣產(chǎn)生了若干個(gè)一階子式和二階子式,將一階子式看作二階子式的一個(gè)特例,則系統(tǒng)函數(shù)可以表示為: (2-3)FIR數(shù)字濾波器的級(jí)聯(lián)型結(jié)構(gòu)如圖2-4所示。圖2-4 級(jí)聯(lián)型結(jié)構(gòu)從圖中可以看出,級(jí)聯(lián)型結(jié)構(gòu)每產(chǎn)生一個(gè)輸出,需要次乘法,次加法。級(jí)聯(lián)型的最大特點(diǎn)是可以分別獨(dú)立調(diào)整每個(gè)子系統(tǒng)的零點(diǎn)之值,當(dāng)需要精確控制濾波器的零點(diǎn)位置時(shí),往往采用這種結(jié)構(gòu)5。2.2 FIR數(shù)字濾波器設(shè)計(jì)方法FIR數(shù)字濾波器的設(shè)計(jì)方法主要有三種:時(shí)窗函數(shù)法、頻率采樣法和等波紋設(shè)計(jì)法6。下面將分別討論一下這三種方法的設(shè)計(jì)原理,然后給出設(shè)計(jì)步驟,最后在比較一下這三種方法的優(yōu)缺點(diǎn)。2.2.1 窗函數(shù)法一個(gè)

21、理想低通濾波器的幅頻特性如圖2-5所示。的表達(dá)式為 (2-4)圖2-5 理想低通濾波器頻譜圖對(duì)進(jìn)行離散時(shí)間傅里葉逆變換,得 (2-5)是一個(gè)關(guān)于對(duì)稱的無限長(zhǎng)序列,是系統(tǒng)的單位脈沖響應(yīng),這說明系統(tǒng)是非因果的,在物理上不可實(shí)現(xiàn)。為了能夠得到一個(gè)可實(shí)現(xiàn)的系統(tǒng),可以將截取一部分,并順序右移,使之成為一個(gè)因果的有限長(zhǎng)序列。這種方法就好比在時(shí)域打開一個(gè)窗口一樣,因而稱為窗函數(shù)法。可以預(yù)見,使用這種方法截取的序列越長(zhǎng),對(duì)理想的幅頻特性逼近的越好。常見的時(shí)窗函數(shù)有矩形窗、漢寧窗、漢明窗、布萊克曼窗、凱塞窗等。矩形窗的表達(dá)式為:,為整數(shù)。當(dāng)用矩形窗設(shè)計(jì)FIR濾波器時(shí),所產(chǎn)生的頻率響應(yīng),與理想濾波器的頻率特性相比

22、,在理想特性不連續(xù)點(diǎn)處附近形成了過渡帶,并在過渡帶兩側(cè)形成持續(xù)時(shí)間很長(zhǎng),逐漸衰減的波紋,即通帶內(nèi)產(chǎn)生了波動(dòng),而阻帶內(nèi)產(chǎn)生了余振,這種現(xiàn)象稱之為吉布斯(Gibbs)效應(yīng)。吉布斯效應(yīng)直接影響到濾波器的性能,因?yàn)橥◣?nèi)的波動(dòng)會(huì)影響到濾波器的平穩(wěn)性,阻帶內(nèi)的波動(dòng)則影響阻帶最小衰減。窗函數(shù)的選擇原則是:(1)具有較低的旁瓣幅度,尤其是第一旁瓣幅度。(2)旁瓣幅度下降速度要快,以利增加阻帶衰減。(3)主瓣的寬度要窄,以獲得較陡的過渡帶。但是這幾個(gè)標(biāo)準(zhǔn)之間彼此是有矛盾的,即主瓣寬度越大,旁瓣水平才可能越低。因此實(shí)際上。因此,實(shí)際選用的窗函數(shù)往往是它們的折中。在保證主瓣寬度達(dá)到一定要求的條件下,適當(dāng)犧牲主瓣寬

23、度來?yè)Q取旁瓣波動(dòng)的減少。六種窗函數(shù)的主要參數(shù)如表2-2所示。應(yīng)當(dāng)說明的是,用時(shí)窗函數(shù)法設(shè)計(jì)的FIR濾波器通帶波紋幅度近似等于阻帶波紋幅度。一般阻帶最小衰減達(dá)到40dB以上,則通帶最大衰減就小于0.1dB。最后,總結(jié)一下利用窗函數(shù)設(shè)計(jì)FIR數(shù)字濾波器的步驟:(1) 給定所要求的頻率響應(yīng)函數(shù);(2) 求;(3) 有過濾帶寬及阻帶最小衰減的要求,利用下表選定窗的形狀及N的大小,一般N要通過幾次試探而最后確定。(4) 求的所設(shè)計(jì)的FTR的單位抽樣響應(yīng) (5)求,檢驗(yàn)是否滿足設(shè)計(jì)要求,如不滿足,則需重新設(shè)計(jì)。表2-2 六種窗函數(shù)參數(shù)表的比較窗函數(shù)窗譜性能指標(biāo)加窗后濾波器性能指標(biāo)旁瓣峰值/db主瓣寬度/(

24、)過濾寬度/阻帶最小衰減/db矩形窗-1320.9-21巴特列特-2542.1-25漢寧窗-3143.1-44海明窗-4143.3-53布拉克曼窗-5765.5-74凱澤窗-575-802.2.2 頻率采樣法頻率采樣法是一種基于頻率域抽樣來逼近所要設(shè)計(jì)的FIR濾波器的頻率特性的一種方法。頻率設(shè)計(jì)法的基本設(shè)計(jì)流程如圖2-6所示。圖2-6 頻率設(shè)計(jì)法流程為了保證具有線性相位條件,其單位采樣響應(yīng)是實(shí)序列,且滿足條件。對(duì)于偶對(duì)稱的情況來說,線性相位條件如下: (2-6) (2-7)令代入式(2-6)、(2-7),得到 (2-8)式中, ,N為奇數(shù) ,N為偶數(shù)。頻率響應(yīng)函數(shù)在各采樣點(diǎn)上等于,而采樣點(diǎn)之間

25、的值是由各采樣值之間的內(nèi)插函數(shù)疊加形成,因而有一定的逼近誤差,誤差的大小取決于理想頻率響應(yīng)的曲線形狀。采樣點(diǎn)之間的理想頻率特性變化越陡,則內(nèi)插值與理想值之間的誤差就越大,因而在理想頻率響應(yīng)特性的不連續(xù)點(diǎn)附近,就會(huì)產(chǎn)生肩峰和波紋;反之,理想頻率響應(yīng)特性變化越平緩,則內(nèi)插值越接近理想值,逼近誤差小。因此,可以在理想頻率下響應(yīng)特性的通帶與阻帶之間設(shè)置過渡帶,從而減小逼近誤差。過渡帶的采樣點(diǎn)個(gè)數(shù)m與所設(shè)計(jì)的濾波器的阻帶最小衰減有關(guān),具體如表2-3所示。此外過渡帶的帶寬與采樣點(diǎn)數(shù)m之間的關(guān)系為: (2-9)表2-3 過渡帶采樣點(diǎn)數(shù)與阻帶最小衰減的關(guān)系12342044-5465-7585-95綜上,頻率采

26、樣法的設(shè)計(jì)步驟為:A. 根據(jù)阻帶最小衰減,確定過渡帶的樣點(diǎn)數(shù)m。B. 根據(jù)過渡帶寬度的要求,估算濾波器的長(zhǎng)度。C. 構(gòu)造希望逼近的頻率響應(yīng)函數(shù),一般為具有理想頻率特性,并滿足線性相位的要求。D. 對(duì)進(jìn)行頻域等間隔N點(diǎn)采樣,得到。E. 對(duì)進(jìn)行N點(diǎn)IDFT,得到。2.2.3 等波紋最佳逼近法等波紋最佳逼近法是基于最大誤差最小化的設(shè)計(jì)原則。最大誤差最小化能使幅度誤差在整個(gè)逼近頻段上均勻分布,即所設(shè)計(jì)的FIR數(shù)字濾波器的幅度特性在通帶和阻帶范圍內(nèi)是等波紋的,且可以分別獨(dú)立控制通帶和阻帶的波紋幅度,并且在濾波器長(zhǎng)度給定的情況下,加權(quán)的幅度波紋誤差最小。定義加權(quán)幅度誤差函數(shù)為 (2-10),式中為幅度誤差

27、加權(quán)函數(shù),用來控制不同頻帶的幅度逼近誤差。一般地,在要求逼近精度高的頻帶,取值大,而要求逼近誤差精度低的頻帶,取值小。設(shè)計(jì)過程中是由設(shè)計(jì)者根據(jù)通帶最大衰減和阻帶最小衰減的指標(biāo)要求取定的已知函數(shù)。對(duì)于FIR數(shù)字低通濾波器,常取: (2-11)式中,和分別為濾波器設(shè)計(jì)指標(biāo)中通帶和阻帶的振蕩波紋幅度,k為正的系數(shù)。濾波器的通帶最大衰減和阻帶最小衰減與通帶和阻帶的振蕩波紋幅度和的換算關(guān)系為: (2-12) (2-13)等波紋最佳逼近法的設(shè)計(jì),在于找到濾波器的系數(shù)向量,使得在通帶和阻帶頻帶內(nèi)的最大絕對(duì)值幅度誤差為最小。帕克斯-麥克萊倫采用基于交替定理的雷米茲交替算法,通過逐次迭代逼近的運(yùn)算求得濾波器的系

28、數(shù)向量,從而實(shí)現(xiàn)等波紋最佳逼近法。 一般情況下,估計(jì)濾波器長(zhǎng)度N的凱塞經(jīng)驗(yàn)公式為: (2-14)綜上,用等波紋最佳逼近法設(shè)計(jì)FIR數(shù)字濾波器的步驟為:(1)根據(jù)濾波器的設(shè)計(jì)指標(biāo)要求:邊界頻率、通帶最大衰減、阻帶最小衰減等,估計(jì)濾波器的長(zhǎng)度,并確定幅度誤差加權(quán)函數(shù)。(2)采用雷米茲交替算法,獲得所設(shè)計(jì)的濾波器的單位脈沖響應(yīng)。2.2.4 三種設(shè)計(jì)方法的比較 綜述可得,窗函數(shù)法設(shè)計(jì)的基本思想是把給定的頻率響應(yīng)通過離散時(shí)間傅里葉逆變換IDTFT(Inverse Discrete Time Fourier Transform),求得脈沖響應(yīng),然后利用加窗

29、函數(shù)對(duì)它進(jìn)行截?cái)嗪推交?,以?shí)現(xiàn)一個(gè)物理可實(shí)現(xiàn)且具有線性相位的 FIR 數(shù)字濾波器的設(shè)計(jì)目的。其核心是從給定的頻率特性,通過加窗確定有限長(zhǎng)單位取樣響應(yīng)h(n);頻率采樣法設(shè)計(jì)的基本思想是把給出的理想頻率響應(yīng)進(jìn)行取樣,通過 IDFT 從頻譜樣點(diǎn)直接求得有限脈沖響應(yīng);等波紋切比雪夫逼近法則是利用 MATLAB 提供的 remez 函數(shù)實(shí)現(xiàn)Remez算法,設(shè)計(jì)濾波器逼近理想頻率響應(yīng)。  比較以上三種濾波器的設(shè)計(jì)方法,在同樣的階數(shù)下,等波紋切比雪夫逼近法可以獲得最佳的頻率特性和衰耗特性,具有通帶和阻帶平坦

30、,過渡帶窄等優(yōu)點(diǎn)。頻率采樣設(shè)計(jì)法可以設(shè)計(jì)某些特殊濾波器,且其設(shè)計(jì)過程簡(jiǎn)單,但阻帶衰減明顯,若適當(dāng)選取過渡帶樣點(diǎn)值,會(huì)取得較窗函數(shù)設(shè)計(jì)法略好的衰耗特性。窗函數(shù)設(shè)計(jì)法在階數(shù)較低時(shí),阻帶特性基本滿足設(shè)計(jì)要求,當(dāng)濾波器階數(shù)較高時(shí),使用漢寧窗、海明窗、布萊克曼窗和凱澤窗即可以達(dá)到阻帶衰耗要求3 FPGA 設(shè)計(jì)優(yōu)點(diǎn)以及分布式算法3.1 使用FPGA器件進(jìn)行開發(fā)的優(yōu)點(diǎn)使用FPGA器件設(shè)計(jì)數(shù)字電路,不僅可以簡(jiǎn)化設(shè)計(jì)過程,而且可以降低整個(gè)系統(tǒng)的體積和成本,增加系統(tǒng)的可靠性。它們無需花費(fèi)傳統(tǒng)意義下制造集成電路所需大量時(shí)間和精力,避免了投資風(fēng)險(xiǎn),成為電子器件行業(yè)中發(fā)展最快的一個(gè)系列。使用FPGA器件設(shè)計(jì)數(shù)字系統(tǒng)電路

31、的主要優(yōu)點(diǎn)如下:(1)設(shè)計(jì)靈活使用FPGA器件,可以不受標(biāo)準(zhǔn)系列器件在邏輯功能上的限制。而且修改邏輯可在系統(tǒng)設(shè)計(jì)和使用過程的任一階段中進(jìn)行,并且只須通過對(duì)所用的FPGA器件進(jìn)行重新編程即可完成,給系統(tǒng)設(shè)計(jì)提供了很大的靈活性。(2)增大功能密集度功能密集度是指在給定的空間能集成的邏輯功能數(shù)量??删幊踢壿嬓酒瑑?nèi)的組件門數(shù)高,一片F(xiàn)PGA可代替幾片、幾十片乃至上百片中小規(guī)模的數(shù)字集成電路芯片。用FPGA器件實(shí)現(xiàn)數(shù)字系統(tǒng)時(shí)用的芯片數(shù)量少,從而減少芯片的使用數(shù)目,減少印刷線路板面積和印刷線路板數(shù)目,最終導(dǎo)致系統(tǒng)規(guī)模的全面縮減。(3)提高可靠性減少芯片和印刷板數(shù)目,不僅能縮小系統(tǒng)規(guī)模,而且它還極大的提高了

32、系統(tǒng)的可靠性。具有較高集成度的系統(tǒng)比用許多低集成度的標(biāo)準(zhǔn)組件設(shè)計(jì)的相同系統(tǒng)具有高得多的可靠性。使用FPGA器件減少了實(shí)現(xiàn)系統(tǒng)所需要的芯片數(shù)目,在印刷線路板上的引線以及焊點(diǎn)數(shù)量也隨之減少,所以系統(tǒng)的可靠性得以提高。(4)縮短設(shè)計(jì)周期出于FPGA器件的可編程性和靈活性,用它來設(shè)計(jì)一個(gè)系統(tǒng)所需時(shí)間比傳統(tǒng)方法大為縮短。FPGA器件集成度高,使用時(shí)印刷線路板電路布局布線簡(jiǎn)單。同時(shí),在樣機(jī)設(shè)計(jì)成功后,由于開發(fā)工具先進(jìn),自動(dòng)化程度高,對(duì)其進(jìn)行邏輯修改也十分簡(jiǎn)便迅速。因此,使用FPGA器件可大大縮短系統(tǒng)的設(shè)計(jì)周期,加快產(chǎn)品投放市場(chǎng)的速度,提高產(chǎn)品的競(jìng)爭(zhēng)能力。(5)工作速度快FPGA/CPLD器件的工作速度快,

33、一般可以達(dá)到幾百兆赫茲,遠(yuǎn)遠(yuǎn)大于DPS器件。同時(shí),使用FPGA器件后實(shí)現(xiàn)系統(tǒng)所需要的電路級(jí)數(shù)又少,因而整個(gè)系統(tǒng)的工作速度會(huì)得到提高。(6)增加系統(tǒng)的保密性能很多FPGA器件都具有加密功能,在系統(tǒng)中廣泛的使用FPGA器件可以有效防止產(chǎn)品被他人非法仿制。(7)降低成本使用FPGA器件實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì)時(shí),如果僅從器件本身的價(jià)格考慮,有時(shí)還看不出來它的優(yōu)勢(shì),但是影響系統(tǒng)成本的因素是多方面的,綜合考慮,使用FPGA的成本優(yōu)越性是很明顯的。首先,使用FPGA器件修改設(shè)計(jì)方便,設(shè)計(jì)周FPGA器件進(jìn)行系統(tǒng)設(shè)計(jì)能節(jié)約成本。期縮短,使系統(tǒng)的研制開發(fā)費(fèi)用降低;其次,F(xiàn)PGA器件可使印刷線路板面積和需要的插件減少,從

34、而使系統(tǒng)的制造費(fèi)用降低;再次,使用FPGA器件能使系統(tǒng)的可靠性提高,維修工作量減少,進(jìn)而使系統(tǒng)的維修服務(wù)費(fèi)用降低??傊褂肍PGA器件進(jìn)行系統(tǒng)設(shè)計(jì)能節(jié)約成本7。3.2 分布式算法3.2.1 分布式算法基礎(chǔ)分布式算法(Distributed Arithmetic,DA)是一項(xiàng)重要的FPGA技術(shù),它廣泛地應(yīng)用在計(jì)算積之和之中。= (3-1)進(jìn)一步假設(shè)系數(shù)是已知常數(shù),是變量。無符號(hào)DA系統(tǒng)假設(shè)變量的表示方式如下: , (3-2)其中表示的第位,而也就是的第次采樣,而內(nèi)積可以表示方式為: (3-3)重新分配求和的順序(也就是“分布式算法名稱的由來” )其結(jié)果如下: (3-4)或者可以寫成更為簡(jiǎn)潔的如

35、下形式: (3-5)函數(shù)的實(shí)現(xiàn)需要特別注意。首選方法是利用一個(gè)LUT實(shí)現(xiàn)映射。也就是說預(yù)先編程個(gè)字的一個(gè)LUT,以接受一個(gè)N位輸入向量,輸出為。各個(gè)映射都由相應(yīng)的二次冪加權(quán)并累加。利用如圖3-2所示的移位加法器就能夠有效地實(shí)現(xiàn)累加。在N次查詢循環(huán)后就能完成了對(duì)內(nèi)積y的計(jì)算8。圖3-2 移位加法器DA體系結(jié)構(gòu)3.2.2 有符號(hào)的DA系統(tǒng)下面我們要討論的是如何修復(fù)式(3-1)使之能夠處理有符號(hào)補(bǔ)碼。在補(bǔ)碼中,最高位有效位用來區(qū)別正數(shù)和負(fù)數(shù)。例如變-3的編碼是。所以我們將采用下面的(B+1)位表示方法: (3-6)與式(3-3)聯(lián)立得到輸出y的定義如下: (3-7)要實(shí)現(xiàn)有符號(hào)DA系統(tǒng),可以通過兩種

36、選擇來修改無符號(hào)DA系統(tǒng)。這就是:(1)帶有加/減控制的累加器(2)采用具有一個(gè)額外輸入的ROM本文使用最常見的可轉(zhuǎn)換累加器,因?yàn)長(zhǎng)UT表中額外的輸入位還需一個(gè)兩倍字長(zhǎng)的LUT表9。4 基于FPGA的FIR濾波器設(shè)計(jì)本章為全文的核心內(nèi)容,首先確定基于Matlab的FIR數(shù)字低通濾波器的指標(biāo)系數(shù),再利用分布式算法結(jié)構(gòu), VHDL硬件語(yǔ)言完成設(shè)計(jì)與仿真,最后實(shí)現(xiàn)硬件系統(tǒng)以及硬件測(cè)試。4.1 基于Matlab的FIR數(shù)字低通濾波器抽頭系數(shù)的提取 4.1.1 濾波器的設(shè)計(jì)指標(biāo)采樣頻率:10MHz截止頻率:100KHz類型:低通階數(shù):Kaiser窗函數(shù)16階系數(shù) Beta=0.54.1.2 濾波器的具體

37、設(shè)計(jì)方法啟動(dòng)Matlab設(shè)計(jì)軟件后,依次打開startToolboxesFilter DesignFilter Design & Analysis Tool(FDATOOL)就可以看到如圖4-1的FDATOOL界面。選擇所需要的參數(shù)指標(biāo),就會(huì)生成FIR低通數(shù)字濾波器的特性曲線以及重要的幅度相位波形圖,如圖4-2、圖4-3所示,驗(yàn)證了其技術(shù)指標(biāo)。圖4-1 FDATOOL界面圖4-2 幅度特性曲線圖4-3 相位特性曲線沖激響應(yīng)曲線4.1.3 參數(shù)提取與量化利用Matlab軟件的FDATOOL圖形用戶界面工具,輸入設(shè)計(jì)指標(biāo)后便會(huì)自動(dòng)生成所設(shè)計(jì)的FIR低通數(shù)字濾波器的系數(shù)即抽頭數(shù),一般線性相位

38、的FIR低通數(shù)字濾波器的單位沖激響應(yīng)都為實(shí)數(shù),滿足奇或偶對(duì)稱的條件。所得單位沖激響應(yīng)系數(shù)如表4-1所示:表4-1 FIR低通數(shù)字濾波器系數(shù)序數(shù)序列FIR濾波器的參數(shù)序數(shù)序列h(0)-0.6445h(15)h(1)-0.7191h(14)h(2)-0.6170h(13)h(3)0.8987h(12)h(4)0.3592h(11)h(5)0.1519h(10)h(6)0.1901h(9)h(7)0.8212h(8)計(jì)算的結(jié)果可通過File下的菜單中的Export命令取出,點(diǎn)擊Export打開對(duì)話框,如圖所示,點(diǎn)擊OK可將濾波器系數(shù)數(shù)據(jù)存放到當(dāng)前工作空間,并且以Num命名。沖激系數(shù)輸出對(duì)話框保存并關(guān)

39、閉當(dāng)前窗口回到工作空間,在命令區(qū)輸入Num回車,出現(xiàn)以下圖如上圖所示,根據(jù)設(shè)計(jì)所求出的16階FIR低通數(shù)字濾波器的系數(shù)是實(shí)數(shù),而在FPGA硬件仿真中要求輸入的數(shù)據(jù)為整數(shù),因此在這里,要對(duì)系數(shù)做歸一化處理,即將h(n)擴(kuò)大=2048倍,再分別進(jìn)行四舍五入處理,最后轉(zhuǎn)化為12位二進(jìn)制補(bǔ)碼(有效位為11位,最高位為符號(hào)位)結(jié)果如下所示:h(0)=h(15)=-82h(1)=h(14)=-77h(2)=h(13)=-35h(3)=h(12)=44h(4)=h(11)=149h(5)=h(10)=259h(6)=h(9)=351h(7)=h(8)=4034.2 FIR濾波器的FPGA實(shí)現(xiàn)4.2.1 模塊

40、劃分自頂向下的實(shí)現(xiàn)方法,F(xiàn)IR濾波器的模塊劃分:輸入模塊(包括移位寄存器模塊,加法與地址碼形成模塊)、查找表模塊樹狀移位加法器模塊、控制模塊和包含參數(shù)的程序包。整個(gè)設(shè)計(jì)的層次結(jié)構(gòu)如圖4-4所示:圖4-4 FIR濾波器的結(jié)構(gòu)框圖各模塊實(shí)現(xiàn)的功能:各模塊實(shí)現(xiàn)的功能:(1)輸入模塊,輸入模塊是完成對(duì)輸入信號(hào)的處理,為后續(xù)電路做準(zhǔn)備。它主要由移位寄存器和加法器與地址碼形成模塊組成。 (2)查找表模塊,查找表模塊的功能是對(duì)輸入模塊產(chǎn)生的地址碼對(duì)應(yīng)成輸出值。查找表模塊由4個(gè)LUT和加法模塊組成。(3)樹樁移位加法器模塊,將LUT的輸出值做樹狀移位加法運(yùn)算。(4)控制模塊,控制模塊產(chǎn)生其他模塊的控制信號(hào),實(shí)

41、現(xiàn)對(duì)輸入模塊、移位寄存器模塊、查找表模塊,鎖存模塊的控制,使各模塊按照一定的時(shí)序依次執(zhí)行各自的功能,從而完成濾波。它主要由控制器單元和計(jì)數(shù)器單元組成。4.2.2 FIR濾波器各模塊的實(shí)現(xiàn)(1)板載頻率分頻本設(shè)計(jì)所用到的系統(tǒng)板上的晶振頻率是50MHz,而設(shè)計(jì)用到的是10MHz,這樣就要進(jìn)行分頻。CycloneII系列FPGA提供兩個(gè)嵌入式鎖相環(huán)。在圖形編輯模式下輸入ALTPLL就可以看到如圖4-5(a)所示的界面,設(shè)置設(shè)計(jì)所需的參數(shù)就可以實(shí)現(xiàn)分頻。本設(shè)計(jì)產(chǎn)生的分頻模塊圖標(biāo)如圖4-5(b)所示。圖4-5(a) ALTPLL界面圖4-5(b) 分頻模塊(2)數(shù)據(jù)預(yù)處理-輸入信號(hào)轉(zhuǎn)換進(jìn)程,對(duì)輸入的二進(jìn)

42、制原碼轉(zhuǎn)換為二進(jìn)制補(bǔ)碼輸出-加此進(jìn)程的目的是方便仿真,硬件實(shí)現(xiàn)時(shí)不用library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity signed_buma isport ( X_in:in std_logic_vector(7 downto 0);-輸入 clk:in std_logic;-輸入信號(hào)50MHz buma:out std_logic_vector(7 downto 0)-補(bǔ)碼輸出 );end signed_buma;architecture arc of signed_buma iss

43、ignal temp:std_logic_vector(7 downto 0);-中間信號(hào)signal b:std_logic;-中間信號(hào)beginb<=X_in(7);a:process(clk)beginif clk'event and clk='1' thenif b='1' thentemp<=(X_in(7)&(not X_in(6)&(not X_in(5)&(not X_in(4)&(not X_in(3)&(not X_in(2)&(not X_in(1)&(not X_

44、in(0)+'1'else temp<=X_in;end if ;end if;end process;buma<=temp;end arc;(3)輸入模塊輸入模塊由移位寄存器和加法器與地址碼形成模塊組成。移位寄存器模塊實(shí)現(xiàn)對(duì)并行輸入信號(hào)的延遲輸出,其寄存器的個(gè)數(shù)由FIR濾波器的階數(shù)決定。加法與地址碼形成模塊首先實(shí)現(xiàn)B(i)=X(i)+X(N-i)的運(yùn)算,即考慮了濾波器系數(shù)的對(duì)稱性,把與相同兩個(gè)濾波系數(shù)相乘的兩個(gè)采樣值預(yù)先相加,以減少硬件規(guī)模10。移位寄存器模塊的VHDL代碼如下所示:library ieee;use ieee.std_logic_1164.all;

45、-延時(shí)entity delay isport( X_in: instd_logic_vector(7 downto 0);-濾波器輸入 clk: instd_logic;-輸入時(shí)鐘 a0,a1,a2,a3,a4,a5,a6,a7: buffer std_logic_vector(7 downto 0); -寄存器 a8,a9,a10,a11,a12,a13,a14,a15:buffer std_logic_vector(7 downto 0)-寄存器);end delay;architecture one of delay isbeginprocess(clk)beginif clk'

46、event and clk='1' then a15<=a14;a14<=a13;a13<=a12;a12<=a11;a11<=a10;a10<=a9;a9<=a8;a8<=a7;a7<=a6;a6<=a5;a5<=a4;a4<=a3;a3<=a2;a2<=a1;a1<=a0;a0<=X_in;end if;end process;end one;圖4-6 移位寄存器仿真圖圖4-6是延時(shí)進(jìn)程的仿真圖,由圖可以看出每來一個(gè)脈沖,輸入信號(hào)就會(huì)向后移位一次。加法與地址碼形成模塊具體程序如下

47、:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;use ieee.std_logic_arith.all;-輸入預(yù)加和地址碼產(chǎn)生entity Address is port(a0,a1,a2,a3,a4,a5,a6,a7:in std_logic_vector(7 downto 0);-輸入寄存器a8,a9,a10,a11,a12,a13,a14,a15:in std_logic_vector(7 downto 0);-輸入寄存器clk:in std_logic;-輸入時(shí)鐘y0,y1,y2,y3,y

48、4,y5,y6,y7,y8:out std_logic_vector(7 downto 0);-地址輸出end Address;architecture arc of Address issignal b0,b1,b2,b3,b4,b5,b6,b7:std_logic_vector(8 downto 0);begin b0<=(a0(0)&a0)+(a8(0)&a8);b1<=(a1(0)'&a1)+(a9(0)&a9);b2<=(a2(0)&a2)+(a10(0)&a10);b3<=(a3(0)&a3)+

49、(a11(0)&a11);b4<=(a4(0)&a4)+(a12(0)&a12);b5<=(a5(0)&a5)+(a13(0)&a13);b6<=(a6(0)&a6)+(a14(0)&a14);b7<=(a7(0)&a7)+(a15(0)&a15);process(clk)beginif clk'event and clk='1'then-下面產(chǎn)生的8位位矢量將作為L(zhǎng)UT的地址y0<=b7(0)&b6(0)&b5(0)&b4(0)&b3(

50、0)&b2(0)&b1(0)&b0(0);y1<=b7(1)&b6(1)&b5(1)&b4(1)&b3(1)&b2(1)&b1(1)&b0(1);y2<=b7(2)&b6(2)&b5(2)&b4(2)&b3(2)&b2(2)&b1(2)&b0(2);y3<=b7(3)&b6(3)&b5(3)&b4(3)&b3(3)&b2(3)&b1(3)&b0(3);y4<=b7(4)&b

51、6(4)&b5(4)&b4(4)&b3(4)&b2(4)&b1(4)&b0(4);y5<=b7(5)&b6(5)&b5(5)&b4(5)&b3(5)&b2(5)&b1(5)&b0(5);y6<=b7(6)&b6(6)&b5(6)&b4(6)&b3(6)&b2(6)&b1(6)&b0(6);y7<=b7(7)&b6(7)&b5(7)&b4(7)&b3(7)&b2(7)&b1

52、(7)&b0(7);y8<=b7(8)&b6(8)&b5(8)&b4(8)&b3(8)&b2(8)&b1(8)&b0(8);end if;end process;end arc;加法與地址碼形成單元仿真圖(4)查找表模塊輸入模塊形成9組8位地址碼,如果直接建立LUT,則LUT的規(guī)模較大,為個(gè)字,為了節(jié)約FPGA資源并且簡(jiǎn)化表格深度,本文使用了8位地址線LUT分割技術(shù),分成2個(gè)4位地址線的LUT 11。加法模塊實(shí)現(xiàn)高4位LUT與低4位LUT輸出值相加后得出8位地址碼的輸出值。低四位和高四位LUT如表4-2所示:表4-2(a)

53、地址低4位LUT D3D2D1D0函數(shù)值000000001h(0)0010h(1)0011h(0)+h(1)0100h(2)0101h(2)+h(0)1111h(0) +h(1)+h(2)+h(3)表4-2(b) 地址高4位LUT D7D6D5D4函數(shù)值000000001h(4)0010h(5)0011h(4)+h(5)0100h(6)0101h(6)+h(4)1111h(4) +h(5)+h(6)+h(7)低4位LTU程序如下,其余LUT(包括補(bǔ)碼輸出LUT)見附件。library ieee;use ieee.std_logic_1164.all;package FIR_ROM1 isfun

54、ction LUT1(y:in std_logic_vector(3 downto 0)return std_logic_vector;end FIR_ROM1;package body FIR_ROM1 isfunction LUT1(y:in std_logic_vector(3 downto 0)return std_logic_vector isvariable m: std_logic_vector(11 downto 0);begincase y iswhen "0000"=>m:=x"000"when "0001"

55、=>m:=x"009"when "0010"=>m:=x"ff9"when "0011"=>m:=x"002"when "0100"=>m:=x"fe0"when "0101"=>m:=x"fe9"when "0110"=>m:=x"fd9"when "0111"=>m:=x"fe2"when &

56、quot;1000"=>m:=x"03c"when "1001"=>m:=x"045"when "1010"=>m:=x"035"when "1011"=>m:=x"03e"when "1100"=>m:=x"01c"when "1101"=>m:=x"025"when "1110"=>m:=x"015"when "1111"=>m:=x"01e"when others=>m:=x"000"end case;return m;end LUT1;end FIR_ROM1;高四位和低四位LUT輸出數(shù)據(jù)要拼在一起,具體程序如下:library ieee;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論