基于FPGA的方波信號(hào)發(fā)生器_第1頁
基于FPGA的方波信號(hào)發(fā)生器_第2頁
基于FPGA的方波信號(hào)發(fā)生器_第3頁
基于FPGA的方波信號(hào)發(fā)生器_第4頁
基于FPGA的方波信號(hào)發(fā)生器_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、EDA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告基于FPGA的方波信號(hào)發(fā)生器設(shè)計(jì)內(nèi)容: 基于FPGA的方波信號(hào)發(fā)生器 代課老師: 學(xué) 號(hào): 姓 名: 專 業(yè): 電子與通信工程 摘要:本設(shè)計(jì)是采用了EDA技術(shù)設(shè)計(jì)的方波信號(hào)發(fā)生器。實(shí)現(xiàn)是基于FPGA語言描述正弦波基波和多次諧波疊加模塊,然后在Quartus軟件上實(shí)現(xiàn)波形的編譯,仿真和下載到Cyclone芯片上。整個(gè)系統(tǒng)由正弦波產(chǎn)生模塊、數(shù)碼管顯示模塊、波形頻率控制和波形幅度控制四個(gè)部分組成。最后經(jīng)過Quartus軟件仿真,證明此次設(shè)計(jì)可以通過多次諧波疊加形成方波,并通過頻率控制和幅度控制改變方波波形。關(guān)鍵字:VHDL;Quartus;Cyclone;函數(shù)信號(hào)發(fā)生器1、Qu

2、artus II軟件簡(jiǎn)介1.1 Quartus II軟件介紹Quartus II 是Alera公司推出的一款功能強(qiáng)大,兼容性最好的EDA工具軟件。該軟件界面友好、使用便捷、功能強(qiáng)大,是一個(gè)完全集成化的可編程邏輯設(shè)計(jì)環(huán)境,具有開放性、與結(jié)構(gòu)無關(guān)、多平臺(tái)完全集成化豐富的設(shè)計(jì)庫、模塊化工具、支持多種硬件描述語言及有多種高級(jí)編程語言接口等特點(diǎn)。Quartus II是Altera公司推出的CPLD/FPGA開發(fā)工具,Quartus II提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性,包括:可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)

3、計(jì)實(shí)體文件;芯片平面布局連線編輯;功能強(qiáng)大的邏輯綜合工具;完備的電路功能仿真與時(shí)序邏輯仿真工具;定時(shí)/時(shí)序分析與關(guān)鍵路徑延時(shí)分析;可使用SignalTap II邏輯分析工具進(jìn)行嵌入式的邏輯分析;支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件;使用組合編譯方式可一次完成整體設(shè)計(jì)流程;自動(dòng)定位編譯錯(cuò)誤;高效的期間編程與驗(yàn)證工具;可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。1.2 Quartus II軟件設(shè)計(jì)流程(1) 打開Quartus II軟件。(2) 選擇路徑。注意:工作目錄名不能有中文

4、。(3) 添加設(shè)計(jì)文件。(4) 選擇FPGA器件。Family選擇Cyclone,240,8。(5) 建立原理圖或用VHDL語言描述設(shè)計(jì)電路。(6) 對(duì)原理圖或用VHDL語言進(jìn)行編譯,無誤后進(jìn)行添加信號(hào)。(7) 對(duì)上述電路進(jìn)行仿真。(8) 進(jìn)行管腳分配。(9) 全局編譯,采用JTAG或者AS模式進(jìn)行下載測(cè)試.2、系統(tǒng)設(shè)計(jì)方案采用現(xiàn)場(chǎng)可編程邏輯陣列(Field Programmable Gate Array,F(xiàn)PGA)設(shè)計(jì)DDS電路比專用DDS芯片更具靈活性。因?yàn)橹灰ㄟ^改變FPGA內(nèi)部波形存儲(chǔ)器中的波形數(shù)據(jù),就可以實(shí)現(xiàn)任意波形輸出,這使得用FPGA來實(shí)現(xiàn)DDS具有相當(dāng)大的靈活性。相比之下,F(xiàn)P

5、GA所能實(shí)現(xiàn)的功能完全取決于設(shè)計(jì)需求,可以簡(jiǎn)單也可以復(fù)雜,另外,F(xiàn)PGA芯片還支持在系統(tǒng)升級(jí),雖然在精度和速度上略有不足,但是基本上能滿足絕大數(shù)系統(tǒng)的要求,并且,將DDS設(shè)計(jì)嵌入到FPGA內(nèi)部所構(gòu)成的系統(tǒng)中,其系統(tǒng)成本并不會(huì)增加多少,而專用DDS芯片的價(jià)格一般也比FPGA高。因此,采用FPGA來設(shè)計(jì)DDS系統(tǒng)具有較高的性價(jià)比。本設(shè)計(jì)利用正弦波的基波和多次諧波合成方波,通過相關(guān)按鍵來調(diào)節(jié)方波的頻率相位和幅度,并在數(shù)碼管上顯示出來。調(diào)幅乘法器相位累加器相位累加器相位累加器正弦波數(shù)據(jù)存儲(chǔ)器5次諧波數(shù)據(jù)存儲(chǔ)器3次諧波數(shù)據(jù)存儲(chǔ)器相位累加器7次諧波數(shù)據(jù)存儲(chǔ)器D/A低通濾波頻率控制字時(shí)鐘信號(hào)波形輸出振幅控制

