In this lesson, you will learn how to chain individual full adders together to perform multi-bit binary addition and discover why the "ripple" effect creates a performance bottleneck.
Chaining Full Adders
We previously learned that a single Full Adder can add three bits (two input bits and one Carry-In) to produce a Sum and a Carry-Out. To add larger binary numbers, such as two 4-bit values, we can link these adders in a series. By connecting the Carry-Out of one stage to the Carry-In of the next, we create a Ripple Carry Adder (RCA).
For a 4-bit adder, the logic looks like this:
- Bit 0:
Full Addertakes inputsA0,B0, and aCarry-In(usually 0). - Bit 1:
Full Addertakes inputsA1,B1, and theCarry-Outfrom Bit 0. - Bit 2:
Full Addertakes inputsA2,B2, and theCarry-Outfrom Bit 1. - Bit 3:
Full Addertakes inputsA3,B3, and theCarry-Outfrom Bit 2.
The Propagation Delay
The name "ripple" comes from the way the carry signal moves through the circuit. Each full adder is a combinational circuit; it takes a finite amount of time for the input bits to propagate through the logic gates to reach the output.
Because the result of the second stage depends on the Carry-Out of the first, the second adder must wait for the first to finish. If you are adding 32-bit or 64-bit numbers, the carry must "ripple" all the way from the least significant bit (LSB) to the most significant bit (MSB).
If each adder takes a small amount of time () to process the carry, the total worst-case delay for an -bit ripple carry adder is approximately . As the number of bits increases, this propagation delay grows linearly, making the circuit progressively slower. In high-speed processor design, this "waiting" period often forces engineers to seek faster alternatives to avoid bottlenecking the entire system clock.
Key Takeaway: A Ripple Carry Adder chains full adders by passing the carry bit from one stage to the next, creating a simple but slow design where the total processing time increases linearly with the number of bits.