CMPEN 411 VLSI Digital Circuits Spring 2009 Lecture 19: Adder Design

Slides:



Advertisements
Similar presentations
ECE555 Lecture 8/9 Nam Sung Kim University of Wisconsin – Madison
Advertisements

Feb. 17, 2011 Midterm overview Real life examples of built chips
Logical Design.
CPE 626 CPU Resources: Adders & Multipliers Aleksandar Milenkovic Web:
EE141 © Digital Integrated Circuits 2nd Arithmetic Circuits 1 Digital Integrated Circuits A Design Perspective Arithmetic Circuits Jan M. Rabaey Anantha.
EE141 Adder Circuits S. Sundar Kumar Iyer.
Digital Integrated Circuits A Design Perspective
Sequential Definitions  Use two level sensitive latches of opposite type to build one master-slave flipflop that changes state on a clock edge (when the.
CSE477 L19 Timing Issues; Datapaths.1Irwin&Vijay, PSU, 2002 Complex Digital Circuits Design Lecture 2: Timing Issues; [Adapted from Rabaey’s Digital Integrated.
ECE 331 – Digital System Design
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI Circuit Design Lecture 24 - Subsystem.
EE141 © Digital Integrated Circuits 2nd Arithmetic Circuits 1 [Adapted from Rabaey’s Digital Integrated Circuits, ©2002, J. Rabaey et al.]
S. Reda EN160 SP’07 Design and Implementation of VLSI Systems (EN0160) Lecture 28: Datapath Subsystems 2/3 Prof. Sherief Reda Division of Engineering,
Digital Integrated Circuits 2e: Chapter Copyright  2002 Prentice Hall PTR, Adapted by Yunsi Fei ECE 300 Advanced VLSI Design Fall 2006 Lecture.
EECS Components and Design Techniques for Digital Systems Lec 18 – Arithmetic II (Multiplication) David Culler Electrical Engineering and Computer.
CSE477 VLSI Digital Circuits Fall 2002 Lecture 20: Adder Design
CSE241 L2 Datapath/Memory.1Kahng & Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Lecture 02: Datapath and Memory.
Introduction to CMOS VLSI Design Lecture 11: Adders
S. Reda EN1600 SP’08 Design and Implementation of VLSI Systems (EN1600) Lecture 25: Datapath Subsystems 1/4 Prof. Sherief Reda Division of Engineering,
Design and Implementation of VLSI Systems (EN1600) Lecture 26: Datapath Subsystems 2/4 Prof. Sherief Reda Division of Engineering, Brown University Spring.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE VLSI Circuit Design Lecture 23 - Subsystem.
Digital Integrated Circuits© Prentice Hall 1995 Arithmetic Arithmetic Building Blocks.
Spring 2006EE VLSI Design II - © Kia Bazargan 68 EE 5324 – VLSI Design II Kia Bazargan University of Minnesota Part II: Adders.
Lecture 17: Adders.
ECE 301 – Digital Electronics
Spring 2002EECS150 - Lec10-cl1 Page 1 EECS150 - Digital Design Lecture 10 - Combinational Logic Circuits Part 1 Feburary 26, 2002 John Wawrzynek.
4-bit adder, multiplexer, timing diagrams, propagation delays
Chapter 5 Arithmetic Logic Functions. Page 2 This Chapter..  We will be looking at multi-valued arithmetic and logic functions  Bitwise AND, OR, EXOR,
Adders. Full-Adder The Binary Adder Express Sum and Carry as a function of P, G, D Define 3 new variable which ONLY depend on A, B Generate (G) = AB.
Lec 17 : ADDERS ece407/507.
Introduction to CMOS VLSI Design Lecture 11: Adders David Harris Harvey Mudd College Spring 2004.
Bar Ilan University, Engineering Faculty
Review: Basic Building Blocks  Datapath l Execution units -Adder, multiplier, divider, shifter, etc. l Register file and pipeline registers l Multiplexers,
Abdullah Aldahami ( ) Feb26, Introduction 2. Feedback Switch Logic 3. Arithmetic Logic Unit Architecture a.Ripple-Carry Adder b.Kogge-Stone.
Digital Integrated Circuits Chpt. 5Lec /29/2006 CSE477 VLSI Digital Circuits Fall 2002 Lecture 21: Multiplier Design Mary Jane Irwin (
Chapter 6-1 ALU, Adder and Subtractor
Arithmetic Building Blocks
EE141 © Digital Integrated Circuits 2nd Arithmetic Circuits 1 Digital Integrated Circuits A Design Perspective Arithmetic Circuits Reference: Digital Integrated.
Arithmetic Building Blocks
1/8/ L3 Data Path DesignCopyright Joanne DeGroat, ECE, OSU1 ALUs and Data Paths Subtitle: How to design the data path of a processor.
Chapter 14 Arithmetic Circuits (I): Adder Designs Rev /12/2003
CSE477 L24 RAM Cores.1Irwin&Vijay, PSU, 2002 CSE477 VLSI Digital Circuits Fall 2002 Lecture 24: RAM Cores Mary Jane Irwin ( )
CSE477 L23 Memories.1Irwin&Vijay, PSU, 2002 CSE477 VLSI Digital Circuits Fall 2002 Lecture 23: Semiconductor Memories Mary Jane Irwin (
FPGA-Based System Design: Chapter 4 Copyright  2003 Prentice Hall PTR Topics n Number representation. n Shifters. n Adders and ALUs.
1 Lecture 6 BOOLEAN ALGEBRA and GATES Building a 32 bit processor PH 3: B.1-B.5.
Spring C:160/55:132 Page 1 Lecture 19 - Computer Arithmetic March 30, 2004 Sukumar Ghosh.
CDA 3101 Fall 2013 Introduction to Computer Organization The Arithmetic Logic Unit (ALU) and MIPS ALU Support 20 September 2013.
EE 466/586 VLSI Design Partha Pande School of EECS Washington State University
EE141 © Digital Integrated Circuits 2nd Arithmetic Circuits 1 Digital Integrated Circuits A Design Perspective Arithmetic Circuits Jan M. Rabaey Anantha.
COMP541 Arithmetic Circuits
Digital Integrated Circuits© Prentice Hall 1995 Arithmetic Arithmetic Building Blocks.
EE466: VLSI Design Lecture 13: Adders
Digital Integrated Circuits 2e: Chapter Copyright  2002 Prentice Hall PTR, Adapted by Yunsi Fei ECE 300 Advanced VLSI Design Fall 2006 Lecture.
CSE477 VLSI Digital Circuits Fall 2002 Lecture 20: Adder Design
Sp09 CMPEN 411 L21 S.1 CMPEN 411 VLSI Digital Circuits Spring 2009 Lecture 21: Shifters, Decoders, Muxes [Adapted from Rabaey’s Digital Integrated Circuits,
CSE477 L21 Multiplier Design.1Irwin&Vijay, PSU, 2002 CSE477 VLSI Digital Circuits Fall 2002 Lecture 21: Multiplier Design Mary Jane Irwin (
EE141 Arithmetic Circuits 1 Chapter 14 Arithmetic Circuits Rev /12/2003 Rev /05/2003.
CSE477 L19 Timing Issues; Datapaths.1Irwin&Vijay, PSU, 2003 CSE477 VLSI Digital Circuits Fall 2003 Lecture 19: Timing Issues; Introduction to Datapath.
EE141 Arithmetic Circuits 1 Chapter 14 Arithmetic Circuits Rev /12/2003.
Full Adder Truth Table Conjugate Symmetry A B C CARRY SUM
CSE477 L20 Adder Design.1Irwin&Vijay, PSU, 2003 CSE477 VLSI Digital Circuits Fall 2003 Lecture 20: Adder Design Mary Jane Irwin (
Multiplier Design [Adapted from Rabaey’s Digital Integrated Circuits, Second Edition, ©2003 J. Rabaey, A. Chandrakasan, B. Nikolic]
CSE477 VLSI Digital Circuits Fall 2003 Lecture 21: Multiplier Design
Mary Jane Irwin ( ) CSE477 VLSI Digital Circuits Fall 2002 Lecture 22: Shifters, Decoders, Muxes Mary Jane.
Mary Jane Irwin ( ) CSE477 VLSI Digital Circuits Fall 2003 Lecture 22: Shifters, Decoders, Muxes Mary Jane.
Digital Integrated Circuits A Design Perspective
Review: Basic Building Blocks
Lecture 9 Digital VLSI System Design Laboratory
Arithmetic Building Blocks
Arithmetic Circuits.
Presentation transcript:

CMPEN 411 VLSI Digital Circuits Spring 2009 Lecture 19: Adder Design [Adapted from Rabaey’s Digital Integrated Circuits, Second Edition, ©2003 J. Rabaey, A. Chandrakasan, B. Nikolic]

Major Components of a Computer Processor Devices Control Input Memory Datapath Output Modern processor architecture styles (CSE 431) Pipelined, single issue (e.g., ARM) Pipelined, hardware controlled multiple issue – superscalar Pipelined, software controlled multiple issue – VLIW Pipelined, multiple issue from multiple process threads - multithreaded That is, any computer, no matter how primitive or advance, can be divided into five parts: 1. The input devices bring the data from the outside world into the computer. 2. These data are kept in the computer’s memory until ... 3. The datapath request and process them. 4. The operation of the datapath is controlled by the computer’s controller. All the work done by the computer will NOT do us any good unless we can get the data back to the outside world. 5. Getting the data back to the outside world is the job of the output devices. The most COMMON way to connect these 5 components together is to use a network of busses. Workstation Design Target: 25% of cost on Processor, 25% of cost on Memory (minimum memory size), rest on I/O devices, power supplies, box

Basic Building Blocks Datapath Control Interconnect Memory Execution units Adder, multiplier, divider, shifter, etc. Register file and pipeline registers Multiplexers, decoders Control Finite state machines (PLA, ROM, random logic) Interconnect Switches, arbiters, buses Memory Caches, TLBs, DRAM, buffers

MIPS 5-Stage Pipelined (Single Issue) Datapath Fetch Decode Execute Memory WriteBack Read Address I$ Add PC 4 1 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Data 1 Data 2 Sign Extend 16 32 ALU Shift left 2 D$ Data IF/Dec Dec/Exec Exec/Mem Mem/WB pipeline stage isolation register clk Icache precharge Dcache RegWrite Five stage pipeline (originally for performance, but also helps with energy) Talk a bit about a vertical design approach versus a horizontal approach

Datapath Bit-Sliced Organization Control Flow Bit 0 Bit 1 Bit 2 Bit 3 From I$ Pipeline Register Register File Multiplexer Pipeline Register Multiplexer Adder Shifter Pipeline Register Pipeline Register Data Flow To/From D$ Tile identical bit-slice elements

The Binary Adder

The 1-bit Binary Adder Cin A B Cin Cout S carry status kill 1 propagate generate A 1-bit Full Adder (FA) S B Cout G = A & B P = A  B K = !A & !B S = A  B  Cin Cout = A&B | A&Cin | B&Cin (majority function) = P  Cin = G | P&Cin A VERY common operation - so worth spending some time trying to optimize And often in the critical path, so need to look at both logic level optimizations circuit level optimizations A VERY common operation –often in the critical path

Complimentary Static CMOS Full Adder A direct implementation in CMOS needs 28 transistors (pp.565) Co=AB+BCi+ACi , S=ABCi+!Co(A+B+Ci) 28 Transistors

The 1-bit Binary Adder How can we use it to build a 64-bit adder? Cin A B Cin Cout S carry status kill 1 propagate generate A 1-bit Full Adder (FA) S B Cout G = A & B P = A  B K = !A & !B S = A  B  Cin Cout = A&B | A&Cin | B&Cin (majority function) = P  Cin = G | P&Cin A VERY common operation - so worth spending some time trying to optimize And often in the critical path, so need to look at both logic level optimizations circuit level optimizations How can we use it to build a 64-bit adder? How can we modify it easily to build an adder/subtractor? How can we make it better (faster, lower power, smaller)?

A 64-bit Adder/Subtractor add/subt C0=Cin Ripple Carry Adder (RCA) built out of 64 FAs Subtraction – complement all subtrahend bits (xor gates) and set the low order carry-in RCA advantage: simple logic, so small (low cost) disadvantage: slow (O(N) for N bits) and lots of glitching (so lots of energy consumption) A0 1-bit FA S0 B0 C1 A1 1-bit FA S1 B1 C2 A2 1-bit FA S2 B2 C3 . . . C63 A63 1-bit FA S63 B63 C64=Cout

Ripple Carry Adder (RCA) B3 A2 B2 A1 B1 A0 B0 Cout=C4 FA FA FA FA C0=Cin S3 S2 S1 S0 Tadder  (N-1) Tcarry + Tsum worst case is when the carry ripples from the least to most significant end T = O(N) worst case delay Real Goal: Make the fastest possible carry path

Inversion Property Inverting all inputs to a FA results in inverted values for all outputs A B S FA Cout Cin A B  Cout FA Cin S mod 2**n adder means 1111 + 1 = 0000 (ignoring high order carry out) Note that high order bit (bit 3) is the sign bit – treated as are all other bits (magnitude bits) !S (A, B, Cin) = S(!A, !B, !Cin) !Cout (A, B, Cin) = Cout (!A, !B, !Cin)

Exploiting the Inversion Property A3 B3 A2 B2 A1 B1 A0 B0 Cout=C4 FA’ FA’ FA’ FA’ C0=Cin S3 S2 S1 S0 inverted cell regular cell Minimizes the critical path (the carry chain) by eliminating inverters between the FAs eliminates inverters in the carry path Notice that the mirror adder produces !cout and !sum out in its 28 transistor implementation, so adder for bit 0 is just the mirror adder. Adder bit 1 would be the other flavor of the mirror adder (once again without the inverter on the carry output). Then the two inverters between bit 0 and bit 1 cancel one another. This eliminates all of the inverters in the carry chain. Now need two “flavors” of FAs

Mirror Adder 24+4 transistors B A Cin !Cout !S kill generate 0-propagate 1-propagate 24 + 4 (for C and Sum inverter) transistor Full Adder No more than 3 transistors in series Loads: A-8, B-8, Cin-6, !Cout-2 Number of “gate delays” to Sum – 3? Cout = A&B | B&Cin | A&Cin SUM = A&B&Cin | COUT&(A | B | Cin)

Mirror Adder Features The NMOS and PMOS chains are completely symmetrical with a maximum of two series transistors in the carry circuitry, guaranteeing identical rise and fall transitions if the NMOS and PMOS devices are properly sized. When laying out the cell, the most critical issue is the minimization of the capacitances at node !Cout (four diffusion capacitances, two internal gate capacitances, and two inverter gate capacitances). Shared diffusions can reduce the stack node capacitances. The transistors connected to Cin are placed closest to the output. Only the transistors in the carry stage have to be optimized for optimal speed. All transistors in the sum stage can be minimal size. Particularly the diffusion capacitances

Fast Carry Chain Design The key to fast addition is a low latency carry network What matters is whether in a given position a carry is generated Gi = Ai & Bi propagated Pi = Ai  Bi (sometimes use Ai | Bi) annihilated (killed) Ki = !Ai & !Bi Giving a carry recurrence of Ci+1 = Gi | Pi&Ci C1 = G0 | P0&C0 C2 = G1 | P1&G0 | P1&P0 &C0 C3 = G2 | P2&G1 | P2&P1&G0 | P2&P1&P0&C0 C4 = G3 | P3&G2 | P3&P2&G1 | P3&P2&P1&G0 | P3&P2&P1&P0&C0 For lecture Note that one and only one of the signals pi, gi, and ai is 1 Si = pi xor ci if we use the xor equation for pi

Manchester Carry Chain (MCC) Switches controlled by Gi and Pi Total delay of time to form the switch control signals Gi and Pi signal propagation delay through N switches in the worst case !Ci+1 !Ci Gi Pi clk when clock is low, the carry nodes precharge; when clock goes high if gi is high, ci+1 is asserted (goes low) to prevent gi from affecting ci, the signal pi must be computed as the xor (rather than the or) of xi and yi which is not a problem since we need the xor of xi and yi for computing the sum anyway delay is roughly proportional to n**2 (as n pass transistors are connected in series) so usually group 4 stages together and buffer the carry chain with an inverter between each stage

4-bit Sliced MCC Adder     A3 B3 A2 B2 A1 B1 A0 B0 clk G P G P G P &  &  &  &  G P G P G P G P !C4 !C0 !C3 !C2 !C1 Dynamic circuit – impact on clock power and timing (have to allow for precharge time) Limit of 4 transistors in a row for speed, then have to buffer carry chain Slide is wrong!!! The !Ci should have a inverter before the XOR gate, because Si=Pi XOR Ci     S3 S2 S1 S0

8-bit MCC Adder &  &  !C7 4-bit slice MCC 4-bit slice MCC !C0   Its really hard to beat the speed of a well designed MCC for word lengths of 8 bits or less !

Carry Skip Adder (a.k.a. Carry Bypass Adder) FA A1 B1 S1 A2 B2 S2 A3 B3 S3 C4 C4 BP = P0&P1&P2&P3 “Block Propagate” If (P0 & P1 & P2 & P3 = 1) then C4 = C0 otherwise the block itself kills or generates the carry internally

Carry-Skip Chain Implementation block carry-out carry-out BP block carry-in Cin G0 P0 P1 P2 P3 G1 G2 G3 !Cout BP Only 10% to 20% area overhead Only 2 “gate delays” to produce cout if skip occurs

16 bit, 4-bit Block Carry Skip Adder bits 12 to 15 bits 8 to 11 bits 4 to 7 bits 0 to 3 Setup Setup Setup Setup Carry Propagation Carry Propagation Carry Propagation Carry Propagation Ci,0 Sum Sum Sum Sum Worst-case delay  carry from bit 0 to bit 15 = carry generated in bit 0, ripples through bits 1, 2, and 3, skips the middle two groups (B is the group size in bits), ripples in the last group from bit 12 to bit 15 Set up is for forming p’s and g’s For N bits and N/B chunks each containing B bits Tadd = tsetup + B tcarry + ((N/B) - 1) tskip +(B-1) tcarry + tsum

Optimal Skip Block Size and Add Time Assuming one stage of ripple (tcarry) has the same delay as one skip logic stage (tskip) and both are 1 TCSkA = 1 + B + (N/B-1) + B-1 + 1 tsetup ripple in skips ripple in tsum block 0 last block = 2B + N/B So the optimal block size, B, is dTCSkA/dB = 0  (N/2) = Bopt And the optimal time is Optimal TCSkA = 4√(n/2) – 1 = 2√(2n) – 1 A pass chain to implement GP would also argue for no more than 4 bits in a group

RCA, Carry Skip Adder Comparison B=2 B=3 B=4 B=5 B=6

Carry Skip Adder Extensions Variable block sizes A carry that is generated in, or absorbed by, one of the inner blocks travels a shorter distance through the skip blocks, so can have bigger blocks for the inner carries without increasing the overall delay Cin Cout probably too much detail for class, but shows other options/extensions

Carry Select Adder A’s B’s 4-b Setup “0” carry propagation 1 multiplexer Cin Cout Sum generation P’s G’s C’s Precompute the carry out of each block for both carry_in = 0 and carry_in = 1 (can be done for all blocks in parallel) and then select the correct one Don’t cover this kind of adder in class - “Skip” the carry select adder in lecture – just refer students to the book Compute both carry out with no carryin and carries with carryin and then select the right one when you know what the real carryin is S’s

Carry Select Adder: Critical Path bits 12 to 15 bits 8 to 1 bits 4 to 7 bits 0 to 3 A’s B’s Setup “0” carry “1” carry mux Sum gen P’s G’s C’s S’s A’s B’s Setup “0” carry “1” carry mux Sum gen P’s G’s C’s S’s A’s B’s A’s B’s 1 Setup Setup P’s G’s P’s G’s “0” carry “0” carry +4 “1” carry “1” carry 1 +1 +1 +1 +1 mux mux Cout Cin C’s C’s For lecture N is number of bits in adder, B is number of bits in block, M is the number of blocks According to the book, it is easy to show that the carry select adder is more cost effective than the ripple carry adder if n >16/(alpha-1) where alpha is cadd(n) = alpha n for RCAs For alpha = 4 and tau = 2, the carry select approach is almost always preferable to ripple carry +1 Sum gen Sum gen S’s S’s Tadd = tsetup + B tcarry + N/B tmux + tsum

Square Root Carry Select Adder bits 14 to 19 bits 9 to 13 bits 5 to 8 bits 2 to 4 bits 0 to 1 A’s B’s A’s B’s A’s B’s A’s Bs As B’s Setup “0” carry “1” carry mux Sum gen P’s G’s C’s Setup 1 mux Sum gen P’s G’s C’s S’s “1” carry “0” carry 1 Setup Setup Setup P’s G’s P’s G’s P’s G’s “0” carry “0” carry “0” carry +2 +6 +5 +4 +3 “1” carry 1 “1” carry “1” carry 1 1 +1 +1 +1 +1 +1 Cout mux mux mux Cin C’s C’s C’s For lecture Delay balancing – make the later blocks bigger How about two level carry select as in book? +1 Sum gen Sum gen Sum gen S’s S’s S’s S’s Tadd = tsetup + 2 tcarry + √2N tmux + tsum

Look-Ahead: Topology Expanding Lookahead equations: All the way:

LookAhead - Basic Idea

Look-Ahead: Topology

Logarithmic Look-Ahead Adder

Carry Lookahead Trees Can continue building the tree hierarchically.

Carry Operator Define carry operator € on (G,P) signal pairs € is associative, i.e., [(g’’’,p’’’) € (g’’,p’’)] € (g’,p’) = (g’’’,p’’’) € [(g’’,p’’) € (g’,p’)] (G’’,P’’) (G’,P’) G’ !G G’’ P’’ € where G = G’’ | P’’&G’ P = P’’&P’ (G,P) Show how carry operator is associate by example (g’’’,p’’’)op(g’’,p’’) = (g’’’+p’’’g’’,p’’’p’’) and then (g’’’+p’’’g’’,p’’’p’’)op(g’,p’) = (g’’’+p’’’g’’+p’’’p’’g’,p’’’p’’p’) Thus, they can be grouped in any order But carry operator is not commutative, since g’’ + p’’g’ is in general not equal to g’ + p’g’’ € €

PPA (Partially Prefix Adder) General Structure Given P and G terms for each bit position, computing all the carries is equal to finding all the prefixes in parallel (G0,P0) € (G1,P1) € (G2,P2) € … € (GN-2,PN-2) € (GN-1,PN-1) Since € is associative, we can group them in any order Pi, Gi logic (1 unit delay) Measures to consider number of € cells tree cell depth (time) tree cell area cell fan-in and fan-out max wiring length wiring congestion delay path variation (glitching) Ci parallel prefix logic tree (1 unit delay per level) Si logic (1 unit delay)

Parallel Prefix Computation Brent-Kung PPA G15 p15 A = 2log2N-2 A = N/2 G14 p14 G13 p13 G12 P12 G11 p11 G10 P10 G9 p9 G8 P8 G7 P7 G6 P6 G5 P5 G4 P4 G3 P3 G2 p2 G1 P1 G0 P0 € € € € € € € € T = log2N € € € € € € Parallel Prefix Computation € € € € € For lecture We are assuming that c0 = 0, so c1 = g0 (c1 = g0 + p0c0). Notice that a different tree structure is needed for c0 = 1 Time = 2*(2logn – 2) + 2 (to form p’s and g’s and final sum) = 4logn - 2 Area = width of n, height of 2logn – 2 carry cells (to form all of the carries) with 2n - 2 - log n total cells For n=16 as shown -> 1 unit to form p’s and g’s, 2*(2log16-2)=12 units to form carries, 1 unit to form sums = 14 units n log n RCA BK 8 3 16 10 16 4 32 14 32 5 64 18 64 6 128 22 Regular structure with limited fanin for all gates - only two issues to worry about are fanout (but have room to insert buffers to deal with this) and maximum wire length of n/2 How about power?? Several/many other kinds of recurrence solvers – Kogge-Stone, Elm, and hybrids (see textbook) T = log2N - 2 € € € € € € € C16 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1

A Faster Yet PPA Brent-Kung (BK) adder has the time bound of TBK = 1 + (2log N – 2) + 1 There are even faster PPA approaches that are used in most modern day machines for operands of 32 bits or greater Kogge-Stone (KS) faster pp tree (logN for KS versus 2logN-2 for BK) fan-out of carry cell € limited to two takes more € cells and has more wiring

Kogge-Stone PPF Adder Tadd = tsetup + log2N t€ + tsum C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 Cin A = log2N A = N T = log2N Parallel Prefix Computation add slide on k-s adder Tadd = tsetup + log2N t€ + tsum

PPA Comparisons Measure BK PPA N=64 KS PPA # of € cells 2N - 2 - logN 129 NlogN - N + 1 321 tree depth 2logN - 2 10 logN 6 tree area (WxH) (N/2) * (2logN -2) 320 N * logN 384 cell fan-in 2 cell fan-out max wire length N/4 16 N/2 32 wiring density sparse dense glitching high low red is worse fan out for KS limited to 2 only if buffers are used at the lower end of the tree

More Adder Comparisons

State of art

Next Lecture and Reminders Multiplier Design Reading assignment – Rabaey, et al, 11.4