Introduction To Hardware Description Language
Introduction To Hardware Description Language
Introduction To Hardware Description Language
Classical design methods relied on schematics and manual methods to design a circuit, but
today computer-based languages are widely used to design circuits of enormous size and complexity.
There are several reasons for this shift in practice. No team of engineers can correctly design and manage,
by manual methods, the details of state-of-the-art integrated circuits (ICs) containing several million
gates, but using hardware description languages (HDLs) designers easily manage the complexity of large
designs. Even small designs rely on language-based descriptions, because designers have to quickly
produce correct designs targeted for an ever-shrinking window of opportunity in the marketplace.
Language-based designs are portable and independent of technology, allowing design teams to
modify and re-use designs to keep pace with improvements in technology. As physical dimensions of
devices shrink, denser circuits with better performance can be synthesized from an original HDL-based
model. HDLs are a convenient medium for integrating intellectual property (IP) from a variety of sources
with a proprietary design. By relying on a common design language, models can be integrated for testing
and synthesized separately or together, with a net reduction in time for the design cycle. Some simulators
also support mixed descriptions based on multiple languages.
The most significant gain that results from the use of an HDL is that a working circuit can be
synthesized automatically from a language-based description, bypassing the laborious steps that
characterize manual design methods (e.g., logic minimization with Karnaugh maps). HDL-based
synthesis is now the dominant design paradigm used by industry.
Today, designers build a software prototype/model of the design, verify its functionality, and
then use a synthesis tool to automatically optimize the circuit and create a netlist in a physical technology.
HDLs and synthesis tools focus an engineer's attention on functionality rather than on
individual transistors or gates; they synthesize a circuit that will realize the desired functionality, and
satisfy area and/or performance constraints. Moreover, alternative architectures can be generated from a
single HDL model and evaluated quickly to perform design tradeoffs. Functional models are also referred
to as behavioral models.
HDLs serve as a platform for several tools: design entry, design verification, test generation,
fault analysis and simulation, timing analysis and/or verification, synthesis, and automatic generation of
schematics. This breadth of use improves the efficiency of the design flow by eliminating translations of
design descriptions as the design moves through the tool chain.
Two languages enjoy widespread industry support: Verilog and VHDL. Both languages are
IEEE (Institute of Electrical and Electronics Engineers) standards; both are supported by synthesis tools
for ASICs (application-specific integrated circuits) and FPGAs (field-programmable gate arrays).
Languages for analog circuit design, such as Spice, play an important role in verifying critical timing
paths of a circuit, but these languages impose a prohibitive computational burden on large designs, cannot
support abstract styles of design, and become impractical when used on a large scale. Hybrid languages
(e.g., Verilog-A) are used in designing mixed-signal circuits, which have both digital and analog circuitry.
System-level design languages, such as SystemC and Superlog, are now emerging to support a higher
level of design abstraction than can be supported by Verilog or VHDL.
What is the main difference between HDL and other software languages:
The main difference with the traditional programming languages is HDLs representation of
extensive parallel operations whereas traditional ones represents mostly serial operations.
Importance of HDLs:
Designs can be described at a very abstract level by use of HDLs. Designers can write
their RTL description without choosing a specific fabrication technology. Logic synthesis
tools can automatically convert the design to any fabrication technology. If a new
technology emerges, designers do not need to redesign their circuit. They simply input
the RTL description to the logic synthesis tool and create a new gate-level netlist, using
the new fabrication technology. The logic synthesis tool will optimize the circuit in area
and timing for the new technology.
By describing designs in HDLs, functional verification of the design can be done early in
the design cycle. Since designers work at the RTL level, they can optimize and modify
the RTL description until it meets the desired functionality. Most design bugs are
eliminated at this point. This cuts down design cycle time significantly because the
probability of hitting a functional bug at a later time in the gate-level netlist or physical
layout is minimized.
The earliest digital circuits were designed with vacuum tubes and transistors. Integrated
circuits were then invented where logic gates were placed on a single chip. The first integrated
circuit (IC) chips were SSI (Small Scale Integration) chips where the gate count was very small.
As technologies became sophisticated, designers were able to place circuits with hundreds of
gates on a chip. These chips were called MSI (Medium Scale Integration) chips. With the advent
of LSI (Large Scale Integration), designers could put thousands of gates on a single chip. At this
point, design processes started getting very complicated, and designers felt the need to automate
these processes. Electronic Design Automation (EDA) techniques began to evolve. Chip
designers began to use circuit and logic simulation techniques to verify the functionality of
building blocks of the order of about 100 transistors. The circuits were still tested on the
breadboard, and the layout was done on paper or by hand on a graphic computer terminal.
With the advent of VLSI (Very Large Scale Integration) technology, designers could
design single chips with more than 100,000 transistors. Because of the complexity of these
circuits, it was not possible to verify these circuits on a breadboard. Computer-aided techniques
became critical for verification and design of VLSI digital circuits. Computer programs to do
automatic placement and routing of circuit layouts also became popular. The designers were now
building gate-level digital circuits manually on graphic terminals. They would build small
building blocks and then derive higher-level blocks from them. This process would continue
until they had built the top-level block. Logic simulators came into existence to verify the
functionality of these circuits before they were fabricated on chip.
A gate-level netlist is a description of the circuit in terms of gates and connections between them.
Logic synthesis tools convert the RTL description to a gate-level netlist.
Digital ICs of SSI and MSI types have become universally standardized and have been
accepted for use. Whenever a designer has to realize a digital function, he uses a standard set of ICs along
with a minimal set of additional discrete circuitry.
Here Qn, A, and B are Boolean variables, with Q n being the value of Q at the nth time step. Here A.B
signifies the logical AND of A and B; the + symbol signifies the logical OR of the logic variables on
either side. A circuit to realize the function is shown in Figure 1.1. The circuit can be realized in terms of
two ICs an A-O-I gate and a flip-flop. It can be directly wired up, tested, and used.
1. Decide the requirements at the system level and translate them to circuit requirements.
2. Identify the major functional blocks required like timer, DMA unit, register file etc., say as in the
design of a processor.
3. Whenever a function can be realized using a standard IC, use the same for example
programmable counter, mux, demux, etc.
4. Whenever the above is not possible, form the circuit to carry out the block functions using
standard SSI for example gates, flip-flops, etc.
5. Use additional components like transistor, diode, resistor, capacitor, etc., wherever essential.
Once the above steps are gone through, a paper design is ready. Starting with the paper design, one has to
do a circuit layout. The physical location of all the components is tentatively decided; they are interconnected and
the circuit-on paper is made ready. Once a paper design is done, a layout is carried out and a net-list prepared.
Based on this, the PCB is fabricated and populated and all the populated cards tested and debugged. The procedure
is shown as a process flowchart in Figure 1.2.
1. Functional mismatch: The realized and expected functions are different. One may have to go through the
relevant functional block carefully and locate any error logically. Finally the necessary correction has to be
carried out in hardware.
2. Timing mismatch: The problem can manifest in different forms. One possibility is due to the signal going
through different propagation delays in two paths and arriving at a point with a timing mismatch. This can
cause faulty operation. Another possibility is a race condition in a circuit involving asynchronous feedback.
This kind of problem may call for elaborate debugging. The preferred practice is to do debugging at smaller
module stages and ensuring that feedback through larger loops is avoided: It becomes essential to check for
the existence of long asynchronous loops.
3. Overload: Some signals may be overloaded to such an extent that the signal transition may be unduly
delayed or even suppressed. The problem manifests as reflections and erratic behavior in some cases (The
signal has to be suitably buffered here.). In fact, overload on a signal can lead to timing mismatches.
The above have to be carried out after completion of the prototype PCB manufacturing;
it involves cost, time, and also a redesigning process to develop a bug free design.
Simulation
A) Functional Simulation: study of circuits operation independent of timing parameters and gate delays.
B) Timing Simulation: study including estimated delays; verify setup, hold and other timing requirements
of devices like flip flops are met.
Synthesis
One of the foremost in back end steps where by synthesizing is nothing but converting VHDL
or VERILOG description to a set of primitives(equations as in CPLD) or components(as in FPGA'S)to fit
into the target technology. Basically the synthesis tools convert the design description into equations or
components