Unsupported Features

The following features are not supported in this release.

IMPORTANT: HLS will either issue a warning or error for all the unsupported features mentioned in this section.

Pragmas

  • Pragma DEPENDENCE on an argument that also has an m_axi INTERFACE pragma specifying a bundle with two or more ports is not supported.
    void top(int *a, int *b) { // both a and b are bundled to m_axi port gmem 
    
    #prgama HLS interface m_axi port=a offset=slave bundle=gmem 
    
    #prgama HLS interface m_axi port=b offset=slave bundle=gmem 
    
    #pragma HLS dependence variable=a false 
    
    } 
  • Pragma INTERFACE no longer supports the ap_bus mode that was supported in Vivado HLS. You should use them_axi interface instead.

Top-Level Function Argument

Pragmas on top-level function arguments include:

  • Array partition (Supports only dim =1, cyclic/block/complete)
  • Array reshape

Top-level argument with C data type of:

  • enum or any use of enum (struct, array pointer of enum)
  • ap_int<N> (where N is 1-32768)
  • _Complex
  • _Half, __fp16

Vitis™ HLS does not support the INTERFACE pragma inside sub-functions.

C Arbitrary Precision Types

Vitis HLS does not support C arbitrary precision types. Xilinx recommends using C++ types with arbitrary precision.

In addition, C++ arbitrary precision types in Vitis HLS are limited to a maximum width of 4096 bits, instead of 32K bits supported by Vivado HLS.

C Constructs

  • Pointer cast are no longer supported.
  • Virtual functions are no longer supported.