6、字圖12.1方波分解為多次正弦波之和的原理代表周期性方波信號(hào)的函數(shù)滿足狄利克雷條件,即方波可以表示為多次正弦波之和。如圖2所示方波信號(hào),其周期為2且正半周期負(fù)半周期是形狀全同的矩形,在區(qū)間(0,2)內(nèi)可用函數(shù)表示為: 若將展開為三角傅里葉級(jí)數(shù),即將分解為多次正弦波之和,則有式(13)、式(14)可知,在區(qū)間(0,2)內(nèi),如圖1 所示的周期為2的方波信號(hào)的, ,的值分別為: = = 圖2則在區(qū)間(0,2)內(nèi)可表示為: 即周期為2s的方波信號(hào)中含有大量的正弦波,其頻率分別為1/2,3/2,5/2,7/2其中頻率為1/2的正弦波稱為基波,其他頻率的正弦波稱為諧波。即一周期性方波,可表示為基波與無窮多

7、諧波之和。實(shí)用中進(jìn)行信號(hào)分析時(shí),不可能取無窮多次諧波之和,而只能用有限項(xiàng)來近似表示。這樣就無法避免有一誤差,如果將基波加到次諧波之和后的函數(shù)表示為,則有=+,即=-。這里采用基波和3、5、7次諧波來合成方波。2.2 DDS波形發(fā)生器產(chǎn)生正弦波直接數(shù)字頻率合成器DDS(Direct Digital Synthesizer)是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。一個(gè)直接數(shù)字頻率合成器由相位累加器、波形ROM、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成。DDS的原理框圖如圖3所示:圖3其中K為頻率控制字、fC為時(shí)鐘頻率,N為相位累加器的字長(zhǎng),D為ROM數(shù)據(jù)位及D/A轉(zhuǎn)換器的字長(zhǎng)。相位累加器在時(shí)鐘fC

8、的控制下以步長(zhǎng)K作累加,輸出N位二進(jìn)制碼作為波形ROM的地址,對(duì)波形ROM進(jìn)行尋址,波形ROM輸出的幅碼S(n)經(jīng)D/A轉(zhuǎn)換器變成階梯波S(t),再經(jīng)低通濾波器平滑后就可以得到合成的信號(hào)波形了。合成的信號(hào)波形形狀取決于波形ROM中存放的幅碼,因此用DDS可以產(chǎn)生任意波形。這里我們用DDS實(shí)現(xiàn)正弦波的合成。2.2.1頻率預(yù)置與調(diào)節(jié)電路不變量K被稱為相位增量,也叫頻率控制字。DDS方程為:f0=fCK/2N,f0為輸出頻率,fC為時(shí)鐘頻率。當(dāng)K=1時(shí),DDS輸出最低頻率(也即頻率分辨率)為fC/2N,而DDS的最大輸出頻率由Nyquist采樣定理決定,即fC/2,也就是說K的最大值為2N-1。因此

9、,只要N足夠大,DDS可以得到很細(xì)的頻率間隔。要改變DDS的輸出頻率,只要改變頻率控制字K即可。2.2.2相位累加器相位累加器是整個(gè)DDS的核心,它由一個(gè)加法器和一個(gè)寄存器構(gòu)成。加法器的一個(gè)輸入與寄存器輸出相連,另一個(gè)輸入是外部輸入的頻率控制字。這樣,在每個(gè)時(shí)鐘到達(dá)時(shí),相位寄存器采樣上個(gè)時(shí)鐘周期內(nèi)相位寄存器的值與頻率控制字之和,并作為相位累加器在這一時(shí)鐘周期的輸出。頻率控制字決定了相應(yīng)的相位增量,相位累加器則不斷地對(duì)該相位增量進(jìn)行線性累加,當(dāng)相位累加器加滿量時(shí)就會(huì)產(chǎn)生一次溢出,從而完成一個(gè)周期性的動(dòng)作,這個(gè)動(dòng)作周期即是DDS合成信號(hào)的一個(gè)頻率周期。圖42.2.3波形ROM查找表波形ROM模塊由

