基于FPGA的多功能波形發(fā)生器的設(shè)計與實現(xiàn)_第1頁
基于FPGA的多功能波形發(fā)生器的設(shè)計與實現(xiàn)_第2頁
基于FPGA的多功能波形發(fā)生器的設(shè)計與實現(xiàn)_第3頁
基于FPGA的多功能波形發(fā)生器的設(shè)計與實現(xiàn)_第4頁
基于FPGA的多功能波形發(fā)生器的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄緒論51 eda技術(shù)簡介61.1 eda的論述61.2 eda的開發(fā)流程61.3 eda常用的開發(fā)工具72 波形發(fā)生器的硬件設(shè)計82.1波形發(fā)生器系統(tǒng)的結(jié)構(gòu)82.2波形發(fā)生器所用的硬件介紹.9 2.2.1 fpga芯片的介紹.92.2.2 d/a模塊轉(zhuǎn)換介紹93波形發(fā)生器的軟件設(shè)計103.1各種波形模塊設(shè)計與仿真113.1.1遞增斜波產(chǎn)生模塊設(shè)計與仿真113.1.2遞減斜波產(chǎn)生模塊設(shè)計與仿真113.1.3三角波產(chǎn)生模塊設(shè)計與仿真12 3.1.4階臺波產(chǎn)生模塊設(shè)計與仿真13 3.1.5正弦波產(chǎn)生模塊設(shè)計與仿真14 3.1.6方波產(chǎn)生模塊設(shè)計與仿真15 3.1.7波形選擇模塊設(shè)計與仿真16

2、3.2頂層設(shè)計.164 波形發(fā)生器的調(diào)試與運行.17 4.1波形發(fā)生器的調(diào)試.174.2fpga的配置設(shè)計.20 4.2.1 管腳分配.20 4.2.2 下載.20結(jié)論21參考文獻22附錄.22致謝23插圖索引圖1查找表結(jié)構(gòu)原理圖6圖2 fpga的流程圖7圖3波形發(fā)生器的結(jié)構(gòu)8圖4芯片0832的內(nèi)部結(jié)構(gòu)圖9圖5波形發(fā)生器的軟件模塊10圖6遞增斜波仿真圖17圖7遞減斜波仿真圖18圖8三角波仿真圖.18圖9階臺波仿真圖.18圖10正弦波仿真圖.19圖11方波仿真圖 .19基于fpga的多功能波形發(fā)生器的設(shè)計與實現(xiàn)摘 要應(yīng)用eda技術(shù)完成一個電子產(chǎn)品的設(shè)計, 以 fpga芯片中集成一個在電子生產(chǎn)或檢

3、測中通常用到波形發(fā)生器。在max+plus軟件開發(fā)平臺,輸入原理圖或硬件描述語言hdl完成的設(shè)計文件,系統(tǒng)將自動地完成邏輯編譯、綜合、仿真、目標芯片的適配編譯、下載等的工作。設(shè)計的工作是利用編程的方式來進行對系統(tǒng)的功能的描述,在eda工具的幫助下,應(yīng)用相應(yīng)的可編程器件,實現(xiàn)設(shè)計的最終結(jié)果。使常用到的波形發(fā)生器微型化,設(shè)計簡單化,使用簡單化?!娟P(guān)鍵詞】:fpga eda 六種波形design and implementation of multiple functions wave generator based on fpgaabstracteda application of technol

4、ogy to complete an electronic product design to fpga chip integrated in a production or electronic detection function in usually used in signal generator。 max+plus in the software development platform for the importation of schematic or hardware description language hdl design document completed, th

5、e system will automatically compile the completion of logic, integrated, simulation, the goal of the chips fit to compile, download, and so on。 design work is to use programming on the way to carry out the function of the system described in the eda tools with the help of the appropriate application

6、 of the programmable devices, designed to achieve the final result。 used to make the micro-function signal generator, simple design, simple to use。【key words】:fpga eda six kinds of waveform緒論eda(electronic design automation,電子設(shè)計自動化)技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門新技術(shù)。它提供了基于計算機和信息技術(shù)的電路系統(tǒng)設(shè)計方法。eda技術(shù)的發(fā)展和推廣應(yīng)用極大地推動了電子工業(yè)的發(fā)展

7、,隨著eda技術(shù)的發(fā)展,硬件電子電路的設(shè)計幾乎全部可以依靠計算機來完成。這樣就大大縮短了硬件電子電路設(shè)計的周期從而使制造商可以快速開發(fā)出品種多批量小的產(chǎn)品,以滿足市的眾多需求。eda技術(shù)的推廣是當今世界的一個技術(shù)熱點。eda技術(shù)是現(xiàn)代電子工業(yè)中不可缺少的一項技術(shù)。傳統(tǒng)設(shè)計應(yīng)用分立元件或通用數(shù)字電路芯片,設(shè)計周期長,花費大,而且往往局部功能優(yōu)化,而整體功能較差。eda 以計算機為平臺,根據(jù)硬件描述語言,如vhdl,自動地完成邏輯編譯、化簡分割、綜合及優(yōu)化,布局布線,仿真直至對特定目標芯片的適配編譯,邏輯映射和編程下載等工作。以自頂向下的設(shè)計方法,使硬件設(shè)計軟件化,擺脫了傳統(tǒng)手工設(shè)計的眾多缺點。其

