離散遅延

入力値を指定の値分、遅延します。 このノードは、整数、固定小数点、およびブールデータタイプのスカラおよび配列値、クラスタ、クラスタの配列をサポートします。

入力/出力

datatype_icon

D

遅延するデータです。

メモ Dのデータタイプはソースに適応されません。
datatype_icon

n-1

Q出力に接続される内部レジスタの指標です。n-1の値の範囲は0~n-1です。ここで、n項目タブの最大遅延の値です。

datatype_icon

初期値

このノードが使用する内部レジスタの初期値の設定です。

datatype_icon

有効

このノードがDへの入力を無視するかどうかを示すブールです。

TRUE このノードはすべての値を次の内部レジスタにシフトし、最初の内部レジスタにDの値を取り込みます。
FALSE このノードはDを無視して既存の値をシフトしません。これは、内部レジスタが前回のクロックサイクル中に持っていた値を保持することを意味します。
適切なD値のみで演算するには、この入力を使用します。たとえば、高スループット数学ノードの出力有効出力を、この入力に配線することができます。この入力を使用すれば、離散遅延に、受信する値が有効な場合のみにD値を受け入るようにすることができます。

Default value: TRUE

datatype_icon

Q

Dの遅延値です。Qは、n-1入力で指定したレジスタの値を返します。

最大遅延

このノードがDの値の出力を遅延させるクロックサイクルの最大数を指定します。その値は同時にこのノードが使用する内部レジスタの数を指定します。この値は16サイクル以上512サイクル以下の範囲でなければいけません。n-1入力を使用して、Q出力に接続されるレジスタを指定します。

Examples

最大遅延20クロックサイクルに設定する場合も、関数は、値を保存するために20個のレジスタを作成します。Dに書き込まれる値は、連続するクロックサイクルが発生するごとに、レジスタ0からレジスタ19まで移動します。ただし、n-1を使用して特定の内部レジスタを指定する場合、Qは、最後のレジスタの値ではなく、その端子で指定されたレジスタ番号の値を返します。たとえば、17クロックサイクルが経過した場合、最初のクロックサイクル中に送信したDの値はレジスタ16に存在します。18回目のクロックサイクル中にn–1に16を書き込む場合、ノードはこの値を返します。値は、20クロックサイクルではなく、17クロックサイクル分遅延されました。

離散遅延とフィードバックノードの選択

離散遅延フィードバックノードは類似していますが、これらには大きな違いがあります。以下の表に、2つのノードのいずれかを選択する場合の推奨事項を示します。

フィードバックノード 離散遅延 推奨事項
目的および機能 設計目的
  • 出力信号を入力にフィードバックする。
  • 入力信号を一定のクロックサイクルだけ遅延させる。
入力信号を一定またはいくつかのクロックサイクルだけ遅延させる。 プログラミング中の使用例を表すノードを使用します。
初期化オプション 以下の状況で、内部レジスタをカスタム値に初期化します。
  • FPGA VIへの最初の呼び出し時、またはFPGA VIのリセット時
  • FPGA VIのコンパイルまたはロード時、もしくはFPGA VIのリセット時
  • FPGA VIのコンパイルまたはロード時、もしくはFPGA VIのリセット時を無視
  • FPGA VIへの最初の呼び出しで、またはFPGA VIのリセット時に、内部レジスタをゼロにリセットする
  • FPGA VIのコンパイルまたはロード、もしくはFPGA VIのリセット時を無視して、内部レジスタをカスタム値に初期化する
離散遅延は、フリップフロップの代わりにシフトレジスタルックアップテーブル(SRL)を使用して、遅延を実装します。SRLは、多数の遅延を単一のルックアップテーブル(LUT)に統合するため、フリップフロップを使用する場合と比較してFPGAのリソース消費を大幅に減少することができます。
初期値の定義方法 ダイアグラムで値を初期値入力に配線して、初期値を定義します。 初期値入力を使用して、初期値を定義します。 初期化VIをお持ちの場合、または固定サイズの配列を遅延させる必要がある場合、離散遅延を使用します。
動的遅延のサポート なし あり 動的遅延が必要な場合、離散遅延を使用します。
ブロックダイアグラムでのフィードバック表記のサポート あり なし ブロックダイアグラムにフィードバックを表記する必要がある場合、フィードバックノードを使用します。

このノードが遅延を実装する方法がパフォーマンスに与える影響

このノードは、フリップフロップの代わりにシフトレジスタルックアップテーブル(SRL)を使用して、遅延を実装します。SRLは、多数の遅延を単一のルックアップテーブル(LUT)に統合するため、フリップフロップを使用する場合と比較してFPGAのリソース消費を大幅に減少することができます。

シミュレーションにおけるパフォーマンスの影響

FPGA VIのダウンロード、停止、実行時にこのノードを使用すると、シミュレーションの実行時間が大幅に増加する場合があります。