多功能信號(hào)發(fā)生器的設(shè)計(jì)_第1頁
多功能信號(hào)發(fā)生器的設(shè)計(jì)_第2頁
多功能信號(hào)發(fā)生器的設(shè)計(jì)_第3頁
多功能信號(hào)發(fā)生器的設(shè)計(jì)_第4頁
多功能信號(hào)發(fā)生器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGE2目錄TOC\o"1-3"\u0引言 21設(shè)計(jì)意義 32設(shè)計(jì)說明 42.1設(shè)計(jì)任務(wù) 42.1.1設(shè)計(jì)要求 42.1.2設(shè)計(jì)目的: 43設(shè)計(jì)過程 53.1系統(tǒng)頂層框圖 53.1.1信號(hào)發(fā)生器結(jié)構(gòu)圖 53.1.2信號(hào)發(fā)生器的內(nèi)部構(gòu)成 53.1.3系統(tǒng)流程圖 63.2設(shè)計(jì)步驟 63.3系統(tǒng)設(shè)計(jì) 74代碼及仿真結(jié)果 84.1各個(gè)模塊的實(shí)現(xiàn) 84.2頂層模塊 165小結(jié)及體會(huì) 196參考文獻(xiàn) 200引言信號(hào)發(fā)生器又稱信號(hào)源或振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。它能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波)、正弦波等,在電路實(shí)驗(yàn)和設(shè)備檢測(cè)中具有十分廣泛的用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻)、視頻信號(hào)或脈沖信號(hào)運(yùn)載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的信號(hào)發(fā)生器。本設(shè)計(jì)采用FPGA來設(shè)計(jì)制作多功能信號(hào)發(fā)生器。該信號(hào)發(fā)生器可以產(chǎn)生正弦波、方波、三角波、鋸齒波等波形。圖1原理框圖在原理框圖中,正(余)弦查找表由ROM構(gòu)成,內(nèi)部存有一個(gè)完整周期正(余)弦波的數(shù)字幅度信息,每個(gè)查找表的地址對(duì)應(yīng)正(余)弦波幅度信號(hào),同時(shí)輸出到數(shù)模轉(zhuǎn)換器(DAC)輸入端,DAC輸出的模擬信號(hào)經(jīng)過低通濾波器(LPF),可以得到一個(gè)頻譜純凈的正(余)弦波。3.1.3系統(tǒng)流程圖當(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)的模塊輸出,再通過數(shù)模轉(zhuǎn)換器(D/A),將通過示波器顯示出相應(yīng)的波形圖,其程序流程圖如下圖所示:輸入信號(hào)輸入信號(hào)各個(gè)信號(hào)發(fā)生器模塊開始輸出信號(hào)數(shù)模轉(zhuǎn)換器(D/A)四選一數(shù)據(jù)選擇器復(fù)位3.2設(shè)計(jì)步驟用VHDL語言結(jié)合原理圖設(shè)計(jì)實(shí)現(xiàn)一個(gè)函數(shù)信號(hào)發(fā)生器,輸出正弦波、方波和三角波三種波形。將頻率控制、分頻、三角波、正弦波、方波發(fā)生鄧各個(gè)模塊分別用VHDL語言編程為一個(gè)子程序,并把每一個(gè)模塊轉(zhuǎn)換成圖形文件,然后在原理圖編輯框調(diào)用這些圖形模塊,連接電路如上圖系統(tǒng)頂層框圖所示。通過按鍵1到按鍵8控制頻率調(diào)節(jié)f〔7...0〕,用按鍵6、按鍵7、按鍵8控制dlt、sin、sqr波形選通,最后把八位輸出接DAC0832通過D/A轉(zhuǎn)換,從示波器上就能看到波形輸出。按下不同的按鍵輸出不同的波形及頻率。3.3系統(tǒng)設(shè)計(jì)

