Intel® 高层次综合编译器专业版Pro版: 参考手册

ID 683349
日期 12/04/2023
Public
文档目录

6.1. 循环启动间隔(ii预处理指令)

启动间隔(或者“II”)是启动连续循环迭代之间的时钟周期数。 使用ii预处理指令指示 Intel® High Level Synthesis (HLS) Compiler尝试设置遵循预处理指令声明的循环的启动间隔(II)。如果编译器无法实现循环的指定II,则会出现编译错误。
您可能需要增加循环的II来获得组件中fMAX改进。如果循环满足以下任一条件,那么在通过应用ii预处理指令增加循环的II时,该循环就是很好的选择:
  • 该循环对于组件的吞吐量来说并不重要。
  • 与可能包含的其它循环相比,该循环的运行时间较短。

您还可以应用ii预处理指令来强制循环的启动间隔II为1,并且接受可能的fMAX损失。

要指定循环的循环启动间隔,请指定该循环前面的预处理指令,如下所示:
#pragma ii <desired_initiation_interval>
<desired_initiation_interval>参数为必需,它是一个整数,指定在开始执行连续循环迭代之间要等待的时钟周期数。

您还可以指示编译器尝试通过hls_component_ii (<N>)组件属性达到您组件的II。请参阅 hls_component_ii 获得更多有关信息。

要详细了解关于应用ii循环预处理指令后的效果,可查看以下教程:
<quartus_installdir>/hls/examples/tutorials/best_practices/set_target_fmax_1