信號發(fā)生器實驗報告_第1頁
信號發(fā)生器實驗報告_第2頁
信號發(fā)生器實驗報告_第3頁
信號發(fā)生器實驗報告_第4頁
信號發(fā)生器實驗報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

信號發(fā)生器設(shè)計一.設(shè)計任務(wù)設(shè)計并制作一臺多功能信號發(fā)生器,電路組成框圖如下圖。波形參數(shù)顯示多功能信號發(fā)生器波形參數(shù)顯示多功能信號發(fā)生器波形參數(shù)設(shè)置矩形波輸出1信號發(fā)生器框圖根本要求制作完成一路方波信號輸出,頻率范圍100Hz~100kHz;輸出信號波形用示波器觀看無明顯失真;數(shù)碼管顯示方波的頻率;可使用按鍵調(diào)高調(diào)低輸出頻率,步進100Hz。發(fā)揮局部制作完成一路正弦波信號輸出,頻率范圍100Hz~100kHz,輸出信號波形用示波器觀看無明顯失真,數(shù)碼管顯示正弦波的頻率。制作完成一路三角波信號輸出,頻率范圍100Hz~100kHz,輸出信號波形用示波器觀看無明顯失真,數(shù)碼管顯示三角波的頻率。二.設(shè)計思考爭論題目后,我們將其分為幾塊:大致為:信號輸入模塊,信號分頻模塊,信號輸出模塊三個模塊VHDLQuartusIIFPGASmartSOPC圖一.設(shè)計流程圖FPGA中的波形發(fā)生器掌握電路,它通過外來掌握信號和高速時鐘信ROM發(fā)出地址信號,輸出波形的頻率由發(fā)出的地址信號的速度打算;當(dāng)以固定頻率掃描輸出地址時,模擬輸出波形是固定頻率,而當(dāng)以周期性時變方式掃描輸出地址時,則模擬輸出波形為掃頻信號。波形數(shù)據(jù)ROM中存有發(fā)生器的波形數(shù)據(jù),如正弦波或三角波數(shù)據(jù)。當(dāng)承受來自FPGA的地址信號后,將從數(shù)據(jù)線輸出相應(yīng)的波形數(shù)據(jù),地址變化得越快,則輸出數(shù)據(jù)的速度越快,從而使D/AFPGAROMFPGA中實現(xiàn)〔11-FPGAEAB模塊擔(dān)當(dāng),如LPM_ROM實現(xiàn)。相比之下,第1種方式的容量最大,但速度最慢23種方式則兼顧了兩方面的因素;輸出。輸出波形的頻率上限與D/A器件的轉(zhuǎn)換速度有重要關(guān)系,本例承受DAC0832器件。DAC0832是8位D/A1μsFPGA5V工作電壓相接〔有用電路應(yīng)接周密基準(zhǔn)電壓。DAC0832的引腳功能簡述如下:IL〔PIN19:數(shù)據(jù)鎖存允許信號,高電平有效,系統(tǒng)板上已直接連在+5V上。WR、WR〔PIN2、181、2,低電平有效。XFER(PIN17):數(shù)據(jù)傳送掌握信號,低電平有效。VRE〔PIN8:基準(zhǔn)電壓,可正可負(fù),-10~+10V。RF〔PIN9:反響電阻端。IOUT1/IOUT〔PIN1、1212。D/A轉(zhuǎn)換量是以電NO.5C所示的連接方式將電流信號變?yōu)殡妷盒盘?。AGND/DGN〔PIN3、10:模擬地與數(shù)字地。在高速狀況下,此二地的連接線必需盡可能短,且系統(tǒng)的單點接地點須接在此連線的某一點上。)。三.試驗過程首先依據(jù)設(shè)計原理,完成根底局部,完成波形發(fā)生器和掃頻信號源的設(shè)計,仿真測試及試驗系統(tǒng)上的硬件測試。、在QuartusII中建立一個工程工程文件.qpf,并在該工程下建VHDL源程序文件輸入源程序代碼并保存。VHDL程序文件。各模塊源程序見附錄。、編譯正確后,我們建立一個總的工程ep1c12_27_signal_generator,再在其中參加程序,對其編譯,再選擇File--create--createsymbolfileforfile48000000INPUTOUTPUT引腳。模塊如下所示:圖二.信號輸入模塊圖三.分頻模塊圖四.信號輸出模塊選擇目標(biāo)器件并對相應(yīng)的引腳進展鎖定,在這里在這里所選擇的目標(biāo)器件為Altera公司Cyclone系列的EP1C12Q240C8芯片,引腳鎖定,將未使用的管腳設(shè)置為三態(tài)輸入。引腳鎖定如以下圖所示:圖五.工程中引腳鎖定圖DAC0832+/-12V電壓。然后將試驗系統(tǒng)左下角選擇插針處用短路帽短路“D/A10”處通過短路EDAclock050MHzCLK1clock51024Hz1;KK8,當(dāng)為高電尋常,正弦波點頻輸出,11DATA321312,數(shù)值越大,輸出頻率越高FD0”時為最高頻率;鍵8clock508328DDLPM_ROMROM式自動生成,然后重復(fù)以上的測試和硬件試驗。LPM_ROM。其程序如下見附錄。、對該工程文件進展全程編譯處理,假設(shè)在編譯過程中覺察錯誤,則找出并更正錯誤,直至編譯成功為止。設(shè)計整體模塊圖如下:圖六.設(shè)計整體圖四.試驗器材五.試驗故障形。1.D/ASmartSOPC試驗箱核心模塊件電阻沒有連接2.地線連接不夠好解決:加強了地線的連接六.試驗心得附錄:信號輸入模塊源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_Arith.ALL;USEIEEE.STD_LOGIC_Unsigned.ALL;ENTITYsine_testISPORT(clock: IN STD_LOGIC; --系統(tǒng)時鐘key: IN STD_LOGIC_VECTOR(3DOWNTO0);select01:OUTSTD_LOGIC; --發(fā)送數(shù)據(jù)使能.data: OUTSTD_LOGIC_VECTOR(11DOWNTO0);--要發(fā)送的數(shù)據(jù)seg: OUTSTD_LOGIC_VECTOR(7 DOWNTO0);--數(shù)碼管段碼輸出。dig: OUTSTD_LOGIC_VECTOR(7 DOWNTO0)--數(shù)碼管位碼輸出。);END;ARCHITECTUREoneOFsine_testISSIGNALdata_r: STD_LOGIC_VECTOR(11DOWNTO0);SIGNALselect01_r:STD_LOGIC;SIGNALseg_r,dig_r:STD_LOGIC_VECTOR(7 DOWNTO0);SIGNALcount: STD_LOGIC_VECTOR(16DOWNTO0); --時鐘分頻計數(shù)器.SIGNALdout1,dout2,dout3:STD_LOGIC_VECTOR(3DOWNTO0);--消抖存放器SIGNALbuff: STD_LOGIC_VECTOR(3DOWNTO0); --邊沿檢測存放器SIGNALcnt: STD_LOGIC_VECTOR(1DOWNTO0); --數(shù)碼管掃描計數(shù)器.SIGNALdisp_dat: STD_LOGIC_VECTOR(3DOWNTO0); --數(shù)碼管掃描顯存SIGNALdiv_clk: STD_LOGIC; --分頻時鐘SIGNALkey_edge: STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(clock)--時鐘分頻局部.BEGINIF RISING_EDGE(clock) THENIFcount<120000THENcount<=count+1;div_clk<=”0”;ELSEcount<=B“0_0000_0000_0000_0000“;div_clk<=”1”;ENDIF;ENDIF;ENDPROCESS;----------------------------------<<按鍵消抖局部PROCESS(clock)BEGINIFRISING_EDGE(clock)THENIF div_clk=”1” THENdout1<=key;dout2<=dout1;dout3<=dout2;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)--按鍵邊沿檢測局部BEGINIFRISING_EDGE(clock)THENbuff<=dout1ORdout2ORdout3;ENDIF;ENDPROCESS;key_edge<=NOT(dout1ORdout2ORdout3)ANDbuff;PROCESS(clock)--1BEGINIFRISING_EDGE(clock)THENIFkey_edge(0)=”1”THEN--下降沿檢測data_r(11DOWNTO8)<=data_r(11DOWNTO8)+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)--2BEGINIFRISING_EDGE(clock)THENIFkey_edge(1)=”1”THEN--下降沿檢測data_r(7DOWNTO4)<=data_r(7DOWNTO4)+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)--3BEGINIFRISING_EDGE(clock)THENIFkey_edge(2)=”1”THEN--下降沿檢測data_r(3DOWNTO0)<=data_r(3DOWNTO0)+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)--4BEGINIFRISING_EDGE(clock)THENIFkey_edge(3)=”1”THEN--下降沿檢測select01_r<=NOTselect01_r;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)--數(shù)碼管掃描顯示局部BEGINIFRISING_EDGE(clock)THENIFdiv_clk=”1”THENcnt<=cnt+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)BEGINIFRISING_EDGE(clock)THENIFdiv_clk=”1”THENCASEcntIS --選項擇掃描顯示數(shù)據(jù).WHEN“00“=>disp_dat<=data_r(11DOWNTO8)第一個數(shù)碼管.WHEN“01“=>disp_dat<=data_r(7DOWNTO4); --其次個數(shù)碼管.WHEN“10“=>disp_dat<=data_r(3DOWNTO0); --第三個數(shù)碼管WHEN“11“=>disp_dat<=“000“&select01_r; --第八個數(shù)碼管ENDCASE;CASEcntIS --選擇數(shù)碼管顯示示位.WHEN“00“=>dig_r<= “01111111“; --選擇第一個數(shù)碼管顯示W(wǎng)HEN“01“=>dig_r<= “10111111“; --選擇其次個數(shù)碼管顯示W(wǎng)HEN“10“=>dig_r<= “11011111“; --選擇第三個數(shù)碼管顯示W(wǎng)HEN“11“=>dig_r<= “11111110“; --選擇第八個數(shù)碼管顯示ENDCASE;ENDIF;ENDIF;ENDPROCESS;PROCESS(disp_dat) --七段譯碼BEGINCASEdisp_datISWHENX“0“=>seg_r<=X“c0“;--0WHENX“1“=>seg_r<=X“f9“;--1WHENX“2“=>seg_r<=X“a4“;--2WHENX“3“=>seg_r<=X“b0“;--3WHENX“4“=>seg_r<=X“99“;--4WHENX“5“=>seg_r<=X“92“;--5WHENX“6“=>seg_r<=X“82“;--6WHENX“7“=>seg_r<=X“f8“;--7WHENX“8“=>seg_r<=X“80“;--8WHENX“9“=>seg_r<=X“90“;--9WHENX“a“=>seg_r<=X“88“;--aWHENX“b“=>seg_r<=X“83“;--bWHENX“c“=>seg_r<=X“c6“;--cWHENX“d“=>seg_r<=X“a1“;--dWHENX“e“=>seg_r<=X“86“;--eWHENX“f“=>seg_r<=X“8e“;--fWHEN OTHERS=>seg_r<=X“FF“;ENDCASE;ENDPROCESS;seg<=seg_r;dig<=dig_r;select01<=select01_r;data<=data_r;END;分頻模塊源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;--3VHDL程序設(shè)計USEIEEE.STD_LOGIC_Arith.ALL;USEIEEE.STD_LOGIC_Unsigned.ALL;ENTITYint_divISGENERIC(N:Integer:=3);--N=33分頻電路;Port(Clockin:INSTD_LOGIC;ClockOut:OUTSTD_LOGIC);END;ARCHITECTUREDeviderOFint_divISSIGNALCounter:IntegerRANGE0TON-1;SIGNALTemp1,Temp2:STD_LOGIC; --信號的聲明在構(gòu)造體內(nèi),進程外部BEGINPROCESS(Clockin)BEGINIFRISING_EDGE(Clockin)THENIFCounter=N-1THENcounter<=0;Temp1<=NotTemp1;ELSECounter<=Counter+1;ENDIF;ENDIF;IFfalling_edge(clockin) THENIFCounter=N/2THENTemp2<=NOTTemp2;ENDIF;ENDIF;ENDPROCESS;ClockOut<=Temp1XORTemp2;END;信號輸出模塊源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_Arith.ALL;USEIEEE.STD_LOGIC_Unsigned.ALL;ENTITYsineISPORT(clock: IN STD_LOGIC; --系統(tǒng)時鐘swept_clk: IN STD_LOGIC; --掃描時鐘select01:IN STD_LOGIC; --攻能選擇,波形產(chǎn)生&掃頻.data: IN STD_LOGIC_VECTOR(11DOWNTO0);--頻率掌握.dout: OUTSTD_LOGIC_VECTOR(9 DOWNTO0);--數(shù)據(jù)輸出.da_clk: OUTSTD_LOGIC; --DA時鐘輸出da_mode: OUTSTD_LOGIC --D/A數(shù)據(jù)模式選擇.);END;ARCHITECTUREoneOFsineISCOMPONENTsin_rom --元器件調(diào)用聲明.PORT(address :INSTD_LOGIC_VECTOR(7DOWNTO0);clock :INSTD_LOGIC;q :OUTSTD_LOGIC_VECTOR(9DOWNTO0));ENDCOMPONENT;SIGNALload_count: STD_LOGIC_VECTOR(11DOWNTO0);--數(shù)控分頻器重裝值SIGNALscan_data:STD_LOGIC_VECTOR(11DOWNTO0);--掃頻掌握值SIGNALcount: STD_LOGIC_VECTOR(11DOWNTO0);--數(shù)控分頻計數(shù)器SIGNALrom_clk: STD_LOGIC; --ROM波表時鐘SIGNALaddr: STD_LOGIC_VECTOR(7 DOWNTO0);--ROM地址.BEGINPROCESS(clock)BEGINIFRISING_EDGE(clock) THEN --選擇數(shù)控分頻器初值.IFselect01=”1”THENload_count<=data; --由外部輸入.ELSE