8、方法簡單,頻率穩(wěn)定度高,易于程控。隨著eda技術(shù)的深入發(fā)展,基于硬件描述語言的方法將有取代傳統(tǒng)手工設(shè)計方法的趨勢。嘗試用vhdl設(shè)計來產(chǎn)生正弦波,其頻率切換非常便捷,調(diào)試、修改也非常節(jié)省時間。fpga是英文field programmable gate array的縮寫,即現(xiàn)場可編程門陣列,它是在pal、gal、epld等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。fpga采用了邏輯單元陣列l(wèi)ca(logic cell array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊cl

9、b(configurable logic block)、輸出輸入模塊iob(input output block)和內(nèi)部連線(interconnect)三個部分。它與分立元件相比,具有速度快、容量大、功耗小和可靠性高等優(yōu)點。由于集成度高,設(shè)計方法先進、現(xiàn)場可編程,可以設(shè)計各種數(shù)字電路,因此,在通信、數(shù)據(jù)處理、網(wǎng)絡(luò)、儀器、工業(yè)控制、軍事和航空航天等眾多領(lǐng)域內(nèi)得到了廣泛應(yīng)用。不久的將來將全部取代分立數(shù)字元件,目前一些數(shù)字集成電路生產(chǎn)廠商已經(jīng)停止了分立數(shù)字集成電路的生產(chǎn)。此外,fpga還具有靜態(tài)可重復(fù)編程和動態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改。因此,fpga技術(shù)的應(yīng)用前景

10、非常廣闊。vhdl(very high speed integrated circuit hardware description language,超高速集成電路硬件描述語言)誕生于1982年,是由美國國防部開發(fā)的一種快速設(shè)計電路的工具,目前已經(jīng)成為ieee(the institute of electrical and electronics engineers)的一種工業(yè)標準硬件描述語言。相比傳統(tǒng)的電路系統(tǒng)的設(shè)計方法,vhdl具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(top to down)和基于庫(librarybased)的設(shè)計的特點,因此設(shè)計者可以不必了解硬件結(jié)構(gòu)。從系統(tǒng)設(shè)計

11、入手,在頂層進行系統(tǒng)方框圖的劃分和結(jié)構(gòu)設(shè)計,在方框圖一級用vhdl對電路的行為進行描述,并進行仿真和糾錯,然后在系統(tǒng)一級進行驗證,最后再用邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的網(wǎng)表,下載到具體的fpga器件中去,從而實現(xiàn)可編程的專用集成電路(asic)的設(shè)計。波形發(fā)生器在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛的應(yīng)用。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻)、視頻信號或脈沖信號運載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的振蕩器。現(xiàn)在波形發(fā)生器

12、的實現(xiàn)方法通常有以下幾種:(1)用分立元件組成的波形發(fā)生器:通常是單一波形發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試。(2)可以由晶體管、運放ic等通用器件制作,更多的則是用專門的波形發(fā)生器ic產(chǎn)生。早期的波形發(fā)生器ic,如l8038、ba205、r2207/2209等,它們的功能較少,精度不高,頻率上限只有300khz,無法產(chǎn)生更高頻率的信號,調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨立調(diào)節(jié),二者互相影響。(3)利用單片集成芯片的波形發(fā)生器:能產(chǎn)生多種波形,達到較高的頻率,且易于調(diào)試。鑒于此,美國馬克西姆公司開發(fā)了新一代波形發(fā)生器,它克服了(2)中芯片的缺點,可以達到更高的技術(shù)指標,是上述芯片望

13、塵莫及的。此波形發(fā)生器頻率高、精度好,因此它被稱為高頻精密波形發(fā)生器ic。在鎖相環(huán)、壓控振蕩器、頻率合成器、脈寬調(diào)制器等電路的設(shè)計上都是優(yōu)選的器件。1. eda技術(shù)簡介1.1 eda的論述eda(electronic design automation)即電子設(shè)計自動化,它是近幾年來迅速發(fā)展起來的將計算機軟件。硬件。微電子技術(shù)交叉運用的現(xiàn)代電子學(xué)科,是20世紀90年代從cad。cam。cat和cae的概念發(fā)展而來的。eda技術(shù)就是以計算機為工作平臺。以eda軟件工具為開發(fā)環(huán)境。以硬件描述語言為設(shè)計語言。以asic為實現(xiàn)載體的電子產(chǎn)品自動化設(shè)計過程。在eda軟件平臺上,根據(jù)原理圖或硬件描述語言h

14、dl完成的設(shè)計文件,自動地完成邏輯編譯?;啞7指?。綜合及優(yōu)化。布局布線。仿真。目標芯片的適配編譯。邏輯映射和編程下載等工作。設(shè)計者的工作只限于軟件的方式來完成對就的硬件功能的描述了,要eda工具的幫助下,就應(yīng)用相應(yīng)的fpga器件就可以得到最后的設(shè)計結(jié)果。盡管目標系統(tǒng)是硬件,但整個設(shè)計和修改過程如同完成軟件設(shè)計一樣方便和高效。當然我們這說的是eda是狹義的eda,主要是指數(shù)字系統(tǒng)的自動化設(shè)計。在這設(shè)計中是基于max+plus為eda的開發(fā)工具,以altera生產(chǎn)的fpga為核心芯片,采用康草科技的產(chǎn)品作為核心板,用這兩者作為我們的橋梁,滿足開發(fā)的需求。 在一切工作開始之前先了解下我們的工具fp

