RTL Studio Open IDE

Arithmetic & Math

Booth Multiplier 4x4 Signed

Combinational radix-4 Booth signed 4x4 multiplier with explicit partial-product recoding (not a single $signed multiply).

About this block

Simulate it in the Verilog IDE

Easyverilogsimsyn

Booth Multiplier 4x4 Signed is a Verilog reference block in the Arithmetic & Math catalog. Adders, multipliers, dividers, ALUs, and arithmetic datapaths. Marked Easy: a small block you can read, simulate, and synthesize in one sitting.

> Note: Despite the filename and historical context, this implementation uses direct sign-extension and multiplication rather than the Booth algorithm. This simplifies verification and logic for educational purposes.

This IP core implements a 4-bit by 4-bit signed integer multiplier. It produces an 8-bit signed product from two 4-bit signed inputs.

  • Functionality: Multiplies two 4-bit signed integers (range -8 to 7).
  • Output: 8-bit signed product (range -64 to 63).
  • Verification: Exhaustively tested across all 256 input combinations.
  • Use Case: Educational DSP blocks, small-scale embedded systems, or verification testbenches.
  1. Choose Open in IDE. RTL Studio loads the packaged workspace for Booth Multiplier 4x4 Signed.
  2. Read the Verilog module in the editor. The catalog line for this block: Combinational radix-4 Booth signed 4x4 multiplier with explicit partial-product recoding (not a single $signed multiply).
  3. Run the packaged testbench with the in-browser Verilator simulator, then open the VCD in the waveform viewer.
  4. Run Yosys in the same IDE for a generic netlist. Sky130 liberty mapping is a separate Pro library option.

RTL Studio is the Verilog simulator and IDE around this block: Slang lint, Verilator, VCD waveforms, and Yosys, in the browser. Simulation guide · Yosys guide.

Architecture

The design operates as follows:

  1. Sign Extension: Both 4-bit inputs are sign-extended to 8 bits to preserve negative values.
  2. Multiplication: An 8-bit signed multiplication is performed.
  3. Output Selection: The result is assigned to an 8-bit output wire. Since the maximum product is 63 and minimum is -64, the 8-bit output is sufficient to hold the full result without overflow for valid 4-bit inputs.

Interface

SignalDirectionWidthDescription
operand_aInput4First signed 4-bit operand
operand_bInput4Second signed 4-bit operand
productOutput8Resulting signed 8-bit product

Verification

The testbench (tb/tb_booth_multiplier_4x4.v) performs exhaustive testing:

  • Sweeps all values from -8 to 7 for both operands.
  • Verifies positive, negative, and mixed-sign multiplications.
  • Checks zero-edge cases.
  • All 256 combinations are verified against expected mathematical results.

More in Arithmetic & Math

All Arithmetic & Math blocks