




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 / 64西安大西安大 學(xué)學(xué)畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文)題 目: 多功能波形發(fā)生器的設(shè)計(jì) 學(xué) 院: 電子工程學(xué)院 系 部: 光電子技術(shù)系 專 業(yè): 光電信息工程 班 級:學(xué)生:導(dǎo)師:職稱: 副教授 起止時(shí)間: 2013 年 3 月 4 日2013 年 6 月 14 日 1 / 64畢業(yè)設(shè)計(jì)(論文)誠信聲明書畢業(yè)設(shè)計(jì)(論文)誠信聲明書本人聲明:本人所提交的畢業(yè)論文 多功能波形發(fā)生器的設(shè)計(jì) 是本人在指導(dǎo)教師指導(dǎo)下獨(dú)立研究、寫作的成果,論文中所引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料均已明確標(biāo)注;對本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式注明并表示感。本人完全清楚本聲明的法律后果,申請
2、學(xué)位論文和資料若有不實(shí)之處,本人愿承擔(dān)相應(yīng)的法律責(zé)任。論文作者簽名: 時(shí)間: 年 月 日指導(dǎo)教師簽名: 時(shí)間: 年 月 日1 / 64郵電大學(xué)郵電大學(xué)畢業(yè)設(shè)計(jì)畢業(yè)設(shè)計(jì)( (論文論文) )任務(wù)書任務(wù)書任務(wù)與要求任務(wù)與要求開始日期開始日期2013-03-042013-03-04 完成日期完成日期2013-06-142013-06-14 系主任系主任( (簽字簽字) )20132013 年年3 3 月月1717 日日任務(wù):任務(wù): 1.1. 掌握可編程邏輯器件的工作原理;掌握可編程邏輯器件的工作原理; 2.2. 利用可編程利用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計(jì)并且進(jìn)行仿真驗(yàn)證;邏輯器件完成多功能
3、波形發(fā)生器的設(shè)計(jì)并且進(jìn)行仿真驗(yàn)證; 3.3. 完成畢業(yè)設(shè)計(jì)論文的撰寫。完成畢業(yè)設(shè)計(jì)論文的撰寫。 要求:要求: 1.1. 熟悉可編程邏輯器件的熟悉可編程邏輯器件的工作原理與工作原理與 VHDLVHDL 語言編程;語言編程; 2.2. 熟悉熟悉 QUARTUSQUARTUS IIII 軟件的使用;軟件的使用;有一定的數(shù)字系統(tǒng)設(shè)計(jì)能力。有一定的數(shù)字系統(tǒng)設(shè)計(jì)能力。 1 / 64工作進(jìn)程工作進(jìn)程起止時(shí)間工 作 容2013.3.4 2013.3.17 了解多功能波形發(fā)生器的功能與工作原理2013.3.182013.3.31 熟悉可編程邏輯器件的工作原理,QUARTUS軟件的使用以與 VHDL 語言編程的相
4、關(guān)知識(shí)2013.4.12013.4.19 結(jié)合多功能波形發(fā)生器需要實(shí)現(xiàn)的功能,利用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計(jì); 2013.4.202013.5.19 根據(jù)所得結(jié)果進(jìn)行分析,用 Verilog 語言編程進(jìn)行仿真,驗(yàn)證設(shè)計(jì)方案是否能實(shí)現(xiàn)多功能波形發(fā)生器的功能以與實(shí)現(xiàn)的效果如何; 2013.5.202013.6.14 整理材料,撰寫論文。1 / 64主要參考書目(資料):EDA 技術(shù)與應(yīng)用ModelSim 電子系統(tǒng)分析與仿真等主要儀器設(shè)備與材料:計(jì)算機(jī)與相應(yīng)資料論文(設(shè)計(jì))過程中教師的指導(dǎo)安排:每周三下午三號(hào)實(shí)驗(yàn)樓 518 答疑對計(jì)劃的說明:無 指導(dǎo)教師簽字: 2013 年 3 月 6
5、 日1 / 64大學(xué)畢業(yè)設(shè)計(jì)(論文)開題報(bào)告課題名稱:多功能波形發(fā)生器的設(shè)計(jì)電子工程學(xué)院學(xué)院光電子技術(shù) 系(部)光電信息工程專業(yè)班學(xué)生: 學(xué)號(hào): 指導(dǎo)教師: 報(bào)告日期: 2013 年 3 月 11 日 1 / 641本課題所涉與的問題與應(yīng)用現(xiàn)狀綜述波形發(fā)生器亦稱函數(shù)發(fā)生器,作為實(shí)驗(yàn)用信號(hào)源,是現(xiàn)今各種電子電路實(shí)驗(yàn)設(shè)計(jì)應(yīng)用中必不可少的儀器設(shè)備之一。所謂多功能波形發(fā)生器是能夠產(chǎn)生大量的標(biāo)準(zhǔn)信號(hào)和用戶自定義信號(hào),并保證高精度、高穩(wěn)定性、可重復(fù)性和已操作性的電子儀器。因而它具有廣闊的應(yīng)用前景。可編程邏輯器件英文全稱為:programmable logic device 即 PLD。PLD 是作為一種通
6、用集成電路產(chǎn)生的,它的邏輯功能按照用戶對器件編程來確定。對于可編程邏輯器件,設(shè)計(jì)人員可利用價(jià)格低廉的軟件工具快速開發(fā)、仿真和測試其設(shè)計(jì)。 然后,可快速將設(shè)計(jì)編程到器件中,并立即在實(shí)際運(yùn)行的電路中對設(shè)計(jì)進(jìn)行測試。 在設(shè)計(jì)階段中客戶可根據(jù)需要修改電路,直到對設(shè)計(jì)工作感到滿意為止。 這是因?yàn)?PLD基于可重寫的存儲(chǔ)器技術(shù)要改變設(shè)計(jì),只需要簡單地對器件進(jìn)行重新編程。傳統(tǒng)波形發(fā)生器大多由振蕩器、放大器、衰減器、指示器和調(diào)制器組成。這種傳統(tǒng)設(shè)計(jì)方法的特點(diǎn)是硬件和軟件截然不同,設(shè)計(jì)中不可相互替代,而且硬件連線復(fù)雜,可靠性較差。硬件描述語言 VHDL 和可編程邏輯器件的廣泛應(yīng)用打破了硬件和軟件的屏障。基于 V
7、erilog 語言,以EDA 技術(shù)作為開發(fā)手段,采用現(xiàn)場可編程器件作為控制核心實(shí)現(xiàn)的波形發(fā)生器,與傳統(tǒng)的設(shè)計(jì)相比較,不僅簡化了硬件控制,提高了系統(tǒng)的整體性能和工作可靠性,也為進(jìn)一步提高系統(tǒng)集成創(chuàng)造了條件。本課題所涉與的問題包括了解多功能波形發(fā)生器的功能,熟悉可編程邏輯器件的工作原理、QUARTUS軟件的使用與 Verilog 語言編程,利用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計(jì)并且進(jìn)行仿真驗(yàn)證。2 2本課題需要重點(diǎn)研究的關(guān)鍵問題、解決的思路與實(shí)現(xiàn)預(yù)期目標(biāo)的可行性分析本課題需要重點(diǎn)研究的關(guān)鍵問題是利用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計(jì)并進(jìn)行仿真驗(yàn)證。解決思路是在深入理解多功能波形發(fā)生器的
8、功能和可編程邏輯器件的工作原理的基礎(chǔ)上,用 Verilog 語言編程,利用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計(jì)并且進(jìn)行仿真,驗(yàn)證設(shè)計(jì)方案是否能實(shí)現(xiàn)多功能波形發(fā)生器的功能以與實(shí)現(xiàn)的效果如何。1 / 643 3完成本課題的工作方案2013.3.42013.3.17了解多功能波形發(fā)生器的功能與工作原理;2013.3.182013.3.31熟悉可編程邏輯器件的工作原理,QUARTUS軟件的使用以與 VHDL語言編程的相關(guān)知識(shí);2013.4.12013.4.19結(jié)合多功能波形發(fā)生器需要實(shí)現(xiàn)的功能,利用可編程邏輯器件完成多功能波形發(fā)生器的設(shè)計(jì);2013.4.202013.5.19根據(jù)所得結(jié)果進(jìn)行分析,
9、用 Verilog 語言編程進(jìn)行仿真,驗(yàn)證設(shè)計(jì)方案是否能實(shí)現(xiàn)多功能波形發(fā)生器的功能以與實(shí)現(xiàn)的效果如何;2013.5.202013.6.14整理材料,撰寫論文。4 4指導(dǎo)教師審閱意見指導(dǎo)教師指導(dǎo)教師(簽字):2013 年 3 月 13 日1 / 641 / 641 / 64I / 64目錄目錄摘要摘要 IIIIABSTRACTABSTRACTIIIIII引言引言 1 11.1. EDAEDA 與軟件簡介與軟件簡介 2 21.1 EDA 技術(shù)發(fā)展 21.2 FPGA 介紹 31.3 Modelsim 介紹 41.4 Verilog 與 VHDL 語言介紹 51.5 測試激勵(lì)文件介紹 51.6 軟件
10、使用入門 51.6.1 系統(tǒng)仿真軟件 Modulsim 使用 51.6.2 Quartus II 軟件使用 72 2 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì) 9 92.1 硬件總體框圖 92.2 軟件總體框圖 92.3 軟件與硬件設(shè)計(jì)總結(jié) 103 3 系統(tǒng)各模塊設(shè)計(jì)系統(tǒng)各模塊設(shè)計(jì) 11113.1 時(shí)鐘模塊設(shè)計(jì) 113.2 增斜波設(shè)計(jì) 133.3 減斜波設(shè)計(jì) 153.4 方波設(shè)計(jì) 183.5 三角波設(shè)計(jì) 203.6 正弦波設(shè)計(jì) 223.7 階梯波設(shè)計(jì) 254 4 系統(tǒng)軟硬件聯(lián)合調(diào)試系統(tǒng)軟硬件聯(lián)合調(diào)試 29294.1 系統(tǒng)整體模塊結(jié)構(gòu)圖 294.2 系統(tǒng)仿真輸出圖 30結(jié)論結(jié)論 3131II / 64致致 33
11、33參考文獻(xiàn)參考文獻(xiàn) 3434附錄附錄 3 35 5譯文譯文 4545摘要摘要在函數(shù)發(fā)生器發(fā)展過程中,出現(xiàn)了很多波形發(fā)生的方法,其部分是利用 DDS原理制作而成,比如說由晶體管、運(yùn)放 IC 等通用器件制作而成,或者利用單片集成芯片制做而成。但是隨著 FPGA 的出現(xiàn),波形發(fā)生的方法更加多元化。將DDS 原理成功的移植到 FPGA 中,就能產(chǎn)生多種波形,頻率可調(diào),相位可選的波形發(fā)生裝置,也可以自行設(shè)計(jì)方法產(chǎn)生波形,使得開發(fā)更加簡單。本文提出了一種基于可編程邏輯器件 FPGA 產(chǎn)生任意波形發(fā)生器的設(shè)計(jì)方法。完成了在 FPGA 的控制下,產(chǎn)生遞增斜波、遞減斜波、方波、三角波、正弦波與階梯波行,利用
12、Modelsim 和 Quartus II 進(jìn)行仿真,驗(yàn)證波形,并給出了實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果表明,此任意波形發(fā)生器能夠按照要求輸出相應(yīng)波形,達(dá)到了設(shè)計(jì)要求。關(guān)鍵字:關(guān)鍵字:FPGA,斜波;方波;三角波;正弦波;階梯波III / 64ABSTRACTABSTRACT With function generator in the rapid development process, there have been many ways to generate waveform,And most of them do it with DDS. For example, a transistor, op
13、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, selectable waveform generating device.FPGA can design their own
14、 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 FPGA,it gnenrated increasing oblique wave and decreasing oblique wave, square wave, triangle wa
15、ve, 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 design requirements.Keyword:Keyword: FPGA,oblique wav
16、e, square wave, triangle wave, sine wave and step wave1 / 64引言在電子、通信、實(shí)驗(yàn)教學(xué)等領(lǐng)域,高精度、高分辨率、幅度相位可控的信號(hào)發(fā)生器有著廣泛的應(yīng)用。信號(hào)發(fā)生器又稱為信號(hào)源或者振蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有著廣泛的應(yīng)用。函數(shù)發(fā)生器是使用最廣的通用信號(hào)源,提供正弦波、鋸齒波、方波、脈沖波等波形,有的還同時(shí)具有調(diào)制和掃描功能。 函數(shù)波形發(fā)生器在設(shè)計(jì)上分為模擬式和數(shù)字合成式。眾所周知,數(shù)字合成式函數(shù)信號(hào)源(DDS)無論就頻率、幅度乃至信號(hào)的信噪比(S/N)均優(yōu)于模擬式,其鎖相環(huán)(PLL)的設(shè)計(jì)讓輸出信號(hào)不僅是頻率精準(zhǔn),而且相位抖動(dòng)(ph
17、aseJitter)與頻率漂移均能達(dá)到相當(dāng)穩(wěn)定的狀態(tài),但數(shù)字式信號(hào)源中,數(shù)字電路與模擬電路之間的干擾始終難以有效克服,也造成在小信號(hào)的輸出上不如模擬式的函數(shù)信號(hào)發(fā)生器。 本文引入利用 FPGA 來產(chǎn)生階梯波、三角波、遞增斜波、遞減斜波、正弦波、方波。具有以下優(yōu)勢:開發(fā)信號(hào)發(fā)生器簡單,容易實(shí)現(xiàn),成本低廉,能夠根據(jù)用戶需求進(jìn)行定制等功能。FPGA 是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。因?yàn)槠涫且环N半定制的電路結(jié)構(gòu),因而 FPGA 具有很多靈活性,能夠根據(jù)本系統(tǒng)的需求靈活改變部電路,以達(dá)到系統(tǒng)的需要。另外一方面,硬件描述語
18、言出現(xiàn),使得 FPGA 開發(fā)隨心應(yīng)手,方便快捷。因?yàn)橛布枋稣Z言具有設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以與包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制,這樣使得從頂層整體架構(gòu)到底層具體模塊的開發(fā),以與后續(xù)的驗(yàn)證,時(shí)延等更加方便快捷。從 FPGA 開發(fā)多功能信號(hào)發(fā)生器的角度來說,因?yàn)橛辛俗晕叶ㄖ齐娐芬耘c靈活高效的硬件描述語言,使得本系統(tǒng)開發(fā)簡單,編程容易,可靠性高,代碼冗余量少。而且能夠積極擴(kuò)展,使得設(shè)計(jì)更加多元化,甚至能做成任意信號(hào)發(fā)生器。2 / 641. EDA 與軟件簡介1.1 EDA 技術(shù)發(fā)展在電子設(shè)計(jì)自動(dòng)化(英語:Electronic design automation
19、,縮寫:EDA)出現(xiàn)之前,設(shè)計(jì)人員必須手工完成集成電路的設(shè)計(jì)、布線等工作,這是因?yàn)楫?dāng)時(shí)所謂集成電路的復(fù)雜程度遠(yuǎn)不與現(xiàn)在。工業(yè)界開始使用幾何學(xué)方法來制造用于電路光繪(photoplotter)的膠帶。到了 1970 年代中期,開發(fā)人應(yīng)嘗試將整個(gè)設(shè)計(jì)過程自動(dòng)化,而不僅僅滿足于自動(dòng)完成掩膜草圖。第一個(gè)電路布線、布局工具研發(fā)成功。設(shè)計(jì)自動(dòng)化會(huì)議(Design Automation Conference)在這一時(shí)期被創(chuàng)立,旨在促進(jìn)電子設(shè)計(jì)自動(dòng)化的發(fā)展。從 1981 年開始,電子設(shè)計(jì)自動(dòng)化逐漸開始商業(yè)化。1984 年的設(shè)計(jì)自動(dòng)化會(huì)議(Design Automation Conference)上還舉辦了第一
20、個(gè)以電子設(shè)計(jì)自動(dòng)化為主題的銷售展覽。Gateway 設(shè)計(jì)自動(dòng)化在 1986 年推出了一種硬件描述語言Verilog,這種語言在現(xiàn)在是最流行的高級抽象設(shè)計(jì)語言。1987 年,在美國國防部的資助下,另一種硬件描述語言 VHDL 被創(chuàng)造出來。現(xiàn)代的電子設(shè)計(jì)自動(dòng)化設(shè)計(jì)工具可以識(shí)別、讀取不同類型的硬件描述。根據(jù)這些語言規(guī)產(chǎn)生的各種仿真系統(tǒng)迅速被推出,使得設(shè)計(jì)人員可對設(shè)計(jì)的芯片進(jìn)行直接仿真。后來,技術(shù)的發(fā)展更側(cè)重于邏輯綜合。目前的數(shù)字集成電路的設(shè)計(jì)都比較模塊化(參見集成電路設(shè)計(jì)、設(shè)計(jì)收斂(Design closure)和設(shè)計(jì)流(Design flow (EDA)) ) 。半導(dǎo)體器件制造工藝需要標(biāo)準(zhǔn)化的設(shè)計(jì)
21、描述,高抽象級的描述將被編譯為信息單元(cell)的形式。設(shè)計(jì)人員在進(jìn)行邏輯設(shè)計(jì)時(shí)尚無需考慮信息單元的具體硬件工藝。利用特定的集成電路制造工藝來實(shí)現(xiàn)硬件電路,信息單元就會(huì)實(shí)施預(yù)定義的邏輯或其他電子功能。半導(dǎo)體硬件廠商大多會(huì)為它們制造的元件提供“元件庫” ,并提供相應(yīng)的標(biāo)準(zhǔn)化仿真模型。相比數(shù)字的電子設(shè)計(jì)自動(dòng)化工具,模擬系統(tǒng)的電子設(shè)計(jì)自動(dòng)化工具大多并非模塊化的,這是因?yàn)槟M電路的功能更加復(fù)雜,而且不同部分的相互影響較強(qiáng),而且作用規(guī)律復(fù)雜,電子元件大多沒有那么理想。Verilog AMS 就是一種用于模擬電子設(shè)計(jì)的硬件描述語言。此文,設(shè)計(jì)人員可以使用硬件驗(yàn)證語言來完成項(xiàng)目的驗(yàn)證工作目前最新的發(fā)展趨勢
22、是將集描述語言、驗(yàn)證語言集成為一體,典型的例子有 SystemVerilog。隨著集成電路規(guī)模的擴(kuò)大、半導(dǎo)體技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)化的重要性急劇增加。這些工具的使用者包括半導(dǎo)體器件制造中心的硬件技術(shù)人員,他們的工作是操作半導(dǎo)體器件制造設(shè)備并管理整個(gè)工作車間。一些以設(shè)計(jì)為主要業(yè)3 / 64務(wù)的公司,也會(huì)使用電子設(shè)計(jì)自動(dòng)化軟件來評估制造部門是否能夠適應(yīng)新的設(shè)計(jì)任務(wù)。電子設(shè)計(jì)自動(dòng)化工具還被用來將設(shè)計(jì)的功能導(dǎo)入到類似現(xiàn)場可編程邏輯門陣列的半定制可編程邏輯器件,或者生產(chǎn)全定制的專用集成電路。EDA 代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員按照“自頂向下”的設(shè)計(jì)方法,對整個(gè)系統(tǒng)進(jìn)行
23、方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語言(HDL)完成系統(tǒng)行為級設(shè)計(jì),最后通過綜合器和適配器生成最終的目標(biāo)器件。這樣的設(shè)計(jì)方法被稱為高層次的電子設(shè)計(jì)方法。下面介紹與 EDA 基本特征有關(guān)的幾個(gè)概念。1) “自頂向下”的設(shè)計(jì)方法10 年前,電子設(shè)計(jì)的基本思路還是選擇標(biāo)準(zhǔn)集成電路“自底向上”(BottomUp)的構(gòu)造出一個(gè)新的系統(tǒng),這樣的設(shè)計(jì)方法就如同一磚一瓦建造金字塔,不僅效率低、成本高而且容易出錯(cuò)。高層次設(shè)計(jì)給我們提供了一種“自頂向下”(TopDown)的全新設(shè)計(jì)方法,這種設(shè)計(jì)方法首先從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì)。
24、在方框圖一級進(jìn)行仿真、糾錯(cuò),并用硬件描述語言對高層次的系統(tǒng)行為進(jìn)行描述,在系統(tǒng)一級進(jìn)行驗(yàn)證。然后用綜合優(yōu)化工具生成具體門電路的網(wǎng)表,其對應(yīng)的物理實(shí)現(xiàn)級可以是印刷電路板或?qū)S眉呻娐贰S捎谠O(shè)計(jì)的主要仿真和調(diào)試過程是在高層次上完成的,這一方面有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤,避免設(shè)計(jì)工作的浪費(fèi),同時(shí)也減少了邏輯功能仿真的工作量,提高了設(shè)計(jì)的一次成功率。2) ASIC 設(shè)計(jì)現(xiàn)代電子產(chǎn)品的復(fù)雜度日益加深,一個(gè)電子系統(tǒng)可能由數(shù)萬個(gè)中小規(guī)模集成電路構(gòu)成,這就帶來了體積大、功耗大、可靠性差的問題,解決這一問題的有效方法就是采用 ASIC(Application Specific Integrated Circ
25、uits)芯片進(jìn)行設(shè)計(jì)。ASIC 按照設(shè)計(jì)方法的不同可分為:全定制 ASIC,半定制 ASIC,可編程 ASIC(也稱為可編程邏輯器件)。設(shè)計(jì)全定制 ASIC 芯片時(shí),設(shè)計(jì)師要定義芯片上所有晶體管的幾何圖形和工藝規(guī)則,最后將設(shè)計(jì)結(jié)果交由 IC 廠家掩膜制造完成。優(yōu)點(diǎn)是:芯片可以獲得最優(yōu)的性能,即面積利用率高、速度快、功耗低。缺點(diǎn)是:開發(fā)周期長,費(fèi)用高,只適合大批量產(chǎn)品開發(fā)。半定制 ASIC 芯片的版圖設(shè)計(jì)方法有所不同,分為門陣列設(shè)計(jì)法和標(biāo)準(zhǔn)單元設(shè)計(jì)法,這兩種方法都是約束性的設(shè)計(jì)方法,其主要目的就是簡化設(shè)計(jì),以犧牲芯片性能為代價(jià)來縮短開發(fā)時(shí)間。4 / 64可編程邏輯芯片與上述掩膜 ASIC 的不
26、同之處在于:設(shè)計(jì)人員完成版圖設(shè)計(jì)后,在實(shí)驗(yàn)室就可以燒制出自己的芯片,無須 IC 廠家的參與,大大縮短了開發(fā)周期。可編程邏輯器件自七十年代以來,經(jīng)歷了 PAL、GAL、CPLD、FPGA 幾個(gè)發(fā)展階段,其中 CPLD/FPGA 屬高密度可編程邏輯器件,目前集成度已高達(dá) 200 萬門/片,它將掩膜 ASIC 集成度高的優(yōu)點(diǎn)和可編程邏輯器件設(shè)計(jì)生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場擴(kuò)大時(shí),它可以很容易的轉(zhuǎn)由掩膜 ASIC 實(shí)現(xiàn),因此開發(fā)風(fēng)險(xiǎn)也大為降低。上述 ASIC 芯片,尤其是 CPLD/FPGA 器件,已成為現(xiàn)代高層次電子設(shè)計(jì)方法的實(shí)現(xiàn)載
27、體。1.2 FPGA 介紹FPGA(FieldProgrammable Gate Array) ,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)
28、學(xué)方程式。在大多數(shù)的 FPGA 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。目前市場上開發(fā) FPGA 的主要有兩大供應(yīng)商,一個(gè)就是 ALTERA 公司,另一個(gè)就是 Xilinx 公司。Altera 的主流 FPGA 分為兩大類,一種側(cè)重低成本應(yīng)用,容量中等,性能可以滿足一般的邏輯設(shè)計(jì)要求,如 Cyclone,CycloneII;還有一種側(cè)重于高性能應(yīng)用,容量大,性能能滿足各類高端應(yīng)用,如 Startix,StratixII 等,用戶可以根據(jù)自己實(shí)際應(yīng)用要求進(jìn)行選擇。在性能可以滿足的情況下,優(yōu)先選擇低成本器件。MAX+PLUSII:普遍認(rèn)為 Ma
29、xplusII 曾經(jīng)是最優(yōu)秀的 PLD 開發(fā)平臺(tái)之一,適合開發(fā)早期的中小規(guī)模 PLD/FPGA 由 QuartusII 替代,不再推薦使用。QuartusII:Altera 新一代 FPGA/PLD 開發(fā)軟件,適合新器件和大規(guī)模 FPGA的開發(fā),已經(jīng)取代 MaxplusII。SOPC Builder: 配合 QuartusII,可以完成集成 CPU 的 FPGA 芯片的開發(fā)工5 / 64作DSP Builder: QuartusII 與 Matlab 的接口,利用 IP 核在 Matlab 中快速完成數(shù)字信號(hào)處理的仿真和最終 FPGA 實(shí)現(xiàn)。Xilinx 的主流 FPGA 分為兩大類,一種側(cè)重
30、低成本應(yīng)用,容量中等,性能可以滿足一般的邏輯設(shè)計(jì)要求,如 Spartan 系列;還有一種側(cè)重于高性能應(yīng)用,容量大,性能能滿足各類高端應(yīng)用,如 Virtex 系列,用戶可以根據(jù)自己實(shí)際應(yīng)用要求進(jìn)行選擇。 在性能可以滿足的情況下,優(yōu)先選擇低成本器件。 ISE:Xilinx 公司集成開發(fā)的工具 Foundation: Xilinx 公司早期的開發(fā)工具,逐步被 ISE 取代嵌入式開發(fā)套件(EDK): 用于開發(fā)集成 PowerPC 硬核和 MicroBlaze 軟核CPU 的工具System Generator for DSP :配合 Matlab,在 FPGA 中完成數(shù)字信號(hào)處理的工具1.3 Mode
31、lsim 介紹Mentor 公司的 ModelSim 是業(yè)界最優(yōu)秀的 HDL 語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單核支持 VHDL 和 Verilog 混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk 技術(shù)、和單一核仿真技術(shù),編譯仿真速度快,編譯的代碼與平臺(tái)無關(guān),便于保護(hù) IP 核,個(gè)性化的圖形界面和用戶接口,為用戶加快調(diào)錯(cuò)提供強(qiáng)有力的手段,是 FPGA/ASIC 設(shè)計(jì)的首選仿真軟件。ModelSim 分幾種不同的版本:SE、PE、LE 和 OEM,其中 SE 是最高級的版本,而集成在 Actel、Atmel、Altera、Xilinx 以與 Lattice 等 FPG
32、A 廠商設(shè)計(jì)工具中的均是其 OEM 版本。SE 版和 OEM 版在功能和性能方面有較大差別,比如對于大家都關(guān)心的仿真速度問題,以 Xilinx 公司提供的 OEM 版本 ModelSim XE為例,對于代碼少于 40000 行的設(shè)計(jì),ModelSim SE 比 ModelSim XE 要快 10 倍;對于代碼超過 40000 行的設(shè)計(jì),ModelSim SE 要比 ModelSim XE 快近 40 倍。ModelSim SE 支持 PC、UNIX 和 LINUX 混合平臺(tái);提供全面完善以與高性能的驗(yàn)證功能;全面支持業(yè)界廣泛的標(biāo)準(zhǔn);Mentor Graphics 公司提供業(yè)界最好的技術(shù)支持與服
33、務(wù)。1.4 Verilog 與 VHDL 語言介紹Verilog HDL 語言是一種硬件描述語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。其具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以與包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,Verilog HDL 語言提供6 / 64了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。VHDL 語言是一種用于電路設(shè)計(jì)的高級語言。VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL 的語言
34、形式、描述風(fēng)格以與語法是十分類似于一般的計(jì)算機(jī)高級語言。VHDL 的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,與端口)和部(或稱不可視部分) ,既涉與實(shí)體的部功能和算法完成部分。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。1.5 測試激勵(lì)文件介紹測試激勵(lì)也叫 testbench,它是一種驗(yàn)證的手段。首先,任何設(shè)計(jì)都是會(huì)有輸入輸出的。但是在軟環(huán)境中沒有激勵(lì)輸入,也不會(huì)對你設(shè)計(jì)的輸出正確性進(jìn)行評估。那么此時(shí)便有一種,模擬實(shí)際環(huán)境的輸入激勵(lì)和輸出校驗(yàn)的一種“虛擬平臺(tái)”的產(chǎn)生。在這個(gè)平臺(tái)上你可
35、以對你的設(shè)計(jì)從軟件層面上進(jìn)行分析和校驗(yàn)。用通俗的話來表示:測試激勵(lì)就是啟動(dòng)模塊的鑰匙,它能夠模擬模塊的輸入變量,使其能夠按照工程師的要求進(jìn)行工作。1.6 軟件使用入門1.6.1 系統(tǒng)仿真軟件 Modulsim 使用Modulsim 是目前市場上最流行的 FPGA 仿真軟件,以其卓越的性能和操作簡單性著稱。下面以 Modelsim 10.0 來做個(gè)使用向?qū)А?) 軟件安裝好之后,打開軟件 modulsim,點(diǎn)擊 FILE-new-project,將出現(xiàn)如圖 1-4 所示畫面,起名為 test。7 / 64圖 1-4 新建工程2) 在如圖 1-5 所示界面添加 verilog 文件與測試文件,然后
36、進(jìn)行編譯,將出現(xiàn)圖 1-6 所示畫面圖 1-5 添加文件圖 1-6 編譯結(jié)果3) 雙擊測試文件,tb_sysgen 將出現(xiàn)圖 1-7 所示現(xiàn)象,然后在測試文件tb_sysgen 上右擊選中 start simulation ,會(huì)出現(xiàn)如圖 1-8 所示現(xiàn)象。8 / 64圖 1-7 點(diǎn)擊仿真圖 1-8 添加波形4) 運(yùn)行仿真,將開始進(jìn)行波形仿真,如圖 1-9 所示:9 / 64圖 1-9 波形仿真圖1.6.2 Quartus II 軟件使用Quartus II 軟件是目前市場上最流行的 FPGA 開發(fā)綜合軟件,它的開發(fā)者是altera 公司。其容易操作,具有良好的可視化,開發(fā)簡單,易于被初學(xué)這接受
37、。以下介紹 Quartus II 12.0 的簡單使用。1) 打開 Quartus II 軟件,點(diǎn)擊 File 選項(xiàng),然后選擇 new,選擇 new Quartus II project,選擇好器件以與存放路徑,就建立好工程文件了,如圖 2-10。10 / 64圖 1-10 新建工程2) 點(diǎn)擊 File,選擇 new,新建 verilog HDL,比如文件名字叫 test。編程完畢之后,可以編譯下,看看有沒有語法錯(cuò)誤,如果沒有語法錯(cuò)誤,則進(jìn)入測試文件建立模塊。3) 點(diǎn)擊菜單欄中 processing,選擇 start,選擇 start testbench template write。此時(shí)會(huì)自
38、動(dòng)生成 testbench 模板到項(xiàng)目文件夾simulation 里面,后綴為.vt ,這時(shí)候就可以通過 modulesim 進(jìn)行仿真了。2 系統(tǒng)總體設(shè)計(jì) 本系統(tǒng)是基于 FPGA 開發(fā)的多功能波形發(fā)生器,利用硬件描述語言Verilog 進(jìn)行編程,Quartus II 上進(jìn)行編譯,并仿真驗(yàn)證結(jié)構(gòu),接著利用Modelsim 進(jìn)行再次仿真驗(yàn)證,以達(dá)到本系統(tǒng)的要求,產(chǎn)生增斜波、減斜波、方波、三角波、正弦波、階梯波形。但是確定該方案之前還是有很多方案: 方案一: 用分立元件組成的函數(shù)發(fā)生器:通常是單函數(shù)發(fā)生器且頻率不高,其工作不很穩(wěn)定,不易調(diào)試方案二:可以由晶體管、運(yùn)放 IC 等通用器件制作,更多的則是
39、用專門的函數(shù)信號(hào)發(fā)生器 IC 產(chǎn)生。早期的函數(shù)信號(hào)發(fā)生器 IC,如L8038、BA205、XR2207/2209 等,它們的功能較少,精度不高,頻率上限只有300kHz,無法產(chǎn)生更高頻率的信號(hào),調(diào)節(jié)方式也不夠靈活,頻率和占空比不能獨(dú)立調(diào)節(jié),二者互相影響。11 / 64方案三:利用單片集成芯片的函數(shù)發(fā)生器:能產(chǎn)生多種波形,達(dá)到較高的頻率,且易于調(diào)試。鑒于此,美國美信公司開發(fā)了新一代函數(shù)信號(hào)發(fā)生器ICMAX038,它克服了(2)中芯片的缺點(diǎn),可以達(dá)到更高的技術(shù)指標(biāo),是上述芯片望塵莫與的。MAX038 頻率高、精度好,因此它被稱為高頻精密函數(shù)信號(hào)發(fā)生器 IC。在鎖相環(huán)、壓控振蕩器、頻率合成器、脈寬調(diào)
40、制器等電路的設(shè)計(jì)上,MAX038 都是優(yōu)選的器件。方案四: 利用專用直接數(shù)字合成 DDS 芯片的函數(shù)發(fā)生器:能產(chǎn)生任意波形并達(dá)到很高的頻率。但成本較高相比以上四種方案,利用 FPGA 進(jìn)行開發(fā)具有自己的優(yōu)勢性:1) 可以根據(jù)自己的需求進(jìn)行定制特定的電路;2) 綜合仿真容易實(shí)現(xiàn),擁有 Quartus II、Modelsim 和 ISE 等軟件編程;3) 可編程性強(qiáng),Verilog 語言編程語法比較類似與熟悉的 C 語言,學(xué)習(xí)簡單易用2.1 硬件總體框圖硬件設(shè)計(jì)主要包含三個(gè)模塊,即時(shí)鐘產(chǎn)生模塊、FPGA 信號(hào)產(chǎn)生模塊、D/A 數(shù)模轉(zhuǎn)換模塊。總體框圖如圖 3-1 所示圖 3-1時(shí)鐘模塊是用來給 FP
41、GA 提供基準(zhǔn)時(shí)鐘,其穩(wěn)定性決定了信號(hào)產(chǎn)生器的穩(wěn)定;FPGA 信號(hào)產(chǎn)生模塊是各種波形信號(hào)產(chǎn)生如:正弦波,方波,斜波,鋸齒波,三角波,波形頻率設(shè)定;D/A 數(shù)模轉(zhuǎn)化模塊是將 FPGA 輸出的數(shù)據(jù)整合成模擬的波形。12 / 64圖 3-22.2 軟件總體框圖軟件系統(tǒng)設(shè)計(jì)主要包含三個(gè)模塊,即基于 altera 公司的 Quartus II 分頻模塊,波形產(chǎn)生模塊,仿真軟件 Modelsim 波形仿真模塊。總體設(shè)計(jì)如圖 3-2所示。時(shí)鐘分頻模塊是指將基準(zhǔn)時(shí)鐘進(jìn)行分頻,以達(dá)到變換頻率的功能。波形產(chǎn)生模塊用來產(chǎn)生各種波形,如增斜波,減斜波,正弦波,階梯波形,方波。數(shù)字輸出模塊,將各種波形用數(shù)字進(jìn)行輸出。2
42、.3 軟件與硬件設(shè)計(jì)總結(jié)綜上所述軟硬件結(jié)構(gòu),利用時(shí)鐘模塊產(chǎn)生基準(zhǔn)時(shí)鐘傳輸?shù)?FPGA 上,F(xiàn)PGA利用鎖相環(huán)對時(shí)鐘倍頻產(chǎn)生更高的時(shí)鐘頻率,然后根據(jù)用戶需要,對時(shí)鐘進(jìn)行分頻,產(chǎn)生不同頻率的波形。通過 Verilog 語言進(jìn)行編程來產(chǎn)生各種波形,輸出到 DA 數(shù)模轉(zhuǎn)換模塊,產(chǎn)生模擬波形信號(hào)。3 系統(tǒng)各模塊設(shè)計(jì)3.1 時(shí)鐘模塊設(shè)計(jì)時(shí)鐘模塊的功能是分配系統(tǒng)時(shí)鐘,使得 FPGA 輸出不同的頻率的波形。根據(jù)這個(gè)功能,利用 Verilog 編寫了分頻時(shí)鐘模塊。利用 ALTERA 公司開發(fā)的 QuartusII13 / 64軟件進(jìn)行綜合,布線之后,得到如圖 3-1 模塊原理圖:圖 3-1 分頻時(shí)鐘模塊時(shí)鐘模塊
43、 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) beginif(!reset) beginclk_out = 0;count = 0;div_2 = div1;endelse beginif(count=div_2) beginclk_
44、out = clk_out;count = 0;endelsecount = count + 1;endendendmodule14 / 64從圖 3-1 和時(shí)鐘模塊代碼中可以得到以下信息:模塊的輸入變量是:外部基準(zhǔn)時(shí)鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div,波形時(shí)鐘輸出 clk_out;復(fù)位輸入 reset 低電平時(shí),時(shí)鐘模塊復(fù)位,系統(tǒng)不運(yùn)作;分頻系數(shù) div 決定波形時(shí)鐘,其分頻計(jì)算公式是:,比如說 div 值為 1,則輸出時(shí)鐘是1div 系統(tǒng)時(shí)鐘頻率輸出時(shí)鐘頻率系統(tǒng)時(shí)鐘的二分之一;根據(jù)以上程序,編寫了下列測試程序:module tb_clkdiv;/ Inputs
45、reg 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 Inputssysclk = 0;reset = 0;div = 0;/ Wait 100 ns for global reset to finish#100
46、; reset = 1;div = 1;#200;div = 2;15 / 64endendmodule從上述激勵(lì)中看出,div=1,也就是 2 分頻,系統(tǒng)的運(yùn)行周期是 20ns。利用 Modelsim 軟件對時(shí)鐘模塊進(jìn)行仿真,結(jié)果如圖 3-2 所示:圖 3-2 兩分頻時(shí)鐘波形從圖中可以看出在 div=1,rest=1 的情況下,輸出時(shí)鐘 clk_out 是輸入時(shí)鐘 clk_in 的一半,這很好地證明了分頻時(shí)鐘的正確性。再用 Quartus II 軟件進(jìn)行綜合仿真,結(jié)果如圖 3-3 所示。圖 3-3 兩分頻時(shí)鐘波形從圖 3-3 所示的時(shí)鐘波形來看輸出時(shí)鐘 clk_out 時(shí)鐘頻率是輸入時(shí)鐘的一
47、半,但是存在小量的延時(shí),比如說以 1us 為周期的情況下,延時(shí)大約是0.25us,但是由于我們采用分頻后的時(shí)鐘作為產(chǎn)生波形的基準(zhǔn)時(shí)鐘,所以這點(diǎn)延時(shí)不影響整個(gè)結(jié)果。綜上所述,該時(shí)鐘分頻模塊能夠?qū)⑤斎霑r(shí)鐘頻率按照自己系統(tǒng)需求分配出不同頻率。3.2 增斜波設(shè)計(jì)增斜波是指波形按照一定的步幅遞增,達(dá)到最高點(diǎn)后又回到值為零的狀態(tài),這樣循環(huán)進(jìn)行。按照這種思想設(shè)計(jì)出來軟件流程圖如圖 3-4 所示。16 / 64圖 3-4 增斜波軟件流程圖根據(jù)圖 3-4 所示軟件流程圖設(shè)計(jì)出增斜波模塊的模塊框圖,如圖 3-5 所示。圖 3-5 增斜波模塊框圖 從圖 3-5 中來分析該模塊的輸入輸出模塊以與引腳定義:模塊的輸入變
48、量是:外部基準(zhǔn)時(shí)鐘 sysclk_in,模塊復(fù)位輸入reset_in,分頻系數(shù)輸入 div。輸出時(shí)鐘波形時(shí)鐘輸出 Qout_add;復(fù)位輸入 reset 低電平時(shí),時(shí)鐘模塊復(fù)位,系統(tǒng)不運(yùn)作;分頻系數(shù) div 決定波形時(shí)鐘,其分頻計(jì)算公式是:,比如說 div 值為 1,則輸出時(shí)鐘是1div系統(tǒng)時(shí)鐘頻率輸出時(shí)鐘頻率系統(tǒng)時(shí)鐘的二分之一;Qout_add 是增斜波模塊的波形輸出。根據(jù)軟件流程圖以與模塊框圖中輸入輸出引腳定義,使用 Verilog 語言設(shè)計(jì)了以下代碼:開始rest,sysclk,div輸入輸出遞增波形結(jié)束分頻初始化變量rest=1NOYES17 / 64module add(SysClk
49、 ,/系統(tǒng)時(shí)鐘rest,/復(fù)位開關(guān),低電平復(fù)位div,/分頻Qout_add /遞增斜波 );input SysClk;input rest;input 7:0 div;input SysClk;input rest;input 7:0 div;output 7:0 Qout_add;wire clk_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(
50、!rest) beginQout_add = 0;tmp_add = 0;endelse begintmp_add = tmp_add + 1 ;if(tmp_add = 8b1111_1111) begintmp_add = 0;endelse beginQout_add = tmp_add;18 / 64endendendendmodule通過以上的方法可以輸出遞增波形,其波形的頻率決定于輸入時(shí)鐘和分頻系數(shù)。設(shè)計(jì)測試文件,將 div 設(shè)置為 1 即為 2 分頻,sysclk 設(shè)置周期為 20ns。通過 Modelsim 仿真得到圖 3-6 增斜波輸出:圖 3-6 增斜波輸出從圖 3-6 中
51、,看出波形輸出 Qout_add 是按照增斜波的趨向增長的,步進(jìn)值是 1,從 0 達(dá)到 255,到 255 溢出又變?yōu)?0 值。為了進(jìn)一步驗(yàn)證該遞增波形的正確性,我們采用 Quartus II 進(jìn)行波形仿真,得到的仿真波形圖如圖 3-7 所示。圖 3-7 增斜波輸出從圖 3-6 和圖 3-7 分別是 Modelsim 和 Quartus II 仿真出來的波形,從波形上來觀察可以看出基本沒有區(qū)別,進(jìn)一步驗(yàn)證了該遞增斜波產(chǎn)生模塊的正確性。 3.3 減斜波設(shè)計(jì)減斜波是指波形按照一定的步幅遞減,達(dá)到最高點(diǎn)后又回到最大值的狀態(tài),這樣循環(huán)進(jìn)行。根據(jù)模塊需求設(shè)計(jì)出模塊流程圖如圖 3-8 所示。19 / 64
52、圖 3-8 減斜波軟件流程圖根據(jù)圖 3-8 所示軟件流程圖設(shè)計(jì)出減斜波模塊的模塊框圖,如圖 3-9 所示。圖 3-9 減斜波模塊原理圖從圖 3-9 中來分析該模塊的輸入輸出模塊以與引腳定義:模塊的輸入變量是:外部基準(zhǔn)時(shí)鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。輸出時(shí)鐘波形時(shí)鐘輸出 Qout_min;復(fù)位輸入 reset 低電平時(shí),時(shí)鐘模塊復(fù)位,系統(tǒng)不運(yùn)作;分頻系數(shù) div 決定波形時(shí)鐘,其分頻計(jì)算公式是:,比如說 div 值為 1,則輸出時(shí)鐘是1div 系統(tǒng)時(shí)鐘頻率輸出時(shí)鐘頻率系統(tǒng)時(shí)鐘的二分之一;Qout_min 是減斜波模塊的波形輸出。根據(jù)軟件流程圖以與模塊框圖中輸入
53、輸出引腳定義,使用 Verilog 語言設(shè)計(jì)了以下代碼:module min1(SysClk ,/系統(tǒng)時(shí)鐘rest,/復(fù)位開關(guān),低電平復(fù)位開始rest,sysclk,div輸入輸出遞減波形結(jié)束分頻初始化變量rest=1NOYES20 / 64div,/分頻Qout_min /遞增斜波 );input SysClk;input rest;input 7:0 div;input SysClk;input rest;input 7:0 div;output 7:0 Qout_min;wire clk_out;clk_div clk(.sysclk(SysClk),.reset(rest),.div(
54、div) ,.clk_out(clk_out);/產(chǎn)生遞減斜波reg 7:0 tmp_min=8b1111_1111;always (posedge clk_out or negedge rest) beginif(!rest) beginQout_min = 0;tmp_min = 8b1111_1111;endelse begintmp_min = tmp_min - 1 ;if(tmp_min = 0) begintmp_min = 8b1111_1111;endelse beginQout_min = tmp_min;endendend21 / 64endmodule從上述代碼可以分析
55、出輸出 Qout_min 從最大的 255 開始遞減,每來一次分頻過的時(shí)鐘減 1,一直到 0,然后又恢復(fù)到 255,這樣循環(huán)往復(fù)。設(shè)計(jì)測試文件,將 div 設(shè)置為 1 即為 2 分頻,sysclk 設(shè)置周期為 20ns。通過 Modelsim 仿真得到圖 3-10 波形:圖 3-10 減斜波波形輸出圖 3-10 可以清楚看出遞減斜波的波形圖,即從最大值開始依次往小減,直到最小值 0,又重新恢復(fù)到最大,這樣循環(huán)往復(fù)。為了進(jìn)一步驗(yàn)證該模塊的正確性,采用 Quartus II 進(jìn)行波形仿真,其結(jié)果如圖 3-11 所示。圖 3-11 減斜波波形輸出 從圖 3-11 中可以發(fā)現(xiàn)跟圖 3-10 中發(fā)現(xiàn)的一
56、樣的周期性減斜波,進(jìn)一步驗(yàn)證了模塊的正確性。3.4 方波設(shè)計(jì)方波是指非正弦曲線的波形,輸出的形狀如矩形,只有0 , 1兩個(gè)值。根據(jù)模塊需求設(shè)計(jì)出模塊流程圖如圖 3-12 所示。22 / 64圖 3-12 方波模塊軟件流程圖根據(jù)圖 3-12 所示軟件流程圖設(shè)計(jì)出方波模塊的模塊框圖,如圖 3-13 所示。圖 3-13 方波模塊原理圖從圖 3-13 中來分析該模塊的輸入輸出模塊以與引腳定義:模塊的輸入變量是:外部基準(zhǔn)時(shí)鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。輸出時(shí)鐘波形時(shí)鐘輸出 Qout_squ;復(fù)位輸入 reset 低電平時(shí),時(shí)鐘模塊復(fù)位,系統(tǒng)不運(yùn)作;分頻系數(shù) div 決
57、定波形時(shí)鐘,其分頻計(jì)算公式是:,比如說 div 值為 1,則輸出時(shí)鐘是1div 系統(tǒng)時(shí)鐘頻率輸出時(shí)鐘頻率系統(tǒng)時(shí)鐘的二分之一;Qout_squ 是方波波模塊的波形輸出。根據(jù)軟件流程圖以與模塊框圖中輸入輸出引腳定義,使用 Verilog 語言設(shè)計(jì)了以下核心代碼:/產(chǎn)生方波reg 7:0 tmp_squ=0;reg squ_flag=0;always (posedge clk_out or negedge rest) beginif(!rest) beginQout_squ = 0;tmp_squ = 0;squ_flag=0;end23 / 64else begintmp_squ = tmp_sq
58、u + 1;if(tmp_squ = 8b0000_1111) begintmp_squ = 0;squ_flag = squ_flag;endif(squ_flag)Qout_squ = 8b1111_1111;elseQout_squ = 0;endend簡單分析下以上代碼:tmp_squ 是用來計(jì)部時(shí)鐘 clk_out 的脈沖次數(shù),當(dāng)達(dá)到 8b0000_1111 時(shí),重新計(jì) 0,這個(gè)時(shí)候,將輸出變量翻轉(zhuǎn),產(chǎn)生方波。設(shè)計(jì)測試文件,將 div 設(shè)置為 1 即為 2 分頻,sysclk 設(shè)置周期為 20ns。通過Modelsim 仿真得到圖 3-14 波形:圖 3-14 方波波形仿真圖從圖 3
59、-14 中可以看出當(dāng) div=1 和 reset=1 的情況下 clk_out_tmp 是輸入時(shí)鐘的一辦,每來 16 個(gè)周期 Qout_squ 輸出電平翻轉(zhuǎn)一遍,以產(chǎn)生標(biāo)準(zhǔn)的方波。為了驗(yàn)證方波模塊的正確性,采用 Quartus II 進(jìn)行波形仿真,得到如圖 3-15所示仿真波形圖。圖 3-15 方波波形仿真圖從圖 3-14 中也可以看到和圖 3-15 同樣的現(xiàn)象每經(jīng)過 16 個(gè)周期電平翻轉(zhuǎn)一次,也就是說每 32 個(gè)周期產(chǎn)生一個(gè)方波波形,完全符合標(biāo)準(zhǔn),另外,其頻率取24 / 64決于分頻系數(shù) div 和系統(tǒng)輸入時(shí)鐘。3.5 三角波設(shè)計(jì)三角波形是指波形值從最小值開始遞增,到達(dá)最高點(diǎn)后又開始依次減小
60、,直到減小到最小值,依次反復(fù),形狀想三角形。根據(jù)模塊需求設(shè)計(jì)出模塊流程圖如圖 3-16 所示。圖 3-16 三角波軟件流程圖根據(jù)圖 3-16 所示軟件流程圖設(shè)計(jì)出方波模塊的模塊框圖,如圖 3-17 所示。圖 3-17 三角波模塊原理圖從圖 3-17 中來分析該模塊的輸入輸出模塊以與引腳定義:模塊的輸入變量是:外部基準(zhǔn)時(shí)鐘 sysclk,模塊復(fù)位輸入 reset,分頻系數(shù)輸入 div。輸出時(shí)鐘波形時(shí)鐘輸出 Qout_tri;復(fù)位輸入 reset 低電平時(shí),時(shí)鐘模塊復(fù)位,系統(tǒng)不運(yùn)作;分頻系數(shù) div 決定波形時(shí)鐘,其分頻計(jì)算公式是:,比如說 div 值為 1,則輸出時(shí)鐘是1div 系統(tǒng)時(shí)鐘頻率輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山西省忻州一中、臨汾一中、精英中學(xué)、鄂爾多斯一中高二下化學(xué)期末質(zhì)量跟蹤監(jiān)視試題含解析
- 湖北省襄陽市重點(diǎn)中學(xué)2025年高二下化學(xué)期末復(fù)習(xí)檢測模擬試題含解析
- 醫(yī)藥研發(fā)激勵(lì)管理辦法
- 景區(qū)游客垃圾管理辦法
- 法人帳戶透支管理辦法
- 醫(yī)院集中采購管理辦法
- 公司危機(jī)事件管理辦法
- 農(nóng)村集體經(jīng)濟(jì)發(fā)展的基本問題研究
- 民工宿舍冬季管理辦法
- 機(jī)要郵寄審批管理辦法
- 2025年云南普洱市墨江天下一雙文旅體育集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 澠池鋁礦礦產(chǎn)資源開采與生態(tài)修復(fù)方案
- 創(chuàng)傷嚴(yán)重程度(ISS)評分表(完整版)
- 茶葉中茶多酚檢測方法的改進(jìn)
- GB/T 2423.102-2008電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn):溫度(低溫、高溫)/低氣壓/振動(dòng)(正弦)綜合
- GB/T 18391.5-2009信息技術(shù)元數(shù)據(jù)注冊系統(tǒng)(MDR)第5部分:命名和標(biāo)識(shí)原則
- 第二季度護(hù)理紅黃警示及核心制度試題含答案
- 有機(jī)廢棄物資源化利用課件
- 住院患者身份確認(rèn)表
- 2023年度萬科集團(tuán)合格供應(yīng)商名錄
- 水合肼項(xiàng)目安全評價(jià)報(bào)告
評論
0/150
提交評論