EDA VHDL第三章 VHDL數(shù)據(jù)類型和運(yùn)算操作符_第1頁
EDA VHDL第三章 VHDL數(shù)據(jù)類型和運(yùn)算操作符_第2頁
EDA VHDL第三章 VHDL數(shù)據(jù)類型和運(yùn)算操作符_第3頁
EDA VHDL第三章 VHDL數(shù)據(jù)類型和運(yùn)算操作符_第4頁
EDA VHDL第三章 VHDL數(shù)據(jù)類型和運(yùn)算操作符_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、3.3.1 數(shù)據(jù)對象數(shù)據(jù)對象3.3.2 詞法規(guī)則與標(biāo)識符詞法規(guī)則與標(biāo)識符3.3.3 數(shù)據(jù)類型數(shù)據(jù)類型3.3.4 運(yùn)算操作符運(yùn)算操作符VHDL四類語言要素四類語言要素n數(shù)據(jù)對象數(shù)據(jù)對象n數(shù)據(jù)類型數(shù)據(jù)類型n運(yùn)算操作數(shù)運(yùn)算操作數(shù)n運(yùn)算操作符運(yùn)算操作符n對象對象(object): 可賦予一個值的客體可賦予一個值的客體nVHDL對象的對象的3種基本數(shù)據(jù)類型:種基本數(shù)據(jù)類型: 常量常量 (CONSTANT) 變量變量 (VARIABLE) 信號信號 (SIGNAL) 3.3.1 數(shù)據(jù)數(shù)據(jù)n對象的物理含義對象的物理含義: : 常量常量:數(shù)電中電源、地等數(shù)電中電源、地等常數(shù)常數(shù) 變量:變量:暫存暫存某些值的某

2、些值的載體載體 信號:信號:物理設(shè)計中的某一條物理設(shè)計中的某一條硬件連線硬件連線, 包括輸入、輸出端口包括輸入、輸出端口 n變量:變量:局部量局部量,僅用于,僅用于process語句、語句、 子程序(子程序(function 、procedure)n信號:信號:全局量全局量, 用于用于entity, architecture、packagen常量常量: : 全局量全局量,可用于上面兩種場合,可用于上面兩種場合對象的特點及使用場合對象的特點及使用場合: :n用在用在進(jìn)程語句進(jìn)程語句、子程序子程序中,變量是一個中,變量是一個局部量局部量,其作,其作用范圍僅限在定義了變量的進(jìn)程和子程序中。用范圍僅限

3、在定義了變量的進(jìn)程和子程序中。n書寫格式:書寫格式: VARIABLE 變量名:數(shù)據(jù)類型變量名:數(shù)據(jù)類型 約束條件約束條件 :表達(dá)式表達(dá)式; 舉例如下:舉例如下: VARIABLE result: std_logic:0 ; VARIABLE x,y: integer; VARIABLE a:integer range 0 to 255 :0 ;1.變量變量(variable)constant庫、程序包庫、程序包實實 體體結(jié)結(jié) 構(gòu)構(gòu) 體體1進(jìn)程進(jìn)程1結(jié)結(jié) 構(gòu)構(gòu) 體體2進(jìn)程進(jìn)程2電子硬件系統(tǒng)運(yùn)行的基本特性:電子硬件系統(tǒng)運(yùn)行的基本特性:n各部分電路工作的各部分電路工作的并行并行特性;特性;n信號傳

4、輸過程中的信號傳輸過程中的延時延時特性;特性;n多驅(qū)動源的多驅(qū)動源的總線總線特性;特性;n時序電路中觸發(fā)器的時序電路中觸發(fā)器的記憶記憶特性等特性等 3.3.信號信號(signal) 信號信號是電子系統(tǒng)內(nèi)部硬件連接和硬件特性表示。是電子系統(tǒng)內(nèi)部硬件連接和硬件特性表示。 用來描述硬件系統(tǒng)的基本特性用來描述硬件系統(tǒng)的基本特性n電子電路內(nèi)部硬件實體電子電路內(nèi)部硬件實體相互連接相互連接的抽象表示的抽象表示 (通常通常 在結(jié)構(gòu)體、包集合和實體說明中使用在結(jié)構(gòu)體、包集合和實體說明中使用) 一般書寫格式為:一般書寫格式為: SIGNAL 信號名信號名:數(shù)據(jù)類型數(shù)據(jù)類型 約束類型約束類型: :表達(dá)式;表達(dá)式;

5、舉例如下:舉例如下: SIGNAL a, b:BIT :0; SIGNAL count:bit_vector(7 down to 0); SIGNAL init:integer :-1; SIGNAL count:std_logic:= 0 ;進(jìn)程中信號與變量的使用進(jìn)程中信號與變量的使用ENTITY ex ISport(.);END ex;ARCHITECTURE arch_ex OF ex ISsignal a,b: std_logic;begin process(a,b) variable c,d:std_logic; begin c:=a+b; d:=a-b; . ENDprocess;

6、END arch ex;3.3.2 詞法規(guī)則與標(biāo)識符詞法規(guī)則與標(biāo)識符n1.詞法規(guī)則詞法規(guī)則 1) 注釋注釋 以以-開頭直到本行末尾開頭直到本行末尾(出現(xiàn)回出現(xiàn)回車或換行符車或換行符)的文字的文字提高提高VHDLVHDL語言設(shè)計程序的可讀性,語言設(shè)計程序的可讀性,n1.1.詞法規(guī)則詞法規(guī)則 2) 數(shù)字?jǐn)?shù)字表達(dá)方式:十進(jìn)制,二進(jìn)制、八進(jìn)表達(dá)方式:十進(jìn)制,二進(jìn)制、八進(jìn)制、十六進(jìn)制等為基的數(shù)制、十六進(jìn)制等為基的數(shù) 十進(jìn)制整數(shù)表示法十進(jìn)制整數(shù)表示法 78_567(=78567) 以基表示的數(shù)以基表示的數(shù) 格式:格式: 基數(shù)符號基數(shù)符號#數(shù)值數(shù)值#指數(shù)部分指數(shù)部分 2#111_1011# 016#F.01

