読み取り (FIFOメソッド)
- 更新日2025-01-28
- 5分で読める
FPGA FIFOから最も古い要素を読み取りおよび削除します。からの読み取りごとの要素数を構成します。の インタフェース ページFIFOプロパティ ダイアログボックスです。
を使用します。このメソッドを実装する FIFOメソッドノード 。
このメソッドで使用できる入力と出力は、以下の条件によって異なります。タイムアウトまたはハンドシェイクインタフェースを選択し ます。
入力/出力
| オプション | 説明 |
|---|---|
| FIFO入力 | FIFO入力はFIFOを指定します。 配線できます。FIFO制御器、FIFO定数、VI定義FIFO構成 ノード、または別のFIFOメソッドノードのFIFO出力端子を FIFO入力に接続し ます 。 |
| タイムアウト | タイムアウトは、FIFOが空の場合に、データが利用可能になるまでメソッドが待機する時間をクロックのティック数で指定します。値を–1に設定すると、関数はタイムアウトせず、データが読み取り可能になった場合のみ関数が実行を完了します。0の値は、関数が待機しないことを意味します。FIFOメソッドノードを使用する場合は、定数0を タイムアウト に配線します。シングルサイクルタイミングループ この入力は、読み取りメソッドのデフォルトです。この入力を表示するには、読み取りメソッドを右クリックし、ショートカットメニューでインタフェース→タイムアウトを選択します。 |
| FIFO出力 | FIFO出力は、FIFO入力が配線されている場合、FIFO入力をそのまま返します。配線されていない場合は、FIFO出力はFIFOメソッドノードで指定したFIFOを返します。 |
| 要素 | 要素は、FIFOで最も古いデータ要素または要素を返します。 要素 データタイプは、FIFOを作成する際のFIFOプロパティ ダイアログボックス。FIFOが空の場合、要素は定義されず読み取りは起こりません。 |
| タイムアウト? | タイムアウト?は、関数が実行を完了する前にFIFO内の要素が取得できない場合、TRUEを返します。タイムアウト?がTRUEの場合、要素は定義されず読み取りは起こりません。 この出力は、読み取りメソッドのデフォルトです。この出力を表示するには、読み取りメソッドを右クリックし、ショートカットメニューでインタフェース→タイムアウトを選択します。 |
| 出力準備完了 | 出力準備完了は、後続のノードがこのノードから返される新しい値を受信できる状態かどうかを示します。デフォルトはTRUEです。を使用フィードバックノード は、後続ノード の入力準備完了 出力を現在のノードのこの入力に配線します。
メモ あるサイクルで 出力準備完了 がFALSEの場合、 出力有効 端子はそのサイクルでFALSEを返します。
これを表示するにはハンドシェイク端子を使用するには、シングルサイクルタイミングループ内の読み取りメソッドを右クリックし、ショートカットメニューから インタフェース→ハンドシェイク を選択します。 |
| 出力有効 | 出力有効は、ノードが後続ノードで使用できる結果を計算済みの場合、TRUEを返します。ノードのデータを後続のノードに送信するには、この出力を後続ノードの入力有効入力に配線します。
これを表示するにはハンドシェイク端子を使用するには、シングルサイクルタイミングループ内の読み取りメソッドを右クリックし、ショートカットメニューから インタフェース→ハンドシェイク を選択します。 |
このメソッドをシングルサイクルタイミングループの場合は、 読み取り オプションを設定する必要があります。読み取るFIFO項目に対して、FIFOプロパティ ダイアログボックスの インタフェース ページで リクエスタが複数の場合のみアービトレート または アービトレーションなし を選択します。読み取りオプションをリクエスタが複数の場合のみアービトレートに設定した場合、複数のFIFOメソッドノードを読み取りメソッドと一緒に構成してFPGA VI内の同じFIFOにアクセスすることはできません。
シングルサイクルタイミングループ内でこのメソッドのタイムアウトインタフェースを有効にする場合、0の定数もタイムアウトに配線する必要があります。FIFOが空の場合、メソッドが実行され、有効なデータの代わりにタイムアウトが返されます。データの読み取りが可能になるまで、メソッドはタイムアウトを返し続けます。
ハンドシェイクインタフェースを使用できるのは、シングルサイクルタイミングループ内のみです。さらに、ピアツーピアとDMA FIFOには、ハンドシェイクインタフェースがサポートされていないターゲットもあります。ハンドシェイクインタフェースがサポートされていないFIFOでは、コンパイル時エラーが返されます。
FIFOを使用して以下を行うことができます。複数のクロック領域間でデータを転送する。