《 FPGA應(yīng)用技術(shù)及實踐 》_第1頁
《 FPGA應(yīng)用技術(shù)及實踐 》_第2頁
《 FPGA應(yīng)用技術(shù)及實踐 》_第3頁
《 FPGA應(yīng)用技術(shù)及實踐 》_第4頁
《 FPGA應(yīng)用技術(shù)及實踐 》_第5頁
已閱讀5頁,還剩241頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1EDA技術(shù)及其發(fā)展1.2EDA技術(shù)的主要內(nèi)容1.3EDA的設(shè)計流程1.4常用EDA工具重慶電子工程職業(yè)學(xué)院1第1章EDA技術(shù)概述⒈EDA技術(shù)的涵義⒉EDA技術(shù)的發(fā)展⒊EDA技術(shù)的特點與發(fā)展趨勢⒋EDA技術(shù)應(yīng)用前景展望⑴EDA技術(shù)將廣泛應(yīng)用于高校電類專業(yè)的實踐教學(xué)和科研工作⑵EDA技術(shù)將廣泛應(yīng)用于專用集成電路的設(shè)計和新產(chǎn)品的開發(fā)⑶EDA技術(shù)將廣泛應(yīng)用于傳統(tǒng)機(jī)電設(shè)備的升級換代和技術(shù)改進(jìn)重慶電子工程職業(yè)學(xué)院21.1EDA技術(shù)及其發(fā)展⒈可編程邏輯器件⒉硬件描述語言⒊EDA工具軟件重慶電子工程職業(yè)學(xué)院31.2EDA技術(shù)的主要內(nèi)容重慶電子工程職業(yè)學(xué)院41.2EDA技術(shù)的主要內(nèi)容⒈設(shè)計準(zhǔn)備⒉設(shè)計輸入⒊設(shè)計處理⒋設(shè)計校驗⒌器件編程⒍測試驗證重慶電子工程職業(yè)學(xué)院51.3EDA的設(shè)計流程圖1-1EDA的設(shè)計流程⑴圖形輸入方式⑵文本輸入方式⑴編譯和檢查⑵優(yōu)化和綜合⑶適配和分割⑷布局和布線⑸生成編程數(shù)據(jù)文件⒈編輯器⒉仿真器⒊綜合器⒋適配器⒌下載器重慶電子工程職業(yè)學(xué)院61.4常用EDA工具⑴何謂EDA技術(shù)?EDA技術(shù)的核心內(nèi)容是什么?⑵簡述EDA技術(shù)的發(fā)展歷程。⑶簡述用EDA技術(shù)設(shè)計電路的基本流程。⑷什么是硬件描述語言?常見的硬件描述語言有哪些?⑸與軟件描述語言相比,HDL有什么特點?⑹EDA技術(shù)與ASIC設(shè)計和FPGA開發(fā)有何關(guān)系?重慶電子工程職業(yè)學(xué)院7思考練習(xí)2.1可編程邏輯器件概述2.2CPLD的實現(xiàn)原理與典型結(jié)構(gòu)2.3FPGA的實現(xiàn)原理與典型結(jié)構(gòu)2.4FPGA/CPLD產(chǎn)品概述2.5FPGA/CPLD器件的配置與編程重慶電子工程職業(yè)學(xué)院8第2章可編程邏輯器件2.1可編程邏輯器件概述2.1.1可編程邏輯器件的基本結(jié)構(gòu)2.1.2可編程邏輯器件的發(fā)展歷程⒈PLD誕生及簡單PLD發(fā)展階段⒉乘積項可編程結(jié)構(gòu)PLD發(fā)展與成熟階段⒊復(fù)雜可編程器件發(fā)展與成熟階段重慶電子工程職業(yè)學(xué)院9圖2-1基本PLD的原理結(jié)構(gòu)框圖2.1.3可編程邏輯器件的分類⒈按規(guī)模大小分類⒉按結(jié)構(gòu)特點分類⒊按編程方式分類⒋按編程工藝分類重慶電子工程職業(yè)學(xué)院102.1可編程邏輯器件概述圖2-2可編程邏輯器件按規(guī)模分類重慶電子工程職業(yè)學(xué)院112.1可編程邏輯器件概述表2-2CPLD與FPGA的區(qū)別2.1.4CPLD與FPGA比較重慶電子工程職業(yè)學(xué)院12PLD相關(guān)電路符號重慶電子工程職業(yè)學(xué)院13PROM編程原理重慶電子工程職業(yè)學(xué)院142.2CPLD的實現(xiàn)原理與典型結(jié)構(gòu)2.2.1CPLD的邏輯實現(xiàn)原理圖2-3乘積項結(jié)構(gòu)示例電路圖2-4CPLD的實現(xiàn)方式2.2.2典型CPLD器件簡介——MAX3000A重慶電子工程職業(yè)學(xué)院152.2CPLD的實現(xiàn)原理與典型結(jié)構(gòu)⒈MAX3000A系列器件概覽⒉MAX3000A器件結(jié)構(gòu)組成圖2-5MAX3000A的整體結(jié)構(gòu)重慶電子工程職業(yè)學(xué)院162.2CPLD的實現(xiàn)原理與典型結(jié)構(gòu)圖2-6MAX3000A的宏單元結(jié)構(gòu)⒊MAX3000A系列CPLD的特性⒋MAX3000A系列器件的性能參數(shù)重慶電子工程職業(yè)學(xué)院172.3FPGA的實現(xiàn)原理與典型結(jié)構(gòu)2.3.1FPGA的邏輯實現(xiàn)原理(a)實際邏輯電路 (b)LUT的實現(xiàn)方式圖2-7FPGA的邏輯實現(xiàn)原理圖2-8FPGA查找表內(nèi)部結(jié)構(gòu)重慶電子工程職業(yè)學(xué)院182.3FPGA的實現(xiàn)原理與典型結(jié)構(gòu)⒈Cyclone系列器件概覽⒉Cyclone系列FPGA結(jié)構(gòu)組成圖2-9AlteraCyclone系列FPGA整體結(jié)構(gòu)圖2-10Cyclone器件的LE結(jié)構(gòu)2.3.2典型FPGA器件簡介——Cyclone2.3FPGA的實現(xiàn)原理與典型結(jié)構(gòu)重慶電子工程職業(yè)學(xué)院19⒊Cyclone系列FPGA的特性⒋Cyclone系列FPGA的性能參數(shù)重慶電子工程職業(yè)學(xué)院202.4FPGA/CPLD產(chǎn)品概述2.4.1FPGA/CPLD產(chǎn)品主要廠商⒈Altera公司圖2-11Altera公司的主要產(chǎn)品⒉Xilinx公司⒊Lattice公司⒋Actel公司⒌A(chǔ)tmel公司重慶電子工程職業(yè)學(xué)院212.4FPGA/CPLD產(chǎn)品概述⒈Altera公司成熟器件表2-8Altera的成熟器件2.4.2Altera公司的可編程邏輯器件重慶電子工程職業(yè)學(xué)院222.4FPGA/CPLD產(chǎn)品概述⒉Altera新型系列器件簡介⑴Stratix系列高端FPGA⑵Arria系列中端FPGA⑶Cyclone系列低成本FPGA

⑷MAX系列低成本CPLD⑸HardCopy系列ASIC⒊Altera配置器件簡介⑴標(biāo)準(zhǔn)型配置器件⑵增強(qiáng)型配置器件(3)串行配置器件

