このページを開くには、 FIFOプロパティダイアログボックスで、 カテゴリ リストから 一般 を選択します。

このページを使用してのプロパティを編集します。FIFO

このページには以下のコンポーネントがあります。

オプション 説明
名前 プロジェクトエクスプローラ ウィンドウまたは VI定義FIFO構成 ノードです。名前は FIFOメソッドノード をブロックダイアグラムに配置し、FIFO名制御器および定数で使用してターゲット指定FIFOにアクセスできます。
タイプ 使用するFIFOのタイプを指定します。このオプションは、VI定義FIFO
  • ターゲット指定―FIFOは、FPGA VI内および同じターゲット内のFPGA VI間でデータを転送できます。 プロジェクトエクスプローラ ウィンドウ。
  • ホストからターゲット (DMA) または ターゲットからホスト (DMA) ―DMA FIFO は、ホストVIとターゲット間でデータを転送できます。
  • ピアツーピアライタ または ピアツーピアリーダ―FIFOは、 ピアツーピアストリーム
オーバーフロー時に無効化 ライタFIFOがストリームに書き込もうとして失敗すると、ピアツーピアストリームを無効にするように指定します。このオプションは、ピアツーピアライタFIFOのみに有効です。
アンダーフロー時に無効化 リーダFIFOがストリームのデータを受信しない場合にピアツーピアストリームを無効にするように指定します。このオプションは、ピアツーピアリーダFIFOのみに有効です。
要求する要素数 FIFOが保持可能な要素数を指定します。

FIFOの要素の最大数は、実装の設定および選択された実装用に使用できるFPGAリソースの量によって決定されます。FIFOが組込制御論理を使用する場合、要素の最大数はデータタイプによっても異なります。組込FIFOの幅は、1024以下である必要があります。

FPGAに入力する要求する要素数に対する十分なリソースがない場合、FPGA VIはコンパイルに失敗します。タイププルダウンメニューでホストからターゲット (DMA) またはターゲットからホスト (DMA) を選択すると、要求する要素数はFPGA FIFOのDMAチャンネルのサイズを指定します。DMA FIFOの最大サイズはターゲットによって異なります。特定のFPGAターゲットを参照 DMA FIFOサイズ制限の詳細については、ハードウェアのドキュメントを参照してください。

実装 制御器で ブロックメモリ を選択すると、 FIFOが保持できる要素数には制限が適用されます。実際の要素数はFIFOの要素数を示し、この数は要求する要素数と同じでない場合があります。

メモ FPGAからホストへのDMA転送中にタイムアウトが発生した場合は、FIFO. の構成メソッド 「メソッドをインボーク」 関数を使用して、「 要求する要素数」を増やすのではなく、「 深度 」パラメータを増やしてください。深度パラメータを増やすことにより、ホスト側のバッファサイズが増加し、タイムアウトの問題を解決してFPGAデバイスの使用率を上げない可能性が高くなります。
実装 を指定します。FIFOがFPGAに実装するストレージのタイプです。実装は、ターゲット指定FIFOおよびVI定義FIFOに対してのみ指定できます。以下のオプションが含まれます。
  • フリップフロップ―FPGA上で利用可能なフリップフロップでデータを格納し、最も高速なパフォーマンスを提供します。NIでは、このオプションを最大100バイトの小さいサイズのFIFOに使用することを推奨します。フリップフロップ実装 ではFIFOを使用できない 複数のクロック領域にまたがる
  • ルックアップテーブル―データをFPGAで使用可能なルックアップテーブルに格納します。Xilinxの参考資料では、この実装を分散RAMまたはLUT RAMと記載しています。NIでは、100~300バイトのFIFOにこのオプションを使用することを推奨します。ルックアップテーブル実装 でFIFOを使用できない 複数のクロック領域にまたがる
  • ブロックメモリ―メモリの組込ブロックを使用してデータを格納します。Xilinxの参考資料では、この実装をブロックRAMまたはBRAMと記載しています。NIでは、300バイトより大きいFIFOにこのオプションを使用することを推奨します。
    メモ ブロックメモリオプションを選択した場合、ターゲット指定FIFOまたはVI定義FIFOに書き込んだデータを、書き込み後6クロックサイクルまで読み取れない場合があります。以下の場合 タイムアウトインタフェースを選択し、タイムアウト ? を使用します。の出力 FIFOメソッド読み取りメソッドを呼び出して、先行データの準備が完了したことを確認するノード です。以下の場合 ハンドシェイクインタフェースを選択し、読み取りメソッドを呼び出すFIFOメソッドノードの 出力有効 出力を使用して、先行データの準備ができているかどうかを判断します。
  • UltraRAM―データをほとんどのXilinx UltraScale+ターゲットで使用可能なUltraRAMリソースに格納します。Xilinxの参考資料では、この実装をURAMと記載しています。このオプションは、タイプターゲット指定を選択した場合のみ使用できます。UltraRAM実装 ではFIFOを使用できない 複数のクロック領域にまたがる
    メモ読み取る要素数を取得 および 書き込み可能要素数を取得 メソッドは、UltraRAMを使用して実装されたFIFOをサポートしません。

上記のすべての実装オプションには、以下のコンポーネントが含まれます。

  • 実際の要素数―構成される要素数を返します。要求された要素数がFIFO構成に対応していない場合があります。この場合、LabVIEWは要求された要素数を互換性のある数値に強制変換し、実際の要素数はこの数値を返します。

    組込またはターゲットに最適な制御論理を選択した場合は、実際の要素数が複数の数値を返すことがあります。これらの数値は、以下のように解釈できます。

  • 組込実際の要素数は、ハンドシェイクインタフェースが無効または有効になっているときにLabVIEWがそれぞれ使用する、2つの数値を返します。
    メモ (Xilinx Vivado)FIFO内の実際の要素数は、構成時に不明です。実際の要素数は、要求された要素数よりも大きい、最も近い2の累乗である1つの数値のみを返します。この数値は最小保証数で、FIFO内の実際の要素数よりも小さい可能性があります。
  • ターゲットに最適―LabVIEWは、クロック領域とターゲットタイプに応じて、スライスファブリックまたは組込制御論理のいずれかを使用してFIFOを実装します。実際の要素数は2つまたは3つの数値を返します。最初の1つはスライスファブリック制御論理用で、その他は組込制御論理用です。

制御論理―FPGAがFIFOを実装する方法を指定します。

  • スライスファブリック―FPGAが使用するものを指定します。 フリップフロップ、LUT、およびブロックメモリ を使用して、FIFOの制御論理を実装します。
  • ターゲットに最適―FPGAがビルトインFIFO制御論理またはスライスファブリック制御論理を使用するように指定します。 ターゲットとアプリケーションによって異なります
  • 組込―FPGAが、組込FIFO制御論理を使用することを指定します。すべてのFPGAがビルトインFIFO制御論理をサポートしているわけではありません。 制限が適用されます
    メモ (Xilinx Vivado)ビルトイン制御論理を選択した場合、このFIFOは 読み取る要素数を取得 または FIFO内の実際の要素数は構成時に不明であるため、書き込み可能要素数を取得メソッドを実行します。シミュレーションモードでは、 タイムアウト? の出力値 読み取る または 書き込み メソッドは、実際 の要素数で FIFOの実際の要素数よりも小さい値をFIFO深度として使用するため、ハードウェアでの実際の動作を反映しない場合があります。