版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章VHDL基本描述語(yǔ)句順序語(yǔ)句:用來實(shí)現(xiàn)模型的算法描述并行語(yǔ)句:則用來表示各模塊算法描述之間的連接關(guān)系。本章內(nèi)容:5.1順序語(yǔ)句按照語(yǔ)句的出現(xiàn)順序加以執(zhí)行的。激活后按順序逐一的被執(zhí)行,前面語(yǔ)句的執(zhí)行結(jié)果可能直接影響后面語(yǔ)句的結(jié)果。但是從時(shí)鐘的角度來看,所有語(yǔ)句又都是在激活的那一時(shí)刻被執(zhí)行,信號(hào)的延遲不會(huì)隨語(yǔ)句的順序而改變,因?yàn)樾盘?hào)的延遲只和硬件的延遲有關(guān)。只能用在進(jìn)程、子程序(函數(shù)和過程)內(nèi)部,不能在結(jié)構(gòu)體中直接使用。
5.1順序語(yǔ)句VHDL順序語(yǔ)句種類:賦值語(yǔ)句IF語(yǔ)句CASE語(yǔ)句LOOP、EXIT、NEXT語(yǔ)句WAIT語(yǔ)句NULL語(yǔ)句順序賦值語(yǔ)句主要用在進(jìn)程和子程序中,包括信號(hào)賦值和變量賦值兩種,在進(jìn)程中順序執(zhí)行。5.1.1賦值語(yǔ)句信號(hào)在實(shí)體、結(jié)構(gòu)體中定義,可作為結(jié)構(gòu)體內(nèi)多個(gè)進(jìn)程的連接信號(hào)。變量只能在進(jìn)程或子程序內(nèi)定義,只在該進(jìn)程或子程序中使用。語(yǔ)句格式:變量賦值目標(biāo):=賦值源;信號(hào)賦值目標(biāo)<=賦值源;比較:(1)信號(hào)賦值有一定的延時(shí),在時(shí)序電路中,在時(shí)鐘信號(hào)觸發(fā)下的信號(hào)賦值,目標(biāo)信號(hào)要比源信號(hào)延遲一個(gè)時(shí)鐘周期;變量賦值語(yǔ)句立即執(zhí)行,沒有延時(shí)。(2)進(jìn)程中同一變量多次賦值時(shí)按順序立即執(zhí)行,而信號(hào)多次賦值時(shí),只有進(jìn)程結(jié)束前最后一個(gè)賦值被執(zhí)行。5.1.1賦值語(yǔ)句例5-3architectureBehavioraloffuzhiissignald1:std_logic;beginprocess(clk,rst)beginifrst='0'then d1<='0'; q<='0';
elsif
clk'eventandclk='1'then d1<=d; q<=d1; endif;endprocess; endBehavioral;5.1.1賦值語(yǔ)句例5-4architectureBehavioraloffuzhiisbeginprocess(clk,rst)variabled1:std_logic;beginifrst='0'then d1:='0'; q<='0';
elsif
clk'eventandclk='1'then d1:=d; q<=d1; endif;endprocess; endBehavioral;5.1.1賦值語(yǔ)句圖5-1波形仿真圖圖5-2RTL原理圖5.1.1賦值語(yǔ)句圖5-3波形仿真圖圖5-4RTL原理圖【例5-5】SIGNALS1,S2:STD_LOGIC;SIGNALSVEC:STD_LOGIC_VECTOR(0TO7);...PROCESS(S1,S2)ISVARIABLEV1,V2:STD_LOGIC;BEGIN
V1:=‘1’;
--立即將V1置位為1
V2:=‘1’;
--立即將V2置位為1
S1<=‘1’;
--S1被賦值為1
S2<=‘1’;
--不是最后一個(gè)賦值語(yǔ)句故不作任何賦值操作多個(gè)賦值源
SVEC(0)<=V1;--將V1在上面的賦值1,賦給SVEC(0)SVEC(1)<=V2;--將V2在上面的賦值1,賦給SVEC(1)SVEC(2)<=S1;
--將S1在上面的賦值1,賦給SVEC(2)SVEC(3)<=S2;
--將最下面的賦予S2的值‘0’,賦給SVEC(3)
V1:=‘0’;
--將V1置入新值0
V2:=‘0’;
--將V2置入新值0
S2<=‘0’;
--對(duì)S2最后一次賦值,賦值有效
SVEC(4)<=V1;--將V1在上面的賦值0,賦給SVEC(4)SVEC(5)<=V2;--將V2在上面的賦值0,賦給SVEC(5)SVEC(6)<=S1;--將S1在上面的賦值1,賦給SVEC(6)SVEC(7)<=S2;--將S2在上面的賦值0,賦給SVEC(7)ENDPROCESS;多個(gè)賦值源不完整IF語(yǔ)句二選一IF語(yǔ)句多重條件IF語(yǔ)句IF語(yǔ)句嵌套5.1.2IF語(yǔ)句
不完整IF語(yǔ)句語(yǔ)句格式:
IF條件THEN
順序執(zhí)行語(yǔ)句;
ENDIF;
執(zhí)行過程:如果條件成立,即條件表達(dá)式為TURE,則執(zhí)行順序語(yǔ)句,否則跳過順序語(yǔ)句結(jié)束IF。由于該IF語(yǔ)句中沒有指出條件不滿足時(shí)做何操作,即在條件句中沒有給出各種可能的條件時(shí)的處理方式,所以是一種不完整的條件語(yǔ)句。
不完整IF語(yǔ)句作用:形成鎖存,用于構(gòu)成時(shí)序電路,而組合電路只能使用完整的IF語(yǔ)句。
例5-6:
IF(clk’eventandclk=’1’)thenQ<=d;Endif;
二選一IF語(yǔ)句語(yǔ)句格式:
IF條件THEN
順序執(zhí)行語(yǔ)句1;ELSE
順序執(zhí)行語(yǔ)句2;ENDIF;
執(zhí)行過程:如果條件成立,則執(zhí)行順序語(yǔ)句1,否則執(zhí)行順序語(yǔ)句2。
完整的描述了條件成立、不成立時(shí)的操作,對(duì)應(yīng)組合電路的二選一選擇結(jié)構(gòu)。典型應(yīng)用:二選一電路
ifsel=‘0’then
q<=d0;
else
q<=d1;
endif;
二選一IF語(yǔ)句語(yǔ)句格式:
IF條件THEN
順序執(zhí)行語(yǔ)句;
ELSIF條件THEN
順序執(zhí)行語(yǔ)句;
:
:
ELSIF條件THEN
順序執(zhí)行語(yǔ)句;
ELSE
順序執(zhí)行語(yǔ)句;
ENDIF;
多重條件IF語(yǔ)句注意:ELSIF可以多次使用,而ELSE僅能使用一次。
例:4位寬的四選一多路選擇器的功能。
Libraryieee;
Useieee.std_logic_1164.all;
Entitymux4is
Port(a,b,c,d:instd_logic_vector(3downto0);
S:instd_logic_vector(1downto0);
X::outstd_logic_vector(3downto0));
Endmux4;多重條件IF語(yǔ)句Architecturearchmux4ofmux4is
Begin
Mux4:process(a,b,c,d,s)
Begin
Ifs=”00”then
X<=a;
Elsifs=”01”then
X<=b;
Elsifs=”10”then
X<=c;
Else
X<=d;
Endif;
Endprocessmux4;
Endarchmux4;多重條件IF語(yǔ)句語(yǔ)句格式:
IF條件1THEN
IF條件2THEN
順序語(yǔ)句;
ENDIF;
…
ENDIF;IF語(yǔ)句嵌套例5-9:
Libraryieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
Useieee.std_logic_arith.all;
entitycnt4is
port(rst:instd_logic;
clk:instd_logic;
en:instd_logic;
cnt:bufferstd_logic_vector(3downto0)
);
endcnt4;IF語(yǔ)句嵌套architectureBehavioralofcnt4is
begin
process(clk,rst,en)
begin
ifrst='0'then
cnt<="0000";
elsif
clk'eventandclk='1'then
ifen='1'then
cnt<=cnt+1;
endif;
endif;
endprocess;
endBehavioral;IF語(yǔ)句嵌套5.1.3CASE語(yǔ)句一般格式為:
CASE條件表達(dá)式ISWHEN值1=>順序語(yǔ)句1;WHEN值2=>順序語(yǔ)句2;WHEN值3=>順序語(yǔ)句3;……WHENOTHERS=>順序語(yǔ)句m;ENDCASE;5.1.3CASE語(yǔ)句WHEN選擇值表示:
單個(gè)值;并列數(shù)值:值1|值2|值3|…|值n;數(shù)值范圍:值1TO值n;混合方式:上述3種的混合。5.1.3CASE語(yǔ)句注意:
WHEN的數(shù)量無限制,但不能共用相同值;WHEN語(yǔ)句的值必須覆蓋表達(dá)式的所有值;只能有一個(gè)OTHERS,且位于最后。5.1.3CASE語(yǔ)句例5-10
Architecturearchmux4ofmux4isBeginMux4:process(a,b,c,d,s)BeginCasesisWhen"00"=>X<=a;When"01"=>X<=b;When"10"=>X<=c;When"11"=>X<=d;Whenothers=>Null;--空語(yǔ)句
Endcase;Endprocessmux4;Endarchmux4;5.1.3CASE語(yǔ)句例5-11:IF與CASE混合使用
Mux4:process(EN,a,b,c,d,s)BeginIFEN=’0’thenX<=”0000”;ELSECasesisWhen"00"=>X<=a;When"01"=>X<=b;When"10"=>X<=c;When"11"=>X<=d;Whenothers=>Null;--空語(yǔ)句
Endcase;ENDIF;Endprocessmux4;【例】case語(yǔ)句使用中幾種容易發(fā)生的錯(cuò)誤
SIGNALvalue:INTEGERRANGE0TO15;SIGNALout1:STD_LOGIC;...CASEvalueIS--缺少以WHEN引導(dǎo)的條件句
ENDCASE;
...CASEvalueISWHEN0=>out1<='1';--value2~15的值未包括進(jìn)去
WHEN1=>out1<='0';ENDCASE...CASEvalueISWHEN0TO10=>out1<='1';--選擇值中5~10的值有重疊
WHEN5TO15=>out1<='0';ENDCASE;5.1.4LOOP語(yǔ)句兩種循環(huán)控制語(yǔ)句:
FORLOOP循環(huán)和WHILELOOP循環(huán)。
FORLOOP循環(huán)主要用在規(guī)定數(shù)目的重復(fù)情況;WHILELOOP則根據(jù)控制條件執(zhí)行循環(huán)直到條件為FALSE。FORLOOP格式:[標(biāo)號(hào):]FOR循環(huán)變量
IN循環(huán)次數(shù)范圍
LOOP
順序處理語(yǔ)句;ENDLOOP[標(biāo)號(hào)];FORLOOP語(yǔ)句循環(huán)變量:屬于LOOP語(yǔ)句的局部變量,不需要事先定義,也不能被賦值,它的值從循環(huán)次數(shù)范圍的初值開始,執(zhí)行一次順序語(yǔ)句自動(dòng)加一,當(dāng)其值超出循環(huán)次數(shù)范圍時(shí),則退出循環(huán)語(yǔ)句。FORLOOP語(yǔ)句例5-12ARCHITECTUREbehaveOFpcISBEGIN
PROCESS(a)VARIABLEtmp:STD_LOGIC;BEGIN
tmp:='0';FORiIN0TO7LOOP
tmp:=tmpXORa(i);ENDLOOP;y<=tmp;ENDPROCESS;ENDbehave;WHILELOOP格式:
[標(biāo)號(hào):]WHILE條件LOOP
順序處理語(yǔ)句
ENDLOOP[標(biāo)號(hào)];
如果條件為真,則進(jìn)行循環(huán),否則結(jié)束循環(huán)。WHILELOOP語(yǔ)句WHILELOOP語(yǔ)句例5-13PROCESS(a)VARIABLEtmp:STD_LOGIC;VARIABLEI:INTEGER;BEGIN
tmp:='0';i:=0;Whilei<8loop
Tmp:=tmpXORa(i);I:=I+1;Endloop;y<=tmp;ENDPROCESS;5.1.5NEXT語(yǔ)句用在LOOP循環(huán)語(yǔ)句中,表示跳出本次循環(huán),執(zhí)行下一次循環(huán)或其他循環(huán)操作。語(yǔ)句格式:Next[循環(huán)標(biāo)號(hào)][when條件表達(dá)式];
當(dāng)條件表達(dá)式滿足條件時(shí),結(jié)束本次循環(huán)操作,跳轉(zhuǎn)到[循環(huán)標(biāo)號(hào)]對(duì)應(yīng)的循環(huán)語(yǔ)句,若無[循環(huán)標(biāo)號(hào)]語(yǔ)句,則結(jié)束本次循環(huán),執(zhí)行下一個(gè)循環(huán)操作。5.1.5NEXT語(yǔ)句【例5-14】計(jì)算8位數(shù)據(jù)總線DATA中“1”的個(gè)數(shù)。PROCESS(DATA)BEGINForIIN0TO7LOOPIFDATA(I)=’0’THENNEXT;--跳出本次循環(huán),進(jìn)行下一數(shù)據(jù)位判斷
ELSEM<=M+1;--如數(shù)據(jù)總線本位信號(hào)為‘1’,則計(jì)數(shù)器M加1ENDIF;ENDLOOP;ENDPROCESS;5.1.5NEXT語(yǔ)句【例5-15】計(jì)算8位數(shù)據(jù)總線DATA中“1”的個(gè)數(shù)。PROCESS(DATA)BEGINForIIN0TO7LOOPNEXTWHENDATA(I)=’0’;--則跳出本次循環(huán)
M<=M+1;--如數(shù)據(jù)總線本位信號(hào)為‘1’,則計(jì)數(shù)器M加1ENDLOOP;ENDPROCESS;5.1.6EXIT語(yǔ)句用在LOOP循環(huán)語(yǔ)句中,表示表示退出整個(gè)循環(huán)操作。語(yǔ)句格式:
EXIT[循環(huán)標(biāo)號(hào)];或EXIT[循環(huán)標(biāo)號(hào)][WHEN條件];
5.1.6EXIT語(yǔ)句例5-16process(inp)variablem:std_logic_vector(2downto0);beginm:="111";foriin7downto0loopifinp(i)='0'then m:=m-1; else exit;endif;endloop;
outp<=m;endprocess; 5.1.8NULL語(yǔ)句空操作語(yǔ)句功能是使運(yùn)行流程繼續(xù),進(jìn)入下一條語(yǔ)句的執(zhí)行。在CASE語(yǔ)句中使用,用于排除一些不用的條件。Signalinp:std_logic_vector(0to1);…caseinpiswhen"00"=>outp<="0001"; when"01"=>outp<="0010"; when"10"=>outp<="0100"; when"11"=>outp<="1000"; whenothers=>null;--排除inp其他取值
endcase;5.2并行語(yǔ)句并行語(yǔ)句是硬件描述語(yǔ)言與一般軟件程序最大的區(qū)別所在,所有并行語(yǔ)句在結(jié)構(gòu)體中的執(zhí)行都是同時(shí)進(jìn)行的,即它們的執(zhí)行順序與語(yǔ)句書寫的順序無關(guān)。這種并行性是由硬件本身的并行性決定的,即一旦電路接通電源,它的各部分就會(huì)按照事先設(shè)計(jì)好的方案同時(shí)工作。
5.2并行語(yǔ)句VHDL并行語(yǔ)句:賦值語(yǔ)句PROCESS進(jìn)程語(yǔ)句元件例化語(yǔ)句BLOCK塊語(yǔ)句GENERATE語(yǔ)句5.2.1并行信號(hào)賦值語(yǔ)句賦值語(yǔ)句在進(jìn)程內(nèi)使用是順序執(zhí)行,在進(jìn)程外即在結(jié)構(gòu)體中直接使用就是并行語(yǔ)句。并行信號(hào)賦值語(yǔ)句有3種形式:簡(jiǎn)單信號(hào)賦值、條件信號(hào)賦值和選擇信號(hào)賦值。
簡(jiǎn)單信號(hào)賦值語(yǔ)句語(yǔ)句格式:目標(biāo)信號(hào)<=表達(dá)式;例5-19:architectureBehavioralofgate2isbeginout1<=AandB; out2<=AorB;endBehavioral;
條件信號(hào)賦值語(yǔ)句語(yǔ)句格式:
目標(biāo)信號(hào)<=表達(dá)式1WHEN條件1ELSE
表達(dá)式2WHEN條件2ELSE
表達(dá)式3WHEN條件3ELSE…
表達(dá)式n;
說明:從條件1開始逐項(xiàng)測(cè)定,一旦賦值條件為Ture,立即將相應(yīng)表達(dá)式值賦給目標(biāo)信號(hào);其功能與進(jìn)程中的IF語(yǔ)句相同;最后一項(xiàng)表達(dá)式可以不跟條件子句,以上所有條件都不滿足時(shí),將表達(dá)式n賦給目標(biāo)信號(hào)。
條件信號(hào)賦值語(yǔ)句例5-20:ARCHITECTUREArcmuxOFmux4ISBEGINy<=i0WHENsel="00"ELSE--條件代入語(yǔ)句,句末無符號(hào)
i1WHENsel="01"ELSEi2WHENsel="10"ELSEi3;ENDarcmux;
選擇信號(hào)賦值語(yǔ)句語(yǔ)句格式:
WITH選擇條件表達(dá)式SELECT
目標(biāo)信號(hào)<=表達(dá)式1WHEN選擇值1,
表達(dá)式2WHEN選擇值2,:
表達(dá)式nWHEN選擇值n,
表達(dá)式WHENothers;
說明:根據(jù)選擇條件表達(dá)式取值,將相應(yīng)選擇值對(duì)應(yīng)的表達(dá)式賦給目標(biāo)信號(hào);該語(yǔ)句與CASE語(yǔ)句相似,要求覆蓋條件表達(dá)式的所有取值,并且不允許有條件重疊現(xiàn)象。除最后一句外各子句句末全是‘,’,而不是‘;’
。
選擇信號(hào)賦值語(yǔ)句例5-21:ARCHITECTUREArcmuxOFmux4ISBEGINWITHSELSELECTy<=i0WHEN"00",--使用“,”i1WHEN"01",i2WHEN"10",i3WHEN"11",‘Z’WHENothers;ENDarcmux;
5.2.2PROCESS進(jìn)程語(yǔ)句進(jìn)程語(yǔ)句是個(gè)復(fù)合語(yǔ)句,由順序語(yǔ)句組成,進(jìn)程內(nèi)部的語(yǔ)句是順序執(zhí)行的。在一個(gè)結(jié)構(gòu)體中可以有多個(gè)進(jìn)程,各個(gè)進(jìn)程是并發(fā)執(zhí)行的,即結(jié)構(gòu)體中多個(gè)進(jìn)程的執(zhí)行與各進(jìn)程的書寫順序無關(guān)多進(jìn)程間的通信依靠信號(hào)來傳遞。語(yǔ)句格式:
[進(jìn)程標(biāo)號(hào):]PROCESS[(敏感信號(hào)列表)][說明部分];BEGIN
順序描述語(yǔ)句;
[WAITUNTIL條件表達(dá)式];[WAITFOR時(shí)間表達(dá)式];ENDPROCESS[進(jìn)程標(biāo)號(hào)];5.2.2PROCESS進(jìn)程語(yǔ)句語(yǔ)句組成:敏感信號(hào)列表列出啟動(dòng)進(jìn)程的輸入信號(hào);也可以使用進(jìn)程順序部分的WAIT語(yǔ)句來控制進(jìn)程的啟動(dòng);WAIT語(yǔ)句和敏感列表只能出現(xiàn)一個(gè),但可以有多個(gè)WAIT語(yǔ)句。說明部分用于定義一些進(jìn)程內(nèi)部有效的局部量,包括:變量、常數(shù)、數(shù)據(jù)類型、屬性、子程序等,不允許定義信號(hào)。順序描述部分描述進(jìn)程模塊的功能。一般采用IF語(yǔ)句描述算法,實(shí)現(xiàn)模塊的行為功能。5.2.2PROCESS進(jìn)程語(yǔ)句進(jìn)程特點(diǎn):進(jìn)程狀態(tài)獨(dú)立的無限循環(huán)程序結(jié)構(gòu)。進(jìn)程有兩種運(yùn)行狀態(tài),即執(zhí)行狀態(tài)(激活)和等待狀態(tài)(掛起)。當(dāng)敏感信號(hào)列表中信號(hào)有變化或者WAIT條件滿足時(shí),進(jìn)程進(jìn)入執(zhí)行狀態(tài),順序執(zhí)行進(jìn)程內(nèi)順序描述語(yǔ)句,遇到ENDPROCESS語(yǔ)句后停止執(zhí)行,自動(dòng)返回起始語(yǔ)句PROCESS,進(jìn)入等待狀態(tài)。5.2.2PROCESS進(jìn)程語(yǔ)句進(jìn)程的并行性進(jìn)程內(nèi)部雖然是順序語(yǔ)句,但其綜合后的硬件是一個(gè)獨(dú)立模塊,所以進(jìn)程內(nèi)部的順序語(yǔ)句具有順序和并行雙重性;不同進(jìn)程是并行運(yùn)行的,進(jìn)程之間的通信通過信號(hào)傳遞,這也反映了信號(hào)的全局特征。時(shí)鐘驅(qū)動(dòng)
一般一個(gè)進(jìn)程中只能描述針對(duì)同一時(shí)鐘的同步時(shí)序邏輯,異步時(shí)序邏輯則需要由多個(gè)進(jìn)程來表達(dá)。進(jìn)程特點(diǎn)組合進(jìn)程【例5-22
】ARCHITECTUREconnectOFmux1ISBEGIN
cale:--進(jìn)程名
PROCESS(d0,d1,sel)--輸入信號(hào)為敏感信號(hào)
VARIABLEtmp1,tmp2,tmp3:std_logic;--在進(jìn)程中定義變量
BEGINtmp1:=d0ANDsel;--輸入端口向變量賦值
tmp2:=d1AND(NOTsel);tmp3:=tmp1ORtmp2;q<=tmp3;--變量值賦給輸出信號(hào)
ENDPROCESScale;ENDconnect;進(jìn)程示例時(shí)序進(jìn)程【例5-23】
ARCHITECTURErig_dOFffdISbeginprocess(clk)--時(shí)鐘為敏感信號(hào)
beginifclk’eventandclk=’1’then--時(shí)鐘clk的上升沿檢測(cè)
q<=d;endif;endprocess;endrig_d;進(jìn)程示例多進(jìn)程并行
【例5-24】ENTITYmulISPORT(a,b,c,selx,sely:INBIT;
data_out:OUTBIT);ENDmul;ARCHITECTUREexOFmulISSIGNALtemp:BIT;BEGIN進(jìn)程示例
p_a:PROCESS(a,b,selx)BEGINIF(selx='0')THENtemp<=a;ELSEtemp<=b;ENDIF;ENDPROCESSp_a;
p_b:PROCESS(temp,c,sely)BEGINIF(sely='0')THENdata_out<=temp;ELSEdata_out<=c;ENDIF;ENDPROCESSp_b;ENDex;多進(jìn)程并行例6-16的綜合結(jié)果多進(jìn)程并行異步時(shí)序進(jìn)程【例5-25】ARCHITECTUREcnt_4OFffdISsignalq0,q1:std_logic;begin
p_a:process(clk)--時(shí)鐘clk為敏感信號(hào)
beginifclk’eventandclk=’1’then--時(shí)鐘clk的上升沿檢測(cè)
q0<=notq0;endif;endprocessp_a;
進(jìn)程示例p_b:process(q0)--q0為敏感信號(hào)
beginifq0’eventandq0=’1’then--時(shí)鐘q0的上升沿檢測(cè)
q1<=notq1;endif;endprocessp_b;y<=q0&q1;endcnt_4;異步時(shí)序進(jìn)程異步時(shí)序進(jìn)程元件例化就是將預(yù)先設(shè)計(jì)好的設(shè)計(jì)實(shí)體定義為一個(gè)元件,然后利用特定的語(yǔ)句將此元件與當(dāng)前的設(shè)計(jì)實(shí)體中的指定端口相連接,從而為當(dāng)前設(shè)計(jì)實(shí)體引入一個(gè)新的低一級(jí)的設(shè)計(jì)層次。元件例化是可以多層次的,在一個(gè)設(shè)計(jì)實(shí)體中被調(diào)用安插的元件本身也可以是一個(gè)低層次的當(dāng)前設(shè)計(jì)實(shí)體,因而可以調(diào)用其他的元件,以便構(gòu)成更低層次的電路模塊。5.2.3元件例化語(yǔ)句元件例化語(yǔ)句由兩個(gè)語(yǔ)句組成:
元件說明語(yǔ)句(Component)和元件映射語(yǔ)句(Portmap)。其中component語(yǔ)句在結(jié)構(gòu)體說明部分中定義,portmap語(yǔ)句在結(jié)構(gòu)體并行執(zhí)行語(yǔ)句中使用。5.2.3元件例化語(yǔ)句元件說明語(yǔ)句格式:Component元件名is[類屬語(yǔ)句]Port(端口語(yǔ)句);Endcomponent;語(yǔ)句說明:
相當(dāng)于對(duì)一個(gè)設(shè)計(jì)好的實(shí)體進(jìn)行封裝,留出對(duì)外的接口界面。其中,元件名為要定義模塊的實(shí)體名;類屬語(yǔ)句及端口語(yǔ)句的說明與要定義模塊的實(shí)體相同,即名稱及順序要完全一致。元件說明語(yǔ)句在結(jié)構(gòu)體的說明部分定義。
元件說明語(yǔ)句
完成元件與當(dāng)前設(shè)計(jì)實(shí)體的連接,需要說明元件端口與其他模塊的連接關(guān)系,即映射。VHDL映射方式有位置關(guān)聯(lián)和名稱關(guān)聯(lián)兩種方式。格式一:例化名:Portmap(元件端口1=>映射信號(hào)1,…,元件端口n=>映射信號(hào)n);
其中例化名相當(dāng)于元件標(biāo)號(hào),是必須的;“=>”是關(guān)聯(lián)符,采用名稱關(guān)聯(lián),表示左邊的元件端口與右邊的映射信號(hào)相連;各端口關(guān)聯(lián)說明的順序任意。元件映射語(yǔ)句元件映射語(yǔ)句格式二:
例化名Portmap(映射信號(hào)1,映射信號(hào)2,…,映射信號(hào)n);
使用位置關(guān)聯(lián),采用順序一致原則,即將元件說明語(yǔ)句中的端口按順序依次與映射信號(hào)1到映射信號(hào)n連接。ORD41邏輯原理圖層次化、結(jié)構(gòu)化描述示例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYND2ISPORT(A,B:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDENTITYND2;ARCHITECTUREARTND2OFND2ISBEGINC<=ANANDB;ENDARCHITECTUREARTND2;下層元件描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYORD41ISPORT(A1,B1,C1,D1:INSTD_L
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版塔吊租賃與驗(yàn)收及付款合同3篇
- 二零二五版科技公司股份交易與反壟斷合規(guī)合同3篇
- 二零二五年度共享辦公空間租賃與服務(wù)合同2篇
- 二零二五年度咖啡廳高品質(zhì)咖啡豆供應(yīng)合同3篇
- 2025年度個(gè)人向科技公司借款合同2篇
- 二零二五年度商業(yè)街區(qū)臨時(shí)攤位租賃及管理服務(wù)合同2篇
- 2025年度“銷售合同”英文翻譯與海外市場(chǎng)品牌推廣合作框架3篇
- 2025年度木地板施工安全與質(zhì)量責(zé)任合同4篇
- KTV員工勞動(dòng)合同范本
- 2025年度煤礦井巷工程應(yīng)急救援預(yù)案編制合同
- 2023-2024學(xué)年度人教版一年級(jí)語(yǔ)文上冊(cè)寒假作業(yè)
- 人教版語(yǔ)文1-6年級(jí)古詩(shī)詞
- 上學(xué)期高二期末語(yǔ)文試卷(含答案)
- GB/T 18488-2024電動(dòng)汽車用驅(qū)動(dòng)電機(jī)系統(tǒng)
- 投資固定分紅協(xié)議
- 高二物理題庫(kù)及答案
- 職業(yè)發(fā)展展示園林
- 七年級(jí)下冊(cè)英語(yǔ)單詞默寫表直接打印
- 2024版醫(yī)療安全不良事件培訓(xùn)講稿
- 中學(xué)英語(yǔ)教學(xué)設(shè)計(jì)PPT完整全套教學(xué)課件
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)項(xiàng)目五 運(yùn)營(yíng)效果監(jiān)測(cè)
評(píng)論
0/150
提交評(píng)論