LPV_07
LPV_07
• Carry= AB+AC+BC
Static CMOS Full Adder
• Sum = ABC + AB’C’+A’B’C+AB’C
• Carry= AB+AC+BC
=AB+C(A+B)
Static CMOS Full Adder
Sum
Static CMOS Full Adder
Carry
• Requires 30 transistors
Precharged circuits
Clk Mp Clk Mp on
1
Out Out
In1 CL
A
In2 PDN
C
In3
B
Clk Me
off
Clk Me
CMOS 30 5 21,294 3
NORA 22 1 14,319 1
CVSL 24 3 25,740 4
DCVS 22 1 21,080 2
CNTL 34 6 40,020 7
ECDL 35 7 34,170 6
ESCL 24 3 26,522 5
Delays
C1 = G0 + P0.C0
C2 = G1 + P1.C1 = G1 + P1.G0 + P1.P0.C0
C3 = G2 + P2.G1 + P2.P1.G0 + P2.P1.P0.C0
C4 = G3 + P3.G2 + P3.P2.G1 + P3P2.P1.G0 + P3P2.P1.P0.C0
Si = Ai Bi Ci = Pi Ci.
4-bit Carry-Look Ahead Adder
Ci+1 = Gi + Pi.Ci
Gi = Ai.Bi
PG= P3.P2.P1.P0;
GG = G3 + P3G2 + P3.P2.G1. + P3.P2.P1.G0
Carry Save Adder Design
Single Bit Carry Save Adder
Block X Y Z
Xi Yi i i i
Full Carr-Save
Cout Adder Cin Adder
Block Block
Si Ci Si
Carry Save Adder Design
Example of Carry Save
X: 10011
Addition
X: 10011
Y: + 11001 Y: + 11001
Z: + 01011 Z: + 01011
C: 11011 S: 00001
X: 10011
Y: + 11001
Z: + 01011
S: 00001
C: 11011
Sum: 110111
Carry Save Adder Design
3 Operand Carry-Save
Addition
...
X15 Y15 Z15 X14 Y14 Z14 X1 Y1 Z1 X0 Y0 Z0
Carry-Save
Adder
Carry-Save
Adder ... Carry-Save
Adder
Carry-Save
Adder
Block Block Block Block
X [15:0] X [15:0]
CARRY CARRY
LOOK-AHEAD Sum [16:0] Y [15:0] SAVE Sum [17:0]
ADDER ADDER
Y [15:0] Z [15:0]
0
1
m-bit block m-bit block
m-bit block
m
m
1 0 1 0
Block 0
m
Block 1
Analysis of Carry-Select Adder
• Delay analysis: Worst-case path is through Block0 then control of
multiplexer chain
• O(m) gates in Block0
• O(p = n/m) gates in multiplexer chain
1 0 1 0
0,f 0,0
0,0 0,1 0 e
0
0,0 0
Hardware for the Carry Select
Adder
• n blocks, each of n gates
• Additional hardware is n multiplexers +
additional adder for each block but the
first
• n - n additional adder bits
• Therefore n + 2n - n = 2n gates
• Exactly twice the size of an ordinary
adder, but delay is n instead of n
One-level k-bit Carry-Select Adder
Two-level k-bit Carry Select Adder
Conditional Sum Adder
• Extension of carry-select adder
• Carry select adder
▫ One-level using k/2-bit adders
▫ Two-level using k/4-bit adders
▫ Three-level using k/8-bit adders
▫ Etc.
• Assuming k is a power of two, eventually
have an extreme where there are log2k-
levels using 1-bit adders
▫ This is a conditional sum adder
Conditional Sum Adder:
Top-Level Block for One Bit Position
Three Levels of a Conditional Sum
Adder
x y x
i+3y i+3x y x y i+2 i+2 i+1 i+1 i i
branch point
1-bit conditional
sum block concatenation
c=1 c=0 c=1 c=0 c=1 c=0 c=1 c=0
2 2 2 2 2 2 2 2
1 1
1+1
1 1
2 2 1 1 2 2 1 1
1
2+1
1
2 2
3 3
block carry-in
determines selection
5 4+1
5
c=0
c=1
16-Bit Conditional Sum Adder Example
Conditional Sum Adder Metrics
Carry Skip Adder
Ripple-Carry n n
Carry-Bypass n n+n
Simulation