インテル®高位合成 (HLS) コンパイラー プロ・エディション: ベスト・プラクティス・ガイド

ID 683152
日付 12/16/2019
Public
ドキュメント目次

4.7. 可能な限り最も深いスコープでの変数宣言

変数の実装に必要なFPGAハードウェア・リソースを低減するためには、変数の宣言は、ループでの使用直前に行います。変数の宣言を可能な限り最も深いスコープで行うと、データ依存関係とFPGAハードウェア使用率が最小限に抑えられます。これは、 インテル®HLSコンパイラー プロ・エディションによる変数データの保持は、変数を使用しないループでは必要がないためです。

次の例を検討します。

int a[N];
for (int i = 0; i < m; ++i)
{
    int b[N];
    for (int j = 0; j < n; ++j)
	{
        // statements
    }
}

配列 a 実装では、配列 b よりも多くのリソースを必要とします。ハードウェア使用率を削減するには、配列 a を内側のループの外側に宣言します。ただしこれは、外側のループのイタレーションによってデータを維持する必要がない場合のみです。

ヒント: 可能な限り最も深いスコープ内の変数のすべての値が上書きされると、変数を表すために必要なリソースも減少します。