《VHDL語言要素》ppt課件_第1頁
《VHDL語言要素》ppt課件_第2頁
《VHDL語言要素》ppt課件_第3頁
《VHDL語言要素》ppt課件_第4頁
《VHDL語言要素》ppt課件_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、l標(biāo)識符標(biāo)識符(Identifiers)l數(shù)據(jù)對象數(shù)據(jù)對象l數(shù)據(jù)類型數(shù)據(jù)類型lVHDL屬性屬性l運算符運算符l有效標(biāo)識符l變量信號的區(qū)別l三種數(shù)據(jù)類型 l三類屬性l四種操作符 標(biāo)識符標(biāo)識符(Identifiers)由英文字母由英文字母“a到到“z、“A到到“Z、數(shù)字、數(shù)字“0到到“9以及以及下劃線下劃線“_組成組成運用時留意:運用時留意:1、VHDL不區(qū)分大小寫不區(qū)分大小寫2、標(biāo)識符一定要以字母開頭、標(biāo)識符一定要以字母開頭3、下劃線不能放在結(jié)尾、下劃線不能放在結(jié)尾4、下劃線不能連用、下劃線不能連用5、保管字關(guān)鍵字不能做標(biāo)識符、保管字關(guān)鍵字不能做標(biāo)識符有效的標(biāo)識符有效的標(biāo)識符A_h_1 show

2、_new_state COUNTER-A decode3_8 counter非法的標(biāo)識符非法的標(biāo)識符A%h_1 show-new-state COUNTER_ T_ _1 3_8decoder IS DOWNTOl常量常量CONSTANTl變量變量VARIABLEl信號信號SIGNAL 常量是一個在仿真常量是一個在仿真/綜合過程中固定不變綜合過程中固定不變的值,可經(jīng)過標(biāo)識符來援用。與的值,可經(jīng)過標(biāo)識符來援用。與C言語中的言語中的常量的意義完全一樣。常量的意義完全一樣。 運用常量的主要目的是添加設(shè)計文件的運用常量的主要目的是添加設(shè)計文件的可讀性和可維護(hù)性??勺x性和可維護(hù)性。 常量是全局量,在構(gòu)造

3、體、程序包闡明、常量是全局量,在構(gòu)造體、程序包闡明、實體闡明、過程闡明、函數(shù)調(diào)用闡明和進(jìn)程實體闡明、過程闡明、函數(shù)調(diào)用闡明和進(jìn)程闡明中運用闡明中運用常數(shù)的描畫格式:常數(shù)的描畫格式:CONSTANT 常數(shù)名:數(shù)據(jù)類型:常數(shù)名:數(shù)據(jù)類型:=表達(dá)式表達(dá)式例:例: CONSTANT Vcc: REAL:=5.0; CONSTANT DALY: TIME:=100ns; CONSTANT FBUS: BIT_VECTOR:=0101; 變量只能在進(jìn)程、函數(shù)和過程中運用,用變量只能在進(jìn)程、函數(shù)和過程中運用,用于聲明部分值,一旦賦值立刻生效。于聲明部分值,一旦賦值立刻生效。變量的描畫格式:變量的描畫格式:V

4、ARIABLE 變量名:數(shù)據(jù)類型變量名:數(shù)據(jù)類型 約束條件:約束條件:=表達(dá)式表達(dá)式 :=初始值初始值例:例: VARIABLE x, y: INTEGER; VARIABLE count: INTEGER RANGE 0 TO 255:=10; variable count: std_logic (7 downto 0);variable cou: std_logic_vector(15 downto 0):=0000000000001011;目的變量名:目的變量名:=表達(dá)式表達(dá)式a:=b+c;a:=NOT bAND NOT C; 信號是全局量,在實體闡明、構(gòu)造體描信號是全局量,在實體闡明、

5、構(gòu)造體描畫和程序包闡明中運用。畫和程序包闡明中運用。SIGNAL用于聲明用于聲明內(nèi)部信號,信號除了沒有方向的概念以外幾內(nèi)部信號,信號除了沒有方向的概念以外幾乎和端口概念一致。乎和端口概念一致。 作用:在元件之間起互聯(lián),代表電路內(nèi)作用:在元件之間起互聯(lián),代表電路內(nèi)部各元件之間的銜接線,可以賦值給外部信部各元件之間的銜接線,可以賦值給外部信號。號。信號的描畫格式:信號的描畫格式: SIGNAL 信號名:數(shù)據(jù)類型信號名:數(shù)據(jù)類型 :=初始值初始值例:例:SIGNAL sys_clk: BIT:=0;SIGNAL ground: BIT:=0 signal aa:std_logic_vector(7

6、downto 0);signal aa:std_logic_vector(3 downto 0):=“1010;信號賦值語句語法格式信號賦值語句語法格式 目的信號名目的信號名=表達(dá)式表達(dá)式; q=count; irq=0; aa=dx1; bb=dx2; s1=s2 AFTER 10ns indata=bb(7 downto 0)&aa(7 downto 0); 建議在構(gòu)造體中用賦值語句完成對建議在構(gòu)造體中用賦值語句完成對信號賦初值的義務(wù),由于綜合器往往回信號賦初值的義務(wù),由于綜合器往往回忽略信號聲明時所賦初值。忽略信號聲明時所賦初值。l信號賦值可以有延遲時間,變量賦值無時間延遲信號賦值可以有

