Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

6.7. 循环流水线控制(disable_loop_pipelining预处理指令)

当循环迭代由于循环携带的依赖性而有效且有序地执行时,请使用 disable_loop_pipelining指令生成简单的顺序数据路径并避免循环资源硬件重复。较简单的数据通路和硬件中资源重复的减少会降低组件的FPGA面积利用率。

使用高层设计报告(report.html)的Loop Analysis部分有助于确定是否应该将此指令应用到您的循环中。

在以下实例中, 由于存储器依赖性, Intel® HLS Compiler无法以较小的循环启动间隔 (II) 调度循环。流水线化此循环不太可能为您的组件吞吐量或性能带来任何好处。
#pragma disable_loop_pipelining
for (int i = 1; i < N; i++) {
    int j = a[i-1];
    // Memory dependency induces a high-latency loop feedback path
    a[i] = foo(j)
}

您还可以通过hls_disable_component_pipelining组件属性禁用整个组件的流水线数据路径。请参阅组件流水线控制(hls_disable_component_pipelining属性)了解关于该属性的更多详细信息。