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

下載本文檔

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

文檔簡介

1、編號: 畢業(yè)設(shè)計(論文)說明書題 目: 基于fpga的信號發(fā)生器 的設(shè)計和實現(xiàn) 院 (系): 信息與通信學(xué)院 專 業(yè): 通信工程 學(xué)生姓名: 凌遠(yuǎn)林 學(xué) 號: 0800210319 指導(dǎo)教師: 梁紅玉 職 稱: 講 師 題目類型: 理論研究 實驗研究 工程設(shè)計 工程技術(shù)研究 軟件開發(fā)2012年 5月 25日摘 要信號發(fā)生器又稱為波形發(fā)生器, 是一種常用的信號源,廣泛應(yīng)用于電子電路、通信、控制和教學(xué)實驗等領(lǐng)域。它是科研及工程實踐中最重要的儀器之一, 以往多用硬件組成,系統(tǒng)結(jié)構(gòu)比較復(fù)雜,可維護(hù)性和可操作性不佳。隨著計算機技術(shù)的發(fā)展,信號發(fā)生器的設(shè)計制作越來越多的是用計算機技術(shù),種類繁多,價格、性能

2、差異很大。用fpga 或cpld 來實現(xiàn),它的優(yōu)點是可以進(jìn)行功能仿真,而且fpga 和cpld 的片內(nèi)資源豐富,設(shè)計的流程簡單。本課題主要研究基于fpga 的信號發(fā)生器的設(shè)計和實現(xiàn),設(shè)計研究工作大部分是在計算機軟件平臺quartus ii下完成的。在quartus ii環(huán)境下,先用verilog語言進(jìn)行各模塊的程序編寫,然后生成頂層模塊,連接各模塊端口,形成信號發(fā)生器頂層原理圖,通過quartus ii仿真,得到具體數(shù)據(jù)。最后通過fpga開發(fā)板連接示波器,調(diào)試出波形進(jìn)行總結(jié)和分析。本文結(jié)構(gòu)如下:第一章 緒論,介紹課題研究的目的、發(fā)展現(xiàn)狀,最后再說明課題研究的主要內(nèi)容。第二章 對本課題研究的任務(wù)

3、要求以及工作流程進(jìn)行說明。第三章 簡單介紹開發(fā)工具和fpga原理。第四章 詳細(xì)說明信號發(fā)生器各模塊的verilog語言編程和相關(guān)原理。第五章 總結(jié)。關(guān)鍵詞:fpga;verilog編程語言;信號發(fā)生器;quartus iiabstractsignal generator, also known as a waveform generator, is a common source, widely used in electronic circuits, communications, control, and teaching experiments. it is one ofthe most

4、 important instrument in the research and engineering practice, past use of hardware components, system architecture is more complex, poor maintainability and operability. with the development of computer technology, more and more, signal generator design is the use of computer technology, a wide ra

5、nge of price, performance, very different. fpga or cpld, its advantage is that the functional simulation, and fpga and cpld chip is rich in resources, the design process is simple.the main subject of study design and implementation of fpga-based signal generator, designed most of the work completed

6、in the computer software platform, the quartus ii. the programming of the module in the quartus ii environment, use the verilog language and then generate a top-level module, connect the ports of each module, the formation of the top-level schematic diagram of the signal generator by the quartus ii

7、simulation specific data. finally, the fpga development board connected to the oscilloscope, debugging, waveform were summarized and analyzed.the paper is organized as follows:chapterintroduces the purpose of research, development status, the final description of the research of main content.chapter

8、 gives the task requirements of the research work, as well as explain the process.chapter is a brief introductiontodevelopment toolsand fpgaprinciple.chapter details the signal generator module verilog programming language and related principles. chapteris summary.key words: fpga; verilog programmin

9、g language; signal generator; the quartus ii目 錄引言11 緒論21.1 課題研究的意義21.2 國內(nèi)外研究狀況及趨勢21.3 本課題研究的主要內(nèi)容22 課題設(shè)計要求和方案說明22.1 課題研究內(nèi)容和要求22.2 課題設(shè)計方案及參數(shù)指標(biāo)說明32.2.1 設(shè)計方案32.2.2 參數(shù)指標(biāo)說明32.3 課題研究和設(shè)計工作流程33 開發(fā)工具和fpga原理43.1 altera quartus ii 9.043.2 fpga的原理44 信號發(fā)生器的verilog hdl語言編程設(shè)計和模塊建模54.1 信號發(fā)生器54.1.1 信號發(fā)生器頂層圖54.1.2 信號發(fā)

