ループ反復間でデータを保存する
- 更新日2025-03-06
- 3分で読める
フィードバックノード
フィードバックノードはFPGAリソースを使用してデータを保存します。フィードバックノードを使用することにより、データを次のループ反復や次のVIの実行まで保持できます。フィードバックノードは、新しい値を受け取ると次の入力端子に渡すまでその値を保持します。複数の連続反復のサンプルデータを保存するには、プロパティダイアログボックスの構成ページで遅延の値を増やします。
以下のサンプルVIはフィードバックノードを使用します。このVIはForループの反復をn回実行します。その後、VIは3の定数値をフィードバックノードに保存された値で乗算して積を返します。VIの最初の呼び出しでフィードバックノードは1の値があります。nの反復では、積は3nです。
フィードバックノードを作成するには、以下の手順に従います。
- FPGA VIのブロックダイアグラムを表示します。
- 関数パレットから、プログラミング→ストラクチャ→フィードバックノードを選択してブロックダイアグラムに追加します。
また、フィードバックノードは、サブVI、関数、またはサブVIおよび関数のグループの出力を同じVI、関数、またはグループの入力に配線すると自動的に表示されます。
フィードバックノードを右クリックしてショートカットメニューからプロパティを選択することでアクセスが可能になる、プロパティダイアログボックスを使用してフィードバックノードを構成します。このダイアログボックスの構成ページでFPGAリセットメソッドを無視チェックボックスをオンにすると、LabVIEW FPGAモジュールは基本となるレジスタのインスタンス化のリセットを削除します。この削除により、フリップフロップの代わりにシフトレジスタルックアップテーブル (SRL) を使用して、コンパイラに遅延を実行するオプションが追加されます。SRLは多数の遅延を単一のルックアップテーブル (LUT) に統合するため、FPGAのリソース消費を大幅に減少することができます。
ループでは、フィードバックノードを右クリックしてショートカットメニューからシフトレジスタと置換を選択してシフトレジスタに変更することができます。また、シフトレジスタをフィードバックノードに置換することもできます。ただし、SRLを使用してシフトレジスタを実装することはできません。