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.