10、生器流程圖64.1.3 信號發(fā)生器模塊64.2 鎖相環(huán)模塊64.3 矩陣鍵盤掃描模塊74.3.1鍵盤掃描狀態(tài)圖84.3.2矩陣鍵盤掃描模塊84.4 分頻模塊94.4.1 吞脈沖分頻原理94.4.2 分頻模塊及仿真分析104.5 地址發(fā)生器模塊104.5.1定制初始化數(shù)據(jù)文件104.5.2定制lpm 元件124.5.3地址發(fā)生器模塊124.6 波形選擇模塊134.7 幅度調(diào)節(jié)模塊144.8 da轉(zhuǎn)換模塊144.8.1 -變換的原理144.8.2 - dac的結(jié)構(gòu)144.8.3 - dac的fpga實現(xiàn)154.9 濾波器164.10 實物圖165 總結(jié)17謝辭19參考文獻(xiàn)20引言隨著我國的經(jīng)濟(jì)日益

11、增長,社會對電子產(chǎn)品的需求量也就越來越大,目前,我國的電子產(chǎn)品市場正在迅速的壯大,市場前景廣闊。fpga在現(xiàn)代數(shù)字電路設(shè)計中發(fā)揮著越來越重要的作用。fpga/cpld所具有的靜態(tài)可重復(fù)編程和動態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改,這樣就極大地提高了電子系統(tǒng)設(shè)計的靈活性和通用性,縮短了產(chǎn)品的上市時間并降低可電子系統(tǒng)的開發(fā)成本。 傳統(tǒng)信號發(fā)生器大多由模擬電路構(gòu)成,存在連線復(fù)雜、調(diào)試煩瑣且可靠性較差等缺點。以vhdl編程語言和fpga器件為核心的可調(diào)信號發(fā)生器的設(shè)計實現(xiàn),提高了系統(tǒng)可靠性,實現(xiàn)了系統(tǒng)信號實時快速測量,也為其廣泛應(yīng)用于實際領(lǐng)域創(chuàng)造了條件。利用fpga具有的靜態(tài)

12、可重復(fù)編程和動態(tài)可系統(tǒng)重構(gòu)的特性,使得硬件功能像軟件一樣通過編程修改,從而提高開發(fā)效率,縮短研發(fā)周期。信號發(fā)生器是一種常用的信號源,它是一種為電子測量和計量工作提供信號的設(shè)備,信號源作為一種基本電子設(shè)備在教學(xué)、科研、電子產(chǎn)品測量與調(diào)試、部隊設(shè)備技術(shù)保障等領(lǐng)域,都有著廣泛的應(yīng)用。論文先簡要介紹了信號發(fā)生器的一些基本理論以及它所使用的工具quartusii。然后提出了基于信號發(fā)生器各個模塊及整體的設(shè)計方案,并對其建模和fpga語言編程,最后在通過fpga開發(fā)板演示信號發(fā)生器運行結(jié)果,在示波器上顯示出波形,并對該系統(tǒng)進(jìn)行了性能的分析和比較。1 緒論1.1 課題研究的意義隨著經(jīng)濟(jì)和科技的發(fā)展,對相應(yīng)的

13、測試儀器和測試手段也提出了更高的要求,傳統(tǒng)的信號發(fā)生器大多采用專用芯片或單片機或模擬電路,成本高、控制方式不靈活、波形種類較少等不能滿足要求。但近幾年隨著fpga技術(shù)的快速發(fā)展和廣泛應(yīng)用,其在信號發(fā)生器上的應(yīng)用得到了很好的認(rèn)同,很好的解決了有傳統(tǒng)信號發(fā)生器帶來的一些問題,信號發(fā)生器己成為測試儀器中至關(guān)重要的一類,因此開發(fā)信號發(fā)生器具有重大意義。1.2 國內(nèi)外研究狀況及趨勢隨著電子測量及其他部門對各類信號發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展,促使信號發(fā)生器種類日益增多,性能日益提高,尤其隨著70年代微處理器的出現(xiàn)更 促使信號發(fā)生器向著自動化、智能化發(fā)展,但還是存在一些問題。直到近年來現(xiàn)場可編程門

