UltraRAM (URAM) は、高集積度 FPGA の 288 Kb メモリ構築ブロックです。UltraRAM は、UltraScale+ デバイスのブロック RAM と共存します。288 Kb ブロックをカスケード接続することで、より多ビットのメモリをインプリメントできます。適切にパイプライン処理すれば、URAM はファブリック リソースをわずかに使用するか、まったく使用することなく、かつタイミングのペナルティが生じることなくインプリメントできる場合があります。
2 つのポートは同じクロックを共用し、4K x 72 ビットのすべてをアドレス指定できます。各ポートはそれぞれ独立してメモリ配列への読み書きを実行できます。UltraRAM は 2 種類のライト イネーブル モードをサポートしています。1 つは、ブロック RAM のバイト ライト イネーブル モードと同じです。
もう 1 つは、データ バイトとパリティ バイトの書き込みを個別にゲーティングできるモードです。複数の UltraRAM ブロックをカスケード接続して大容量のメモリ アレイを構築することもできます。UltraRAM カラムには専用の配線があり、カラムの高さ全体を連結できます。このため、UltraRAM は SRAM など外部メモリの置き換えとして理想的なソリューションとなります。
[UltraRAM Power] シートには、デザインで使用する UltraRAM の数および設定を入力する列があります。また、VCCINT および VCCBRAM 電源レールの消費電力も示します。[Utilization] は、ターゲット デバイスで使用される UltraRAM ブロック (URAM288) の数を示します。
デザイン入力に使用される列の説明は次のとおりです。
- [Name]
- UltraRAM または UltraRAM モジュールを識別するための名前を入力します。
- [URAMs]
- このモジュール内にある UltraRAM の数を示します。
- [Cascade Group Size]
- UltraRAM ブロックは、カスケード接続をサポートして大容量のメモリ配列を作成し、カスケード接続の UltraRAM を一度に 1 つだけイネーブルにすることで、全体的な消費電力を削減します。
例: [Cascade Group Size] が 4 に設定された 20 個の UltraRAM ブロックの場合、20/4 となり、4 ブロックずつカスケード接続された 5 セットの URAM となります。カスケード接続を使用しない場合は、[Cascade Group Size] の値を 1 に設定します。
- [Latency]
- オプションの UltraRAM パイプライン レジスタは、IRG_PRE (入力) または REG_CAS (カスケード) です。デフォルト値は、[Cascade Group Size] を 3 で割った値です。UltraRAM のカスケードがない場合は、IREG_PRE のみを使用できます。この場合、[Latency] は 1 になります。
- [Mode]
- URAM288 (ECC なし) または URAM288_with_ECC のいずれかを選択します。
- [Sleep Rate]
- URAM SLEEP 入力ピンがアサートされる時間のパーセンテージを入力します。自動スリープ モードの場合は、[Auto] もサポートされます。
- [Average Inactive Cycles]
- スリープ モード時の連続した非アクティブ サイクルの平均数。最小値は 10 を超える値か、[Cascade Group Size] から 2 を引いた値です。
- [Input Toggle Rate]
- ポート A とポート B の両方のデータ入力 (DIN) の平均トグル レート。
- [Output Toggle Rate]
- ポート A とポート B の両方のデータ出力 (DOUT) の平均トグルレート。
- [Clock (MHz)]
- UltraRAM または UltraRAM モジュールのクロック周波数。
UltraRAM ポート A と B の両方に指定される値は、次のとおりです。
- [Data Width]
- 最大 72 ビットよりも少ない場合は、正確なデータ幅を指定します。
- [Enable Rate]
- UltraRAM がイネーブルになっている時間の割合 (%)。
- [Write Enable]
- [Enable Rate] に関係なく、書き込みイネーブル入力がアサートされる時間の割合 (%)。書き込みイネーブル ピンは、URAM RDB_WR_A および RDB_WR_B ピンです。