資源描述:
《eda第3章VHDL編程基礎(chǔ)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第3章VHDL編程基礎(chǔ)3.4VHDL順序語句3.5VHDL并行語句3.4VHDL順序語句VHDL語句:順序語句(SequentiaStatements)并行語句(ConcurrentStatements)順序語句包括:*EXIT語句*賦值語句*IF語句*CASE語句*LOOP語句*NEXT語句*NULL語句(空操作語句)*RETURN語句(返回語句)*子程序調(diào)用語句*WAIT語句(等待語句)轉(zhuǎn)向控制語句順序語句只能出現(xiàn)在進程(Process)和子程序中。在VHDL中,一個進程是由一系列順序語句構(gòu)成的,而進程本身屬并行語句。子程序本身并無順序和并行語句之分。PROCES
2、S語句格式:[進程標(biāo)號:]PROCESS[(敏感信號表)][IS][進程說明部分];BEGIN順序描述語句;ENDPROCESS[進程標(biāo)號];啟動條件說明數(shù)據(jù)類型、子程序、變量等Itisimportantthatthesensitivitylistincludesallsignalsthatmightcauseanoutputtochange.3.4.1賦值語句賦值語句有兩種:信號賦值語句(SignalAssignment)變量賦值語句(VariableAssignment)1.信號和變量賦值變量賦值與信號賦值的區(qū)別在于:變量是一個局部量,只局限于進程內(nèi)或子程序。變量
3、賦值是立即發(fā)生。信號是全局量,代表硬件連接線。賦值總有延時性。語法格式如下:變量賦值目標(biāo):=賦值源;信號賦值目標(biāo)<=賦值源;【例3.4.1】SIGNALS1,S2:STD_LOGIC;SIGNALSVEC:STD_LOGIC_VECTOR(0TO7);...PROCESS(S1,S2)ISVARIABLEV1,V2:STD_LOGIC;信號進程變量敏感信號表BEGINV1:=‘1’;V2:=‘1’;S1<=‘1’;S2<=‘1’;SVEC(0)<=V1;SVEC(1)<=V2;SVEC(2)<=S1;SVEC(3)<=S2;變量賦值信號賦值V1:=‘0’;V2:=‘0
4、’;S2<=‘0’;SVEC(4)<=V1;SVEC(5)<=V2;SVEC(6)<=S1;SVEC(7)<=S2;ENDPROCESS;結(jié)果:SVEC=?結(jié)果:SVEC=“11100010”S2兩次賦值2.賦值目標(biāo)賦值語句中的賦值目標(biāo)有四種類型。1)標(biāo)識符賦值目標(biāo)及數(shù)組單元素賦值目標(biāo)標(biāo)識符賦值目標(biāo)是以簡單的標(biāo)識符作為被賦值的信號或變量名。數(shù)組單元素賦值目標(biāo)的表達(dá)形式為:數(shù)組類信號或變量名(下標(biāo)名)例如:V1,V2,S1,S2,SVEC(0),SVEC(5)等2)段下標(biāo)元素賦值目標(biāo)及集合塊賦值目標(biāo)段下標(biāo)元素賦值目標(biāo)的表達(dá)形式為:數(shù)組類信號或變量名(下標(biāo)1TO/DOWN
5、TO下標(biāo)2)例如:SVEC(0TO3)<=“1110”;SVEC(4TO6)<=“001”;SVEC(7)<=‘0’;集合塊賦值目標(biāo)是以一個集合的方式來賦值。位置關(guān)聯(lián)賦值方式名字關(guān)聯(lián)賦值方式【例】SIGNALA,B,C,D:STD_LOGIC;SIGNALS:STD_LOGIC_VECTOR(1TO4);...VARIABLEE,F(xiàn):STD_LOGIC;VARIABLEG:STD_LOGIC_VECTOR(1TO2);VARIABLEH:STD_LOGIC_VECTOR(1TO4);S<=(‘0’,‘1’,‘0’,‘0’);(A,B,C,D)<=S;...(3=>E,
6、4=>F,2=>G(1),1=>G(2)):=H;位置關(guān)聯(lián)方式賦值名字關(guān)聯(lián)方式賦值S<=“0100”結(jié)果:A<=‘0’;B<=‘1’;C<=‘0’;D<=‘0’;G(2):=H(1);G(1):=H(2);E:=H(3);F:=H(4);3.4.2轉(zhuǎn)向控制語句轉(zhuǎn)向控制語句共有五種:IF語句CASE語句LOOP語句NEXT語句EXIT語句IF條件句THEN順序語句;{ELSIF條件句THEN順序語句};[ELSE順序語句];ENDIF;1.IF語句IF語句是一種條件語句,它根據(jù)語句中所設(shè)置的一種或多種條件,有選擇地執(zhí)行指定的順序語句,其語句結(jié)構(gòu)如下:[例1]用IF_TH
7、EN語句描述一個D觸發(fā)器。數(shù)據(jù)輸入端:D;時鐘輸入端:CLK;輸出端:Q。--VHDLofdffLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff_1ISPORT(d,clk:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDdff_1;庫說明程序包說明實體ARCHITECTUREstrOFdff_1ISBEGINPROCESS(clk)BEGINIF(clk'EVENTANDclk='1')THENq<=d;ENDIF;ENDPROCESS;ENDstr;clk的上升沿結(jié)構(gòu)體進程不完全描述構(gòu)