14、陣列(fpga)技術(shù)得到快速的發(fā)展和廣泛的應(yīng)用,其資源容量、工作 頻率以及集成度都得到了極大的提高,使得利用fpga實現(xiàn)某些專用數(shù)字集成電路得到了大家的關(guān)注,而基于fpga實現(xiàn)的信號發(fā)生器和以前相比有著靈活的接口和控制方式、較短的轉(zhuǎn)換時間、較寬的寬帶、以及相位連續(xù)變化和頻率分辨率較高等優(yōu)點,比起專用芯片功耗也低8,為信號發(fā)生器的發(fā)展提供了一種新的設(shè)計方法和思路。目前以硬件描述語言(verilog或vhdl)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 fpga上進(jìn)行測試,是現(xiàn)代ic設(shè)計驗證的技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如and、or、xor)或者更

15、復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的fpga里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flipflop)或者其他更加完整的記憶塊。1.3 本課題研究的主要內(nèi)容本課題主要研究基于fpga的信號發(fā)生器的設(shè)計和實現(xiàn)問題。具體內(nèi)容如下:(1)信號產(chǎn)生模塊:產(chǎn)生正弦波、三角波和方波信號的數(shù)字信號,能通過濾波器轉(zhuǎn)化成模擬信號的正弦波、三角波和方波的波形。(2)數(shù)模轉(zhuǎn)換電路模塊:分為波形dac和調(diào)幅dac兩部分。波形dac是根據(jù)fpga有輸出數(shù)據(jù)產(chǎn)生相應(yīng)的模擬波形的輸出;調(diào)幅dac是根據(jù)fpga有輸出數(shù)據(jù),用來調(diào)節(jié)波形dac的基準(zhǔn)電壓,達(dá)到輸出波形幅度調(diào)節(jié)的目的。(3)頻率控制模塊:

16、通過分頻器設(shè)置固定和可變的分頻系數(shù),從而改變信號的頻率,達(dá)到頻率調(diào)節(jié)調(diào)功能。最后,整理仿真波形、數(shù)據(jù),進(jìn)行分析總結(jié)。2 課題設(shè)計要求和方案說明2.1 課題研究內(nèi)容和要求本課題要求使用fpga軟件,通過軟件設(shè)計并實現(xiàn)信號發(fā)生器。要完成的內(nèi)容包括如下:學(xué)習(xí)并理解信號發(fā)生器的基本原理。分析并熟練掌握信號彈發(fā)生器的實現(xiàn)方案及其原理。最后在fpga上實現(xiàn)設(shè)計總體實現(xiàn)方案,通過fpga開發(fā)板和示波器得出正弦波、矩形波和三角波,深入學(xué)習(xí)并掌握各個模塊的工作原理,功能和編程實現(xiàn)方法。2.2 課題設(shè)計方案及參數(shù)指標(biāo)說明2.2.1 設(shè)計方案本課題采用4*4矩陣鍵盤作為輸入設(shè)備,通過吞脈沖技術(shù)小數(shù)分頻法對頻率進(jìn)行分

17、頻得到所需要的頻率進(jìn)行頻率調(diào)節(jié)控制,將波形數(shù)據(jù)存儲在一個rom內(nèi)存里,通過地址讀取波形數(shù)據(jù),再通過da轉(zhuǎn)換器輸出波形,其中da轉(zhuǎn)換器采用的是-變換采用過取樣技術(shù)。本課題的重點難點為吞脈沖分頻和da轉(zhuǎn)換器。2.2.2 參數(shù)指標(biāo)說明性能指標(biāo)要求:(1)信號的輸出峰值15v,步進(jìn)小于0.5v。 (2)輸出頻率f范圍為11hz100 khz,步進(jìn)頻率調(diào)節(jié)不大于1hz。 (3)兩路信號相位差調(diào)節(jié)等于1。觀察并分析仿真和實現(xiàn)結(jié)果,與理論結(jié)果進(jìn)行比較,檢驗結(jié)果是否正確,列出數(shù)據(jù),得出結(jié)論。2.3 課題研究和設(shè)計工作流程工作流程圖如下,后續(xù)章節(jié)將圍繞該設(shè)計步驟順序?qū)Ρ敬握n題研究進(jìn)行詳細(xì)敘述。完成,通過矩陣鍵盤

