信號發(fā)生器論文畢業(yè)論文_第1頁
信號發(fā)生器論文畢業(yè)論文_第2頁
信號發(fā)生器論文畢業(yè)論文_第3頁
信號發(fā)生器論文畢業(yè)論文_第4頁
信號發(fā)生器論文畢業(yè)論文_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、西安大學(xué)畢業(yè)設(shè)計(論文)題 目:多功能波形發(fā)生器的設(shè)計學(xué)院:電子工程學(xué)院系部: 光電子技術(shù)系專業(yè):光電信息工程班 級:學(xué)生姓名:導(dǎo)師姓名:職稱: 副教授 起止時間: 2013年3月4日2013年6月14 h畢業(yè)設(shè)計(論文)誠信聲明書本人聲明:本人所提交的畢業(yè)論文 多功能波形發(fā)生器的設(shè) 辻是本人在指導(dǎo)教師指導(dǎo)下獨立研究、寫作的成果,論文中所引 用他人的文獻、數(shù)據(jù)、圖件、資料均已明確標(biāo)注;對本文的研究做岀 重要貢獻的個人和集體,均已在文屮以明確方式注明并表示感謝。本人完全清楚本聲明的法律后果,中請學(xué)位論文和資料若有不實 之處,本人愿承擔(dān)相應(yīng)的法律責(zé)任。論文作者簽名:指導(dǎo)教師簽名:時間: 年 月 日

2、 時*間: 年 月 h西安郵電大學(xué)畢業(yè)設(shè)計(論文)任務(wù)書任務(wù):1.掌握可編程邏輯器件的工作原理;2.利用可編程邏 輯器件完成多功能波形發(fā)生器的設(shè)計并且進行仿真驗證;3.完 成畢業(yè)設(shè)計論文的撰寫。要求:1.熟悉可編程邏輯器件的工 作原理及vhdl語言編程;2.熟悉quartus ii軟件的使用; 有一定的數(shù)字系統(tǒng)設(shè)計能力。任務(wù)與要求開始日期 20130304完成日期 20130614起止時間2013. 3.4 2013. 3. 172013. 3. 182013. 3.312013. 4. 12013. 4. 192013. 4.202013. 5. 192013. 5. 202013. 6.

3、14工作進程工作內(nèi)容了解多功能波形發(fā)生器的功能及工作 原理熟悉可編程邏輯器件的工作原理,quartos ii軟件的使用以及vhdl語言編程的相關(guān)知識 結(jié)合多功能波形發(fā)生器需要實現(xiàn)的功能, 利用可編程邏輯器件完成多功能波形發(fā)生器 的設(shè)計;根據(jù)所得結(jié)果進行分析,用verilog語 言編程進行仿真,驗證設(shè)計方案是否能實現(xiàn) 多功能波形發(fā)生器的功能以及實現(xiàn)的效果如 何;整理材料,撰寫論文。主要參考書目(資料):eda技術(shù)及應(yīng)用modelsim電了系統(tǒng)分析及仿真等主要儀器設(shè)備及材料:計算機及相應(yīng)資料論文(設(shè)計)過程中教師的指導(dǎo)安排:每周三下午三號實驗樓518答疑對計劃的說明:無指導(dǎo)教師簽字:2013年3月

4、 6日西安大學(xué)畢業(yè)設(shè)計(論文)開題報告課題名稱:多功能波形發(fā)生器的設(shè)計電子工程學(xué)院 學(xué)院 光電子技術(shù) 系(部)光電信息工程 專業(yè)班學(xué)生姓名學(xué)號_指導(dǎo)教師1.本課題所涉及的問題及應(yīng)用現(xiàn)狀綜述波形發(fā)生器亦稱函數(shù)發(fā)生器,作為實驗用信號源,是現(xiàn)今各種電了 電路實驗設(shè)計應(yīng)用中必不可少的儀器設(shè)備z-o所謂多功能波形發(fā)生器 是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號和用戶自定義信號,并保證高精度、高穩(wěn)定 性、可重復(fù)性和已操作性的電了儀器。因而它具有廣闊的應(yīng)用前景??删幊踢壿嬈骷⑽娜Q為:programmable logic device即pld。 pld是作為一種通用集成電路產(chǎn)生的,它的邏輯功能按照用戶對器件編 程來確定。

5、對于可編程邏輯器件,設(shè)計人員可利用價格低廉的軟件工具 快速開發(fā)、仿真和測試其設(shè)計。然后,可快速將設(shè)計編程到器件屮,并 立即在實際運行的電路中對設(shè)計進行測試。在設(shè)計階段中客戶可根據(jù)需 要修改電路,直到對設(shè)計工作感到滿意為止。這是因為pld基于可重 寫的存儲器技術(shù)要改變設(shè)計,只需要簡單地對器件進行重新編程。傳統(tǒng)波形發(fā)生器大多由振蕩器、放大器、衰減器、指示器和調(diào)制器 組成。這種傳統(tǒng)設(shè)計方法的特點是硬件和軟件截然不同,設(shè)計中不可相互 替代,而但硬件連線復(fù)雜,可靠性較差。硬件描述語言vhdl和可編程邏輯 器件的廣泛應(yīng)用打破了硬件和軟件的屏障?;趘erilog語言,以eda技 術(shù)作為開發(fā)手段,采用現(xiàn)場可

