使用脚本中的指令对比使用代码中的编译指示 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

HLS Directive(HLS 指令)编辑器中,您可指定以下任一Destination(目标)设置:

Source File(源文件)
Vitis Unified IDE 将指令作为编译指示直接插入 C 语言源文件。
Config File(配置文件)
IDE 会将指令插入 HLS 配置文件。

下表描述了这 2 种方法的优缺点。

表 1. 配置文件指令对比 HLS 编译指示
指令格式 优点 缺点
HLS 配置文件

源代码保持不变,而设计探索则通过配置文件条目来处理。此方法适合设计探索。

如果将 C 语言源文件传输给第三方或存档,那么必须包含 directives.tcl 文件。

如果要重现结果,directives.tcl 文件是必需的。

源代码编译指示

最优化指令嵌入 C 语言源代码。

适合将 C 语言源文件作为 C IP 交付给第三方。无需其他文件来重现相同结果。

此方法适用于不太可能改变的指令,如 TRIPCOUNT 和 INTERFACE 等。

如在代码中嵌入最优化指令,那么会将这些指令自动应用于引用该源代码的每个 HLS 组件。
提示: 您可以使用指令来发掘不同的设计可能性,但在最终确定指令时,最好将其转换为 HLS 编译指示。这样即可包含最优化编译指示作为设计源代码的一部分。

指定编译指示实参的值时,可使用字面值(如 1、55 或 3.14),或者使用 #define 来传递宏。以下示例显示了含字面值的编译指示:

#pragma HLS ARRAY_PARTITION variable=k_matrix_val  type=cyclic factor=5

该示例使用已定义的宏:

#define E 5
#pragma HLS ARRAY_PARTITION variable=k_matrix_val  type=cyclic factor=E