下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、,第 三 章,3.3 VHDL語言要素,VHDL四類語言要素,數(shù)據(jù)對象 數(shù)據(jù)類型 運(yùn)算操作數(shù) 運(yùn)算操作符,3.3 VHDL語言要素,3.3.1. VHDL文字規(guī)則 1、數(shù)字型文字 1)整數(shù)文字:十進(jìn)制整數(shù) 如:5,678,156E2(=15600), 45_234_287 (=45234287) 2)實(shí)數(shù)文字:帶小數(shù)的十進(jìn)制數(shù) 如:23.34,2.0,44.99E-2(=0.4499) 8_867_551.23_909(8867551.23909),3.3 VHDL語言要素,3)以數(shù)字基數(shù)表示法 格式: 基數(shù)數(shù)字文字E指數(shù) 如: 10#170# (=170) 2#1111_1110# (=25
2、4) 16#E# E1 (=2 #1110_0000# 224) 或 (=14*16= 224) 16#F.01# E+2 (=(15+1/(16*16)*16*16=3841.00),3.3 VHDL語言要素,4)物理量文字 稱為物理類型(PHYSICAL TYPES)。 書寫格式應(yīng)包含整數(shù)和單位兩部分。 如 16 ns 、100m、 177 mA 時(shí)間類型一般用于仿真,不用邏輯綜合。 注:整數(shù)可綜合實(shí)現(xiàn); 實(shí)數(shù)一般不可綜合實(shí)現(xiàn); 物理量不可綜合實(shí)現(xiàn);,3.3 VHDL語言要素,2、字符串型文字 字符: 用單引號括起來數(shù)值,字母,空格及一些特殊字符。 VHDL語言對大小寫英文字母不敏感,但區(qū)
3、分 字符中的大小寫。 1,2 是符號 A,a,B,b 都認(rèn)為是不同的字符,如: variable character_var:character; . character_var:=A;,3.3 VHDL語言要素,字符串(STRING) 字符串:是字符類型的一個(gè)非限定數(shù)組 由雙引號括起來的字符序列。 varible string_var: string(1 to 7); . string_var:=Rosebud; 文字字符串:“文字” 如:“ERROR”, “ZZZZ”,“XXXX” ,“BOTHS AND QEAN”,3.3 VHDL語言要素, 數(shù)位字符串:稱為位矢量,代表二進(jìn)制、八進(jìn)制、
4、十六進(jìn)制的數(shù)組。其位矢量的長度為等值的二進(jìn)制位數(shù)。 格式: 基數(shù)符號“數(shù)值” 其中基數(shù)符號有三種: B:二進(jìn)制基數(shù)符號。 O:八進(jìn)制基數(shù)符號,每一個(gè)八進(jìn)制數(shù) 代表一個(gè)3位的二進(jìn)制數(shù)。 X:十六進(jìn)制基數(shù)符號,每一個(gè)十六進(jìn)制數(shù)代表一 個(gè)4位的二進(jìn)制數(shù)。 如: B1011_1111, O152,3.3 VHDL語言要素,3.標(biāo)識符:定義常數(shù)、變量、信號、 端口、子程序或參數(shù)的名字,VHDL87版: 短標(biāo)識符 VHDL93版: 短標(biāo)識符和擴(kuò)展標(biāo)識符,VHDL語言有兩個(gè)標(biāo)準(zhǔn)版:,3.3 VHDL語言要素,VHDL短標(biāo)識符(基本標(biāo)識符)遵守以下規(guī)則: (1) 必須以英文字母打頭。 (2) 字符可以大小寫的
5、字母、數(shù)字和下劃線“_”。 (3) 下劃線前后都必須有英文字母或數(shù)字。 (4) 英文字母不區(qū)分大小寫 (5)不能連續(xù)使用下劃線“_”,最后一個(gè)符號也 不能用下劃線 (6) 不允許包含圖形符號、空格符,3.3 VHDL語言要素,注意: EDA工具綜合、仿真時(shí),不區(qū)分大小寫。 對VHDL的保留字(關(guān)鍵字)不能做標(biāo)識符: ENTITY,ARCHITECTURE,END,BUS,USE,WHEN,WAIT,IS 在程序書寫時(shí),一般要求大寫或黑體,使得程序易于閱讀,易于檢查錯(cuò)誤。,3.3 VHDL語言要素,以下標(biāo)識符哪些是合法的?,multi_78screens 、 Multi_、 Multi_Scre
6、ens、 MULTI_SCRE_ENS illegal%name _illegalname 9illegal entity data_ _BUS Not-Ack,3.3 VHDL語言要素,4、下標(biāo)名及下標(biāo)段名,下標(biāo)名: 用于指示數(shù)組型變量或信號的某一元素. 格式: 標(biāo)識符(表達(dá)式) 下標(biāo)段名: 用于指示數(shù)組型變量或信號的某一段元素 格式: 標(biāo)識符(表達(dá)式to/downto表達(dá)式) 如: a:std_logic_vector(7 downto 0) a(7), a(6).a(0) a(7 downto 0) ,a(7 downto 4), a(5 downto 3),3.3 VHDL語言要素,對
7、象(object): 可賦予一個(gè)值的客體 VHDL對象的3種基本數(shù)據(jù)類型: 常量 (CONSTANT) 變量 (VARIABLE) 信號 (SIGNAL),3.3.2 數(shù)據(jù)對象,3.3 VHDL語言要素,對象的物理含義: 常量:數(shù)電中電源、地等常數(shù) 變量:暫存某些值的載體 信號:物理設(shè)計(jì)中的某一條硬件連線, 包括輸入、輸出端口,3.3 VHDL語言要素,變量:局部量,僅用于process語句、 子程序(function 、procedure) 信號:全局量, 用于entity, architecture、package 常量: 全局量,可用于上面兩種場合,對象的特點(diǎn)及使用場合:,3.3 VHD
8、L語言要素,1.常量(constant) 常量說明: 對某一常量名賦予的一個(gè)固定值。 格式如下: CONSTANT 常數(shù)名:數(shù)據(jù)類型 :表達(dá)式; 例: CONSTANT width:integer:8; CONSTANT data:bit_vector(3 downto 0):1010; CONSTANT x:new_bit:x;,常量數(shù)據(jù)類型與表達(dá)式的數(shù)據(jù)類型一致,3.3 VHDL語言要素,用在進(jìn)程語句、子程序中,變量是一個(gè)局部量,其作用范圍僅限在定義了變量的進(jìn)程和子程序中。 書寫格式: VARIABLE 變量名:數(shù)據(jù)類型 約束條件 :表達(dá)式; 舉例如下: VARIABLE result:
9、std_logic:0 ; VARIABLE x,y: integer; VARIABLE a:integer range 0 to 255 :0 ;,2.變量(variable),變量的初值可用于仿真,但綜合時(shí)被忽略,3.3 VHDL語言要素,常量的可視性(作用范圍),庫、程序包,實(shí) 體,結(jié) 構(gòu) 體1,進(jìn)程1,結(jié) 構(gòu) 體2,進(jìn)程2,常量是全局量,其作用范圍取決于被定義的位置,3.3 VHDL語言要素,電子硬件系統(tǒng)運(yùn)行的基本特性: 各部分電路工作的并行特性; 信號傳輸過程中的延時(shí)特性; 多驅(qū)動源的總線特性; 時(shí)序電路中觸發(fā)器的記憶特性等,3.信號(signal),信號是電子系統(tǒng)內(nèi)部硬件連接和硬
10、件特性表示。 用來描述硬件系統(tǒng)的基本特性,3.3 VHDL語言要素,電子電路內(nèi)部硬件實(shí)體相互連接的抽象表示 (通常 在結(jié)構(gòu)體、包集合和實(shí)體說明中使用) 一般書寫格式為: SIGNAL 信號名:數(shù)據(jù)類型 約束類型:表達(dá)式; 舉例如下: SIGNAL a, b:BIT :0; SIGNAL count:bit_vector(7 downto 0); SIGNAL init:integer :-1; SIGNAL count:std_logic:= 0 ;,3.3 VHDL語言要素,注:1)信號初始值仿真時(shí)有用,綜合被忽略 2)信號是全局量,可在結(jié)構(gòu)體、實(shí)體、塊中說明和使用信號。 3)在進(jìn)程和子程序
11、中只能使用信號,不能說明信號。 4)變量賦值用“:=” , 信號賦值用“=” 5)變量執(zhí)行后,立即被賦值;信號實(shí)際代入過程和代入語句的處理是分開的,3.3 VHDL語言要素,4、信號與變量賦值語句功能的比較,3.3 VHDL語言要素,進(jìn)程中信號與變量的使用,ENTITY ex IS port(.); END ex; ARCHITECTURE arch_ex OF ex IS signal a,b: std_logic; begin process(a,b) variable c,d:std_logic; begin c:=a+b; d:=a-b; . ENDprocess; END arch
12、ex;,3.3 VHDL語言要素,信號與端口的區(qū)別:,除沒有方向說明外,信號與實(shí)體的端口PORT概念相似.端口是一種隱形的信號. ENTITY exam IS PORT(SIGNAL a,b: in std_logic; SIGNAL c: out std_logic); END exam; 端口是一種有方向的信號.即輸出端口不能讀 出數(shù)據(jù),只能寫入數(shù)據(jù);輸入端口不能寫入數(shù)據(jù), 只能讀出數(shù)據(jù). 信號本身無方向,可讀可寫.,3.3 VHDL語言要素,關(guān)于VHDL中的數(shù)字,請找出以下數(shù)字中最大的一個(gè):_。 2#1111_1110# 8#276# 10#170# 16#E#E1,A,3.3 VHDL
13、語言要素,上一次課的內(nèi)容 程序包、庫和配置 VHDL四類語言要素:數(shù)據(jù)對象、詞法規(guī)則與標(biāo)識符 本次課程內(nèi)容: 數(shù)據(jù)類型、 運(yùn)算操作符,3.3 VHDL語言要素,實(shí)數(shù)(REAL) 必須帶有小數(shù)點(diǎn)。如12.0 僅用于仿真器,綜合器不支持 有些數(shù)可用實(shí)數(shù)表示,也可用整數(shù)表示。例如99.0是實(shí)數(shù),99是整數(shù),兩數(shù)具有相同的值;但兩者具有不同的類型。 在有關(guān)文獻(xiàn)中,實(shí)數(shù)類型也稱為浮點(diǎn)類型(FLOATING TYPE)。但大多數(shù)EDA工具不支持浮點(diǎn)運(yùn)算。,3.3 VHDL語言要素,3.3.3 VHDL語言數(shù)據(jù)類型,VHDL語言程序是強(qiáng)數(shù)據(jù)類型, 要求每一個(gè)常量、變 量、信號、函數(shù)以及各種參數(shù)學(xué)要有明確的數(shù)
14、據(jù)類 型,并且不同的數(shù)據(jù)類型不能直接代入,相同的類 型,位長不同也不能代入。 EDA工具在編譯會報(bào)告類型錯(cuò)。,10種標(biāo)準(zhǔn)的預(yù)定義數(shù)據(jù)類型,用戶自定義數(shù)據(jù)類型,按照 定義 的方式,3.3 VHDL語言要素,數(shù)據(jù)類型根據(jù)使用目的分為: 用于EDA工具對電子系統(tǒng)進(jìn)行綜合的數(shù)據(jù)類型。如標(biāo)量類型(SCALAR TYPE),復(fù)合類型(COMPOSITE TYPE)。 用于EDA工具對電子系統(tǒng)進(jìn)行仿真的數(shù)據(jù)類型,如存取類型(ACCESS TYPE)。 預(yù)定義數(shù)據(jù)類型在VHDL標(biāo)準(zhǔn)程序包STANDARD中定義的,已經(jīng)包含進(jìn)VHDL的源文件中,因而不必通過USE語句也可以顯式使用.,3.3 VHDL語言要素,擴(kuò)
15、展標(biāo)識符是VHDL93版增加的標(biāo)識符書寫規(guī)則: (1)用反斜杠來定界,免去了87標(biāo)準(zhǔn)基本標(biāo)識符的一些限制。 (2) 可以數(shù)字打頭,允許包含圖形符號、空格符。 例如:mode A, $100, p%name等。 (3)反斜杠之間的字符可以用關(guān)健字。 如:buffer, entity, end等。 (4) 標(biāo)識符的界定符兩個(gè)斜杠之間可用數(shù)字打頭。 如: 100$,2chip,4screens等。 (5) 允許多個(gè)下劃線相連。例:TWO_Computer_sh等。 (6) 擴(kuò)展標(biāo)識符區(qū)分大小寫。例如: EDA 與eda不同。 (7) 擴(kuò)展標(biāo)識符與短標(biāo)識符不同。 如:COMPUTER 與Compute
16、r不同。,擴(kuò)展標(biāo)識符,3.3 VHDL語言要素,VHDL語言標(biāo)準(zhǔn)所定義的預(yù)定義數(shù)據(jù)類型 (1) 整數(shù)類型 (INTEGER TYPE) (2) 實(shí)數(shù)類型或浮點(diǎn)類型 (REAL TYPE FLOATING TYPE) (3) 位類型 (BIT TYPE) (4) 位矢量類型 (BIT_VECTOR TYPE) (5) 布爾類型 (BOOLEAN TYPE) (6) 字符類型 (CHARACTER TYPE) (7) 時(shí)間類型或物理類型 (Time type physical type) (8) 錯(cuò)誤類型 (NOTE,WARNIING,ERROR, FAILURE TYPE) (9) 自然數(shù)、整數(shù)
17、類型 (NATURAL TYPE) (10) 字符串類型 (TRING TYPE),3.3 VHDL語言要素,用戶在做電子系統(tǒng)設(shè)計(jì)時(shí),自行定義的數(shù)據(jù)類型: (1) 枚舉類型 (ENUMERATED TYPE) (2) 數(shù)組類型 (ARRAY TYPE) (3)文件類型 (FILES TYPE) (4)記錄類型 (RECODE TYPE) (5) 時(shí)間類型 (TIME TYPE),3.3 VHDL語言要素,預(yù)定義數(shù)據(jù)類型,3.3 VHDL語言要素,1)、布爾 (BOOLEAN),有兩種狀態(tài):false或true。 只能進(jìn)行關(guān)系運(yùn)算。 如: 相等=,比較等作比較。 如: BIT值轉(zhuǎn)化成BOOLEA
18、N類型 BOOLEAN_var:=(bit_var=1);,3.3 VHDL語言要素,2)、位(BIT),位通常用來表示一位的信號值。 位的值通常用單引號來括住。 如: TYPE BIT IS (0,1); 位的值0,1表示信號的狀態(tài); 布爾量的值0,1表示假,真。,3.3 VHDL語言要素,用雙引號括起來的一組位數(shù)據(jù) 注意:注明位寬(元素個(gè)數(shù)和排列) 如 SIGNAL a:BIT_VECTOR(7 TO 0) B0000_1111 XFBC -B1111_1011_1100 O371 -B011_111_001,3)、位矢量(bit_vector),3.3 VHDL語言要素,4)、字符(CH
19、ARACTER) 用單引號括起來數(shù)值,字母,空格及一些特殊字符。 VHDL語言對大小寫英文字母不敏感,但區(qū)分 字符中的大小寫。 1,2 是符號 A,a,B,b 都認(rèn)為是不同的字符,如: variable character_var:character; . character_var:=A;,3.3 VHDL語言要素,5)、整數(shù)(INTEGER) 包括正整數(shù)與負(fù)整數(shù)和零,硬件電路實(shí)現(xiàn)時(shí), 利用32位的位矢量來表示整數(shù)范圍-(231-1)到(231-1) 。 VHDL綜合器要求對具體的整數(shù)做出范圍約束。否則無法綜合成硬件電路. 如: signal s: INTEGER RANGE 0 TO 15
20、; 信號s的取值范圍是015,可用4位二進(jìn)制數(shù)表示,因此s將被綜合成由四條信號線構(gòu)成的信號.,3.3 VHDL語言要素,6)、自然數(shù)(NATURAL)和正整數(shù)(POSITIVE) 自然數(shù)包括正整數(shù)和零,natural是integer的子類型,表示非負(fù)整數(shù)。 positive是integer的子類型,表示正整數(shù)。 定義如下: subtype natural is integer range 0 to integerhigh; subtype positive is integer range 1 to integerhigh;,3.3 VHDL語言要素,7)、實(shí)數(shù)(REAL) 范圍:1.0E38
21、到1.0E38。 僅用于仿真器,綜合器不支持 有些數(shù)可用實(shí)數(shù)表示,也可用整數(shù)表示。例如99.0是實(shí)數(shù),99是整數(shù),兩數(shù)具有相同的值;但兩者具有不同的類型。 在有關(guān)文獻(xiàn)中,實(shí)數(shù)類型也稱為浮點(diǎn)類型(FLOATING TYPE)。但大多數(shù)EDA工具不支持浮點(diǎn)運(yùn)算。,3.3 VHDL語言要素,8)、字符串(STRING),字符串:是字符類型的一個(gè)非限定數(shù)組 由雙引號括起來的字符序列。 varible string_var: string(1 to 7); . string_var:=Rosebud;,3.3 VHDL語言要素,9)、時(shí)間(TIME) 稱為物理類型(PHYSICAL TYPES)。 時(shí)間
22、類型值的范圍是整數(shù)所定義的范圍,從(2311)到(2311)。 書寫格式應(yīng)包含整數(shù)和單位兩部分。 如16 ns 時(shí)間類型一般用于仿真,不用邏輯綜合。,3.3 VHDL語言要素,10)、錯(cuò)誤等級(SEVRITY LEVEL) 用于表示電子系統(tǒng)工作狀態(tài)。 錯(cuò)誤等級分為:NOTE,WARAING,ERROR,F(xiàn)ALILURE,即注意、警告、錯(cuò)誤、失敗4個(gè)等級。 錯(cuò)誤等級常用來在仿真時(shí)給設(shè)計(jì)者提供電子系統(tǒng)的工作情況。,3.3 VHDL語言要素,2、IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位與矢量 1)標(biāo)準(zhǔn)邏輯位std_logic數(shù)據(jù)類型 由 ieee 庫中的std_logic_1164 程序包定義,為九值邏輯系統(tǒng),如下
23、: (U,X,0,1,Z,W, L,H,-),U:未初始化的, X:強(qiáng)未知的, 0:強(qiáng)0, 1:強(qiáng)1, Z:高阻態(tài), W:弱未知的 L:弱0, H:弱1, -:忽略,3.3 VHDL語言要素,由 std_logic 類型代替 bit 類型可以完成電 子系統(tǒng)的精確模擬,并可實(shí)現(xiàn)常見的三態(tài)總線電路。 2)標(biāo)準(zhǔn)邏輯矢量std_logic_vector 由 std_logic 構(gòu)成的數(shù)組。定義如下: type std_logic_vector is array(natural range) of std_logic; 賦值的原則:相同位寬,相同數(shù)據(jù)類型。,3.3 VHDL語言要素,3、其他預(yù)定義標(biāo)準(zhǔn)數(shù)
24、據(jù)類型,IEEE中std_logic_arith程序包定義了以下數(shù)據(jù)類型,1) 類型,) 類型,3.3 VHDL語言要素,3)SMALL-INT類型,用戶自定義數(shù)據(jù)類型是VHDL語言的一大特色,可由用戶定義的數(shù)據(jù)類型有: 枚舉類型 整數(shù)與實(shí)數(shù)類型 數(shù)組類型 記錄類型 子類型,3.3 VHDL語言要素,類型定義語句TYPE和子類型定義語句SUBTYPE實(shí) 現(xiàn)用戶自定義數(shù)據(jù)類型.,1)TYPE 語句格式: type數(shù)據(jù)類型名 is數(shù)據(jù)類型定義 of 基本數(shù)據(jù)類型; type byte is array(7 downto 0)of bit; variable addend: byte; type w
25、eek is (sun,mon,tue,wed,thu,fri,sat);,4.用戶定義的數(shù)據(jù)類型,3.3 VHDL語言要素,子類型定義語句SUBTYPE 2)SUBTYPE 語句格式: Subtype 子類型 is 基本數(shù)據(jù) RANGE 約束; subtype digits is integer range 0 to 10; 由subtype語句定義的數(shù)據(jù)類型稱為子類型,3.3 VHDL語言要素,5、枚舉類型 (ENUMERATED TYPE),TYPE STD_LOGIC IS ( X ,-不定,未知; O ,-0 1 ,-1 Z ,-高阻 W,-弱信號不定,未知 L ,-弱信號0 H ,
26、-弱信號1 -不可能情況);,TYPE BOOLEAN IS ( FALSE , TRUE);,TYPE BIT IS ( 0 , 1);,枚舉該類型的所有可能的值 書寫格式:TYPE 數(shù)據(jù)類型名 IS (元素,元素.);,3.3 VHDL語言要素,例如: type color is (blue,green,yellow,red); type my_logic is (0,1,U,Z); variable hue: color; signal sig: my_logic; hue:=blue; sig=Z;,3.3 VHDL語言要素,6.整數(shù)類型 用戶定義的整數(shù)類型是標(biāo)準(zhǔn)包中整數(shù)類型的子范圍
27、格式: type 類型名稱 is range 整數(shù)范圍 例: type my_integer is integer range 0 to 9;,3.3 VHDL語言要素,7. 數(shù)組類型 (ARRAY TYPE) 數(shù)組類型: 同類型元素的集合。VHDL支持多維數(shù)組 二維數(shù)組聲明: TYPE byte IS ARRAY (7 downto 0) OF bit; TYPE vector IS ARRAY (3 downto 0) OF byte; 限定數(shù)組, 非限定數(shù)組,屬性:,3.3 VHDL語言要素,限定數(shù)組:其索引范圍有一定的限制 格式: type 數(shù)組名 is array (數(shù)組范圍) of
28、數(shù)據(jù)類型; 非限定數(shù)組: 數(shù)組的索引范圍被定義成一個(gè)類型范圍 格式: type 數(shù)組名 is array (類型名稱range) of 數(shù) 據(jù)類型; 例: type bit_vector is array (integer range)of bit; varible my_vector: bit_vector(5 downto -5);,3.3 VHDL語言要素,屬性: VHDL為多種類型定義了屬性 語法如下: 對象屬性 VHDL為數(shù)組預(yù)先定義的屬性: left right high low length range reverse_range,3.3 VHDL語言要素,對應(yīng)變量: varia
29、ble my_vector: bit_vector(5 downto -5); 各屬性如下: my_vectorleft 5 my_vectorright - 5 my_vectorhigh 5 my_vectorlow - 5 my_vectorlength 11 my_vectorrange (5 downto -5) my_vectorreverse_range (-5 to 5),3.3 VHDL語言要素,8. 記錄類型 (RECODE TYPE) 記錄類型:不同類型的名稱域的集合 TYPE 數(shù)據(jù)類型 IS RECODE 元素名A:數(shù)據(jù)類型 ; . 元素名B:數(shù)據(jù)類型 ; END RE
30、CODE,訪問記錄類型中的元素:記錄體名.元素名,3.3 VHDL語言要素,constant len:integer=8; subtype byte_vec is bit_vector(len-1 downto 0); type byte_and_ix is record byte: byte_vect; ix: integer range 0 to len; end record; signal x,y,z:byte_and_ix; signal data: byte_vec; signal num:integer; . x.byte=11110000; x.ix=2; data=y.byt
31、e; num=y.ix; y=x;,例如:,3.3 VHDL語言要素,子類型 子類型是已定義的類型或子類型的一個(gè)子集. 格式 subtype子類型名 is 數(shù)據(jù)類型名范圍; 例: bit_vector類型定義如下: 如設(shè)計(jì)中只用16ns;可定義子類型如下: subtype my_vector is bit_vector(0 to 15);,3.3 VHDL語言要素,9.類型轉(zhuǎn)換 在VHDL程序設(shè)計(jì)中,不同類型的對象必須進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,才能操作。 3種方法不同類型的數(shù)據(jù)變換:類型標(biāo)記法、函數(shù)轉(zhuǎn)換法和常數(shù)轉(zhuǎn)換法。,3.3 VHDL語言要素,VHDL語言標(biāo)準(zhǔn)中的程序包提供的變換函數(shù)來完成這個(gè)工作。
32、這些程序包有3種:,1)、用函數(shù)法進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換, STD_LOGIC_1164程序包定義的轉(zhuǎn)換函數(shù):,函數(shù) TO_STD LOGICVECTOR(A) -由BIT_VECTOR轉(zhuǎn)換為STD_LOGIC_VECTOR 函數(shù) TO_BITVECTOR(A); -由STD_LOGIC_VECTO轉(zhuǎn)換為BIT_VECTOR 函數(shù) TO_STDLOGIC (A); -由BIT轉(zhuǎn)換為STD_LOGIC 函數(shù) TO_BIT(A); -由標(biāo)準(zhǔn)邏輯STD_LOGIC轉(zhuǎn)換BIT,3.3 VHDL語言要素, std_logic_arith程序包定義的轉(zhuǎn)換函數(shù),函數(shù):CONVINTEGER(A); -由signe
33、d,unsigned轉(zhuǎn)換成std_logic_vector 函數(shù):CONVINTEGER(A); -由signed,unsigned轉(zhuǎn)換成integer, std_logic_unsigned程序包定義的轉(zhuǎn)換函數(shù),函數(shù):CONVINTEGER(A); - 由STD_LOGIC_VECTOR轉(zhuǎn)換成integer 函數(shù):CONV_STD_LOGIC_VECTOR(A,位長); -由integer,singed,unsigned轉(zhuǎn)換成標(biāo)準(zhǔn)邏輯矢量,3.3 VHDL語言要素,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSI
34、GNED.ALL;ENTITY add5 ISPORT (num:IN STD_LOGIC_VECTOR (2 DOWNTO 0) );END add5;ARCHITECTURE rtl OF add5 ISSIGNAL in_num:INTEGER RANGE 0 TO 5;BEGINin_num=CONV_INTEGER (num);位矢量轉(zhuǎn)換成整數(shù)變換式END rtl;,3.3 VHDL語言要素,2)用類型標(biāo)記法(直接類型)實(shí)現(xiàn)類型轉(zhuǎn)換 用于關(guān)系密切的數(shù)據(jù)類型之間的類型轉(zhuǎn)換,即整數(shù)和實(shí)數(shù)的類型轉(zhuǎn)換。 格式: 數(shù)據(jù)類型標(biāo)識符 (表達(dá)式) 若: variable a,b :integer;
35、variable c,d :real; 則有: a:integer(c); d:real(b);,3.3 VHDL語言要素,表達(dá)式: 由操作數(shù)和操作符構(gòu)成 完成算術(shù)和邏輯運(yùn)算,VHDL中的表達(dá)式,3.3 VHDL語言要素,(1) 邏輯操作符(LOGICAL) (2) 關(guān)系操作符(RELATIONAL) (3) 算術(shù)操作符(ARITHMETIC) (4) 并置操作(CONCATENATION),VHDL語言的操作符有4種:,3.3 VHDL語言要素,(1)NOT取反 (2)AND與 (3)OR或 (4)NAND與非 (5)NOR或非 (6)XOR異或;,在VHDL中,邏輯操作符有6種,列表如下:
36、,邏輯操作符(LOGICAL),3.3 VHDL語言要素,要求:操作數(shù)類型必須相同.可為如下類型: bit, bit_vector, std_logic, std_logic_vector, boolean 數(shù)組操作數(shù)的維數(shù), 大小必須相同. 注:當(dāng)有兩個(gè)以上的邏輯表達(dá)式時(shí),左右沒有優(yōu)先級的時(shí),必須使用括號, 如: x=(a and b) and (not d or k) 當(dāng)邏輯表達(dá)式中只有and or not 運(yùn)算操作符時(shí),可 以省略括號如: x=a and b and c,3.3 VHDL語言要素,VHDL算術(shù)運(yùn)算符的例表如下:,3.3 VHDL語言要素,“1101”執(zhí)行各種移位操作后的結(jié)果示意圖,3.3 VHDL語言要素,用于整數(shù)類型: “+”, “-”, “*”, “/”, “MOD”, “REM”,“*”,“ABS” 綜合的限制: /, MOD, REM三種操作符的右操作數(shù)必須是2的正整數(shù)次冪,即2n,實(shí)際電路用移位實(shí)現(xiàn).,3.3 VHDL語言要素,兩個(gè)對象在比較運(yùn)算時(shí),將兩個(gè)操作數(shù)比較的結(jié) 果表示出來所使用的符號,列表如下: 等于 / 不等于 小于 小于等于 大于
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷設(shè)備裝配調(diào)試工崗前流程優(yōu)化考核試卷含答案
- 陽極爐工創(chuàng)新意識競賽考核試卷含答案
- 紡織品文物修復(fù)師崗前基礎(chǔ)能力考核試卷含答案
- 紡粘熔噴熱軋非織造布制作工安全知識模擬考核試卷含答案
- 2026屆河南省豫北地區(qū)重點(diǎn)中學(xué)高一數(shù)學(xué)第一學(xué)期期末復(fù)習(xí)檢測試題含解析
- 湖北省武漢為明學(xué)校2026屆英語高三上期末學(xué)業(yè)水平測試試題含解析
- 體驗(yàn)式住宿設(shè)計(jì)-洞察與解讀
- 數(shù)據(jù)清洗與預(yù)處理-洞察與解讀
- 傳感系統(tǒng)抗干擾-洞察與解讀
- 多級融資結(jié)構(gòu)設(shè)計(jì)-洞察與解讀
- DB37-T2119-2025轉(zhuǎn)爐煤氣干法電除塵系統(tǒng)安全技術(shù)要求
- 西方樂理與其他樂理對比試題及答案
- 《金融大數(shù)據(jù)分析》-課件 第3章 線性回歸
- 廣東省佛山市2024-2025學(xué)年高二上學(xué)期期末考試 語文 含解析
- 中藥材及中藥飲片知識培訓(xùn)
- 2024年臺州三門農(nóng)商銀行招聘筆試真題
- 高一政治必修1、必修2基礎(chǔ)知識必背資料
- DB4114T 105-2019 黃河故道地區(qū)蘋果化學(xué)疏花疏果技術(shù)規(guī)程
- 如何高效向GPT提問
- JT-T-969-2015路面裂縫貼縫膠
- 無抗養(yǎng)殖模式可行性分析
評論
0/150
提交評論