On Improving the HLS Compatibility of Large C/C++ Code Regions
Heterogeneous CPU-FPGA C/C++ applications may rely on High-level Synthesis (HLS) tools to generate hardware for critical code regions. As typical HLS tools have several restrictions in terms of supported language features, to increase the size and variety of offloaded regions, we propose several code transformations to improve synthesizability. Such code transformations include: struct and array flattening; moving dynamic memory allocations out of a region; transforming dynamic memory allocations into static; and asynchronously executing host functions, e.g., printf(). We evaluate the impact of these transformations on code region size using three real-world applications whose critical regions are limited by non-synthesizable C/C++ language features.
Authors
- João M. P. Cardoso (ORCID: https://orcid.org/0000-0002-7353-1799)
- João Bispo (ORCID: https://orcid.org/0000-0002-3017-9449)
- Juanita Hoe (ORCID: https://orcid.org/0000-0003-4647-8950)
- Tiago Santos (ORCID: https://orcid.org/0000-0002-3673-9400)
Institutions
- Universidade do Porto (PT)
- INESC TEC (PT)
- Carnegie Mellon University (US)
Publication Details
- Published
- 2025-05-04
- DOI
- https://doi.org/10.1109/fccm62733.2025.00054
- Citations
- 1
- Primary Topic
- Distributed and Parallel Computing Systems
- Type
- article
- Field-Weighted Citation Impact
- 1.49