EPFL-LAP / dynamatic

DHLS (Dynamic High-Level Synthesis) compiler based on MLIR
Other
49 stars 14 forks source link

[experimental][hdl] Support for basic floating-point arithmetic units in the experimental backend #96

Closed Jiahui17 closed 1 month ago

Jiahui17 commented 2 months ago

This PR adds support for the basic floating-point arithmetic units in the experimental backend. This PR largely reused the changes made in #76, which uses flopoco-generated IP cores to replace the proprietary IP cores extracted from Vivado HLS.

Changes:

  1. Flopoco-generated IPs are copied to the experimental RTL library.
  2. addf, subf, mulf, divf, cmpf now use the flopoco-generated IP cores.
  3. cmpf is now based on a more verbose opcode (cmpf-generator is also updated).
  4. Dependency update in rtl-config.json
  5. All the VHDL floating-point units now explicitly assert if operating on 32-bit data.
  6. New benchmarks (integration-test) that use floating-point units.

Future work:

  1. Characterization of flopoco-generated units
  2. Flexible bit-width or number format

Bonus change:

  1. CMake configuration flags are now added into .vscode/settings.json (those flags are identical to the ones in build.sh)

Known issues:

  1. Some new benchmarks are not working with the experimental backend.
Jiahui17 commented 1 month ago

LGTM! Thank you