EDA技術與VHDL實用教程_第1頁
EDA技術與VHDL實用教程_第2頁
EDA技術與VHDL實用教程_第3頁
EDA技術與VHDL實用教程_第4頁
EDA技術與VHDL實用教程_第5頁
已閱讀5頁,還剩343頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計學1EDA技術與VHDL實用教程一、EDA技術概念

現(xiàn)代電子設計技術的核心就是EDA(電子設計自動化,ElectronicDesignAutomation)技術。利用EDA技術,電子設計師可以方便地實現(xiàn)IC設計、電子電路設計和PCB設計等工作。EDA技術與VHDL實用教程2第1頁/共348頁3

廣義的EDA技術,除了狹義的EDA技術外,還包括計算機輔助分析CAA技術(如PSPICE,EWB,MATLAB等),印刷電路板計算機輔助設計PCB-CAD技術(如PROTEL,ORCAD等)。在廣義的EDA技術中,CAA技術和PCB-CAD技術不具備邏輯綜合和邏輯適配的功能,因此它并不能稱為真正意義上的EDA技術。

EDA技術與VHDL實用教程第2頁/共348頁4

狹義的EDA技術,就是以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統(tǒng)邏輯描述的主要表達方式,以計算機、大規(guī)模可編程邏輯器件的開發(fā)軟件及實驗開發(fā)系統(tǒng)為設計開發(fā)工具的EDA技術。

本書討論的對象專指狹義的EDA技術。

EDA技術與VHDL實用教程第3頁/共348頁EDA技術的3個層次5(1)EWB、PSpice、protel的學習作為EDA的最初級內容;(2)利用VHDL完成對CPLD/FPGA的開發(fā)等作為中級內容;(3)ASIC的設計作為最高級內容EDA技術與VHDL實用教程第4頁/共348頁6二、EDA技術的主要特征EDA技術主要有以下這些特征:(1)高層綜合與優(yōu)化的理論與方法取得了很大的進展,其結果大大縮短了復雜的ASIC的設計周期,同時改進了設計質量;(2)采用硬件描述語言來描述10萬門以上的設計,形成了國際通用的VHDL等硬件描述語言。它們均支持不同層次的描述,使得復雜IC的描述規(guī)范化,便于傳遞、交流、保存與修改,并可建立獨立的工藝設計文檔,便于設計重用;

EDA技術與VHDL實用教程第5頁/共348頁7(3)開放式的設計環(huán)境(各廠家均適合);(4)自頂向下的算法;(5)豐富的元器件模塊庫;(6)具有較好的人機對話界面與標準的CAM接口;(7)建立并行設計工程框架結構的集成化設計環(huán)境,以適應當今ASIC的特點:規(guī)模大而復雜,數(shù)字與模擬電路并存,硬件與軟件并存,產品上市更新快。

EDA技術與VHDL實用教程第6頁/共348頁8三、EDA技術發(fā)展歷程EDA技術的發(fā)展分為三個階段20世紀70年代——計算機輔助設計CAD階段20世紀80年代

——計算機輔助工程設計階段20世紀90年代——電子系統(tǒng)設計自動化階段EDA技術與VHDL實用教程第7頁/共348頁9四、EDA技術的主要內容(一)硬件描述語言硬件描述語言(HDL)是各種描述方法中最能體現(xiàn)EDA優(yōu)越性的描述方法。所謂硬件描述語言,實際就是一個描述工具,其描述的對象就是待設計電路系統(tǒng)的邏輯功能、實現(xiàn)該功能的算法、選用的電路結構以及其他各種約束條件等。通常要求HDL既能描述系統(tǒng)的行為,又能描述系統(tǒng)的結構。EDA技術與VHDL實用教程第8頁/共348頁10目前主要有以下兩種HDL語言:1.Verilog-HDLVerilog-HDL語言是在1983年由GDA(GatewayDesignAutomation)公司首創(chuàng)的,主要用于數(shù)字系統(tǒng)的設計。2.VHDLVHDL語言是美國國防部于20世紀80年代后期,出于軍事工業(yè)的需要開發(fā)的。EDA技術與VHDL實用教程第9頁/共348頁11VHDL語言是一種高級描述語言,適用于電路高級建模,綜合的效率和效果較好。

Verilog-HDL語言是一種低級的描述語言,適用于描述門級電路,容易控制電路資源,但其對系統(tǒng)的描述能力不如VHDL語言。

EDA技術與VHDL實用教程第10頁/共348頁12(二)可編程邏輯器件可編程邏輯器件(簡稱PLD)是一種由用戶編程來實現(xiàn)某種邏輯功能的新型邏輯器件。它不僅速度快、集成度高,能夠完成用戶定義的邏輯功能,還可以加密和重新定義編程,其允許編程次數(shù)可多達上萬次。使用可編程邏輯器件可大大簡化硬件系統(tǒng)、降低成本、提高系統(tǒng)的可靠性、靈活性。

EDA技術與VHDL實用教程第11頁/共348頁13目前,PLD主要分為FPGA(現(xiàn)場可編程門陣列)和CPLD(復雜可編程邏輯器件)兩大類。FPGA和CPLD最明顯的特點是高集成度、高速度和高可靠性。由于它們的明顯特點,可以應用于超高速領域和實時測控方面以及嵌入式領域等等。EDA技術與VHDL實用教程第12頁/共348頁14(三)EDA軟件目前在國內比較流行的EDA軟件工具主要有Altera公司的MAX+plusⅡ和QuartusⅡ、Lattice公司的ExpertLEVER和Synario、Xilinx公司的Foundation和Alliance、Actel公司的ActelDesigner等,這四家公司的EDA開發(fā)軟件特性如表0-1所示。

