説明
特定のステート変数 (グローバルまたはスタティック) のリセットを追加または削除します。
リセット ポートは、リセット信号が適用されたときにリセット ポートに接続されているレジスタおよびブロック RAM を初期値に戻すために FPGA で使用されます。RTL リセット ポートの存在と動作は、config_rtl
設定で制御されます。リセット設定ではリセットの極性および同期か非同期かを設定できますが、重要なのは、[reset] オプションを使用してリセット信号を適用したときにリセットするレジスタを指定できるということです。詳細は、初期化およびリセット動作の制御 を参照してください。
RESET プラグマを使用すると、リセットを詳細に制御できます。変数がスタティックまたはグローバルの場合、RESET プラグマを使用してリセットを明示的に追加したり、off
に設定して変数からリセットを削除したりできます。これはスタティック配列またはグローバル配列がデザインに含まれる場合に特に便利なことがあります。
構文
C ソース コードの変数のライフ サイクルの境界内に配置します。
#pragma HLS reset variable=<a> off
説明:
-
variable=<a>
- RESET プラグマを適用する変数を指定します。
-
off
- 指定した変数にリセットが生成されないようにします。
例 1
次の例では、グローバル リセット設定が none
または control
の場合でも、関数 foo
の変数 a
にリセットが追加されます。
void foo(int in[3], char a, char b, char c, int out[3]) {
#pragma HLS reset variable=a
例 2
グローバル リセット設定が state
または all
の場合でも、関数 foo
の変数 a
からリセットを削除します。
void foo(int in[3], char a, char b, char c, int out[3]) {
#pragma HLS reset variable=a off