多功能信號發(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 引言 .2 1 設(shè)計意義 .3 2 設(shè)計說明 .4 2.1 設(shè)計任務(wù) .4 2.1.1 設(shè)計要求.4 2.1.2 設(shè)計目的: .4 3 設(shè)計過程 .5 3.1 系統(tǒng)頂層框圖 .5 3.1.1 信號發(fā)生器結(jié)構(gòu)圖.5 3.1.2 信號發(fā)生器的內(nèi)部構(gòu)成.5 3.1.3 系統(tǒng)流程圖.6 3.2 設(shè)計步驟 .6 3.3 系統(tǒng)設(shè)計 .7 4 代碼及仿真結(jié)果 .8 4.1 各個模塊的實現(xiàn) .8 4.2 頂層模塊 .16 5 小結(jié)及體會 .19 6 參考文獻 .20 2 0 引言引言 信號發(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)生正弦波、方波、三角波、 鋸齒波等波形。 3 1 設(shè)計意義設(shè)計意義 本次課設(shè)要求設(shè)計一個函數(shù)信號發(fā)生器。它能產(chǎn)生四種波形:正弦波、方波、三角波、鋸齒波

3、。 同時能在不同的頻率下顯示。這次設(shè)計主要是練習(xí)了分頻電路的設(shè)計,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ù)(波

4、形)信號、脈沖信號和隨機 信號發(fā)生器等四大類。信號發(fā)生器又稱信號源或振蕩器,在生產(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ù)???見信號源在電子實驗和測試處理中,并不測量任何參數(shù),而是根據(jù)使用者的要求,仿真各種測試

5、信 號,提供給被測電路,以達到測試的需要。它能夠產(chǎn)生多種波形,如三角波、矩形波(含方波) 、正 弦波等,在電路實驗和設(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)生正弦波、方波、三角波、鋸齒波等波形。 4 2設(shè)計說明設(shè)計說明 2.12.1 設(shè)計任務(wù)設(shè)計任務(wù)

6、2.1.12.1.1 設(shè)計要求設(shè)計要求: 基于vhdl 語言 ,通過給定的儀器(eda6000 試驗箱)設(shè)計一個多功能信號發(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è)

7、計,同時掌 握使用這兩種方式相結(jié)合的 eda 設(shè)計思路。 3) 通過這一部分的學(xué)習(xí),對 vhdl 語言的設(shè)計方法進行進一步的學(xué)習(xí),對其相關(guān)語言設(shè)計規(guī)范 進行更深層次的掌握,能夠更加熟練的做一些編程設(shè)計。 5 3 設(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)成

8、,如下圖所示: 時鐘信號信號產(chǎn)生電路波形選擇電路d/a 轉(zhuǎn)換 波形輸出 選擇信號 3.1.23.1.2 信號發(fā)生器的內(nèi)部構(gòu)成信號發(fā)生器的內(nèi)部構(gòu)成 數(shù)控分頻 器 三角波 波形數(shù) 據(jù) 正弦波 波形數(shù) 據(jù) 方波波 形數(shù)據(jù) 任意波 形數(shù)據(jù) 數(shù)據(jù)選擇器 波形選擇關(guān) 時鐘 預(yù)置分 頻數(shù) (0- 255) 復(fù)位信號 8 位數(shù)據(jù) out f 6 圖 1 原理框圖 在原理框圖中,正(余)弦查找表由 rom 構(gòu)成,內(nèi)部存有一個完整周期正(余)弦波的數(shù)字幅 度信息,每個查找表的地址對應(yīng)正(余)弦波幅度信號,同時輸出到數(shù)模轉(zhuǎn)換器(dac)輸入端, dac 輸出的模擬信號經(jīng)過低通濾波器(lpf) ,可以得到一個頻譜純凈

