通信工程畢業(yè)設(shè)計(jì)(論文)基于FPGA的多功能波形發(fā)生器的設(shè)計(jì)_第1頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于FPGA的多功能波形發(fā)生器的設(shè)計(jì)_第2頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于FPGA的多功能波形發(fā)生器的設(shè)計(jì)_第3頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于FPGA的多功能波形發(fā)生器的設(shè)計(jì)_第4頁
通信工程畢業(yè)設(shè)計(jì)(論文)基于FPGA的多功能波形發(fā)生器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(jì)說明書基于fpga多功能波形發(fā)生器的設(shè)計(jì)學(xué)生姓名: 學(xué)號(hào):_通信工程信息與通信工程學(xué)院學(xué) 院:_專 業(yè):_指導(dǎo)教師:_2012年 6 月基于fpga的多功能波形發(fā)生器的設(shè)計(jì)摘 要數(shù)字信號(hào)發(fā)生器是數(shù)字信號(hào)處理中不可缺少的調(diào)試設(shè)備,在生產(chǎn)生活中的應(yīng)用非常廣泛。本文所設(shè)計(jì)的內(nèi)容就是基于fpga實(shí)現(xiàn)數(shù)字信號(hào)發(fā)生器的設(shè)計(jì),fpga具有密度高,功耗低,體積小,可靠性高等特點(diǎn),設(shè)計(jì)時(shí)可以不必過多考慮具體硬件連接;本設(shè)計(jì)中應(yīng)用vhdl硬件描述語言進(jìn)行描述,使該數(shù)字信號(hào)發(fā)生器可以產(chǎn)生正弦波、方波、三角波、三個(gè)獨(dú)立的波形,并能對(duì)所產(chǎn)生的三種波形的頻率和幅度進(jìn)行調(diào)節(jié)。關(guān)鍵詞:直接數(shù)字頻率合成;數(shù)字波形發(fā)生器

2、;fpga;dds;vhdldesign of fpga-based digital signal generatorabstractdigital signal transmitter as a test facility is an important part of information processing system. in the production of a wide range of application of life. this content is designed by altera, based on fpga design of digital signal

3、 generator, fpga has a high density, low power consumption, small size, high reliability, cannot have too much to consider wher designing specific hardware connection; the design of the application of vhdl hardware description language to describe, so that the digital signal generator can produce si

4、ne, square, triangle, sawtooth waveforms of three independent,and is able to produce four waveforms by the frequency and amplitude adjustment.key words:direct digital frequency synthesis;digital waveform generator; fpga;dds;vhdl目 錄1. 緒論11.1 背景與意義11.2 國內(nèi)外發(fā)展現(xiàn)狀12. 設(shè)計(jì)簡介12.1 dds技術(shù)12.2 fpga簡介22.3 vhdl簡介42

5、.4 quartus簡介63. 系統(tǒng)硬件電路設(shè)計(jì)83.1 數(shù)字信號(hào)發(fā)生器的系統(tǒng)組成83.2 設(shè)計(jì)原理及要求83.3 輸入部分93.3.1頻率、幅值和波形轉(zhuǎn)換部分93.3.2系統(tǒng)時(shí)鐘電路113.3.3 電源電路的設(shè)計(jì)113.4 fpga部分123.5 d/a轉(zhuǎn)換部分133.5.1 dac0832轉(zhuǎn)換器簡介143.6濾波電路154. 系統(tǒng)軟件設(shè)計(jì)164.1軟件系統(tǒng)流程圖164.2主要函數(shù)語句分析164.3 數(shù)字信號(hào)發(fā)生器的軟件設(shè)計(jì)184.4軟件各模塊194.4.1波形發(fā)生器194.4.2 主控制模塊204.4.3 波形數(shù)據(jù)產(chǎn)生模塊204.4.4波形產(chǎn)生模塊235. 設(shè)計(jì)總結(jié)25附 錄26參考文獻(xiàn)3

6、56. 致謝辭361緒論1.1 背景與意義在電子技術(shù)領(lǐng)域,常常需要波形、頻率、幅度都可調(diào)的電信號(hào),用于產(chǎn)生這種電信號(hào)的電子儀器稱作信號(hào)發(fā)生器。信號(hào)發(fā)生器是一種常用的信號(hào)源,廣泛運(yùn)用于科學(xué)研究、生產(chǎn)實(shí)踐和教學(xué)試驗(yàn)等領(lǐng)域。特別是在通信系統(tǒng)的科研實(shí)驗(yàn)中,常常需要用到不同頻率和幅度的信號(hào),如正弦波、三角波、方波和鋸齒波等。作為一種為電子測(cè)量和計(jì)量提供電信號(hào)的設(shè)備,它和萬用表、示波器、頻率計(jì)等儀器一樣,是最普通、最基本,也是運(yùn)用最廣泛的電子儀器之一,幾乎所有電參量的測(cè)量都需要用到信號(hào)發(fā)生器。傳統(tǒng)的波形發(fā)生器多采用模擬分立元件實(shí)現(xiàn),產(chǎn)生的波形種類要受到電路硬件的限制,體積大、靈活性和穩(wěn)定性也相對(duì)較差。近年

7、來,以數(shù)字技術(shù)為基礎(chǔ)的數(shù)字信號(hào)發(fā)生器得到了飛速的發(fā)展,性能指標(biāo)都達(dá)到了一個(gè)新的水平?,F(xiàn)場(chǎng)可編程門陣列器件具有容量大、運(yùn)算速度快、現(xiàn)場(chǎng)可編程等優(yōu)點(diǎn),使得許多復(fù)雜的電路有了新的實(shí)現(xiàn)途徑,越來越被廣泛地應(yīng)用到實(shí)際系統(tǒng)中。而且隨著當(dāng)今電子系統(tǒng)的越來越復(fù)雜,毫無疑問,數(shù)字信號(hào)發(fā)生器正在成為模擬復(fù)雜信號(hào)的事實(shí)標(biāo)準(zhǔn)。凡是能產(chǎn)生測(cè)試信號(hào)的儀器,統(tǒng)稱為信號(hào)源,也稱為信號(hào)發(fā)生器,它用于產(chǎn)生被測(cè)電路所需特定參數(shù)的電測(cè)試信號(hào)。信號(hào)源是根據(jù)用戶對(duì)其波形的命令來產(chǎn)生信號(hào)的電子儀器。信號(hào)源主要給被測(cè)電路提供所需要的已知信號(hào)(各種波形),然后用其它儀表進(jìn)行測(cè)量的參數(shù)。信號(hào)源有很多種分類方法,其中一種方法可分為混和信號(hào)源和邏輯