7、#E+42、基表示法、基表示法n格式格式: : 基數(shù)基數(shù)數(shù)字文字?jǐn)?shù)字文字E E指數(shù)指數(shù) 如如: 10#170# (=170) 2#1111_1110# (=254) 16#E# E1 (=2 #1110_0000# 224) 或或 (=14*16= 224) 16#F.01# E+2 (=(15+1/(16*16)*16*16=3841.00)n關(guān)于關(guān)于VHDL中的數(shù)字,請找出以下數(shù)字中中的數(shù)字,請找出以下數(shù)字中最大的一個:最大的一個:_。n2#1111_1110#n8#276#n10#170#n16#E#E1nA實數(shù)實數(shù)(REAL)n必須帶有小數(shù)學(xué)。必須帶有小數(shù)學(xué)。n僅用于仿真器僅用于仿真器

8、,綜合器不支持綜合器不支持n 有些數(shù)可用實數(shù)表示,也可用整數(shù)表示。例如有些數(shù)可用實數(shù)表示,也可用整數(shù)表示。例如99.0是實數(shù),是實數(shù),99是整數(shù),兩數(shù)具有相同的值;是整數(shù),兩數(shù)具有相同的值;但兩者具有不同的類型。但兩者具有不同的類型。n在 有 關(guān) 文 獻(xiàn) 中 , 實 數(shù) 類 型 也 稱 為 浮 點 類 型在 有 關(guān) 文 獻(xiàn) 中 , 實 數(shù) 類 型 也 稱 為 浮 點 類 型(FLOATING TYPE)。但大多數(shù)。但大多數(shù)EDA工具不支持工具不支持浮點運(yùn)算。浮點運(yùn)算。n稱為稱為物理類型物理類型(PHYSICAL TYPES)。n書寫格式應(yīng)包含書寫格式應(yīng)包含整數(shù)和單位整數(shù)和單位兩部分。兩部分。

9、如如16 nsn時間類型一般用于時間類型一般用于仿真,仿真,不用邏輯綜合不用邏輯綜合。 3)字符字符和字符串和字符串字符字符:用用單引號單引號括起來括起來數(shù)值,字母,空格數(shù)值,字母,空格及一些特殊字及一些特殊字符。符。nVHDL語言對大小寫英文字母不敏感,但區(qū)分語言對大小寫英文字母不敏感,但區(qū)分 字符中的大小寫。字符中的大小寫。 1,2 是符號是符號 A,a,B,b 都認(rèn)為是不同的字符都認(rèn)為是不同的字符如如: variable character_var:character; . character_var:=A;字符串字符串(STRING) 字符串字符串:是字符類型的一個非限定數(shù)組是字符類型

