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

下載本文檔

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

文檔簡介

1、多功能信號發(fā)生器的設(shè)計目 錄0 引言 .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 參考文獻 .2020 引言引言信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用。它能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波) 、正弦波等

2、,在電路實驗和設(shè)備檢測中具有十分廣泛的用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻) 、視頻信號或脈沖信號運載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的信號發(fā)生器。本設(shè)計采用 fpga 來設(shè)計制作多功能信號發(fā)生器。該信號發(fā)生器可以產(chǎn)生正弦波、方波、三角波、鋸齒波等波形。 31 設(shè)計意義設(shè)計意義本次課設(shè)要求設(shè)計一個函數(shù)信號發(fā)生器。它能產(chǎn)生四種波形:正弦波、方波、三角波、鋸齒波。同時能在不同的頻率下顯示。這次設(shè)計主要是練習(xí)了分頻電路的設(shè)計

3、,rom 的設(shè)計,計數(shù)器的設(shè)計、選擇電路的設(shè)計和數(shù)碼顯示的設(shè)計。加強了對 when 語句,if 語句等語句的理解。拓展了對 vhdl 語言的應(yīng)用。平時練習(xí)與考試都是設(shè)計一個簡單的電路,本次課設(shè)綜合了好幾個電路的設(shè)計。同時我也增強了對分模塊設(shè)計電路的應(yīng)用。對我以后的電路設(shè)計生涯都是有所幫助的!函數(shù)信號發(fā)生器是應(yīng)用了 vhdl 語言,通過數(shù)模轉(zhuǎn)換來顯示波形,實現(xiàn)了數(shù)模轉(zhuǎn)換的應(yīng)用。在工作中,我們常常會用到信號發(fā)生器,它是使用頻度很高的電子儀器。信號發(fā)生器是指產(chǎn)生所需參數(shù)的電測試信號的儀器。按信號波形可分為正弦信號、函數(shù)(波形)信號、脈沖信號和隨機信號發(fā)生器等四大類。信號發(fā)生器又稱信號源或振蕩器,在生

4、產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用。各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、矩形波(含方波) 、正弦波的電路被稱為函數(shù)信號發(fā)生器。信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用。凡是產(chǎn)生測試信號的儀器,統(tǒng)稱為信號源,也稱為信號發(fā)生器,它用于產(chǎn)生被測電路所需特定參數(shù)的電測試信號。信號源主要給被測電路提供所需要的已知信號(各種波形) ,然后用其它儀表測量感興趣的參數(shù)??梢娦盘栐丛陔娮訉嶒灪蜏y試處理中,并不測量任何參數(shù),而是根據(jù)使用者的要求,仿真各種測試信號,提供給被測電路,以達到測試的需要。它能夠產(chǎn)生多種波形,如三角波、矩形波(含方波) 、正

5、弦波等,在電路實驗和設(shè)備檢測中具有十分廣泛的用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻) 、視頻信號或脈沖信號運載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的信號發(fā)生器。 本設(shè)計采用 eda 來設(shè)計制作多功能信號發(fā)生器。該信號發(fā)生器可以產(chǎn)生正弦波、方波、三角波、鋸齒波等波形。42設(shè)計說明設(shè)計說明2.12.1 設(shè)計任務(wù)設(shè)計任務(wù)2.1.12.1.1 設(shè)計要求設(shè)計要求:基于vhdl 語言 ,通過給定的儀器(eda6000 試驗箱)設(shè)計一個多

6、功能信號發(fā)生器, (1)能產(chǎn)生周期性正弦波、方波、三角波、鋸齒波以及用戶自己編輯的特定波形;(2)輸出信號的頻率范圍為 100hz200khz,且輸出頻率可以調(diào)節(jié);(3)具有顯示輸出波形、頻率的功能。2.1.22.1.2 設(shè)計目的:設(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è)計方法進行進一步的學(xué)習(xí),

7、對其相關(guān)語言設(shè)計規(guī)范進行更深層次的掌握,能夠更加熟練的做一些編程設(shè)計。53 設(shè)計過程設(shè)計過程3.13.1 系統(tǒng)頂層框圖系統(tǒng)頂層框圖 3.1.13.1.1 信號發(fā)生器結(jié)構(gòu)圖信號發(fā)生器結(jié)構(gòu)圖由于 fpga/cpld 只能直接輸出數(shù)字信號,而多功能信號發(fā)生器輸出的各種波形均為模擬信號,因此設(shè)計信號發(fā)生器時,需將 fpga/cpld 輸出的信號通過 d/a 轉(zhuǎn)換電路將數(shù)字信號轉(zhuǎn)換成模擬信號。多功能信號發(fā)生器可由信號產(chǎn)生電路,波形選擇電路和 d/a 轉(zhuǎn)換電路構(gòu)成,如下圖所示: 時鐘信號信號產(chǎn)生電路波形選擇電路d/a 轉(zhuǎn)換波形輸出選擇信號3.1.23.1.2 信號發(fā)生器的內(nèi)部構(gòu)成信號發(fā)生器的內(nèi)部構(gòu)成數(shù)控分