8、信號(hào)源兩種。其中混和信號(hào)源主要輸出模擬波形;邏輯信號(hào)源輸出數(shù)字碼形。混和信號(hào)源又可分為函數(shù)信號(hào)發(fā)生器和任意波形/函數(shù)發(fā)生器,其中函數(shù)信號(hào)發(fā)生器輸出標(biāo)準(zhǔn)波形,如正弦波、方波等,任意波/函數(shù)發(fā)生器輸出用戶自定義的任意波形;邏輯信號(hào)發(fā)生器又可分為脈沖信號(hào)發(fā)生器和碼型發(fā)生器,其中脈沖信號(hào)發(fā)生器驅(qū)動(dòng)較小個(gè)數(shù)的方波或脈沖波輸出,碼型發(fā)生器生成許多通道的數(shù)字碼型。1.2 國內(nèi)外發(fā)展現(xiàn)狀采用可變時(shí)鐘和計(jì)數(shù)器尋址波形存儲(chǔ)器的任意波形發(fā)生器4在一段時(shí)期內(nèi)曾得到廣泛的應(yīng)用,其取樣時(shí)鐘頻率較高且可調(diào)節(jié),然而這種波形發(fā)生器對(duì)硬件要求比較高,需要高性能的鎖相環(huán)和截止頻率可調(diào)的低通濾波器,且頻率分辨率低,頻率切換速度較慢,

9、已經(jīng)逐步退出市場(chǎng)。目前市場(chǎng)上的數(shù)字信號(hào)發(fā)生器主要采用直接數(shù)字合成(direct digital synthesizer ,dds)技術(shù),這種波形發(fā)生器不僅可以產(chǎn)生可變頻的載頻信號(hào)、各種調(diào)制信號(hào),同時(shí)還能和計(jì)算機(jī)配合產(chǎn)生用戶自定義的有限帶寬的任意信號(hào),可以為多領(lǐng)域的測(cè)試提供寬帶寬、高分辨率的測(cè)試信號(hào)。從目前發(fā)展?fàn)顩r來看,國外數(shù)字信號(hào)發(fā)生器的研制和生產(chǎn)技術(shù)已經(jīng)較為成熟。以安捷倫(agilent)和 泰克(tektronix)為代表的國際電子測(cè)量儀器公司在此領(lǐng)域進(jìn)行了卓有成效的研究和開發(fā),其產(chǎn)品無論在技術(shù)上還是市場(chǎng)占有率方面在國際上都享有盛譽(yù),但其價(jià)格也相當(dāng)昂貴,高端型號(hào)每臺(tái)價(jià)格都在幾萬美金左右,低

10、端的也要幾萬人民幣。tektronix公司的獨(dú)立結(jié)構(gòu)任意波形發(fā)生器afg3000系列功能完善,人機(jī)界面友好,操作方便,可以以多種方式連接到pc機(jī)上,其最高采樣率能達(dá)到2gs/s,輸出正弦信號(hào)最高頻率為240mhz,任意波頻率最高能達(dá)到50mhz,并配備的強(qiáng)大的波形編輯軟件arbexpress,用戶可以方便地創(chuàng)建和編輯自己的波形。agilent公司的pxi模塊任意波形發(fā)生器采樣率已經(jīng)能達(dá)到1.25gs/s,最高輸出頻率500mhz。我國研制任意波形發(fā)生器是從上世紀(jì)90年代開始的,近年來有一批本土廠商奮起直追,取得了可喜的成果。例如南京盛普科技電子有限公司的spf120型信號(hào)發(fā)生器的主波輸出頻率達(dá)

11、到了120mhz,任意波最高頻率為100khz;北京普源精電科技有限公司(rigol)生產(chǎn)的dg1000/2000/3000系列任意波形發(fā)生器,在性能上已經(jīng)大略相當(dāng)于國外中低端產(chǎn)品。本課題的主要研究內(nèi)容是參考直接數(shù)字頻率合成原理(dds)技術(shù)6,利用quartus ii 5.1軟件作為平臺(tái),vhdl語言作為開發(fā)語言,基于fpga配合相應(yīng)外圍電路實(shí)現(xiàn)一個(gè)數(shù)字信號(hào)發(fā)生器,其電路結(jié)構(gòu)簡單,容易擴(kuò)展,具有極大的靈活性和方便性,實(shí)現(xiàn)了產(chǎn)生頻率、幅度可調(diào)的正弦波、三角波、方波的信號(hào)發(fā)生器。2. 設(shè)計(jì)簡介2.1 dds技術(shù) dds與大多數(shù)的數(shù)字信號(hào)處理技術(shù)一樣,它的基礎(chǔ)仍然是奈圭斯特采定理。奈圭斯特采樣定理

12、是任何模擬信號(hào)進(jìn)行數(shù)字化處理的基礎(chǔ),它描述的是一個(gè)帶限的模擬信號(hào)經(jīng)抽樣變成離散序列后可不可以由這些離散序列恢復(fù)出原始模擬信號(hào)的問題。奈圭斯特采樣定理告訴我們,當(dāng)抽樣頻率大于或者等于模擬信號(hào)最高頻率的兩倍時(shí),可以由抽樣得到的離散序列無失真地恢復(fù)出原始模擬信號(hào)。只不過在dds技術(shù)中,這個(gè)過程被顛倒過來了。dds不是對(duì)模擬信號(hào)進(jìn)行抽樣,而是一個(gè)假定抽樣過程已經(jīng)發(fā)生且抽樣值已經(jīng)量化完成,如何通過某種方法把已經(jīng)量化的數(shù)值重建原始信號(hào)的問題。dds電路一般由參考時(shí)鐘、相位累加器、波形存通濾波器(lpf)組成。其結(jié)構(gòu)如圖2.1所示。圖2.1 dds基本結(jié)構(gòu)框圖其中,f c為參考時(shí)鐘頻率,k為頻率控制字,n為

13、相位累加器位數(shù),a為波形存儲(chǔ)器地址位數(shù),d為波形存儲(chǔ)器的數(shù)據(jù)位字長和d/a轉(zhuǎn)換器位數(shù)。dds系統(tǒng)中的參考時(shí)鐘通常由一個(gè)高穩(wěn)定度的晶體振蕩器來產(chǎn)生,用來作為整個(gè)系統(tǒng)各個(gè)組成部分的同步時(shí)鐘。頻率控制字(frequency control word,fcw)實(shí)際上是二進(jìn)制編碼的相位增量值,它作為相位累加器的輸入。相位累加器由加法器和寄存器級(jí)聯(lián)而成,它將寄存器的輸出反饋到加法器的輸入端實(shí)現(xiàn)累加的功能。在每一個(gè)時(shí)鐘脈沖f c,相位累加器把頻率字k累加一次,累加器的輸出相應(yīng)增加一個(gè)步長的相位增量,由此可以看出,相位累加器的輸出數(shù)據(jù)實(shí)質(zhì)上是以k為步長的線性遞增序列(在相位累加器產(chǎn)生溢出以前),它反映了合成信

