这些内核需要 Vitis HLS 指定的 ap_ctrl_chain
或 ap_ctrl_hs
协议,其中,ap_ctrl_chain
是建议的协议。
- 内核应在函数返回上指定
mode=ap_ctrl_chain
INTERFACE 编译指示。 - 内核支持串流接口 (
axis
)。 - 内核还支持标量实参 (
s_axilite
) 和存储器映射 (m_axi
) 实参(可读取和写入)。
可在多个不同的场景中使用自动重启内核:
-
场景 1:包含串流接口的自动重启内核:仅限包含串流接口 (
axis
) 的自动重启内核,此内核完全不需要与主机应用交互。例如,要将配置数据编译到内核的快速傅里叶变换 (FFT),或者要将系数编译到内核的 FIR 滤波器。 - 使用标量和存储器映射 (
m_axi
) 实参的自动重启内核,包含或不含axis
接口。标量和存储器映射实参需要邮箱才能在需要时更新内核参数。例如,基于规则的简单防火墙(其规则由主机应用在复位时编写),以及丢包计数器(可由主机代码读取,所有值都必须来自单次内核执行)。又例如,使用散列映射向服务器发送数据的负载均衡器(必须同时更新服务器列表、服务器映射以及对应的 IP 地址)。