基于FPGA的信號發(fā)生器設(shè)計論文_第1頁
基于FPGA的信號發(fā)生器設(shè)計論文_第2頁
基于FPGA的信號發(fā)生器設(shè)計論文_第3頁
基于FPGA的信號發(fā)生器設(shè)計論文_第4頁
基于FPGA的信號發(fā)生器設(shè)計論文_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于 FPGA 的信號發(fā)生器設(shè)計論文I摘要摘要信號發(fā)生器是數(shù)字設(shè)備運行工作中必不可少的一部分,沒有良好的信號源,最終就會導(dǎo)致系統(tǒng)不能夠正常工作,更不必談什么實現(xiàn)其它功能了。本次論文主要研究了基于 FPGA 的函數(shù)信號發(fā)生器的設(shè)計思路與軟硬件實現(xiàn)。首先介紹了本次設(shè)計任務(wù)的總體設(shè)計方案,以及該方案中涉及的知識點,所使用的軟件及硬件基本知識。在此基礎(chǔ)上進行了硬件電路的設(shè)計,主要采用 DDS(直接數(shù)字頻率合成)方案,采用了Altera 公司的低成本 cyclone II 系列 FPGA 的 EP2C5QC8 作為核心芯片,構(gòu)建了外圍的 0832DA 轉(zhuǎn)換電路,以及 1MHZ 低通濾波電路。再次介紹系統(tǒng)

2、軟件的設(shè)計過程,給出了 FPGA 自底向上的設(shè)計思路,以及各個底層模塊的設(shè)計原理與思路分析,最后介紹了相關(guān)軟件的應(yīng)用知識。最后一段介紹了論文的相關(guān)結(jié)論,進行仿真調(diào)試的過程。實現(xiàn)了設(shè)計任務(wù)的頻率從 100HZ 到 1MHZ 可調(diào),幅度從 0.1V 到 5V 可調(diào)的功能。系統(tǒng)的設(shè)計方案和設(shè)計過程具有參考和學(xué)習(xí)價值。關(guān)鍵詞:信號發(fā)生器 FPGA Modelsim Verilog 語言基于 FPGA 的信號發(fā)生器設(shè)計論文IIAbstractThe signal generator is an essential part of the work of digital equipment operati

3、on, without a good source, and ultimately will cause the system to work properly, not to talk about the achievement of other features.This thesis studied the software and hardware design of the FPGA-based Signal Generator. First introduced the overall design of the design task, and knowledge involve

4、d in the program, use basic software and hardware knowledge. On this basis, the hardware circuit design, using DDS (Direct Digital Frequency Synthesizer) program, using Alteras low-cost cyclone II FPGA series EP2C5QC8 core chip to build a peripheral 0832DA conversion circuit, and 1MHZ low pass filte

5、r circuit. Re-introduce the system software design process, given FPGA design ideas from the bottom up, as well as the design principles and ideas of the bottom module, and finally introduced a software application knowledge. The last paragraph of the conclusions of the paper, simulation debugging p

6、rocess. Design task frequency is adjustable from 100HZ to 1MHZ function of the adjustable range from 0.1V to 5V. System design and design process has a reference and learning value.Keywords: Signal generator,F(xiàn)PGA,Modlesim,Verilog HDL基于 FPGA 的信號發(fā)生器設(shè)計論文III目錄目錄摘要.IABSTRACT.II目錄.III前言.11 概述.31.1 FPGA 簡介

7、.31.2 MODELSIM簡介.81.3 DDS 基本原理介紹 .92 設(shè)計方案.122.1 總體設(shè)計思路.122.2 方案論證.132.2.1 方案一.132.2.2 方案二.132.2.3 方案三.142.3 方案確定.143 硬件電路設(shè)計.163.1 硬件設(shè)計注意事項.163.2 DA 電路.163.3 濾波電路.183.4 硬件電路實現(xiàn).204 軟件設(shè)計.214.1 波形產(chǎn)生模塊.214.1.1 正弦波.214.1.2 矩形波.234.1.3 三角波.244.2 頻率控制模塊.244.3 相位累加模塊.254.3 選擇波形模塊.264.4 幅度控制模塊.27基于 FPGA 的信號發(fā)生

