基于VHDL語言信號發(fā)生器的設(shè)計.EDA課程設(shè)計報告書_第1頁
基于VHDL語言信號發(fā)生器的設(shè)計.EDA課程設(shè)計報告書_第2頁
基于VHDL語言信號發(fā)生器的設(shè)計.EDA課程設(shè)計報告書_第3頁
基于VHDL語言信號發(fā)生器的設(shè)計.EDA課程設(shè)計報告書_第4頁
基于VHDL語言信號發(fā)生器的設(shè)計.EDA課程設(shè)計報告書_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE18 / NUMPAGES18基于VHDL語言信號發(fā)生器的設(shè)計1、設(shè)計目的1) 掌握使用EDA工具設(shè)計信號發(fā)生器系統(tǒng)的設(shè)計思路和設(shè)計方法,體會使用EDA綜合過程中電路設(shè)計方法和設(shè)計思路的不同,理解層次化設(shè)計理念。2) 熟悉在Quartus II環(huán)境中,用文本輸入方式與原理圖輸入方式完成電路的設(shè)計,同時掌握使用這兩種方式相結(jié)合的EDA設(shè)計思路。3) 通過這一部分的學(xué)習(xí),對VHDL語言的設(shè)計方法進(jìn)行進(jìn)一步的學(xué)習(xí),對其相關(guān)語言設(shè)計規(guī)進(jìn)行更深層次的掌握,能夠更加熟練的做一些編程設(shè)計2、設(shè)計的主要容和要求通過使用VHDL語言與Quartus II軟件,設(shè)計多功能信號發(fā)生器的每個模塊,將正弦波模

2、塊,方波模塊,三角波模塊,階梯波模塊創(chuàng)建相應(yīng)的元件符號,同時設(shè)計好4選1數(shù)據(jù)選擇器模塊,再通過原理圖輸入方式,將各個模塊組合起來,設(shè)計成一個完整的多種信號發(fā)生器電路,同時將各個模塊單獨進(jìn)行仿真,設(shè)計各個模塊的仿真波形,最后進(jìn)行總原理圖電路仿真,設(shè)計該信號發(fā)生器的總的仿真波形。信號發(fā)生器:體現(xiàn)在它能自動的實現(xiàn)四種波形的轉(zhuǎn)換。根據(jù)題目的分析與整體構(gòu)思可知,要完成設(shè)計任務(wù)必須完成以下要求:1、設(shè)計好用于波形切換的四路數(shù)據(jù)選擇器selector4_1;2、設(shè)計好用于總電路設(shè)計的各個信號輸出模塊;3、設(shè)計好數(shù)模(D/A)轉(zhuǎn)換器。3、整體設(shè)計方案基本設(shè)計方案:在現(xiàn)有單一信號發(fā)生器的基礎(chǔ)上,加上其它信號模塊

3、,通過組合與設(shè)計,用數(shù)模轉(zhuǎn)換器(D/A)將選中的信號源發(fā)出的信號由數(shù)字信號轉(zhuǎn)換為模擬信號,再用示波器顯示出來,其信號發(fā)生器的結(jié)構(gòu)框圖如圖3.1所示。信號發(fā)生器由各個單一信號模塊組合而成,其號產(chǎn)生模塊將產(chǎn)生所需的各種信號,信號發(fā)生器的控制模塊可以用數(shù)據(jù)選擇器實現(xiàn),用4選1數(shù)據(jù)選擇器實現(xiàn)對四種信號的選擇。最后將波形數(shù)據(jù)送入D/A轉(zhuǎn)換器,將數(shù)字信號轉(zhuǎn)換為模擬信號輸出。用示波器測試D/A轉(zhuǎn)換器的輸出,可以觀測到4種信號的輸出。圖3.1 信號發(fā)生器結(jié)構(gòu)框圖通過查找資料把各類信號模塊的程序輸入到Quartus 中進(jìn)行運(yùn)行仿真,每一步都要慎重小心,錯誤難免的,還需要通過課本和資料一一更正。最后,在前面模塊做

4、好的基礎(chǔ)上再考慮如何輸出波形的問題,通過對四種波形采樣就可以得到。4、硬件電路的設(shè)計與軟件設(shè)計根據(jù)題目分析與整體構(gòu)思可知,要完成設(shè)計任務(wù)必須設(shè)計出以下模塊: 4.1正弦波發(fā)生器的實現(xiàn)該模塊產(chǎn)生以64個時鐘為一個周期的正弦波。其VHDL語言源程序代碼如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-打開庫文件USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sinqi ISPORT (clk : IN STD_LOGIC;-聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口 clr : IN STD_LOGIC; -聲明clr是標(biāo)準(zhǔn)邏輯位

5、類型的輸入端口d : OUT integer range 0 to 255); -聲明d是標(biāo)準(zhǔn)邏輯向量類型的 -輸出端口END sinqi;ARCHITECTURE sinb OF sinqi ISBEGINPROCESS(clr,clk) variable temp:integer range 0 to 63; BEGINIF clr=0 THEN dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull; -當(dāng)temp值不是選擇值,Q作未知 -處理END CASE;ENDIF;END PROCESS;END