6、編程器件作為控制核心實現(xiàn)的波形發(fā)生器, 與傳統(tǒng)的設(shè)計相比較,不僅簡化了硬件控制,提高了系統(tǒng)的整體性能和工 作可靠性,也為進一步提高系統(tǒng)集成創(chuàng)造了條件。本課題所涉及的問題包括了解多功能波形發(fā)牛器的功能,熟悉可編 程邏輯器件的工作原理、quartus ii軟件的使用及verilog語言編程,利 用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計并且進行仿真驗證。2本課題需要重點研究的關(guān)鍵問題、解決的思路及實現(xiàn)預(yù)期口標(biāo)的可行 性分析本課題需要重點研究的關(guān)鍵問題是利用可編程邏輯器件完成多功能 波形發(fā)生器的設(shè)計并進行仿真驗證。解決思路是在深入理解多功能波形發(fā)生器的功能和可編程邏輯器件 的工作原理的基礎(chǔ)上,用ve

7、rilog語言編程,利用可編程邏輯器件完成多 功能波形發(fā)生器的設(shè)計并且進行仿真,驗證設(shè)計方案是否能實現(xiàn)多功能 波形發(fā)生器的功能以及實現(xiàn)的效果如何。3完成本課題的工作方案2013.3.42013.3.17了解多功能波形發(fā)工器的功能及t作原理;20133182013331熟悉可編程邏輯器件的工作原理,quartus ii軟件的使用以及 vhdl語言編程的相關(guān)知識;2013.4.12013.4.19結(jié)合多功能波形發(fā)生器需要實現(xiàn)的功能,利用可編程邏輯器件完成多 功能波形發(fā)生器的設(shè)計;2013.4.20 2013.5.19根據(jù)所得結(jié)杲進行分析,用verilog語言編程進行仿真,驗證設(shè)計方 案是否能實現(xiàn)多

8、功能波形發(fā)工器的功能以及實現(xiàn)的效果如何;2013.5.20 2013.6.14整理材料,撰寫論文。4指導(dǎo)教師審閱意見指導(dǎo)教師(簽字): 2013年 3月13日目錄摘要iiabstractill弓丨言11.eda與軟件簡介21eda技術(shù)發(fā)展21.2 fpga 介紹41.3 modelsim 介紹51.4 verilog 與 vhdl 語言介紹51.5測試激勵文件介紹61.6軟件使用入門61.6.1系統(tǒng)仿真軟件modulsim使用61.6.2 quartus ii 軟件使用92系統(tǒng)總體設(shè)計102.1硬件總體框圖102.2軟件總體框圖112.3軟件與硬件設(shè)計總結(jié)113系統(tǒng)各模塊設(shè)計123時鐘模塊設(shè)計

9、123.2增斜波設(shè)計153.3減斜波設(shè)計173.4方波設(shè)計203.5三角波設(shè)計233.6正弦波設(shè)計253.7階梯波設(shè)計284系統(tǒng)軟硬件聯(lián)合調(diào)試314.1系統(tǒng)整體模塊結(jié)構(gòu)圖314.2系統(tǒng)仿真輸出圖32結(jié)論33致謝35參考文獻36附錄37譯文49摘要在函數(shù)發(fā)主器發(fā)展過程中,出現(xiàn)了很多波形發(fā)生的方法,其中大部分是利用 dds原理制作而成,比如說由晶休管、運放ic等通用器件制作而成,或者利用 單片集成芯片制做而成。但是隨著fpga的出現(xiàn),波形發(fā)生的方法更加多元化。 將dds原理成功的移植到fpga中,就能產(chǎn)生多種波形,頻率可調(diào),相位可選的 波形發(fā)生裝置,也可以自行設(shè)計方法產(chǎn)生波形,使得開發(fā)更加簡單。本

10、文提出了一種基于可編程邏輯器件fpga產(chǎn)生任意波形發(fā)生器的設(shè)計方 法。完成了在fpga的控制下,產(chǎn)生遞增斜波、遞減斜波、方波、三角波、正弦 波及階梯波行,利用modelsim和queus ii進行仿真,驗證波形,并給出了實驗 結(jié)果。實驗結(jié)果表明,此任意波形發(fā)生器能夠按照要求輸出相應(yīng)波形,達(dá)到了設(shè) 計要求。關(guān)鍵字:fpga,斜波;方波;三角波;正弦波;階梯波abstractwith function generator in the rapid development process, there have been many ways to generate waveform,and most

11、 of them do it with dds for example, a transistor, op amp ic and other common devices made it , or the use of monolithic integrated chip system to do. but with the emergence of fpga,waveform generation method is more diversified. produce a variety of waveforms, adjustable frequency, phase, selectabl

12、e waveform generating device.fpga can design their own methods of generating waveforms, making development easier.this paper proposes a method of arbitrary waveform generator ,which was based on programmable logic device fpga design .under the control of the fpgajt gnenrated increasing oblique wave

13、and decreasing oblique wave, square wave, triangle wave, sine sweep ladder wave line,and then verify the results by the softwave of modelsim. the experimental results showed that the arbitrary waveform generator can output waveform accordingly in accordance with the requirements, and has reached the

