← Back to blogArithmetic circuits

Booth Multiplier Explained (With Examples)

Learn radix-2 and radix-4 Booth recoding, trace -3 × 5 step by step, and avoid signed-width errors in an iterative hardware multiplier.

DennyDenny
8 min read
Chalkboard feature illustration for “Booth Multiplier Explained (With Examples)”

TL;DR: Booth recoding rewrites runs of multiplier 1 bits as signed digits. Radix-2 Booth examines the pair (Q0,Q−1)(Q_0,Q_{-1}) on each iteration: 01 adds the multiplicand, 10 subtracts it, and 00 or 11 does nothing before an arithmetic right shift. A width-safe nn-bit implementation sign-extends the multiplicand and uses an (n+1)(n+1)-bit accumulator, avoiding the special failure at the most-negative value. Radix-4 modified Booth reduces the partial-product count to about half by choosing from 0,±M,±2M0,\pm M,\pm2M.

Binary multiplication can be built from shifts and additions. The challenge is not that two’s-complement operands are impossible to multiply without Booth—they are not—but that sign handling and partial-product generation must be designed correctly.

Booth’s method gives a uniform signed recoding and compresses runs of 1 bits. It is useful in two different architectures:

  • an iterative multiplier, which reuses one adder across several cycles
  • a parallel multiplier, which generates recoded partial products and reduces them with an adder/compressor tree

Those architectures share the recoding idea but have different latency, area, and timing.

The Run-of-Ones Identity

Consider a run of binary ones from bit jj through bit kk, where k≥jk\ge j:

2j+2j+1+⋯+2k=2k+1−2j2^j + 2^{j+1} + \cdots + 2^k = 2^{k+1} - 2^j

For example:

0011112=0100002−0000012001111_2 = 010000_2 - 000001_2

Ordinary unsigned shift-and-add would add four shifted copies of the multiplicand for 1111. Booth recoding represents that run with a subtraction at its low boundary and an addition at the position above its high boundary.

This does not guarantee fewer nonzero operations for every bit pattern. A long run benefits; isolated or alternating ones can provide no reduction and can increase the number of add/subtract decisions. A fixed-latency radix-2 iterative multiplier still performs nn iterations—the recoding changes the arithmetic action within each iteration, not automatically the cycle count.

Radix-2 Booth Recoding

Append an implicit zero below the multiplier:

Q−1=0Q_{-1}=0

At iteration ii, inspect the current least-significant multiplier bit Q0Q_0 and the saved previous bit Q−1Q_{-1}:

Q0Q_0Q−1Q_{-1}Accumulator action
00no change
01add MM
10subtract MM
11no change

Then arithmetic-shift the combined accumulator, multiplier, and saved bit right by one position.

The pair detects boundaries:

  • 10 marks the low end of a run of ones, so subtract
  • 01 marks the high end after shifting through the run, so add
  • equal adjacent bits are inside a constant run, so no arithmetic action is needed

The table’s bit order matters. Some texts print (Q−1,Q0)(Q_{-1},Q_0) instead; that reverses the row labels. Always state the convention.

A Width-Safe Iterative Datapath

Let both input operands be signed nn-bit two’s-complement values:

  • MM: multiplicand
  • QQ: multiplier

Use:

  • MeM_e: MM sign-extended to n+1n+1 bits
  • AA: an n+1n+1-bit accumulator, initially zero
  • QQ: the nn-bit multiplier register
  • Q−1Q_{-1}: one saved bit, initially zero
  • an iteration counter from 0 to n−1n-1

For each of nn iterations:

  1. inspect (Q0,Q−1)(Q_0,Q_{-1})
  2. if 01, set A←A+MeA \leftarrow A+M_e
  3. if 10, set A←A−MeA \leftarrow A-M_e
  4. if 00 or 11, leave AA unchanged
  5. arithmetic-shift the concatenation {A,Q,Q−1}\{A,Q,Q_{-1}\} right by one

