基于fpga的智能函數(shù)發(fā)生器畢業(yè)論文_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設計(論文)</b></p><p>  題目 基于FPGA的智能函數(shù)發(fā)生器 </p><p>  院 系 應用技術學院 </p><p>  專

2、 業(yè) 電子信息工程(應用技術方向) </p><p>  年 級 2009級 </p><p>  學生姓名 </p><p>  學生學號 </p><p&

3、gt;  指導教師 職稱 副教授 </p><p>  完成畢業(yè)設計(論文)時間 2013 年 1 月</p><p><b>  目 錄</b></p><p>  第一章 緒論………………………………………………………………………………… 1</p><p> ?。ㄒ?/p>

4、)引言………………………………………………………………………………1</p><p>  (二)選題背景及目的………………………………………………………………… 1</p><p>  第二章 軟件平臺的應用…………………………………………………………………… 2</p><p> ?。ㄒ唬?FPGA簡介………………………………………………………………………2<

5、;/p><p> ?。ǘ?VHDL&Verilog……………………………………………………………2</p><p> ?。ㄈ?Quartus II軟件簡介……………………………………………………………2</p><p>  第三章 智能函數(shù)發(fā)生器的原理與設計…………………………………………………… 3</p><p>  (一)設計要

6、求………………………………………………………………………… 3</p><p> ?。ǘ┰O計思路………………………………………………………………………3</p><p>  2 方案選擇…………………………………………………………………………… 3</p><p>  2.1波形函數(shù)發(fā)生方案對比選擇……………………………………………3</p><

7、;p>  2.2波形函數(shù)輸出控制方式選擇……………………………………………3</p><p> ?。ㄈ┫到y(tǒng)的整體原理框圖………………………………………………………4</p><p> ?。ㄋ模└髂3绦蛟O計及仿真………………………………………………………4</p><p>  4.1遞增斜波模塊……………………………………………………………4</p>

8、;<p>  4.2遞減斜波模塊……………………………………………………………5</p><p>  4.3三角波模塊………………………………………………………………6</p><p>  4.4階梯波模塊………………………………………………………………6</p><p>  4.5方波模塊…………………………………………………………………7</

9、p><p>  4.6方波模塊…………………………………………………………………………8</p><p>  4.7輸出波形選擇模塊……………………………………………………………9</p><p>  第四章 系統(tǒng)聯(lián)調(diào)測試分析……………………………………………………………… 10</p><p> ?。ㄒ唬?系統(tǒng)總體電路原理圖的設計………………

10、………………………………… 11</p><p> ?。ǘ┱w編譯結果……………………………………………………………………11</p><p>  (三)系統(tǒng)總體仿真分析………………………………………………………………11</p><p> ?。ㄋ模┬酒_鎖定……………………………………………………………………12</p><p>  第

11、五章 總結……………………………………………………………………………… 13</p><p> ?。ㄒ唬?結論……………………………………………………………………………13</p><p> ?。ǘ┘夹g展望…………………………………………………………………………13</p><p>  致謝……………………………………………………………………………………13&l

12、t;/p><p>  參考文獻…………………………………………………………………………13</p><p>  附錄………………………………………………………………………………14</p><p>  基于FPGA的智能函數(shù)發(fā)生器</p><p>  摘要: 函數(shù)發(fā)生器是一種多波形的信號源,它可以產(chǎn)生方波、三角波、鋸齒波,甚至任意波形。函數(shù)發(fā)生器

13、使用范圍很廣,它是一種不可缺少的或通用信號源??梢杂糜谏a(chǎn)測試、儀器維修、實驗室,還廣泛使用在其它科技領域,如醫(yī)學、教育、化學、通訊、物理學、工業(yè)控制、軍事和宇航等。</p><p>  函數(shù)發(fā)生器的的設計方法有多種,直接數(shù)字頻率合成就是其中的一種。直接數(shù)字頻率合成是一種新的頻率合成方法,是頻率合成技術的一次革命,隨著數(shù)字頻率集成電路和可編程技術的發(fā)展,直接數(shù)字頻率合成技術日益顯露出它的優(yōu)越性。本設計利用FPGA

14、為核心和Altera公司的設計工具Quartus II進行設計,并結合VHDL語言進行編程??梢援a(chǎn)生遞增斜波、遞減斜波、方波、三角波及階梯波,并可以通過開關選擇輸出的波形。此設計既可以學習到頻率合成技術、數(shù)字電路、,也可以學習到FPFA和其他的仿真軟件等知識性應用。另外,通過模塊化的設計(即把一個設計分成若干個模塊,對每個模塊進行設計和完善,再對每個模塊進行組合和完善,最后形成完整的設計)更能夠掌握系統(tǒng)的整體設計。</p>

15、<p>  關鍵詞:FPGA; VHDL; 函數(shù)發(fā)生器;</p><p>  Function generaror of intelligent Based on FPGA</p><p>  Abstract: the function generator is a multi-wave signal source, it can generate sine wave,

16、square wave, triangle wave, sawtooth wave, or even arbitrary waveform. Function generator using range is very wide, it is a kind of indispensable general signal source. It can be used for production testing, instrument r

