本科畢業(yè)設(shè)計(jì)論文圖32是基于eda軟件的fpga_第1頁
本科畢業(yè)設(shè)計(jì)論文圖32是基于eda軟件的fpga_第2頁
本科畢業(yè)設(shè)計(jì)論文圖32是基于eda軟件的fpga_第3頁
本科畢業(yè)設(shè)計(jì)論文圖32是基于eda軟件的fpga_第4頁
本科畢業(yè)設(shè)計(jì)論文圖32是基于eda軟件的fpga_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘 要 本文討論的FIR濾波器因其具有嚴(yán)格的線性相位特性而得到廣泛的應(yīng)用。在工程實(shí)踐中,往往要求信號(hào)處理具有實(shí)時(shí)性和靈活性,本論文研究FIR的FPGA解決方案正體現(xiàn)了電子系統(tǒng)的微型化和單片化。本論文主要討論了以下的問題:首先,以FIR濾波器的基本理論為依據(jù),研究適應(yīng)工程實(shí)際的數(shù)字濾波器的設(shè)計(jì)方法,確定了直接型網(wǎng)絡(luò)結(jié)構(gòu)、窗函數(shù)設(shè)計(jì)法的設(shè)計(jì)方案;然后,討論了FPGA的原理與結(jié)構(gòu)特點(diǎn),總結(jié)FPGA的設(shè)計(jì)流程與設(shè)計(jì)原則,并用Verilog HDL語言根據(jù)設(shè)計(jì)方案編寫出FIR濾波器程序;接著,采用Q值量化的方法解決了如何將FIR濾波器的系數(shù),由帶符號(hào)十進(jìn)制浮點(diǎn)數(shù)轉(zhuǎn)化成定點(diǎn)二進(jìn)制補(bǔ)碼的問題;最后,重點(diǎn)研究

2、了在FPGA設(shè)計(jì)FIR濾波器時(shí),如何使用MATLAB來加強(qiáng)FIR濾波器的設(shè)計(jì),以及用MATLAB中的simulink對(duì)FIR濾波器設(shè)計(jì)進(jìn)行算法上的仿真,還研究了FPGA設(shè)計(jì)中另外一個(gè)重要方法:QuartusII和MATLAB聯(lián)合仿真,同時(shí)介紹了用MATLAB對(duì)仿真結(jié)果進(jìn)行驗(yàn)證的方法。關(guān)鍵詞:FIR濾波器,F(xiàn)PGA,MATLAB,QuartusII,聯(lián)合仿真ABSTRACTFIR filter discussed in this paper is widely used because of its strict phase distortion and sharp cut-off charac

3、teristic. In the engineering practice, there is often a request for the real-time and flexible signal processing, the present paper studied FIR the FPGA solution regular script present electron system microminiaturization and monolithic.Below this article mainly discusses the question:Firstly, take

4、the FIR filter elementary theory as the basis, the research adaption project actual numeral filter design method, has determined the direct network architecture, the window function design method design proposal;Then, discussed the FPGA principle and the unique feature, summarizes the FPGA design fl

5、ow and the principle of design, and language compiles the FIR filter procedure with Verilog HDL according to the design proposal;After that, how used the Q value quantification the method to solve the FIR filter coefficient, transformed the fixed point twos complement by the belt mark decimal base f

6、loating number the question;Finally, has studied with emphasis designs the FIR filter when FPGA, how uses MATLAB to strengthen the FIR filter the design, as well as carries on in the algorithm with MATLAB simulink to the FIR filter design the simulation, but also has studied in the FPGA design anoth

7、er important method: QuartusII and the MATLAB union simulation, simultaneously introduced carries on the confirmation with MATLAB to the simulation result the method.KEY WORDS: FIR filter, FPGA, MATLAB, QuartusII, Union simulation 引 言11 本課題的研究意義許多工程技術(shù)領(lǐng)域都涉及到信號(hào),這些信號(hào)包括電的、磁的、機(jī)械的、熱的、聲的、光的及生物體的等等。如何在較強(qiáng)的背景

8、噪聲和干擾信號(hào)下提取出真正的信號(hào)并將其用于實(shí)際工程,這正是信號(hào)處理要研究解決的問題。濾波器在信號(hào)處理中占有很重要的地位,它涉及的領(lǐng)域很廣,如通信系統(tǒng)、系統(tǒng)控制、生物醫(yī)學(xué)工程、機(jī)械振動(dòng)、遙感遙測(cè)、地質(zhì)勘探、航空航天、電力系統(tǒng)、故障檢測(cè)、自動(dòng)化儀器等。數(shù)字濾波器的好壞對(duì)相關(guān)的眾多工程技術(shù)領(lǐng)域影響很大,一個(gè)好的濾波器會(huì)有效的推動(dòng)眾多工程技術(shù)領(lǐng)域的技術(shù)改造和學(xué)科發(fā)展。所以對(duì)濾波器的工作原理、硬件結(jié)構(gòu)和實(shí)現(xiàn)方法進(jìn)行研究具有一定的意義。模擬濾波器的理論和方法是較早研究的一類信號(hào)處理的理論和方法,這種處理方法是以各種分立元件,如電阻、電容、電感為基礎(chǔ)的,簡(jiǎn)單的阻容器和電抗型濾波器如圖1-1所示: 圖1-1

9、簡(jiǎn)單的阻容器和電抗型濾波器數(shù)字濾波器是一種基本的處理部件,它能滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,避免模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題。有限沖激響應(yīng)(FIR)濾波器能在設(shè)計(jì)任意幅頻特性的同時(shí),保證嚴(yán)格的線性相位特性。同時(shí)由于其實(shí)現(xiàn)結(jié)構(gòu)主要是非遞歸的, 因此FIR 濾波器可以穩(wěn)定工作。它與模擬濾波器相比具有以下優(yōu)點(diǎn):(1)無需電子分立器件:電阻、電感、電容;(2)性能體積比好;(3)可靠性好;(4)通用性好;(5)易實(shí)現(xiàn);(6)微處理器可同時(shí)實(shí)現(xiàn)多種多處濾波。其速度高、體積小、成本低,功能強(qiáng)大。12 國(guó)內(nèi)外的研究現(xiàn)狀關(guān)于數(shù)字濾波器實(shí)現(xiàn)方法的研究,大體可以分為軟件實(shí)現(xiàn)和硬件實(shí)

10、現(xiàn)方法兩種。1、在通用微型計(jì)算機(jī)上用軟件實(shí)現(xiàn)軟件可以是自己編寫的,也可以使用現(xiàn)成的軟件包,這種方法的缺點(diǎn)是速度太慢,不能用于實(shí)時(shí)系統(tǒng),只能用于教學(xué)和算法的仿真研究。比如近年來迅速發(fā)展的MATLAB,就幾乎可以實(shí)現(xiàn)所有數(shù)字濾波器的仿真。而且在MATLAB下的部分仿真程序還可以通過轉(zhuǎn)化為C語言,再通過DSP的C編譯器直接在DSP硬件上運(yùn)行。這對(duì)非實(shí)時(shí)系統(tǒng)或準(zhǔn)實(shí)時(shí)系統(tǒng)來說是很有吸引力的。硬件實(shí)現(xiàn)即是設(shè)計(jì)專門的數(shù)字濾波硬件,目前主要采用的方法有以下幾種:2、DSP器件來實(shí)現(xiàn)DSP處理器配有專門適用于數(shù)字信號(hào)處理的指令系統(tǒng),具備獨(dú)特的循環(huán)尋址,倒序?qū)ぶ纺芰?。這些特點(diǎn)非常適合數(shù)字信號(hào)處理中的濾波器設(shè)計(jì)的實(shí)