10、的一個非限定數(shù)組 由由雙引號雙引號括起來的字符序列。括起來的字符序列。varible string_var: string(1 to 7);.string_var:=Rosebud; 文字字符串:文字字符串:“文字文字” 如:如:“ERROR”, “ZZZZ”,“XXXX” ,“X” “BOTHS AND QEAN” 數(shù)位字符串:數(shù)位字符串:稱為位矢量,代表二進(jìn)制、八進(jìn)制、稱為位矢量,代表二進(jìn)制、八進(jìn)制、十六進(jìn)制的數(shù)組。其位矢量的長度為等值的二進(jìn)十六進(jìn)制的數(shù)組。其位矢量的長度為等值的二進(jìn)制位數(shù)。制位數(shù)。 格式:格式: 基數(shù)符號基數(shù)符號“數(shù)值數(shù)值” 其中基數(shù)符號有三種:其中基數(shù)符號有三種: B:

11、二進(jìn)制基數(shù)符號二進(jìn)制基數(shù)符號。 O:八進(jìn)制基數(shù)符號八進(jìn)制基數(shù)符號,每一個八進(jìn)制數(shù),每一個八進(jìn)制數(shù) 代表一個代表一個3位的二進(jìn)制數(shù)。位的二進(jìn)制數(shù)。 X:十六進(jìn)制基數(shù)符號十六進(jìn)制基數(shù)符號,每一個,每一個十六十六進(jìn)進(jìn) 制數(shù)代表一個制數(shù)代表一個4位的二進(jìn)制數(shù)。位的二進(jìn)制數(shù)。 如如: B1011_1111, O152定義常數(shù)、變量、信號、定義常數(shù)、變量、信號、 端口、子程序或參數(shù)的端口、子程序或參數(shù)的名字名字 VHDL87版版: 短標(biāo)識符短標(biāo)識符 VHDL93版版: 短標(biāo)識符和擴(kuò)展標(biāo)識符短標(biāo)識符和擴(kuò)展標(biāo)識符VHDLVHDL語言有兩個標(biāo)準(zhǔn)版:語言有兩個標(biāo)準(zhǔn)版: VHDL短標(biāo)識符短標(biāo)識符(基本標(biāo)識符基本標(biāo)識

12、符)遵守以下規(guī)則:遵守以下規(guī)則: (1) 必須以必須以英文字母英文字母打頭。打頭。 (2) 字符可以大小寫的字符可以大小寫的字母、字母、數(shù)字?jǐn)?shù)字和和下劃線下劃線“_ _”。 (3) 下劃線前后下劃線前后都必須有都必須有英文字母或數(shù)字英文字母或數(shù)字。 (4) 英文字母英文字母不區(qū)分大小寫不區(qū)分大小寫 (5)不能連續(xù)使用不能連續(xù)使用下劃線下劃線“_”_”,最后一個符號也最后一個符號也 不能用不能用下劃線下劃線 (6) 不允許包含不允許包含圖形符號、空格符圖形符號、空格符 EDA工具綜合、仿真時,不區(qū)分大小寫。工具綜合、仿真時,不區(qū)分大小寫。 對對VHDL的保留字的保留字(關(guān)鍵字關(guān)鍵字)不能做標(biāo)識符

13、:不能做標(biāo)識符: ENTITY,ARCHITECTURE,END,BUS,USE,WHEN,WAIT,IS 在程序書寫時,一般要求大寫或黑體,使在程序書寫時,一般要求大寫或黑體,使得程序易于閱讀,易于檢查錯誤。得程序易于閱讀,易于檢查錯誤。l以下標(biāo)識符哪些是合法的?以下標(biāo)識符哪些是合法的? multi_78screens 、 Multi_、 Multi_Screens、 MULTI_SCRE_ENSlillegal%name _illegalname 9illegal entity data_ _BUS Not-Ack上一次課的內(nèi)容上一次課的內(nèi)容l程序包、庫和配置程序包、庫和配置lVHDLVH