18、輸入,對輸出波形進(jìn)行數(shù)據(jù)收集和分析總結(jié)。熟悉使用quartusii的工作環(huán)境,學(xué)習(xí)并熟悉vhdl語言編程學(xué)習(xí)信號發(fā)生器原理,初步確定設(shè)計方案,為后續(xù)工作打好理論基礎(chǔ)在quartus ii工作環(huán)境下,使用vhdl語言進(jìn)行編程,并進(jìn)行建模通過fpga開發(fā)板和示波器進(jìn)行驗證信號發(fā)生器工作的正確性圖2-1課題工作流程3 開發(fā)工具和fpga原理3.1 altera quartus ii 9.0quartus ii 是altera的綜合性pld開發(fā)軟件,支持原理圖、vhdl、verilog hdl以及ahdl(altera hardware description language)等多種設(shè)計輸入形式,內(nèi)

19、嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整pld設(shè)計流程。quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。 quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度。對第三方eda工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三方eda工具。 此外,quartus ii 通過和dsp builder工具與matlab/simul

20、ink相結(jié)合,可以方便地實現(xiàn)各種dsp應(yīng)用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。 maxplus ii 作為altera的上一代pld設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前altera已經(jīng)停止了對maxplus ii 的更新支持,quartus ii 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。altera在quartus ii 中包含了許多諸如signaltap ii、chip editor和rtl viewer的設(shè)計輔助工具,集成了sopc和hardcopy設(shè)計流程,并且繼承

21、了maxplus ii 友好的圖形界面及簡便的使用方法。altera quartus ii 作為一種可編程邏輯的設(shè)計環(huán)境, 由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。3.2 fpga的原理fpga是field programmable gate array(現(xiàn)場可編程門陣列)的縮寫,代表的是一種可編程邏輯器件,它可以在制造完成后由用戶根據(jù)自己的需要定義其邏輯功能。fpga包含了一個邏輯單元(可以是門,也可以是查找表ram)的陣列、觸發(fā)器以及可編程的互連線。除此之外,現(xiàn)在的一些大規(guī)模fpga還包含了片內(nèi)ram、嵌入式cpu、高速收發(fā)器等資源。fpga 的顯著特點是有一

22、個窄輸入的邏輯單元,使用分布式互連方案,相對于傳統(tǒng)的諸如pal和pla之類的可編程邏輯器件來說,fpga的設(shè)計更加靈活。 fpga采用了邏輯單元陣列l(wèi)ca(logic cell array)這樣一個新概念,內(nèi)部包括可配置邏輯模塊clb(configurable logic block)、輸出輸入模塊iob(input output block)和內(nèi)部連線(interconnect)三個部分。fpga的基本特點主要有: 采用fpga設(shè)計asic電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 fpga可做其它全定制或半定制asic電路的中試樣片。 fpga內(nèi)部有豐富的觸發(fā)器和io引腳。 fpga是

23、asic電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。 fpga采用高速chmos工藝,功耗低,可以與cmos、ttl電平兼容。 可以說,fpga芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前fpga的品種很多,有xilinx的xc系列、ti公司的tpc系列、altera公司的fiex系列等。fpga是由存放在片內(nèi)ram中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的ram進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時,fpga芯片將eprom中數(shù)據(jù)讀入片內(nèi)編程ram中,配置完成后,fpga進(jìn)入工作狀態(tài)。掉電后,fpga恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因

