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 sizesizeVEC_SELECT(idx): The bit range assigned to the element with the given indexidxMAT_WIDTH(height, width): Total number of bits to represent one single matrix withheightrows andwidthcolumnsMAT_SELECT(i, j): The bit range assigned to the elementM_ij