9、的正(余)弦波。 3.1.33.1.3 系統(tǒng)流程圖系統(tǒng)流程圖 當(dāng)輸入端有時鐘信號輸入時,各個信號發(fā)生器模塊獨立運行,獨立存在,發(fā)出各種信號,這些 信號作為數(shù)據(jù)選擇器的輸入信號,在數(shù)據(jù)選擇器的作用下,波形切換到相應(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

10、 語言編程為一個子程序,并 把每一個模塊轉(zhuǎn)換成圖形文件,然后在原理圖編輯框調(diào)用這些圖形模塊,連接電路如上圖系統(tǒng)頂層框 圖所示。通過按鍵 1 到按鍵 8 控制頻率調(diào)節(jié) f7.0,用按鍵 6、按鍵 7、按鍵 8 控制 dlt、sin、sqr 波形選通,最后把八位輸出接 dac0832 通過 d/a 轉(zhuǎn)換,從示波器上就能看到波形輸出。 按下不同的按鍵輸出不同的波形及頻率。 7 3.33.3 系統(tǒng)設(shè)計系統(tǒng)設(shè)計 (1)數(shù)控分頻器模塊 在時鐘的作用下,通過預(yù)置分頻數(shù) din,來改變輸出頻率。假如分頻系數(shù)為 n,波形存儲模塊存 儲一個周期的波形,實驗里按照一個周期波形采樣 64 個點存儲在波形存儲模塊里。則

11、輸出頻率 n f f clk out .64 (2)數(shù)據(jù)存儲模塊 (存儲波形數(shù)據(jù)) 數(shù)據(jù)存儲模塊主要存的是正弦波、三角波、鋸齒波等一個周期的采樣點。 三角波模塊可設(shè)計一個可逆計數(shù)器實現(xiàn),設(shè)計時設(shè)置一變量作為工作狀態(tài)標志,在此變量為 0 時,當(dāng)檢測到時鐘的上升沿進行加同一個數(shù)操作;為 1 時,進行減同一個數(shù)操作。da 轉(zhuǎn)換采用的 da0832,輸入有 8 個數(shù)據(jù)端,范圍是 0 到 255;而且設(shè)置 64 個時鐘周期為一個三角波周期,所有每 次加、減為 1。 鋸齒波的存儲數(shù)據(jù)與三角波類似。 方波可以通過交替輸出全 0 和全 1,并給以 32 個周期的延時來實現(xiàn)。 正弦波可以通過波形變換實現(xiàn)把 as

12、in 變換成 5.127*)1(cosa 的形式進行采樣,然后變換成 8 位二進制碼,存儲在波形存儲器里。 (3)數(shù)據(jù)選擇器模塊 在波形開關(guān)的控制下,選擇相應(yīng)的波形輸出??梢杂?3 個按鍵來控制波形選擇 8 4 代碼及仿真結(jié)果代碼及仿真結(jié)果 4.14.1 各個模塊的實現(xiàn)各個模塊的實現(xiàn) 4.1.14.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_logi

13、c_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) variable 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; e

14、nd 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 ; else 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)生方波,是通過交替送出全

15、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; architecture one of square is signal a:bit:=0; begin process(clk,clr) variable cnt:integer range 0 to 31; begin if clr=0 then a=0; els

16、if 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 then 10 if a=1 then q=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) 該

17、模塊產(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_logic_vector(7 downto 0); end delta; architecture delta_arc of delta is begin 11 process(clk,reset) variable tmp:std_logic

18、_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 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

19、 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_unsigned.all; entity sin is port(clk,clr:in std_logic; d:out integer range 0 to 255); end sin; architecture s

20、in_arc of sin is begin process(clk,clr) variable tmp:integer range 0 to 63; begin if clr=0 then dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull; end case; end if; end process; end sin_arc; 其仿真波形如圖 7 所示: 圖 7 正弦波仿真圖 其生成元器件如圖 8 所示: 圖 8 正弦波元器件生成圖 4.1.54.1.5 鋸齒波的實現(xiàn)鋸齒波的實現(xiàn) 改變該模塊遞增的常數(shù),

21、可以改變鋸齒的個數(shù)。其 vhdl 代碼如下: library ieee; use ieee.std_logic_1164.all; 14 use 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 ladder_arc of ladder is begin process(clk,reset) variable tmp:std_logic_vector(7 downto 0);

22、 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_out= ladder); wen2: square port map(clr=resel,clk= square, q= d0); wen3: delta port ma

23、p(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 圖 18 4.2.34.2.3 整體仿真圖整體仿真圖 整體多波形信號發(fā)生器仿真如圖 14 所示: 圖 14 整體多波形信號發(fā)生器仿真圖 其中,d

溫馨提示

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

最新文檔

評論

0/150

提交評論