24、此,fpga能夠反復(fù)使用。fpga的編程無須專用的fpga編程器,只須用通用的eprom、prom編程器即可。當(dāng)需要修改fpga功能時,只需換一片eprom即可。這樣,同一片fpga,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,fpga的使用非常靈活。fpga有多種配置模式:并行主模式為一片fpga加一片eprom的方式;主從模式可以支持一片prom編程多片fpga;串行模式可以采用串行prom編程fpga;外設(shè)模式可以將fpga作為微處理器的外設(shè),由微處理器對其編程。4 信號發(fā)生器的verilog hdl語言編程設(shè)計和模塊建模4.1 信號發(fā)生器4.1.1 信號發(fā)生器頂層圖圖4-1 信號發(fā)生

25、器頂層圖4.1.2 信號發(fā)生器流程圖圖4-2 信號發(fā)生器流程圖4.1.3 信號發(fā)生器模塊信號發(fā)生器模塊是本課題的一個整體的模塊,從圖中我們可以看出,通過fpga開發(fā)板從clk端口輸入一個20mhz的基準(zhǔn)時鐘信號,經(jīng)過信號發(fā)生器模塊,可以輸出out_a和out_b雙通道信號,并在示波器上顯示出波形。通過reset端口進(jìn)行復(fù)位,并通過rowin3.0和rowout3.0兩個端口8條數(shù)據(jù)線,連接到4*4矩陣鍵盤,通過矩陣鍵盤控制,可實現(xiàn)頻率調(diào)節(jié)、幅度調(diào)節(jié)、相位調(diào)節(jié)、占空比調(diào)節(jié)、波形轉(zhuǎn)換、a/b路切換等功能。圖4-3 信號發(fā)生器模塊4.2 鎖相環(huán)模塊鎖相環(huán)模塊是通過quartus ii的mega wi

26、zard plug_in manager配置兩個輸出端口,一個倍頻2倍,另一個倍頻到20倍。通過fpga提供20m基準(zhǔn)頻率,分別倍頻得到40mhz和400mhz頻率,提供給矩陣鍵盤控制模塊、頻率控制模塊以及da轉(zhuǎn)換模塊使用。本課題中的da轉(zhuǎn)換模塊所用到的頻率要超出400mhz的,但由于鎖相環(huán)倍頻超出400mhz就會出現(xiàn)錯誤,所以只能倍頻到400mhz。圖4-4鎖相環(huán)模塊state 0初始化數(shù)據(jù)state 1col=0000;key_flag=0;load=0;state 2row!=4b1111/col=4b1110row=4b1111state 3row=4b1111/col=4b1101s

27、tate 4row=4b1111/col=4b1011state 5row=4b1111/col=4b0111 state 6 row!=4b1111key_flag=1; rowin_reg=rowin;colout_reg=col;row!=4b1111row=4b1111state 7row=4b1111row!=4b11114.3 矩陣鍵盤掃描模塊圖4-5矩陣鍵盤掃描狀態(tài)圖4.3.1鍵盤掃描狀態(tài)圖圖4-5為鍵盤掃描的狀態(tài)圖,具體按鍵掃描說明如下:state 0: 給各個參數(shù)賦初值,如頻率,幅度,波形,占空比,相位差。state 1: 清零key_flag標(biāo)志位,load信號(相位重裝入

28、信號,高電平有效);鍵盤掃描輸出端colout置零。同時檢測rowin, 如果rowin!=4b1111,說明有鍵按下,跳轉(zhuǎn)到state 2,并且令掃描輸出端輸出1110,掃描第一列。若rowin=4b1111,沒有鍵按下,則跳轉(zhuǎn)回1,繼續(xù)等待。state 2: 檢測rowin,如果rowin仍然不等于1111,說明按下了第一列的鍵,跳轉(zhuǎn)到state 6,否則跳轉(zhuǎn)到state 3,并且掃描輸出端輸出1101,掃描第二列。state 3: 檢測rowin,如果rowin仍然不等于1111,說明按下了第二列的鍵,跳轉(zhuǎn)到state 6,否則跳轉(zhuǎn)到state 4,并且掃描輸出端輸出1011,掃描第三列