EDA技術與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技術與VHDL實用教程第14頁/共348頁16EDA與傳統(tǒng)電子設計方法的比較手工設計方法的缺點是:

1)復雜電路的設計、調試十分困難。

2)如果某一過程存在錯誤,查找和修改十分不便。

3)設計過程中產生大量文檔,不易管理。

4)對于集成電路設計而言,設計實現(xiàn)過程與具體生產工藝直接相關,因此可移植性差。

5)只有在設計出樣機或生產出芯片后才能進行實測。EDA技術有很大不同:

1)采用硬件描述語言作為設計輸入。

2)庫(Library)的引入。

3)設計文檔的管理。

4)強大的系統(tǒng)建模、電路仿真功能。

5)具有自主知識產權。

6)開發(fā)技術的標準化、規(guī)范化以及IP核的可利用性。

7)適用于高效率大規(guī)模系統(tǒng)設計的自頂向下設計方案。

8)全方位地利用計算機自動設計、仿真和測試技術。

9)對設計者的硬件知識和硬件經驗要求低。10)高速性能好。11)純硬件系統(tǒng)的高可靠性。EDA技術與VHDL實用教程第15頁/共348頁17EDA與傳統(tǒng)電子設計方法的比較FPGA和DSP芯片實現(xiàn)FIR濾波器的速度對比8位FIR濾波器階數(shù)FPGA的處理速度單位:MSPS達到相當速度所需DSP芯片的指令執(zhí)行速度單位:MIPS8 16 24 32104

101

103

105832

1616

2472

3360EDA技術與VHDL實用教程第16頁/共348頁18EDA實驗的3個層次1、邏輯行為的實現(xiàn)

2、控制與信號傳輸功能的實現(xiàn)3、算法的實現(xiàn)如:譯碼器、紅綠交通燈控制、表決器、顯示掃描器、電梯控制、乒乓球等電路的設計,時鐘頻率一般低于4MHz

如:各類信號發(fā)生器、A/D采樣控制器、FIFO、RS232或PS/2通信、FPGA/CPLD與單片機綜合控制等電路的設計,時鐘頻率一般在25MHz左右

如:離散FFT變換、數(shù)字濾波器、浮點乘法器、高速寬位加法器、數(shù)字振蕩器、數(shù)字鎖相環(huán)、調制解調器、圖象DSP等電路的設計,時鐘頻率一般在50MHz以上

EDA技術與VHDL實用教程第17頁/共348頁19五、EDA技術的應用展望

電子EDA技術發(fā)展迅猛,逐漸在教學、科研、產品設計與制造等各方面都發(fā)揮著巨大的作用。

1.EDA技術將廣泛應用與高校電類專業(yè)的實踐教學工作中

2.EDA技術將廣泛應用于科研工作和新產品的開發(fā)中

3.EDA技術將廣泛應用于專用集成電路的開發(fā)

4.EDA技術將廣泛應用于傳統(tǒng)機電設備的升級換代和技術改造EDA技術與VHDL實用教程第18頁/共348頁第1章EDA技術概述<<EDA技術與VHDL實用教程>>20第19頁/共348頁EDA技術與VHDL實用教程要求熟悉面向FPGA/CPLD的EDA技術初步理論知識知識點理解可編程邏輯器件掌握面向FPGA/CPLD的EDA設計流程掌握面向FPGA/CPLD的常用EDA工具理解硬件描述語言重點和難點

EDA設計流程

QuartusⅡ軟件包硬件描述語言VHDL語言

21第20頁/共348頁EDA技術與VHDL實用教程22第1章EDA技術概述可編程邏輯器件1.1EDA技術的主要特征1.2EDA技術發(fā)展歷程1.3EDA技術的主要內容1.4第21頁/共348頁EDA技術與VHDL實用教程231.1可編程邏輯器件一、可編程邏輯器件概述(一)PLD/FPGA介紹CPLD:復雜可編程邏輯器件ComplexProgrammableLogicDeviceFPGA:現(xiàn)場可編程門陣列FieldProgrammableGateArray第22頁/共348頁PLD能做什么?

PLD能完成任何數(shù)字器件的功能,上至高性能的CPU,下至簡單的74系列電路,都可以用PLD來實現(xiàn).

PLD如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法或是硬件描述語言,自由的設計一個數(shù)字系統(tǒng)。如何使用PLD?數(shù)字電路基礎,會使用計算機,有一定編程基礎。24第23頁/共348頁二、PLD分類25第24頁/共348頁EDA技術與VHDL實用教程26三、PLD/FPGA的結構和原理(一)基于乘積項(Product-Term)的PLD結構(二)乘積項結構PLD的邏輯實現(xiàn)原理(三)查找表(Look-Up-Table)的原理與結構(四)查找表結構的FPGA邏輯實現(xiàn)原理第25頁/共348頁27例:用PROM完成半加器邏輯陣列第26頁/共348頁28CPLD的結構與可編程原理

第27頁/共348頁29FPGA的結構與工作原理

查找表邏輯結構第28頁/共348頁EDA技術與VHDL實用教程30FPGA:SRAM工藝;直接燒寫程序掉電后程序丟失;理論上擦寫100萬次以上;一般使用需要外掛EEPROM,可以達到幾百萬門電路。比如ALTERA公司的APEX、FLEX、ACEX、STRATIX、CYCLONE系列。CPLD:EPPROM或FLASH工藝;直接燒寫程序掉電后程序不會消失;一般可以擦寫幾百次,并且一般宏單元在512以下。(比如ALTERA的AX3000/5000/7000/9000和CLASSIC系列)。四、選擇PLD還是FPGA第29頁/共348頁EDA技術與VHDL實用教程31PLD適合用于設計譯碼等復雜組合邏輯。

