




已閱讀5頁,還剩27頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
專業課程設計報告 題 目: 波形發生器的設計 姓 名:湯姝專 業:通信工程班級學號:09042304同 組 人 :09042308 楊勇指導教師:劉敏 南昌航空大學信息工程學院20 12年 6 月 28 日 專業 課程設計任務書20112012學年 第 2 學期第 17 周 20 周 題目波形發生器的設計內容及要求用CPLD可編程模塊產生下列信號(特殊芯片:EPM570T100C5)(1)采用VHDL編寫相關程序,能產生遞增斜波、遞減斜波、階梯波、正弦波、方波、三角波;(2)用戶能夠選擇輸出所需其中一種波形。進度安排 17周:查找資料,進行系統方案設計; 18周:軟件的分模塊調試; 19周:系統聯調;20周:設計結果驗收,報告初稿的撰寫。學生姓名: 湯姝指導時間:第1720周指導地點:E樓607室任務下達2012年 6 月4 日任務完成2012年 6月 29 日考核方式1.評閱 2.答辯 3.實際操作 4.其它指導教師劉敏系(部)主任付崇芳摘要各種各樣的信號是通信領域的重要組成部分,其中遞增斜波、遞減斜波、階梯波、正弦波、方波、三角波等是較為常見的信號。在科學研究及教學實驗中常常需要這幾種信號的發生器。為了試驗、研究方便,研制一種靈活使用、功能齊全、使用方便的信號源是十分必要的。本次設計的波形發生器是一種能夠產生遞增斜波、遞減斜波、階梯波、正弦波、方波、三角波的信號發生器。設計可以通過硬件和軟件兩種方法實現,本次實驗中通過Quartus II軟件編程軟件的方法,運用VHDL語言與原理圖混合設計的方法,VHDL語言描述底層模塊,原理圖設計方法設計頂層原理圖文件。實驗分模塊設計,便于調試及錯誤的查找。實驗運用VHDL語言編寫程序,實現了各波形的產生,并且最后通過6選1多路開關的設計,實驗了對需要波形的選擇。關鍵詞:波形發生器 VHDL Quartus II 原理圖 多路開關目 錄第一章 波形發生器設計內容及要求11.1 設計內容11.2 設計要求1第二章 波形發生器系統框圖及工作原理與設計22.1 系統框圖22.2 設計平臺與仿真工具22.3 工作原理與設計2第三章 系統調試與分析113.1 系統調試113.2 結果分析11第四章 結論18參考文獻19附錄一 原理圖20附錄二 程序清單21波形發生器的設計第一章 波形發生器設計內容及要求1.1 設計內容實驗設計波形發生器是一種能夠產生遞增斜波、遞減斜波、階梯波、正弦波、方波、三角波的電路。實驗中通過Quartus II軟件編程,運用VHDL語言與原理圖混合設計的方法,VHDL語言描述底層模塊,原理圖設計方法設計頂層原理圖文件。實驗分模塊設計,在完成一個模塊時即對其進行調試修改,防止了最后模塊綜合時存在調試困難的情況出現。如果是對元件例化相對較熟練的同學,也可采用元件例化的方法進行程序的編寫。但在此過程中,應特別注意VHDL語言的運用,以防語法錯誤導致影響實驗結果。實驗最后將程序下載到芯片EPM570T100C5中,供實際運用。1.2 設計要求用CPLD可編程模塊產生下列信號(特殊芯片:EPM570T100C5)1、 采用VHDL編寫相關程序,能產生遞增斜波、遞減斜波、階梯波、正弦波、方波、三角波; 2、用戶能夠選擇輸出所需其中一種波形。第二章 波形發生器系統框圖及工作原理與設計2.1 系統框圖波形發生器由各波形發生模塊及6選1多路開關構成,時鐘信號對其作用產生輸出波形信號,系統框圖如圖2.1所示。圖2.1 系統框圖2.2 設計平臺與仿真工具Quartus II軟件包是MAX+plus II的升級版本,其提供了一個完整高效的設計環境,非常適合具體的設計需求。提供了方便的設計輸入方式、快速的編譯和直接易懂的器件編程,屬于EDA工具。EDA技術的基本特征是采用高級語言描述,具有系統級仿真和綜合能力。它主要采用并行工程和“自頂向下”的設計方法,這種設計方法首先從系統設計入手,在頂層進行功能方框圖的劃分和結構的設計。在方框圖一級進行仿真、糾錯,并用硬件描述語言對高層次的系統行為進行描述,在系統一級進行驗證。然后用綜合優化工具生成具體電路的網表,其對應得物理實現級可以是印刷電路板或專用集成電路。由于設計的主要仿真和調試過程是在高層次上完成的,這不僅有利于早起發現結構設計上的錯誤,避免設計工作的浪費,而且也減少了邏輯功能仿真的工作量,提高了設計的一次成功率。本實驗中是多個模塊的相互聯系作用,采用了VHDL與原理圖混合設計的方式進行設計。各模塊設計最后,為了能在圖形編輯器中調用元件,需要為該元件創建一個元件圖形符號。2.3 工作原理與設計2.3.1 遞增波形遞增波形的設計運用的是VHDL語言中if語句對其進行0-255的序列遞增來實現的,每等待一個時鐘上升沿,計數器加1,故輸出信號周期為256倍時鐘周期。程序主要語句如下所示:if tmp=11111111 then tmp:=00000000; else tmp:=tmp+1; end if;其中,定義clk為輸入時鐘信號端口,reset為輸入復位信號端口程,q1為8位二進制輸出信號端口。程序設計流程圖如下圖所示:圖2.2 遞增波形設計流程圖2.3.2 遞減波形遞減波形的設計運用的是VHDL語言中if語句對其進行255-0的序列遞減來實現的,與遞增波形正好是相反的。每等待一個時鐘上升沿,計數器減1,故輸出信號周期為256倍時鐘周期。程序主要語句如下所示: if tmp=00000000 then tmp:=11111111; else tmp:=tmp-1; end if;其中,時鐘信號clk,復位信號reset, 8位二進制輸出信號端口q2。程序設計流程圖如下圖所示:圖2.3 遞減波形設計流程圖2.2.3 階梯波階梯波運用VHDL語言中if語句設計,程序中每計數16次對輸出信號進行一次序列遞增,從而得到周期為輸入時鐘遞增信號波形周期16倍的輸出階梯波信號。在設計原理上是與遞增波形類似的。程序中,階梯波階梯增量為16,可以根據需要通過改變遞增量來得到需要波形。因為在計數器11110000是加16剛好為00000000,故程序省略了if tmp =11111111 thentmp:=00000000 ;語句,并且在計數器增量設置時,增量應為,這樣才能使階梯波各個階梯高度是一致的。 程序主要語句如下所示:if reset=0 then tmp:=00000000; elsif clkevent and clk=1 then tmp:=tmp+16;end if;其中,時鐘信號clk,復位信號reset, 8位二進制輸出信號端口q5。程序設計流程圖如下圖所示:圖2.4 階梯波設計流程圖2.1.4 三角波三角波的設計運用的是VHDL語言中if語句先對其進行0-255的序列遞增,之后再對遞增到255的序列進行255-0的序列遞減來實現的,正好是遞增波形與遞增波形相結合得到。程序語句設置內部接點信號a作為遞減信號,判斷波形處于遞增或者是遞減階段。當a為0時,遞增,計數器加1;a為1時,遞減,計數器減1。 程序主要語句如下所示: if a=0 then if tmp=11111110 then tmp:=11111111; a:=1; else tmp:=tmp+1; end if;else if tmp=00000001 then tmp:=00000000; a:=0; else tmp:=tmp-1; end if;end if;其中,時鐘信號clk,復位信號reset, 8位二進制輸出信號端口q3。程序設計流程圖如下圖所示:圖2.5 三角波設計流程圖2.1.5 正弦波正弦波的設計運用的是VHDL語言中if語句與case語句,由于正弦波是模擬信號波形,而VHDL語言程序輸出的是數字信號波形。因此,實驗中對信號進行等間距采樣,等效正弦信號波形。程序采樣點為128個,等效為近似的正弦波形。程序主要語句如下所示: if tmp =127 then tmp:=0; else tmp:=tmp+1;end if;case tmp iswhen 00=ddddddddnull;end case;end if;其中,時鐘信號clk,復位信號clr, 8位二進制輸出信號端口d。程序設計流程圖如下圖所示:圖2.6 正弦波設計流程圖2.1.6 方波階梯波運用VHDL語言中if語句設計,程序中每計數64次對輸出信號進行一次翻轉,從而得到周期為輸入時鐘信號周期128倍的輸出方波信號。程序設置內部節點信號a作為輸出判斷信號,計數器計數0-63后,對輸出判斷信號取反,實現0、1的變化。 if cnt63 then cnt:=cnt+1; else cnt:=0; a=not a; end if;其中,a為0 是輸出低電平,a為1時輸出高電平。 if a =1 then q6=255; else q6qqqqqqq=null;end case;其中,時鐘信號clk,輸入選擇sel,8位二進制輸出信號端口q。程序設計流程圖如下圖所示:圖2.7 6選1多路開關設計流程圖第三章 系統調試與分析3.1 系統調試3.1.1 調試方法 實驗運用的是VHDL語言與原理圖混合設計方法,因此有程序調試和原理圖調試兩部分。實驗步驟如下:1、 新建工程、VHDL文檔輸入設計模塊子程序2、 調試各個子程序是否存在語法錯誤的問題3、 對各子模塊進行波形仿真,驗證輸出是否正確4、 各子模塊生成圖元文件5、 新建工程、原理圖文檔,將各子模塊文件夾下的文檔拷貝到新建工程中6、 根據系統設計框圖將各個模塊圖元文件連成原理圖7、 檢驗原理圖是否正確8、 最后原理圖仿真,檢查波形圖是否正確3.1.2 調試故障及解決方法在整個實驗調試過程中,最主要出現的問題是對VHDL語言的不熟悉,導致在程序編寫過程中出現了不少語法錯誤導致影響實驗結果的問題。其次是軟件運用不熟練使得影響實驗進度,有時也會影響了實驗調試。針對實驗中出現了問題,總結了以下一些解決方法和注意事項:1、 程序書寫過程中要注意程序的層次,便于出錯時對錯誤的查找;2、 程序輸入時應仔細認真,以免個別字母的錯誤輸入影響實驗結果;3、 分模塊設計分模塊調試,便于對錯誤的糾正;4、 項目名必須與頂層設計文件名相同;5、 程序命名過程中,以一定意義的字母命名,便于之后讀程序;6、 在原理圖設計上,注意總線的書寫。 設計中主要用的是VHDL語言中的if語句和case語句,因此對這兩種語句的運用要十分熟悉。并且其不區分大小寫,所以在命名時應注意此問題。3.2 結果分析3.2.1 遞增波形 通過對程序語句的調試過程,得到以下波形圖:圖3.1 遞增波形圖圖3.2 遞增模塊圖 由波形圖可以看出,在每個時鐘上升沿,輸出加1,從波形圖上我們也可以看到,輸出由00000000增至11111111,從而得到了遞增波形,并且其周期為時鐘周期的256倍。因此,從調試得到的波形圖可知,程序設計實現了遞增波形的產生功能。3.2.2 遞減波形 遞減波形程序調試,得到了以下的波形圖:圖3.3 遞減波形圖圖3.4 遞減模塊圖 由波形圖可以看出,在每個時鐘上升沿,輸出減1,從波形圖上我們也可以看到,輸出由11111111減到00000000,與遞增波形正好是相反的,其周期與遞增波形周期相等,為時鐘周期的256倍。因此,從調試得到的波形圖可知,程序設計實現了遞減波形的產生功能。3.2.3 三角波三角波程序調試至無語法錯誤后,仿真得到以下波形圖:圖3.5三角波波形圖圖3.6 三角波模塊圖 通過對波形圖的分析,每個時鐘上升沿計數器加1或者減1,有一個最大值11111111。輸出由00000000遞增至11111111后再遞減至00000000,從而得到了三角波。從圖上我們可以看到輸出的遞增與遞減,程序實現了三角波的產生功能。3.2.4 正弦波 對正弦波程序的調試,得到了以下波形圖:圖3.7 正弦波波形圖圖3.8 正弦波模塊圖 程序根據正弦波采樣取點,得到了以上仿真波形。與遞增波形不同的是,正弦波設計中由于取點并不按一定規律得到,無法采用循環來實現,相對于前面波形的設計較難一些。因此,程序中利用case語句,通過查表的方法來實現輸出正弦波。3.2.5 階梯波 階梯波調試得到波形圖如下所示:圖3.9 階梯波波形圖圖3.10 階梯波模塊圖 與之前設計的遞增波形比較我們不難發現,階梯波與遞增波形是類似的,其區別就在于,階梯波階梯增量為16,而遞增波形的階梯增量是1。并且在階梯波的設計中應注意,階梯增量應設置為,只有這樣才能保證階梯的每一層的階梯高度是一樣的。實驗設計程序實現了階梯波的產生。3.3.6 方波 方波調試得到波形圖如下圖所示:圖3.11 方波波形圖圖3.12 方波模塊圖 由上圖我們可以知道,程序的調試實現了方波的產生。我們的輸如時鐘信號就是一個方波信號,因此,在方波發生器的設計上要相對簡單。實驗是通過設置的計數周期,之后對輸出信號進行翻轉,從而得到所需的波形。3.3.7 6選1多路開關 由于要實現用戶對所需波形的選擇功能,因此,實驗設計了一個6選1多路開關。通過對用戶輸入否認判斷,從而輸出用戶所需的信號波。調試得到如下波形圖:圖3.13 6選1多路開關圖3.2 6選1模塊圖 通過對部分輸出波形的觀察,在輸入信號為000時,選擇輸出z1的輸入信號,滿足多路開關的功能實現。3.2.8 原理圖實驗運用的是VHDL語言和原理圖混合設計的方法,因此,在所以程序調試成功后,生成每個子模塊的元件圖形。再根據設計框圖,將個子模塊連接,得到系統原理圖。原理圖調試得到如下波形:圖3.8 原理圖選擇輸出方波 各波形發生器模塊產生波形,6選1多路開關,進行對所需波形信號的選擇。仿真過程中,輸入101信號,選擇的是方波信號的輸出。圖3.9 原理圖選擇輸出遞減波形輸入001信號,選擇的是遞減波形信號的輸出。第四章 結論 本次實驗室一個基于VHDL語言的波形發生器的設計,該波形發生器能夠產生遞增斜波、遞減斜波、階梯波、正弦波、方波、三角波。實驗中通過Quartus II軟件編程,運用VHDL語言與原理圖混合設計的方法,VHDL語言描述底層模塊,原理圖設計方法設計頂層原理圖文件。最后通過6選1多路開關的設計,實驗了對需要波形的選擇。實驗分模塊設計,在完成一個模塊時即對其進行調試修改,防止了最后模塊綜合時存在調試困難的情況出現。如果是對元件例化相對較熟練的同學,也可采用元件例化的方法進行程序的編寫。但在此過程中,應特別注意VHDL語言的運用,以防語法錯誤導致影響實驗結果。實驗最后將程序下載到EPM570T100C5中,供實際運用。參考文獻1 朱正偉. EDA技術及應用M.北京:清華大學出版社,2005.2 童詩白.模擬電子技術基礎(第五版)M.北京:高等教育出版社.2005.3 謝自美.電子技術基礎實驗與課程設計M.北京:電子工業出版社.2006.附錄一 原理圖附錄二 程序清單-遞增波形library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dizeng is port(clk,reset:in std_logic; -定義時鐘和復位 q1:out std_logic_vector(7 downto 0); -定義8位輸出end dizeng;architecture behave of dizeng isbegin process(clk,reset) -定義敏感信號表variable tmp:std_logic_vector(7 downto 0); -定義內部節點信號作為計數器begin if reset=0 then -復位 tmp:=00000000; elsif clkevent and clk=1 then -等待時鐘上升沿 if tmp=11111111 then -計數器清零 tmp:=00000000; else tmp:=tmp+1; -計數器加1 end if; end if;q1=tmp; -輸出end process;end behave;-遞減波形library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dijian is port(clk,reset:in std_logic; q2:out std_logic_vector(7 downto 0);end dijian;architecture behave of dijian isbegin process(clk,reset) variable tmp:std_logic_vector(7 downto 0);begin if reset=0 then tmp:=00000000; elsif clkevent and clk=1 then if tmp=00000000 then tmp:=11111111; else tmp:=tmp-1; -計數器減1 end if; end if;q2=tmp;end process;end behave;-三角波library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sjiao is port(clk,reset:in std_logic; q3:out std_logic_vector(7 downto 0);end sjiao;architecture behave of sjiao isbegin process(clk,reset)variable tmp:std_logic_vector(7 downto 0); -定義內部節點信號tmp作為計數器variable a:std_logic; -定義內部節點信號a作為遞減信號begin if reset=0 then tmp:=00000000; elsif clkevent and clk=1 then if a=0 then -a為0,遞增;a為1,遞減 if tmp=11111110 then tmp:=11111111; a:=1; else tmp:=tmp+1; end if;else if tmp=00000001 then tmp:=00000000; a:=0; else tmp:=tmp-1; end if;end if;end if;q3=tmp;end process;end behave;-正弦波library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zxian is port(clk,clr:in std_logic; d:out integer range 0 to 255);end zxian;architecture behave of zxian isbegin process(clk,clr) variable tmp:integer range 0 to 127; begin if clr=0 then dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull; end case; end if; end process;end behave;-階梯波librar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- BP-Fluor-555-azide-生命科學試劑-MCE
- 義務教育道德與法治課程標準(2022年版)
- 定期報告:六月繼續震蕩偏強結構性行情依舊
- 2025中國“雙一流”高校醫學建設數據分析報告
- 2025年零售門店運營數字化技術應用:智能化客服與體驗提升報告
- 2025年工業廢氣深度凈化技術產業鏈上下游協同發展研究報告
- 醫療行業大數據隱私保護技術在疾病預測中的應用報告
- 教育投資并購2025戰略布局報告:整合策略與行業洞察
- 2025年生物質能源在微電網分布式能源系統中的應用前景與優化策略報告
- 工業互聯網平臺2025年網絡安全態勢感知技術信息安全技術前沿動態報告
- 馬詩聽評課記錄范文
- 遼寧省撫順市撫順縣2024-2025學年七年級上學期期末地理試卷(含答案)
- 國家開放大學法律事務專科《民法學(2)》期末紙質考試總題庫2025春期考試版
- 定額〔2025〕3號文-關于發布2023版西藏地區電網工程概預算定額價格水平調整的通知
- 《現場改善案例集》課件
- 醫院結核感染培訓
- 大學生應急救護知到智慧樹章節測試課后答案2024年秋西安歐亞學院
- 臨床心內科主任競聘稿
- 電動工器具安全使用培訓
- 防水工程專項施工方案
- 日本建設項目可視化、安全文明、工藝管理總結
評論
0/150
提交評論