Operators perform an operation on one or two operands:
- Unary expressions
operandoperator- Binary expressions
operandoperatoroperand- The operands may be either net or register data types.
- Operands may be scalar, vector, or bit selects of a vector.
- Operators which return a true/false result will return a 1-bit value where 1 is true, 0 is false, and X is indeterminate.
Usage
Description
Arithmetic Operators
+m + n
Add n to m
-m - n
Subtract n from m
--m
Negate m (2's complement)
*m * n
Multiply m by n
/m / n
Divide m by n
%m % n
Modulus of m / n Bitwise Operators
~~m
Invert each bit of m
&m & n
AND each bit of m with each bit of n
|m | n
OR each bit of m with each bit of n
^m ^ n
Exclusive OR each bit of m with n
~^
^~m ~^ n
m ^~ nExclusive NOR each bit of m with n Unary Reduction Operators
&&m
AND all bits in m together (1-bit result)
~&~&m
NAND all bits in m together (1-bit result)
||m
OR all bits in m together (1-bit result)
~|~|m
NOR all bits in m together (1-bit result)
^^m
Exclusive OR all bits in m (1-bit result)
~^
^~~^m
^~mExclusive NOR all bits in m (1-bit result) Logical Operators
!!m
Is m not true? (1-bit True/False result)
&&m && n
Are both m and n true? (1-bit True/False result)
||m || n
Are either m or n true? (1-bit True/False result) Equality Operators (compares logic values of 0 and 1
==m == n
Is m equal to n? (1-bit True/False result)
!=m != n
Is m not equal to n? (1-bit True/False result) Identity Operators (compares logic values of 0, 1, X and Z
===m === n
Is m identical to n? (1-bit True/False results)
!==m !== n
Is m not identical to n? (1-bit True/False result) Relational Operators
<m < n
Is m less than n? (1-bit True/False result)
>m > n
Is m greater than n? (1-bit True/False result)
<=m <= n
Is m less than or equal to n? (True/False result)
>=m >= n
Is m greater than or equal to n? (True/False result) Logical Shift Operators
<<m << n
Shift m left n-times
>>m >> n
Shift m right n-times Miscellaneous Operators
? :sel?m:n
If sel is true, select m: else select n
{}{m,n}
Concatenate m to n, creating larger vector
{{}}{n{m}}
Replicate m n-times
->-> m
Trigger an event on an event data type
Operator Precedence
(unary)! ~ + -* / % + -(binary)<< >> < <= > >= == != === !== & ~& ^ ~^ | ~| && || ?: highest precedence lowest precedence