利用可能なFIFO実装オプションを理解することで、より効率的なFPGA設計を作成できます。FIFO実装オプションでは、FPGAがターゲット指定でVI定義のFIFOをハードウェアでどのように表すかを指定します。FIFOプロパティダイアログボックスを使用して、FIFO実装オプションを選択します。

メモ DMAとピアツーピアFIFOは常にブロックメモリを使用します。

以下の表を手掛かりに、お使いのアプリケーションに最も適したFIFO実装を判断してください。

実装 機能 考慮事項
フリップフロップ フリップフロップは、データストレージや加算と減算などのその他のタスクの実行に使用するFPGAリソースです。このため、フリップフロップはデータの移動と格納に最も少ないFPGAリソースであることがよくあります。 複数のクロック領域間でフリップフロップを使用したFIFOの実装を使用することはできません。
ルックアップテーブル (LUT) ルックアップテーブルは、分散RAMとしても知られ、FPGAに配線された論理ゲートから構成されています。フリップフロップのように、LUTはFPGAリソースとしても機能します。 複数のクロック領域間でルックアップテーブルを使用したFIFOの実装を使用することはできません。
ブロックメモリ ブロックランダムアクセスメモリ、ブロックRAM、またはBRAMとしても知られているブロックメモリは、データストレージ用の専用FPGAリソースです。組込制御論理をブロックメモリ実装と使用する情報については、「ブロックメモリFIFOを実装する」を参照してください。ブロックメモリを使用してターゲット指定またはVI定義FIFOを構成する場合は、制御論理を構成できます。DMAとピアツーピアFIFOはブロックメモリのみを使用できます。 ブロックメモリオプションを選択した場合、ターゲット指定またはVI定義FIFOのデータが、FIFOへのデータ書き込み後6クロックサイクルまで読み取れない場合があります。タイムアウトインタフェースを選択した場合は、読み取りメソッドで構成したFIFOメソッドノードのタイムアウト?出力を配線して、先行データの準備ができているかどうかを判断します。ハンドシェイクインタフェースを選択した場合は、読み取りメソッドで構成したFIFOメソッドノードの出力有効出力を配線して、先行データの準備ができているかどうかを判断します。
UltraRAM UltraRAM (別名URAM) は、ほとんどのXilinx UltraScale+ターゲットで使用可能な、柔軟で高密度そして大容量のメモリ構成ブロックです。UltraRAMはブロックメモリの8倍の容量を備えていますが、ブロックメモリよりもデータ幅とアドレス空間の構成に柔軟性がありません。大きなローカルFIFOのストレージ要素としてUltraRAMを使用します。 複数のクロック領域間でUltraRAMを使用したFIFOの実装を使用することはできません。読み取り可能要素数を取得メソッドおよび書き込み可能要素数を取得メソッドは、UltraRAMを使用したFIFOの実装をサポートしていません。