14、 design requirements.keyword: fpga,oblique wave, square wave, triangle wave, sine wave and step wave引言在電子、通信、實驗教學(xué)等領(lǐng)域,高精度、高分辨率、幅度相位可控的信號發(fā)生 器冇著廣泛的應(yīng)用。信號發(fā)生器又稱為信號源或者振蕩器,在生產(chǎn)實踐和科技領(lǐng) 域屮冇著廣泛的應(yīng)用。函數(shù)發(fā)生器是使用最廣的通用信號源,提供正弦波、鋸齒波、方波、脈沖波 等波形,冇的還同時具冇調(diào)制和掃描功能。函數(shù)波形發(fā)生器在設(shè)計上分為模擬式和數(shù)字合成式。眾所周知,數(shù)字合成式 函數(shù)信號源(dds)無論就頻率、幅度乃至信號的信噪比(s/

15、n)均優(yōu)于模擬式, 其鎖相環(huán)(pll)的設(shè)計讓輸出信號不僅是頻率精準(zhǔn),而且相位抖動(phasejitter) 及頻率漂移均能達(dá)到相當(dāng)穩(wěn)定的狀態(tài),但數(shù)字式信號源屮,數(shù)字電路與模擬電路 z間的干擾始終難以有效克服,也造成在小信號的輸出上不如模擬式的函數(shù)信號 發(fā)生器。本文引入利用fpga來產(chǎn)生階梯波、三角波、遞增斜波、遞減斜波、正弦波、 方波。具有以下優(yōu)勢:開發(fā)信號發(fā)生器簡單,容易實現(xiàn),成本低廉,能夠根據(jù)用 戶需求進行定制等功能。fpga是作為專用集成電路領(lǐng)域屮的一種半定制電路而出現(xiàn)的,既解決了定 制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。因為其是一種半 定制的電路結(jié)構(gòu),因ifu fp

16、ga具有很多靈活性,能夠根據(jù)本系統(tǒng)的需求靈活改變 內(nèi)部電路,以達(dá)到系統(tǒng)的需要。另外一方而,碩件描述語言岀現(xiàn),使得fpga開 發(fā)隨心應(yīng)手,方便快捷。因為硬件描述語言具有設(shè)計的行為特性、設(shè)計的數(shù)據(jù)流 特性、設(shè)計的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計驗證方而的時延和波形產(chǎn)生機 制,這樣使得從頂層整體架構(gòu)到底層具體模塊的開發(fā),以及后續(xù)的驗證,時延等更加 方便快捷。從fpga開發(fā)多功能信號發(fā)生器的角度來說,因為冇了自我定制電路以及靈 活高效的硬件描述語言,使得本系統(tǒng)開發(fā)簡單,編程容易,可靠性高,代碼冗余 量少。而月.能夠積極擴展,使得設(shè)計更加多元化,其至能做成任意信號發(fā)生器。1. eda與軟件簡介1.1 ed

17、a技術(shù)發(fā)展在電子設(shè)計自動化(英語:electronic design automation,縮寫:eda)出現(xiàn) 之前,設(shè)計人員必須手工完成集成電路的設(shè)計、布線等工作,這是因為當(dāng)吋所謂 集成電路的復(fù)雜程度遠(yuǎn)不及現(xiàn)在。工業(yè)界開始使用幾何學(xué)方法來制造用于電路光 繪(photoplotter)的膠帶。到了 1970年代中期,開發(fā)人應(yīng)嘗試將整個設(shè)計過程 自動化,而不僅僅滿足于自動完成掩膜草圖。第一個電路布線、布局工具研發(fā)成 功。設(shè)計自動化會議(design automation conference)在這一時期被創(chuàng)立,旨在 促進電子設(shè)計自動化的發(fā)展。從1981年開始,電子設(shè)計自動化逐漸開始商業(yè)化。198