11、現(xiàn)。DSP芯片的這些特點(diǎn)使得對(duì)不允許延遲的實(shí)時(shí)應(yīng)用領(lǐng)域,如蜂窩 、計(jì)算機(jī)硬盤驅(qū)動(dòng)器等非常理想。其唯一缺點(diǎn)是程序順序執(zhí)行, 盡管DSP器件性能不斷提高, 但在某些實(shí)時(shí)性要求極高的場(chǎng)合中受到限制。3、專用DSP芯片來實(shí)現(xiàn)適用于過程固定而又追求高速的信號(hào)處理任務(wù),其體積小、保密性好,具有極高的性能。但這種芯片將相應(yīng)的信號(hào)處理算法在芯片內(nèi)部用硬件實(shí)現(xiàn),無須進(jìn)行編程,由于字長(zhǎng)和階數(shù)的規(guī)格較少, 不易完全滿足實(shí)際需要,雖可采用多片擴(kuò)展來滿足, 但會(huì)增加體積和功耗, 因而在實(shí)際中受到一定限制,靈活性差,而且開發(fā)工具很不完善。4、用單片機(jī)來實(shí)現(xiàn)。單片機(jī)不斷發(fā)展,如Inte196000的運(yùn)算速度就非??捎^,而且

12、單片機(jī)的接口性能比較良好,容易實(shí)現(xiàn)人機(jī)接口。但是由于單片機(jī)采用的是馮諾依曼總線結(jié)構(gòu),系統(tǒng)比較復(fù)雜,實(shí)現(xiàn)乘法運(yùn)算速度較慢,而在數(shù)字濾波器中卻要涉及大量的乘加運(yùn)算,因此這種方法在運(yùn)算量大的實(shí)時(shí)信號(hào)濾波處理當(dāng)中很難有所作為,可用于一些不太復(fù)雜的數(shù)字信號(hào)處理,如數(shù)字控制等。5、可編程邏輯器件實(shí)現(xiàn)FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號(hào)處理任務(wù),相對(duì)于串行運(yùn)算為主導(dǎo)的通用DSP芯片來說,其并行性和可擴(kuò)展性更好。 但長(zhǎng)期以來FPGA一直被用于系統(tǒng)邏輯和時(shí)序控制上,很少有信號(hào)處理方面的應(yīng)用,其原因主要是因?yàn)樵贔PGA中缺乏實(shí)現(xiàn)乘法運(yùn)算的有效結(jié)構(gòu)?,F(xiàn)在這個(gè)問題得到了解決使FPGA在數(shù)

13、字信號(hào)處理方面有了長(zhǎng)足的發(fā)展。由于FPGA/CPLD本身具有并行處理的特點(diǎn),現(xiàn)在使用此方式也越來越多。13 本論文的研究目的和主要內(nèi)容本論文以基于FPGA的FIR數(shù)字濾波器的實(shí)現(xiàn)為研究?jī)?nèi)容,對(duì)FIR數(shù)字濾波器的實(shí)現(xiàn)進(jìn)行了研究。通過討論與比較多種FIR濾波器的設(shè)計(jì)方法之后,最后采用窗函數(shù)設(shè)計(jì)方法來設(shè)計(jì)直接型結(jié)構(gòu)的FIR濾波器。在設(shè)計(jì)了濾波器程序后,論文著重的研究了MATLAB、QuartusII等EDA軟件在設(shè)計(jì)FPGA時(shí),在功能與方法上的互補(bǔ)。給出了用MATLAB進(jìn)行濾波器設(shè)計(jì),及結(jié)合EDA軟件進(jìn)行聯(lián)合仿真的簡(jiǎn)便方法。本論文分為六部分:第1章主要介紹背景、選題以及文章的概要;第2章介紹了數(shù)字濾

14、波器的分類與FIR濾波器的原理,對(duì)直接型的FIR濾波器進(jìn)行了詳細(xì)的說明,并介紹了用窗函數(shù)法實(shí)現(xiàn) FIR 濾波器的方法;第3章對(duì)FPGA進(jìn)行了概述,介紹了FPGA的結(jié)構(gòu),并對(duì)FPGA的設(shè)計(jì)流程與設(shè)計(jì)原則進(jìn)行了詳細(xì)的說明,最后介紹了MATLAB與QuartusII兩款EDA工具;第4章進(jìn)行具體的設(shè)計(jì)論述,首先介紹如何用MATLAB設(shè)計(jì)求出滿足指標(biāo)的濾波器系數(shù),并討論了用Q值量化將系數(shù)由帶符號(hào)十進(jìn)制浮點(diǎn)數(shù)轉(zhuǎn)化成定點(diǎn)二進(jìn)制補(bǔ)碼的方法,然后給出了用Verilog HDL語言編寫的部分程序代碼。第5章介紹了運(yùn)用MATLAB與QuartusII對(duì)所設(shè)計(jì)的濾波器進(jìn)行聯(lián)合仿真的方法,并對(duì)仿真的結(jié)果進(jìn)行了分析驗(yàn)證

15、。第6 章主要是對(duì)本次設(shè)計(jì)進(jìn)行總結(jié),并分析了本次設(shè)計(jì)的不足以及需要改進(jìn)的地方。 FIR數(shù)字濾波器原理及技術(shù)21 數(shù)字濾波器概述所謂數(shù)字濾波器,是指輸入、輸出均為數(shù)字信號(hào),通過一定運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的相對(duì)比例或者濾除某些頻率成分的器件。因此,數(shù)字濾波的概念和模擬濾波相同,只是信號(hào)的形式和實(shí)現(xiàn)濾波方法不同。如果要處理的是模擬信號(hào),可通過ADC和DAC,在信號(hào)形式上進(jìn)行匹配轉(zhuǎn)換,同樣可以使用數(shù)字濾波器對(duì)模擬信號(hào)進(jìn)行濾波。信號(hào)中一般都包含噪聲或者說其中有很多能量在感興趣的最高頻率之外,因此我們要用濾波電路將感興趣的帶寬之外的信號(hào)和噪聲移去。數(shù)字濾波器是數(shù)字信號(hào)處理中使用最廣泛的一種線性系

16、統(tǒng)環(huán)節(jié),圖2-1給出了一個(gè)具有模擬輸入信號(hào)和輸出信號(hào)的實(shí)時(shí)數(shù)字濾波器的簡(jiǎn)化框圖。這個(gè)模擬信號(hào)被周期地抽樣,且轉(zhuǎn)化成一系列數(shù)字x(n)(n = 0,1,.)。數(shù)字濾波器依據(jù)濾波器的計(jì)算算法,執(zhí)行濾波運(yùn)算、把輸入系列x(n)映射到輸出系列y(n)。DAC把數(shù)字濾波后的輸出轉(zhuǎn)化成模擬值,這些模擬值接著被模擬濾波器平滑,并且消去不需要的高頻分量。 圖2-1 數(shù)字處理系統(tǒng)22 數(shù)字濾波器的分類對(duì)于一般的數(shù)字濾波器,按照單位沖激響應(yīng)可分為無限沖激響應(yīng)IIR 系統(tǒng)和有限沖激響應(yīng)FIR系統(tǒng)。在IIR系統(tǒng)中,用有理分式表示的系統(tǒng)函數(shù)來逼近所需要的頻率響應(yīng),即其單位沖激響應(yīng)h(n)是無限長(zhǎng)的;而在FIR系統(tǒng)中,則

17、用一個(gè)有理多項(xiàng)式表示的系統(tǒng)函數(shù)去逼近所需要的頻率響應(yīng),即其單位沖激響應(yīng)h(n)在有限個(gè)n值處不為零。IIR濾波器由于借用了模擬濾波器的結(jié)果,有大量的圖表可查,可以方便、簡(jiǎn)單、有效地完成設(shè)計(jì),效果很好,但是其相位特性不好控制,必須用全通網(wǎng)絡(luò)進(jìn)行復(fù)雜的相位較正,才能實(shí)現(xiàn)線性相位特性的要求。FIR濾波器則可在幅度特性隨意設(shè)計(jì)的同時(shí),保證精確、嚴(yán)格的線性相位特性。這在要求相位線性信道的現(xiàn)代電子系統(tǒng),如圖像處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中,是具有很大吸引力的。而且,其單位沖激響應(yīng)是有限長(zhǎng)的,不存在不穩(wěn)定的因素,并且可用因果系統(tǒng)來實(shí)現(xiàn)。本次設(shè)計(jì)主要研究的就是FIR濾波器的設(shè)計(jì)。23 FIR濾波器的基本理論F

