在HLS Directive(HLS 指令)编辑器中,您可指定以下任一Destination(目标)设置:
- Source File(源文件)
- Vitis Unified IDE 将指令作为编译指示直接插入 C 语言源文件。
- Config File(配置文件)
- IDE 会将指令插入 HLS 配置文件。
下表描述了这 2 种方法的优缺点。
指令格式 | 优点 | 缺点 |
---|---|---|
HLS 配置文件 |
源代码保持不变,而设计探索则通过配置文件条目来处理。此方法适合设计探索。 |
如果将 C 语言源文件传输给第三方或存档,那么必须包含 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