(1)數(shù)控分頻器模塊在時(shí)鐘的作用下,通過預(yù)置分頻數(shù)DIN,來改變輸出頻率。假如分頻系數(shù)為N,波形存儲(chǔ)模塊存儲(chǔ)一個(gè)周期的波形,實(shí)驗(yàn)里按照一個(gè)周期波形采樣64個(gè)點(diǎn)存儲(chǔ)在波形存儲(chǔ)模塊里。則輸出頻率(2)數(shù)據(jù)存儲(chǔ)模塊(存儲(chǔ)波形數(shù)據(jù))數(shù)據(jù)存儲(chǔ)模塊主要存的是正弦波、三角波、鋸齒波等一個(gè)周期的采樣點(diǎn)。三角波模塊可設(shè)計(jì)一個(gè)可逆計(jì)數(shù)器實(shí)現(xiàn),設(shè)計(jì)時(shí)設(shè)置一變量作為工作狀態(tài)標(biāo)志,在此變量為0時(shí),當(dāng)檢測(cè)到時(shí)鐘的上升沿進(jìn)行加同一個(gè)數(shù)操作;為1時(shí),進(jìn)行減同一個(gè)數(shù)操作。DA轉(zhuǎn)換采用的DA0832,輸入有8個(gè)數(shù)據(jù)端,范圍是0到255;而且設(shè)置64個(gè)時(shí)鐘周期為一個(gè)三角波周期,所有每次加、減為1。鋸齒波的存儲(chǔ)數(shù)據(jù)與三角波類似。方波可以通過交替輸出全0和全1,并給以32個(gè)周期的延時(shí)來實(shí)現(xiàn)。正弦波可以通過波形變換實(shí)現(xiàn)把變換成的形式進(jìn)行采樣,然后變換成8位二進(jìn)制碼,存儲(chǔ)在波形存儲(chǔ)器里。(3)數(shù)據(jù)選擇器模塊在波形開關(guān)的控制下,選擇相應(yīng)的波形輸出??梢杂?個(gè)按鍵來控制波形選擇4代碼及仿真結(jié)果4.1各個(gè)模塊的實(shí)現(xiàn)4.1.1數(shù)控分頻器的實(shí)現(xiàn)其VHDL代碼如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpinisport(d_mode:instd_logic_vector(3downto0);clk:instd_logic;d_out:outstd_logic);endfenpin;architecturebehavoffenpinissignalfull:std_logic;beginp_reg:process(clk)variablecnt8:std_logic_vector(3downto0);beginifclk'eventandclk='1'thenifcnt8="1111"thencnt8:=d_mode;full<='1';elsecnt8:=cnt8+1;full<='0';endif;endif;endprocessp_reg;p_div:process(full)variablecnt2:std_logic;beginiffull'eventandfull='1'thencnt2:=notcnt2;ifcnt2='1'thend_out<='1';elsed_out<='0';endif;endif;endprocessp_div;endbehav;頻率為1MHz的分頻波形圖:其生成元器件如圖2所示:圖2數(shù)控分頻器器件生成圖4.1.2方波的實(shí)現(xiàn)產(chǎn)生方波,是通過交替送出全0和全1實(shí)現(xiàn),每32個(gè)時(shí)鐘翻轉(zhuǎn)一次。其VHDL代碼如下:libraryieee;useieee.std_logic_1164.all;entitysquareisport(clk,clr:instd_logic;q:outintegerrange0to255);endsquare;architectureoneofsquareissignala:bit:='0';beginprocess(clk,clr)variablecnt:integerrange0to31;beginifclr='0'thena<='0';elsifclk'eventandclk='1'thenifcnt<31thencnt:=cnt+1;elsecnt:=0;a<=nota;endif;endif;endprocess;process(clk,a)beginifclk'eventandclk='1'thenifa='1'thenq<=255;elseq<=0;endif;endif;endprocess;endone;其仿真波形如圖3所示:圖3方波仿真圖其生成元器件如圖4所示:圖4方波元器件生成圖4.1.3三角波的實(shí)現(xiàn)該模塊產(chǎn)生的三角波以64個(gè)時(shí)鐘為一個(gè)周期,輸出q每次加減8。其VHDL代碼如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydeltaisport(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));enddelta;architecturedelta_arcofdeltaisbeginprocess(clk,reset)variabletmp:std_logic_vector(7downto0);variablea:std_logic;beginifreset='0'thentmp:="00000000";elsifclk'eventandclk='1'thenifa='0'theniftmp="11111110"thentmp:="11111111";a:='1';elsetmp:=tmp+'1';endif;elseiftmp="00000001"thentmp:="00000000";a:='0';elsetmp:=tmp-'1';endif;endif;endif;q<=tmp;endprocess;enddelta_arc;其仿真波形如圖5所示:圖5三角波仿真圖其生成元器件如圖6所示:圖6三角波元器件生成圖4.1.4該模塊產(chǎn)生以64個(gè)時(shí)鐘為一個(gè)周期的正弦波。其VHDL代碼如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysinisport(clk,clr:instd_logic;d:outintegerrange0to255);endsin;architecturesin_arcofsinisbeginprocess(clk,clr)variabletmp:integerrange0to63;beginifclr='0'thend<=0;elsifclk'eventandclk='1'theniftmp=63thentmp:=0;elsetmp:=tmp+1;endif;casetmpiswhen00=>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; endcase; endif;endprocess;endsin_arc;其仿真波形如圖7所示:圖7正弦波仿真圖其生成元器件如圖8所示:圖8正弦波元器件生成圖4.1.5鋸齒波的實(shí)現(xiàn)改變?cè)撃K遞增的常數(shù),可以改變鋸齒的個(gè)數(shù)。其VHDL代碼如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityladderisport(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));endladder;architectureladder_arcofladderisbeginprocess(clk,reset)variabletmp:std_logic_vector(7downto0);beginifreset='0'thentmp:="00000000"; elsifclk'eventandclk='1'theniftmp="11111111"thentmp:="00000000"; elsetmp:=tmp+16;--鋸齒常數(shù)為16,可修改 endif;endif;q<=tmp;endprocess;endladder_arc;其仿真波形如圖9所示:圖9鋸齒波仿真圖其生成元器件如圖10所示:圖10鋸齒波元器件生成圖4.1.6根據(jù)外部的開關(guān)狀態(tài)可以選擇輸出的波形。其VHDL代碼如下:libraryieee;useieee.std_logic_1164.all;entityselect4_1isport(sel:instd_logic_vector(1downto0);d0,d1,d2,d3:instd_logic_vector(7downto0);q:outstd_logic_vector(7downto0));endselect4_1;architectureoneofselect4_1isbeginprocess(sel)begincaseseliswhen"00"=>q<=d0; when"01"=>q<=d1; when"10"=>q<=d2; when"11"=>q<=d3;endcase;endprocess;endone;其波形仿真如圖11所示:圖11四選一信號(hào)選擇仿真圖其生成元器件如圖12所示:圖124選1信號(hào)選擇元器件生成圖4.2頂層模塊4.2.1代碼實(shí)現(xiàn)VHDL代碼如下,利用元件例化實(shí)現(xiàn):libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityliisport(d_mode:instd_logic_vector(3downto0);q:outstd_logic_vector(7downto0);clk:instd_logic;resel:outstd_logic);endli;architecturebehavofliiscomponentfenpinisport(d_mode:instd_logic_vector(3downto0);clk:instd_logic;d_out:outstd_logic);endcomponentfenpin;componentsquareisport(clk,clr:instd_logic;q:outintegerrange0to255);endcomponentsquare;componentdeltaisport(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));endcomponentdelta;componentsinisport(clk,clr:instd_logic;d:outintegerrange0to255);endcomponentsin;componentladderisport(clk,reset:instd_logic;q:outstd_logic_vector(7downto0));endcomponentladder;componentselect4_1isport(sel:instd_logic_vector(1downto0);d0,d1,d2,d3:instd_logic_vector(7downto0);q:outstd_logic_vector(7downto0));endcomponentselect4_1;signalsquare:std_logic;signaldelta:std_logic;signalsin:std_logic;signalladder:std_logic;signald0:std_logic_vector(7downto0);signald1:std_logic_vector(7downto0);signald2:std_logic_vector(7downto0);signald3:std_logic_vector(7downto0);beginwen1:fenpinportmap(d_mode=>d_mode,clk=>clk,d_out=>square,d_out=>delta,d_out=>sin,d_out=>ladder);wen2:squareportmap(clr=>resel,clk=>square,q=>d0);wen3:deltaportmap(resel=>resel,clk=>delta,q=>d1);wen4:sinportmap(clr=>resel,clk=>sin,q=>d2);wen5:ladderportmap(resel=>resel,clk=>ladder,q=>d3);wen6:select4_1portmap(sel=>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論