PLD分解組合邏輯的功能很強。而FPGA的一個LUT只能處理4輸入的組合邏輯。如果設計中使用到大量觸發(fā)器,那么使用FPGA就是一個很好選擇。

FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是幾千上萬,PLD一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本大大低于PLD。第30頁/共348頁EDA技術與VHDL實用教程321.2面向FPGA/CPLD的EDA設計流程

第31頁/共348頁EDA技術與VHDL實用教程331.源程序的編輯和編譯常用的源程序輸入方式有三種:(1)原理圖輸入方式:(2)狀態(tài)圖輸入方式:(3)VHDL軟件程序的文本方式:第32頁/共348頁EDA技術與VHDL實用教程34利用EDA工具提供的圖形編輯器以原理圖的方式進行輸入。原理圖輸入方式比較容易掌握,直觀且方便。(1)原理圖輸入方式:第33頁/共348頁EDA技術與VHDL實用教程35(2)狀態(tài)圖輸入方式:以圖形的方式表示狀態(tài)圖進行輸入。當填好時鐘信號名、狀態(tài)轉換條件、狀態(tài)機類型等要素后,就可以自動生成VHDL程序。這種設計方式簡化了狀態(tài)機的設計,比較流行。(3)VHDL軟件程序的文本方式:最一般化、最具普遍性的輸入方法,任何支持VHDL的EDA工具都支持文本方式的編輯和編譯。第34頁/共348頁2.邏輯綜合和優(yōu)化邏輯綜合,就是將電路的高級語言描述轉換成低級的,可與FPGA/CPLD或構成ASIC的門陣列基本結構相映射的網表文件。邏輯映射的過程,就是將電路的高級描述,針對給定硬件結構組件,進行編譯,優(yōu)化、轉換和綜合,最終獲得門級電路甚至更底層的電路描述文件。而網表文件就是按照某種規(guī)定描述電路的基本組成及如何相互連接的關系的文件。36第35頁/共348頁3.目標器件的布線/適配所謂邏輯適配,就是將由綜合器產生的網表文件針對某一具體的目標器件進行邏輯映射操作。其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布線與操作等,配置于指定的目標器件中,產生最終的下載文件,如JEDEC格式的文件。37第36頁/共348頁4.目標器件的編程/下載如果編譯、綜合、布線/適配和行為仿真、功能仿真、時序仿真等過程都沒有發(fā)現(xiàn)問題,即滿足原設計的要求,則可以將由FPGA/CPLD布線/適配器產生的配置/下載文件通過編程器或下載電纜載入目標芯片F(xiàn)PGA或CPLD中。38第37頁/共348頁5.設計過程中的有關仿真設計過程中的仿真有三種,它們是:行為仿真:該仿真只是根據VHDL的語義進行的,與具體電路沒有關系。功能仿真:就是將綜合后的VHDL網表文件再送到VHDL仿真器所進行的仿真。時序仿真:該仿真已將器件特性考慮進去,因此可以得到精確的時序仿真結果。39第38頁/共348頁6.硬件仿真/硬件測試所謂硬件仿真,就是在ASIC設計中,常利用FPGA對系統(tǒng)的設計進行功能檢測,通過后再將其VHDL設計以ASIC形式實現(xiàn),這一過程稱為硬件仿真。所謂硬件測試,就是針對FPGA或CPLD直接用于應用系統(tǒng)的設計中,將下載文件下載到FPGA后,對系統(tǒng)的設計進行的功能檢測,這一過程稱為硬件測試。注意:VHDL仿真器和VHDL綜合器對設計的理解常常是不一致的,固需要硬件仿真和測試。40第39頁/共348頁二、分析方法基于EDA技術的設計方法則是自頂向下進行設計的。即首先采用可完全獨立于目標器件芯片物理結構的硬件描述語言,在系統(tǒng)的基本功能或行為級上對設計的產品進行描述和定義,結合多層次的仿真技術,確保設計的可行性與正確性的前提下,完成功能確認。然后利用EDA工具的邏輯綜合功能,把功能描述轉換成某一具體目標芯片的網表文件,輸出給該器件廠商的布局布線適配器,進行邏輯映射及布局布線,再利用產生的仿真文件進行包括功能和時序的驗證,以確保實際系統(tǒng)的性能。41第40頁/共348頁EDA技術與VHDL實用教程42采用自頂向下的設計方法有如下優(yōu)點:(1)自頂向下設計方法是一種模塊化設計方法。符合常規(guī)的邏輯思維習慣;

(2)高層設計同器件無關,可以完全獨立于目標器件的結構。

(3)采用硬件描述語言,設計易于在各種集成電路工藝或可編程器件之間移植。

(4)適合多個設計者同時進行設計。第41頁/共348頁三、表示方法1、文本表示方式(VHDL)2、圖形表示方式(原理圖,狀態(tài)圖、波形圖)3、文本、圖形混用方式43第42頁/共348頁EDA技術與VHDL實用教程44四、實現(xiàn)方法1.硬件描述語言編程實現(xiàn)法2.原理圖設計實現(xiàn)法3.參數(shù)可設置兆功能塊實現(xiàn)法4.軟的或硬的IP核實現(xiàn)法第43頁/共348頁EDA技術與VHDL實用教程451.3面向FPGA/CPLD的常用EDA工具

