Ready-to-run snippets

Code Examples

Ready-to-run Verilog, SystemVerilog, and UVM examples. Click any to open it live in the IDE.

← All examples

Operators: Verilog Arithmetic Operators

Verilog Examples

Runnable example from the Verilog Operators tutorial (Verilog Arithmetic Operators)

Open in IDE
testbench.v
module des;
 reg [7:0] data1;
 reg [7:0] data2;

 initial begin
 // Logical AND (&&): returns 1 only if BOTH operands are non-zero
 data1 = 45; data2 = 9;
 $display ("Result of data1(%0d) && data2(%0d) : %0d", data1, data2, data1 && data2); // 1 (both non-zero)

 data1 = 0; data2 = 4;
 $display ("Result of data1(%0d) && data2(%0d) : %0d", data1, data2, data1 && data2); // 0 (data1 is zero)

 data1 = 'dx; data2 = 3;
 $display ("Result of data1(%0d) && data2(%0d) : %0d", data1, data2, data1 && data2); // x (data1 has X)

 data1 = 'b101z; data2 = 5;
 $display ("Result of data1(%0d) && data2(%0d) : %0d", data1, data2, data1 && data2); // 1 (Z treated as non-zero)

 // Logical OR (||): returns 1 if EITHER operand is non-zero
 data1 = 45; data2 = 9;
 $display ("Result of data1(%0d) || data2(%0d) : %0d", data1, data2, data1 || data2); // 1 (both non-zero)

 data1 = 0; data2 = 4;
 $display ("Result of data1(%0d) || data2(%0d) : %0d", data1, data2, data1 || data2); // 1 (data2 non-zero)

 data1 = 'dx; data2 = 3;
 $display ("Result of data1(%0d) || data2(%0d) : %0d", data1, data2, data1 || data2); // 1 (data2 non-zero, short-circuit)

 data1 = 'b101z; data2 = 5;
 $display ("Result of data1(%0d) || data2(%0d) : %0d", data1, data2, data1 || data2); // 1 (both non-zero)

 // Logical NOT (!): converts non-zero to 0, zero to 1
 data1 = 4;
 $display ("Result of !data1(%0d) : %0d", data1, !data1); // 0 (4 is non-zero)

 data1 = 0;
 $display ("Result of !data1(%0d) : %0d", data1, !data1); // 1 (0 becomes 1)
 end
endmodule
Admin mode — edit and delete controls are visible on each row. Use the IDE to add new snippets via File → Save as Snippet.