7、延遲時間,變量賦值無時間延遲l信號除當(dāng)前值外還有許多相關(guān)值,如歷史信息等,變量信號除當(dāng)前值外還有許多相關(guān)值,如歷史信息等,變量只需當(dāng)前值只需當(dāng)前值l進(jìn)程對信號敏感,對變量不敏感進(jìn)程對信號敏感,對變量不敏感l(wèi)信號可以是多個進(jìn)程的全局信號,但變量只在定義它之信號可以是多個進(jìn)程的全局信號,但變量只在定義它之后的順序域可見后的順序域可見l 信號可以看作硬件的一根連線,但變量無此對應(yīng)關(guān)系信號可以看作硬件的一根連線,但變量無此對應(yīng)關(guān)系l賦值的方式不同;聲明的位置不同賦值的方式不同;聲明的位置不同l規(guī)范數(shù)據(jù)類型規(guī)范數(shù)據(jù)類型l用戶自定義的數(shù)據(jù)類型用戶自定義的數(shù)據(jù)類型lIEEE預(yù)定義規(guī)范邏輯與矢量預(yù)定義規(guī)范邏輯

8、與矢量1、整數(shù)、整數(shù)INTEGER 范圍:范圍:-2147483547-21474836462、實數(shù)、實數(shù)REAL 范圍:范圍:-1.0E38-1.0E38 綜合器不支持綜合器不支持書寫時一定要有小數(shù)。書寫時一定要有小數(shù)。3、位、位BIT 在數(shù)字系統(tǒng)中,信號經(jīng)常用位的值表示,在數(shù)字系統(tǒng)中,信號經(jīng)常用位的值表示,位的值用帶單引號的位的值用帶單引號的1和和0來表示來表示4、位矢量、位矢量BIT_VECTOR 位矢量是用雙引號括起來的一組位數(shù)據(jù)位矢量是用雙引號括起來的一組位數(shù)據(jù) “0101015、布爾量、布爾量BOOLEAN 只需只需“真和真和“假兩個形狀,可以進(jìn)展關(guān)系假兩個形狀,可以進(jìn)展關(guān)系運算運

9、算6、字符、字符CHARACTER 字符量通常用單引號括起來,對大小寫敏感字符量通常用單引號括起來,對大小寫敏感明確闡明明確闡明1是字符時:是字符時: CHARACTER1 7、字符串、字符串STRING 字符串是雙引號括起來的由字母、數(shù)字或字符串是雙引號括起來的由字母、數(shù)字或、%、$組成的一串字符。區(qū)分大小寫組成的一串字符。區(qū)分大小寫 “l(fā)aksdklakld “10101010108、時間、時間TIME時間的單位:時間的單位:fs,ps,ns,ms,sec,min,hr例:例: 10 ns整數(shù)數(shù)值和單位之間應(yīng)有空格整數(shù)數(shù)值和單位之間應(yīng)有空格9、錯誤等級、錯誤等級SEVERITY LEVEL

10、 在在VHDL仿真器中,錯誤等級用來表示系統(tǒng)仿真器中,錯誤等級用來表示系統(tǒng)的形狀,它共有的形狀,它共有4種:種:NOTE留意留意WARNING警告警告ERROR錯誤錯誤FAILURE失敗失敗10、自然數(shù)、自然數(shù)(NATURAL) 正整數(shù)正整數(shù)POSITIVE 自然數(shù)是整數(shù)的一個子類型,包括自然數(shù)是整數(shù)的一個子類型,包括0和正整數(shù);和正整數(shù);正整數(shù)也是整數(shù)的一個子類型。正整數(shù)也是整數(shù)的一個子類型。 只能是正整數(shù)數(shù)據(jù)除定義類型外,有時還需只能是正整數(shù)數(shù)據(jù)除定義類型外,有時還需求定義約束范圍。求定義約束范圍。 INTEGER RANGE100 DOWNTO 0 BIT_ VECTOR (3 DOWN

11、TO 0) REAL RANGE 2.0 TO 30.0 在在IEEE的程序包的程序包std_logic_1164中定義了兩中定義了兩個非常重要的數(shù)據(jù)類型:個非常重要的數(shù)據(jù)類型: 1 、std_logic 取值:取值:0,1,Z,X,W,L,H Z:高阻高阻 X:不定不定 W:弱信號不定弱信號不定 L:弱信號弱信號0 H:弱信號弱信號1 2、Std_logic_vector 1、在運用、在運用“std_logic和和“std_logic_vector時,在程序中必需聲明庫時,在程序中必需聲明庫及程序包闡明語句,即及程序包闡明語句,即LIBRARY ieee和和std_logic_1164.AL