14、號(hào)的相位信息。相位累加器的輸出與波形存儲(chǔ)器的地址線相連,相當(dāng)于對(duì)波形存儲(chǔ)器進(jìn)行查表,這樣就可以把存儲(chǔ)在波形存儲(chǔ)器中的信號(hào)抽樣值(二進(jìn)制編碼值)查出。在系統(tǒng)時(shí)鐘脈沖的作用下,相位累加器不停的累加,即不停的查表。波形存儲(chǔ)器的輸出數(shù)據(jù)送到d/a轉(zhuǎn)換器,d/a轉(zhuǎn)換器將數(shù)字量形式的波形幅度值轉(zhuǎn)換成一定頻率的模擬信號(hào),從而將波形重新合成出來。若波形存儲(chǔ)器中存放的是正弦波幅度量化數(shù)據(jù),那么d/a轉(zhuǎn)換器的輸出是近似正弦波的階梯波,還需要后級(jí)的低通平滑濾波器進(jìn)一步抑制不必要的雜波就可以得到頻譜比較純凈的正弦波信號(hào)。圖2.2所示為dds各個(gè)部分的輸出信號(hào)。由于受到字長的限制,相位累加器累加到一定值后,就會(huì)產(chǎn)生一次

15、累加溢出,這樣波形存儲(chǔ)器的地址就會(huì)循環(huán)一次,輸出波形循環(huán)一周。相位累加器的溢出頻率即為合成信號(hào)的頻率??梢姡l率控制字k越大,相位累加器產(chǎn)生溢出的速度越快,輸出頻率也就越高。故改變頻率字(即相位增量),就可以改變相位累加器的溢出時(shí)間,在參考頻率不變的條件下就可以改變輸出信號(hào)的頻率。圖2.2 dds各部分輸出波形2.2 fpga簡介數(shù)字集成電路從產(chǎn)生到現(xiàn)在,經(jīng)過了早期的電子管、晶體管、小中規(guī)模集成電路,到大規(guī)模、超大規(guī)模集成電路(vlsic)以及許多既有特定功能的專用集成電路的發(fā)展過程。但是,隨著為電子技術(shù)的發(fā)展,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨(dú)立承擔(dān)。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)

16、專用集成電路(application special integrated circuit, asic)芯片,而且希望asic的設(shè)計(jì)周期盡可能短,最好是在 實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的asic芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(field programmable logic device, fpld),其中應(yīng)用最廣泛的當(dāng)屬cpld和fpga1。cpld是復(fù)雜可編程邏輯器件(complex programmable logic device)的簡稱,fpga是現(xiàn)場(chǎng)可編程門陣列(field programmable gate array)的簡稱。兩者的功能基本相同,只是實(shí)現(xiàn)

17、原理略有不同,但有時(shí)可以忽略這兩者的區(qū)別。不同廠家對(duì)可編程邏輯器件的叫法也不盡相同。altera公司把自己的可編程邏輯器件產(chǎn)品中的max系列(乘積項(xiàng)技術(shù),eeprom技術(shù))、flex系列(查找表技術(shù),sram工藝)都叫做cpld;而把也是sram工藝、基于查找表技術(shù)、要外掛配置用的flex系列的eprom叫做fpga。早期的可編程邏輯器件都屬于低密度pld(programmable logic device),結(jié)構(gòu)簡單,設(shè)計(jì)靈活,但規(guī)模小,難以實(shí)現(xiàn)復(fù)雜的邏輯功能。1985年xilinx公司首先推出了現(xiàn)場(chǎng)可編程門陣列fpga,這是一種新型的高密度pld,采用cmos-sram工藝制作,其結(jié)構(gòu)和陣

18、列型pld不同,內(nèi)部由許多獨(dú)立的可編程模塊組成,邏輯模塊之間可以靈活地相互連接,具有密度高、編程速度快,設(shè)計(jì)靈活和可再配置設(shè)計(jì)能力等許多優(yōu)點(diǎn)。fpga一般由6部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊ram、豐富的布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等。每個(gè)單元簡介如下:(1)可編程輸入/輸出單元(i/o單元)。目前大多數(shù)fpga的i/o單元被設(shè)計(jì)為可編程模式,即通過軟件的靈活配置,可適應(yīng)不同的電氣標(biāo)準(zhǔn)與i/o物理特性;可以調(diào)整匹配阻抗特性,上下拉電阻;可以調(diào)整輸出驅(qū)動(dòng)電流的大小等;(2)基本可編程邏輯單元。fpga的基本可編程邏輯單元是由查找表(lut)和寄存器(

19、register)組成的,查找表完成純組合邏輯功能。fpga內(nèi)部寄存器可配置為帶 同步/異步復(fù)位和置位、時(shí)鐘使能的觸發(fā)器,也可以配置成為鎖存器。fpga一般依賴寄存器完成同步時(shí)序邏輯設(shè)計(jì)。一般來說,比較經(jīng)典的基本可編程單元的配置是一個(gè)寄存器加一個(gè)查找表,但不同廠商的寄存器和查找表的內(nèi)部結(jié)構(gòu)有一定的差異,而且寄存器和查找表的組合模式也不同。(3)嵌入式塊ram。目前大多數(shù)fpga都有內(nèi)嵌的塊ram。嵌入式塊ram可以配置為單端口ram、雙端口ram、偽雙端口ram、cam、fifo等存儲(chǔ)結(jié)構(gòu)。(4)豐富的布線資源。布線資源連通fpga內(nèi)部所有單元,連線的長度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳

20、輸速度。布線資源的劃分:a全局性的專用布線資源:以完成器件內(nèi)部的全局時(shí)鐘和全局復(fù)位/置位的布線;b長線資源:用以完成器件bank間的一些高速信號(hào)和一些第二全局時(shí)鐘信號(hào)的布線;c短線資源:用來完成基本邏輯單元間的邏輯互連與布線;d其他:在邏輯單元內(nèi)部還有著各種布線資源和專用時(shí)鐘、復(fù)位等控制信號(hào)線。(5)底層嵌入功能單元。由廠商及芯片型號(hào)決定。(6)內(nèi)嵌專用硬核。與“底層嵌入單元”有區(qū)別,這里指的硬核主要是那些通用性相對(duì)較弱的芯片,不是所有fpga芯片都包含硬核。fpga的基本特點(diǎn)主要有: (1)采用fpga設(shè)計(jì)asic電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 (2)fpga可做其它全定制或

21、半定制asic電路的中試樣片。 (3)fpga內(nèi)部有豐富的觸發(fā)器和io引腳。 (4)fpga是asic電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 (5)fpga采用高速chmos工藝,功耗低,可以與cmos、ttl電平兼容。使用fpga時(shí),可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),fpga芯片將eprom中數(shù)據(jù)讀入片內(nèi)編程ram中,配置完成后,fpga進(jìn)入工作狀態(tài)。掉電后,fpga恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,fpga能夠反復(fù)使用。fpga的編程無須專用的fpga編程器,只須用通用的eprom、prom編程器即可。當(dāng)需要修改fpga功能時(shí),只需換一片eprom即可。

