Versal ACAP の UltraRAM プリミティブを次に示します。Vivado 合成で UltraRAM を推論するには、RAM に RAM_STYLE = "ultra"
属性を設定する必要があります。
プリミティブ | サポートされているアスペクト比 | サポートされているモード |
---|---|---|
URAM288E5 |
4Kx72 8Kx36 16Kx18 32Kx9 |
デュアル ポート シングル ポート |
その他のレジスタ
オプションの出力レジスタのほかに、UltraRAM はデータ ライン上の入力レジスタをサポートしています。ブロック RAM と同様に、オプションのレジスタは同期または非同期のリセット信号でリセットできます。
RAM の初期化
Versal ACAP では、UltraRAM をゼロ以外の値に初期化できます。次のように、RAM に INIT_xx 属性を使用して UltraRAM を初期化します。
- Verilog:
readmemh
コマンドを使用します。 - VHDL: VHDL で外部ファイルを読み出す関数をセットアップします。
詳細は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) を参照してください。
バイト ライト イネーブル
UltraRAM は、バイト ライト イネーブル動作にも対応しています。ブロック RAM と同様、バイトは 8 ビットまたはパリティ ビットを追加した 9 ビットとなります。ただし、Versal でバイト ライトを使用している場合、書き込み中の読み出し動作は無視されます。したがって、UltraRAM にバイト ライトをイネーブルとして記述する場合、NO_CHANGE モードのみがサポートされます。
非対称 UltraRAM
Versal ACAP UltraRAM は、非対称のアスペクト比をサポートしていますが、非対称 RAM のコーディング方法の詳細は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) の このセクション を参照してください。
XPM 推論
UltraRAM は、XPM を使用して推論することもできます。このアプローチを使用する利点は、どのタイプの RAM に対しても XPM のコーディング スタイルが常に正しいものとなるということです。XPM の詳細は、 『Vivado Design Suite ユーザー ガイド: システム レベル デザイン入力』 (UG895) を参照してください。