新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > Verilog HDL基礎(chǔ)教程之:數(shù)據(jù)類型和運(yùn)算符

Verilog HDL基礎(chǔ)教程之:數(shù)據(jù)類型和運(yùn)算符

作者: 時(shí)間:2013-08-23 來(lái)源:網(wǎng)絡(luò) 收藏

6.移位運(yùn)算符

中有兩種移位運(yùn)算符。

:(左移位運(yùn)算符)

>>:(右移位運(yùn)算符)

其使用方法如下:

a >> n;

a n;

a代表要進(jìn)行移位的操作數(shù),n代表要移幾位。這兩種移位運(yùn)算都用0來(lái)填補(bǔ)移出的空位。下面舉例說(shuō)明:

module shift;

reg [3:0] start, result;

initial begin

start = 1; //start在初始時(shí)刻設(shè)為值0001

result = (start2); //移位后,start的值0100,然后賦給result

end

endmodule

從上面的例子可以看出,start在移過(guò)兩位以后,用0來(lái)填補(bǔ)空出的位。進(jìn)行移位運(yùn)算時(shí)應(yīng)注意移位前后變量的位數(shù),下面舉例說(shuō)明。

4’b10011 = 5’b10010; //左移1位后用0填補(bǔ)低位

4’b10012 = 6’b100100; //左移2位后用00填補(bǔ)低位

16 = 32’b1000000; //左移6位后用000000填補(bǔ)低位

4’b1001>>1 = 4’b0100; //右移1位后,低1位丟失,高1位用0填補(bǔ)

4’b1001>>4 = 4’b0000; //右移4位后,低4位丟失,高4位用0填補(bǔ)

7.位拼接運(yùn)算符(Concatation)

語(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,b[3:0],w,3’b101}

也可以寫(xiě)成為:

{a,b[3],b[2],b[1],b[0],w,1’b1,1’b0,1’b1}

在位拼接表達(dá)式中不允許存在沒(méi)有指明位數(shù)的信號(hào)。這是因?yàn)樵谟?jì)算拼接信號(hào)的位寬的大小時(shí)必需知道其中每個(gè)信號(hào)的位寬。

位拼接也可以用重復(fù)法來(lái)簡(jiǎn)化表達(dá)式,如下所示:

{4{w}} //等同于{w,w,w,w}

位拼接還可以用嵌套的方式來(lái)表達(dá),如下所示:

{b,{3{a,b}}} //等同于{b,a,b,a,b,a,b}

用于表示重復(fù)的表達(dá)式必須是常數(shù)表達(dá)式,如上例中的4和3。

8.縮減運(yùn)算符(reduction operator)

縮減運(yùn)算符是單目運(yùn)算符,也有與、或、非運(yùn)算。其與、或、非運(yùn)算規(guī)則類似于位運(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è)操作數(shù)進(jìn)行與、或、非遞推運(yùn)算,最后的運(yùn)算結(jié)果是一位的二進(jìn)制數(shù)。

縮減運(yùn)算的具體運(yùn)算過(guò)程如下。

(1)先將操作數(shù)的第一位與第二位進(jìn)行與、或、非運(yùn)算。

(2)將運(yùn)算結(jié)果與第三位進(jìn)行與、或、非運(yùn)算,依次類推,直至最后一位。

例如:

reg [3:0] B;

reg C;

C = B;

相當(dāng)于:

C =( ( B[0]B[1] ) B[2] ) B[3];

由于縮減運(yùn)算的與、或、非運(yùn)算規(guī)則類似于位運(yùn)算符與、或、非運(yùn)算規(guī)則,這里不再詳細(xì)講述,可參照位運(yùn)算符的運(yùn)算規(guī)則介紹。

9.優(yōu)先級(jí)別

各種運(yùn)算符的優(yōu)先級(jí)別關(guān)系如表9所示。

表9 運(yùn)算符優(yōu)先級(jí)別表

運(yùn) 算 符

優(yōu) 先 級(jí) 別

! ~

* / %

+ -

>>

= > >=

== != === !==

^ ^~

|

||

? :


上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