18、IR濾波器的系統(tǒng)函數(shù)為: (2-1)直接由H(z)得出表示輸入輸出關(guān)系的常系數(shù)線性差分方程為: (2-2)可以看出,數(shù)字濾波器是把輸入序列經(jīng)過一定的運(yùn)算(如式2-2所示)變換成輸出序列。大多數(shù)普通的數(shù)字濾波器是線性非時(shí)變的LTI濾波器。對(duì)于因果的FIR系統(tǒng),其系統(tǒng)函數(shù)僅有零點(diǎn)(除z=0的極點(diǎn)外),并且因?yàn)橄禂?shù)a*全為零,所以(2-2 )式的差分方程就簡(jiǎn)化為 (2-3)式(2-3)可以認(rèn)為是x(n)與單位脈沖響應(yīng)h(n)的直接卷積。24 FIR數(shù)字濾波器的基本結(jié)構(gòu)FIR濾波器有直接型、級(jí)聯(lián)型和頻率抽樣型三種基本結(jié)構(gòu),其中直接型是最常見的結(jié)構(gòu)。圖2-2 直接型結(jié)構(gòu)這種結(jié)構(gòu)也稱為抽頭延遲線結(jié)構(gòu),或稱

19、橫向?yàn)V波器結(jié)構(gòu)。從圖2-2可以看出,沿著這條鏈每一抽頭的信號(hào)被適當(dāng)?shù)南禂?shù)(脈沖響應(yīng))加權(quán),然后將所得乘積相加就得到輸出y(n)。這種結(jié)構(gòu)具有一般性。轉(zhuǎn)置定理定義,如果將網(wǎng)絡(luò)中所有的支路方向倒轉(zhuǎn),并將輸入x(n)和輸出y(n)相互交換,則其系統(tǒng)函數(shù)H(z)不變。將轉(zhuǎn)置定理應(yīng)用于圖2-2,就可以得出FIR的轉(zhuǎn)置直接型結(jié)構(gòu)如圖2-3。圖2-3 轉(zhuǎn)置直接型結(jié)構(gòu)線性相位FIR系統(tǒng)的結(jié)構(gòu):在許多應(yīng)用領(lǐng)域,例如通信和圖像處理中,在一定的頻率范圍內(nèi)維持相位的完整性是一個(gè)期望的系統(tǒng)屬性??梢宰C明,如果FIR濾波器的單位取樣響應(yīng)h(n)為實(shí)數(shù),而且滿足線性相位條件,則濾波器的單位取樣響應(yīng)h(n)滿足以下兩個(gè)條件之

20、一: 偶對(duì)稱 h(n)=h(N-1-n) 奇對(duì)稱 h(n)=-h(N-1-n)其對(duì)稱中心在n=N-1/2處。所謂線性相位特性是指濾波器對(duì)不同頻率的正弦波所產(chǎn)生的相移和正弦波的頻率成直線關(guān)系。圖2-4 線性相位結(jié)構(gòu)圖2-4顯示了線性相位FIR濾波器的結(jié)構(gòu)??梢钥闯觯€性相位FIR濾波器的固有對(duì)稱屬性可以降低所需要的乘法器的數(shù)量,它使得乘法器的數(shù)量降低了一半,而加法器的數(shù)量則保持不變。本次設(shè)計(jì)采用直接型FIR濾波器結(jié)構(gòu)。25 FIR濾波器的設(shè)計(jì)指標(biāo)數(shù)字濾波器的特性經(jīng)常在頻域定義,對(duì)于選擇性的濾波器,如低通濾波器和帶通濾波器,性能規(guī)范經(jīng)常以容差圖的形式出現(xiàn)。我們?nèi)缫O(shè)計(jì)一個(gè)因果可實(shí)現(xiàn)的濾波器,要考慮

21、到復(fù)雜性與成本問題,因此實(shí)用中通帶和阻帶中都允許一定的誤差容限,即通帶不一定時(shí)完全水平的,阻帶不一定都絕對(duì)衰減到零。此外,按照要求,在通帶和阻帶之間還應(yīng)設(shè)置一定寬度的過渡帶。圖2-5 低通濾波器技術(shù)指標(biāo)由圖2-5可知,濾波器的基本技術(shù)指標(biāo)包括6個(gè)參數(shù):通帶截止頻率,阻帶截止頻率,濾波器階數(shù)N,3dB截止頻率,通帶容限和阻帶容限。通帶頻率范圍為,在通帶中要求,阻帶頻率范圍,在阻帶中要求,從到稱為過渡帶,一般是單調(diào)下降的。但通帶內(nèi)和阻帶內(nèi)允許的衰減一般用dB數(shù)表示,通帶內(nèi)允許的最大衰減用表示,阻帶內(nèi)允許的最小衰減用表示,如將歸一化為1,和分別定義為: (2-4) (2-5) 當(dāng)幅度下降到時(shí),此時(shí)=

22、3dB,稱為3dB截止頻率。 、和統(tǒng)稱為邊界頻率。這些指標(biāo)在濾波器的設(shè)計(jì)中是很重要的。26 窗函數(shù)法設(shè)計(jì) FIR 濾波器設(shè)計(jì)FIR數(shù)字濾波器常用的方法主要有窗函數(shù)法、頻率取樣法、等紋波逼近法等。其中,窗函數(shù)法是一種基本的設(shè)計(jì)方法,其設(shè)計(jì)方法較為成熟,本設(shè)計(jì)即采用窗函數(shù)法。下面先簡(jiǎn)要介紹其設(shè)計(jì)思想。任何數(shù)字濾波器的頻率響應(yīng)都是的周期函數(shù),它的傅立葉級(jí)數(shù)展開式為: (2-6)其中 (2-7)傅立葉系數(shù)實(shí)際上就是數(shù)字濾波器的沖擊響應(yīng),由于可能是無限長(zhǎng)序列且為非因果響應(yīng),是物理不可實(shí)現(xiàn)的。為此要尋找一個(gè)因果的,在相應(yīng)的誤差準(zhǔn)則下最近逼近。窗函數(shù)法設(shè)計(jì)的初衷是使設(shè)計(jì)的濾波器頻率特性在頻域均方誤差最小意義

23、下進(jìn)行逼近,即 (2-8)窗函數(shù)法就是用被稱為窗函數(shù)的有限加權(quán)序列來修正式(2-6),則所需表示為: (2-9)是有限長(zhǎng)序列,當(dāng)及時(shí),這里我們僅以沖激響應(yīng)對(duì)稱即時(shí)低通濾波器為例進(jìn)行說明。低通濾波器的頻率響應(yīng)函數(shù)如下式所示: (2-10)在時(shí)為0,其中為對(duì)抽樣頻率歸一化的角頻率,為歸一化截止角頻率。利用反傅立葉變換公式求出式(2-9)對(duì)應(yīng)的沖激響應(yīng)為: (2-11)所以加窗函數(shù)后,對(duì)濾波器的理想特性的影響有以下幾點(diǎn):1、在截止頻率的間斷點(diǎn)變成連續(xù)的曲線,使出現(xiàn)了一個(gè)過渡帶,寬度等于窗函數(shù)的主瓣的寬度。由此可見,如果窗函數(shù)的主瓣越寬,過渡帶就越寬。2、由于窗函數(shù)旁瓣的影響,使得濾波器的幅度頻率特性

