原則的には、関数に順次ループが含まれる場合、これらのループは HLS コンパイラで生成されたハードウェア インプリメンテーションで順次実行されます。順次実行はスループットを低下させるので、通常は望ましくありません。
ただし、これらの順次ループを順次関数に挿入すると、HLS コンパイラでデータフロー最適化を適用し、各タスクをパイプライン処理してオーバーラップして実行するインプリメンテーションを生成できるようになります。データフロー最適化の詳細は、 Vitis HLS フローのタスク レベルの同時処理: データフロー最適化 を参照してください。
この分割では、順次ループを個別の関数に含めます。理想的には、最下位の計算ブロックに完全にネストされたループを 1 つのみ含めるようにします。ループの詳細は、ループ を参照してください。