29、。state 4: 檢測rowin,如果rowin仍然不等于1111,說明按下了第三列的鍵,跳轉(zhuǎn)到state 6,否則跳轉(zhuǎn)到state 5,并且掃描輸出端輸出0111,掃描第四列。state 5: 檢測rowin,如果rowin仍然不等于1111,說明按下了第四列的鍵,跳轉(zhuǎn)到state 6,否則跳轉(zhuǎn)回state 1,重新掃描。state 6: 將rowin的值存入寄存器rowin_reg,col的值存入colout_reg,將key_flag置一,表示掃描倒了鍵值,同時檢測rowin,如果rowin不等于1111,則繼續(xù)在state 6里跳轉(zhuǎn),知道按鍵被松手(即rowin=1111),跳轉(zhuǎn)到s

30、tate 7。state 7: 將colout_reg和rowin_reg的值并置colout_reg,rowin_reg,用case語句判別,根據(jù)不同的值進(jìn)行不同的操作。操作后跳轉(zhuǎn)回state 1,重新掃描。4.3.2矩陣鍵盤掃描模塊圖4-6矩陣鍵盤掃描模塊4.4 分頻模塊4.4.1 吞脈沖分頻原理圖4-7脈沖刪除電路 圖為脈沖刪除電路工作原理:首先設(shè)置n倍頻計數(shù)累加器的模m,在輸入基頻f的作用下,每來一個基頻脈沖f,n倍頻計數(shù)累加器就加n。當(dāng)計數(shù)值不大于計數(shù)器的模m時,就產(chǎn)生一個刪除脈沖,并傳送給脈沖刪除控制器,此時基頻脈沖將被脈沖刪除控制器過濾掉一個脈沖,從而實現(xiàn)脈沖刪除。脈沖刪除器的數(shù)

31、學(xué)實現(xiàn): 那么,脈沖保留間隔q: (當(dāng)q不是整數(shù)時,將會根據(jù)余數(shù)發(fā)生器反饋的余數(shù)來決定q 取離q最近的兩個整數(shù)之一)即,每q個脈沖里,將被保留一個脈沖。剛在一個周期當(dāng)中保留的脈沖總數(shù)為n。即可得到分頻系數(shù):4.4.2 分頻模塊及仿真分析圖4-8分頻模塊圖4-9分頻仿真結(jié)果如圖5-8仿真結(jié)果所示,輸入為50khz,但由于我們把一個波形周期分為360個離散點,所以我們實際步進(jìn)預(yù)置n=50k*360=18mhz,而周期總脈沖數(shù)為40mhz,所以q=1/r=m/n=2.22,所以q示余數(shù)取2或3,如圖5-8,每2個脈沖或3個脈沖里保留了一個脈沖,在整個周期里,40m個脈沖保留了18m個脈沖,即是將40

32、mhz頻率分頻成了18mhz的頻率,在后面的da轉(zhuǎn)換中,18mhz頻率的波形經(jīng)da轉(zhuǎn)換后,變成了50khz的波形頻率。別外,得用余數(shù)發(fā)生器可以有效地保證分頻后的頻率可以盡可能地分布在整個周期里。經(jīng)仿真分析結(jié)果來看,此分頻模塊是可行的。4.5 地址發(fā)生器模塊4.5.1定制初始化數(shù)據(jù)文件quartusii 能接受的lpm_rom 模塊中的初始化數(shù)據(jù)文件的格式有兩種:.mif 格式文件和.hex 格式文件。實際應(yīng)用中只要使用其中一種格式的文件即可。下面采用.mif 格式文件,調(diào)出產(chǎn)生rom 數(shù)據(jù)文件大小的選擇窗。根據(jù)360 點8 位正弦數(shù)據(jù)的情況,可選rom 的數(shù)據(jù)數(shù)number 為512,數(shù)據(jù)寬w

33、ord size 取8 位。單擊ok 按鈕,將出現(xiàn)圖2 所示的空的.mif數(shù)據(jù)表格。表格中的數(shù)據(jù)格式通過matlab編寫一個離散正弦信號的m文件,可生成正弦波或者三角波的rom數(shù)據(jù),其程序如下:圖4-10離散正弦信號程序在matlab上運行該m文件,最后將其得到的三百六十個數(shù)據(jù)復(fù)制到.mif數(shù)據(jù)表格中即可得到圖中的表格數(shù)據(jù)。表5-1 mif數(shù)據(jù)表格4.5.2定制lpm 元件打開mega wizard plug_in manager 初始對話框, 選擇create a new custom 項。單擊next 按鈕后,選擇storage 項下的lpm_rom, 再選擇acex1k 器件和vhdl

