フィードバックノード
- 更新日2025-07-30
- 5分で読める
VI実行またはループ反復のデータを次の実行または反復に格納します。
フィードバックノードは、フィードバック制御理論およびデジタル信号処理のz-1ブロックに似ています。フィードバックノードを右クリックし、ショートカットメニューからZ変換表示を選択すると、フィードバックノードをz-1ブロックに似た外観に変更できます。外観をZ変換表示に変更しても、以下のようにフィードバックノードの装飾的な外観のみが変更されます。

初回のブロックダイアグラムの実行または反復では、フィードバックノードは初期化端子に配線された値を初期値として使用します。初期化端子に値を配線しない場合、フィードバックノードはデータタイプに対してデフォルト値を使用します。その後、フィードバックノードは前回の反復の結果を保存します。
フィードバックループは、有効化端子を使用して、有効と無効を切り替えることができます。有効化端子をTRUEに設定すると、フィードバックノードはプロパティダイアログボックスまたはノードのショートカットメニューで構成したとおりに実行されます。有効化端子がFALSEの場合、フィードバックノードは有効化端子がTRUEに設定されていた時の最後の実行または反復の値を返します。フィードバックノードは、有効化端子がTRUEに変更された後の実行または反復まで、この値を返し続けます。
フィードバックノードは、デフォルトでは前回の実行または反復のデータだけを保存します。ただし、複数の実行または反復でノードの出力を遅らせて、n サンプルのデータを保存するようにフィードバックノードを構成できます。遅延を1回を超える実行または反復に増やすと、フィードバックノードは指定した遅延が完了するまで初期値のみを出力します。その後、フィードバックノードはその後に格納された値の出力を開始します。ノードの数字は指定した遅延数を表しています。
このノードは、サブVI、関数、またはサブVIおよび関数のグループの出力を同じVI、関数、またはグループの入力に配線すると自動的に表示されます。ループでは、フィードバックノードを右クリックしてショートカットメニューからシフトレジスタと置換を選択してシフトレジスタに変更できます。また、シフトレジスタをフィードバックノードに置換することもできます。

FPGAモジュールの詳細
以下の説明は、このオブジェクトをFPGA VIで使用する場合に適用されます。
| シングルサイクルタイミングループ | サポートあり |
| 使用 | フィードバックノードによってパイプラインを実装し、長い組み合わせパスを削減することができます。また、フィードバックノードをシングルサイクルタイミングループ内のサブVIのフィードバックに使用することもできます。フィードバックノードは、ケースストラクチャ内で使用するとそのストラクチャを含むサブダイアグラムの実行時にクロックサイクルのデータだけを更新します。 フィードバックノードを右クリックし、ショートカットメニューからプロパティを選択して、プロパティダイアログボックスを開きます。構成ページで、フィードバックノードの多くのオプションを指定できます。 |
| タイミング | シングルサイクルタイミングループの内側―フィードバックノードをシングルサイクルタイミングループの内側で使用する場合、初期化にクロックサイクルが必要とされません。ただし、初期化データが別のクロック領域から渡される場合、初期化に複数のクロックサイクルが必要となる場合があります。 シングルサイクルタイミングループの外側―シングルサイクルタイミングループの外側でのフィードバックノードの初期化には、1クロックサイクルが必要です。 |
| リソース | フィードバックノードはレジスタとして実装され、データタイプの幅に比例する量のFPGAリソースを必要とします。初期化端子を使用するとFPGAリソースの消費が若干増えます。 |
| メモ | フィードバックノードではなく離散遅延関数の使用を検討してください。 |
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Structures\Feedback Node\Feedback Node - Building an Array.vi