verilog中非與按位取反

verilog中,

“!”表示邏輯求反,“~”表示按位求反。

當對位寬爲1的變量進行操作時,這兩個操作符的作用是一樣的,都是求反。

當對位寬爲2的變量a[1:0]進行操作時,這兩個操作符的作用就不一樣了:“!”表示~(a[0] | a[1]),只有當a的每一位都爲0時,結果才爲1,條件判斷中 if(!a) 等價於 if(a == 0);“~”表示對每一位按位取反,只有當a的每一位都爲1時,結果才爲0。
 

 

【1】! 意思是Logical negation,邏輯取反.結果只有0和1
【2】~ 意思是 Bit-wise negation,按bit取反.結果按照位進行取反。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章