18、4年的設(shè)計自動化會 議(design automation conference)上還舉辦了第一個以電子設(shè)計自動化為主題 的銷售展覽。gateway設(shè)計自動化在1986年推出了一種硬件描述語言verilog, 這種語言在現(xiàn)在是最流行的高級抽象設(shè)計語言。1987年,在美國國防部的資助 下,另一種硬件描述語言vhdl被創(chuàng)造出來?,F(xiàn)代的電子設(shè)計自動化設(shè)計工具 可以識別、讀取不同類型的硬件描述。根據(jù)這些語言規(guī)范產(chǎn)生的各種仿真系統(tǒng)迅 速被推出,使得設(shè)計人員可對設(shè)計的芯片進行直接仿真。后來,技術(shù)的發(fā)展更側(cè) 重于邏輯綜合。目前的數(shù)字集成電路的設(shè)計都比較模塊化(參見集成電路設(shè)計、設(shè)計收斂 (design cl

19、osure)和設(shè)計流(design flow (eda)o半導(dǎo)體器件制造工藝需要標(biāo) 準(zhǔn)化的設(shè)計描述,高抽象級的描述將被編譯為信息單元(cell)的形式。設(shè)計人 員在進行邏輯設(shè)計時尚無需考慮信息單元的具體硬件工藝。利用特定的集成電路 制造工藝來實現(xiàn)硬件電路,信息單元就會實施預(yù)定義的邏輯或其他屯子功能。半 導(dǎo)體硬件廠商大多會為它們制造的元件提供“元件庫",并提供相應(yīng)的標(biāo)準(zhǔn)化仿真 模型。相比數(shù)字的電子設(shè)計自動化工具,模擬系統(tǒng)的電子設(shè)計自動化工具大多并 非模塊化的,這是因為模擬屯路的功能更加復(fù)雜,而且不同部分的相互影響較強, 而11作用規(guī)律復(fù)雜,電子元件大多沒有那么理想。verilog am

20、s就是一種用于模 擬電子設(shè)計的硬件描述語言。此文,設(shè)計人員可以使用硬件驗證語言來完成項目 的驗證工作目前最新的發(fā)展趨勢是將集描述語言、驗證語言集成為一體,典型的 例子有 systemverilog o隨著集成電路規(guī)模的擴大、半導(dǎo)體技術(shù)的發(fā)展,電子設(shè)計自動化的重耍性急 劇增加。這些工具的使用者包括半導(dǎo)體器件制造中心的駛件技術(shù)人員,他們的工 作是操作半導(dǎo)體器件制造設(shè)備并管理整個工作車間。-些以設(shè)計為主要業(yè)務(wù)的公 司,也會使用電子設(shè)計自動化軟件來評估制造部門是否能夠適應(yīng)新的設(shè)計任務(wù)。 電了設(shè)計口動化工具還被用來將設(shè)計的功能導(dǎo)入到類似現(xiàn)場可編程邏輯門陣列 的半定制可編程邏輯器件,或者生產(chǎn)全定制的專用集

21、成電路。eda代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計人 員按照“口頂向下"的設(shè)計方法,對整個系統(tǒng)進行方案設(shè)計和功能劃分,系統(tǒng)的關(guān) 鍵電路用一片或幾片專用集成電路(asic)實現(xiàn),然后采用硬件描述語言(hdl院 成系統(tǒng)行為級設(shè)計,最后通過綜合器和適配器生成最終的目標(biāo)器件。這樣的設(shè)計 方法被稱為高層次的電了設(shè)計方法。下面介紹與eda基本特征有關(guān)的幾個概念。1) “自頂向下''的設(shè)計方法10年前,電子設(shè)計的基本思路還是選擇標(biāo)準(zhǔn)集成電路“自底向上xbottom-up) 的構(gòu)造出一個新的系統(tǒng),這樣的設(shè)計方法就如同一磚一瓦建造金字塔,不僅效率 低、成本高而且容

22、易出錯。高層次設(shè)計給我們提供了一種'自頂向下"top-down)的全新設(shè)計方法,這種 設(shè)計方法首先從系統(tǒng)設(shè)計入手,在頂層進行功能方框圖的劃分和結(jié)構(gòu)設(shè)計。在方 框圖一級進行仿真、糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進行描述,在 系統(tǒng)一級進行驗證。然后用綜合優(yōu)化工具生成具體門電路的網(wǎng)表,其對應(yīng)的物理 實現(xiàn)級可以是卬刷電路板或?qū)S眉呻娐贰S捎谠O(shè)計的主耍仿真和調(diào)試過程是在 高層次上完成的,這一方面有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計上的錯誤,避免設(shè)計工作的 浪費,同時也減少了邏輯功能仿真的工作量,提高了設(shè)計的一次成功率。2) asic設(shè)計現(xiàn)代電了產(chǎn)品的復(fù)雜度曰益加深,一個電了系統(tǒng)可能由數(shù)萬個

23、中小規(guī)模集成 電路構(gòu)成,這就帶來了體積大、功耗大、可靠性差的問題,解決這一問題的有效 方法就是采用 asic(application specific integrated circuits)芯片進行設(shè)計。asic 按照設(shè)計方法的不同可分為:全定制asic,半定制asic,可編程asic(也稱為 可編程邏輯器件)。設(shè)計全定制asic芯片時,設(shè)計師耍定義芯片上所有晶體管的幾何圖形和工 藝規(guī)則,最后將設(shè)計結(jié)果交由ic廠家掩膜制造完成。優(yōu)點是:芯片可以獲得最 優(yōu)的性能,即面積利用率高、速度快、功耗低。缺點是:開發(fā)周期長,費用高, 只適合大批量產(chǎn)品開發(fā)。半定制asic芯片的版圖設(shè)計方法有所不同,分為門

24、陣列設(shè)計法和標(biāo)準(zhǔn)單元 設(shè)計法,這兩種方法都是約束性的設(shè)計方法,其主要目的就是簡化設(shè)計,以犧牲 芯片性能為代價來縮短開發(fā)時間??删幊踢壿嬓酒c上述掩膜asic的不同z處在于:設(shè)計人員完成版圖設(shè)計 后,在實驗室內(nèi)就町以燒制出自己的芯片,無須ic廠家的參與,大大縮短了開發(fā) 周期。可編程邏輯器件口七十年代以來,經(jīng)歷了 pal、gal、cpld、fpga幾個 發(fā)展階段,其中cpld/fpga屬高密度可編程邏輯器件,冃而集成度已高達(dá)200 萬門/片,它將掩膜asic集成度高的優(yōu)點和可編程邏輯器件設(shè)計生產(chǎn)方便的特點 結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上 市,而當(dāng)市場擴大時,

25、它可以很容易的轉(zhuǎn)由掩膜asic實現(xiàn),因此開發(fā)風(fēng)險也大 為降低。上述asic芯片,尤其是cpld/fpga器件,已成為現(xiàn)代高層次電了設(shè)計方 法的實現(xiàn)載體。1.2 fpga 介紹fpga(fieldprogrammable gate array),即現(xiàn)場可編程門陣歹!j,它是在 pal> gal、cpld等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路 (asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,乂克 服了原有可編程器件門電路數(shù)有限的缺點。以硬件描述語言(verilog或vhdl)所完成的電路設(shè)計,可以經(jīng)過簡單的 綜合與布局,快速的燒錄至fpga上進行測試,

26、是現(xiàn)代ic設(shè)計驗證的技術(shù)主 流。這些可編輯兀件可以被用來實現(xiàn)一些基木的邏輯門電路(比如and、or、 xor、not)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù) 的fpga里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flip-flop) 或者其他更加完整的記憶塊??谇笆袌錾祥_發(fā)fpga的主要有兩大供應(yīng)商,一個就是altera公司,另 一個就是xilinx公司oaltera的主流fpga分為兩大類,一種側(cè)重低成木應(yīng)用,容量屮等,性能可 以滿足一般的邏輯設(shè)計要求,如cyclone, cyclonell;還有種側(cè)重于高性能應(yīng) 用,容量大,性能能滿足各類高端應(yīng)用,如startix,

27、 stratixii 用戶可以根據(jù) 自己實際應(yīng)用要求進行選擇。在性能可以滿足的情況下,優(yōu)先選擇低成木器件。max+plusii:普遍認(rèn)為maxplusii曾經(jīng)是最優(yōu)秀的pld開發(fā)平臺之一,適 合開發(fā)早期的中小規(guī)模pld/fpga由quartusii替代,不再推薦使用。quartusii: altera新一代fpga/pld開發(fā)軟件,適合新器件和大規(guī)模fpga 的開發(fā),已經(jīng)取代maxplusiiosopc builder:配合quartusii,可以完成集成cpu的fpga芯片的開發(fā)工 作dsp builder: quartusii與matlab的接口,利用ip核在matlab屮快速完成數(shù) 字信

28、號處理的仿真和最終fpga實現(xiàn)。xilinx的主流fpga分為兩大類,一種側(cè)重低成木應(yīng)用,容量屮等,性能可 以滿足一般的邏輯設(shè)計要求,如spartan系列;還有一種側(cè)重于高性能應(yīng)用,容 量大,性能能滿足各類高端應(yīng)用,如virtex系列,用戶可以根據(jù)門己實際應(yīng)用耍 求進行選擇。在性能可以滿足的情況下,優(yōu)先選擇低成本器件。ise: xilinx公司集成開發(fā)的工具foundation: xilinx公司早期的開發(fā)工具, 逐步被ise取代嵌入式開發(fā)套件(edk):用于開發(fā)集成powerpc便核和microblaze軟核 cpu的工具system generator for dsp :配合matlab,

29、在fpga中完成數(shù)字信號處理的 工具1.3 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核,個性化的圖形界面和用戶接口, 為用戶加快調(diào)錯提供強有力的手段,是fpga/asic設(shè)計的首選仿真軟件。modelsim分幾種不同的版本:se、pe、le和oem,其中se是最高級的 版本,而集成在actel > atmel altera>

30、xilinx以及l(fā)attice等fpga 商設(shè)計工 具中的均是其oem版木。se版和oem版在功能和性能方面有較大并別,比如 對于大家都關(guān)心的仿真速度問題,以xilinx公司提供的oem版木modelsim xe 為例,對于代碼少于40000行的設(shè)計,modelsim se比modelsim xe要快10倍; 對于代碼超過40000行的設(shè)計,modelsim se要比modelsim xe快近40倍。 modelsim se支持pc、unix和linux混合平臺;提供全面完善以及高性能的 驗證功能;全面支持業(yè)界廣泛的標(biāo)準(zhǔn);mentor graphics公司提供業(yè)界最好的技術(shù) 支持與服務(wù)。1.4

31、 verilog與vhdl語言介紹verilog hdl語言是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多 種抽彖設(shè)計層次的數(shù)字系統(tǒng)建模。其具有下述描述能力:設(shè)計的行為特性、設(shè)計 的數(shù)據(jù)流特性、設(shè)計的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計驗證方而的時延和波形 產(chǎn)生機制。所冇這些都使用同一種建模語言。此外,verilog hdl語言捉供了編 程語言接口,通過該接口可以在模擬、驗證期間從設(shè)計外部訪問設(shè)計,包括模擬 的具體控制和運行。vhdl語言是一種用于電路設(shè)計的高級語言。vhdl主要用于描述數(shù)字系統(tǒng) 的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語 言形式、描述風(fēng)格以及語法是

32、十分類似于一般的計算機高級語言。vhdl的程序 結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或 一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及 實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其 內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。1.5測試激勵文件介紹測試激勵也叫testbench,它是-種驗證的手段。首先,任何設(shè)計都是會有輸 入輸出的。但是在軟環(huán)境屮沒有激勵輸入,也不會對你設(shè)計的輸出正確性進行評 估。那么此時便有一種,模擬實際環(huán)境的輸入激勵和輸出校驗的一種“虛擬平臺” 的產(chǎn)生。在這個平臺上你可以對你的設(shè)計

33、從軟件層面上進行分析和校驗。用通俗的話來表示:測試激勵就是啟動模塊的鑰匙,它能夠模擬模塊的輸入 變量,使其能夠按照工程師的要求進行工作。1.6軟件使用入門1.6. 1系統(tǒng)仿真軟件modulsim使用modulsim是目前市場上最流行的fpga仿真軟件,以其卓越的性能和操作 簡單性著稱。下面以modelsim 10.0來做個使用向?qū)А?)軟件安裝好之后,打開軟件modulsim,點擊file>new>pi*oject,將岀現(xiàn) 如圖14所示畫面,起名為test。圖1-4新建工程2)在如圖15所示界面添加verilog文件與測試文件,然后進行編譯,將出 現(xiàn)圖16所示畫面ctowse.圖1

