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