第4章FPGA運算符、賦值語句_第1頁
第4章FPGA運算符、賦值語句_第2頁
第4章FPGA運算符、賦值語句_第3頁
第4章FPGA運算符、賦值語句_第4頁
第4章FPGA運算符、賦值語句_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1)1) 取反取反 運算符運算符 是一個單目運算符,用來對一個操作數(shù)進行按位取反運算。其運算規(guī)則見下表:舉例說明:rega=4b1010;/rega的初值為b1010rega=rega;/rega的值進行取反運算后變?yōu)?b0101 1001xx2)2) 按位與按位與 運算符運算符& &按位與運算就是將兩個操作數(shù)的相應(yīng)位進行與運算,其運算規(guī)則見下表&01x0000101xx0 xx3)3)按位或按位或 運算符運算符| |按位或運算就是將兩個操作數(shù)的相應(yīng)位進行或運算。其運算規(guī)則見下表:|01x001x1111xx1x4)4)按位異或按位異或 運算符運算符(也稱之為也稱之為X

2、ORXOR運算符運算符) )按位異或運算就是將兩個操作數(shù)的相應(yīng)位進行異或運算。其運算規(guī)則見下表:01x001x110 xxxxx5)5)按位同或按位同或 運算符運算符 按位同或運算就是將兩個操作數(shù)的相應(yīng)位先進行異或運算再進行非運算。其運算規(guī)則見下表01x010 x101xxxxx6 6)不同長度的數(shù)據(jù)進行位運算)不同長度的數(shù)據(jù)進行位運算:兩個長度不同的數(shù)據(jù)進行位運算時,系統(tǒng)會自動的將兩者按右端對齊。兩個操作數(shù)按位進行操作。3 3 邏輯運算符邏輯運算符在Verilog 語言中存在三種邏輯運算符:1) & 邏輯與2) | 邏輯或3) ! 邏輯非&和|是二目運算符,它要求有兩個操作數(shù)

3、,如(ab)&(bc),(ab)|(bb)。下表為邏輯運算的真值表。它表示當a和b的值為不同的組合時,各種邏輯運算所得到的值。邏輯運算符中&和|的優(yōu)先級別低于關(guān)系運算符,! 見下例:(ab)&(xy)可寫成: ab & xy(a=b)|(x=y)可寫成:a=b | x=y(!a)|(ab) 可寫成: !a | ab為了提高程序的可讀性為了提高程序的可讀性, ,明確表達各運算符間的優(yōu)先關(guān)系明確表達各運算符間的優(yōu)先關(guān)系, ,建議使用括號建議使用括號. .ab!a!ba&ba|b真真假假真真真假假真假真假真真假假真假假真真假假4 4 關(guān)系運算符關(guān)系運算符關(guān)系運

4、算符共有以下四種a b a大于ba = b a大于或等于b在進行關(guān)系運算時,如果聲明的關(guān)系是假的在進行關(guān)系運算時,如果聲明的關(guān)系是假的( (flase)flase),則返回值是則返回值是0 0,如果聲明的關(guān)系是真的,如果聲明的關(guān)系是真的( (true)true),則返回值是則返回值是1 1,如果某個操作數(shù)的值不,如果某個操作數(shù)的值不定,則關(guān)系是模糊的,返回值是不定值。定,則關(guān)系是模糊的,返回值是不定值。所有的關(guān)系運算符有著相同的優(yōu)先級別。關(guān)系運算符的優(yōu)先級別低于算術(shù)運算符的優(yōu)先級別。見下例a size-1 /這種表達方式等同于下面a (size-1) /這種表達方式。size - ( 1 a

5、) /這種表達方式不等同于下面size - 1 a /這種表達方式。從上面的例子可以看出這兩種不同運算符的優(yōu)先級別。當表達式size(1a)進行運算時,關(guān)系表達式先被運算,然后返回結(jié)果值0或1被size減去。而當表達式 size1a 進行運算時,size先被減去1,然后再同a相比。5.等式運算符等式運算符在VerilogHDL語言中存在四種等式運算符:1 =(等于)2 !=(不等于)3 =(等于)4 !=(不等于)這四個運算符都是二目運算符,它要求有兩個操作數(shù)。=和!=又稱為邏輯等式運算符。其結(jié)果由兩個操作數(shù)的值決定。由于操作數(shù)中某些位可能是不定值x和高阻值z,結(jié)果可能為不定值x。而而=和和!

