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