15、ga芯片和max+plus軟件。目前我們的要求集成電路的集成度超來超高,由于需求的推使,經(jīng)歷了pla。pal。gal至現(xiàn)在的fpga。各種性能和集成度都不斷改進,能實現(xiàn)的功能也不斷地豐富,當然開發(fā)起來也變得容易和快速,相應(yīng)的投資也越小。因為涉及到的面也非常廣,在此只對用到的fpga作簡要的說明。fpga器件在結(jié)構(gòu)上,由邏輯功能塊排列,它的結(jié)構(gòu)可以分為三部分:可編程邏輯功能塊;可編程i/o單元;可編程內(nèi)部連線資源。可編程邏輯塊是fpga的主體,可以根據(jù)設(shè)計靈活改變其內(nèi)部的連接,完成不同的邏輯功能;可編程i/o它們是芯片與外界電路的接口部分,完成不同電氣特性下對i/o信號的驅(qū)動與匹配需求。可編程內(nèi)

16、部連線資源是連通fpga內(nèi)部所有單元,連線的長度和工藝決定著信號在連線上的驅(qū)動能力和傳輸速度。常見fpga的可編程邏輯功能塊結(jié)構(gòu)主要有3種類型:查表結(jié)構(gòu)、多路開關(guān)結(jié)構(gòu)和多級與非門結(jié)構(gòu)。查找表結(jié)構(gòu)的fpga用得相當?shù)亩?所以就以它的邏輯實現(xiàn)原理為例,如下圖所示 圖1 查找表結(jié)構(gòu)原理圖a,b,c,d由fpga芯片的管腳輸入后進入可編程連線,然后作為地址線連到查找表lut,lut中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實現(xiàn)了。 該電路中d觸發(fā)器是直接利用lut后面d觸發(fā)器來實現(xiàn)。時鐘信號clk由i/o腳輸入后進入芯片內(nèi)部的時鐘專用通道,直接連接到觸發(fā)器的時

17、鐘端。觸發(fā)器的輸出與i/o腳相連,把結(jié)果輸出到芯片管腳,就完成了圖1。1所示電路的功能。(以上這些步驟都是由軟件自動完成的,不需要人為干預(yù))fpga的開發(fā)工具也是很多的, max+plus平臺是由altera公司的開發(fā)工具之一。1.2 eda的開發(fā)流程做每一個工程跟畫畫一樣,我們先要有準備好作畫時的工具,比如紙、筆、墨。工具有了,更重要的就是思考應(yīng)怎樣出色地完成作品,都思考好了才動手畫,最后得出滿意的作品。在做每一個工程,在它的開發(fā)前都是要先了解它要用到哪些工具,它的基本的開發(fā)流程,它具體要經(jīng)過哪些過程,這樣在做工程時才不會亂作一團忙忙碌碌而無所獲?,F(xiàn)在我們擁有了開發(fā)所用到的軟硬件。接下來就到

18、我們策劃了。基于fpga的開發(fā)流程如圖2所示 : 圖2 fpga的流程圖示圖說明:構(gòu)思是一開始的必要的一個項目構(gòu)思,在它的之后才動手做我們的項目。建立工程是每個項目是著手做的第一步, max+plus以工程單元對設(shè)計過程進行管理。建立頂層圖,可以這樣理解,頂層圖是一個容器,將整個工程的各個模塊包容在里面,編譯時就是將這些模塊整合在一起。采用altera公司提供的各種功能模塊。max+plus軟件環(huán)境里包含了大量的常用功能模塊,例如計數(shù)器、累加器等等。如果采用這些功能模塊將節(jié)省你許多寶貴的開發(fā)時間,帶來事半功倍的效果。當然也可以自己去構(gòu)造屬于自己的功能模塊。將各個功能模塊用線連起來,這個過程就像

19、protel連結(jié)各電器元件,把各個芯片連接起來,組成系統(tǒng)。這時設(shè)計的系統(tǒng)就差不多出來了,下一步要為該設(shè)計選擇芯片載體,才真正在物理上實現(xiàn)系統(tǒng)功能。這一步的主要工作是:選擇芯片型號,為頂層圖的各個輸入輸出信號分配芯片的管腳,設(shè)置編譯選項,目的是讓編譯器知道更多更好的信息。編譯,這個過程像軟件開發(fā)里的編譯,但這過程比軟件的編譯要復(fù)雜得多,它畢竟最終要實現(xiàn)硬件里的物理結(jié)構(gòu),包含了優(yōu)化邏輯的組合。綜合邏輯以及布線等步驟。在max+plus這些集成環(huán)境會幫你自動完成這幾個步驟的工作。如果設(shè)計出錯了,系統(tǒng)就會有相應(yīng)的提示,那么就要根據(jù)提示進行改正,直到編譯成功。編譯后會生成.sof和.pof的文件,前者是