6、=!=運算符則不同運算符則不同, ,它在對操作數(shù)進它在對操作數(shù)進行比較時對某些位的不定值行比較時對某些位的不定值x x和高阻值和高阻值z z也進行比也進行比較較, ,兩個操作數(shù)必需完全一致,其結(jié)果才是兩個操作數(shù)必需完全一致,其結(jié)果才是1 1,否,否則為則為0 0。=和!=運算符常用于case表達式的判別,所以又稱為case等式運算符。這四個等式運算符的優(yōu)先級別是相同的。下面畫出與的真值表,幫助理解兩者間的區(qū)別。 = = = 0 1 X Z 0 1 0 0 0 1 0 1 0 0 X 0 0 1 0 Z 0 0 0 1 = = 0 1 X Z 0 1 0 X X 1 0 1 X X X X X

7、X X Z X X X X下面舉一個例子說明“”和“”的區(qū)別。例:if(A=1bx) $display(“AisX”); (當A等于X時,這個語句不執(zhí)行)if(A=1bx) $display(“AisX”); (當A等于X時,這個語句執(zhí)行)6.移位運算符移位運算符在VerilogHDL中有兩種移位運算符:(右移位運算符)。其使用方法如下:an或ana代表要進行移位的操作數(shù),n代表要移幾位。這兩種移位運算都用0來填補移出的空位。下面舉例說明:moduleshift;reg3:0start,result;Initialbeginstart=1;/start在初始時刻設(shè)為值0001result=(s

8、tart2);/移位后,start的值0100,然后賦給result。endendmodule從上面的例子可以看出,start在移過兩位以后,用0來填補空出的位。7.位拼接運算符位拼接運算符(Concatation)在VerilogHDL語言有一個特殊的運算符:位拼接位拼接運算符。用這個運算符可以把兩個或多個信號的某些位拼接起來進行運算操作。其使用方法如下:信號1的某幾位,信號2的某幾位,.,.,信號n的某幾位即把某些信號的某些位詳細地列出來,中間用逗號分開,最后用大括號括起來表示一個整體信號。例:a,b3:0,w,3b101也可以寫成為a,b3,b2,b1,b0,w,1b1,1b0,1b1在

9、位拼接表達式中不允許存在沒有指明位數(shù)的信在位拼接表達式中不允許存在沒有指明位數(shù)的信號號。這是因為在計算拼接信號的位寬的大小時必需知道其中每個信號的位寬。位拼接還可以用重復(fù)法來簡化表達式。見下例:4w/這等同于w,w,w,w位拼接還可以用嵌套的方式來表達。見下例:b,3a,b/這等同于b,a,b,a,b,a,b8.縮減運算符縮減運算符(reductionoperator)縮減運算符是單目運算符,也有與、或、非運算。其與、或、非運算規(guī)則類似于位運算符的與或非運算規(guī)則,但其運算過程不同。位運算是對操作數(shù)的相應(yīng)位進行與或非運算,操作數(shù)是幾位數(shù)則運算結(jié)果也是幾位數(shù)。而縮減運算則不同,縮減運算是對單個操作

10、數(shù)進行或與非遞推運算,最后的運算結(jié)果是一位的二進制數(shù)。縮減運算的具體運算過程是這樣的:第一步先將操作數(shù)的第一位與第二位進行或與非運算,第二步將運算結(jié)果與第三位進行或與非運算,依次類推,直至最后一位。例如:reg3:0B;regC;C=&B;相當于:C=(B0&B1)&B2)&B3;由于縮減運算的與、或、非運算規(guī)則類似于位運算符與、或、非運算規(guī)則,這里不再詳細講述,請參照位運算符的運算規(guī)則介紹。9.優(yōu)先級別優(yōu)先級別 優(yōu) 先 級 別! 高 優(yōu) 先 級 別* / %+ - = = = != = = = != =& |& &|? : 低 優(yōu) 先

11、級 別10.關(guān)鍵詞關(guān)鍵詞在VerilogHDL中,所有的關(guān)鍵詞是事先定義好的確認符,用來組織語言結(jié)構(gòu)。關(guān)鍵詞是用小寫字母定義的,因此在編寫原程序時要注意關(guān)鍵詞的書寫,以避免出錯。下面是VerilogHDL中使用的關(guān)鍵詞。always,and,assign,begin,buf,bufif0,bufif1,case,casex,casez,cmos,deassign,default,defparam,disable,edge,else,end,endcase,endmodule,endfunction,endprimitive,endspecify,endtable,endtask,event,for,force,forever,fork,function,highz0,highz1,if,initial,inout,input,integer,join,large,macromodule,medium,module,nand,negedge,nmos,nor,not,notif0,notifl,or,output,parameter,pmos,posedge,primitive,pull0,pull1,pullup,pulldown,rcmos,reg,releses,repeat,mmos,rpmos,rtran,rtranif0,rtranif1,scalared,s

溫馨提示

  • 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

提交評論