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

下載本文檔

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

文檔簡(jiǎn)介

基于VHDL語(yǔ)言信號(hào)發(fā)生器的設(shè)計(jì)1、設(shè)計(jì)目的

1)掌握使用EDA工具設(shè)計(jì)信號(hào)發(fā)生器系統(tǒng)的設(shè)計(jì)思路和設(shè)計(jì)方法,體會(huì)使用EDA綜合過(guò)程中電路設(shè)計(jì)方法和設(shè)計(jì)思路的不同,理解層次化設(shè)計(jì)理念。2)熟悉在QuartusII環(huán)境中,用文本輸入方式與原理圖輸入方式完成電路的設(shè)計(jì),同時(shí)掌握使用這兩種方式相結(jié)合的EDA設(shè)計(jì)思路。3)通過(guò)這一部分的學(xué)習(xí),對(duì)VHDL語(yǔ)言的設(shè)計(jì)方法進(jìn)行進(jìn)一步的學(xué)習(xí),對(duì)其相關(guān)語(yǔ)言設(shè)計(jì)規(guī)范進(jìn)行更深層次的掌握,能夠更加熟練的做一些編程設(shè)計(jì)

2、設(shè)計(jì)的主要內(nèi)容和要求

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

3、整體設(shè)計(jì)方案基本設(shè)計(jì)方案:在現(xiàn)有單一信號(hào)發(fā)生器的基礎(chǔ)上,加上其它信號(hào)模塊,通過(guò)組合與設(shè)計(jì),用數(shù)模轉(zhuǎn)換器(D/A)將選中的信號(hào)源發(fā)出的信號(hào)由數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),再用示波器顯示出來(lái),其信號(hào)發(fā)生器的結(jié)構(gòu)框圖如圖3.1所示。信號(hào)發(fā)生器由各個(gè)單一信號(hào)模塊組合而成,其中信號(hào)產(chǎn)生模塊將產(chǎn)生所需的各種信號(hào),信號(hào)發(fā)生器的控制模塊可以用數(shù)據(jù)選擇器實(shí)現(xiàn),用4選1數(shù)據(jù)選擇器實(shí)現(xiàn)對(duì)四種信號(hào)的選擇。最后將波形數(shù)據(jù)送入D/A轉(zhuǎn)換器,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出。用示波器測(cè)試D/A轉(zhuǎn)換器的輸出,可以觀測(cè)到4種信號(hào)的輸出。圖3.1信號(hào)發(fā)生器結(jié)構(gòu)框圖通過(guò)查找資料把各類信號(hào)模塊的程序輸入到QuartusⅡ中進(jìn)行運(yùn)行仿真,每一步都要慎重小心,錯(cuò)誤難免的,還需要通過(guò)課本和資料一一更正。最后,在前面模塊做好的基礎(chǔ)上再考慮如何輸出波形的問(wèn)題,通過(guò)對(duì)四種波形采樣就可以得到。4、硬件電路的設(shè)計(jì)與軟件設(shè)計(jì)根據(jù)題目分析與整體構(gòu)思可知,要完成設(shè)計(jì)任務(wù)必須設(shè)計(jì)出以下模塊:4.1正弦波發(fā)生器的實(shí)現(xiàn)該模塊產(chǎn)生以64個(gè)時(shí)鐘為一個(gè)周期的正弦波。其VHDL語(yǔ)言源程序代碼如下所示:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;--打開(kāi)庫(kù)文件USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsinqiISPORT(clk:INSTD_LOGIC;--聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口clr:INSTD_LOGIC;--聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口d:OUTintegerrange0to255);--聲明d是標(biāo)準(zhǔn)邏輯向量類型的--輸出端口ENDsinqi;ARCHITECTUREsinbOFsinqiISBEGINPROCESS(clr,clk)variabletemp:integerrange0to63;BEGINIFclr='0'THENd<=0;--clr為低電平d為0ELSIFclk'EVENTANDclk='1'THEN--clk為上升沿IFtemp=63THENtemp:=0;ELSEtemp:=temp+1;ENDIF;CASEtempISwhen00=>d<=255;when01=>d<=254;when02=>d<=252;when03=>d<=249;when04=>d<=245;when05=>d<=239;when06=>d<=233;when07=>d<=225;when08=>d<=217;when09=>d<=207;when10=>d<=197;when11=>d<=186;when12=>d<=174;when13=>d<=162;when14=>d<=150;when15=>d<=137;when16=>d<=124;when17=>d<=112;when18=>d<=99;when19=>d<=87;when20=>d<=75;when21=>d<=64;when22=>d<=53;when23=>d<=43;when24=>d<=34;when25=>d<=26;when26=>d<=19;when27=>d<=13;when28=>d<=8;when29=>d<=4;when30=>d<=1;when31=>d<=0;when32=>d<=0;when33=>d<=1;when34=>d<=4;when35=>d<=8;when36=>d<=13;when37=>d<=19;when38=>d<=26;when39=>d<=34;when40=>d<=43;when41=>d<=53;when42=>d<=64;when43=>d<=75;when44=>d<=87;when45=>d<=99;when46=>d<=112;when47=>d<=124;when48=>d<=137;when49=>d<=150;when50=>d<=162;when51=>d<=174;when52=>d<=186;when53=>d<=197;when54=>d<=207;when55=>d<=217;when56=>d<=225;when57=>d<=233;when58=>d<=239;when59=>d<=245;when60=>d<=249;when61=>d<=252;when62=>d<=254;when63=>d<=255;whenothers=>null;--當(dāng)temp值不是選擇值,Q作未知--處理ENDCASE;ENDIF;ENDPROCESS;ENDsinb;4.2方波信號(hào)發(fā)生器的實(shí)現(xiàn)該模塊產(chǎn)生方波,是通過(guò)交替送出全0和全1實(shí)現(xiàn),每16個(gè)時(shí)鐘翻轉(zhuǎn)一次。其VHDL語(yǔ)言源程序代碼如下所示:LIBRARYIEEE;--打開(kāi)庫(kù)文件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYfangboqiISPORT(clk:INSTD_LOGIC;--聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口clr:INSTD_LOGIC;--聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--聲明q是標(biāo)準(zhǔn)邏輯--向量類型的輸出端口ENDfangboqi;ARCHITECTUREfangbo1OFfangboqiIS--結(jié)構(gòu)體說(shuō)明SIGNALa:STD_LOGIC;BEGINPROCESS(clk,clr)VARIABLEtmp:std_logic_vector(3downto0);--變量定義BEGINIFclr='0'THENa<='0';ELSIFclk'eventANDclk='1'THEN--clk為上升沿IFtmp="1111"THENtmp:="0000";ELSEtmp:=tmp+1;ENDIF;IFtmp<"1000"THENa<='1';ELSEa<='0';ENDIF;ENDIF;ENDPROCESS;PROCESS(clk,a)BEGINIFclk'eventANDclk='1'THEN--clk為上升沿IFa='1'THENq<="11111111";--q賦值ELSEq<="00000000";--q賦值ENDIF;ENDIF;ENDPROCESS;--結(jié)束進(jìn)程ENDfangbo1;--結(jié)束結(jié)構(gòu)體4.3三角波信號(hào)發(fā)生器的實(shí)現(xiàn)該模塊產(chǎn)生的三角波形以64個(gè)時(shí)鐘為一個(gè)周期,輸出q每次加減8其VHDL語(yǔ)言源程序代碼如下所示:LIBRARYIEEE;--打開(kāi)庫(kù)文件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsjboISPORT(clk:INSTD_LOGIC;--聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口clr:INSTD_LOGIC;--聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--聲明q是標(biāo)準(zhǔn)邏輯--向量類型的輸出端口ENDsjbo;ARCHITECTUREsjqiOFsjboIS--結(jié)構(gòu)體說(shuō)明BEGINPROCESS(clk,clr)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0);--變量說(shuō)明VARIABLEa:STD_LOGIC;BEGINIFclr='0'THENtmp:="00000000";ELSIFclk'eventANDclk='1'THEN--clk為上升沿IFa='0'THENIFtmp="11111000"THENtmp:="11111111";a:='1';ELSEtmp:=tmp+8;ENDIF;ELSEIFtmp="00000111"THENtmp:="00000000";a:='0';ELSEtmp:=tmp-8;ENDIF;ENDIF;ENDIF;q<=tmp;--q賦值ENDPROCESS;ENDsjqi;4.4階梯波信號(hào)發(fā)生器的實(shí)現(xiàn)該模塊產(chǎn)生的是階梯波形。其VHDL語(yǔ)言源程序代碼如下所示:LIBRARYIEEE;--打開(kāi)庫(kù)文件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYjietiboqiISPORT(clk:INSTD_LOGIC;--聲明clk是標(biāo)準(zhǔn)邏輯位類型的輸入端口clr:INSTD_LOGIC;--聲明clr是標(biāo)準(zhǔn)邏輯位類型的輸入端口Q:BUFFERSTD_LOGIC_VECTOR(7DOWNTO0));ENDjietiboqi;ARCHITECTUREjietiboOFjietiboqiIS--結(jié)構(gòu)體說(shuō)明BEGINPROCESS(clk,clr)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0);--變量定義BEGINIFclr='0'THENtmp:="00000000";--變量賦值ELSEIFclk'eventANDclk='1'THEN--clk為上升沿IFtmp="11111111"THENtmp:="00000000";ELSEtmp:=tmp+30;ENDIF;ENDIF;ENDIF;Q<=tmp;ENDPROCESS;--結(jié)束進(jìn)程ENDjietibo;4.5四選一數(shù)據(jù)選擇器的實(shí)現(xiàn)該模塊的VHDL語(yǔ)言源程序代碼如下所示:LIBRARYIEEE;--打開(kāi)庫(kù)文件USEIEEE.STD_LOGIC_1164.ALL;ENTITYselector4_1IS--實(shí)體說(shuō)明PORT(--端口說(shuō)明sel:INSTD_LOGIC_VECTOR(1DOWNTO0);D0,D1,D2,D3:INSTD_LOGIC_VECTOR(7DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDselector4_1;ARCHITECTUREoneOFselector4_1IS--結(jié)構(gòu)體說(shuō)明BEGINPROCESS(sel,D0,D1,D2,D3)BEGINCASEselISWHEN"00"=>Q<=D0;WHEN"01"=>Q<=D1;WHEN"10"=>Q<=D2;WHEN"11"=>Q<=D3;WHENothers=>Q<=null;--當(dāng)sel的值不是選擇值時(shí),Q作未知處理ENDCASE;ENDPROCESS;ENDone;4.6數(shù)模轉(zhuǎn)換器(D/A)圖4.6數(shù)模轉(zhuǎn)換器DAC0832的連接電路圖選擇一個(gè)D/A轉(zhuǎn)換器,將數(shù)據(jù)選擇器的輸出信號(hào)與D/A轉(zhuǎn)換器的輸入端相連接,D/A轉(zhuǎn)換器的可選擇范圍很寬,這里選擇常用的DAC0832,其DAC0832的連接電路如上圖4.6所示。4.7信號(hào)發(fā)生器程序流程框圖當(dāng)輸入端有時(shí)鐘信號(hào)輸入時(shí),各個(gè)信號(hào)發(fā)生器模塊獨(dú)立運(yùn)行,獨(dú)立存在,發(fā)出各種信號(hào),這些信號(hào)作為數(shù)據(jù)選擇器的輸入信號(hào),在數(shù)據(jù)選擇器的作用下,波形切換到相應(yīng)的模塊輸出,再通過(guò)數(shù)模轉(zhuǎn)換器(D/A),將通過(guò)示波器顯示出相應(yīng)的波形圖,其程序流程圖如下圖4.7所示:輸入信號(hào)各個(gè)信號(hào)發(fā)生器模塊開(kāi)始輸出信號(hào)輸入信號(hào)各個(gè)信號(hào)發(fā)生器模塊開(kāi)始輸出信號(hào)數(shù)模轉(zhuǎn)換器(D/A)四選一數(shù)據(jù)選擇器復(fù)位5、系統(tǒng)仿真通過(guò)QuartusⅡ軟件設(shè)計(jì)出各個(gè)模塊的原理圖及其相關(guān)仿真波形示意圖如下:在QuartusII的軟件環(huán)境下,通過(guò)文本方式編寫(xiě)各個(gè)信號(hào)波形模塊的VHDL語(yǔ)言源程序,且進(jìn)行仿真。接下來(lái)將各個(gè)信號(hào)波形模塊產(chǎn)生相應(yīng)的元件符號(hào),新建一個(gè)工程,加載上述模塊,利用原理圖輸入法生成整體多波形信號(hào)發(fā)生器。5.1正弦波發(fā)生器的原理圖及其仿真波形圖:正弦波信號(hào)發(fā)生器的原理圖如下圖所示:圖5.1.1正弦波信號(hào)發(fā)生器原理圖正弦波信號(hào)發(fā)生器的仿真波形圖如下圖所示:圖5.1.2正弦波信號(hào)發(fā)生器仿真波形圖Clk由0到1交替變更,clr一直處于高電平狀態(tài),Q端則由00001000到00010000并依次加000010005.2方波發(fā)生器的原理圖及其仿真波形圖:方波信號(hào)發(fā)生器的原理圖如下圖所示:圖5.2.1方波信號(hào)發(fā)生器的原理圖方波信號(hào)發(fā)生器的仿真波形圖如下圖所示:圖5.2.2方波信號(hào)發(fā)生器的仿真波形圖Clk由0到1交替變更,clr一直處于高電平狀態(tài),q端則由00000000到11111111并依次交替下去5.3三角波發(fā)生器的原理圖及其仿真波形圖:三角波信號(hào)發(fā)生器的原理圖如下圖所示:圖5.3.1三角波信號(hào)發(fā)生器的原理圖三角波信號(hào)發(fā)生器的仿真波形圖如下圖所示:圖5.3.2三角波信號(hào)發(fā)生器的仿真波形圖Clk、clr均同時(shí)由0到1交替變更Q端則由00000000到00000001并依次加00000001進(jìn)行下去5.4階梯波發(fā)生器的原理圖及其仿真波形圖階梯波信號(hào)發(fā)生器的原理圖如下圖所示:圖5.4.1階梯波信號(hào)發(fā)生器的原理圖階梯波信號(hào)發(fā)生器的仿真波形圖如下圖5.8所示:圖5.4.2階梯波信號(hào)發(fā)生器的仿真波形圖Clk由0到1交替變更,clr一直處于高電平狀態(tài),Q端從00000000開(kāi)始則高四位依次由0001每次加0010進(jìn)行下去,第四位依次由1110每次減0010進(jìn)行下去。5.54選1數(shù)據(jù)選擇器的原理圖及其仿真波形圖4選1數(shù)據(jù)選擇器的原理圖如下圖所示:圖5.5.14選1數(shù)據(jù)選擇器的原理圖4選1數(shù)據(jù)選擇器的仿真波形圖如下圖所示:圖5.5.24選1數(shù)據(jù)選擇器的仿真圖sel由00每次加01交替變更,依次選擇Q的輸出值。5.6信號(hào)發(fā)生器的原理圖及其仿真波形圖整體信號(hào)發(fā)生器的原理圖如下圖所示:圖5.6.1信號(hào)發(fā)生器原理圖整體信號(hào)發(fā)生器的仿真波形圖如下圖所示:圖5.6.2多功能信號(hào)發(fā)生器的仿真圖clk由0到1交替變更,clr一直處于高電平狀態(tài),Q端則由56每次加8依次進(jìn)行下去。6、使用說(shuō)明6.1從QuartusII軟件環(huán)境中編寫(xiě)各個(gè)相關(guān)信號(hào)模塊的VHDL語(yǔ)言源程序及生成相關(guān)模塊的元件符號(hào)名稱:sinqi:正弦波信號(hào)發(fā)生器模塊;fangboqi:

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論