VHDL數(shù)據(jù)類型_第1頁
VHDL數(shù)據(jù)類型_第2頁
VHDL數(shù)據(jù)類型_第3頁
VHDL數(shù)據(jù)類型_第4頁
VHDL數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VHDL數(shù)據(jù)類型      VHDL是一種強數(shù)據(jù)類型語言。     要求設(shè)計實體中的每一個常數(shù)、信號、變量、函數(shù)以及設(shè)定的各種參量都必須具有確定的數(shù)據(jù)類型,并且相同數(shù)據(jù)類型的量才能互相傳遞和作用。     VHDL數(shù)據(jù)類型分為四大類:        1標(biāo)量類型(SCALAR TYPE);      

2、  2復(fù)合類型(COMPOSITE TYPE);        3存取類型(ACCESS TYPE);        4文件類型(FILES TYPE)又分為:   1預(yù)定義數(shù)據(jù)類型、   2用戶自定義數(shù)據(jù)類型1、VHDL的預(yù)定義數(shù)據(jù)類型   1)布爾量(boolean)     

3、; 布爾量具有兩種狀態(tài):false 和 true   常用于邏輯函數(shù),如相等(=)、比較(<)   等中作邏輯比較。   如,bit 值轉(zhuǎn)化成boolean 值:       boolean_var := (bit_var = 1);2)位(bit)    bit 表示一位的信號值。    放在單引號中,如 0 或 1。3)位矢量 (bit_

4、vector)   bit_vector 是用雙引號括起來的一組位數(shù)據(jù)。   如: “001100”       X“00B10B”4)字符(character)   用單引號將字符括起來。    variable character_var : character;     . .    Character

5、_var : = A;5)整數(shù)(integer)   integer 表示所有正的和負(fù)的整數(shù)。硬件實現(xiàn)時,利用32位的位矢量來表示。可實現(xiàn)的整數(shù)范圍為:       -(231-1) to (231-1)    VHDL綜合器要求對具體的整數(shù)作出范圍限定,否則無法綜合成硬件電路。   如:signal s : integer range 0 to 15;   信號 s 的取值范圍是0-15,可用4

6、位二進(jìn)制數(shù)表示,因此 s 將被綜合成由四條信號線構(gòu)成的信號。6)自然數(shù)(natural)和正整數(shù)(positive)   natural是integer的子類型,表示非負(fù)整數(shù)。   positive是integer的子類型,表示正整數(shù)。   定義如下:   subtype natural is integer range 0 to      integerhigh;   subtype

7、positive is integer range 1 to      integerhigh;7)實數(shù)(REAL)      或稱浮點數(shù)      取值范圍:-1.0E38 - +1.0E38      實數(shù)類型僅能用于VHDL仿真器,一般綜合器   不支持。8)字符串(string)   

8、60;   string 是 character 類型的一個非限定   數(shù)組。用雙引號將一串字符括起來。如:      variable string_var : string(1 to 7);             string_var := “Rosebud”;9)時間(TIME)     由

9、整數(shù)和物理單位組成     如:55 ms,20 ns10)錯誤等級(SEVERITY_LEVEL)    仿真中用來指示系統(tǒng)的工作狀態(tài),共有四種:        NOTE(注意)、        WARNING(警告)、        ERROR(出錯)、 

10、       FAILURE(失?。?、IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位與矢量   1)std_logic 類型       由 ieee 庫中的std_logic_1164 程序   包定義,為九值邏輯系統(tǒng),如下:    (U,X,0,1,Z,W,L,H,-)      U:未初始化的, X:強未知的,&

11、#160;     0:強0,        1:強1,      Z:高阻態(tài),     W:弱未知的,      L:弱0,        H:弱1,     

12、0;-:忽略     由 std_logic 類型代替 bit 類型可以完成電子系統(tǒng)的精確模擬,并可實現(xiàn)常見的三態(tài)總線電路。2)std_logic_vector 類型   由 std_logic 構(gòu)成的數(shù)組。定義如下:      type std_logic_vector is array(natural             

13、;range<>) of std_logic;   賦值的原則:相同位寬,相同數(shù)據(jù)類型。3、用戶自定義類型   用戶自定義類型是VHDL語言的一大特色。   可由用戶定義的數(shù)據(jù)類型有:      1)枚舉類型、      2)整數(shù)和實數(shù)類型、      3)數(shù)組類型、    &