6、sinb;4.2 方波信號發(fā)生器的實現(xiàn)該模塊產(chǎn)生方波,是通過交替送出全0和全1實現(xiàn),每16個時鐘翻轉(zhuǎn)一次。其VHDL語言源程序代碼如下所示:LIBRARY IEEE;-打開庫文件USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fangboqi IS PORT (clk: IN STD_LOGIC;-聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口 clr: IN STD_LOGIC;-聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-聲明q是標(biāo)準(zhǔn)邏輯 -向量類型

7、的輸出端口END fangboqi;ARCHITECTURE fangbo1 OF fangboqi IS -結(jié)構(gòu)體說明SIGNAL a: STD_LOGIC;BEGIN PROCESS(clk,clr) VARIABLE tmp:std_logic_vector(3 downto 0); -變量定義 BEGINIF clr=0 THEN a=0;ELSIF clkevent AND clk= 1 THEN -clk為上升沿IF tmp=1111 THEN tmp:=0000;ELSEtmp:=tmp+1; END IF;IF tmp1000 THENa=1; ELSE a=0; END IF

8、; END IF; END PROCESS;PROCESS(clk,a)BEGINIF clkevent AND clk= 1 THEN -clk為上升沿 IF a=1 THENq=11111111; -q賦值 ELSEq=00000000; -q賦值END IF; END IF;END PROCESS; -結(jié)束進(jìn)程END fangbo1; -結(jié)束結(jié)構(gòu)體4.3 三角波信號發(fā)生器的實現(xiàn)該模塊產(chǎn)生的三角波形以64個時鐘為一個周期,輸出q每次加減8其VHDL語言源程序代碼如下所示:LIBRARY IEEE; -打開庫文件USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD

9、_LOGIC_UNSIGNED.ALL;ENTITY so ISPORT (clk : IN STD_LOGIC;-聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口clr : IN STD_LOGIC;-聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-聲明q是標(biāo)準(zhǔn)邏輯 -向量類型的輸出端口END so;ARCHITECTURE sjqi OF so IS -結(jié)構(gòu)體說明BEGINPROCESS(clk,clr) VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); -變量說明 VARIABLE a:STD_LOGI

10、C;BEGIN IF clr=0 THEN tmp:=00000000; ELSIF clkevent AND clk=1 THEN -clk為上升沿IF a=0 THEN IF tmp=11111000 THEN tmp:=11111111; a:=1;ELSE tmp:=tmp+8;END IF; ELSE IF tmp=00000111 THEN tmp:=00000000; a:=0;ELSE tmp:=tmp-8;END IF;END IF;END IF; q=tmp; -q賦值END PROCESS;END sjqi;4.4 階梯波信號發(fā)生器的實現(xiàn)該模塊產(chǎn)生的是階梯波形。其VHDL

11、語言源程序代碼如下所示:LIBRARY IEEE;-打開庫文件USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jietiboqi ISPORT (clk : IN STD_LOGIC;-聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口clr : IN STD_LOGIC;-聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口Q: BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END jietiboqi;ARCHITECTURE jietibo OF jietiboqi IS -結(jié)構(gòu)體說明 BEGIN PROCE

12、SS(clk,clr)VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); -變量定義 BEGIN IF clr=0 THEN tmp:=00000000;-變量賦值 ELSE IF clkevent AND clk=1 THEN -clk為上升沿 IF tmp=11111111 THEN tmp:=00000000; ELSE tmp:=tmp+30; END IF;END IF;END IF; QQQQQQ=null; -當(dāng)sel的值不是選擇值時,Q作未知處理 END CASE; END PROCESS;END one;4.6 數(shù)模轉(zhuǎn)換器(D/A)圖4.6

13、數(shù)模轉(zhuǎn)換器DAC0832的連接電路圖選擇一個D/A轉(zhuǎn)換器,將數(shù)據(jù)選擇器的輸出信號與D/A轉(zhuǎn)換器的輸入端相連接,D/A轉(zhuǎn)換器的可選擇圍很寬,這里選擇常用的DAC0832,其DAC0832的連接電路如上圖4.6所示。4.7 信號發(fā)生器程序流程框圖當(dāng)輸入端有時鐘信號輸入時,各個信號發(fā)生器模塊獨立運(yùn)行,獨立存在,發(fā)出各種信號,這些信號作為數(shù)據(jù)選擇器的輸入信號,在數(shù)據(jù)選擇器的作用下,波形切換到相應(yīng)的模塊輸出,再通過數(shù)模轉(zhuǎn)換器(D/A),將通過示波器顯示出相應(yīng)的波形圖,其程序流程圖如下圖4.7所示:輸入信號各個信號發(fā)生器模塊開始輸出信號數(shù)模轉(zhuǎn)換器(D/A)四選一數(shù)據(jù)選擇器復(fù)位圖4.7 信號發(fā)生器程序流程框

14、圖5、系統(tǒng)仿真通過Quartus軟件設(shè)計出各個模塊的原理圖與其相關(guān)仿真波形示意圖如下:在Quartus II的軟件環(huán)境下,通過文本方式編寫各個信號波形模塊的VHDL語言源程序,且進(jìn)行仿真。接下來將各個信號波形模塊產(chǎn)生相應(yīng)的元件符號,新建一個工程,加載上述模塊,利用原理圖輸入法生成整體多波形信號發(fā)生器。5.1正弦波發(fā)生器的原理圖與其仿真波形圖:正弦波信號發(fā)生器的原理圖如下圖所示:圖5.1.1正弦波信號發(fā)生器原理圖正弦波信號發(fā)生器的仿真波形圖如下圖所示:圖5.1.2正弦波信號發(fā)生器仿真波形圖 Clk由0到1交替變更,clr 一直處于高電平狀態(tài),Q端則由00001000到00010000并依次加00

15、0010005.2方波發(fā)生器的原理圖與其仿真波形圖:方波信號發(fā)生器的原理圖如下圖所示:圖5.2.1方波信號發(fā)生器的原理圖 方波信號發(fā)生器的仿真波形圖如下圖所示:圖5.2.2方波信號發(fā)生器的仿真波形圖 Clk由0到1交替變更,clr 一直處于高電平狀態(tài),q端則由00000000到11111111并依次交替下去5.3三角波發(fā)生器的原理圖與其仿真波形圖:三角波信號發(fā)生器的原理圖如下圖所示:圖5.3.1三角波信號發(fā)生器的原理圖 三角波信號發(fā)生器的仿真波形圖如下圖所示:圖5.3.2 三角波信號發(fā)生器的仿真波形圖 Clk、clr均同時由0到1交替變更Q端則由00000000到00000001并依次加000

16、00001進(jìn)行下去5.4階梯波發(fā)生器的原理圖與其仿真波形圖階梯波信號發(fā)生器的原理圖如下圖所示:圖5.4.1階梯波信號發(fā)生器的原理圖 階梯波信號發(fā)生器的仿真波形圖如下圖5.8所示:圖5.4.2 階梯波信號發(fā)生器的仿真波形圖 Clk由0到1交替變更,clr 一直處于高電平狀態(tài),Q端從00000000開始則高四位依次由0001每次加0010進(jìn)行下去,第四位依次由1110每次減0010進(jìn)行下去。5.5 4選1數(shù)據(jù)選擇器的原理圖與其仿真波形圖4選1數(shù)據(jù)選擇器的原理圖如下圖所示:圖5.5.1 4選1數(shù)據(jù)選擇器的原理圖4選1數(shù)據(jù)選擇器的仿真波形圖如下圖所示:圖5.5.24選1數(shù)據(jù)選擇器的仿真圖 sel由00

17、每次加01交替變更,依次選擇Q的輸出值。5.6信號發(fā)生器的原理圖與其仿真波形圖整體信號發(fā)生器的原理圖如下圖所示:圖5.6.1信號發(fā)生器原理圖整體信號發(fā)生器的仿真波形圖如下圖所示:圖5.6.2多功能信號發(fā)生器的仿真圖 clk由0到1交替變更,clr 一直處于高電平狀態(tài),Q端則由56每次加8依次進(jìn)行下去。6、使用說明6.1 從Quartus II軟件環(huán)境中編寫各個相關(guān)信號模塊的VHDL語言源程序與生成相關(guān)模塊的元件符號名稱:sinqi: 正弦波信號發(fā)生器模塊;fangboqi: 方波信號發(fā)生器模塊;sjqi1: 三角波信號發(fā)生器模塊;jietiboqi:階梯波信號發(fā)生器模塊;selector4_1

18、: 四選一數(shù)據(jù)選擇器輸出模塊;多功能信號發(fā)生器輸出波形可以由sel中位的組合形式選擇,從而控制信號發(fā)生器波形的輸出,通過sel的不同值可以選取正弦波信號發(fā)生器模塊、方波信號發(fā)生器模塊、正弦波信號發(fā)生器模塊與三角波信號發(fā)生器模塊、6.2整體電路的綜合分析在Quartus II軟件環(huán)境原理圖輸入方式中放置各個元件符號,放置輸入和輸出接口、組合各個信號模塊、連線、編譯、建立波形仿真圖、仿真。所有的操作都是在Quartus II軟件環(huán)境中進(jìn)行,輸入信號從各個信號發(fā)生器模塊輸入端輸入,通過數(shù)據(jù)選擇器輸出所選擇的的信號來切換輸出相應(yīng)波形的輸出,在通過數(shù)模轉(zhuǎn)換器(D/A)將數(shù)字信號轉(zhuǎn)換為模擬信號,最后由示波器顯示相應(yīng)的波

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論