Circuit Fever Author - Rohit
Rohit
Posted on 24 Feb 2023

Assign Statement In Verilog

assign keyword is used to assign ouput port or wire some digital logic. This keyword is the part of dataflow modeling in Verilog. In this post, we will see how to use this keyword in your Verilog code

  • You can use assign statement inside of module.
  • You can use assign statement to output port and any wire declared inside the module

Examples of assign statement

AND gate

module gate(a,b,y);
input a,b;
output y;

assign y = a & b;
                
endmodule

In above example, y is output port and we are assigning this output port to a and b. It will create a and gate where a and b are inputs and y is output

NAND gate

module gate(a,b,y);
input a,b;
output y;

wire w;

assign w = a & b;
assign y = ~w;

endmodule

In above example, we've descrived a NAND gate. We can use one statemetn but for better understanding we've use two statement to illustrate how we can use assign statement to both wire and output port. wire w is assign with a AND b, and output y is assigned not of wire w. This creates a NAND gate in verilog HDL.

Full adder

module fulladder(a,b,cin,sum,carry);
input a,b;
output y;

wire w;

assign sum = a ^ b ^ cin;
assign carry = (a&b) | (b&cin) | (cin & a);

endmodule

In above example, we have described a full-adder using assign statement. Note that we can write complete boolean equation using assign statement

Operators

We can also use Verilog operators using assign statement. Below is the example of full-adder using assign statement and Verilog operator

module fulladder(a,b,cin,sum,carry);
input a,b;
output y;

assign {carry,sum} = a + b + cin;

endmodule

In above example, we are using + operator, which addition operator in Verilog. We are assigning output sum and carry with addition of a, b and cin.

Learn Verilog HDL

Click like if you found this useful

Comments

We're currently in maintenance.