資源描述:
《EDA技術(shù)及其應(yīng)用 教學(xué)課件 作者 潘松第5章 VHDL設(shè)計技術(shù)深入.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、EDA技術(shù)及其應(yīng)用第5章VHDL設(shè)計技術(shù)深入5.1深入討論數(shù)據(jù)對象5.1.1常數(shù)CONSTANT常數(shù)名:數(shù)據(jù)類型:=表達式;第1句定義常數(shù)FBT的數(shù)據(jù)類型是STD_LOGIC_VECTOR,它等于“010110”;第2句定義常數(shù)DATAIN的數(shù)據(jù)類型是整數(shù)INTEGER,它等于15。CONSTANTFBT:STD_LOGIC_VECTOR:="010110";--標準位矢類型CONSTANTDATAIN:INTEGER:=15;--整數(shù)類型5.1深入討論數(shù)據(jù)對象5.1.2變量VARIABLE變量名:數(shù)據(jù)類型:=初始值;VARIABLEa:INTEGERRANGE0TO15;--
2、變量a定義為常數(shù),取值范圍是0到5VARIABLEd:STD_LOGIC:=‘1’;--變量a定義為標準邏輯位類型,初始值是1VARIABLEx,y:INTEGERRANGE15DOWNTO0;--定義變量x和y為整數(shù)類型VARIABLEa,b:STD_LOGIC_VECTOR(7DOWNTO0);x:=11;y:=2+x;--運算表達式賦值,y也是實數(shù)變量a:=b--b向a賦值a(0TO5):=b(2TO7);目標變量名:=表達式;5.1深入討論數(shù)據(jù)對象5.1.3信號SIGNAL信號名:數(shù)據(jù)類型:=初始值;SIGNALa,b,c,y,z:INTEGER;...PROCESS(
3、a,b,c)BEGINy<=a+b;z<=c–a;y<=b;ENDPROCESS;目標信號名<=表達式AFTER時間量;5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值表5-1信號與變量賦值語句功能的比較信號SIGNAL變量VARIABLE基本用法用于作為電路中的信號連線用于作為進程中局部數(shù)據(jù)存儲單元適用范圍在整個結(jié)構(gòu)體內(nèi)的任何地方都能適用只能在所定義的進程中使用行為特性在進程的最后才對信號賦值立即賦值5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值【例5-1】...ARCHITECTUREbhvOFDFF3ISBEGINPROCESS(CLK)VARIABLEQQ
4、:STD_LOGIC;BEGINIFCLK'EVENTANDCLK='1'THENQQ:=D1;ENDIF;ENDPROCESS;Q1<=QQ;END;5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值【例5-2】...ARCHITECTUREbhvOFDFF3ISSIGNALQQ:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENQQ<=D1;ENDIF;ENDPROCESS;Q1<=QQ;END;5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值【例5-3】LIBRARYIEEE;USEIEEE.STD
5、_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK,D1:INSTD_LOGIC;Q1:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISSIGNALA,B:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENA<=D1;B<=A;Q1<=B;ENDIF;ENDPROCESS;END;圖5-1例5-3的RTL電路圖5-2D觸發(fā)器電路5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值【例5-4】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164
6、.ALL;ENTITYDFF3ISPORT(CLK,D1:INSTD_LOGIC;Q1:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISBEGINPROCESS(CLK)VARIABLEA,B:STD_LOGIC;BEGINIFCLK'EVENTANDCLK='1'THENA:=D1;B:=A;Q1<=B;ENDIF;ENDPROCESS;END;5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值【例5-5】SIGNALin1,in2,e1,...:STD_LOGIC;...PROCESS(in1,in2,...)VARIABLEc1,..
7、.:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFin1='1'THEN...–-第1行e1<="1010";–-第2行...IFin2='0'THEN...–-第15+n行...c1:="0011";–-第30+m行...ENDIF;ENDPROCESS;5.1深入討論數(shù)據(jù)對象5.1.4進程中的信號與變量賦值【例5-6】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INS