8、器設(shè)計論文IV5 調(diào) 試.325.1 設(shè)計及仿真調(diào)試使用設(shè)備.325.2 調(diào)試方法.325.2.1 硬件調(diào)試.325.2.2 軟件調(diào)試.325.2.3 綜合調(diào)試.335.3 調(diào)試結(jié)果.335.3.1 軟件仿真結(jié)果及分析.335.3.2 綜合調(diào)試結(jié)果.38總結(jié).39致謝辭.40參考文獻.41附件 1 ROM 生成元程序.42附件 2 40 位流水線加法器程序.44基于 FPGA 的信號發(fā)生器設(shè)計論文1 前言前言隨著我國的經(jīng)濟日益增長,社會對電子產(chǎn)品的需求量也就越來越大,目前我國的電子產(chǎn)品市場正在迅速的壯大,市場前景廣闊。FPGA(Field Programmable Gate Array,現(xiàn)場可

9、編程門陣列)在現(xiàn)代數(shù)字電路設(shè)計中發(fā)揮著越來越重要的作用。FPGA/CPLD(Complex Programmable Logic Device)所具有的靜態(tài)可重復(fù)編程和動態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改,這樣就極大地提高了電子系統(tǒng)設(shè)計的靈活性和通用性,縮短了產(chǎn)品的上市時間并降低可電子系統(tǒng)的開發(fā)成本,且可以毫不夸張地講,F(xiàn)PGA/CPLD能完成任何數(shù)字器件的功能,從簡單的 74 電路到高性能的 CPU。它的影響毫不亞于 20 世紀 70 年代單片機的發(fā)明和使用?,F(xiàn)在隨著電子技術(shù)的發(fā)展,產(chǎn)品的技術(shù)含量越來越高,使得芯片的復(fù)雜程度越來越高,人們對數(shù)萬門乃至數(shù)百萬門設(shè)計的

10、需求也越來越多,特別是專用集成電路(ASIC)設(shè)計技術(shù)的日趨進步和完善,推動了數(shù)字系統(tǒng)設(shè)計的迅速發(fā)展。僅靠原理圖輸入方式已不能滿足要求,采用硬件描述語言 VHDL 的設(shè)計方式應(yīng)運而生,解決了傳統(tǒng)用電路原理圖設(shè)計大系統(tǒng)工程時的諸多不便,成為電子電路設(shè)計人員的最得力助手。設(shè)計工作從行為、功能級開始,并向著設(shè)計的高層次發(fā)展。這樣就出現(xiàn)了第三代 EDA 系統(tǒng),其特點是高層次設(shè)計的自動化。 第三代 EDA 系統(tǒng)中除了引入硬件描述語言,還引入了行為綜合工具和邏輯綜合工具,采用較高的抽象層次進行設(shè)計,并按層次式方法進行管理,可大大提高處理復(fù)雜設(shè)計的能力,縮短設(shè)計周期,綜合優(yōu)化工具的采用使芯片的品質(zhì)如面積、速

11、度和功耗等獲得了優(yōu)化,因而第三代 EDA 系統(tǒng)迅速得到了推廣應(yīng)用。目前,最通用的硬件描述語言有 VHDL 和 VerilogHDL 兩種,現(xiàn)在大多設(shè)計者都使用 93 年版標準的 VHDL,并且通過了 IEEE 認定,成為世界范圍內(nèi)通用的數(shù)字系統(tǒng)設(shè)計標準。VerilogHDL 是一種新興的程序設(shè)計語言,使用 VerilogHDL 進行設(shè)計其性能總是比常規(guī)使用基于 FPGA 的信號發(fā)生器設(shè)計論文2CPU 或者 MCU 的程序設(shè)計語言在性能上要高好幾個數(shù)量級。這就是說,在傳統(tǒng)上使用軟件語言的地方,VerilogHDL 語言作為一種新的實現(xiàn)方式會應(yīng)用得越來越廣泛。本課題設(shè)計是采用美國 Altera 公

12、司的cyclone II 器件,使用的是 Altera 公司的 EDA 軟件平臺 quartus II 可編程邏輯器件開發(fā)軟件?;?EDA 工具的 FPGA/CPLD 的開發(fā)流程CPLD/FPGA 器件的設(shè)計一般可分為設(shè)計輸入、設(shè)計實現(xiàn)和編程三個設(shè)計步驟:1.設(shè)計輸入方式主要由文本輸入和圖形輸入兩種,可根據(jù)需要選擇,也可混合輸入。EDA 工具會自動檢查語法;2.設(shè)計實現(xiàn)階段 EDA 工具對設(shè)計文件進行編譯,進行邏輯綜合、優(yōu)化,并針對器件進行映射、布局、布線,產(chǎn)生相應(yīng)的適配文件;3.編程階段 EDA 軟件將適配文件配置到相應(yīng)的 CPLDFPGA 器件中,使其能夠?qū)崿F(xiàn)預(yù)期的功能。信號發(fā)生器是數(shù)字

13、設(shè)備運行工作中必不可少的一部分,沒有良好的信號源,最終就會導(dǎo)致系統(tǒng)不能夠正常工作,更不必談什么實現(xiàn)其它功能了。不論是處于開發(fā)還是故障檢修階段,輸出標準且性能優(yōu)秀的信號發(fā)生器總是能夠帶來工作效率的大幅提升,使新產(chǎn)品有一個標準的信號源、損壞的系統(tǒng)得到正確校驗,不會被一些故障所蒙蔽。在傳統(tǒng)的信號發(fā)生器中,大都使用分立元件,而且體積龐大攜帶不便,且大部分只能輸出一種脈沖信號波形。在設(shè)計領(lǐng)域,不管采用什么技術(shù)生產(chǎn),生產(chǎn)的產(chǎn)品用在哪里,其產(chǎn)品設(shè)計的宗旨都是離不開以下幾點:實用性高、成本低、可升級、功能完善可擴展等!使用專用的數(shù)字電路設(shè)計的信號發(fā)生器,設(shè)備成本高、使用復(fù)雜?;谝陨峡紤],在中小型數(shù)字電路的設(shè)