⒋Altera可編程邏輯器件命名規(guī)則重慶電子工程職業(yè)學(xué)院232.4FPGA/CPLD產(chǎn)品概述⒈Xilinx的主流FPGA器件⒉Xilinx的主流CPLD器件⒊Xilinx公司FPGA配置器件⒈Lattice的FPGA器件⒉Lattice的CPLD和SPLD器件Lattice的最新FPGA產(chǎn)品包括低成本、非易失和系統(tǒng)級三大類。Lattice的ispLSI、ispMACH和GAL產(chǎn)品系列是其CPLD和SPLD器件的代表。2.4.4Lattice公司的可編程邏輯器件2.4.3Xilinx公司的可編程邏輯器件重慶電子工程職業(yè)學(xué)院242.4FPGA/CPLD產(chǎn)品概述⒈器件類型的選擇⒉器件系列的選擇⒊器件型號的選擇⒋外圍器件的選擇2.4.5FPGA/CPLD的開發(fā)應(yīng)用選擇重慶電子工程職業(yè)學(xué)院252.5FPGA/CPLD器件的配置與編程⑴將PLD焊在PCB板上⑵接好編程電纜⑶現(xiàn)場燒寫PLD芯片 圖2-13PLD編程操作過程示意圖2.5.1配置與編程工藝目前常見的大規(guī)??删幊踢壿嬈骷木幊毯团渲霉に囉腥N:⑴基于電可擦除存儲單元的EEPROM或Flash技術(shù)。⑵基于SRAM查找表的編程單元。⑶基于反熔絲編程單元。重慶電子工程職業(yè)學(xué)院262.5FPGA/CPLD器件的配置與編程(a)并口下載方式(b)USB口下載方式圖2-14并口/USB口下載電纜連接示意圖圖2-15目標(biāo)板上的10針下載接口表2-2410針插座的在不同模式下對應(yīng)的信號2.5.2下載電纜與接口重慶電子工程職業(yè)學(xué)院272.5FPGA/CPLD器件的配置與編程⒈FPGA的PS模式配置圖2-16PS模式下對FPGA器件的配置⒉FPGA的JTAG模式配置圖2-17JTAG模式下對FPGA器件的配置2.5.3編程與配置模式重慶電子工程職業(yè)學(xué)院282.5FPGA/CPLD器件的配置與編程⒊CPLD的ISP模式編程圖2-18JTAG模式下對CPLD器件的編程重慶電子工程職業(yè)學(xué)院292.5FPGA/CPLD器件的配置與編程⒈使用專用配置器件配置FPGA圖2-19EPCS器件對FPGA器件的配置電路⒉利用微處理器配置FPGA圖2-20PS模式下微處理器對FPGA器件的配置電路2.5.4FPGA的配置方式

重慶電子工程職業(yè)學(xué)院30思考練習(xí)⑴什么是基于乘積項的可編程邏輯結(jié)構(gòu)?⑵什么是基于查找表的可編程邏輯結(jié)構(gòu)?⑶CPLD和FPGA有什么差異?在實際應(yīng)用中各有什么特點?⑷解釋編程與配置這兩個概念。⑸目前比較知名的CPLD/FPGA廠商有Altera、Xilinx和Lattice,請寫出你對這幾家公司及其PLD產(chǎn)品的了解。⑹根據(jù)本章介紹的各廠商FPGA/CPLD產(chǎn)品系列及你對新產(chǎn)品的了解,請思考選用PLD器件時應(yīng)考慮哪些方面的問題?重慶電子工程職業(yè)學(xué)院31實訓(xùn)項目1.上網(wǎng)查閱資料,了解主流PLD廠商新型CPLD/FPGA器件的性能特點。2.試根據(jù)圖2-21所示ByteBlasterMV變換電路原理圖制作如圖2-22所示的ByteBlasterMV下載電纜。圖2-21ByteBlasterMV變換電路原理圖圖2-22ByteBlasterMV

下載電纜3.1QUARTUSII軟件概述3.2QUARTUSII設(shè)計流程3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院32第3章QUARTUSII應(yīng)用基礎(chǔ)重慶電子工程職業(yè)學(xué)院33

3.1QUARTUSII軟件概述

3.1.1QUARTUSII軟件簡介QuartusII是Altera公司提供的綜合性PLD開發(fā)工具,可以完成從設(shè)計輸入、HDL綜合、布線布局(適配)、仿真到硬件下載及測試的完整PLD設(shè)計流程,同時也是單芯片可編程系統(tǒng)(SoPC)設(shè)計的綜合性環(huán)境。圖3-1QuartusII設(shè)計軟件的主要功能重慶電子工程職業(yè)學(xué)院343.1QUARTUSII軟件概述

圖3-2QuartusII編譯器的主控界面QuartusII包括模塊化的編譯器。圖3-2是QuartusII編譯器的主控界面,它顯示了QuartusII進(jìn)行自動化設(shè)計的主要處理環(huán)節(jié),包括分析與綜合(Analysis&Synthesis)、適配(Filter)、裝配(Assembler)及、時序分析(ClassicTimingAnalyzer)。重慶電子工程職業(yè)學(xué)院353.1QUARTUSII軟件概述

3.1.2QUARTUSII功能特點2009年3月Altera公司發(fā)布了QuartusII9.0,新增特性有以下幾方面:⑴SignalTapeII嵌入式邏輯分析器。⑵增強(qiáng)的SoPCBuilder工具。⑶新的操作系統(tǒng)支持。⑷增強(qiáng)第三方仿真接口。⑸新的引腳顧問。⑹RealIntent驗證支持。⑺新的增強(qiáng)IP內(nèi)核和宏功能。⑻物理綜合引擎增強(qiáng)。重慶電子工程職業(yè)學(xué)院363.1QUARTUSII軟件概述

3.1.3QUARTUSII界面預(yù)覽工具欄菜單欄標(biāo)題欄工程導(dǎo)航器狀態(tài)窗口任務(wù)窗口工作區(qū)消息窗口3.1.3QUARTUSII界面預(yù)覽圖3-3QuartusII初始用戶界面重慶電子工程職業(yè)學(xué)院373.1QUARTUSII軟件概述

3.1.4QUARTUSII授權(quán)許可圖3-4許可文件設(shè)置對話框圖3-5許可文件設(shè)置完成對話框重慶電子工程職業(yè)學(xué)院383.2QUARTUSII設(shè)計流程圖3-6QuartusII設(shè)計的基本流程⒈設(shè)計輸入QuartusII支持多種設(shè)計輸入方式,如原理圖輸入、文本輸入、波形輸入等。⒉設(shè)計編譯⒊設(shè)計仿真

根據(jù)設(shè)計要求事先設(shè)定編譯參數(shù),如器件類型、邏輯綜合方式的選擇等,然后進(jìn)行編譯,包括分析綜合、適配、裝配及時序分析,并產(chǎn)生相應(yīng)的報告文件、延時信息文件及編程文件等,供仿真分析和下載編程使用。

仿真用來驗證設(shè)計項目的邏輯功能是否正確,包括功能仿真、時序仿真和定時分析。⒋引腳鎖定

為了將設(shè)計結(jié)果下載到CPLD/FPGA芯片中進(jìn)行測試驗證,必須根據(jù)具體EDA開發(fā)系統(tǒng)或?qū)嶒灠逵布囊髮υO(shè)計項目的輸入輸出信號賦予特定的引腳,以便能夠?qū)ζ溥M(jìn)行實測。⒌編程配置與測試驗證

在成功編譯工程并鎖定引腳之后,就可以使用QuartusII的編程器(Programmer)對PLD器件進(jìn)行編程或配置,然后在實驗開發(fā)系統(tǒng)上測試驗證其實際運行性能。3.3QuartusII設(shè)計實例s1s2s3L1L20000100101010010111010001101101101011110重慶電子工程職業(yè)學(xué)院39

本節(jié)將以3人表決器電路為例,詳細(xì)介紹基于原理圖輸入和文本輸入的QuartusII工程設(shè)計過程,主要包括建立工程文件、編輯設(shè)計文件、編譯綜合、仿真測試、引腳鎖定、編程下載和硬件測試等基本過程。表3-1三人表決電路真值表3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院403.3.1建立工程文件⒈指定工程文件名稱⒉選擇添加的文件和庫圖3-8新建工程對話框圖3-7新建工程菜單選項圖3-9添加文件或者庫對話框3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院41圖3-12工程創(chuàng)建完成對話框⒋選擇第三方EDA工具⒊選擇目標(biāo)器件圖3-10目標(biāo)器件選擇對話框圖3-11第三方EDA工具選擇對話框3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院42⒌完成創(chuàng)建工程圖3-13工程建立完成后的界面3.4.2設(shè)計文件輸入⒈原理圖輸入方法⑴建立原理圖圖3-14〖New〗對話框圖3-15空白圖形編輯窗口3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院43⑵放置元器件符號圖3-16選擇電路元器件符號對話框圖3-17正在放置元器件符號圖3-18元器件符號放置完成3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院44⑶命名和連接各元器件圖3-19符號屬性對話框圖3-20表決器的電路原理圖⑷保存文件圖3-21〖另存為〗對話框3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院45⒉文本輸入方法⑴建立文件圖3-22QuartusII文本編輯窗口⑵輸入VHDL語言程序代碼