目前世界上有十幾家生產CPLD/FPGA的公司,最大的三家是:Altera,Xilinx和Lattice,其中Altera和Xilinx兩家公司共占有60%以上的市場份額。通常來說,在歐洲用XILINX的人多,在日本和亞太地區(qū)用ALTERA的人多,在美國則是平分秋色??梢灾vAltera和Xilinx共同決定了PLD技術的發(fā)展方向。對于FPGA/CPLD開發(fā)軟件,國內很多人喜歡用Altera公司MaxPlusII、QuartusII,考慮到QuartusII是MaxPlusII的升級產品,所以本書的FPGA/CPLD的常用EDA工具主要介紹QuartusII。第44頁/共348頁EDA技術與VHDL實用教程46AlteraEDA軟件工具QuartusII簡介設計流程圖第45頁/共348頁EDA技術與VHDL實用教程47設計輸入文件類型第46頁/共348頁EDA技術與VHDL實用教程481.4硬件描述語言一、硬件描述語言常用硬件描述語言有VHDL、Verilog和ABEL語言。下面從使用方面將三者進行對比。1.邏輯描述層次2.設計要求3.綜合過程4.對綜合器的要求5.支持的EDA工具6.國際化程度第47頁/共348頁EDA技術與VHDL實用教程49本章小結EDA技術概述可編程邏輯器件面向FPGA/CPLD的EDA設計流程面向FPGA/CPLD的常用EDA工具硬件描述語言第48頁/共348頁第2章QuartusII原理圖輸入

設計法入門<<EDA技術與VHDL實用教程>>50第49頁/共348頁EDA技術與VHDL實用教程作者:蘇莉萍陳東廖超平要求掌握QuartusII原理圖輸入法和QuartusII器件編程知識點理解QuartusII原理圖輸入法理解QuartusII器件編程重點和難點QuartusII原理圖輸入法

51第50頁/共348頁EDA技術與VHDL實用教程作者:蘇莉萍陳東廖超平第2章QuartusII原理圖輸入

設計法入門QuartusII原理圖輸入法

2.1QuartusII器件編程2.2第51頁/共348頁EDA技術與VHDL實用教程2.1QuartusII原理圖輸入法

應用數(shù)字邏輯電路的基本知識,使用QuartusII原理圖輸入法可非常方便地進行數(shù)字系統(tǒng)的設計。應用QuartusII原理圖輸入法,還可以把原有的使用中小規(guī)模的通用數(shù)字集成電路設計的數(shù)字系統(tǒng)移埴到FPGA或CPLD中。下面以一個一位數(shù)值比較器的設計為例說明QuartusII原理圖輸入法的使用方法。

第52頁/共348頁EDA技術與VHDL實用教程一、建立工程文件夾1.新建一個文件夾作為工程項目目錄首先在計算機中建立一個文件夾作為工程項目目錄,此工程目錄不能是根目錄,比如D:,只能是根目錄下的目錄,比如D:\EDA_book\code\Chapter2\BiJiaoQi

第53頁/共348頁EDA技術與VHDL實用教程2.建立工程項目運行QuatrusII軟件,執(zhí)行File=>NewProjectWizad命令,建立工程。如下圖示。第54頁/共348頁EDA技術與VHDL實用教程在圖2-2界面中點擊Next按扭。

第55頁/共348頁EDA技術與VHDL實用教程在所彈出的NewProjectWizard對話框中,填寫Diectory,Name,Top-LevelEntity等項目。其中第一、第二、第三個文本框分別是工程項目目錄、項目名稱和項目頂層設計實體的名稱。

第56頁/共348頁EDA技術與VHDL實用教程按Next按鈕,出現(xiàn)添加工程文件的對話框如圖

第57頁/共348頁EDA技術與VHDL實用教程若原來已有文件,可選擇,這里直接按Next進行下一步,選擇FPGA器件的型號如圖示。

第58頁/共348頁EDA技術與VHDL實用教程在Family下拉框中,根據需要選擇一種型號的FPGA;然后在“Availabledevices:”中根據需要的FPGA型號選擇FPGA型號,注意在Filters一欄中選中“ShowAdvancedDevices”以顯示所有的器件型號。再點擊Next按鈕,出現(xiàn)下面的對話框。

第59頁/共348頁EDA技術與VHDL實用教程這是選擇其它EDA工具的對話框,我們使用QuatrusII的集成環(huán)境進行開發(fā),因此不作任何改動。按Next進入工程的信息總概對話框如下圖。按Finish按鈕就建立了一個空的工程項目。第60頁/共348頁EDA技術與VHDL實用教程1.建立原理圖文件執(zhí)行File=>New命令,彈出新建文件對話框如圖。二、編輯設計圖形文件

第61頁/共348頁EDA技術與VHDL實用教程執(zhí)行File=>Saveas命令,把它另存為文件名是BiJiaoQi的原理圖文件,文件后綴為.bdf。將“Addfiletocurrentproject”選項選中,使該文件添加到剛建立的工程中去。如圖下示。

