硬件描述語言VHDL課件_第1頁
硬件描述語言VHDL課件_第2頁
硬件描述語言VHDL課件_第3頁
硬件描述語言VHDL課件_第4頁
硬件描述語言VHDL課件_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章硬件描述語言VHDL組合電路設(shè)計時序邏輯電路設(shè)計第3章硬件描述語言VHDL組合電路設(shè)計3.1多路選擇器的VHDL描述一個完整的VHDL語言程序包括五部分:(1)實(shí)體(entity):用于描述設(shè)計電路的外部輸入、輸出接口信號;(2)結(jié)構(gòu)體(architecture):用于描述電路內(nèi)部的結(jié)構(gòu)和行為;(3)程序包(package):用于存放各設(shè)計模塊能共享的數(shù)據(jù)類型、常量和子程序;(4)配置(configuration):用于從庫中選取所需單元,組成系統(tǒng)設(shè)計的不同版本;(5)庫(library):用于存放已經(jīng)編譯的實(shí)體、結(jié)構(gòu)體、程序包和配置。多路選擇器是典型的組合電路。

3.1多路選擇器的VHDL描述一個完整的VHDL語3.1多路選擇器的VHDL描述2選1多路選擇器的電路模型或元件圖如圖所示,例3-1是其VHDL的完整表述,即可使用VHDL綜合器直接綜合出實(shí)現(xiàn)既定功能的邏輯電路,對應(yīng)的邏輯電路如圖和波形圖如下所示,因而可以認(rèn)為是多路選擇器的內(nèi)部結(jié)構(gòu)。3.1多路選擇器的VHDL描述2選1多路選擇器的電3.1多路選擇器的VHDL描述3.1多路選擇器的VHDL描述3.1多路選擇器的VHDL描述例[3-1]libraryieee;--庫的使用說明useieee.std_logic_1164.all;entityT_mux2is--實(shí)體說明;Port(a,b,sel:inbit;q:outbit);--端口說明,用以描述器件的輸入、輸endendT_mux2;出引腳;architecturertlofT_mux2is--結(jié)構(gòu)體說明;beginprocess(sel,a,b)--進(jìn)程語句;beginifsel=‘0’then--if語句;q<=a;elseq<=b;endif;endprocess;endrtl;3.1多路選擇器的VHDL描述例[3-1]3.1多路選擇器的VHDL描述例[3-2]libraryieee;--庫的使用說明useieee.std_logic_1164.all;entityT_mux2is--實(shí)體說明;Port(a,b,sel:inbit;q:outbit);--端口說明,用以描述器件的輸入、輸endendT_mux2;出引腳;architecturertlofT_mux2is--結(jié)構(gòu)體說明;signald,e:bit;begind<=aand(notsel);e<=bandsel;y<=dore;endrtl;3.1多路選擇器的VHDL描述例[3-2]3.1多路選擇器的VHDL描述例[3-3]libraryieee;--庫的使用說明useieee.std_logic_1164.all;entityT_mux2is--實(shí)體說明;Port(a,b,sel:bit;q:outbit);--端口說明,用以描述器件endendT_mux2;出引腳;architecturertlofT_mux2is--結(jié)構(gòu)體說明;beginy<=awhensel=‘0’elseb;endrtl;3.1多路選擇器的VHDL描述例[3-3]3.1多路選擇器的VHDL描述注意:電路的功能是可以唯一的;但是其電路的結(jié)構(gòu)方式不是唯一的,它決定于綜合器的基本元件庫的來源、優(yōu)化方向和約束的選擇、以及目標(biāo)器件(如FPGA)的結(jié)構(gòu)特點(diǎn)等。3.1多路選擇器的VHDL描述注意:3.1多路選擇器的VHDL描述庫的說明:庫是經(jīng)過編譯后的數(shù)據(jù)的集合,它存放包集合定義、實(shí)體定義、構(gòu)造體定義和配置定義。它的目的是:(1)提高設(shè)計效率,而且多組多人可以同時工作;(2)便于使設(shè)計遵循某些統(tǒng)一的語言標(biāo)準(zhǔn)或數(shù)據(jù)格式;(3)可以利用已有的設(shè)計成果。3.1多路選擇器的VHDL描述庫的說明:3.1多路選擇器的VHDL描述

庫的功能類似于DOS操作系統(tǒng)的目錄,庫中存放設(shè)計的數(shù)據(jù)。在VHDL語言中,庫的說明總是放在設(shè)計單元的最前面:LIBRARY庫名;這樣,在設(shè)計單元內(nèi)的語言就可以使用庫中的數(shù)據(jù)。由此可見,庫的好處在于使設(shè)計者可以共享已經(jīng)編譯過的設(shè)計結(jié)果。在VHDL語言中可以存在多個不同的庫,而且?guī)炫c庫之間是獨(dú)立的,不能互相嵌套。3.1多路選擇器的VHDL描述庫的功能類似于DOS3.1多路選擇器的VHDL描述

