自动循环流水打拍 - 2021.2 Chinese

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

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

config_compile 配置支持根据迭代计数对循环进行自动流水打拍。此配置可通过菜单Solution > Solution Setting > General > Add > config_compile访问。

pipeline_loops 选项可用于设置迭代限制。低于此限制的单一迭代计数内的所有循环都将自动流水打拍。默认值为 64。

给定以下示例代码:

for (y = 0; y < 480; y++) {
  for (x = 0; x < 640; x++) {
    for (i = 0; i < 5; i++) {
      // do something 5 times
 …     ...
    }
  }
}

如果 pipeline_loops 选项设置为 6,那么以上代码片段中最内层的 for 循环将自动流水打拍。这等同于以下代码片段:

for (y = 0; y < 480; y++) {
  for (x = 0; x < 640; x++) {
    for (i = 0; i < 5; i++) {
#pragma HLS PIPELINE II=1
      // do something 5 times
 …    ...
    }
  }
}

如果设计中有部分无需使用自动流水打拍的循环,请对此类循环应用含 off 选项的 PIPELINE 指令。off 选项可阻止自动循环流水打拍。

重要: Vitis HLS 会在执行所有用户指定的指令后应用 config_compile pipeline_loops 选项。例如,如果 Vitis HLS 向循环应用用户指定的 UNROLL 指令,那么将首先展开该循环,但无法应用自动循环流水打拍。