Binary Adders
Prerequisites[edit]
- W1011 Number Systems
- W1012 Alternative Base Addition
- W1013 Boolean Algebra
- W1014 Logic Gates
- W1015 Bitwise Operations
- W1016 Logic Composition
Introduction[edit]
One of the most fundamental operations performed by computers, aside from the logical operations that we've already discussed, is the arithmetic operation of addition.
Half-Adder[edit]
Let's consider what's required to add two, single-bit binary integers. We'll need one bit to represent the sum of the integers, and another to handle the carry. Representing this in the form of a truth table yields:
Inputs | Outputs | ||
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
This is formally termed a half-adder, a logic circuit capable of adding two bits.
- What truth table do you recognize that produces the output of the Carry column?
- What truth table do you recognize that produces the output of the Sum column?
Full-Adder[edit]
In order to add two single-bit binary integers PLUS a carry, we need an adder capable of adding three single-bit binary numbers. Again, we'll need one bit to represent the sum of the integers, and another to handle the carry. Representing this in the form of a truth table yields:
Inputs | Outputs | |||
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
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 |
This is formally termed a full-adder, a logic circuit capable of adding three bits.
- What do you notice about the relationship between the first-half (top four rows) of the full-adder as compared to all of the rows of the half-adder?
- Why is this true?
Ripple Carry Adder[edit]
We've learned that a half-adder can add two bits and full-adder can add three bits. How can we add a multi-bit number such as a 16-bit word? By cascading four adders such that the carry output of the prior adder feeds the carry input of the subsequent adder we can add two four-bit numbers. This concept can be easily extended to an arbitrary number of bits.
- Why does the least significant bit position use a half-adder rather than a full-adder?
- Assume that proper inputs are applied for all bits in numbers A and B. Will the correct output from S be available instantaneously? If not, why not?
- Assume that we have a standard (non-scientific calculator) capable of adding two 16-bit words. Two numbers, A and B, are added together. After the addition, it is noted that is high. What can we infer? What is this state commonly called?
Key Concepts[edit]
- A half-adder is a logic circuit capable of adding two bits and output a carry bit and a sum bit.
- A full-adder is a logic circuit capable of adding three bits and output a carry bit and a sum bit.
- A ripple-carry-adder is a logic circuit constructed of adders, cascaded in such a manner that the carry output of each adder feeds the carry input of the subsequent adder. Using this method we are able to add an arbitrary number of bits.
Exercises[edit]
References[edit]
- Adder (Wikipedia)
- Schocken, Simon and Nisan, Noam. The Elements of Computing Systems. MIT Press, 2005.