Professional Documents
Culture Documents
INTRODUCTION TO
VLSI CIRCUIT DESIGN
ASSISTANT PROFESSOR
FACULTY OF ENGINEERING
AIUB
REFERENCES:
1. Neil H.E. Weste and Kamran Eshraghian, Principles of CMOS VLSI Design - A
Systems Perspective, 2nd Edtion.
5. Bogdan Wilamowski, University of Wyoming WY, USA and Auburn University, AL,
USA.
Boolean Logic
Logic Minimization
Relevant Courses
Sequential Logic Design: Registers, Register Files, Counters, Shift Registers, Finite State
Machines (FSM) etc.
Memory Design: RAM (SRAM, DRAM), ROM (PROM. EPROM, EEPROM, Flash) etc.
Electronic Design Automation (EDA), Computer Aided Design (CAD), Computer Aided
Engineering (CAE) tools
Relevant Courses
High-Level or Behavioral Synthesis/Architecture Description Language (ADL/)System-
on-Chip (SOC) Design/Analog and Mixed-Signal (Digital + Analog) Design ( System-
Level (typically discussed in graduate program (MS/PhD)
Microprocessor (System-Level)
In the Middle—VLSI
Speed (Delay)
Power Consumption
Cost
Reliability
Relevant Course
Levels of Abstraction:
HARDWARE + SOFTWARE
ELECTRONIC SYSTEM LEVEL (ESL)/ HARDWARE-SOFTWARE CO-DESIGN,
SYSTEM-ON-CHIP (SOC)
System Hardware
Behavior
Algorithm
Architecture
Register Transfer Level (RTL) HDL Languages (i.e. VHDL, Verilog HDL)
(Previously ABEL)
Structural Level
Gate Level HDL Languages (i.e. VHDL, Verilog HDL)
Switch Level HDL Language (Verilog HDL)
HARDWARE
System
Behavior
Algorithm
Architecture
Register Transfer Level (RTL) HDL Languages (i.e. VHDL, Verilog HDL)
Structural Level
Gate Level HDL Languages (i.e. VHDL, Verilog HDL)
Switch Level HDL Language (Verilog HDL)
System
Behavior
Algorithm
Architecture
Register Transfer Level (RTL) HDL Languages (i.e. VHDL, Verilog HDL)
Gate Level HDL Languages (i.e. VHDL, Verilog HDL)
Circuit Level SPICE, Verilog-AMS, VHDL-AMS, Verilog-A
Mask Level /Device Level
Silicon
Logic Design
Circuit Design
Silicon
Logic Design
Silicon
System Level:
A
Mux Y
Sel
Behavioral Level:
Architecture Level:
A
Register Y
Mux
B Register
Register
Sel
OR
A
Mux Y
Sel
OR
Enable
A
Mux Y
Sel
A
Mux Y
Sel
Sel A B Y
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 1 0 1
1 0 1 0
1 1 1 1
Y = Sel . B. (A + A) + Sel . A . (B + B)
Y = Sel . B + Sel . A
Y = Sel . B. (A + A) + Sel . A . (B + B)
Y = Sel . B + Sel . A
Y = Sel . B + Sel . A
Gate-level Physical Design can be generated by Place and Route (PAR) tools
OR
These design steps are common for both Full-Custom and Semi-Custom Chips
-whether you go for In-System Configuration/Programming (FPLD) or Fabrication
(ASIC or Full-Custom Chips)
Option A.
Place and Route/Fit Gate-Level Description to Layout of Target FPLD Chip (Automatic)
-Automatic Place-and-Route
Verify Fitted/Placed-and-Routed Layout -Post-Fit Simulation/
Post-Route Simulation
Program an FPLD (CPLD/FPGA) (Automatic)-
Programming/Configuration/Download
Verify Functionality of Implemented Design through Oscilloscope/Logic Analyzer
Option B.
Option C.
Top-Down design takes away from Logic (Gate) and Circuit (Transistor) to abstract
behavior, macro architecture and abstract programming (HDL)
Sel Bar
EDA Tools:
EDA tools are specific Computer Aided Design (CAD) and Computer Aided Engineering
(CAE) tools that are used to verify and implement digital circuits originally defined
through an HDL.
Key Processes:
Synthesis:
An automated process that takes in a Register Transfer (RT) level textual design
description described at a Hardware Description Language (HDL) or a structural or
algorithmic graphical design description described through a gate-level schematic,
Intellectual Property (IP) or a State Chart/Algorithmic State Machine (ASM) chart, 1.
translates it to an RT Level HDL code, if necessary, 2. optimizes it at RT Level, 3.
converts it to a generic Structural Gate-Level description, 4. optimizes it at Gate-Level
for Speed or Area or other design constraints and 5. then finally customizes the Gate-
Level description for a specific target technology (FPLD/ASIC) by using technology
cells available in that target technology.
1. RTL Synthesis:
An automated process that takes in a Register Transfer (RT) level textual design
description described at a Hardware Description Language (HDL) or a structural or
algorithmic graphical design description described through a gate-level schematic,
Intellectual Property (IP) or a State Chart/Algorithmic State Machine (ASM) chart, 1.
translates it to an RT Level HDL code, if necessary, (Translation) and 2. optimizes it at
RT Level (Optimization).
2. Logic Synthesis:
An automated process that converts the optimized Register Transfer (RT) level HDL
description to a generic Structural Gate-Level description (Translation) and optimizes it
at Gate-Level for Speed or Area or other design constraints (Optimization) and then
finally customizes the Gate-Level description for a specific target technology
(FPLD/ASIC) by using technology cells available in that target technology (Map).
3. Design for Test (DFT) Insertion and Automatic Test Pattern Generation (ATPG)
4. Clock-Tree Insertion
5. Cell Routing
Functional/Behavioral/RTL Simulation:
This process verifies the HDL code. It checks the functionality of the design including
logical and syntactical correctness. It contains no information about Inertial or
Propagation Delay (including Clock-to-Q Delay).
This is an ideal simulation; without any type of delay—“Inertial” Delay (initial delay at
power up), Propagation Delay (for combinational logic) or Clock-to-Q Delay (T clk-to-Q)
(for sequential logic)—and the influence of global Set-Reset signals.
The default Propagation Delay is Delta_Delay, which is typically defined as 0 ps, which
can be considered as zero delay.
Since it has no synthesis information, it does not check whether the HDL code can be
synthesized or not. In other words, non-synthesizable code (i.e. using /, abs, mod, rem, **
operators, using Real data types (floating point)) can be verified through Functional
Simulation but will fail in Synthesis.
Post-Synthesis/Logic Simulation:
This process verifies the synthesized gate-level circuit. It checks the functionality of the
synthesized design. Generally it contains no information about Inertial or Propagation
Delay (including Clock-to-Q Delay) (since it is done before Automatic Place-and-Route).
Some tools might incorporate approximate estimates of such delays at this simulation. It
is however sensitive to the effect of global Set-Reset signal (i.e. PRLD/GSR for Xilinx
FPLDs).
Since it is done after synthesis, it does check whether the HDL code can be synthesized
or not. In other words, non-synthesizable code (i.e. using /, abs, mod, rem, ** operators,
using Real data types (floating point)) cannot be verified through Post-Synthesis
Simulation, even though it might have been passed earlier by Functional Simulation.
Layout Simulation:
Power Estimation:
Formal Verification:
Digital Hardware
Microprocessors Microcontrollers
(MPU) (MCU)
28
Digital Hardware
Application Specific
Integrated Circuits Programmable Logic
(ASICs)
Standard Cell-based Mask Structured Programmable Programmable Complex Field Programmable Platform
Integrated Circuits Programmable Gate ASICs/ Array Logic Logic Array Programmable Gate Arrays FPGAs
(CBIC) Arrays (MPGAs) Platform ASICs (PAL) (PLA) Logic Devices (FPGAs)
(CPLDs)
General Purpose (Un-Customized) device:
General-Purpose devices are not meant for any specific application. They are meant for
many tasks, not for a single, specific task. Their hardware architecture or functionality is
not customized for any specific application/task. They are designed by manufacturer, but
in some cases, their functionality can be customized by the designer (i.e.
Microprocessor). They are generally available in the market.
Special Purpose devices are meant for a specific application. They are typically meant for
a single task, not for many tasks. Their functionality and design architecture are defined
by the designer himself/herself. Chip Architecture remains fixed and defined by
manufacturer, though. They are generally not available in the market in the complete
functional form.
ASICs are not completely pre-fabricated and require a final fabrication. So, designer
needs to design and provide a mask-level layout that can be understood by fabrication
tools. ASIC is an array transistors, user-defined cells and vendor-defined cells.
MPGA type ASIC is an array of transistors, flip-flops, user-defined cells and pre-defined
vendor-defined basic cells. These cells are mostly 4-transistor cells, which can be easily
connected to form NAND and NOR gates or D Flip-flops (D flip-flops generally needs 6
transistors).Designer can define both cells (for design) and interconnections.
CBIC type ASIC is an empty ASIC chip where the definer can “fill” with vendor-defined
basic cells (transistors, gates, flip-flops) or vendor-defined cells/macros/IP. These cells
are pre-designed and pre-simulated and validated and also layout-ready. So after place-
and-route, CBICs become array of pre-defined vendor-defined cells. Designer can only
define interconnections between cells.
CPLD type FPLD is an array of gates, flip-flops, user-defined cells and pre-defined
vendor-defined cells. In a macro-level, CPLD hardware architecture is an array of PALs-
Programmable Array Logic, that has a programmable AND network, a fixed OR gate and
some flip-flops. Each PAL is an array of gates, flip-flops, predefined vendor-defined cells
and can also have user-defined cells. Designer can define both cells and interconnections.
Typically, Full-custom devices have the highest speed (smallest delay) and density
(largest no. of gates/flops) and least power consumption among all types of digital
implementation technologies. Their cost-both NRE (no-Recurring Engineering) cost and
per-unit cost-are the highest. Wafers are not pre-fabricated. No mask-level layers are
defined. No cells or layers are pre-fabricated. Everything is made from ground up. They
are used only in high-end applications (i.e. for highly sensitive and super-fast components
in Defence, Aerospace, Spacecrafts etc.). But they cannot be modified/upgraded after
fabrication (design and chip architecture (hardware) and design functionality are fixed).
Due to their cost, large volume production is not economically viable/feasible. Feasible
for very small-volume production.
ASICs have lower speed, density and cost and higher power consumption as compared to
Full Custom devices. But between ASICs and FPLDs, ASICs typically have higher speed
and density and lower power consumption. But they cannot be modified/upgraded after
fabrication (design and chip architecture (hardware) and design functionality are fixed
after fabrication). As compared to FPLDs, their NRE cost is higher, but per-unit cost is
lower. The long-term cost is low primarily because they are partially manufactured as the
wafer is already pre-fabricated, some cells are already available in the library and
typically only metallization layer/mask (in some cases, a few other masks)—for
interconnection—is customized, other layers are typically predefined. Feasible for large
volume production.
On the other hand, FPLDs typically have relatively lower speed and density and higher
power consumption, as compared to ASICs. However, they can be modified/upgraded
after programming (design architecture (and thereby, design functionality, in certain
cases) is programmable, even though chip architecture is fixed). FPLDs can be
reprogrammed with a modified or upgraded design in the field either locally or remotely
through Internet. Because of their reprogrammability, FPLDs provide the fastest design
prototyping (rapid prototyping), fastest production (low-volume) and marketing (since
they have faster time-to-market) and the maximum flexibility to design changes and
upgrades (since they can be reprogrammed). They can be used for ASIC prototyping,
before ASIC fabrication (since prototyping is rapid in FPLDs as compared to ASICs). As
compared to ASICs, their NRE cost is lower, but per-unit cost is higher. Feasible for
small to medium volume production.
For a given application, Microprocessors are typically the slowest among all digital
implementation technologies (ignoring Standard Parts), since they are not designed for a
specific application/task. But they are the most flexible, among all the technologies, since
their functionality can be easily customized by the user (Chip Functionality is
programmable--even though chip architecture is fixed) through a high-level program
(Assembly, C, C++, Java etc.). Microprocessors are fully fabricated. Their functionality
is customized by the user for a given application/task. Since they are useful in many
application/tasks, they are feasible for large volume production.
For large and complex digital systems/PCBs, typically Microprocessors are used as a
central control and computation unit. Ultra High-speed computation is handled by ASICs
and Full-Custom devices (if you can afford it!). Ultra High-speed computations whose
specification/functionality might change according to external factors, demand or with
time, and thus might need to be modified or upgraded from time to time, are handled by
FPLDs.
FPLD Fixed Manufacturer Programmable Designer No Generic Functionality Manufacturer Fixed for a given Designer
(CPLD/FPGA) version
Has to be customized for (can be
a specific modified/upgraded in a
task/application. new
(undefined before first download/programming)
Programming/Download)
Microprocessor Fixed Manufacturer -- -- Programmable Designer -- --
But
No Generic Functionality
Has to be customized for
a specific
task/application.
(undefined before first
Programming)
Note that a Microprocessor implemented in an FPLD has the best of both worlds-
Programmable Design Architecture (since FPLD) and Programmable Design
Functionality (since Microprocessor).
For Multiple-Chip system, based on Standard Parts (Discrete Gates (i.e., AND, OR, NOT
etc.) and Standard ICs (Flip-flops, Registers, Synchronous Counters, Timers, Muxes,
Demuxes etc.)), the following table is applicable.
System/Design Architecture Individual Chip Architecture System/Design Functionality Individual Chip Functionality
Technology
Type
Fixed or Defined by Fixed or Defined by Fixed or Programmable Defined by Fixed or Defined by
Programmable Programmable after Implementation Programmable after
after after Implementation
Implementation Implementation
Multiple Chip Manually Defined by Fixed Manufacturer Manually Changeable Defined by Fixed Manufacturer
System based Changeable Designer. Designer.
on Standard
Parts
1. FULL-CUSTOM CHIPS:
2. SEMI-CUSTOM CHIPS
A. ASICS:
1. MPGA:
2. STANDARD CELL-BASED INTEGRATED CIRCUITS (CBIC):
MACROCELL
PRIMITIVE CELLS
(BASIC CELLS)
(I.E. NAND, NOR ETC.)
FULL-CUSTOM VS. SEMI-CUSTOM ASICS:
B. FPLDS
1. CPLDS
2. FPGAS:
Typical Top-Down Design Flow for Semi-Custom Chips (ASICs/FPLDs) using EDA tools:
LEVEL 3
Marketing Requirement
(Product Requirement)
Design Specifications
Board or SOC constraints/requirements
System
Behavior
(what does the digital circuit do (add, subtract,
multiply? etc.))
Algorithm
(State Chart, ASM Chart etc.)
Architecture
(if it is adder Ripple-carry Adder architecture or
Carry Look Ahead architecture?)
Architecture
(if it is adder Ripple-carry Adder architecture or
Carry Look Ahead architecture?)
Synthesis
IO constraints
(Location)
.NGD (FOR XILINX (XST)) OR Logic Simulation/
Post-Synthesis
.XNF (FOR XILINX BY THIRD-PARTY)
Technology Cells Simulation
of OR
Target Technology EDIF (.EDN/.EDF) (FOR THIRD PARTY)
For ASIC Implementation
Test Vectors or
Stimulus Post-Route/Post-Place-
and-Route/Post-
(Testbench Fit/Timing Simulation
Cell Placement Automatic (VHDL Testbench
IO Constraints Place-and-Route/Fitting or Verilog Text
(IO standards,
Fixture)) Static Timing Analysis
IO drive
(STA)
strength etc.)
.NCD (FOR XILINX)
Power Estimation
Design for Test (DFT)
Insertion (i.e. Scan-chain,
JTAG, BIST) and
Automatic Test Pattern Fault
Generation (ATPG) Simulation Standard Delay File
(SDF)
Power Estimation
Forma Verification
(Layout vs. Schematic
(LVS))
Layout Parameter
Extraction (LPE)
For ASIC implementation For FPLD Implementation
TAPEOUT OR
GDS II/CIF .JED (FOR CPLD)
Prototype Fabrication
GDS II/CIF
$$$$$ $$$$$
Typical Top-Down Design Flow for Semi-Custom Chips (ASICs/FPLDs) using EDA tools:
LEVEL 2 Design Specifications
System
(Graphical Description)
Algorithm
and/or
IP Design Descriptions
(Structural Description)
Architecture
.SCH OR EDIF (i.e. .EDF/.EDN)
Post-Route
Simulation/
Test Vectors or Test Vectors or Post-Place-and-
Layout Simulation Stimulus Stimulus Route/ Simulation/
Post-Fit Simulation/
(Testbench) Clock-Tree (Testbench) Timing Simulation
(VHDL Testbench Insertion (VHDL Testbench
or Verilog Text or Verilog Text
Static Timing Analysis Fixture)) Fixture))
(STA)
.VHD/.TF .VHD/.TF Static Timing
Analysis (STA)
Power Estimation
Placed-and-Routed/ Cell Routing Automatic Placed-and-Routed/
Fitted Place-and-Route Fitted
Gate-Level HDL (PAR)/ Gate-Level HDL
Model/Netlist Fitting Model/Netlist Power Estimation
Design Rule Check
(DRC) GDS II/ CIF .NCD (FOR XILINX)
.VHD (FOR VHDL)/ .VHD (FOR VHDL)/
.V (FOR VERILOG HDL) .V (FOR VERILOG HDL)
Formal Verification
(Layout vs. Schematic) Mask Layout TAPEOUT Standard Delay File
(LVS) Model/Netlist (SDF)
.MSK
.SDF
Standard Delay File
(SDF)
ASIC Prototype Testing ASIC Prototype FPLD Prototype FPLD Prototype Testing
and online debugging and online debugging
Select
Implementation Style/Technology,
Target Technology,Package,
Vendor, Third-party
System
Behavior
Algorithm
Architecture
Generated RT Level
Design Description
(Textual Description)
HDL code
(VHDL or Verilog HDL) RT Level Test Vectors or
Design Entry Stimulus Functional Simulation/
from RT Level Simulation/
(Textual Description) (Testbench /Behavioral Simulation
Graphical Design Entry/ (VHDL Testbench
IP/EDIF design description HDL code or Verilog Text
(.SCH/EDIF (i.e. .EDF/.EDN)) Fixture))
(VHDL or Verilog HDL) .VHD/.VHT/.VHO (VHDL TESTBENCH)
OR .TF (VERILOG HDL TESTBENCH)
.VHD (VHDL) OR .V (VERILOG HDL)
Design Constraints (Speed, Area
etc.)
Clock-Tree
Insertion
Formal Verification
Device Programming/
(Layout vs. Schematic)
Prototype Fabrication Device Configuration/
(LVS)
In-System Programming/
Download
For Prototype
$$$$$ $$$$$
Files Generated by EDA Tools in Top-Down Design Flow