14、DL四類語言要素四類語言要素:數(shù)據(jù)對象、數(shù)據(jù)對象、詞法規(guī)則與詞法規(guī)則與標(biāo)識符標(biāo)識符本次課程本次課程內(nèi)容內(nèi)容: 數(shù)據(jù)類型、數(shù)據(jù)類型、 運(yùn)算操作符運(yùn)算操作符 擴(kuò)展標(biāo)識符是擴(kuò)展標(biāo)識符是VHDL93版增加的標(biāo)識符書寫規(guī)則:版增加的標(biāo)識符書寫規(guī)則: (1)用用反斜杠反斜杠來定界來定界,免去了免去了87標(biāo)準(zhǔn)基本標(biāo)識符的一些限制。標(biāo)準(zhǔn)基本標(biāo)識符的一些限制。 (2) 可以可以數(shù)字?jǐn)?shù)字打頭打頭,允許包含允許包含圖形符號、空格符圖形符號、空格符。 例如:例如:mode A, $100, p%name等。等。 (3)反斜杠之間的字符可以用反斜杠之間的字符可以用關(guān)健字關(guān)健字。 如:如:buffer, entity,

15、end等。等。 (4) 標(biāo)識符的界定符兩個斜杠之間可用標(biāo)識符的界定符兩個斜杠之間可用數(shù)字打頭數(shù)字打頭。 如:如: 100$,2chip,4screens等。等。 (5) 允許允許多個下劃線相連多個下劃線相連。例:。例:TWO_Computer_sh等。等。 (6) 擴(kuò)展標(biāo)識符擴(kuò)展標(biāo)識符區(qū)分大小寫區(qū)分大小寫。例如。例如: EDA 與與eda不同。不同。 (7) 擴(kuò)展標(biāo)識符與短標(biāo)識符不同擴(kuò)展標(biāo)識符與短標(biāo)識符不同。 如如:COMPUTER 與與Computer不同不同。 擴(kuò)展標(biāo)識符擴(kuò)展標(biāo)識符3.3.3 VHDL3.3.3 VHDL語言數(shù)據(jù)類型語言數(shù)據(jù)類型VHDL語言程序是語言程序是強(qiáng)數(shù)據(jù)類型強(qiáng)數(shù)據(jù)類

16、型, 要求每一個常量、變要求每一個常量、變量、信號、函數(shù)以及各種參數(shù)學(xué)要有量、信號、函數(shù)以及各種參數(shù)學(xué)要有明確的數(shù)據(jù)類明確的數(shù)據(jù)類型型,并且不同的數(shù)據(jù)類型不能直接代入,相同的類,并且不同的數(shù)據(jù)類型不能直接代入,相同的類型,位長不同也不能代入。型,位長不同也不能代入。EDA工具在編譯會報告類型錯。工具在編譯會報告類型錯。n10種標(biāo)準(zhǔn)的預(yù)定義數(shù)據(jù)類型種標(biāo)準(zhǔn)的預(yù)定義數(shù)據(jù)類型n用戶自定義數(shù)據(jù)類型用戶自定義數(shù)據(jù)類型按照按照定義定義的方式的方式數(shù)據(jù)類型根據(jù)使用目的分為:數(shù)據(jù)類型根據(jù)使用目的分為:n 用于用于EDA工具對電子系統(tǒng)進(jìn)行工具對電子系統(tǒng)進(jìn)行綜合綜合的數(shù)據(jù)類型。的數(shù)據(jù)類型。如如標(biāo)量類型標(biāo)量類型(SC

17、ALAR TYPE),復(fù)合類型復(fù)合類型(COMPOSITE TYPE)。n用于用于EDA工具對電子系統(tǒng)進(jìn)行工具對電子系統(tǒng)進(jìn)行仿真仿真的數(shù)據(jù)類型,的數(shù)據(jù)類型,如如存取類型存取類型(ACCESS TYPE)。n預(yù)定義數(shù)據(jù)類型預(yù)定義數(shù)據(jù)類型在在VHDL標(biāo)準(zhǔn)程序包標(biāo)準(zhǔn)程序包STANDARD中定義的中定義的,已經(jīng)包含進(jìn)已經(jīng)包含進(jìn)VHDL的源的源文件中文件中,因而不必通過因而不必通過USE語句也可以顯式使用語句也可以顯式使用. VHDL語言標(biāo)準(zhǔn)所定義的語言標(biāo)準(zhǔn)所定義的標(biāo)準(zhǔn)數(shù)據(jù)類型標(biāo)準(zhǔn)數(shù)據(jù)類型 (1) 整數(shù)整數(shù)類型類型 (INTEGER TYPE) (2) 實數(shù)實數(shù)類型或浮點類型類型或浮點類型 (REAL

18、TYPE FLOATING TYPE) (3) 位位類型類型 (BIT TYPE) (4) 位矢量位矢量類型類型 (BIT_VECTOR TYPE) (5) 布爾布爾類型類型 (BOOLEAN TYPE) (6) 字符字符類型類型 (CHARACTER TYPE) (7) 時間時間類型或類型或物理物理類型類型 (Time type physical type) (8) 錯誤類型錯誤類型 (NOTE,WARNIING,ERROR, FAILURE TYPE) (9) 自然數(shù)、整數(shù)類型自然數(shù)、整數(shù)類型 (NATURAL TYPE) (10) 字符串字符串類型類型 (TRING TYPE)用戶在做電