34、-5添加文件ll bbrarynametype pathliemil aaaaaaaaaaaaaamammbavm muovm mtfa mbupf muuvm secured swrorim $inc*lm$_vet $v.std unrooo.ver urwnaao nmocro_ve unsimlibrary f: /fpgajeam/test/workoptimized opdrmzed modulef j/fpga.leam/test/sysflen.vmodulef: /fpgajtam/lttfab.sytgtn.vlibraryd:vnodet«h_!o.ocxiln

35、x_ib5/cphlibraryd:mo<mtech_10.0cx#nx_lb$/cpid_verlibraryimcoel.tecw. ./fcatfixiblibrary$mcoel.tech/.g jblibrary$moccljech/./avtnlibrary|mcoel_tech/./(mn-2.1.2library$mooelech/ ./pajtlibrary$mooelech/g jblibrary$mcoel_tech/uvm 1.1libraryf:xinxu 3.2t5e j>sish/verilog/mti.libraryd:mode<ech00cx

36、ilnxjb$/$iwimlibrary d:vnodefcechjo.(kvcilnx_lb5/$*t<xlfn.library$mcoel.tech/./sv_rtdlibraryd: vwxietech-io.oclxilnx jb$ajr*900.librarydivnodekechjo.ocvcilnx-lbs/urwnauolibraryd: vnodet och.l 0. (kx ilnx _ibs/urwnac.lforaryd:mode*echogxilmjb$ajr»imit itrary i圖1-6編譯結(jié)果3)雙擊測試文件,tb.sysgen將出現(xiàn)圖17所

37、示現(xiàn)象,然后在測試文件tb_sysgen上右擊選中start simulation,會出現(xiàn)如圖18所示現(xiàn)象。 name血血血血血血血血血血血血血血血血拠 令-土+-+- +- 土 ±+土 土 +一 土 土 +-worklibraryf: /fpga_learn/te$t/workm邸optimized.m沖1optimized 1 sy$gnmodulef: /fpga_learn/test/$y$gen.vtb_sy$genmodulef:=pga_learn/te$t/tb_sysgen.vcpldlibraryd: vnodoltech_10.0cxilinx_lbs/cpld

38、cpld.verlibraryd:vw<fee<h_10.0cxilinx_ib$/cpld_verfbatfixlblibrary$mooelech/ jfto衣fmbmc2_ib (empty)libry$mooelech/ /mc2_ibmtiavmlibrary$m9oel-tech/mvmmtiovmlibrary$modelech/. ./ovm-2.1.2mtipalibry$mooel_techjl/gibmtiupflibrary$mooel_tech/./uplfomtiuvmlibry$hwel_tech/./wm-l 1secureiplibryf: x&#

39、171;nx13.2ise_dsise/verilog/mti.srnonmlibraryd:nxxfekech jo.ocxilrx.kb$/simpnm$rnprim$_verllbryd:n>o(fekech_lo.ocxilinx-lb$/$iniprim.sv.stdlibrry|mooel_tech/. ./svstdunl9000_verlibrary儀 h-lo.ocglinxjtos/unqoo inimacrolibraryd:vnodeltech_10.0cxilinx_ibs/unmaaolnimacro.verlibraryd:vr»<felte

40、ch_10.0cxilinx_fo$/unrnac.unlslmlibraryd:nx)(feltech_10.0cxllinx.lto$/un»$lmtype ipathlbrarylibrary |r'*| proiert圖1-8添加波形12j必.#aiwavs<me»r<»»(r« tb.dhvld .hxcew8加甸hod>.fa5siw16加x)fv«cw5.fasslgwmt加甸fvwe./assiw40hwu.«551gnt49precessr»«r.c«

41、k»3ry#cwarv4)運行仿真,將開始進行波形仿真,如圖19所示:m wav© - default 二 /tb_dlmodjte/dkjn$ /tb_allmodjte/re$t* /tb_dllmodjfe/dv+ /tb.allfnodjfe/qout. ± $ /tb.allmodjte/qout.eshbq /tballmodjfe/qout. 上 /tb.allmodjfe/qout./tb_allmodjte/qout. ab allmodjfe/dk o.wgsrazom$q$injinr juurnrju ltltlt rurrtrlt tlr

42、ltltlt jutjutt000000010010010011011011tjn ooooohooooooooo 11111110 00100000 sto weo(inn】objoiiiioiiioi.ta»ioo1:.:“八門 片丨“i.ii . 血01 m0.ill01.|.)ttmhq.jl ch.hlq.,. ill口門用匸門用kcjw門工"wtuj 1口用i門wwwe 帀工審臚心和 口匚匸:門滯 rnw門滯in. toocooooogiiiiiiioqoioooo )5(loooooiht900 ns1000 nscursor i817.138 nsnow10

43、00 ns800 ns>1 ih transcript | 創(chuàng) wave objects | processes | library | sim |1.6.2 quartus i i 軟件使用quartus ii軟件是口前市場上最流行的fpga開發(fā)綜合軟件,它的開發(fā)者是 altera公司。其容易操作,具有良好的可視化,開發(fā)簡單,易于被初學(xué)這接受。 以下介紹quartus ii 12.0的簡單使用。1)打開quartus ii軟件,點擊file選項,然后選擇new,選擇new quartus ii project,選擇好器件以及存放路徑,就建立好工程文件了,如圖210。圖1-10新建工程2

44、)點擊file,選擇new,新建verilog hdl,比如文件名字叫test。編程完畢 z后,可以編譯下,看看有沒有語法錯誤,如果沒有語法錯誤,則進入 測試文件建立模塊。3)點擊菜單欄中 processing,選擇 start,選擇 start testbench template write o 此 時會口動生成testbench模板到項目文件夾simulation里面,后綴為.vt , 這吋候就可以通過modulesim進彳亍仿真了。2系統(tǒng)總體設(shè)計本系統(tǒng)是基于fpga開發(fā)的多功能波形發(fā)生器,利用碩件描述語言verilog 進行編程,quartus ii ±進行編譯,并仿真驗證結(jié)

