API Reference

INT8 GEMV (General Matrix-Vector Multiply) block in Amaranth HDL.

Computes y[i] = sum_j(W[i][j] * x[j]) for each output element i.

Inputs: INT8 weight matrix (M x K), INT8 vector (K elements) Outputs: INT32 result vector (M elements)

FSM: IDLE -> COMPUTE -> EMIT (per row) -> DONE

class hdl.gemv.GEMVUnit(*args, src_loc_at=0, **kwargs)[source]

Bases: Elaboratable

Sequential MAC-based GEMV unit.

Parameters:
  • m_dim (int) – Number of output elements (rows of weight matrix).

  • k_dim (int) – Reduction dimension (columns of weight matrix / vector length).

elaborate(platform)[source]
class hdl.relu.ReLU(*args, src_loc_at=0, **kwargs)[source]

Bases: Elaboratable

Combinational ReLU: output = max(0, input) on signed INT32.

elaborate(platform)[source]