Module 1
Module 1
Introduction to ASIC’s
TEXT 1:
APPLICATION SPECIFIC INTEGRATED CIRCUITS
-MICHAEL JOHN
& SEBASTIAN SMITH
Introduction:
• A Full custom ASIC is one which includes some (possibly all) logic cells
that are customized and all mask layers that are customized.
• A microprocessor is an example of a full-custom IC . Designers spend
many hours squeezing the most out of every last square micron of
microprocessor chip space by hand.
• Customizing all of the IC features in this way allows designers to include
analog circuits, optimized memory cells, or mechanical structures on an
IC, for example.
Note:Full-custom ICs are the most expensive to manufacture and to
design.
•The manufacturing lead time (the time required just to make an IC not
including design time) is typically eight weeks for a full-custom IC.
• These specialized full-custom ICs are often intended for a specific
application so, we might call some of them as full-custom ASICs.
• In a full-custom ASIC an engineer designs some or all of the logic cells,
circuits, or layout specifically for one ASIC. This means the designer avoids
using pretested and pre-characterized cells for all or part of that design.
•This might be because existing cell libraries are not fast enough, or the
logic cells are not small enough or consume too much power.
When do we go for full custom ASIC IC
design:
One has to use full-custom design if the ASIC technology is new or so
specialized that there are no existing cell libraries or because the
ASIC is so specialized that some circuits must be custom designed.
• Fewer and fewer full-custom ICs are being designed because of the
problems with these special parts of the ASIC.
• The growing member of this family, now a days is , the mixed
analog/digital ASIC.
Semicustom ASICs :
• ASICs , for which all of the logic cells are predesigned and some
(possibly all) of the mask layers are customized are called semi
custom ASICs.
• Using the predesigned cells from a cell library makes the design ,
much easier.
• There are two types of semicustom ASICs.
(i) Standard-cell–based ASICs
(ii)Gate-array– based ASICs.
Standard-Cell Based ASICs:
•A cell-based ASIC (cell-based IC, or CBIC pronounced sea-bick) uses
predesigned logic cells (AND gates, OR gates, multiplexers, and flip-flops,
for example) known as standard cells.
• One can apply the term CBIC to any IC that uses cells, but it is generally
accepted that a cell-based ASIC or CBIC means a standard cell based ASIC.
• The standard-cell areas (also called flexible blocks) in a CBIC are built of
rows of standard cells like a wall built of bricks. The standard cell areas
may be used in combination with microcontrollers or even
microprocessors, known as mega cells. Mega cells are also called mega
functions, full-custom blocks, system-level macros (SLMs), fixed blocks,
cores, or Functional Standard Blocks (FSBs).
Standard-Cell Based ASICs:
A cell-based ASIC (CBIC) die with a single standard-cell area (a flexible block) together with four fixed
blocks.
• The ASIC designer defines only the placement of the standard cells and
the interconnect in a CBIC area. However, the standard cells can be placed
anywhere on the silicon; this means that all the mask layers of a CBIC are
customized and are unique to a particular customer.
• The advantage of CBICs is that designers save time, money, and reduce
risk by using a predesigned, pretested, and pre characterized standard-cell
library.
• In addition each standard cell can be optimized individually. During the
design of the cell library each and every transistor in every standard cell
can be chosen to maximize speed or minimize area .
DISADVANTAGE:
• The disadvantages are the time or expense of designing or buying
the standard-cell library and the time needed to fabricate all layers
of the ASIC for each new design.
Layout of an standard cell:
Routing in CBIC:
Gate-Array Based ASICs:
• In a gate array (sometimes abbreviated GA) or gate-array based ASIC the transistors
are predefined on the silicon wafer.
• The predefined pattern of transistors on a gate array is the base array , and the
smallest element that is replicated to make the base array is the base cell (sometimes
called a primitive cell ).
• Only the top few layers of metal, which define the interconnect between transistors,
are defined by the designer using custom masks. To distinguish this type of gate array
from other types of gate array, it is often called a masked gate array ( MGA).
• The designer chooses from a gate-array library of predesigned and pre-characterized
logic cells.
•The logic cells in a gate-array library are often called macros . The reason for this is
that the base-cell layout is the same for each logic cell, and only the interconnect
(inside cells and between cells) is customized, which is similar to a software macro.
Features of MGA:
• Only the interconnect is customized.
• The interconnect uses predefined spaces for interconnect.
• Manufacturing lead time is between two days and two weeks.
Types of MGA or Gate-array based ASICs
There are three types of Gate Array based ASICs:
• Channeled gate arrays.
• Channelless gate arrays.
• Structured gate arrays.
Channeled gate arrays:
• The channeled gate array was the first to
be developed . In a channeled gate array
space is left between the rows of
transistors for wiring.
• A channeled gate array is similar to a
CBIC. Both use the rows of cells separated
by channels used for interconnect. One
difference is that the space for interconnect
between rows of cells are fixed in height in
a channeled gate array, whereas the space
between rows of cells may be adjusted in a
CBIC.
Features of MGA:
• Only the interconnect is customized.
• The interconnect uses predefined spaces between the rows for
interconnect.
• Manufacturing lead time is between two days and two weeks.
Channel less Gate Array:
• This channel less gate-array architecture is now more widely used .
The routing on a channelless gate array uses rows of unused
transistors.
• The key difference between a channel less gate array and
channeled gate array is that there are no predefined areas set aside
for routing between cells on a channel less gate array. Instead we
route over the top of the gate-array devices. We can do this because
we customize the contact layer that defines the connections
between metal 1, the first layer of metal, and the transistors.
Features of Channel less Gate Array(Sea of
Gates)SOG:
(a)An array/vector of flip-flops. (b) A 2-input nand cell with a databus inputs. (c)2- input nand cell with control
inputs. (d)A buswide MUX. (e) An Incrementer / Decrementer. (f) An all zeros Detector. (g)An all one detector
(h)An adder /Subtractor.
A Subtractor:
•A subtractor is similar to an adder except in a full subtractor we have borrow-in BIN, Borrow
out BOUT and a difference signal DIFF.
•These equations are same as full adder except that B inputs are inverted and the sense of the
carry chain is inverted.
To build a subtractor that calculates(A - B) we invert the entire B input bus and connect the BIN[
not to VSS] Example: A=1001;B=0011; We calculate it as A+B’+1=1001+1100+1=0110. As in
adder oveflow is calculated as XOR(BOT[MSB],BOUT[MSB-1]).
• we can build ripple-borrow subtractor , a borrow-save subtractor, and a
borrow-select subtractors in the same way we built these adder
architectures.
•An Adder /Subtractor has a control signals that gates the A input with an
Exclusive –OR cell to switch between an adder or subtractor.
•Some adder /subtractor gate both inputs to allow us to compute(-A-B).
•We must be careful to connect the inputs to the LSB of the carry chain
(CIN[0] or BIN[0]) when changing between the addition and subtraction.
A barrel shifter:
•A barrel shifter shifts or rotates input bus by a
specified amount.
•A barrel shifter can shift either to right or left
•A barrel shifter can have output width that is less
than input bus width
•These shifters are extensively used in floating point
arithmetic to align floating point numbers(with sign,
exponent, and mantissa).
•A leading-one detector along with the left-barrel
shifter(normalizing) is used to align mantissa in a
floating point numbers( example 2).
Example:
1) Input A=11110000; and a shift right and by 00010000(3 encoded by bit
position) times. Output Z=00011110.
2)normalizing: A=00000101;leading one –detector output
is=00000100(fifth bit position from MSB).
If we feed the leading one-detector output to the shift select input of the
normalizing barrel shifter the shifter will normalize the input A. The
output Z=10100000 Now that Z is aligned (with 1 in MSB). It can be
multiplied by another normalized number.
•The output of a priority encoder is the binary encoded position of the
leading one in an input
Example :
if A-00000101 with the leading one at position 3 then the output of
the 4-bit priority encoder will be Z= 0011.
•Some cell libraries have reverse encoding where it yields Z=0101(5),
this kind of encoding is used in Floating point arithmetic .
•If A is mantissa and we normalize A to 10100000 we have to
subtract 5 from the exponent, this exponent correction is equal to
the output of the priority encoder
Accumulator:
•Its an Adder/ Subtractor along with a register,
•Sometimes it is combined with a multiplier to form an Multiplier-accumulator(MAC).
Incrementer:
• It adds one to the input bus Z= A+1; We can use this function together with register to
negate a two‘s complement number : Z[i]=XOR(A[i],CIN[i]); COUT[i]= AND(A[i],CIN[i]).
•The CIN[0] thus acts as a control input . If we set it to ‗0‘ then output is same as input.
•The implementation of arithmetic cells is more complicated than we have
explained CMOS logic is normally inverting, so that it is faster to implement an
incrementer as : Z[i(even)]=XOR(A[i],CIN[i]) & COUT[i(even)]=NAND(A[i], CIN[i]).
•This inverts the COUT so that in the following stages we must invert it again
•If we push the inverting bubble to the input CIN we get: Z[i(odd)]=
XNOR(A[i],CIN[i]) & COUT[i(odd)]=NOR(NOT(A[i],CIN[i]).
•In many datapath implementations all odd- bits cells operate on inverted carry
signals, and thus the ODD and EVEN bit datapath elements are different
normally this is hidden from the designed in the datapath assembly and any
output control signals are inverted, if necessary by inserting buffers.
Decrementer:
•A decrementer subtracts 1 from the input bus
•The logical implementation is: Z[i]= XOR(A[i],CIN[i]) and
COUT[i]=AND(NOT(A[i]),CIN[i]).
•The implementation may invert odd carry signals , with CIN[0] again acting as
enable signals.
•An Incrementer/Decrementer has a second control signal that gates the input,
inverting the input to the carry chain. This has the same effect of Selecting
incrementer or Decrementer function.
ALL ZERO DETECTOR and ALL ONE DETECTOR:
While using all zero and one detector we have to remember that :
• in one‘s complement arithmetic zero is represented by both 1111 and 0000.
•In signed magnitude arithmetic zero is represented by both 1000 and 0000.
A Register File( or scratchpad memory):
•The gate-oxide in CMOS is very thin(100Å or less) which leaves the gate oxide of the
I/O cells of input transistor susceptible to breakdown from Static electricity(ESD).
•ESD arises when humans or machines handle the package leads.
•Sometimes this is also called as EOS (Electrical overstress) since most ESD – related
failures occur due to thermal stress that occcurs when an n-channel transistor in an
output driver over heats(melts) due to large currents that can flow in the drain
diffusion connected to a pad during an ESD event.
Measures to overcome ESD and EOS:
•To protect the I/O cells from the ESD, the input pads are normally tied to
device structures that clamp the input voltage to below the gate-oxide
breakdown voltage.
•Some I/O cells have transistor with special ESD implant that increases the
breakdown voltage and provides protection to the transistor drivers in I/O
pads.
•I/O driver transistors can also use elongated drain structures(ladder
structure) and large drain to gate spacing to help limit the current, but
during the salicide process it lowers the drain resistance and it becomes
difficult to manage ( I/O cells can be masked during the salicide step).
• Another solution is to use pnpn or npnp diffusion structures called SCR
to clamp voltages and divert current to protect I/O circuits from ESD
Modeling an EOS for I/O cells:
•The Human body Model(HBM): it typically represents the voltage
generated by human body(2-4KV) which is represented by an ESD by
100pF capacitor trying to discharge through an1.5 KΩ resistor .
•The machine model(MM): it represents the ESD model developed by the
automated machine handlers, typical parameters use 200pF capacitor
discharging through a 25Ω resistor. Representing a peak initial current of
10 A.
•Charge-Device model(CDM): It represents the problem when the IC
package is charged , in a shipping tube for example and then grounded .If
the max charge in the package is 3nC and the package capacitance to
ground is 1.5pF,we can simulate this event by charging a 1.5pF capacitor
to 2kV and discharging it through a 1Ωresistor.
Problems of not designing I/O pad with care:
•If the diffusion structures are not designed with care, it is possible to
construct an SCR unwillingly , and instead of protecting the transistors the
SCR can enter a mode where it is latched on and conducting large enough
currents to destroy the chip.
•This mode of failure is called Latch-up .this effect is seen if the p-n
junctions on chip get forward biased and inject minority carriers into
substrate. The source –substrate and drain – substrate diodes become
forward biased due to power supply bounce or output undershoot ( when
output cell falls below VSS)or overshoot( when output rises above VDD).
•These injected minority charge carriers can travel fairly long distance and
engage other transistors causing the latch-up
Measures to overcome Latch-up:
•I/O cells surround the I/O transistors with the guard rings i.e continuous n-rings
in an n-well connected to VDD, and a ring of p-diffusion in p-well connected to
VSS, to collect this minority charge carriers.
•This problem can also occur in the core cell‘s too that‘s why we include the
substrate and well connection to the power supplies in every cell .
Cell compilers:
•The process of handcrafting the circuit layout for a full- custom IC is a tedious,
time-consuming and error-prone task.
•There are 2 types of automated layout assembly tools often known as silicon
compilers.
•The first kind produces a specific kind of circuit , A RAM compiler or Multiplier
compiler, for example .
•The second kind of compiler is more flexible, usually providing a
programming language that assembles or tiles layout from an input
command file, but this is still a full custom IC design.
•We can build a register file from a latches or flip-flops , but at 4.5-
6.5 gates /bit of data storage it becomes too expensive.
•Other option is using Dynamic RAM‘s which need only 1 transistor
to store.
RAM’s(SRAM).
•Most SRAMs in ASIC uses 6=transistor cell.(4( cross coupled inverter+2 R/W control).
•RAM compilers allow us to produce single port , dual port and Multi port RAM’s.
•In a multiport Ram the compiler may or ,may not handle the address contention.
•RAM‘s can be designed to be either synchronous or Asynchronous.
•In addition to producing the layout we also need a model compiler so that we can
verify the circuit at the behavioral level and we also need a netlist compiler to simulate
the circuit and verify that it works correctly at the structural level.
•Si compilers are a complex piece of software .We assume that a Si compiler will
produce the working Si even if every configuration is not tested, hence they are correct
by construction.