17、epair, laboratory, also widely used in other scientific fields, such as medicine, education, chemistry, communication, geophysics, industrial control, such as military and aerospace.</p><p>  A function gene

18、rator design method has many kinds, direct digital frequency synthesis is one of a kind. Direct digital synthesis is a new method for frequency synthesis, frequency synthesis technology is a revolution, along with the di

19、gital frequency integrated circuits and programmable technology, direct digital frequency synthesis technology is increasingly revealing its superiority. This design uses the FPGA as the core and Altera companies to desi

20、gn tools Quartus II design, and combined with</p><p>  Key words:FPGA; VHDL; function generato</p><p><b>  第一章 緒論</b></p><p> ?。ㄒ唬┮?</p><p>  E

21、DA(electronic design automation,電子設計自動化)技術是現(xiàn)代電子工程領域的一門新技術。它提供了基于計算機和信息技術的電路系統(tǒng)設計方法。EDA技術的發(fā)展和推廣應用極大地推動了電子工業(yè)的發(fā)展,隨著EDA技術的發(fā)展,硬件電子電路的設計幾乎全部可以依靠計算機來完成。這樣就大大縮短了硬件電子電路設計的周期從而使制造商可以快速開發(fā)出品種多批量小的產(chǎn)品,以滿足市場眾多的需求。EDA技術的推廣是當今世界的一個技術熱點。ED

22、A技術是現(xiàn)代電子工業(yè)中不可缺少的一項技術。傳統(tǒng)設計應用分立元件或通用數(shù)字電路芯片,設計周期長,花費大,而且往往局部功能優(yōu)化,而整體功能較差。EDA 以計算機為平臺,根據(jù)硬件描述語言,如VHDL自動地完成邏輯編譯、化簡分割、綜合及優(yōu)化,布局布線,仿真直至對特定目標芯片的適配編譯,邏輯映射和編程下載等工作。以自頂向下的設計方法,使硬件設計軟件化,擺脫了傳統(tǒng)手工設計的眾多缺點。其方法簡單,頻率穩(wěn)定度高,易于程控。隨著EDA技術的深入發(fā)展,基于

23、硬件描述語言的方法將有取代傳統(tǒng)手工設計方法的趨勢。嘗試用VHDL設計來產(chǎn)生正弦波,其頻率切換非常便捷,調(diào)試、修改也非常</p><p> ?。ǘ?選題背景及目的 </p><p>  20世紀末,電子技術獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。

24、計算器的普及大大縮短了人們在數(shù)學計算所花費的時間,但是一般的計算器只能用來計算加、減、乘、除這四類簡單的數(shù)學計算,而不是進行復雜和的函數(shù)計算。因此設計了這個智能函數(shù)發(fā)生器。此智能函數(shù)發(fā)生器內(nèi)置遞增斜波、遞減斜波、三角波、方波、正弦波及階梯波六種函數(shù)模塊,用戶可以在輸入端輸入相應的代碼選擇不同的函數(shù),從而進行函數(shù)計算并繪出一定范圍內(nèi)的函數(shù)圖形。即方便了用戶進行函數(shù)計算,又方便了用戶對這六類函數(shù)進行深入的研究。 而電子信息類產(chǎn)品的開發(fā)明顯地

25、出現(xiàn)了兩大特點:一是開發(fā)產(chǎn)品的復雜程度加深;二是開發(fā)產(chǎn)品的上市時限緊迫。而伴隨著如上兩大特點的產(chǎn)生,相應的出現(xiàn)了設計上的兩個問題。其一,在電子系統(tǒng)數(shù)字化、復雜化和大規(guī)模集成化的今天,電子廠商們迫切地追求電子產(chǎn)品的高功能、優(yōu)品質(zhì)、低成本、微功耗和微小封裝尺寸,從而使得電子設計更加復雜。那么如何去完成這些高復雜度的電子設計呢?其二,電子產(chǎn)品設計周期短和上市</p><p>  第二章 軟件平臺的應用</p&g

26、t;<p><b> ?。ㄒ唬〧PGA</b></p><p>  FPGA是Field Programmable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。</p&g

27、t;<p>  FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。它與分立元件相比,具有速度快、容量大、功耗小和可靠性高等優(yōu)點。由于集成度高,設計方法先進、現(xiàn)場可編程,可以設計各種數(shù)字電路,因此,在通信、

28、數(shù)據(jù)處理、網(wǎng)絡、儀器、工業(yè)控制、軍事和航空航天等眾多領域內(nèi)得到了廣泛應用。不久的將來將全部取代分立元件,目前一些數(shù)字集成電路生產(chǎn)廠商已經(jīng)停止了分立原件電路的生產(chǎn)。此外,F(xiàn)PGA還具有靜態(tài)可重復編程和動態(tài)在系統(tǒng)重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改。因此,F(xiàn)PGA技術的應用前景非常廣闊。</p><p> ?。ǘ?VHDL語言簡介</p><p>  VHDL(Very H

29、igh Speed Integrated Circuit Hardware Description Language,超高速集成電路硬件描述語言)是一種用來描述數(shù)字系統(tǒng)行為和結構的硬件描述語言,被廣泛的運用于描述和仿真各種數(shù)字系統(tǒng),小到幾個門,大到許多復雜集成電路相連的系統(tǒng)。</p><p>  VHDL誕生于1982年,是由美國國防部開發(fā)的一種快速設計電路的工具,目前已經(jīng)成為IEEE(The Institute

30、 of Electrical and Electronics Engineers)的一種工業(yè)標準硬件描述語言。相比傳統(tǒng)的電路系統(tǒng)的設計方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)和基于庫(Library Based)的設計的特點,因此設計者可以不必了解硬件結構。從系統(tǒng)設計入手,在頂層進行系統(tǒng)方框圖的劃分和結構設計,在方框圖一級用VHDL對電路的行為進行描述,并進行仿真和糾錯,然后在系統(tǒng)一級進行驗