24、出現(xiàn)了波動(dòng),波動(dòng)的幅度取決于旁瓣的相對(duì)幅度。旁瓣范圍的面積越大,通帶波動(dòng)和阻帶的波動(dòng)就越大,換句話說,阻帶的衰減減小,而波動(dòng)的多少,取決于旁瓣的大小。3、增加窗函數(shù)的長(zhǎng)度,只能減小窗函數(shù)的幅度頻率特性的主瓣寬度,而不能減小主瓣和旁瓣的相對(duì)值,改值取決于窗函數(shù)的形狀。為了滿足工程上的需要,可以通過改變窗函數(shù)的形狀來改善濾波器的幅度頻率特性,而窗函數(shù)的選擇原則是:1、具有較低的旁瓣幅度,尤其是第一旁瓣的幅度。2、旁瓣的幅度下降的速度要快,以利于增加阻帶的衰減。3、主瓣的寬度要窄,這樣可以得到比較窄的過渡帶。通常上述的幾個(gè)原則難以同時(shí)滿足。當(dāng)選用主瓣寬度較窄時(shí),雖然能夠得到比較陡峭的幅度頻率響應(yīng),但

25、是通帶和阻帶的波動(dòng)明顯增加;當(dāng)選用比較小的旁瓣幅度時(shí),雖然能夠得到比較平坦和勻滑的幅度頻率響應(yīng),但是過渡帶將加寬。因此,實(shí)際中選用的窗函數(shù)往往是它們的折衷。在保證主瓣寬度達(dá)到一定要求的條件下,適當(dāng)?shù)貭奚靼甑膶挾葋頁Q取旁瓣的波動(dòng)減小。工程中比較常用的窗函數(shù)有:矩形窗函數(shù)、三角形(Bartlett)窗函數(shù)、漢寧(Hanning)窗函數(shù)、哈明(Hamming)窗函數(shù)、布萊克曼(Blackman)窗函數(shù)和凱塞(Kaiser)窗函數(shù)。這幾種窗函數(shù)的基本參數(shù)比較見表2-1所示。表2-1 幾種窗函數(shù)的基本參數(shù)比較窗函數(shù)旁瓣峰值幅度/dB過渡帶寬阻帶最小衰減/dB矩形窗-134-21三角形窗-258-25漢

26、寧窗-318-44哈明窗-418-53布萊克曼窗-5712-74凱塞窗-5710-80凱塞窗是一種適應(yīng)能力比較強(qiáng)的窗函數(shù),在本文的設(shè)計(jì)中將使用到凱塞窗。其窗函數(shù)的形式可以表示為: (2-12)式中 (2-13)是零階第一類正凱塞-貝塞爾函數(shù),可用下面級(jí)數(shù)計(jì)算: (2-14)一般取1525項(xiàng),便可以滿足精度要求。參數(shù)可以控制窗的形狀。一般加大,主瓣加寬,旁瓣幅度減小,典型數(shù)據(jù)為49。當(dāng)=5.44時(shí),窗函數(shù)接近哈明窗。當(dāng)=7.865時(shí),窗函數(shù)接近布萊克曼窗。凱塞窗的幅度函數(shù)為: (2-15)這種窗函數(shù)在不同值的性能歸納在表2-2中:表2-2 凱塞窗參數(shù)對(duì)濾波器的性能影響過渡帶寬通帶波紋/dB阻帶最

27、小衰減/dB2120300-304538586-5078651000.000 868-80100561080.000 087-100 FPGA設(shè)計(jì)方法與設(shè)計(jì)流程31 FPGA概述隨著微電子技術(shù)的發(fā)展,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨(dú)立承擔(dān)。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)專用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件FPLD,其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門陣列FPGA和復(fù)雜可編程邏輯器件CPLD。FPGA/CPLD, DSP和CPU被稱為未來數(shù)字電路系統(tǒng)的3塊基石

28、,也是目前硬件設(shè)計(jì)研究的熱點(diǎn)。與傳統(tǒng)電路設(shè)計(jì)方法相比,F(xiàn)PGA具有功能強(qiáng)大、開發(fā)過程投資少、周期短、可反復(fù)編程修改、保密性能好、開發(fā)工具智能化等特點(diǎn),特別是隨著電子工藝的不斷改進(jìn),低成本FPGA器件推陳出新。另一方面集成電路技術(shù)仍然按照摩爾定律飛速發(fā)展,最新的工藝水平也由90納米有條不紊地發(fā)展到了65納米,但是一般的ASIC的流片生產(chǎn)的增長(zhǎng)速度更是驚人。而且現(xiàn)代市場(chǎng)商機(jī)瞬息萬變、稍縱即逝,商家希望設(shè)計(jì)的產(chǎn)品在最短的時(shí)間里投入市場(chǎng)中,ASIC開發(fā)周期顯得比較長(zhǎng)。這一切促使FPGA成為當(dāng)今硬件設(shè)計(jì)的首選方式之一。FPGA的基本特點(diǎn)主要有:1、采用FPGA設(shè)計(jì)ASIC電路,用戶不需要經(jīng)過流片生產(chǎn),就

29、能得到可用的芯片。2、FPGA可做其它全定制或半定制ASIC電路的中試樣片。3、FPGA內(nèi)部有豐富的組合邏輯、觸發(fā)器和I/O引腳。4、FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。5、FPGA采用高速CHMOS工藝,功耗低,可以與CMOS, TTL電平兼容。32 FPGA的基本結(jié)構(gòu)現(xiàn)場(chǎng)可編程門陣列(FPGA)器件是Xilinx公司1985年首家推出的,它是一種新型的高密度PLD。 FPGA內(nèi)部由許多獨(dú)立的可編程邏輯模塊(CLB)組成,邏輯塊之間可以靈活地相互連接。FPGA的結(jié)構(gòu)一般分為三部分:可編程邏輯塊、可編程I/O模塊和可編程內(nèi)部連線。結(jié)構(gòu)示意圖3-1如下: 圖3

30、-1 FPGA結(jié)構(gòu)圖1、CLB模塊CLB是FPGA的主要組成部分,是實(shí)現(xiàn)邏輯功能的基本單元,CLB主要是由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。CLB的功能很強(qiáng),不僅能夠?qū)崿F(xiàn)邏輯函數(shù),還可以配置成RAM等復(fù)雜的形式,配置數(shù)據(jù)存放在片內(nèi)的SRAM或熔絲圖上,基于SRAM的FPGA器件工作前需要從芯片外部加載配置數(shù)據(jù)。配置數(shù)據(jù)可以存儲(chǔ)在片外的EPROM或計(jì)算機(jī)上,設(shè)計(jì)人員可以控制加載過程,在現(xiàn)場(chǎng)修改器件的邏輯功能,即現(xiàn)場(chǎng)可編程。2、I/O模塊IOBIOB提供了器件引腳和內(nèi)部邏輯陣列之間的連接,通常排列在芯片的四周。主要是由觸發(fā)器、輸入緩沖器、輸出觸發(fā)器和輸出緩沖器組成,每個(gè)IOB控制一個(gè)引

31、腳,可被配置為輸入、輸出或雙向I/O功能。3、可編程互連資源IR可編程互連資源包括各種長(zhǎng)度的金屬連線線段和一些可編程開關(guān),它們將各個(gè)CLB之間和CLB與IOB之間互相連接起來,構(gòu)成各種復(fù)雜功能的系統(tǒng)。FPGA的發(fā)展非常迅速,形成了各種不同的結(jié)構(gòu)。按邏輯功能塊的大小分類,F(xiàn)PGA可分為細(xì)粒度FPGA和粗粒度FPGA。細(xì)粒度FPGA的邏輯功能塊較小,資源可以充分利用,但連線和開關(guān)多,速度慢:粗粒度FPGA的邏輯功能塊規(guī)模大,功能強(qiáng),但資源不能充分利用。從邏輯功能塊的結(jié)構(gòu)上分類,可分為查表結(jié)構(gòu)、多路開關(guān)結(jié)構(gòu)和多級(jí)與非門結(jié)構(gòu)。根據(jù)FPGA內(nèi)部連線的結(jié)構(gòu)不同,可分為分段互連型FPGA和連續(xù)互連型FPGA

