将指令应用于正确的作用域 - 2021.2 Chinese

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

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

虽然 Vitis HLS GUI 允许您将指令应用于特定的代码对象,但这些指令会被添加到包含该对象的作用域内。例如,您可将 INTERFACE 编译指示应用于 Vitis HLS GUI 中的接口对象,但该指令将应用于顶层函数(作用域)。接口端口(对象)将在该指令中识别。

您可向以下对象和作用域应用最优化指令:

函数
向函数应用指令时,Vitis HLS 会将该指令应用于函数作用域内的所有对象。任意指令的影响都止于函数层级的下一层,并且不适用于子函数。
提示: 包含递归选项的指令(如 PIPELINE 指令)则可以递归方式应用于整个层级内。
接口
Vitis HLS 将指令应用于顶层函数,即包含接口的作用域。
循环
指令应用于循环作用域内的所有对象。

例如,如果对循环应用 LOOP_MERGE 指令,那么 Vitis HLS 会将该指令应用于该循环内的所有子循环,,但不会将其应用于该循环本身。指令应用到的循环不会与相同层级内的同辈循环合并。

阵列
指令应用于包含阵列的作用域。