<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          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 來源:網(wǎng)絡(luò) 收藏

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

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

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

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

          其使用方法如下:

          a >> n;

          a n;

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

          module shift;

          reg [3:0] start, result;

          initial begin

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

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

          end

          endmodule

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

          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)的某些位拼接起來進(jìn)行運(yùn)算操作。其使用方法如下:

          {信號(hào)1的某幾位,信號(hào)2的某幾位,..,..,信號(hào)n的某幾位}

          即把某些信號(hào)的某些位詳細(xì)地列出來,中間用逗號(hào)分開,最后用大括號(hào)括起來表示一個(gè)整體信號(hào),例如:

          {a,b[3:0],w,3’b101}

          也可以寫成為:

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

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

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

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

          位拼接還可以用嵌套的方式來表達(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)算過程不同。位運(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)算過程如下。

          (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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();