12、L這兩句在程序中必不可少。這兩句在程序中必不可少。 2、 std_logic有多個取值,與有多個取值,與BIT不同,在不同,在編程時應(yīng)特別留意,需求思索全一切情況。編程時應(yīng)特別留意,需求思索全一切情況。1、枚舉類型、枚舉類型格式:格式:TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS元素、元素、元素、元素、; TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-);TYPE week IS (Sun,Mon,Tue,wed,Thu,Fri,Sat);TYPE color IS (red,green,yellow,blue) TYPE lift_state IS (stopon1,doo

13、rpeen,doorclose, doorwait1, doorwait2, doorwait3, doorwait4, doorwait5,up,down,stop) TYPE color IS (red,green,yellow,blue);VARIABLE A:COLOR;SIGNAL B:COLOR;A:=RED;B=YELLOW;TYPE lever IS (0,1,z);SIGNAL V:lever;V=1;2、整數(shù)、整數(shù)INTEGER格式:格式:TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義數(shù)據(jù)類型定義 約束范圍約束范圍例例 TYPE digit IS INTEGER RAN

14、GE 0 TO 9 VARIABLE A:DIGIT; A:=5; A:=28;3、實數(shù)、實數(shù)REAL格式:格式:TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義數(shù)據(jù)類型定義 約約束范圍束范圍 TYPE current IS REAL RANGE -1E4 TO 1E4 VARIABLE A:CURRENT; A:=1E3; A:=1E10;4、數(shù)組、數(shù)組ARRAY格式:格式:TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 ISARRAY 范圍范圍 OF 原數(shù)據(jù)類型名;原數(shù)據(jù)類型名;例:例:TYPE word IS ARRAY (1 TO 8) OF STD_LOGIC;TYPE word IS ARRAY

15、 (INTEGER 1 TO 8) OF STD_LOGIC;數(shù)組常在總線、數(shù)組常在總線、ROM和和RAM中運用。中運用。 5 5、記錄、記錄RECODERECODE 類型類型將不同的數(shù)據(jù)類型放在一塊,就是記錄類型數(shù)據(jù)將不同的數(shù)據(jù)類型放在一塊,就是記錄類型數(shù)據(jù)格式:格式:TYPE TYPE 記錄類型名記錄類型名 IS RECORD IS RECORD 元素名:數(shù)據(jù)類型名;元素名:數(shù)據(jù)類型名; 元素名:數(shù)據(jù)類型名;元素名:數(shù)據(jù)類型名; : :END RECORDEND RECORD記錄類型名記錄類型名 ; 例:例:TYPE bank IS RECORDaddr0: STD_LOGIC_VECTO

16、R(7 DOWNTO 0);addr1: STD_LOGIC_VECTOR(7 DOWNTO 0);r0: INTEGER;END RECORD; 例:例:CONSTANT LEN:integer:=100; TYPE array logic IS ARRAY 99 downto 0OF STD_LOGIC_VECTOR(7 DOWNTO 0) TYPE table IS RECORDa: array logic;b: STD_LOGIC_VECTOR(7 DOWNTO 0);c: integer RANGE 0 to len ;END RECORD; 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)有數(shù)據(jù)類型轉(zhuǎn)換函數(shù)有VH

17、DLVHDL言語的包提供言語的包提供例如:例如:STD_LOGIC_1164,STD_LOGIC_1164, STD_LOGIC_ARITH STD_LOGIC_ARITH STD_LOGIC_UNSIGNED STD_LOGIC_UNSIGNED等等等等 函數(shù)函數(shù)闡明闡明STD_LOGIC_1164包包TO_STDLOGIC_VECTOR(A)TO_BITVECTOR(A)TO_LOGIC(A)TO_BIT(A)由 B I T _ V E C T O R 轉(zhuǎn) 換 成STD_LOGIC_VECTOR由STD_LOGIC_VECTOR轉(zhuǎn)換成BIT_VECTOR由BIT轉(zhuǎn)換成STD_LOGIC由S