19、子系統(tǒng)設(shè)計時,用戶在做電子系統(tǒng)設(shè)計時,自行定義的自行定義的數(shù)據(jù)類型數(shù)據(jù)類型: (1) 枚舉類型枚舉類型 (ENUMERATED TYPE) (2) 數(shù)組類型數(shù)組類型 (ARRAY TYPE) (3)文件類型文件類型 (FILES TYPE) (4)記錄類型記錄類型 (RECODE TYPE) (5) 時間類型時間類型 (TIME TYPE)2、實數(shù)、實數(shù)(REAL)n范圍范圍:1.0E38到到1.0E38。n僅用于仿真器僅用于仿真器,綜合器不支持綜合器不支持n 有些數(shù)可用實數(shù)表示,也可用整數(shù)表示。例如有些數(shù)可用實數(shù)表示,也可用整數(shù)表示。例如99.0是實數(shù),是實數(shù),99是整數(shù),兩數(shù)具有相同的值;

20、是整數(shù),兩數(shù)具有相同的值;但兩者具有不同的類型。但兩者具有不同的類型。n在 有 關(guān) 文 獻(xiàn) 中 , 實 數(shù) 類 型 也 稱 為 浮 點 類 型在 有 關(guān) 文 獻(xiàn) 中 , 實 數(shù) 類 型 也 稱 為 浮 點 類 型(FLOATING TYPE)。但大多數(shù)。但大多數(shù)EDA工具不支持工具不支持浮點運(yùn)算。浮點運(yùn)算。3、位、位(BIT)n 位通常用來表示一位的信號值。位通常用來表示一位的信號值。n 位的值通常用位的值通常用單引號單引號來括住。來括住。 如:如: TYPE BIT IS (0,1);n位的值位的值0,1表示信號的狀態(tài);表示信號的狀態(tài);n布爾量的值布爾量的值0,1表示表示假假,真真。用用雙引

21、號括起來雙引號括起來的一組的一組位位數(shù)據(jù)數(shù)據(jù)注意注意:注明位寬注明位寬(元素個數(shù)和排列元素個數(shù)和排列)如如 SIGNAL a:BIT_VECTOR(7 TO 0) B0000_1111 XFBC -B1111_1011_1100 O371 -B011_111_001 4 4、位矢量、位矢量( (bit_vector) )5、布爾量布爾量(BOOLEAN)n有兩種狀態(tài):有兩種狀態(tài):false或或true。n只能進(jìn)行只能進(jìn)行關(guān)系運(yùn)算關(guān)系運(yùn)算。 如如: 相等相等=,比較比較等作比較。等作比較。 如如: BIT值轉(zhuǎn)化成值轉(zhuǎn)化成BOOLEAN類型類型 BOOLEAN_var:=(bit_var=1);6

22、、字符、字符(CHARACTER)n用用單引號單引號括起來括起來數(shù)值,字母,空格數(shù)值,字母,空格及一些特殊字符。及一些特殊字符。nVHDL語言對大小寫英文字母不敏感,但區(qū)分語言對大小寫英文字母不敏感,但區(qū)分 字符中的大小寫。字符中的大小寫。 1,2 是符號是符號 A,a,B,b 都認(rèn)為是不同的字符都認(rèn)為是不同的字符如如: variable character_var:character; . character_var:=A; 7 7、字符串字符串(STRING) 字符串字符串:是字符類型的一個非限定數(shù)組是字符類型的一個非限定數(shù)組 由由雙引號雙引號括起來的字符序列。括起來的字符序列。varib