22、這樣,同一片fpga,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,fpga的使用非常靈活。fpga有多種配置模式:并行主模式為一片fpga加一片eprom的方式;主從模式可以支持一片prom編程多片fpga;串行模式可以采用串行prom編程fpga;外設(shè)模式可以將fpga作為微處理器的外設(shè),由微處理器對(duì)其編程。2.3 vhdl簡介vhdl 的全稱是very-high-speed integrated circuit hardware description language,誕生于1982 年。1987年底,vhdl被 ieee 和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。vhdl主要用于描述數(shù)字系

23、統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語言。vhdl的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是vhdl系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 vhdl 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用 , 它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點(diǎn)。歸納起來 ,vhdl

24、 語言主要具有以下優(yōu)點(diǎn):(1) vhdl 語言功能強(qiáng)大 , 設(shè)計(jì)方式多樣。vhdl 語言具有強(qiáng)大的語言結(jié)構(gòu), 只需采用簡單明確的vhdl語言程序就可以描述十分復(fù)雜的硬件電路。同時(shí), 它還具有多層次的電路設(shè)計(jì)描述功能。此外 ,vhdl 語言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn), 這是其他硬件描述語言所不能比擬的。vhdl 語言設(shè)計(jì)方法靈活多樣 , 既支持自頂向下的設(shè)計(jì)方式, 也支持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法, 也支持層次化設(shè)計(jì)方法。(2) vhdl 語言具有強(qiáng)大的硬件描述能力。vhdl 語言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路 , 也可以描述門級(jí)電路;描

25、述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時(shí),vhdl 語言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。vhdl 語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。vhdl 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會(huì)給硬件描述帶來較大的自由度。(3) vhdl 語言具有很強(qiáng)的移植能力。vhdl 語言很強(qiáng)的移植能力主要體現(xiàn)在: 對(duì)于同一個(gè)硬件電路的 vhdl 語言描述 , 它可以從一個(gè)模擬器移植到另一個(gè)模擬器上、從一個(gè)綜合器移植到另一個(gè)綜合器上或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。(4) vhdl 語言的設(shè)

26、計(jì)描述與器件無關(guān)。采用 vhdl 語言描述硬件電路時(shí), 設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化, 而不需要考慮其他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后 ,vhdl 語言允許采用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)。(5) vhdl 語言程序易于共享和復(fù)用。vhdl 語言采用基于庫 ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過程中 , 設(shè)計(jì)人員可以建立各種可再次利用的模塊 , 一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門級(jí)電路開始一步地進(jìn)行設(shè)計(jì) , 而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存檔模塊, 將這些模塊存放在庫中 , 就可以在以后

27、的設(shè)計(jì)中進(jìn)行復(fù)用。由于 vhdl 語言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語言 , 因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享, 從而減小硬件電路設(shè)計(jì)的工作量, 縮短開發(fā)周期。2.4 quartus簡介quartus ii 是altera公司的綜合性pld開發(fā)軟件,支持原理圖、vhdl以及ahdl(altera hardware description language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整pld設(shè)計(jì)流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl腳本完成設(shè)計(jì)流程外,提供

28、了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方eda工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方eda工具。此外,quartus ii 通過和dsp builder工具與 matlab/simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種dsp應(yīng)用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。 m

29、axplusii作為altera的上一代pld設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前altera已經(jīng)停止了對(duì)maxplus ii 的更新支持,quartus ii 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。altera在quartus ii 中包含了許多諸如signaltap ii、chip editor和rtl viewer的設(shè)計(jì)輔助工具,集成了sopc和hardcopy設(shè)計(jì)流程,并且繼承了maxplus ii 友好的圖形界面及簡便的使用方法。 altera quartusii作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)

30、者的歡迎。 altera的quartus ii可編程邏輯軟件屬于第四代pld開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于internet的協(xié)作設(shè)計(jì)。quartus平臺(tái)與cadence、exemplar logic、 mentor graphics、synopsys和synplicity等eda供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的logic lock模塊設(shè)計(jì)功能,增添 了fast fit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。圖2.3 eda工具設(shè)計(jì)流程圖3. 系統(tǒng)硬件電路設(shè)計(jì)3.1 數(shù)字信號(hào)發(fā)生器的系統(tǒng)組成該數(shù)字信號(hào)發(fā)生器系統(tǒng)主要由輸入部分、fpga部分、d/a轉(zhuǎn)

31、換部分、頻率、幅值調(diào)節(jié)和波形轉(zhuǎn)換部分組成。如圖3.1所示。分頻器fpga部分系 統(tǒng) 控 制 器時(shí)鐘復(fù)位波形調(diào)幅調(diào)頻正弦波三角波方波其他波型波 形 da 轉(zhuǎn) 換濾波輸出圖3.1 數(shù)字信號(hào)發(fā)生器系統(tǒng)組成3.2 設(shè)計(jì)原理及要求 在本設(shè)計(jì)中,利用fpga,采用eda(electronic design automation)中自頂向下(top-to-down)的設(shè)計(jì)方法,選用基于相位累加器的直接數(shù)字合成/ dds技術(shù)來完成數(shù)字信號(hào)發(fā)生器各功能模塊的設(shè)計(jì)。dds這種結(jié)構(gòu)主要由相位累加器、 相位調(diào)制器、 波形 rom 查找表、 d/ a 構(gòu)成。其中相位累加器、 相位調(diào)制器、 波形 rom 查找表是 dds

32、 結(jié)構(gòu)中的數(shù)字部分 ,由于具有數(shù)控頻率合成的功能 ,又合稱為 nco2。它的工作原理是:將要產(chǎn)生的波形數(shù)據(jù)存入波形存儲(chǔ)器 ,然后在參考時(shí)鐘的作用下 ,對(duì)輸入的頻率數(shù)據(jù)進(jìn)行累加 ,并且將累加器的輸出一部分作為讀取波形存儲(chǔ)器的地址 ,將讀出的波形數(shù)據(jù)經(jīng)d/a轉(zhuǎn)換為相應(yīng)的模擬電壓信號(hào)。本研究的重點(diǎn)就是用vhdl來實(shí)現(xiàn)dds的功能 ,能夠達(dá)到高精度的輸出 ,同時(shí)標(biāo)準(zhǔn)波形數(shù)據(jù)生成存放在 rom 中 ,可以簡化運(yùn)算過程 ,提高運(yùn)算速度 ,加快反應(yīng)時(shí)間。本設(shè)計(jì)主要通過vhdl語言實(shí)現(xiàn)頻率控制、波形控制、 波形數(shù)據(jù)的提取、 波形的產(chǎn)生工作。其中 ,波形數(shù)據(jù)運(yùn)用vhdl語言編寫 ??刂撇糠种饕捎卯a(chǎn)生高低電平的

