Verilog语法之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取反.结果按照位进行取反。