A full adder is a combinational logic circuit that adds three single-bit binary inputs (A, B, and a Carry-In) to produce a two-bit binary output consisting of a Sum and a Carry-Out. While a half adder can only handle two inputs, the full adder’s ability to accept a carry bit from a previous stage is what makes multi-bit binary arithmetic possible in everything from simple calculator chips to modern microprocessors. Understanding the full adder schematic is the bridge between abstract Boolean algebra and physical silicon routing.
The Core Logic: Truth Table and Gate-Level Schematic
Before you wire up discrete ICs or write Verilog, you need to internalize the truth table. The full adder evaluates all eight possible combinations of its three inputs. The Sum output behaves like a 3-input XOR gate (it goes HIGH when an odd number of inputs are HIGH), while the Carry-Out goes HIGH when at least two inputs are HIGH (majority logic).
| Carry-In (Cin) | Input A | Input B | Sum (S) | Carry-Out (Cout) | Decimal Equivalent |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 + 0 + 0 = 0 |
| 0 | 0 | 1 | 1 | 0 | 0 + 0 + 1 = 1 |
| 0 | 1 | 0 | 1 | 0 | 0 + 1 + 0 = 1 |
| 0 | 1 | 1 | 0 | 1 | 0 + 1 + 1 = 2 |
| 1 | 0 | 0 | 1 | 0 | 1 + 0 + 0 = 1 |
| 1 | 0 | 1 | 0 | 1 | 1 + 0 + 1 = 2 |
| 1 | 1 | 0 | 0 | 1 | 1 + 1 + 0 = 2 |
| 1 | 1 | 1 | 1 | 1 | 1 + 1 + 1 = 3 |
At the gate level, the Boolean equations dictate the schematic:
- Sum: $S = A \oplus B \oplus C_{in}$
- Carry-Out: $C_{out} = (A \cdot B) + (C_{in} \cdot (A \oplus B))$
If you are building this from discrete 7400-series logic, a single full adder requires two XOR gates, two AND gates, and one OR gate. In practice, this means burning through a 74LS86 (XOR), a 74LS08 (AND), and a 74LS32 (OR) just to add three bits. This is why bench builders and engineers almost universally reach for dedicated 4-bit adder ICs like the TI SN74LS283 or the CMOS onsemi MC74HC283A, which pack four full adders into a single 16-pin DIP package.
Worked Numeric Example: 4-Bit Ripple Carry Addition
To see what this changes in a real circuit, let’s trace a 4-bit addition using cascaded full adders (a ripple carry architecture). We will add 5 (0101) and 7 (0111). The Carry-In to the least significant bit (LSB) is tied to GND (0).
Bitwise Trace: 0101 + 0111
Bit 0 (LSB): A=1, B=1, Cin=0.
Sum = 1 $\oplus$ 1 $\oplus$ 0 = 0. Carry-Out = 1.
Bit 1: A=0, B=1, Cin=1 (from Bit 0).
Sum = 0 $\oplus$ 1 $\oplus$ 1 = 0. Carry-Out = 1.
Bit 2: A=1, B=1, Cin=1 (from Bit 1).
Sum = 1 $\oplus$ 1 $\oplus$ 1 = 1. Carry-Out = 1.
Bit 3 (MSB): A=0, B=0, Cin=1 (from Bit 2).
Sum = 0 $\oplus$ 0 $\oplus$ 1 = 1. Carry-Out = 0.
Final Result: 1100 (Decimal 12). The math checks out.
The Propagation Delay Catch: In a ripple carry schematic, the carry bit must propagate sequentially from the LSB to the MSB. Think of it like a baton pass in a relay race; the final runner (Bit 3) cannot start running until the baton (Carry-Out) is handed off through all previous stages. If a single full adder stage has a propagation delay of 20ns, a 4-bit ripple adder will take 80ns for the MSB to settle. If you cascade four of these ICs to make a 16-bit adder, your MSB won't stabilize for 320ns—a massive bottleneck in high-speed digital design.
Where You Meet This in Practice
You rarely wire discrete full adder schematics on a breadboard outside of a university lab, but the underlying architecture is everywhere in modern electronics:
- Microcontroller ALUs: The Arithmetic Logic Unit (ALU) inside an ATmega328P or an ARM Cortex-M0 relies on banks of full adders to execute
ADDandADC(Add with Carry) assembly instructions. The Carry-Out of the ALU directly feeds the microcontroller's STATUS register (the 'C' flag). - FPGA Carry Chains: If you program an AMD/Xilinx UltraScale FPGA, you don't use standard Look-Up Tables (LUTs) for addition. The synthesis tool automatically maps your
+operators to dedicatedCARRY8primitives. These are hard-wired full adders etched directly into the silicon fabric, allowing carry signals to bypass standard routing matrices and achieve gigahertz clock speeds. - BCD Correction Circuits: When driving 7-segment displays, binary addition often yields invalid Binary Coded Decimal (BCD) results (e.g., 1010, which is 'A' in hex but invalid in BCD). A secondary bank of full adders is used to conditionally add '0110' (6) to the result to force it back into valid BCD territory.
Bench Tip: When wiring a 74LS283 or 74HC283 on a breadboard, always place a 100nF X7R ceramic decoupling capacitor across pin 16 (VCC) and pin 8 (GND) within 2mm of the IC body. Simultaneous switching of multiple internal full adders causes massive transient current spikes on the power rail, which can induce false carry-outs if the rail sags.
Common Confusions: Half Adders and Carry-Lookahead
The most frequent mistake beginners make is confusing a full adder with a half adder, or misunderstanding how commercial 4-bit ICs solve the ripple delay problem.
| Feature | Half Adder | Full Adder (Ripple) | Carry-Lookahead Adder (e.g., 74LS283) |
|---|---|---|---|
| Inputs | 2 (A, B) | 3 (A, B, Cin) | Multiple bits + Cin |
| Cascadable? | No (lacks Cin) | Yes | Yes |
| Gate Complexity | 1 XOR, 1 AND | 2 XOR, 2 AND, 1 OR | Complex Generate/Propagate logic |
| Delay Scaling | N/A | Linear (O(n)) | Logarithmic/Constant (O(log n)) |
What people get wrong: Many textbooks teach the 4-bit ripple carry adder and then immediately introduce the 74LS283 IC as if it's just four ripple-cascaded full adders in a single package. It isn't. The NXP 74HC283 and TI equivalents use carry-lookahead logic. Instead of waiting for the carry to ripple through each stage, the IC generates 'Propagate' (P) and 'Generate' (G) signals for all bits simultaneously. This allows the Carry-Out for Bit 3 to be calculated in roughly the same time as Bit 0, slashing the 80ns delay down to about 20ns total.
Frequently Asked Questions
Can I use a full adder for subtraction?
Yes. By inverting the 'B' inputs (using NOT gates or XOR gates tied HIGH) and setting the initial Carry-In to 1, the full adder performs Two's Complement subtraction. This is exactly how the SUB instruction works in silicon.
What happens if I leave the Carry-In pin floating?
In TTL logic (74LS series), a floating input defaults HIGH, which will silently add 1 to your LSB and ruin your math. In CMOS (74HC series), a floating pin can oscillate, causing massive power draw and erratic outputs. Always tie unused Carry-In pins to GND via a direct wire or a 10kΩ pulldown resistor.