20、通過jtag下載到fpga內(nèi)部,設(shè)計就能實現(xiàn)預(yù)期的功能,但斷電后fpga里的信息會丟失,后者可以下載到fpga的配置芯片(eeprom或flash芯片),掉電后這些配置信息不會丟失,重新上電后通過該配置芯片對fpga的內(nèi)部ram進行配置。對于復(fù)雜的設(shè)計,工程編譯了以后可以用max+plus的仿真功能或其它仿真軟件(如modelsim)對設(shè)計反復(fù)進行仿真的驗證,直到滿足要求。1.3 eda常用的開發(fā)工具eda工具在eda技術(shù)應(yīng)用中占據(jù)極其重要的位置,eda的核心是利用計算機完成電子設(shè)計全過程自動化,因此,基于計算機環(huán)境的eda軟件的支持是必不可少的。eda工具大致可以分為如下5個模塊: 1.設(shè)計

21、輸入編輯器 2.仿真器 3.hdl綜合器 4.適配器 5.下載器當然這樣的分類并不是絕對的,現(xiàn)在往往把各個eda工具集成在一起,如用到的max+plus。一、設(shè)計輸入編輯器 設(shè)計輸入編輯器是工程設(shè)計的第一部,常用的設(shè)計輸入方法有hdl語言輸入(目前用得最多的是verilog和vhdl),原理圖輸入、ip core輸入(是指那些已設(shè)計好了的模塊)。二、仿真器它有很多仿真工具但在這講述一下基于fpga的hdl的仿真,按仿真的描述的能級別的不同,hdl仿真器可以分為單獨或綜合完成以下各步驟:系統(tǒng)級的仿真、行為仿真、rtl級仿真、門級時序仿真。這個過程按仿真是否考慮延時分類,可以分為功能仿真的時序仿真

22、,根據(jù)輸入仿真文件的不同,可以由不同的仿真器完成,也可以由同一個仿真器完成。 三、hdl綜合器 綜合器的功能就是將設(shè)計者在eda平臺上完成的針對某個系統(tǒng)的hdl、原理圖或狀態(tài)圖形描述,針對給定的硬件結(jié)構(gòu)組件,進行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級電路甚至更底層的電路描述文件。由此可知綜合器是軟件描述與硬件實現(xiàn)的一座橋梁。綜合的過程就是將電路的高級語言描述轉(zhuǎn)換成低級的、可與fpga的門陳列基本結(jié)構(gòu)相映射的網(wǎng)表文件。四、適配器 適配器的功能是將由綜合生成的網(wǎng)表文件配置于指定的目標器件中,產(chǎn)生最終的下載文件。適配器的目標器件(fpga芯片)必須屬于原綜合器指定的目標器件系列。五、下載器 編程下載就

23、是把設(shè)計下載到對應(yīng)的實際器件,實現(xiàn)硬件設(shè)計。2 波形發(fā)生器的硬件設(shè)計2.1波形發(fā)生器系統(tǒng)的結(jié)構(gòu)通過波形發(fā)生器可以得到正弦波、三角波、方波。這些波形的生產(chǎn)都是通過fpga的核心芯片,各種運算都在fpga中進行,直接輸出選擇的波形。其總的結(jié)構(gòu)示意圖如3: 圖3 波形發(fā)生器的結(jié)構(gòu)其中clk接在核心板上的50m的晶振,由于50m 的頻率太高了,要對這個頻率進行分頻,為了簡單起見,不再專門設(shè)計一個分頻器,而調(diào)用max+plus里自帶的計數(shù)器功能宏模塊,采用計數(shù)器來代替分頻器。reset是用于復(fù)位之用,而sel是用于波形的選擇。通過了fpga芯片和dac0832就可以得到波形的輸出。其中fpga是波形發(fā)生

24、器系統(tǒng)的結(jié)構(gòu)中的核心,相當于電腦的cpu。從dac0832輸出的是電流,如要在dac0832要輸出端輸出電壓,可以用一個運器,對輸出波形進行i/v轉(zhuǎn)換,在放大器在的輸入端加一個可變電阻,即可得到所需幅值。對于芯片所用到的電源核心板上已有提供,可以直接用。2.2波形發(fā)生器所用的硬件介紹采用此技術(shù)的目的就是減少耗材,同時減小器件的體積提高性能,在相同的硬件結(jié)構(gòu)系統(tǒng)中得到所需的功能。所以在這里用到的器件不多。波形發(fā)生器制作過程中用到的硬件有:4.5v的電源、以altera公司生產(chǎn)的芯片,和以這個目標芯片為核心的核心板,核心板上有穩(wěn)壓管及其供電系統(tǒng)、50mhz的晶振、sdram:8mbyte、flas

25、h:2mbyte、提供配置模式:jtag和epcs,此外所有io配置管腳通過插針引出,下載設(shè)計到目標芯片時用到的并口下載數(shù)據(jù)線;還用到選擇波形的按鈕。由于這些波形產(chǎn)生都是在fpag芯片中產(chǎn)生,產(chǎn)生的都是數(shù)字信號,比如三角波,它從00000000,clk來一個上升延信號系統(tǒng)會自動給它加1,變成了00000001,再把這個8位二進制的信號輸出來,這樣周而復(fù)始地工作。而fpga是只數(shù)字信號處理器,在模擬號轉(zhuǎn)換它是顯得很無助的。所以在它的輸出端接上一個數(shù)模轉(zhuǎn)換器,把數(shù)字信號轉(zhuǎn)換成模擬信號輸出。所以它由兩部分組成:數(shù)據(jù)產(chǎn)生,數(shù)據(jù)的轉(zhuǎn)換。2.2.1 fpga芯片的介紹1所要的頻率就是把50mhz的頻率通過

