基于FPGA的FIR數(shù)字濾波器設(shè)計和實現(xiàn)自動化專業(yè)

上傳人:文*** 文檔編號:63389815 上傳時間:2022-03-18 格式:DOCX 頁數(shù):14 大?。?46.90KB
收藏 版權(quán)申訴 舉報 下載
基于FPGA的FIR數(shù)字濾波器設(shè)計和實現(xiàn)自動化專業(yè)_第1頁
第1頁 / 共14頁
基于FPGA的FIR數(shù)字濾波器設(shè)計和實現(xiàn)自動化專業(yè)_第2頁
第2頁 / 共14頁
基于FPGA的FIR數(shù)字濾波器設(shè)計和實現(xiàn)自動化專業(yè)_第3頁
第3頁 / 共14頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于FPGA的FIR數(shù)字濾波器設(shè)計和實現(xiàn)自動化專業(yè)》由會員分享,可在線閱讀,更多相關(guān)《基于FPGA的FIR數(shù)字濾波器設(shè)計和實現(xiàn)自動化專業(yè)(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、1、 FPGA技術(shù)簡介 現(xiàn)場可編程門陣列FPGA是80年代末開始使用的大規(guī)??删幊虜?shù)字IC器件,它充分利用EDA技術(shù)進行器件的開發(fā)與應(yīng)用。用戶借助于計算機不僅能自行設(shè)計自己的專用集成電路芯片,還可在計算機上進行功能仿真和時序仿真,及時發(fā)現(xiàn)問題,調(diào)整電路,改進設(shè)計方案。這樣,設(shè)計者不必動手搭接電路、調(diào)試驗證,只需短時間內(nèi)在計算機上操作即可設(shè)計出與實際系統(tǒng)相差無幾的理想電路。而且,F(xiàn)PGA器件采用標(biāo)準(zhǔn)化結(jié)構(gòu),體積小、集成度高、功耗低、速度快,可無限次反復(fù)編程,因此成為科研產(chǎn)品開發(fā)及其小型化的首選器件,其應(yīng)用極為廣泛。 3.1 FPGA工作原理 FPGA采用了邏輯單元陣列LCA(Logic C

2、ell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了既可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O

3、模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實現(xiàn)的功能,F(xiàn)PGA允許無限次的編程。 3.2 FIR濾波器特點 1)采用FPGA設(shè)計ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。 4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。 5) FPGA采用高速CMOS工藝,功耗低,可以與CMOS、TTL電

4、平兼容。同時,F(xiàn)PGA還存在以下五大優(yōu)勢。 1)性能:利用硬件并行的優(yōu)勢,F(xiàn)PGA打破了順序執(zhí)行的模式,在每個時鐘周期內(nèi)完成更多的處理任務(wù),超越了數(shù)字信號處理器(DSP)的運算能力。 著名的分析與基準(zhǔn)測試公司BDTI,發(fā)布基準(zhǔn)表明在某些應(yīng)用方面,F(xiàn)PGA每美元的處理能力是DSP解決方案的多倍。2在硬件層面控制輸入和輸出(I/ O)為滿足應(yīng)用需求提供了更快速的響應(yīng)時間和專業(yè)化的功能。 2)上市時間:盡管上市的限制條件越來越多,F(xiàn)PGA技術(shù)仍提供了靈活性和快速原型的能力。 用戶可以測試一個想法或概念,并在硬件中完成驗證,而無需經(jīng)過自定制ASIC設(shè)計漫長的制造過程。3由此用戶就可在數(shù)小時內(nèi)完成逐

5、步的修改并進行FPGA設(shè)計迭代,省去了幾周的時間。 商用現(xiàn)成(COTS)硬件可提供連接至用戶可編程FPGA芯片的不同類型的I/O。 高層次的軟件工具的日益普及降低了學(xué)習(xí)曲線與抽象層,并經(jīng)常提供有用的IP核(預(yù)置功能)來實現(xiàn)高級控制與信號處理。 3)成本:自定制ASIC設(shè)計的非經(jīng)常性工程(NRE)費用遠(yuǎn)遠(yuǎn)超過基于FPGA的硬件解決方案所產(chǎn)生的費用。 ASIC設(shè)計初期的巨大投資表明了原始設(shè)備制造商每年需要運輸數(shù)千種芯片,但更多的最終用戶需要的是自定義硬件功能,從而實現(xiàn)數(shù)十至數(shù)百種系統(tǒng)的開發(fā)。 可編程芯片的特性意味著用戶可以節(jié)省制造成本以及漫長的交貨組裝時間。 系統(tǒng)的需求時時都會發(fā)生改變,但改變F

