Learning Objectives
By the end of this topic you will be able to:
Describe the half adder: its inputs, outputs and Boolean expressions
Describe the full adder and how it extends the half adder
Explain how multiple adders are chained to add multi-bit numbers
Describe the role and components of the Arithmetic Logic Unit (ALU)
Ripple Adder
Multi-bit Addition: Ripple Carry Adder
To add multi-bit binary numbers, multiple full adders are chained. The Carry-Out of each full adder becomes the Carry-In of the next more significant bit position. For the least significant bit, Cin = 0 (or a half adder is used).
Adding 0111 (7) + 0101 (5) using 4 full adders:
Bit 0: 1+1+Cin=0 → S=0, Cout=1
Bit 1: 1+0+Cin=1 → S=0, Cout=1
Bit 2: 1+1+Cin=1 → S=1, Cout=1
Bit 3: 0+0+Cin=1 → S=1, Cout=0
Result: 1100 = 12 ✓
The delay as carry ripples from LSB to MSB is called propagation delay — a limitation of the ripple carry adder. More advanced look-ahead carry adders avoid this.
ALU
The Arithmetic Logic Unit (ALU)
The ALU is the component within the CPU that performs arithmetic operations (addition, subtraction) and logical operations (AND, OR, NOT, XOR, bit shifts). It is a core part of the CPU's datapath.
ALU Inputs
• Two operands (from registers or memory)
• Operation select (from control unit)
• Carry-in flag (from status register)
ALU Outputs
• Result (to register or memory)
• Status flags: Zero (Z), Carry (C), Negative (N), Overflow (V) — stored in status/flags register, used for branching decisions
Common Mistakes
Don't Lose Marks
!
Saying the Sum output of a half adder uses an AND gate — the Sum output uses an XOR gate (A ⊕ B). The AND gate produces the Carry output. Swapping these is a very common error that fails the Boolean expression question.
!
Thinking the ALU only does arithmetic — the ALU performs both arithmetic (add, subtract, increment) and logical operations (AND, OR, NOT, XOR, bit shifts). The 'L' in ALU stands for Logic — always mention both types when describing the ALU.
!
Not explaining why carry-in matters in multi-bit adders — when adding multi-bit numbers, each bit position can receive a carry from the right. Without carry-in capability, carries would be lost, producing wrong results. This is the key reason full adders are needed.