




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電子設計自動化課程設計題目: 任意頻率正弦波形發生器電路 院(系) 信息科學與工程學院 專 業 通信工程 屆 別 班 級 學 號 姓 名 任課老師 摘要本次課程設計的主要內容為采用VHDL硬件描述語言實現任意頻率正弦波形發生器電路的編程,在QuartusII軟件上實現仿真,并利用Altera公司的FPGA器件及其外圍電路和示波器實現其實際功能。整個系統由輸入選擇模塊、分頻模塊、并行D/A轉換器、頻率顯示模塊組成。輸入選擇模塊由8個脈沖按鍵組成,其中7個為數字輸入,1個為選擇按鍵;分頻模塊由3個計數器、1個鎖存器、1個乘法器構成;并行D/A轉換器幅度范圍為8位;頻率顯示模塊由3個lpm_cons
2、tant和3個lpm_devide模塊組成,外接3個數碼管,分別顯示分頻后得到的頻率。波形仿真結果級硬件實現均測試成功。該波形發生器的輸入采用選擇輸入的方式,使分頻的精度得到提高(理論上分頻范圍為1/127127/2),輸入直接采用2進制方式輸入,較為方便。D/A轉換器的深度增大為1024,使最后示波器顯示的波形更加平滑流暢。關鍵字:任意分頻 波形發生器 VHDL FPGA 示波器 目錄第一章 系統設計.4 一、設計要求.4 二、系統設計方案.4 三、總體方案的論證與比較.5第二章 單元電路設計.5 一、輸入選擇模塊.5 二、分頻模塊.5 1、M計數器.5 2、N計數器.6 3、頻率計算模塊.
3、6 三、D/A轉化器.8 四、頻率顯示模塊.9第三章 軟件設計.9 一、軟件設計平臺.9 二、程序流程方框圖.10 三、實現的功能.10 四、測試儀器.10第四章 系統測試.10 一、系統性能指標.10 二、功能的測試方法、步驟.11 三、儀器設備名稱、型號.11 四、測試數據.11第五章 總結與反思.12參考文獻.13附錄.13第一章 系統設計一、 設計要求正弦波輸出,幅度范圍8位(并行D/A轉換器DAC0832);輸出信號頻率可任意設置;十進制顯示輸出正弦波的頻率。實現波形仿真并通過實驗箱顯示頻率,示波器顯示頻率和波形,且示波器上所示頻率應與實驗箱上顯示一致。二、 系統設計方案系統設計思路
4、: 圖1.1 原理圖 圖1.2 頂層圖形文件圖1.1為波形發生器整體系統設計原理框圖,共分為輸入選擇模塊、分頻模塊、D/A轉換器、頻率顯示模塊四個部分。其中輸入選擇模塊包括數值輸入和選擇按鍵(所輸入的數是送給M或N);分頻模塊是利用輸入的M和N對原始頻率進行分頻,其包括L.M.N三個計數器和D鎖存器組成,D/A轉換器的功能是將每個脈沖對應一個電壓,眾多脈沖對應眾多電壓,便在示波器上顯示初連續的正弦波,(點數越多,波形越光滑流暢);顯示模塊利用數碼顯示管將最后示波器上顯示的頻率顯示出來。三、 總體方案的論證與比較整個分頻模塊設計,均基于F=f*N/1024/M這一基本公式(F為最后輸出頻率,f為
5、原始輸入頻率),有2種思路可供選擇。(1)M計數器是一個每次只增加一的計數器,f接1024HZ的頻率,那么輸入就只有N一個,范圍可從0255,N輸入的數值便是數碼管和示波器最終顯示的數值;、(2)M.N都設置為任意分頻計數器,f也可接任意頻率,最后頻率F等于f*N/1024/M。 本設計選擇后者,原因在于前者若f接1024HZ外部頻率時,能做到輸入與輸出一致,但頻率范圍僅為0255,與設置的0999相差甚遠,若接其他數值為外部頻率時,無法做到輸入與輸出一致,且輸出的頻率是不連續的,如接入外部頻率為16384HZ, 當N=1,F=16; 當N=2,F=32,而1632間的頻率值都是無法輸出的,這
6、樣并沒有做到真正的“任意頻率”。綜上所述,后者是更優的選擇。第二章 單元電路設計1、 輸入選擇模塊 原理分析: 該模塊為由下降沿或上升沿鎖存輸入數值的2選1選擇器,由h端輸入數值,當S出現上升沿時h的值賦給j,當s出現下降沿時h的值賦給k。最終j的值將賦給M,而k的值將賦給N。H.j.k均是7位的2進制數,數值范圍為0127。輸入選擇模塊的波形仿真圖如下圖所示: 輸入選擇器波形仿真結果2、 分頻模塊 分頻模塊 整個分頻模塊由L.M.N三個計數器,一個D鎖存器,一個除法模塊,調用一個乘法模塊lpm_mult組成,下面就分別每一板塊做詳細介紹。1) 、M計數器 M計數器將計數的最大值設置為(M-1
7、),當計數到(M-1)時COUT向前進位,此時計數歸零,從頭開始。將COUT接入下一板塊的clk2,此時clk2的頻率是clk頻率的1/M,實現分頻。下圖為該計數器的波形仿真結果,取M=4,COUT的頻率為clk頻率的1/4。 M計數器波形仿真結果 2)、N計數器 N計數器的計數方式不是一個脈沖到來數值加一,所加的數值為N。這相當于輸入端每加一,輸出端加N,即輸入一個脈沖,輸出N個脈沖,輸出頻率為輸入頻率的N倍。下圖為該計數器的波形仿真結果,取N=4,由圖可見輸入端每增一,輸出端增加4,實現4倍頻。 N計數器波形仿真結果 3)、頻率計算模塊 頻率計算模塊該模塊中L為常規計數器,它的其中一個輸入
8、端clK與M計數器的輸出端COUT相接,故該模塊輸入頻率為原始頻率經M分頻后的頻率,它的另一個輸入端EN直接接實驗箱上0.5HZ脈沖,該脈沖周期為2秒,高低電平分別1秒,而EN端只有高電平時計數器才工作,故1秒內計算出的脈沖數恰好等于其頻率。D為下降沿觸發的鎖存器,它的一個輸入端clk與EN相接,當EN 在高電平時計完1秒的脈沖數,跳為低電平時,鎖存器立即將L得到的值存起來以便接下來的板塊對該值進行處理。若不適用鎖存器,讓L和A直接相連,由于L中的輸出端只在EN向低電平跳變時才增加到正確值,此時L會將該值輸出,但由于EN跳變太快,以致L來不及輸出或A還未對其進行處理,EN已回到低電平,L的輸出
9、端CQ已歸零,故最終的輸出頻率始終為零。所以D鎖存器是必不可少的。板塊A只完成一個操作:將經M分頻后的頻率除以1024,1024為本設計中D/A轉換器的深度。完成到此步驟,此時的輸出頻率經M和1024分頻,只需將該頻率乘以N倍便完成全部分頻。之所以不把*N這一步放在板塊A中完成,原因在于:VHDL中/、*等運算要求頗為嚴格,所乘的數和所除的數要為2的整數次方,故N不可任意取值。為了解決這個問題,加入一個乘法模塊,將其中的一個成乘數接到N端,如此,N的值不會受限。以下是頻率設計模塊波形仿真圖,由圖可知,只要EN有下降沿,輸出端便能將正確頻率永久地保存下來。 頻率計算模塊波形仿真結果 三、 D/A
10、轉換器 該lpm_rom模塊是QuartusII軟件中自帶模塊,需要時可直接調用,其輸入為轉換器的深度,即一個波形周期內橫向點數,故該值越大,波形越光滑流暢。輸出為轉換器幅度。四、 頻率顯示模塊 頻率輸出模塊由于本設計中將輸出頻率的范圍設置為0999,只需要3個輸出,分別為百位、十位、 個位,分別在3個數碼管上顯示。采用不斷模10的方式將每一位數逐個分離,上面已說明VHDL中使用“/”的局限性,故在此調用軟件中原有的lpm_divide和lpm_constant模塊來完成模10。如輸入一個三個數128,經第一個模10模塊后,輸出端a得到個位8,另一個輸出端得到商12,并將12送給下一個模10模
11、塊2,該模塊的輸出端b得到十位2,另一輸出端得到商1,并將這個1送給下一個模10模塊,當1模10,余數就為1,輸出端c得到百位。下圖為頻率輸出模塊波形仿真結果。 頻率輸出模塊波形仿真圖第三章 軟件設計一、 軟件設計平臺:QuartusII二、 程序流程方框圖:三、 實現的功能 本設計能夠對接入的實驗箱上的頻率進行1/127127/2(M最小只能取到2)范圍的分頻,M.N均為外部輸入數值,8個按鍵中7個按鍵為數值輸入,1個為選擇鍵,決定將輸入的值給M或是N;最終分頻后的頻率范圍為0999(最大頻率范圍可為099999999,如有需要,可對相應程序的數值設定做修改,在頻率輸出部分增加相應模10模塊
12、即可),本設計能在示波器上成功顯示出平滑流暢且不同頻率的正弦波形。四、 程序清單 輸入選擇器程序; M計數器程序; N計數器程序; L計數器程序; D鎖存器程序; 除法模塊a程序;第四章 系統測試1、 系統性能指標2、 功能的測試方法、步驟將仿真成功且管腳分配好的程序下載到芯片中,選擇模式5,將EN 對應的管腳接0.5HZ的脈沖,M模塊上clk接任意頻率的脈沖,將示波器的輸入和接地端接到實驗箱上相應地方,打開實驗箱和示波器,輸入規定范圍內的N.M值,觀察示波器和數碼箱上顯示的頻率是否相同且示波器上正弦波形是否隨M.N的輸入而變化。3、 儀器設備名稱、型號 Altera公司CycloneII系列
13、EP2C5T144C8芯片 實驗箱 示波器4、 測試數據 完整系統波形仿真圖:波形分析:由圖中可看出,clk接入2048HZ脈沖,EN接入0.5HZ脈沖。先給數值輸入口h輸入2,選擇輸入鍵s輸入一個上升沿,輸入的“2”賦給M,此時再給數值輸入口h輸入16,鍵s輸入一個下降沿,輸入的“16”賦給N,當EN出現下降沿時出現分頻后的頻率。可知此時的M.N對clk的原始頻率進行了1/128的分頻(lpm_rom深度為1024),故輸出值應為16HZ,圖中可看出十位b為1,個位c為6,結果正確。 第5章 總結與反思本設計通過M.N兩個計數器完成對輸入頻率分頻,分頻范圍是1/127127/2,通過波形仿真
14、和硬件測試表明本設計達到標準。但其仍有不足之處:由于本設計使用模塊較多,最后的頂層圖形文件顯得雜亂繁瑣,如圖1.2所示。此時應對聯系緊密的小模塊進行封裝,這樣可使最后的頂層圖形文件簡明有序,便于分析,以后應注意。(注:老師,在做課設時還沒有講封裝,望原諒哈) 參考文獻 1、潘松、黃繼業EDA技術與VHDL(第三版)北京:清華大學出版社,2009 2、 附錄: 輸入選擇器程序; M計數器程序; N計數器程序; L計數器程序; D鎖存器程序; 1、 輸入選擇器程序 library ieee; ieee.std_logic_1164.all; use ieee.std_logic_unsigned.
15、all; entity xuanze is port(s: in std_logic; h :in std_logic_vector(6 downto 0); j,k : out std_logic_vector(6 downto 0); end xuanze; architecture one of xuanze is begin process(s,h) begin if sevent and s=1 then j=h; elsif sevent and s=0 then k=h; end if; end process; end; 2、M計數器程序library ieee;use iee
16、e.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity m isport(clk,rst,en : in std_logic; m :in std_logic_vector(6 downto 0); COUT : out std_logic);end m; architecture one of m issignal count:std_logic_vector(6 downto 0);begin process(clk,rst,en,m) begin if rst =1 then count0); elsif clkevent
17、 and clk=1 then if en = 1 then if countm-1 then count=count+1; else count0); end if; end if; end if; IF count =m-1 THEN COUT = 1; ELSE COUT = 0; END IF; end process; end;3、 N計數器程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity n is port(clk,rst,en: in std_logic; n
18、:in integer range 0 to 127; cq:out integer range 0 to 1023); end; architecture one of n is signal count:integer range 0 to 1023; begin process(clk,rst,en,n) begin if rst =1 then count=0; elsif clkevent and clk=1 then if en = 1 then if count1023 then count=count+n; else count=0; end if; end if; end i
19、f; cq=count; end process; end; 4、L計數器程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity L is port(clk,en: in std_logic; CQ:out integer range 0 to 60000); end L; architecture one of L is signal p:integer range 0 to 60000; begin process(clk) begin if clkevent and clk=1 then if en=1 then p=p+1; else p =0; end if; end if; end process; CQ=p; end; 5、D鎖存器程序 library ieee; use ieee.std_logic_1164.all; us
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園特殊兒童個性化學習計劃
- 2025年學生疫苗接種宣傳計劃
- 2025年衛星通信傳輸系統合作協議書
- 2025年抗重癥肌無力藥合作協議書
- 針對學困生的數學輔導計劃
- 2025年度制造業職業衛生培訓計劃
- 初中英語期末復習計劃詳解
- 醫院心理治療方案工作計劃
- 礦山開采作業危險源辨識及防范措施
- 初中生心理健康教育期中考試質量分析及整改措施
- 2015年高考真題新課標-英語II卷真題及答案
- 小學實踐活動教學設計案例
- 小學科學三年級下冊10.天然材料和人造材料-教學課件
- 主動邀請患者參與醫療安全
- 2024年醫院重癥??谱o士培訓考試題庫(含答案)
- 2024年天津市武清區國有資產經營投資有限公司招聘筆試參考題庫附帶答案詳解
- 《動物生理學》課程教學大綱
- 社會穩定風險評估 投標方案(技術方案)
- 高檔KTV裝修工程施工組織設計方案
- 第13課《警惕可怕的狂犬病》 課件
- 地鐵智慧運維技術培訓
評論
0/150
提交評論