第62頁/共348頁EDA技術與VHDL實用教程2.編輯輸入原理圖文件(1)元件的選擇與放置(2)連接各個元件符號(3)設定各輸入輸出管腳名第63頁/共348頁EDA技術與VHDL實用教程第64頁/共348頁EDA技術與VHDL實用教程完成原理圖編輯輸入后,保存設計圖形文件,就可編譯設計圖形文件。執(zhí)行Processing=>StartCompilation,進行編譯。編譯結束后,會出現(xiàn)如下頁圖對話框,對話框會顯示編譯的錯誤和警告的情況。若有錯誤,則可先雙擊編譯器界面下方出現(xiàn)的第一個錯誤提示,可使第一個錯誤處改變顏色。檢查糾正第一個錯誤后保存再編譯,如果還有錯誤,重復以上操作,直至最后通過。最后通過時應沒有錯誤提示但可有警告提示。三、編譯設計圖形文件第65頁/共348頁EDA技術與VHDL實用教程可以通過查看編譯報告了解有關情況,比如定時分析情況,下圖是編譯報告中關于每個輸出信號對輸入信號的延遲時間的報告。

第66頁/共348頁EDA技術與VHDL實用教程(1)新建用于仿真的波形文件(2)添加需要的輸入輸出引腳(3)設置仿真時間(4)設置柵格的大小(5)設置輸入信號的波形(6)保存文件,保存名為默認名(7)進行功能仿真四、時序仿真設計文件

第67頁/共348頁EDA技術與VHDL實用教程執(zhí)行File=>Great/Update=>GreatSymbolFilesforCurrentFile命令,將本設計電路封裝生成一個元件符號,供以后在原理圖編輯器下進行層次設計時調用。

五、生成元件符號

第68頁/共348頁EDA技術與VHDL實用教程使用QuartusII軟件成功編譯工程之后,就可以對Altera器件進行編程或配置,進而進行硬件測試。QuartusIICompiler的Assembler模塊生成POF和SOF編程文件,QuartusIIProgrammer可以用編程文件與Altera編程硬件一起對器件進行編程或配置。還可以使用QuartusIIProgrammer的獨立版本對器件進行編程和配置。

2.2QuartusII器件編程

第69頁/共348頁EDA技術與VHDL實用教程一、編程硬件與編程模式所使用的Altera編程硬件可以是MasterBlaster、ByteBlasterMV、ByteBlasterII或USB-Blaster下載電纜或Altera編程單元(APU)。國內許多開發(fā)板和實驗箱使用ByteBlasterMV或ByteBlasterII下載電纜。具體情況請查看所使用的開發(fā)板和實驗箱的有關所明。

第70頁/共348頁EDA技術與VHDL實用教程Programmer具有四種編程模式:被動串行模式(PSMode)、JTAG模式、主動串行編程模式(ASMode)和插座內編程模式(In-Socket)。被動串行和JTAG編程模式使用Altera編程硬件對單個或多個器件進行編程。主動串行編程模式使用Altera編程硬件對單個EPCS1或EPCS4串行配置器件進行編程。插座內編程模式使用Altera編程硬件對單個CPLD或配置器件進行編程。

第71頁/共348頁EDA技術與VHDL實用教程

二、器件設置和引腳的鎖定1.器件的選擇2.選擇配置器件的工作方式(可不做)3.選擇配置器件(使用EPCS器件的主動串行編程模式時)4.選擇閑置引腳的狀態(tài)(可不做)5.引腳的鎖定第72頁/共348頁EDA技術與VHDL實用教程三、編程下載設計文件1.JTAG模式編程下載(1)硬件連接;(2)打開編程窗口、選擇編程模式和配置文件;(3)設置編程器(若是初次安裝時);(4)配置下載。第73頁/共348頁EDA技術與VHDL實用教程2.主動串行編程模式(ASMode)(1)硬件連接(2)打開編程窗口(3)選擇編程模式和配置文件(4)設置編程器(若是初次安裝時)(5)編程下載第74頁/共348頁EDA技術與VHDL實用教程四、設計電路硬件調試下載成功后即可進行設計電路硬件調試。具體方法應考慮所設計電路功能和開發(fā)板或實驗箱的具體情況,這里不做詳細介紹。第75頁/共348頁EDA技術與VHDL實用教程本章小結QuartusII原理圖輸入設計法入門器件編程原理圖輸入法建立工程文件夾編輯設計圖形文件編譯設計圖形文件時序仿真設計文件生成元件符號編程硬件與編程模式器件設置和引腳的鎖定編程下載設計文件設計電路硬件調試第76頁/共348頁EDA技術與VHDL實用教程要求進一步掌握QuartusII原理圖輸入法。

知識點原理圖輸入法中Max+plusII老式宏函數(shù)的應用原理圖輸入法中LPM函數(shù)的應用原理圖輸入法中的層次化設計

重點和難點

Max+plusII老式宏函數(shù)在原理圖輸入法中的應用原理圖輸入法中的層次化設計第77頁/共348頁EDA技術與VHDL實用教程第3章QuartusII原理圖輸入法深入原理圖輸入法中Max+plusII老式宏函數(shù)的應用

3.1原理圖輸入法中LPM函數(shù)的應用

3.2原理圖輸入法中的層次化設計3.3第78頁/共348頁EDA技術與VHDL實用教程3.1原理圖輸入法中Max+plusII老式宏函數(shù)的應用

在QuartusII原理圖輸入法中,可供使用的元件庫除了基本邏輯元件庫以外,還有Max+plusII庫和LPM函數(shù)元件庫。

第79頁/共348頁

要將設計文件保存至工程文件夾,并設置成currentfile,否則,編譯不成功;

