You are on page 1of 31

ECE 645: Lecture 3

Conditional-Sum Adders
and
Parallel Prefix Network Adders
Required Reading
Behrooz Parhami,
Computer Arithmetic: Algorithms and Hardware Design

Chapter 7.4, Conditional-Sum Adder

Chapter 6.4, Carry Determination as Prefix Computation


Chapter 6.5, Alternative Parallel Prefix Networks
Conditional-Sum
Adders
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

6
Conditional Sum Adder:
Top-Level Block for One Bit Position

7
Three Levels of a Conditional Sum Adder
xi+3 yi+3 xi+2 yi+ xi+1 yi+1 xi yi
2
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

c=1 c=0 c=1 c=0


3 3 3 3

1
2+1

1
2 2
3 3

5 4+1 block carry-in


5
c=0
determines selection
c=1
8
16-Bit Conditional Sum Adder Example

9
Conditional Sum Adder Metrics

10
Parallel Prefix Network
Adders
Parallel Prefix Network Adders
Basic component - Carry operator (1)
g p
B” B’

B
g” p” g’ p’

g = g” + g’p”
p = p’p”

(g, p) = (g’, p’) ¢ (g”, p”) = (g” + g’p”, p’p”)


12
Parallel Prefix Network Adders
Basic component - Carry operator (2)
g p
overlap okay!
B” B’

B
g” p” g’ p’

g = g” + g’p”
p = p’p”

(g, p) = (g’, p’) ¢ (g”, p”) = (g” + g’p”, p’p”)


13
Properties of the carry operator ¢

Associative

[(g1, p1) ¢ (g2, p2)] ¢ (g3, p3) = (g1, p1) ¢ [(g2, p2) ¢ (g3, p3)]

Not commutative

(g1, p1) ¢ (g2, p2)  (g2, p2) ¢ (g1, p1)

14
Parallel Prefix Network Adders
Major concept

Given:
(g0, p0) (g1, p1) (g2, p2) …. (gk-1, pk-1)

Find:

(g[0,0], p[0,0]) (g[0,1], p[0,1]) (g[0,2], p[0,2]) … (g[0,k-1], p[0,k-1])

block generate
from index 0
ci = g[0,i-1] + c0p[0,i-1] to k-1

15
Similar to Parallel Prefix Sum Problem

Parallel Prefix Sum Problem


Given:
x0 x1 x2 … xk-1
Find:
x0 x0+x1 x0+x1+x2 … x0+x1+x2+ …+ xk-1
Parallel Prefix Adder Problem
Given:
x0 x1 x2 … xk-1
Find:
x0 x0 ¢ x 1 x0 ¢ x 1 ¢ x 2 … x0 ¢ x1 ¢ x2 ¢ … ¢ xk-1
where xi = (gi, pi) 16
Parallel Prefix Sums Network I

17
Parallel Prefix Sums Network I – Cost (Area)
Analysis

Cost = C(k) = 2 C(k/2) + k/2 =


= 2 [2C(k/4) + k/4] + k/2 = 4 C(k/4) + k/2 + k/2 =
= …. =
= 2 log2 k-1C(2) + k/2 (log2k-1) =
= k/2 log2k
C(2) = 1
Example:
C(16) = 2 C(8) + 8 = 2[2 C(4) + 4] + 8 =
= 4 C(4) + 16 = 4 [2 C(2) + 2] + 16 =
= 8 C(2) + 24 = 8 + 24 = 32 = (16/2) log2 16

18
Parallel Prefix Sums Network I – Delay Analysis

Delay = D(k) = D(k/2) + 1 =


= [D(k/4) + 1] + 1 = D(k/4) + 1 + 1 =
= …. =
= log2k D(2) = 1

Example:
D(16) = D(8) + 1 = [D(4) + 1] + 1 =
= D(4) + 2 = [D(2) + 1] + 2 =
= 4 = log2 16

19
Parallel Prefix Sums Network II (Brent-Kung)

20
Parallel Prefix Sums Network II – Cost (Area)
Analysis

Cost = C(k) = C(k/2) + k-1 =


= [C(k/4) + k/2-1] + k-1 = C(k/4) + 3k/2 - 2 =
= …. =
= C(2) + (2k - 2k/2(log 2k-1)) - (log2k-1) =
= 2k - 2 - log2k
C(2) = 1
Example:
C(16) = C(8) + 16-1 = [C(4) + 8-1] + 16-1 =
= C(2) + 4-1 + 24-2 = 1 + 28 - 3 = 26
= 2·16 - 2 - log216

21
Parallel Prefix Sums Network II – Delay Analysis

Delay = D(k) = D(k/2) + 2 =


= [D(k/4) + 2] + 2 = D(k/4) + 2 + 2 =
= …. =
= 2 log2k - 1 D(2) = 1

Example:
D(16) = D(8) + 2 = [D(4) + 2] + 2 =
= D(4) + 4 = [D(2) + 2] + 4 =
= 7 = 2 log2 16 - 1

22
8-bit Brent-Kung Parallel Prefix Network
x7 x6 x5 x4 x3 x2 x1 x0

4 –bit B-K PPN

s7 s6 s5 s4 s3 s2 s1 s0 23
4-bit Brent-Kung Parallel Prefix Network

x7’ x5’ x3’ x1’

2 –bit B-K PPN

s7 ’ s5 ’ s3 ’ s1 ’
24
8-bit Brent-Kung Parallel Prefix Network Adder
x7 y 7 x6 y 6 x5 y 5 x4 y 4 x3 y 3 x2 y 2 x1 y 1 x0 y 0

GP GP GP GP GP GP GP GP
g7,p7 g6,p6 g5,p5 g4,p4 g3,p3 g2,p2 g1,p1 g0,p0

c c c c

c c

c critical
path

c c c

g[0,7] g[0,6] g[0,5] g[0,4] g[0,3] g[0,2] g[0,1] g[0,0]


p[0,7] p[0,6] p[0,5] p[0,4] p[0,3] p[0,2] p[0,1] p[0,0] c0

C C C C C C C C
p0
c8 c7 p7 c 6 p6 c 5 p5 c 4 p4 c 3 p3 c 2 p2 c 1 p1
S S S S S S S S

s7 s6 s5 s4 s3 s2 s1 s0 25
Critical Path

GP
gi = xi yi
pi = xi  yi 1 gate delay

c
g = g” + g’ p”
2 gate delays
p = p’ p”

C
ci+1 = g[0,i] + c0 p[0,i] 2 gate delays

S si = pi  ci 1 gate delay

26
Brent-Kung Parallel Prefix Graph for 16 Inputs

27
Kogge-Stone Parallel Prefix Graph for 16 Inputs

28
Parallel Prefix Network Adders
Comparison of architectures
Network 2 Hybrid Kogge-Stone
Brent-Kung
Delay(k) 2 log2k - 2 log2k+1 log2k
Cost(k) 2k - 2 - log2k k/2 log2k k log2k - k + 1

Delay(16) 6 5 4
Cost(16) 26 32 49
Delay(32) 8 6 5
Cost(32) 57 80 129
29
Latency vs. Area Tradeoff

30
Hybrid Brent-Kung/Kogge-Stone Parallel Prefix
Graph for 16 Inputs

31

You might also like