A topic in the Open Knowledge Graph — a free, open map of 15,290 topics and the order to learn them in.

Full Adder and Carry Propagation

College Depth 84 in the knowledge graph ☐ I know this ☆ Set as goal
212topics build on this
339prerequisites beneath it
See this on the map →
Combinational Circuit DesignBinary Adders: Half-Adders and Full-Adders+1 more→→Arithmetic Logic Unit (ALU)Carry Lookahead Adder Design+2 more
arithmetic adder carry-propagation

Core Idea

A full adder adds three bits (two operand bits plus carry-in) and produces a sum and carry-out. Cascading full adders creates a ripple-carry adder that adds multi-bit numbers, but the carry propagation delay grows linearly with bit width, creating a performance bottleneck in high-speed arithmetic.

Explainer

From your work with combinational logic, you know how to build circuits that compute Boolean functions of their inputs. A half adder adds two single bits, producing a sum (the XOR of the inputs) and a carry (the AND of the inputs). But real multi-bit addition requires handling a carry coming in from the previous column. A full adder extends the half adder to accept three inputs — two operand bits (A and B) plus a carry-in (Cin) from the adjacent lower-order position — and produces two outputs: a sum bit and a carry-out (Cout).

The logic is straightforward. The sum output is 1 when an odd number of the three inputs are 1: `Sum = A XOR B XOR Cin`. The carry-out is 1 when two or more inputs are 1: `Cout = (A AND B) OR (Cin AND (A XOR B))`. You can verify this against what you know about binary addition — adding three 1-bits gives 11 in binary (decimal 3), which is sum=1 and carry=1. A common implementation chains two half adders: the first computes A+B, producing an intermediate sum and carry; the second adds that intermediate sum to Cin, producing the final sum and a second carry. The overall carry-out is the OR of the two half-adder carries.

To add multi-bit numbers, you cascade full adders by connecting each stage's carry-out to the next stage's carry-in. For an N-bit addition, you chain N full adders (with the least significant stage's carry-in tied to 0, making it effectively a half adder). This is called a ripple-carry adder, and it correctly computes the sum — but with a significant speed limitation. Each full adder must wait for the carry-out of the previous stage before it can compute its own outputs. In the worst case (adding 1111...1 + 0001, where the carry ripples through every position), the delay is proportional to N. For a 64-bit adder, that means 64 gate delays in series.

This linear delay is the motivation for faster adder designs you will encounter next, particularly the carry-lookahead adder. The key insight of carry-lookahead is that each full adder either generates a carry (both A and B are 1, so a carry-out happens regardless of carry-in) or propagates a carry (exactly one of A and B is 1, so the carry-out equals the carry-in). By computing all the generate and propagate signals in parallel and using them to calculate carries directly, a carry-lookahead adder reduces the delay from O(N) to O(log N) — a dramatic improvement for wide datapaths.

Practice Questions 5 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Addition Within 10 → Number Bonds to 10 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Comparing and Ordering Integers → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Boolean Algebra → Boolean Type and Truth Values → Comparison Operators and Boolean Tests → Logical Operators and Boolean Algebra → Boolean Algebra and Fundamental Laws → Logic Gates Fundamentals → Implementing Boolean Functions with Gates → Karnaugh Map Simplification → Combinational Circuit Design → Flip-Flops and Latches → Binary Counters: Design and Analysis → Binary Arithmetic → Fixed-Point Number Representation → Two's Complement Representation → Overflow and Underflow Detection → Binary Adders: Half-Adders and Full-Adders → Full Adder and Carry Propagation

Longest path: 85 steps · 339 total prerequisite topics

Prerequisites (3)

Leads To (4)