31、證,最后再用邏輯綜合優(yōu)化工具生成具體的門級邏輯電路的網(wǎng)表,下載到具體的FPGA器件中去,從而實現(xiàn)可編程的專用集成電路(ASIC)的設計。</p><p>  (三)Quartus II軟件簡介</p><p>  Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description L

32、anguage)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。</p><p>  QuartusII支持Altera的IP核,包含了LPM/MegaFuction宏功能模塊庫,使用它,可以簡化設計的復雜性,加快設計速度。QuartusII平臺支持一個工作組環(huán)境下的設計要求,其中包括支持基于Internet的協(xié)作設計。此外,QuartusII通過和DSP Bui

33、lder工具與Matlab/SIMULINK相結合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的片上可編程系統(tǒng)開發(fā),集系統(tǒng)級設計、嵌入式軟件設計、可編程邏輯設計于一體,是一種綜性的開發(fā)平臺。</p><p>  第三章 智能函數(shù)發(fā)生器的原理與設計</p><p><b> ?。ㄒ唬┰O計要求</b></p><p>  要求設計一個智能

34、函數(shù)發(fā)生器,該函數(shù)發(fā)生器能夠產(chǎn)生遞增斜波、遞減斜波、方波、正弦波、三角波、及階梯波,并且可以通過選擇開關選擇相應的波形輸出;系統(tǒng)具有復位的功能;通過按鍵確定輸出的波形及確定是否輸出波形。FPGA是整個系統(tǒng)的核心,構成系統(tǒng)控制器,波形數(shù)據(jù)生成器,加法器,運算等功能。</p><p>  通過以上設計要求分析完成的功能,確定函數(shù)發(fā)生器可由遞增斜波產(chǎn)生模塊、遞減斜波產(chǎn)生模塊、三角波產(chǎn)生模塊、階梯波產(chǎn)生模塊、方波產(chǎn)生模塊

35、和輸出波形選擇模塊組成,以及按鍵復位控制和時鐘輸入。由此可確定系統(tǒng)的總體原理框圖為如圖1:</p><p>  圖1 總體原理框圖</p><p><b> ?。ǘ?設計思路</b></p><p><b>  2 方案選擇</b></p><p>  2.1 波形函數(shù)發(fā)生方案對比選擇<

36、;/p><p>  波形函數(shù)發(fā)生是本設計的最重要的部分,實現(xiàn)函數(shù)發(fā)生的途徑也有很多,因此必須選擇一種易于實現(xiàn)且精度高的方案,以此來提高本設計的實用性。</p><p>  方案一:通過單片機控制D/A,輸出三種波形。此方案輸出的波形不夠穩(wěn)定,抗干擾能力弱,不易調(diào)節(jié),而且達不到題目要求的六種波形。</p><p>  方案二:使用傳統(tǒng)的鎖相頻率合成方法。通過芯片IC145

37、152,壓控振蕩器搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利用過零比較器轉(zhuǎn)換成方波,積分電路轉(zhuǎn)換成三角波。此方案,電路復雜,干擾因素多,不易實現(xiàn)。</p><p>  方案三:利用MAX038芯片組成的電路輸出波形。MAX038是精密高頻波形產(chǎn)生電路,能夠產(chǎn)生準確的三角波、方波和正弦波三種周期性波形,但無法實現(xiàn)階梯波和遞增遞減斜波的產(chǎn)生。</p><p>  方案四:利用在系統(tǒng)編程技術和

38、FPGA芯片產(chǎn)生。用VHDL語言編寫程序,調(diào)試成功后下載至實驗裝置的芯片上,再利用外接D/A轉(zhuǎn)換電路實現(xiàn)以上設計功能。此種方案完全可以生成設計要求的6種波形,而且通過軟件仿真可以直觀的觀測的輸出的波形參數(shù),方便調(diào)試和更改波形參數(shù),外圍電路簡單,減少器件損耗,精度高。</p><p>  基于方案四的外圍電路簡單容易實現(xiàn)、波形產(chǎn)生精度高、易于仿真觀測調(diào)試的優(yōu)點,因此本設計的函數(shù)發(fā)生器選擇方案四完成波形發(fā)生的全部功能

39、。</p><p>  2.2 波形函數(shù)輸出控制方式選擇</p><p>  方案一:控制多路D/A開關輸出方式</p><p>  此種方案為每一路輸出的波形函數(shù)使用一路D/A轉(zhuǎn)換后輸出,通過控制開關控制每一路D/A是否工作,決定輸出的波形。此種方案可以同時輸出多路波形,但是需要路D/A轉(zhuǎn)化器,外圍電路復雜,制作成本較高而且控制復雜。</p><

