數(shù)字電路軟件實驗:第四章 硬件描述語言VHDL_第1頁
數(shù)字電路軟件實驗:第四章 硬件描述語言VHDL_第2頁
數(shù)字電路軟件實驗:第四章 硬件描述語言VHDL_第3頁
數(shù)字電路軟件實驗:第四章 硬件描述語言VHDL_第4頁
數(shù)字電路軟件實驗:第四章 硬件描述語言VHDL_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章 硬件描述語言VHDLAltera Hardware Description Language4.1 概述4.2 VHDL程序基本結(jié)構(gòu)4.3 VHDL的庫和包4.4 VHDL的基本詞法4.5 VHDL的基本語法4.6 VHDL描述的實例第四章 硬件描述語言VHDL4.1 概述 VHDL,即(Very-High-Speed Integrated Circuit Hardware Description Language),直接通過對硬件行為的描述來設(shè)計數(shù)字邏輯系統(tǒng)。 VHDL的主要優(yōu)點:1、是一種包括系統(tǒng)行為級、寄存器傳輸級和邏輯門級多個設(shè)計層次,并持支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種行式的混合描

2、述。2、具有強大的行為描述能力,并擁有良好的可讀性以及程序的移植性。即設(shè)計者既可以不懂硬件結(jié)構(gòu),又可以不管最終的目標器件,僅需要進行電子系統(tǒng)設(shè)計和性能優(yōu)化。3、具有方便的邏輯仿真與調(diào)試功能,并不需要做任何實際的電路實驗。4、具有豐富的庫函數(shù),設(shè)計人員可以直接調(diào)用這些功能模塊。5、更加類似軟件上的高級語言。4.2 VHDL程序基本結(jié)構(gòu)VHDL的組成:實體描述(entity)結(jié)構(gòu)體1(architecture)結(jié)構(gòu)體n(architecture)又稱接口(interface),主要描述一個硬件模塊或系統(tǒng)的輸入、輸出接口。又稱主體(body),是對硬件內(nèi)部結(jié)構(gòu)或性能的具體描述。例題(1)二輸入“與非

3、”門的VHDL描述LIBRARY IEEE;USE IEEE. std_logic_1163.ALL;ENTITY s_nand2 IS PORT(i1,i2: IN BIT; o1: OUT BIT);END s_nand2;-庫說明語句-實體描述-輸入信號名-輸出信號名ARCHITECTURE delayed OF s_nand2 IS;BEGIN o1=i1 NAND i2 AFTER 5NS;END delayed;-結(jié)構(gòu)體描述-電路描述一、實體描述VHDL實體描述的基本格式:ENTITY 實體名 ISPORT( 端口名:端口類別,端口類型;端口名:端口類別,端口類型);END 實體名

4、;例題(2)描述下圖硬件模塊BUBBLEDATA_READYDATA_INSTARTDATA_OUTENTITY BUBBLE IS PORT (DATA_READY: IN BOOLEAN; DATA_IN: IN INTEGER; START: IN STD_LOGIC; DATA_OUT: OUT INTEGER);ENDBUBBLE;實體定義了一個插座!端口類型 端口類型用來說明數(shù)據(jù)、信號通過該端口的方向。主要有四種端口類型:IN單向輸入端口;OUT單向輸出端口;INOUT雙向輸入、輸出端口;BUFFER緩沖端口,既可為實體的輸出,也可用于反饋;二、結(jié)構(gòu)體描述VHDL結(jié)構(gòu)體描述的基本框

5、架如下:ARCHITECTURE 結(jié)構(gòu)體名 OF 實體名 ISBEGINEND 結(jié)構(gòu)體名;結(jié)構(gòu)體的三種描述 行為描述該描述表示輸入與輸出之間的轉(zhuǎn)化的行為,不 包含任何結(jié)構(gòu)的信息,行為描述是對系統(tǒng)數(shù)學模型的描述,在該描述種大量采用算術(shù)運算、關(guān)系運算、慣性延時、傳輸延時等難于進行邏輯綜合及不能進行邏輯綜合的VHDL語句。 數(shù)據(jù)流描述該描述又稱為寄存器傳輸(RTL)描述方式,是一種明確規(guī)定寄存器的描述方法。在該描述種,或者采用寄存器硬件一一對應(yīng)的直接描述;要么采用寄存器之間的功能描述。類似布爾方程,既可描述組合電路,又可描述時序電路。既含有邏輯單元的結(jié)構(gòu)信息,又隱含表示某種行為。結(jié)構(gòu)描述它用在多層次

