Professional Documents
Culture Documents
Vlsi Design 21
Vlsi Design 21
VLSI DESIGN
AMANUEL ABREHA
1
05/02/2024 ECEg4191 VLSI DESIGN
VLSI and Its Trends
VLSI:
very large scale integration
lots of(more numbers of ) transistors integrated on a single
chip
Moore’s Law
In 1965, Gordon Moore predicted that transistors would
continue to shrink, allowing:
• Doubled transistor density every 18-24 months
• Doubled performance every 18-24 months
History has proven Moore right
But, is the end is in sight?
• Physical limitations
• Economic limitations
05/02/2024 ECEg4191 VLSI DESIGN 2
IC Evolution
SSI (Small-Scale Integration)-(1962)
Tens of Transistors[contained 1 –10 logic gates]
NAND, NOR
MSI (Medium-Scale Integration)-(late 1960)
Hundreds of Transistors()
Counters
LSI (Large-Scale Integration)-(mid 1970)
Tens of Thousands of Transistors
First Microprocessor ()
VLSI (Very Large-Scale Integration)-(1980)
started Hundreds of Thousands of Transistors-several billion transistors in 2009
()
64 bit Microprocessor with cache memory and floating-point arithmetic units
ULSI (Ultra Large-Scale Integration)-(late 1980)
More than about one million circuit elements on a single chip. ()
The Intel 486 and Pentium microprocessors, use ULSI technology
Giga-Scale Integration (2005)-[]
05/02/2024
Tera-Scale Integration (2020)-[]
ECEg4191 VLSI DESIGN 3
IC technologies
Bipolar
More accuracy
MOS
Gate-Aluminium
Low power consumption
Low cost
CMOS
Gate-Poly-Silicon
Low power consumption
Low cost
BiCMOS
The aim is to combine the low-power, high-input impedance and
wide noise margins of CMOS with the high current-driving
capability of bipolar transistors
05/02/2024 ECEg4191 VLSI DESIGN 4
IC technologies
Design Flow in Modern Digital System Design
Semi-Custom Full-Custom
Pre-diffused Pre-wired
Standard cell Macro cell
Gate array Field programmable array
The gate terminal of the MOSFET is used as the controlling node, and
thus it is usually the input terminal of the logic gate.
Figure below shows the circuit diagram of a static CMOS inverter
• That is
All standard Boolean logic functions (INV, NAND, OR, etc.) can be
produced in CMOS push-pull circuits.
Rules for constructing logic gates using CMOSuse a
complementary nMOS/pMOS pair for each input
connect the output to VDD through pMOS txs
connect the output to ground through nMOS txs
ensure the output is always either high or low
CMOS produces “inverting” logic
CMOS gates are based on the inverter
outputs are always inverted logic functions
e.g., NOR, NAND rather than OR, AND
Examples of PDNs
• Examples of PUNs
• Using a hardware solution for your digital system design is always faster than a software
solution.
05/02/2024 ECEg4191 VLSI DESIGN 55
Digital systems
As we can see from the above figure, The major digital system
categories include
Standard logic,
Application-specific integrated circuits (ASICs) and
Microprocessor/digital signal processing (DSP) devices.
Simple PLDs
Programmable logic array (PLA)
Used to implement circuits in SOP form
The connection in the AND plane are programmable
The connection in the OR plane are programmable
05/02/2024 64
ECEg4191 VLSI DESIGN
Programmable ASICs
05/02/2024 65
ECEg4191 VLSI DESIGN
Programmable ASICs
gate level version of PLA
• Any ? is welcomed
Entity :-
Name plate of the design
Define input and output ports
Specifies what types of ports they will be
An entity can have more than one architecture
Different data modes that will be specified in the entity are
BIT data type
Boolean data type
STD_LOGIC data type
entity NAME_OF_ENTITY is
port (signal_names: mode type;
signal_names: mode type;
:
signal_names: mode type);
end [NAME_OF_ENTITY] ;
Architecture:-it specifies
How my circuit is going to behave
What my circuit is going to do
Library ieee;
use ieee.std_logic_1164.all;
entity and1 is
port(x, y:in bit ; z:out bit);
end and1;
architecture simu of and1 is
begin
z<=x and y;
end simu;
05/02/2024 ECEg4191 VLSI DESIGN 108
VHDL Programming Combinational Circuits
Library ieee;
use ieee.std_logic_1164.all;
entity half_adder is
port(a,b:in bit;
sum,carry:out bit);
end half_adder;
Library ieee;
use ieee.std_logic_1164.all;
Library ieee;
use ieee.std_logic_1164.all;
entity mux is
port(S1,S0,D0,D1,D2,D3:in bit; Y:out bit);
end mux;
library ieee;
use ieee.std_logic_1164.all;
entity enc is
port(i0,i1,i2,i3,i4,i5,i6,i7:in bit; o0,o1,o2: out
bit);
end enc;
Exercise
• Write A VHDL code for
4-bit parity checker
• Write A VHDL code for
4- bit parity generator
• Write a VHDL code Two
bit subtractor
• Write VHDL code Jk flip-
flop
05/02/2024 ECEg4191 VLSI DESIGN 113
VHDL Programming for Sequential Circuits
library ieee;
use ieee.std_logic_1164.all;
entity srl is
port(r,s:in bit; q,qbar:buffer bit);
end srl;
library ieee;
use ieee.std_logic_1164.all;
entity srflip is
port(r,s,clk:in bit; q,qbar:buffer bit);
end srflip;
Example:
constant s0: std_logic_vector(1 downto 0):= “01”;
constant YES : BOOLEAN := TRUE ;
constant CHAR7 : BIT_VECTOR (4 downto0) := “00111” ;
constant MSB : INTEGER := 5 ;
CONSTANT PI: Real: = 3.14;
Constant Speed: integer;
Notes:
1. Use a set of single apostrophes to enclose a single bit (e.g. „1‟).
2. Use a set of quotations to enclose multiple bits (e.g. “01”)
Step A B C
0 0 0 0
1 0 0 0
2 0 0 0 1
3 0 0 0 1 2
4 0 0 0 1 2
5 0 0 0 1 2 2
6,7,8 0 0 0 1 2 2 3
Time stack
4 f=0
b=1 4 g=0
5
g 6 f=1 g
0 4 8
Time, t 7
8 g=1
05/02/2024 ECEg4191 VLSI DESIGN 150
Efficiency of Event-Driven Simulator
In VLSI design once you design a circuit in different levels such as
Behavioral level,
RTL(functional )netlist level,
gate level netlist
switch(transistor)level
finally you have a finished product in the form of a chip or ASIC.
So the natural question that can be raised here is, the proper
functionality of the chip to its intended specifications .
The goal of testing is to do this verification process of the chip to
it intended specification.
Testing Verification
During the IC fabrication, the MOS devices could be fabricated incorrectly, or the
interconnect wires could have open-circuit or short-circuit fault. All these defects lead to
malfunctioning of the IC.
Fault model can be done at different levels of abstraction with respect to the circuit
description
There are many fault models. A list of fault models is shown in Table below
Permanent faults: changes the functional behavior of the chip in a time independent
(permanent ) way
Design error
Incorrect connection etc.
Easier to detect
Non- permanent faults: occurs randomly and at unpredictable times for
unpredictable time durations
Difficult to detect
The fault may not show up during testing
Online testing is a popular method
Transient faults are caused due to environmental conditions
Charged particles ,Variation in pressure ,Vibrant, temperature etc.
Example bit changed in RAMs caused by (called soft error; no permanent damage)
Intermittent fault are caused by non environmental conditions and behave like
permanent faults during the duration of the failure
Loose connection critical timing, change in parameter values etc.
May require repeated testing for detection
The circuits has 12 lines which are sites of faults and 24 stuck at faults
Observation:
Testing is loosing relevance in sub-micron CMOS technology, as the
transistor leakage currents become comparable with current.
• Note: the
non-red colour check points are collapsed by
equivalence and dominance faults
05/02/2024 ECEg4191 VLSI DESIGN 194
Fault simulation
Fault simulation is simulating of a digital circuit in the presence of faults
Its main goal is:
Measuring the effectiveness of the test pattern
Generating fault dictionaries
Guiding the test pattern generator program
Its output is:
Fault coverage (i.e. fault detected by test vectors)
Set of undetected fault
Note: fault simulator affects the speed of the overall fault simulation.
05/02/2024 ECEg4191 VLSI DESIGN 195
Fault simulation
Given
Circuit, fault model, test set
Determine
Output response of the faulty circuits
Detects faults, undetected faults- fault coverage
Solution :
010 and 001 detects f
100 detects g
Where:
La and Lb indicates
the error produced
in line a and b
respectively.
C1 and C0 indicates
an internal faults
producing incorrect
output