6、PGA設(shè)計所產(chǎn)生的成本相對ASCI的巨額費用來說是微不足道的。 4)穩(wěn)定性:軟件工具提供了編程環(huán)境,F(xiàn)PGA電路是真正的編程“硬”執(zhí)行過程。 基于處理器的系統(tǒng)往往包含了多個抽象層,可在多個進程之間計劃任務(wù)、共享資源。 驅(qū)動層控制著硬件資源,而操作系統(tǒng)管理內(nèi)存和處理器的帶寬。 對于任何給定的處理器內(nèi)核,一次只能執(zhí)行一個指令,且基于處理器的系統(tǒng)時刻面臨著嚴(yán)格限時的任務(wù)相互取占的風(fēng)險。 而FPGA不使用操作系統(tǒng),擁有真正的并行執(zhí)行和專注于每一項任務(wù)的確定性硬件,可減少穩(wěn)定性方面出現(xiàn)問題的可能。 5)長期維護:正如上文所提到的, FPGA芯片是現(xiàn)場可升級的,無需重新設(shè)計ASIC所涉及的時間與費用投

7、入。 舉例來說,數(shù)字通信協(xié)議包含了可隨時間改變的規(guī)范,而基于ASIC的接口可能會造成維護和向前兼容方面的困難。 可重新配置的FPGA芯片能夠適應(yīng)未來需要作出的修改。 隨著產(chǎn)品或系統(tǒng)成熟起來,用戶無需花費時間重新設(shè)計硬件或修改電路板布局就能增強功能。 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 2、 FIR數(shù)字濾波器實驗結(jié)果 之前的simulink仿真與matlab程序仿真僅僅是證明了算法是正確的,接下來我們需要把這個算法用Verilog HDL語言寫出來,用modelsim仿真程序,用Signaltap II看輸出波形。 該部分的verilog HDL代碼如

8、下: module FIR ( input clk_1M, input reset_n, input [7:0] datain, //ADC的采樣數(shù)據(jù),無符號 output [7:0] dataout //濾波后給DAC的數(shù)據(jù) ); parameter signed COEF0 = 12'd3; parameter signed COEF1 = -12'd2; parameter signed COEF2 = -12'd11; parameter signed COEF3 = 12'd23; parameter signed COEF4

9、 = 12'd17; parameter signed COEF5 = -12'd100; parameter signed COEF6 = 12'd61; parameter signed COEF7 = 12'd520; parameter signed COEF8 = 12'd520; parameter signed COEF9 = 12'd61; parameter signed COEF10 = -12'd100; parameter signed COEF11 = 12'd17; parameter signed COEF12 = 12'd23; paramet

10、er signed COEF13 = -12'd11; parameter signed COEF14 = -12'd2; parameter signed COEF15 = 12'd3; reg signed [8:0] shift_buf0;//第一級延時寄存器 reg signed [8:0] shift_buf1;//第二級延時寄存器 reg signed [8:0] shift_buf2;//第三級延時寄存器 reg signed [8:0] shift_buf3;//第四級延時寄存器 reg signed [8:0

11、] shift_buf4;//第五級延時寄存器 reg signed [8:0] shift_buf5;//第六級延時寄存器 reg signed [8:0] shift_buf6;//第七級延時寄存器 reg signed [8:0] shift_buf7;//第八級延時寄存器 reg signed [8:0] shift_buf8;//第九級延時寄存器 reg signed [8:0] shift_buf9;//第十級延時寄存器 reg signed [8:0] shift_buf10;//第十一級延時寄存

12、器 reg signed [8:0] shift_buf11;//第十二級延時寄存器 reg signed [8:0] shift_buf12;//第十三級延時寄存器 reg signed [8:0] shift_buf13;//第十四級延時寄存器 reg signed [8:0] shift_buf14;//第十五級延時寄存器 reg signed [8:0] shift_buf15;//第十六級延時寄存器 reg signed [9:0] add_0_15; reg signed [9:0]

13、 add_1_14; reg signed [9:0] add_2_13; reg signed [9:0] add_3_12; reg signed [9:0] add_4_11; reg signed [9:0] add_5_10; reg signed [9:0] add_6_9; reg signed [9:0] add_7_8; reg signed [21:0] mul1; reg signed [21:0] mul2; reg signed [21:0] m

14、ul3; reg signed [21:0] mul4; reg signed [21:0] mul5; reg signed [21:0] mul6; reg signed [21:0] mul7; reg signed [21:0] mul8; reg signed [29:0] add; always@ (posedge clk_1M or negedge reset_n) begin if (!reset_n) begin shift_buf0 <= 9'd0; shift_buf1 <= 9'd0; shi

