These kernels require the
specified by Vitis HLS, where
ap_ctrl_chain is the recommended protocol.
- The kernel should specify the
mode=ap_ctrl_chainINTERFACE pragma on the function return.
- The kernel supports streaming interfaces (
- The kernel also both scalar arguments (
s_axilite) and memory mapped (
m_axi) arguments which can be both read and written.
Auto-restart kernels can be used in a couple of different scenarios:
Scenario 1: Auto-Restarting Kernel with Streaming Interface: Auto-restart
kernel with streaming interfaces (
axis) only, that does not require the kernel to interact with the host application at all. Examples of this would be a Fast-Fourier Transform (FFT) with configuration data compiled into the kernel, or FIR filters with coefficients compiled into the kernel.
- Auto-restart kernel using scalars and memory mapped (
m_axi) arguments, either with
axisinterfaces or without. The scalar and memory mapped arguments require the mailbox to update the kernel parameters when needed. Examples of this would include a simple rule-based firewall with rules written by the host application at reset, with a counter of dropped packets that can be read by the host code but where all values must come from a single kernel execution. Or, a load balancer that uses a hash map to send data to a server, must update the server list, server map, and corresponding IP addresses simultaneously.