Compiler出錯的原因:連線不實、不在工程文件夾下等;建立波形文件的方法;仿真之前,應先設置endtime;以便有足夠長的仿真時間;仿真變量的設置:只給輸入變量加入,輸出是結果,是用來驗證電路正確與否的,故輸出不能設值;最好在全局范圍內設值,否則,保存的波形不好看.原理圖輸入法常見錯誤第80頁/共348頁EDA技術與VHDL實用教程例3.1用74151設計一個三人表決電路。三人表決電路的真值表如下:

abcy00000010010001111000101111011111第81頁/共348頁EDA技術與VHDL實用教程其最小項表達式是:根據y的最小項表達式,就可知道使用74151設計的三人表決電路的原理圖。

第82頁/共348頁EDA技術與VHDL實用教程同時,波形仿真結果如下:第83頁/共348頁EDA技術與VHDL實用教程例3.2用兩塊74161設計一個五十進制的計數(shù)器。

74161是4位二進制加法計數(shù)器,將兩塊74161可得八位二進制加法計數(shù)器。其模是256。如果計數(shù)器從開始0計數(shù),要構成五十進制的計數(shù)器,當計數(shù)器的值計到十進制數(shù)49即二進制數(shù)00110001時,要讓兩塊74161的同步置數(shù)端有效,使兩塊74161同時置零。根據此要求設計電路如下圖。第84頁/共348頁EDA技術與VHDL實用教程第85頁/共348頁EDA技術與VHDL實用教程其仿真波形如圖:第86頁/共348頁EDA技術與VHDL實用教程在原理圖輸入法中,有三種元件之間的連線:

節(jié)點(node)總線(bus)一般的不是節(jié)點和總線的連線。第87頁/共348頁EDA技術與VHDL實用教程

隨著設計的數(shù)字系統(tǒng)越來越復雜,系統(tǒng)中每個模塊都要從頭開始設計是非常困難的。IP(IntellectualProperty)即知識產權的出現(xiàn)使得設計過程變得簡單得多。IP核是指將一些在數(shù)字電路中常用但比較復雜的功能塊,設計成參數(shù)可修改的模塊,讓其他用戶可以直接調用這些模塊。用戶可以在自己的FPGA設計中使用這些嚴格測試和優(yōu)化過的模塊,減少設計和調試時間,降低開發(fā)成本,提高開發(fā)效率。3.2原理圖輸入法中LPM函數(shù)的應用

第88頁/共348頁EDA技術與VHDL實用教程IP包括基本宏功能(Megafuncition/PLM)和(MegaCore)兩種,在Altera的開發(fā)工具QuatrusII中,有一些內帶的基本宏功能(Megafuncition/PLM)可供用戶使用,本節(jié)主要介紹這些QuatrusII內帶的基本宏功能?;竞旯δ芸稍谠韴D設計輸入法中使用,也可在HDL設計輸入法中使用,本節(jié)介紹的是基本宏功能在原理圖設計輸入法中使用,后者在第五章再做介紹。

第89頁/共348頁EDA技術與VHDL實用教程I/O組件包括時鐘數(shù)據恢復、鎖相環(huán)、雙數(shù)據速率、千兆位收發(fā)器塊LVDS收發(fā)器、PLL重新配置和遠程更新宏功能模塊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技術與VHDL實用教程例3.4lpm_mult宏函數(shù)應用二、基本宏功能應用實例第91頁/共348頁EDA技術與VHDL實用教程通過編譯仿真,其仿真波形如圖

:第92頁/共348頁EDA技術與VHDL實用教程例3.5lpm_counter宏函數(shù)應用第93頁/共348頁EDA技術與VHDL實用教程波形仿真結果:第94頁/共348頁EDA技術與VHDL實用教程例3.6lpm_bustri宏函數(shù)應用

第95頁/共348頁EDA技術與VHDL實用教程通過編譯仿真,其仿真波形如下圖。第96頁/共348頁EDA技術與VHDL實用教程例3.7lpm_fifo宏函數(shù)應用第97頁/共348頁EDA技術與VHDL實用教程通過編譯仿真,其仿真波形如圖:第98頁/共348頁EDA技術與VHDL實用教程層次化設計也稱“自頂向下”設計方法,即將一個大的設計項目分解為若干子項目或若干層次來完成。劃分是從頂層由高往下,而設計則可先設計底層的電路,然后在高層次的設計中,逐級調用低層次的設計結果。原理圖輸入法可很方便地進行層次化設計。一般層次化設計法用于較大的項目,但由于篇幅的原因,下面用一個不是很大的項目來說明層次化設計法。

3.3原理圖輸入法中的層次化設計

第99頁/共348頁EDA技術與VHDL實用教程例3.8用層次化設計設計一個兩位二進制數(shù)乘法器。1.系統(tǒng)分析兩位二進制數(shù)相乘,最多可得四位二進制數(shù),系統(tǒng)可分解為兩個半加器和幾個與門聯(lián)結而成。2.底層電路半加器設計第100頁/共348頁EDA技術與VHDL實用教程半加器電路真值表absc0000011010101101

由半加器的真值表可得,半加器的邏輯表達式如下:

s=aXORbc=aANDb第101頁/共348頁EDA技術與VHDL實用教程根據半加器的邏輯表達式,可按下圖設計hadd.bdf文件。把hadd.bdf文件存放到文件夾hadd內,并以此文件建立工程,編譯通過,執(zhí)行File=>Greate/Update=>GreateSymbolFilesforCurrentFile命令,生成符號hadd.bsf。