圖3-23〖InsertTemplate〗對話框圖3-24表決器的VHDL程序代碼3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院46圖3-25編譯結(jié)果⑶保存程序單擊,完成文件的保存。3.4.3編譯工程文件無論是采用原理圖輸入還是文本輸入,在完成輸入并保存文件后,即可開始編譯。

執(zhí)行【Processing】

【StartCompilation】菜單命令或單擊工具欄中的編譯按鈕,開始編譯并伴隨著進(jìn)度不斷變化,完成后彈出編譯完成提示對話框,3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院473.4.4建立仿真測試的矢量波形文件⒈建立波形文件圖3-26〖New〗對話框⒉添加引腳和節(jié)點圖3-27波形編輯窗口圖3-28〖InsertNodeorBus〗對話框3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院48圖3-29〖NodeFinder〗對話框圖3-30選擇輸入、輸出引腳圖3-31查找節(jié)點后的添加節(jié)點對話框圖3-32添加節(jié)點后的波形編輯窗口3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院49⒊編輯波形圖3-33〖EndTime〗對話框圖3-34時鐘設(shè)置對話框圖3-35對輸入波形進(jìn)行編輯后的波形編輯窗口⒋保存波形文件3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院503.4.5仿真并觀察RTL電路圖3-36QuartusII軟件仿真設(shè)置界面⒈功能仿真圖3-37QuartusII中表決器功能仿真結(jié)果3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院51⒉時序仿真圖3-38QuartusII中表決器時序仿真結(jié)果⒊觀察RTL電路圖3-39表決器的RTL電路3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院523.4.6分配引腳圖3-40引腳和引腳組分配窗口圖3-41引腳屬性對話框窗口

圖3-42〖Tc1Script〗對話框3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院53⒊配置下載線纜3.4.7編程下載與硬件測試⒈再編譯⒉連接下載電纜圖3-43編程配置下載窗口圖3-44硬件設(shè)置對話框⒋配置文件下載3.3QuartusII設(shè)計實例重慶電子工程職業(yè)學(xué)院54⒌硬件測試圖3-45配置完成窗口圖3-46JTAG模式下載完成窗口思考練習(xí)重慶電子工程職業(yè)學(xué)院55⑴說明原理圖輸入法設(shè)計電路的詳細(xì)流程。⑵指出功能仿真和時序仿真的區(qū)別。⑶用原理圖輸入法設(shè)計8進(jìn)制的加法計數(shù)器。⑷用文本輸入法設(shè)計4變量的多數(shù)表決器。重慶電子工程職業(yè)學(xué)院56實訓(xùn)項目1.下載QuartusII網(wǎng)絡(luò)版并上機(jī)練習(xí)安裝、加載受權(quán)文件,熟悉QUARTUSII的界面。

2.參照3.3節(jié)通過QuartusII設(shè)計實現(xiàn)三人表決器,并下載到CPLD/FPGA芯片中在實驗開發(fā)系統(tǒng)上進(jìn)行測試驗證。4.1VHDL語言概述4.2VHDL程序結(jié)構(gòu)4.3VHDL語言要素4.4VHDL描述語句4.5VHDL描述風(fēng)格4.6VHDL設(shè)計方法重慶電子工程職業(yè)學(xué)院57第4章硬件描述語言VHDL重慶電子工程職業(yè)學(xué)院584.1VHDL語言概述4.1.1VHDL簡介VHDL(VHSICHardwareDescriptionLanguage,VHSIC硬件描述語言)是電子工程師用來設(shè)計硬件系統(tǒng)與電路的高級語言。