40、;p>  方案二:采用數(shù)據(jù)選擇器方式</p><p>  此種方案可以利用VHDL語言寫出數(shù)據(jù)選擇器,然后每種函數(shù)發(fā)生器的輸出和數(shù)據(jù)選擇器輸入相連接,通過控制開關選擇對應的波形輸出。方案二完全可以得到方案一的設計要求,而且只需一個D/A轉(zhuǎn)換器就可以。電路不需要外部搭建,節(jié)約成本且控制簡單方便。</p><p>  方案三:采用數(shù)據(jù)分配器方式</p><p> 

41、 此種方案利用數(shù)據(jù)分配器的功能,通過控制開關選擇相應的函數(shù)發(fā)生器模塊,使之產(chǎn)生相應的波形輸出,并通過數(shù)據(jù)分配器的使能復位控制決定是否輸出波形,此種方案和方案二很相似,也能夠?qū)崿F(xiàn)設計的功能也具有方案二的優(yōu)點。</p><p>  基于方案二的設計簡便、節(jié)約制作元件和成本、控制簡便等優(yōu)點,選擇方案二作為波形函數(shù)輸出控制方式。</p><p>  (三)系統(tǒng)的整體原理框圖</p>

42、<p>  圖2 系統(tǒng)的整體原理框圖</p><p>  如圖2所示,系統(tǒng)時鐘輸入后,通過復位開關選擇是否產(chǎn)生波形,當各個模塊產(chǎn)生相應的信號波形后,通過波形選擇模塊波形選擇開關選澤輸出不同的波形,再通過D/A轉(zhuǎn)換器轉(zhuǎn)換,就可以把數(shù)字信號(由FPGA輸出)變成了相應模擬的信號波形。整個系統(tǒng)設計的核心就是FPGA部分</p><p> ?。ㄋ模?各模塊程序設計及仿真</p&

43、gt;<p>  根據(jù)自上而下的思路進行項目設計。明確每個模塊的功能以后,開始編寫各個模塊的程序。</p><p><b>  4.1遞增斜波模塊</b></p><p>  遞增斜波icrs的VHDL程序如附錄所示,其中clk是輸入時鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復位端口,q為八位二進制輸出端口。</p&g

44、t;<p>  圖3 遞增斜波模塊仿真圖</p><p>  程序設計的當復位信號為0時,輸出為0,無對應的波形產(chǎn)生。當復位信號為1時,每當檢測到時鐘上升沿時,計數(shù)器值加1,當增加到最大后清零。計數(shù)值增加呈現(xiàn)線性關系,因此輸出的波形是遞增的斜波。從仿真波形圖圖3也能看出這種變化規(guī)律。VHDL描述為:</p><p>  IF reset='0' THEN&l

45、t;/p><p>  tmp:= "00000000";--復位信號清零</p><p>  ELSIF clk'EVENT AND clk='1' THEN</p><p>  IF tmp="11111111" THEN</p><p>  tmp:="00000000

46、";--遞增到最大值清零</p><p><b>  ELSE</b></p><p>  tmp:=tmp+1;--遞增運算</p><p><b>  4.2遞減斜波模塊</b></p><p>  遞減斜波dcrs的VHDL程序如附錄所示,其中clk是輸入時鐘端口,sel0、sel1

47、、sel2為選擇波形按鍵值,reset為輸入復位端口,q為八位二進制輸出端口。</p><p>  圖4 遞減斜波模塊仿真圖</p><p>  程序設計的是復位信號為0時輸出為0,無對應的波形產(chǎn)生。當復位信號為1時,當每當檢測到時鐘上升沿時,計數(shù)值減1,當減到0后賦值到最大。計數(shù)值減少呈現(xiàn)線性關系,因此輸出的波形是遞減的斜波。從仿真波形圖圖4也能看出這種變化規(guī)律。VHDL描述為:<

48、;/p><p>  IF reset='0' THEN</p><p>  tmp:="11111111";--復位信號置最大值</p><p>  ELSIF clk'EVENT AND clk='1' THEN--檢測時鐘上升沿</p><p>  IF tmp="0000

49、0000" THEN</p><p>  tmp:="11111111";--遞減到0置最大值</p><p><b>  ELSE</b></p><p>  tmp:=tmp-1;--遞減運算</p><p><b>  4.3 三角波模塊</b></p>

50、;<p>  三角波delat的VHDL程序如附錄所示,其中clk是輸入時鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復位端口,q為八位二進制輸出端口。三角波波形是對稱的,每邊呈線形變化,所以可以根據(jù)數(shù)據(jù)做簡單運算,就可以得到三角波。</p><p>  圖5 三角波模塊仿真圖</p><p>  程序設計的是reset復位信號為0時輸出為0,無

51、對應的波形產(chǎn)生。當復位信號為1時,當每當檢測到時鐘上升沿時,當計數(shù)的數(shù)據(jù)不是最大值時,數(shù)值做遞增運算,當增大到最大時,然后再做遞減運算,因此輸出的波形便呈現(xiàn)出三角波的形狀。從仿真波形圖圖5也能看出這種變化規(guī)律。VHDL描述如下:</p><p>  IF reset='0' THEN</p><p>  tmp:="00000000";--復位信號為0,

