Download presentation
Presentation is loading. Please wait.
Published byAlfred Norris Modified over 9 years ago
1
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 1 EE 5323 – VLSI Design I Kia Bazargan University of Minnesota Adders
2
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 2 References and Copyright Textbooks referenced [WE92] N. H. E. Weste, K. Eshraghian “Principles of CMOS VLSI Design: A System Perspective ” Addison-Wesley, 2 nd Ed., 1992. [Rab96] J. M. Rabaey “Digital Integrated Circuits: A Design Perspective ” Prentice Hall, 1996. [Par00] B. Parhami “Computer Arithmetic: Algorithms and Hardware Designs ” Oxford University Press, 2000.
3
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 3 References and Copyright (cont.) Slides used [©Hauck] © Scott A. Hauck, 1996-2000; G. Borriello, C. Ebeling, S. Burns, 1995, University of Washington [©Prentice Hall] © Prentice Hall 1995, © UCB 1996 Slides for [Rab96] http://bwrc.eecs.berkeley.edu/Classes/IcBook/instructors.html [ ©Oxford U Press] © Oxford University Press, New York, 2000 Slides for [Par00] With permission from the author http://www.ece.ucsb.edu/Faculty/Parhami/files_n_docs.htm
4
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 4 Why Adders? Addition: a fundamental operation Basic block of most arithmetic operations Address calculation Faster, faster and faster How? Architectural level optimization Gate-level optimization Speed/area trade-off
5
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 5 Outline One-bit adder, basic ripple-carry adder Carry-Lookahead adders (CLA) Brent-Kung adder
6
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 6 One-bit Half Adder: One-bit Full Adder: Adding Two One-bit Operands Sum = A B Cin Cout = A.B + B.Cin + A.Cin FA AB C in C out Sum Sum = A B Cout = A.B HA AB C out Sum A B Sum Cout 0 0 0 1 1 0 1 0 1 1 0 1 C in A B Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1
7
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 7 N-Bit Ripple-Carry Adder: Series of FA Cells To add two n-bit numbers C0C0 FA A0A0 S0S0 B0B0 A1A1 S1S1 B1B1 A2A2 S2S2 B2B2 A n-1 S n-1 B n-1 CnCn... Note: adder delay = Tc * n Tc = (C in :C out delay) FA AB CinCin C ou t Sum
8
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 8 4-bit Ripple Carry Addition: Example C0C0 FA A0A0 S0S0 B0B0 A1A1 S1S1 B1B1 A2A2 S2S2 B2B2 A3A3 S3S3 B3B3 C4C4 C1C1 C2C2 C3C3 T=1 00101001 00100111 0 00000000 T=0 B=0101 A=0011 S=0000 S=0110 00100101 T=2 S=0100 00010101 T=3 S=0000 10010101 T=4 S=1000
9
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 9 One-bit Full Adder Implementation Direct gate implementation Cout = A.B + B.Cin + A.Cin = A.B + Cin. (A+B) Sum = A B Cin A B Cin Sum A B A B Cin Cout 32 Transistors Used [WE92] p516
10
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 10 includes 111 excludes 000 One-Bit Full Adder: Share Logic An observation Almost always, sum = NOT carry C in A B Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Sum = A.B.Cin + (A+B+Cin).Cout
11
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 11 One-Bit Full Adder: Transistor Implementation Sum = A.B.C + (A+B+C).Cout Cout = A.B + C.(A+B) A B B A C A B AB C Cout C B A A B C C B A C BA Sum –Use inverters to get Cout and Sum –C transistors close to output –Cout delay: 2 inverting stages (1-stage possible?) –Sum delay: 3 inverting stages (not an issue, though) 28 Transistors [WE92] p517 [Rab96] p390
12
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 12 Outline One-bit adder, basic ripple-carry adder Carry-Lookahead adders (CLA) Brent-Kung adder
13
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 13 Carry-Lookahead Adder: Idea New look: carry propagation Idea: Try to “predict” C k earlier than T c *k Instead of passing through k stages, compute C k separately using 1-stage CMOS logic Carry propagation: an example Bit position Carry A B Sum 7 6 5 4 3 2 1 0 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 + 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 0
14
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 14 0-propagate 1-propagategenerate kill (kill) (propagate) (generate) Carry-Lookahead Adder (CLA): One Bit What happens to the propagating carry in bit position k? 0 0 - 0 0 1 C C 1 0 C C 1 1 - 1 C A A B B A A B B Cout [Rab96] p391 p = A+B (or A B) g = A.B A B C in Cout
15
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 15 CLA: Propagation Equations If C 4 =1, then either: g 3 generated at bit pos 3 g 2.p 3 generated at bit pos 2, propagated 3 g 1.p 2.p 3 generated at bit pos 1, propagated 2,3 g 0.p 1.p 2.p 3 generated at bit pos 0, propagated 1,2,3 C in.p 0.p 1.p 2.p 3 input carry, propagated 0,1,2,3 C 4 = g 3 + g 2.p 3 + g 1.p 2.p 3 + g 0.p 1.p 2.p 3 + C in.p 0.p 1.p 2.p 3 Implement C 4 as a one-stage CMOS logic large delay
16
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 16 CLA: 12-Bit Example 00000 0 0 T=0 0111 1101 0110 1001 1101 1010 0 B= A= 010011111001111 T=2 010010000101111 T=3 010110000101111 T=4
17
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 17 Summary: Carry Lookahead Adder CLA compared to ripple-carry adder: Faster (“4 times”?), but delay still linear (w.r.t. # of bits) Larger area oP, G signal generation oCarry generation circuits oCarry generation ckt for each bit position (no re-use) Limitation: cannot go beyond 4 bits of look-ahead Large p,g fan-out slows down carry generation
18
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 18 Outline One-bit adder, basic ripple-carry adder Carry-Lookahead adders (CLA) Brent-Kung adder
19
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 19 Binary Carry-Lookahead or Brent-Kung Adder Idea: use binary tree for carry propagation logarithmic delay A 7 F A 6 A 5 A 4 A 3 A 2 A 1 A 0 A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 F t p log 2 (N) t p N [© Prentice Hall]
20
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 20 Brent-Kung Adder Basic component Concatenation MSBLSB g left p left g right p right g p (g, p) g = g left + p left g right p = p left p right (g left, p left ) (g right p right ) [©Hauck]
21
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 21 No! Doesn’t know about C 0-3 yet! C5?C5? Brent-Kung Adder: Structure Define (Gi, Pi) generate and propagate for least significant i bits (G 0,P 0 ) = (g 0,p 0 )g i = A i.B i p i = A i B i for i>0: (G i, P i ) = (g i, p i ) (G i-1, P i-1 ) = (g i, p i ) (g i-1, p i-1 ).... (g 1, p 1 ) Key to Brent-Kung adder – use tree structure to perform concatenations 7 6 5 4 3 2 1 0 7-65-43-2 1-0 7-4 3-0 7-0 [©Hauck]
22
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 22 Brent-Kung: the Complete Tree t add log 2 (N) [© Prentice Hall] (g 0,p 0 ) (g 1,p 1 ) (g 2,p 2 ) (g 3,p 3 ) (g 4,p 4 ) (g 5,p 5 ) (g 6,p 6 ) (g 7,p 7 ) C 0 C 1 C 3 C 7 C 2 C 6 C 5 C 4
23
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 23 Brent-Kung: Timing [©Oxford U Press] [Par00] p.102 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 s 0 s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 s 11 s 12 s 13 s 14 s 15 1 2 3 4 5 6 Level
24
Fall 2008EE 5323 - VLSI Design I - © Kia Bazargan 24 Brent-Kung Adder: Summary Area On average, twice as large as ripple adder Layout of the cells is very compact Delay Logarithmic time Once carry signals are ready, sum bits derived in const time Good for wide adders
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.