循环入门 - 2023.2 简体中文

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

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

编写用于高层次综合 (HLS) 的代码时,经常需要实现重复算法来处理数据块,例如,信号处理或图像处理。通常,C/C++ 源代码倾向于包含多个循环或多个嵌套循环。

需要进行性能最优化时,循环是最适合开始尝试最优化的位置。在硬件中,执行每次循环迭代都需要至少 1 个时钟周期。从硬件角度来看,循环主体隐含“等待一个时钟周期”的意义仅当前一次循环迭代完成之后,才能开始后一次迭代。为了提升性能,循环常采用“流水打拍”或“展开”,以便充分利用 FPGA 架构的高度分布化和并行化,正如后续章节中所述。