23、le string_var: string(1 to 7);.string_var:=Rosebud; n稱為稱為物理類型物理類型(PHYSICAL TYPES)。n時間類型值的范圍是整數(shù)所定義的范圍,時間類型值的范圍是整數(shù)所定義的范圍,從從(2311)到到(2311)。n書寫格式應(yīng)包含書寫格式應(yīng)包含整數(shù)和單位整數(shù)和單位兩部分。兩部分。 如如16 nsn時間類型一般用于時間類型一般用于仿真,仿真,不用邏輯綜合不用邏輯綜合。 9、錯誤等級、錯誤等級(SEVRITY LEVEL)n用于表示電子系統(tǒng)工作狀態(tài)。用于表示電子系統(tǒng)工作狀態(tài)。n錯誤等級分為:錯誤等級分為:NOTE,WARAING,ERROR

24、,F(xiàn)ALILURE,即注意、警告、,即注意、警告、錯誤、失敗錯誤、失敗4個等級。個等級。n錯誤等級常用來在錯誤等級常用來在仿真仿真時給設(shè)計者提供時給設(shè)計者提供電子系統(tǒng)的工作情況。電子系統(tǒng)的工作情況。 用戶用戶定義的數(shù)據(jù)類型定義的數(shù)據(jù)類型用戶自定義類型是用戶自定義類型是VHDL語言的一大特色語言的一大特色類型定義語句類型定義語句TYPE和和子類型定義語句子類型定義語句SUBTYPE實實現(xiàn)現(xiàn)用戶自定義數(shù)據(jù)類型用戶自定義數(shù)據(jù)類型.TYPE 語句格式語句格式:type數(shù)據(jù)類型名數(shù)據(jù)類型名 is數(shù)據(jù)類型定義數(shù)據(jù)類型定義 of 基本數(shù)據(jù)類型基本數(shù)據(jù)類型;type byte is array(7 downt

25、o 0)of bit;variable addend: byte;type week is (sun,mon,tue,wed,thu,fri,sat);子類型定義語句子類型定義語句SUBTYPESUBTYPE 語句格式語句格式:subtype數(shù)據(jù)類型名數(shù)據(jù)類型名 is數(shù)據(jù)類型定義數(shù)據(jù)類型定義 范圍范圍;subtype digits is integer range 0 to 10; 由由subtype語句定義的數(shù)據(jù)類型稱為語句定義的數(shù)據(jù)類型稱為子類型子類型1. 枚舉類型枚舉類型 (ENUMERATED TYPE) 枚舉該枚舉該類型的所有可能的值類型的所有可能的值 書寫格式:書寫格式:TYPE

26、數(shù)據(jù)類型名數(shù)據(jù)類型名 IS (元素,元素元素,元素.);TYPE STD_LOGIC IS (X ,-不定,未知;不定,未知;O ,-01 ,-1Z ,-高阻高阻W,-弱信號不定,未知弱信號不定,未知L , -弱信號弱信號0H , -弱信號弱信號1 -不可能情況)不可能情況);TYPE BOOLEAN IS (FALSE , TRUE);TYPE BIT IS (0 , 1);例如例如:type color is (blue,green,yellow,red);type my_logic is (0,1,U,Z);variable hue: color;signal sig: my_logic

27、;hue:=blue; sig=Z;3. 數(shù)組類型數(shù)組類型 (ARRAY TYPE) 4. (RECODE TYPE) 記錄類型:記錄類型:RECODE 元素名元素名A: . 元素名元素名B:RECODE 訪問記錄類型中的元素:訪問記錄類型中的元素:記錄體名記錄體名. .元素名元素名n子類型子類型 子類型是已定義的類型或子類型的一個子集子類型是已定義的類型或子類型的一個子集.n格式格式 subtype子類型名子類型名 is 數(shù)據(jù)類型名數(shù)據(jù)類型名范圍范圍;n例例: bit_vector類型定義如下類型定義如下:n如設(shè)計中只用如設(shè)計中只用16ns;可定義子類型如下可定義子類型如下: subtype

