版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第3節(jié) VHDL的數(shù)據(jù)及文字規(guī)則,4.3.1、文字規(guī)則 4.3.2、VHDL數(shù)據(jù)對象(DATA OBJECTS) 4.3.3、VHDL數(shù)據(jù)類型(DATA TYPES) 4.3.4、VHDL中數(shù)據(jù)類型的轉(zhuǎn)換,4.3.1文字規(guī)則,整數(shù) 5,110,13_254_297(=13254297) 實數(shù) 1.0,3.78, 34.97E-1(=3.497), 18_670_21.453_9(=1867021.4539) 以數(shù)制為基礎(chǔ)的文字 10#170#,16#FE# 字符串型文字 “ERROR”, B,*, B“1_1010” -二進(jìn)制數(shù)數(shù)組,位矢數(shù)組長度是5 O“17” -八進(jìn)制數(shù)數(shù)組,位矢數(shù)組長度是
2、6 X“AD0” -十六進(jìn)制數(shù)數(shù)組,位矢數(shù)組長度是12,一、數(shù)字型文字,二、標(biāo)識符*,有效字符 A-Z,0-9,_ 必須以英文字母開始 必須單一_,其前后必須為字母或數(shù)字 標(biāo)識符字母不分大小寫 如: _Decoder F 2fft ,sig_#n, data_ _bus, return FFT, sig_n, state0, return1 VHDL93版支持?jǐn)U展標(biāo)識符,常數(shù)、變量、信號、端口、子程序或參數(shù)的名字 書寫要遵守如下規(guī)則:,三、下標(biāo)名 *,下標(biāo)名的語句格式如下: 標(biāo)識符(表達(dá)式) 如: Signal a, b: bit_vector ( 0 to 3); Signal m: int
3、eger range 0 to 3; Signal x, y :bit,用來指示數(shù)組型變量或信號的某一元素或某一段元素,多個下標(biāo)的組合 標(biāo)識符(表達(dá)式 方向 表達(dá)式) 方向- To 由低到高 DOWNTO 由高到低 如:signal a, z: bit_vector(0 to 7);- 8位位矢量 z(0 to 3)=a(4 t0 7); z(4 to 7)=a(0 to 3);,Swap a A, 0feh A, 0efh,四、段名,4.3.2 VHDL數(shù)據(jù)對象(DATA OBJECTS),共有四類基本數(shù)據(jù)對象: 常量、變量、信號和文件,一、常量,常量是一個恒定不變的值,如果作了數(shù)據(jù)類型和賦
4、值定義,在程序中就不能再改變。 常量說明的一般格式如下: CONSTANT常量名:數(shù)據(jù)類型:=表達(dá)式; 常量的使用規(guī)則如下: 常量必須在程序包、實體、結(jié)構(gòu)體、塊、進(jìn)程和子程序等設(shè)計單元中對有關(guān)項目進(jìn)行指定 例如: CONSTANT Vcc:REAL:=5.0; -定義某一個恒定電源 CONSTANT dely:TIME:=25ns; -定義某個模塊延遲時間,2、變量的使用規(guī)則如下: (1)變量賦值和初始化賦值都用“:=”表示。 (2)變量賦的初值不是預(yù)設(shè)的,某一時刻只能有一個值。 (3)變量不能用于在進(jìn)程間傳遞數(shù)據(jù)。 (4)變量不能用于硬件連線和存儲元件。 (5)仿真時,變量用于建模;綜合時,
5、變量充當(dāng)數(shù)據(jù)的暫存。 例如:VARIABLE a:INTEGER; -定義a為整數(shù)型變量 VARIABLE b:BIT_VECTOR(0 TO 5); -定義b為數(shù)組型變量,二、變量(Variable),1、變量是局部量,在進(jìn)程和函數(shù)結(jié)構(gòu)中作局部的數(shù)據(jù)存儲。變量的賦值立即發(fā)生,不存在任何延時。,三、信號(Signal),描述硬件系統(tǒng)的基本數(shù)據(jù)對象,連線。 2、語法: SIGNAL 信號名:數(shù)據(jù)類型; 3、賦值語法: 目標(biāo)信號名=表達(dá)式; 如:signal a:std_logic_vector(15 downto 0); a=X”FBFC”;,1、信號是描述硬件系統(tǒng)的基本數(shù)據(jù)對象,是實體間動 態(tài)
6、數(shù)據(jù)交換的手段。,4、信號和變量之間的區(qū)別*,信號的代入過程與代入語句分開處理,執(zhí)行代入語句不會使信號立即代入;而變量的賦值語句一旦執(zhí)行,其值立即被賦予變量。 在進(jìn)程中,信號可以列入敏感表,而變量不能列入敏感表。 仿真過程中,變量使用很少的存儲器;而為了調(diào)度安排和處理信號屬性,信號需要存儲更多的信息。 信號可能需要使用WAIT語句來為執(zhí)行相同迭代做信號賦值的同步處理;而變量不存在這個問題 賦值語句不同,信號“” ,變量“:”,在進(jìn)程中允許同一信號有多個賦值源,其結(jié)果只有最后的賦值語句被啟動,并進(jìn)行賦值操作。,例 SIGNAL a,b,c,:INTEGER; PROCESS (a,b,c) BE
7、GIN =a*b; =-; =b; END PROCESS;,A,B,C被列入敏感表,不發(fā)生賦值,被賦值b。,四、文件,IEEE STD1076-1987中定義了TEXTIO程序包,它定義了幾種文件IO傳輸?shù)姆绞?。例如?(1)procedure Readline(F:inText;L:out Line); 讀入測試矢量文件的一行 (2)procedure Writeline(F:outText;L:inLine); 向測試文件中寫一行測試矢量 這些文件IO傳輸方式實際上是對一些過程的定義,調(diào)用這些過程就能完成數(shù)據(jù)的傳遞。,文件是傳輸大量數(shù)據(jù)的對象,可以包含一些專門數(shù)據(jù)類型的數(shù)值。在系統(tǒng)仿真測
8、試時,為方便控制及觀察,測試的輸入激勵數(shù)據(jù)和仿真結(jié)果的輸出都要用文件來進(jìn)行,4.3.3 VHDL數(shù)據(jù)類型(DATA TYPES),四種基本數(shù)據(jù)類型: (1)標(biāo)量類型( Scalar Type) (2)復(fù)合類型(Complex Type) (3)存取類型(Access Type) (4)文件類型(File Type),重點介紹: VHDL的預(yù)定義數(shù)據(jù)類型 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型 用戶自定義數(shù)據(jù)類型方式,概述,標(biāo)量(Scalar Type) 實數(shù)類型、整數(shù)類型、枚舉類型、時間類型。 復(fù)合類型(Composite Type) 存取類型(access Type) 文件類型(Files Type) 這四大
9、類型都有預(yù)定義,這些數(shù)據(jù)類型都已在VHDL的標(biāo)準(zhǔn)程序包STANDARD和STD_LOGIC.1164及其它的標(biāo)準(zhǔn)程序包中作了定義,在設(shè)計中可以隨時調(diào)用。,一、 VHDL的預(yù)定義數(shù)據(jù)類型,BOOLEAN 真、偽; 位(BIT ) 1,0; 位矢量(BIT_VECTOR) 字符(CHARACTER) 整數(shù)(INTEGER) 自然數(shù)(NATURAL) 實數(shù)(REAL) 字符串(STING),預(yù)定義數(shù)據(jù)類型是VHDL語言中最常用、最基本的數(shù)據(jù)類型。在使用中它自動包含進(jìn)VHDL的源文件,不必通過USE語句顯示調(diào)用。,一、 VHDL的預(yù)定義數(shù)據(jù)類型,時間類型(TIME) 錯誤等級(SEVERITY LEV
10、EL) 綜合器不支持的類型 (物理類型、浮點類型、存取類型 、文件類型 )等,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,1、IEEE預(yù)定義標(biāo)準(zhǔn)邏輯位與矢量(STD_LOGIC_1164 ): (1)標(biāo)準(zhǔn)邏輯位類型(STD_LOGIC) 在程序中使用此數(shù)據(jù)類型前,需加入語句:LIBRARY IEEE; USE IEEESTD_LOIGC_1164ALL;,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,數(shù)據(jù)類型STD_LOGIC共定義了九種值,具體如下: U -未初始化 X -強未知 0 -強0 1 -強1 Z -高阻態(tài) W -弱未知 L -弱0 H -弱 1 - -忽略,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,(2)標(biāo)準(zhǔn)邏輯矢量類型(ST
11、D_ LOGIC_VECTOR): 是定義在STD_LOGIC_1164程序包中的標(biāo)準(zhǔn)一維數(shù)組,數(shù)組中的每一個元素的數(shù)據(jù)類型都是上述定義的標(biāo)準(zhǔn)邏輯位STD_LOGIC。 TYPE STD_ LOGIC_ VECTOR IS ARRAY (Natural Range) OF STD_ LOGIC 在使用中必須嚴(yán)格考慮位矢的寬度。同位寬和數(shù)據(jù)類型的矢量間才能進(jìn)行賦值。 描述總線信號,使用STD_LOGIC_VECTOR是最方便的,但需注意總線中的每一根信號線都必須定義為相同的數(shù)據(jù)類型STD_LOGIC 。,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,、其它預(yù)定義標(biāo)準(zhǔn)數(shù)據(jù)類型: Synopsys公司在IEEE庫中加
12、入的程序包STD_LOGIC_ARITH中定義了三種數(shù)據(jù)類型:有符號型、無符號型和小整型(SMALL_INT)。 使用之前,必須加入 LIBRARY IEEE; USE IEEESTD_LOIGC_ARITHALL;,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,(1)、有符號數(shù)據(jù)類型(SIGNED TYPE) 在程序包STD_LOGIC_ARITH中定義如下: type signed is array (natural range) of std_logic ; 有符號數(shù)據(jù)類型表示一個有符號的數(shù)值,綜合器將其解釋為補碼,數(shù)的最高位是符號位。 例如SIGNED(0100) -代表+4 SIGNED(1100),
13、-代表-4,-代表?,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,(2)無符號數(shù)據(jù)類型(UNSIGNED TYPE) 在程序包STD_LOGIC_ARITH中定義如下: type unsigned is array (natural range) of std_logic ; 無符號數(shù)據(jù)類型表示一個無符號數(shù),但不能定義負(fù)數(shù) 在綜合器中,這個數(shù)值被解釋為一個二進(jìn)制數(shù),最左位是二進(jìn)制數(shù)的最高位 如果要定義一個變量或信號的數(shù)據(jù)類型為UNSIGNED,則其位矢長度越長代表的數(shù)值就越大。 看一個例子:,二、 IEEE標(biāo)準(zhǔn)數(shù)據(jù)類型,例 VARIABLE a:UNSIGNED( 0 TO 8); SIGNAL b:UNSI
14、GNED(4 TO 0); 變量a有9位數(shù)值,最高位是a(0),而非a(8); 信號b有5位數(shù)值,最高位是b(4)。,最高位是?,三、用戶自定義數(shù)據(jù)類型方式,1.自定義數(shù)據(jù)類型方式 (1)TYPE語句用法 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 OF基本數(shù)據(jù)類型; 或 TYPE 數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義 ; 例如: TYPE byte IS ARRAY(0 TO 7) OF STD_LOGIC; TYPE colour IS (Red,Green,Yellow,Blou,Violet);,2.用戶自定義數(shù)據(jù)類型,(1) 枚舉類型(Enumeration Type) (2) 整數(shù)類型和實
15、數(shù)類型(Integer and Real Types) (3) 數(shù)組類型(Array Type) (4) 記錄類型(Record Type),三、用戶自定義數(shù)據(jù)類型方式,(1) 枚舉類型(Enumeration Type),枚舉數(shù)據(jù)類型是一種特殊的數(shù)據(jù)類型,即把類型中的各個元素都列舉出來。這種數(shù)據(jù)類型非常直觀方便,提高了程序的可讀性。 其書寫格式為: TYPE 數(shù)據(jù)類型名IS(元素); 例如: TYPE PCstate IS (idle,busy,write,read,backoff); SIGNAL a,b:PCstate; TYPE logic IS (1,Z,U,0); SIGNAL s
16、:logic;,(2) 整數(shù)類型和實數(shù)類型(Integer and Real Types),實際應(yīng)用中,VHDL仿真器通常將整數(shù)或?qū)崝?shù)類型作為有符號數(shù)處理,VHDL綜合器對整數(shù)或?qū)崝?shù)的編碼方法是:對用戶已定義的數(shù)據(jù)類型和子類型中的正數(shù),編碼為二進(jìn)制原碼;對用戶已定義的數(shù)據(jù)類型和子類型中的負(fù)數(shù),編碼為二進(jìn)制補碼 編碼的位數(shù)只取決于用戶定義的數(shù)值的最大值。在綜合中,以浮點數(shù)表示的實數(shù)先轉(zhuǎn)換成相應(yīng)大小的整數(shù)。因此在使用整數(shù)時,VHDL綜合器要求使用數(shù)值限定關(guān)鍵詞RANGE,對整數(shù)的使用范圍作明確的限制。 例如: TYPE numl IS range o to 100; -7位二進(jìn)制原碼 TYPE n
17、um2 IS RANGE -100 TO 100 ;-8位二進(jìn)制補碼,(3) 數(shù)組類型(Array Type),數(shù)組類型屬復(fù)合類型,是把一組具有相同數(shù)據(jù)類型的元素集合在一起作為單一對象。它的元素可以是任何一種數(shù)據(jù)類型,數(shù)組可以是一維或多維。雖然VHDL仿真器支持多維數(shù)組,但綜合器只支持一維數(shù)組。 VHDL允許定義限定性和非限定性兩種不同類型的數(shù)組,它們的區(qū)別是:限定性數(shù)組下標(biāo)的取值范圍在數(shù)組定義時就確定了,而非限定性數(shù)組下標(biāo)的取值范圍需在后面確定。 限定性數(shù)組定義格式為: TYPE數(shù)組名IS ARRAY(數(shù)組范圍)OF數(shù)據(jù)類型; 非限制性數(shù)組的定義格式為: TYPE 數(shù)組名 IS ARRAY
18、(數(shù)組下標(biāo)名RANGE) OF 數(shù)據(jù)類型;,例如: TYPE x IS ARRAY (2 DOWNTO 0) of STD_LOGIC; TYPE y IS (1ow,high); TYPE databus IS ARRAY(0 To 7,y) of BIT;-幾個元素? TYPE a IS Array (Natural Range) OF BIT; VARIABLE c1:a(1 to 4); -將數(shù)組取值范圍定在14 TYPE b is ARRAY (POSITIVE RANGE) OF REAL; VARIABLE c2:b (0 T0 5);-將數(shù)組取值范圍定在05,(3) 數(shù)組類型(Array Type),(4) 記錄類型(Record Type),記錄類型可用于仿真,不能用于綜合。 在描述通信協(xié)議或總線時,使用記錄很方便。,VHDL語言對于某一數(shù)據(jù)類型的變量、信號和常量賦值時,類型一定要一致。在相互操作時,如果不一致,則需要使用顯式類型轉(zhuǎn)換 一、 類型轉(zhuǎn)換函數(shù)方式 二、 類型標(biāo)記轉(zhuǎn)換方式,4.3.4 VHDL數(shù)據(jù)類型的轉(zhuǎn)換,在VHDL程序設(shè)計中,可以用函數(shù)來實現(xiàn)類型轉(zhuǎn)換,VHDL語言提供了類型轉(zhuǎn)換函數(shù)來完成這項功能,一、 類型轉(zhuǎn)換函數(shù)方式,例4.15 ENTITY cnt IS PORT( clk:IN STD_LOG
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度文化創(chuàng)意產(chǎn)品采購合同變更及版權(quán)協(xié)議3篇
- 二零二五版美團(tuán)騎手薪酬福利及晉升體系合同2篇
- 課題申報參考:南嶺走廊儺戲服飾文化基因解碼及傳承路徑研究
- 課題申報參考:慢波睡眠期間無意識序列學(xué)習(xí)的神經(jīng)機制及認(rèn)知調(diào)控
- 2025年度虛擬現(xiàn)實游戲開發(fā)與授權(quán)合同范本4篇
- 2025年度個人旅游居間代理合同樣本2篇
- 南京市2025年度二手房購房合同(含環(huán)保檢測報告)4篇
- 2025年度個人租賃城市中心公寓及家電配置合同3篇
- 2025版南寧高新區(qū)廠房租賃合同及技術(shù)支持服務(wù)協(xié)議4篇
- 2025年度個人小額信用貸款合同范本7篇
- 綠化養(yǎng)護(hù)難點要點分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車位款抵扣工程款合同
- 2023年湖北省襄陽市中考數(shù)學(xué)真題(原卷版)
- 小學(xué)六年級數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試參考試題庫(含答案)
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實驗技術(shù)人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說明書MSDS
- 母嬰護(hù)理員題庫
- SWITCH暗黑破壞神3超級金手指修改 版本號:2.7.6.90885
評論
0/150
提交評論