以下來自百度知道:http://zhidao.baidu.com/question/420476218.html
按位是二元操作符,是將操作符兩邊的操作數進行 操作符所規定的運算 ,
例如:a & b(a=1,b=1),出來結果為1;
歸約是一元操作符,是將操作數的幾個bit位當成1bit的操作數進行操作符所規定的運算,
例如:a=4’b1101,則 &a= 1&1&0&1 =0
具體到程序綜合的時候,綜合工具會根據你操作數的多少來區分你的意圖
以下來自:http://www.dzsc.com/data/html/2007-4-30/28721.html
歸約操作符在單一操作數的所有位上操作,並產生1位結果。
歸約操作符有:
& (歸約與)
如果存在位值為0, 那么結果為0;若如果存在位值為x或z,結果為x;否則結果為1。
~& (歸約與非)
與歸約操作符&相反。
(歸約或)
如果存在位值為1,那么結果為1;如果存在位x或z,結果為x;否則結果為0。
~ (歸約或非)
與歸約操作符相反。
^ (歸約異或)
如果存在位值為x或z,那么結果為x;否則如果操作數中有偶數個1, 結果為0;否則結果為1。
~^ (歸約異或非)
與歸約操作符^正好相反。
如下所示。假定,
A = 'b0110;
B = 'b0100;
那么
:
B 結果為1
& B 結果為0
~ A 結果為1
歸約異或操作符用於決定向量中是否有位為x。
假定,
MyReg = 4'b01x0;
那么
:
^MyReg 結果為x
上述功能使用如下的if語句檢測:
if (^MyReg = = = 1'bx)
$ display ("There is an unknown in the vector MyReg !")
注意邏輯相等(==)操作符不能用於比較;
邏輯相等操作符比較將只會產生結果x。全等操作符期望的結果為值1。