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

下載本文檔

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

文檔簡(jiǎn)介

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

2、述。2、具有強(qiáng)大的行為描述能力,并擁有良好的可讀性以及程序的移植性。即設(shè)計(jì)者既可以不懂硬件結(jié)構(gòu),又可以不管最終的目標(biāo)器件,僅需要進(jìn)行電子系統(tǒng)設(shè)計(jì)和性能優(yōu)化。3、具有方便的邏輯仿真與調(diào)試功能,并不需要做任何實(shí)際的電路實(shí)驗(yàn)。4、具有豐富的庫(kù)函數(shù),設(shè)計(jì)人員可以直接調(diào)用這些功能模塊。5、更加類似軟件上的高級(jí)語(yǔ)言。4.2 VHDL程序基本結(jié)構(gòu)VHDL的組成:實(shí)體描述(entity)結(jié)構(gòu)體1(architecture)結(jié)構(gòu)體n(architecture)又稱接口(interface),主要描述一個(gè)硬件模塊或系統(tǒng)的輸入、輸出接口。又稱主體(body),是對(duì)硬件內(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;-庫(kù)說(shuō)明語(yǔ)句-實(shí)體描述-輸入信號(hào)名-輸出信號(hào)名ARCHITECTURE delayed OF s_nand2 IS;BEGIN o1=i1 NAND i2 AFTER 5NS;END delayed;-結(jié)構(gòu)體描述-電路描述一、實(shí)體描述VHDL實(shí)體描述的基本格式:ENTITY 實(shí)體名 ISPORT( 端口名:端口類別,端口類型;端口名:端口類別,端口類型);END 實(shí)體名

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í)體定義了一個(gè)插座!端口類型 端口類型用來(lái)說(shuō)明數(shù)據(jù)、信號(hào)通過(guò)該端口的方向。主要有四種端口類型:IN單向輸入端口;OUT單向輸出端口;INOUT雙向輸入、輸出端口;BUFFER緩沖端口,既可為實(shí)體的輸出,也可用于反饋;二、結(jié)構(gòu)體描述VHDL結(jié)構(gòu)體描述的基本框

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

6、的設(shè)計(jì)中,高層次的設(shè)計(jì)模塊調(diào)用低層次的設(shè)計(jì)模塊,或直接用門電路設(shè)計(jì)單元來(lái)構(gòu)造復(fù)雜的邏輯電路的描述方法。結(jié)構(gòu)體有三種描述方式:1、行為描述法behavioral description 行為描述反映一個(gè)設(shè)計(jì)的功能或算法,一般使用進(jìn)程PROCESS,用順序語(yǔ)句表達(dá)。例題(3) 二輸入“與非”門的VHDL語(yǔ)言的行為描述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ā),是對(duì)“與非”門性能的一種描述。2、數(shù)據(jù)流描述法dataflow description 又稱寄存器傳輸描述,所反映的是數(shù)據(jù)經(jīng)過(guò)一定的邏輯運(yùn)算后,在輸入和輸出之間的傳送。所以,使用并發(fā)語(yǔ)句描述。例題(4) 由“異或”門和“與”門構(gòu)成的半加器VHDL語(yǔ)言描述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ò)描述模塊與模塊之間的連接關(guān)系,來(lái)反映整個(gè)系統(tǒng)的構(gòu)成和性能。所以,此方法適用于多層次設(shè)計(jì)。較多使用元件例化語(yǔ)句。例題(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; 在一個(gè)數(shù)字系統(tǒng)的設(shè)計(jì)中,三種描述方法都可能用到! 但不是任何一個(gè)設(shè)計(jì)均要進(jìn)行三種描述。YXNLMNABSUMCARRYX1A14.3 VHDL的庫(kù)和包 VHDL的庫(kù)分為三種類型:系統(tǒng)庫(kù)、IEEE庫(kù)和用戶庫(kù)。一、系

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

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

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

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

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

15、順序語(yǔ)句的形式出現(xiàn)的是順序信號(hào)賦值語(yǔ)句;在結(jié)構(gòu)體的進(jìn)程之外使用時(shí),作為并行語(yǔ)句的形式使用的是并行信號(hào)賦值語(yǔ)句,可用于仿只各種邏輯電路。例題(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、條件賦值語(yǔ)句條件賦值語(yǔ)句的基本格式:信號(hào)名 = 表達(dá)式1 WHEN 條件1 ELSE 表達(dá)式2 WHEN 條件2 ELSE 表達(dá)式n-1 WHEN 條件n-1 ELSE 表達(dá)式n; 例題(8)用條件賦值語(yǔ)句描述四選一多路選擇器。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ǔ)句注意:語(yǔ)句是并行描述,不能用在進(jìn)程和子程序中;語(yǔ)句對(duì)條件是有順序的,前面的條件優(yōu)先級(jí)較高;語(yǔ)句中最后一個(gè)表達(dá)式后面不含ELSE;語(yǔ)句中的條件為布爾型數(shù)值;語(yǔ)句不能嵌套,賦給信號(hào)的值不能是自身。3、選擇信號(hào)賦值語(yǔ)句選擇信號(hào)賦值語(yǔ)句的基本格式: WITH 表達(dá)式 SELECT 信號(hào)名 = 表達(dá)式1 WHEN 選擇條件1; 表達(dá)式2 WHEN 選擇條件2; 表達(dá)式n WHEN oth

18、ers; 例題(9)用信號(hào)選擇賦值語(yǔ)句描述四選一多路選擇器。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;二、順序描述語(yǔ)句1、進(jìn)程語(yǔ)句進(jìn)程語(yǔ)句PROCESS的基本格式: 進(jìn)程名: PROCESS(敏感信號(hào)1,敏感信號(hào)k) BEGIN 順序語(yǔ)句1 順序語(yǔ)句nEND PROCESS 進(jìn)程名: 2、順序信號(hào)和變量賦值語(yǔ)句 在PROCESS語(yǔ)句內(nèi),也可以使用信號(hào)和變量賦值語(yǔ)句。信號(hào)賦值語(yǔ)句的形式為: 信號(hào)名= 表達(dá)式;變量賦值語(yǔ)句的形式為: 變量名: = 表達(dá)式;3、IF語(yǔ)句多分支的IF語(yǔ)句形式為:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論