These kernels are present in the device but are not visible to or directly accessible by the software application. These kernels do not have a programmable register interface. The kernels must have at least one AXI4-Stream interface. The kernel synchronizes with the rest of the system through these streaming interfaces.
Non-software controlled kernels are considered an advanced feature and should only be used when a software controllable kernel cannot be used. Because they do not have a programmable register interface, control-related information needs to be passed through the data interfaces of the kernel.
Non-software controlled kernels do not require a software API, as the host application is not interacting directly with the kernel. The kernel can be developed as either Packaging RTL Kernels, or as Developing PL Kernels using C++ as described in Auto-Restarting Kernels in Vitis High-Level Synthesis User Guide (UG1399).