Conditional-Sum Adders and Parallel Prefix Network Adders FPGA Optimized Adders
Lec 11 Adders
-
Upload
supradeepthic -
Category
Documents
-
view
231 -
download
0
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=