45、構(gòu),接著利用modelsim進行再 次仿真驗證,以達(dá)到本系統(tǒng)的要求,產(chǎn)生增斜波、減斜波、方波、三角波、正弦 波、階梯波形。但是確定該方案z前述是冇很多方案:方案一:用分立元件組成的函數(shù)發(fā)生器:通常是單函數(shù)發(fā)生器且頻率不高, 其工作不很穩(wěn)定,不易調(diào)試方案二:可以由品體管、運放ic等通用器件制作,更多的則是用專門的函 數(shù)信號發(fā)生器ic產(chǎn)生。早期的函數(shù)信號發(fā)生器ic,如l8038、ba205、 xr2207/2209等,它們的功能較少,精度不高,頻率上限只冇300khz,無法產(chǎn) 生更高頻率的信號,調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨立調(diào)節(jié),二者互 相影響。方案三:利用單片集成芯片的函數(shù)發(fā)生器:能產(chǎn)

46、生多種波形,達(dá)到較高的頻 率,但易于調(diào)試。鑒于此,美國美信公司開發(fā)了新一代函數(shù)信號發(fā)生器 icmaxo38,它克服了 (2)小芯片的缺點,可以達(dá)到更高的技術(shù)指標(biāo),是上述 芯片望塵莫及的。max038頻率高、精度好,因此它被稱為高頻精密函數(shù)信號發(fā) 生器ico在鎖相環(huán)、壓控振蕩器、頻率合成器、脈寬調(diào)制器等電路的設(shè)計上, maxo38都是優(yōu)選的器件。方案四:利用專用直接數(shù)字合成dds芯片的函數(shù)發(fā)生器:能產(chǎn)生任意波形 并達(dá)到很高的頻率。但成本較高相比以上四種方案,利用fpga進行開發(fā)具有自己的優(yōu)勢性:1)可以根據(jù)自己的需求進行定制特定的電路;2)綜合仿真容易實現(xiàn),擁有quartus il models