32、兩類。分段互連型FPGA中具有各種不同長(zhǎng)度的金屬線,各金屬線段之間通過開關(guān)矩陣或反熔絲編程連接,走線靈活方便,但是無法預(yù)測(cè)走線延時(shí);連續(xù)互連型FPGA是利用相同長(zhǎng)度的金屬線,連接與距離遠(yuǎn)近無關(guān),布線延時(shí)是固定的和可預(yù)測(cè)的。33 FPGA設(shè)計(jì)流程FPGA設(shè)計(jì)大都采用至上而下的設(shè)計(jì)方法,即從系統(tǒng)整體要求出發(fā),自上而下地逐步將設(shè)計(jì)內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。圖3-2 基于EDA軟件的FPGA設(shè)計(jì)流程圖整個(gè)設(shè)計(jì)流程如下所示,包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功能仿真、時(shí)序仿真、布局布線、綜合、綜合后仿真、編程下載等。圖3-2是基于EDA軟件的FPGA設(shè)計(jì)流程圖,對(duì)于目前流行的EDA工具軟件,圖3-2的

33、設(shè)計(jì)流程具有一般性。以下分別介紹開發(fā)設(shè)計(jì)中各流程的主要功能及其常用的 EDA 軟件。1、設(shè)計(jì)準(zhǔn)備在系統(tǒng)設(shè)計(jì)之前,首先要進(jìn)行方案論證、系統(tǒng)設(shè)計(jì)和器件選擇等準(zhǔn)備工作。根據(jù)任務(wù)要求,如系統(tǒng)的功能和復(fù)雜度,對(duì)工作速度和器件本身的資源、成本及連線的可布性進(jìn)行權(quán)衡,選擇合適的設(shè)計(jì)方案和合適的器件類型。2、設(shè)計(jì)輸入常用的輸入方式有三種:原理圖輸入方式、硬件描述語言輸入方式、波形輸入方式。原理圖輸入方式原理圖輸入方式是最直接的設(shè)計(jì)描述方式,要設(shè)計(jì)什么,就從軟件系統(tǒng)提供的元件庫中調(diào)出來,畫出原理圖,這樣比較符合人們的習(xí)慣。這種方式需要設(shè)計(jì)人員具有豐富的電路知識(shí)以及對(duì)FPGA的結(jié)構(gòu)比較了解。其主要優(yōu)點(diǎn)是容易實(shí)現(xiàn)仿

34、真,便于信號(hào)的觀察和電路的調(diào)整;缺點(diǎn)是效率低,特別是產(chǎn)品有所改動(dòng),需要選用另外一種器件時(shí),就需要重新輸入原理圖,而硬件描述語言則不存在這個(gè)問題。硬件描述語言輸入方式硬件描述語言HDL的發(fā)展至今已有20多年的歷史,并成功地應(yīng)用于設(shè)計(jì)的各個(gè)階段:建模、仿真、驗(yàn)證和綜合等。到20世紀(jì)80年代,己出現(xiàn)了上百種硬件描述語言,對(duì)設(shè)計(jì)自動(dòng)化曾起到了極大的促進(jìn)和推動(dòng)作用。但是,這些語言一般各自面向特定的設(shè)計(jì)領(lǐng)域和層次,而且眾多的語言使用戶無所適從。因此,急需一種面向設(shè)計(jì)的多領(lǐng)域、多層次并得到普遍認(rèn)同的標(biāo)準(zhǔn)硬件描述語言。20世紀(jì)80年代后期,VHDL和Verilog HDL語言適應(yīng)了這種趨勢(shì)的要求,先后成為IE

35、EE標(biāo)準(zhǔn)。關(guān)于這兩種語言在下面將進(jìn)行詳細(xì)討論。波形輸入方式波形輸入方式主要用來建立和編輯波形設(shè)計(jì)文件,以及輸入仿真向量和功能測(cè)試向量。波形設(shè)計(jì)輸入適合用于時(shí)序邏輯和有重復(fù)性的邏輯函數(shù)。系統(tǒng)軟件可以根據(jù)用戶定義的輸入/輸出波形自動(dòng)生成邏輯關(guān)系。3、功能仿真功能仿真也叫前仿真。用戶所設(shè)計(jì)的電路必須在編譯之前進(jìn)行邏輯功能驗(yàn)證,此時(shí)的仿真沒有延時(shí)信息,對(duì)于初步的功能檢測(cè)非常方便。仿真前要先利用波形編輯器和硬件描述語言等建立波形文件和測(cè)試向量,仿真結(jié)果會(huì)生成報(bào)告文件和輸出波形信號(hào),從中便可以觀察到各個(gè)接點(diǎn)的信號(hào)變化。如果發(fā)現(xiàn)錯(cuò)誤,則返回設(shè)計(jì)輸入中修改邏輯設(shè)計(jì)。4、設(shè)計(jì)處理設(shè)計(jì)處理是FPGA設(shè)計(jì)中的核心環(huán)

36、節(jié)。在設(shè)計(jì)處理過程中,編譯軟件將對(duì)設(shè)計(jì)輸入文件進(jìn)行邏輯化簡(jiǎn)、綜合優(yōu)化和適配,最后產(chǎn)生編程用的編程文件。5、語法檢查和設(shè)計(jì)規(guī)則檢查設(shè)計(jì)輸入完成后,首先要進(jìn)行語法檢查,如原理圖中有無漏連信號(hào)線,信號(hào)有無雙重來源,文本輸入文件中關(guān)鍵字有無輸錯(cuò)等各種語法錯(cuò)誤,并及時(shí)列出錯(cuò)誤信息報(bào)告供設(shè)計(jì)人員修改,然后進(jìn)行設(shè)計(jì)規(guī)則檢查,檢查總的設(shè)計(jì)有無超出器件資源或規(guī)定的限制,并將編譯報(bào)告列出,指明違反規(guī)則情況以供設(shè)計(jì)人員糾正。6、邏輯優(yōu)化和綜合化簡(jiǎn)所有的邏輯方程或用戶自建的宏,使設(shè)計(jì)所占用的資源最少。綜合的目的是將許多模塊化設(shè)計(jì)文件合并為一個(gè)網(wǎng)表文件,并使層次設(shè)計(jì)平面化。7、適配和分割確立優(yōu)化以后的邏輯能否與器件中的

37、宏單元和I/O單元適配,然后將設(shè)計(jì)分割為多個(gè)便于識(shí)別的邏輯小塊形式映射到器件相應(yīng)的宏單元中。如果整個(gè)設(shè)計(jì)較大,不能裝入一個(gè)器件時(shí),可以將整個(gè)設(shè)計(jì)劃分(分割)成多塊,并裝入同一系列的多片器件中去。分割可全自動(dòng)、部分或全部用戶控制,目的是使器件數(shù)目最少,器件之間通信的引腳數(shù)目最少。8、布局和布線布局和布線工作是在上面的設(shè)計(jì)工作完成后由軟件自動(dòng)完成的,它以最優(yōu)的方式對(duì)邏輯元件布局,并準(zhǔn)確地實(shí)現(xiàn)元件間的互連。布線以后軟件自動(dòng)生成報(bào)告,提供有關(guān)設(shè)計(jì)中各部分資源的使用情況等信息。9、時(shí)序仿真時(shí)序仿真又稱后仿真或延時(shí)仿真。由于不同器件的內(nèi)部延時(shí)不一樣,不同的布局布線方案也給延時(shí)造成不同的影響,因此在設(shè)計(jì)處理

