PIPELINE プラグマには、rewind
というオプションがあります。このオプションを使用すると、ループが最上位関数またはデータフロー領域の一番外側のコンストラクトであり、データフロー領域が複数回呼び出される場合に、このループへの連続する呼び出しの実行をオーバーラップできます。
次の図に、ループをパイプラインする際に rewind
オプションを使用した場合の動作を示します。ループは、ループ反復カウントが終了すると再実行されます。通常は直後に再実行されますが、遅延があることもあり、それは GUI で表示されるようになっています。
図 1. rewind オプションを使用したループのパイプライン
注記: ループが DATAFLOW 領域で使用される場合、Vitis HLS は自動的に連続する実行をオーバーラップさせるようにループをインプリメントします。