Hardware Accelerator RTL Practice Problems
This path is implementation-first. Every problem is an executable RTL task rather than a theory prompt, with emphasis on datapath width, signed arithmetic, throughput, pipelining and parallel compute structures.
Accelerator problems
Build the basic signed INT8 multiply-accumulate datapath used in DSP and machine-learning accelerators.
accelerator · mac · int8 · datapathFour-Lane INT8 Dot ProductImplement a four-lane signed INT8 dot-product datapath similar to a small neural-network vector unit.
accelerator · dot-product · simd · int8Eight-Lane Reduction AdderCreate a parallel reduction block that sums eight 16-bit lanes into one output.
accelerator · reduction-tree · parallelism · datapathReLU with 8-bit SaturationImplement a hardware activation stage that applies ReLU and saturates positive values to unsigned 8-bit range.
accelerator · relu · quantization · activationSystolic Array Processing ElementBuild a single processing element for a small systolic matrix-multiply array.
accelerator · systolic-array · mac · pipelineValid-Tagged Pipelined MultiplierImplement a one-cycle-latency signed multiplier with an aligned valid signal, a common accelerator pipeline building block.
accelerator · pipeline · multiplier · throughput32-bit Population CountBuild a combinational population-count unit that returns the number of set bits in a 32-bit word.
accelerator · popcount · reduction · bit-manipulationFour-Lane Signed Vector MaximumImplement a four-lane signed max-reduction datapath.
accelerator · vector · reduction · signedQ1.7 Fixed-Point MultiplierMultiply two signed Q1.7 fixed-point values and return a truncated Q1.7 result.
accelerator · fixed-point · multiplier · quantizationValid-Ready Streaming AccumulatorBuild a streaming accumulator that updates only on successful ready/valid transfers.
accelerator · streaming · ready-valid · accumulator2x2 Matrix Multiply DatapathImplement a small combinational 2x2 signed matrix-multiply datapath.
accelerator · matrix-multiply · mac · parallelismThree-Tap INT8 ConvolutionCreate the arithmetic core of a small 1D convolution engine.
accelerator · convolution · dot-product · int8Signed Fixed-Point MACBuild the arithmetic primitive used by the FIR datapath.
DSP · MAC · fixed pointFour-Tap FIR DatapathCompute the combinational weighted sum for four delayed samples.
DSP · FIR · parallel MACSigned Saturation StageReduce a wide accumulator to a 16-bit output without wraparound on overflow.
DSP · fixed point · saturationMatrix MAC Processing ElementCreate the processing element used repeatedly in the matrix accelerator.
matrix multiply · MAC · PETwo-Element Dot ProductImplement the arithmetic kernel for a 2x2 matrix result element.
matrix multiply · dot product · datapath2x2 Input Tile RegistersCapture two 2x2 input matrices so computation is isolated from the input interface.
matrix multiply · buffering · registersMatrix Compute ControllerSequence input acceptance, one compute phase and output availability.
matrix multiply · FSM · controlMatrix Result BufferStore four result elements until the consumer accepts the complete output tile.
matrix multiply · buffer · valid-ready2x2 Matrix-Multiply AcceleratorIntegrate the complete parallel 2x2 matrix-multiplication datapath with input and output handshakes.
matrix multiply · accelerator · integrationThree-Row Line BufferMaintain the current and previous two image rows needed by a 3x3 streaming convolution.
convolution · line buffer · streaming3x3 Sliding WindowBuild the nine-pixel window presented to a 3x3 convolution kernel.
convolution · window · shift registersNine-Tap Convolution MACCompute a signed 3x3 dot product between nine pixels and nine kernel coefficients.
convolution · MAC · datapathConvolution Valid PipelineAlign output validity with a three-stage convolution datapath.
convolution · pipeline · valid8-bit Output ClampConvert a wide signed convolution result into an unsigned 8-bit pixel using saturation.
convolution · saturation · quantizationStreaming 3x3 Convolution AcceleratorIntegrate a streaming 3x3 convolution engine with valid/ready flow control.
convolution · accelerator · streamingSIMD Lane ALUImplement one 32-bit SIMD lane with add, subtract, minimum and maximum operations.
SIMD · ALU · vectorFour-Lane SIMD DatapathApply the same arithmetic operation independently to four 32-bit lanes.
SIMD · parallel lanes · datapathVector Mask MergeSelectively update SIMD lanes using a four-bit predicate mask.
SIMD · mask · mergeVector Reduction UnitReduce four signed lanes to either their sum or maximum.
SIMD · reduction · treeFour-Lane SIMD Execution UnitIntegrate four arithmetic lanes with per-lane masking and a registered output.
SIMD · CPU · vector unitMemory-Copy DMA EngineIntegrate control, address progression and transfer counting for a programmable word-copy engine.
DMA · SoC · integrationWhat to focus on
- Signed arithmetic and deliberate bit growth.
- Throughput versus latency when adding pipeline stages.
- Regular compute structures that map cleanly to FPGA or ASIC datapaths.
- Corner cases such as saturation, negative operands, reset and back-to-back valid data.
Related implementation guides
- Hardware Accelerator RTL Design Guide — Learn hardware accelerator RTL through MACs, reductions, fixed-point arithmetic, streaming pipelines, quantization and systolic compute structures.
- Systolic Array RTL Design Guide — Learn systolic-array RTL from multiply-accumulate processing elements to data forwarding, pipeline timing and matrix-multiply verification.