26、分頻的辦法得到所要的頻率。用通常的方法是專門設(shè)計一個分頻器,但也可以通過調(diào)用max+plus自帶的計數(shù)器的模塊宏。用到設(shè)置設(shè)計寬度為256,即可取0到256分頻范圍,在這我們都選擇為250,由此可以計算輸出的頻率:f=50mhz/500=100khz。t=10微秒2可以用3個物理的按鈕給波形選擇的信號,但這樣實行挺麻煩的,而且外圍電路要復(fù)雜并也浪費了fpga的片內(nèi)資源。我們可以利用片內(nèi)的資源去設(shè)計一個三位的六進制的加法計數(shù)器,用一個按鈕就可以進行波形的選擇。當復(fù)位時輸出全為1,每按一次就是加法計數(shù)器就自動變?yōu)?,出來的就是選擇波形的信號。3芯片的核心器件是波形發(fā)生器的處理部分。波形發(fā)生器是由正

27、弦波產(chǎn)生模塊(sin)、三角波產(chǎn)生模塊(delat)、方波產(chǎn)生模塊(square)和輸出波形選擇模塊(ch3a1)它們都是跟著輸入的時鐘的上升延而產(chǎn)生相應(yīng)的數(shù)字信號,而輸出到0832的則要由sel產(chǎn)生的選擇信號來決定。2.2.2 d/a轉(zhuǎn)換模塊介紹1d/a轉(zhuǎn)換器的類型很多,從輸入電路來說,一般的d/a轉(zhuǎn)換器都帶有輸入寄存器,與微機能直接對接。在這采用dac0832分辨率8位的d/a轉(zhuǎn)換集成電路芯片。它具有連接簡單,轉(zhuǎn)換控制方便、價格低廉等特點,在各微機系統(tǒng)中得到廣泛的應(yīng)用。如下面是dac0832的結(jié)構(gòu)框圖:圖4 芯片0832的內(nèi)部結(jié)構(gòu)圖 8位d/a轉(zhuǎn)換器,實際上是一個t型電阻網(wǎng)絡(luò),在外部運算放

28、大器配合下完成d/a轉(zhuǎn)換工作。dac0832的內(nèi)部包括兩個8位寄存器、1個8位轉(zhuǎn)換器和相應(yīng)輔助電路:8位輸入寄存器為第一級鎖存器,它的鎖存信號為ile。當ile為高電平、cs和wr1為低電平時,輸入寄存器的輸出隨輸入而變化。此后,wr1由低變高時,ile變?yōu)榈碗娖剑藭r,數(shù)據(jù)被鎖存到輸入寄存器中。我們這里這種工作方式。 8位dac寄存器為第二級鎖存器,它的鎖存信號也稱為通道控制信號。wr2和xfeb同時為低電平時,le2為高電平,這時,8位的dac寄存器的輸出隨輸入而變化,此后,當wr2由低變高時,le2變?yōu)榈碗娖?,將輸入寄存器的信息鎖存到dac寄存器。2dac0832內(nèi)部有兩個寄存器,能實現(xiàn)

29、雙緩沖、單緩沖和直通三種工作方式。我們用dac0832的單緩沖的工作方式,也就只有用一個寄存器受到控制,這時將另一個寄存器的有關(guān)控制信號預(yù)設(shè)置成有效,使之開通。3dac0832c 以電流形式輸出轉(zhuǎn)換結(jié)果,若要得到電壓形式的輸出結(jié)果需另加i/v轉(zhuǎn)換電路,這時可采用運算放大器。于我們用到的單極性輸出電路,輸出電壓的格式為:vout=-(dvref/256)式中d為輸入數(shù)字量的十進制值。因為轉(zhuǎn)換結(jié)果iout1接運算放大器的反相端,所以式中有一個負號。若vref=+5v,當d=0-255(00hffh)時,vout=-(04。98)v。調(diào)整運算放大器的調(diào)零電位器??梢詫/a芯片進行零點補償,調(diào)節(jié)外接

30、于反饋回路的電位器rp1可以調(diào)整滿量程。3 波形發(fā)生器的軟件設(shè)計設(shè)計的波形發(fā)生器就是為了得到正弦波、三角波、方波這三種波形,并可通過按鈕選擇輸出波形。波形發(fā)生器可以由正弦波產(chǎn)生模塊(sin)、三角波產(chǎn)生模塊(delat)、方波產(chǎn)生模塊(square)和輸出波形選擇模塊(ch3a1)。下圖為波形發(fā)生器內(nèi)部的頂層設(shè)計的規(guī)劃圖:圖5 波形發(fā)生器的軟件模塊如圖可以看到,控制輸入有三大塊,一個是個按鈕的數(shù)據(jù)選擇命令的輸入,一個是時時鐘輸入,它的頻率將決定輸出波形的頻率,還有一個是復(fù)位鍵。在芯片里面要處理的就有波形產(chǎn)生器產(chǎn)生相應(yīng)的數(shù)據(jù)后輸出8位的數(shù)據(jù)到數(shù)據(jù)選擇模塊中,通過按鈕發(fā)出選擇數(shù)據(jù)的指令,3選1的數(shù)