目前,流行的EDA工具軟件全部支持VHDL,它在EDA領(lǐng)域的學(xué)術(shù)交流、電子設(shè)計的存檔以及ASIC設(shè)計等方面擔(dān)當(dāng)著不可缺少的角色。顯然,VHDL是現(xiàn)代電子設(shè)計人員必須掌握的硬件設(shè)計語言。4.1.2VHDL優(yōu)點⑴VHDL語言具有很強(qiáng)的電路描述和建模能力。⑵VHDL有良好的可讀性。⑶VHDL具有良好的可移植性。⑷使用VHDL可以延長設(shè)計的生命周期。⑸VHDL支持對大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。⑹VHDL有利于保護(hù)知識產(chǎn)權(quán)。重慶電子工程職業(yè)學(xué)院594.1VHDL語言概述4.1.3VHDL實例圖4-12選1選擇器【例4-1】:2選1數(shù)據(jù)選擇器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux21ISPORT(a,b:INSTD_LOGIC;s:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDmux21;ARCHITECTURErtlOFmux21ISBEGINy<=aWHENs='0'ELSEb;ENDARCHITECTURErtl;⑴庫說明⑵實體說明⑶結(jié)構(gòu)體說明重慶電子工程職業(yè)學(xué)院604.2VHDL程序結(jié)構(gòu)圖4-2VHDL程序的基本結(jié)構(gòu)

一個相對完整的VHDL程序稱為設(shè)計實體,通常都具有比較固定的結(jié)構(gòu),即由實體(Entity)、結(jié)構(gòu)體(Architecture)、配置(Configuration)、庫(Library)和程序包(Package)五大部分構(gòu)成(見圖4-2)。4.2.1實體

實體由實體聲明部分和結(jié)構(gòu)體組成,實體聲明部分指定了設(shè)計單元完整的接口信息,基本格式如下:ENTITY實體名IS[GENERIC(類屬參數(shù)聲明);]PORT(端口表);

END[ENTITY]實體名;⒈實體名一個設(shè)計實體無論多大和多復(fù)雜,在實體中定義的實體名即為這個設(shè)計實體的名稱。⒉類屬參數(shù)聲明

類屬參數(shù)聲明必須放在端口聲明之前,用于指定如端口中矢量位數(shù)、器件延遲時間參數(shù)等。重慶電子工程職業(yè)學(xué)院614.2VHDL程序結(jié)構(gòu)⒊端口聲明

端口聲明是對基本設(shè)計實體與外部接口的描述,也可以說是對外部引腳信號的名稱、數(shù)據(jù)類型和輸入/輸出方向的描述。PORT(端口名{,端口名}:端口模式數(shù)據(jù)類型;

{端口名{,端口名}:端口模式數(shù)據(jù)類型});⑴端口名

端口名是賦予每個外部引腳的名稱,即該端口的標(biāo)識符,通常用一個或幾個英文字母,或者英文字加數(shù)字命名。⑵端口模式表4-1端口模式說明端口模式含義IN輸入OUT輸出(結(jié)構(gòu)體內(nèi)部不可再用)INOUT雙向BUFFER輸出(結(jié)構(gòu)體內(nèi)部可利用該輸出信號)LINKAGE不指定方向,任何方向均可連接⑶數(shù)據(jù)類型VHDL提供10種標(biāo)準(zhǔn)數(shù)據(jù)類型,但在實際使用時,端口描述中的數(shù)據(jù)類型只有兩類,即位(BIT)和位矢量(BIT_VECTOR)。重慶電子工程職業(yè)學(xué)院624.2VHDL程序結(jié)構(gòu)【例4-2】:端口說明之一PORT(clk,clr:INBIT;sec0,sec1:OUTBIT_VECTOR(3DOWNTO0));【例4-3】:端口說明之二LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYcnt60ISPORT(clk,clr:INSTD_LOGIC;sec0,sec1:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDcnt60;重慶電子工程職業(yè)學(xué)院634.2VHDL程序結(jié)構(gòu)4.2.2結(jié)構(gòu)體

結(jié)構(gòu)體具體描述了該基本設(shè)計單元的行為、元件及內(nèi)部的連接關(guān)系,也就是定義了ARCHITECTURE結(jié)構(gòu)體名OF實體名IS[說明語句]BEGIN

功能描述語句

END[ARCHITECTURE]結(jié)構(gòu)體名;設(shè)計單元的具體功能。一般格式如下:圖4-3結(jié)構(gòu)體構(gòu)造圖⒈結(jié)構(gòu)體說明語句

結(jié)構(gòu)體中的說明語句是對結(jié)構(gòu)體的功能描述,語句中將要用到SIGNAL、數(shù)據(jù)類型(Type)、常量(Constant)、元件(Component)、函數(shù)(Function)和過程(Procedure)等進(jìn)行說明。重慶電子工程職業(yè)學(xué)院644.2VHDL程序結(jié)構(gòu)⒉功能描述語句

功能描述語句可以含有5種不同類型的、以并行方式工作的語句結(jié)構(gòu),這可以看成是結(jié)構(gòu)體的5個子結(jié)構(gòu)⑴塊語句⑵進(jìn)程語句⑶信號賦值語句⑷子程序調(diào)用語句⑸元件例化語句⒊VHDL語言子結(jié)構(gòu)描述

一個結(jié)構(gòu)體可以用幾個子結(jié)構(gòu)即幾個相對比較獨立的子模塊來實現(xiàn)。以下重點介紹塊語句(BLOCK)、進(jìn)程語句(PROCESS)兩種形式的子結(jié)構(gòu)描述語句。⑴塊語句重慶電子工程職業(yè)學(xué)院654.2VHDL程序結(jié)構(gòu)塊標(biāo)號:BLOCK[(塊保護(hù)表達(dá)式)]

接口說明類屬說明

BEGIN

并行語句

ENDBLOCK塊標(biāo)號;重慶電子工程職業(yè)學(xué)院664.2VHDL程序結(jié)構(gòu)⑵進(jìn)程語句①進(jìn)程語句格式進(jìn)程語句PROCESS的一般表達(dá)格式如下:

[進(jìn)程標(biāo)號:]PROCESS(敏感信號參數(shù)表)[IS][進(jìn)程說明部分]BEGIN

順序描述語句

ENDPROCESS[進(jìn)程標(biāo)號];②進(jìn)程的組成進(jìn)程由進(jìn)程說明部分、順序描述語句和敏感信號參數(shù)表三個部分組成。

例4-5是一個用進(jìn)程語句描述的2選1選擇器,其中a、b、s均是敏感信號,當(dāng)其中有任何一個值發(fā)生變化時,進(jìn)程都會被啟動。4.2VHDL程序結(jié)構(gòu)重慶電子工程職業(yè)學(xué)院67重慶電子工程職業(yè)學(xué)院684.2VHDL程序結(jié)構(gòu)重慶電子工程職業(yè)學(xué)院694.2VHDL程序結(jié)構(gòu)③進(jìn)程語句應(yīng)該注意的問題

·PROCESS語句為無限循環(huán)語句。在同一結(jié)構(gòu)體中的進(jìn)程是一個獨立的無限循環(huán)程序結(jié)構(gòu),但進(jìn)程的返回是自動的,不必加返回語句。進(jìn)程只有執(zhí)行和等待兩種狀態(tài)?!みM(jìn)程必須有敏感信號的變化來啟動。·進(jìn)程語句本身是并行語句,同一結(jié)構(gòu)體中的不同進(jìn)程語句是并行執(zhí)行的?!ば盘柺嵌鄠€進(jìn)程間的通信線。重慶電子工程職業(yè)學(xué)院704.2VHDL程序結(jié)構(gòu)4.2.3庫

庫是經(jīng)過編譯后的數(shù)據(jù)集合,其目的為了使設(shè)計遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式,同時便于利用已有的設(shè)計成果,以提高設(shè)計效率。⒈庫的語句格式⒉庫的種類⑴IEEE庫⑵STD庫⑶面向ASIC庫⑷WORK庫⑸用戶自定義庫⒊庫的使用重慶電子工程職業(yè)學(xué)院714.2VHDL程序結(jié)構(gòu)USE語句的使用有兩種常用格式:

USE庫名.程序包名.項目名;

USE庫名.程序包名.ALL;例如語句:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;重慶電子工程職業(yè)學(xué)院724.2VHDL程序結(jié)構(gòu)4.2.4程序包程序包的一般語句格式如下:PACKAGE程序包名IS

程序包首說明部分

END程序包名;PACKAGEBODY程序包名IS

程序包體說明部分以及包體內(nèi)容

END程序包名;程序包首程序包體4.2.5配置配置語句的一般格式如下:

CONFIGURATION配置名OF實體名IS

配置說END配置名;重慶電子工程職業(yè)學(xué)院734.3VHDL語言要素4.3.1VHDL的文字規(guī)則⒈注釋:注釋以“--”開頭直到本行末尾(出現(xiàn)回車或換行符)的一段文字。⒉數(shù)字:⑴整數(shù)⑵實數(shù)⑶以數(shù)制基數(shù)表示的數(shù)⑷物理量文字:綜合器不支持物理量文字的綜合,如:30s(秒)、10m(米)、2.5A(安培)等。⒊字符與字符串⒋關(guān)鍵字:關(guān)鍵字是VHDL預(yù)先定義的保留字,它們在程序中有不同的目的和作用。⒌標(biāo)識符:標(biāo)識符是用戶編程時為常量、變量、信號、端口、子程序或參數(shù)等定義的名字。⒍下標(biāo)名:下標(biāo)名用于指示數(shù)組型變量或信號的某一元素。重慶電子工程職業(yè)學(xué)院744.3VHDL語言要素4.3.2VHDL的數(shù)據(jù)對象在VHDL語言中,數(shù)據(jù)對象主要包括3種:常量、變量和信號。表4-2VHDL數(shù)據(jù)對象及說明場合數(shù)據(jù)對象含義說明場合信號(Signal)說明全局量ARCHITECTURE,PACKAGE,ENTITY變量(Variable)說明局部量PROCESS,F(xiàn)UNCTION,PROCEDURE常量(Constant)說明全局量以上所述場合都可以存在⒈常量常量是一個固定的值,定義和設(shè)置常量主要是為了程序更容易閱讀和理解。⒉變量變量一個局部量,只能在進(jìn)程和子程序中使用。⒊信號信號在硬件電路設(shè)計中相當(dāng)于是連線。重慶電子工程職業(yè)學(xué)院754.3VHDL語言要素⒋信號和變量的區(qū)別⑴信號用于電路中的信號連線,變量用于進(jìn)程中局部數(shù)據(jù)存儲單元;⑵信號的使用和定義范圍在結(jié)構(gòu)體、程序包和實體中,不能在進(jìn)程、函數(shù)和子程序中使用,而變量只能在進(jìn)程、函數(shù)和子程序中使用;⑶變量在賦值時不能產(chǎn)生附加延時,信號代入時可以附加延時。⑷變量用“:=”賦值,信號用“<=”代入。⑸變量賦值語句一旦被執(zhí)行,其值立即被賦予變量。信號實際代入過程和代入語句的處理是分開進(jìn)行的。VHDL中的標(biāo)準(zhǔn)數(shù)據(jù)類型都是在VHDL標(biāo)準(zhǔn)程序包中預(yù)定義的,總共有104.3.3VHDL的數(shù)據(jù)類型⒈標(biāo)準(zhǔn)數(shù)據(jù)類型種如表4-3所示。重慶電子工程職業(yè)學(xué)院764.3VHDL語言要素表4-3標(biāo)準(zhǔn)的數(shù)據(jù)類型數(shù)據(jù)類型含義整數(shù)(Integer)整數(shù)32位,-2147483647~+2147483647實數(shù)(Real)浮點數(shù),-1.0E+38~+1.0E+38位(Bit)邏輯量“0”或“1”位矢量(Bit_Vector)位矢量布爾量(Boolean)邏輯“真”或邏輯“假”字符(Charactor)ASCⅡ字符時間(Time)時間單位fs,ps,ns,us,ms,sec,min,hr錯誤等級(SeverityLevel)NOTE,WARNING,ERROR,FAILURE自然數(shù)、正整數(shù)(Natual&Positive)整數(shù)的子集字符串(String)字符矢量⒉用戶定義的數(shù)據(jù)類型⑴枚舉類型⑵整數(shù)類型、實數(shù)類型⑶數(shù)組⑷記錄類型重慶電子工程職業(yè)學(xué)院774.3VHDL語言要素⒊用戶定義的子類型⒋數(shù)據(jù)類型的轉(zhuǎn)換表4-4數(shù)據(jù)類型變換函數(shù)函數(shù)名功能STD_LOGIC_1164程序包:TO_STDLOGICVECTOR(A)TO_BITVECTOR(A)TO_STDLOGIC(A)TO_BIT(A)由BITVECTOR轉(zhuǎn)換為STDLOGICVECTOR由STDLOGICVECTOR轉(zhuǎn)換為BITVECTOR由BIT轉(zhuǎn)換為STDLOGIC由STDLOGIC轉(zhuǎn)換為BITSTD_LOGIC_ARITH程序包:CONV_STD_LOGIC_VECTOR(A,位長)CONV_INTEGER(A)由INTEGER,UNSIGNED,SIGNED轉(zhuǎn)換成STD_LOGIC_VECTOR由UNSIGNED,SIGNED轉(zhuǎn)換成INTEGERSTD_LOGIC_UNSIGNED程序包:CONV_INTEGER(A)由STD_LOGIC_VECTOR轉(zhuǎn)換成INTEGER重慶電子工程職業(yè)學(xué)院784.3VHDL語言要素4.3.4VHDL的操作符⒈邏輯操作符VHDL共有7種基本邏輯操作符,它們是AND(與),OR(或),NAND(與非),NOR(或非),XOR(異或),XNOR(異或非)和NOT(取反)。信號或變量在這些操作符的直接作用下,可構(gòu)成組合電路。邏輯操作符所要求的操作數(shù)(如變量或信號)的基本數(shù)據(jù)類型有3種,即BIT、BOOLEAN、和STD_LOGIC。⒉關(guān)系操作符

關(guān)系操作符的作用是將相同數(shù)據(jù)類型的數(shù)據(jù)對象進(jìn)行數(shù)值比較或關(guān)系排序判斷,并將結(jié)果以布爾類型(Boolean)的數(shù)據(jù)表示出來,即“TRUE”或“FALSE”兩種;VHDL提供了6種關(guān)系運算操作符:“=”(等于)、“/=”(不等于)、“>”(大于)、“<”(小于)、“>=”(大于等于)和“<=”(小于等于)。⒊算術(shù)操作符重慶電子工程職業(yè)學(xué)院794.3VHDL語言要素VHDL共有17種算術(shù)運算符,它們是+(加)、–(減)、*(乘)、/(除)、MOD(求模)、REM(取余)、**(乘方)、ABS(取絕對值)、+(正)、–(負(fù))和SLL(邏輯左移)、SRL(邏輯右移)、SLA(算術(shù)左移)、SRA(算術(shù)右移)、ROL(邏輯循環(huán)左移)、ROR(邏輯循環(huán)右移)和&(并置)。其中+(正)、–(負(fù))操作符亦稱為符號操作符,代表所操作整數(shù)數(shù)值的正負(fù),其操作數(shù)只有一個,屬于一元運算符。⒋并置操作符

并置運算符(&)在VHDL中使用比較多,故單獨列出予以介紹。并置運算操作數(shù)的數(shù)據(jù)類型是一維數(shù)組,可以利用并置符將普通操作數(shù)或數(shù)組組合起來形成各種新的數(shù)組。例如“VH”&“DL”的結(jié)果為“VHDL”;“0”&“1”的結(jié)果是“01”,并置操作常用于生成位矢量和字符串。4.3.5VHDL的屬性1.數(shù)值類屬性數(shù)值類屬性用來得到數(shù)組、塊或一般數(shù)據(jù)的相關(guān)值。數(shù)值類屬性包括3個子類:一般數(shù)據(jù)的數(shù)值屬性、數(shù)組的數(shù)值屬性和塊的數(shù)值屬性。重慶電子工程職業(yè)學(xué)院804.3VHDL語言要素⑴一般數(shù)據(jù)的數(shù)值屬性

一般數(shù)據(jù)的數(shù)值屬性共有4種,其書寫格式為:客體‘屬性名。如果用“T”表示客體,則4種屬性分別表示如下:①T'LEFT:得到數(shù)據(jù)類或子類區(qū)間的最左端值;②T'RIGHT:得到數(shù)據(jù)類或子類區(qū)間的最右端值;③T'HIGH:得到數(shù)據(jù)類或子類區(qū)間的高端值;④T'LOW:得到數(shù)據(jù)類或子類區(qū)間的低端值。⑵數(shù)組的數(shù)值屬性

數(shù)組的數(shù)值屬性只有一個,即T’LENGTH。該屬性用于得到數(shù)組的長度值,可用于任何標(biāo)量類數(shù)組(包括多維標(biāo)量類數(shù)組)。⑶塊的數(shù)值屬性

塊的數(shù)值屬性用于得到塊或結(jié)構(gòu)體是什么樣的一個設(shè)計模塊的信息,包括'STRUCTURE(結(jié)構(gòu)設(shè)計)和'BEHAVIOR(行為設(shè)計)兩種屬性。重慶電子工程職業(yè)學(xué)院814.3VHDL語言要素2.函數(shù)類屬性

類屬性是指屬性以函數(shù)為主,讓設(shè)計人員得到函數(shù)的有關(guān)數(shù)據(jù)類型、數(shù)組、信號的某些信息。函數(shù)類的屬性包括數(shù)據(jù)類型屬性、數(shù)組屬性、信號屬性3類。⑴數(shù)據(jù)類型屬性函數(shù)主要包括6種屬性函數(shù):①'POS(x):得到輸入x值的位置順序號。②'VAL(x):得到位置順序號x處的值。③'SUCC(x):得到輸入x值的下一個值。④'PRED(x):得到輸入x值的前一個值。⑤'LEFTOF(x):得到輸入x值左側(cè)的值。⑥'RIGHTOF(x):得到輸入x值右側(cè)的值。⑵數(shù)組屬性函數(shù)

利用數(shù)組屬性函數(shù)可得到數(shù)組的區(qū)間,在對數(shù)組的每一個元素進(jìn)行操作時,必須知道數(shù)組的區(qū)間。數(shù)組屬性函數(shù)可以分為4種:重慶電子工程職業(yè)學(xué)院824.3VHDL語言要素①'LEFT(n):得到序號為n區(qū)間的左端位置號。②'RIGHT(n):得到序號為n區(qū)間的右端位置號。③'HIGH(n):得到序號為n區(qū)間的高端位置號。④'LOWn):得到序號為n區(qū)間的低端位置號。⑶信號屬性函數(shù)信號屬性函數(shù)用來得到信號的行為信息。信號屬性函數(shù)共有5種:①'EVENT:用于判斷在當(dāng)前一個非常小的時間間隔內(nèi),事件是否發(fā)生。②'ACTIVE:用于判斷在當(dāng)前一個非常小的時間間隔內(nèi),信號是否發(fā)生改變。③'LAST_EVENT:用于得到從信號前一個事件發(fā)生到現(xiàn)在所經(jīng)過的時間。④'LAST_VALUE:用于得到信號最后一次改變以前的值。⑤'LAST_ACTIVE:用于得到從信號最后一次改變到現(xiàn)在的時間。4.3VHDL語言要素重慶電子工程職業(yè)學(xué)院83重慶電子工程職業(yè)學(xué)院844.3VHDL語言要素3.信號類屬性

信號類屬性用來對所加屬性的信號產(chǎn)生新的特殊信號,在新產(chǎn)生的信號中包含了所加屬性的相關(guān)信息。4.數(shù)據(jù)類型類屬性5.數(shù)據(jù)區(qū)間類屬性重慶電子工程職業(yè)學(xué)院854.3VHDL語言要素3.信號類屬性

信號類屬性用來對所加屬性的信號產(chǎn)生新的特殊信號,在新產(chǎn)生的信號中包含了所加屬性的相關(guān)信息。4.數(shù)據(jù)類型類屬性5.數(shù)據(jù)區(qū)間類屬性重慶電子工程職業(yè)學(xué)院864.4VHDL描述語句4.4.1順序描述語句

順序語句的特點是,每一條順序語句的執(zhí)行(指仿真執(zhí)行)順序是與它們的書寫順序基本一致的,順序語句只能出現(xiàn)在進(jìn)程(Process)和子程序(Subprogram)中。VHDL有以下幾類基本順序語句:··

?變量賦值語句

?信號賦值語句·?WAIT語句?IF語句?CASE語句?LOOP語句?NEXT語句?EXIT語句?RETURN語句?NULL語句?子程序調(diào)用語句賦值語句流程控制語句重慶電子工程職業(yè)學(xué)院874.4VHDL描述語句⒈賦值語句

賦值語句的功能是將一個值或是一個表達(dá)式的運算結(jié)果傳遞給某一數(shù)據(jù)對象,如信號或變量。賦值語句有兩種:即信號賦值語句和變量賦值語句。⒉IF語句IF語句是一種條件語句,它根據(jù)語句中所設(shè)置的一種或多種條件,有選擇的執(zhí)行指定的順序語句。4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院88重慶電子工程職業(yè)學(xué)院894.4VHDL描述語句⒊CASE語句4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院904.4VHDL描述語句重慶電子工程職業(yè)學(xué)院91⒋LOOP語句4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院92⒌NEXT語句⒍EXIT語句4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院93⒎WAIT語句4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院94⒏RETURN語句

返回語句(RETURN)只能用于子程序體中,執(zhí)行返回語句將結(jié)束子程序的執(zhí)行,無條件的跳轉(zhuǎn)至子程序結(jié)束處。⒐NULL語句4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院95⒑子程序調(diào)用語句⑴函數(shù)重慶電子工程職業(yè)學(xué)院964.4VHDL描述語句4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院97⑵過程重慶電子工程職業(yè)學(xué)院984.4VHDL描述語句4.4.2并行描述語句⒈并行信號賦值語句⑴簡單信號賦值語句⑵條件信號賦值語句其語句格式如下:賦值目標(biāo)<=表達(dá)式;4.4VHDL描述語句重慶電子工程職業(yè)學(xué)院99作為另一種并行賦值語句,條件信號賦值語句的表達(dá)方式如下:賦值目標(biāo)<=表達(dá)式1WHEN賦值條件1ELSE

表達(dá)式2WHEN賦值條件2ELSE...

表達(dá)式nWHEN賦值條件nELSE

表達(dá)式;重慶電子工程職業(yè)學(xué)院1004.4VHDL描述語句⑶選擇信號賦值語句語句格式如下:

WITH選擇表達(dá)式SELECT

賦值目標(biāo)<=表達(dá)式1WHEN選擇值1,表達(dá)式2WHEN選擇值2,

...

表達(dá)式nWHEN選擇值n,

[表達(dá)式WHENOTHERS];重慶電子工程職業(yè)學(xué)院1014.4VHDL描述語句⒉進(jìn)程語句進(jìn)程語句歸納起來有以下特點:⑴它可以與其它進(jìn)程并行運行,并可以存取結(jié)構(gòu)體或?qū)嶓w中所定義的信號⑵進(jìn)程結(jié)構(gòu)中的所有語句都是按順序執(zhí)行的;⑶為啟動進(jìn)程,在進(jìn)程語句中必須至少包含一個敏感信號表或包含一個WAIT語句;⑷進(jìn)程間的通信是通過信號量來實現(xiàn)的。⒊塊語句⒋元件例化語句圖4-4全加器的原理圖和實體模塊重慶電子工程職業(yè)學(xué)院1024.4VHDL描述語句表4-7半加器真值表absoco00000110101011014.4VHDL描述語句重慶電子工程職業(yè)學(xué)院1034.4VHDL描述語句重慶電子工程職業(yè)學(xué)院104⒌生成語句重慶電子工程職業(yè)學(xué)院1054.4VHDL描述語句⒍參數(shù)傳遞映射語句重慶電子工程職業(yè)學(xué)院1064.4VHDL描述語句圖4-5四輸入與門電路圖重慶電子工程職業(yè)學(xué)院1074.4VHDL描述語句⒎斷言語句

