ブロックメモリFIFOを実装する場合、FIFOで保持できる実際の要素数は、このトピックにまとめた要因に応じて変わります。

スライスファブリック制御論理を使用してFIFOを実装する

スライスファブリック制御論理で実装されたブロックメモリを使用してFIFOを実装する場合、FIFOの実際の要素数にも以下の表の注意事項が適用されます。

FIFOタイプ 指定するサイズ 注意事項
ターゲット指定FIFO 2の累乗に要素の小さいバッファを足す。 一般ページには、2^ M +5のサイズ ( M はアドレス幅) が表示されます。要求する要素数は最も近い大きな値 (2^ M +5) に強制変換されます。たとえば、要求する要素数が1000の場合、この数字は1029に強制変換されます。FPGAに強制変換された要求する要素数に対する十分な容量がない場合、FPGA VIはコンパイルに失敗します。
DMA FIFO
  • ターゲットからホスト (DMA) で2の累乗より1小さい。
  • ホストからターゲット (DMA) で2の累乗より1小さい数に読み取る要素数の6倍を足す。
一般ページには、2^ M -1または2^ M +(6*読み取りの要素数)-1のサイズ (M はアドレス幅) が表示されます。要求する要素数は最も近い大きな有効値に強制変換されます。FPGAに強制変換された要求する要素数に対する十分な容量がない場合、FPGA VIはコンパイルに失敗します。スライスファブリック制御論理で実装されたブロックメモリを使用してDMA FIFOを実装する必要があります。DMA FIFOの最大サイズはターゲットによって異なります。DMA FIFOのサイズ制限の詳細については、特定のFPGAターゲットのハードウェアドキュメントを参照してください。
ピアツーピアFIFO
  • ライタFIFOで2の累乗より1小さい。
  • リーダFIFOで2の累乗より1小さい数に読み取る要素数の6倍を足す。
一般ページには、2^ M -1または2^ M +(6*読み取りの要素数)-1のサイズ (M はアドレス幅) が表示されます。要求する要素数は最も近い大きな有効値に強制変換されます。FPGAに強制変換された要求する要素数に対する十分な容量がない場合、FPGA VIはコンパイルに失敗します。スライスファブリック制御論理を持つブロックメモリを使用してピアツーピアFIFOを実装する必要があります。

組込制御論理を使用してFIFOを実装する

組込制御論理で実装されたブロックメモリを使用してFIFOを実装する場合、FIFOの実際の要素数にも以下の考慮事項が適用されます。

  • 書き込みメソッドでハンドシェイクインタフェースを有効にすると、FIFO深度が1つ増えます。
  • ターゲット指定FIFO要求する要素数が組込FIFOを使用して実装可能な深度に強制変換されます。強制変換された要求する要素数の計算は、FPGAシリーズによって異なります。FPGAに強制変換された要求する要素数に対する十分な容量がない場合、FPGA VIはコンパイルに失敗します。
メモ 組込FIFOとターゲットに最適FIFOは、シミュレーションエクスポートでサポートされていません。シミュレーションエクスポート用にスライスファブリックFIFOを実装するには、条件無効ストラクチャを使用します。

ターゲットに最適論理を使用して、FIFOを実装する

ターゲットに最適制御論理でブロックメモリを実装してFIFOを実装する場合、ターゲットに最適制御論理は、組込制御論理とスライスファブリック制御論理を組み合わせたものであるため、このトピックのすべての考慮事項がFIFOが保持できる実際の要素数に適用されます。