31、據(jù)選擇器選擇相應(yīng)的數(shù)據(jù)進行輸出,把這些數(shù)據(jù)輸入d/a模塊中,通過d/a模塊對數(shù)據(jù)轉(zhuǎn)換,在它的輸出端就可得到相應(yīng)的波形。3.1各種波形模塊設(shè)計與仿真3.1.1正弦波產(chǎn)生模塊設(shè)計與仿真運行max+plus軟件建立工程,在此之間現(xiàn)在任意一個盤里建立一個名為wave generator(波形發(fā)生器)文件夾。依次點擊file -new后彈出指定工程名的對話框,選擇text editor file這項,確定點ok。出現(xiàn)一個文本輸入框,點擊保存按鈕,在file name輸入sin.vhd,建立一個了設(shè)計正弦波的vhdl文檔,使文件保存在wave generator文件夾里,進入了vhdl的編輯窗口。在文本輸

32、入窗中輸入正弦波的程序,然后進行編譯與仿真。選擇“000”的值,于是由上面的設(shè)置可以直接按波形仿真按鈕,進入仿真介面.可在菜單中選擇:processsimulator命令,也可以用工具欄的按鈕.仿真介面與編譯的差不多,只是status下只有simulator狀態(tài)進度,仿真完成了后它會提示你. 當提示信息提示仿真成功之后,可以看到如下的仿真波形, 如圖6是正弦波形仿真結(jié)果:圖6 正弦波仿真圖可以從圖6中觀察得到out 是用十六進制的數(shù)來表示的,上面一個周期取了64個值, 從fe按程序選擇的查表值輸出,形成輸出形成正弦波,達到了設(shè)計要求.當復(fù)位信號為零時復(fù)位,out 置00.當它的值為1時,各器件

33、開始工作,輸出隨clk的上升延的到來而選擇對應(yīng)的值,與程序設(shè)置的正弦波一致, cs.wr同時也進入了工作狀態(tài),使得dac0832進行轉(zhuǎn)換。這也達到了設(shè)計的要求.clk的輸入時鐘t=10us ,可以用計算正弦波的周期。它的一個周期它自加減了64次,自加減一次的時間就是10us,所以正弦波的周期是64*20=1280us。3.1.3三角波產(chǎn)生模塊設(shè)計與仿真依次點擊file -new后彈出指定工程名的對話框,選擇text editor file這項,確定點ok。出現(xiàn)一個文本輸入框,點擊保存按鈕,在file name輸入delta.vhd,建立一個了設(shè)計三角波的vhdl文檔,使文件保存在wave ge

34、nerator文件夾里。進入了vhdl的編輯窗口,在文本輸入窗中輸入三角波的程序,然后進行運行與仿真。選擇“010”的值,按仿真按鈕可以直接進行仿真,提示信息提示你仿真成功之后,可以看到如下的仿真波形, 如圖7是三角波波形仿真結(jié)果: 圖7 三角波仿真圖可以從圖9中觀察得到out 是用十六進制的數(shù)來表示的,從00自減到了0f后低位就自動置f,輸出隨線性遞減,達到了設(shè)計要求.當復(fù)位信號為零時復(fù)位,out 置ff.當它的值為1時,各器件開始工作,輸出隨clk的上升延的到來而跳變. cs.wr同時也進入了工作狀態(tài),使得dac0832進行轉(zhuǎn)換。這也達到了設(shè)計的要求。clk的輸入時鐘t=10us ,可以用

35、計算遞三角波的周期。它的一個周期從00h一直計數(shù)到ffh,再從ffh自減到00h 它自加減了256*2次,自加減一次的時間就是10us,所以三角波的周期是256*2*10=5120us,即5.12ms。3.1.6方波產(chǎn)生模塊(square)依次點擊file -new后彈出指定工程名的對話框,選擇text editor file這項,確定點ok。出現(xiàn)一個文本輸入框,點擊保存按鈕,在file name輸入square.vhd,建立一個了設(shè)計方波的vhdl文檔,使文件保存在wave generator文件夾里。在文本輸入窗中輸入方波的程序。選擇“101”的值,按仿真按鈕可以直接進行仿真,提示信息提示

36、你仿真成功之后,可以看到如下的仿真波形, 如圖8是方波形仿真結(jié)果:圖8 方波仿真圖可以從圖8中觀察得到out 是用十六進制的數(shù)來表示的,它的值經(jīng)過128個時鐘脈沖秒跳變一次,形成輸出方波,也就是從00經(jīng)過128個時鐘脈沖后變?yōu)閒f,從而實現(xiàn)了0101 的值變化,達到了設(shè)計要求.當復(fù)位信號為零時復(fù)位,out 置00.當它的值為1時,各器件開始工作,輸出隨clk的相應(yīng)的上升延的到來而改變相應(yīng)的值,與程序設(shè)置的方波的要求是一致的,cs.wr同時也進入了工作狀態(tài),使得dac0832進行轉(zhuǎn)換。這也達到了設(shè)計的要求.clk的輸入時鐘t=10us ,可以用計算方波的周期。它的一個周期持續(xù)了256個時鐘周期,