28、 my_vector is bit_vector(0 to 15);類型轉(zhuǎn)換類型轉(zhuǎn)換n在在VHDLVHDL程序設(shè)計中,不同類型的對象必程序設(shè)計中,不同類型的對象必須進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換須進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換, ,才能操作。才能操作。n3 3種方法不同類型的數(shù)據(jù)變換:種方法不同類型的數(shù)據(jù)變換:類型標(biāo)類型標(biāo)記法記法、函數(shù)轉(zhuǎn)換法函數(shù)轉(zhuǎn)換法和和常數(shù)轉(zhuǎn)換法。常數(shù)轉(zhuǎn)換法。 用類型標(biāo)記法用類型標(biāo)記法(直接類型直接類型)實現(xiàn)類型轉(zhuǎn)換實現(xiàn)類型轉(zhuǎn)換n用于關(guān)系密切的用于關(guān)系密切的數(shù)據(jù)類型數(shù)據(jù)類型之間的類型轉(zhuǎn)換,之間的類型轉(zhuǎn)換,即即整數(shù)和實數(shù)整數(shù)和實數(shù)的類型轉(zhuǎn)換。的類型轉(zhuǎn)換。n格式格式: 數(shù)據(jù)類型標(biāo)識符數(shù)據(jù)類型標(biāo)識符 ( (

29、表達(dá)式表達(dá)式) ) 若:若: variable a,b :integer; variable c,d :real; 則有:則有: a:integer(c); d:real(b); nVHDL語言標(biāo)準(zhǔn)中的語言標(biāo)準(zhǔn)中的程序包程序包提供的提供的變換函數(shù)變換函數(shù)來完成這個工來完成這個工作。這些程序包有作。這些程序包有3種:種: STD_LOGIC_1164程序包定義的轉(zhuǎn)換函數(shù):程序包定義的轉(zhuǎn)換函數(shù): 函數(shù)函數(shù) TO_STD LOGICVECTOR(A) -由位矢量轉(zhuǎn)換為標(biāo)準(zhǔn)邏輯矢量由位矢量轉(zhuǎn)換為標(biāo)準(zhǔn)邏輯矢量 函數(shù)函數(shù) TO_BITVECTOR(A); -由標(biāo)準(zhǔn)邏輯矢量轉(zhuǎn)換為位矢量函數(shù)由標(biāo)準(zhǔn)邏輯矢量轉(zhuǎn)換

30、為位矢量函數(shù) 函數(shù)函數(shù) TO_STDLOGICV(A); -由由BIT轉(zhuǎn)換為轉(zhuǎn)換為STD_LOGIC 函數(shù)函數(shù) TO_BIT(A); -由標(biāo)準(zhǔn)邏輯由標(biāo)準(zhǔn)邏輯STD_LOGIC轉(zhuǎn)換轉(zhuǎn)換BIT表達(dá)式表達(dá)式: 由操作數(shù)和操作符構(gòu)成由操作數(shù)和操作符構(gòu)成 完成算術(shù)和邏輯運(yùn)算完成算術(shù)和邏輯運(yùn)算VHDL中的表達(dá)式中的表達(dá)式n(1) 邏輯操作符邏輯操作符(LOGICAL)n(2) 關(guān)系操作符關(guān)系操作符(RELATIONAL)n(3) 算術(shù)操作符算術(shù)操作符(ARITHMETIC)n(4) 并置操作并置操作(CONCATENATION) VHDL語言的操作符有語言的操作符有4種種:n(1)NOT取反取反n(2)AND與與n(3)OR或或n(4)NAND與非與非n(5)NOR或非或非n(6)XOR異或;異或; 在在VHDL中,邏輯操作符有中,邏輯操作符有6種,列表如下:種,列表如下:邏輯操作符邏輯操作符(LOGICAL)n要求要求:操作數(shù)類型必須相同操作數(shù)類型必須相同.可為如下類型可為如下類型: bit, bit_vector, std_logic, std_logic_vector, boolean 數(shù)組操作數(shù)的維數(shù)數(shù)組操作數(shù)的維數(shù), 大小必須相同大小必須相同.注注:當(dāng)有兩個以上的邏輯表達(dá)式時當(dāng)有兩個以上的邏輯表達(dá)式時,左右

溫馨提示

  • 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

提交評論