斷言語句語句主要用于程序仿真、調(diào)試中的人機(jī)對話,它可以給出一個文字串作為警告或是錯誤信息。8.并行過程調(diào)用語句過程調(diào)用語句可以出現(xiàn)在進(jìn)程中,也可以出現(xiàn)在結(jié)構(gòu)體和塊語句中。重慶電子工程職業(yè)學(xué)院1084.5VHDL描述風(fēng)格

在VHDL語言中,結(jié)構(gòu)體對于相同的邏輯功能可以采用不同的描述方法或?qū)崿F(xiàn)方法,稱為VHDL的硬件描述風(fēng)格。VHDL語言通常有3中不同的描述風(fēng)格:即行為描述(BehavioralDescription)、數(shù)據(jù)流描述(DataflowDescription)和結(jié)構(gòu)描述(StructuralDescription)。4.5.1行為描述表4-8全加器真值表ainbincinsumco0000000110010100110110010101011100111111重慶電子工程職業(yè)學(xué)院1094.5VHDL描述風(fēng)格圖4-6采用行為描述方式的全加器RTL網(wǎng)表4.5.2數(shù)據(jù)流描述圖4-7采用數(shù)據(jù)流描述方式的全加器RTL網(wǎng)表4.5VHDL描述風(fēng)格重慶電子工程職業(yè)學(xué)院110使用數(shù)據(jù)流描述方式需要注意的幾個問題:⑴禁止在同一個進(jìn)程中存在對兩個寄存器的描述,如例4-43所示。⑵禁止使用IF語句中的ELSE,如例4-44所示:重慶電子工程職業(yè)學(xué)院1114.5VHDL描述風(fēng)格⑶寄存器描述中必須代入信號值。4.5.3結(jié)構(gòu)描述圖4-8全加器原理圖重慶電子工程職業(yè)學(xué)院1124.6VHDL設(shè)計方法