52、置最小值</p><p>  ELSIF clk'EVENT AND clk='1' THEN--檢測時鐘上升沿</p><p>  IF a='0' THEN</p><p>  IF tmp="11111110" THEN</p><p>  tmp:="1111111

53、1"; --置最大值</p><p><b>  a:='1'; </b></p><p>  ELSE --不是最大值時遞增</p><p>  tmp:=tmp+1;--遞增運算</p><p><b>  END IF; </b></p&

54、gt;<p><b>  ELSE</b></p><p>  IF tmp ="00000001" THEN</p><p>  tmp:="00000000"; --置最小值</p><p><b>  a:='0';</b></p>

55、<p>  ELSE --a為1時,執(zhí)行遞減運算</p><p>  tmp:=tmp-1;--遞減運算</p><p><b>  4.4 階梯波模塊</b></p><p>  階梯波ladder的VHDL程序如附錄所示,其中clk是輸入時鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復位端口,q為八位

56、二進制輸出端口。</p><p>  圖6 階梯波模塊仿真圖</p><p>  階梯波設計的是數(shù)據(jù)的遞增是以一定的階梯常數(shù)向上增加,所以輸出的波形呈現(xiàn)是成階梯狀的,而不是,完全呈現(xiàn)是直線增長。從仿真波形圖圖6也能看出這種變化規(guī)律。VHDL描述如下:</p><p>  IF reset='0' THEN</p><p>

57、;  tmp:="00000000";--復位信號為0,置最小值</p><p>  ELSIF clk'EVENT AND clk='1' THEN--檢測時鐘上升沿</p><p>  IF a='0' THEN--判斷a數(shù)值,計數(shù)。</p><p>  IF tmp="11111111&qu

58、ot; THEN</p><p>  tmp:="00000000"; --計數(shù)到最大清零</p><p><b>  a:='1';</b></p><p><b>  ELSE</b></p><p>  tmp:=tmp+16;--階梯常數(shù)為16,可修改&l

59、t;/p><p><b>  a:='1'; </b></p><p><b>  END IF; </b></p><p><b>  ELSE</b></p><p>  a:='0';--循環(huán)計數(shù)標志</p><p>&

60、lt;b>  END IF; </b></p><p><b>  END IF;</b></p><p><b>  q<=tmp;</b></p><p>  END PROCESS; </p><p>  END behave;</p><p>

61、<b>  4.5方波模塊</b></p><p>  方波模塊的square的VHDL程序描述如下:其中clk為輸入時鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復位端口,q為整數(shù)輸出端口。</p><p>  圖7 方波模塊仿真圖</p><p>  方波模塊的設計是當內(nèi)部計數(shù)cnt達到64時,根據(jù)輸出標志a的

62、數(shù)值輸出對應的數(shù)值,當a=0輸出0,也即是方波周期中的低電平,當a=1,輸出255,也即是方波周期中的高電平。從圖7的連續(xù)的輸出便成了觀測到的方波波形。其VHDL描述如下:</p><p>  IF clr='0' THEN</p><p><b>  a<='0'; </b></p><p>  ELSI

63、F clk'EVENT AND clk='1' THEN --檢測時鐘上升沿</p><p>  IF cnt<63 THEN --計數(shù)64個點</p><p>  cnt:=cnt+1;--計數(shù)</p><p><b>  ELSE</b></p><p>  cn

64、t:=0; --當計數(shù)的值大于64時,清零。</p><p>  a<=NOT a; --對內(nèi)部a變量取反,a變化啟動進程END PROCESS; </p><p>  ...............</p><p>  PROCESS(clk,a)</p><p><b>  BEG

65、IN</b></p><p>  IF clk'EVENT AND clk='1' THEN</p><p>  IF a='1' THEN</p><p>  q<=255; --a=1,輸出一個波形周期內(nèi)的高電平</p><p><b>  ELSE&

66、lt;/b></p><p>  q<=0; --a=0,輸出一個波形周期的低電平。</p><p><b>  4.6正弦波模塊</b></p><p>  正弦波sin的VHDL程序如附錄所示,其中clk是輸入時鐘端口,sel0、sel1、sel2為選擇波形按鍵值,reset為輸入復位端口,q為八位二進制

67、輸出端口。</p><p>  圖8 正弦波模塊仿真圖</p><p>  正弦波產(chǎn)生原理:通過循環(huán)不斷地從波形數(shù)據(jù)ROM文件中依次讀取正弦波一個周期在時域上64個采樣點的波形數(shù)據(jù)送入波形DAC,從而產(chǎn)生正弦波。從圖8中可以看出輸出的波形成正弦關系。</p><p>  4.7輸出波形選擇模塊</p><p>  波形選擇模塊是一個設計

68、位6選1的數(shù)據(jù)選擇器,其中sel為波形數(shù)據(jù)選擇端口,d0~d5為8位二進制輸入端口,q為8位二進制輸出端口。該模塊可以根據(jù)外部開關的狀態(tài)選擇相應的波形輸出。其選擇VHDL程序如下:</p><p>  CASE sel IS</p><p>  WHEN"000"=>q<=d0;--遞增波形輸出,十進制0</p><p>  WHEN