18、TD_LOGIC轉(zhuǎn)換成BITSTD_LOGIC_ARITH包包CONV_STD_LOGIC_VECTOR(A,位長位長)CONV_INTEGER(A)由INTEGER,UNSIGNED和SIGNED轉(zhuǎn)換成STD_LOGIC_VECTOR由UNSIGNED和SIGNED轉(zhuǎn)換成INTEGERSTD_LOGIC_UNSIGNED包包CONV_INTEGER(A) STD_LOGIC_VECTOR轉(zhuǎn)換成INTEGER VHDL沒有普通程序文語中的那些運算類規(guī)范函數(shù),取而代之的是多種能反映和影響硬件行為的屬性。屬性在描畫時序電路的VHDL設(shè)計文件中幾乎處處可見,如檢測上升沿、下降沿,知道前一次發(fā)生的事件

19、。 屬性指的是關(guān)于實體、構(gòu)造體、類型及信號的一些特征。有的屬性對綜合設(shè)計非常有用。 VHDL的屬性可分為數(shù)值類屬性、函數(shù)類屬性、范圍類屬性、信號類屬性、類型類屬性。其援用的普通方式為:對象屬性。 數(shù)值類屬性用于前往數(shù)組、塊或普通數(shù)數(shù)值類屬性用于前往數(shù)組、塊或普通數(shù)據(jù)的有關(guān)值,如邊境、數(shù)組長度等信息。對據(jù)的有關(guān)值,如邊境、數(shù)組長度等信息。對普通的數(shù)據(jù)有普通的數(shù)據(jù)有4種數(shù)值類屬性:對象類型的左種數(shù)值類屬性:對象類型的左邊境、右邊境、上邊境、下邊境,對應(yīng)的關(guān)邊境、右邊境、上邊境、下邊境,對應(yīng)的關(guān)鍵字是:鍵字是:LEFT、RIGHT、HIGH、LOW。數(shù)組在加一個長度屬性數(shù)組在加一個長度屬性LENGT

20、H。sdown:IN std_logic_vector(8 DOWNTO 0);sup:IN std_logic-vector(0 to 8); 這兩個信號的各屬性值如下這兩個信號的各屬性值如下:sdownleft=8; sdownright=0; sdownlow=0; sdownhigh=8; sdownlength=9;supleft=0; supright=8; suplow=0; suphigh=8; suplength=9;TYPE bit32 IS ARRAY (63 DOWNTO 32)OF BITVARIABLE:left_range,right_range,up_range

21、,low_range,len:INTEGER;BEGIN left-range:=bit32LEFT; -return 63right-range:=bit32RIGHT; -return 32up-range:=bit32HIGH; -return 63low-range:=bit32LOW; -return 32len:=bit32LENGTH; -return 32 信號屬性函數(shù)屬于函數(shù)類屬性,用來前往有信號屬性函數(shù)屬于函數(shù)類屬性,用來前往有關(guān)信號行為功能的信息。共有關(guān)信號行為功能的信息。共有5種信號屬性函數(shù),種信號屬性函數(shù),分別是分別是: EVENT(事件事件) ; ACTIVE(活潑

22、活潑); LAST_EVENT (最近一次事件到如今經(jīng)過多少最近一次事件到如今經(jīng)過多少時間時間); LAST_ACTIVE (最近一次活潑到如今最近一次活潑到如今經(jīng)過多少時間經(jīng)過多少時間); LAST_VALUE(信號變化前的信號變化前的取值是什么取值是什么) EVENT:它的值為布爾型它的值為布爾型,取值為取值為TRUE或或FALSE; 假設(shè)剛好有事件發(fā)生在該屬性所附著的信號假設(shè)剛好有事件發(fā)生在該屬性所附著的信號上上(即信號有變化即信號有變化),取值為取值為TRUE。 利用此屬性可決議時鐘邊沿能否有效利用此屬性可決議時鐘邊沿能否有效,即時鐘即時鐘能否發(fā)生。能否發(fā)生。SIGNAL clk: I

23、N std_logic;clk EVENT AND clk=1 clk=1 AND clk EVENTclk EVENT AND clk=0clk=0 AND clk EVENTrising_edge(clk) falling_edge(clk) EVENT 要求信號值發(fā)生變化;要求信號值發(fā)生變化;1到到0、0到到1 ACTIVE 信號值的任何變化,信號值的任何變化,1到到1,1 到到0,0到到1,0到到0; 一切的事件都是活潑,但并非一切的活潑都一切的事件都是活潑,但并非一切的活潑都是事件是事件 RANGE屬性,其生成一個限制性數(shù)據(jù)對屬性,其生成一個限制性數(shù)據(jù)對象的范圍。象的范圍。 例例 SIGNAL data_bus:std_logic_vector(15 DOWNTO 0); data_bus RANGE=15 downto 0 VHDL與其他的高級言語非常類似,具有豐與其他的高級言語非常類似,具有豐富的運算操作符以滿足不同描畫功能的需求。在富的運算操作符以滿足不同描畫功能的需求。在VH

溫馨提示

  • 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

提交評論