Lec 11 Adders

download Lec 11 Adders

of 44

Transcript of Lec 11 Adders

  • 7/25/2019 Lec 11 Adders

    1/44

    Introduction to

    CMOS VLSIDesign

    Adders

  • 7/25/2019 Lec 11 Adders

    2/44

    AddersSlide 2CMOS VLSI Design

    Outline

    Single-bit Addition

    Carry-Ripple Adder

    Carry-Skip Adder

    Carry-Lookahead Adder

    Carry-Select Adder

    Carry-Increment Adder

    Tree Adder

  • 7/25/2019 Lec 11 Adders

    3/44

    AddersSlide 3CMOS VLSI Design

    Single-Bit Addition

    Half Adder Full Adder

    A B Cout S

    !

    !

    ! !

    A B C Cout S

    !

    !

    ! !

    ! ! !

    ! !

    ! ! !

    A B

    S

    Cout

    A B

    C

    S

    Cout

    out

    S

    C

    =

    = out

    S

    C

    =

    =

  • 7/25/2019 Lec 11 Adders

    4/44

    AddersSlide 4CMOS VLSI Design

    Single-Bit Addition

    Half Adder Full Adder

    A B Cout S

    ! !

    ! !

    ! ! !

    A B C Cout S

    ! !

    ! !

    ! ! !

    ! !! ! !

    ! ! !

    ! ! ! ! !

    A B

    S

    Cout

    A B

    C

    S

    Cout

    out

    S A B

    C A B

    =

    = g out ( , , )

    S A B C

    C MAJ A B C

    =

    =

  • 7/25/2019 Lec 11 Adders

    5/44

    AddersSlide 5CMOS VLSI Design

    PGK

    For a full adder" define #hat happen$ to carrie$

    % &enerate' Cout( ! independent of C

    ) & (

    % *ropagate' Cout( C) * (

    % +ill' Cout( independent of C

    ) + (

  • 7/25/2019 Lec 11 Adders

    6/44

    AddersSlide 6CMOS VLSI Design

    PGK

    For a full adder" define #hat happen$ to carrie$

    % &enerate' Cout( ! independent of C

    ) & ( A ) B

    % *ropagate' Cout( C) * ( A B

    % +ill' Cout( independent of C

    ) + ( ,A ) ,B

  • 7/25/2019 Lec 11 Adders

    7/44

    AddersSlide 7CMOS VLSI Design

    Full Adder Design I

    Brute force implementation from en$

    out ( , , )

    S A B C

    C MAJ A B C

    =

    =

    ABC

    S

    Cout

    .A/

    ABC

    A

    B BB

    A

    C SC

    CC

    B BB

    A A

    A B

    C

    B

    A

    CBA A B C

    Cout

    C

    A

    A

    BB

  • 7/25/2019 Lec 11 Adders

    8/44

    AddersSlide 8CMOS VLSI Design

    Full Adder Design II

    Factor S in term$ of Cout

    S ( ABC 0 1A 0 B 0 C21,Cout2

    Critical path i$ u$ually C to Coutin ripple adder

    SS

    Cout

    A

    B

    C

    Cout

    .I34RIT5

  • 7/25/2019 Lec 11 Adders

    9/44

    AddersSlide 9CMOS VLSI Design

    Layout

    Cle6er layout circum6ent$ u$ual line of diffu$ion

    % 7$e #ide tran$i$tor$ on critical path

    % 8liminate output in6erter$

  • 7/25/2019 Lec 11 Adders

    10/44

    AddersSlide 10CMOS VLSI Design

    Full Adder Design III

    Complementary *a$$ Tran$i$tor Logic 1C*L2

    % Slightly fa$ter" but more area

    A

    C

    S

    S

    B

    B

    C

    C

    C

    B

    B

    Cout

    Cout

    C

    C

    C

    C

    B

    B

    B

    B

    B

    B

    B

    B

    A

    A

    A

  • 7/25/2019 Lec 11 Adders

    11/44

    AddersSlide 11CMOS VLSI Design

    Full Adder Design IV

    9ual-rail domino

    % :ery fa$t" but large and po#er hungry

    % 7$ed in 6ery fa$t multiplier$

    Cout;h

    A;h B;h

    C;h

    B;h

    A;h

    Cout;l

    A;l B;l

    C;l

    B;l

    A;l

    S;hS;l

    A;h

    B;h B;hB;l

    A;l

    C;l

    C;h C;h

  • 7/25/2019 Lec 11 Adders

    12/44

    AddersSlide 12CMOS VLSI Design

    Carry Propagate Adders

    3-bit adder called C*A

    % 8ach $um bit depend$ on all pre6iou$ carrie$

    % Ho# do #e compute all the$e carrie$ uickly===!

    carrie$

    B>===!S

    >===!

    Cin

    Cout

    00000

    1111

    +0000

    1111

    Cin

    Cout

  • 7/25/2019 Lec 11 Adders

    13/44

    AddersSlide 13CMOS VLSI Design

    Carry-ipple Adder

    Simple$t de$ign' ca$cade full adder$

    % Critical path goe$ from Cin to Cout

    % 9e$ign full adder to ha6e fa$t carry delay

    Cin

    Cout

    B!

    A!

    B?

    A?

    B@

    A@

    B>

    A>

    S!

    S?

    S@

    S>

    C!C?C@

  • 7/25/2019 Lec 11 Adders

    14/44

    AddersSlide 14CMOS VLSI Design

    In!ersions

    Critical path pa$$e$ through maority gate

    % Built from minority 0 in6erter

    % 8liminate in6erter and u$e in6erting full adder

    Cout

    Cin

    B!

    A!

    B?

    A?

    B@

    A@

    B>

    A>

    S!

    S?

    S@

    S>

    C!C?C@

  • 7/25/2019 Lec 11 Adders

    15/44

  • 7/25/2019 Lec 11 Adders

    16/44

    AddersSlide 16CMOS VLSI Design

    Generate " Propagate

    8uation$ often factored into & and *

    &enerate and propagate for group$ $panning i'

    Ba$e ca$e

    Sum'

    : : : 1:

    : : 1:

    i j i k i k k j

    i j i k k j

    G G P G

    P P P

    = +

    =

    g

    g

    :

    :

    i i i i i

    i i i i i

    G G A B

    P P A B

    =

    =

    g

    : :: :

    0:0 0

    0:0 0 0

    inG G C

    P P

    =

    =

    1:0i i iS P G =

  • 7/25/2019 Lec 11 Adders

    17/44

    AddersSlide 17CMOS VLSI Design

    PG Logic

    S!

    B!

    A!

    *!

    &!

    &'

    S?

    B?

    *?

    &?

    &!'

    A?

    S@

    B@

    A@

    *@

    &@

    &?'

    S>

    B>

    *>

    &>

    &@'

    A>

    Cin

    &

    *

    !' Bit#i$e *& logic

    ?' &roup *& logic

    @' Sum logicC

    C

    !C

    ?C

    @

    Cout

    C>

  • 7/25/2019 Lec 11 Adders

    18/44

    AddersSlide 18CMOS VLSI Design

    Carry-ipple e!isited

    :0 1:0

    i i i iG G P G = + g

    S!

    B!A!

    *!

    &!

    &'

    S?

    B?

    *?

    &?

    &!'

    A?

    S@

    B@A@

    *@

    &@

    &?'

    S>

    B>

    *>

    &>

    &@'

    A> Cin

    &

    *

    C

    C!

    C?

    C@

    Cout

    C>

  • 7/25/2019 Lec 11 Adders

    19/44

    AddersSlide 19CMOS VLSI Design

    Carry-ipple PG

    Diagra#

    9elay

    !?@>DEF!!!!?!@!>!

    !' !>' ! @' !?' !!' !' F' E' D' ' ' >' @' ?' !' '

    Bit *o$ition

    ripplet =

  • 7/25/2019 Lec 11 Adders

    20/44

    AddersSlide 20CMOS VLSI Design

    Carry-ipple PG

    Diagra#

    9elay

    !?@>DEF!!!!?!@!>!

    !' !>' ! @' !?' !!' !' F' E' D' ' ' >' @' ?' !' '

    Bit *o$ition

    ripple xor ( 1)pg AOt t N t t = + +

  • 7/25/2019 Lec 11 Adders

    21/44

    AddersSlide 21CMOS VLSI Design

    PG Diagra# $otation

    i'

    i'

    i'k k-!'

    i'

    i'k k-!'

    i'

    &i'k

    *k-!'

    &k-!'

    &i'

    *i'

    *i'k

    &i'k

    &k-!'

    &i' &

    i'

    *i'

    &i'

    *i'

    *i'k

    Black cell &ray cell Buffer

  • 7/25/2019 Lec 11 Adders

    22/44

    AddersSlide 22CMOS VLSI Design

    Carry-S%ip Adder

    Carry-ripple i$ $lo# through all 3 $tage$

    Carry-$kip allo#$ carry to $kip o6er group$ of n bit$

    % 9eci$ion ba$ed on n-bit propagate $ignal

    Cin

    0

    S>'!

    *>'!

    A>'!

    B>'!

    0

    SE'

    *E'

    AE'

    BE'

    0

    S!?'

    *!?'

    A!?'

    B!?'

    0

    S!'!@

    *!'!@

    A!'!@

    B!'!@

    Cout

    C>

    !

    CE

    !

    C!?

    !

    !

  • 7/25/2019 Lec 11 Adders

    23/44

    AddersSlide 23CMOS VLSI Design

    Carry-S%ip PG Diagra#

    For k n-bit group$ 13 ( nk2

    skipt =

    !?@>DEF!!!!?!@!>!!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '!'

  • 7/25/2019 Lec 11 Adders

    24/44

    AddersSlide 24CMOS VLSI Design

    Carry-S%ip PG Diagra#

    For k n-bit group$ 13 ( nk2

    ( )skip xor 2 1 ( 1)pg AOt t n k t t = + + +

    !?@>DEF!!!!?!@!>!!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '!'

  • 7/25/2019 Lec 11 Adders

    25/44

    AddersSlide 25CMOS VLSI Design

    Varia&le Group Si'e

    9elay gro#$ a$ 41$rt1322

    !?@>DEF!!!!?!@!>!!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '!'

  • 7/25/2019 Lec 11 Adders

    26/44

    AddersSlide 26CMOS VLSI Design

    Carry-Loo%a(ead Adder

    Carry-lookahead adder compute$ &i' for many bit$

    in parallel=

    7$e$ higher-6alency cell$ #ith more than t#o input$=

    Cin

    0

    S>'!

    &>'!

    *>'!

    A>'!

    B>'!

    0

    SE'

    &E'

    *E'

    AE'

    BE'

    0

    S!?'

    &!?'

    *!?'

    A!?'

    B!?'

    0

    S!'!@

    &!'!@

    *!'!@

    A!'!@

    B!'!@

    C>

    CE

    C!?

    Cout

  • 7/25/2019 Lec 11 Adders

    27/44

    AddersSlide 27CMOS VLSI Design

    CLA PG Diagra#

    !?@>DEF!!!!?!@!>!!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '!'

  • 7/25/2019 Lec 11 Adders

    28/44

    AddersSlide 28CMOS VLSI Design

    )ig(er-Valency Cells

    i'

    i'k k-!'l l-!'m m-!'

    &i'k

    &k-!'l

    &l-!'m

    &m-!'

    &i'

    *i'

    *i'k

    *k-!'l

    *l-!'m

    *m-!'

  • 7/25/2019 Lec 11 Adders

    29/44

    AddersSlide 29CMOS VLSI Design

    Carry-Select Adder

    Trick for critical path$ dependent on late input G

    % *recompute t#o po$$ible output$ for G ( " !

    % Select proper output #hen G arri6e$

    Carry-$elect adder precompute$ n-bit $um$% For both po$$ible carrie$ into n-bit group

    Cin0

    A>'!

    B>'!

    S>'!

    C>

    0

    0

    !

    AE'

    BE'

    SE'

    CE

    0

    0

    !

    A!?'

    B!?'

    S!?'

    C!?

    0

    0

    !

    A!'!@

    B!'!@

    S!'!@

    Cout

    !

    !

    !

  • 7/25/2019 Lec 11 Adders

    30/44

    AddersSlide 30CMOS VLSI Design

    Carry-Incre#ent Adder

    Factor initial *& and final G4R out of carry-$elect

    B'>

    C'>

    D'>

    F'E

    !'E

    !!'E

    !@'!?

    !>'!?

    !B'!?

    !?@>DEF!!!!?!@!>!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '

    increentt =

  • 7/25/2019 Lec 11 Adders

    31/44

  • 7/25/2019 Lec 11 Adders

    32/44

    AddersSlide 32CMOS VLSI Design

    Varia&le Group Si'e

    Al$o buffer

    noncritical

    $ignal$

    @'?'>

    '>

    E'D

    F'D

    !?'!!

    !@'!!

    !>'!!

    !'!!

    !'D

    @'?'>

    '>

    E'D

    F'D

    !?'!!

    !@'!!

    !>'!!

    !'!!

    !'D '

    @'

    !'

    !?@>DEF!!!!?!@!>!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '

    !?@>DEF!!!!?!@!>!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    33/44

    AddersSlide 33CMOS VLSI Design

    *ree Adder

    If lookahead i$ good" lookahead acro$$ lookahead

    % Recur$i6e lookahead gi6e$ 41log 32 delay

    .any 6ariation$ on tree adder$

  • 7/25/2019 Lec 11 Adders

    34/44

    AddersSlide 34CMOS VLSI Design

    Brent-Kung

    !'@'?'>D''E!!'!!@'!?!'!>

    @'D'>!!'E!'!?

    D'!'E

    !!'

    ''!@'

    !?@>DEF!!!!?!@!>!

    !' !>' !@' !?' !!' !' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    35/44

    AddersSlide 35CMOS VLSI Design

    S%lans%y

    !'

    ?'@'

    @'?'>D''E!!'!!@'!?!'!>

    '>D'>!'E!!'E!>'!?!'!?

    !?'E!@'E!>'E!'E

    !?@>DEF!!!!?!@!>!

    !'!>'!@'!?'!!'!' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    36/44

    AddersSlide 36CMOS VLSI Design

    Kogge-Stone

    !'?'!@'?>'@'>'D'E'D'E!'!!'!!?'!!!@'!?!>'!@!'!>

    @'>'!'?'@D'>E''!'D!!'E!?'!@'!!>'!!!'!?

    >'''D'E'!'?!'@!!'>!?'!@'!>'D!'E

    ?'

    !?@>DEF!!!!?!@!>!

    !'!>'!@'!?'!!'!' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    37/44

    AddersSlide 37CMOS VLSI Design

    *ree Adder *a+ono#y

    Ideal 3-bit tree adder #ould ha6e

    % L( log 3 logic le6el$

    % Fanout ne6er eceeding ?

    % 3o more than one #iring track bet#een le6el$

    9e$cribe adder #ith @-9 taonomy 1l" f" t2

    % Logic le6el$' L0 l

    % Fanout' ?f0 !

    % Jiring track$' ?t

    +no#n tree adder$ $it on plane defined by

    l 0 f0 t( L-!

  • 7/25/2019 Lec 11 Adders

    38/44

  • 7/25/2019 Lec 11 Adders

    39/44

    AddersSlide 39CMOS VLSI Design

    *ree Adder *a+ono#y

    f 1Fanout2

    t 1Jire Track$2

    l 1Logic Le6el$2

    0 (2)

    1 (3)

    2 (5)

    3 (9)

    0 (4)

    1 (5)

    2 (6)

    3 (8)

    2 (4)

    1 (2)

    0 (1)

    3 (7)

    Kogge-Stone

    Bent-K!ng

    S"#$ns"%

  • 7/25/2019 Lec 11 Adders

    40/44

    AddersSlide 40CMOS VLSI Design

    )an-Carlson

    !'@'?'>D''E!!'!!@'!?!'!>

    @''?D'>'!!'E!@'!!'!?

    'D''?!!'>!@'!'E

    !?@>DEF!!!!?!@!>!

    !'!>'!@'!?'!!'!' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    41/44

    AddersSlide 41CMOS VLSI Design

    Kno,les ./ 0/ 0/ 01

    !'?'!@'?>'@'>'D'E'D'E!'!!'!!?'!!!@'!?!>'!@!'!>

    @'>'!'?'@D'>E''!'D!!'E!?'!@'!!>'!!!'!?

    >'''D'E'!'?!'@!!'>!?'!@'!>'D!'E

    ?'

    !?@>DEF!!!!?!@!>!

    !'!>'!@'!?'!!'!' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    42/44

    AddersSlide 42CMOS VLSI Design

    Ladner-Fisc(er

    !'@'?'>D''E!!'!!@'!?

    @'D'>!!'E!'!?

    'D'!@'E!'E

    !'!>

    !'E !@' !!' '

    !?@>DEF!!!!?!@!>!

    !'!>'!@'!?'!!'!' F' E' D' ' ' >' @' ?' !' '

  • 7/25/2019 Lec 11 Adders

    43/44

    AddersSlide 43CMOS VLSI Design

    *a+ono#y e!isited

    f 1Fanout2

    t 1Jire Track$2

    l 1Logic Le6el$2

    0 (2)

    1 (3)

    2 (5)

    3 (9)

    0 (4)

    1 (5)

    2 (6)

    3 (8)

    2 (4)

    1 (2)

    0 (1)

    3 (7)

    +ogge-

    Stone

    Sklan$ky

    Brent-

    +ung

    Han-

    Carl$on+no#le$

    K?"!"!"!

    +no#le$

    K>"?"!"!

    Ladner-

    Fi$cher

    Han-

    Carl$on

    Ladner-

    Fi$cher

    3e#

    1!"!"!2

    1c2 +ogge-Stone

    !'?'!@'?>'@'>'D'E'D'E!'!!'!!?'!!!@'!?!>'!@!'!>

    @'>'!'?'@D'>E''!'D!!'E!?'!@'!!>'!!!'!?

    >'''D'E'!'?!'@!!'>!?'!@'!>'D!'E

    ?'

    !?@>DE!!!!?!@!>!

    !'!> '!@'!? '!! '!' ' E ' D ' ' ' > ' @ ' ? ' ! ' '

    1e2 +no#le$ K?"!"!"!

    !'?'!@'?>'@'>'D'E'D'E!'!!'!!?'!!!@'!?!>'!@!'!>

    @'>'!'?'@D'>E''!'D!!'E!?'!@'!!>'!!!'!?

    >'''D'E'!'?!'@!!'>!?'!@'!>'D!'E

    ?'

    !?@>DE!!!!?!@!>!

    !' !>' !@ '!?' !! '!' ' E ' D ' ' ' > ' @ ' ? ' ! ' '

    1b2 Sklan$ky

    !'

    ?'@'

    @'?'>D''E!!'!!@'!?!'!>

    '>D'>!'E!!'E!>'!?!'!?

    !?'E!@'E!>'E!'E

    !?@>DE!!!!?!@!>!

    !' !> '!@' !? '!!' !' ' E ' D ' ' ' > ' @ ' ? ' ! ' '

    !'@'?'>D''E!!'!!@'!?

    @'D'>!!'E!'!?

    'D'!@'E!'E

    !'!>

    !'E !@' !!' '

    !?@>DE!!!!?!@!>!

    !' !>' !@' !?' !!' !' ' E' D' ' ' >' @' ?' !' '

    1f2Ladner-Fi$cher

    1a2 Brent-+ung

    !'@'?'>D''E!!'!!@'!?!'!>

    @'D'>!!'E!'!?

    D'!'E

    !!'

    ''!@'

    !?@>DE!!!!?!@!>!

    !'!> '!@'!? '!!'! ' ' E ' D ' ' ' > ' @ ' ? ' ! ' '

    !'@'?'>D''E!!'!!@'!?!'!>

    @''?D'>'!!'E!@'!!'!?

    'D''?!!'>!@'!'E

    !?@>DE!!!!?!@!>!

    ! '! >'! @' !? ' !! ' ! ' ' E ' D ' ' ' > ' @ ' ? ' ! ' '

    1d2 Han-Carl$on

  • 7/25/2019 Lec 11 Adders

    44/44

    Su##ary

    &'ite't!e C#$ssii'$tion Logi'

    Le*e#s

    M$+

    ,$no!t

    $'"s Ce##s

    Carry-Ripple 3-! ! ! 3

    Carry-Skip n(> 3M> 0 ? ! !=?3

    Carry-Inc= n(> 3M> 0 ? > ! ?3

    Brent-+ung 1L-!" " 2 ?log?3 % ! ? ! ?3Sklan$ky 1" L-!" 2 log?3 3M? 0 ! ! = 3log?3

    +ogge-Stone 1" " L-!2 log?3 ? 3M? 3log?3

    Adder architecture$ offer area M po#er M delay tradeoff$=

    Choo$e the be$t one for your application=