69、"001"=>q<=d1;--遞減波形輸出,十進制1</p><p>  WHEN"010"=>q<=d2;--三角波形輸出,十進制2</p><p>  WHEN"011"=>q<=d3;--階梯波形輸出,十進制3</p><p>  WHEN"100&quo

70、t;=>q<=d4;--正弦波形輸出,十進制4</p><p>  WHEN"101"=>q<=d5;--方波輸出,十進制5</p><p>  WHEN OTHERS=>NULL; </p><p>  第四章 系統(tǒng)聯(lián)調(diào)測試分析</p><p> ?。ㄒ唬?系統(tǒng)總體電路原理圖的設計</

71、p><p>  第三章主要介紹了各個模塊的細化和分析,這章主要介紹總體電路圖、總體仿真圖等內(nèi)容。整體系統(tǒng)原理圖如圖9所示:</p><p>  圖9 整體系統(tǒng)原理圖</p><p>  圖8所示的整體系統(tǒng)原理圖按以下步驟在QUARTUS II里建立整體系統(tǒng)原理圖,首先建立工程(file>new Project Wizard )然后再添加文件(file>ne

72、w>VHDL file)進行編譯,在單擊菜單欄上的RTL Viewer最后系統(tǒng)將自動生成RTL系統(tǒng)原理圖。</p><p> ?。ǘ?整體編譯結果 </p><p>  系統(tǒng)的整體編譯結果如圖10所示</p><p>  圖10 系統(tǒng)的整體編譯結果</p><p>  從圖中可以看出QUARTUS II的版本為9.0,其中用到的芯片

73、為EP1K10TC100-3,采用時序仿真的方式,工程名為boxin,頂層實體名為boxin,共用到140個邏輯門,占總體門陣列的24%,說明該仿真文件設計合理只占用很少一部分資源在此基礎上可以擴展更多的功能。</p><p>  (三)系統(tǒng)總體仿真分析</p><p>  在第三章介紹來了各個模塊的仿真,在本節(jié)主要驗證整體的仿真結果,看是否滿足設計的要求。</p>&l

74、t;p>  圖11 系統(tǒng)總體仿真</p><p>  從圖中可以得到,clk為輸入時鐘端口、reset為輸入復位端口、sel為波形選擇輸入端、q為八位二進制輸出端口。當sel0、sel1、sel2為“000”,reset為1時,當檢測到時鐘上升沿時,計數(shù)器值加1,當增加到最大后清零。計數(shù)值增加呈現(xiàn)線性關系,當sel0、sel1、sel2為“001”,reset為1時,當每當檢測到時鐘上升沿時,計數(shù)值減1

75、,當減到0后賦值到最大。計數(shù)值減少呈現(xiàn)線性關系,當sel0、sel1、sel2為“010”,reset為1時,當每當檢測到時鐘上升沿時,當計數(shù)的數(shù)據(jù)不是最大值時,數(shù)值做遞增運算,當增大到最大時,然后再做遞減運算,當sel0、sel1、sel2為“011”,reset為1時,當檢測到時鐘上升沿時,計數(shù)器值加,當增加到最大后保持一段時間不變,再成遞減預算,輸出的波形呈現(xiàn)是成階梯狀的,當sel0、sel1、sel2為“100”,reset為1

76、時,當檢測到時鐘上升沿時,內(nèi)部計數(shù)器值加,當增加到63時輸出結果相反。當sel0、sel1、sel2為“101”,reset為1時,當檢測到時鐘上升沿時,計數(shù)器值循序漸進的曾加,成正選關系。所以從圖中可以看出</p><p><b> ?。ㄋ模┬酒_鎖定</b></p><p>  本設計所用引腳如圖12所示:</p><p><b&g

77、t;  圖12</b></p><p>  圖12 引腳鎖定圖</p><p>  從圖12中可以看出本設計運用了13個引腳,CLK與第5引腳相連,reset與第8引腳相連,sel分別與第6、7、9引腳相連,q0-q5分別與第13-16、19、23引腳相連,q6、q7分別置1。</p><p><b>  第五章 總結</b>

78、</p><p><b> ?。ㄒ唬┙Y論</b></p><p>  本文運用EDA技術,利用FPGA完成智能函數(shù)發(fā)生器的設計,運用八選一選擇器選擇波形的按鈕,實現(xiàn)5波形的互相轉(zhuǎn)換。利用Alter公司的QuartusII軟件進行驗證與原定的設計的理論是相一致。用FPGA完成波形發(fā)生器的方法與傳統(tǒng)的方法相比較,硬件結構是相當簡單的。大大減小了它的體積和重量??梢怨?jié)去傳統(tǒng)

79、的煩瑣的硬件設計和硬件組合。易于使用,按下選擇波形的選擇按鈕,即可選出你所需的波形。PFGA里面有的是有待連接的邏輯門、D觸發(fā)器等器件,它的外圍還要有EEPROM、SDRAM、FLASH與之相配合才可以正常工作,這一點可能會廣泛應用FPGA來比較麻煩。隨著技術的發(fā)展,如果把EEPROM、SDRAM、FLASH都集成要在FPGA中去,組成它的最小系統(tǒng),這樣的話將會,節(jié)去芯片外的線路設計,會得到更加廣泛地的應用。應用EDA技術完成波形發(fā)生器