庫的種類有五種:IEEE庫、STD庫、ASIC矢量庫、用戶定義的庫和WORK庫;(1)IEEE庫:IEEE中有一個“STD_LOGIC_1164”的包集合,它是IEEE正式認(rèn)可的標(biāo)準(zhǔn)庫(2)STD庫:VHDL的標(biāo)準(zhǔn)庫,在庫中存放有”standard“的包集合是VHDL的標(biāo)準(zhǔn)配置;(3)ASIC庫:在VHDL中,為了進(jìn)行門級的仿真,各公司提供了面向ASIC的邏輯門庫。該庫中存放有與邏輯門一一對應(yīng)的實(shí)體。(4)WORK庫:現(xiàn)行作業(yè)庫,在使用時不需加以說明;(5)用戶定義庫:使用時需要加以說明。3.1多路選擇器的VHDL描述庫的種類有五種:IEEE3.1多路選擇器的VHDL描述一、庫的使用:(1)庫的說明:五種庫除了WORK庫和標(biāo)準(zhǔn)庫以外,其他的庫在使用時均需要加以說明,第一個語句是:LIBRARY庫名,表明是使用的哪一個庫,另外需要說明用的是庫中的哪個包集合以及項(xiàng)目名,第二句的使用格式如下:LIBRARY庫名.包集合名.項(xiàng)目名;例如libraryieee;useieee.std_logic_1164.all;(2)庫說明作用范圍:從實(shí)體的說明開始到該實(shí)體所屬的結(jié)構(gòu)體為止,整個設(shè)計都可以對庫的資源進(jìn)行調(diào)用。當(dāng)一個VHDL源程序出現(xiàn)兩個以上的實(shí)體時,每一實(shí)體的前面都需要有自己完整的庫的使用說明語句。

3.1多路選擇器的VHDL描述一、庫的使用:3.1多路選擇器的VHDL描述二、實(shí)體說明:實(shí)體描述的是電路器件的端口構(gòu)成和信號屬性,書寫格式如下:entity實(shí)體名is;generic(類屬表);--可沒有;port(端口名,端口名….:方向端口數(shù)據(jù)類型;……端口名,端口名….:方向端口數(shù)據(jù)類型);End實(shí)體名;1.generic提供靜態(tài)參數(shù)或是數(shù)據(jù)寬度等靜態(tài)特征,說明設(shè)計實(shí)體內(nèi)、外通信的參數(shù);必須放在實(shí)體端口說明之前,用于指定參數(shù)。其書寫格式如下:generic(常量名:數(shù)據(jù)類型:設(shè)定值);例如:generic(m:time:=1ns)