33、撥碼開關(guān)控制。程序下載到 fpga 上實(shí)現(xiàn) ,經(jīng)過d/ a 輸出波形。并通過altera公司quartusii5.1軟件進(jìn)行波形的仿真,從而完成整個(gè)設(shè)計(jì)。本設(shè)計(jì)的任務(wù)是設(shè)計(jì)一個(gè)基于fpga的數(shù)字信號(hào)發(fā)生器,根據(jù)任務(wù)書要求必須達(dá)到以下要求:1.利用eda開發(fā)系統(tǒng)、quartus ii 5.1軟件實(shí)現(xiàn)數(shù)字信號(hào)發(fā)生器的設(shè)計(jì);2.根據(jù)整體電路的工作原理,完成各個(gè)子模塊的設(shè)計(jì)及實(shí)現(xiàn);3.對(duì)數(shù)字信號(hào)發(fā)生器完成vhdl語言描述;4.該數(shù)字信號(hào)發(fā)生器能夠產(chǎn)生正弦波、方波、三角波、鋸齒波信號(hào);5.產(chǎn)生的波形信號(hào)頻率和幅度可通過按鍵進(jìn)行調(diào)節(jié);6.用按鍵調(diào)節(jié)實(shí)現(xiàn)各種波形的轉(zhuǎn)換。3.3 輸入部分輸入部分包含以下功能按

34、鍵:時(shí)鐘、復(fù)位、波形、調(diào)幅、調(diào)頻。1時(shí)鐘:標(biāo)準(zhǔn)的50mhz時(shí)鐘輸入。2復(fù)位:低電平復(fù)位。3波形:為波形輸出選擇開關(guān),可以選擇單波形的輸出。4調(diào)幅:可以遞增和遞減正弦波、三角波、方波的幅度。5調(diào)頻:可以遞增和遞減正弦波、三角波、方波的頻率。3.3.1頻率、幅值和波形轉(zhuǎn)換部分由于采用dds,在rom中存有波形一個(gè)周期的n個(gè)等間隔歸一化采樣數(shù)據(jù),改變相位累加器步進(jìn),從而改變對(duì)rom中數(shù)據(jù)的讀取速度,即可合成不同頻率波形,存儲(chǔ)器中存入過量的采樣值,使得采樣點(diǎn)數(shù)較少時(shí),依然能夠得到較好波形輸出,從而得到較高頻率輸出。否則,采樣點(diǎn)數(shù)太少會(huì)使產(chǎn)生波形嚴(yán)重失真。輸出波形頻率計(jì)算: (式3.1)式中是晶振頻率k

35、 分頻系數(shù) n 相位累加器位數(shù) s 相位累加器步長若取代入式(3.1)得到。因此,只要控制s 的值就可準(zhǔn)確實(shí)現(xiàn)頻率步進(jìn)為10 hz 的等步進(jìn)調(diào)頻。如采用32 mhz 的晶振,也能得到10 hz 精確的等步進(jìn)調(diào)節(jié),但犧牲了波形質(zhì)量。通過實(shí)驗(yàn)測(cè)試和比較,可用下式計(jì)算頻率: (式3.2)因?yàn)?5306不是一個(gè)2n 的數(shù),這樣波形會(huì)漏掉少量采樣點(diǎn)。即使這樣,得到波形依然平滑,可滿足設(shè)計(jì)要求。若要使頻率調(diào)節(jié)步進(jìn)減小到1hz,對(duì)晶振有特殊要求,它的振蕩頻率必須是2的n次冪。由式(3.1)舉例說明累加器位數(shù)不同產(chǎn)生差異: (式3.3) (式3.4)式(3.4) 產(chǎn)生的波形優(yōu)于式(3.3) ,最高頻率也高出幾

36、倍。由于dac0832的電流建立時(shí)間是1s ,因此輸出波形的最高頻率受下式限制: (式3.5)因此,要得到更高頻率的波形需使用更高速的d/a轉(zhuǎn)換器。頻率和幅值調(diào)節(jié)和波形轉(zhuǎn)換電路如圖3.2所示。八個(gè)按鍵一端接1k排阻(上拉電阻)后接vcc,一端接fpga控制信號(hào)引腳輸入端,按鍵有八個(gè),分別為復(fù)位鍵sw1,控制波形轉(zhuǎn)換鍵sw2,控制幅度步進(jìn)鍵sw3,控制幅度步減鍵sw4,控制頻率步進(jìn)鍵sw5,控制頻率步減鍵sw6,控制幅值步進(jìn)鍵sw7,控制幅值步進(jìn)鍵sw8。圖3.2 輸入按鍵電路3.3.2系統(tǒng)時(shí)鐘電路系統(tǒng)即fpga運(yùn)行時(shí)所需的時(shí)鐘,采用50mhz的有源晶振產(chǎn)生,電路如圖3.3所示。其中c5為高頻旁

37、路電容,以濾除不良的高檔次諧波,對(duì)時(shí)鐘波形進(jìn)行整形,clk1為輸入時(shí)鐘信號(hào)源。 圖3.3 系統(tǒng)時(shí)鐘電路3.3.3 電源電路的設(shè)計(jì)電源是電路正常工作的保證,直接影響著系統(tǒng)的穩(wěn)定。如下圖3.4所示,u2為5v直流電源輸入端,為usb供電,d2為電源指示。輸出部分有兩個(gè)部分,分別為vee+5v和3.3v的vcc。其中vee是給d/a供電,vcc給整個(gè)系統(tǒng)供電。圖3.4 電源電路3.4 fpga部分本設(shè)計(jì)使用的fpga芯片為epf10k50eti144-2芯片,其典型邏輯門數(shù)(包括邏輯門和ram)為50000門,最大可用系統(tǒng)門數(shù)為116000門,邏輯單元(logic elements)為2880個(gè),邏

38、輯陣列模塊(logic array blocks)為360個(gè),嵌入式陣列模塊(embedded array blocks)為10個(gè),ram總?cè)萘繛?0480字節(jié),用戶可用的i/o引腳最多為310個(gè)。芯片的工作電壓為+5v。其內(nèi)部結(jié)構(gòu)如圖3.5所示。圖3.5 epf10k50eti144-2芯片結(jié)構(gòu)圖通常情況下在硬件調(diào)試的過程中一般使用下載電纜進(jìn)行下載,而當(dāng)調(diào)試完成以后要用配置芯片對(duì)fpga進(jìn)行配置。配置芯片在每次系統(tǒng)上電以后自動(dòng)將配置文件加載到fpga中形成電路。3.5 d/a轉(zhuǎn)換部分d/a轉(zhuǎn)換器電路的設(shè)計(jì):從波形ram中讀出的幅度量化數(shù)據(jù)還只是一個(gè)數(shù)字信號(hào),要得到最后的輸出信號(hào)必須經(jīng)過數(shù)模轉(zhuǎn)