47、im和ise等軟件編程;3)可編程性強,verilog語言編程語法比較類似與熟悉的c語言,學(xué)習(xí)簡單 易用2.1硬件總體框圖硬件設(shè)計主要包含三個模塊,即吋鐘產(chǎn)生模塊、fpga信號產(chǎn)生模塊、d/a數(shù)模 轉(zhuǎn)換模塊??傮w框圖如圖31所示圖3-1時鐘模塊是用來給fpga提供基準(zhǔn)時鐘,其穩(wěn)定性決定了信號產(chǎn)生器的穩(wěn)定; fpga信號產(chǎn)生模塊是各種波形信號產(chǎn)生如:正弦波,方波,斜波,鋸齒波,三 角波,波形頻率設(shè)定;d/a數(shù)模轉(zhuǎn)化模塊是將fpga輸出的數(shù)據(jù)整合成模擬的波 形。2.2軟件總體框圖軟件系統(tǒng)設(shè)計主要包含三個模塊,即基于altera公司的quartus ii分頻模塊, 波形產(chǎn)生模塊,仿真軟件models

48、im波形仿真模塊。總體設(shè)計如圖32所示。時鐘分頻模塊是指將基準(zhǔn)時鐘進行分頻,以達(dá)到變換頻率的功能。波形產(chǎn)生 模塊用來產(chǎn)生各種波形,如增斜波,減斜波,正弦波,階梯波形,方波。數(shù)字輸 出模塊,將各種波形用數(shù)字進行輸出。2.3軟件與硬件設(shè)計總結(jié)綜上所述軟碩件結(jié)構(gòu),利用時鐘模塊產(chǎn)?;鶞?zhǔn)時鐘傳輸?shù)絝pga上,fpga 利用鎖相環(huán)對時鐘倍頻產(chǎn)牛更高的時鐘頻率,然后根據(jù)用戶需要,對時鐘進行分 頻,產(chǎn)生不同頻率的波形。通過verilog語言進行編程來產(chǎn)生各種波形,輸出到 da數(shù)模轉(zhuǎn)換模塊,產(chǎn)生模擬波形信號。3系統(tǒng)各模塊設(shè)計3.1時鐘模塊設(shè)計時鐘模塊的功能是分配系統(tǒng)時鐘,使得fpga輸出不同的頻率的波形。根據(jù)