14、計和測試中,迫切需要設(shè)計一種小型易用成本低廉的信號發(fā)生器。此課題的設(shè)計以小型經(jīng)濟,集成度高,性能穩(wěn)定,使用方便為指導(dǎo),在功能上力求完善實用,同時兼顧商業(yè)價值與應(yīng)用價值的體現(xiàn)?;?FPGA 的信號發(fā)生器設(shè)計論文31 概述概述1.1 FPGA 簡介簡介FPGA(FieldProgrammable Gate Array) ,即現(xiàn)場可編程門陣列,它是在 PAL、GAL、CPLD 等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。(1)背景目前以硬件描述語言(Verilog 或 VHD

15、L)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設(shè)計驗證的技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如 AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的 FPGA 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接把 FPGA 內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品 FPGA 的邏輯塊和連接可以按照設(shè)計者而改變,所以 FPGA可以完成所需要的邏輯功能。 FPGA

16、一般來說比 ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的 FPGA。因為這些芯片有比較差的可編輯能力,所以這些設(shè)計的開發(fā)是在普通的 FPGA 上完成的,然后將設(shè)計轉(zhuǎn)移到一個類似于 ASIC 的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備) 。 (2).CPLD 與 FPGA 的關(guān)系早在 1980 年代中期,F(xiàn)PGA 已經(jīng)在 PLD 設(shè)備中扎根。CPLD 和FPGA 包括了一些相對大數(shù)量的可編輯邏輯單元。CPLD 邏輯門的密度基于 F

17、PGA 的信號發(fā)生器設(shè)計論文4在幾千到幾萬個邏輯單元之間,而 FPGA 通常是在幾萬到幾百萬。 CPLD 和 FPGA 的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD 是一個有點限制性的結(jié)構(gòu)。這個結(jié)構(gòu)由一個或者多個可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計的延遲時間和邏輯單元對連接單元高比率的優(yōu)點。而 FPGA 卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。 CPLD 和 FPGA 另外一個區(qū)別是大多數(shù)的 FPGA 含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。因此一個有關(guān)的重要區(qū)別是很多新的 FPGA 支

18、持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些 FPGA 可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運行。 (3).FPGA 工作原理FPGA 采用了邏輯單元陣列 LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊 CLB(Configurable Logic Block) 、輸出輸入模塊 IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如 PAL,GAL 及 CPLD 器件)相比,F(xiàn)PGA 具有不同的結(jié)構(gòu),F(xiàn)

19、PGA 利用小型查找表(161RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個 D 觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動 I/O,由此構(gòu)成了既可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到 I/O 模塊。FPGA 的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與 I/O 間的聯(lián)接方式,并最終決定了 FPGA 所能實現(xiàn)的功能,F(xiàn)PGA 允許無限次的編程. 目前主流的 FPGA 仍是基于查找表技術(shù)的,已經(jīng)遠遠超出了先前版本的基本性能,并且整合了常用功能(如 RAM、時鐘

20、管理和 DSP)的硬核(ASIC 型)模塊。如圖 1-1 所示(注:圖 1-1 只是一個示意圖,實際上每一個系列的 FPGA 都有其相應(yīng)的內(nèi)部結(jié)構(gòu)) ,F(xiàn)PGA 芯片主 要由 7 部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式 RAM、豐富的布線資源、內(nèi)嵌的底層基于 FPGA 的信號發(fā)生器設(shè)計論文5功能單元和內(nèi)嵌專用硬件模塊。 圖 1.1 FPGA 芯片的內(nèi)部結(jié)構(gòu)(4).FPGA 芯片的內(nèi)部結(jié)構(gòu)1)可編程輸入輸出單元(IOB) 可編程輸入/輸出單元簡稱 I/O 單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅(qū)動與匹配要求,其示意結(jié)構(gòu)如