39、換器。因此在波形ram之后要設(shè)計(jì)一個(gè)d/a轉(zhuǎn)換電路。數(shù)模(d/a)轉(zhuǎn)換電路的作用是把已經(jīng)合成的波形幅值的數(shù)字量轉(zhuǎn)換成模擬量,其速度和特性直接影響整個(gè)系統(tǒng)的性能。d/a轉(zhuǎn)換器件的首要特性要求是高速,其次是轉(zhuǎn)換位數(shù),本設(shè)計(jì)中選用8位的d/a芯片dac0832。波形幅度量化序列經(jīng)d/a轉(zhuǎn)換后成為階梯波。頻率合成器對(duì)d/a轉(zhuǎn)換器的分辨率有一定的要求,d/a轉(zhuǎn)換器的分辨率越高,合成的波形臺(tái)階數(shù)就越多輸出的波形的精度也就越高。d/a的輸出用電壓形式表示一般應(yīng)為: (式3.6) 式中d為d/a的輸入數(shù)據(jù)值,n為d/ac的位數(shù),即通常所指的d/ac的分辨率,為輸入d/a的參考電壓。d/a轉(zhuǎn)換電路的設(shè)計(jì)首先是要

40、選擇一款合適的d/a轉(zhuǎn)換芯片。d/a轉(zhuǎn)換芯片種類繁多。選擇d/a轉(zhuǎn)換芯片要根據(jù)很多因素來確定,最主要的就是要考慮字長和轉(zhuǎn)換速度。本設(shè)計(jì)采用dac0832 作為d/a 轉(zhuǎn)換器件,其具有數(shù)字量的輸入鎖存功能,dac0832芯片的輸出通過放大器op07,即可用示波器觀察。100k的電位器在+5v和0v電壓間為dac0832提供參考電壓。d/a轉(zhuǎn)換電路的原理圖如圖3.6所示:圖3.6 d/a轉(zhuǎn)換電路的原理圖3.5.1 dac0832轉(zhuǎn)換器簡介dac0832是雙列直插式8位d/a轉(zhuǎn)換器。能完成數(shù)字量輸入到模擬量(電流)輸出的轉(zhuǎn)換。其主要參數(shù)如下:分辨率為8位,轉(zhuǎn)換時(shí)間為1s,滿量程誤差為1lsb,參考電

41、壓為(+10-10)v,供電電源為(+5+15)v,邏輯電平輸入與ttl兼容。從圖3.7中可見,在dac0832中有兩級(jí)鎖存器,第一級(jí)鎖存器稱為輸入寄存器,它的允許鎖存信號(hào)為ile,第二級(jí)鎖存器稱為dac寄存器,它的鎖存信號(hào)也稱為通道控制信號(hào)xfer。圖3.7 dac0832引腳圖圖3.7中,當(dāng)ile為高電平,片選信號(hào)cs 和寫信號(hào)wr1為低電平時(shí),輸入寄存器控制信號(hào)為1,這種情況下,輸入寄存器的輸出隨輸入而變化。此后,當(dāng)wr1由低電平變高時(shí),控制信號(hào)成為低電平,此時(shí),數(shù)據(jù)被鎖存到輸入寄存器中,這樣輸入寄存器的輸出端不再隨外部數(shù)據(jù)db的變化而變化。對(duì)第二級(jí)鎖存來說,傳送控制信號(hào)xfer 和寫信

42、號(hào)wr2同時(shí)為低電平時(shí),二級(jí)鎖存控制信號(hào)為高電平,8位的dac寄存器的輸出隨輸入而變化,此后,當(dāng)wr2由低電平變高時(shí),控制信號(hào)變?yōu)榈碗娖?,于是將輸入寄存器的信息鎖存到dac寄存器中。dac0832各引腳編號(hào)及其作用: 1號(hào)cs引腳:片選信號(hào)輸入線,低電平有效; 2號(hào)wr1引腳:為輸入寄存器的寫選通信號(hào); 3號(hào)agnd引腳:模擬地,模擬信號(hào)和基準(zhǔn)電源的參考地; 4-7,13-16號(hào)d0-d7引腳:數(shù)據(jù)輸入線,tll電平; 8號(hào)v ref引腳:基準(zhǔn)電壓輸入(-10v+10v); 9號(hào)rfb引腳:反饋信號(hào)輸入線,芯片內(nèi)部有反饋電阻; 10號(hào)dgnd引腳:數(shù)字地; 11號(hào)iout1引腳:電流輸出線,當(dāng)

43、輸入全為1時(shí),iout1最大; 12號(hào)iout2引腳:電流輸出線,其值與iout1為一常數(shù); 17號(hào)xfre引腳:數(shù)據(jù)傳送控制信號(hào)輸入線,低電平有效; 18號(hào)wr2引腳:為dac寄存器寫選通輸入線; 19號(hào)ile引腳:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效; 20號(hào)v cc引腳:電源輸入線(+5v+15v)vref。3.6濾波電路濾波是信號(hào)處理中的一個(gè)重要概念。濾波分經(jīng)典濾波和現(xiàn)代濾波。經(jīng)典濾波的概念,是根據(jù)傅里葉分析和變換提出的一個(gè)工程概念。根據(jù)高等數(shù)學(xué)理論,任何一個(gè)滿足一定條件的信號(hào),都可以被看成是由無限個(gè)正弦波疊加而成。換句話說,就是工程信號(hào)是不同頻率的正弦波線性疊加而成的,組成信號(hào)的不

44、同頻率的正弦波叫做信號(hào)的頻率成分或叫做諧波成分。只允許一定頻率范圍內(nèi)的信號(hào)成分正常通過,而阻止另一部分頻率成分通過的電路,叫做經(jīng)典濾波器或?yàn)V波電路。由于在電路運(yùn)行過程中間,外部信號(hào)會(huì)對(duì)波形產(chǎn)生一定的干擾,而且從d/a轉(zhuǎn)化部分中轉(zhuǎn)換出的波形是一種不平滑的階梯波形,因此為了防止外部信號(hào)的干擾和內(nèi)部不平滑階梯波的干擾,本次設(shè)計(jì)中增加了無源濾波中的lc濾波電路,目的在于消除外部信號(hào)的干擾,同時(shí)能夠把從d/a轉(zhuǎn)換部分轉(zhuǎn)換出的階梯波形通過濾波轉(zhuǎn)變?yōu)槠交恼也?、方波、三角波、鋸齒波,其濾波電路如圖3.8所示,sigout輸入信號(hào)來自dac的輸出,jp1的輸出接示波器。圖3.8 濾波電路4. 系統(tǒng)軟件設(shè)計(jì)4