After nn iterations, discard the redundant top sign-extension bit of AA. The remaining nn bits of AA concatenated with QQ form the signed 2n2n-bit product.

Why the extra accumulator bit matters

For an nn-bit two’s-complement number, the representable range is:

−2n−1≤x≤2n−1−1-2^{n-1} \le x \le 2^{n-1}-1

The positive magnitude of −2n−1-2^{n-1} does not fit in nn bits. A design that precomputes -M at only nn bits can therefore fail when MM is the most-negative value. Sign-extending MM and using an (n+1)(n+1)-bit accumulator makes both MeM_e and −Me-M_e representable during the algorithm.

Worked Example: −3×5-3 \times 5

Use 4-bit operands:

M=−3=11012,Q=5=01012M=-3=1101_2,\qquad Q=5=0101_2

Sign-extend the multiplicand to five bits:

Me=111012M_e=11101_2

Initialize:

A=00000,Q=0101,Q−1=0A=00000,\quad Q=0101,\quad Q_{-1}=0

The table shows the pair and arithmetic action, followed by the state after the combined arithmetic right shift:

IterationPair (Q0,Q−1)(Q_0,Q_{-1})Action before shiftAA after shiftQQ after shiftQ−1Q_{-1}
initial——0000001010
110A−Me=00011A-M_e=000110000110101
201A+Me=11110A+M_e=111101111101010
310A−Me=00010A-M_e=000100000100101
401A+Me=11110A+M_e=111101111100010

After four iterations, discard the redundant high sign bit of AA:

A[3:0]  ∣∣  Q=1111  00012A[3:0]\;||\;Q = 1111\;0001_2

As an 8-bit two’s-complement value:

111100012=−1511110001_2=-15

which matches −3×5-3\times5.

Trace one combined shift

After the first subtraction:

{A,Q,Q−1}={00011, 0101, 0}\{A,Q,Q_{-1}\} = \{00011,\ 0101,\ 0\}

Arithmetic right shift copies the accumulator sign bit into the new top position and moves every other bit one place:

{00001, 1010, 1}\{00001,\ 1010,\ 1\}

The shift must act on the whole concatenated register. Shifting AA and QQ independently would lose the bit transfer across their boundary.

Hardware Blocks

A reusable iterative Booth multiplier contains:

  • an (n+1)(n+1)-bit multiplicand register or input path
  • an (n+1)(n+1)-bit accumulator
  • an nn-bit multiplier register plus Q−1Q_{-1}
  • an (n+1)(n+1)-bit adder/subtractor
  • pair-decode control for add, subtract, or hold
  • a combined arithmetic shifter
  • an iteration counter and busy/done control

The adder is reused across all iterations, which saves area relative to a fully parallel multiplier but costs latency. Whether one iteration takes one clock or several microsteps depends on the controller and datapath.

The ALU component can supply add/subtract behavior in a teaching circuit, but confirm its width and signed overflow behavior. A shift register illustrates serial movement; the Booth datapath needs a wider combined register whose top bit is sign-filled.

Radix-4 Modified Booth

Radix-4 modified Booth examines overlapping 3-bit windows and recodes two multiplier bits per digit. Append a zero at the low end and sign-extend the multiplier at the high end as required.

For a window (Q2i+1,Q2i,Q2i−1)(Q_{2i+1},Q_{2i},Q_{2i-1}):

WindowRecoded multiple
00000
001+M+M
010+M+M
011+2M+2M
100−2M-2M
101−M-M
110−M-M
11100

The available multiples are:

{0, +M, −M, +2M, −2M}\{0,\ +M,\ -M,\ +2M,\ -2M\}

2M2M is a left shift, so these partial products are relatively economical to generate. For an nn-bit multiplier, radix-4 produces approximately ⌈n/2⌉\lceil n/2\rceil recoded digits instead of nn radix-2 digits.

