Vitis 核开发套件支持在两个内核之间进行串流数据传输,允许数据从一个内核直接移动到另一个内核,而无需通过全局存储器来向回发射数据。但此进程必须在内核代码本身中实现(如 使用自动重启内核 中所述),并且还必须在内核构建进程中指定。
在 v++
链接期间,可使用 --connectivity.sc
选项来连接内核的串流数据端口。该选项可在命令行上指定,或者也可在使用 --config
选项指定的 config
文件中指定,如 Vitis 编译器命令 中所述。
重要: 如果
--connectivity.sc
内核驱动本身,那么将发生错误。要将生产者内核的串流输出端口连接到使用者内核的串流输入端口,请在 v++
配置文件内使用 connectivity.stream_connect
选项来指定连接,如下所示:
[connectivity]
#stream_connect=<cu_name>.<output_port>:<cu_name>.<input_port>:[<fifo_depth>]
stream_connect=vadd_1.stream_out:vadd_2.stream_in
其中:
-
<cu_name>
是由connectivity.nk
选项判定的 CU 的实例名称,如 创建内核的多个实例 中所述。 -
<output_port>
或<input_port>
是生产者内核或使用者内核中定义的串流端口。 -
[:<fifo_depth>]
会在 2 个串流端口之间插入指定深度的 FIFO 以防止发生停滞。请指定整数值。
提示: 如果输出端口与输入端口的端口宽度不匹配,那么在构建进程中,Vitis 编译器将在这两个端口之间自动插入数据宽度转换器。