load_count<=scan_data;--由內(nèi)部掃頻產(chǎn)生.ENDIF;ENDIF;ENDPROCESS;PROCESS(clock) --數(shù)控分頻器.BEGINIFRISING_EDGE(clock) THENIF count=X“FFF“THENcount<=load_count;rom_clk<=”1”;ELSEcount<=count+1;rom_clk<=”0”;ENDIF;ENDIF;ENDPROCESS;PROCESS(clock)BEGINIFRISING_EDGE(clock) THEN--ROM地址.IFrom_clk=”1”THENaddr<=addr+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(swept_clk)BEGINIFRISING_EDGE(swept_clk) THENscan_data<=scan_data+1;ENDIF;ENDPROCESS;U1:sin_romPORTMAP(address=>addr,clock=>rom_clk,q=>dout);da_clk<=rom_clk; --D/A時鐘輸出.da_mode<=”0”; --D/A數(shù)據(jù)模式選擇以二進制輸入.END;LPM_ROM模塊源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDACISPORT(CLK,CLK1,KK:INSTD_LOGIC;DATA :INSTD_LOGIC_VECTOR(11DOWNTO0);DD:OUTINTEGERRANGE255DOWNTO0 );END;ARCHITECTUREDACCOFDACISSIGNALQ :INTEGERRANGE63DOWNTO0;SIGNALD :INTEGERRANGE255DOWNTO0;SIGNALFSS :STD_LOGIC ;SIGNALCOUNT12,DATA2,DATA1:STD_LOGIC_VECTOR(11DOWNTO0);BEGINPROCESS(FSS)BEGINIF(FSS”EVENTANDFSS=”1”)THEN Q<=Q+1;ENDIF;ENDPROCESS;PROCESS(Q)BEGINCASEQISWHEN00=>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=>

溫馨提示

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

評論

0/150

提交評論