38、以后,對(duì)系統(tǒng)的各模塊進(jìn)行時(shí)序仿真,分析其時(shí)序關(guān)系,估計(jì)設(shè)計(jì)的性能,以及檢查和消除競(jìng)爭(zhēng)冒險(xiǎn)等是非常必要的。實(shí)際上這也是與實(shí)際器件工作情況基本相同的仿真。10、器件編程測(cè)試時(shí)序仿真完成后,軟件就可以產(chǎn)生供器件編程使用的數(shù)據(jù)文件。對(duì)于FPGA來說,就是產(chǎn)生位數(shù)據(jù)流文件(Bitstream Generation ),然后將編程數(shù)據(jù)寫到對(duì)應(yīng)的具體可編程器件中去。器件在編程完畢后,可以用編譯時(shí)產(chǎn)生的文件對(duì)器件進(jìn)行校驗(yàn)、加密等工作,對(duì)于支持JTEG技術(shù)具有邊界掃描測(cè)試BST ( Bandary-Scan Testing)能力和在線編程能力的器件來說,測(cè)試起來就更加方便。34 VHDL與Verilog HDL

39、硬件描述語言(HDL)是一種用文本形式來描述和設(shè)計(jì)電路的語言。經(jīng)過長(zhǎng)時(shí)間的發(fā)展,HDL語言發(fā)展為VHDL與Verilog HDL兩種語言。VHDL(Very High Speed Integration Circuit HDL)超高速集成電路硬件描述語言是1985年在美國(guó)國(guó)防部的支持下推出的一種標(biāo)準(zhǔn)化程度較高的語言,VHDL語言是一種全方位的語言,包括從系統(tǒng)到電路的所有設(shè)計(jì)層次,支持自上而下和基于庫的設(shè)計(jì)方法,而且還支持同步電路、異步電路、FPGA以及其它隨機(jī)電路的設(shè)計(jì)。其范圍之廣是其它HDL語言所不能比擬的。VHDL語言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)級(jí)的數(shù)學(xué)模型直到門級(jí)電路。另

40、外高層次的行為描述可以與低層次的RTL描述和結(jié)構(gòu)描述混合使用。VHDL語言能進(jìn)行系統(tǒng)級(jí)的硬件描述,這是其最突出的一個(gè)優(yōu)點(diǎn)。在用VHDL語言設(shè)計(jì)系統(tǒng)硬件時(shí),沒有嵌入與工藝有關(guān)的信息,可以使設(shè)計(jì)人員在系統(tǒng)設(shè)計(jì)、邏輯驗(yàn)證階段便確立方案的可行性;VHDL語言的公開可利用性,便于實(shí)現(xiàn)大規(guī)模系統(tǒng)的設(shè)計(jì);具有很強(qiáng)的邏輯描述和仿真功能,而且輸入效率高,在不同的設(shè)計(jì)輸入庫之間的轉(zhuǎn)換非常方便,且不用對(duì)低層電路的結(jié)構(gòu)非常熟悉。Verilog HDL語言是1983年由GDA公司的Phil Moorby首創(chuàng)的,至今已有20多年的應(yīng)用歷史,因而擁有廣泛的用戶群體,其設(shè)計(jì)資源也比VHDL豐富。Verilog HDL語言是在

41、C語言的基礎(chǔ)上發(fā)展而來的。從語法結(jié)構(gòu)上看,Verilog HDL語言和C語言有許多相之處,繼承和借鑒了C語言的很多語法結(jié)構(gòu)。由于這種語言具有簡(jiǎn)潔、高效、易用、功能強(qiáng)等特點(diǎn),因此逐漸為眾多設(shè)計(jì)者接受和喜愛。Verilog HDL既能進(jìn)行面向綜合的電路設(shè)計(jì),又可用于電路的模擬仿真。支持在多個(gè)層次上對(duì)所設(shè)計(jì)的系統(tǒng)加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳輸級(jí)到行為級(jí)等。擁有靈活多樣的電路描述風(fēng)格,可進(jìn)行行為描述,也可進(jìn)行結(jié)構(gòu)描述或數(shù)據(jù)流描述,同時(shí)支持混合建模,在一個(gè)設(shè)計(jì)中各個(gè)模塊可以在不同的設(shè)計(jì)層次上建模和描述。Verilog HDL語言易學(xué)易用,可以使設(shè)計(jì)者更快更好地掌握并用于電路設(shè)計(jì)。Verilog H

42、DL語言功能強(qiáng),可滿足各個(gè)層次設(shè)計(jì)人員的需要。正是以上優(yōu)點(diǎn),使得它廣泛流行。在ASIC設(shè)計(jì)領(lǐng)域,Verilog HDL語言一直就是事實(shí)上的標(biāo)準(zhǔn)。本次設(shè)計(jì)將采用Verilog HDL語言來進(jìn)行描述。35 FPGA設(shè)計(jì)原則FPGA設(shè)計(jì)的一個(gè)重要指導(dǎo)原則:面積和速度的平衡與互換,這個(gè)原則在后邊的濾波器設(shè)計(jì)中有大量的驗(yàn)證體現(xiàn)。這里“面積”指一個(gè)設(shè)計(jì)消耗FPGA/CPLD的邏輯資源的數(shù)量,對(duì)于FPGA可以用所消耗的觸發(fā)器(FF)和查找表(LUT)來衡量,更一般的衡量方式可以用設(shè)計(jì)所占用的等價(jià)邏輯門數(shù)來衡量?!八俣取敝冈O(shè)計(jì)在芯片上穩(wěn)定運(yùn)行所能夠達(dá)到的最高頻率,這個(gè)頻率由設(shè)計(jì)的時(shí)序狀況決定,和設(shè)計(jì)滿足的時(shí)鐘

43、周期,PADto PAD Time, Clock Setup Time, Clock Hold Time, Clock-to-Output Delay等眾多時(shí)序特征量密切相關(guān)。面積(area)和速度(speed)這兩個(gè)指標(biāo)貫穿著FPGA設(shè)計(jì)的始終,是設(shè)計(jì)質(zhì)量評(píng)價(jià)的終極標(biāo)準(zhǔn)。關(guān)于面積和速度的兩個(gè)最基本的概念:面積與速度的平衡和面積與速度的互換,本文做如下探討。面積和速度是一對(duì)對(duì)立統(tǒng)一的矛盾體。要求一個(gè)設(shè)計(jì)同時(shí)具備設(shè)計(jì)面積最小,運(yùn)行頻率最高是不現(xiàn)實(shí)的。更科學(xué)的設(shè)計(jì)目標(biāo)應(yīng)該是在滿足設(shè)計(jì)時(shí)序要求(包含對(duì)設(shè)計(jì)頻率的要求)的前提下,占用最小的芯片面積?;蛘咴谒?guī)定的面積下,使設(shè)計(jì)的時(shí)序余量更大,頻率跑得更

44、高。這兩種目標(biāo)充分體現(xiàn)了面積和速度的平衡的思想。關(guān)于面積和速度的要求,不應(yīng)該簡(jiǎn)單的理解為工程師水平的提高和設(shè)計(jì)完美性的追求,而應(yīng)該認(rèn)識(shí)到它們是和產(chǎn)品的質(zhì)量和成本直接相關(guān)的。如果設(shè)計(jì)的時(shí)序余量比較大,跑的頻率比較高,意味著設(shè)計(jì)的健壯性更強(qiáng),整個(gè)系統(tǒng)的質(zhì)量更有保證;另一方面,設(shè)計(jì)所消耗的面積更小,則意味著在單位芯片上實(shí)現(xiàn)的功能模塊更多,需要的芯片數(shù)量更少,整個(gè)系統(tǒng)的成本也隨之大幅度削減。作為矛盾的兩個(gè)組成部分,面積和速度的地位是不一樣的。相比之下,滿足時(shí)序、工作頻率的要求更重要一些,當(dāng)兩者沖突時(shí),采用速度優(yōu)先的準(zhǔn)則。面積和速度的互換是FPGA設(shè)計(jì)的一個(gè)重要思想。從理論上講,一個(gè)設(shè)計(jì)如果時(shí)序余量較大