21、圖 1-2 所示。FPGA 內(nèi)的 I/O 按組分類,每組都能夠獨立地支持不同的 I/O 標準。通過軟件的靈活配置,可適配不同的電氣標準與 I/O物理特性,可以調(diào)整驅(qū)動電流的大小,可以改變上、下拉電阻。目前,I/O 口的頻率也越來越高,一些高端的 FPGA 通過 DDR 寄存器技術(shù)可以支持高達 2Gbps 的數(shù)據(jù)速率。 基于 FPGA 的信號發(fā)生器設(shè)計論文6 圖 1.2 典型的 IOB 內(nèi)部結(jié)構(gòu)示意圖 外部輸入信號可以通過 IOB 模塊的存儲單元輸入到 FPGA 的內(nèi)部,也可以直接輸入 FPGA 內(nèi)部。當外部輸入信號經(jīng)過 IOB 模塊的存儲單元輸入到 FPGA 內(nèi)部時,其保持時間(Hold Ti

22、me)的要求可以降低,通常默認為 0。 為了便于管理和適應(yīng)多種電器標準,F(xiàn)PGA 的 IOB 被劃分為若干個組(bank) ,每個 bank 的接口標準由其接口電壓 VCCO 決定,一個bank 只能有 一種 VCCO,但不同 bank 的 VCCO 可以不同。只有相同電氣標準的端口才能連接在一起,VCCO 電壓相同是接口標準的基本條件。 2)可配置邏輯塊(CLB) CLB 是 FPGA 內(nèi)的基本邏輯單元。CLB 的實際數(shù)量和特性會依器件的不同而不同,但是每個 CLB 都包含一個可配置開關(guān)矩陣,此矩陣由 4 或 6 個輸入、一些 選型電路(多路復(fù)用器等)和觸發(fā)器組成。開關(guān)矩陣是高度靈活的,可以

23、對其進行配置以便處理組合邏輯、移位寄存器或 RAM。在 Xilinx 公司的 FPGA 器件中,CLB 由多個(一般為基于 FPGA 的信號發(fā)生器設(shè)計論文74 個或 2 個)相同的 Slice 和附加邏輯構(gòu)成,如圖 1-3 所示。每個 CLB模塊不僅可以用于實現(xiàn)組合邏輯、時序邏輯,還可以配置為分布式RAM 和分布式 ROM。 圖 1.3 典型的 CLB 結(jié)構(gòu)示意圖(5)基本特點采用 FPGA 設(shè)計 ASIC 電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。 FPGA 可做其它全定制或半定制 ASIC 電路的中試樣片。 FPGA 內(nèi)部有豐富的觸發(fā)器和 I/O 引腳。 FPGA 是

24、ASIC 電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。 FPGA 采用高速 CMOS 工藝,功耗低,可以與 CMOS、TTL 電平兼容。 可以說,F(xiàn)PGA 芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 基于 FPGA 的信號發(fā)生器設(shè)計論文8FPGA 是由存放在片內(nèi) RAM 中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的 RAM 進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時,F(xiàn)PGA 芯片將 EPROM 中數(shù)據(jù)讀入片內(nèi)編程 RAM 中,配置完成后,F(xiàn)PGA 進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA 能夠反復(fù)使用。FP

25、GA的編程無須專用的 FPGA 編程器,只須用通用的 EPROM、PROM 編程器即可。當需要修改 FPGA 功能時,只需換一片 EPROM 即可。這樣,同一片 FPGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA 的使用非常靈活。1.2 modelsim 簡介簡介Mentor 公司的 ModelSim 是業(yè)界最優(yōu)秀的 HDL 語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持 VHDL 和 Verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk 技術(shù)、和單一內(nèi)核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺無關(guān),便于保護 IP 核,個性化的圖形界面和用戶接口

26、,為用戶加快調(diào)錯提供強有力的手段,是 FPGA/ASIC 設(shè)計的首選仿真軟件。 (1)主要特點: RTL 和門級優(yōu)化,本地編譯結(jié)構(gòu),編譯仿真速度快,跨平臺跨版本仿真; 單內(nèi)核 VHDL 和 Verilog 混合仿真; 源代碼模版和助手,項目管理; 集成了性能分析、波形比較、代碼覆蓋、數(shù)據(jù)流 ChaseX、Signal Spy、虛擬對象 Virtual Object、Memory 窗口、Assertion 窗口、源碼窗口顯示信號值、信號條件斷點等眾多調(diào)試功能; C 和 Tcl/Tk 接口,C 調(diào)試; 對 SystemC 的直接支持,和 HDL 任意混合; 支持 SystemVerilog 的設(shè)計

27、功能; 對系統(tǒng)級描述語言的最全面支持,SystemVerilog,SystemC,PSL; ASIC Sign off。 ModelSim 分幾種不同的版本:SE、PE、LE 和 OEM,其中 SE 是最高級的版本,而集成在 Actel、Atmel、Altera、Xilinx 以及 Lattice基于 FPGA 的信號發(fā)生器設(shè)計論文9等 FPGA 廠商設(shè)計工具中的均是其 OEM 版本。SE 版和 OEM 版在功能和性能方面有較大差別,比如對于大家都關(guān)心的仿真速度問題,以Xilinx 公司提供的 OEM 版本 ModelSim XE 為例,對于代碼少于 40000行的設(shè)計,ModelSim SE

28、 比 ModelSim XE 要快 10 倍;對于代碼超過40000 行的設(shè)計,ModelSim SE 要比 ModelSim XE 快近 40 倍。ModelSim SE 支持 PC、UNIX 和 LINUX 混合平臺;提供全面完善以及高性能的驗證功能;全面支持業(yè)界廣泛的標準;Mentor Graphics 公司提供業(yè)界最好的技術(shù)支持與服務(wù)。1.3 DDS 基本原理介紹基本原理介紹DDS 是一種全數(shù)字的頻率合成方法,其基本結(jié)構(gòu)主要由相位累加器、波形,ROM、DA 轉(zhuǎn)換器和低通濾波器四個部分構(gòu)成,相位累加器,波形 ROM,DA 轉(zhuǎn)換器,低通濾波器。具體結(jié)構(gòu)參見上文圖 2。相位累加器由一個 N

