循环依赖关系 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

循环中的数据依赖关系可能影响循环流水打拍或循环展开的结果。这些循环依赖关系可能存在于任一循环的单次迭代中,或者存在于任一循环的不同迭代之间。了解循环依赖关系的直接方法是检验极端示例。在以下代码示例中,循环结果用作为循环持续条件或循环退出条件。循环的每次迭代必须完成后才能开始下一次迭代。

Minim_Loop: while (a != b) { 
  if (a > b) 
    a -= b; 
  else 
    b -= a;
}

此循环无法流水打拍。前一次迭代结束后,下一次循环迭代才能开始。

处理与 Vitis 编译器之间的各种类型的依赖关系是一个牵涉很广的话题,需要详细了解编译器底层的高层次综合过程。如需了解更多信息,请参阅 Vitis 高层次综合用户指南(UG1399)