45、,所能跑的頻率遠(yuǎn)遠(yuǎn)高于設(shè)計(jì)要求,那么就能通過功能模塊復(fù)用減少整個(gè)設(shè)計(jì)消耗的芯片面積,這就是用速度的優(yōu)勢(shì)換面積的節(jié)約;反之,如果一個(gè)設(shè)計(jì)的時(shí)序要求很高,普通方法達(dá)不到設(shè)計(jì)頻率,那么一般可以通過將數(shù)據(jù)流串并轉(zhuǎn)換,并行復(fù)制多個(gè)操作模塊,對(duì)整個(gè)設(shè)計(jì)采取“串并轉(zhuǎn)換”的思想進(jìn)行運(yùn)作,在芯片輸出模塊再在對(duì)數(shù)據(jù)進(jìn)行“并串轉(zhuǎn)換”,是從宏觀上看整個(gè)芯片滿足了處理速度的要求,這相當(dāng)于用面積復(fù)制換速度提高。舉一個(gè)例子。假設(shè)數(shù)字信號(hào)處理系統(tǒng)輸入數(shù)據(jù)流的速率是350Mb/s,而在FPGA上設(shè)計(jì)的數(shù)據(jù)處理模塊的處理速度最大為150Mb/s,由于處理模塊的數(shù)據(jù)吞吐量滿足不了要求,看起來直接在FPGA上實(shí)現(xiàn)是不可能的。這種情況

46、下,就應(yīng)該利用“面積換速度”的思想,至少?gòu)?fù)制成3個(gè)處理模塊,首先將輸入數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,然后利用這三個(gè)模塊并行處理分配的數(shù)據(jù),然后將處理結(jié)果“并串變換”,就完成數(shù)據(jù)速率的要求。我們?cè)谡麄€(gè)處理模塊的兩端看,數(shù)據(jù)速率是350Mb/s,而在FPGA的內(nèi)部看,每個(gè)子模塊處理的數(shù)據(jù)速率是150Mb/s,其實(shí)整個(gè)數(shù)據(jù)的吞吐量的保障是依賴于3個(gè)子模塊并行處理完成的,也就是說利用了占用更多的芯片面積,實(shí)現(xiàn)了高速處理,通過“面積的復(fù)制換取處理速度的提高”的思想實(shí)現(xiàn)了設(shè)計(jì)。36 EDA開發(fā)工具介紹下面對(duì)本設(shè)計(jì)將要用到的兩款EDA開發(fā)工具進(jìn)行介紹:Matlab - Matlab是當(dāng)今國(guó)際上科學(xué)界(尤其是自動(dòng)控制領(lǐng)域

47、)最具影響力、也是最有活力的軟件。它起源于矩陣運(yùn)算,并已經(jīng)發(fā)展成一種高度集成的計(jì)算機(jī)語言。它提供了強(qiáng)大的科學(xué)運(yùn)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)、便捷的與其他程序和語言接口的功能。Matlab 語言在各國(guó)高校與研究單位起著重大的作用。Matlab 語言中提供了數(shù)字信號(hào)處理工具箱,使數(shù)字信號(hào)處理較以前更簡(jiǎn)潔方便且效果更好。在 Matlab 中提供了一些濾波器的函數(shù),使 FIR 濾波器的運(yùn)算更加方便和快速。Quartus II- Quartus II是Altera公司的第四代可編程邏輯器件集成開發(fā)環(huán)境,提供從設(shè)計(jì)輸入到器件編程的全部功能,支持百萬門級(jí)的設(shè)計(jì),適合大規(guī)模FPGA的開

48、發(fā)。Quartus II可以產(chǎn)生并識(shí)別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog HDL網(wǎng)表文件,為其他EDA工具提供了方便的接口,可以在Quartus II集成環(huán)境中自動(dòng)運(yùn)行其他EDA工具。使用Quartus II可完成從設(shè)計(jì)輸入、綜合適配、仿真到編程下載整個(gè)的設(shè)計(jì)過程。它實(shí)現(xiàn)了FPGA業(yè)界的編譯增強(qiáng)特性,使設(shè)計(jì)人員在綜合和適配時(shí),將設(shè)計(jì)分成物理和邏輯兩部分來處理。此特性支持基于模塊的設(shè)計(jì),設(shè)計(jì)人員保持專用模塊性能不變,而只對(duì)其他模塊進(jìn)行優(yōu)化。設(shè)計(jì)人員針對(duì)專用設(shè)計(jì)部分采用物理綜合等高級(jí)優(yōu)化技術(shù),而不改動(dòng)其他模塊,能夠顯著提高時(shí)序逼近效果。 FIR濾波器的實(shí)現(xiàn)41 設(shè)計(jì)方案確定數(shù)字濾波

49、器無論是采用硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的方案,首先應(yīng)確定出數(shù)字濾波器的設(shè)計(jì)指標(biāo)。設(shè)計(jì)指標(biāo)的不同,將會(huì)直接影響到最終設(shè)計(jì)的濾波器的幅頻響應(yīng)、相頻響應(yīng)等各項(xiàng)性能結(jié)果。根據(jù)前幾章的介紹,本次設(shè)計(jì)將用凱塞爾窗函數(shù)設(shè)計(jì)一個(gè)直接型結(jié)構(gòu)的FIR濾波器,并用Verilog HDL語言編寫程序。FIR濾波器的設(shè)計(jì)指標(biāo):濾波器類型:低通濾波器,采樣頻率:8KHz,截止頻率:,階數(shù):16階,輸入數(shù)據(jù)寬度:8位,輸出數(shù)據(jù)寬度:8位。42 使用Matlab來設(shè)計(jì) FIR 濾波器在Matlab的SIGNAL PROCESSING TOOLBOX中有一個(gè)專門的數(shù)字濾波器設(shè)計(jì)軟件模塊FDA (Filter Design & Ana

50、lysis Tool),其功能強(qiáng)大,可以采用多種方法設(shè)計(jì)各種類型的FIR濾波器,包括窗函數(shù)法和等同紋波法,低通、帶通等濾波器。運(yùn)用它可以極大的簡(jiǎn)化我們的設(shè)計(jì)過程。圖4-1與圖4-2就是根據(jù)FIR濾波器的設(shè)計(jì)指標(biāo)與設(shè)計(jì)方法,用FDATool設(shè)計(jì)的FIR濾波器的幅頻響應(yīng)與相頻響應(yīng)。 圖4-1 FIR濾波器幅頻響應(yīng)圖4-2 FIR濾波器相頻響應(yīng)在輸入設(shè)計(jì)要求,選擇設(shè)計(jì)方法后,F(xiàn)DAtool會(huì)以圖形方式直觀的顯示出幅頻、相頻、沖擊響應(yīng)和零極點(diǎn)圖等設(shè)計(jì)結(jié)果,這讓我們能夠方便及時(shí)的對(duì)結(jié)果進(jìn)行分析。從圖4-1、圖4-2可以看出,了大約10dB,而相頻則保持了FIR濾波器的特點(diǎn),呈線性。表明濾波器的設(shè)計(jì)滿足要

51、求。同時(shí),F(xiàn)DAtool還計(jì)算出了濾波器各階系數(shù),而抽頭系數(shù)是我們?cè)O(shè)計(jì)FIR濾波器時(shí)需要的重要數(shù)據(jù)。濾波器系數(shù)得到后,由于系數(shù)是帶符號(hào)的十進(jìn)制浮點(diǎn)數(shù),不能在FPGA中使用,因此要考慮對(duì)其進(jìn)行量化。43 系數(shù)的量化所謂量化,就是將連續(xù)信號(hào)的脈沖抽樣幅度值用一個(gè)最為接近的、而且是數(shù)字信號(hào)所規(guī)定的數(shù)字值來近似。下載到 FPGA 的程序是按照 FIR 濾波器的差分方程式編寫的。通過差分方程不難分析出運(yùn)算的關(guān)鍵是二進(jìn)制的乘累加。由于通過Matlab計(jì)算出的抽頭系數(shù)h(n)的值是一組帶有符號(hào)的浮點(diǎn)數(shù),而FPGA器件只進(jìn)行定點(diǎn)值的計(jì)算,所以不僅要進(jìn)行浮點(diǎn)數(shù)到定點(diǎn)數(shù)的轉(zhuǎn)換,還要對(duì)負(fù)數(shù)進(jìn)行處理。本文采用Q值量化