6、的設(shè)計中,高層次的設(shè)計模塊調(diào)用低層次的設(shè)計模塊,或直接用門電路設(shè)計單元來構(gòu)造復雜的邏輯電路的描述方法。結(jié)構(gòu)體有三種描述方式:1、行為描述法behavioral description 行為描述反映一個設(shè)計的功能或算法,一般使用進程PROCESS,用順序語句表達。例題(3) 二輸入“與非”門的VHDL語言的行為描述LIBRARY IEEE;USE IEEE. std_logic_1163.ALL;ENTITY s_nand2 ISPORT(i1,i2: IN BIT; o1: OUT BIT);END s_nand2;ARCHITECTURE another OF nand2 IS BEGIN

7、PROCESS(i1,i2) BEGIN IF i1=1 AND i2=1 THEN o1=0 AFTER 5ns; ELSE o1=1 AFTER 5ns; END IF;END PROCESS;END another; 完全從“與非”門輸入、輸出的邏輯關(guān)系出發(fā),是對“與非”門性能的一種描述。2、數(shù)據(jù)流描述法dataflow description 又稱寄存器傳輸描述,所反映的是數(shù)據(jù)經(jīng)過一定的邏輯運算后,在輸入和輸出之間的傳送。所以,使用并發(fā)語句描述。例題(4) 由“異或”門和“與”門構(gòu)成的半加器VHDL語言描述ARCHITECTURE dataflow OF half_adder ISBE

8、GIN SUM = A xor B AFTER 8ns; CARRY = A and B AFTER 4ns;END dataflow;ENTITY half_adder IS PORT( A, B: IN BIT; SUM, CARRY: OUT BIT); 3、結(jié)構(gòu)描述法structural description 這種描述法是以部件(component)為基礎(chǔ),通過描述模塊與模塊之間的連接關(guān)系,來反映整個系統(tǒng)的構(gòu)成和性能。所以,此方法適用于多層次設(shè)計。較多使用元件例化語句。例題(5) 由“異或”門和“與”門構(gòu)成的半加器結(jié)構(gòu)描述ARCHITECTURE syn OF half_adder

9、ISCOMPONENT XOR2 PORT(X,Y: IN BIT; N: OUT BIT);END COMPONENT;COMPONENT AND2; PORT(L,M: IN BIT; N: OUT BIT);END COMPONENT; BEGIN X1:XOR2 PORT MAP(A,B,SUM); A1:AND2 PORT MAP(A, B, CARRY);END syn; 在一個數(shù)字系統(tǒng)的設(shè)計中,三種描述方法都可能用到! 但不是任何一個設(shè)計均要進行三種描述。YXNLMNABSUMCARRYX1A14.3 VHDL的庫和包 VHDL的庫分為三種類型:系統(tǒng)庫、IEEE庫和用戶庫。一、系

10、統(tǒng)庫 系統(tǒng)庫是VHDL語言本身預定義的庫STD庫是系統(tǒng)標準庫,所有系統(tǒng)本身預定義的類型和有關(guān)操作都包含在該庫中。WORK庫是用戶的工作庫,即用戶當前的工作目錄。使用時不需要用LIBRARY、USE專門說明!二、IEEE庫 IEEE庫是IEEE認可的標準庫,其中包括對于STD_LOGIC類型以及有關(guān)函數(shù)的定義,所有這些定義都封裝在稱為“STD_LOGIC_1164”的程序包 (Package)中。使用時需要用LIBRARY、USE預先聲明!三、用戶庫 用戶庫是VHDL軟件提供給廠商開發(fā)的庫,如帶參數(shù)邏輯函數(shù)庫LPM等,在LPM庫中提供了許多標準邏輯部件的描述。用戶也可以自己建立VHDL庫!四、程

11、序包程序包由兩部分構(gòu)成:包的說明部分(Package Declaration)包的主體部分(Package Body)程序包的基本結(jié)構(gòu):PACKAGE 包名 ISEND 程序包名;PACKAGE BODY 包名 ISEND 包名;程序包說明部分:常量說明;信號說明,該信號可以被所有的結(jié)構(gòu)體使用;類型說明;函數(shù)或過程說明;部件(Component)說明; 程序包的主體部分則是對所包含的函數(shù)、過程、結(jié)構(gòu)體進行具體描述。 五、庫和程序包的引用 在所有的VHDL源程序中都要首先聲明使用什么VHDL庫,并要使用關(guān)鍵字LIBRARY。 在聲明了使用哪個VHDL庫以后,還要聲明使用這個庫中的哪個程序包。采用

12、關(guān)鍵字USE聲明程序包;若要使用程序包中的所有內(nèi)容,則用關(guān)鍵字ALL。 例題(6) 在一個VHDL程序的開始,經(jīng)常會有下列語句。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; 4.4 VHDL的基本詞法 標識符是VHDL語言對各種數(shù)據(jù)對象的一種標識,標識符必須用英文字符開頭,后面可以跟數(shù)字或下劃線,若下劃線其后還要有英文。一、標識符在VHDL程序中保留字要用大寫,或黑體。二、數(shù)據(jù)對象 VHDL語言中有三種數(shù)據(jù)對象:常量、變量、信號。常量的定義格式:1、常量CONSTANT 常量名:= 常量值; 常量只可以在說明的時候進行賦值,一般常量的賦值在程序開始前說明!

