Intro To VHDL
Intro To VHDL
The most popular examples of VHDL are Odd Parity Generator, Pulse
Generator, Priority Encoder, Behavioral Model for 16 words, 8bit RAM,
etc.
What is Verilog?
Verilog is also a HDL (Hardware Description Languages) for
describing electronic circuits and systems. It is used in both hardware
simulation and synthesis.
It allows the user to define data types. It does not allow the user to define
data types.
It supports the Multi-Dimensional It does not support the Multi-
array. Dimensional array.
It allows concurrent procedure calls. It does not allow concurrent calls.
A mod operator is present. A mod operator is not present.
Unary reduction operator is not Unary reduction operator is present.
present.
It is more difficult to learn. It is easy to learn.
A hardware description language allows a digital system to be designed and debugged at
a higher level of abstraction than schematic capture with gates, flip-flops, and standard
MSI building blocks. The details of the gates and flip-flops do not need to be handled
during early phases of design.
Next, a designer moves into specific realizations of the design. A design can be implemented
in several different target technologies (next slide). It could be a completely custom IC or it
could be implemented in a standard part that is easily available from a vendor.
At the lowest level of sophistication and density is an old-fashioned printed circuit board
with off-the-shelf gates, flip-flops, and other standard logic building blocks. Slightly higher in
density are programmable logic arrays (PLAs), programmable array logic (PAL), and simple
programmable logic devices (SPLDs).
PLDs with higher density and gate count are called complex programmable logic devices
(CPLDs). Then there are the popular field programmable gate arrays (FPGAs) and mask
programmable gate arrays (MPGAs), or simply gate arrays. The highest level of density and
performance is a fully custom application-specific integrated circuit (ASIC).
Two most common target technologies nowadays are FPGAs and ASICs. The initial steps in the
design flow are largely the same for either realization. Toward the final stages in the design
flow, different operations are performed depending on the target technology. This is indicated
in Figure 2-1. The design is mapped into specific target technology and placed into specific
parts in the target ASIC or FPGA. The paths taken by the connections between components
are decided during the routing. If an ASIC is being designed, the routed design is used to
generate a photomask that will be used in the IC manufacturing process. If a design is to be
implemented in an FPGA, the design is translated to a format specifying what is to be done to
various programmable points in the FPGA.
An FPGA is a device that contains a matrix of re-configurable gate array logic circuitry. When
a FPGA is configured (say, by VHDL), the internal circuitry is connected in a way that creates
a hardware implementation of the software application.
Basics of VHDL
Source: https://www.tutorialspoint.com/vlsi_design/vlsi_design_vhdl_introduction.htm
Video: https://www.youtube.com/watch?v=BDq8-QDXmek
VHDL Data type
Data types used are namely, STD_LOGIC and BIT, as well as their vector forms:
STD_LOGIC_VECTOR and BIT_VECTOR.
BIT
The BIT data type can only have the value 0 or 1. When assigning a value of 0 or 1
to a BIT in VHDL code, the 0 or 1 must be enclosed in single quotes: '0' or '1’.
BIT_VECTOR
The BIT_VECTOR data type is the vector version of the BIT type consisting of two or
more bits. Each bit in a BIT_VECTOR can only have the value 0 or 1.
When assigning a value to a BIT_VECTOR, the value must be enclosed in double
quotes, e.g. "1011" and the number of bits in the value must match the size of the
BIT_VECTOR.
VHDL Data type
STD_LOGIC
The STD_LOGIC data type can have the value X, 0, 1 or Z. There are other values that this data
type can have, but the other values are not synthesizable – i.e. they can not be used in VHDL
code that will be implemented on a CPLD or FPGA.
These values have the following meanings:
•X – unknown
•0 – logic 0
•1 – logic 1
•Z – high impedance (open circuit) / tristate buffer
When assigning a value to a STD_LOGIC data type, the value must be enclosed in single quotes:
'X', '0', '1' or 'Z’.
STD_LOGIC_VECTOR
The vector version of the STD_LOGIC data type. Each bit in the set of bits that make up the vector
can have the value X, 0, 1 or Z.
When assigning a value to a STD_LOGIC_VECTOR type, the value must be enclosed in double
quotes, e.g. "1010", "ZZZZ" or "ZZ001". The number of bits in the value must match the size of the
STD_LOGIC_VECTOR.
Waveforms
Many other examples need to know……….