對于一個比較大的設(shè)計項目,往往應(yīng)采用層次化的設(shè)計方法,即將一個大的設(shè)計項目分解為若干個子項目或若干層次來完成。劃分層次是從頂層由高住下(也稱“自頂向下”),而設(shè)計時則可先設(shè)計底層電路,然后在高層次的設(shè)計中,逐級調(diào)用低層次的設(shè)計結(jié)果。4.6.1.電路模塊的劃分與工程文件夾的建立⒈電路模塊的劃分圖4-94位二進(jìn)制計數(shù)器的總體原理方框圖⒉工程文件夾建立重慶電子工程職業(yè)學(xué)院1134.6VHDL設(shè)計方法4.6.2設(shè)計底層電路模塊⒈十進(jìn)制計數(shù)器的設(shè)計圖4-10計數(shù)器元件符號4.6VHDL設(shè)計方法重慶電子工程職業(yè)學(xué)院114圖4-11十進(jìn)制計數(shù)器的仿真波形⒉設(shè)計七段顯示譯碼器重慶電子工程職業(yè)學(xué)院1154.6VHDL設(shè)計方法圖4-12譯碼器元件符號圖4-13七段顯示譯碼器的仿真波形重慶電子工程職業(yè)學(xué)院1164.6VHDL設(shè)計方法4.6.3設(shè)計電路頂層文件⒈原理圖設(shè)計方式⒉VHDL設(shè)計方式