8、頻器三角波波形數(shù)據(jù)正弦波波形數(shù)據(jù)方波波形數(shù)據(jù)任意波形數(shù)據(jù)數(shù)據(jù)選擇器波形選擇關(guān)時鐘預(yù)置分頻數(shù)(0-255)復(fù)位信號8 位數(shù)據(jù)outf6圖 1 原理框圖在原理框圖中,正(余)弦查找表由 rom 構(gòu)成,內(nèi)部存有一個完整周期正(余)弦波的數(shù)字幅度信息,每個查找表的地址對應(yīng)正(余)弦波幅度信號,同時輸出到數(shù)模轉(zhuǎn)換器(dac)輸入端,dac 輸出的模擬信號經(jīng)過低通濾波器(lpf) ,可以得到一個頻譜純凈的正(余)弦波。3.1.33.1.3 系統(tǒng)流程圖系統(tǒng)流程圖 當輸入端有時鐘信號輸入時,各個信號發(fā)生器模塊獨立運行,獨立存在,發(fā)出各種信號,這些信號作為數(shù)據(jù)選擇器的輸入信號,在數(shù)據(jù)選擇器的作用下,波形切換到相

9、應(yīng)的模塊輸出,再通過數(shù)模轉(zhuǎn)換器(d/a) ,將通過示波器顯示出相應(yīng)的波形圖,其程序流程圖如下圖所示:輸入信號各個信號發(fā)生器模塊開始輸出信號數(shù)模轉(zhuǎn)換器(d/a)四選一數(shù)據(jù)選擇器復(fù)位3.23.2 設(shè)計步驟設(shè)計步驟 用 vhdl 語言結(jié)合原理圖設(shè)計實現(xiàn)一個函數(shù)信號發(fā)生器,輸出正弦波、方波和三角波三種波形。將頻率控制、分頻、三角波、正弦波、方波發(fā)生鄧各個模塊分別用 vhdl 語言編程為一個子程序,并把每一個模塊轉(zhuǎn)換成圖形文件,然后在原理圖編輯框調(diào)用這些圖形模塊,連接電路如上圖系統(tǒng)頂層框圖所示。通過按鍵 1 到按鍵 8 控制頻率調(diào)節(jié) f7.0,用按鍵 6、按鍵 7、按鍵 8 控制dlt、sin、sqr

10、波形選通,最后把八位輸出接 dac0832 通過 d/a 轉(zhuǎn)換,從示波器上就能看到波形輸出。按下不同的按鍵輸出不同的波形及頻率。73.33.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計 (1)數(shù)控分頻器模塊在時鐘的作用下,通過預(yù)置分頻數(shù) din,來改變輸出頻率。假如分頻系數(shù)為 n,波形存儲模塊存儲一個周期的波形,實驗里按照一個周期波形采樣 64 個點存儲在波形存儲模塊里。則輸出頻率nffclkout.64(2)數(shù)據(jù)存儲模塊 (存儲波形數(shù)據(jù))數(shù)據(jù)存儲模塊主要存的是正弦波、三角波、鋸齒波等一個周期的采樣點。三角波模塊可設(shè)計一個可逆計數(shù)器實現(xiàn),設(shè)計時設(shè)置一變量作為工作狀態(tài)標志,在此變量為 0時,當檢測到時鐘的上升沿進行加同