14、#160; 4)記錄類型、      5)子類型用類型定義語句TYPE和子類型定義語句SUBTYPE實現(xiàn)用戶自定義數(shù)據(jù)類型。    TYPE語句格式:例:type byte is array(7 downto 0) of bit;    variable addend : byte;    type week is (sun, mon, tue, wed, thu,   

15、60;     fri, sat);type 數(shù)據(jù)類型名   is 數(shù)據(jù)類型定義   of   基本數(shù)據(jù)類型;SUBTYPE語句格式:例:    subtype digits is integer range 0 to 9;    由subtype 語句定義的數(shù)據(jù)類型稱為子類型。subtype 子類型名 is 基本數(shù)據(jù)類型   約束范圍;1)枚舉類

16、型    枚舉該類型的所有可能的值。格式:如:type std_logic is(U,X,0,1,          Z,W,L,H,-)如:type color is(blue,green,yellow, red);    type my_logic is (0, 1, U, Z);    variable hue : color;   

17、0;signal sig : my_logic;    hue := blue;       sig <= Z;type 類型名稱 is (枚舉文字,枚舉文字);枚舉類型的編碼:     綜合器自動實現(xiàn)枚舉類型元素的編碼,一般將第一個枚舉量(最左邊)編碼為0,以后的依次加1。編碼用位矢量表示 ,位矢量的長度將取所需表達(dá)的所有枚舉元素的最小值。如:type color is(blue,green,yellow,red); 

18、   編碼為: blue=“00”;                           green=“01”;             yellow=“10”;

19、0;                   red=“11”;2)整數(shù)類型      用戶定義的整數(shù)類型是標(biāo)準(zhǔn)包中整數(shù)類型的子范圍。格式:例:type my_integer is integer range 0 to 9;3)數(shù)組類型   數(shù)組:同類型元素的集合。VHDL支持多維數(shù)組。   

20、多維數(shù)組的聲明:   type byte is array(7 downto 0) of bit;   type vector is array(3 downto 0) of byte;   限定數(shù)組、非限定數(shù)組、屬性:type 類型名稱 is range 整數(shù)范圍;限定數(shù)組:    其索引范圍有一定的限制。格式:    非限定數(shù)組:數(shù)組索引范圍被定義成一個類型范圍。格式:例:type bit_vector is array(

21、integer range <>)          of bit;    variable my_vector:bit_vector (5 downto -5);type 數(shù)組名 is array(數(shù)組范圍) of 數(shù)據(jù)類型;type 數(shù)組名 is array(類型名稱 range <>) of 數(shù)據(jù)類型;屬性:      VHDL為多種類型定義了屬性。 

22、60;   語法如下:         對象屬性     VHDL為數(shù)組預(yù)先定義的屬性:         left      right         high  &#

23、160;   low         length    range         reverse_range對應(yīng)變量:        variable my_vector : bit_vector (5 downto -5);各屬性如下:  &#

24、160;     my_vectorleft                             5        my_vectorright  

25、0;                      -5        my_vectorhigh                 &

26、#160;         5        my_vectorlow                          -5   

27、0;    my_vectorlength                       11        my_vectorrange         

28、60;        (5 downto -5)        my_vectorreverse_range        (-5 to 5)4)記錄類型      記錄是不同類型的名稱域的集合。   格式如下:     

29、;訪問記錄體元素的方式:記錄體名.元素名type 記錄類型名 is record                    元素名:數(shù)據(jù)類型名;                    元素名:數(shù)據(jù)類型名;

30、                           end   record;例:    constant len:integer:= 8 ;subtype byte_vec is bit_vector(len-1 downto 0);type byte_a

31、nd_ix is record       byte : byte_vec;         ix : integer range 0 to len;end record ;signal x, y, z : byte_and_ix ;signal data : byte_vec ;signal num : integer ;         

32、60;     .x.byte <= “11110000” ;x.ix <= 2 ;data <= y.byte ;num <= y.ix ;z <= x ;5)子類型      子類型是已定義的類型或子類型的一個子集。格式:             例:   bit_vector 類型定義如下:   type bit_vector is array (natural range <>)        of bit;   如設(shè)計中只用16bit;可定義子類型如下:   subtype my_vector is bit_vector(0 to 15);注:子類型與

溫馨提示

  • 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

提交評論