版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
會計學(xué)1EDA技術(shù)與VHDL實用教程一、EDA技術(shù)概念
現(xiàn)代電子設(shè)計技術(shù)的核心就是EDA(電子設(shè)計自動化,ElectronicDesignAutomation)技術(shù)。利用EDA技術(shù),電子設(shè)計師可以方便地實現(xiàn)IC設(shè)計、電子電路設(shè)計和PCB設(shè)計等工作。EDA技術(shù)與VHDL實用教程2第1頁/共348頁3
廣義的EDA技術(shù),除了狹義的EDA技術(shù)外,還包括計算機輔助分析CAA技術(shù)(如PSPICE,EWB,MATLAB等),印刷電路板計算機輔助設(shè)計PCB-CAD技術(shù)(如PROTEL,ORCAD等)。在廣義的EDA技術(shù)中,CAA技術(shù)和PCB-CAD技術(shù)不具備邏輯綜合和邏輯適配的功能,因此它并不能稱為真正意義上的EDA技術(shù)。
EDA技術(shù)與VHDL實用教程第2頁/共348頁4
狹義的EDA技術(shù),就是以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設(shè)計開發(fā)工具的EDA技術(shù)。
本書討論的對象專指狹義的EDA技術(shù)。
EDA技術(shù)與VHDL實用教程第3頁/共348頁EDA技術(shù)的3個層次5(1)EWB、PSpice、protel的學(xué)習(xí)作為EDA的最初級內(nèi)容;(2)利用VHDL完成對CPLD/FPGA的開發(fā)等作為中級內(nèi)容;(3)ASIC的設(shè)計作為最高級內(nèi)容EDA技術(shù)與VHDL實用教程第4頁/共348頁6二、EDA技術(shù)的主要特征EDA技術(shù)主要有以下這些特征:(1)高層綜合與優(yōu)化的理論與方法取得了很大的進(jìn)展,其結(jié)果大大縮短了復(fù)雜的ASIC的設(shè)計周期,同時改進(jìn)了設(shè)計質(zhì)量;(2)采用硬件描述語言來描述10萬門以上的設(shè)計,形成了國際通用的VHDL等硬件描述語言。它們均支持不同層次的描述,使得復(fù)雜IC的描述規(guī)范化,便于傳遞、交流、保存與修改,并可建立獨立的工藝設(shè)計文檔,便于設(shè)計重用;
EDA技術(shù)與VHDL實用教程第5頁/共348頁7(3)開放式的設(shè)計環(huán)境(各廠家均適合);(4)自頂向下的算法;(5)豐富的元器件模塊庫;(6)具有較好的人機對話界面與標(biāo)準(zhǔn)的CAM接口;(7)建立并行設(shè)計工程框架結(jié)構(gòu)的集成化設(shè)計環(huán)境,以適應(yīng)當(dāng)今ASIC的特點:規(guī)模大而復(fù)雜,數(shù)字與模擬電路并存,硬件與軟件并存,產(chǎn)品上市更新快。
EDA技術(shù)與VHDL實用教程第6頁/共348頁8三、EDA技術(shù)發(fā)展歷程EDA技術(shù)的發(fā)展分為三個階段20世紀(jì)70年代——計算機輔助設(shè)計CAD階段20世紀(jì)80年代
——計算機輔助工程設(shè)計階段20世紀(jì)90年代——電子系統(tǒng)設(shè)計自動化階段EDA技術(shù)與VHDL實用教程第7頁/共348頁9四、EDA技術(shù)的主要內(nèi)容(一)硬件描述語言硬件描述語言(HDL)是各種描述方法中最能體現(xiàn)EDA優(yōu)越性的描述方法。所謂硬件描述語言,實際就是一個描述工具,其描述的對象就是待設(shè)計電路系統(tǒng)的邏輯功能、實現(xiàn)該功能的算法、選用的電路結(jié)構(gòu)以及其他各種約束條件等。通常要求HDL既能描述系統(tǒng)的行為,又能描述系統(tǒng)的結(jié)構(gòu)。EDA技術(shù)與VHDL實用教程第8頁/共348頁10目前主要有以下兩種HDL語言:1.Verilog-HDLVerilog-HDL語言是在1983年由GDA(GatewayDesignAutomation)公司首創(chuàng)的,主要用于數(shù)字系統(tǒng)的設(shè)計。2.VHDLVHDL語言是美國國防部于20世紀(jì)80年代后期,出于軍事工業(yè)的需要開發(fā)的。EDA技術(shù)與VHDL實用教程第9頁/共348頁11VHDL語言是一種高級描述語言,適用于電路高級建模,綜合的效率和效果較好。
Verilog-HDL語言是一種低級的描述語言,適用于描述門級電路,容易控制電路資源,但其對系統(tǒng)的描述能力不如VHDL語言。
EDA技術(shù)與VHDL實用教程第10頁/共348頁12(二)可編程邏輯器件可編程邏輯器件(簡稱PLD)是一種由用戶編程來實現(xiàn)某種邏輯功能的新型邏輯器件。它不僅速度快、集成度高,能夠完成用戶定義的邏輯功能,還可以加密和重新定義編程,其允許編程次數(shù)可多達(dá)上萬次。使用可編程邏輯器件可大大簡化硬件系統(tǒng)、降低成本、提高系統(tǒng)的可靠性、靈活性。
EDA技術(shù)與VHDL實用教程第11頁/共348頁13目前,PLD主要分為FPGA(現(xiàn)場可編程門陣列)和CPLD(復(fù)雜可編程邏輯器件)兩大類。FPGA和CPLD最明顯的特點是高集成度、高速度和高可靠性。由于它們的明顯特點,可以應(yīng)用于超高速領(lǐng)域和實時測控方面以及嵌入式領(lǐng)域等等。EDA技術(shù)與VHDL實用教程第12頁/共348頁14(三)EDA軟件目前在國內(nèi)比較流行的EDA軟件工具主要有Altera公司的MAX+plusⅡ和QuartusⅡ、Lattice公司的ExpertLEVER和Synario、Xilinx公司的Foundation和Alliance、Actel公司的ActelDesigner等,這四家公司的EDA開發(fā)軟件特性如表0-1所示。
EDA技術(shù)與VHDL實用教程第13頁/共348頁15表0-1EDA開發(fā)軟件特性
廠商EDA軟件名稱軟件適用器件系列軟件支持的描述方式AlteraMAX+plusⅡMAX、FLEX等邏輯圖、波形圖、AHDL文本、Verilog-HDL文本、VHDL文本等QuartusⅡMAX、FLEX、APEX等XilinxAllianceXilinx各種系列邏輯圖、VHDL文本等FoundationXC系列LatticeSynarioMACHGAL、ispLSI、pLSI等邏輯圖、ABEL文本、VHDL文本等ExpertLEVERIspLSI、pLSI、MACH等邏輯圖、VHDL文本等ActelActelDesignerSX系列、MX系列邏輯圖、VHDL文本等EDA技術(shù)與VHDL實用教程第14頁/共348頁16EDA與傳統(tǒng)電子設(shè)計方法的比較手工設(shè)計方法的缺點是:
1)復(fù)雜電路的設(shè)計、調(diào)試十分困難。
2)如果某一過程存在錯誤,查找和修改十分不便。
3)設(shè)計過程中產(chǎn)生大量文檔,不易管理。
4)對于集成電路設(shè)計而言,設(shè)計實現(xiàn)過程與具體生產(chǎn)工藝直接相關(guān),因此可移植性差。
5)只有在設(shè)計出樣機或生產(chǎn)出芯片后才能進(jìn)行實測。EDA技術(shù)有很大不同:
1)采用硬件描述語言作為設(shè)計輸入。
2)庫(Library)的引入。
3)設(shè)計文檔的管理。
4)強大的系統(tǒng)建模、電路仿真功能。
5)具有自主知識產(chǎn)權(quán)。
6)開發(fā)技術(shù)的標(biāo)準(zhǔn)化、規(guī)范化以及IP核的可利用性。
7)適用于高效率大規(guī)模系統(tǒng)設(shè)計的自頂向下設(shè)計方案。
8)全方位地利用計算機自動設(shè)計、仿真和測試技術(shù)。
9)對設(shè)計者的硬件知識和硬件經(jīng)驗要求低。10)高速性能好。11)純硬件系統(tǒng)的高可靠性。EDA技術(shù)與VHDL實用教程第15頁/共348頁17EDA與傳統(tǒng)電子設(shè)計方法的比較FPGA和DSP芯片實現(xiàn)FIR濾波器的速度對比8位FIR濾波器階數(shù)FPGA的處理速度單位:MSPS達(dá)到相當(dāng)速度所需DSP芯片的指令執(zhí)行速度單位:MIPS8 16 24 32104
101
103
105832
1616
2472
3360EDA技術(shù)與VHDL實用教程第16頁/共348頁18EDA實驗的3個層次1、邏輯行為的實現(xiàn)
2、控制與信號傳輸功能的實現(xiàn)3、算法的實現(xiàn)如:譯碼器、紅綠交通燈控制、表決器、顯示掃描器、電梯控制、乒乓球等電路的設(shè)計,時鐘頻率一般低于4MHz
如:各類信號發(fā)生器、A/D采樣控制器、FIFO、RS232或PS/2通信、FPGA/CPLD與單片機綜合控制等電路的設(shè)計,時鐘頻率一般在25MHz左右
如:離散FFT變換、數(shù)字濾波器、浮點乘法器、高速寬位加法器、數(shù)字振蕩器、數(shù)字鎖相環(huán)、調(diào)制解調(diào)器、圖象DSP等電路的設(shè)計,時鐘頻率一般在50MHz以上
EDA技術(shù)與VHDL實用教程第17頁/共348頁19五、EDA技術(shù)的應(yīng)用展望
電子EDA技術(shù)發(fā)展迅猛,逐漸在教學(xué)、科研、產(chǎn)品設(shè)計與制造等各方面都發(fā)揮著巨大的作用。
1.EDA技術(shù)將廣泛應(yīng)用與高校電類專業(yè)的實踐教學(xué)工作中
2.EDA技術(shù)將廣泛應(yīng)用于科研工作和新產(chǎn)品的開發(fā)中
3.EDA技術(shù)將廣泛應(yīng)用于專用集成電路的開發(fā)
4.EDA技術(shù)將廣泛應(yīng)用于傳統(tǒng)機電設(shè)備的升級換代和技術(shù)改造EDA技術(shù)與VHDL實用教程第18頁/共348頁第1章EDA技術(shù)概述<<EDA技術(shù)與VHDL實用教程>>20第19頁/共348頁EDA技術(shù)與VHDL實用教程要求熟悉面向FPGA/CPLD的EDA技術(shù)初步理論知識知識點理解可編程邏輯器件掌握面向FPGA/CPLD的EDA設(shè)計流程掌握面向FPGA/CPLD的常用EDA工具理解硬件描述語言重點和難點
EDA設(shè)計流程
QuartusⅡ軟件包硬件描述語言VHDL語言
21第20頁/共348頁EDA技術(shù)與VHDL實用教程22第1章EDA技術(shù)概述可編程邏輯器件1.1EDA技術(shù)的主要特征1.2EDA技術(shù)發(fā)展歷程1.3EDA技術(shù)的主要內(nèi)容1.4第21頁/共348頁EDA技術(shù)與VHDL實用教程231.1可編程邏輯器件一、可編程邏輯器件概述(一)PLD/FPGA介紹CPLD:復(fù)雜可編程邏輯器件ComplexProgrammableLogicDeviceFPGA:現(xiàn)場可編程門陣列FieldProgrammableGateArray第22頁/共348頁PLD能做什么?
PLD能完成任何數(shù)字器件的功能,上至高性能的CPU,下至簡單的74系列電路,都可以用PLD來實現(xiàn).
PLD如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法或是硬件描述語言,自由的設(shè)計一個數(shù)字系統(tǒng)。如何使用PLD?數(shù)字電路基礎(chǔ),會使用計算機,有一定編程基礎(chǔ)。24第23頁/共348頁二、PLD分類25第24頁/共348頁EDA技術(shù)與VHDL實用教程26三、PLD/FPGA的結(jié)構(gòu)和原理(一)基于乘積項(Product-Term)的PLD結(jié)構(gòu)(二)乘積項結(jié)構(gòu)PLD的邏輯實現(xiàn)原理(三)查找表(Look-Up-Table)的原理與結(jié)構(gòu)(四)查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理第25頁/共348頁27例:用PROM完成半加器邏輯陣列第26頁/共348頁28CPLD的結(jié)構(gòu)與可編程原理
第27頁/共348頁29FPGA的結(jié)構(gòu)與工作原理
查找表邏輯結(jié)構(gòu)第28頁/共348頁EDA技術(shù)與VHDL實用教程30FPGA:SRAM工藝;直接燒寫程序掉電后程序丟失;理論上擦寫100萬次以上;一般使用需要外掛EEPROM,可以達(dá)到幾百萬門電路。比如ALTERA公司的APEX、FLEX、ACEX、STRATIX、CYCLONE系列。CPLD:EPPROM或FLASH工藝;直接燒寫程序掉電后程序不會消失;一般可以擦寫幾百次,并且一般宏單元在512以下。(比如ALTERA的AX3000/5000/7000/9000和CLASSIC系列)。四、選擇PLD還是FPGA第29頁/共348頁EDA技術(shù)與VHDL實用教程31PLD適合用于設(shè)計譯碼等復(fù)雜組合邏輯。
PLD分解組合邏輯的功能很強。而FPGA的一個LUT只能處理4輸入的組合邏輯。如果設(shè)計中使用到大量觸發(fā)器,那么使用FPGA就是一個很好選擇。
FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是幾千上萬,PLD一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本大大低于PLD。第30頁/共348頁EDA技術(shù)與VHDL實用教程321.2面向FPGA/CPLD的EDA設(shè)計流程
第31頁/共348頁EDA技術(shù)與VHDL實用教程331.源程序的編輯和編譯常用的源程序輸入方式有三種:(1)原理圖輸入方式:(2)狀態(tài)圖輸入方式:(3)VHDL軟件程序的文本方式:第32頁/共348頁EDA技術(shù)與VHDL實用教程34利用EDA工具提供的圖形編輯器以原理圖的方式進(jìn)行輸入。原理圖輸入方式比較容易掌握,直觀且方便。(1)原理圖輸入方式:第33頁/共348頁EDA技術(shù)與VHDL實用教程35(2)狀態(tài)圖輸入方式:以圖形的方式表示狀態(tài)圖進(jìn)行輸入。當(dāng)填好時鐘信號名、狀態(tài)轉(zhuǎn)換條件、狀態(tài)機類型等要素后,就可以自動生成VHDL程序。這種設(shè)計方式簡化了狀態(tài)機的設(shè)計,比較流行。(3)VHDL軟件程序的文本方式:最一般化、最具普遍性的輸入方法,任何支持VHDL的EDA工具都支持文本方式的編輯和編譯。第34頁/共348頁2.邏輯綜合和優(yōu)化邏輯綜合,就是將電路的高級語言描述轉(zhuǎn)換成低級的,可與FPGA/CPLD或構(gòu)成ASIC的門陣列基本結(jié)構(gòu)相映射的網(wǎng)表文件。邏輯映射的過程,就是將電路的高級描述,針對給定硬件結(jié)構(gòu)組件,進(jìn)行編譯,優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級電路甚至更底層的電路描述文件。而網(wǎng)表文件就是按照某種規(guī)定描述電路的基本組成及如何相互連接的關(guān)系的文件。36第35頁/共348頁3.目標(biāo)器件的布線/適配所謂邏輯適配,就是將由綜合器產(chǎn)生的網(wǎng)表文件針對某一具體的目標(biāo)器件進(jìn)行邏輯映射操作。其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線與操作等,配置于指定的目標(biāo)器件中,產(chǎn)生最終的下載文件,如JEDEC格式的文件。37第36頁/共348頁4.目標(biāo)器件的編程/下載如果編譯、綜合、布線/適配和行為仿真、功能仿真、時序仿真等過程都沒有發(fā)現(xiàn)問題,即滿足原設(shè)計的要求,則可以將由FPGA/CPLD布線/適配器產(chǎn)生的配置/下載文件通過編程器或下載電纜載入目標(biāo)芯片F(xiàn)PGA或CPLD中。38第37頁/共348頁5.設(shè)計過程中的有關(guān)仿真設(shè)計過程中的仿真有三種,它們是:行為仿真:該仿真只是根據(jù)VHDL的語義進(jìn)行的,與具體電路沒有關(guān)系。功能仿真:就是將綜合后的VHDL網(wǎng)表文件再送到VHDL仿真器所進(jìn)行的仿真。時序仿真:該仿真已將器件特性考慮進(jìn)去,因此可以得到精確的時序仿真結(jié)果。39第38頁/共348頁6.硬件仿真/硬件測試所謂硬件仿真,就是在ASIC設(shè)計中,常利用FPGA對系統(tǒng)的設(shè)計進(jìn)行功能檢測,通過后再將其VHDL設(shè)計以ASIC形式實現(xiàn),這一過程稱為硬件仿真。所謂硬件測試,就是針對FPGA或CPLD直接用于應(yīng)用系統(tǒng)的設(shè)計中,將下載文件下載到FPGA后,對系統(tǒng)的設(shè)計進(jìn)行的功能檢測,這一過程稱為硬件測試。注意:VHDL仿真器和VHDL綜合器對設(shè)計的理解常常是不一致的,固需要硬件仿真和測試。40第39頁/共348頁二、分析方法基于EDA技術(shù)的設(shè)計方法則是自頂向下進(jìn)行設(shè)計的。即首先采用可完全獨立于目標(biāo)器件芯片物理結(jié)構(gòu)的硬件描述語言,在系統(tǒng)的基本功能或行為級上對設(shè)計的產(chǎn)品進(jìn)行描述和定義,結(jié)合多層次的仿真技術(shù),確保設(shè)計的可行性與正確性的前提下,完成功能確認(rèn)。然后利用EDA工具的邏輯綜合功能,把功能描述轉(zhuǎn)換成某一具體目標(biāo)芯片的網(wǎng)表文件,輸出給該器件廠商的布局布線適配器,進(jìn)行邏輯映射及布局布線,再利用產(chǎn)生的仿真文件進(jìn)行包括功能和時序的驗證,以確保實際系統(tǒng)的性能。41第40頁/共348頁EDA技術(shù)與VHDL實用教程42采用自頂向下的設(shè)計方法有如下優(yōu)點:(1)自頂向下設(shè)計方法是一種模塊化設(shè)計方法。符合常規(guī)的邏輯思維習(xí)慣;
(2)高層設(shè)計同器件無關(guān),可以完全獨立于目標(biāo)器件的結(jié)構(gòu)。
(3)采用硬件描述語言,設(shè)計易于在各種集成電路工藝或可編程器件之間移植。
(4)適合多個設(shè)計者同時進(jìn)行設(shè)計。第41頁/共348頁三、表示方法1、文本表示方式(VHDL)2、圖形表示方式(原理圖,狀態(tài)圖、波形圖)3、文本、圖形混用方式43第42頁/共348頁EDA技術(shù)與VHDL實用教程44四、實現(xiàn)方法1.硬件描述語言編程實現(xiàn)法2.原理圖設(shè)計實現(xiàn)法3.參數(shù)可設(shè)置兆功能塊實現(xiàn)法4.軟的或硬的IP核實現(xiàn)法第43頁/共348頁EDA技術(shù)與VHDL實用教程451.3面向FPGA/CPLD的常用EDA工具
目前世界上有十幾家生產(chǎn)CPLD/FPGA的公司,最大的三家是:Altera,Xilinx和Lattice,其中Altera和Xilinx兩家公司共占有60%以上的市場份額。通常來說,在歐洲用XILINX的人多,在日本和亞太地區(qū)用ALTERA的人多,在美國則是平分秋色??梢灾vAltera和Xilinx共同決定了PLD技術(shù)的發(fā)展方向。對于FPGA/CPLD開發(fā)軟件,國內(nèi)很多人喜歡用Altera公司MaxPlusII、QuartusII,考慮到QuartusII是MaxPlusII的升級產(chǎn)品,所以本書的FPGA/CPLD的常用EDA工具主要介紹QuartusII。第44頁/共348頁EDA技術(shù)與VHDL實用教程46AlteraEDA軟件工具QuartusII簡介設(shè)計流程圖第45頁/共348頁EDA技術(shù)與VHDL實用教程47設(shè)計輸入文件類型第46頁/共348頁EDA技術(shù)與VHDL實用教程481.4硬件描述語言一、硬件描述語言常用硬件描述語言有VHDL、Verilog和ABEL語言。下面從使用方面將三者進(jìn)行對比。1.邏輯描述層次2.設(shè)計要求3.綜合過程4.對綜合器的要求5.支持的EDA工具6.國際化程度第47頁/共348頁EDA技術(shù)與VHDL實用教程49本章小結(jié)EDA技術(shù)概述可編程邏輯器件面向FPGA/CPLD的EDA設(shè)計流程面向FPGA/CPLD的常用EDA工具硬件描述語言第48頁/共348頁第2章QuartusII原理圖輸入
設(shè)計法入門<<EDA技術(shù)與VHDL實用教程>>50第49頁/共348頁EDA技術(shù)與VHDL實用教程作者:蘇莉萍陳東廖超平要求掌握QuartusII原理圖輸入法和QuartusII器件編程知識點理解QuartusII原理圖輸入法理解QuartusII器件編程重點和難點QuartusII原理圖輸入法
51第50頁/共348頁EDA技術(shù)與VHDL實用教程作者:蘇莉萍陳東廖超平第2章QuartusII原理圖輸入
設(shè)計法入門QuartusII原理圖輸入法
2.1QuartusII器件編程2.2第51頁/共348頁EDA技術(shù)與VHDL實用教程2.1QuartusII原理圖輸入法
應(yīng)用數(shù)字邏輯電路的基本知識,使用QuartusII原理圖輸入法可非常方便地進(jìn)行數(shù)字系統(tǒng)的設(shè)計。應(yīng)用QuartusII原理圖輸入法,還可以把原有的使用中小規(guī)模的通用數(shù)字集成電路設(shè)計的數(shù)字系統(tǒng)移埴到FPGA或CPLD中。下面以一個一位數(shù)值比較器的設(shè)計為例說明QuartusII原理圖輸入法的使用方法。
第52頁/共348頁EDA技術(shù)與VHDL實用教程一、建立工程文件夾1.新建一個文件夾作為工程項目目錄首先在計算機中建立一個文件夾作為工程項目目錄,此工程目錄不能是根目錄,比如D:,只能是根目錄下的目錄,比如D:\EDA_book\code\Chapter2\BiJiaoQi
第53頁/共348頁EDA技術(shù)與VHDL實用教程2.建立工程項目運行QuatrusII軟件,執(zhí)行File=>NewProjectWizad命令,建立工程。如下圖示。第54頁/共348頁EDA技術(shù)與VHDL實用教程在圖2-2界面中點擊Next按扭。
第55頁/共348頁EDA技術(shù)與VHDL實用教程在所彈出的NewProjectWizard對話框中,填寫Diectory,Name,Top-LevelEntity等項目。其中第一、第二、第三個文本框分別是工程項目目錄、項目名稱和項目頂層設(shè)計實體的名稱。
第56頁/共348頁EDA技術(shù)與VHDL實用教程按Next按鈕,出現(xiàn)添加工程文件的對話框如圖
第57頁/共348頁EDA技術(shù)與VHDL實用教程若原來已有文件,可選擇,這里直接按Next進(jìn)行下一步,選擇FPGA器件的型號如圖示。
第58頁/共348頁EDA技術(shù)與VHDL實用教程在Family下拉框中,根據(jù)需要選擇一種型號的FPGA;然后在“Availabledevices:”中根據(jù)需要的FPGA型號選擇FPGA型號,注意在Filters一欄中選中“ShowAdvancedDevices”以顯示所有的器件型號。再點擊Next按鈕,出現(xiàn)下面的對話框。
第59頁/共348頁EDA技術(shù)與VHDL實用教程這是選擇其它EDA工具的對話框,我們使用QuatrusII的集成環(huán)境進(jìn)行開發(fā),因此不作任何改動。按Next進(jìn)入工程的信息總概對話框如下圖。按Finish按鈕就建立了一個空的工程項目。第60頁/共348頁EDA技術(shù)與VHDL實用教程1.建立原理圖文件執(zhí)行File=>New命令,彈出新建文件對話框如圖。二、編輯設(shè)計圖形文件
第61頁/共348頁EDA技術(shù)與VHDL實用教程執(zhí)行File=>Saveas命令,把它另存為文件名是BiJiaoQi的原理圖文件,文件后綴為.bdf。將“Addfiletocurrentproject”選項選中,使該文件添加到剛建立的工程中去。如圖下示。
第62頁/共348頁EDA技術(shù)與VHDL實用教程2.編輯輸入原理圖文件(1)元件的選擇與放置(2)連接各個元件符號(3)設(shè)定各輸入輸出管腳名第63頁/共348頁EDA技術(shù)與VHDL實用教程第64頁/共348頁EDA技術(shù)與VHDL實用教程完成原理圖編輯輸入后,保存設(shè)計圖形文件,就可編譯設(shè)計圖形文件。執(zhí)行Processing=>StartCompilation,進(jìn)行編譯。編譯結(jié)束后,會出現(xiàn)如下頁圖對話框,對話框會顯示編譯的錯誤和警告的情況。若有錯誤,則可先雙擊編譯器界面下方出現(xiàn)的第一個錯誤提示,可使第一個錯誤處改變顏色。檢查糾正第一個錯誤后保存再編譯,如果還有錯誤,重復(fù)以上操作,直至最后通過。最后通過時應(yīng)沒有錯誤提示但可有警告提示。三、編譯設(shè)計圖形文件第65頁/共348頁EDA技術(shù)與VHDL實用教程可以通過查看編譯報告了解有關(guān)情況,比如定時分析情況,下圖是編譯報告中關(guān)于每個輸出信號對輸入信號的延遲時間的報告。
第66頁/共348頁EDA技術(shù)與VHDL實用教程(1)新建用于仿真的波形文件(2)添加需要的輸入輸出引腳(3)設(shè)置仿真時間(4)設(shè)置柵格的大小(5)設(shè)置輸入信號的波形(6)保存文件,保存名為默認(rèn)名(7)進(jìn)行功能仿真四、時序仿真設(shè)計文件
第67頁/共348頁EDA技術(shù)與VHDL實用教程執(zhí)行File=>Great/Update=>GreatSymbolFilesforCurrentFile命令,將本設(shè)計電路封裝生成一個元件符號,供以后在原理圖編輯器下進(jìn)行層次設(shè)計時調(diào)用。
五、生成元件符號
第68頁/共348頁EDA技術(shù)與VHDL實用教程使用QuartusII軟件成功編譯工程之后,就可以對Altera器件進(jìn)行編程或配置,進(jìn)而進(jìn)行硬件測試。QuartusIICompiler的Assembler模塊生成POF和SOF編程文件,QuartusIIProgrammer可以用編程文件與Altera編程硬件一起對器件進(jìn)行編程或配置。還可以使用QuartusIIProgrammer的獨立版本對器件進(jìn)行編程和配置。
2.2QuartusII器件編程
第69頁/共348頁EDA技術(shù)與VHDL實用教程一、編程硬件與編程模式所使用的Altera編程硬件可以是MasterBlaster、ByteBlasterMV、ByteBlasterII或USB-Blaster下載電纜或Altera編程單元(APU)。國內(nèi)許多開發(fā)板和實驗箱使用ByteBlasterMV或ByteBlasterII下載電纜。具體情況請查看所使用的開發(fā)板和實驗箱的有關(guān)所明。
第70頁/共348頁EDA技術(shù)與VHDL實用教程Programmer具有四種編程模式:被動串行模式(PSMode)、JTAG模式、主動串行編程模式(ASMode)和插座內(nèi)編程模式(In-Socket)。被動串行和JTAG編程模式使用Altera編程硬件對單個或多個器件進(jìn)行編程。主動串行編程模式使用Altera編程硬件對單個EPCS1或EPCS4串行配置器件進(jìn)行編程。插座內(nèi)編程模式使用Altera編程硬件對單個CPLD或配置器件進(jìn)行編程。
第71頁/共348頁EDA技術(shù)與VHDL實用教程
二、器件設(shè)置和引腳的鎖定1.器件的選擇2.選擇配置器件的工作方式(可不做)3.選擇配置器件(使用EPCS器件的主動串行編程模式時)4.選擇閑置引腳的狀態(tài)(可不做)5.引腳的鎖定第72頁/共348頁EDA技術(shù)與VHDL實用教程三、編程下載設(shè)計文件1.JTAG模式編程下載(1)硬件連接;(2)打開編程窗口、選擇編程模式和配置文件;(3)設(shè)置編程器(若是初次安裝時);(4)配置下載。第73頁/共348頁EDA技術(shù)與VHDL實用教程2.主動串行編程模式(ASMode)(1)硬件連接(2)打開編程窗口(3)選擇編程模式和配置文件(4)設(shè)置編程器(若是初次安裝時)(5)編程下載第74頁/共348頁EDA技術(shù)與VHDL實用教程四、設(shè)計電路硬件調(diào)試下載成功后即可進(jìn)行設(shè)計電路硬件調(diào)試。具體方法應(yīng)考慮所設(shè)計電路功能和開發(fā)板或?qū)嶒炏涞木唧w情況,這里不做詳細(xì)介紹。第75頁/共348頁EDA技術(shù)與VHDL實用教程本章小結(jié)QuartusII原理圖輸入設(shè)計法入門器件編程原理圖輸入法建立工程文件夾編輯設(shè)計圖形文件編譯設(shè)計圖形文件時序仿真設(shè)計文件生成元件符號編程硬件與編程模式器件設(shè)置和引腳的鎖定編程下載設(shè)計文件設(shè)計電路硬件調(diào)試第76頁/共348頁EDA技術(shù)與VHDL實用教程要求進(jìn)一步掌握QuartusII原理圖輸入法。
知識點原理圖輸入法中Max+plusII老式宏函數(shù)的應(yīng)用原理圖輸入法中LPM函數(shù)的應(yīng)用原理圖輸入法中的層次化設(shè)計
重點和難點
Max+plusII老式宏函數(shù)在原理圖輸入法中的應(yīng)用原理圖輸入法中的層次化設(shè)計第77頁/共348頁EDA技術(shù)與VHDL實用教程第3章QuartusII原理圖輸入法深入原理圖輸入法中Max+plusII老式宏函數(shù)的應(yīng)用
3.1原理圖輸入法中LPM函數(shù)的應(yīng)用
3.2原理圖輸入法中的層次化設(shè)計3.3第78頁/共348頁EDA技術(shù)與VHDL實用教程3.1原理圖輸入法中Max+plusII老式宏函數(shù)的應(yīng)用
在QuartusII原理圖輸入法中,可供使用的元件庫除了基本邏輯元件庫以外,還有Max+plusII庫和LPM函數(shù)元件庫。
第79頁/共348頁
要將設(shè)計文件保存至工程文件夾,并設(shè)置成currentfile,否則,編譯不成功;
Compiler出錯的原因:連線不實、不在工程文件夾下等;建立波形文件的方法;仿真之前,應(yīng)先設(shè)置endtime;以便有足夠長的仿真時間;仿真變量的設(shè)置:只給輸入變量加入,輸出是結(jié)果,是用來驗證電路正確與否的,故輸出不能設(shè)值;最好在全局范圍內(nèi)設(shè)值,否則,保存的波形不好看.原理圖輸入法常見錯誤第80頁/共348頁EDA技術(shù)與VHDL實用教程例3.1用74151設(shè)計一個三人表決電路。三人表決電路的真值表如下:
abcy00000010010001111000101111011111第81頁/共348頁EDA技術(shù)與VHDL實用教程其最小項表達(dá)式是:根據(jù)y的最小項表達(dá)式,就可知道使用74151設(shè)計的三人表決電路的原理圖。
第82頁/共348頁EDA技術(shù)與VHDL實用教程同時,波形仿真結(jié)果如下:第83頁/共348頁EDA技術(shù)與VHDL實用教程例3.2用兩塊74161設(shè)計一個五十進(jìn)制的計數(shù)器。
74161是4位二進(jìn)制加法計數(shù)器,將兩塊74161可得八位二進(jìn)制加法計數(shù)器。其模是256。如果計數(shù)器從開始0計數(shù),要構(gòu)成五十進(jìn)制的計數(shù)器,當(dāng)計數(shù)器的值計到十進(jìn)制數(shù)49即二進(jìn)制數(shù)00110001時,要讓兩塊74161的同步置數(shù)端有效,使兩塊74161同時置零。根據(jù)此要求設(shè)計電路如下圖。第84頁/共348頁EDA技術(shù)與VHDL實用教程第85頁/共348頁EDA技術(shù)與VHDL實用教程其仿真波形如圖:第86頁/共348頁EDA技術(shù)與VHDL實用教程在原理圖輸入法中,有三種元件之間的連線:
節(jié)點(node)總線(bus)一般的不是節(jié)點和總線的連線。第87頁/共348頁EDA技術(shù)與VHDL實用教程
隨著設(shè)計的數(shù)字系統(tǒng)越來越復(fù)雜,系統(tǒng)中每個模塊都要從頭開始設(shè)計是非常困難的。IP(IntellectualProperty)即知識產(chǎn)權(quán)的出現(xiàn)使得設(shè)計過程變得簡單得多。IP核是指將一些在數(shù)字電路中常用但比較復(fù)雜的功能塊,設(shè)計成參數(shù)可修改的模塊,讓其他用戶可以直接調(diào)用這些模塊。用戶可以在自己的FPGA設(shè)計中使用這些嚴(yán)格測試和優(yōu)化過的模塊,減少設(shè)計和調(diào)試時間,降低開發(fā)成本,提高開發(fā)效率。3.2原理圖輸入法中LPM函數(shù)的應(yīng)用
第88頁/共348頁EDA技術(shù)與VHDL實用教程IP包括基本宏功能(Megafuncition/PLM)和(MegaCore)兩種,在Altera的開發(fā)工具QuatrusII中,有一些內(nèi)帶的基本宏功能(Megafuncition/PLM)可供用戶使用,本節(jié)主要介紹這些QuatrusII內(nèi)帶的基本宏功能?;竞旯δ芸稍谠韴D設(shè)計輸入法中使用,也可在HDL設(shè)計輸入法中使用,本節(jié)介紹的是基本宏功能在原理圖設(shè)計輸入法中使用,后者在第五章再做介紹。
第89頁/共348頁EDA技術(shù)與VHDL實用教程I/O組件包括時鐘數(shù)據(jù)恢復(fù)、鎖相環(huán)、雙數(shù)據(jù)速率、千兆位收發(fā)器塊LVDS收發(fā)器、PLL重新配置和遠(yuǎn)程更新宏功能模塊altcdr_rxaltdqsaltcdr_txaltgxbaltclkctrlaltlvds_rxaltclklockaltlvds_txaltddio_bidiraltpllaltddio_inaltpll_reconfigaltddio_outaltremote_updatealtdqaltufm_oscSignalTapII邏輯分析組件SignalTapIILogicAnalyzerMegafunctionsld_signaltap存儲組件存儲器、移位寄存器宏模塊和LPM存儲器函數(shù)alt3pramscfifoaltcamlpm_ffaltdpramlpm_fifoaltqpramlpm_fifo_dcaltshift_tapslpm_latchaltsyncramlpm_ram_dpaltufm_i2clpm_ram_dqaltufm_nonelpm_ram_iolpm_romaltufm_spilpm_shiftregcsdpramlpm_dffcsfifolpm_tffdcfifoaltufm_parallel第90頁/共348頁EDA技術(shù)與VHDL實用教程例3.4lpm_mult宏函數(shù)應(yīng)用二、基本宏功能應(yīng)用實例第91頁/共348頁EDA技術(shù)與VHDL實用教程通過編譯仿真,其仿真波形如圖
:第92頁/共348頁EDA技術(shù)與VHDL實用教程例3.5lpm_counter宏函數(shù)應(yīng)用第93頁/共348頁EDA技術(shù)與VHDL實用教程波形仿真結(jié)果:第94頁/共348頁EDA技術(shù)與VHDL實用教程例3.6lpm_bustri宏函數(shù)應(yīng)用
第95頁/共348頁EDA技術(shù)與VHDL實用教程通過編譯仿真,其仿真波形如下圖。第96頁/共348頁EDA技術(shù)與VHDL實用教程例3.7lpm_fifo宏函數(shù)應(yīng)用第97頁/共348頁EDA技術(shù)與VHDL實用教程通過編譯仿真,其仿真波形如圖:第98頁/共348頁EDA技術(shù)與VHDL實用教程層次化設(shè)計也稱“自頂向下”設(shè)計方法,即將一個大的設(shè)計項目分解為若干子項目或若干層次來完成。劃分是從頂層由高往下,而設(shè)計則可先設(shè)計底層的電路,然后在高層次的設(shè)計中,逐級調(diào)用低層次的設(shè)計結(jié)果。原理圖輸入法可很方便地進(jìn)行層次化設(shè)計。一般層次化設(shè)計法用于較大的項目,但由于篇幅的原因,下面用一個不是很大的項目來說明層次化設(shè)計法。
3.3原理圖輸入法中的層次化設(shè)計
第99頁/共348頁EDA技術(shù)與VHDL實用教程例3.8用層次化設(shè)計設(shè)計一個兩位二進(jìn)制數(shù)乘法器。1.系統(tǒng)分析兩位二進(jìn)制數(shù)相乘,最多可得四位二進(jìn)制數(shù),系統(tǒng)可分解為兩個半加器和幾個與門聯(lián)結(jié)而成。2.底層電路半加器設(shè)計第100頁/共348頁EDA技術(shù)與VHDL實用教程半加器電路真值表absc0000011010101101
由半加器的真值表可得,半加器的邏輯表達(dá)式如下:
s=aXORbc=aANDb第101頁/共348頁EDA技術(shù)與VHDL實用教程根據(jù)半加器的邏輯表達(dá)式,可按下圖設(shè)計hadd.bdf文件。把hadd.bdf文件存放到文件夾hadd內(nèi),并以此文件建立工程,編譯通過,執(zhí)行File=>Greate/Update=>GreateSymbolFilesforCurrentFile命令,生成符號hadd.bsf。
第102頁/共348頁EDA技術(shù)與VHDL實用教程3.頂層電路兩位二進(jìn)制數(shù)乘法器設(shè)計根據(jù)系統(tǒng)分析所得結(jié)論,可按后頁圖設(shè)計兩位二進(jìn)制數(shù)乘法器電路。新建一個工程文件夾mult2,把hadd.bdf、hadd.bsf文件放入其中,新建一個原理圖文件,使用插入符號命令,出現(xiàn)選擇符號的界面,選擇hadd.bsf將它放置于原理圖編輯區(qū)中,以mult2.bdf命名并保存到mult2文件夾中。以此文件新建工程。調(diào)出有關(guān)其他元件并按下圖連線,保存、編譯并通過仿真。
第103頁/共348頁EDA技術(shù)與VHDL實用教程第104頁/共348頁EDA技術(shù)與VHDL實用教程通過編譯仿真,其仿真波形如圖:本例的底層電路符號用原理圖設(shè)計輸入法設(shè)計后生成,還可以用以后介紹的文本設(shè)計輸入法設(shè)計后生成,這樣的設(shè)計方法稱混合設(shè)計輸入法。第105頁/共348頁EDA技術(shù)與VHDL實用教程本章小結(jié)QuartusII原理圖輸入法深入原理圖輸入法中Max+plusII老式宏函數(shù)的應(yīng)用原理圖輸入法中LPM函數(shù)的應(yīng)用原理圖輸入法中的層次化設(shè)計第106頁/共348頁第4章VHDL設(shè)計入門<<EDA技術(shù)與VHDL實用教程>>108第107頁/共348頁EDA技術(shù)與VHDL實用教程要求掌握VHDL語言的基本知識和運用VHDL語言分析、設(shè)計邏輯電路的基本方法。知識點理解QuartusII的HDL輸入法理解VHDL程序的基本結(jié)構(gòu)理解VHDL程序的順序結(jié)構(gòu)理解VHDL程序的并行結(jié)構(gòu)理解VHDL程序的語言要素
重點和難點QuartusII的HDL輸入法VHDL程序的順序結(jié)構(gòu)VHDL程序的并行結(jié)構(gòu)109第108頁/共348頁EDA技術(shù)與VHDL實用教程第4章VHDL設(shè)計入門QuartusII的HDL輸入法
4.1VHDL程序的順序結(jié)構(gòu)4.3VHDL程序的并行結(jié)構(gòu)4.4VHDL程序的語言要素4.5VHDL程序的基本結(jié)構(gòu)4.2110第109頁/共348頁EDA技術(shù)與VHDL實用教程4.1QuartusII的HDL輸入法HDL輸入法是QuartusII的常用輸入法,有AHDL、VHDL和VerilogHDL三種語言,本書主要介紹VHDL語言.111第110頁/共348頁EDA技術(shù)與VHDL實用教程一、輸入編輯VHDL文件(實際操作)1.建立工程項目
2.
建立VHDL文件
3.編輯VHDL文件二、編譯仿真VHDL文件1.編譯VHDL文件
2.仿真VHDL文件112第111頁/共348頁EDA技術(shù)與VHDL實用教程一個完整的VHDL語言程序通常包含:庫(Library)程序包(Package)聲明;實體(Entity)聲明;構(gòu)造體(Architecture);配置(Configuration)。
4.2VHDL程序的基本結(jié)構(gòu)
113第112頁/共348頁EDA技術(shù)與VHDL實用教程一、庫、程序包
1.庫與程序包的概念程序包(package)是預(yù)先定義或設(shè)計好的數(shù)據(jù)類型、子程序和各種設(shè)計實體的集合;庫(Library)則是用來存儲已經(jīng)完成的程序包等VHDL設(shè)計與數(shù)據(jù)的倉庫。庫和程序包的引用聲明放在設(shè)計文件的最前面。
114第113頁/共348頁EDA技術(shù)與VHDL實用教程
2.常見的庫:(1)IEEE庫:
IEEE庫是最常用的庫,它包含:STD_LOGIC_1164
、STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED等程序包,這些程序包包含有IEEE的標(biāo)準(zhǔn)和其他一些工業(yè)標(biāo)準(zhǔn)。其中STD_LOGIC_1164程序包最為常用,它是許多其他程序包的基礎(chǔ)。(2)STD庫:是符合VHDL語言標(biāo)準(zhǔn)的庫,使用時不需顯式聲明,它包含STANDARD、TEXTIO等程序包。
115第114頁/共348頁EDA技術(shù)與VHDL實用教程(3)ASIC矢量庫:各公司提供的ASIC邏輯門庫。(4)WORK庫:為現(xiàn)行作業(yè)庫,存放設(shè)計者的VHDL語言程序,是用戶自己的庫。使用時不需顯式聲明,但必需在根目錄下建立一個文件夾作為用戶項目目錄,這目錄將被綜合器默認(rèn)為WORK庫,但WORK庫并不以這個文件夾的名字為名字,它的名字是WORK。(5)用戶自定義庫:
用戶自己定義的庫。116第115頁/共348頁3、程序包的定義(了解)
PACKAGE
程序包名
IS
程序包首說明語句;
END[PACKAGE]
程序包名;
PACKAGEBODY
程序包名IS
程序包體說明語句;
END[PACKAGEBODY]
包集合名;
[重點提示]程序包體為可選項,程序包首與程序包體名字應(yīng)相同;117第116頁/共348頁4、庫與程序包的使用
除WORK、STD庫外,其他庫與程序包使用前首先要聲明。格式如下:
LIBRARY
庫名;
USE
庫名.程序包名.項目名;
USE
庫名.程序包名.ALL;
最后的一個USE語句中的ALL表示使用這個程序包中的所有資源。118第117頁/共348頁例如:
LIBRARYALTERA;USEALTERA.MAXPLUS2.ALL;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;
庫說明的作用范圍從實體開始到其所屬構(gòu)造體、配置為止。
使用下面語句使用用戶定義的程序包;
USEwork.包名.項目名;
USEwork.包名.ALL;119第118頁/共348頁實體(以下摘自北師大出版社教材)
設(shè)計實體可以是整個系統(tǒng),如像CPU那樣復(fù)雜的系統(tǒng),也可以是一個芯片、邏輯器件或者是一個最簡單的門電路。設(shè)計實體可以代表任何一個模塊,它可以是某個層次中的一個元件,也可以是設(shè)計中的頂層模塊。120第119頁/共348頁
二、實體實體(ENTITY)VHDL程序的主體,包括實體聲明和結(jié)構(gòu)體兩部分。
實體聲明部分描述所設(shè)計的電路與外部電路的接口,指定其輸入/輸出端口或引腳。
結(jié)構(gòu)體則用來規(guī)定所設(shè)計電路的內(nèi)部結(jié)構(gòu)和輸入與輸出引腳間的邏輯關(guān)系。121第120頁/共348頁實體聲明格式是:ENTITY
實體名IS[GENERIC(類屬表);]----類屬參數(shù)聲明
PROT(端口表);----端口聲明END[ENTITY]實體名;122第121頁/共348頁1、類屬參數(shù)聲明(了解)
放在端口聲明之前,指定所設(shè)計電路所用到的類屬參數(shù),如矢量位數(shù)、時間單位等,主要在進(jìn)行考慮一般性的設(shè)計時用到,通過改變這些類屬參數(shù)可適應(yīng)不同情況要求。例如:
GENERIC(n:POSITIVE:=8);---聲明一個類屬參數(shù)。123第122頁/共348頁2、端口聲明
描述所設(shè)計的電路與外部電路的接口,指定其輸入/輸出端口或引腳。其格式如下:PORT(端口名:端口方向端口數(shù)據(jù)類型;……
端口名:端口方向端口數(shù)據(jù)類型);124第123頁/共348頁下面是一個實體聲明的例子(參照課本P129)ENTITYand_nIS
GENERIC(n:POSITIVE:=8);---聲明一個類屬參數(shù)。
PORT(a:INBIT_VECTOR((n-1)DOWNTO0);
f:OUTBIT);---bit為位數(shù)據(jù)類型,只有‘0’和‘1’兩個值,bit_vector是位矢量。ENDand_n;125第124頁/共348頁三、結(jié)構(gòu)體
結(jié)構(gòu)體則用來規(guī)定所設(shè)計電路的內(nèi)部結(jié)構(gòu)和輸入輸出引腳間的邏輯關(guān)系。其格式如下:ARCHITECTURE
結(jié)構(gòu)體名OF
實體名IS
[聲明語句]BEGIN
[功能描述語句]END[ARCHITECTURE]
結(jié)構(gòu)體名;126第125頁/共348頁
1、結(jié)構(gòu)體內(nèi)的聲明語句結(jié)構(gòu)體的聲明部分用來聲明只能用于所設(shè)計電路內(nèi)部的常數(shù)、數(shù)據(jù)類型、信號、元件和子程序。這些聲明只能用于這個結(jié)構(gòu)體中。
2、功能描述語句的類型
(1)進(jìn)程語句,其內(nèi)部為順序語句。
(2)并行過程調(diào)用語句
(3)并行的信號賦值語句包括簡單信號賦值語句、條件信號賦值語句和選擇信號賦值語句。
(4)元件例化語句
(5)生成語句127第126頁/共348頁下面是一個實體與結(jié)構(gòu)體的具體例子:
ENTITY
adder
IS
PORT(op1,op2:INUNSIGNED(7downto0);
Result:OUTINTEGER);
ENDadder;
ARCHITECTUREmaxpld
OF
adder
IS
BEGINResult<=CONV_INTEGER(op1+op2);
END
maxpld;128第127頁/共348頁四、配置(了解)
一個實體可有幾個結(jié)構(gòu)體。配置是在一個實體有幾個結(jié)構(gòu)體時,用來為實體指定特定的情況下使用哪個特定的結(jié)構(gòu)體。在仿真時可利用配置為實體選擇不同的結(jié)構(gòu)體。其格式如下:CONFIGURATION
配置名OF
實體名IS
FOR
結(jié)構(gòu)體名
ENDFOR;END[CONFIGURATION]
配置名;129第128頁/共348頁例1libraryieee;useieee.std_logic_1164.all;entitymux21aisport(a,b:in
std_logic;s:in
std_logic;y:outstd_logic);
endentitymux21a;
architectureoneofmux21ais
beginy<=awhens='0'elseb;
endarchitectureone;第129頁/共348頁例2ENTITYdtffIS
GENERIC(initial:BIT:='1');
PORT(d,clock:INBIT;q:BUFFERBIT:=initial);ENDdtff;ARCHITECTUREaOFdtffIS
BEGINq<=dWHEN(clock'EVENT
ANDclock='1');ENDa;第130頁/共348頁例3libraryieee;useieee.std_logic_1164.all;entityhaddisport(a,b:in
std_logic;co,so:outstd_logic);end
entityhadd;architectureoneofhaddisbeginso<=not(axor(notb));co<=aandb;endarchitectureone;
第131頁/共348頁133例4LIBRARYieee;USEieee.std_logic_1164.ALL;ENTITYdecl7sISPORT(d:INSTD_LOGIC_VECTOR(3DOWNTO0);led:OUT
STD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREaOFDECL7SISBEGIN
PROCESS(d)
BEGINCASEdISWHEN"0000"=>led<="0111111";
WHEN"0001"=>led<="0000110";
WHEN"0010"=>led<="1011011";
WHEN,,,,,,;WHEN"1111"=>led<="1110001";
WHENOTHERS=>NULL;ENDCASE;
ENDPROCESS;ENDa;共陰數(shù)碼管及其電路第132頁/共348頁4.3VHDL程序的順序結(jié)構(gòu)VHDL的基本描述語句有順序語句(SequentialStatements)和并行語句(ConcurrentStatements)。順序語句特點:其中每一條語句在行為仿真時的執(zhí)行順序都是按照它們的書寫順序。并行語句特點:各個并行語句在行為仿真時的執(zhí)行是同步進(jìn)行的,其執(zhí)行順序與書寫順序無關(guān)。134第133頁/共348頁
順序語句只能出現(xiàn)在進(jìn)程(Process)、函數(shù)(Function)和過程(Procedure)中。進(jìn)程語句是常用的順序語句。其本身是并行語句。但其內(nèi)部的語句卻是順序語句。常見的順序語句有賦值語句、IF語句、CASE語句、LOOP語句,還有一些其他不太常用的順序語句。135第134頁/共348頁一、賦值語句
賦值語句分變量賦值語句和信號賦值語句。變量賦值時間延遲為零;信號賦值一定存在時間延遲。136第135頁/共348頁1、變量賦值語句例4.1A:=9;B:=7;Z:=X+Y;
其中A、B和Z都是變量,:=表示給變量賦值。變量賦值語句的格式是:
目標(biāo)變量:=賦值源表達(dá)式;137第136頁/共348頁2、信號賦值語句例4.2A<=3;B(3TO4)<=C(1TO2);
其中A為信號,B則為數(shù)組型信號,<=表示給信號賦值。信號賦值信號語句的格式是:
目標(biāo)信號<=賦值源表達(dá)式;VHDL規(guī)定賦值目標(biāo)與賦值源的數(shù)據(jù)類型必需嚴(yán)格一致。138第137頁/共348頁二、IF語句IF語句即條件語句,是VHDL語言中常用的流程控制語句。IF語句有多種格式。例4.3
LIBRARY
ieee;
USEieee.std_logic_1164.ALL;
ENTITYmulti_2
IS
PORT(s,d0,d1:INSTD_LOGIC;-----標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型,有九種邏輯值
y:OUTSTD_LOGIC);
ENDmulti_2;139第138頁/共348頁ARCHITECTUREaOFmulti_2IS
BEGIN
--y<=(NOTsANDd0)OR(sANDd1);
PROCESS(s,d0,d1)
BEGIN
---進(jìn)程語句開始
IF(s=’0’)THENy<=d0;---條件成立時執(zhí)行此順序語句
ELSEy<=d1;---條件不成立時執(zhí)行此順序語句
ENDIF;
---條件語句結(jié)束
END
PROCESS;---進(jìn)程語句結(jié)束
ENDa;140第139頁/共348頁其仿真波形如下圖示:141第140頁/共348頁
以上例子是一個數(shù)據(jù)選擇器,其中所用IF語句的格式是IF的最基本的格式,即二選一控制格式。
IF語句的格式一:
IF
條件THEN
順序語句;
ELSE
順序語句;
ENDIF;
有時語句中缺少ELSE部分,則成為另一種格式,即門閂控制格式。142第141頁/共348頁例4.4
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYdff1
IS
PORT(data_in:INstd_logic;clock:INstd_logic;data_out:OUTstd_logic);
ENDdff1;
ARCHITECTUREbehvOFdff1IS
BEGIN
PROCESS(data_in,clock)143第142頁/共348頁
BEGIN
IF(clock=‘1’andclock’event)THENdata_out<=data_in;
END
IF;
END
PROCESS;ENDbehv;
其仿真波形如下圖示,這是一個D觸發(fā)器。144第143頁/共348頁IF語句的格式二:
IF
條件THEN
順序語句;
ENDIF;[重點提示]使用無ELSE部分的一類IF語句時,QuartusⅡ在綜合設(shè)計文件時,會生成一個含有一定數(shù)量寄存器的結(jié)構(gòu),例如上例的D觸發(fā)器描述。145第144頁/共348頁例4.5
LIBRARY
ieee;
USEieee.std_logic_1164.ALL;
ENTITYencoderIS
PORT(inv:INstd_logic_vector(7downto0);y:OUTstd_logic_vector(2downto0));
ENDencoder;
ARCHITECTURErt1OFencoderIS
BEGIN
PROCESS(inv)146第145頁/共348頁
BEGIN
IFinv(7)=’1’theny<=”111”;
ELSIFinv(6)=’1’theny<=”110”;
ELSIFinv(5)=’1’theny<=”101”;
ELSIFinv(4)=’1’theny<=”100”;
ELSIFinv(3)=’1’theny<=”011”;
ELSIFinv(2)=’1’theny<=”010”;
ELSIFinv(1)=’1’theny<=”001”;
ELSIFinv(0)=’1’theny<=”000”;
ELSEy<=”000”;
ENDIF;
ENDPROCESS;ENDrt1;147第146頁/共348頁其仿真波形如下圖148第147頁/共348頁以上例子為8-3優(yōu)先編碼器。其真值如表4-1:
表4-18-3優(yōu)先編碼器真值表
輸入輸出Inv0Inv1Inv2Inv3Inv4Inv5Inv6Inv7Y2Y1Y0XXXXXXX1111XXXXXX10110XXXXX100101XXXX1000100XXX10000011XX100000010X100000000110000000000149第148頁/共348頁
在以上例子中,有多種選擇條件,其中IF語句的格式為多選擇控制格式。IF語句的格式三:
IF
條件1THEN
順序語句1;
ELSIF
條件2THEN
順序語句2;
……
ELSE
順序語句n;
ENDIF
;
多選擇控制格式其實又可分為有和無ELSE部分兩種,上例是有ELSE部分的一種。150第149頁/共348頁[重點提示]在描述組合邏輯電路時,一般要使用有ELSE部分的一類IF語句,而不要使用無ELSE部分的一類IF語句。否則,QuartusⅡ在綜合設(shè)計文件時,會生成一個含有一定數(shù)量寄存器的結(jié)構(gòu),增加電路復(fù)雜度。而在描述時序邏輯電路時則經(jīng)常使用無ELSE部分的一類IF語句。151第150頁/共348頁三、CASE語句CASE語句即選擇語句,它根據(jù)表達(dá)式的值,從多項順序語句中選擇滿足條件的一項來執(zhí)行。CASE語句也是VHDL語句的常用流程控制語句。例4.6
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYdemulti_4vIS
PORT(d:INSTD_LOGIC;s:INSTD_LOGIC_VECTOR(1DOWNTO0);y0,y1,y2,y3:OUTSTD_LOGIC);
ENDdemulti_4v;152第151頁/共348頁
ARCHITECTUREaOFdemulti_4vIS
BEGIN
PROCESS(s,d)
BEGIN
CASEsIS
WHEN“00”=>y0<=d;y1<=‘0’;y2<=‘0’;y3<=‘0’;
WHEN“01”=>y0<=‘0’;y1<=d;y2<=‘0’;y3<=‘0’;
WHEN“10”=>y0<=‘0’;y1<=‘0’;y2<=d;y3<=‘0’;
WHENOTHERS=>y0<=‘0’;y1<=‘0’;y2<=‘0’;y3<=d;
ENDCASE;
ENDPROCESS;
ENDa;153第152頁/共348頁其仿真波形如下圖示:
這是一個4路數(shù)據(jù)分配器,注意信號S為STD_LOGIC_VECTOR數(shù)據(jù)類型,其可能取值不止4種,因為STD_LOGIC數(shù)據(jù)類型有九種取值。故上例中存在WHENOTHERS這一項。154第153頁/共348頁下表為分配器的真值表輸入輸出S1S0Y3Y2Y1Y000000D0100D0100D0011D000
從上例可以看出,CASE語句的格式與電路的真值表相對應(yīng)。155第154頁/共348頁CASE語句的格式:
CASE
表達(dá)式IS
WHEN
選擇值=>順序語句;
WHEN
選擇值=>順序語句;
…
WHENOTHERS=>順序語句;
ENDCASE;[重點提示]CASE語句的格式與所描寫的電路的真值表具有對應(yīng)性。156第155頁/共34
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安裝工程合同協(xié)議范本3篇
- 旅游導(dǎo)游聘用合同3篇
- 工業(yè)往來借款合同3篇
- 文明實踐守則3篇
- 數(shù)據(jù)采集服務(wù)合同3篇
- 旅游住宿服務(wù)施工協(xié)議3篇
- 換熱機組招標(biāo)項目招標(biāo)答疑3篇
- 安全騎行責(zé)任在我3篇
- 施工分包樁基協(xié)議3篇
- 居家養(yǎng)老協(xié)議書范文3篇
- 金匱要略知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學(xué)
- 【MOOC】有機化學(xué)實驗-南京工業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 北京理工大學(xué)《數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024年公安機關(guān)理論考試題庫500道
- 2024年中國主題公園競爭力評價報告-中國主題公園研究院
- 2024年有限合伙股權(quán)代持
- 廣東珠海市駕車沖撞行人案件安全防范專題培訓(xùn)
- 花城版一年級上冊音樂 第3課 《國旗國旗真美麗》(教案)
- 2024年四川高校對口招生考試中職英語試卷真題(含答案)
- 2024油氣管道無人機巡檢作業(yè)標(biāo)準(zhǔn)
- 重大(2023)版信息科技五年級上冊教學(xué)設(shè)計
評論
0/150
提交評論