34、語言方式;最后輸入rom 文件存放的路徑和文件名:f:sing_gntdata_rom (定制的rom 元件文件名),單擊next 按鈕,選擇rom 控制線、地址線和數(shù)據(jù)線。這里選擇地址線位寬和rom 中數(shù)據(jù)數(shù)分別為8 和512; 選擇地址鎖存控制信號clock。4.5.3地址發(fā)生器模塊通過對lpm例化的引用,通過地址查尋不斷逐步地讀取rom里的幅度值,最后經(jīng)過da轉(zhuǎn)換然后得到與rom儲存相應(yīng)的波形,另外,通過改變b路地址發(fā)生器的相位計數(shù)初值,實現(xiàn)移相的功能。圖4-11 地址發(fā)生器模塊4.6 波形選擇模塊 波形選擇模塊是通過矩陣鍵盤控制,輸出三種不同的數(shù)據(jù)流,控制信號發(fā)生器在正弦波、三角波和矩

35、形波三者間進(jìn)行互換,并通過數(shù)據(jù)流改變矩形波的占空比。 圖4-12 波形選擇模塊圖4-13正弦波仿真圖4-14矩形波仿真圖4-14三角波仿真如上圖所示,當(dāng)wave輸入為001時,輸出波形為正弦波,每個時鐘上升沿時,通過地址address從rom中依次讀取正弦信號的波形數(shù)據(jù)datadac,如圖為正弦波的仿真結(jié)果,三角波和矩形波的產(chǎn)生也是運用相同的原理。其中矩形波可以通過duty數(shù)據(jù)改變矩形波的占空比。4.7 幅度調(diào)節(jié)模塊幅度調(diào)節(jié)模塊改變幅度的系數(shù)來改變幅度的大小,即把電壓幅度值分成一百等分,能過改變輸出系數(shù)從而達(dá)到改變幅度的任務(wù)。圖4-15 幅度調(diào)節(jié)模塊 圖4-16幅度調(diào)節(jié)仿真如圖4-16為幅度調(diào)

36、節(jié)仿真,幅度調(diào)節(jié)模塊將電壓分為100等分,圖中輸入coe為90,幅度最高為255,可求得dataout=255*90/100=229.5,去掉小數(shù)即為圖中的結(jié)果。4.8 da轉(zhuǎn)換模塊4.8.1 -變換的原理 -變換采用過取樣技術(shù),將信號按時間分割,保持幅度恒定,具有高取樣率、噪聲整形和比特字長短的特點。變換可以在低取樣率、高分辨率的量化器或者高取樣率、低分辨率的量化器中進(jìn)行,在數(shù)字音頻中很有用,如用于音頻信號數(shù)字化的- adc及可將已經(jīng)數(shù)字化處理后的音頻信號還原為模擬聲音信號的- dac。-變換有時根據(jù)采用的具體結(jié)構(gòu)稱為1比特或多比特變換,本文所描述的- dac采用了1比特變換技術(shù),克服了采用

37、較多 比特數(shù)時所帶來的量化非線性誤差、糾錯困難的缺點。4.8.2 - dac的結(jié)構(gòu)術(shù)語“-”分別代表算術(shù)和與差,都可用二進(jìn)制加法器來產(chǎn)生。雖然加法器的輸入是無符號數(shù),但和兩加法器的輸出被看作有符號數(shù)。加法器用來計算dac輸入與當(dāng)前dac輸出之間的差值。由于dac的輸出只有一位,非0即1,即全0或全1。如圖2 - dac的結(jié)構(gòu)圖所示,加法器的另一個輸入值由鎖存器最高位l9的兩個拷貝后面跟8個0產(chǎn)生,這也彌補了dac輸入值是無符號數(shù)的問題。加法器將它的上一次輸出(已經(jīng)保存在鎖存器)與加法器的當(dāng)前輸出求和圖4-17 - dac的結(jié)構(gòu)4.8.3 - dac的fpga實現(xiàn)如圖2所示,- dac的內(nèi)部僅由

