3.3.12 · D4Combinational Circuits

Exercises — Combinational multipliers

2,273 words10 min readBack to topic

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.
Figure — Combinational multipliers

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 :

Figure — Combinational multipliers

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