52、法對(duì)浮點(diǎn)數(shù)進(jìn)行轉(zhuǎn)換。浮點(diǎn)數(shù)與定點(diǎn)數(shù)的轉(zhuǎn)換關(guān)系可表示為:浮點(diǎn)數(shù)(x)轉(zhuǎn)換為定點(diǎn)數(shù)(y):y=(int)x* 2Q次方-1;定點(diǎn)數(shù)(y)轉(zhuǎn)換為浮點(diǎn)數(shù)(x):x=(float)y*2-Q。,設(shè)定Q=10,則定點(diǎn)數(shù)y=0.5*1023=511.5=512,式中1023表示2的10次方再減1,那么相應(yīng)的定點(diǎn)數(shù)整數(shù)為512,轉(zhuǎn)化為10位二進(jìn)制補(bǔ)碼就是1000000000。正數(shù)的二進(jìn)制補(bǔ)碼就是其本身,負(fù)數(shù)的二進(jìn)制補(bǔ)碼要取反再加1。反之,一個(gè)用Q=10表示的定點(diǎn)數(shù) 512,其浮點(diǎn)數(shù)為512/1023=0.5。其他的依此類推。根據(jù)上面的FIR設(shè)計(jì)指標(biāo),分析得到本次量化的Q值Q=8。量化后的系數(shù)用二進(jìn)制的補(bǔ)碼表示

53、,為了兼顧精度和所占用的資源,本文的系數(shù)用8位二進(jìn)制來表示,最高位為符號(hào)位。我通過設(shè)計(jì)Matlab程序來實(shí)現(xiàn)對(duì)濾波器16階抽頭系數(shù)的8位量化處理,以下就是Matlab程序代碼:若unnamed中存放的是代表16階抽頭系數(shù)的帶符號(hào)浮點(diǎn)數(shù);x=127*unnamed; /通過對(duì)小數(shù)點(diǎn)后的數(shù)字四舍五入的方法,將浮點(diǎn)數(shù)轉(zhuǎn)換y=round(x); / 為整數(shù)z=y0; /把系數(shù)中的正數(shù)選擇出來c=z.*y; /f=dec2bin(c); /直接轉(zhuǎn)換成二進(jìn)制e中的是由負(fù)浮點(diǎn)數(shù)轉(zhuǎn)化的二進(jìn)制補(bǔ)碼,f中的是由正浮點(diǎn)數(shù)轉(zhuǎn)化的二進(jìn)制數(shù)。根據(jù)上面的程序?qū)DAtool求出的濾波器系數(shù)進(jìn)行量化,得到的結(jié)果見表4-1:表

54、4-1 濾波器系數(shù)量化后的結(jié)果脈沖響應(yīng)數(shù)值16進(jìn)制補(bǔ)碼脈沖響應(yīng) 數(shù)值16進(jìn)制補(bǔ)碼 h(0)02 h(8)10h(1)FB h(9)F2h(2)07h(10)0Ch(3)F6h(11)F6h(4)0Ch(12)07h(5)F2h(13)FBh(6)10h(14)02h(7)70h(15) 000在進(jìn)行量化時(shí)也不能忘記分析量化所帶來的誤差。量化誤差是指實(shí)際模擬值同用來表示模擬值的數(shù)字之間的差別。當(dāng)實(shí)際模擬值落入兩個(gè)量化層次之間時(shí),便會(huì)產(chǎn)生量化誤差。量化過程實(shí)際是一個(gè)近似的過程,所以量化誤差有時(shí)又被稱為量化噪聲,所以采用正確的量化方式所造成的誤差可在接收范圍內(nèi)。通過在Matlab的FDATool中來

55、分析量化誤差,生成量化后的FIR濾波器的幅頻和相頻的特性曲線,由于篇幅有限在這里沒有給出。觀察量化后的FIR濾波器的幅頻和相頻的特性曲線,量化所帶來的誤差在要求的范圍之內(nèi),量化前和量化后濾波器的響應(yīng)差別很小。所以基于上述量化方法的濾波器設(shè)計(jì)是可行的。在得到了經(jīng)過量化的濾波器系數(shù)后,就可以進(jìn)行濾波器的程序設(shè)計(jì)了。44 FIR濾波器部分原程序原程序用Verilog HDL語言編寫,根據(jù)FIR濾波器直接型結(jié)構(gòu),也就是乘累加和的結(jié)構(gòu),并根據(jù)本次設(shè)計(jì)所要求的設(shè)計(jì)指標(biāo)以及之前量化所得到的濾波器系數(shù),直接設(shè)計(jì)。下面是原程序的各個(gè)部分:(1)數(shù)據(jù)各端口定義部分:clk是時(shí)鐘脈沖輸入端;clk_enable是使

56、能端,用來控制數(shù)據(jù)輸入;reset是復(fù)位端;filter_in是信號(hào)輸入端;filter_out是濾波后的數(shù)據(jù)輸出端。module filter (clk, clk_enable, reset, filter_in, filter_out ); input clk; input clk_enable; input reset; input signed 7:0 filter_in; output signed 7:0 filter_out; (2)抽頭系數(shù)進(jìn)程部分:根據(jù)前面的量化方法,將用MATLAB量化后的16個(gè)8位二進(jìn)制的濾波器系數(shù)輸入到程序中,并定義為常量。parameter signe

57、d 7:0 coeff1 = 8b00000000; parameter signed 7:0 coeff2 = 8b00000010; parameter signed 7:0 coeff3 = 8b11111011; parameter signed 7:0 coeff4 = 8b00000111; (3)寄存器定義進(jìn)程部分:此部分定義了程序中將要用到的延遲存儲(chǔ)器、輸出寄存器及多個(gè)累加和寄存器。 reg signed 7:0 delay_pipeline 0:16 ; wire signed 23:0 product16; wire signed 23:0 product15; wire

58、signed 23:0 product14; wire signed 23:0 product13; wire signed 23:0 product12; (4)復(fù)位與數(shù)據(jù)輸入進(jìn)程部分:此部分采用行為描述方式,每當(dāng)時(shí)鐘上升沿到來時(shí),即進(jìn)入該進(jìn)程,若此時(shí)復(fù)位端reset為高電平,則延遲寄存器都被置為0; 若此時(shí)復(fù)位端reset為低電平,同時(shí)控制使能端clk_enable若為高電平,則數(shù)據(jù)輸入延遲寄存器,并通過延遲寄存器實(shí)現(xiàn)延遲。always ( posedge clk or posedge reset) begin: Delay_Pipeline_process if (reset = 1b1

59、) begin delay_pipeline0 = 0; delay_pipeline1 = 0; delay_pipeline2 = 0; delay_pipeline3 = 0; end else begin if (clk_enable = 1b1) begin delay_pipeline0 = filter_in; delay_pipeline1 = delay_pipeline0; delay_pipeline2 = delay_pipeline1; end end end (5)乘法部分該部分實(shí)現(xiàn)的是乘法的作用。采用數(shù)據(jù)流描述方式,接收來自延遲器寄存的輸入信號(hào),將其與代表抽頭系數(shù)

60、的常量相乘,然后把結(jié)果送入加法寄存器中。 assign product16 = delay_pipeline15 * coeff16; assign product15 = delay_pipeline14 * coeff15; assign product14 = delay_pipeline13 * coeff14; (6)加法部分該部分把16階抽頭系數(shù)與延遲寄存器的相乘的結(jié)果進(jìn)行累加,并把累加后的數(shù)據(jù)傳給輸出寄存器。此部分也采用數(shù)據(jù)流描述方式。到該部分為止,整個(gè)程序已經(jīng)通過乘累加器,實(shí)現(xiàn)了對(duì)輸入信號(hào)進(jìn)行濾波。 assign add_cast = $signed(16product223,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論