38、2個10位的二進(jìn)制加法器,1個10位的鎖存器和一個d觸發(fā)器組成,用fpga實現(xiàn)時只需耗費極少的邏輯資源,即使用最小的fpga也能實現(xiàn), fpga驅(qū)動外部的模擬rc低通濾波器,恢復(fù)模擬波形。圖4-18 da轉(zhuǎn)換模塊圖4-18 da轉(zhuǎn)換仿真圖如圖4-18 da轉(zhuǎn)換仿真圖,每個點的幅度通過256個clk時鐘周期的脈沖序列行轉(zhuǎn)換,dacin的值越大,表示幅度越高,dacout輸出的脈沖密度越大,通過rc低通濾波器時充電時間越長,形成的幅度越高。4.9 濾波器濾器采用的是兩個模擬rc低通濾波器組成的二階低通濾波器,二階低通濾波器比一階低通濾波器的衰減更快,過渡帶更短,濾波效果更好。濾波器的截止頻率公式為

39、:因為三角波和矩形波含有高次諧波,如果將頻率定得太低,三角波和矩形波將會產(chǎn)生嚴(yán)重的失真,如果將頻率定得太高,將達(dá)不到良好的濾波效果,最后選擇了47pf的電容和1k的電阻,其截止頻率為即為3.4mhz。4.10 實物圖圖4-19頻率調(diào)節(jié)實物圖圖4-20移相實物圖5 總結(jié)(1)課題研究過程總結(jié)及結(jié)論本課題的研究和設(shè)計,可以大致分成四個個階段:理論知識學(xué)習(xí),verilog編程語言的學(xué)習(xí),系統(tǒng)verilog語言編程設(shè)計和仿真驗證。在每個階段都遇到很多問題,但也是在不斷的發(fā)現(xiàn)問題,不斷的努力解決問題的過程中,讓我對本課題有了更全面的認(rèn)識和更深入地掌握。萬事開頭難,在理論知識學(xué)習(xí)階段,對信號發(fā)生器的原理知

40、之甚少,以前只是用過信號源來進(jìn)行實驗,而不知道信號發(fā)生器的原理。通過大量閱讀信號發(fā)生器的書籍和網(wǎng)上相關(guān)資料,我逐漸地開始對信號發(fā)生器的一個整體結(jié)構(gòu)有了相對的理解。在學(xué)習(xí)的過程中,對信號發(fā)生器的結(jié)構(gòu)進(jìn)行拆分成一個個小模塊,通過實現(xiàn)各個小模塊的功能,再將小模塊進(jìn)行一個組合,組成信號發(fā)生器。并且我還查閱不同書籍,學(xué)習(xí)不同的實現(xiàn)方法,進(jìn)行比較從中選出最佳方案。這讓我對自己選定的方案更有把握,為后續(xù)工作打好了理論基礎(chǔ)。verilog編程語言的學(xué)習(xí),因為大學(xué)課程有學(xué)習(xí)eda課程,對quartus里工程的建立和verilog語言的編寫都有一定的了解,通過復(fù)習(xí)之前所學(xué)過的verilog語言知識,能很容易地重新

41、掌握verilog語言的編寫。系統(tǒng)verilog語言編程設(shè)計,這是本課題中最重要的一個環(huán)節(jié),通過verilog語言編程設(shè)計信號發(fā)生器原理的各個模塊,最后通過verilog語言將各個模塊有機地結(jié)合在一起,最終實現(xiàn)信號發(fā)生器的各項功能。在這一階段中,遇到了很多的問題和很大的困難。通常會因為一個小小的錯誤而使一個模塊得不到正確的結(jié)論,然后經(jīng)過不斷地修改,不斷地實驗,才最終克服困難,完成這一個重要的階段。仿真驗證,通過quartus的仿真和實際電路的驗證,及時發(fā)現(xiàn)verilog語言編程設(shè)計存在的問題,及時作出修改,逐步完善信號發(fā)生器的架設(shè)。(2)心得體會此次畢業(yè)設(shè)計,難度相對比較大,但由于老師安排時間得當(dāng),給了我們充分的時間準(zhǔn)備

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論