What's The Deal?: Two-Operand Addition
What's The Deal?: Two-Operand Addition
TWO-OPERAND ADDITION
Chapter two
Adder Bits
Half Adder
Cout S
Adder Bits
Full Adder
Cin
1
1
Cin
Cout S
Carry generation!
Carry
at i depends on
Non-trivial to do fast lots of inputs
Cout S
Full Adder
Half Adder
Cout S
Fast Adders
Propagate Adders
Produce
Carry
Avoid
Hybrid
Adders
Combine
Carry-Propagate Adders
Carry-Ripple
Switched Carry-Ripple (Manchester Carry)
Carry-Skip
Carry-Lookahead
Prefix Adders (Tree Adders)
Carry-Select (Conditional Sum)
Carry-Completion Sensing (self-timed)
Redundant Adders
Adder Performance
Carry-Save
Signed Digit
Adder Performance
Mirror Adder
Brute Force circuit
Inversions
Critical path passes through majority gate
Mirror Adder
Dual-rail domino
MCC
MCC
tsw
Timing of MCC
Sizing MCC
Sizing MCC
Timing MCC
Layout of MCC
Xi Yi Ci Ci+1 Si Comment
Kill
Kill
Kill
Kill
Propagate
Propagate
Propagate
Propagate
Propagate
Propagate
Propagate
Propagate
Generate
Generate
Generate
Generate
Two types
1-carry
Xi Yi Ci Ci+1 Si Comment
Carry Chains
Group Carries
Combine
subranges recursively
Group Carries
Example (2.1)
Example (2.1)
Example (2.1)
x = 0110|0010|1100|0011
y = 1011|1101|0001|1110
p|pppp|ppkp|ppgp
Example (2.1)
extend groups
x = 0110|0010|1100|0011
y = 1011|1101|0001|1110
p|pppp|ppkp|ppgp
Example (2.1)
Example (2.1)
Example (2.1)
The idea is to reduce the number of cells the worstcase carry must propagate through
Divide
=p
=k
=g
Carry travels through
at most two groups:
the initiating group
and the terminating
group.
Group Size
If you vary the group size with the groups at the ends shorter than the groups in the middle, you can speed things up
N=60, tc=ts=tmux=
M=6, TCSK=21
M=4,5,6,7,8,8,7,6,5,4, TCSK=17
Carry Lookahead
This
Carry Lookahead
CLA-4 Module
Remember: Ci = Gi + Ai Ci
C1 = G0 + A0 C0
C2 = G1 + A1 C1
= G1 + A1(G0 + A0 C0)
= G1 + A1 G0 + A1 A0 C0
C3 = G2 + A2G1 + A2A1G0 + A2A1A0C0
C4 = G3 + A3G2 + A3A2G1 + A3A2A1G0
+ A3A2A1A0C0
Or C4 = G3 + A3(G2 +A2( G1 + A1(G0 + A0 C0)))
10
CLG-4 Module
Gi Pi
Gi-1:0
Gi:0
11
CLA/Manchester adder
Two-Level CLA
12
Three-level CLA
PG (PA) cell
Overlapping Ranges
Then
For
13
PG (PA) Cells
Lower fanout
Increase levels
Fanout can
Be an issue
Max fanout 2
Min levels
14
Brent-Kung
Sklansky Adder
Kogge-Stone Adder
Logic levels:
L+l
Fanout:
2f + 1
Wiring tracks: 2t
Kogge-Stone
David Harris, Harvey Mudd
15
Han-Carlson
Knowles [2, 1, 1, 1]
Ladner-Fischer
Taxonomy Revisitied
Sklansky
Knowles
Kogge-Stone
David Harris, Harvey Mudd
Ladner-Fischer
Brent-Kung
Han-Carlson
When
Carry-select
Conditional
is 1-level select
Sum is a general case up to max levels
16
Carry-Select Adder
Carry-Select - Layout
Conditional Sum
Example
Step 1: Compute all the
bit results
Step 2: Use the known
results to select
the next groups
17
Pipelined Adders
the carry in a form that lets you tell when its finished
all carry chains have finished, the add is finished
One choice dual-rail encoding
When
18
form
Main idea is to reduce the carry propagation
But, increases number of bits in the result
Useful for things like accumulation,
multi-operand addition, multiplication, etc.
Using
Output
Several
result
19
229
117
Cin
256 128 64
32
16
Carry Save
20
Cin=0
Cin=1
Cout
Nagamatsu,
Toshiba
is represented in radix r
has one bit per radix-r digit
21
512
64
1
48
02
78
436
217
138
1*512
(7+1)*8
(3+0)*1
= 579
22
Summary
Case Study
Alpha 21064
5ns
Alpha 21064
Alpha 21064
Implemented
Provide
assuming Cin=0
assuming Cin=1
Six
23
Alpha 21064
24
Conditional Sums
25
Absolute Difference
Absolute Difference
26
Saturation
Simulated Performance
Adder Layout
Related Results
27
simple
Carry skip and carry select work well for small bit
sizes (8-16)
Hybrids
Adder Summary
Similar to my experiment
But
28