10、ROM:1-port宏模塊生成,其地址線的位寬為9位,數(shù)據(jù)線的位寬為8位,即一個(gè)周期的波形數(shù)據(jù)有512個(gè),每個(gè)數(shù)據(jù)占8位,其輸出可直接DAC0832。ROM中的MIF數(shù)據(jù)文件可使用Mif_Maker2010.exe軟件生成。圖52.3 按鍵控制設(shè)計(jì)按鍵的功能主要實(shí)現(xiàn)控制頻率和振幅,消除防抖動(dòng)等.其工作流程如圖6所示. 開始去抖動(dòng)延時(shí)計(jì)數(shù)器清零時(shí)鐘沿輸入低電平計(jì)數(shù)值達(dá)到20ms去抖動(dòng)延時(shí)計(jì)數(shù)器加1按鍵有效輸出是否是否圖62.4 D/A數(shù)模轉(zhuǎn)換模塊設(shè)計(jì)產(chǎn)生的數(shù)字正弦波需要經(jīng)過數(shù)模轉(zhuǎn)換成模擬輸出,這里設(shè)計(jì)出8位的D/A轉(zhuǎn)換器,相關(guān)代碼和電路如圖7所示library ieee;use ieee.std

11、_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dac0832 isport(clk :in std_logic;WR_n :out std_logic;datin:in std_logic_vector(7 downto 0);Analog_D:out std_logic_vector(7 downto 0);end dac0832;architecture rt1 of DAC0832 isbeginWR_n = 0 ;process (clk )beginif clke

12、vent and clk = 1 thenAnalog_D =datin;end if;end process ;end rt1;圖72.5數(shù)碼管顯示設(shè)計(jì)數(shù)碼管動(dòng)態(tài)掃描,通過四段數(shù)碼管對(duì)輸出波形頻率和幅度進(jìn)行調(diào)節(jié),期中數(shù)碼管的其工作流程圖如圖8所示.開始復(fù)位寄存器掃描周期計(jì)數(shù)器已滿計(jì)數(shù)器 清零,數(shù)碼管計(jì)數(shù)器加1數(shù)碼管計(jì)數(shù)器滿輸入模塊讀取數(shù)據(jù),顯示掃描計(jì)數(shù)器加1數(shù)碼管計(jì)數(shù)器清零是是否否圖83系統(tǒng)調(diào)試和實(shí)驗(yàn)結(jié)果 利用正弦波的基波和多次諧波合成方波,通過相關(guān)按鍵來調(diào)節(jié)方波的頻率和幅度,并在數(shù)碼管上顯示出來。方波經(jīng)過調(diào)幅調(diào)頻調(diào)相后的對(duì)比圖如下圖所示.原圖調(diào)頻振幅相位4.設(shè)計(jì)總結(jié)FPGA是當(dāng)前數(shù)字系統(tǒng)設(shè)

13、計(jì)領(lǐng)域比較火熱的一種工具,它可以大大縮短設(shè)計(jì)需要的時(shí)間,降低成本的同時(shí)也提高了系統(tǒng)的穩(wěn)定性。使用VHDL語言描述硬件系統(tǒng)使得FPGA技術(shù)有了更廣闊的應(yīng)用領(lǐng)域。本設(shè)計(jì)使用了基于Altera公司的FPGA系列,采用Altera公司提供的系統(tǒng)開發(fā)工具Quartus II軟件進(jìn)行了系統(tǒng)的設(shè)計(jì)和仿真。對(duì)FPGA一直都有著濃厚的興趣,借做課設(shè)的機(jī)會(huì),認(rèn)真的研究了一下這門科學(xué)。發(fā)現(xiàn)FPGA技術(shù)比我想象中的要有很大的難度。里面有很多的思想來源于信息電子技術(shù)里面的基本知識(shí),包括門電路的概念以及寄存器傳送的基本知識(shí)。VHDL語言與C語言有很大的不同,但是C語言的編程思想也可以移植到VHDL語言中,尤其是一些邏輯算法的設(shè)計(jì),需要有很強(qiáng)的C語言編程功底。學(xué)習(xí)一門知識(shí)要從最基本的體系架構(gòu)開始,倘若一開始就從頂層設(shè)計(jì)入手,就會(huì)造成很多基本原理、基本概念上的偏差,甚至?xí)涎訉W(xué)習(xí)設(shè)計(jì)的時(shí)間,事倍功半。雖然課設(shè)完成了,但是我意識(shí)到,我對(duì)FPGA技術(shù)僅僅只是停留在入門的階段,想要有更大的發(fā)展,更深入的研究,還需要更多的努力與實(shí)踐。參考文獻(xiàn)【1】潘松 黃繼業(yè). EDA技術(shù)與VHDL(第二版).北京:清華大學(xué)出版社,2005.7【2】付家才. EDA工程實(shí)踐技術(shù).北京:化學(xué)工業(yè)出

溫馨提示

  • 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)論