在QuartusII集成環(huán)境下,首先為頂層設(shè)計建立工程項目(cnt10),然后新建一個原理圖設(shè)計文件。在圖形編輯方式中,調(diào)出4個cnt元件符號、4個dec元件符號及輸入(INPUT)和輸出(OUTPUT)元件符號,并按圖4-9將它們連接起來即可得到計數(shù)譯碼顯示電路的設(shè)計結(jié)果,圖4-14通過原理圖自動生成VHDL文件重慶電子工程職業(yè)學(xué)院1174.6VHDL設(shè)計方法圖4-15選擇文件類型對話框重慶電子工程職業(yè)學(xué)院1184.6VHDL設(shè)計方法重慶電子工程職業(yè)學(xué)院1194.6VHDL設(shè)計方法重慶電子工程職業(yè)學(xué)院1204.6VHDL設(shè)計方法4.6.4編譯仿真頂層設(shè)計文件圖4-164位十進(jìn)制

計數(shù)器元件符號圖4-17頂層設(shè)計文件的仿真波形4.6.5下載頂層設(shè)計文件設(shè)計完成后,可將設(shè)計結(jié)果下載到PLD芯片中進(jìn)行測試驗證,具體操作包括選擇目標(biāo)器件、引腳鎖定和下載等,這里不再贅述。重慶電子工程職業(yè)學(xué)院121思考練習(xí)⑴說明VHDL語言的基本結(jié)構(gòu)。⑵說明端口模式的INOUT與BUFFER的異同。⑶VHDL語言有幾種數(shù)據(jù)對象,請說明他們的功能以及使用方法,舉例說明數(shù)據(jù)對象與數(shù)據(jù)類型的關(guān)系。⑷試說明布爾類型和位類型的輸出有什么區(qū)別?對于邏輯操作應(yīng)該使用哪種類型?關(guān)系操作的結(jié)果為哪種類型?IF語句的表達(dá)式為哪種類型?⑸用不同的表述語句描述一個四選一的多路選擇器。⑺如何用PROCESS語句和WAIT語句來描述電平觸發(fā)的觸發(fā)器。⑼試說明子程序包括哪兩種,在用法上有什么區(qū)別?⑽試用結(jié)構(gòu)描述方式來描述圖4-18所示的硬件電路。圖

4-18

重慶電子工程職業(yè)學(xué)院122實訓(xùn)項目數(shù)控分頻器的設(shè)計⒈實訓(xùn)目的學(xué)習(xí)數(shù)控分頻器的設(shè)計、分析和測試方法⒉實訓(xùn)原理

對于數(shù)控分頻器就是當(dāng)在輸入端給定不同輸入數(shù)據(jù)時,將對輸入的時鐘信號有不同的分頻比,數(shù)控分頻器就是用計數(shù)值可并行預(yù)置的加法計數(shù)器設(shè)計完成的,方法是將計數(shù)溢出位與預(yù)置數(shù)加載輸入信號相接即可⒊實訓(xùn)步驟與要求⑴仿真:對于不同的d值和輸入信號clk,給出仿真波形。⑵驗證:引腳鎖定后重新進(jìn)行編譯,無誤后通過下載電纜將生成的相應(yīng)的.pof文件下載到目標(biāo)板芯片中,觀察實驗結(jié)果。預(yù)制數(shù)以8個開關(guān)鍵代替,輸出接揚(yáng)聲器。⑶根據(jù)以上要求,寫出實訓(xùn)報告。5.1組合邏輯電路設(shè)計5.2時序邏輯電路設(shè)計5.3狀態(tài)機(jī)設(shè)計5.4存儲器設(shè)計重慶電子工程職業(yè)學(xué)院123第5章基本數(shù)字單元設(shè)計重慶電子工程職業(yè)學(xué)院1245.1組合邏輯電路設(shè)計5.1.1運算電路設(shè)計⒈半加器圖5-1半加器網(wǎng)表電路圖重慶電子工程職業(yè)學(xué)院1255.1組合邏輯電路設(shè)計⒉全加器⑴原理圖方式圖5-2全加器的電路圖⑵HDL描述方式

基于半加器的描述,若采用COMPONENT語句和PORTMAP語句就很容易編寫出描述全加器的程序。全加器的VHDL程序見例4-36。5.1組合邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院126⒊多位加法器⒋8位乘法器圖5-38位乘法器的元件符號圖5-48位乘法器的仿真波形重慶電子工程職業(yè)學(xué)院1275.1組合邏輯電路設(shè)計⒈一般編碼器設(shè)計圖5-58-3編碼器

外部端口示意圖表5-18-3編碼器的真值表輸入二進(jìn)制編碼輸出a0a1a2a3a4a5a6a7y2y1y01111111011111111101110111110111011111011110011101111011110111110101011111100101111111000重慶電子工程職業(yè)學(xué)院1285.1組合邏輯電路設(shè)計圖5-68-3編碼器電路的仿真波形重慶電子工程職業(yè)學(xué)院1295.1組合邏輯電路設(shè)計⒉優(yōu)先編碼器設(shè)計表5-2優(yōu)先級編碼器真值表輸入輸出input(7)input(6)input(5)input(4)input(3)input(2)input(1)input(0)y2y1y0XXXXXXX0111XXXXXX01110XXXXX011101XXXX0111100XXX01111011XX011111010X011111100101111111000重慶電子工程職業(yè)學(xué)院1305.1組合邏輯電路設(shè)計圖5-78-3優(yōu)先編碼器的仿真波形重慶電子工程職業(yè)學(xué)院1315.1組合邏輯電路設(shè)計5.1.3譯碼器設(shè)計表5-33-8譯碼器的真值表使能二進(jìn)制輸入端譯碼輸出端ENCBAY0Y1Y2Y3Y4Y5Y6Y70xxx11111111100001111111100110111111101011011111101111101111110011110111110111111011111011111101111111111110圖5-83-8譯碼器

外部端口示意圖重慶電子工程職業(yè)學(xué)院1325.1組合邏輯電路設(shè)計圖5-93-8譯碼器電路的仿真波形重慶電子工程職業(yè)學(xué)院1335.1組合邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院1345.1組合邏輯電路設(shè)計5.1.4數(shù)據(jù)選擇器設(shè)計表5-44選1電路真值表選擇輸入數(shù)據(jù)輸入數(shù)據(jù)輸出BAD0D1D2D3y000XXX0001XXX101X0XX001X1XX110XX0X010XX1X111XXX0011XXX11圖

5-104選1電路

重慶電子工程職業(yè)學(xué)院1355.1組合邏輯電路設(shè)計圖5-114選1多路選擇器的仿真波形重慶電子工程職業(yè)學(xué)院1365.1組合邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院1375.1組合邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院1385.1組合邏輯電路設(shè)計5.1.5數(shù)據(jù)比較器設(shè)計5.1.6三態(tài)門及總線緩沖器設(shè)計⒈三態(tài)門電路圖

5-12三態(tài)門電路

表5-5三態(tài)門真值表數(shù)據(jù)輸入輸出使能數(shù)據(jù)輸出dinendoutX0Z010111重慶電子工程職業(yè)學(xué)院1395.1組合邏輯電路設(shè)計圖5-13三態(tài)門電路的仿真波形重慶電子工程職業(yè)學(xué)院1405.1組合邏輯電路設(shè)計⒉雙向總線緩沖器圖5-14雙向總線緩沖器電路的仿真波形重慶電子工程職業(yè)學(xué)院1415.2時序邏輯電路設(shè)計5.2.1觸發(fā)器設(shè)計⒈D觸發(fā)器圖

5-15D觸發(fā)器電路符號

表5-6D觸發(fā)器的真值表數(shù)據(jù)輸入端時鐘輸入端數(shù)據(jù)輸出端DclkQX0不變X1不變0↑01↑1重慶電子工程職業(yè)學(xué)院1425.2時序邏輯電路設(shè)計⒉異步復(fù)位D鎖存器重慶電子工程職業(yè)學(xué)院1435.2時序邏輯電路設(shè)計⒊異步復(fù)位/置位D鎖存器圖5-17異步