15、ft_buf2 <= 9'd0; shift_buf3 <= 9'd0; shift_buf4 <= 9'd0; shift_buf5 <= 9'd0; shift_buf6 <= 9'd0; shift_buf7 <= 9'd0; shift_buf8 <= 9'd0; shift_buf9 <= 9'd0; shift_buf10<= 9'd0; shift_buf11<= 9'd0; shift_buf12<= 9'd0; shift_buf13<= 9'd0; shift_buf14<= 9'd0; shif

16、t_buf15<= 9'd0; end else begin shift_buf0 <= {1'b0,datain}; shift_buf1 <= shift_buf0; shift_buf2 <= shift_buf1; shift_buf3 <= shift_buf2; shift_buf4 <= shift_buf3; shift_buf5 <= shift_buf4; shift_buf6 <= shift_buf5; shift_buf7 <= shift_buf6; shift_buf8 <= shift_buf7

17、; shift_buf9 <= shift_buf8; shift_buf10<= shift_buf9; shift_buf11 <= shift_buf10; shift_buf12 <= shift_buf11; shift_buf13 <= shift_buf12; shift_buf14 <= shift_buf13; shift_buf15 <= shift_buf14; end end always@ (posedge clk_1M or negedge reset_n) begin if (!reset_n) beg

18、in add_0_15 <= 10'd0; add_1_14 <= 10'd0; add_2_13 <= 10'd0; add_3_12 <= 10'd0; add_4_11 <= 10'd0; add_5_10 <= 10'd0; add_6_9 <= 10'd0; add_7_8 <= 10'd0; end else begin add_0_15 <= shift_buf0 + shift_buf15; add_1_14 <= shift_buf1 + shift_buf14; add_2_13 <= shift

19、_buf2 + shift_buf13; add_3_12 <= shift_buf3 + shift_buf12; add_4_11 <= shift_buf4 + shift_buf11; add_5_10 <= shift_buf5 + shift_buf10; add_6_9 <= shift_buf6 + shift_buf9; add_7_8 <= shift_buf7 + shift_buf8; end end always@ (posedge clk_1M or negedge reset_n) begin if (!reset_n)

20、 begin mul1 <= 22'd0; mul2 <= 22'd0; mul3 <= 22'd0; mul4 <= 22'd0; mul5 <= 22'd0; mul6 <= 22'd0; mul7 <= 22'd0; mul8 <= 22'd0; end else begin mul1 <= COEF0 * add_0_15; mul2 <= COEF1 * add_1_14; mul3 <= COEF2 * add_2_13; mul4 <= COEF3 * add_3_12; mul5 <=

21、 COEF4 * add_4_11; mul6 <= COEF5 * add_5_10; mul7 <= COEF6 * add_6_9; mul8 <= COEF7 * add_7_8; end end always@ (posedge clk_1M or negedge reset_n) begin if (!reset_n) add <= 30'd0; else add <= mul1+mul2+mul3+mul4+mul5+mul6+mul7+mul8; end assign dataout = (add >=0) ? add>>1

22、0 :0; endmodule 同時,通過modelsim來仿真最終的結(jié)果,Mentor公司的ModelSim是業(yè)界最優(yōu)秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺無關(guān),便于保護IP核,個性化的圖形界面和用戶接口,為用戶加快調(diào)試提供強有力的手段,是FPGA/ASIC設(shè)計的首選仿真軟件。 Modelsim軟件中用來編寫代碼的工具是Testbench, Testbench本身可以看做一個模塊或者設(shè)備,和你用戶編寫的模塊進行通信。

