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_eandfp_encoding_tinsrc/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