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

下載本文檔

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

文檔簡介

會計學(xué)1EDA字符及數(shù)據(jù)類型在VHDL語言中,共有6種邏輯運算符,他們分別是:

NOT取反;

AND與;

OR或;

NAND與非;

NOR或非;

XOR異或。邏輯運算符

這6種邏輯運算符可以對“BIT”和“STD_LOGIC”等邏輯型數(shù)據(jù)、“STD_LOGIC_VECTOR”邏輯型數(shù)組及布爾數(shù)據(jù)進行邏輯運算。必須注意:

運算符的左邊和右邊,以及代入的信號的數(shù)據(jù)類型必須是相同的。第1頁/共19頁【例1】SIGNALa,b,c:STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALd,e,f,g:STD_LOGIC_VECTOR(1DOWNTO0);

SIGNALh,I,j,k:STD_LOGIC;

SIGNALl,m,n,o,p:BOOLEAN;

...a<=bANDc;--b、c相與后向a賦值,a、b、c的數(shù)據(jù)類型同屬4位長的位矢量

d<=eORfORg;--兩個操作符OR相同,不需括號

h<=(iNANDj)NANDk;--NAND不屬上述三種算符中的一種,必須加括號

l<=(mXORn)AND(oXORp);--操作符不同,必須加括號

h<=iANDjANDk;--兩個操作符都是AND,不必加括號

h<=iANDjORk;--兩個操作符不同,未加括號,表達錯誤

a<=bANDe;--操作數(shù)b與e的位矢長度不一致,表達錯誤

h<=iORl;--i的數(shù)據(jù)類型是位STD_LOGIC,而l的數(shù)據(jù)類型是

...--布爾量BOOLEAN,因而不能相互作用,表達錯誤。

邏輯操作符第2頁/共19頁

關(guān)系操作符【例2】ENTITYrelational_ops_1ISPORT(a,b:INBIT_VECTOR(0TO3);m:OUTBOOLEAN);ENDrelational_ops_1;ARCHITECTUREexampleOFrelational_ops_1ISBEGINoutput<=(a=b);ENDexample;【例3】ENTITYrelational_ops_2ISPORT(a,b:ININTEGERRANGE0TO3;m:OUTBOOLEAN);ENDrelational_ops_2;ARCHITECTUREexampleOFrelational_ops_2ISBEGINoutput<=(a>=b);ENDexample;六種關(guān)系運算操作符:“

=”(等于)、“/=”(不等于)、“

>”(大于)、“<”(小于)、“>=”(大于等于)“<=”(小于等于)第3頁/共19頁VHDL語言中有5類算術(shù)運算符,他們分別是:求和操作符:+、-求積操作符:*、/、MOD、REM符號操作符:+、-混合操作符:**、ABS移位操作符:SLL、SRL、SLA、SRA、ROL、ROR

算術(shù)運算符第4頁/共19頁求和操作符【例5】VARIABLEa,b,c,d,e,f:INTEGERRANGE0TO255;...a:=b+c;d:=e–f;【例4】PROCEDUREadding_e(a:ININTEGER;b:INOUTINTEGER)IS...b:=a+b;第5頁/共19頁【例6】

PACKAGEexample_arithmeticISTYPEsmall_INtISRANGE0TO7;ENDexample_arithmetic;USEwork.example_arithmetic.ALL;ENTITYarithmeticISPORT(a,b:INSMALL_INT;c:OUTSMALL_INT);ENDarithmetic;ARCHITECTUREexampleOFarithmeticISBEGIN

c<=a+b;ENDexample;第6頁/共19頁求積操作符符號操作符求積操作符包括*(乘)、/(除)、MOD(取模)和REM(取余)四種操作符。符號操作符“+”和“-”的操作數(shù)只有一個。第7頁/共19頁混合操作符【例7】SIGNALa,b:INTEGERRANGE-8to7;SIGNALc:INTEGERRANGE0to15;SIGNALd:INTEGERRANGE0to3;a<=ABS(b);c<=2**d;混合操作符包括乘方“**”操作符和取絕對值“ABS”操作符兩種第8頁/共19頁移位操作符移位操作符的語句格式是:

標識符移位操作符移位位數(shù);SLL(邏輯左移)SRL(邏輯右移)SLA(算術(shù)左移)SRA(算術(shù)右移)ROL(邏輯循環(huán)左移)ROR(邏輯循環(huán)右移)

第9頁/共19頁【例8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdecoder3to8ISport(input:INSTD_LOGIC_VECTOR(2DOWNTO0);output:OUTBIT_VECTOR(7DOWNTO0));ENDdecoder3to8;ARCHITECTUREbehaveOFdecoder3to8ISBEGINoutput<="00000001"SLLCONV_INTEGER(input);

--被移位部分是常數(shù)!ENDbehave;第10頁/共19頁并置運算符SIGNALg,h,i:STD_LOGIC;SIGNALc,d,e:STD_LOGIC_VECTOR(1TO0);┇

d<=i&NOTh;

a<=c&d;元素與元素并置,形成長度為2的數(shù)組數(shù)組與數(shù)組并置,形成長度為4的數(shù)組&連接

第11頁/共19頁

賦值運算符

賦值運算符用來給信號、變量和常量賦值。<=用于對signal賦值:=用于對variable,constant和generic賦值,也可用于初始賦值;=〉給矢量中某些位賦值,或?qū)δ承┪恢獾钠渌毁x值。第12頁/共19頁例首先定義下列信號和變量Signalx:std_logic;Varibaley:std_logic_vector(3downto0);Signalw:std_logic_vector(0to7);X<=‘1’;Y:=“0000”;W<=“10000000”;W<=(0=>’1’,others=>’0’);--最低位是1,其它位0第13頁/共19頁即用戶自定義操作符,可以與預(yù)定義的操作符具有相同的名稱。對已存在的操作符重新定義,可進行不同類型操作數(shù)之間的運算。例:對一個整數(shù)和一個1位的二進制數(shù)進行加法運算

function“+”(a:integer;b:bit)returnintegerisbeginif(b=‘1’)thenreturna+1;

elsereturna;endif;end“+”;重載操作符第14頁/共19頁

運算符

NOT,ABS,***,/,MOD,REM+(正號),-(負

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論