版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
重慶電子工程職業(yè)學(xué)院14.3VHDL語言要素4.3.1VHDL的文字規(guī)則⒈注釋:注釋以“--”開頭直到本行末尾(出現(xiàn)回車或換行符)的一段文字。⒉數(shù)字:⑴整數(shù)⑵實數(shù)⑶以數(shù)制基數(shù)表示的數(shù)⑷物理量文字:綜合器不支持物理量文字的綜合,如:30s(秒)、10m(米)、2.5A(安培)等。⒊字符與字符串⒋關(guān)鍵字:關(guān)鍵字是VHDL預(yù)先定義的保留字,它們在程序中有不同的目的和作用。⒌標(biāo)識符:標(biāo)識符是用戶編程時為常量、變量、信號、端口、子程序或參數(shù)等定義的名字。⒍下標(biāo)名:下標(biāo)名用于指示數(shù)組型變量或信號的某一元素。重慶電子工程職業(yè)學(xué)院24.3VHDL語言要素4.3.2VHDL的數(shù)據(jù)對象在VHDL語言中,數(shù)據(jù)對象主要包括3種:常量、變量和信號量。表4-2VHDL數(shù)據(jù)對象及說明場合數(shù)據(jù)對象含義說明場合信號(Signal)說明全局量ARCHITECTURE,PACKAGE,ENTITY變量(Variable)說明局部量PROCESS,F(xiàn)UNCTION,PROCEDURE常量(Constant)說明全局量以上所述場合都可以存在重慶電子工程職業(yè)學(xué)院3⒈常量常量是一個固定的值,定義和設(shè)置常量主要是為了程序更容易閱讀和理解。⒉變量變量一個局部量,只能在進(jìn)程和子程序中使用。⒊信號信號在硬件電路設(shè)計中相當(dāng)于是連線。4.3VHDL語言要素重慶電子工程職業(yè)學(xué)院44.3VHDL語言要素⒋信號和變量的區(qū)別⑴信號用于電路中的信號連線,變量用于進(jìn)程中局部數(shù)據(jù)存儲單元;⑵信號的使用和定義范圍在結(jié)構(gòu)體、程序包和實體中,不能在進(jìn)程、函數(shù)和子程序中使用,而變量只能在進(jìn)程、函數(shù)和子程序中使用;⑶變量在賦值時不能產(chǎn)生附加延時,信號代入時可以附加延時。⑷變量用“:=”賦值,信號用“<=”代入。⑸變量賦值語句一旦被執(zhí)行,其值立即被賦予變量。信號實際代入過程和代入語句的處理是分開進(jìn)行的。VHDL中的標(biāo)準(zhǔn)數(shù)據(jù)類型都是在VHDL標(biāo)準(zhǔn)程序包中預(yù)定義的,總共有104.3.3VHDL的數(shù)據(jù)類型⒈標(biāo)準(zhǔn)數(shù)據(jù)類型種如表4-3所示。重慶電子工程職業(yè)學(xué)院54.3VHDL語言要素表4-3標(biāo)準(zhǔn)的數(shù)據(jù)類型數(shù)據(jù)類型含義整數(shù)(Integer)整數(shù)32位,-2147483647~+2147483647實數(shù)(Real)浮點(diǎn)數(shù),-1.0E+38~+1.0E+38位(Bit)邏輯量“0”或“1”位矢量(Bit_Vector)位矢量布爾量(Boolean)邏輯“真”或邏輯“假”字符(Charactor)ASCⅡ字符時間(Time)時間單位fs,ps,ns,us,ms,sec,min,hr錯誤等級(SeverityLevel)NOTE,WARNING,ERROR,FAILURE自然數(shù)、正整數(shù)(Natual&Positive)整數(shù)的子集字符串(String)字符矢量4.3VHDL語言要素2.用戶定義的數(shù)據(jù)類型TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義OF基本數(shù)據(jù)類型TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義(1)枚舉類型TYPE數(shù)據(jù)類型名IS(元素,元素,元素…)(2)整數(shù)類型、實數(shù)類型TYPE數(shù)據(jù)類型名IS數(shù)據(jù)類型定義約束范圍例:TYPEdigitISINTEGERRANGE0TO9;4.3VHDL語言要素(3)數(shù)組TYPE數(shù)據(jù)類型名ISARRAY范圍OF原數(shù)據(jù)類型名TYPEramISARRAY(0TO3)OFSTD_LOGIC_VECTOR(3DOWNTO0);CONSTANTs:ram:=("0001","0010","0100","1000");TYPEmemoryISARRAY(0TO3,4DOWNTO0)OFSTD_LOGIC;CONSTANTss:memory:=(('0','0','0','0','0'),('0','0','0','1','0'),('0','0','0','0','0'),('0','0','0','0','0'));4.3VHDL語言要素(4)記錄類型TYPE數(shù)據(jù)類型名ISRECORD
元素名:數(shù)據(jù)類型名;
元素名:數(shù)據(jù)類型名;….ENDRECORD;3.用戶定義的子類型重慶電子工程職業(yè)學(xué)院94.3VHDL語言要素⒋數(shù)據(jù)類型的轉(zhuǎn)換表4-4數(shù)據(jù)類型變換函數(shù)函數(shù)名功能STD_LOGIC_1164程序包:TO_STDLOGICVECTOR(A)TO_BITVECTOR(A)TO_STDLOGIC(A)TO_BIT(A)由BITVECTOR轉(zhuǎn)換為STDLOGICVECTOR由STDLOGICVECTOR轉(zhuǎn)換為BITVECTOR由BIT轉(zhuǎn)換為STDLOGIC由STDLOGIC轉(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重慶電子工程職業(yè)學(xué)院10【例4-10】:數(shù)據(jù)類型轉(zhuǎn)換示例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdec3to8ISPORT(input:INSTD_LOGIC_VECTOR(2DOWNTO0);output:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDdec3to8;
ARCHITECTUREbehavOFdec3to8ISBEGINPROCESS(input)BEGINoutput<=(OTHERS=>'0');
重慶電子工程職業(yè)學(xué)院114.3VHDL語言要素
output(CONV_INTEGER(input))<='1';ENDPROCESS;ENDbehav;4.3.4VHDL的操作符1.邏輯操作符
VHDL共有7種基本邏輯操作符,它們是AND(與),OR(或),NAND(與非),NOR(或非),XOR(異或),XNOR(異或非)和NOT(取反)。信號或變量在這些操作符的直接作用下,可構(gòu)成組合電路。
邏輯操作符所要求的操作數(shù)(如變量或信號)的基本數(shù)據(jù)類型有3種,即BIT、BOOLEAN、和STD_LOGIC。
在一個表達(dá)式中有兩個以上的操作符時,需要使用括號將這些運(yùn)算分組。如果一串運(yùn)算中的操作符相同,且是AND,OR,XOR這3個中的一種,則不需要使用括號。例如:SIGNALa,b,c:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALd,e,f,g:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALh,i,j,kSTD_LOGIC;SIGNALl,m,n,o,p:BOOLEAN;a<=bANDc;d<=eORfORg;l<=(mXORn)AND(oXORp);h<=iANDjANDk;h<=(iNANDj)NANDk;h<=iANDjORk;a<=bANDe;h<=iORl;2.關(guān)系操作符
關(guān)系操作符的作用是將相同數(shù)據(jù)類型的數(shù)據(jù)對象進(jìn)行數(shù)值比較或關(guān)系排序判斷,并將結(jié)果以布爾類型(Boolean)的數(shù)據(jù)表示出來,即“TRUE”或“FALSE”兩種;VHDL提供了6種關(guān)系運(yùn)算操作符:“=”(等于)、“/=”(不等于)、“>”(大于)、“<”(小于)、“>=”(大于等于)和“<=”(小于等于)。VHDL規(guī)定。等于和不等于操作符的操作對象可以是VHDL中的任何數(shù)據(jù)類型構(gòu)成的操作數(shù)。
其他的四個稱之為排序操作符,它們對操作對象的數(shù)據(jù)類型有一定的限制,允許的數(shù)據(jù)類型包括枚舉數(shù)據(jù)類型、整數(shù)數(shù)據(jù)類型以及由枚舉型或整數(shù)型數(shù)據(jù)類型元素構(gòu)成的以為數(shù)組。3.算術(shù)操作符VHDL共有17種算術(shù)運(yùn)算符,它們是+(加)、–(減)、*(乘)、/(除)、MOD(求模)、REM(取余)、**(乘方)、ABS(取絕對值)、+(正)、–(負(fù))和SLL(邏輯左移)、SRL(邏輯右移)、SLA(算術(shù)左移)、SRA(算術(shù)右移)、ROL(邏輯循環(huán)左移)、ROR(邏輯循環(huán)右移)和&(并置)。其中+(正)、–(負(fù))操作符亦稱為符號操作符,代表所操作整數(shù)數(shù)值的正負(fù),其操作數(shù)只有一個,屬于一元運(yùn)算符。重慶電子工程職業(yè)學(xué)院164.3VHDL語言要素⒋并置操作符
并置運(yùn)算符(&)在VHDL中使用比較多,故單獨(dú)列出予以介紹。并置運(yùn)算操作數(shù)的數(shù)據(jù)類型是一維數(shù)組,可以利用并置符將普通操作數(shù)或數(shù)組組合起來形成各種新的數(shù)組。例如“VH”&“DL”的結(jié)果為“VHDL”;“0”&“1”的結(jié)果是“01”,并置操作常用于生成位矢量和字符串。SIGNALa,b:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALc,d,e:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALfSTD_LOGIC_VECTOR(2DOWNTO0);SIGNALg,h,i:STD_LOGIC;a<=NOTC&NOTd;b<=f&g;'0'&e<=f;IFc&d="1001"THEN位的連接也可以使用集合體的方法,即將并置號改為逗號即可。例如:SIGNALtemp:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALen:STD_LOGIC;temp<=(en,en,en,en);但是不適用于位矢量的連接。也可以temp<=(OTHERS=>en);也可以temp<=(2=>'0',OTHERS=>en);4.3VHDL語言要素4.3.5VHDL的屬性
VHDL為用戶提供了預(yù)定義屬性的功能,這一功能在VHDL中有很多重要的作用,如時鐘邊沿的檢查、定時關(guān)系的檢查、獲得未約束的數(shù)據(jù)類型的范圍等。通過屬性描述語句,用戶可以得到指定客體相關(guān)的數(shù)據(jù)或信息,預(yù)定義的屬性語句包括數(shù)值類、函數(shù)類、信號類、數(shù)據(jù)類型類和數(shù)據(jù)范圍類。其語句格式如下:屬性測試項目名’屬性標(biāo)識符
重慶電子工程職業(yè)學(xué)院18重慶電子工程職業(yè)學(xué)院194.3VHDL語言要素1.數(shù)值類屬性
⑴一般數(shù)據(jù)的數(shù)值屬性
一般數(shù)據(jù)的數(shù)值屬性共有4種,其書寫格式為:客體‘屬性名。如果用“T”表示客體,則4種屬性分別表示如下:①T'LEFT:得到數(shù)據(jù)類或子類區(qū)間的最左端值;②T'RIGHT:得到數(shù)據(jù)類或子類區(qū)間的最右端值;③T'HIGH:得到數(shù)據(jù)類或子類區(qū)間的高端值;④T'LOW:得到數(shù)據(jù)類或子類區(qū)間的低端值。⑵數(shù)組的數(shù)值屬性
數(shù)組的數(shù)值屬性只有一個,即T’LENGTH。該屬性用于得到數(shù)組的長度值,可用于任何標(biāo)量類數(shù)組(包括多維標(biāo)量類數(shù)組)。⑶塊的數(shù)值屬性
塊的數(shù)值屬性用于得到塊或結(jié)構(gòu)體是什么樣的一個設(shè)計模塊的信息,包括'STRUCTURE(結(jié)構(gòu)設(shè)計)和'BEHAVIOR(行為設(shè)計)兩種屬性。重慶電子工程職業(yè)學(xué)院204.3VHDL語言要素2.函數(shù)類屬性
類屬性是指屬性以函數(shù)為主,讓設(shè)計人員得到函數(shù)的有關(guān)數(shù)據(jù)類型、數(shù)組、信號的某些信息。函數(shù)類的屬性包括數(shù)據(jù)類型屬性、數(shù)組屬性、信號屬性3類。⑴數(shù)據(jù)類型屬性函數(shù)主要包括6種屬性函數(shù):①'POS(x):得到輸入x值的位置順序號。②'VAL(x):得到位置順序號x處的值。③'SUCC(x):得到輸入x值的下一個值。④'PRED(x):得到輸入x值的前一個值。⑤'LEFTOF(x):得到輸入x值左側(cè)的值。⑥'RIGHTOF(x):得到輸入x值右側(cè)的值。⑵數(shù)組屬性函數(shù)
利用數(shù)組屬性函數(shù)可得到數(shù)組的區(qū)間,在對數(shù)組的每一個元素進(jìn)行操作時,必須知道數(shù)組的區(qū)間。數(shù)組屬性函數(shù)可以分為4種:重慶電子工程職業(yè)學(xué)院214.3VHDL語言要素①'LEFT(n):得到序號為n區(qū)間的左端位置號。②'RIGHT(n):得到序號為n區(qū)間的右端位置號。③'HIGH(n):得到序號為n區(qū)間的高端位置號。④‘LOW(n):得到序號為n區(qū)間的低端位置號。⑶信號屬性函數(shù)信號屬性函數(shù)用來得到信號的行為信息。信號屬性函數(shù)共有5種:①'EVENT:用于判斷在當(dāng)前一個非常小的時間間隔內(nèi),事件是否發(fā)生。②'ACTIVE:用于判斷在當(dāng)前一個非常小的時間間隔內(nèi),信號是否發(fā)生改變。③'LAST_EVENT:用于得到從信號前一個事件發(fā)生到現(xiàn)在所經(jīng)過的時間。④'LAST_VALUE:用于得到信號最后一次改變以前的值。⑤'LAST_ACTIVE:用于得到從信號最后一次改變到現(xiàn)在的時間。重慶電子工程職業(yè)學(xué)院224.3VHDL語言要素【例4-14】:信號屬性函數(shù)示例1LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff1ISPORT(clk,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDdff1;
ARCHITECTURErtlOFdff1ISBEGINPROCESS(clk,d)BEGINIFclk'EVENTANDclk='1'ANDclk'LAST_VALUE='0'THENq<=d;ENDIF;ENDPROCESS;ENDrtl;重慶電子工程職業(yè)學(xué)院234.3VHDL語言要素【例4-15】:信號屬性函數(shù)示例2LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff2ISPORT(clk,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDdff2;
ARCHITECTURErtlOFdff2ISBEGINPROCESS(clk,d)BEGINIFclk'EVENTANDclk'LAST_VALUE='0'THENq<=d;ENDIF;ENDPROCESS;ENDrtl;
重慶電子工程職業(yè)學(xué)院244.3VHDL語言要素【例4-16】:信號屬性函數(shù)示例3LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff3ISPORT(clk,d:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDdff3;
ARCHITECTURErtlOFdff3ISBEGINPROCESS(clk,d)BEGINIFrising_edge(clk)THENq<=d;ENDIF;ENDPROCESS;ENDrtl;重慶電子工程職業(yè)學(xué)院254.3VHDL語言要素3.信號類屬性
信號類屬性用來對所加屬性的信號產(chǎn)生新的特殊信號,在新產(chǎn)生的信號中包含了所加屬性的相關(guān)信息。4.數(shù)據(jù)類型類屬性5.數(shù)據(jù)區(qū)間類屬性重慶電子工程職業(yè)學(xué)院264.4VHDL描述語句4.4.1順序描述語句
順序語句
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建武夷交通運(yùn)輸股份有限公司招聘備考題庫及答案詳解1套
- 中國農(nóng)業(yè)科學(xué)院2026年度第一批統(tǒng)一公開招聘備考題庫及1套參考答案詳解
- 2025年信息技術(shù)中心招聘備考題庫及參考答案詳解
- 2025年定西市通渭縣公開招聘鄉(xiāng)村醫(yī)生7人備考題庫完整參考答案詳解
- 贛東職業(yè)技術(shù)學(xué)院2026年上學(xué)期人才招聘13人備考題庫及答案詳解參考
- 四川托普信息技術(shù)職業(yè)學(xué)院2025-2026學(xué)年第二學(xué)期師資招聘備考題庫及答案詳解1套
- 建筑設(shè)計與景觀規(guī)劃題庫及答案
- 2025年吉林大學(xué)馬克思主義學(xué)院公開招聘教師10人備考題庫及完整答案詳解1套
- 2025年河南省地質(zhì)局所屬事業(yè)單位招聘40人備考題庫完整參考答案詳解
- 2025年濟(jì)寧市區(qū)某單位招聘財務(wù)出納備考題庫及完整答案詳解1套
- 人貨電梯施工方案
- 南大版一年級心理健康第7課《情緒小世界》課件
- 光大金甌資產(chǎn)管理有限公司筆試
- 算力產(chǎn)業(yè)園項目計劃書
- 塔式起重機(jī)安全管理培訓(xùn)課件
- 老年髖部骨折快速康復(fù)治療
- 【初中地理】跨學(xué)科主題學(xué)習(xí)探 索外來食料作物的傳播史課件-2024-2025學(xué)年七年級上學(xué)期(人教版2024)
- 四川省南充市2024-2025學(xué)年高一地理上學(xué)期期末考試試題含解析
- 安徒生童話《樅樹》
- 化學(xué)品管理控制程序
- 探索·鄱陽湖智慧樹知到期末考試答案2024年
評論
0/150
提交評論