一般而言,如果函数中包含顺序循环,则这些循环在 HLS 编译器生成的硬件实现中按顺序执行。这通常是不可取的,因为顺序执行会妨碍吞吐量。
但是,如果将这些顺序循环推送到顺序函数中,则 HLS 编译器可以应用数据流最优化并生成允许对每个任务进行流水打拍和重叠执行的实现。如需了解有关数据流最优化的更多信息,请参阅 Vitis HLS 流程中的利用任务级别并行化:数据流最优化 。
在此分区和优化过程中,将顺序循环放入单个函数中。理想情况下,最低级别的计算块应该只包含一个完美嵌套的循环。如需了解有关循环的更多信息,请参阅 循环。