中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

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

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

        2.位運算符

        作為一種硬件描述語言是針對硬件電路而言的。在硬件電路中信號有4種狀態(tài)值1、0、x和z。在電路中信號進行與或非時,反映在 中則是相應(yīng)的操作數(shù)的位運算。 提供了以下5種位運算符。

        ~ :(取反)

        :(按位與)

        | :(按位或)

        ^ :(按位異或)

        ^~:(按位同或(異或非))

        說明:

        位運算符中除了~是單目運算符以外,均為二目運算符,即要求運算符兩側(cè)各有一個操作數(shù)。

        位運算符中的二目運算符要求對兩個操作數(shù)的相應(yīng)位進行運算操作。

        下面對各運算符分別進行介紹。

        “取反”運算符~

        ~是一個單目運算符,用來對一個操作數(shù)進行按位取反運算。如表2所示為單目運算符~的運算規(guī)則表。

        表2 ~ 運算規(guī)則表

        ~運算

        操 作 數(shù)

        結(jié) 果

        1

        0

        0

        1

        x

        x

        舉例說明:

        rega='b1010; //rega的初值為'b1010

        rega=~rega; //rega的值進行取反運算后變?yōu)?b0101

        “按位與”運算符

        按位與運算就是將兩個操作數(shù)的相應(yīng)位進行與運算,其運算規(guī)則如表3所示。

        表3 運算規(guī)則表

        運算

        操作數(shù)1

        操作數(shù)2

        0

        1

        x

        0

        0

        0

        0

        1

        0

        1

        x

        x

        0

        x

        x

        “按位或”運算符 |

        按位或運算就是將兩個操作數(shù)的相應(yīng)位進行或運算,其運算規(guī)則如表4所示。

        表4 | 運算規(guī)則表

        | 運算

        操作數(shù)1

        操作數(shù)2

        0

        1

        x

        0

        0

        1

        x

        1

        1

        1

        1

        x

        x

        1

        x

        “按位異或”運算符^(也稱之為XOR運算符)

        按位異或運算就是將兩個操作數(shù)的相應(yīng)位進行異或運算,其運算規(guī)則如表5所示。

        表5 ^ 運算規(guī)則表

        ^ 運算

        操作數(shù)1

        操作數(shù)2

        0

        1

        x

        0

        0

        1

        x

        1

        1

        0

        x

        x

        x

        x

        x

        “按位同或”運算符^~

        按位同或運算就是將兩個操作數(shù)的相應(yīng)位先進行異或運算再進行非運算,其運算規(guī)則如表6所示。

        表6 ^~ 運算規(guī)則表

        ^~ 運算

        操作數(shù)1

        操作數(shù)2

        0

        1

        x

        0

        1

        0

        x

        1

        0

        1

        x

        x

        x

        x

        x

        不同長度的數(shù)據(jù)進行位運算

        兩個長度不同的數(shù)據(jù)進行位運算時,系統(tǒng)會自動將兩者按右端對齊。位數(shù)少的操作數(shù)會在相應(yīng)的高位用0填滿,以使兩個操作數(shù)按位進行操作。

        3.邏輯運算符

        在Verilog HDL語言中存在3種邏輯運算符。

        :(邏輯與)

        ||:(邏輯或)

        ! :(邏輯非)

        “”和“||”是二目運算符,它要求有兩個操作數(shù),如(a>b)(b>c),(a

        表7 邏輯運算真值表

        操 作 數(shù)

        邏輯運算及結(jié)果

        a

        b

        !a

        !b

        ab

        a||b

        邏輯運算符中“”和“||”的優(yōu)先級別低于關(guān)系運算符,“!”的優(yōu)先級別高于算術(shù)運算符,例如。

        (a>b)(x>y) 可寫成: a>b x>y

        (a==b)||(x==y) 可寫成: a==b || x==y

        (!a)||(a>b) 可寫成: !a || a>b

        為了提高程序的可讀性,明確表達各運算符間的優(yōu)先關(guān)系,建議使用括號。

        4.關(guān)系運算符

        關(guān)系運算符共有以下4種。

        a b:(a小于b)

        a > b:(a大于b)

        a = b:(a小于或等于b)

        a >= b:(a大于或等于b)

        在進行關(guān)系運算時,如果聲明的關(guān)系是假的(flase),則返回值是0;如果聲明的關(guān)系是真的(true),則返回值是1;如果某個操作數(shù)的值不定,則關(guān)系是模糊的,返回值是不定值。

        所有的關(guān)系運算符有著相同的優(yōu)先級別。關(guān)系運算符的優(yōu)先級別低于算術(shù)運算符的優(yōu)先級別,例如。

        a size-1 //這種表達方式等同于下面一行的表達方式

        a (size-1)

        size - (1 a) //這種表達方式不等同于下面一行的表達方式

        size - 1 a

        從上面的例子可以看出這兩種不同運算符的優(yōu)先級別。當表達式size -(1

        5.等式運算符

        在Verilog HDL語言中存在4種等式運算符。

        = =:(等于)

        != :(不等于)

        = = =:(等于)

        != =:(不等于)

        這4個運算符都是二目運算符,它要求有兩個操作數(shù)。“= =”和“!=”又稱為邏輯等式運算符,其結(jié)果由兩個操作數(shù)的值決定。由于操作數(shù)中某些位可能是不定值x和高阻值z,結(jié)果可能為不定值x。

        “= = =”和“!= =”運算符則不同,它在對操作數(shù)進行比較時,對某些位的不定值x和高阻值z也進行比較。兩個操作數(shù)必需完全一致,其結(jié)果才是1,否則為0。“= = =”和“!= =”運算符常用于case表達式的判別,所以又稱為“case等式運算符”。

        這4個等式運算符的優(yōu)先級別是相同的。下面畫出“= =”與“= = =”的真值表,幫助理解兩者間的區(qū)別。

        表8 等式運算符真值表

        = = = 運算

        操作數(shù)1

        操作數(shù)2

        0

        1

        x

        z

        0

        1

        0

        0

        0

        1

        0

        1

        0

        0

        x

        0

        0

        1

        0

        z

        0

        0

        0

        1

        = = 運算

        操作數(shù)1

        操作數(shù)2

        0

        1

        x

        z

        0

        1

        0

        x

        x

        1

        0

        1

        x

        x

        x

        x

        x

        x

        x

        z

        x

        x

        x

        x

        下面舉一個例子說明“= =”與“= = =”的區(qū)別。

        if(A==1’bx) $display( AisX ); //當A等于X時,這個語句不執(zhí)行

        if(A===1’bx) $display( AisX ); //當A等于X時,這個語句執(zhí)行



        評論


        相關(guān)推薦

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

        關(guān)閉