VLSI Verilog HDL
VLSI Verilog HDL
Programming language
Hardware Description Language
Understand the Behavior of Hardware
Its syntax are similar to C language
Easy to Learn & Use
The Verilog HDL is both a behavioral and structural language
Verilog is case sensitive language
Design Block
Design Methodologies:
Inputs Design
Block
In Top Down design methodology, we define the top level block and identify the sub-blocks
necessary to build the top level block. We further divide the sub-block until we come to the leaf
cells, which are the cells which cannot be divided.
In a Bottom Up design methodology, we first identify the building blocks, we build bigger
blocks using these building blocks. These cells are then used for high level block until we
build the top level block in the design.
The gate level approach is very well for small scale logic.
With the increasing level of structure its difficult to model any design in terms of gates.
So therefore we move to data flow level.
With the help of Synthesis Tool we can convert data level code to Gate level code.
All the Boolean function can be implemented using data flow level.
Any data flow level can be expressed using continuous assignment.
Expressions, operators, operands.
Continuous Assignment
Expression, Operators, Operands
Behavioral level Abstraction
Modeling a circuit with logic gates and continuous assignments is quite complex.
Behavioral level is the higher level of abstraction in which models can be defined as its
functional behavioral.
Thus Behavioral procedural constructs are well suited to tackling problems such as
describing a microprocessor or implementing complex timing checks.
Verilog behavioral models contain structural procedural statements that control the
simulation and manipulate variables of the data types previously described.
These statements are contained within procedures.
Behavioral level Example
Tasks and Functions
Tasks and Functions provide the ability to execute common procedures from
several different places in a description.
They also provide a means of breaking up large procedures into smaller ones to
make it easier to read and debug the source description.
Input, output, and in out argument values can be passes into and out of both tasks
and functions.
The next section discuss the example of task.
Example of Task
Function Example
Calling a Task & Function
Real numbers in port connections
The real data type cannot be directly connected to a port, but rather must be connected
indirectly.
The system functions $realtobits and $bitstoreal are used for passing the bit patterns
across module ports.