Full Adder (FA)
Adds three 1-bit inputs (A, B, carry-in) producing a sum and carry-out.
Problem
How do you add binary numbers one column at a time, including a carry from the previous column?
How it works
A full adder takes three 1-bit inputs: A, B, and Cin (carry-in from the previous bit position). It produces two outputs:
Sum = A ⊕ B ⊕ Cin (XOR of all three)
Cout = A·B + Cin·(A ⊕ B) (carry-out to the next bit position)
Internally it uses 2 XOR gates, 2 AND gates, and 1 OR gate. The critical path from Cin to Cout passes through 2 gate levels, which is why one FA contributes 2 gate delays to the carry chain.
A half adder is simpler: only 2 inputs (A, B), no carry-in. Sum = A⊕B, Carry = A·B. Used for the least-significant bit where there is no incoming carry.
Sum = A ⊕ B ⊕ Cin (XOR of all three)
Cout = A·B + Cin·(A ⊕ B) (carry-out to the next bit position)
Internally it uses 2 XOR gates, 2 AND gates, and 1 OR gate. The critical path from Cin to Cout passes through 2 gate levels, which is why one FA contributes 2 gate delays to the carry chain.
A half adder is simpler: only 2 inputs (A, B), no carry-in. Sum = A⊕B, Carry = A·B. Used for the least-significant bit where there is no incoming carry.
Key insightThe full adder is the universal building block of binary arithmetic. Every adder architecture chains or arranges FAs differently: but they all use the same FA at the core.