The Vitis core development kit provides support for one or more free-running kernels. Free-running kernels have no control signal ports, and cannot be started or stopped. The no-control signal feature of the free-running kernel results in the following characteristics:
- The free-running kernel has no memory input or output port, and therefore it interacts with the host or other kernels (other kernels can be regular kernel or another free-running kernel) only through streams.
- When the FPGA is programmed by the binary container
(xclbin), the free-running kernel starts running on the
FPGA, and therefore it does not need the
clEnqueueTask
command from the host code. - The kernel works on the stream data as soon as it starts receiving from the host or other kernels, and it stalls when the data is not available.
- The free-running kernel needs a special interface pragma
ap_ctrl_none
inside the kernel body.