23、通過Testbench模塊向待測模塊輸出信號作為激勵,同時接收從待測模塊輸出的信號來查看結(jié)果。 依照上述的Verilog代碼,編寫Testbench,基本代碼如下: `timescale 1ns/1ps module FIR_TB; reg clk_1M; reg reset_n; reg [7:0] datain; reg [7:0] memery[8191:0]; wire [7:0] dataout; integer j; FIR u1( .clk_1M(clk_1M), .reset_n(reset_n

24、), .datain(datain), .dataout(dataout) ); initial begin reset_n=0; clk_1M=0; #100 reset_n=1; end always #50 clk_1M=~clk_1M; initial begin $readmemh("original.dat",memery); for(j=0;j<8192;j=j+1) begin datain=memery[j]; @(posedge clk_1M); if (j == 8191)

25、 j=0; end end endmodule 最終仿真出來的波形如下: 圖2.11 仿真結(jié)果 最終的仿真結(jié)果與前面matlab的結(jié)果一樣,這也就驗證了整體方案的成熟度。 3、 總結(jié)與展望 本系統(tǒng)介紹了基于FPGA的FIR數(shù)字濾波器的基本原理以及實現(xiàn),明確好所需要設(shè)計的FIR數(shù)字濾波器濾波器后,首先對其進行性能需求分析,明確FIR數(shù)字濾波器系統(tǒng)應(yīng)該達到的各種性能指標(biāo),其次,擬定多種濾波器類型,對這些方案采用Matlab進行仿真,在這個過程中我們有許多的窗函數(shù)選擇和設(shè)計方法選擇,進行綜合分析和比較,選擇出最佳的濾波器類型作為本設(shè)計方案,然后依據(jù)其性能指標(biāo)編寫Mat

26、lab程序,確定二階節(jié)系數(shù)?;蛘咧苯舆M行Verilog語言的編寫。最終結(jié)果顯示,整體系統(tǒng)已經(jīng)正常運行。 4、 參考文獻 [1]Ryszard Bis,Dorota Dobrowolska. Diameter increment of silver fir ( Abies alba Mill.) in the I??ecka Forest[J]. Forest Research Papers,2012,73(3). [2]Maciej Pach. The influence of admixture and co-dominant species on the height and

27、 DBH of silver fir ( Abies alba Mill.) and on the growing stock of fir stands in the Carpathian Forest-Natural Region[J]. Forest Research Papers,2010,71(3). [3]Szabolcs Hajdu,Sándor Tihamér Brassai,Iuliu Szekely. FPGA based angular stabilization of a quadcopter[J]. MACRo 2015,2017,2(1). [4]仲玲利,周曉波

28、. 基于FPGA的SDRAM控制器設(shè)計開發(fā)[J]. 電路與系統(tǒng),2014,03(01). [5]張春龍,李德超,張玉環(huán). 基于BP神經(jīng)網(wǎng)絡(luò)的高階FIR多阻帶濾波器優(yōu)化設(shè)計[J]. 電力與能源進展,2014,02(01). [6]石蘭潔,高詩簡,黃曦,原豪杰,周鐵戈. 基于FPGA的Logistic方程混沌信號加密實現(xiàn)[J]. 電路與系統(tǒng),2013,02(03). [7]付國新,侍昌江. 基于FPGA數(shù)據(jù)采集與共享的兩種記錄方式并存的電力系統(tǒng)錄波器研制[J]. 輸配電工程與技術(shù),2012,01(02). [8]任小強,陳金鷹,吳蓉,李文彬. 基于FPGA和WiFi技術(shù)的電子鞭炮系統(tǒng)設(shè)計[

29、J]. 軟件工程與應(yīng)用,2014,03(04). [9]李俊. FIR數(shù)字濾波器的設(shè)計與實現(xiàn)[J]. 建模與仿真,2013,02(04). [10]Ying-Shieh Kung,Nguyen Vu Quynh,Nguyen Trung Hieu,Chung-Chun Huang,Liang-Chiao Huang. Simulink/Modelsim Co-Simulation and FPGA Realization of Speed Control IC for PMSM Drive[J]. Procedia Engineering,2011,23. [11]Das,Li,Naya

30、k,Assaf,Petriu,Biswas. Circuit Architecture Test Verification Based on Hardware Software Co-design with ModelSim[J]. IETE Journal of Research,2013,59(2). [12]Sunil Das,Jun-Feng Li,Amiya Nayak,Mansour Assaf,Emil Petriu,Satyendra Biswas. Circuit Architecture Test Verification Based on Hardware Softwa

31、re Co-design with ModelSim[J]. IETE Journal of Research,2013,59(2). [13]趙慶亮. 基于DSP的自動平衡控制理論與方法研究[D].北京化工大學(xué),2012. [14]孫科林. 基于多核DSP的實時圖像處理平臺研究[D].電子科技大學(xué),2012. [15]張方正. 高速光通信中數(shù)字信號處理(DSP)與波形產(chǎn)生技術(shù)研究[D].北京郵電大學(xué),2013. [16]李振濤. 高性能DSP關(guān)鍵電路及EDA技術(shù)研究[D].國防科學(xué)技術(shù)大學(xué),2007. [17]董秀潔,楊艷,周游.FPGA/CPLD選型與設(shè)計優(yōu)化[J].化工自動化及儀表,2009,36(03):60-63. [18]屈星,唐寧,嚴(yán)舒,楊白.基于FPGA的IIR數(shù)字濾波器的設(shè)計與仿真[J].計算機仿真,2009,26(08):304-307+348. [19]耶曉東.基于Matlab的IIR數(shù)字濾波器設(shè)計及DSP實現(xiàn)[J].電子設(shè)計工程,2011,19(09):175-177. [20]周耀輝,王蕓波,朱維新,張玉仲,武煥舟.IIR數(shù)字濾波器設(shè)計[J].電力自動化設(shè)備,2010,30(09):129-131. [21]王春玲,吳順偉.FPGA/CPLD選型及與其他技術(shù)的融合[J].現(xiàn)代電子技術(shù),2007(16):30-33+40.

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!