復(fù)位/置位D鎖存器重慶電子工程職業(yè)學(xué)院1445.2時序邏輯電路設(shè)計⒋JK觸發(fā)器表5-7JK觸發(fā)器的真值表輸入端輸出端PRNCLRCLKJKQQB01XXX1010XXX0100XXXXX11↑010111↑11翻轉(zhuǎn)11↑00Q0NOTQ011↑1010110XXQ0NOTQ0圖5-18JK觸發(fā)器重慶電子工程職業(yè)學(xué)院1455.2時序邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院1465.2時序邏輯電路設(shè)計圖5-19JK觸發(fā)器電路的仿真波形重慶電子工程職業(yè)學(xué)院1475.2時序邏輯電路設(shè)計5.2.2鎖存器設(shè)計重慶電子工程職業(yè)學(xué)院1485.2時序邏輯電路設(shè)計5.2.3移位寄存器設(shè)計圖5-208位移位寄存器電路的仿真波形重慶電子工程職業(yè)學(xué)院1495.2時序邏輯電路設(shè)計5.2.4計數(shù)器設(shè)計⒈同步計數(shù)器設(shè)計⑴六十進(jìn)制計數(shù)器重慶電子工程職業(yè)學(xué)院1505.2時序邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院1515.2時序邏輯電路設(shè)計圖5-22六十進(jìn)制計數(shù)器(方法2)電路的仿真波形重慶電子工程職業(yè)學(xué)院1525.2時序邏輯電路設(shè)計⑵可逆計數(shù)器表5-8可逆計數(shù)器真值表輸入端輸出端DIRCPQ2Q1Q0XX0001↑計數(shù)器加1操作0↑計數(shù)器減1操作重慶電子工程職業(yè)學(xué)院1535.2時序邏輯電路設(shè)計⒉異步計數(shù)器設(shè)計圖5-238位異步計數(shù)器原理圖重慶電子工程職業(yè)學(xué)院1545.2時序邏輯電路設(shè)計重慶電子工程職業(yè)學(xué)院1555.3狀態(tài)機(jī)設(shè)計圖5-24狀態(tài)機(jī)的基本結(jié)構(gòu)I/OI/OI/OI/OI/OI/O狀態(tài)A狀態(tài)B狀態(tài)C狀態(tài)D狀態(tài)E狀態(tài)B01狀態(tài)A001/01狀態(tài)A狀態(tài)B圖5-25狀態(tài)轉(zhuǎn)移圖圖5-26摩爾和米立狀態(tài)機(jī)重慶電子工程職業(yè)學(xué)院1565.3狀態(tài)機(jī)設(shè)計表5-9狀態(tài)轉(zhuǎn)移表現(xiàn)態(tài)輸入次態(tài)輸出S0-SnI0-ImS0-SnQ0-QP5.3.1摩爾狀態(tài)機(jī)設(shè)計圖5-27Moore狀態(tài)機(jī)的狀態(tài)圖重慶電子工程職業(yè)學(xué)院1575.3狀態(tài)機(jī)設(shè)計圖5-28Moore狀態(tài)機(jī)的工作時序圖重慶電子工程職業(yè)學(xué)院1585.3狀態(tài)機(jī)設(shè)計5.3.2米里狀態(tài)機(jī)設(shè)計

圖5-29Mealy狀態(tài)機(jī)的狀態(tài)圖圖5-30Mealy的工作時序圖重慶電子工程職業(yè)學(xué)院1595.4存儲器設(shè)計5.4.1只讀存儲器設(shè)計圖5-3116×8的ROM端口示意圖圖5-3216×8的ROM電路的仿真波形重慶電子工程職業(yè)學(xué)院1605.4存儲器設(shè)計5.4.2隨機(jī)存儲器設(shè)計圖5-338×8位的RAM端口示意圖重慶電子工程職業(yè)學(xué)院1615.4存儲器設(shè)計圖5-348×8位的RAM電路的仿真波形重慶電子工程職業(yè)學(xué)院162思考練習(xí)1.用VHDL語言設(shè)計一個8位二進(jìn)制全加器。2.用VHDL語言設(shè)計一個16選1數(shù)據(jù)選擇器。3.用VHDL語言設(shè)計一個9位偶校驗電路。要求當(dāng)輸入數(shù)據(jù)“1”的個數(shù)為偶數(shù)時輸出為“0”,否則輸出為“1”。4.用VHDL語言設(shè)計一個帶三態(tài)輸出的二輸入端“同或”邏輯門。5.已知10線-4線優(yōu)先編碼器功能表如表5-10,試用VHDL語言設(shè)計。6.已知4線-10線譯碼器功能表如表5-11,試用VHDL語言設(shè)計。7.用VHDL語言設(shè)計一個帶異步清零(低電平有效)、上升沿觸發(fā)的JK觸發(fā)器。8.用VHDL語言設(shè)計一個帶異步清零(低電平有效)、同步置位(低電平有效)、下降沿觸發(fā)的D觸發(fā)器。9.移位寄存器電路如圖5-35所示,試用VHDL語言設(shè)計。10.用VHDL語言設(shè)計一個帶異步清零(低電平有效)的同步4位二進(jìn)制加、減計數(shù)器。重慶電子工程職業(yè)學(xué)院163實訓(xùn)項目項目一1位二進(jìn)制全加器⒈實訓(xùn)目的⑴熟悉QUARTUSII的VHDL文本設(shè)計流程全過程;⑵掌握1位二進(jìn)制全加器的設(shè)計、仿真和硬件測試;⑶學(xué)會用VHDL語言設(shè)計一個1位二進(jìn)制全加器。⒉實訓(xùn)原理1位二進(jìn)制全加器能夠完成兩個1位二進(jìn)制數(shù)的加法運算,并且考慮低位來的進(jìn)位。全加器有兩個一位二進(jìn)制的輸入端和一個進(jìn)位輸入端,以及一位和輸出端和一位進(jìn)位輸出端。重慶電子工程職業(yè)學(xué)院164實訓(xùn)項目項目二七段顯示譯碼器⒈實訓(xùn)目的⑴熟悉QUARTUSII的VHDL文本設(shè)計流程全過程;⑵掌握七段顯示譯碼器的設(shè)計、仿真和硬件測試;⑶學(xué)會用VHDL語言設(shè)計一個七段顯示譯碼器。⒉實訓(xùn)原理

通常使用的七段LED為“8”字型,另外,還有一個發(fā)光二極管用來顯示小數(shù)點。在七段LED顯示器中,通常將各段發(fā)光二極管的陰極或陽極連在一起作為公共端,這樣可以使驅(qū)動電路簡單些,其中將各段發(fā)光二極管陽極連在一起的叫共陽極LED顯示器,用低電平驅(qū)動;將各段發(fā)光二極管陰極連在一起的叫共陰極LED顯示器,用高電平驅(qū)動。重慶電子工程職業(yè)學(xué)院165實訓(xùn)項目項目三帶異步清零的D觸發(fā)器⒈實訓(xùn)目的⑴熟悉QUARTUSII的VHDL文本設(shè)計流程全過程;⑵掌握帶異步清零的D觸發(fā)器的設(shè)計、仿真和硬件測試;⑶學(xué)會用VHDL語言設(shè)計一個帶異步清零的D觸發(fā)器。⒉實訓(xùn)原理

帶異步清零的D觸發(fā)器和一般D觸發(fā)器的區(qū)別是多了一個復(fù)位輸入端clr。異步清零指的是當(dāng)clr有效時,不論D和clk輸入怎樣的信號,其q端輸出都被強(qiáng)迫置為“0”。clr又稱清零輸入端或復(fù)位輸入端。重慶電子工程職業(yè)學(xué)院166實訓(xùn)項目項目四同步十進(jìn)制計數(shù)器⒈實訓(xùn)目的⑴熟悉QUARTUSII的VHDL文本設(shè)計流程全過程;⑵掌握同步8421BCD碼十進(jìn)制計數(shù)器的設(shè)計、仿真和硬件測試;⑶學(xué)會用VHDL語言設(shè)計一個同步8421BCD碼十進(jìn)制計數(shù)器。⒉實訓(xùn)原理及設(shè)計要求

十進(jìn)制計數(shù)器的特點是“逢十進(jì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

提交評論