説明
STABLE プラグマは、データフロー領域またはパイプライン領域の引数に適用し、領域の入力または出力に同期を生成する際に、入力変数または出力変数を無視できることを指定します。これは、その引数の読み出しプロセス (読み出しアクセス) が入力のタスク レベル (細粒度) パイプラインの最初の段に含まれている必要はなく、書き込みプロセス (書き込みアクセス) が出力のタスク レベル (細粒度) パイプラインの最終段に含まれる必要がないということです。
このプラグマは、階層の任意の点のスカラーまたは配列に指定でき、その点より下のすべてのデータフロー領域またはパイプライン領域に自動的に適用されます。入力に STABLE を指定すると、前の反復の読み出しの値が読み出されていなくても、データフロー領域またはパイプライン領域で別の反復を開始できます。出力に指定すると、前の反復が完了していなくても、次の反復の書き込みを実行できます。
構文
#pragma HLS stable variable=<a>
説明:
-
variable=<a>
- STABLE プラグマを適用する変数を指定します。
例
次の例では、STABLE プラグマを使用しないと、proc1
と proc2
が同期化され、その入力 (A
を含む) の読み出しが確認されます。このプラグマを使用すると、A
は同期が必要な入力としては認識されなくなります。
void dataflow_region(int A[...], int B[…] ...
#pragma HLS stable variable=A
#pragma HLS dataflow
proc1(...);
proc2(A, ...);