That reduction can:

  • halve the iterations in an iterative radix-4 design
  • reduce the number of partial-product rows in a parallel design

It does not make the complete multiplier twice as fast automatically. Recoding, sign correction, partial-product generation, reduction, routing, final addition, and pipelining all contribute to timing.

Parallel Reduction: Wallace, Dadda, and Final Adders

A high-throughput multiplier can generate partial products in parallel, reduce their columns with carry-save compressors, and finish with a carry-propagate adder.

Wallace and Dadda trees are two classic reduction schedules. Modified Booth recoding can be placed before such a tree to reduce the number of rows. The final adder might use a carry-lookahead, parallel-prefix, carry-select, or another structure selected for the target technology.

“Combinational” does not necessarily mean “one processor cycle.” A wide multiplier may be pipelined across several stages to meet a target clock period, and some processors use iterative units for area or power reasons. The architecture is an implementation choice.

Booth vs Other Multiplier Structures

ApproachSigned operationPartial-product or cycle countTypical tradeoff
Basic iterative shift/addpossible with correct sign handlingcommonly nn iterationssmall datapath, straightforward control
Radix-2 iterative Boothnative two’s-complement recodingnn iterationsuniform signed algorithm; add/subtract/skip
Radix-4 iterative Boothnative two’s-complement recodingabout ⌈n/2⌉\lceil n/2\rceil iterationsmore decode/multiple selection
Parallel partial-product array/treesigned or unsigned variantsrows processed concurrentlymore hardware; can be pipelined
Radix-4 Booth plus reduction treenative signed recodingabout half as many initial rowscommon high-performance design option

There is no universal winner. Operand width, target cells or FPGA resources, throughput, latency, area, power, and verification effort determine the right structure.

Build It in DigiSim

For a 4-bit teaching implementation:

  1. Create a 5-bit accumulator from visible storage elements.
  2. Sign-extend the 4-bit multiplicand to 5 bits.
  3. Use a 5-bit add/subtract path.
  4. Store the 4-bit multiplier and a separate Q−1Q_{-1} bit.
  5. Decode (Q0, Q−1) into add, subtract, and hold.
  6. Implement the arithmetic shift across the complete {A,Q,Q−1} state.
  7. Count exactly four iterations.
  8. Expose busy, done, and the final 8-bit product.

Step through the −3×5-3\times5 table and compare every post-shift state. A mismatch on the first iteration usually points to reversed pair order or subtraction polarity; a mismatch after a negative accumulator shift usually points to logical rather than arithmetic shift.

Verification Checklist

For exhaustive verification of a small nn-bit multiplier, test all:

2n×2n=22n2^n \times 2^n = 2^{2n}

input pairs against a signed reference product represented at 2n2n bits.

At minimum, include:

  • 0×x0\times x and 1×x1\times x
  • positive × positive
  • positive × negative
  • negative × positive
  • negative × negative
  • maximum positive values
  • the most-negative value −2n−1-2^{n-1}
  • −2n−1×−1-2^{n-1}\times -1
  • multiplier patterns 0000, 1111, 0101, and 1010
  • reset or restart while busy

Also assert:

  • exactly nn radix-2 iterations occur
  • done is emitted once per accepted operation
  • inputs are either latched or required to remain stable by contract
  • the result is not consumed before valid
  • the combined shift preserves the accumulator sign

An ideal functional simulation proves arithmetic sequencing, not the maximum hardware clock rate. Use static timing analysis after mapping the design to its target.

Continue Learning

Review two’s-complement arithmetic for sign extension and range, then compare ripple-carry addition with carry-lookahead structures.

Andrew D. Booth introduced the uniform signed method in his 1951 paper, “A Signed Binary Multiplication Technique”. The central recoding remains relevant, but a professional implementation still needs explicit widths, a defined latency contract, exhaustive signed testing, and target-specific timing analysis.

Apply the concept in a simulator model.