29、位的加法器和一個 N 位的寄存器構(gòu)成,通過把上一個時鐘的累加結(jié)果反饋回加法器的輸入端而實現(xiàn)累加功能。從而使輸出結(jié)果每一個時鐘周期遞增 K。這里 N 為相位累加器的字長,K 稱為頻率控制字。 圖 1.4 相位累加器示意圖其中相位累加器字長為 N,DDS 控制時鐘頻率為,頻率控制字為 K。DDS 直接從“相位”的概念出發(fā)進行頻率合成。相位累加器由加法器與累加寄存器級聯(lián)構(gòu)成。每來一個時鐘脈沖,加法器將頻率控制字 K 與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果送至累加寄存器的數(shù)據(jù)輸入端。累加寄存器將加法器在上一個時鐘脈沖作用后所產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下基于 FPGA

30、 的信號發(fā)生器設(shè)計論文10一個時鐘脈沖的作用下繼續(xù)與頻率控制字相加。這樣,相位累加器在每一個時鐘脈沖輸入時,把頻率控制字累加一次,相位累加器輸出的數(shù)據(jù)就是合成信號的相位,相位累加器的溢出頻率就是 DDS 輸出的信號頻率。DDS 的核心就是相位累加器,利用它來產(chǎn)生信號遞增的相位信息,整個 DDS 系統(tǒng)在統(tǒng)一的參考時鐘下工作,每個時鐘周期相位累加器作加法運算一次。加法運算的步進越大,相應(yīng)合成的相位值變化越快,輸出信號的頻率也就越高。對于幅值歸一化的正弦波信號的瞬時幅值完全由瞬時相位來決定,因為,所以相位變化越快,信號的/ tdw頻率越高。ROM 表完成將累加器相位信息轉(zhuǎn)換為幅值信息的功能。再由 D

31、A 完成數(shù)字抽樣信號到迮續(xù)時域信號的轉(zhuǎn)換,DA 輸出的臺階信號再經(jīng)低通濾波器平滑可以得到精確的連續(xù)正弦信號波形。相位累加器利用 Nbit 二進制加法器的模溢出特性來模擬理想正弦波的 2相位周期。相位累加器輸出和 ROM 輸出可分別理解為理想正弦波相位信號和時域波形的時鐘抽樣。用相位累加器輸出的數(shù)據(jù)作為波形存儲器的相位取樣地址,這樣就可以把存儲在波形存儲器內(nèi)的波形抽樣值(二進制編碼)經(jīng)查找表查出,完成相位到幅值轉(zhuǎn)換。波形存儲器的輸出送到 DA 轉(zhuǎn)換器,DA 轉(zhuǎn)換器將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求合成頻率的模擬量形式信號。低通濾波器用于濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號。假設(shè),相

