版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p><b> 一 設計目的2</b></p><p><b> 二 設計要求3</b></p><p> 2.1、基本要求3</p><p> 2.2、提高部分3</p><p>&
2、lt;b> 三 設計原理4</b></p><p> 3.1、線性FIR濾波器原理4</p><p> 3.2 設計分析6</p><p> 3.3 實驗結(jié)果分析驗證提示7</p><p> 3.4 DDS原理簡介7</p><p><b> 四 設計思路9&l
3、t;/b></p><p> 4.1基于matlab工具的濾波器系數(shù)計算10</p><p><b> 五 設計內(nèi)容13</b></p><p> 5.1、寄存器模塊13</p><p> 5.2加法器模塊14</p><p> 5.3 減法器模塊19</p>
4、;<p> 5.4 乘法器模塊21</p><p><b> 六 結(jié)果分析29</b></p><p> 七 參考文獻32</p><p><b> 八 心得體會33</b></p><p> 基于FPGA的FIR濾波器的設計</p><p&g
5、t;<b> 一 設計目的</b></p><p> 為了幫助學生深入理解和消化基本理論、進一步提高綜合應用能力并且鍛煉獨立解決問題的能力,我們將《數(shù)字信號處理》、《集成電路原理與應用》和《FPGA系統(tǒng)設計與應用》幾門課程融合在一起開設的FPGA綜合實驗課程設計。主要從以下兩方面考慮:</p><p> 1、設計內(nèi)容突出FPGA及信號處理的理論和技術的綜合應用。
6、如在數(shù)字濾波實驗中,要求學生能夠熟悉數(shù)字濾波器的基本原理,并能運用VHDL語言實現(xiàn)數(shù)字濾波。并采用MATLAB軟件實現(xiàn)的結(jié)果與運用VHDL實現(xiàn)的仿真結(jié)果進行,來驗證其正確性。最后通過實驗裝置進行硬件實現(xiàn),并對結(jié)果進行綜合分析。</p><p> 2、如何將《數(shù)字信號處理》、《集成電路原理與應用》和《《FPGA系統(tǒng)設計與應用》三門課程有機的結(jié)合起來,設計一實際的系統(tǒng)。由學生在所學知識的基礎上,查閱相關資料,自主設
7、計,通過實驗裝置進行實現(xiàn),并對結(jié)果進行綜合分析,尋找最佳設計方案。</p><p> 希望學生通過完成一個利用FPGA實現(xiàn)信號處理相關的課題的理論設計、程序設計和實驗調(diào)試任務,提高他們分析解決實際問題的能力。本設計要求運用課程所學知識,進行算法實現(xiàn)、 Matlab仿真,VHDL程序設計,F(xiàn)PGA開發(fā)平臺上調(diào)試,加深對FPGA在信號處理知識領域的理解與運用,培養(yǎng)對FPGA系統(tǒng)的開發(fā)技能。</p>&
8、lt;p><b> 二 設計要求</b></p><p><b> 2.1、基本要求</b></p><p> 利用所學知識,采用VHDL語言完成FIR濾波器的設計仿真。要求用VHDL編程設計底層文件,頂層文件可任意(可用原理圖方式或文本方式);完成仿真文件(包括MATLAB和QUARTUSII兩種仿真)并對其結(jié)果比較。</p&
9、gt;<p><b> 具體設計指標如下:</b></p><p><b> ?。?)采樣頻率;</b></p><p><b> ?。?)截止頻率;</b></p><p> ?。?)輸入序列為10位(最高位為符號位);</p><p> ?。?)窗口類型為k
10、aiser窗,=0.5 ;</p><p> ?。?)濾波器長度為16 ;</p><p> ?。?)輸出結(jié)果保留10位。</p><p><b> 2.2、提高部分</b></p><p> 根據(jù)所學知識,設計出一個具有頻率控制功能DDS,要求輸出頻率分別為10KHz和100KHz,將輸出的兩路數(shù)字信號進行疊加,并
11、通過所設計的FIR濾波器進行濾波,將濾波輸出的數(shù)字信號通過D/A轉(zhuǎn)換電路輸出波形,并用示波器觀察輸出波形,并完成測試結(jié)果分析。結(jié)構(gòu)框圖如圖1所示。</p><p> 圖1 整體結(jié)構(gòu)框圖</p><p><b> 三 設計原理</b></p><p> 3.1、線性FIR濾波器原理</p><p> FIR濾波
12、器響應(簡稱FIR)系統(tǒng)的單位脈沖響應為有限長序列,系統(tǒng)函數(shù)在有限z平面上不存在極點,其運算結(jié)構(gòu)中不存在反饋支路,即沒有環(huán)路。如果的長度為N,則它的系統(tǒng)函數(shù)和差分方程一般具有如下形式:</p><p> 根據(jù)差分方程直接畫出FIR濾波器的結(jié)構(gòu),稱為直接型結(jié)構(gòu)。如圖2所示:
13、 </p><p> 圖2 FIR濾波器直接結(jié)構(gòu)</p><p> FIR濾波器的特點:單位脈沖響應序列為有限個;可快速實現(xiàn);可得到線性相位;濾波器階數(shù)較高。對線性時不變系統(tǒng)保持線性相位的條件是:單位脈沖響應為偶對稱或奇對稱。即:</p><p> 為設計線性濾波器,應保證h(n)為對稱的。</p><p> ① 若
14、N為偶數(shù),其線性相位FIR濾波器的對稱結(jié)構(gòu)流圖如圖3:</p><p> 圖3 若N為偶數(shù)線性相位FIR濾波器的對稱結(jié)構(gòu)流圖</p><p> 圖中:“ +1 ” 對應偶對稱情況,“ -1 ” 對應奇對稱情況。當n為奇數(shù)時,支路斷開。</p><p> ?、?若N為奇數(shù),其線性相位FIR濾波器的對稱結(jié)構(gòu)流圖如圖4:</p><p> 圖
15、4 N為奇數(shù)線性相位FIR濾波器的對稱結(jié)構(gòu)流圖</p><p><b> 3.2 設計分析</b></p><p> 1. 設計濾波器方案:</p><p> 因為N=16為偶數(shù),可以按照上面第一個原理圖設計濾波器,如圖5所示。</p><p><b> 圖5</b></p>
16、<p> 本設計取為偶對稱的情況,則圖中:應取“ +1 ”。</p><p> 由上圖可分析得到,要完成濾波器的設計,需要設計的底層文件包括延時單元、加法電路單元、乘以負一單元、乘法器單元及截取10位數(shù)單元。由各單元VHDL編程后,生成相應的符號文件。最后連接成頂層原理圖。</p><p> 3.3 實驗結(jié)果分析驗證提示</p><p> 1
17、)利用QUARTUSII仿真</p><p><b> 設,</b></p><p><b> 取進行仿真。</b></p><p> 2)利用MATLAB仿真</p><p> 求取,/,/,然后,同以上仿真結(jié)果進行對比,說明濾波器設計的正確性。</p><p>
18、 3.4 DDS原理簡介</p><p> 目前使用最廣泛的一種DDS 方式是利用高速存儲器作查找表,然后通過高速DAC 輸出已經(jīng)用數(shù)字形式存儲的波形。</p><p> 圖6 DDS 系統(tǒng)的基本原理圖</p><p> 圖6中虛方框部分是DDS 的核心單元,它可以采用CPLD/FPGA 來實現(xiàn)。圖中的相位累加器由N位全加器和N位累加寄存器級聯(lián)而成,可對頻
19、率控制字的二進制碼進行累加運算,是典型的反饋電路。</p><p> 頻率控制字M和相位控制字分別控制DDS 輸出正(余)弦波的頻率和相位。每來一個時鐘脈沖,相位寄存器以步長M遞增。相位寄存器的輸出與相位控制字相加,其結(jié)果作為正(余)弦查找表的地址。正(余)弦查找表的數(shù)據(jù)存放在ROM中,內(nèi)部存有一個周期的正弦波信號的數(shù)字幅度信息,每個查找表的地址對應于正弦波中0°~360°范圍內(nèi)的一個相位點
20、。查找表把輸入的址信息映射成正(余)弦波的數(shù)字幅度信號,同時輸出到數(shù)模轉(zhuǎn)換器DAC 的輸入端,DAC輸出的模擬信號經(jīng)過低通濾波器 (LPF),可得到一個頻譜純凈的正(余)弦波。</p><p> DDS 具體工作過程如下:每來一個時鐘脈沖clk,N 位全加器將頻率控制數(shù)據(jù)M 與累加寄存器輸出的累加相位數(shù)據(jù)N 相加,把相加后的結(jié)果送至累加寄存器的輸入端。累加寄存器一方面將上一時鐘周期作用后所產(chǎn)生的新的數(shù)據(jù)反饋到加
21、法器的輸入端,以使加法器在下一時鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)M 相加;另一方面將這個值作為取樣地址值送入幅度/相位轉(zhuǎn)換電路,此電路根據(jù)取樣地址輸出相應的波形數(shù)據(jù)。最后經(jīng)D/A 轉(zhuǎn)換器和低通濾波器將波形數(shù)據(jù)轉(zhuǎn)換成所需要的模擬波形。</p><p> DDS 輸出信號的頻率由下式?jīng)Q定:q=()×clk (代表取樣點數(shù),M 為頻率控制字、代表存儲器中存儲數(shù)據(jù)的多少,N 代表累加器的位數(shù),clk 代表基準時鐘
22、頻率) 。調(diào)節(jié)M 可以改變?nèi)拥狞c數(shù),從而改變頻率。</p><p> 假定基準時鐘為70MHz,累加器為16 位,則clk=70MHz ,Y==65536 (N=16),設M=12 則X==4096,所以q=(4096/65536) ×70=4.375MHz??梢姡ㄟ^設定相位累加器位數(shù)N、頻率控制字M 和基準時鐘的值,就可以產(chǎn)生任一頻率的輸出。DDS 的頻率分辨率定義為:q=clk/ 由于基準時鐘
23、一般是固定的,因此相位累加器的位數(shù)就決定了頻率的分辨率。</p><p><b> 四 設計思路</b></p><p> 根據(jù)課程上老師所講例題,首先使用matlab計算出符合設計要求的濾波器沖激響應系數(shù)。后將整個電路規(guī)劃為語言編輯和原理圖編輯兩個單元,其中語言編輯部分負責編輯整個濾波器電路中所需用的單元器件,包括寄存器、加法器、減法器以及乘法器幾個單元器件;
24、原理圖編輯部分完成單元器件的電氣連接工作。整個電路的原理圖設置方案如下圖所示:</p><p> 圖 濾波器整體設計思路</p><p> 4.1基于matlab工具的濾波器系數(shù)計算:</p><p> 在matlab命令編輯窗口輸入Fdatool指令,敲擊回車可以打開Filter Design & Analysis Tool窗口(如圖4-1所示),
25、在該工具的幫助下,我們可以完成f.i.r.濾波器系數(shù)的計算工作。</p><p> 圖4-1 Filter Design & Analysis Tool窗口</p><p> Fdatool界面總共分兩大部分,一部分是design filter,在界面的下半部分,用來設置濾波器的設計參數(shù),另一部分則是特性區(qū),在界面的上半部分,用來顯示濾波器的各種特性。design filter
26、部分主要分為:</p><p> Response Type(響應類型)選項,包括Lowpass(低通)、Highpass(高通)、Bandpass(帶通)、Bandstop(帶阻)和特殊的濾波器。根據(jù)本次作業(yè)要求,在該選項中選擇Lowpass選項。</p><p> Design Method(設計方法)選項,包括IIR濾波器的Butterworth(巴特沃思)法、Chebyshev
27、 Type i(切比雪夫i型)法、 Chebyshev Type ii(切比雪夫ii型) 法、Elliptic(橢圓濾波器)法等和FIR濾波器的Equiripple法、Least-squares(最小乘方)法、Window(窗函數(shù))法等多種方法。結(jié)合本次作業(yè)要求,選擇FIR濾波器的窗函數(shù)法進行設計。選定窗函數(shù)法后,會在右側(cè)出現(xiàn)Options區(qū)域,進行窗函數(shù)法相關參量的設置,根據(jù)作業(yè)要求選擇Kaiser窗并設置Beta為:0.5。<
28、/p><p> Filter Order(濾波器階數(shù))選項,定義濾波器的階數(shù),包括Specify order(指定階數(shù))和Minimum order(最小階數(shù))。在Specify order中填入所要設計的濾波器的階數(shù)(n階濾波器,specify order=n-1),如果選擇Minimum order則matlab根據(jù)所選擇的濾波器類型自動使用最小階數(shù)。本次作業(yè)要求設計16階濾波器,所以選定Specify ord
29、er并填入15。</p><p> Frenquency Specifications選項,可以詳細定義頻帶的各參數(shù),包括采樣頻率Fs和頻帶的截止頻率。它的具體選項由Response Type選項和Design Metho選項決定。我們要求的 Lowpass(低通)濾波器只需要定義Fs、Fc。采用窗函數(shù)設計濾波器時,由于過渡帶是由窗函數(shù)的類型和階數(shù)所決定的,所以只需要定義通帶截止頻率,而不必定義阻帶參數(shù)。<
30、;/p><p> Magnitude Specifications選項,可以定義幅值衰減的情況。采用窗函數(shù)設計時,通帶截止頻率處的幅值衰減固定為6db,所以不必定義。</p><p> 本次作業(yè)中的參數(shù)設定結(jié)果如圖4-2所示。</p><p> 圖 4-2 濾波器參數(shù)設定結(jié)果</p><p> 參數(shù)設定完畢,單擊工具窗口下方的Design
31、 Filter按鈕,開始進行相關參數(shù)計算。</p><p><b> 五 設計內(nèi)容</b></p><p><b> 5.1、寄存器模塊</b></p><p> 寄存器用于寄存一組二值代碼,只要求它們具有置1、置0的功能即可。在本設計中用D觸發(fā)器組成寄存器,實現(xiàn)寄存功能。本設計中使用帶異步復位rst端的D觸發(fā)器,當
32、rst=1時,輸出信號q=0,當rst=0且上升沿脈沖到達時q=d。</p><p><b> 寄存器源程序如下:</b></p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> ENTITY dff16 IS</p>
33、<p> PORT (rst,clk: IN STD_LOGIC;</p><p> d:IN STD_LOGIC_VECTOR (9 DOWNTO 0);</p><p> q:OUT STD_LOGIC_VECTOR (9 DOWNTO 0));</p><p> END dff16;</p><p> ARCHI
34、TECTURE dff16 OF dff16 IS</p><p><b> BEGIN</b></p><p> PROCESS (rst,clk)</p><p><b> BEGIN</b></p><p> IF(rst='1')THEN </p>&l
35、t;p> q<=(OTHERS=>'0');</p><p> ELSIF(clk'EVENT AND clk='1')THEN</p><p><b> q<=d;</b></p><p><b> END IF;</b></p>&l
36、t;p> END PROCESS;</p><p> END dff16;</p><p><b> 5.2加法器模塊</b></p><p> 實現(xiàn)兩個有符號數(shù)的相加運算。即將輸入的兩數(shù),在時鐘脈沖到來時相加運算,輸出結(jié)果。</p><p> 在本設計中共有8個兩個10位有符號數(shù)相加產(chǎn)生一個11位有符號
37、數(shù)的加法器、一個18位和19位有符號數(shù)相加產(chǎn)生20位有符號數(shù)的加法器、一個兩個20位有符號數(shù)相加產(chǎn)生一個21位有符號數(shù)的加法器、一個兩個19位有符號數(shù)相加產(chǎn)生一個20位有符號位數(shù)的加法器、一個20位和21位有符號數(shù)相加產(chǎn)生22位有符號數(shù)的加法器,以及一個20位和22位有符號數(shù)相加產(chǎn)生23位有符號數(shù)的加法器電路。</p><p> 其中一個20位和22位有符號數(shù)相加產(chǎn)生23位有符號數(shù)的加法器電路為最后一級,所以在
38、加法器電路中在引入低位舍去功能只保留最終10位輸出,最終保留10位輸出采用了直接取輸出23位數(shù)的高十位的方法,因此在輸出中近似等于除掉了2^13即8192以后的結(jié)果。</p><p> 10位有符號數(shù)相加產(chǎn)生一個11位有符號數(shù)的加法器設計源程序如下:</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164
39、.all;</p><p> USE ieee.std_logic_arith.all;</p><p> ENTITY sum101011 IS</p><p> PORT(a,b: IN SIGNED(9 DOWNTO 0);</p><p> clk: IN STD_LOGIC;</p><p> s:
40、OUT SIGNED(10 DOWNTO 0));</p><p> END SUM101011;</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p><p&g
41、t; ENTITY sum101011 IS</p><p> PORT(a,b: IN SIGNED(9 DOWNTO 0);</p><p> clk: IN STD_LOGIC;</p><p> s:OUT SIGNED(10 DOWNTO 0));</p><p> END SUM101011;</p>&l
42、t;p> ARCHITECTURE sum101011 OF sum101011 IS</p><p><b> BEGIN</b></p><p> PROCESS(clk)</p><p><b> BEGIN </b></p><p> IF(clk'EVENT AND
43、 clk='1')THEN </p><p> s<=(a(9)&a)+(b(9)&b);</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END sum101011;</p><p>
44、 18位和19位有符號數(shù)相加產(chǎn)生20位有符號數(shù)的加法器設計源程序如下:</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p><p> ENTITY sum7023918 IS<
45、;/p><p> PORT(a: IN SIGNED(17 DOWNTO 0);</p><p> b: IN SIGNED(18 DOWNTO 0);</p><p> clk: IN STD_LOGIC;</p><p> s:OUT SIGNED(19 DOWNTO 0));</p><p> END su
46、m7023918;</p><p> ARCHITECTURE sum7023918 OF sum7023918 IS</p><p><b> BEGIN</b></p><p> PROCESS(clk)</p><p><b> BEGIN </b></p><p&
47、gt; IF(clk'EVENT AND clk='1')THEN </p><p> s<=(a(17)&a(17)&a)+(b(18)&b);</p><p><b> END IF;</b></p><p> END PROCESS;</p><p>
48、 END sum7023918;</p><p> 兩個20位有符號數(shù)相加產(chǎn)生一個21位有符號數(shù)的加法器設計源程序如下:</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p&g
49、t;<p> ENTITY sum40149919 IS</p><p> PORT(a: IN SIGNED(19 DOWNTO 0);</p><p> b: IN SIGNED(19 DOWNTO 0);</p><p> clk: IN STD_LOGIC;</p><p> s:OUT SIGNED(20 D
50、OWNTO 0));</p><p> END sum40149919;</p><p> ARCHITECTURE sum40149919 OF sum40149919 IS</p><p><b> BEGIN</b></p><p> PROCESS(clk)</p><p><
51、;b> BEGIN </b></p><p> IF(clk'EVENT AND clk='1')THEN </p><p> s<=(a(19)&a)+(b(19)&b);</p><p><b> END IF;</b></p><p> EN
52、D PROCESS;</p><p> END sum40149919;</p><p> 兩個19位有符號數(shù)相加產(chǎn)生一個20位有符號位數(shù)的加法器設計:</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.al</p><p> USE ieee.s
53、td_logic_arith.all;</p><p> ENTITY sum181819 IS</p><p> PORT(a: IN SIGNED(18 DOWNTO 0);</p><p> b: IN SIGNED(18 DOWNTO 0);</p><p> clk: IN STD_LOGIC;</p><
54、;p> s:OUT SIGNED(19 DOWNTO 0));</p><p> END sum181819;</p><p> ARCHITECTURE sum181819 OF sum181819 IS</p><p><b> BEGIN</b></p><p> PROCESS(clk)</
55、p><p><b> BEGIN </b></p><p> IF(clk'EVENT AND clk='1')THEN </p><p> s<=(a(18)&a)+(b(18)&b);</p><p><b> END IF;</b></p
56、><p> END PROCESS;</p><p> END sum181819;</p><p> 20位和21位有符號數(shù)相加產(chǎn)生22位有符號數(shù)的加法器,20位和22位有符號數(shù)相加產(chǎn)生23位有符號數(shù)的加法器電路設計(最后一級帶舍位)略。</p><p> 5.3 減法器模塊</p><p> 實現(xiàn)零值減去兩
57、個有符號數(shù)的減法運算。即用零值減去輸入的兩數(shù),在時鐘脈沖到來時做減法運算,輸出結(jié)果。</p><p> -31和-88的乘結(jié)果都只包含了乘系數(shù)31和88的數(shù)值,并沒有將兩個負號代入,所以兩乘法器后面的加法器運算改為減法器模塊,采用0-31*累加結(jié)果-88*累加結(jié)果的方法,實現(xiàn)(-31)*累加結(jié)果+(-88)*累加結(jié)果的計算。-106和-54后面的加法器采用同樣的方式處理。</p><p>
58、; -31和-88的減法器設計:</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p><p> ENTITY sub318817 is</p><p>
59、 PORT(clk : in STD_LOGIC;</p><p> Din1 :in signed (15 downto 0);</p><p> Din2 :in signed (17 downto 0);</p><p> Dout :out signed(18 downto 0));</p><p> END sub31881
60、7;</p><p> ARCHITECTURE sub318817 of sub318817 IS</p><p> SIGNAL s1: signed(17 downto 0):=(Din1(15)&Din1(15)&Din1);</p><p> SIGNAL s2: signed(18 downto 0):=(OTHERS=>
61、39;0');</p><p><b> BEGIN</b></p><p> PROCESS(Din1,Din2,clk)</p><p><b> BEGIN</b></p><p> IF clk'event and clk='1' THEN</p
62、><p> Dout<=s2-Din2-s1;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END sub318817;</p><p> -106和-54的減法器的設計:</p><p>
63、LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p><p> ENTITY sub1065417 is</p><p> PORT(clk : in STD_LOGIC;</p>&l
64、t;p> Din1 :in signed (17 downto 0);</p><p> Din2 :in signed (16 downto 0);</p><p> Dout :out signed(18 downto 0));</p><p> END sub1065417;</p><p> ARCHITECTURE
65、sub1065417 of sub1065417 IS</p><p> SIGNAL s1: signed(17 downto 0):=(Din2(16)&Din2);</p><p> SIGNAL s2: signed(18 downto 0):=(OTHERS=>'0');</p><p><b> BEGIN&
66、lt;/b></p><p> PROCESS(Din1,Din2,clk)</p><p><b> BEGIN</b></p><p> IF clk'event and clk='1' THEN</p><p> Dout<=s2-Din1-s1;</p>
67、<p><b> END IF;</b></p><p> END PROCESS;</p><p> END sub1065417;</p><p> 5.4 乘法器模塊 </p><p> 從資源和速度考慮,常系數(shù)乘法運算可用移位相加來實現(xiàn)。將常系數(shù)分解成幾個2的冪的和形式。濾波器系數(shù)分別為-3
68、1、-88、-106、-54、70、239、401、499、499、401、239、70、-54、-106、-88、-31。算法:其中帶負號數(shù)先乘去負號的整數(shù)部分,在后面的求和中做減法運算。編碼方式如下:31被編碼為2^5-2^0、88被編碼為2^6+2^4+2^3、106被編碼為2^6+2^5+2^3+2^1、54被編碼為2^6-2^3-2^1、70被編碼為2^6+2^2+2^1、239被編碼為2^8-2^4-2^0、401被編碼為2
69、^9-2^7+2^4+2^0、499被編碼為2^9-2^3-2^2-2^0。 </p><p> 實現(xiàn)輸入帶符號數(shù)據(jù)與固定數(shù)據(jù)兩個二進制數(shù)的乘法運算。當?shù)竭_時鐘上升沿時,將兩數(shù)輸入,運算并輸出結(jié)果。</p><p><b> 乘31電路設計:</b></p><p> LIBRARY ieee;</p>
70、;<p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p><p> ENTITY mult31 IS</p><p> PORT( clk : IN STD_LOGIC;</p><p> Din : IN SIGNE
71、D (10 DOWNTO 0);</p><p> Dout : OUT SIGNED (15 DOWNTO 0));</p><p> END mult31;</p><p> ARCHITECTURE mult31 OF mult31 IS</p><p> SIGNAL s1 : SIGNED (15 DOWNTO 0);&l
72、t;/p><p> SIGNAL s2 : SIGNED (10 DOWNTO 0);</p><p> SIGNAL s3 : SIGNED (15 DOWNTO 0);</p><p><b> BEGIN</b></p><p> A1:PROCESS(Din,s1,s2,s3)</p><
73、p><b> BEGIN</b></p><p> s1<=Din&"00000";</p><p><b> s2<=Din;</b></p><p> IF (Din(10)='0') THEN </p><p> s3&l
74、t;=('0'&s1(14 downto 0))-("00000"&s2(10 DOWNTO 0));</p><p><b> ELSE </b></p><p> s3<=('1'&s1(14 downto 0))-("11111"&s2(10 DOW
75、NTO 0));</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> A2: PROCESS(clk,s3)</p><p><b> BEGIN</b></p><p> IF clk'EVENT
76、 AND clk='1' THEN</p><p><b> Dout<=s3;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END mult31;</p><p>&l
77、t;b> 乘88電路設計:</b></p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> USE ieee.std_logic_arith.all;</p><p> ENTITY mult88 IS</p><
78、;p> PORT( clk : IN STD_LOGIC;</p><p> Din : IN SIGNED (10 DOWNTO 0);</p><p> Dout : OUT SIGNED (17 DOWNTO 0));</p><p> END mult88;</p><p> ARCHITECTURE mult8
79、8 OF mult88 IS</p><p> SIGNAL s1 : SIGNED (16 DOWNTO 0);</p><p> SIGNAL s2 : SIGNED (14 DOWNTO 0);</p><p> SIGNAL s3 : SIGNED (13 DOWNTO 0);</p><p> SIGNAL s4 : SIG
80、NED (17 DOWNTO 0);</p><p><b> BEGIN</b></p><p> A1:PROCESS(Din,s1,s2,s3)</p><p><b> BEGIN</b></p><p> s1<=Din&"000000";<
81、/p><p> s2<=Din&"0000";</p><p> s3<=Din&"000";</p><p> IF (Din(10)='0') THEN </p><p> s4<=('0'&s1(16 downto 0)
82、)+("000"&s2(14 DOWNTO 0))+("0000"&s3(13 DOWNTO</p><p><b> 0));</b></p><p><b> ELSE </b></p><p> s4<=('1'&s1(16
83、downto 0))+("111"&s2(14 DOWNTO 0))+("1111"&s3(13 DOWNTO 0));</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> A2: PROCESS(clk,s4)</p
84、><p><b> BEGIN</b></p><p> IF clk'EVENT AND clk='1' THEN</p><p><b> Dout<=s4;</b></p><p><b> END IF;</b></p>
85、<p> END PROCESS;</p><p> END mult88;</p><p><b> 乘106電路設計:</b></p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.all;</p><p> US
86、E ieee.std_logic_arith.all;</p><p> ENTITY mult106 IS</p><p> PORT( clk : IN STD_LOGIC;</p><p> Din : IN SIGNED (10 DOWNTO 0);</p><p> Dout : OUT SIGNED (17 DOWN
87、TO 0));</p><p> END mult106;</p><p> ARCHITECTURE mult106 OF mult106 IS</p><p> SIGNAL s1 : SIGNED (16 DOWNTO 0);</p><p> SIGNAL s2 : SIGNED (15 DOWNTO 0);</p>
88、;<p> SIGNAL s3 : SIGNED (13 DOWNTO 0);</p><p> SIGNAL s4 : SIGNED (11 DOWNTO 0);</p><p> SIGNAL s5 : SIGNED (17 DOWNTO 0);</p><p><b> BEGIN</b></p>&l
89、t;p> A1:PROCESS(Din,s1,s2,s3,s4)</p><p><b> BEGIN</b></p><p> s1<=Din&"000000";</p><p> s2<=Din&"00000";</p><p> s
90、3<=Din&"000";</p><p> s4<=Din&'0';</p><p> IF (Din(10)='0') THEN </p><p> s5<=('0'&s1(16 downto 0))+("00"&s2(
91、15 DOWNTO 0))+("0000"&s3(13 DOWNTO 0))+("000000"&s4(11 DOWNTO 0));</p><p><b> ELSE </b></p><p> s5<=('1'&s1(16 downto 0))+("11"
92、&s2(15 DOWNTO 0))+("1111"&s3(13 DOWNTO 0))+("111111"&s4(11 DOWNTO 0));</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> A2: PROCESS
93、(clk,s5)</p><p><b> BEGIN</b></p><p> IF clk'EVENT AND clk='1' THEN</p><p><b> Dout<=s5;</b></p><p><b> END IF;</b&g
94、t;</p><p> END PROCESS;</p><p> END mult106;</p><p> 考慮到原理一樣,這里只列舉三個例子。</p><p><b> 原理圖</b></p><p><b> 六 結(jié)果分析</b></p>&l
95、t;p> 在command window內(nèi)輸入</p><p> >> fdatool</p><p><b> >> n</b></p><p><b> n =</b></p><p> Columns 1 through 12</p>&
96、lt;p> -0.0153 -0.0432 -0.0517 -0.0265 0.0343 0.1168 0.1956 0.2436 0.2436 0.1956 0.1168 0.0343</p><p> Columns 13 through 16</p><p> -0.0265 -0.0517 -0.043
97、2 -0.0153</p><p> >> f1=round(n*(2^11))</p><p><b> f1 =</b></p><p> -31 -88 -106 -54 70 239 401 499 499 401 239 70 -54 -106 -88
98、-31</p><p> >> f2=[303,134,345,98,-78,97,102,-205,412];</p><p> >> y=conv(f1,f2);</p><p> >> s=y/(2^13)</p><p><b> s =</b></p>
99、<p> Columns 1 through 12</p><p> -1.1466 -3.7620 -6.6656 -7.8081 -3.5159 6.9136 20.6246 34.8578 44.3833 44.9141 38.2875 27.8611</p><p> Columns 13 through 24</
100、p><p> 17.7001 11.2920 9.9404 12.0692 13.8990 13.0698 8.8079 2.8052 -1.5260 -3.5149 -3.6500 -1.5591</p><p><b> 仿真結(jié)果圖</b></p><p><b> 經(jīng)比較結(jié)果正
101、確。</b></p><p> DDS原理圖與仿真結(jié)果</p><p><b> 結(jié)果如下</b></p><p><b> 七 參考文獻</b></p><p> [1] EDA技術與CPLD/FPGA開發(fā)應用簡明教程[M]. 北京:清華大學出版社,2007.</p&g
102、t;<p> [2] EDA技術實用教程[M]. 北京:清華大學出版社,2006.</p><p> [3] 薛年喜. MATLAB在數(shù)字信號處理中的應用[M]. 北京:清華大學出版社,2003.</p><p> [4] 程佩青. 數(shù)字信號處理教程[M]. 北京:清華大學出版社,2003.</p><p> [5] FPGA方向課設設計指導書
103、.中原工學院:電子信息教研室.</p><p><b> 八 心得體會</b></p><p> 為期三周的方向課程設計結(jié)束啦,在整個濾波器的設計實現(xiàn)過程中,學會了不少新的知識,同時也將所學的語言有了進一步的深刻理解,現(xiàn)在在這里談一下自己的心得體會。</p><p> 作為一個電子信息類專業(yè)的學生,F(xiàn)PGA是我們重要的專業(yè)課,是我們將來從
104、事電子設計的有力工具。通過對該課程的學習,我們對電子設計自動化有了更進一步的理解;通過對數(shù)字濾波器的設計,我們也了解了數(shù)字濾波器的基本結(jié)構(gòu)和基本特性,而且更加牢固地掌握了相關的理論知識,同時也提高了自己的動手實踐能力。這次課程設計,很重要的一部分就是MATLAB的運用,在做設計實驗之初,因為對matlab程序并不熟悉,僅會些基本的操作,就打算直接使用老師在課堂上給出的沖激系數(shù)。后經(jīng)網(wǎng)上資料查閱,發(fā)現(xiàn)matlab設計濾波器沖激系數(shù)的工具簡
105、單易學,就將設計參數(shù)要求通過matlab的Filter Design & Analysis Tool計算出符合條件的沖激響應系數(shù)并在matlab中進行整數(shù)化操作,通過MATLAB的使用,從而大大提高了我們對集運算,編程與繪圖于一體的軟件的運用能力。</p><p> 過程曲折可謂一語難盡。在此期間我們也失落過,也曾一度熱情高漲。從開始時滿富盛激情到最后汗水背后的復雜心情,點點滴滴無不令我回味無長。生活就
106、是這樣,汗水預示著結(jié)果也見證著收獲。勞動是人類生存生活永恒不變的話題。通過實習,我才真正領略到“艱苦奮斗”這 一詞的真正含義,我才意識到老一輩電子設計為我們的社會付出。我想說,設計確實有些辛苦,但苦中也有樂,在如今單一的理論學習中,很少有機會能有實踐的機會,但我們可以,而且設計也是一個團隊的任務,一起的工作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,我感覺我和同學們之間的距離更加近了;我想說,確實很累,但當我們看到自
107、己所做的成果時,心中也不免產(chǎn)生興奮; 我們同樣可以為社會作出我們應該做的一切,這有什么不好?我們不斷的反問自己。也許有人不喜歡這類的工作,也許有人認 為設計的工作有些枯燥,但我們認為無論干什么,只要人生活的有意義就可。社會需要我們,我們也可以為社會而工作。既然如此,那還有什么必要失落呢?于是我 們決定沿著自己的路,執(zhí)著的走下去。同時我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結(jié)協(xié)作的精神</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的fir濾波器課程設計
- 基于fpga的fir濾波器課程設計報告
- 基于fpga的fir濾波器設計
- 基于fpga的fir數(shù)字低通濾波器的課程設計
- 基于fpga的fir濾波器設計書
- 基于FPGA的高階FIR濾波器設計.pdf
- 基于fpga的fir數(shù)字濾波器設計
- 基于fpga的fir數(shù)字濾波器設計
- 基于FPGA的高速高階FIR濾波器設計.pdf
- 應用VHDL基于FPGA設計FIR濾波器.pdf
- 基于dsp的fir濾波器設計課程設計報告
- 基于FPGA的浮點型高階FIR濾波器設計.pdf
- 基于FPGA的高速FIR濾波器設計與實現(xiàn).pdf
- dsp課程設計報告--fir濾波器設計
- 畢業(yè)設計---基于fpga的fir數(shù)字低通濾波器的設計
- 基于FPGA的FIR低通濾波器.pdf
- 基于FPGA的FIR數(shù)字濾波器的設計.pdf
- 畢業(yè)設計基于fpga的fir數(shù)字濾波器設計
- 基于FPGA的高速FIR數(shù)字濾波器設計.pdf
- 開題報告--基于fpga的fir低通數(shù)字濾波器設計
評論
0/150
提交評論