第102頁/共348頁EDA技術與VHDL實用教程3.頂層電路兩位二進制數(shù)乘法器設計根據系統(tǒng)分析所得結論,可按后頁圖設計兩位二進制數(shù)乘法器電路。新建一個工程文件夾mult2,把hadd.bdf、hadd.bsf文件放入其中,新建一個原理圖文件,使用插入符號命令,出現(xiàn)選擇符號的界面,選擇hadd.bsf將它放置于原理圖編輯區(qū)中,以mult2.bdf命名并保存到mult2文件夾中。以此文件新建工程。調出有關其他元件并按下圖連線,保存、編譯并通過仿真。

第103頁/共348頁EDA技術與VHDL實用教程第104頁/共348頁EDA技術與VHDL實用教程通過編譯仿真,其仿真波形如圖:本例的底層電路符號用原理圖設計輸入法設計后生成,還可以用以后介紹的文本設計輸入法設計后生成,這樣的設計方法稱混合設計輸入法。第105頁/共348頁EDA技術與VHDL實用教程本章小結QuartusII原理圖輸入法深入原理圖輸入法中Max+plusII老式宏函數(shù)的應用原理圖輸入法中LPM函數(shù)的應用原理圖輸入法中的層次化設計第106頁/共348頁第4章VHDL設計入門<<EDA技術與VHDL實用教程>>108第107頁/共348頁EDA技術與VHDL實用教程要求掌握VHDL語言的基本知識和運用VHDL語言分析、設計邏輯電路的基本方法。知識點理解QuartusII的HDL輸入法理解VHDL程序的基本結構理解VHDL程序的順序結構理解VHDL程序的并行結構理解VHDL程序的語言要素

重點和難點QuartusII的HDL輸入法VHDL程序的順序結構VHDL程序的并行結構109第108頁/共348頁EDA技術與VHDL實用教程第4章VHDL設計入門QuartusII的HDL輸入法

4.1VHDL程序的順序結構4.3VHDL程序的并行結構4.4VHDL程序的語言要素4.5VHDL程序的基本結構4.2110第109頁/共348頁EDA技術與VHDL實用教程4.1QuartusII的HDL輸入法HDL輸入法是QuartusII的常用輸入法,有AHDL、VHDL和VerilogHDL三種語言,本書主要介紹VHDL語言.111第110頁/共348頁EDA技術與VHDL實用教程一、輸入編輯VHDL文件(實際操作)1.建立工程項目

2.

建立VHDL文件

3.編輯VHDL文件二、編譯仿真VHDL文件1.編譯VHDL文件

2.仿真VHDL文件112第111頁/共348頁EDA技術與VHDL實用教程一個完整的VHDL語言程序通常包含:庫(Library)程序包(Package)聲明;實體(Entity)聲明;構造體(Architecture);配置(Configuration)。

4.2VHDL程序的基本結構

113第112頁/共348頁EDA技術與VHDL實用教程一、庫、程序包

1.庫與程序包的概念程序包(package)是預先定義或設計好的數(shù)據類型、子程序和各種設計實體的集合;庫(Library)則是用來存儲已經完成的程序包等VHDL設計與數(shù)據的倉庫。庫和程序包的引用聲明放在設計文件的最前面。

114第113頁/共348頁EDA技術與VHDL實用教程

2.常見的庫:(1)IEEE庫:

IEEE庫是最常用的庫,它包含:STD_LOGIC_1164

、STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED等程序包,這些程序包包含有IEEE的標準和其他一些工業(yè)標準。其中STD_LOGIC_1164程序包最為常用,它是許多其他程序包的基礎。(2)STD庫:是符合VHDL語言標準的庫,使用時不需顯式聲明,它包含STANDARD、TEXTIO等程序包。

115第114頁/共348頁EDA技術與VHDL實用教程(3)ASIC矢量庫:各公司提供的ASIC邏輯門庫。(4)WORK庫:為現(xiàn)行作業(yè)庫,存放設計者的VHDL語言程序,是用戶自己的庫。使用時不需顯式聲明,但必需在根目錄下建立一個文件夾作為用戶項目目錄,這目錄將被綜合器默認為WORK庫,但WORK庫并不以這個文件夾的名字為名字,它的名字是WORK。(5)用戶自定義庫:

用戶自己定義的庫。116第115頁/共348頁3、程序包的定義(了解)

PACKAGE

程序包名

IS

程序包首說明語句;

END[PACKAGE]

程序包名;

PACKAGEBODY

程序包名IS

程序包體說明語句;

END[PACKAGEBODY]

包集合名;

[重點提示]程序包體為可選項,程序包首與程序包體名字應相同;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;

庫說明的作用范圍從實體開始到其所屬構造體、配置為止。

使用下面語句使用用戶定義的程序包;

USEwork.包名.項目名;

USEwork.包名.ALL;119第118頁/共348頁實體(以下摘自北師大出版社教材)

設計實體可以是整個系統(tǒng),如像CPU那樣復雜的系統(tǒng),也可以是一個芯片、邏輯器件或者是一個最簡單的門電路。設計實體可以代表任何一個模塊,它可以是某個層次中的一個元件,也可以是設計中的頂層模塊。120第119頁/共348頁

二、實體實體(ENTITY)VHDL程序的主體,包括實體聲明和結構體兩部分。

實體聲明部分描述所設計的電路與外部電路的接口,指定其輸入/輸出端口或引腳。

結構體則用來規(guī)定所設計電路的內部結構和輸入與輸出引腳間的邏輯關系。121第120頁/共348頁實體聲明格式是:ENTITY

實體名IS[GENERIC(類屬表);]----類屬參數(shù)聲明

PROT(端口表);----端口聲明END[ENTITY]實體名;122第121頁/共348頁1、類屬參數(shù)聲明(了解)

