Floating point units (add, mul, FMA) for transprecision computing in arbitrary FP formats, wrapped and tested in Chisel. The verilog implementation is based on ETH's CVFPU.
- Organization: MICAS (KU Leuven)
- Maintainer: Robin Geens
- Modules
- FpAddFp — floating‑point addition
- FpMulFp — floating‑point multiplication
- FpFmaFp — fused multiply‑add
- All are implemented in a purely combinatorial way
- Mixed precision
- Independent type selection per input/output
- Supported sofar: FP8, FP16, BF16, FP32
- To add new (arbitrary FP type):
- Create object that inherits from
FpType
- Add type to
fp_format_e
andfp_encoding_t
insrc/main/resources/common_block/fpnew_pkg_snax.sv
- Add tests cases (and pray they work)
- Create object that inherits from
- Testing
- Randomized tests
- Mixed‑precision coverage
src/main/scala/fp_unit/
— Chisel wrappers and type definitionssrc/test/scala/fp_unit/
— Test suites and reference utilitiessrc/main/resources/
— Verilog source code