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 指令,那么将首先展开该循环,但无法应用自动循环流水打拍。