Академический Документы
Профессиональный Документы
Культура Документы
CMOS VLSI
Design
Adders
Outline
Single-bit Addition
Carry-Ripple Adder
Carry-Skip Adder
Carry-Lookahead Adder
Carry-Select Adder
Carry-Increment Adder
Tree Adder
Adders
Slide 2
Single-Bit Addition
A
Half Adder
S
Cout
Cout
Full Adder
S
Cout
A
Cout
Cout
C
S
Cout S
Adders
Slide 3
Single-Bit Addition
A
Half Adder
S A B
Full Adder
S A B C
Cout
Cout AgB
Cout
Cout MAJ ( A, B, C )
C
S
Cout
Cout S
Adders
Slide 4
PGK
For a full adder, define what happens to carries
Generate: Cout = 1 independent of C
G=
Propagate: Cout = C
P=
Kill: Cout = 0 independent of C
K=
Adders
Slide 5
PGK
For a full adder, define what happens to carries
Generate: Cout = 1 independent of C
G =A B
Propagate: Cout = C
P = A B
Kill: Cout = 0 independent of C
K = ~A ~B
Adders
Slide 6
S A B C
Cout MAJ ( A, B, C )
A
S
MAJ
Cout
A
B
C
A
B
C
B
C
C
B
A
C
S
C
B
B
A
A
B
Cout
Adders
Slide 7
Cout
Adders
Slide 8
Layout
Clever layout circumvents usual line of diffusion
Use wide transistors on critical path
Eliminate output inverters
Adders
Slide 9
A
A
A
S
S
A
Cout
Cout
B
B
Slide
Adders
10
C_h
A_h
B_h
Cout _h
A_h
C_l
B_h
A_l
B_l
B_l
S_l
C_h
B_h
A_h
C_l
B_l
Cout _l
A_l
S_h
C_h
B_h
A_l
Slide
Adders
11
Cout
+
SN...1
Cin
Cin
00000
1111
+0000
1111
Cout
11111
1111
+0000
0000
Cin
carries
A4...1
B4...1
S4...1
Slide
Adders
12
Carry-Ripple Adder
Simplest design: cascade full adders
Critical path goes from Cin to Cout
Design full adder to have fast carry delay
A4
B4
Cout
A3
B3
C3
S4
A2
B2
C2
S3
A1
B1
Cin
C1
S2
S1
Slide
Adders
13
Inversions
Critical path passes through majority gate
Built from minority + inverter
Eliminate inverter and use inverting full adder
A4
B4
Cout
A3
B3
C3
S4
A2
B2
C2
S3
A1
B1
Cin
C1
S2
S1
Slide
Adders
14
Generate / Propagate
Equations often factored into G and P
Generate and propagate for groups spanning i:j
Gi: j
Pi: j
Base case
Gi:i Gi
Pi:i Pi
0 GCP
0:00:0 in
G0:0 G0
P0:0 P0
Sum:
Si
CMOS VLSI Design
Slide
Adders
15
Generate / Propagate
Equations often factored into G and P
Generate and propagate for groups spanning i:j
Gi: j Gi:k Pi:k gGk 1: j
Pi: j Pi:k gPk 1: j
Base case
Gi:i Gi Ai gBi
Pi:i Pi Ai Bi
0 GCP
0:00:0 in
G0:0 G0 Cin
P0:0 P0 0
Sum:
Si Pi Gi 1:0
CMOS VLSI Design
Slide
Adders
16
PG Logic
A4
B4
A3
B3
A2
B2
A1
B1
Cin
1: Bitwise PG logic
G4
P4
G3
P3
G2
P2
G1
P1
G0
P0
2: Group PG logic
G3:0
G2:0
G1:0
G0:0
C3
C2
C1
C0
3: Sum logic
C4
Cout
S4
S3
S2
S1
Slide
Adders
17
Carry-Ripple Revisited
Gi:0 Gi Pi gGi 1:0
A4
B4
G4
P4
A3
B3
G3
P3
A2
B2
G2
P2
A1
B1
G1
P1
Cin
G0
G3:0
G2:0
G1:0
G0:0
C3
C2
C1
C0
P0
C4
Cout
S4
S3
S2
S1
Slide
Adders
18
Carry-Ripple PG
Diagram
Bit Position
15
14
13
12
11
10
tripple
Delay
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
19
Carry-Ripple PG
Diagram
Bit Position
15
14
13
12
11
10
Delay
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
20
PG Diagram Notation
Black cell
i:k
Gray cell
k-1:j
i:k
i:j
Gi:k
Pi:k
Gk-1:j
Pk-1:j
Buffer
k-1:j
i:j
i:j
i:j
Gi:j
Gi:k
Pi:k
Gk-1:j
Pi:j
Gi:j
Gi:j
Gi:j
Pi:j
Pi:j
Slide
Adders
21
Carry-Skip Adder
Carry-ripple is slow through all N stages
Carry-skip allows carry to skip over groups of n bits
Decision based on n-bit propagate signal
Cout
A16:13 B16:13
A12:9 B12:9
A8:5 B8:5
A4:1
P16:13
P12:9
P8:5
P4:1
1
0
C12
+
S16:13
1
0
C8
+
1
0
S12:9
C4
+
S8:5
B4:1
1
0
Cin
S4:1
Slide
Adders
22
Carry-Skip PG Diagram
16
15
14
13
12
11
10
16:0 15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
23
Carry-Skip PG Diagram
16
15
14
13
12
11
10
16:0 15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
tskip t pg 2 n 1 ( k 1) t AO txor
CMOS VLSI Design
Slide
Adders
24
15
14
13
12
11
10
16:0 15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
25
Carry-Lookahead Adder
Carry-lookahead adder computes Gi:0 for many bits
in parallel.
Uses higher-valency cells with more than two inputs.
A16:13 B16:13
Cout
G16:13
P16:13
+
S16:13
C12
A12:9 B12:9
G12:9
P12:9
A8:5 B8:5
C8
+
S12:9
A4:1
C4
G8:5
P8:5
B4:1
G4:1
P4:1
S8:5
S4:1
Cin
Slide
Adders
26
CLA PG Diagram
16
15
14
13
12
11
10
16:0 15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
27
Higher-Valency Cells
i:j
Gi:k
Pi:k
Gk-1:l
Pk-1:l
Gl-1:m
Pl-1:m
Gm-1:j
Gi:j
Pi:j
Pm-1:j
Slide
Adders
28
Carry-Select Adder
Trick for critical paths dependent on late input X
Precompute two possible outputs for X = 0, 1
Select proper output when X arrives
Carry-select adder precomputes n-bit sums
For both possible carries into n-bit group
A16:13 B16:13
A12:9 B12:9
+
Cout
+
B8:5
C8
B4:1
C4
+
Cin
+
1
S12:9
A4:1
0
S16:13
C12
1
A8:5
S8:5
S4:1
Slide
Adders
29
Carry-Increment Adder
Factor initial PG and final XOR out of carry-select
15
14
13
12
11
10
13:12
9:8
14:12
15:12
5:4
10:8
11:8
6:4
7:4
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
tincrement
CMOS VLSI Design
Slide
Adders
30
Carry-Increment Adder
Factor initial PG and final XOR out of carry-select
15
14
13
12
11
10
13:12
9:8
14:12
15:12
5:4
10:8
11:8
6:4
7:4
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
tincrement t pg n 1 (k 1) t AO txor
CMOS VLSI Design
Slide
Adders
31
15
14
13
12
11
10
12:11
8:7
13:11
5:4
9:7
14:11
3:2
6:4
10:7
15:11
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
15
14
13
12
11
10
12:11
8:7
13:11
14:11
9:7
10:7
5:4
6:4
3:2
1:0
3:0
6:0
15:11
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
32
Tree Adder
If lookahead is good, lookahead across lookahead!
Recursive lookahead gives O(log N) delay
Many variations on tree adders
Slide
Adders
33
Brent-Kung
15 14 13 12 11 10
15:14
13:12
15:12
11:10
9:8
11:8
7:6
5:4
7:4
15:8
3:2
1:0
3:0
7:0
11:0
13:0
9:0
5:0
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
CMOS VLSI Design
Slide
Adders
34
Sklansky
15 14 13 12 11 10
15:14
13:12
11:10
15:12 14:12
15:8
14:8
11:8 10:8
13:8
9:8
7:6
7:4
5:4
6:4
3:2
3:0
1:0
2:0
12:8
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
35
Kogge-Stone
15 14 13 12 11 10
9:8
8:7
7:6
6:5
5:4
4:3
3:2
2:1
3:0
2:0
15:8
14:7
13:6
12:9
11:8 10:7
9:6
8:5
7:4
6:3
5:2
4:1
12:5
11:4 10:3
9:2
8:1
7:0
6:0
5:0
4:0
1:0
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
36
Slide
Adders
37
3 (7)
f (Fanout)
2 (6)
3 (9)
1 (5)
2 (5)
1 (3)
0 (2)
0 (4)
0 (1)
1 (2)
2 (4)
3 (8)
t (Wire Tracks)
Slide
Adders
38
3 (7)
f (Fanout)
Brent-Kung
2 (6)
Sklansky
3 (9)
1 (5)
2 (5)
1 (3)
0 (2)
0 (4)
0 (1)
1 (2)
2 (4)
Kogge-Stone
3 (8)
t (Wire Tracks)
Slide
Adders
39
Han-Carlson
15 14 13 12 11 10
15:14
13:12
11:10
9:8
7:6
5:4
3:2
15:12
13:10
11:8
9:6
7:4
5:2
3:0
15:8
13:6
11:4
9:2
7:0
5:0
1:0
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
CMOS VLSI Design
Slide
Adders
40
Knowles [2, 1, 1, 1]
15 14 13 12 11 10
9:8
8:7
7:6
6:5
5:4
4:3
3:2
2:1
3:0
2:0
15:8
14:7
13:6
12:9
11:8 10:7
9:6
8:5
7:4
6:3
5:2
4:1
12:5
11:4 10:3
9:2
8:1
7:0
6:0
5:0
4:0
1:0
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
41
Ladner-Fischer
15 14 13 12 11 10
15:14
13:12
15:12
11:10
9:8
11:8
15:8
13:8
15:8
13:0
7:6
5:4
7:4
7:0
11:0
3:2
1:0
3:0
5:0
9:0
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
42
Taxonomy Revisited
(f)Ladner-Fischer
(b) Sklansky
15
15 14 13 12 11 10
14
15:14
15:14
13:12
11:10
15:12 14:12
15:8
14:8
9:8
7:6
11:8 10:8
13:8
7:4
5:4
3:2
6:4
3:0
l (Logic Levels)
2:0
15:0 14:0 13:0 12:0 11:010:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
9:8
8:7
7:6
6:5
5:4
4:3
3:2
2:1
9:6
8:5
7:4
6:3
5:2
4:1
3:0
2:0
15:8
14:7
13:6
12:9
12:5
11:8 10:7
11:4 10:3
9:2
8:1
7:0
6:0
5:0
15:14
0 (2)
9:8
7:6
5:4
3:2
13:0
7:4
1:0
0:0
1:0
3:0
7:0
11:0
5:0
9:0
9:0
8:0
7:0
6:0
5:0
4:0
3:0
2:0
13:12
11:10
9:8
7:6
11:8
5:4
3:2
7:4
15:8
1:0
3:0
7:0
11:0
9:0
5:0
1 (2)
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
HanCarlson
(d) Han-Carlson
15 14 13 12 11 10
(c) Kogge-Stone
15 14 13 12 11 10
13:6
13:8
15:8
15:12
HanCarlson
2 (4)
14:7
15:8
13:0
Knowles
[2,1,1,1]
15:8
11:8
New
(1,1,1)
Knowles
[4,2,1,1]
1:0
0 (4)
0 (1)
15:014:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
11:10
15 14 13 12 11 10
4:0
1 (5)
1 (3)
2 (5)
10
(a) Brent-Kung
2 (6)
11
3 (7)
Sklansky
3 (9)
13:12
15:12
BrentKung
LadnerFischer
LadnerFischer
f (Fanout)
12
1:0
12:8
15 14 13 12 11 10
13
9:8
8:7
7:6
6:5
5:4
4:3
3:2
2:1
12:9
11:8 10:7
9:6
8:5
7:4
6:3
5:2
4:1
3:0
2:0
12:5
11:4 10:3
9:2
8:1
7:0
6:0
5:0
4:0
1:0
Kogge3 (8)
Stone
15:14
13:12
11:10
9:8
7:6
5:4
3:2
15:12
13:10
11:8
9:6
7:4
5:2
3:0
15:8
13:6
11:4
9:2
7:0
5:0
1:0
t (Wire Tracks)
15:0 14:0 13:0 12:0 11:0 10:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
15:0 14:0 13:0 12:0 11:010:0 9:0 8:0 7:0 6:0 5:0 4:0 3:0 2:0 1:0 0:0
Slide
Adders
43
Summary
Adder architectures offer area / power / delay tradeoffs.
Choose the best one for your application.
Architecture
Classification Logic
Levels
Max
Tracks
Fanout
Cells
Carry-Ripple
N-1
Carry-Skip n=4
N/4 + 5
1.25N
Carry-Inc. n=4
N/4 + 2
2N
Brent-Kung
(L-1, 0, 0)
2log2N 1
2N
Sklansky
(0, L-1, 0)
log2N
N/2 + 1
0.5 Nlog2N
Kogge-Stone
(0, 0, L-1)
log2N
N/2
Nlog2N
Slide
Adders
44