![It計(jì)算機(jī)課件 第四章 VHDL基本描述語(yǔ)句_第1頁(yè)](http://file4.renrendoc.com/view14/M00/12/1B/wKhkGWZCgCWAXi5fAAC2QQtZuNo272.jpg)
![It計(jì)算機(jī)課件 第四章 VHDL基本描述語(yǔ)句_第2頁(yè)](http://file4.renrendoc.com/view14/M00/12/1B/wKhkGWZCgCWAXi5fAAC2QQtZuNo2722.jpg)
![It計(jì)算機(jī)課件 第四章 VHDL基本描述語(yǔ)句_第3頁(yè)](http://file4.renrendoc.com/view14/M00/12/1B/wKhkGWZCgCWAXi5fAAC2QQtZuNo2723.jpg)
![It計(jì)算機(jī)課件 第四章 VHDL基本描述語(yǔ)句_第4頁(yè)](http://file4.renrendoc.com/view14/M00/12/1B/wKhkGWZCgCWAXi5fAAC2QQtZuNo2724.jpg)
![It計(jì)算機(jī)課件 第四章 VHDL基本描述語(yǔ)句_第5頁(yè)](http://file4.renrendoc.com/view14/M00/12/1B/wKhkGWZCgCWAXi5fAAC2QQtZuNo2725.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章VHDL基本描述語(yǔ)句
第四章VHDL基本描述語(yǔ)句
4.1順序描述語(yǔ)句
4.2并行描述語(yǔ)句
4.3屬性描述語(yǔ)句
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
4.1VHDL順序語(yǔ)句
順序語(yǔ)句(SequentialStaements)和并行語(yǔ)句(Concurrent
Statements)是VHDL程序設(shè)計(jì)中兩大基本描述語(yǔ)句系列。在
邏輯系統(tǒng)的設(shè)計(jì)中,這些語(yǔ)句從多側(cè)面完整地描述數(shù)字系統(tǒng)
的硬件結(jié)構(gòu)和基本邏輯功能,其中包括通信的方式、信號(hào)的
賦值、多層次的元件例化以及系統(tǒng)行為等。
順序語(yǔ)句是相對(duì)于并行語(yǔ)句而言的,其特點(diǎn)是每一條順
序語(yǔ)句的執(zhí)行(指仿真執(zhí)行)順序是與它們的書寫順序基本一致
的。
在理解過(guò)程中要注意區(qū)分VHDL語(yǔ)言的軟件行為及描述綜
合后的硬件行為間的差異。
第4章VHDL基本描述語(yǔ)句
順序語(yǔ)句只能出現(xiàn)在進(jìn)程(Process)和子程序中。在
VHDL中,一個(gè)進(jìn)程是由一系列順序語(yǔ)句構(gòu)成的,在同一設(shè)
計(jì)實(shí)體中,所有的進(jìn)程是并行執(zhí)行的。然而任一給定的時(shí)
刻內(nèi),在每一個(gè)進(jìn)程內(nèi),只能執(zhí)行一條順序語(yǔ)句。一個(gè)進(jìn)
程與其設(shè)計(jì)實(shí)體的其他部分進(jìn)行數(shù)據(jù)交換的方式只能通過(guò)
信號(hào)或端口。如果要在進(jìn)程中完成某些特定的算法和邏輯
操作,也可以通過(guò)依次調(diào)用子程序來(lái)實(shí)現(xiàn),但子程序本身
并無(wú)順序和并行語(yǔ)句之分。利用順序語(yǔ)句可以描述邏輯系
統(tǒng)中的組合邏輯、時(shí)序邏輯或它們的綜合體。
VHDL有如下六類基本順序語(yǔ)句:賦值語(yǔ)句;轉(zhuǎn)向控制
語(yǔ)句;等待語(yǔ)句;子程序調(diào)用語(yǔ)句;返回語(yǔ)句;空操作語(yǔ)
句?!D一-
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
4.4.1WAIT語(yǔ)句
進(jìn)程的運(yùn)行要么處于執(zhí)行狀態(tài),要么處于掛起狀態(tài),進(jìn)程
的執(zhí)行是由敏感信號(hào)列表來(lái)觸發(fā)的,所以此時(shí)進(jìn)程的同步點(diǎn)
由敏感信號(hào)列表來(lái)控制,這是一種隱式同步,同步點(diǎn)
在“ENDPROCESS[進(jìn)程名廠這一行上。
當(dāng)進(jìn)程沒有敏感信號(hào)表時(shí),進(jìn)程的狀態(tài)就由WAIT來(lái)控制,
這是一顯式同步,同步點(diǎn)在“WAIT語(yǔ)句”這一行上。
在進(jìn)程中(包括過(guò)程中),當(dāng)執(zhí)行到WAIT等待語(yǔ)句時(shí),運(yùn)
行程序?qū)⒈粧炱?,直到滿足此語(yǔ)句設(shè)置的結(jié)束掛起條件后,
將重新開始執(zhí)行進(jìn)程或過(guò)程中的程序。VHDL規(guī)定,已列出敏
感量的進(jìn)程中不能使用任何形式的WAIT語(yǔ)句。
第4章VHDL基本描述語(yǔ)句______________________
LWAIT語(yǔ)句說(shuō)明
如果在進(jìn)程中僅僅使用WAIT語(yǔ)句而沒有其它條件使
進(jìn)程跳出等待,則進(jìn)程將進(jìn)入無(wú)限等待狀態(tài),這是正常的
程序設(shè)計(jì)中應(yīng)該避免的,此時(shí)電路仿真表現(xiàn)為“死機(jī)”。
cwaitl:PROCESS
BEGIN
y<=(aANDb)OR(mXORt);
zv=cNANDd;
WAIT;—無(wú)限等待
ENDPROCESScwaitl;
小缸第4章VHDL基本描述語(yǔ)句______________________
2.WAITFOR語(yǔ)句說(shuō)明
WAITFOR時(shí)間表達(dá)式為超時(shí)語(yǔ)句,在此語(yǔ)句中定義了一
個(gè)時(shí)間段,從執(zhí)行到當(dāng)前的WAIT語(yǔ)句開始,在此時(shí)間段
內(nèi),進(jìn)程處于掛起狀態(tài),當(dāng)超過(guò)這一時(shí)間段后,進(jìn)程自動(dòng)
恢復(fù)執(zhí)行。(此語(yǔ)句不可綜合)
cwait2:PROCESS
BEGIN
yv=(aANDb)OR(mXORt);
zv=cNANDd;
WAITFOR10*(ctl+ct2);--等待由該表達(dá)式
計(jì)算的時(shí)間
ENDPROCESScwait2;
茄k第4章VHDL基本描述語(yǔ)句______________________
3.WAITON語(yǔ)句說(shuō)明
WAITON信號(hào)[,信號(hào)],稱為敏感信號(hào)等待語(yǔ)句,
在信號(hào)表中列出的信號(hào)是等待語(yǔ)句的敏感信號(hào)。
當(dāng)進(jìn)程執(zhí)行該等待語(yǔ)句時(shí),進(jìn)程被掛起,然后等待敏
感信號(hào)的變化(如從0?1或從1?0的變化),只要進(jìn)程表中的
信號(hào)有一個(gè)發(fā)生變化,進(jìn)程將結(jié)束掛起,繼續(xù)執(zhí)行WAIT
ON語(yǔ)句后面的語(yǔ)句。
如:WAITONSI,S2;
表示當(dāng)SI或S2中任一信號(hào)發(fā)生改變時(shí),就恢復(fù)執(zhí)行
WAIT語(yǔ)句之后的語(yǔ)句。
?k第4章VHDL基本描述語(yǔ)句
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux2_lIS
P0RT(data09datal:INSTDLOGIC;
sei:INSTDLOGIC;
q:OUTSTDLOGIC);
ENDmux21;
茄k第4章VHDL基本描述語(yǔ)句______________________
ARCHITECTUREbehavioralOFmux2_lIS
SIGNALtemp1,temp2,temp3:STDLOGIC;
BEGIN
cwait3:PROCESS
BEGIN
tempiv=dataOANDsei;
temp2v=datalAND(NOTsei);
temp3<=tempiORtemp2;
q<=temp3;
WAITONdataO,data1,q;
ENDPROCESScwait3;
ENDbehavioral;
茄k第4章VHDL基本描述語(yǔ)句______________________
WAITON語(yǔ)句和PROCESS語(yǔ)句中所使用的敏感信號(hào)列表的對(duì)比
ARCHITECTUREbehavioralOFmux2_lIS
SIGNALtemp1,temp2,temp3:STDLOGIC;
BEGIN
cwait4:PROCESS(dataO,datal,q)
BEGIN
tempi<=dataOANDsei;
temp2<=datalAND(NOTsei);
temp3v二tempiORtemp2;
q<=temp3;
ENDPROCESScwait4;
ENDbehavioral;
第4章VHDL基本描述語(yǔ)句______________________
…。4.WAITUNTIL語(yǔ)句說(shuō)明
WAITUNTIL條件表達(dá)式;稱為條件等待語(yǔ)句,該語(yǔ)
句將把進(jìn)程掛起,直到條件表達(dá)式中所含信號(hào)發(fā)生了改變,
并且條件表達(dá)式為真時(shí),進(jìn)程才能脫離掛起狀態(tài),恢復(fù)執(zhí)
行WAIT語(yǔ)句之后的語(yǔ)句。
條件表達(dá)式中至少應(yīng)該包含一個(gè)信號(hào)量,否則該表達(dá)
式在進(jìn)程被掛起后就不再計(jì)算。
一般地,只有WAIT_UNTIL格式的等待語(yǔ)句可以被綜
合器接受(其余語(yǔ)句格式只能在VHDL仿真器中使用)。
一般地,在一個(gè)進(jìn)程中使用了WAIT語(yǔ)句后,經(jīng)綜合就
會(huì)產(chǎn)生時(shí)序邏輯電路。時(shí)序邏輯電路的運(yùn)行依賴于時(shí)鐘的
上升沿或下降沿,同時(shí)還具有數(shù)據(jù)存儲(chǔ)的功能。
小缸第4章VHDL基本描述語(yǔ)句______________________
ARCHITECTUREbehavioralOFexamplewaituntilIS
SIGNALtemp:INTEGER;
BEGIN
cwait5:PROCESS
BEGIN
*
*
WAITUNTIL((temp+5)>=20);該表
達(dá)式是布爾表達(dá)式
ENDPROCESScwait5;
ENDbehavioral;
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
WAITUNTILENABLE=1;進(jìn)程的啟動(dòng)條件是ENABLE出現(xiàn)一個(gè)上跳
信號(hào)沿。
PROCESS
BEGIN
WAITUNTILCLK=1;
AVE〈=A;該進(jìn)程將完成一個(gè)
WAITUNTILCLK=T;硬件求平均的功能,每
〈=;
AVEAVE+A一個(gè)時(shí)鐘脈沖由A輸入一
WAITUNTILCLK=1;
個(gè)數(shù)值,4個(gè)時(shí)鐘脈沖后
AVE〈=AVE+A;
WAITUNTILCLK=T;將獲得此4個(gè)數(shù)值的平均
AVE<=(AVE+A)/4;值。
ENDPROCESS;
茄k第4章VHDL基本描述語(yǔ)句______________________
4.1.2代入語(yǔ)句
信號(hào)代入語(yǔ)句格式:
目的信號(hào)量<=信號(hào)量表達(dá)式;
表示把右邊的信號(hào)量表達(dá)式的值代入到目的信號(hào)量。
SIGNALA,B:STD_LOGIC_VECTOR(1TO4);
A(1T02)v="10”;一等效于A(1):=T,A(2):=609
A(4DOWNTOl)<=n1011n;
tempO<=aNANDb;
茄k第4章VHDL基本描述語(yǔ)句______________________
信號(hào)和變量不同,信號(hào)具有全局性特征,它不但可以
作為一個(gè)設(shè)計(jì)實(shí)體內(nèi)部各單元之間數(shù)據(jù)傳送的載體,而且
可通過(guò)信號(hào)與其他的實(shí)體進(jìn)行通信(端口本質(zhì)上也是一種信
號(hào))。信號(hào)的賦值并不是立即發(fā)生的,它發(fā)生在一個(gè)進(jìn)程結(jié)
束時(shí)。賦值過(guò)程總是有某種延時(shí)的,它反映了硬件系統(tǒng)并
不是立即發(fā)生的,它發(fā)生在一個(gè)進(jìn)程結(jié)束時(shí)。賦值過(guò)程總
是有某些延時(shí)的,它反映了硬件系統(tǒng)的重要特性,綜合后
可以找到與信號(hào)對(duì)應(yīng)的硬件結(jié)構(gòu),如一根傳輸導(dǎo)線、一個(gè)
輸入輸出端口或一個(gè)D觸發(fā)器等。
第4章VHDL基本描述語(yǔ)句______________________
4.1.3賦值語(yǔ)句
變量賦值語(yǔ)句格式:
變量賦值目標(biāo)尸賦值源;
表示把右邊的變量表達(dá)式的值代入到目的變量。
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
cfuzhi:PROCESS
BEGIN
tempO:=cvolt;—變量直接賦值
tempi:=(cvolt+1.8)*ccurrent;一變量表達(dá)式賦值
temp2:=c+78;
temp3:=c/5;—此時(shí)c必須是5的倍數(shù)
temp4:=d;
temp5:=temp4(2);
ENDPROCESScfuzhi;
ENDbehavioral;
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
變量賦值與信號(hào)賦值的區(qū)別
(1)變量只能在進(jìn)程、子程序中使用,無(wú)法將其值傳遞到進(jìn)
程之外。信號(hào)具有全局性特征,它不但可以作為一個(gè)設(shè)計(jì)實(shí)體
內(nèi)部各單元之間數(shù)據(jù)傳送的載體,而且可通過(guò)信號(hào)與其他的實(shí)
體進(jìn)行通信。
(2)對(duì)變量的賦值是立即發(fā)生的(假設(shè)進(jìn)程已啟動(dòng)),即是一
種時(shí)間延遲為零的賦值行為。對(duì)信號(hào)的賦值不是立即發(fā)生的,
它發(fā)生在一個(gè)進(jìn)程結(jié)束時(shí),賦值過(guò)程總是有某種延時(shí)的,它反
映了硬件系統(tǒng)并不是立即發(fā)生的,對(duì)應(yīng)了硬件系統(tǒng)的重要特性。
第4章VHDL基本描述語(yǔ)句
在某些條件下變量賦值行為與信號(hào)賦值行為所產(chǎn)生的
硬件結(jié)果是相同的,如都可以向系統(tǒng)引入寄存器。
在信號(hào)賦值中,需要注意的是,當(dāng)在同一進(jìn)程中,同
一信號(hào)賦值目標(biāo)有多個(gè)賦值源時(shí),信號(hào)賦值目標(biāo)獲得的是
最后一個(gè)賦值源的賦值,其前面相同的賦值目標(biāo)不作任何
變化。
茄k第4章VHDL基本描述語(yǔ)句__________________
ARCHITECTUREbehavioralOFexampleduibiIS
SIGNALdO,dl,d2,d3:STDLOGIC;--定義信號(hào)
SIGNALqO,ql:STDLOGIC;
BEGIN
cduibi_l:PROCESS(dO,dl,d2,d3)
BEGIN
d2<=dO;-信號(hào)量代入進(jìn)程cduibi_l的
運(yùn)行結(jié)果:一
qO<=d2ORd3;
qO=dlORd3
d2<=dl;-信號(hào)量代入ql=dlORd3
ql<=d2ORd3;
ENDPROCESScduibi_l;
癡k第4章VHDL基本描述語(yǔ)句
cduibi_2:PROCESS(dO,dl,d3)
VARIABLEm2:STDLOGIC;
BEGIN
m2:=dO;—變量賦值
qO<=m2ORd3;
m2:=dl;-變量賦值
進(jìn)程cduibi_2的
ql<=m2ORd3;運(yùn)行結(jié)果:一
ENDPROCESScduibi_2;qO=dOORd3
ql=dlORd3
ENDbehavioral;
第4章VHDL基本描述語(yǔ)句______________________
4.1.4IF語(yǔ)句
IF語(yǔ)句是一種條件語(yǔ)句,它根據(jù)語(yǔ)句中所設(shè)置的一種
或多種條件,有選擇地執(zhí)行指定的順序語(yǔ)句。
1.單IF語(yǔ)句
格式:IF條件THEN
順序語(yǔ)句;
ENDIF;
當(dāng)條件成立時(shí),執(zhí)行所包含的順序語(yǔ)句。如果條件不
成立,程序則跳過(guò)該IF語(yǔ)句所包含的順序語(yǔ)句向下繼續(xù)執(zhí)
行后續(xù)的語(yǔ)句。
第4章VHDL基本描述語(yǔ)句
LIBRARYIEEE;
USEIEEE.STDL0GIC1164.ALL;
ENTITYcdfflIS
PORT(d:INSTDLOGIC;
elk:INSTDLOGIC;
q:OUTSTDLOGIC;
qnot:OUTSTDLOGIC);
ENDcdffl;
茄k第4章VHDL基本描述語(yǔ)句______________________
ARCHITECTUREdataflowOFcdfflIS
BEGIN
cd叱example:PROCESS(elk)
BEGIN
IF(cl^EVENTANDclk=T)THEN一單IF語(yǔ)句
qv=d;
qnotv=NOTd;
ENDIF;
ENDPROCESScdffLexample;
ENDdataflow;
癡k第4章VHDL基本描述語(yǔ)句
力證第4章VHDL基本描述語(yǔ)句______________________
2.二選擇的IF語(yǔ)句
IF條件THEN
順序語(yǔ)句1;
ELSIF
順序語(yǔ)句2;
ENDIF;
條件成立時(shí)執(zhí)行順序語(yǔ)句1;條件不成立時(shí)執(zhí)行順序語(yǔ)
句2o
第4章VHDL基本描述語(yǔ)句
LIBRARYIEEE;-二選一選擇器
USEIEEE.STDL0GIC1164.ALL;
ENTITYmux2_2IS
PORT(a0,al:INBIT;
sei:INBIT;
q:OUTBIT);
ENDmux2_2;
癡k第4章VHDL基本描述語(yǔ)句
ARCHITECTURErtlOFmux2_2IS
BEGIN
cmux2_2:PROCESS(aO,al,sei)
BEGIN
IF(sei=fr)THEN一二選擇的IF語(yǔ)句
qv=aO;
ELSE
q<=al;
ENDIF;
ENDPROCESScmux2_2;
ENDrtl;
?k第4章VHDL基本描述語(yǔ)句
wsei1
i>"a10wwwLnArLnjwwmMiwuwmjwuu
aO0n_jn_n_ru
-Oq0JUWLfWWUUmwwwuwu
癡第4章VHDL基本描述語(yǔ)句
3.多選擇IF語(yǔ)句
IF條件1THEN
順序語(yǔ)句1;當(dāng)條件1成立時(shí),
ELSIF條件2THEN就執(zhí)行順序語(yǔ)句1;
順序語(yǔ)句2;否則判斷條件語(yǔ)句
2,如成立則執(zhí)行
順序語(yǔ)句2;依此
ELSIF條件nTHEN類推,如條件都不
順序語(yǔ)句n;成立,則執(zhí)行順序
ELSE語(yǔ)句n+1
順序語(yǔ)句n+1;
ENDIF;
茄k第4章VHDL基本描述語(yǔ)句______________________
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux4_lIS
P0RT(aO,al,a2,a3:INSTDLOGIC;
sei:INSTDLOGICVECTOR(1DOWNTO0);
q:OUTSTDLOGIC);
ENDmux4_l;
茄k第4章VHDL基本描述語(yǔ)句______________________
ARCHITECTURErtlOFmux4_lIS
BEGIN
cmux4_l:PROCESS(aO,al,a2,a3,sei)
BEGIN
IF(sei=”00")THEN-多選擇的IF語(yǔ)句
qv=aO;
ELSIF(sei="01”)THEN
q<=al;
ELSIF(sei="10")THEN
q<=a2;
ELSE
q<=a3;
ENDIF;
ENDPROCESScmux4_l;
ENDrtl;
信第4章VHDL基本描述語(yǔ)句
---------------------------------、1二r...―—?…,.-T"7-TT-
4.IF語(yǔ)句的嵌套結(jié)構(gòu)
IF外部條件THEN
IF內(nèi)部條件1THEN
順序語(yǔ)句1;
ENDIF;
ELSE
IF內(nèi)部條件2THEN
順序語(yǔ)句2;
ENDIF;
ENDIF;
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux4_2IS
P0RT(cdata:INSTDLOGICVECTOR(3DOWNTO0);
sei:INSTDLOGICVECTOR(1DOWNTO0);
creset:INSTDLOGIC;
q:OUTSTDLOGIC);
ENDmux4_2;
曲第4章VHDL基本描述語(yǔ)句______________________
^ARCHITECTURErtlOFmux4_2IS
BEGIN
cmux4_2:PROCESS(cdata,sei,creset)
BEGIN
IF(creset=T)THEN
IF(sei=”00")THEN-多選擇的IF語(yǔ)句
q<=cdata(0);
ELSIF(sei="01")THEN
q<=cdata(1);
ELSIF(sei=”10")THEN
q<=cdata(2);
ELSE
q<=cdata(3);
ENDIF;
ELSE
q<=O;
ENDIF;
ENDPROCESScmux4_2;
ENDrtk
?k第4章VHDL基本描述語(yǔ)句
小缸第4章VHDL基本描述語(yǔ)句______________________
4.1.5CASE語(yǔ)句
CASE語(yǔ)句根據(jù)滿足的條件直接選擇多項(xiàng)順序語(yǔ)句中
的一項(xiàng)執(zhí)行。
CASE語(yǔ)句的結(jié)構(gòu)如下:
CASE表達(dá)式IS
WHEN選擇值1=>順序語(yǔ)句1;
WHEN選擇值2=>順序語(yǔ)句2;
???
WHEN選擇值n=>順序語(yǔ)句n;
[WHENOTHERS=>順序語(yǔ)句n+1;]
ENDCASE;
第4章VHDL基本描述語(yǔ)句
當(dāng)執(zhí)行到CASE語(yǔ)句時(shí),首先計(jì)算表達(dá)式的值,然后根
據(jù)條件句中與之相同的選擇值,執(zhí)行對(duì)應(yīng)的順序語(yǔ)句,最后
結(jié)束CASE語(yǔ)句。
條件句中的“=>”不是操作符,它只相當(dāng)于“THEN”的作
用。
選擇值可以有四種不同的表達(dá)方式:
①單個(gè)普通數(shù)值,如4;
②數(shù)值選擇范圍,如(2TO4),表示取值2、3或4;
③并列數(shù)值,如3|5,表示取值為3或者5;
④混合方式,以上三種方式的混合。
茄k第4章VHDL基本描述語(yǔ)句______________________
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux4_3IS
P0RT(cdata:INSTDLOGICVECTOR(3DOWNTO0);
sei:INSTDLOGICVECTOR(1DOWNTO0);
q:OUTSTDLOGIC);
ENDmux4_3;
ARCHITECTURErtl_mux4OFmux4_3IS
SIGNALtempsei:INTEGERRANGE0TO3;
BEGIN
茄k第4章VHDL基本描述語(yǔ)句
cmux4_3:PROCESS(cdata,sei)
BEGIN
PROCESS(cdata,sei)
tempseiv='O';
IF(sei(0)=T)THENBEGIN
tempsei<=tempsei+1;CASEseiIS
ENDIF;WHENn00n=>q<=cdata(0);
IF(sei⑴=T)THENWHENn01n=>q<=cdata(0);
temp_sel<=temp_sel+2;WHENn10n=>q<=cdata(0);
ENDIF;WHEN”11'=>qv=cdata(0);
CASEtemp_selIS
WHEN0=>qv=cdata(0);WHENOTHERS=>q<='0';
WHEN1=>q<=cdata(1);ENDCASE;
WHEN2=>q<=cdata(2);ENDPROCESS;
WHEN3=>q<=cdata(3);
WHENOTHERS=>qv=q
ENDCASE;
ENDPROCESScmux4_3;
ENDrtlmux4;
IB9
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
使用CASE語(yǔ)句需注意以下幾點(diǎn):
(1)條件句中的選擇值必須在表達(dá)式的取值范圍內(nèi)。
(2)除非所有條件句中的選擇值能完整覆蓋CASE語(yǔ)句中表
達(dá)式的取值,否則最末一個(gè)條件句中的選擇必須用
“OTHERS”表示。這樣可以避免綜合器插入不必要的寄存
器。對(duì)于定義為STDJLOGIC和STD_LOGIC_VECTOR數(shù)據(jù)
類型的數(shù)據(jù)對(duì)象,其取值除了1和0以外,還可能有高阻態(tài)Z、
不定態(tài)X等。
(3)CASE語(yǔ)句中每一條件句的選擇只能出現(xiàn)一次,不能有
相同選擇值的條件語(yǔ)句出現(xiàn)。
(4)CASE語(yǔ)句執(zhí)行中必須選中,且只能選中所列條件語(yǔ)句
中的一條。這表明CASE語(yǔ)句中至少要包含一個(gè)條件語(yǔ)句。
茄k第4章VHDL基本描述語(yǔ)句______________________
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcdecoder_3_8IS
PORT(d:INSTDLOGICVECTOR(2DOWNTO0);
G1:INSTDLOGIC;
G2A,G2B:INSTDLOGIC;
q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITYcdecoder_3_8;_VHDL1993版可以這么用
ARCHITECTURErtl_cdecoder_3_8OFcdecoder_3_8IS
BEGIN
PROCESS(d,Gl,G2A,G2B)
BEGIN
茄k第4章VHDL基本描述語(yǔ)句______________________
IF(Gl=TANDG2A=UANDG2B=O)THEN-譯碼器的使能信號(hào)
CASEdIS-CASE語(yǔ)句的控制表達(dá)式是位矢量d
WHEN“000”=>q<="11111110";
WHEN“001”=>qv="11111101”;
WHEN“010”=>q<="11111011";
WHEN"OH"=>q<=011110111";
WHEN“100”=>q<-"11101111";
WHEN“101”=>qv=”11011111”;
WHEN“110”=>q<="10111111";
WHEN"UI"=>q<="01111111";
WHENOTHERS=>qv="XXXXXXXX”;
ENDCASE;
ELSE
q<=nl1111111";
ENDIF;
ENDPROCESS;
ENDASiajTECTURErtlcdecoder38;--VHDL1993版可以這么用
第4章VHDL基本描述語(yǔ)句
與IF語(yǔ)句相比,CASE語(yǔ)句組的程序可讀性比較好,這
是因?yàn)樗褩l件中所有可能出現(xiàn)的情況全部列出來(lái)了,可
執(zhí)行條件一目了然。而且CASE語(yǔ)句的執(zhí)行過(guò)程不像IF語(yǔ)句
那樣有一個(gè)逐項(xiàng)條件順序比較的過(guò)程。CASE語(yǔ)句中條件句
的次序是不重要的,它的執(zhí)行過(guò)程更接近于并行方式。一
般地,綜合后,對(duì)相同的邏輯功能,CASE語(yǔ)句比IF語(yǔ)句的
描述耗用更多的硬件資源,而且有的邏輯,CASE語(yǔ)句無(wú)法
描述,只能用IF語(yǔ)句來(lái)描述。這是因?yàn)镮F_THEN_ELSIF語(yǔ)
句具有條件相與的功能和自動(dòng)將邏輯值“?。酆雎裕莅ㄟM(jìn)去
的功能(邏輯值“,有利于邏輯化簡(jiǎn)),而CASE語(yǔ)句只有條
件相或的功能。
第4章VHDL基本描述語(yǔ)句______________________
4.1.6FORLOOP語(yǔ)句
FORLOOP語(yǔ)句可以使所包含的一組順序語(yǔ)句被循環(huán)
執(zhí)行,循環(huán)的次數(shù)受迭代算法的控制。其語(yǔ)句格式如下:
[標(biāo)號(hào):]FOR循環(huán)變量IN離散范圍LOOP
順序語(yǔ)句;
ENDLOOP[標(biāo)號(hào)];
循環(huán)變量的值在每次循環(huán)中都會(huì)發(fā)生變化,而離散范
圍表示循環(huán)變量在循環(huán)過(guò)程中的取值范圍;循環(huán)變量是整
數(shù)變量。
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
例4-16偶校驗(yàn)
LIBRARYIEEE;
USEIEEE.STDL0GIC1164.ALL;
ENTITYcparitylIS
PORT(cdata:INSTDLOGICVECTOR(31DOWNTO0);
q:OUTSTDLOGIC;
qnot:OUTSTDLOGIC);
ENDENTITYcparityl;
ARCHITECTURErtlcparityOFcparitylIS
BEGIN
茄k第4章VHDL基本描述語(yǔ)句
cparityexample:PROCESS(cdata)
VARIABLEtemp:STDLOGIC;
BEGIN
temp:=T;
FORiINOTO31LOOP
temp:=tempXORcdata(i);
ENDLOOP;
qv=temp;
qnotv=NOTtemp;
ENDPROCESScparityexample;
ENDARCHITECTURErtlcparity;
第4章VHDL基本描述語(yǔ)句______________________
4.1.7WHILELOOP語(yǔ)句
格式:
[標(biāo)號(hào):]WHILE條件表達(dá)式LOOP
順序語(yǔ)句;
ENDLOOP[標(biāo)號(hào)];
如果條件表達(dá)式的值為“真”,則一直進(jìn)行循環(huán);如
果條件表達(dá)式的值為“假”,則結(jié)束循環(huán);
癡k第4章VHDL基本描述語(yǔ)句
例4-17
VARIABLEsumtemp:INTEGER:=0;
VARIABLEi:INTEGER:=0;
BEGIN
sumexample:WHILE(i<100)LOOP
sumtemp:=sumtemp+i;
i:=i+1;
ENDLOOPsumexample;
ENDPROCESS;
缸第4章VHDL基本描述語(yǔ)句
例"二18奇校驗(yàn)―
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcparity2IS
P0RT(cdata:INSTDLOGICVECTOR(31DOWNTO0);
q:OUTSTDLOGIC;
qnot:OUTSTDLOGIC);
ENDENTITYcparity2;
ARCHITECTUREbehavcparitylOFcparity2IS
BEGIN
茄k第4章VHDL基本描述語(yǔ)句______________________
cparityexample:PROCESS(cdata)
VARIABLEtemp:STDLOGIC;
VARIABLEi:INTEGER;―必須要有,不能省略
BEGIN
temp:='O';
i:=0;
WHILE(i<32)LOOP
temp:=tempXORcdata(i);
i:=i+1;
ENDLOOP;
qv=temp;
qnotv=NOTtemp;
ENDPROCESScparityexample;
ENDARCHITECTUREbehavcparityl;
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
4.1.8NEXT語(yǔ)句
NEXT語(yǔ)句主要用在FORLOOP和WHILELOOP循環(huán)語(yǔ)句
中跳出本次循環(huán),而執(zhí)行下一次新的循環(huán),是一種循環(huán)內(nèi)部的
控制語(yǔ)句。它的語(yǔ)句格式:
NEXT[標(biāo)號(hào)][WHEN條件表達(dá)式];
(1)無(wú)標(biāo)號(hào)和無(wú)WHEN時(shí),則執(zhí)行NEXT語(yǔ)句時(shí),即刻
無(wú)條件終止當(dāng)前的循環(huán),跳回到本次循環(huán)LOOP語(yǔ)句開始處,
開始下一次循環(huán)。
(2)有標(biāo)號(hào)和無(wú)WHEN時(shí),跳轉(zhuǎn)到指定標(biāo)號(hào)的LOOP語(yǔ)
句開始處,重新開始執(zhí)行循環(huán)操作。
(3)無(wú)標(biāo)號(hào)和有WHEN時(shí),當(dāng)條件表達(dá)式的值為TRUE,
則執(zhí)行NEXT語(yǔ)句,進(jìn)入跳轉(zhuǎn)操作,否則繼續(xù)向下執(zhí)行。
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
【例4-19132位奇偶校驗(yàn)電路程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcparity3IS
P0RT(cdata:INSTDLOGICVECTOR(31DOWNTO0);
ccontrol:INSTDLOGIC;
q:OUTSTDLOGIC;
qnot:OUTSTDLOGIC);
ENDENTITYcparity3;
ARCHITECTURErtlcparityOFcparity3IS
BEGIN
茄k第4章VHDL基本描述語(yǔ)句______________________
cparityexample:PROCESS(cdata,ccontrol)
VARIABLEtemp:STDLOGIC;
BEGIN
temp:='O';
FORiINOTO31LOOP—FORLOOP語(yǔ)句對(duì)32位邏輯值奇偶判斷
NEXTWHENccontrol=*0*;—外部信號(hào)ccontrol為邏輯低電平
temp:=tempXORcdata(i);
WAITFOR200ms;-使得程序等待200ms
ENDLOOP;
qv=temp;
qnot<=NOTtemp;
ENDPROCESScparity_example;
ENDARCHITECTURErtl_cparity;
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
【例4-201NEXT語(yǔ)句嵌在兩個(gè)循環(huán)中的示例程序。
CTEST1:FORmIN0TO50LOOP-外循環(huán)
CTEST2:FORnIN1TO40LOOP-內(nèi)循環(huán)
*
NEXTCTEST1WHENm=n;-NEXT語(yǔ)句的執(zhí)行條件
*
ENDLOOPCTEST2;
ENDLOOPCTEST1;
第4章VHDL基本描述語(yǔ)句______________________
4.1.9EXIT語(yǔ)句
EXIT語(yǔ)句用于FORLOOP和WHILELOOP循環(huán)語(yǔ)句
中跳出循環(huán),也就是提前結(jié)束循環(huán),接著執(zhí)行循環(huán)后面的
語(yǔ)句,也是一種循環(huán)內(nèi)部的控制語(yǔ)句。它的語(yǔ)句格式:
EXIT[標(biāo)號(hào)][WHEN條件表達(dá)式];
EXIT與NEXT的格式和操作非常相似,二者的不同之
處是:
執(zhí)行EXIT語(yǔ)句將結(jié)束循環(huán)狀態(tài),直接從循環(huán)語(yǔ)句中跳
出,不再執(zhí)行此循環(huán)。
執(zhí)行NEXT語(yǔ)句是僅僅結(jié)束本次循環(huán),接著執(zhí)行的是
本循環(huán)體而沒有跳出本循環(huán)。
第4章VHDL基本描述語(yǔ)句
(1)無(wú)標(biāo)號(hào)和無(wú)WHEN時(shí),則執(zhí)行EXIT語(yǔ)句,則立即無(wú)
條件跳出循環(huán);如果EXIT語(yǔ)句位于一個(gè)內(nèi)部循環(huán)中,則
執(zhí)行EXIT后僅跳出內(nèi)部循環(huán),而仍然停留在外部循環(huán)的
LOOP語(yǔ)句中。
(2)有標(biāo)號(hào)和無(wú)WHEN時(shí),貝UEXIT立即退出循環(huán)體,從
標(biāo)號(hào)指定的位置開始執(zhí)行程序。
(3)無(wú)標(biāo)號(hào)和有WHEN時(shí),當(dāng)條件表達(dá)式的值為TRUE,
則退出循環(huán),否則繼續(xù)向下執(zhí)行。
茄k第4章VHDL基本描述語(yǔ)句_______________________
【例4-21】采用EXIT語(yǔ)句的示例程序。
ARCHITECTUREbehav_cexitOFcexitinstIS
CONSTANTpi:REAL:=3.1415926;
BEGIN
cexit_example:PROCESS(elk)
VARIABLEareatemp:REAL:=1.0;
BEGIN
FORiIN1TO20LOOP
area_temp:=pi*REAL(i)*REAL(i);—數(shù)據(jù)類型轉(zhuǎn)換
IFINTEGER(areatemp)>150THEN
EXIT當(dāng)條件成立則提前退出循環(huán)
ENDIF;
ENDLOOP;
ENDPROCESScexitexample;
ENDARCHITECTUREbehav_cexit;
茄k第4章VHDL基本描述語(yǔ)句______________________
4.1.10RETURN
返回語(yǔ)句用于子程序體或進(jìn)程中,并用來(lái)結(jié)束當(dāng)前子程
序體的執(zhí)行。其語(yǔ)句格式如下:
RETURN[表達(dá)式];
當(dāng)表達(dá)式缺省時(shí),只能用于進(jìn)程,它只是結(jié)束進(jìn)程,并
不返回任何值;
當(dāng)有表達(dá)式時(shí),只能用于函數(shù),并且必須返回一個(gè)值。
用于函數(shù)的語(yǔ)句中的表達(dá)式提供函數(shù)返回值。每一函數(shù)必
須至少包含一個(gè)返回語(yǔ)句,并可以擁有多個(gè)返回語(yǔ)句,但
是在函數(shù)調(diào)用時(shí),只有其中一個(gè)返回語(yǔ)句可以將值帶出。
茄k第4章VHDL基本描述語(yǔ)句______________________
【例4-22】采用RETURN語(yǔ)句的示例程序
FUNCTIONcmax21(dl:INTEGER;
d2:INTEGER)
RETURNINTEGERIS
VARIABLEtemp:INTEGER:=1;
BEGIN
IFdl>d2THEN
temp:=dl;
ELSE
temp:=d2;
ENDIF;
RETURNtemp;
ENDcmax21;
茄k第4章VHDL基本描述語(yǔ)句______________________
4.1.11REPORT語(yǔ)句
REPORT可以在程序運(yùn)行中向程序員上報(bào)程序的運(yùn)行狀
態(tài),只能在VHDL仿真器中使用,便于程序的修改維護(hù)。
其語(yǔ)句格式如下:
[標(biāo)號(hào):]REPORT"輸出字符串”[SEVERITY
出錯(cuò)等級(jí)];
茄k第4章VHDL基本描述語(yǔ)句_________________
出錯(cuò)等級(jí)共有如下四種可能的值:
NOTE:可以用在仿真時(shí)傳遞信息。
WARNING:用在非平常的情形,此時(shí)仿真過(guò)程仍可繼
續(xù),但結(jié)果可能是不可預(yù)知的。
ERROR:用在仿真過(guò)程繼續(xù)執(zhí)行下去已經(jīng)不可能的情
況。
FAILURE:用在發(fā)生了致命錯(cuò)誤,仿真過(guò)程必須立即
停止的情況。
茄k第4章VHDL基本描述語(yǔ)句______________________
【例4-23】采用REPORT語(yǔ)句的示例程序
REPORTndataOistimedoutatn--data。在邏輯0上超時(shí)
SEVERITYERROR;
REPORTnqisnotatT”-q不在邏輯1電平上
SEVERITYWARNING;
茄k第4章VHDL基本描述語(yǔ)句_________________
4.1.12空操作語(yǔ)句(NULL)
空操作語(yǔ)句的語(yǔ)句格式如下:
NULL;
空操作語(yǔ)句不完成任何操作,它惟一的功能就是使邏
輯運(yùn)行流程跨入下一步語(yǔ)句的執(zhí)行。NULL常用于CASE語(yǔ)
句中,為滿足所有可能的條件,利用NULL來(lái)表不所余的不
用條件下的操作行為。
茄k第4章VHDL基本描述語(yǔ)句______________________
【例4-24]使用NULL語(yǔ)句的示例程序
ARCHITECTUREdataflowOFcnullIS
SIGNALd,q:STDLOGIC;
SIGNALsei:STDLOGICVECTOR(2DOWNTO0);
BEGIN
CASEseiIS
WHEN0|7=>qv=NOTd;
WHENOTHERS=>NULL;
ENDCASE;
ENDdataflow;
茄k第4章VHDL基本描述語(yǔ)句______________________
與其他的EDA工具不同,MAX+plusII對(duì)NULL語(yǔ)句的
執(zhí)行會(huì)出現(xiàn)擅自加入鎖存器的情況,因此,應(yīng)避免使用
NULL語(yǔ)句,改用確定操作,如可改為:
WHENOTHERS=>q<=O;
茄k第4章VHDL基本描述語(yǔ)句__________________
4.1.13ASSERT語(yǔ)句
ASSERT(斷言)語(yǔ)句只能在VHDL仿真器中使用,綜合
器通常忽略此語(yǔ)句。
語(yǔ)句格式是:
ASSERT條件表達(dá)式[REPORT"字符串”][SEVERITY
錯(cuò)誤等級(jí)];
ASSERT語(yǔ)句判斷指定的條件,如為TRUE,則往下執(zhí)
行其它語(yǔ)句;如為FALSE,則輸出報(bào)告信息和錯(cuò)誤等級(jí)。
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
4.2并行語(yǔ)句
相對(duì)于傳統(tǒng)的軟件描述語(yǔ)言,并行語(yǔ)句結(jié)構(gòu)是最具
VHDL特色的。在VHDL中,各種并行語(yǔ)句在結(jié)構(gòu)體中的執(zhí)
行是同步進(jìn)行的,其執(zhí)行次序與書寫的順序無(wú)關(guān)。
在可編程邏輯器件中,用硬件描述語(yǔ)言VHDL描述的實(shí)際
系統(tǒng),由可編程邏輯器件中的不同硬件資源構(gòu)成,實(shí)際工作
時(shí)這些電路是同時(shí)工作的,所以在對(duì)系統(tǒng)進(jìn)行仿真時(shí),這些
系統(tǒng)元件在定義的仿真時(shí)刻應(yīng)該是并發(fā)工作的。VHDL中用并
行描述語(yǔ)句來(lái)描述這種行為。
癡k第4章VHDL基本描述語(yǔ)句
并行語(yǔ)句與順序語(yǔ)句并不是相互對(duì)立的語(yǔ)句,它們往
往互相包含、互為依存,它們是一個(gè)矛盾的統(tǒng)一體。嚴(yán)格
地說(shuō),VHDL中不存在純粹的并行行為和順序行為的語(yǔ)句。
例如,相對(duì)于其他的并行語(yǔ)句,進(jìn)程屬于并行語(yǔ)句,而進(jìn)
程內(nèi)部運(yùn)行的都是順序語(yǔ)句,而一個(gè)單句并行賦值語(yǔ)句,
從表面上看是一條完整的并行語(yǔ)句,但實(shí)質(zhì)上卻是一條進(jìn)
程語(yǔ)句的縮影,它完全可以用一個(gè)相同功能的進(jìn)程來(lái)替代。
所不同的是,進(jìn)程中必須列出所有的敏感信號(hào),而單純的
并行賦值語(yǔ)句的敏感信號(hào)是隱性列出的。
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
4.2.1并行信號(hào)代入語(yǔ)句(并行信號(hào)賦值語(yǔ)句)
信號(hào)賦值語(yǔ)句在進(jìn)程中使用時(shí),它將作為順序語(yǔ)句的形式
出現(xiàn);當(dāng)信號(hào)賦值語(yǔ)句在結(jié)構(gòu)體的進(jìn)程之處使用時(shí),它將作為
并行語(yǔ)句的形式。
賦值目標(biāo)必須都是信號(hào),所有賦值語(yǔ)句與其他并行語(yǔ)句一
樣,在結(jié)構(gòu)體內(nèi)的執(zhí)行是同時(shí)發(fā)生的。每一信號(hào)賦值語(yǔ)句都相
當(dāng)于一條縮寫的進(jìn)程語(yǔ)句,而這條語(yǔ)句的所有輸入(或讀入)信
號(hào)都被隱性地列入此過(guò)程的敏感信號(hào)表中。因此,任何信號(hào)的
變化都將啟動(dòng)相關(guān)并行語(yǔ)句的賦值操作,而這種啟動(dòng)完全是獨(dú)
立于其他語(yǔ)句的,它們都可以直接出現(xiàn)在結(jié)構(gòu)體中。
茄k第4章VHDL基本描述語(yǔ)句_________________
如:
qO<=datal+data2;
qlv=data3*data4;
第一條語(yǔ)句描述了一個(gè)硬件加法器的行為,第二條描述
了一個(gè)硬件乘法器的行為,硬件加法器和硬件乘法器實(shí)際
工作時(shí)是獨(dú)立、同時(shí)工作的,所以描述這個(gè)行為的二個(gè)語(yǔ)
句也應(yīng)該是并發(fā)的。這就是信號(hào)賦值語(yǔ)句的并發(fā)性。
小缸第4章VHDL基本描述語(yǔ)句
信號(hào)賦值語(yǔ)句=簡(jiǎn)化的進(jìn)程
ARCHITECTUREbehavOFconcurrentexampleIS
BEGIN
q<=dONAND(dlORd2)AFTER7ns;
ENDARCHITECTUREbehav;
ARCHITECTUREbehavOFconcurrentexampleIS
BEGIN
PROCESS(dO,dl,d2)
BEGIN
qv=dONAND(dlORd2)AFTER7ns;
ENDPROCESS;
ENDARCHITECTUREbehav;
第4章VHDL基本描述語(yǔ)句
并行信號(hào)賦值語(yǔ)句有三種形式:簡(jiǎn)單信號(hào)賦值語(yǔ)句、
條件信號(hào)賦值語(yǔ)句和選擇信號(hào)賦值語(yǔ)句。
1.條件信號(hào)賦值語(yǔ)句
IF語(yǔ)句是一種條件賦值語(yǔ)句,但其是順序語(yǔ)句,只能
用在進(jìn)程或子程序內(nèi)部。
條件信號(hào)賦值語(yǔ)句是一種與IF語(yǔ)句相似的分支型條件
賦值語(yǔ)句,其是并發(fā)的,可用于進(jìn)程之外。
茄k第4章VHDL基本描述語(yǔ)句______________________
條件信號(hào)賦值語(yǔ)句的表達(dá)方式如下:
目的信號(hào)量V=信號(hào)量表達(dá)式1WHEN賦值條件1ELSE
信號(hào)量表達(dá)式2WHEN賦值條件2ELSE
???
信號(hào)量表達(dá)式nWHEN賦值條件nELSE
信號(hào)量表達(dá)式n+l;
當(dāng)賦值條件1成立時(shí),將信號(hào)量表達(dá)式1的值賦給目的
信號(hào)量,依次類推,如果所有的條件都不成立,則把信號(hào)量
表達(dá)式n+1的值賦給目的信號(hào)量。在整個(gè)語(yǔ)句中必須有一個(gè)
ELSE,而IF語(yǔ)句中沒有此要求。
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
在執(zhí)行條件信號(hào)賦值語(yǔ)句時(shí),每一賦值條件是按書寫的先
后關(guān)系逐項(xiàng)測(cè)定的,一旦發(fā)現(xiàn)賦值條件=TRUE,立即將表達(dá)式
的值賦給賦值目標(biāo)。
Zv=AWHENP1='1'ELSE
BWHENP2-1'ELSE
C;
注意,由于條件測(cè)試的順序性,第一句具有最高賦值優(yōu)先
級(jí),第二句其次,第三句最后。這就是說(shuō),如果當(dāng)P1和P2同時(shí)
為1時(shí),Z獲得的賦值是A。
茄k第4章VHDL基本描述語(yǔ)句______________________
【例4?26]采用條件信號(hào)代入語(yǔ)句描述異或門
LIBRARYIEEE;
USEIEEE.STDLOGIC1164.ALL;
ENTITYcxorgateIS
PORT(dO,dl:INSTDLOGIC;
q:OUTSTDLOGIC);
ENDENTITYcxorgate;
ARCHITECTUREcxorgate_exampleOFcxorgateIS
BEGIN
qv=OWHENdO=OANDdl='0'ELSE
TWHENd0=OANDdl=TELSE
TWHENdO=TANDdl=OELSE
OWHENdO=TANDdl=TELSE
O;
ENDARCHITECTUREcxorgateexample;
茄k第4章VHDL基本描述語(yǔ)句___________________
【例4-27】3?8譯碼器(和例4—15相似)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcdecoder_3_8IS
PORT(d:INSTDLOGICVECTOR(2DOWNTO0);
G1:INSTDLOGIC;
G2A,G2B:INSTDLOGIC;
q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITYcdecoder_3_8;
第4章VHDL基本描述語(yǔ)句
ARCHITECTUREdataflowOFcdecoder_3_8IS
BEGIN
q〈="11111110”WHEN(G1=TANDG2A='0'ANDG2B='0'ANDd="000")ELSE
"minor'WHEN(GI=TANDG2A='O'ANDG2B=0ANDa="001")ELSE
”11111011”WHEN(G1=TANDG2A='0'ANDG2B='0'ANDd="010")ELSE
n11110111nWHEN(G1=TANDG2A='0'ANDG2B='0'ANDd="011")ELSE
"HlOllir'WHEN(G1=TANDG2A=OANDG2B='0'ANDd="100")ELSE
"HOlllir'WHEN(G1=TANDG2A='0'ANDG2B='0'ANDd="101")ELSE
n101111ir'WHEN(G1=TANDG2A='0'ANDG2B=OANDd="110")ELSE
"Olllllir'WHEN(G1=TANDG2A='0'ANDG2B='0'ANDd="111")ELSE
"llllllir';—其中Gl、G2A、G2B是譯碼器的使能信號(hào)
ENDARCHITECTUREdata_flow;
茄k第4章VHDL基本描述語(yǔ)句
【例4-28】4選1選擇器(和4-12相同)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcselector_4_lIS
PORT(d:INSTD_LOGIC_VECTOR(3DOWNTO0);
sei:INSTDLOGICVECTOR(1DOWNTO0);
q:OUTSTDLOGIC);
ENDENTITYcselector_4」;
ARCHITECTUREdata_flowOFcselector_4_lIS
BEGIN
qv=d(0)WHEN(sei=”00")ELSE
d(l)WHEN(sei=”01”)ELSE
d(2)WHEN(sei=”10")ELSE
d(3)WHEN(sei=”11")ELSE
O;
ENDARCHITECTUREdata_flow;
/k第4章VHDL基本描述語(yǔ)句______________________
2.選擇信號(hào)賦值語(yǔ)句
前面講述的CASE語(yǔ)句是一種分支控制型的順序語(yǔ)句,
它只能用于進(jìn)程或子程序中;而選擇信號(hào)賦值語(yǔ)句的功能
和CASE語(yǔ)句相似,可用于進(jìn)程之外。
選擇信號(hào)賦值語(yǔ)句格式如下:
WITH選擇條件表達(dá)式SELECT
目的信號(hào)量<=表達(dá)式1WHEN選擇值1
表達(dá)式2WHEN選擇值2
表達(dá)式nWHEN選擇值n;
濫認(rèn)第4章VHDL基本描述語(yǔ)句______________________
CASE語(yǔ)句的執(zhí)行依賴于進(jìn)程中敏感信號(hào)的改變而啟動(dòng)進(jìn)
程,而且要求CAS
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 噪聲與振動(dòng)控制中的振動(dòng)源隔振與減振技術(shù)考核試卷
- 2025-2030年可調(diào)節(jié)角度兒童滑梯企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 二零二五年度水文地質(zhì)勘探與水文災(zāi)害風(fēng)險(xiǎn)評(píng)估合同
- 2025-2030年地域特色調(diào)料包品牌行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年城市公交網(wǎng)絡(luò)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025洗煤廠廢棄物資源化利用承包合同協(xié)議3篇
- 寧波二零二五年度勞動(dòng)合同模板:適用于特殊工種及崗位
- 珍惜時(shí)間的講話稿(15篇)
- 南京市2025年度租賃合同范本:工業(yè)用地租賃規(guī)范
- 護(hù)掌在武術(shù)運(yùn)動(dòng)中的耐磨性與抓握力考核試卷
- 一級(jí)建造師繼續(xù)教育最全題庫(kù)及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項(xiàng)施工方案
- 聯(lián)苯二氯芐生產(chǎn)工藝及產(chǎn)排污分析
- 儲(chǔ)能設(shè)備項(xiàng)目采購(gòu)供應(yīng)質(zhì)量管理方案
- 2022年全國(guó)卷高考語(yǔ)文答題卡格式
- 復(fù)旦大學(xué)簡(jiǎn)介 (課堂PPT)
- CKD馬達(dá)使用說(shuō)明
評(píng)論
0/150
提交評(píng)論