Vlsi PD 21et64d2 Unit 1
Vlsi PD 21et64d2 Unit 1
21ET64D2
By,
Delay
“Smaller is Better”
Power
Cost
Examples of ASICs
• Examples of ICs that are not ASICs include:
– Standard parts such as memory chips (ROMs, RAMs)
– TTL-equivalent ICs at different levels
▪ Achieved by:
• Using the next-generation silicon technologies
• New design concepts and tools
• High-level integration
Types of ASICs
Different types of ASICs are:
• Full-custom ASICs
• Semi-custom ASICs
• Programmable ASICs
Types of ASICs Contd...
Different types of ASICs are:
• Full-custom ASICs
• Semi-custom ASICs
– Standard-cell–based ASICs (CBIC)
– Gate-array–based ASICs
• Channeled gate arrays
• Channelless gate arrays
• Structured gate arrays
• Programmable ASICs
– Programmable Logic Devices (PLD)
– Field Programmable Gate Array (FPGA)
VLSI Design Styles
Agenda
• Introduction, Types of ASICs
• Disadvantages of:
– increased design time (time to market)
– increased complexity
– design expense (expertise required)
– higher risk
– most expensive to manufacture and to design
Full-Custom ASICs Contd...
• Full-custom ASIC design makes sense only:
– When no suitable libraries exist or
– Existing library cells are not fast enough or
– The available pre-designed/pre-tested cells consume too much
power that a design can allow or
– The available logic cells are not compact enough to fit or
– Technology is new or/and so special that no cell library exits
Semi-Custom ASICs
• In a semi-custom initially the standard logic cells are pre-
designed and some of the mask layers are customized.
• Using pre-designed cells from a cell library makes it easy for
the designers.
• Types of semi-custom ASICs are:
– Standard-cell–based ASICs
– Gate-array–based ASICs
Standard–Cell-Based ASICs Contd...
• A cell-based ASIC (CBIC) uses pre-designed logic cells
known as standard cells.
• Possibly megacells, megafunctions, full-custom blocks,
system-level macros, fixed blocks, cores…
• Each standard cell in the library is constructed using full-
custom design methods, but we can use these predesigned,
pre-characterized, and pretested circuits without having to do
any full-custom design.
• This design style gives the same performance and flexibility
advantages of a full-custom ASIC but reduces design time
and reduces risk.
Standard–Cell-Based ASICs Contd...
• Advantages of CBICs is that designers:
– save time and money
– reduce risk by using the pre-designed, pre-characterized, and
pre-tested, standard-cell library
– standard cell optimized individually for speed or area
• Disadvantages are:
– time or expense of designing or buying the standard cell library
– time needed to fabricate all layers of ASIC for each new design
Standard-Cell–Based ASICs Contd..
• Standard cells are designed to fit together like bricks in a wall as shown in
figure next.
• Power and ground buses (VDD and GND or VSS) run horizontally on metal
lines inside the cells.
Synthesis = T O M
HDL Synthesis
ASIC Design Flow
FPGA Design Flow
ASIC !!!!!!!
or
FPGA !!!!!!!
ASIC Design Advantages
Cost....cost....cost....Lower unit costs:
• Larger volumes of ASIC design prove to be cheaper than
implementing design using FPGA.
Speed...speed...speed....ASICs are faster than FPGA:
• ASIC gives design flexibility.
• This gives enormous opportunities for speed optimizations.
Low power....Low power....Low power:
• ASIC can be optimized for required low power.
• Several low-power techniques such as power gating, clock
gating, multi-VT cell libraries, pipelining, etc are available.
ASIC Design Disadvantages
Time-to-market:
• Some large ASICs can take a year or more to design.
• A good way to shorten development time is to make
prototypes using FPGAs and then switch to an ASIC.
Design Issues:
• In ASIC you should take care of DSM issues, signal integrity
issues, and many more.
• In FPGA you don’t have all of these because ASIC designer
takes care of all these.
Expensive Tools:
• ASIC design tools are very expensive.
FPGA Design Advantages
• Faster time-to-market
• No Non Recurring Expenses (NRE )
• Simpler design cycle
• Field reprogramability
• More predictable project cycle
• Reusability
FPGA Design Disadvantages
• Power consumption in FPGA is more.
– Don't have any control over the power optimization. This is
where ASIC wins the race!
• Have to use the resources available in the FPGA.
– Thus FPGA limits the design size.
• Good for low-quantity production.
– As quantity increases cost per product increases compared
to the ASIC implementation.
Design Cycle
Exploding ASIC NRE Cost
Unit Cost Analysis
Time to Market
System Reconfigurability
Time
Lack of reconfigurability is a huge opportunity cost of ASICs
FPGA offer flexible life cycle management that offers
Break-even Graph
Comparisons
Agenda
• Introduction, Types of ASICs
• ASIC design methodology
• ASIC design flow
– FPGA Vs ASIC
C FA ... FA FA FA C0
n
Sn-1 S2 S1 S0
Sum
N-Bit RCA: Series of FA Cells
• It is possible to create a logical circuit using multiple full
adders to add N-bit numbers.
• Each full adder inputs a Cin, which is the Cout of the previous
adder, this kind of adder is a ripple carry adder since each
carry bit "ripples" to the next full adder.
• In Ripple Carry Adder:
– Multiple full adders with carry-ins and carry outs
– Chained together
– Small Layout area
– Large delay time
• If the delay for each full adder is 8ns then the total delay for a four-bit
parallel adder is 32ns.
4-bit Ripple Carry Addition: Example
0 0 0 1 1 0 1 1
A=0011 A3 B3 A2 B2 A1 B1 A0 B0
B=0101
C4 C3 C2 C1
FA FA FA FA C0 0
S3 S2 S1 S0
T=0 0 0 0 0 0 0 0 0 S=0000
T=1 0 0 0 1 0 1 1 0 S=0110
T=2 0 0 0 1 1 0 1 0 S=0100
T=3 0 0 1 0 1 0 1 0 S=0000
T=4 0 1 1 0 1 0 1 0 S=1000
PGK
• What happens to the
propagating carry in
A B Cin Cout
bit position k?
0-propagate 0 0 - 0 (kill)
kill
0 1 C C (propagate)
A B A 1 0 C C (propagate)
B 1 1 - 1 (generate)
C Cout
B p = A+B (or A B)
A g = A.B
A B
1-propagate generate
PGK
• For a full adder, define what happens to carries
– Generate: Cout = 1 independent of C
• G=A•B
– Propagate: Cout = C
• P=AB
– Kill: Cout = 0 independent of C
• K = ~A • ~B
Carry-Save Adder
• CSA cell CSA(A1[i], A2[i], A3[i ], CIN, S1[i], S2[i], COUT)
has three outputs:
• In CSA the carries are saved at each stage and shifted left onto
the bus S1.
• There is thus no carry propagation and the delay of a CSA is
constant.
• At the output of a CSA we need to add the S1 bus (all saved
carries) and the S2 bus (all the sums) to get an n-bit result
using a final stage.
Carry-Save Adder
• The n-bit sum is encoded in the two buses S1 and S2 in the
form of parity and majority functions.
• The last stage sums up two input buses using a carry-propagate
adder.
• By registering the CSA stages by adding vectors of flip-flops,
reduces the adder delay to that of the slowest adder stage.
• By using the registers between the stages of combinational
logic we use pipelining to increase the speed and pay the price
of increased area and introduce latency.
• It takes a few clock cycles to fill the pipeline, but once it is
filled, we get output for every clock cycle.
CSA Application: Multi-input Adders
• Use k-2 stages of CSAs
– Keep result in carry-save redundant form
• Final CPA computes actual result
0001 X
0001 0111 1101 0010 0111 Y
+1101 Z
4-bit CSA 1011 S
0101_ C
0101_ 1011
0101_ X
5-bit CSA 1011 Y
+0010 Z
S
C
+
A
B
S
CSA Application: Multi-input Adders
0001 X
0001 0111 1101 0010 0111 Y
+1101 Z
4-bit CSA 1011 S
0101_ C
0101_ 1011
0101_ X
5-bit CSA 1011 Y
+0010 Z
01010_ 00011 00011 S
01010_ C
+
01010_ A
+ 00011 B
S
CSA Application: Multi-input Adders
0001 X
0001 0111 1101 0010 0111 Y
+1101 Z
4-bit CSA 1011 S
0101_ C
0101_ 1011
0101_ X
5-bit CSA 1011 Y
+0010 Z
01010_ 00011 00011 S
01010_ C
+
01010_ A
10111 + 00011 B
10111 S
Carry-Bypass Adder
• In RCA every stage has to wait to make its carry decision until
the previous stage has been calculated.
• Bypass the critical path.
• Uses the idea that if corresponding bits in the two words to be
added are not equal, a carry signal into that bit position will be
passed to the next bit position.
• Improves delay of RCA.
• Bypass the carries for bits 4-7 (stages 5-8) of an adder we can
compute BYPASS = P[4]·P[5]·P[6]·P[7] and then use a
multiplexer (MUX) as follows:
Carry-Skip Adder
• Instead of checking the propagate signals, we can
check the inputs.
• We can compute
SKIP = (A[i – 1] B[i – 1]) + A[i] B[i]) and
then use a 2:1 MUX to select C[i].
Thus,
Carry-Skip Adder Contd..
• Carry-ripple is slow through all N stages.
• Carry-skip/bypass allows carry to skip or bypass over groups
of n bits, decision-based on n-bit propagate signal.
A16:13 B16:13 A12:9 B12:9 A8:5 B8:5 A4:1 B4:1
Carry 1 0 0 1 1 1 1
A 0 1 0 0 1 1 0 1 +
B 0 1 0 0 0 1 1 1
Sum 1 0 0 1 0 1 0 0
Carry Propagation: An Example
• In the example:
– By looking at (A4, B4), we can say for sure that C5=0, no
matter what C4 is.
– By looking at (A2, B2), we can say for sure that C3=1.
– C3, “generated” by (A2, B2) (or by A0, B0 if you wish),
“propagated” as far as C4, and then got “killed” by (A4, B4)
– The idea is, can we look at A(3..0) and B(3..0) and
determine the value of C4 in one shot?
Carry-Lookahead Adder
Brent-Kung Adder
• Consider recursively C[i] = G[i] + P[i] ·G[i-1]
• For i = 1 in C[1] = G[1] + P[1] ·C[0]
• C[2] = G[2] + P[2]·G[1] + P[2]·P[1]·G[0]
• C[3] = G[3] + P[3]·G[2] + P[3]·P[2]·G[1] + P[3]·P[2]·P[1]·G[0]