虽然 Vitis HLS GUI 允许您将指令应用于特定的代码对象,但这些指令会被添加到包含该对象的作用域内。例如,您可将 INTERFACE
编译指示应用于 Vitis HLS GUI 中的接口对象,但该指令将应用于顶层函数(作用域)。接口端口(对象)将在该指令中识别。
您可向以下对象和作用域应用最优化指令:
- 函数
- 向函数应用指令时,Vitis HLS 会将该指令应用于函数作用域内的所有对象。任意指令的影响都止于函数层级的下一层,并且不适用于子函数。提示: 包含递归选项的指令(如
PIPELINE
指令)则可以递归方式应用于整个层级内。 - 接口
- Vitis HLS 将指令应用于顶层函数,即包含接口的作用域。
- 循环
- 指令应用于循环作用域内的所有对象。
例如,如果对循环应用
LOOP_MERGE
指令,那么 Vitis HLS 会将该指令应用于该循环内的所有子循环,,但不会将其应用于该循环本身。指令应用到的循环不会与相同层级内的同辈循环合并。 - 阵列
- 指令应用于包含阵列的作用域。