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

下載本文檔

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

文檔簡介

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

(1)數(shù)控分頻器模塊在時鐘的作用下,通過預(yù)置分頻數(shù)DIN,來改變輸出頻率。假如分頻系數(shù)為N,波形存儲模塊存儲一個周期的波形,實驗里按照一個周期波形采樣64個點存儲在波形存儲模塊里。則輸出頻率(2)數(shù)據(jù)存儲模塊(存儲波形數(shù)據(jù))數(shù)據(jù)存儲模塊主要存的是正弦波、三角波、鋸齒波等一個周期的采樣點。三角波模塊可設(shè)計一個可逆計數(shù)器實現(xiàn),設(shè)計時設(shè)置一變量作為工作狀態(tài)標志,在此變量為0時,當檢測到時鐘的上升沿進行加同一個數(shù)操作;為1時,進行減同一個數(shù)操作。DA轉(zhuǎn)換采用的DA0832,輸入有8個數(shù)據(jù)端,范圍是0到255;而且設(shè)置64個時鐘周期為一個三角波周期,所有每次加、減為1。鋸齒波的存儲數(shù)據(jù)與三角波類似。方波可以通過交替輸出全0和全1,并給以32個周期的延時來實現(xiàn)。正弦波可以通過波形變換實現(xiàn)把變換成的形式進行采樣,然后變換成8位二進制碼,存儲在波形存儲器里。(3)數(shù)據(jù)選擇器模塊在波形開關(guān)的控制下,選擇相應(yīng)的波形輸出??梢杂?個按鍵來控制波形選擇4代碼及仿真結(jié)果4.1各個模塊的實現(xiàn)4.1.1數(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方波的實現(xiàn)產(chǎn)生方波,是通過交替送出全0和全1實現(xiàn),每32個時鐘翻轉(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三角波的實現(xiàn)該模塊產(chǎn)生的三角波以64個時鐘為一個周期,輸出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個時鐘為一個周期的正弦波。其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鋸齒波的實現(xiàn)改變該模塊遞增的常數(shù),可以改變鋸齒的個數(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四選一信號選擇仿真圖其生成元器件如圖12所示:圖124選1信號選擇元器件生成圖4.2頂層模塊4.2.1代碼實現(xiàn)VHDL代碼如下,利用元件例化實現(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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論