32、位累加器字長為 N,DDS 控制時鐘頻率為 fc,時鐘周期為 Tc=1/fc,頻率控制字為 K。系統(tǒng)工作時,累加器的單個時鐘周期的增量值為,相應(yīng)角頻率為nK2/2* 。 ,所以 DDS 的輸出頻率為 fdds=fcKTctn*2*2/,DDS 輸出頻率步進間隔為。nfcK2/*2/nfcfdds2/因 DDS 輸出信號是對正弦波的抽樣合成的,所以應(yīng)滿足 Niqust 定理要求,即 foDsfd2,也就是要求 K=255) X1=8d0;else if(!key1)X1=X1+8d1; 圖 4.9 幅度控制模塊電路符號endalways(posedge clk) begin if (Romdat

33、a=0)X2=8d0;else if(!key2)X2=X2+8d1;endalways(*)beginif(!key1|!key2)Romdata_temp1=Romdata+8d5*(X1-X2);endassign Amplitude=Romdata_temp1;endmodule基于 FPGA 的信號發(fā)生器設(shè)計論文30頻率控制部分程序流程圖如下: 圖 4.10 頻率控制模塊流程圖根據(jù)上文中提到的 DDS 的原理可以知道,要控制系統(tǒng)輸出頻率的大小只需要相應(yīng)的改變頻率控制字的大小便可以實現(xiàn)。頻率控制模塊通過兩個按鍵實現(xiàn)對對頻率控制字的調(diào)節(jié)。當檢測到按鍵按下時,對頻率控制字進行固定值得加減,

34、從而調(diào)節(jié) DDS 輸出的頻率大小的固定開始返回頻率控制按下否讀入按鍵數(shù)值頻率控制模塊YN按下鍵否基于 FPGA 的信號發(fā)生器設(shè)計論文31按下鍵否?調(diào)節(jié)。具體過程如圖 4.10 所示。波形選擇部分流程圖如下: 圖 4.11 波形選擇模塊流程圖根據(jù)上文中提到的幅度控制原理可以知道,要控制系統(tǒng)輸出幅度的大小只需要相應(yīng)的改變從波形 ROM 中讀出的幅度參考值的大小,對于 8 為的 DAC0832 來說每次按鍵時對輸出的數(shù)值進行以 5 為步進的縮放便可實現(xiàn)以 0.1V 為步進的調(diào)節(jié),幅度控制模塊通過兩個按鍵實現(xiàn)對對幅度的調(diào)節(jié)。當檢測到按鍵按下時,對頻率控制字進行固定值得加減,從而調(diào)節(jié) DDS 輸出的幅度

35、參考值并送入 DAC 進行轉(zhuǎn)化。具體過程如圖 4.11 所示。開始返回波形選擇控制按下否進行波形的調(diào)用調(diào)用波形選擇程序YNYN基于 FPGA 的信號發(fā)生器設(shè)計論文32軟件設(shè)計總成:此次設(shè)計采用自低向上設(shè)計,通過先完成頻率控制模塊,累加器模塊,波形數(shù)據(jù) ROM,數(shù)據(jù)選擇器,幅度控制器無個部分,并且生成相應(yīng)的電路符號,原理圖輸入法實現(xiàn)個部分的連接。 圖 4.12 頂層連接圖FPGA 設(shè)計資源報告: 圖 4.13 FPGA 資源消耗圖基于 FPGA 的信號發(fā)生器設(shè)計論文335 調(diào)調(diào) 試試5.1 設(shè)計及仿真調(diào)試使用設(shè)備設(shè)計及仿真調(diào)試使用設(shè)備示波器:Hitachi V-1060,萬用表,F(xiàn)PGA 開發(fā)板

36、,PC 機各一臺。 5.2 調(diào)試方法調(diào)試方法根據(jù)方案設(shè)計的要求,調(diào)試過程共分三大部分:硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。電路用 FPGA/CPLD 實驗箱按模塊調(diào)試,各模塊逐個調(diào)試通過后再進行綜合調(diào)試。5.2.1 硬件調(diào)試硬件調(diào)試(1)在做控制電路的調(diào)試時,分析輸入輸出,可以發(fā)現(xiàn)時序與仿真結(jié)果是否有出入,便于找出硬件電路中的故障。再調(diào)試 D/A 轉(zhuǎn)換是否正常。 (2) 為提高電路抗干擾性能,我們采取了一些抗干擾措施。如接線線盡量短,減少交叉,每個芯片的電源與地之間都接有去擾電容,數(shù)字地與模擬地分開。實踐證明,這些措施對消除某些引腳上的 “毛刺 ” 及高頻噪聲起到了很好的效果。 (3) 運算放大器的

37、選擇 由于輸出頻率達到上千赫茲,因此對放大器的帶寬有一定要求。所以,在調(diào)試濾波電路和緩沖輸出電路時,都選擇了高速寬帶運放。5.2.2 軟件調(diào)試軟件調(diào)試 本系統(tǒng)的軟件功能強大,運用 VHDL 語言來編寫,先在MAX+PLUS II 對所編的模塊一一進行仿真,排除了語法的錯誤編寫和設(shè)計邏輯思維的錯誤,當仿真完確認程序沒問題時,再直接下載到FPGA 芯片,用 FPGA 實驗箱進行調(diào)試。采取的就是自底向上的調(diào)試基于 FPGA 的信號發(fā)生器設(shè)計論文34方法,即先單獨調(diào)試好每一個模塊,然后再連接成一個完整的系統(tǒng)再調(diào)試。5.2.3 綜合調(diào)試綜合調(diào)試 FPGA 系統(tǒng)的軟硬件設(shè)計是緊密相連的,將軟件編譯綜合并且

38、通過下載對 FPGA 進行適配,運行中的 FPGA 是由其內(nèi)部的硬件結(jié)構(gòu)控制讀出數(shù)據(jù),從而產(chǎn)生波形。因此,如果在軟硬件都基本調(diào)通的情況下,系統(tǒng)的軟硬件綜合調(diào)試難度不是很大。5.3 調(diào)試結(jié)果調(diào)試結(jié)果5.3.1 軟件仿真結(jié)果及分析軟件仿真結(jié)果及分析 1.相位累加模塊仿真(1)仿真波形圖如圖 11 所示: 圖 5.1 相位累加模塊仿真圖CLK:時鐘輸入;Ina:頻率控制字輸入;Sum:頻率控制字累加結(jié)果;基于 FPGA 的信號發(fā)生器設(shè)計論文35(2)仿真結(jié)果分析如圖所示相位累加模塊對輸入的頻率控制字累加并寄存,調(diào)節(jié)頻率控制字便可調(diào)節(jié)輸出頻率的大小,實現(xiàn)頻率的調(diào)節(jié)。2.幅度控制模塊仿真(1)仿真波形圖

39、如圖 22 所示: 圖 5.2 幅度控制模仿真圖CLK:時鐘輸入;Key1:幅度增加;Key2:幅度減少;Romdata:波形 ROM 輸出幅值;Amplitude:輸出波形幅值;(2):仿真結(jié)果分析:如圖 12 所示當設(shè)定波形 Rom 輸出為 128 時,當按下 key1(幅度增加調(diào)節(jié)按鍵,按下一次增加 0.1V,對應(yīng)幅值參數(shù)增加 5)一次后波形幅度增加 5,變?yōu)?133,再按下一次變?yōu)?138,按下第三次后變?yōu)?43,此時按下 key2(幅度減少調(diào)節(jié)按鍵,按下一次減少 0.1V,對應(yīng)幅值參數(shù)減少 5)后幅值減少 5 變?yōu)?138,此后再按一次 key1 幅值增加 5,變?yōu)?143。以上仿真

40、說明幅度調(diào)節(jié)模塊正確,可以使用。3.波形選擇模塊基于 FPGA 的信號發(fā)生器設(shè)計論文36(1)仿真波形圖如圖 13 所示:圖 5.3 波形選擇仿真圖CLK:時鐘輸入;Data1:數(shù)據(jù)輸入 1;Data2:數(shù)據(jù)輸入 2;Data3:數(shù)據(jù)輸入 3;Sel:選擇信號輸入;Outdata:輸出信號;(2)仿真結(jié)果分析:波形選擇模塊共有三個波形輸入口,分別對應(yīng)正弦波,方波,三角波,可知只要兩位二進制數(shù)據(jù)便可滿足選擇三種波形的要求,通過上圖可見當選擇信號分別為 00,01,10,是可對應(yīng)選擇data1,data2,data3,輸出。從仿真可知,波形選擇模塊可以正確選擇對應(yīng)波形。4:正弦波產(chǎn)生模塊:(1):

41、仿真波形圖;基于 FPGA 的信號發(fā)生器設(shè)計論文37 圖 5.4 正弦波產(chǎn)生仿真圖 Clk:時鐘輸入;Temp:地址寄存器;Amplitude:波形幅度輸出;(2)仿真結(jié)果分析:從仿真圖課看出正弦波產(chǎn)生模塊可以根據(jù)輸入的地址,一次從正弦波ROM 當中讀出相應(yīng)的幅度值,滿足 DDS 原理的要求。5:三角波產(chǎn)生模塊:(1):仿真波形圖; 圖 5.5 三角波產(chǎn)生仿真圖Clk:時鐘輸入;基于 FPGA 的信號發(fā)生器設(shè)計論文38Temp:地址寄存器;Amplitude:波形幅度輸出;(2)仿真結(jié)果分析:從仿真圖課看出正弦波產(chǎn)生模塊可以根據(jù)輸入的地址,一次從三角波 ROM 當中讀出相應(yīng)的幅度值,幅值均勻遞

42、增后在遞減,滿足三角波的幅度要求。5:方波波產(chǎn)生模塊:(1):仿真波形圖; 圖 5.6 方波波產(chǎn)生仿真圖Clk:時鐘輸入;Temp:地址寄存器;Amplitude:波形幅度輸出;(2)仿真結(jié)果分析:從仿真圖課看出方波產(chǎn)生模塊可以根據(jù)輸入的地址,一次從三角波 ROM 當中讀出相應(yīng)的幅度值,間隔輸出 0(對應(yīng)電壓 0V)與255(對應(yīng)電壓 5V) ?;?FPGA 的信號發(fā)生器設(shè)計論文395.3.2 綜合調(diào)試結(jié)果綜合調(diào)試結(jié)果 圖 5.7 系統(tǒng)綜合仿真圖Clk:時鐘輸入;Key1,key2:頻率控制字控制按鍵;Fword:頻率控制字輸出;Address:波形地址;sel:波形選擇控制信號;key3,

43、key4:幅度控制按鍵;Amplitude:波形幅度輸出;(2)仿真結(jié)果分析:從仿真圖可以看出系統(tǒng)檢測到頻率控制字按鍵按下后,會將預(yù)設(shè)的控制值輸入到相位累加器,并由相位累加器對頻率控制字進行累加,并截取波形 Rom 的地址,送到幅度控制模塊進行縮放后輸出。如圖可見當 sel 為 00 時選擇正弦波的波形輸出,并且 key3 檢測到按下一次,就將波形輸出的值 outdata 加 5 之后再由 Amplituide 輸出。由時序仿真圖 5.7 可一驗證本次設(shè)計方案正確,功能基本能夠?qū)崿F(xiàn)?;?FPGA 的信號發(fā)生器設(shè)計論文40 總結(jié)總結(jié) 通過此次設(shè)計,讓我深深的感覺到自己所學(xué)知識真是非常的淺薄。面

44、對電子技術(shù)日新月異的發(fā)展,利用 EDA 手段進行設(shè)計已成為不可阻擋的趨勢。相對于傳統(tǒng)至底向上的設(shè)計方式,自上而下的設(shè)計具有其顯著的優(yōu)越性。利用 EDA 設(shè)計軟件輔助設(shè)計,方便快捷,減少了錯誤率的產(chǎn)生,縮短了產(chǎn)品的設(shè)計及上市周期,既減輕了設(shè)計工作量又滿足了商業(yè)利益的需求。該系統(tǒng)以 Cyclon 器件為核心部件,可利用軟件編程實現(xiàn)了對 D/A轉(zhuǎn)換信號的處理。努力做到了線路簡單、高性價比的特點,充分利用了軟件編程,彌補了硬件元器件的不足。在設(shè)計過程當中,遇到了軟件操作不熟練,程序編寫不規(guī)范等諸多問題,通過對問題的總結(jié)分析得出,應(yīng)用軟件的主要功能必須熟練操作,才能提高工作效率,需要規(guī)范操作的地方必須嚴

45、格按照使用說明操作,避免由于軟件使用不當造成的錯誤產(chǎn)生。程序的編寫格式必須規(guī)范,模塊、端口以及信號變量的命名應(yīng)當反映實際意義,縮進格式工整明了,方便閱讀理解,這樣有利于程序的編寫,有利于分析調(diào)試,也有利于程序的重復(fù)使用。此次課題的設(shè)計已告一段落,在這次畢業(yè)設(shè)計過程中需要用一些不曾學(xué)過的東西時,就要去有針對性地查找資料,然后加以吸收利用,以提高自己的應(yīng)用能力,而且還能增長自己見識,補充最新的專業(yè)知識,學(xué)會了一些編程方面的常用算法。作為一名電子專業(yè)的畢業(yè)生,我將會繼續(xù)在新技術(shù)的道路上不斷鉆研、開拓進取。相信通過此次設(shè)計的鍛煉,我對專業(yè)知識和技能的掌握將更加牢靠,在今后的工作和學(xué)習(xí)中,必將使我受益匪

46、淺,取得應(yīng)有的成績?;?FPGA 的信號發(fā)生器設(shè)計論文41致謝辭致謝辭在這里感謝指導(dǎo)老師石堅給我耐心的指導(dǎo),在這次設(shè)計期間,碰到許多專業(yè)方面的難題,石老師都一一幫我解答,特別在教學(xué)繁忙的情況下,還為我們提供了許多寶貴的資料和意見,并幫我們作出了詳細的分析,使我們更加順利地完成此次畢業(yè)設(shè)計。通過這一個多月的時間,使我學(xué)到許多知識,明白了許多以前上課時無法理解的知識,還積累了一些較簡單的問題解決方案。與此同時也感謝同組做課題設(shè)計的同學(xué),在設(shè)計過程中,有許多東西我不懂,他們都耐心地給我講解,給予我技術(shù)支援,幫助我解決了不少難題。另外由于該方面的設(shè)計水平有限,所以存在著許多缺陷和失誤,懇請老師批評指

47、正。基于 FPGA 的信號發(fā)生器設(shè)計論文42參考文獻參考文獻1 潘松,黃繼業(yè).EDA 技術(shù)實用教程(第二版) ,北京科學(xué)出版社, 2005.22 億特科技,CPLD/FPGA 應(yīng)用系統(tǒng)設(shè)計與產(chǎn)品開發(fā),人民郵電出版社, 2005.73 李輝,PLD 與數(shù)字系統(tǒng)設(shè)計,西安電子科技大學(xué)出版社,2005.54 王志鵬,付麗琴,可編程邏輯器件開發(fā)技術(shù) MAX+PLUS II,北京國防工業(yè)出版社,2005.35 王道先,VHDL 電路設(shè)計技術(shù),北京國防工業(yè)出版社,2004.16 趙不賄,在系統(tǒng)可編程器件與開發(fā)技術(shù),機械工業(yè)出版社, 2001.67 曾繁泰,EDA 工程的理論與實踐,電子工業(yè)出版社,2004

48、.58 尹佳喜,尹仕,基于 CPLD 的三相多波形函數(shù)發(fā)生器設(shè)計http:/ 高淼,基于 FPGA 的自治型 SPWM 波形發(fā)生器的設(shè)計http:/ 李剛強, FPGA 設(shè)計中關(guān)鍵問題的研究 http:/ 基于 FPGA 的信號發(fā)生器設(shè)計論文43附件附件 1 ROM 生成元程序生成元程序ROM 生成元程序:module sinrom (address, clock,q);input7:0 address;input clock;output7:0 q;wire 7:0 sub_wire0;wire 7:0 q = sub_wire07:0;altsyncramaltsyncram_component (.clock0 (clock),.address_a (address),.q_a (sub_wire0),.aclr0 (1b0),.aclr1 (1b0),.address_b (1b1),.addressstall_a (1b0),.addressst

溫馨提示

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

評論

0/150

提交評論