高位合成 (HLS) 用のコードを記述する際、信号処理や画像処理などのデータ ブロックを処理する反復的なアルゴリズムのインプリメンテーションが頻繁に必要になります。一般に、C/C++ のソース コードには、ループや入れ子のループがいくつか含まれる傾向にあります。
パフォーマンスを最適化する場合、まずはループから着手するのが最善です。ハードウェアでは、ループの各反復を実行するのに少なくとも 1 クロック サイクルかかります。ハードウェアの面から考えると、ループの本体ではクロックまで待機することが暗示されます。ループの次の反復は、前の反復が終了してから開始されます。次のセクションで説明するように、ループを通常パイプライン処理または展開させて、高度に分散された並列 FPGA アーキテクチャを利用すると、パフォーマンスを向上できます。