Signed INT8 Multiply-Accumulate
Build the basic signed INT8 multiply-accumulate datapath used in DSP and machine-learning accelerators.
Task
On each rising clock edge with enable high, accumulate a*b into a 32-bit signed accumulator. clear has priority over enable.
Examples
- clear=1 -> acc=0
- a=3, b=-4, enable=1 -> acc decreases by 12
Constraints
- a and b are signed 8-bit values.
- acc is a signed 32-bit register.
- clear is synchronous and active high.
- Hold acc when enable is low.
Accelerator verification checklist
- Exercise zero, maximum positive and negative operands where signed data is used.
- Check exact bit growth and make overflow or saturation behavior intentional.
- Verify reset, enable, valid and pipeline alignment cycle by cycle.
- Send back-to-back data to confirm the advertised throughput.
Concepts to review
accelerator, mac, int8, datapath
Open Signed INT8 Multiply-Accumulate in the HDLForge interactive editor.
Related problems
- Four-Lane INT8 Dot Product — Medium
- Eight-Lane Reduction Adder — Medium
- ReLU with 8-bit Saturation — Medium
- Systolic Array Processing Element — Hard
- Valid-Tagged Pipelined Multiplier — Hard