11、一個數(shù)操作;為 1 時,進行減同一個數(shù)操作。da 轉(zhuǎn)換采用的da0832,輸入有 8 個數(shù)據(jù)端,范圍是 0 到 255;而且設(shè)置 64 個時鐘周期為一個三角波周期,所有每次加、減為 1。鋸齒波的存儲數(shù)據(jù)與三角波類似。方波可以通過交替輸出全 0 和全 1,并給以 32 個周期的延時來實現(xiàn)。正弦波可以通過波形變換實現(xiàn)把asin 變換成5.127*)1(cosa的形式進行采樣,然后變換成8 位二進制碼,存儲在波形存儲器里。(3)數(shù)據(jù)選擇器模塊在波形開關(guān)的控制下,選擇相應(yīng)的波形輸出。可以用 3 個按鍵來控制波形選擇84 代碼及仿真結(jié)果代碼及仿真結(jié)果4.14.1 各個模塊的實現(xiàn)各個模塊的實現(xiàn)4.1.14

12、.1.1 數(shù)控分頻器的實現(xiàn)數(shù)控分頻器的實現(xiàn)其 vhdl 代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin is port(d_mode:in std_logic_vector(3 downto 0); clk:in std_logic; d_out:out std_logic);end fenpin;architecture behav of fenpin is signal full:std_logic; begin p_reg: process(clk) v

13、ariable cnt8:std_logic_vector(3 downto 0); begin if clkevent and clk=1 then if cnt8=1111 then cnt8:=d_mode; full=1; else cnt8:=cnt8+1; full=0; end if; end if; end process p_reg;p_div:process(full) variable cnt2:std_logic; begin if fullevent and full=1 then cnt2:=not cnt2; if cnt2=1 then d_out=1 ; el

14、se d_out=0; end if; end if;end process p_div;end behav; 頻率為 1mhz 的分頻波形圖:9 其生成元器件如圖 2 所示:圖 2 數(shù)控分頻器器件生成圖4.1.24.1.2 方波的實現(xiàn)方波的實現(xiàn)產(chǎn)生方波,是通過交替送出全 0 和全 1 實現(xiàn),每 32 個時鐘翻轉(zhuǎn)一次。其 vhdl 代碼如下:library ieee;use ieee.std_logic_1164.all;entity square is port(clk,clr:in std_logic; q:out integer range 0 to 255); end square;a

15、rchitecture one of square issignal a:bit:=0; begin process(clk,clr) variable cnt:integer range 0 to 31; begin if clr=0 then a=0; elsif clkevent and clk=1 then if cnt31 then cnt:=cnt+1; else cnt:=0; a=not a; end if; end if; end process; process(clk,a) begin if clkevent and clk=1 then10 if a=1 then q=

16、255; else q=0; end if; end if; end process;end one;其仿真波形如圖 3 所示:圖 3 方波仿真圖其生成元器件如圖 4 所示:圖 4 方波元器件生成圖4.1.34.1.3 三角波的實現(xiàn)三角波的實現(xiàn)該模塊產(chǎn)生的三角波以 64 個時鐘為一個周期,輸出 q 每次加減 8。其 vhdl 代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity delta is port(clk,reset:in std_logic; q:out std_log

17、ic_vector(7 downto 0); end delta;architecture delta_arc of delta isbegin11 process(clk,reset) variable tmp:std_logic_vector(7 downto 0); variable a:std_logic; begin if reset=0 then tmp:=00000000; elsif clkevent and clk=1 then if a=0 then if tmp=11111110 then tmp:=11111111; a:=1; else tmp:=tmp+1; end

18、 if; else if tmp=00000001 then tmp:=00000000; a:=0; else tmp:=tmp-1; end if; end if; end if; q=tmp; end process;end delta_arc;其仿真波形如圖 5 所示:圖 5 三角波仿真圖其生成元器件如圖 6 所示:12圖 6 三角波元器件生成圖4.1.44.1.4 正弦波的實現(xiàn)正弦波的實現(xiàn)該模塊產(chǎn)生以 64 個時鐘為一個周期的正弦波。其 vhdl 代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsi

19、gned.all;entity sin is port(clk,clr:in std_logic; d:out integer range 0 to 255);end sin;architecture sin_arc of sin isbegin process(clk,clr) variable tmp:integer range 0 to 63; begin if clr=0 then dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull; end case; end if; end process;en

20、d sin_arc;其仿真波形如圖 7 所示:圖 7 正弦波仿真圖其生成元器件如圖 8 所示:圖 8 正弦波元器件生成圖4.1.54.1.5 鋸齒波的實現(xiàn)鋸齒波的實現(xiàn)改變該模塊遞增的常數(shù),可以改變鋸齒的個數(shù)。其 vhdl 代碼如下:library ieee;use ieee.std_logic_1164.all;14use ieee.std_logic_unsigned.all;entity ladder is port(clk,reset:in std_logic; q:out std_logic_vector(7 downto 0);end ladder;architecture ladd

21、er_arc of ladder isbegin process(clk,reset) variable tmp:std_logic_vector(7 downto 0); begin if reset=0 then tmp:=00000000;elsif clkevent and clk=1 then if tmp=11111111 then tmp:=00000000; else tmp:=tmp+16; -鋸齒常數(shù)為 16,可修改 end if; end if; qqqqqd_mode,clk=clk, d_out=square,d_out= delta, d_out= sin, d_o

22、ut= ladder);wen2: square port map(clr=resel,clk= square, q= d0);wen3: delta port map(resel =resel,clk= delta, q= d1);wen4: sin port map(clr=resel,clk= sin, q= d2);wen5: ladder port map(resel =resel,clk= ladder, q= d3);wen6: select4_1 port map(sel = sel, d0= d0, d1= d1, d2= d2,d3=d3,q=q);end behav;4.2.24.2.2 生成整體生成整體 rtlrtl:新建一工程,加載上述模塊,利用頂層模塊法生成整體多波形信號發(fā)生器。整體 rtl 圖如圖 13所示:圖 13 整體多波形信號發(fā)生器 rtl 圖184.2.34.2.3 整體仿真圖整體仿真圖整體多波形信號發(fā)生器仿真如圖 14 所示:圖 14 整體多波形信號發(fā)生器仿真圖其中,d_mod

溫馨提示

  • 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

提交評論