Supports matrices with arbitrary widths and heights with arbitrary-precision floating-point numbers.
src/
: Contains module implementations and headers.float_*.v
&float_macros.vh
: Implmements the floating-point addition and the multiplication.vec_*.v
&vec_macros.vh
: Implements the vector addition and the dot product.mat_*.v
&mat_macros.vh
: Implements the matrix multiplication.
tb/
: Contains testbenches.
EXP_WIDTH
: Number of exponent bitsMAN_WIDTH
: Number of mantissa bitsBIAS
: The bias of the exponent (e.g. -127 in IEEE 754 FP32 format, -1023 in IEEE 754 FP64 format)VEC_SIZE
: Number of elements in the vector
FLOAT_WIDTH
: Total number of bits to represent one single floating-point numberVEC_WIDTH(size)
: Total number of bits to represent one single vector with the sizesize
VEC_SELECT(idx)
: The bit range assigned to the element with the given indexidx
MAT_WIDTH(height, width)
: Total number of bits to represent one single matrix withheight
rows andwidth
columnsMAT_SELECT(i, j)
: The bit range assigned to the elementM_ij