Exercises — Combinational multipliers
Before we start, three words we will lean on constantly:
- Bit — a single binary digit, always either or .
- Partial product — the row you get by multiplying the whole multiplicand by one multiplier bit , then sliding it left by columns. (Slide left = multiply by .)
- Column — a vertical stack of bits that all carry the same weight ; the multiplier adds each column and pushes any overflow (the carry) to the next column up.

The figure above is the picture we return to again and again: AND gates make the dots, dots stack into columns, columns get added with carries flowing left. Keep it in mind.
Level 1 — Recognition
L1.1 — Spot the gate
Which single logic gate produces one partial-product bit ? Give the gate and its 1-line truth-table justification.
Recall Solution
AND gate. Multiplying two bits: , and every other combination gives . That truth table () is exactly the AND gate. So ====.
L1.2 — Count the ANDs
An -bit number times an -bit number. How many AND gates are needed to form all partial-product bits?
Recall Solution
One AND per pair . There are choices of and choices of , so For that is AND gates.
L1.3 — Output width
How many bits does the product of a -bit number and a -bit number need?
Recall Solution
The product is at most . So it fits in ==== bits.
Level 2 — Application
L2.1 — Full multiply
Compute using the column method (this is ). Give .
Recall Solution
Every here (all bits are 1).
- Column : just .
- Column : , carry .
- Column : , carry .
- Column : .
L2.2 — A zero partial product
Compute times .
Recall Solution
- (): AND with everywhere → .
- (): copy of , shifted left by 1 → .
- Sum: . . The whole point of a row is that it contributes nothing — AND with 0 kills it.
L2.3 — Three-bit product
Compute times , listing the three partial products.
Recall Solution
.
- (): (shift 0).
- (): .
- (): shifted left by 2 → . Add: . .
Level 3 — Analysis
L3.1 — Why a half adder in column of a ?
In the array, column holds bits and . Explain why it is summed by a half adder while column needs a full adder.
Recall Solution
A half adder adds two bits and has no carry-in. A full adder adds three bits: two plus a carry-in.
- Column has exactly two bits () and receives no carry from a lower column (column produced only one bit, no overflow). Two bits, no carry-in → half adder.
- Column has plus the carry coming up from column . Its stack can reach three bits → needs a full adder. So the number of bits landing in a column dictates the adder type.
L3.2 — Where does the top bit come from?
For an -bit -bit multiply, which single AND term is responsible for possibly setting the highest-weight bit, and what weight is it?
Recall Solution
In the largest exponent occurs at : This lone term can already set bit . After a carry ripples once more it can reach bit — which is why the product needs bits and no more.
L3.3 — Delay reasoning
Explain, in terms of the longest signal path, why an array multiplier has delay and not , even though it has cells.
Recall Solution
Delay counts the longest path a signal must travel, not the number of gates. The critical path enters at a top corner, crosses down the diagonal of the grid (about cells), then runs along the final carry chain at the bottom (about cells). That is adder delays, i.e. . The other cells compute in parallel, off the critical path, so they add area but not delay. Area , delay .
Level 4 — Synthesis
L4.1 — Boolean expressions for a multiplier
Derive closed Boolean formulas for of a multiplier (, ) using only AND (), XOR (), and the intermediate carry .
Recall Solution
From the column table: Check with :

L4.2 — Count the cells for a array multiplier
Estimate the number of AND gates and the number of adder cells (half + full) in a plain array multiplier.
Recall Solution
- AND gates: one per pair .
- Adder cells: a standard array uses rows of adders, each row about cells, so adder cells (mix of half and full). This is the area law in action: ANDs adders scales like .
L4.3 — Design choice: array vs. tree
You must multiply two -bit numbers and latency is critical. State which summation structure you would choose over a plain array, name the two building blocks it uses, and give its depth order.
Recall Solution
Replace the rippling column adders with a carry-save adder stage feeding a Wallace (or Dadda) tree.
- Building blocks: carry-save adders (which defer carries instead of rippling them) and a final carry-propagate adder at the very end.
- Depth: the tree reduces the pile of partial products in levels instead of . For , reduction levels — far shallower than a -stage ripple.
Level 5 — Mastery
L5.1 — Full -bit array trace
Multiply by . Show all three partial products, then add columns with carries and give the final 6-bit product .
Recall Solution
.
- (): (weight ).
- (): shifted left 1 → .
- (): . Column addition (right to left), weights :
| weight | ||||||
|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 0 | 0 | 0 | |
| 0 | 1 | 0 | 1 | 0 | 0 | |
| 0 | 0 | 0 | 0 | 0 | 0 |
Adding: , , , , rest →
L5.2 — Width bound at the extreme
For two -bit numbers, compute the maximum product , write it in binary, and confirm it fits in exactly bits with none to spare.
Recall Solution
. In binary , which is 8 bits. Here , and but , so it genuinely occupies bit (the top of the 8-bit field). The bound is tight — you cannot drop a bit.
L5.3 — Signed multiplication pitfall
You built an unsigned array multiplier. You feed it and intending in two's complement. What product does the unsigned array give, why is it wrong for signed inputs, and what standard fix repairs it?
Recall Solution
- What the unsigned array computes: it treats as the unsigned value , so it returns (8-bit: ).
- Why wrong: in two's complement , so the intended answer is . The array has no idea the top bit means "negative"; it just weights it as . So sign is mishandled.
- The fix: use Booth's algorithm, which recodes the multiplier to handle the sign bit correctly (or sign-extend and correct the last partial product). Booth also reduces the number of partial products, a bonus for speed.
L5.4 — Tie it all together
In one sentence per blank, connect the four mnemonic ideas ("AND makes it, ADD stacks it, SHIFT places it, CARRY paces it") to the four hardware realities: gate type, adder type, weight, overflow.
Recall Solution
- AND makes it → each partial-product bit is one AND gate ().
- ADD stacks it → full/half adders sum the bits that share a column.
- SHIFT places it → the weight decides which column a bit lands in.
- CARRY paces it → column overflow ripples upward and sets the worst-case delay .
Recall Quick self-quiz
One AND per what pair? ::: Per — that's ANDs total. Product of -bit and -bit needs how many bits? ::: . Delay order of an array multiplier? ::: (longest path = diagonal + bottom carry chain). What compresses partial products to depth? ::: A carry-save / Wallace (Dadda) tree, plus one final carry-propagate adder. Fix for signed multiplication? ::: Booth's algorithm (or sign-extend and correct).
Connections
- Combinational Multipliers — parent topic
- AND Gate — forms every partial-product bit
- Half Adder / Full Adder — the column-summing cells
- Ripple Carry Adder — the carry chain limiting array speed
- Carry Save Adder / Wallace Tree — faster summation
- Booth's Algorithm — correct signed multiplication
- Binary Number System — positional weights
- Combinational Circuits — no clock, pure gate delay