13、常量的定義格式:2、變量VARIABLES 變量名:數(shù)據(jù)類型 約束條件:= 表達式;變量的使用規(guī)則和限制范圍:1、不能用于硬件連線和存儲元件;2、所賦初值不是預設(shè)的,在某一時刻只能有一個值;3、仿真時,變量用于建模;4、系統(tǒng)綜合時,變量用于計算,可作為數(shù)據(jù)暫存:5、在進程中,變量的使用在進程之內(nèi)。信號的定義格式:3、信號SIGNAL 信號名:數(shù)據(jù)類型 約束條件:= 表達式;信號的使用規(guī)則:1、“=”表示代入賦值;2、信號總是在結(jié)構(gòu)體(ARCHITECTURE)中聲明。三、數(shù)據(jù)類型 在數(shù)據(jù)對象中均要指定數(shù)據(jù)類型。1、標準數(shù)據(jù)類型INTEGER 整數(shù)型;REAL 實數(shù)型;BIT 二進制型;BIT_

14、VECTOR 二進制向量;BOOLEAN 布爾型;CHARACTER 字符型;STRING 字符串;TIME 時間類型。2、用戶自定義類型枚舉類型:TYPE 枚舉類型名 IS(枚舉型值表);數(shù)組類型:TYPE 樹組名 IS ARRAY(范圍)OF 基類型;子類型:SUB TYPE 子類型名 IS 已定義類型名(范圍);四、運算符五、VHDL表達式1、在一個表達式中,數(shù)據(jù)的類型應(yīng)該相同;2、VHDL支持運算符重載。4.4 VHDL的基本語法一、并行描述語句1、并行賦值語句并行賦值語句的基本格式:信號名=表達式;信號名=表達式 AFTER 延持時間; 信號賦值語句有兩種類型:在進程內(nèi)部使用時,作為

15、順序語句的形式出現(xiàn)的是順序信號賦值語句;在結(jié)構(gòu)體的進程之外使用時,作為并行語句的形式使用的是并行信號賦值語句,可用于仿只各種邏輯電路。例題(7)半加器的數(shù)據(jù)流描述。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL; ENTITY half_adder IS PORT(a,b :IN BIT; s,co:OUT BIT);END half_adder ; ARCHITECTURE hadd OF half_adder IS SIGNAL c,d : BIT; BEGIN c = a OR b; d = a NAND b; co = NOT d; s = c AND

16、 d;END hadd;2、條件賦值語句條件賦值語句的基本格式:信號名 = 表達式1 WHEN 條件1 ELSE 表達式2 WHEN 條件2 ELSE 表達式n-1 WHEN 條件n-1 ELSE 表達式n; 例題(8)用條件賦值語句描述四選一多路選擇器。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL; ENTITY mux4 IS PORT (d0,d1,d2,d3,a,b :IN STD_LOGIC; y: OUT STD_LOGIC);END mux4;ARCHITECTURE sample12 OF mux4 IS; BEGIN y = d0 WHEN

17、 a=0 AND b=0 ELSE d1 WHEN a=0 AND b=1 ELSE d2 WHEN a=1 AND b=0 ELSE d3 WHEN a=1 AND b=1 ;END sample12;使用條件賦值語句注意:語句是并行描述,不能用在進程和子程序中;語句對條件是有順序的,前面的條件優(yōu)先級較高;語句中最后一個表達式后面不含ELSE;語句中的條件為布爾型數(shù)值;語句不能嵌套,賦給信號的值不能是自身。3、選擇信號賦值語句選擇信號賦值語句的基本格式: WITH 表達式 SELECT 信號名 = 表達式1 WHEN 選擇條件1; 表達式2 WHEN 選擇條件2; 表達式n WHEN oth

18、ers; 例題(9)用信號選擇賦值語句描述四選一多路選擇器。END mux4;ARCHITECTURE sample OF mux4 IS BEGIN WITH a&b SELECT y = d0 WHEN “00”; d1 WHEN “01”; d2 WHEN “10”; d3 WHEN “11”;END sample;二、順序描述語句1、進程語句進程語句PROCESS的基本格式: 進程名: PROCESS(敏感信號1,敏感信號k) BEGIN 順序語句1 順序語句nEND PROCESS 進程名: 2、順序信號和變量賦值語句 在PROCESS語句內(nèi),也可以使用信號和變量賦值語句。信號賦值語句的形式為: 信號名= 表達式;變量賦值語句的形式為: 變量名: = 表達式;3、IF語句多分支的IF語句形式為:

溫馨提示

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

評論

0/150

提交評論