Operan de forma similar a los bitwise sólo para operandos de un solo bit, y devuelven un solo bit 1 ó 0.
Pueden trabajar con expresiones, números enteros o grupos de bits y tratan todos los valores distintos de cero como 1.
Normalmente se utilizan en sentencias condicionales (if ... else) ya que funcionan con expresiones.
!
(NOT lógico)
&&
(AND lógico)
||
(OR lógico)
==
(igualdad lógica)
!=
(desigualdad lógica)
===
(igualdad case
)
!==
(desigualdad case
)
En ===
y !==
se tienen en cuenta bits con valores x
o z
para la
comparación bitwise, en cambio cuando aparecen ==
y !=
el resultado
de la comparación es siempre x
y estos últimos son sintetizables por
contra de los primeros.
Ejemplo
wire [7:0] x,y,z; // variables multibit
reg a;
...
if ((x==y)&&(z)) a=1; // a = 1 si x igual que y, y z no es cero
else a = !x; // a = 0 si x es algo distinto a cero