Verilog assign statement

Signals of type wire or a similar wire like data type requires the continuous assignment of a value. For example, consider an electrical wire used to connect pieces on a breadboard. As long as the +5V battery is applied to one end of the wire, the component connected to the other end of the wire will get the required voltage.


In Verilog, this concept is realized by the assign statement where any wire or other similar wire like data-types can be driven continuously with a value. The value can either be a constant or an expression comprising of a group of signals.

Assign Syntax

The assignment syntax starts with the keyword assign followed by the signal name which can be either a single signal or a concatenation of different signal nets. The drive strength and delay are optional and are mostly used for dataflow modeling than synthesizing into real hardware. The expression or signal on the right hand side is evaluated and assigned to the net or expression of nets on the left hand side.

Delay values are useful for specifying delays for gates and are used to model timing behavior in real hardware because the value dictates when the net should be assigned with the evaluated value.

In the following example, a net called out is driven continuously by an expression of signals. i1 and i2 with the logical AND & form the expression.


If the wires are instead converted into ports and synthesized, we will get an RTL schematic like the one shown below after synthesis.

verilog assign a b

Continuous assignment statement can be used to represent combinational gates in Verilog.

The module shown below takes two inputs and uses an assign statement to drive the output z using part-select and multiple bit concatenations. Treat each case as the only code in the module, else many assign statements on the same signal will definitely make the output become X.

Assign reg variables

It is illegal to drive or assign reg type variables with an assign statement. This is because a reg variable is capable of storing data and does not require to be driven continuously. reg signals can only be driven in procedural blocks like initial and always .

Implicit Continuous Assignment

When an assign statement is used to assign the given net with some value, it is called explicit assignment. Verilog also allows an assignment to be done when the net is declared and is called implicit assignment.

Combinational Logic Design

Consider the following digital circuit made from combinational gates and the corresponding Verilog code.


Combinational logic requires the inputs to be continuously driven to maintain the output unlike sequential elements like flip flops where the value is captured and stored at the edge of a clock. So an assign statement fits the purpose the well because the output o is updated whenever any of the inputs on the right hand side change.

Hardware Schematic

After design elaboration and synthesis, we do get to see a combinational circuit that would behave the same way as modeled by the assign statement.

combinational gate schematic

See that the signal o becomes 1 whenever the combinational expression on the RHS becomes true. Similarly o becomes 0 when RHS is false. Output o is X from 0ns to 10ns because inputs are X during the same time.


Click here for a slideshow with simulation example !

Global training solutions for engineers creating the world's electronics


KnowHow Free Technical Resources

Find a training course, wire assignments.

A wire can be declared and continuously assigned in a single statement - a wire assignment. This is a shortcut which saves declaring and assigning a wire separately. There are no advantages or disadvantages between the two methods other than the obvious difference that wire assignments reduce the size of the text.

Later on we will discuss delays on assignments and wires. A delay in a wire assignment is equivalent to a delay in the corresponding continuous assignment, not a delay on the wire. Thus it could be necessary to separate the wire declaration from the continuous assignment to put the delay onto the wire rather than the assignment. Note that this is a subtle point that you are unlikely to encounter in practice!

Verilog: Using wire assignments to describe an AOI gate module

So in this sample code, each of the wire declarations and its corresponding assign statement are effectively merged into one wire assignment.

Note the use of a block comment in the Verilog code, rather than the line comments we have seen so far. A block comment may span several lines of code. Block comments may not be nested.

verilog assign a b

Simulate your VHDL code in a web browser

Related training, henry hastings, lockheed martin.

View more references

Javatpoint Logo

Verilog Tutorial


Help Others, Please Share


Learn Latest Tutorials

Splunk tutorial


Tumblr tutorial

Reinforcement Learning

R Programming tutorial

R Programming

RxJS tutorial

React Native

Python Design Patterns

Python Design Patterns

Python Pillow tutorial

Python Pillow

Python Turtle tutorial

Python Turtle

Keras tutorial



Verbal Ability

Interview Questions

Interview Questions

Company Interview Questions

Company Questions

Trending Technologies

Artificial Intelligence

Artificial Intelligence

AWS Tutorial

Cloud Computing

Hadoop tutorial

Data Science

Angular 7 Tutorial

Machine Learning

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures

DAA tutorial

Operating System

Computer Network tutorial

Computer Network

Compiler Design tutorial

Compiler Design

Computer Organization and Architecture

Computer Organization

Discrete Mathematics Tutorial

Discrete Mathematics

Ethical Hacking

Ethical Hacking

Computer Graphics Tutorial

Computer Graphics

Software Engineering

Software Engineering

html tutorial

Web Technology

Cyber Security tutorial

Cyber Security

Automata Tutorial

C Programming

C++ tutorial

Control System

Data Mining Tutorial

Data Mining

Data Warehouse Tutorial

Data Warehouse

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h [email protected] , to get more information about given services.

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected] . Duration: 1 week to 2 week

RSS Feed

copyright 2007-2017 :: all rights reserved :: Disclaimer


  1. Verilog Construction

    verilog assign a b

  2. ️ Assign in verilog. Wire And Reg In Verilog. 2019-02-05

    verilog assign a b

  3. Verilog初级教程(8)Verilog中的assign语句

    verilog assign a b

  4. Verilog Hdl Program For Half Subtractor

    verilog assign a b

  5. verilog assign用法

    verilog assign a b

  6. Verilog Construction

    verilog assign a b


  1. GA-FC and AirStep Alternative for Boss Katana Amps

  2. Using the Maxon App: Render-only Licenses

  3. Creo Parametric

  4. Kubernetes Node Tutorial for Beginners

  5. Rupaul's Drag Race UK Season 4 Episode 5 Reaction

  6. Team Minecraft Vs Team Mario


  1. Verilog assign statement

    Verilog assign statement ... Signals of type wire or a similar wire like data type requires the continuous assignment of a value. For example, consider an

  2. Wire Assignments

    Verilog code for AND-OR-INVERT gate module AOI (input A, B, C, D, output F); /* start of a block comment wire F; wire AB, CD, O; assign AB = A & B;

  3. Verilog

    Verilog - Operators. Bitwise operators give bit-by-bit results. //8-bit wide AND module and8( input [7:0] a,b, output [7:0] z. ); assign z = a & b;.

  4. Verilog Assign Statement

    Verilog assign Statement ... Assign statements are used to drive values on the net. And it is also used in Data Flow Modeling. Signals of type wire or a data type

  5. The Verilog hardware description language

    assign o2 = s ^ c ;. // XOR operation endmodule. I/O port direction declarations. Logic functions. The module is the basic Verilog building block.



  7. Verilog: Continuous Assignment

    Introduces the concept of continuous assignment using the assign statement. The video describes how this is effectively just connections

  8. Intro to Verilog

    Hardware Description Languages. • Verilog. -- structural: modules, instances. -- dataflow: continuous assignment. -- sequential behavior: always blocks.

  9. Operators In Systemverilog

    This allows efficient code generation. Verilog does not have assignment operators or increment and decrement operators. SystemVerilog includes the C assignment

  10. EE371 Verilog Tutorial

    assign O = AB | CD;. assign F = ~O;. In this module body, there are four continuous assignment statements. These statements are independent and executed