Unsupported C/C++ Constructs - 2024.1 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
Release Date
2024.1 English
Tip: There are other unsupported C/C++ constructs. This list is not intended to be exhaustive, but rather to provide details related to some of the unsupported constructs.

While the HLS compiler supports a wide range of the C/C++ languages, some constructs are not synthesizable, or can result in errors further down the design flow. This section discusses areas in which coding changes must be made for the function to be synthesized and implemented in a device.

To be synthesized:

  • The function and its calls must contain the entire functionality of the design.
  • None of the functionality can be performed by system calls to the operating system.
  • The C/C++ constructs must be of a fixed or bounded size.
  • The implementation of those constructs must be unambiguous.