読み取り (FIFOメソッド)

インストールパッケージ: FPGAモジュール

FPGA FIFOから最も古い要素を読み取りおよび削除します。 FIFOプロパティダイアログボックスのインタフェースページから読み取りごとの要素数を構成します。

このメソッドを実装するには、FIFOメソッドノードを使用します。

このメソッドで使用可能な入力と出力は、タイムアウトインタフェースを選択したかハンドシェイクインタフェースを選択したかによって異なります。

詳細  

FIFO入力はFIFOを指定します。 FIFO入力には、FIFO制御器FIFO定数VI定義FIFO構成ノード、またはその他のFIFOメソッドノードのFIFO出力端子を配線できます。
タイムアウトは、FIFOが空の場合に、データが利用可能になるまでメソッドが待機する時間をクロックのティック数で指定します。 値を–1に設定すると、関数はタイムアウトせず、データが読み取り可能になった場合のみ関数が実行を完了します。 0に設定すると、関数は待機しません。 FIFOメソッドノードをシングルサイクルタイミングループで使用する場合は、0の定数をタイムアウトに配線します。

この入力は、読み取りメソッドのデフォルトです。 この入力を表示するには、読み取りメソッドを右クリックし、ショートカットメニューでインタフェース→タイムアウトを選択します。
FIFO出力は、FIFO入力が配線されている場合、FIFO入力をそのまま返します。 配線されていない場合は、FIFO出力はFIFOメソッドノードで指定したFIFOを返します。
要素は、FIFOで最も古いデータ要素または要素を返します。 要素データタイプは、FIFOを作成した際にFIFOプロパティダイアログボックスで構成したデータタイプです。 FIFOが空の場合、要素は定義されず読み取りは起こりません。
タイムアウト?は、関数が実行を完了する前にFIFO内の要素が取得できない場合、TRUEを返します。 タイムアウト?がTRUEの場合、要素は定義されず読み取りは起こりません。
メモ  (Xilinx Vivado) シミュレーションモードでは、FIFOが組込制御論理で実装されている場合、このメソッドは、FIFO内の実際の要素数よりも少ない可能性がある、FIFOプロパティダイアログボックスの一般ページにある実際の要素数を使用するため、タイムアウト?の値がハードウェア上の実際の動作を反映しない可能性があります。
この出力は、読み取りメソッドのデフォルトです。 この出力を表示するには、読み取りメソッドを右クリックし、ショートカットメニューでインタフェース→タイムアウトを選択します。
出力準備完了は、後続のノードがこのノードから返される新しい値を受信できる状態かどうかを示します。 デフォルトはTRUEです。 後続ノードの入力準備完了出力を現在のノードのこの入力に配線するには、フィードバックノードを使用します。
メモ あるサイクルで出力準備完了がFALSEの場合、同サイクルで出力有効端子はFALSEを返します。

このハンドシェイク端子を表示するには、シングルサイクルタイミングループ内の読み取りメソッドを右クリックし、ショートカットメニューからインタフェース→ハンドシェイクを選択します。
出力有効は、ノードが後続ノードで使用できる結果を計算済みの場合、TRUEを返します。 ノードのデータを後続のノードに送信するには、この出力を後続ノードの入力有効入力に配線します。

このハンドシェイク端子を表示するには、シングルサイクルタイミングループ内の読み取りメソッドを右クリックし、ショートカットメニューからインタフェース→ハンドシェイクを選択します。

読み取り (FIFOメソッド)の詳細

このメソッドをシングルサイクルタイミングループで使用する場合は、FIFOプロパティダイアログボックスのインタフェースページで読み取りオプションを読み取るFIFO項目に対してリクエスタが複数の場合のみアービトレートまたはアービトレーションなしに設定する必要があります。 読み取りオプションをリクエスタが複数の場合のみアービトレートに設定した場合、複数のFIFOメソッドノードを読み取りメソッドと一緒に構成してFPGA VI内の同じFIFOにアクセスすることはできません。

シングルサイクルタイミングループ内でこのメソッドのタイムアウトインタフェースを有効にする場合、0の定数もタイムアウトに配線する必要があります。 FIFOが空の場合、メソッドが実行され、有効なデータの代わりにタイムアウトが返されます。 データの読み取りが可能になるまで、メソッドはタイムアウトを返し続けます。

ハンドシェイクインタフェースを使用できるのは、シングルサイクルタイミングループ内のみです。 さらに、ピアツーピアとDMA FIFOには、ハンドシェイクインタフェースがサポートされていないターゲットもあります。 ハンドシェイクインタフェースがサポートされていないFIFOでは、コンパイル時エラーが返されます。

FIFOを使用して複数のクロック領域間でデータを転送することはできません。

関連情報

アービトレーションオプションを理解する



この記事は役に立ちましたか。

役に立たなかった