49、這個功能,利用verilog編寫了分頻吋鐘模塊。利用altera公司開發(fā)的quartusclk div圖3-1分頻時鐘模塊時鐘模塊verilog代碼如卜:module clk_div(sysclk ,reset ,div ,clk_out);input sysclk,reset;input 7:0 div;output clk_out;reg clk_out;/reg clk_out_tmp=0;reg 7:0 count;reg 7:0 div_2;always (posedge sysclk or negedge reset) begin if(!reset) beginclk_out =

50、 0;count = 0;div_2 = div» 1;endelse beginif(count>=div_2) beginclk_out =clk_out;count = 0;endelsecount = count + 1;endendendmodule從圖3-1和時鐘模塊代碼中可以得到以卜信息:模塊的輸入變量是:外部基準(zhǔn)時鐘sysclk,模塊復(fù)位輸入reset,分頻系數(shù)輸入div,波形時鐘輸ill clk_out;復(fù)位輸入reset低電平時,時鐘模塊復(fù)位,系統(tǒng)不運作;分頻系數(shù)div決定波形時鐘,其分頻計算公式是:輸出時鐘頻率=系統(tǒng)時鐘頻率,比如說div值為1,則輸出時鐘

51、是系 div + 1統(tǒng)時鐘的二分z-;根據(jù)以上程序,編寫了下列測試程序:module tb_clkdiv;/ inputsreg sysclk;reg reset;reg 7:0 div;/ outputswire clk_out;/ instantiate the unit under test (uut)clk_div uut (sysclk(sysclk),.reset(reset),.div(div),.clk_out(clk_out);always #10 sysclk =sysclk;initial begin/ initialize inputs sysclk = 0;reset

52、 = 0;div = 0;/ wait 100 ns for global reset to finish #100;reset = 1;div = 1;#200;div = 2;endmodelsim軟件對時鐘模塊進行仿真,結(jié)果如圖3-2所示:圖3-2兩分頻吋鐘波形從圖中口j以看出在div=l, rest=l的情況下,輸出時鐘clk_out是輸入時鐘 clk_in的一半,這很好地證明了分頻時鐘的正確性。4 92 us4.93 us4.94 us4.95 us4.96 us1l>0clkint"l1 1llclk_out.tmp11 1:1廠再用quartus ii軟件進行綜合

53、仿真,結(jié)呆如圖3-3所示。圖3-3兩分頻時鐘波形從圖3-3所示的時鐘波形來看輸出時鐘clk_out時鐘頻率是輸入時鐘的一半, 但是存在小量的延時,比如說以lus為周期的情況下,延時大約是0.25us,但是 由于我們采用分頻后的時鐘作為產(chǎn)生波形的基準(zhǔn)時鐘,所以這點延時不影響整個 結(jié)果。綜上所述,該時鐘分頻模塊能夠?qū)⑤斎霑r鐘頻率按照自己系統(tǒng)需求分配出不同頻率。3.2增斜波設(shè)計增斜波是指波形按照一定的步幅遞增,達(dá)到最高點后又回到值為零的狀態(tài), 這樣循環(huán)進行。按照這種思想設(shè)計出來軟件流程圖如圖34所示。add根據(jù)圖3-4所示軟件流程圖設(shè)計出增斜波模塊的模塊框圖,如圖3-5所示。圖3-5增斜波模塊框圖從

54、圖3-5中來分析該模塊的輸入輸出模塊以及引腳定義: 模塊的輸入變量是:外部基準(zhǔn)時鐘sysclk_in,模塊復(fù)位輸入reset_in,分頻系數(shù)輸入div。輸出時鐘波形時鐘輸出qout_add;復(fù)位輸入reset低電平時,時鐘模塊復(fù)位,系統(tǒng)不運作;分頻系數(shù)div決定波形時鐘,其分頻計算公式是:輸出時鐘頻率二系統(tǒng)時鐘頻率,比如說div值為1,貝ij輸出時鐘是系 div + 1統(tǒng)時鐘的二分z-; qout_add是增斜波模塊的波形輸出。根據(jù)軟件流程圖以及模塊框圖中輸入輸出引腳定義,使用verilog語言設(shè)計了以 下代碼:module add(sysclk,系統(tǒng)時鐘rest,復(fù)位開關(guān),低電平復(fù)位div,

55、分頻qout_add遞增斜波);input sysclk;input rest;input 7:0 div;input sysclk;input rest;input 7:0 div;output 7:0 qout_add;wire elk out;clk_div clk(.sysclk(sysclk),.reset(rest),.div(div),.clk_out(clk_out);產(chǎn)生遞增斜波reg 7:0 tmp_add=0;always (posedge clk_out or negedge rest) beginif(!rest) beginqout_add = 0;tmp_add = 0;endelse begintmp_add = tmp_add + 1 ;if

溫馨提示

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

評論

0/150

提交評論