SW controllable kernels can be developed using either RTL or C/C++:
- RTL
- User-managed kernels are the most natural and recommended type of kernel for RTL developers. They offer greater flexibility, offer a wider range of control possibilities, and have fewer requirements than XRT-managed kernels. For more information, see Packaging RTL Kernels.
- C++
- XRT-managed kernels are the default and recommended type of kernel for C/C++ developers as described in Developing PL Kernels using C++. The Vitis compiler, using Vitis HLS, automatically generates interfaces compatible with the high-level XRT API, leaving fewer details for the developer to worry about.