3.1多路選擇器的VHDL描述二、實(shí)體說明:3.1多路選擇器的VHDL描述2.端口說明:端口說明是對基本設(shè)計實(shí)體(單元)與外部接口的描述,也可是說是對外部引腳信號的名稱,數(shù)據(jù)類型和輸入輸出方向的描述,其一般書寫格式如下:port(端口名,端口名….:方向端口數(shù)據(jù)類型;……端口名,端口名….:方向端口數(shù)據(jù)類型);1)端口名:賦予每個外部引腳的名稱;2)端口方向:用來定義外部的引腳是輸入還是輸出。3.1多路選擇器的VHDL描述2.端口說明:3.1多路選擇器的VHDL描述表示方向的說明符及其含義如下所示:Out和buffer的區(qū)別:(1)out不可以在構(gòu)造體內(nèi)部使用,buffer可以;(2)當(dāng)一個構(gòu)造體用buffer說明輸出端口時,與其相連的另一個構(gòu)造體的端口也需要用buffer來說明。3.1多路選擇器的VHDL描述表示方向的說明符及其含義如下所3.1多路選擇器的VHDL描述3.端口的輸出類型:VHDL語言中共有10種數(shù)據(jù)類型。例如:bit,bit_vector4.實(shí)體名:由于實(shí)體名表達(dá)的是設(shè)計電路的功能,最好根據(jù)相應(yīng)的功能來來確定。注意:不應(yīng)用數(shù)字或中文名字來定義實(shí)體名,也不應(yīng)用與EDA工具庫中已定義好的元件名作為實(shí)體名,例如or2等,而且不能用數(shù)字起頭的實(shí)體名。3.1多路選擇器的VHDL描述3.端口的輸出類型:VHDL語3.1多路選擇器的VHDL描述三、結(jié)構(gòu)體結(jié)構(gòu)體對輸入、輸出關(guān)系可以用三種方式進(jìn)行描述,即行為描述(數(shù)學(xué)模型描述),寄存器傳輸描述(數(shù)據(jù)流描述),結(jié)構(gòu)描述(邏輯器件連接描述)。結(jié)構(gòu)體的書寫格式如下:architecture結(jié)構(gòu)體名of實(shí)體名is定義語句;begin功能描述語句;end結(jié)構(gòu)體名;3.1多路選擇器的VHDL描述三、結(jié)構(gòu)體3.1多路選擇器的VHDL描述“定義語句”包括在結(jié)構(gòu)體中,用以說明和定義數(shù)據(jù)對象、數(shù)據(jù)類型、元件調(diào)用聲明等。但“定義語句”不是必須的,“功能描述語句”則不同,結(jié)構(gòu)體中必須給出相應(yīng)的電路功能描述語句,可以是并行語句、順序語句或它們的混合。四、程序包(package):為了共享函數(shù)(function)、過程(procedure)元件(component)等,設(shè)計師為使用者提供了一些公共的資源,放在程序包里。還可以自己定義程序包。程序包的說明格式如P28所示。3.1多路選擇器的VHDL描述“定義語句”包括在結(jié)3.1多路選擇器的VHDL描述五、配置(configuration)配置語句描述層與層之間的連接關(guān)系以及實(shí)體與結(jié)構(gòu)體之間的連接關(guān)系。我們可以利用配置語句說明為這個實(shí)體指定一個結(jié)構(gòu)體。書寫格式如下:configuration配置名of實(shí)體名is語句說明;end配置名;3.1多路選擇器的VHDL描述五、配置(configurat3.2VHDL的數(shù)據(jù)對象在VHDL中凡是可以賦予一個值的對象都稱為客體,客體主要包括以下三種:信號、常數(shù)和變量(signal、constant、variable)。在電子電路的設(shè)計中,這三類客體都有一定的物理含義:信號對應(yīng)地代表某一條硬件連接線,常數(shù)相應(yīng)地代表數(shù)字電路中的電源和地,變量的對應(yīng)關(guān)系不是很直接,通常是一些暫存量的載體。常數(shù)是一個固定的值,定義語句:constant:常量名:數(shù)據(jù)類型:=表達(dá)式例如:constantVcc:real:=5.0V;常數(shù)一旦賦值以后就不能改變,他不像信號和變量,可以任意帶入不同的值;而且常數(shù)所賦的值必須和定義的數(shù)據(jù)類型一致。3.2VHDL的數(shù)據(jù)對象在VHDL中凡是可以賦予3.2VHDL的數(shù)據(jù)對象變量:變量的只能在進(jìn)程語句、過程語句和函數(shù)語句中使用,它是一個局部量,它的作用相當(dāng)于是作為臨時的數(shù)據(jù)存儲單元,是中間媒介,在實(shí)際的硬件電路中不存在,而且變量的賦值是立即生效的。變量的語句格式如下:variable變量名:數(shù)據(jù)類型約束條件:=表達(dá)式例如variablecount:integerrange0to25;變量的賦值如下變量名:=表達(dá)式;變量不能產(chǎn)生任何的延時。例如temp1,temp2,temp3都是變量,那么下式產(chǎn)生延時的方法是不合法的:temp3:=temp1+temp2after10ns;3.2VHDL的數(shù)據(jù)對象變量:3.2VHDL的數(shù)據(jù)對象信號:信號表達(dá)電子電路內(nèi)部的實(shí)際硬件接線,它除了沒有數(shù)據(jù)流動方向的說明,和“端口”的概念幾乎一致,是全局變量通常在結(jié)構(gòu)體、包集合和實(shí)體說明中使用。語句格式如下:signal信號名:數(shù)據(jù)類型約束條件:=表達(dá)式;例如:signalgroundbit:=‘1’;信號的賦值語句信號名<=表達(dá)式;信號帶入時可以附加延時;程序如3-2所示3.2VHDL的數(shù)據(jù)對象信號:3.2VHDL的數(shù)據(jù)對象信號和變量的異同主要有以下幾點(diǎn):

(1)賦值符號不同信號和變量可以相互賦值;(2)使用的場合不同;(3)仿真的賦值時間不同。在仿真時信號和變量的賦值時間是不相同的,如在一個進(jìn)程語句中,變量是立即賦值的,而信號的賦值是在變量執(zhí)行完才賦值的。例如:[1]PROCESS(A,B,C,D)BEGIND<=A;X<=B+D;D<=C;Y<=B+D;ENDPROCESS;

3.2VHDL的數(shù)據(jù)對象信號和變量的異同主要有以下幾點(diǎn):3.2VHDL的數(shù)據(jù)對象[2]PROCESS(A,B,C,D)BEGIND:=A;X:=B+D;D:=C;Y:=B+D;ENDPROCESS;執(zhí)行結(jié)果:[1]X<=B+C;Y<=B+C;[2]X<=B+A;Y<=B+C;3.2VHDL的數(shù)據(jù)對象[2]PROCESS(A,3.3寄存器描述及其VHDL語言現(xiàn)象D觸發(fā)器的VHDL描述:libraryieee;useieee.std_logic_1164.a

溫馨提示

  • 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

提交評論