ブロック RAM プリミティブ - 2022.1 日本語

Versal ACAP デザイン ガイド (UG1273)

Document ID
UG1273
Release Date
2022-04-27
Version
2022.1 日本語

Versal ACAP のブロック RAM プリミティブを次に示します。

プリミティブ サポートされているアスペクト比 サポートされているモード
RAMB36E5

1Kx36

2Kx18

4Kx9

シンプル デュアル ポート (SDP) モードで動作している場合は x72 モード
RAMB18E5

1Kx18

2Kx9

SDP モードで動作している場合は x36 モード

SDP モードでは、一方のアドレスが RAM を読み出し、もう一方のアドレスが RAM に書き込みます。読み出しと書き込みには異なるクロックを使用できますが、アドレス ラインは別々にする必要があります。次の図に、例を示します。

図 1. SDP モードでの 512x72 ブロック RAM の Verilog コーディング スタイル
図 2. SDP モードでの 512x72 ブロック RAM の VHDL コーディング スタイル

リセット

ブロック RAM のリセットの種類を次に示します。

  • ブロック RAM 出力の同期リセット (RESETRAMA または RESETRAMB ピンを使用)
  • ブロック RAM 出力の非同期リセット (ARST_A または ARST_B ピンを使用)
    注記: ARST_A または ARST_B ピンが使用されている場合、RESETRAMA、RESETRAMB、RSTREGA、および RSTREGB ピンは無視されます。
  • ブロック RAM のオプションの出力レジスタを制御する同期リセット (RSTREGA または RSTREGB ピンを使用)

非同期リセットを使用する場合は、次のようになります。

  • RAM とオプションの出力レジスタの両方で、同じ非同期リセットを使用する必要がある。
    注記: オプションの出力レジスタが同じリセットを使用しない場合、ブロック RAM は推論されません。
  • 出力は有効で、SRVAL プロパティは無視される。
  • 非同期リセットでは、0 値にのみリセット可能。

書き込みモード

Versal ACAP のブロック RAM は、 UltraScale™ デバイスと同じ書き込みモードをサポートし、同じ RTL コーディング スタイルを使用します。

  • WRITE_FIRST は、新しく書き込まれたデータを出力バスに出力します。
  • READ_FIRST は、前に書き込まれたデータを出力バスに出力します。
  • NO_CHANGE は、出力バスの前の値を保持します。

バイト ライト イネーブル

バイト ライト イネーブルの制御ポートは、用途によって WEA ピンと WEB ピンのいずれかになります。

  • RAMB36E5
    • 非 SDP モードの場合、WEA および WEB [3:0] ピンは、サイズ 8 または 9 の 4 バイトを制御します。
    • SDP モードの場合、WEA および WEB [7:0] ピンは、サイズ 8 または 9 の 8 バイトを制御します。
  • RAMB18E5
    • 非 SDP モードの場合、WEA および WEB [1:0] ピンは、サイズ 8 または 9 の 2 バイトを制御します。
    • SDP モードの場合、WEA および WEB [3:0] ピンは 8 または 9 の 4 バイトを制御します。
注記: サイズ 9 は、8 ビットに 1 パリティ ビットを含めたサイズです。

現在、Vivado 合成では、サイズ 8 または 9 が使用される場合に、バイト ライト RAM のみを推論します。また、Vivado 合成では、イネーブルでワンホット ステート エンコーディングが使用される場合、バイト ライト イネーブル RAM のみを推論します。たとえば、データ幅が 36 の真のデュアル ポートとして構成されているバイト ライト イネーブル RAM では、4 つの異なるバイトがありますが、一度に書き込むことができるのは 1 バイトのみです。ブロック RAM を推論するには、RTL がこれらの制限に従うことを確認してください。

非対称 RAM

Versal ACAP の非対称ブロック RAM には、UltraScale デバイスの非対称ブロック RAM に使用するのと同じコーディング スタイルと制約を使用します。非対称ブロック RAM のセットアップについては、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) を参照してください。

注記: 現在、Vivado 合成では、Versal ACAP の非対称ブロック RAM の非同期リセットをサポートしていません。

XPM の使用

ブロック RAM は、XPM を使用して推論することもできます。このアプローチを使用する利点は、どのタイプの RAM に対しても XPM のコーディング スタイルが常に正しいものとなるということです。XPM の詳細は、 『Vivado Design Suite ユーザー ガイド: システム レベル デザイン入力』 (UG895) を参照してください。