80、的設計,設計簡單??梢钥吹嚼肊DA技術完成一個電子設計,可以節(jié)省我們開發(fā)時間,從而提高大大地了我們的效率。但本文也還存在一些不足之處,需要繼續(xù)研究和完善,比如說正弦波的設計不是很精確,仿真出來的圖形不是很光滑,還需要進一步的探究與設計。</p><p><b> ?。ǘ?技術展望 </b></p><p>  本設計的智能函數(shù)發(fā)生器能夠產(chǎn)生遞增斜波、遞減斜波、方波

81、、正弦波、三角波、及階梯波,沒有做出具體的實物,因此本設計要想運用于實際,還有好多方面需要進一步加強與改進,比如:硬件的設計、波形的設計、波形的改變等。 如今智能函數(shù)發(fā)生器廣泛應用于通信,雷達,測控,電子對抗以及現(xiàn)代化儀器儀表等領域,我相信在以后能夠得到更廣泛的應用。</p><p><b>  致謝</b></p><p>  在這次畢業(yè)設計過程中,得到了趙老師的細

82、心指導和無私教誨。從本課題寫開題報告和查找資料以及仿真過程開始,直至今天完成課題的研究和論文的撰寫,趙老師在學習和生活上都給予了我無私的幫助。趙老師淵博的專業(yè)知識和嚴謹?shù)闹螌W態(tài)度,深深的影響著我,鞭策我不斷奮斗、進取。在本課題完成之際,謹向我的恩師致以最衷心的感謝和最崇高的敬意! 在課題進行過程中,同組的同學也給了我很多的幫助,在此表示衷心的感謝。同時,感謝我的家人對我學業(yè)的支持,并對所有關心、支持和幫助我的老師、親人和朋友們表示深深的

83、謝意! 本人認真進行了課題的研究并完成了本論文,由于水平有限,論文中可能仍有錯誤和不足之處,敬請大家批評指正!最后,衷心感謝各位評審老師!感謝您們在百忙之中參與我的論文評閱工作,謝謝。</p><p><b>  參考文獻</b></p><p>  [1] 常紅霞,陳初俠,周平.基于FPGA 的直接頻率合成器的設計[J].皖西學院學報,2011,4(2):82-84

84、.</p><p>  [2]任志平,黨瑞榮.基于EDA 技術的智能函數(shù)發(fā)生器的設計[J].科學技術,2008(8)176-178.</p><p>  [3]馬駿然.基于FPGA的直接數(shù)字頻率合成波形發(fā)生器[J].電子測量技術,2009,(04)</p><p>  [4]羅泉,劉芝.基于FPGA的DDS信號源設計[J].廣西師范學院學報(自然科學版)2009,(

85、02).</p><p>  [5] 鄧重一.基于DDS 技術的頻率合成源設計[J].儀表技術與傳感器,2008(10):37-40.</p><p>  [6] 曾云.基于FPGA的DDS 信號源設計及誤差分析[J].艦船電子工程,2009,(2):72- 74.</p><p>  [7] 趙剛.基于FPGA的EDA綜合實驗系統(tǒng)設計[J].微計算機信息,2012

86、(01):49-51. </p><p>  [8] 金鳳蓮.VHDL語言在EDA仿真中的應用[J].現(xiàn)代電子技術 2009(06):115-117</p><p>  [9] 陳立萬,陳強,趙威微.EDA技術與實驗[M].重慶三峽學院電子與信息工程學院自編教材,2011.</p><p><b>  附錄源程序清單</b></p>

87、<p>  /***************************************************</p><p>  名稱:基于FPGA的智能函數(shù)發(fā)生器設計程序(VHDL編程)</p><p>  ***************************************************/</p><p>  --***

88、*************</p><p><b>  --頂層文件</b></p><p>  --****************</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee

89、.std_logic_unsigned.all;</p><p>  entity boxin is</p><p><b>  port (</b></p><p>  clk,reset: in std_logic;</p><p>  sel: in std_logic_vector(2 downto 0);<

90、;/p><p>  q:out std_logic_vector(7 downto 0));</p><p>  end entity;</p><p>  architecture boxin_arc of boxin is</p><p>  component icrs is--元件模塊調(diào)用</p><p>&l

91、t;b>  port (</b></p><p>  clk,reset: in std_logic;</p><p>  q0: out std_logic_vector(7 downto 0));</p><p>  end component;</p><p>  component dcrs is--元件調(diào)用<

92、/p><p><b>  port (</b></p><p>  clk,reset: in std_logic;</p><p>  q1: out std_logic_vector(7 downto 0));</p><p>  end component;</p><p>  componen

93、t delta is--元件調(diào)用</p><p><b>  port (</b></p><p>  clk,reset: in std_logic;</p><p>  q2: out std_logic_vector(7 downto 0));</p><p>  end component;</p>

94、<p>  component ladder is--元件調(diào)用</p><p><b>  port (</b></p><p>  clk, reset: in std_logic;</p><p>  q3: out std_logic_vector(7 downto 0));</p><p>  end