37、所以方波的周期是256*10=2560us。3.1.7波形選擇模塊(ch3a1)依次點擊file -new后彈出指定工程名的對話框,選擇text editor file這項,確定點ok。出現(xiàn)一個文本輸入框,點擊保存按鈕,在file name輸入ch3a1.vhd,建立一個了設(shè)計波性選擇的vhdl文檔,使文件保存在wave generator文件夾里。在文本輸入窗中輸入波性選擇模塊的程序,然后對該程序進行編譯與仿真,波形選擇模塊是對所需要的波形進行選擇。3.2 頂層設(shè)計這一步是把各個元件連接起來, 在max+plus里面提供多種選擇。比如可以用vhdl語言里面自帶的元件例化語句,把各元件端口通過

38、用vhdl的描述,系統(tǒng)按你的描述自動你連接。當然大家知道開發(fā)復(fù)雜的程序要花大量的心血,而且不小心容易出錯。所以max+plus提供一個vhdl與原理圖混合設(shè)計方式的平臺,方法是使用vhdl語言描述底層模塊,把vhdl描述的功能模塊轉(zhuǎn)換成對應(yīng)的元件符號存在元件庫中,再就用原理圖設(shè)計方法設(shè)計頂層原理呼文件,在很多且復(fù)雜的設(shè)計中采用的是兩者的結(jié)合,這樣就可以減輕設(shè)計的工作量。在wave generator的文件夾中新建一個名為top的文件夾,用于存放頂層文件。利用上面的方法進入原理圖設(shè)計系統(tǒng),步驟如下: filenewdevice design file.執(zhí)行后就可以進入原理圖編輯窗口了.原理圖輸入

39、窗口左邊有一豎工具欄,點擊symbol tool的快捷鍵進入元件庫,在libraries:下面的窗口可以找到你要的元件符號.一般情況下它只有一個max+plus自帶的庫文件夾,里面包含有經(jīng)常用到的與.或.非,異或,與非等門,也有輸入輸出端口,也有預(yù)定義的功能模塊。如果你編譯后執(zhí)行了產(chǎn)生實體的步驟,就會在這里增加一個project文件夾,它下面的就是你設(shè)計的工程對應(yīng)的元件符號,供你任意調(diào)用。如果要調(diào)用以前的設(shè)計,可能它不會在libraries:中顯示出來,這時就要用name的對話框中調(diào)出所需的文件。選中了后它就會在右邊的窗口顯示.按ok就可以加進原理圖設(shè)計窗口, 把在end文件夾中的設(shè)計文件調(diào)出

40、到編輯窗口,按照如圖3的連線.在這要注意的是各模塊的輸出連接有兩條線以上的線都就總線的來連接,而單一個的就用導(dǎo)線,就像protel里面的原理圖設(shè)計一樣.不然在編譯時會出錯、保存、編譯,通過之后就算結(jié)束我們軟件方面的設(shè)計了.4 波形發(fā)生器的調(diào)試與運行4.1 波形發(fā)生器的調(diào)試經(jīng)max+plus編譯后,能產(chǎn)生所要的最終文件,可以下載到fpga里面,實現(xiàn)你的功能。如果你只是想驗證一下設(shè)計是否成功,可通過核心板的jtag口把芯片的配置信息后下載到fpga芯片內(nèi),掉電后配置信息丟失。如果要下載到非易失flash配置芯片(掉電后配置信息不丟失)里去,則將通過核心板上的epcs1的下載口,把文件下載到配置芯片

41、中。要下載到這些文件到芯片中實現(xiàn)功能前,還可以用max+plus自帶的仿真軟件,進行波形的仿真。4.2把設(shè)計下載到目標器中運行整個設(shè)計的預(yù)期值與仿真得到的結(jié)果相同,也即是通過了在軟件上的仿真。下一步要做的就是把設(shè)計下載到器件中去,驗證硬件與軟件的結(jié)合是否與預(yù)期值相一致。上面講述到的仿真是設(shè)計參與了編譯后,由軟件自動分配了芯片的輸入與輸出引腳,進之去仿真,得出相應(yīng)的仿真結(jié)果。但它的分配的引腳有時并不能滿足我們的設(shè)計要求,所以max+plus提供了一個管腳分配的功能。為芯片分配管腳可以用max+plus軟件里的tcl文件進行配置, 也可以用“assignmentspins”菜單,用菜單命令直觀且簡

42、單。4.2.1管腳分配在菜單命令中運行“assignmentspins”打開管腳分配的窗口,分配我們所用到的引腳:clk分配到芯片的28腳; reset分配到芯片的124腳;sel分配到芯片的122腳; out0分配到芯片的160腳;out1分配到芯片的161腳; out2分配到芯片的162腳;out3分配到芯片的163腳; out4分配到芯片的164腳;out5分配到芯片的165腳; out6分配到芯片的166腳;out7分配到芯片的167腳; cs分配到芯片的168腳;wr分配到芯片的169腳。分配完成了就之后,把分配管腳的資料保存,然后進入原理圖編輯的窗口,再按編譯的按鈕,再次編譯的目的