放在端口聲明之前,指定所設計電路所用到的類屬參數(shù),如矢量位數(shù)、時間單位等,主要在進行考慮一般性的設計時用到,通過改變這些類屬參數(shù)可適應不同情況要求。例如:

GENERIC(n:POSITIVE:=8);---聲明一個類屬參數(shù)。123第122頁/共348頁2、端口聲明

描述所設計的電路與外部電路的接口,指定其輸入/輸出端口或引腳。其格式如下:PORT(端口名:端口方向端口數(shù)據類型;……

端口名:端口方向端口數(shù)據類型);124第123頁/共348頁下面是一個實體聲明的例子(參照課本P129)ENTITYand_nIS

GENERIC(n:POSITIVE:=8);---聲明一個類屬參數(shù)。

PORT(a:INBIT_VECTOR((n-1)DOWNTO0);

f:OUTBIT);---bit為位數(shù)據類型,只有‘0’和‘1’兩個值,bit_vector是位矢量。ENDand_n;125第124頁/共348頁三、結構體

結構體則用來規(guī)定所設計電路的內部結構和輸入輸出引腳間的邏輯關系。其格式如下:ARCHITECTURE

結構體名OF

實體名IS

[聲明語句]BEGIN

[功能描述語句]END[ARCHITECTURE]

結構體名;126第125頁/共348頁

1、結構體內的聲明語句結構體的聲明部分用來聲明只能用于所設計電路內部的常數(shù)、數(shù)據類型、信號、元件和子程序。這些聲明只能用于這個結構體中。

2、功能描述語句的類型

(1)進程語句,其內部為順序語句。

(2)并行過程調用語句

(3)并行的信號賦值語句包括簡單信號賦值語句、條件信號賦值語句和選擇信號賦值語句。

(4)元件例化語句

(5)生成語句127第126頁/共348頁下面是一個實體與結構體的具體例子:

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頁四、配置(了解)

一個實體可有幾個結構體。配置是在一個實體有幾個結構體時,用來為實體指定特定的情況下使用哪個特定的結構體。在仿真時可利用配置為實體選擇不同的結構體。其格式如下:CONFIGURATION

配置名OF

實體名IS

FOR

結構體名

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程序的順序結構VHDL的基本描述語句有順序語句(SequentialStatements)和并行語句(ConcurrentStatements)。順序語句特點:其中每一條語句在行為仿真時的執(zhí)行順序都是按照它們的書寫順序。并行語句特點:各個并行語句在行為仿真時的執(zhí)行是同步進行的,其執(zhí)行順序與書寫順序無關。134第133頁/共348頁

順序語句只能出現(xiàn)在進程(Process)、函數(shù)(Function)和過程(Procedure)中。進程語句是常用的順序語句。其本身是并行語句。但其內部的語句卻是順序語句。常見的順序語句有賦值語句、IF語句、CASE語句、LOOP語句,還有一些其他不太常用的順序語句。135第134頁/共348頁一、賦值語句

賦值語句分變量賦值語句和信號賦值語句。變量賦值時間延遲為零;信號賦值一定存在時間延遲。136第135頁/共348頁1、變量賦值語句例4.1A:=9;B:=7;Z:=X+Y;

其中A、B和Z都是變量,:=表示給變量賦值。變量賦值語句的格式是:

目標變量:=賦值源表達式;137第136頁/共348頁2、信號賦值語句例4.2A<=3;B(3TO4)<=C(1TO2);

其中A為信號,B則為數(shù)組型信號,<=表示給信號賦值。信號賦值信號語句的格式是:

目標信號<=賦值源表達式;VHDL規(guī)定賦值目標與賦值源的數(shù)據類型必需嚴格一致。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;-----標準邏輯位數(shù)據類型,有九種邏輯值

y:OUTSTD_LOGIC);

ENDmulti_2;139第138頁/共348頁ARCHITECTUREaOFmulti_2IS

BEGIN

--y<=(NOTsANDd0)OR(sANDd1);

PROCESS(s,d0,d1)

BEGIN

---進程語句開始

IF(s=’0’)THENy<=d0;---條件成立時執(zhí)行此順序語句

ELSEy<=d1;---條件不成立時執(zhí)行此順序語句

ENDIF;

---條件語句結束

END

PROCESS;---進程語句結束

ENDa;140第139頁/共348頁其仿真波形如下圖示:141第140頁/共348頁

以上例子是一個數(shù)據選擇器,其中所用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ù)量寄存器的結構,例如上例的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ù)量寄存器的結構,增加電路復雜度。而在描述時序邏輯電路時則經常使用無ELSE部分的一類IF語句。151第150頁/共348頁三、CASE語句CASE語句即選擇語句,它根據表達式的值,從多項順序語句中選擇滿足條件的一項來執(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ù)據分配器,注意信號S為STD_LOGIC_VECTOR數(shù)據類型,其可能取值不止4種,因為STD_LOGIC數(shù)據類型有九種取值。故上例中存在WHENOTHERS這一項。154第153頁/共348頁下表為分配器的真值表輸入輸出S1S0Y3Y2Y1Y000000D0100D0100D0011D000

從上例可以看出,CASE語句的格式與電路的真值表相對應。155第154頁/共348頁CASE語句的格式:

CASE

表達式IS

WHEN

選擇值=>順序語句;

WHEN

選擇值=>順序語句;

WHENOTHERS=>順序語句;

ENDCASE;[重點提示]CASE語句的格式與所描寫的電路的真值表具有對應性。156第155頁/共34

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論