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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、=!=運(yùn)算符則不同運(yùn)算符則不同, ,它在對(duì)操作數(shù)進(jìn)它在對(duì)操作數(shù)進(jìn)行比較時(shí)對(duì)某些位的不定值行比較時(shí)對(duì)某些位的不定值x x和高阻值和高阻值z(mì) z也進(jìn)行比也進(jìn)行比較較, ,兩個(gè)操作數(shù)必需完全一致,其結(jié)果才是兩個(gè)操作數(shù)必需完全一致,其結(jié)果才是1 1,否,否則為則為0 0。=和!=運(yùn)算符常用于case表達(dá)式的判別,所以又稱為case等式運(yùn)算符。這四個(gè)等式運(yùn)算符的優(yōu)先級(jí)別是相同的。下面畫(huà)出與的真值表,幫助理解兩者間的區(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下面舉一個(gè)例子說(shuō)明“”和“”的區(qū)別。例:if(A=1bx) $display(“AisX”); (當(dāng)A等于X時(shí),這個(gè)語(yǔ)句不執(zhí)行)if(A=1bx) $display(“AisX”); (當(dāng)A等于X時(shí),這個(gè)語(yǔ)句執(zhí)行)6.移位運(yùn)算符移位運(yùn)算符在VerilogHDL中有兩種移位運(yùn)算符:(右移位運(yùn)算符)。其使用方法如下:an或ana代表要進(jìn)行移位的操作數(shù),n代表要移幾位。這兩種移位運(yùn)算都用0來(lái)填補(bǔ)移出的空位。下面舉例說(shuō)明:moduleshift;reg3:0start,result;Initialbeginstart=1;/start在初始時(shí)刻設(shè)為值0001result=(s

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

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

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

11、級(jí) 別10.關(guān)鍵詞關(guān)鍵詞在VerilogHDL中,所有的關(guān)鍵詞是事先定義好的確認(rèn)符,用來(lái)組織語(yǔ)言結(jié)構(gòu)。關(guān)鍵詞是用小寫(xiě)字母定義的,因此在編寫(xiě)原程序時(shí)要注意關(guān)鍵詞的書(shū)寫(xiě),以避免出錯(cuò)。下面是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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論