La siguiente tabla muestra la precedencia de los operadores de mayor a menor.
Los operadores del mismo nivel evalúan de izquierda a derecha.
Se recomienda utilizar paréntesis para definir el orden de precedencia y mejorar la legibilidad del código.
Operador | Descripción |
---|---|
[ ] |
selección de bits ó parte |
( ) |
paréntesis |
! ,~ |
NOT lógico y bit-wise |
& ,| ,~& ,~| ,^ ,~^ ,^~ |
reducción AND, OR, NAND, NOR, XOR, XNOR |
+ ,- |
(unario) signo positivo o negativo |
{ } |
concatenación |
{{ }} |
repetición |
* ,/ ,% |
(binario) multiplicación, división y resto (no siempre sintetizable) |
+ ,- |
(binario) suma y resta |
<< ,>> |
desplazamientos a izquierda y derecha |
< ,> ,<= ,>= |
comparaciones |
== ,!= |
igualdad y desigualdad |
& |
AND bit-wise |
^ ,^~ ,~^ |
XOR bit-wise, XNOR bit-wise |
| |
OR bit-wise |
&& |
AND lógico |
|| |
OR lógico |
? : |
(ternario) condicional |
Otras consideraciones importantes:
4'hc > 10 (TRUE)
8'd12 && 9'h1 (TRUE)
8'h0 || 0 (FALSE)
!8'h6 (FALSE)
~4'b0111 (4'b1000)
2'b01 & 2'b11 (2'b01)
4'h8 | 4'h1 (4'h9)
&16'h324d (1'b0)
|16'h1 (1'b1)
8'hfe << 3 (8'hf0)