45、.1軟件系統(tǒng)流程圖本設(shè)計(jì)主要是由fpga為核心控制一些簡單外圍電路輸出可控的方波、三角波、鋸齒波、正弦波。輸入部分為8個(gè)按鍵值,分別用于控制波型的選擇、波型的調(diào)節(jié);輸出部分由一個(gè)8位的da組成,由fpga將數(shù)據(jù)波型數(shù)據(jù)送給da轉(zhuǎn)換輸出模擬波型信號(hào)。具體流程如圖4.1所示:初始化按鍵輸入,選擇波型,調(diào)節(jié)波型。由fpga生成數(shù)字波型數(shù)據(jù)將數(shù)字波型數(shù)據(jù)送入da轉(zhuǎn)換輸出模擬波型信號(hào)圖4.1 系統(tǒng)流程圖通過按鍵可以選擇輸出波型,如方波、三角波、正弦波。波型頻率幅度的改變可以通過按對(duì)應(yīng)的頻率加按鍵和頻率減鍵,幅度加鍵幅度減鍵。由于頻率和幅度改變?cè)趒uartus 軟件平臺(tái)下不能明顯仿真步進(jìn)變化,所以本設(shè)計(jì)沒

46、有介紹步進(jìn)仿真。4.2主要函數(shù)語句分析在程序設(shè)計(jì)中,主要使用的函數(shù)語句有兩種:if-else語句和case-when語句。這兩種語句也是vhdl程序設(shè)計(jì)中常用的語句。二者都屬于流程控制語句。流程控制語句通過條件控制開關(guān)決定是否執(zhí)行一條或幾條語句或重復(fù)執(zhí)行一條或幾條語句或跳過一條或幾條語句 。 if語句是一種條件語句,它根據(jù)語句中所設(shè)置的一種或多種條件,有選擇地執(zhí)行指定的順序語句。if語句的語句結(jié)構(gòu)有以下三種: if 條件句 then - 第一種if語句結(jié)構(gòu) 順序語句 end if if 條件句 then - 第二種if語句結(jié)構(gòu) 順序語句 else 順序語句 end if if 條件句 then

47、 - 第三種if語句結(jié)構(gòu) 順序語句 elsif 條件句 then 順序語句 . else 順序語句 end ifcase語句根據(jù)滿足的條件直接選擇多項(xiàng)順序語句中的一項(xiàng)執(zhí)行,case語句的結(jié)構(gòu)如下:case 表達(dá)式 iswhen 選擇值 = 順序語句when 選擇值 = 順序語句.end case 當(dāng)執(zhí)行到case語句時(shí),首先計(jì)算表達(dá)式的值,然后根據(jù)條件句中與之相同的選擇值。執(zhí)行對(duì)應(yīng)的順序語句,最后結(jié)束 case語句。表達(dá)式可以是一個(gè)整數(shù)類型或枚舉類型的值,也可以是由這些數(shù)據(jù)類型的值構(gòu)成的數(shù)組。4.3 數(shù)字信號(hào)發(fā)生器的軟件設(shè)計(jì) 本次設(shè)計(jì)的軟件部分主要運(yùn)用altera公司的quartus軟件平臺(tái),

48、其開發(fā)流程基本分成2個(gè)步驟:1.設(shè)計(jì)輸入quartus軟件的設(shè)計(jì)文件可以來自quartus5.1設(shè)計(jì)輸入工具或各種工業(yè)標(biāo)準(zhǔn)的eda設(shè)計(jì)輸入工具quartus強(qiáng)大的集成功能允許信息在各種應(yīng)用程序間自由交流,設(shè)計(jì)者可在一個(gè)工程內(nèi)直接從某個(gè)設(shè)計(jì)文件轉(zhuǎn)換到其他任何設(shè)計(jì)文件,而不必理會(huì)設(shè)計(jì)文件是圖形格式、文本格式,還是波形格式。quartus具有如下的多種設(shè)計(jì)輸入方法:原理圖輸入與符號(hào)編輯、硬件描述語言、波形設(shè)計(jì)輸入、平面圖編輯以及層次設(shè)計(jì)輸入。如此眾多的設(shè)計(jì)方法幫助設(shè)計(jì)者輕松地完成設(shè)計(jì)輸入。2.項(xiàng)目處理quartus處理一個(gè)設(shè)計(jì)時(shí),軟件編譯器讀取設(shè)計(jì)文件信息,產(chǎn)生用于器件編程、仿真、定時(shí)分析的輸出文件

49、。消息處理器可以自動(dòng)定位編譯過程中發(fā)現(xiàn)的錯(cuò)誤,編譯器還可以優(yōu)化設(shè)計(jì)文件。項(xiàng)目處理包括以下基本步驟:(1)消息處理器自動(dòng)定位錯(cuò)誤;(2)邏輯綜合與試配;(3)定時(shí)驅(qū)動(dòng)編譯;(4)設(shè)計(jì)規(guī)則檢查;(5)多器件劃分。本次設(shè)計(jì)的數(shù)字信號(hào)發(fā)生器在quartus5.1下的rtl圖如圖4.2所示。圖4.2 系統(tǒng)rtl圖4.4軟件各模塊4.4.1波形發(fā)生器設(shè)計(jì)的波形發(fā)生器就是為了得到正弦波、三角波、方波這三種波形,并可通過按鈕選擇輸出波形。波形發(fā)生器可以由正弦波產(chǎn)生模塊、三角波產(chǎn)生模塊、方波產(chǎn)生模塊和輸出波形選擇模塊(ch3a1)。下圖為波形發(fā)生器內(nèi)部的頂層設(shè)計(jì)的規(guī)劃圖圖4.3波形發(fā)生器內(nèi)部的頂層設(shè)計(jì)的規(guī)劃圖如

50、圖可以看到,控制輸入有三大塊,一個(gè)是個(gè)按鈕的數(shù)據(jù)選擇命令的輸入,一個(gè)是時(shí)時(shí)鐘輸入,它的頻率將決定輸出波形的頻率,還有一個(gè)是復(fù)位鍵。在芯片里面要處理的就有波形產(chǎn)生器產(chǎn)生相應(yīng)的數(shù)據(jù)后輸出8位的數(shù)據(jù)到數(shù)據(jù)選擇模塊中,通過按鈕發(fā)出選擇數(shù)據(jù)的指令,3選1的數(shù)據(jù)選擇器選擇相應(yīng)的數(shù)據(jù)進(jìn)行輸出,把這些數(shù)據(jù)輸入d/a模塊中,通過d/a模塊對(duì)數(shù)據(jù)轉(zhuǎn)換,在它的輸出端就可得到相應(yīng)的波形。4.4.2 主控制模塊主控制模塊完成了頻率調(diào)節(jié)、幅度調(diào)節(jié)和波形選擇三個(gè)控制功能。圖是用quartus5.1生成的主程序結(jié)構(gòu)框圖,其中clk為標(biāo)準(zhǔn)頻率50m輸入,rst為系統(tǒng)復(fù)位鍵,vadd,vdec為調(diào)節(jié)輸出幅度的二個(gè)按鍵,使用方法是