95、 component;</p><p>  component sin is--元件調(diào)用</p><p><b>  port (</b></p><p>  clk,clr: in std_logic;</p><p>  q4: OUT INTEGER RANGE 0 TO 255); </p><

96、;p>  end component;</p><p>  component square is--元件調(diào)用</p><p><b>  port (</b></p><p>  clk,clr: in std_logic;</p><p>  q5: out std_logic_vector(7 downto

97、0));end component;</p><p>  component ch61a is--元件調(diào)用</p><p>  port (sel:in STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p>  d0,d1,d2,d3, d5:in STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p

98、>  d4:in INTEGER RANGE 0 TO 255; </p><p>  q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); </p><p>  end component;</p><p>  signal y0,y1,y2,y3, y5:std_logic_vector(7 downto 0);</p>

99、<p>  signal y4:INTEGER RANGE 0 TO 255; </p><p><b>  begin</b></p><p>  u0: icrs port map(clk=>clk,reset=>reset,q0=>y0);</p><p>  u1: dcrs port map(clk=>

100、;clk,reset=>reset,q1=>y1);</p><p>  u2: delta port map(clk=>clk,reset=>reset,q2=>y2);</p><p>  u3: ladder port map(clk=>clk, reset=>reset,q3=>y3);</p><p>  u

101、4: sin port map(clk=>clk,clr=>reset,q4=>y4);</p><p>  u5: square port map(clk=>clk,clr=>reset,q5=>y5);</p><p>  u6: ch61a port map(sel=>sel,d0=>y0,d1=>y1,d2=>y2,d3=

102、>y3, d4=>y4,d5=>y5,q=>q);</p><p>  end boxin_arc;</p><p>  --****************</p><p><b>  --遞增波形源程序</b></p><p>  --****************</p>&

103、lt;p>  LIBRARY IEEE; </p><p>  USE IEEE.STD_LOGIC_1164.ALL; </p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL; </p><p>  ENTITY icrs IS</p><p>  PORT(clk,reset: in STD_LOGIC

104、; </p><p>  q0: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); </p><p>  END icrs; </p><p>  ARCHITECTURE icrs_c OF icrs IS</p><p><b>  BEGIN</b></p><p>  

105、PROCESS(clk,reset)</p><p>  VARIABLE tmp : STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  if reset='0' THEN</p><p>  tmp:= "00000

106、000";--復位信號清零</p><p>  ELSIF clk'EVENT AND clk='1' THEN</p><p>  if tmp="11111111" THEN</p><p>  tmp:="00000000";--遞增到最大值清零</p><p>

107、<b>  ELSE</b></p><p>  tmp:=tmp+1;--遞增運算</p><p><b>  END if; </b></p><p><b>  END if; </b></p><p><b>  q0<=tmp;</b>&l

108、t;/p><p>  END PROCESS; </p><p>  END icrs_c;</p><p>  --****************</p><p><b>  --遞減波形源程序</b></p><p>  --****************</p><p&g

109、t;  LIBRARY IEEE; </p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY dcrs IS</p><p>  PORT (clk,reset:in STD_LOGIC;</p&

110、gt;<p>  q1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p><b>  END dcrs;</b></p><p>  ARCHITECTURE dcrs_s OF dcrs IS</p><p><b>  BEGIN</b></p><

111、p>  PROCESS(clk,reset)</p><p>  VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p><b>  BEGIN</b></p><p>  if reset='0' THEN</p><p>  tmp:="

112、11111111";--復位信號置最大值</p><p>  ELSIF clk'EVENT AND clk='1' THEN--檢測時鐘上升沿</p><p>  if tmp="00000000" THEN</p><p>  tmp:="11111111";--遞減到0置最大值</

113、p><p><b>  ELSE</b></p><p>  tmp:=tmp-1;--遞減運算</p><p><b>  END if; </b></p><p><b>  END if;</b></p><p><b>  q1<=t

114、mp;</b></p><p>  END PROCESS; </p><p>  END dcrs_s;</p><p>  --****************</p><p><b>  --三角波形源程序</b></p><p>  --****************<

115、/p><p>  LIBRARY IEEE; </p><p>  USE IEEE.STD_LOGIC_1164.ALL; </p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL; </p><p>  ENTITY delta IS</p><p>  PORT(clk,reset:in

116、STD_LOGIC; </p><p>  q2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p>  end delta;</p><p>  ARCHITECTURE delta_l OF delta IS</p><p><b>  BEGIN</b></p>&l

117、t;p>  PROCESS(clk,reset)</p><p>  VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p>  VARIABLE a:STD_LOGIC; </p><p><b>  BEGIN</b></p><p>  if reset=

118、9;0' THEN</p><p>  tmp:="00000000";--復位信號為0,置最小值</p><p>  ELSIF clk'EVENT AND clk='1' THEN--檢測時鐘上升沿</p><p>  if a='0' THEN</p><p>  if

119、 tmp="11111110" THEN</p><p>  tmp:="11111111"; --置最大值</p><p><b>  a:='1'; </b></p><p>  ELSE --不是最大值時遞增</p><p>  tmp

120、:=tmp+1;--遞增運算</p><p><b>  END if; </b></p><p><b>  ELSE</b></p><p>  if tmp ="00000001" THEN</p><p>  tmp:="00000000"; --置最

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論