Professional Documents
Culture Documents
Lecture 8/9
• Manchester Carry
• Carry Select
• Paralle Prefix
Brent-Kung
Kogge-Stone
• Delay and Power Comparisons
Cout Cout S
S
A B Cout S A B C Cout S
0 0 0 0 0
0 1 0 0 1
1 0 0 1 0
1 1 0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
A B Cout S A B C Cout S
0 0 0 0 0 0 0 0 0
0 1 0 1 0 0 1 0 1
1 0 0 1 0 1 0 0 1
1 1 1 0 0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
A A B B C C
A A
B B
A
B S B
C C C
A B B
S
A C C C A
MAJ
B Cout
Cout
C B
B B C A
A B B
A A
8 A 8 !Co 4 Ci 6 !S
Ci
4 A 4 2 Ci 3
A 3
A 4 B 4 B 4 A 2 B 2 Ci 2
B 3
Co S
B P
P
P !Cout S
A A Cin Cin
P
!B !P
A
!P Sum generation
P !P
Carry generation
Signal set-up
ECE 555 Digital Circuits & Components 9
Carry-Ripple Adder
Simplest design: cascade full adders
• Critical path goes from Ci to Co
• Design full adder to have fast carry delay
A4 B4 A3 B3 A2 B2 A1 B1
Cout Cin
C3 C2 C1
S4 S3 S2 S1
• Worst case delay linear with the number of bits
td = O(N)
tadder = (N-1)tcarry + tsum
A B A B
Ci FA Co Ci FA Co
S S
S A B C i = S A B Ci
C o A B C i = Co A B Ci
A4 B4 A3 B3 A2 B2 A1 B1
Cout Cin
C3 C2 C1
S4 S3 S2 S1
B 6
A 8 B 8 B 8 A 4 B 4 Ci 4
A 6
8 A 8 !Co 4 Ci 6 !S
Ci
4 A 4 2 Ci 3
A 3
A 4 B 4 B 4 A 2 B 2 Ci 2
B 3
!Ci+1 !Ci
Gi
Pi
clk
Total delay of
• time to form the switch control signals Gi and Pi
• setup time for the switches
ECE 555 Digital Circuits & Components 16
4-bit Sliced MCC Adder
A3 B3 A2 B2 A1 B1 A0 B0
clk
!C4 !C0
S3 S2 S1 S0
3 3 3 3 3 clk
P3 P2 P1 P0
Ci,4 1 2 3 4
1 G3 2 G2 3 G1 4 G0 5 Ci,0
2 3 4 5 6 clk
!(G0 | P0 Ci,0)
!(G2 | P2G1 | P2P1G0 | P2P1P0 Ci,0)
Co,3
FA FA FA FA Ci,0
Co,3
S3 S2 S1 S0
BP = P0 P1 P2 P3 “Block Propagate”
P3 P2 P1 P0
!Cout Cin
G3 G2 G1 G0
BP
4-b Setup
Precompute the carry P’s G’s
out of each block for
both carry_in = 0 and “0” carry propagation 0
carry_in = 1 (can be
done for all blocks in
“1” carry propagation 1
parallel) and then select
the correct one
Cout multiplexer Cin
C’s
Sum generation
S’s
ECE 555 Digital Circuits & Components 22
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 A’s B’s A’s B’s A’s B’s
1
Setup Setup Setup Setup
P’s G’s P’s G’s P’s G’s P’s G’s
+1
mux +1
mux +1
mux +1
mux
Cout Cin
C’s C’s C’s C’s
“0” carry “0” carry “0” carry “0” carry “0” carry 0
“1” carry “1” carry “1” carry “1” carry “1” carry 1
Sum gen Sum gen Sum gen Sum gen Sum gen
Setup Setup
1
Setup
Setup Setup
P’s G’s P’s G’s P’s G’s P’s G’s P’sG’s
“0” carry “0” carry “0” carry “0” carry “0” carry 0
+6 +5 +4 +3 +2
“1” carry “1” carry “1” carry “1” carry “1” carry 1
+1 +1 +1 +1 +1
mux
Cout mux mux mux mux C
C’s C’s C’s C’s C’s in
40 Ripple adder
tp (in unit delays)
30
Linear select
20
10
Square root select
0
0 20 40 60
N
where
G = G’’ P’’G’
(G,P)
P = P’’P’
• is associative, i.e.,
[(g’’’,p’’’) (g’’,p’’)] (g’,p’) = (g’’’,p’’’) [(g’’,p’’)
(g’,p’)]
Gi:k Gi:k
Gi:j Gi:j
Pi:k Pi:k Gi:j Gi:j
Gk-1:j Gk-1:j
Pi:j Pi:j
Pi:j
Pk-1:j
Co,2 = G2 +P2Co,1
T = log2N
Parallel Prefix Computation
A = 2log2N
T = log2N - 2
C16 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1
A = N/2
T = log2N
Parallel Prefix Computation
A = 2log2N
T = log2N - 2
C16 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1
A = N/2
A = log2N
T = log2N
C16 C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1
A=N
Tadd = tsetup + log2N t + tsum
ECE 555 Digital Circuits & Components 34
More Adder Comparisons
70
60
50
40 RCA
CSkA
30 KS PPA
20
10
0
8 bits 16 bits 32 bits 48 bits 64 bits
60
50 RCA
MCC
40 CCSkA
CCSlA
30 B&K
20
10
16 bits 32 bits 64 bits
30
25
RCA
20 MCC
CCSkA
15 CCSlA
10 B&K
0
16 bits 32 bits 64 bits
80
RCA
60 MCCA
CCSkA
40 CCSlA
BKA
20
0
8 bits 16 bits 32 bits 48 bits 64 bits