51、當(dāng)按下vadd時(shí)幅度會(huì)每隔一秒遞增一次,直到最大幅度,當(dāng)按下vdec時(shí)幅度會(huì)每隔一秒遞減一次,直到最小幅度,padd,pdec為調(diào)節(jié)輸出頻率的二個(gè)按鍵,使用方法是當(dāng)按下pvadd時(shí)頻率會(huì)每隔一秒遞增一次,直到最大頻率,當(dāng)按下pdec時(shí)頻率會(huì)每隔一秒遞減一次,直到最小頻率。sel為波形選擇鍵,當(dāng)按下sel鍵時(shí)系統(tǒng)每隔一秒在方波、三角波、正弦波,鋸齒波四種波形循環(huán)切換。cnt為fpga產(chǎn)生的8位數(shù)字波形數(shù)據(jù)信號(hào)。具體框圖如圖4.4所示。圖4.4主程序結(jié)構(gòu)框圖4.4.3 波形數(shù)據(jù)產(chǎn)生模塊(1)方波數(shù)據(jù)產(chǎn)生模塊方波產(chǎn)生方法是由主控制模塊提供方波頻率和幅度,按照主控制模塊的頻率產(chǎn)生“0”和主控提供的幅度

52、值。將這些數(shù)據(jù)直按送入dac就能得到所需方波信號(hào)。產(chǎn)生框圖如圖4.5所示:clk為主控模塊提供的頻率信號(hào),rst為復(fù)位鍵,din為主控模塊提供幅度信號(hào),dout為產(chǎn)生的波型數(shù)據(jù)信號(hào)。圖4.5 方波數(shù)據(jù)產(chǎn)生結(jié)構(gòu)框圖方波信號(hào)仿真:按仿真按鈕可以直接進(jìn)行仿真,提示信息提示你仿真成功后。可以看到如下仿真波形,如圖4.6方波信號(hào)仿真。在這個(gè)仿真波形圖中,可以看到當(dāng)clrn為高電平的時(shí)候,出現(xiàn)一個(gè)clk時(shí)鐘脈沖的上升沿計(jì)數(shù),從0跳到255,等下一個(gè)脈沖來臨時(shí)有從255跳到0,依次重復(fù),如圖所示,波形將以方波的規(guī)律變化。(2)三角波數(shù)據(jù)產(chǎn)生模塊三角波產(chǎn)生方法是由主控制模塊提供波型頻率和幅度,按照主控制模塊的

53、頻率產(chǎn)生由0自加到主控模塊提供的幅度值然后再自減到0。這些數(shù)據(jù)直按送入dac就能得到所需三角波信號(hào)。產(chǎn)生框圖如圖4.7所示:clk為主控模塊提供的頻率信號(hào),rst為復(fù)位鍵,din為主控模塊提供幅度信號(hào),dout為產(chǎn)生的波型數(shù)據(jù)信號(hào)。圖4.7 三角波數(shù)據(jù)產(chǎn)生結(jié)構(gòu)框圖按仿真按鈕可以直接進(jìn)行仿真,提示信息提示你仿真成功之后,可以看到如下的仿真波形, 仿真如圖4.8所示。圖4.8 三角波信號(hào)仿真在這個(gè)仿真圖中,可以看到當(dāng)clrn為高電平的時(shí)候,出現(xiàn)一個(gè)clk時(shí)鐘脈沖的上升沿開始計(jì)數(shù),從0增到1,然后每來一個(gè)脈沖就增一次,直到增到255,等下一個(gè)脈沖到臨時(shí)將有從255減到254,然后每來一個(gè)脈沖就減一次

54、,直到減到0,依次重復(fù),如圖所示,波形將出現(xiàn)三角波的規(guī)律變化。(3)正弦波數(shù)據(jù)產(chǎn)生模塊正弦波產(chǎn)生方法是由主控制模塊提供波型頻率,按照主控制模塊的頻率依次從64個(gè)已寫好的正弦數(shù)據(jù)中取值,然后這些數(shù)據(jù)直按送入dac就能得到所需正弦波信號(hào)。因?yàn)?4個(gè)數(shù)據(jù)已經(jīng)固定,所發(fā)正弦波不好調(diào)幅。產(chǎn)生框圖如圖:clk為主控模塊提供的頻率信號(hào),rst為復(fù)位鍵,data為產(chǎn)生的波型數(shù)據(jù)信號(hào)。具體框圖如圖4.9所示。圖4.9 正弦波數(shù)據(jù)產(chǎn)生結(jié)構(gòu)框圖正弦波信號(hào)仿真:由上面的設(shè)置可以直接按波形仿真按鈕,進(jìn)入仿真介面.可在菜單中選擇:processsimulator命令,也可以用工具欄的按鈕.仿真介面與編譯的差不多,只是st

55、atus下只有simulator狀態(tài)進(jìn)度,仿真完成了后它會(huì)提示你. 當(dāng)提示信息提示仿真成功之后,可以看到如下的仿真波形,仿真如圖4.10所示。圖4.10 正弦波信號(hào)仿真在這個(gè)仿真圖中,可以看到當(dāng)clrn為高電平的時(shí)候,出現(xiàn)一個(gè)clk時(shí)鐘脈沖的上升沿開始計(jì)數(shù),圖中的數(shù)據(jù)將根據(jù)列表中所查到的數(shù)據(jù)按照一定的規(guī)律顯示。如圖所示,波形將出現(xiàn)正弦波的規(guī)律變化。4.4.4波形產(chǎn)生模塊本設(shè)計(jì)用vhdl語言根據(jù)傅立葉函數(shù)采集點(diǎn)進(jìn)行掃描,分別產(chǎn)生正弦波、三角波和矩形波。以下介紹各種常用周期信號(hào)的傅立葉函數(shù)展開式。 1.正弦波發(fā)生分為兩個(gè)步驟,即正弦波幅值采樣存儲(chǔ)和正弦波波形的還原輸出。幅值采樣是將一個(gè)周期正弦波進(jìn)行64等分,將64個(gè)采樣點(diǎn)進(jìn)行量化處理,量化值=255*sin360/64(v),將64點(diǎn)量化值存入存儲(chǔ)器。正弦波形的產(chǎn)生是通過循環(huán)反復(fù)將存儲(chǔ)器中的64點(diǎn)采樣值通過dac0832進(jìn)行還原輸出,得到幅值正比于64點(diǎn)采樣值的正弦波。圖4.11正弦波采樣圖2.矩形波的實(shí)現(xiàn)較之正弦波發(fā)生簡單,由于矩形波是兩個(gè)電平值間的交替變換,因此波形采樣值的預(yù)存只要有兩個(gè)不同的數(shù)值就行了,為了使矩形波發(fā)生的頻率靈活可調(diào),采用60個(gè)采樣值掃描輸出來實(shí)現(xiàn),每半個(gè)矩形波周期采用三十個(gè)采樣值,循環(huán)反復(fù)將存儲(chǔ)器中的60點(diǎn)采樣值通過dac0

溫馨提示

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