

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 設(shè) 計(jì)(論 文)</p><p> 設(shè)計(jì)(論文)題目: 基于FPGA的任意信號(hào)發(fā)生器的設(shè)計(jì) </p><p> 學(xué)生姓名: 指導(dǎo)教師: </p><p> 二級(jí)學(xué)院: ?! I(yè): 電子信息工程
2、 </p><p> 班 級(jí): M07電子信息工程1班 學(xué) 號(hào): </p><p> 提交日期: 2011 年 05月15日 答辯日期:2011年 05月22日 </p><p><b> 目 錄</b></p><p><b&
3、gt; 摘 要III</b></p><p> AbstractIV</p><p><b> 1 緒 論1</b></p><p> 2 EDA、VHDL簡(jiǎn)介2</p><p> 2.1 EDA技術(shù)2</p><p> 2.2 硬件描述語言VHDL3<
4、;/p><p> 3 PLD、Quartus II簡(jiǎn)介6</p><p> 3.1可編程邏輯器件PLD6</p><p> 3.2 Quartus II基本使用方法6</p><p> 4 數(shù)字系統(tǒng)設(shè)計(jì)8</p><p> 4.1 數(shù)字系統(tǒng)的設(shè)計(jì)模型8</p><p> 4.2
5、 數(shù)字系統(tǒng)的設(shè)計(jì)方法8</p><p> 5 任意信號(hào)發(fā)生器的簡(jiǎn)單設(shè)計(jì)過程10</p><p> 5.1 系統(tǒng)需求分析10</p><p> 5.2任意信號(hào)發(fā)生器的工作原理10</p><p> 5.3 各組成模塊及程序10</p><p> 6 直接數(shù)字頻率合成器20</p>
6、<p> 6.1 直接數(shù)字合成器簡(jiǎn)介20</p><p> 6.2系統(tǒng)設(shè)計(jì)需求20</p><p> 6.3 系統(tǒng)設(shè)計(jì)方案20</p><p> 6.4主要設(shè)計(jì)模塊及程序21</p><p> 6.5 正弦信號(hào)的VHDL程序?qū)崿F(xiàn)30</p><p> 7 系統(tǒng)仿真33</p&
7、gt;<p> 7.1 任意信號(hào)發(fā)生器的簡(jiǎn)單設(shè)計(jì)仿真33</p><p> 7.2 直接數(shù)字頻率合成器仿真37</p><p> 8 基于FPGA的硬件測(cè)試38</p><p> 8.1 KHF-1型FPGA實(shí)驗(yàn)開發(fā)系統(tǒng)38</p><p> 8.2 硬件測(cè)試39</p><p>
8、<b> 結(jié)束語40</b></p><p><b> 參考文獻(xiàn)41</b></p><p><b> 致謝42</b></p><p> 基于FPGA的任意信號(hào)發(fā)生器的設(shè)計(jì)</p><p><b> 摘 要</b></p>
9、<p> 關(guān)于信號(hào)發(fā)生器,傳統(tǒng)的設(shè)計(jì)方法多基于模擬電路或單片機(jī)或?qū)S眯酒?,由于成本高或控制方式不靈活或波形種類少不能滿足實(shí)際需求。本課題充分利用了現(xiàn)場(chǎng)可編程門陣列 FPGA和VHDL語言的結(jié)合進(jìn)行任意信號(hào)發(fā)生器的設(shè)計(jì),從而易于修改和改進(jìn)。用Quartus II對(duì)FPGA芯片“下載”形成專用集成電路,由于不存在人工接線的問題,所以故障率低、可靠性好。系統(tǒng)按模塊化方式進(jìn)行設(shè)計(jì),然后進(jìn)行編譯、時(shí)序仿真和硬件測(cè)試等。此設(shè)計(jì)采用了兩種
10、方法,一種是簡(jiǎn)單的設(shè)計(jì)方法,任意信號(hào)發(fā)生器由兩大模塊組成,即函數(shù)發(fā)生電路和函數(shù)選擇電路。本論文還簡(jiǎn)單介紹基于DDS技術(shù)的任意信號(hào)發(fā)生器的設(shè)計(jì),它能高精度地產(chǎn)生多種基本波形,如正弦波等。</p><p> 關(guān)鍵詞: VHDL;FPGA;Quartus II;EDA;DDS</p><p> FPGA-based Control System for Any signal generato
11、r design</p><p><b> Abstract</b></p><p> About the signal generator, the traditional design method is based on the small and medium-scale integrated circuits,with a lot of circui
12、t elements,complex wiring,high failure rate,,and low reliability.This topic has used scene programmable gate array FPGA and the VHDL language fully carried on the automobile taillight control system's design, making
13、it easy to modify and improve.With Quartus II “downloading” FPGA chip,it forms the specific integrated circuit.It does not have artificial connec</p><p> Keywords: VHDL; The FPGA; Quartus II; EDA;DDS</p&
14、gt;<p><b> 1緒 論</b></p><p> 波形發(fā)生器是各種測(cè)試和實(shí)驗(yàn)中不可或缺的工具,在通信、測(cè)量、雷達(dá)、控制、教學(xué)領(lǐng)域應(yīng)用十分廣泛。不論是在生產(chǎn)、科研還是教學(xué)上,波形發(fā)生器都是電子工程師進(jìn)行信號(hào)仿真試驗(yàn)的最佳工具。隨著我國(guó)經(jīng)濟(jì)和科技的發(fā)展,對(duì)相應(yīng)的測(cè)試儀器和測(cè)試手段提出了更高的要求,而波形發(fā)生器已成為測(cè)試儀器中至關(guān)重要的一類,因此開發(fā)波形發(fā)生器具有很大的
15、意義。</p><p> 隨著計(jì)算機(jī)與微電子技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)化EDA(Electronic Design Automation)和可編程邏輯器件PLD(Programmable Logic Device)的發(fā)展都非常迅速,熟練地利用EDA軟件進(jìn)行PLD器件開發(fā)已成為電子工程師必須掌握的基本技能。先進(jìn)的EDA工具已經(jīng)從傳統(tǒng)的自下而上的設(shè)計(jì)方法改變?yōu)樽皂斚蛳碌脑O(shè)計(jì)方法,以硬件描述語言HDL(Hardware
16、 Description Language)來描述系統(tǒng)級(jí)設(shè)計(jì),并支持系統(tǒng)仿真和高層綜合。ASIC(Application Specific Integrated Circuit)的設(shè)計(jì)與制造,電子工程師在實(shí)驗(yàn)室就可以完成,這都得益于PLD器件的出現(xiàn)及功能強(qiáng)大的EDA軟件的支持?,F(xiàn)在應(yīng)用最廣泛的高密度PLD器件主要是現(xiàn)場(chǎng)可編程門陣列FPGA(Field Programmable Gate Array)和復(fù)雜可編程邏輯器件CPLD(Comp
17、lex Programmable Logic Device)。</p><p> 本次設(shè)計(jì)的目的就是通過實(shí)踐深入理解可編程邏輯器件PLD,了解EDA技術(shù)并掌握VHDL硬件描述語言的設(shè)計(jì)方法和思想。以計(jì)算機(jī)組成原理為指導(dǎo),通過學(xué)習(xí)VHDL語言結(jié)合電子電路的設(shè)計(jì)知識(shí)理論聯(lián)系實(shí)際,掌握所學(xué)的課程知識(shí)和基本單元電路的綜合設(shè)計(jì)應(yīng)用。通過對(duì)實(shí)用汽車尾燈控制器的設(shè)計(jì),鞏固和綜合運(yùn)用所學(xué)知識(shí),提高IC設(shè)計(jì)能力,提高分析、解決計(jì)
18、算機(jī)技術(shù)實(shí)際問題的獨(dú)立工作能力。</p><p> 基于FPGA任意信號(hào)發(fā)生器的設(shè)計(jì)作為數(shù)字電子技術(shù)課程的重要組成部分,一方面使我進(jìn)一步理解了課程內(nèi)容,基本掌握了數(shù)字系統(tǒng)設(shè)計(jì)和調(diào)試的方法,增加了集成電路的應(yīng)用知識(shí),培養(yǎng)了我們的實(shí)際動(dòng)手能力以及分析、解決問題的能力;另一方面也使我更好地鞏固和加深了對(duì)基礎(chǔ)知識(shí)的理解,學(xué)會(huì)了設(shè)計(jì)中小型數(shù)字系統(tǒng)的方法,獨(dú)立完成調(diào)試過程,增強(qiáng)了我們理論聯(lián)系實(shí)際的能力,提高了我的電路分析和
19、設(shè)計(jì)能力。通過實(shí)踐引導(dǎo),我在理論指導(dǎo)下有所創(chuàng)新,為日后的工程實(shí)踐奠定了基礎(chǔ)。通過本次畢業(yè)設(shè)計(jì),一方面加深了我的理論知識(shí),另一方面也提高了我考慮問題全面性的能力,將理論知識(shí)上升到了一個(gè)實(shí)踐的階段。 </p><p> 2 EDA、VHDL簡(jiǎn)介</p><p><b> 2.1 EDA技術(shù)</b></p><p> 2.1.1 E
20、DA技術(shù)的概念及范疇</p><p> 隨著數(shù)字電子技術(shù)的飛速發(fā)展,信息化得到了有力的推動(dòng)和促進(jìn),從與普通百姓生活息息相關(guān)的手機(jī)、計(jì)算機(jī)、數(shù)字電視,到關(guān)系到國(guó)家安定社會(huì)和諧的軍用設(shè)備、航天技術(shù),都采用了數(shù)字電子技術(shù),它的應(yīng)用已經(jīng)滲透到人們生活的方方面面。現(xiàn)代電子設(shè)計(jì)技術(shù)的核心已逐步轉(zhuǎn)向基于計(jì)算機(jī)的電子設(shè)計(jì)自動(dòng)化技術(shù),即EDA(Electronic Design Automation)?!?】</p>
21、<p> 所謂EDA技術(shù),就是以功能強(qiáng)大的計(jì)算機(jī)平臺(tái),以EDA軟件為工具,對(duì)用硬件描述語言HDL(Hardware Description Language)的系統(tǒng)邏輯設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、簡(jiǎn)化、分割、綜合、布局布線及邏輯優(yōu)化和仿真測(cè)試的電子產(chǎn)品自動(dòng)化設(shè)計(jì)過程。當(dāng)然,隨著EDA技術(shù)的日漸成熟,也包括了如PSPICE、EWB、MATLAB等計(jì)算機(jī)輔助分析CAA技術(shù),如PRETEL、ORCAD等印刷制版計(jì)算機(jī)輔助設(shè)計(jì)
22、,等等。</p><p> 利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過程在計(jì)算機(jī)上自動(dòng)處理完成。</p><p> 2.1.2 EDA技術(shù)的基本特征</p><p> EDA代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員
23、按照“自頂向下”的設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語言(HDL)完成系統(tǒng)行為級(jí)設(shè)計(jì),最后通過綜合器和適配器生成最終的目標(biāo)器件,這樣的設(shè)計(jì)方法被稱為高層次的電子設(shè)計(jì)方法。</p><p> 2.1.3 EDA歷史發(fā)展回顧</p><p> 早在20世紀(jì)60年代中期,人們就開始著眼于開發(fā)出各種計(jì)算機(jī)輔助設(shè)計(jì)
24、工具來幫助設(shè)計(jì)人員進(jìn)行集成電路和電子系統(tǒng)的設(shè)計(jì),集成電路技術(shù)的發(fā)展不斷地對(duì)EDA技術(shù)提出新的要求,并促進(jìn)了EDA技術(shù)的發(fā)展。在過去的三十多年里,計(jì)算機(jī)技術(shù)迅猛發(fā)展,也給EDA行業(yè)帶來了巨大的變化。進(jìn)入20世紀(jì)90年代后,電子系統(tǒng)已經(jīng)從電路級(jí)系統(tǒng)集成發(fā)展成為包括ASIC、FPGA和嵌入式系統(tǒng)的多種模式,EDA產(chǎn)業(yè)已經(jīng)成為電子信息類產(chǎn)品的支柱產(chǎn)業(yè)。EDA的蓬勃發(fā)展離不開設(shè)計(jì)方法學(xué)的進(jìn)步,回顧過去幾十年電子技術(shù)的發(fā)展歷程,可大致將EDA技術(shù)的
25、發(fā)展分為3個(gè)階段。</p><p> 20世紀(jì)70年代,是EDA技術(shù)發(fā)展初期,我們稱之為計(jì)算機(jī)輔助設(shè)計(jì)CAD(Computer Aided Design)階段。隨著集成電路的出現(xiàn)和應(yīng)用,硬件設(shè)計(jì)開始大量選用中小規(guī)模的標(biāo)準(zhǔn)集成電,這也使得傳統(tǒng)的手工布線方法很難滿足產(chǎn)品復(fù)雜性和工作效率的要求。CAD的概念已見雛形,人們開始利用計(jì)算機(jī)替代產(chǎn)品設(shè)計(jì)過程中的高度重復(fù)性的復(fù)雜勞動(dòng),如利用二維圖形編輯與分析工具,輔助進(jìn)行集成
26、電路版圖編輯、PCB布局布線等工作。最具代表性的產(chǎn)品當(dāng)屬美國(guó)ACCEL公司的Tabgo布線軟件?!?】</p><p> 20世紀(jì)80年代,隨著集成電路設(shè)計(jì)進(jìn)入COMS時(shí)代,EDA技術(shù)也進(jìn)入到了計(jì)算機(jī)輔助工程設(shè)計(jì)CAE(Computer Assisst Engineering Design)階段。PAL、GAL和FPGA等一系列復(fù)雜可編程邏輯器件都為電子系統(tǒng)的設(shè)計(jì)提供新的平臺(tái)。較之70年代的自動(dòng)布局布線的CA
27、D工具能夠替代設(shè)計(jì)中繪圖的重復(fù)勞動(dòng)而言,80年代出現(xiàn)的具有自動(dòng)綜合能力的CAE工具則代替了設(shè)計(jì)師的部分工作,它在PCB設(shè)計(jì)方面的原理圖輸入、自動(dòng)布局布線及PCB分析,以及邏輯設(shè)計(jì)、邏輯仿真、布爾方程綜合和簡(jiǎn)化等方面都擔(dān)任了重要角色。20世紀(jì)90年代,以在設(shè)計(jì)前期將設(shè)計(jì)師從事的許多高層次設(shè)計(jì)交由工具來完成為目的,EAD技術(shù)開始從以單個(gè)電子產(chǎn)品開發(fā)為對(duì)象轉(zhuǎn)向針對(duì)系統(tǒng)級(jí)電子產(chǎn)品的設(shè)計(jì)。EAD工具以系統(tǒng)級(jí)設(shè)計(jì)為核心,包括了系統(tǒng)行為級(jí)描述與結(jié)構(gòu)綜
28、合、系統(tǒng)仿真與測(cè)試驗(yàn)證、系統(tǒng)劃分與指標(biāo)分配及系統(tǒng)決策與文件生成等一系列完整的功能。隨著硬件描述語言標(biāo)準(zhǔn)的進(jìn)一步確立,此時(shí)的EDA工具還具有高級(jí)抽象的設(shè)計(jì)構(gòu)思手段,各EDA公司也致力于推出兼容各種硬件方案和支持標(biāo)準(zhǔn)硬件描述語言的EDA軟件的研究?!?】</p><p> 進(jìn)入21世紀(jì)以來,EDA技術(shù)得到了更大的發(fā)展。高速DSP、嵌入式處理器軟核的成熟令EDA軟件功能日益強(qiáng)大。電子領(lǐng)域各學(xué)科全方位融入EDA技術(shù),除
29、了成熟的數(shù)字技術(shù)外,模擬電路系統(tǒng)硬件描述語言的表達(dá)和設(shè)計(jì)的標(biāo)準(zhǔn)化、系統(tǒng)可編程模擬器件的出現(xiàn)、數(shù)字信號(hào)處理和圖像處理的全硬件實(shí)現(xiàn)方案等,使得EDA工具不論是在廣度上還是深度上都取得了長(zhǎng)足的發(fā)展。</p><p> 2.2 硬件描述語言VHDL</p><p> 2.2.1 VHDL簡(jiǎn)介</p><p> VHDL(Very High Speed Integrat
30、ed Circuit Hardware Description Language,超高速集成電路硬件描述語言)誕生于1982年,是由美國(guó)國(guó)防部開發(fā)的一種快速設(shè)計(jì)電路的工具,目前已經(jīng)成為IEEE(The Institute of Electrical and Electronics Engineers)的一種工業(yè)標(biāo)準(zhǔn)硬件描述語言。相比傳統(tǒng)的電路系統(tǒng)的設(shè)計(jì)方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)
31、和基于庫(LibraryBased)的設(shè)計(jì)的特點(diǎn),因此設(shè)計(jì)者可以不必了解硬件結(jié)構(gòu)。從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行系統(tǒng)方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級(jí)用VHDL對(duì)電路的行為進(jìn)行描述,并進(jìn)行仿真和糾錯(cuò),然后在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證,最后再用邏輯綜合優(yōu)化工具生成具體的門級(jí)邏輯電路的網(wǎng)表,下載到具體的CPLD器件中去,從而實(shí)現(xiàn)可編程的專用集成電路(ASIC)的設(shè)計(jì)。</p><p> 在現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)中,硬件描述語言已經(jīng)了
32、成為了設(shè)計(jì)者和EDA工具之間的橋梁。VHDL采用軟件的方式設(shè)計(jì)系統(tǒng),即便工程師不懂硬件電路也可以設(shè)計(jì)出一個(gè)硬件系統(tǒng)。就像我們已經(jīng)習(xí)以為常的用C、C++代替匯編語言一樣,在硬件描述領(lǐng)域也可以用VHDL來取代原理圖、邏輯狀態(tài)圖等。如果采用傳統(tǒng)的電路原理圖設(shè)計(jì)方法進(jìn)行系統(tǒng)設(shè)計(jì),則必須給出完整的具體電路結(jié)構(gòu)圖,且原理圖的描述與實(shí)現(xiàn)工藝緊密相連,一旦功能發(fā)生微小的改變則可能要重新設(shè)計(jì)整個(gè)電路,造成不必要的資源浪費(fèi),降低了工作效率。而VHDL具有較
33、強(qiáng)的抽象描述能力,可以對(duì)系統(tǒng)進(jìn)行行為級(jí)描述,且與實(shí)現(xiàn)工藝無關(guān),令整個(gè)設(shè)計(jì)過程變得高效簡(jiǎn)捷。</p><p> 2.2.2 VHDL語言的特點(diǎn)</p><p> VHDL是一種面向設(shè)計(jì)的多領(lǐng)域、多層次的IEEE標(biāo)準(zhǔn)硬件描述語言,是目前十分流行的硬件描述工具,并且被大多數(shù)EDA工具支持。VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級(jí)。寄存器傳輸級(jí)和邏輯門級(jí)多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流
34、和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個(gè)自頂向下或由底向上的電路設(shè)計(jì)過程都可以用VHDL來完成。其特點(diǎn)是:</p><p> (1)設(shè)計(jì)技術(shù)齊全,方法靈活,支持廣泛,如支持自頂向下(top down)和基于庫(library-based)的設(shè)計(jì)方法等,早在1987年就已作為IEEE的標(biāo)準(zhǔn);</p><p> ?。?)系統(tǒng)硬件描述能力強(qiáng),具有多層次
35、描述系統(tǒng)硬件的能力,可以從系統(tǒng)的數(shù)學(xué)模型直到門級(jí)電路,并且高層次的行為描述可以與低層次的RTL描述、門級(jí)描述混合使用。強(qiáng)大的行為描述能力避開了具體的器件結(jié)構(gòu),是在邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。VHDL的寬范圍描述能力使它成為高層次設(shè)計(jì)的核心,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言,并可進(jìn)行系統(tǒng)的早期仿真以保證設(shè)計(jì)的正確性;</p><p> (3)VHDL豐富的仿真語句和庫函數(shù),使得在任
36、何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)功能的可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。 </p><p> ?。?)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。</p><p> ?。?)可以實(shí)現(xiàn)與工藝無關(guān)的編程,工藝更新時(shí),無需修改原設(shè)計(jì),只要改變相應(yīng)的工藝映射工具即可;</p><p> ?。?)V
37、HDL語言標(biāo)準(zhǔn)規(guī)范,易于移植、共享和重用。</p><p> 2.2.3 用VHDL設(shè)計(jì)電路主要的工作過程和設(shè)計(jì)流程</p><p> (1)編輯。用文本編輯器輸入設(shè)計(jì)的源文件(為了提高輸入效率,可用某些專用編輯器)。通常VHDL文件保存為.vhd文件。</p><p> ?。?)編譯。用編譯工具將文本文件編譯成代碼文件,并檢查語法錯(cuò)誤。</p>
38、<p> ?。?)功能仿真(前仿真)。在編譯前進(jìn)行邏輯功能驗(yàn)證,此時(shí)的仿真沒有延時(shí),對(duì)于初步的功能檢測(cè)非常方便。將文件調(diào)入VHDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確。</p><p> (4)邏輯綜合。將設(shè)計(jì)的源文件用自動(dòng)綜合工具由語言轉(zhuǎn)換為實(shí)際的電路圖(門電路級(jí)網(wǎng)表),但此時(shí)還沒有在芯片中形成真正的電路,就好像是把設(shè)計(jì)者腦海中的電路畫成了原理圖。將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合
39、成最簡(jiǎn)的布爾表達(dá)式。邏輯綜合軟件會(huì)生成.edf或.edif 的EDA工業(yè)標(biāo)準(zhǔn)文件。</p><p> (5)布局、布線。用已生成的網(wǎng)表文件,再根據(jù)CPLD(或FPGA)器件的容量和結(jié)構(gòu),用自動(dòng)布局布線工具進(jìn)行電路設(shè)計(jì)。首先根據(jù)網(wǎng)表文件內(nèi)容和器件結(jié)構(gòu)確定邏輯門的位置,然后再根據(jù)網(wǎng)表提供的門連接關(guān)系,把各個(gè)門的輸入輸出連接起來,類似于設(shè)計(jì)PCB</p><p> ?。ㄓ∷㈦娐钒澹r(shí)的布局布線
40、工作。最后生成一個(gè)供器件編程(或配置)的文件,同時(shí)還會(huì)在設(shè)計(jì)項(xiàng)目中增加一些時(shí)序信息,以便于后仿真。</p><p> ?。?)后仿真(時(shí)序仿真)。這是與實(shí)際器件工作情況基本相同的仿真,用來確定設(shè)計(jì)在經(jīng)過布局、布線之后,是否仍能滿足設(shè)計(jì)要求。如果設(shè)計(jì)的電路時(shí)延滿足要求,則可以進(jìn)行器件編程(或配置)。</p><p> VHDL的設(shè)計(jì)流程如下圖所示:</p><p>
41、 圖1 VHDL設(shè)計(jì)流程</p><p> 3 PLD、Quartus II簡(jiǎn)介</p><p> 3.1可編程邏輯器件PLD</p><p> 3.1.1 PLD簡(jiǎn)介</p><p> PLD(Programmable Logic Device)是一種由用戶根據(jù)需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。目前使用最
42、廣泛的可編程邏輯器件有兩類:現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)和復(fù)雜可編程邏輯器件(Complex Programmable Logic Device,CPLD)。</p><p> 3.1.2 FPGA的設(shè)計(jì)開發(fā)流程</p><p> ?。?)設(shè)計(jì)輸入(2)設(shè)計(jì)綜合(3)仿真驗(yàn)證(4)設(shè)計(jì)實(shí)現(xiàn)(5)時(shí)序分析(6)下載驗(yàn)證</p
43、><p> 3.2 Quartus II基本使用方法</p><p> 3.2.1 Quartus II概述 </p><p> ALTERA公司的Quartus II開發(fā)軟件根據(jù)設(shè)計(jì)者的需求提供了一個(gè)完整的多平臺(tái)開發(fā)環(huán)境,它包含了整個(gè)可編程邏輯器件設(shè)計(jì)階段的所有解決方案,提供了完整的圖形用戶界面,可以完成可編程片上系統(tǒng)的整個(gè)開發(fā)流程的各個(gè)階段,包括輸入、綜合、仿
44、真等?;赒uartus II軟件工具,設(shè)計(jì)者可以方便地完成數(shù)字系統(tǒng)設(shè)計(jì)的全過程。</p><p> 3.2.2 Quartus II設(shè)計(jì)流程</p><p> 作為第一款從FPGA至掩模器件的完整設(shè)計(jì)工具,ALTERA公司推出的四代可編程邏輯器件集成開發(fā)環(huán)境Quartus II提供了從設(shè)計(jì)輸入到器件編程的全部功能。Quartus II分為綜合工具、仿真工具、實(shí)現(xiàn)工具、輔助設(shè)計(jì)工具和其
45、他工具等,功能強(qiáng)大,界面友好,易于掌握。</p><p> 利用Quartus II開發(fā)工具進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì),可以概括為以下幾個(gè)步驟:設(shè)計(jì)輸入、綜合、布局布線、時(shí)序分析、仿真、編程和配置等,如圖1所示。</p><p> 3.2.3應(yīng)用QUASTUS II的VHDL設(shè)計(jì)</p><p> 利用VHDL完成電路設(shè)計(jì),必須借助 EDA工具綜合器、適配器、時(shí)序仿真器
46、和編碼器等工具進(jìn)行相應(yīng)的處理,才能最終在硬件上得以實(shí)現(xiàn)和測(cè)試。</p><p><b> 4 數(shù)字系統(tǒng)設(shè)計(jì)</b></p><p> 4.1 數(shù)字系統(tǒng)的設(shè)計(jì)模型</p><p> 數(shù)字系統(tǒng)指的是交互式、以離散形式表示的,具有存儲(chǔ)、傳輸、信息處理能力的邏輯子系統(tǒng)的集合。</p><p> 用于描述數(shù)字系統(tǒng)的模型有多
47、種,各種模型描述數(shù)字系統(tǒng)的側(cè)重點(diǎn)不同。下面介紹一種普遍采用的模型,這種模型根據(jù)數(shù)字系統(tǒng)的定義將整個(gè)系統(tǒng)劃分為兩個(gè)模塊或兩個(gè)子系統(tǒng):數(shù)字處理子系統(tǒng)和控制子系統(tǒng)。</p><p> 一般,我們以數(shù)字系統(tǒng)實(shí)現(xiàn)的功能或算法為依據(jù)來設(shè)計(jì)數(shù)據(jù)處理子系統(tǒng)。數(shù)據(jù)處理子系統(tǒng)主要由存儲(chǔ)器、運(yùn)算器、數(shù)據(jù)選擇器等功能電路組成,完成數(shù)據(jù)采集、存儲(chǔ)、運(yùn)算和傳輸。數(shù)據(jù)處理子系統(tǒng)與外界進(jìn)行數(shù)據(jù)交換,在控制子系統(tǒng)(或稱控制器)發(fā)出的控制信號(hào)作用
48、下,數(shù)據(jù)處理子系統(tǒng)將進(jìn)行數(shù)據(jù)的存儲(chǔ)和運(yùn)算等操作。數(shù)據(jù)處理子系統(tǒng)將接收由控制器發(fā)出的控制信號(hào),同時(shí)將自己的操作進(jìn)程或操作結(jié)果作為條件信號(hào)傳送給控制器。</p><p> 控制子系統(tǒng)是執(zhí)行數(shù)字系統(tǒng)算法的核心,具有記憶功能,因此它屬于時(shí)序系統(tǒng)??刂谱酉到y(tǒng)由組合邏輯電路和觸發(fā)器組成,與數(shù)據(jù)處理系統(tǒng)共用時(shí)鐘。</p><p> 將數(shù)字系統(tǒng)劃分成數(shù)據(jù)處理子系統(tǒng)和控制子系統(tǒng),設(shè)計(jì)者面對(duì)的電路規(guī)模減小
49、,可以對(duì)二者進(jìn)行分別設(shè)計(jì);數(shù)字系統(tǒng)中控制子系統(tǒng)的邏輯關(guān)系比較復(fù)雜,將其獨(dú)立劃分出來后,邏輯分工清楚,可以突出設(shè)計(jì)重點(diǎn)和分散設(shè)計(jì)難點(diǎn)。【4】</p><p> 因此,合理的數(shù)字系統(tǒng)模型能夠很大程度的幫助設(shè)計(jì)者有層次地理解和處理問題,進(jìn)而獲得清晰、完整、正確的電路圖。</p><p> 4.2 數(shù)字系統(tǒng)的設(shè)計(jì)方法</p><p> 數(shù)字系統(tǒng)設(shè)計(jì)的方法有很多,如模塊
50、設(shè)計(jì)法、自頂向下設(shè)計(jì)法和自底向上設(shè)計(jì)法等。</p><p> 10年前,電子設(shè)計(jì)的基本思路還是選擇標(biāo)準(zhǔn)的集成電路“自底向上”地構(gòu)造出一個(gè)新的系統(tǒng)。這種設(shè)計(jì)方法首先確定可用的元器件,然后根據(jù)這些器件進(jìn)行邏輯設(shè)計(jì),完成各模塊后進(jìn)行連接,最后形成系統(tǒng)。自底向上的設(shè)計(jì)方法如同一磚一瓦建造樓房,不僅效率低、成本高而且容易出錯(cuò)。</p><p> 而基于EDA技術(shù)的設(shè)計(jì)方法這是自頂向下進(jìn)行設(shè)計(jì)的。
51、所謂自頂向下設(shè)計(jì),就是將數(shù)字系統(tǒng)的整體逐步分解為各個(gè)子系統(tǒng)和模塊,若子系統(tǒng)規(guī)模較大,則還需將子系統(tǒng)進(jìn)一步分解為更小的子系統(tǒng)和模塊,層層分解,直到整個(gè)系統(tǒng)中各子系統(tǒng)關(guān)系合理,并便于邏輯級(jí)的設(shè)計(jì)和實(shí)現(xiàn)為止。</p><p> 這種方法從系統(tǒng)入手,在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級(jí)進(jìn)行仿真、糾錯(cuò),并用硬件描述語言對(duì)高層的系統(tǒng)進(jìn)行描述,在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證,然后用綜合優(yōu)先工具生成具體的門電路網(wǎng)表,其對(duì)應(yīng)的
52、物理實(shí)現(xiàn)級(jí)可以是印刷電路板或?qū)S眉呻娐?。由于設(shè)計(jì)的主要仿真和調(diào)試過程是在高層次上完成的,這既有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤,避免設(shè)計(jì)工時(shí)的浪費(fèi),同時(shí)也減少了邏輯功能仿真的工作量,提高了設(shè)計(jì)的一次成功率。自頂向下設(shè)計(jì)方法的優(yōu)點(diǎn)可以歸納為以下幾點(diǎn):</p><p> 作為一種模塊化設(shè)計(jì)方法,自頂向下的設(shè)計(jì)方法對(duì)設(shè)計(jì)的描述從上到下、從粗略到詳細(xì),符合常規(guī)的邏輯思維習(xí)慣。對(duì)數(shù)字系統(tǒng)的設(shè)計(jì)采用硬件描述語言,使得設(shè)計(jì)可以
53、在各種集成電路工藝或可編程器件之間移植。</p><p> 自頂向下設(shè)計(jì)方法使得高層設(shè)計(jì)完全獨(dú)立于目標(biāo)器件的結(jié)構(gòu),在設(shè)計(jì)的初級(jí)階段,設(shè)計(jì)人員可以擺脫芯片結(jié)構(gòu)的束縛,將精力集中在可以規(guī)避傳統(tǒng)方法中的再設(shè)計(jì)風(fēng)險(xiǎn)的環(huán)節(jié),縮短了產(chǎn)品的開發(fā)周期。</p><p> 自頂向下的設(shè)計(jì)方法便于對(duì)設(shè)計(jì)任務(wù)進(jìn)行合理分配,通過科學(xué)的系統(tǒng)工程管理方法,由多個(gè)設(shè)計(jì)師同時(shí)進(jìn)行設(shè)計(jì),通過分工協(xié)作完成任務(wù)。</
54、p><p> 當(dāng)然,針對(duì)具體的設(shè)計(jì)要求,數(shù)字系統(tǒng)的設(shè)計(jì)方法會(huì)有所不同。無論采用何種方法,都要始終堅(jiān)持逐層分解功能和分層次進(jìn)行設(shè)計(jì)這兩條不變的原則。</p><p> 5 任意信號(hào)發(fā)生器的簡(jiǎn)單設(shè)計(jì)過程</p><p> 5.1 系統(tǒng)需求分析</p><p> 設(shè)計(jì)一個(gè)函數(shù)器,能夠以穩(wěn)定的頻率產(chǎn)生遞增斜波、遞減斜波、三角波、梯形波、正弦波和
55、方波。設(shè)置一個(gè)波形選擇開關(guān),通過此開關(guān)可以選擇以上各種不同種類的輸出函數(shù)波形。系統(tǒng)具有復(fù)位功能。</p><p> 5.2任意信號(hào)發(fā)生器的工作原理</p><p> 任意信號(hào)發(fā)生器主要由兩大類電路模塊組成,即函數(shù)發(fā)生電路如圖和函數(shù)選擇電路其中函數(shù)發(fā)生電路分別包括了產(chǎn)生遞增斜波、遞減斜波、三角波、梯形波、正弦波和方波六種不同函數(shù)波形模塊。下圖2為信號(hào)發(fā)生器總框圖。</p>
56、<p> 圖2 信號(hào)發(fā)生器總框圖</p><p> 5.3 各組成模塊及程序</p><p> 任意信號(hào)發(fā)生器由2個(gè)模塊組成,分別為:函數(shù)發(fā)生電路和函數(shù)選擇電路。</p><p> 4.3.1函數(shù)發(fā)生電路模塊</p><p> 函數(shù)發(fā)生電路要產(chǎn)生六種不同的波形,因此要針對(duì)每種波形函數(shù)設(shè)計(jì)對(duì)應(yīng)的電路模塊,每個(gè)模塊的輸入輸出設(shè)
57、置相同,但不同函數(shù)發(fā)生模塊對(duì)輸入信號(hào)的處理方式是不同的,僅以遞增斜波函數(shù)發(fā)生電路為例,其模塊如右圖所示,其中,CLK為輸入時(shí)鐘脈沖,CLR 圖 3</p><p> 為復(fù)位清零信號(hào),Q[7…0]輸出波形函數(shù)。</p><p><b> 程序代碼:</b></p><p> 1、遞增斜波函數(shù)發(fā)生模塊的VHDL源程序如下
58、:</p><p> LIBRARY IEEE;——加載庫文件</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY increase IS ——定義實(shí)體</p><p>&
59、lt;b> PORT(</b></p><p> CLK,CLR:IN STD_LOGIC;</p><p> Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p> END increase;</p>&
60、lt;p> ARCHITECTURE rtl OF increase IS</p><p><b> BEGIN</b></p><p> PROCESS(CLK,CLR)——啟動(dòng)進(jìn)程</p><p> VARIABLE TMP: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>
61、<b> BEGIN</b></p><p> IF CLR='1' THEN——信號(hào)清零</p><p> TMP:= "00000000";</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p><p> IF
62、 TMP="11111111" THEN ——加法計(jì)數(shù)器滿時(shí),重新計(jì)數(shù)</p><p> TMP:="00000000";</p><p><b> ELSE </b></p><p> TMP:=TMP+1; ——否則加1,實(shí)現(xiàn)遞增</p><p><b> E
63、ND IF;</b></p><p><b> END IF;</b></p><p><b> Q<=TMP;</b></p><p> END PROCESS;</p><p><b> END rtl;</b></p><p&
64、gt; 遞減斜波函數(shù)發(fā)生模塊的VHDL語言:</p><p> LIBRARY IEEE; ——加載庫文件</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY decrease IS</p
65、><p><b> PORT(</b></p><p> CLK,CLR:IN STD_LOGIC;</p><p> Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p> END decrea
66、se;</p><p> ARCHITECTURE rtl OF decrease IS</p><p><b> BEGIN</b></p><p> PROCESS(CLK,CLR) ——啟動(dòng)進(jìn)程</p><p> VARIABLE TMP: STD_LOGIC_VECTOR(7 DOWNTO 0);<
67、/p><p><b> BEGIN</b></p><p> IF CLR='1' THEN ——復(fù)位清零</p><p> TMP:= "11111111";</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p&
68、gt;<p> IF TMP="00000000" THEN ——減法計(jì)數(shù)器滿時(shí),重新計(jì)數(shù)</p><p> TMP:="11111111";</p><p><b> ELSE </b></p><p> TMP:=TMP-1; ——否則減1,實(shí)現(xiàn)遞增</p><
69、;p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> Q<=TMP;</b></p><p> END PROCESS;</p><p><b> END rtl;</b>
70、</p><p> 三角波函數(shù)發(fā)生模塊的 VHDL源程序如下:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY DELT
71、A IS</p><p><b> PORT(</b></p><p> CLK ,CLR:IN STD_LOGIC;</p><p> Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p>
72、END DELTA;</p><p> ARCHITECTURE rtl OF DELTA IS</p><p><b> BEGIN</b></p><p> PROCESS(CLK,CLR) --啟動(dòng)進(jìn)程</p><p> VARIABLE TMP:STD_LOGIC_VECTOR(7 DOWNTO 0);&
73、lt;/p><p> VARIABLE TAG:STD_LOGIC;</p><p><b> BEGIN</b></p><p> IF CLR='1'THEN --復(fù)位清零</p><p> TMP:="00000000";</p><p> ELS
74、IF CLK'EVENT AND CLK='1'THEN</p><p> IF TAG='0'THEN ——加法計(jì)數(shù)</p><p> IF TMP="11111110"THEN ——加法計(jì)數(shù)器滿</p><p> TMP:="11111111";</p><
75、;p> TAG:='1'; ——下一個(gè)時(shí)鐘周期開始減法計(jì)數(shù)</p><p><b> ELSE</b></p><p> TMP:=TMP+1;——加1操作</p><p><b> END IF;</b></p><p><b> ELSE</b&
76、gt;</p><p> IF TMP="00000001"THEN ——減法計(jì)數(shù)器滿</p><p> TMP:="00000000";</p><p> TAG:='0';——下一時(shí)鐘周期開始加法計(jì)數(shù)</p><p><b> ELSE</b></
77、p><p> TMP:=TMP-1;——減1操作</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> Q<=
78、TMP;</b></p><p> END PROCESS;</p><p><b> END rtl;</b></p><p> 梯形波函數(shù)發(fā)生模塊的VHDL語言:</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_116
79、4.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY ladder IS</p><p><b> PORT(</b></p><p> CLK,CLR:IN STD_LOGIC;</p><p> Q: OUT
80、 STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p> END ladder;</p><p> ARCHITECTURE rtl OF ladder IS</p><p><b> BEGIN</b></p>&l
81、t;p> PROCESS(CLK,CLR) ——啟動(dòng)進(jìn)程</p><p> VARIABLE TMP: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> VARIABLE TAG: STD_LOGIC;</p><p><b> BEGIN</b></p><p> IF CL
82、R='1' THEN ——復(fù)位清零</p><p> TMP:= "00000000";</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p><p> IF TAG='0' THEN</p><p> IF TMP=&q
83、uot;11111111" THEN</p><p> TMP:="00000000";</p><p><b> TAG:='1';</b></p><p><b> ELSE</b></p><p> TMP:=TMP+16; ——實(shí)現(xiàn)梯行波
84、</p><p><b> TAG:='1';</b></p><p><b> END IF;</b></p><p><b> ELSE</b></p><p><b> TAG:='0';</b></p&
85、gt;<p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> Q<=TMP;</b></p><p> END PROCESS;</p><p><b> END rtl;&l
86、t;/b></p><p> 正弦波函數(shù)發(fā)生模塊的VHDL語言:</p><p> LIBRARY IEEE;——加載庫文件</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>
87、USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> ENTITY SIN IS ——定義實(shí)體</p><p><b> PORT(</b></p><p> CLK,CLR:IN STD_LOGIC;</p><p> Q:OUT STD_LOGIC_VECTOR(7 DOWNT
88、O 0)</p><p><b> );</b></p><p><b> END SIN;</b></p><p> ARCHITECTURE rtl OF sin IS</p><p><b> BEGIN</b></p><p> PR
89、OCESS(CLK,CLR)——啟動(dòng)進(jìn)程</p><p> VARIABLE TMP:INTEGER RANGE 0 TO 63;——定義整數(shù)型變量</p><p><b> BEGIN</b></p><p> IF CLR='1' THEN ——復(fù)位清零</p><p> Q<=&quo
90、t;00000000";</p><p> ELSIF CLK'EVENT AND CLK ='1'THEN</p><p> IF TMP=63 THEN</p><p><b> TMP:=0;</b></p><p><b> ELSE</b><
91、/p><p> TMP:=TMP+1;——整數(shù)計(jì)數(shù)</p><p><b> END IF;</b></p><p> ——將正弦函數(shù)對(duì)應(yīng)的映射為二進(jìn)制數(shù)</p><p> CASE TMP IS</p><p> WHEN 0=>Q<=conv_std_logic_vector
92、(255,8);</p><p> WHEN 1=>Q<=conv_std_logic_vector(254,8);</p><p> WHEN 2=>Q<=conv_std_logic_vector(252,8);</p><p> WHEN 3=>Q<=conv_std_logic_vector(249,8);</
93、p><p> WHEN 4=>Q<=conv_std_logic_vector(245,8);</p><p> WHEN 5=>Q<=conv_std_logic_vector(239,8);</p><p> WHEN 6=>Q<=conv_std_logic_vector(233,8);</p><p&
94、gt; WHEN 7=>Q<=conv_std_logic_vector(225,8);</p><p> WHEN 8=>Q<=conv_std_logic_vector(217,8);</p><p> WHEN 9=>Q<=conv_std_logic_vector(207,8);</p><p> WHEN 10=
95、>Q<=conv_std_logic_vector(197,8);</p><p> WHEN 11=>Q<=conv_std_logic_vector(186,8);</p><p> WHEN 12=>Q<=conv_std_logic_vector(174,8);</p><p> WHEN 13=>Q<=
96、conv_std_logic_vector(162,8);</p><p> WHEN 14=>Q<=conv_std_logic_vector(150,8);</p><p> WHEN 15=>Q<=conv_std_logic_vector(137,8);</p><p> WHEN 16=>Q<=conv_std_l
97、ogic_vector(124,8);</p><p> WHEN 17=>Q<=conv_std_logic_vector(112,8);</p><p> WHEN 18=>Q<=conv_std_logic_vector(99,8);</p><p> WHEN 19=>Q<=conv_std_logic_vector
98、(87,8);</p><p> WHEN 20=>Q<=conv_std_logic_vector(75,8);</p><p> WHEN 21=>Q<=conv_std_logic_vector(64,8);</p><p> WHEN 22=>Q<=conv_std_logic_vector(53,8);</p
99、><p> WHEN 23=>Q<=conv_std_logic_vector(43,8);</p><p> WHEN 24=>Q<=conv_std_logic_vector(34,8);</p><p> WHEN 25=>Q<=conv_std_logic_vector(26,8);</p><p&g
100、t; WHEN 26=>Q<=conv_std_logic_vector(19,8);</p><p> WHEN 27=>Q<=conv_std_logic_vector(13,8);</p><p> WHEN 28=>Q<=conv_std_logic_vector(8,8);</p><p> WHEN 29=&g
101、t;Q<=conv_std_logic_vector(4,8);</p><p> WHEN 30=>Q<=conv_std_logic_vector(1,8);</p><p> WHEN 31=>Q<=conv_std_logic_vector(0,8);</p><p> WHEN 32=>Q<=conv_std
102、_logic_vector(0,8);</p><p> WHEN 33=>Q<=conv_std_logic_vector(1,8);</p><p> WHEN 34=>Q<=conv_std_logic_vector(4,8);</p><p> WHEN 35=>Q<=conv_std_logic_vector(8,
103、8);</p><p> WHEN 36=>Q<=conv_std_logic_vector(13,8);</p><p> WHEN 37=>Q<=conv_std_logic_vector(19,8);</p><p> WHEN 38=>Q<=conv_std_logic_vector(26,8);</p>
104、<p> WHEN 39=>Q<=conv_std_logic_vector(34,8);</p><p> WHEN 40=>Q<=conv_std_logic_vector(43,8);</p><p> WHEN 41=>Q<=conv_std_logic_vector(53,8);</p><p>
105、WHEN 42=>Q<=conv_std_logic_vector(64,8);</p><p> WHEN 43=>Q<=conv_std_logic_vector(75,8);</p><p> WHEN 44=>Q<=conv_std_logic_vector(87,8);</p><p> WHEN 45=>Q
106、<=conv_std_logic_vector(99,8);</p><p> WHEN 46=>Q<=conv_std_logic_vector(112,8);</p><p> WHEN 47=>Q<=conv_std_logic_vector(124,8);</p><p> WHEN 48=>Q<=conv_s
107、td_logic_vector(137,8);</p><p> WHEN 49=>Q<=conv_std_logic_vector(150,8);</p><p> WHEN 50=>Q<=conv_std_logic_vector(162,8);</p><p> WHEN 51=>Q<=conv_std_logic_v
108、ector(174,8);</p><p> WHEN 52=>Q<=conv_std_logic_vector(186,8);</p><p> WHEN 53=>Q<=conv_std_logic_vector(197,8);</p><p> WHEN 54=>Q<=conv_std_logic_vector(207,
109、8);</p><p> WHEN 55=>Q<=conv_std_logic_vector(217,8);</p><p> WHEN 56=>Q<=conv_std_logic_vector(225,8);</p><p> WHEN 57=>Q<=conv_std_logic_vector(233,8);</p&
110、gt;<p> WHEN 58=>Q<=conv_std_logic_vector(239,8);</p><p> WHEN 59=>Q<=conv_std_logic_vector(245,8);</p><p> WHEN 60=>Q<=conv_std_logic_vector(249,8);</p><p
111、> WHEN 61=>Q<=conv_std_logic_vector(252,8);</p><p> WHEN 62=>Q<=conv_std_logic_vector(254,8);</p><p> WHEN 63=>Q<=conv_std_logic_vector(255,8);</p><p> WHEN
112、 OTHERS=>NULL;</p><p> END CASE ;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> END rtl;</b></p><p> 方波函數(shù)發(fā)生模塊的VH
113、DL源程序如下:</p><p> LIBRARY IEEE;——加載庫文件</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY square IS</p><p><
114、;b> PORT(</b></p><p> CLK,CLR:IN STD_LOGIC;</p><p> Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p> END square;</p><p&
115、gt; ARCHITECTURE rtl OF square IS</p><p> SIGNAL TAG:STD_LOGIC;</p><p><b> BEGIN</b></p><p> PROCESS(CLK,CLR)——啟動(dòng)進(jìn)程</p><p> VARIABLE CNT:INTEGER RANGE
116、0 DOWNTO 63;</p><p><b> BEGIN</b></p><p> IF CLR='1'THEN</p><p><b> TAG<='0';</b></p><p> ELSIF CLK'EVENT AND CLK=
117、9;1'THEN</p><p> IF CNT<63 THEN ——時(shí)鐘計(jì)數(shù)</p><p> CNT:=CNT+1;</p><p> ELSE ——時(shí)鐘計(jì)數(shù)滿,輸出翻轉(zhuǎn)</p><p><b> CNT:=0;</b></p><p> TAG<=
118、NOT TAG;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> ——給輸出信號(hào)賦值</b></p><p> PROCE
119、SS(CLK,TAG)</p><p><b> BEGIN</b></p><p> IF CLK'EVENT AND CLK='1'THEN</p><p> IF TAG='1'THEN </p><p> Q<="11111111";<
120、;/p><p><b> ELSE</b></p><p> Q<="00000000";</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PR
121、OCESS;</p><p><b> END rtl;</b></p><p> 5.3.2函數(shù)選擇模塊</p><p> 函數(shù)選擇電路的本質(zhì)是一個(gè)簡(jiǎn)單的譯碼器模塊。其電路框圖如圖(2)所示。其中SEL[2…0]為輸出函數(shù)選擇信號(hào),根據(jù)該信號(hào)的取值,電路將選擇輸入信號(hào)D0[7…0]~D5[7…0]中的某一組數(shù)據(jù),作為輸出信號(hào)在輸出端Q[
122、7…0]輸出。</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY selecter IS</p><p><b> PORT(</b></p><p> SEL:IN STD_LOGI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的dds信號(hào)發(fā)生器-畢業(yè)論文
- 畢業(yè)論文 基于fpga的信號(hào)發(fā)生器設(shè)計(jì)
- 基于dds的任意信號(hào)發(fā)生器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--基于fpga的信號(hào)發(fā)生器設(shè)計(jì)
- 基于fpga的dds信號(hào)發(fā)生器設(shè)計(jì)【畢業(yè)論文】
- 基于fpga的函數(shù)信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)論文
- 基于fpga的正交信號(hào)發(fā)生器設(shè)計(jì)【畢業(yè)論文】
- 基于fpga的dds信號(hào)發(fā)生器的研究畢業(yè)論文
- dds信號(hào)發(fā)生器的fpga實(shí)現(xiàn)【畢業(yè)論文】
- 函數(shù)信號(hào)發(fā)生器的fpga設(shè)計(jì)畢業(yè)論文
- 基于fpga的任意信號(hào)發(fā)生器設(shè)計(jì)外文翻譯
- 基于fpga的智能函數(shù)發(fā)生器畢業(yè)論文
- 基于fpga多功能信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 2010畢業(yè)論文設(shè)計(jì)-函數(shù)信號(hào)發(fā)生器的fpga設(shè)計(jì)
- 畢業(yè)論文——正弦信號(hào)發(fā)生器
- 基于labview的信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文----基于labview的虛擬信號(hào)發(fā)生器
- 秒信號(hào)發(fā)生器畢業(yè)論文
- 畢業(yè)論文——正弦信號(hào)發(fā)生器
- 基于dsp的任意信號(hào)發(fā)生器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論