43、是看管腳分配是否與合理。如果合理即會通過,如果不合理系統(tǒng)就會提示出錯,那就需要你再次的分配。分配完成后我們可以查各端口分配管腳的情況,在原理圖窗口下菜單命令viewshow pin and location assignments 它會在端口顯示各管腳分配的情況。4.2.2下載一、下載設(shè)置上面建工程時已選定了芯片型號,在這里就不用再做了。如果第一次使用下載線下載配置文件到fpga,則需要在max+plus軟件設(shè)置下載線的型號等信息。先將byteblaster 下載線接到pc機的并口,執(zhí)行菜單toolsprogrammer 打開下載界面,在hardware setup可以看到 no hardar

44、e,表示還沒有設(shè)置下載線,點擊 hardware setup,彈出“hardware setup”對話框,點擊對話框中的“add haedware”,彈出“add haedware”對話框,點ok返回hardware setup對話框,從“currently selected hardware:”點擊返回下載界面,可看到下載線已經(jīng)被添加。二、將下載線一頭與pc 連接,另一頭插入到j(luò)tag口或epcs1的下載口。fpga 核心板接上+5v電源。三、如果只是想調(diào)試一下設(shè)計是否成功,可以通過jtag口把芯片的配置信息下載到fpga芯片內(nèi),掉電后配置信息會丟失。此時下載界面的“mode:”下拉列表應(yīng)選

45、擇“jtag”,并選擇工程中。sof為后綴的文件夾進行下載。一切準備好了后就按stard按鈕就可以下載文件了。下載成功后,設(shè)計也就成功了。結(jié)論應(yīng)用eda技術(shù)用fpga完成波形發(fā)生器,通過選擇波形的按鈕,實現(xiàn)四種波形的互相轉(zhuǎn)換。利用示波器可以驗證波形發(fā)生器與原定的設(shè)計的理論是相一致。用示波器的“+”端接在輸出端的,另一端接上示波器的“-”,用按鈕發(fā)送選擇波形的信號,這樣可以看到示波顯的熒屏上有相應(yīng)周期的波形。按住reset按鈕,無波形的輸出,各器件都處于復(fù)位中。用fpga完成波形發(fā)生器的方法與傳統(tǒng)的方法相比較,硬件結(jié)構(gòu)是相當簡單的。大大減小了它的體積和重量??梢怨?jié)去傳統(tǒng)的煩瑣的硬件設(shè)計和硬件組合

46、。易于使用,按下選擇波形的選擇按鈕,即可選出你所需的波形。pfga里面有的是有待連接的邏輯門、d觸發(fā)器等器件,它的外圍還要有eeprom、sdram、flash與之相配合才可以正常工作,這一點可能會廣泛應(yīng)用fpga來比較麻煩。隨著技術(shù)的發(fā)展,如果把eeprom、sdram、flash都集成要在fpga中去,組成它的最小系統(tǒng),這樣的話將會,節(jié)去芯片外的線路設(shè)計,會得到更加廣泛地的應(yīng)用。 應(yīng)用eda技術(shù)完成波形發(fā)生器的設(shè)計,設(shè)計簡單。 可以看到利用eda技術(shù)完成一個電子設(shè)計,可以節(jié)省我們開發(fā)時間,從而提高大大地了我們的效率。采用新技術(shù)就是為了提高效率,快速完成設(shè)計任務(wù)。我們做一個項目時,所在追求的

47、也是快且高效率。不斷地去快速掌握并能快速地應(yīng)用新技術(shù)是我們做技術(shù)的人的基本素質(zhì)。我們要注重自己在這方面的能力。當然我們不能廢棄我們基本的東西學(xué)科基礎(chǔ),全面發(fā)展自己,這需要我不斷去追求。參考文獻1潘松,黃繼業(yè).eda技術(shù)實用教程m.北京:科學(xué)出版社,2002:235-250.2陳美金.eda程序設(shè)計m.北京:大學(xué)出版社,2000:257-275.3陳美加.基于fpga數(shù)控源設(shè)計j.黎明學(xué)報,2003,35(6):13-18.4王文欽.高質(zhì)量微波信號源發(fā)生器研制j.電子質(zhì)量, 004(2):12-14.5鄭鳳濤,陳金佳. 基于cpld 的數(shù)控正弦波的信號源的設(shè)計j. 黎明職業(yè)大學(xué)學(xué)報,2003.8

48、(1):2530.6 侯伯亨,顧新.vhdl硬件描述語言與數(shù)字邏輯電路設(shè)計m.西安:西安電子科技大學(xué)出版社,1999.7maxim 1993 new releases data book vool-ume i.8configuring apex20k.z.a1tera公司,2000.9jonath a. titus, chriotopher a titus peterr. reny microcomputer.analog converter software and hardware interfacing.m. davidg. larsen:11-47.附錄:1 正弦波產(chǎn)生程序:libra

49、ry ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sin isport(clk,clr:in std_logic; d:out integer range 0 to 255 );end sin;architecture behave of sin isbeginprocess(clk,clr)variable b: integer range 0 to 63;beginif clr=0 thendddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull;end case;end if;end process;end behave;2 三角波產(chǎn)生程序:library ieee;use ieee.std_logic_1164.all;use iee

溫馨提示

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

最新文檔

評論

0/150

提交評論