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
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.
- Choose Open in IDE. RTL Studio loads the packaged workspace for Booth Multiplier 4x4 Signed.
- 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).
- Run the packaged testbench with the in-browser Verilator simulator, then open the VCD in the waveform viewer.
- 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:
- Sign Extension: Both 4-bit inputs are sign-extended to 8 bits to preserve negative values.
- Multiplication: An 8-bit signed multiplication is performed.
- 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
| Signal | Direction | Width | Description |
|---|---|---|---|
operand_a | Input | 4 | First signed 4-bit operand |
operand_b | Input | 4 | Second signed 4-bit operand |
product | Output | 8 | Resulting 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
- 1-Bit Full Adder
- 1-Bit Full Adder — L1 Upgrade — L2 Upgrade
- 1-Bit Half Adder
- 16-Bit Carry-Select Adder
- 16-Bit Signed Adder with Overflow
- 2-Bit Saturating Up/Down Counter — L2 Upgrade
- 32-Bit Count Leading Zeros
- 32-Bit Equality Comparator — L1 Upgrade — L2 Upgrade
- 32-Bit Population Count — L1 Upgrade — L2 Upgrade
- 4-bit Adder-Subtractor with Overflow
- 4-Digit BCD Adder with Carry Propagation — L2 Upgrade
- 4-Input 8-Bit Adder Tree — L2 Upgrade
- 8-Bit Absolute Value — L1 Upgrade
- 8-Bit ALU Slice with Add/Sub and Logic Ops — L2 Upgrade
- 8-Bit Carry-Save Adder (3:2) — L2 Upgrade
- 8-Bit Count Trailing Zeros — L1 Upgrade — L2 Upgrade