Keysymbols: &&, ||, !.
The logical operators are logical and, logical or and logical not.All logical operators evaluate to either true ( 1 ), false ( 0 ), or unknown ( x ). An operand is true if it is non zero, and false if it is zero. An unknown or a high impedance value evaluates as false. An operand can be a variable or an expression which evaluates to either true or false as defined above.
module logicalTest; reg [3:0] a, b, c; initial begin a = 2; b = 0; c = 4'hx; $display(a && b); // logical and, evaluates to 0 $display(a || b); // logical or, evaluates to 1 $display(!a); // logical not, evaluates to 0 $display(a || c); // evaluates to 1, unknown || 1 (=1) $display(!c); // evalutes to unknown end endmodule // logicalTest
module testlogical; integer alpha, beta, gamma; initial begin alpha = 1'b0; beta = 1'b0; gamma = 1'b0; alpha = !beta; gamma = alpha || beta; $display("gamma = %d", gamma); end endmodule // testlogical