Verilog运算符(Operators)
运算符有三种形式:
- 运算符+操作数
- 符号运算符(+ -)
- 逻辑非(!)
- 按位取反(~)
- 约简(& ~& | ~| ^ ~^ ^~)
- 操作数+运算符+操作数
- 算术运算(+ - * / **)
- 取模(%)
- 比较(> >= < <=)
- 逻辑运算(&& ||)
- 逻辑等(== !=)
- 条件等(=== !===)
- 按位(& ~& | ~| ^ ~^ ^~)
- 移位(<< >> <<< >>>)
- 其他运算符
- 选择运算符(? :)
- 连接运算({M, N})
- 重复运算({N{M}})
- 触发(->)
运算优先级:
+ - ! ~ (unary) // 高优先级
* / % **
+ - (binary)
<< >> <<< >>>
< <= > >=
== != === !==
& ~&
^ ~^
| ~|
&&
||
?: // 低优先级
* / % **
+ - (binary)
<< >> <<< >>>
< <= > >=
== != === !==
& ~&
^ ~^
| ~|
&&
||
?: // 低优先级
例子
A + B
A && B || C && D // same as (A && B) || (C && D)
~4'b1001 // Gives 4'b0110
&4'hF // Gives 1'b1 as all bits are 1