Adders

Index, Next

We will deliberately and hierarchically build larger and larger adder components...

Basics

Of course, we remember:

0+0 = 0 1+0=1
0+1 = 0 1+1=10 (2)

Half Adder

Add two binary bits...

Block diagram

Truth Table

 

xy Sum Carry
00 0 0
01 1 0
10 1 0
11 0 1

Hey, we know these functions (in the truth table):

S = x XOR y
C = x y

Full Adder

Now, add three binary bits...

Block Diagram

Truth Table

 

xy Sum Carry
000 0 0
001 1 0
010 1 0
011 0 1
100 1 0
101 0 1
110 0 1
111 1 1

 

We can build the full adder using two half adders and an OR gate:

Figure 3-27, p. 127

Ripple Carry Adder

Cascade n full adders to add binary numbers of arbitrary size...

Example: Add two 4-bit numbers... A3A2A1A0 + B3B2B1B0

Solution using full adders chained together:

Figure 3-28, p. 128

This solution is:

Clean
Simple
Expandable
Hierarchical
BUT slow...
carry bit must propagate through each full adder in the design
gets slower as you increase number of bits to add

The solution to this "slowness" is a Carry Lookahead Adder... we'll do this later.