126
UltraScale アーキテクチャ メモリ リソース ユーザー ガイド UG573 (v1.9) 2018 2 9 この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし ては、必ず最新英語版をご参照ください。

UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

Embed Size (px)

Citation preview

Page 1: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

UltraScale アーキテクチャ メモリ リソース

ユーザー ガイド

UG573 (v1.9) 2018 年 2 月 9 日

この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

Page 2: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

UltraScale アーキテクチャ  メモリ  リソース 2UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

改訂履歴

次の表に、 この文書の改訂履歴を示します。

日付 バージョ ン 内容

2018 年 2 月 9 日 1.9 表 2-2 の EN_A および EN_B ポートの説明を更新。 図 2-16 を更新。

2017 年 11 月 14 日 1.8 「共通クロ ッ ク /シングル ク ロ ッ ク FIFO」 の注記 (重要) を更新。「イネーブル自動ス リープ

モード – EN_AUTO_SLEEP_MODE」 に注記を追加。 「UltraRAM の概要」 を更新。 図 2-28

とその説明を削除。

2017 年 8 月 10 日 1.7 「共通クロ ッ ク /シングル ク ロ ッ ク FIFO」 に注記 (重要) を追加。 「エンコード専用 ECC で

の読み出し」 を更新。

2017 年 5 月 4 日 1.6 表 2-5 を更新。

2017 年 3 月 15 日 1.5 「ブロ ッ ク RAM の概要」 の重要な注記を更新。 表 1-14 に注記 2 を追加。 「 リセッ ト –

RST_A、 RST_B」 を更新。 「UltraRAM のタイ ミ ング図」 を追加。

2016 年 7 月 20 日 1.4 「旧世代との違い」、 「同期デュアル ポートおよびシングル ポート RAM」、 「省電力 –

RDADDRCHANGE[A|B]」、 「パワー ゲーティング イネーブル入力 – SLEEP」、 「データ出力

バス – DOUT_A、 DOUT_B」、 「読み出しステータス出力 – RDACCESS_A、

RDACCESS_B」、 「カスケード レジスタ ステージ (オプシ ョ ン) – REG_CAS_[A|B]」、

「UltraRAM のカスケード接続とマ ト リ クス コンフ ィギュレーシ ョ ン」、 および 「カスケー

ド接続のユーザー属性」 を改訂。 表 1-14 および表 1-30 に注記を追加。 表 2-5 を更新。

「AVG_CONS_INACTIVE_CYCLES、 MATRIX_ID、 NUM_URAM_IN_MATRIX、 および

NUM_UNIQUE_SELF_ADDR_A|B 属性」 を追加。 図 2-1 および図 2-5 を更新。

2015 年 11 月 24 日 1.3 UltraScale+ デバイスの説明を追加。 「UltraScale アーキテクチャの概要」 を更新して

UltraScale+ の説明を追加。 「ブロ ッ ク RAM の概要」 の注記 (重要) を更新。 「RAMB18/36

の未使用の入力」 に導入の段落を追加。 ユーザー ガイ ドを再構成して、 旧版の第 2 章 (ビ

ルト イン FIFO) および第 3 章 (ビルト イン エラー訂正) を第 1章 「ブロ ッ ク RAM リ ソー

ス」 に統合し、 新たに第 2章 「UltraRAM リ ソース」 を追加。

2015 年 2 月 24 日 1.2 「メモ リ内容の初期化 – INIT_xx」 を更新。

2014 年 8 月 14 日 1.1 「ブロ ッ ク RAM の概要」 の箇条書きの 11 番目を更新。 表 1-6 の CASDINPA[3:0] と

CASDINB[31:0] の説明を変更。表 1-14 の DOB_REG の説明を更新。図 1-6 の WDADDREN

入力を更新。 表 1-12 を追加。 「カスケード接続可能なブロ ッ ク RAM」 を更新。 「SLEEP」

および 「省電力 – SLEEP_ASYNC」 を小修正。 「共通クロ ッ ク /シングル ク ロ ッ ク FIFO」 の

説明を小変更。 図 1-21 および図 1-22 に SLEEP 入力を追加。 表 1-23 で、 SLEEP ポート を

追加し、 CASOREGIMUX、 CASOREGIMUXEN、 CASDOMUX、 および CASDOMUXEN

の説明を変更。 表 1-24 を更新。 表 1-25 を追加。 第 1 章の 「PROG_EMPTY_THRESH」、

「PROG_FULL_THRESH」、 および 「REGISTER_MODE」 を更新。 第 2 章の

「FIFO18E2/FIFO36E で設定できる PROG_EMPTY_THRESH の範囲」 および

「FIFO18E2/FIFO36E2 で設定できる PROG_FULL_THRESH の範囲」 の各表を削除。 表 1-6

の CASOUTSBITERR、 CASINDBITERR、 および CASOUTDBITERR を更新。

2013 年 12 月 10 日 1.0 初版

Page 3: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

UltraScale アーキテクチャ  メモリ  リソース 3UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

目次

改訂履歴 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 1章: ブロック  RAM リソースUltraScale アーキテクチャの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

ブロ ッ ク RAM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

旧世代との違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

ブロ ッ ク RAM の説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

同期デュアル ポートおよびシングル ポート RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

ブロ ッ ク RAM のその他の機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

ブロ ッ ク RAM のライブラ リ プリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

ブロ ッ ク RAM ポート信号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

ブロ ッ ク RAM のアドレス マップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

ブロ ッ ク RAM の属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

ブロ ッ ク RAM と FIFO の配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

VHDL または Verilog コードでのブロ ッ ク RAM の初期化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

RAMB18E2 および RAMB36E2 プリ ミ ティブの設計上のその他の注意事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

ブロ ッ ク RAM のアプリ ケーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

ビルト イン FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

ビルト イン エラー訂正 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

第 2章: UltraRAM リソースUltraRAM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

UltraRAM の主な機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

UltraRAM のカスケード接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

UltraRAM のエラー訂正符号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

ブロ ッ ク RAM と UltraRAM の違い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

UltraRAM のプリ ミ ティブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

UltraRAM のポート名と説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

UltraRAM の属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

デュアル ポート SRAM アレイの動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

ビルト インエラー検出/訂正 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

UltraRAM のタイ ミ ング図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

付録 A: その他のリソースおよび法的通知ザイ リ ンクス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

ソ リ ューシ ョ ン センター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Documentation Navigator およびデザイン ハブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

お読みください: 重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Page 4: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1章

ブロック  RAM リソース

UltraScale アーキテクチャの概要

ザイ リ ンクス UltraScale™ アーキテクチャは、 チップ上での効率的な配線とデータ処理だけでなく、 スマート プロ

セッシングによって数百ギガ ビッ ト /秒レベルのシステム性能を可能にする業界初の ASIC ク ラス All Programmable

アーキテクチャです。 UltraScale アーキテクチャ デバイスは、 次世代配線、 ASIC 方式のクロ ッキング、 3D-on-3D

IC、 マルチプロセッサ SoC (MPSoC) テク ノ ロジ、 新しい消費電力低減機能など、 業界最先端をいく革新的な技術に

よって高帯域幅、 高使用率の幅広いシステム要件に対応します。 これらのデバイスは多数の構築ブロッ クが共通と

なっているため、 異なるプロセス ノード間や製品ファ ミ リ間での拡張性に優れ、 複数のプラ ッ ト フォームに渡るシ

ステム レベルでの投資を可能にします。

Virtex® UltraScale+™ デバイスは、 最も高いシ リ アル I/O 帯域幅と信号処理帯域幅、 最大のオンチップ メモ リ集積度

など、 FinFET ノードで最高の性能と統合性を提供します。 業界で最高性能を誇る FPGA ファ ミ リの Virtex

UltraScale+ デバイスは、 1Tb/s を超えるネッ ト ワークやデータ センターから、 完全統合型レーダー /早期警告システ

ムにいたるまで、 広範なアプリ ケーシ ョ ンに最適です。

Virtex UltraScale デバイスは、 シ リ アル I/O 帯域幅およびロジッ ク容量などにおいて、 20nm で最高の性能と統合性を

提供します。 20nm プロセス ノードで業界唯一のハイエンド FPGA となるこのデバイスは、 400G ネッ ト ワークから

大規模 ASIC のプロ ト タイピングやエミ ュレーシ ョ ンなどのアプリ ケーシ ョ ンに最適です。

Kintex® UltraScale+ デバイスは、 ト ランシーバー、 メモ リ インターフェイス ライン レート、 100G コネクティビティ

コアなどのハイエンド機能を備えるこ とで最もコス ト効率の高いソ リ ューシ ョ ンを可能にし、 FinFET ノードで最も

優れた価格/性能/ワ ッ トのバランスを提供します。 この最新のミ ッ ドレンジ ファ ミ リは、 パケッ ト処理と DSP を多

用する機能に最適である と同時に、 ワイヤレス MIMO 技術、 Nx100G ネッ ト ワーク、 データ センターなど広範なア

プリ ケーシ ョ ンにも対応します。

Kintex UltraScale は、 20nm で最高の価格/性能/ワッ トのバランスを提供するデバイスで、 ミ ッ ド レンジ デバイス と し

て最高の信号処理帯域幅、 次世代ト ランシーバー、 最適な対コス ト性能をもたらす低コス ト パッケージを提供しま

す。 このファ ミ リは、 100G ネッ ト ワークやデータ センター アプリ ケーシ ョ ンでのパケッ ト処理だけでなく、 次世

代の医療用画像処理、 8k4k ビデオ、 ヘテロジニアスなワイヤレス インフラなどで必要と される DSP 性能を重視する

アプリ ケーシ ョ ンにも最適です。

Zynq® UltraScale+ MPSoC デバイスは、 64 ビッ トのプロセッサ スケーラビ リティを実現しつつ、 リ アルタイム制御と

ソフ ト エンジンおよびハード エンジンを兼ね備えており、 グラフ ィ ッ クス、 ビデオ、 波形、 およびパケッ トの処理

に対応します。 高度な解析が可能な ARM® ベースのシステムと タスクのアクセラレーシ ョ ンが可能なオンチップ プ

ログラマブル ロジッ クが統合されているため、 5G ワイヤレス、 次世代 ADAS、 インダス ト リ アル IoT など広範なア

プリ ケーシ ョ ンにおいて無限の可能性を引き出すこ とができます。

このユーザー ガイ ドでは、 UltraScale アーキテクチャのメモ リ リ ソースについて説明します。 UltraScale アーキテク

チャに関するその他の資料は、 ザイ リ ンクスのウェブサイ ト (japan.xilinx.com/documentation) から入手可能です。

UltraScale アーキテクチャ  メモリ  リソース 4UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 5: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM の概要

UltraScale アーキテクチャ デバイスのブロッ ク RAM は 2 つの独立した 18Kb RAM または 1 つの 36Kb RAM と して構

成可能で、 いずれも最大 36 キロビッ トのデータを格納できます。 各ブロ ッ ク RAM には書き込みポート と読み出し

ポートが 2 つずつあり ます。 36Kb ブロッ ク RAM を TDP (True Dual Port) メモ リ と して使用する場合、 ポートの幅は

個別に 32Kx1、 16Kx2、 8Kx4、 4Kx9、 2Kx18、 1Kx36 のいずれかに設定できます。 36Kb ブロ ッ ク RAM を SDP

(Simple Dual Port) メモ リ と して使用し、 書き込みポート と読み出しポート をそれぞれ 1 つずつしか使用しない場合

は、 512x72 ビッ トのポート幅も可能です。 18Kb ブロ ッ ク RAM を TDP メモ リ と して使用する と、 ポートの幅を個別

に 16Kx1、 8Kx2、 4Kx4、 2Kx9、 1Kx18 のいずれかに設定できます。 18Kb ブロ ッ ク RAM を SDP メモ リ と して使用

し、 書き込みポート と読み出しポート をそれぞれ 1 つずつしか使用しない場合は、 512x36 ビッ トのポート幅も可能

です。

7 シ リーズ FPGA のブロッ ク RAM 同様、 書き込みと読み出しはクロ ッ クに同期して行われます。 2 つのポートは対

称でそれぞれ完全に独立しており、 保存したデータのみを共有します。 各ポートは、 設定可能な幅のいずれかに指

定でき、 も う一方のポートからは独立しています。 さ らに、 1 つのポートの読み出しポート と書き込みポートには

別々の幅を設定可能です。 メモ リ内容は、 コンフ ィギュレーシ ョ ン ビッ ト ス ト リームで初期化またはク リ アできま

す。 書き込み実行中のデータ出力は、 以前の出力をそのまま維持するか、 書き込まれているデータを出力するか、

上書きされる以前のデータを出力するかを設定できます。

ブロ ッ ク RAM には次の特長があ り ます。

• ブロ ッ クごとのメモ リ格納機能によ り、 各ブロッ ク RAM に最大で 36Kb のデータを格納できます。

• 2 つの独立した 18Kb ブロッ クまたは 1 つの 36Kb ブロ ッ ク RAM をサポート します。

• 各 36Kb ブロ ッ ク RAM を読み出しポート と書き込みポートが 1 つずつの SDP モード と して使用した場合、 ブ

ロ ッ ク RAM のデータ幅は 2 倍の 72 ビッ トにな り ます。 18Kb ブロ ッ ク RAM を読み出しポート と書き込みポー

トが 1 つずつの SDP モード と して使用した場合は、 データ幅は 2 倍の 36 ビッ トになり ます。

• RAMB36 SDP メモ リ と して使用する場合、 一方のポート幅は 512x64 または 512x72 に固定され、 も う一方の

ポート幅は 32Kx1 ~ 512x72 に設定できます。 RAMB18 SDP メモ リ と して使用する場合、 一方のポート幅は

512x36 に固定され、 も う一方のポート幅は 16Kx1 ~ 512x36 に設定できます。

• 隣接するブロ ッ ク RAM をカスケード接続し、 下段のブロ ッ ク RAM のデータ出力を上段のブロ ッ ク RAM に入

力するこ とで、 大容量のブロ ッ ク RAM ブロッ クを構成可能です。 オプシ ョ ンのパイプライン レジスタを使用

する と、 最大限の性能がサポート されます。

• 36Kb ブロ ッ ク RAM または 36Kb FIFO は 64 ビッ トの ECC (エラー訂正符号) ブロ ッ クを 1 つ備えています。

エンコード /デコード機能が別々に使用可能です。 ECC モードにはエラー挿入機能があ り ます。

• 初期値に対する、 出力の同期セッ ト / リセッ トは、 ブロ ッ ク RAM 出力のラ ッチおよびレジスタ モードの両方で

使用できます。

• 同期セッ ト ピンと同期リセッ ト ピンを分離するこ とによ り、 オプシ ョ ンの出力レジスタのセッ ト / リセッ ト とブ

ロ ッ ク RAM の出力ラ ッチ段階を個別に制御できます。

• ブロ ッ ク RAM を共通クロ ッ ク /シングル ク ロ ッ ク FIFO と して構成する と、 フラグのレイテンシのばらつきが

なくな り ます。

• 18、 36、 72 ビッ ト幅のブロ ッ ク RAM ポートには、 バイ ト ごとに個別のライ ト イネーブルを含めるこ とができ

ます。 これは、 マイ クロプロセッサと インターフェイスする際に頻繁に使用される機能です。

• 各ブロッ ク RAM には、 ビルト インの独立クロ ッ ク FIFO メモ リ と して動作するためのアドレス シーケンス処理

および制御回路がオプシ ョ ンで含まれています。ブロ ッ ク RAM は 18Kb または 36Kb FIFO と して構成できます。

• すべての入力はポート ク ロ ッ クに同期して取り込まれ、 Setup-to-Clock タイ ミ ング仕様に従います。

UltraScale アーキテクチャ  メモリ  リソース 5UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 6: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

• すべての出力は、 ライ ト イネーブル (WE) ピンの状態によって、 読み出しまたは書き込み中に読み出しになり

ます。 これらの出力は、 Clock-to-Out 時間に有効になり ます。 書き込み中の読み出しの出力には、 3 つの動作

モード、 WRITE_FIRST、 READ_FIRST、 NO_CHANGE があ り ます。

• 書き込みには、 クロ ッ ク エッジが 1 つ必要です。

• 読み出しには、 クロ ッ ク エッジが 1 つ必要です。

• すべての出力ポートは、 オプシ ョ ンでラ ッチまたはレジスタ付きです。 別の読み出し /書き込みを実行するまで

は、 出力ポートの値は一定です。 デフォルトのブロッ ク RAM 出力はレジスタ モードです。

推奨:出力データパスにはオプシ ョ ンの内部パイプライン レジスタがあ り ます。 レジスタ モードの使用を強く推奨します。 これによ り、 高クロ ッ ク レートでの動作が可能になり ますが、 ク ロ ッ クの 1 サイ クル分のレイテンシが追加されます。

ブロ ッ ク RAM には次の使用規則があ り ます。

• ブロ ッ ク RAM の同期出力レジスタ (オプシ ョ ン) は、 DO_REG = 1 のと きに RSTREG を使用してセッ ト または

リセッ ト (SRVAL) されます。 RSTREG と REGCE のどちらが優先されるかは、 RSTREG_PRIORITY 属性で指定

します。 同期出力ラ ッチは DO_REG = 0 または 1 のと きに RSTRAM を使用してセッ ト またはリセッ ト (SRVAL)

されます。

重要: ブロ ッ ク RAM のアドレス ピンおよびライ ト イネーブル ピンでセッ ト アップ/ホールド タイム違反が生じない

よ うにします。 これらのセッ ト アップ/ホールド タイムに違反する と、 ライ ト イネーブルが Low であっても、 ブ

ロ ッ ク RAM のデータ内容が破損するこ とがあ り ます。 これは主に、 ブロ ッ ク RAM の制御ピンを駆動しているフ

リ ップフロ ップがシステム全体のリセッ ト など非同期にリセッ ト された場合に発生します。 この問題を防ぐには、

アサート とディアサートの両方に同期リセッ トのみを使用して設計します。

• ブロ ッ ク RAM のレジスタ モードが RSTREG で、 RSTREG_PRIORITY = REGCE の場合、 出力 DO レジスタ値を

リセッ トするには、 REGCE = 1 とする必要があ り ます。 このモードでは、 ブロ ッ ク RAM アレイ データ出力

ラ ッチはリセッ ト されません。 ブロ ッ ク RAM のラ ッチ モード SRTRAM の場合、 出力 DO ラ ッチ値を リセッ ト

するにはブロ ッ ク RAM はイネーブル (EN = 1) になっている必要があ り ます。

• ブロ ッ ク RAM プリ ミ ティブには RAMB36E2 と RAMB18E2 の 2 つがあ り ます。

• 特定のブロ ッ ク RAM プリ ミ ティブを使用する と、 読み出しおよび書き込みポートに異なる幅が選択可能です。

パリティ ビッ トはポート幅が x9、 x18、 x36 の場合のみ利用できます。 読み出し幅が x1、 x2、 x4 のと きは使用

しないでください。 読み出し幅が x1、 x2、 または x4 の場合、 有効な書き込み幅は x1、 x2、 x4、 x8、 x16、 x32

です。 同様に、 書き込み幅が x1、 x2、 または x4 の場合、 プリ ミ ティブの属性は 1、 2、 4、 9、 18、 あるいは 36

に設定されますが、 実際に使用可能な読み出し幅はそれぞれ x1、 x2、 x4、 x8、 x16、 または x32 とな り ます。

表 1-1 に、 ポート幅の組み合わせを示します。

UltraScale アーキテクチャ  メモリ  リソース 6UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 7: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

旧世代との違い

7 シリーズ FPGA からの変更点

• SDP メモ リ と して使用する場合、 すべての書き込みモード (READ_FIRST、 WRITE_FIRST、 NO_CHANGE) がサ

ポート されます 。

• UltraScale アーキテクチャ デバイスでは、 新しいデータ カスケード方式が採用されました。 ブロ ッ ク RAM をボ

ト ムアップ方式で直接カスケード接続するこ とによ り、 ほかのロジッ ク リ ソースを使用するこ とな く、 ブロ ッ

ク RAM カラム内で大容量のブロッ ク RAM を構築できます。

• ブロ ッ ク RAM にアドレス イネーブル機能が追加されました。 これを無効にする と、 ブロ ッ ク RAM で新しいア

ドレスはラ ッチされません。

• 動的パワー ゲーティング機能が追加されました。 データ内容を保持したままブロ ッ ク RAM をス リープ モード

に移行できます。

• RAM_MODE 属性は削除されました。ブロ ッ ク RAM を TDP モードまたは SDP モードで使用するかは、Vivado®

ツールが自動で決定します。

• ビルト イン FIFO と IP FIFO が可能な限り協調動作するよ うに改善されました。 これによ り、 ソフ ト FIFO と

ハード FIFO のインプリ メンテーシ ョ ンの切り替えが容易になり ました。

• 複数の FIFO36 および FIFO18 のカスケード接続がサポート され、 ハードウェアでよ り深い FIFO を構築できます。

• 従来世代の非同期リセッ トに代わり、 同期 FIFO リセッ トが追加されました。

• 書き込み動作時の EMPTY/PROGEMPTY フラグのディアサート、 および読み出し動作時の FULL/PROGFULL フ

ラグのディアサート までの FIFO レイテンシが変更されました。

• リセッ ト中の WRERR および RDERR の動作が変更されました。

• FIFO の非対称ポートがサポート されました。 書き込みポート と読み出しポート を、 FIFO36E2 の場合は x4、 x9、

x18、 x36、 x72 に、 FIFO18E2 の場合は x4、 x9、 x18、 x36 にそれぞれ個別に設定できます。

• 出力動作モード (標準および FWFT) と出力レジスタ ステージの設定の組み合わせが変更されました。

表 1‐1:パリテ ィ  ビッ トの使用法

プリ ミテ ィブ設定

有効な読み出し幅 有効な書き込み幅読み出し幅 書き込み幅

RAMB18E2 1、 2、 4 9、 18 設定幅と同一 8、 16

RAMB18E2 9、 18 1、 2、 4 8、 16 設定幅と同一

RAMB18E2 1、 2、 4 1、 2、 4 設定幅と同一 設定幅と同一

RAMB18E2 9、 18 9、 18 設定幅と同一 設定幅と同一

RAMB36E2 1、 2、 4 9、 18、 36 設定幅と同一 8、 16、 32

RAMB36E2 9、 18、 36 1、 2、 4 8、 16、 32 設定幅と同一

RAMB36E2 1、 2、 4 1、 2、 4 設定幅と同一 設定幅と同一

RAMB36E2 9、 18、 36 9、 18、 36 設定幅と同一 設定幅と同一

注記:1. 一方のポート幅が 9 よ り小さ く、 も う一方が 9 以上の場合、 パリティ ビッ ト DINP/DOUTP は使用しないでください。

UltraScale アーキテクチャ  メモリ  リソース 7UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 8: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

• WRCOUNT および RDCOUNT がサポートするユーザー選択可能な機能が増えました。

• ブロ ッ ク RAM の ECC にパイプライン レジスタが追加され、 FMAX が向上しました。

• ハードウェア FIFO は、 7 シ リーズの FIFO と下位互換性があ り ません。

ブロック  RAM の説明

UltraScale アーキテクチャ デバイスには、 分散 RAM および高速 SelectIO™ メモ リ インターフェイスだけでなく、 多

数の 36Kb ブロ ッ ク RAM が備わっています。各 36Kb ブロッ ク RAM には、独立して制御される 2 つの 18Kb RAM が

あ り ます。 ブロ ッ ク RAM は、 デバイス全体でクロ ッ ク領域 (CR) 内にカラム状に配置されます。 ブロ ッ ク RAM の

データ出力ブロ ッ クをカスケード接続するこ とでビッ ト数と ワード数の多いメモ リがインプリ メン トできるほか、

消費電力を抑えるス リープ モード、 選択可能な書き込み動作モードを備えています。

同期デュアル ポートおよびシングル ポート  RAM

データフロー

36Kb の TDP ブロッ ク RAM は、 36Kb の記憶領域と完全に独立した 2 つのアクセス ポート (A および B) で構成され

ています。 同様に、 各 18Kb ブロ ッ ク RAM のデュアル ポート メモ リは、 18Kb の記憶領域と完全に独立した 2 つの

アクセス ポート (A および B) で構成されています。 構造は完全に対称で、 両ポートは交換可能です。 図 1-1 に

RAMB36 の TDP のデータフローを示します。 表 1-2 にポートの機能とその説明を示します。

データの書き込み/読み出しは、 どちらか一方のポート または両方のポートで実行できます。 書き込みは、 それぞれ

クロ ッ クに同期して行われ、 各ポートには、 アドレス、 データ入力、 データ出力、 クロ ッ ク、 ク ロ ッ ク イネーブル、

ライ ト イネーブルが含まれます。 読み出しおよび書き込みは同期で実行されます。 そのため、 1 つのクロ ッ ク エッ

ジが必要です。

両方のポートで同じアドレスにアクセスした際に、 その調整を行う専用モニターはあ り ません。

重要: これら 2 つのクロ ッ クのタイ ミ ングを適切に調整する必要があ り ます。 同じアドレスに同時に書き込みを実行

した場合、 物理的な破損はあ り ませんが、 書き込まれたデータは不確定になり ます。

注記: Vivado ツールは、 ブロ ッ ク RAM が SDP モードまたは TDP モードで使用されているかを自動で判断します。

UltraScale アーキテクチャ  メモリ  リソース 8UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 9: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

X-Ref Target - Figure 1-1

図 1‐1: RAMB36 を  TDP モードで使用した場合のデータフロー

DOUTPA

DINPA

ADDRA

WEA

ENA

CASDOUTPB

CASDOUTB

RSTRAMA

CLKA

RSTREGA

ADDRENA

REGCEA

Sleep

REGCEB

DINPB

ADDRB

WEB

ENB

RSTRAMB

RSTREGB

CLKB

36-Kbit Block RAM

DOUTPB

DOUTB

DOUTA

DINA

DINB

ADDRENB

36 Kb Memory

Array

Port A

32

4

32

4

15

4

32

32 4 32 4

4

15

4

32

4

Port B

CASDOUTPA

CASDOUTA

CASDINPB

CASDINB

32 4 32 4

CASDINPA

CASDINA

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 9UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 10: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

読み出し

ラ ッチ モードの読み出しは、 ク ロ ッ ク エッジに同期して行われます。 読み出しアドレスが読み出しポートに取り込

まれてから、 RAM アクセス時間の後に、 格納されたデータが出力ラ ッチに読み込まれます。 出力レジスタを使用し

た場合は、 読み出しのレイテンシが 1 ク ロ ッ ク サイ クル増加します。

書き込み

書き込みは、 クロ ッ ク エッジに同期して行われます。 書き込みアドレスは書き込みポートに取り込まれ、 入力デー

タがメモ リに格納されます。

表 1‐2: TDP モードでのポートの機能および説明

ポート名 説明

DIN[A|B] データ入力バス

DINP[A|B](1) データ入力パリティ バスで、 追加データ入力に使用できます。

ADDR[A|B] アドレス バス

ADDREN[A|B] アドレス ラ ッチ イネーブル。 Low の場合は、 前のアドレスがラ ッチされたまま とな り ます。

WE[A|B] バイ ト ライ ト イネーブル

EN[A|B] 非アクティブの場合、 ブロ ッ ク RAM にデータは書き込まれず、 出力バスが以前の状態に保持

されます。

RSTREG[A|B] 出力レジスタの同期セッ ト / リセッ ト (DO_REG = 1)。 REGCE よ り も優先するかど うかは、

RSTREG_PRIORITY 属性で設定します。

RSTRAM[A|B] 出力データ ラ ッチの同期セッ ト / リセッ ト

CLK[A|B] ク ロ ッ ク入力

DOUT[A|B] データ出力バス

DOUTP[A|B](1) データ出力パリティ バスで、 追加データ出力に使用できます。

REGCE[A|B] 出力レジスタ ク ロ ッ ク イネーブル

CASDIN[A|B] カスケード データ入力バス

CASDINP[A|B] カスケード パリティ入力バス

CASDOUT[A|B] カスケード データ出力バス

CASDOUTP[A|B] カスケード パリティ出力バス

SLEEP 動的シャッ ト ダウンによる消費電力削減。 SLEEP がアクティブな場合、 ブロ ッ クは省電力

モードです。

注記:1. データ パリティ ピンの詳細は、 31ページの 「データ入力バス – DINADIN、 DINPADINP、 DINBDIN、 DINPBDINP」 を参照してください。

2. ブロ ッ ク RAM プリ ミ ティブのポート名とポート機能名は異なるこ とがあ り ます。

3. カスケード接続した場合のデータフローおよびポートの詳細は、 16ページの 「カスケード接続可能なブロ ッ ク RAM」 および 24ページの 「ブロ ッ ク RAM のライブラ リ プリ ミ ティブ」 を参照してください。

UltraScale アーキテクチャ  メモリ  リソース 10UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 11: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

書き込みモード

書き込みクロ ッ ク エッジ後の出力ラ ッチのデータは、 WRITE_FIRST、 READ_FIRST、 NO_CHANGE の 3 つの書き込

みモードのいずれを設定するかで決定します。 このモードは、 コンフ ィギュレーシ ョ ンで設定します。 各ポートに

対して別々の書き込みモードを設定でき、 デフォルトのモードは WRITE_FIRST です。 WRITE_FIRST では新たな

データが書き込まれる と同時に、 その新規データが出力バスに送信され、 READ_FIRST ではあらかじめ保存されて

いるデータが出力されます。 NO_CHANGE では、 前回の読み出し処理の出力がそのまま送信されます。

WRITE_FIRST または透過モード  (デフォルト )

図 1-2 に示すよ うに、 WRITE_FIRST モードでは入力データをメモ リに書き込むと同時にデータ出力にも格納されま

す (透過書き込み)。 こ こに示す波形は、 オプシ ョ ンの出力パイプライン レジスタを使用しないラ ッチ モードの場合

です。

X-Ref Target - Figure 1-2

図 1‐2: WRITE_FIRST モードでの波形

CLK

WE

DIN

ADDR

DOUT

EN

Disabled Read

XXXX 1111 2222 XXXX

aa bb cc dd

0000 MEM(aa) 1111 2222 MEM(dd)

ReadWrite MEM(bb)=1111

Write MEM(cc)=2222

UltraScale アーキテクチャ  メモリ  リソース 11UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 12: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

READ_FIRST または書き込み前読み出しモード

READ_FIRST モードでは、 書き込み先アドレスに格納されていたデータが出力ラ ッチに送信され、 それと同時に入

力データがメモ リに格納されます (書き込み前に読み込み)。 図 1-3 の波形は、 オプシ ョ ンの出力パイプライン レジ

スタを使用しないラ ッチ モードの場合を示しています。

X-Ref Target - Figure 1-3

図 1‐3: READ_FIRST モードでの波形

CLK

WE

DIN

ADDR

DOUT

EN

Disabled Read

XXXX 1111 2222 XXXX

aa bb cc dd

0000 MEM(aa) old MEM(bb) old MEM(cc) MEM(dd)

ReadWrite MEM(bb)=1111

Write MEM(cc)=2222

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 12UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 13: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

NO_CHANGE モード

NO_CHANGE モードでは、 書き込み中、 出力ラ ッチは変化しません。 図 1-4 に示すよ うに、 データ出力には最後に

読み込まれたデータがそのまま維持され、 同じポートでの書き込みに影響されません。 こ こに示す波形は、 オプ

シ ョ ンの出力パイプライン レジスタを使用しないラ ッチ モードの場合です。 このモードが最も消費電力を削減でき

ます。

アドレス競合

アドレス競合とは、ブロ ッ ク RAM の両方のポートが同じクロ ッ ク サイクルで 1 つのアドレスにアクセスした場合を

いいます。

• 両方のポートが読み出しを実行した場合、 動作は正し く完了します。

• 両方のポートが異なるデータを書き込んだ場合、 このメモ リ アドレスに書き込まれるデータは確定できません。

• 一方のポートが書き込み、 も う一方のポートが読み出しを実行した場合は、 次のよ うになり ます。

° 書き込みポートはデータを常に正し く書き込みます。

° 書き込みポート側の読み出しデータは常に正しいものです (TDP)。

° 読み出しポートのデータは、 共通クロ ッ クのデザイン (つま り、 両方のクロ ッ クが同じクロ ッ ク バッ

ファーで駆動されている場合) で、 書き込みポートが READ_FIRST モードの場合のみ、 確定的となり ます。

それ以外の条件では、 読み出しポート側の読み出しデータは確定できません。

X-Ref Target - Figure 1-4

図 1‐4: NO_CHANGE モードでの波形

CLK

WE

DIN

ADDR

DOUT

EN

Disable Read

XXXX 1111 2222 XXXX

aa bb cc dd

0000 MEM(aa) MEM(dd)

ReadWrite MEM(bb)=1111

Write MEM(cc)=2222

UltraScale アーキテクチャ  メモリ  リソース 13UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 14: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM のその他の機能

出力レジスタ  (オプシ ョ ン)

オプシ ョ ンの出力レジスタを使用する と、 パイプライン処理におけるコンフ ィギャラブル ロジッ ク ブロッ ク (CLB)

フ リ ップフロ ップへの配線遅延が削減され、 デザインのパフォーマンスが向上します。 これらの出力レジスタには、

独立したクロ ッ クおよびクロ ッ ク イネーブルの入力が供給されるため、 入力レジスタの動作から独立した値が保持

できます。 図 1-5 にオプシ ョ ンの出力レジスタを示します。

個別に選択可能な読み出しポート と書き込みポートの幅

各ブロッ ク RAM ポートでは、 データ幅とアドレス幅 (アスペク ト比) を制御できます。 TDP モードのブロ ッ ク RAM

ではこの機能が拡張され、 各ポートでの読み出しおよび書き込みに異なるデータ ビッ ト幅を設定できるよ うになっ

ています。 たとえば、 ポート A が 36 ビッ トの読み出し幅と 9 ビッ トの書き込み幅を持ち、 ポート B が 18 ビッ トの

読み出し幅と 36 ビッ トの書き込み幅を持つよ う設定可能です。

読み出しポート と書き込みポートの幅が異なっていて、 WRITE_FIRST モードが設定されている場合、 有効なすべて

の書き込みバイ トに対して、 DOUT には有効な新規データが現れます。 有効となっていないすべてのバイ トに対し

ては、 メモ リに保存された以前のデータが DOUT ポートに出力されます。

読み出しポート と書き込みポートの幅を個別に設定できるこ とによ り、 ブロ ッ ク RAM に CAM (Content Addressable

Memory) を効率的にインプリ メン トできます。 このオプシ ョ ンは、 UltraScale アーキテクチャ デバイスのブロ ッ ク

RAM を TDP モード と した場合、 すべてのポート サイズとモードで使用可能です。

X-Ref Target - Figure 1-5

図 1‐5: ブロック  RAM の論理図 (1 ポートのみ表示)

Optional Inverter

Register Latches Register

Control EngineWEEN

CLK

Write Strobe

Read Strobe

QD QD

Configurable Options

Memory Array (common to both ports)

Latch Enable

Address

DIN

DOUT

UltraScale アーキテクチャ  メモリ  リソース 14UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 15: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

シンプル デュアル ポート  ブロック  RAM

18Kb ブロ ッ クおよび 36Kb ブロ ッ クはそれぞれ、 SDP RAM モード と しても構成できます。 このモードでは、 ブロ ッ

ク RAM のポート幅が 2 倍になり、18Kb ブロ ッ ク RAM では 36 ビッ ト 、36Kb ブロ ッ ク RAM では 72 ビッ ト とな り ま

す。 ブロ ッ ク RAM を SDP メモ リ と して使用する場合、 ポート A を読み出しポート、 ポート B を書き込みポート と

し、 読み出し と書き込みを同時に独立して実行できます。 読み出しポート と書き込みポートが同じデータ位置に同

時にアクセスする と、 TDP モードのポート競合と同様に競合が発生します。 UltraScale アーキテクチャ デバイスは、

ブロ ッ ク RAM を SDP メモ リ と して使用した場合、 READ_FIRST、 WRITE_FIRST、 NO_CHANGE モードをサポート

します。

図 1-6 に、 ブロ ッ ク RAM をシンプル デュアル ポート メモ リ と して使用した場合の RAMB36 のデータフローを示し

ます。

X-Ref Target - Figure 1-6

図 1‐6: RAMB36 をシンプル デュアル ポート  メモリ と して使用した場合のデータフロー

36 Kb Memory Array

DOUT

RDEN

RDADDR

RDCLK

REGCE

DINP

WRADDR

WE

WRCLK

WREN

DIN64

8

8

15

15

64

DOUTP8

RSTREG

CASDOUTPCASDOUT

32 4

Sleep

32 4

CASDINPCASDIN

RDADDREN

RSTRAM

WRADDREN

UltraScale アーキテクチャ  メモリ  リソース 15UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 16: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1-3 に、 シンプル デュアル ポート メモ リ と して使用した場合の各ポートの機能とその説明を示します。

カスケード接続可能なブロック  RAM

UltraScale アーキテクチャ デバイスは、 1 つの RAMB36 のデータ出力を次の RAMB36 に直列にカスケード接続して、

ボ ト ムアップ方式でよ り ワード数の大きいブロッ ク RAM を構築できます。 データ出力をカスケード接続するこの機

能は、 RAMB36 のすべてのポート幅でサポート されます。 RAMB36E2 モジュールがサポート している機能はすべ

て、 カスケード接続したブロ ッ ク RAM でも利用できます。

注記:旧世代のアーキテクチャでサポート されていた 64Kx1 のカスケード接続は廃止されました。 新しいカスケード

接続のインプ リ メンテーシ ョ ンでも、 64Kx1 のカスケード接続と同じ機能が得られます。

表 1‐3: シンプル デュアル ポート  モードでのポートの機能および説明

ポート名 説明

DOUT データ出力バス

DOUTP データ出力パリティ バス

DIN データ入力バス

DINP データ入力パリティ バス

RDADDR 読み出しデータ アドレス バス

RDCLK 読み出しデータ ク ロ ッ ク

RDEN 読み出しポート イネーブル

REGCE 出力レジスタ ク ロ ッ ク イネーブル

RSTREG 出力レジスタの同期セッ ト / リセッ ト

RSTRAM 出力データ ラ ッチの同期セッ ト / リセッ ト

WRADDR 書き込みデータ アドレス バス

WRCLK 書き込みデータ ク ロ ッ ク

WREN 書き込みポート イネーブル

SLEEP 動的シャッ ト ダウンによる消費電力削減。 Sleep が High の場合、 そのブロ ッ クは

省電力モードです。

CASDIN[A|B] カスケード データ入力バス

CASDINP[A|B] カスケード パリティ入力バス

CASDOUT[A|B] カスケード データ出力バス

CASDOUTP[A|B] カスケード パリティ出力バス

RDADDREN/WRADDREN アドレス ラ ッチ イネーブル。 Low の場合は、 前のアドレスがラ ッチされたまま と

な り ます。

注記:1. カスケード接続した場合のデータフローおよびポートの詳細は、 16ページの 「カスケード接続可能なブロ ッ ク RAM」 および

24ページの 「ブロ ッ ク RAM のライブラ リ プリ ミ ティブ」 を参照してください。

UltraScale アーキテクチャ  メモリ  リソース 16UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 17: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

データフローは、 常に下段のブロ ッ ク RAM から上段のブロッ ク RAM への方向です。 カスケード接続に使用する信

号配線および制御ロジッ クはすべてハードウェアで実装されます。 必要に応じて 3 つ以上のブロ ッ ク RAM をカス

ケード接続するこ と も可能です。 カスケード モードでは、 1 つの共通クロ ッ ク ソースによって同じブロ ッ ク RAM 入

力 (RDCLK または WRCLK) を駆動する必要があ り ます。 また、 このデータ カスケード機能では下段の RAMB36 の

下側の RAMB18 を上段の RAMB36 の下側の RAMB18 に独立してカスケード接続するこ と もできます。 同様に、 下

段の RAMB36 の上側の RAMB18 は上段の RAMB36 の上側の RAMB18 にカスケード接続できます。

重要: 1 つのカスケード チェーンに接続されたすべてのブロ ッ ク RAM は、 ポート幅などの共通入力を同じにするな

ど、 各機能の設定を揃えておく必要があ り ます。

図 1-7 に、 4 つのブロッ ク RAM をカスケード接続した場合の概念図を示します。

ブロ ッ ク RAM は、 カスケード接続機能をさまざまな構成で柔軟にインプリ メン トできます。 データパスおよびパイ

プライン レジスタを選択する 3 つのマルチプレクサーは、 入力ピンで動的に制御できます (図 1-7 参照)。

X-Ref Target - Figure 1-7

図 1‐7: ブロック  RAM のカスケード  アーキテクチャの概略図

BRAM3Final Output

Data to the Next Block RAM

Data From the Previous Block RAM

DOUTx

CLK

DINxD Q

CASOREGIMUX CASDOMUXCASDIMUX

BRAM2Final Output

DOUTx

CLK

DINxD Q

BRAM1Final Output

DOUTx

CLK

DINxD Q

BRAM0Final Output

DOUTx

CLK

DINxD Q

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 17UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 18: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-8 は、 1 つのブロッ ク RAM ブロ ッ クにおける機能インプリ メンテーシ ョ ンをさ らに詳し く示したものです。

ブロ ッ ク RAM をカスケード モードにする と、 3 つのカスケード マルチプレクサー選択ピンが利用可能になり ます。

CASDIMUX は、 カスケード入力データか直接データ入力かを選択します。 CASOREGIMUX は、 ブロ ッ ク RAM の

データ出力とカスケード データ入力のどちらをオプシ ョ ンの出力レジスタに入力するかを選択します。 この制御ピ

ンを利用してカスケード接続をパイプライン化するこ とで、 パフォーマンスを最大にできます。 CASDOMUX は、

ブロ ッ ク RAM のデータ出力 (オプシ ョ ンの出力レジスタを使用する場合はその出力) とカスケード データ入力のど

ちらを出力するかを選択します。 最後の 2 つのカスケード マルチプレクサー選択ピンの入力にはレジスタがついて

おり、 イネーブル制御ピンがあ り ます。 CASDOUT および CASDIN には、 ブロ ッ ク RAM カラム内に専用のインター

コネク トがあ り ます。 カスケード接続は、 ブロッ ク RAM へのデータ入力およびブロ ッ ク RAM からのデータ出力と

同時に利用できます。

ブロ ッ ク RAM のデータ カスケード機能を使用する と さまざまなユース ケースをインプリ メン トできますが、 こ こ

では最も代表的な 3 つについて説明します。 こ こで示す例はいずれも 3 つのブロ ッ ク RAM をカスケード接続してい

ますが、 アプ リ ケーシ ョ ンでそれ以上のブロッ ク RAM が必要な場合は、 一部制約があるものの、 同じ方法でブロ ッ

ク RAM を追加できます。

標準データ出力カスケード  モード

このカスケード モードでは、 下段のブロ ッ ク RAM のデータ出力を上段のブロ ッ ク RAM の最終出力マルチプレク

サーに入力します (図 1-9 参照)。 このカスケード接続は、 ブロッ ク RAM のカラム全体に適用できます。 このモード

では、 わずかなロジッ ク リ ソースを使用するだけで非常にワード数の多い RAM をインプリ メン トできます。 必要

なロジッ ク リ ソースは、 EN ピンを駆動するロジッ ク、 ブロ ッ ク RAM のピンを駆動するロジッ ク、 カスケード マル

チプレクサーのセレク ト値を正し く決定するためのロジッ ク、 そして DO_REG を使用する場合はデータ アライ メン

トのためのロジッ クのみです。 入力マルチプレクサーはブロッ ク RAM への書き込みデータに常に DIN を選択し、

ブロ ッ ク RAM の出力マルチプレクサーは常にブロッ ク RAM の出力データを選択します。 そして、 最後の出力マル

チプレクサーは現在のブロ ッ ク RAM のデータ (またはオプシ ョ ンの出力レジスタのデータ ) または下段のブロ ッ ク

X-Ref Target - Figure 1-8

図 1‐8: カスケード接続の機能ブロック図

OREG(FF)

EN, ADDR, WE

DIN

CASDIMUX CASDOMUX CASDOMUXEN

CASDOUTAttribute DO_REGREGCE

Block RAM

0

10

1

0

1

0DFF

Q

DFF

Q

D EN FF

O

D EN FF

O1

CASOREGIMUX CASOREGIMUXEN

CASDIN

DOUT

UltraScale アーキテクチャ  メモリ  リソース 18UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 19: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

RAM からのカスケード データのどちらかを選択します。 ブロ ッ ク RAM のチェーンの長さは最終的な Clock-to-Out

パフォーマンスに影響するため、 カスケード接続するブロッ ク RAM の数によってはパフォーマンスが低下するこ と

があ り ます。 ブロ ッ ク RAM の機能はすべてサポート されます。

重要: ブロ ッ ク RAM カラム内での配置順は CASCADE_ORDER 属性で指定し、 オプシ ョ ンのブロ ッ ク RAM レジス

タを使用するかど うかは DO_REG 属性で指定します。

X-Ref Target - Figure 1-9

図 1‐9: ブロック  RAM のカスケード接続 – 標準データ出力カスケード  モード

BlockRAM 2 Optional

Register

DIN2

DO_REG

CASDOMUX

CASDINCASCADE_ORDER = LAST

0

10

1

0

1

0

1 DOUT

CASCADE_ORDER = MIDDLE

CASDOUT

CASDIN

CASCADE_ORDER = FIRST

BlockRAM 1 Optional

Register

DIN1

DO_REG

CASDOMUX

0

10

1

0

1

0

1

CASDOUTBlock

RAM 0 Optional Register

DIN0

DO_REG

0

10

1

0

1

0

1

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 19UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 20: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

パイプライン モードのデータ出力カスケード

パイプライン カスケード モードのブロ ッ ク RAM は標準モード と よ く似ていますが、 アプリ ケーシ ョ ンではよ り高

い動作周波数でのカスケード接続が可能になり ます (図 1-10 参照)。 このカスケード モードでは、 動作周波数を高め

るためにブロ ッ ク RAM の出力レジスタをパイプライン ステージと して使用しており、 カスケード データはこの出

力レジスタを経由して伝搬します。 オプシ ョ ンのレジスタへの入力を選択するマルチプレクサーは、 外部ピンの

CASOREGIMUX で制御します。 これによ り、 下段のブロ ッ ク RAM または現在のブロッ ク RAM からのデータを出

力レジスタに格納できます。 入力マルチプレクサーはブロッ ク RAM への書き込みデータに常に DIN を選択し、 ブ

ロ ッ ク RAM の出力マルチプレクサーはブロッ ク RAM の出力データまたは下段のブロ ッ ク RAM からのカスケード

データのどちらかを選択してレジスタに書き込みます。 カスケード ステージごとの最終出力マルチプレクサーは常

にレジスタからのデータを選択して最終データ と して出力します。 このモードでは、 すべての DO_REG 属性を

TRUE に設定する必要があ り ます。 このカスケード モードでは、 カスケード チェーンの長さは 1 ク ロ ッ ク領域以内

に制限されます。

X-Ref Target - Figure 1-10

図 1‐10: ブロック  RAM のカスケード接続 – パイプライン  データ出力カスケード  モード

BlockRAM 2 Optional

Register

DIN2

DO_REG

CASDINCASCADE_ORDER = LAST

0

10

1

0

1

0

1 DOUT

CASCADE_ORDER = FIRST

CASOREGIMUXA

BlockRAM 1 Optional

Register

DIN1

DO_REG

CASDINCASCADE_ORDER = MIDDLE

0

10

1

0

1

0

1 CASDOUT

CASOREGIMUXA

BlockRAM 0 Optional

Register

DIN0

DO_REG

0

10

1

0

1

0

1 CASDOUT

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 20UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 21: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM アレイ  マト リクス (シスト リ ッ ク ) モードのデータ入力カスケード

ブロ ッ ク RAM シス ト リ ッ ク モードでは、 アプリ ケーシ ョ ンは入力データまたはカスケード データのいずれかをブ

ロ ッ ク RAM に書き込むこ とができます (図 1-11 参照)。 その 1 サイ クル後に、 アプリ ケーシ ョ ンは下段のブロ ッ ク

RAM からのデータを読み出して上段のブロ ッ ク RAM に書き込むこ とができます。 データは、 カスケード チェーン

に接続されたブロ ッ ク RAM を動的に選択して読み出すこ とができます。 入力マルチプレクサーは、 DIN データまた

は下段のブロ ッ ク RAM からのカスケード データ出力のどちらかを動的に選択して現在のブロ ッ ク RAM に書き込み

ます。 ブロ ッ ク RAM 出力マルチプレクサーは常にブロッ ク RAM の出力データを選択し、 直接またはオプシ ョ ンの

レジスタを経由して DOUT に出力します。 オプシ ョ ンのレジスタを使用するかど うかは DO_REG 属性で決定しま

す。 このカスケード モードでは、 カスケード チェーンの長さは 1 ク ロ ッ ク領域以内に制限されます。

X-Ref Target - Figure 1-11

図 1‐11: ブロック  RAM のカスケード接続 – アレイ  (シスト リ ック ) データ入力カスケード  モード

BlockRAM 2 Optional

Register

DIN2

DO_REG

CASDIMUX

CASDIN

CASCADE_ORDER = LAST

0

10

1

0

1

0

1 DOUT

CASCADE_ORDER = MIDDLE

CASDOUT

CASCADE_ORDER = FIRST

BlockRAM 1 Optional

Register

DIN1

DO_REG

0

10

1

0

1

0

1

CASDOUTBlock

RAM 0 Optional Register

DIN0

DO_REG

0

10

1

0

1

0

1

CASDIMUX

CASDIN

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 21UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 22: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

アドレス イネーブル

これは、 アドレス EN が High のと きのみ新しいアドレスをキャプチャする機能です。 アドレス EN が Low の場合は

前のアドレスが内部でラ ッチされたまま とな り、 内部アクセスに使用されます。 アドレス入力が変化は無視されま

す。 この機能は ENADDREN 属性で制御します。 図 1-12 を参照してください。

X-Ref Target - Figure 1-12

図 1‐12: アドレス ラッチ イネーブル

ADDR[0]Register

ADDR[n]Register

ADDR[0]

ADDR[0]

ADDR[n]

ADDREN

CLK

0

1

0

1

ADDR[N]

X17306-020817

UltraScale アーキテクチャ  メモリ  リソース 22UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 23: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

バイ ト  ライ ト  イネーブル

ブロ ッ ク RAM にはバイ ト ラ イ ト イネーブル機能があ り、 8 ビッ ト (1 バイ ト ) 単位で入力データを書き込むこ とがで

きます。 TDP モードの RAMB36E2 には、 4 つの独立したバイ ト ラ イ ト イネーブル入力があ り ます。 TDP モードの

RAMB36E2 にはポート A とポート B の 2 つのポートがあ り、それぞれのポートに 4 ビッ トのライ ト イネーブル バス

があ り ます (1 ビッ トが各データ バイ トに対応)。 SDP モードの RAMB36E2 には書き込みポートが 1 つあり、 この

ポートに 8 ビッ トのライ ト イネーブル バスがあ り ます (1 ビッ トが各データ バイ トに対応)。表 1-4 に、 36Kb および

18Kb ブロ ッ ク RAM で利用できるバイ ト ライ ト イネーブルの数を示します。各バイ ト ライ ト イネーブルは、 1 バイ

トの入力データ と 1 パリティ ビッ トに対応しています。 バイ ト ライ ト イネーブル入力は、 データ幅の設定に従って

駆動する必要があ り ます。 この機能は、 ブロッ ク RAM を使用してマイ クロプロセッサと通信する際に役立ちます。

バイ ト ライ ト イネーブル機能は、 ECC モードでは使用できません。 バイ ト ライ ト イネーブルの詳細は、 43ページ

の 「RAMB18E2 および RAMB36E2 プリ ミ ティブの設計上のその他の注意事項」 を参照してください。 図 1-13 に、

RAMB36E2 のバイ ト ライ ト イネーブルのタイ ミ ング図を示します。

RAMB36E2 で 36 ビッ ト幅または 18 ビッ ト幅のデータパスを設定する と、 データ ワード内で指定したバイ ト位置へ

の書き込みを任意のポートで制御できます。 READ_FIRST モードの場合、 DOUT バスにはアドレス指定したワード

全体が書き込み前の内容で現れます。 WRITE_FIRST の場合は、 DOUT には新たに書き込まれた有効なバイ ト と未書

き込みバイ トのメモ リの初期内容の組み合わせが出力されます。

X-Ref Target - Figure 1-13

図 1‐13:バイ ト  ライ ト動作の波形 (x36 WRITE_FIRST)

表 1‐4:使用可能なバイ ト  ライ ト  イネーブル

プリ ミテ ィブ 最大ビッ ト幅 バイ ト  ライ ト  イネーブル数

TDP モードの RAMB36E2 36 4

SDP モードの RAMB36E2 72 8

TDP モードの RAMB18E2 18 2

SDP モードの RAMB18E2 36 4

CLK

WE

DIN

ADDR

DOUT

EN

Disabled Read

XXXX 1111 2222

1111 0011

XXXX

aa bb bb cc

0000 MEM(aa) 1111 1122 MEM(cc)

ReadWriteMEM(bb)=1111

Byte WriteMEM(bb)=1122

• • • • • • •• • • • • •

UltraScale アーキテクチャ  メモリ  リソース 23UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 24: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM の ECC (エラー訂正符号)

36Kb ブロ ッ ク RAM でのブロ ッ ク RAM および FIFO インプリ メンテーシ ョ ンでは、 64 ビッ トの ECC を備えるこ と

ができます。 この機能を使用する と、 ブロ ッ ク RAM の読み出しデータのシングル ビッ トおよびダブル ビッ ト エ

ラーが検出できます。 シングル ビッ ト エラーは出力データで修正されます。

未使用ブロック  RAM のパワー ゲーティング

UltraScale アーキテクチャ デバイスは、未使用またはインスタンシエート されていないブロ ッ ク RAM の電源を 18Kb

単位で細かく切断します。 デザイン内でインスタンシエート されていないすべての 18Kb ブロ ッ クに対してパワー

ゲーティングを有効にするこ とで、 消費電力を削減できます。 パワー ゲーティングを有効にした 18Kb ブロ ッ クは

コンフ ィギュレーシ ョ ン時に初期化されず、 0 を維持します。 コンフ ィギュレーシ ョ ンおよびリードバッ クには有効

なビッ ト ス ト リームが必要です。 空白のビッ ト ス ト リームは使用できません。 インスタンシエート されていないブ

ロ ッ ク RAM へのアクセスは、 内部動作を無効にするこ とによって避けるこ とができます。

ブロック  RAM のライブラリ  プリ ミテ ィブ

ブロ ッ ク RAM のライブラ リ プリ ミ ティブ、 RAMB18E2 および RAMB36E2 はすべてのブロ ッ ク RAM コンフ ィギュ

レーシ ョ ンの基本構築ブロッ クです。 その他のブロッ ク RAM のプリ ミ ティブおよびマクロは、 このプリ ミ ティブを

基にしています。 ブロ ッ ク RAM の属性によっては、 1 つのプリ ミ ティブでのみ設定できます (パイプライン レジス

タ、 カスケードなど)。

9 ビッ ト幅 (8+1)、 18 ビッ ト幅 (16+2)、 36 ビッ ト幅 (32+4) のコンフ ィギュレーシ ョ ンでは、入力および出力データ バ

スは 2 つのバスで表されます。 各バイ トに関連付けられている 9 番目のビッ トにはパリティ ビッ ト (エラー訂正ビッ

ト ) を保存するか、 追加のデータ ビッ ト と して使用できます。 この 9 番目のビッ トには、 特定の機能はあ り ません。

パリティ ビッ ト用に別のバスを使用した方が良いデザインもあ り ますが、 たいていの場合は、 通常のデータ バスと

パリティ バスを一緒にして、 9 ビッ ト 、 18 ビッ ト、 または 36 ビッ ト バスを使用しても問題あ り ません。 読み出し /

書き込み、 および保存はパリティ ビッ ト を含めてすべてのビッ トで同様に行われます。

UltraScale アーキテクチャ  メモリ  リソース 24UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 25: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-14 に、 36Kb の TDP のブロ ッ ク RAM プリ ミ ティブ (RAMB36) の I/O ポート を示します。 表 1-5 にプリ ミ ティブ

の一覧を示します。

注記:図 1-14 には ECC 関連のピンは示していません。 詳細は、 「ビルト イン エラー訂正」 を参照して ください。

X-Ref Target - Figure 1-14

図 1‐14: ブロック  RAM ポート信号 (RAMB36E2)

DOUTPADOUTP

DOUTPBDOUTP

DINADIN

DINPADINP

ADDRARDADDR

WEAENARDEN

RSTREGARSTREG

CLKARDCLK

DOUTADOUT

DOUTBDOUT

RSTRAMARSTRAM

REGCEAREGCE

DINBDIN

DINPBDINP

ADDRBWRADDR

WEBWE

ENBWREN

RSTREGBRSTRAMB

REGCEB

CLKBWRCLK

32

4

15

4

32

4

32

4

32

4

15

8

CASDOUTPBCASDOUTB

ADDRENA

Sleep

ADDRENB

32 4 32 4

CASDOUTPACASDOUTA

CASDINPBCASDINB

32 4 32 4

CASDINPACASDINA

CASDIMUXBCASOREGIMUXBCASOREGIMUXEN_B

CASDOMUXEN_BCASDOMUXB

CASDIMUXACASOREGIMUXACASOREGIMUXEN_A

CASDOMUXEN_ACASDOMUXA

UltraScale アーキテクチャ  メモリ  リソース 25UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 26: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1-6 に、 表 1-5 で示したプリ ミ ティブの各ポートの名称と説明を示します。 ECC ポートについては、 「ビル ト イン

エラー訂正」 で説明します。

表 1‐5: ブロック  RAM および FIFO プリ ミテ ィブ

プリ ミテ ィブ 説明

RAMB36E2 • TDP メモ リ と して使用した場合、 x1、 x2、 x4、 x9、 x18、 x36 のポート幅をサポート

します。

• SDP メモ リ と して使用した場合、 読み出し /書き込みポート幅は x64 または x72 で、

も う一方のポート幅は x1、 x2、 x4、 x9、 x18、 x36、 x72 です。 ECC モードでは、 64

ビッ ト ECC エンコード /デコードをサポート します。

RAMB18E2 • TDP メモリ と して使用した場合、 x1、 x2、 x4、 x9、 x18 のポート幅をサポート します。

• SDP メモ リ と して使用した場合、 読み出し /書き込みポート幅は x32 または x36 で、

も う一方のポート幅は x1、 x2、 x4、 x9、 x18、 x36 です。

FIFO36E2 いずれのポート も、 x4、 x9、 x18、 x36、 x72 のポート幅がサポート されます。 ポート幅

を x72 と した場合、 オプシ ョ ンで ECC がサポート されます。

FIFO18E2 いずれのポート も、 x4、 x9、 x18、 x36 のポート幅がサポート されます。

表 1‐6: RAMB36E2 および RAMB18E2 のポート名と説明

ポート名 説明

DINADIN[31:0] ポート A データ入力。 アドレスは ADDRARDADDR で指定します。 SDP メモ リ と して使用す

る場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

DINPADINP[3:0] ポート A データ パリティ入力。 アドレスは ADDRARDADDR で指定します。 SDP メモ リ と し

て使用する場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

DINBDIN[31:0] ポート B データ入力。 アドレスは ADDRBWRADDR で指定します。 SDP メモ リ と して使用す

る場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

DINPBDINP[3:0] ポート A データ パリティ入力。 アドレスは ADDRBWRADDR で指定します。 SDP メモ リ と

して使用する場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

ADDRARDADDR [14:0] ポート A アドレス入力バス。 SDP メモ リ と して使用する場合は RDADDR バスとな り ます。

ADDRBWRADDR[14:0] ポート B アドレス入力バス。 SDP メモ リ と して使用する場合は WRADDR バスとな り ます。

ADDRENA ポート A で新しいアドレスをキャプチャするかど うかを制御します。 無効にした場合 (Low)、

ラ ッチされているアドレスを使用します。

ADDRENB ポート B で新しいアドレスをキャプチャするかど うかを制御します。 無効にした場合 (Low)、

ラ ッチされているアドレスを使用します。

WEA[3:0] ポート A バイ ト ライ ト イネーブル。 SDP メモ リ とする場合は使用しません。

WEBWE[7:0] ポート B バイ ト ライ ト イネーブル。 SDP モードでは、バイ ト ライ ト イネーブルとなり ます。

ENARDEN ポート A イネーブル。 SDP メモ リ と して使用する場合は RDEN とな り ます。

ENBWREN ポート B イネーブル。 SDP メモ リ と して使用する場合は WREN とな り ます。

RSTREGARSTREG 同期出力レジスタのセッ ト / リセッ ト 。 SRVAL_A (DOA_REG = 1) で初期化します。 REGCE よ

り も優先するかど うかは RSTREG_PRIORITY_A で設定します。SDP メモ リ と して使用する場

合は RSTREG とな り ます。

RSTREGB 同期出力レジスタのセッ ト / リセッ ト 。 SRVAL_B (DOA_REG = 1) で初期化します。 REGCE よ

り も優先するかど うかは、 RSTREG_PRIORITY_B で設定します。

UltraScale アーキテクチャ  メモリ  リソース 26UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 27: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

RSTRAMARSTRAM 同期出力ラ ッチのセッ ト / リセッ ト 。 SRVAL_A (DOB_REG = 0) で初期化します。 SDP メモ リ

と して使用する場合は RSTRAM とな り ます。

RSTRAMB 同期出力ラ ッチのセッ ト / リセッ ト 。 SRVAL_B (DOB_REG = 0) で初期化します。

CLKARDCLK ポート A ク ロ ッ ク入力。 SDP メモ リ と して使用する場合は RDCLK とな り ます。

CLKBWRCLK ポート B ク ロ ッ ク入力。 SDP メモ リ と して使用する場合は WRCLK とな り ます。

REGCEAREGCE ポート A 出力レジスタ ク ロ ッ ク イネーブル (DOA_REG = 1)。SDP メモ リ と して使用する場合

は REGCE とな り ます。

REGCEB ポート B 出力レジスタ ク ロ ッ ク イネーブル (DOB_REG = 1)。

CASDINA[31:0] ポート A カスケード データ入力。 下段のブロ ッ ク RAM のデータ出力から接続されます。

RAMB18E2 の場合は CASDINA[15:0] です。

CASDINPA[3:0] ポート A カスケード パリティ データ入力。下段のブロ ッ ク RAM のパリティ データ出力から

接続されます。 RAMB18E2 の場合は CASDINPA[1:0] です。

CASDINB[31:0] ポート B カスケード データ入力。 下段のブロッ ク RAM のデータ出力から接続されます。

RAMB18E2 の場合は CASDINB[15:0] です。

CASDINPB[3:0] ポート B カスケード パリティ データ入力。下段のブロ ッ ク RAM のパリティ データ出力から

接続されます。

RAMB18E2 の場合は CASDINPB[1:0] です。

CASDOUTA[31:0] ポート A カスケード データ出力。 上段のブロ ッ ク RAM の CASDINA[31:0] に接続します。

RAMB18E2 の場合は CASDOUTA[15:0] です。

CASDOUTPA[3:0] ポート A カスケード パリティ データ出力。上段のブロ ッ ク RAM の CASDINPA[3:0] に接続し

ます。 RAMB18E2 の場合は CASDOUTPA[1:0] です。

CASDOUTB[31:0] ポート B カスケード データ出力。 上段のブロッ ク RAM の CASDINB[31:0] に接続します。

RAMB18E2 の場合は CASDOUTB[15:0] です。

CASDOUTPB[3:0] ポート B カスケード パリティ データ出力。上段のブロ ッ ク RAM の CASDINPB[3:0] に接続し

ます。 RAMB18E2 の場合は CASDOUTPB[1:0] です。

CASDOMUXA ポート A のデータ カスケード出力マルチプレクサーを制御する入力を選択します。

CASDOMUXEN_A CASDOMUXA レジスタの制御を有効にします。

CASDOMUXB ポート B のデータ カスケード出力マルチプレクサーを制御する入力を選択します。

CASDOMUXEN_B CASDOMUXB レジスタの制御を有効にします。 SDP メモ リ とする場合は使用しません。

CASOREGIMUXA ポート A の出力レジスタの前のカスケード マルチプレクサーを制御する入力を選択します。

CASOREGIMUXEN_A CASOREGIMUXA レジスタの制御を有効にします。

CASOREGIMUXB ポート B の出力レジスタの前のカスケード マルチプレクサーを制御する入力を選択します。

SDP メモ リ とする場合は使用しません。

CASOREGIMUXEN_B CASOREGIMUXB レジスタの制御を有効にします。 SDP メモ リ とする場合は使用しません。

CASDIMUXA ポート A のカスケード DIN マルチプレクサーを制御する入力を選択します。

CASDIMUXB ポート B のカスケード DIN マルチプレクサーを制御する入力を選択します。 SDP メモ リ とす

る場合は使用しません。

表 1‐6: RAMB36E2 および RAMB18E2 のポート名と説明 (続き)

ポート名 説明

UltraScale アーキテクチャ  メモリ  リソース 27UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 28: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM ポート信号

ブロ ッ ク RAM の各ポートは同じ 36Kb メモ リ セルのセッ トにアクセスしますが、 動作はそれぞれ独立しています。

クロック  – CLKARDCLK、 CLKBWRCLK

各ポートは、 それぞれのクロ ッ ク ピンに完全に同期します。 すべてのポートの入力ピンにはセッ ト アップ タイムが

あ り、 CLK ピンを基準と します。 また、 出力データ バスの Clock-to-Out も CLK ピンを基準と します。 ク ロ ッ クの極

性は設定変更可能で、 デフォルトでは立ち上がりエッジとなっています。 SDP メモ リ と して使用する場合、 CLKA

ポートが RDCLK とな り、 CLKB ポートが WRCLK とな り ます。

イネーブル – ENARDEN、 ENBWREN

イネーブル ピンは、 ポートの読み出し、 書き込み、 およびセッ ト / リセッ ト機能を制御します。 ポートのイネーブル

ピンが非アクティブのと き、 出力ピンは前の状態を維持し、 データはメモ リ セルに書き込まれません。 イネーブル

の極性は設定変更可能で、 デフォルトではアクティブ High となっています。 SDP メモ リ と して使用する場合、 ENA

ポートが RDEN とな り、 ENB ポートが WREN とな り ます。

バイ ト  ライ ト  イネーブル – WEA、 WEBWE

データ入力バスの内容を指定したメモ リ位置に書き込むには、 ク ロ ッ クの立ち上がりエッジ前のセッ ト アップ タイ

ム中に EN と WE の両方がアクティブになる必要があ り ます。 データが出力ラ ッチに読み込まれるかど うかは、 書き

込みモード (WRITE_FIRST、 READ_FIRST、 NO_CHANGE) の設定によって決ま り ます。 WE が非アクティブで、 EN

がアクティブの場合は読み出し処理が行われ、 書き込みモードの設定にかかわらず、 アドレス バスで指定されたメ

モ リ セルの内容がデータ出力バスに送信されます。 ラ イ ト イネーブル ピンの極性は変更できず、 常にアクティブ

High です。 SDP メモ リ と して使用する場合、 WEBWE[7:0] ポートがバイ ト ライ ト イネーブルとなり ます。 TDP メモ

リ と して使用する場合は、WEA[3:0] と WEB[3:0] がそれぞれポート A とポート B のバイ ト ライ ト イネーブルとなり

ます。 詳細は、 44ページの 「バイ ト ライ ト イネーブル」 を参照してください。

DOUTADOUT[31:0] ポート A データ出力バス。 アドレスは ADDRARDADDR で指定します。 SDP メモ リ と して使

用する場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

RAMB18E2: DOUTADOUT[15:0] です。

DOUTPADOUTP[3:0] ポート A パリティ出力バス。 アドレスは ADDRARDADDR で指定します。 SDP メモ リ と して

使用する場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

RAMB18E2: DOUTPADOUTP[1:0] です。

DOUTBDOUT[31:0] ポート B データ出力バス。 アドレスは ADDRBWRADDR で指定します。 SDP メモ リ と して使

用する場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

RAMB18E2: DOUTBDOUT[15:0] です。

DOUTPBDOUTP[3:0] ポート B パリティ出力バス。 アドレスは ADDRBWRADDR で指定します。 SDP メモ リ と して

使用する場合のポート名マッピングは、 30ページの表 1-11 を参照してください。

RAMB18E2: DOUTPBDOUTP[1:0] です。

SLEEP 動的パワー ゲーティング。

表 1‐6: RAMB36E2 および RAMB18E2 のポート名と説明 (続き)

ポート名 説明

UltraScale アーキテクチャ  メモリ  リソース 28UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 29: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

レジスタ  イネーブル – REGCEAREGCE、 REGCEB

レジスタ イネーブル ピン (REGCE) は、 オプシ ョ ンの出力レジスタを制御します。 ブロ ッ ク RAM がレジスタ モード

の場合、 REGCE = 1 と指定する と、 ク ロ ッ ク エッジで出力がレジスタに取り込まれます。 REGCE の極性は変更でき

ず、 常にアクティブ High です。 SDP メモ リ と して使用する場合、 REGCEA ポートが REGCE とな り ます。

セッ ト /リセッ ト

RSTREGARSTREG、 RSTREGB、 RSTRAMARSTRAM、 RSTRAMB

ラ ッチ モードでは、 RSTRAM ピンによってデータ出力ラ ッチに SRVAL の値が同期で格納されます。 オプシ ョ ンの

出力レジスタが有効の場合 (DO_REG = 1)、RSTREG 信号によってデータ出力レジスタに SRVAL の値が同期的に格納

されます。 RSTREG と REGCE のどちらを優先するかは、 RSTREG_PRIORITY 属性で指定します。 データ出力ラ ッ

チまたは出力レジスタは、 パリティビッ ト を含め同期で 0 または 1 にアサート されます。 各ポートには、 それぞれ

36 ビッ トの SRVAL[A|B] 属性が指定されます。 この初期化によって RAM メモ リ セルが変化するこ とはなく、 も う

1 つのポートでの書き込みにも影響を与えません。 どちらの信号も極性は設定変更可能で、 デフォルトではアクティ

ブ High となっています。 SDP メモ リ と して使用する場合、 RSTREGA ポートが RSTREG とな り、 RSTRAMA ポート

が RSTRAM とな り ます。

アドレス バス – ADDRARDADDR、 ADDRBWRADDR

アドレス バスは、 読み出しまたは書き込みを実行する メモ リ セルを選択します。 SDP メモ リ と して使用する場合、

ADDRA ポートが RDADDR とな り、 ADDRB ポートが WRADDR とな り ます。 表 1-7、 表 1-8、 表 1-9、 表 1-10 に示

すよ うに、 RAMB18E2 または RAMB36E2 のアドレス バス幅は、 ポートのデータ ビッ ト幅によって決ま り ます。

表 1‐7: RAMB18E2 のポート  アスペク ト比 (TDP メモリ と して使用した場合)

ポートのデータ幅 ポートのアドレス幅 ワード数 ADDR バスDIN バスDOUT バス

DINP バスDOUTP バス

1 14 16,384 [13:0] [0] NA

2 13 8,192 [13:1] [1:0] NA

4 12 4,096 [13:2] [3:0] NA

9 11 2,048 [13:3] [7:0] [0]

18 10 1,024 [13:4] [15:0] [1:0]

表 1‐8: RAMB18E2 のポート  アスペク ト比 (SDP メモリ と して使用した場合)

ポートのデータ幅(1)

も う一方のポート幅

ポートのアドレス幅

ワード数 ADDR バスDIN バスDOUT バス

DINP バスDOUTP バス

32 1 14 16,384 [13:0] [0] NA

32 2 13 8,192 [13:1] [1:0] NA

32 4 12 4,096 [13:2] [3:0] NA

36 9 11 2,048 [13:3] [7:0] [0]

36 18 10 1,024 [13:4] [15:0] [1:0]

36 36 9 512 [13:5] [31:0] [3:0]

注記:1. 読み出しまたは書き込みポートの幅は x32 または x36 で固定です。

UltraScale アーキテクチャ  メモリ  リソース 29UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 30: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1-11 に、 ブロ ッ ク RAM を SDP メモ リ と して使用する場合のポート名マッピングを示します。 SDP データフロー

については、 図 1-6 に示しています。

表 1‐9: RAMB36E2 のポート  アスペク ト比 (TDP メモリ と して使用した場合)

ポートのデータ幅

ポートのアドレス幅

ワード数 ADDR バスDIN バスDOUT バス

DINP バスDOUTP バス

1 15 32,768 [14:0] [0] NA

2 14 16,384 [14:1] [1:0] NA

4 13 8,192 [14:2] [3:0] NA

9 12 4,096 [14:3] [7:0] [0]

18 11 2,048 [14:4] [15:0] [1:0]

36 10 1,024 [14:5] [31:0] [3:0]

1 (カスケード ) 16 65,536 [15:0] [0] NA

表 1‐10: RAMB36E2 のポート  アスペク ト比 (SDP メモリ と して使用した場合)

ポートのデータ幅(1)

も う一方のポート幅

ポートのアドレス幅

ワード数 ADDR バスDIN バスDOUT バス

DINP バスDOUTP バス

64 1 15 32,768 [14:0] [0] NA

64 2 14 16,384 [14:1] [1:0] NA

64 4 13 8,192 [14:2] [3:0] NA

72 9 12 4,096 [14:3] [7:0] [0]

72 18 11 2,048 [14:4] [15:0] [1:0]

72 36 10 1,024 [14:5] [31:0] [3:0]

72 72 9 512 [14:6] [63:0] [7:0]

注記:1. 読み出しまたは書き込みポートの幅は x64 または x72 で固定です。

表 1‐11: ブロック  RAM を  SDP メモリ と して使用する場合のポート名マッピング

SDP メモリ と して使用した場合の RAMB18E2 SDP メモリ と して使用した場合の RAMB36E2

X36 モード  (幅 = 36) X18 モード  (幅 18) X72 モード  (幅 = 72) X36 モード  (幅 36)

DIN[15:0] = DINADIN[15:0] DIN[15:0] = DINBDIN[15:0] DIN[31:0] = DINADIN[31:0] DIN[31:0] = DINBDIN[31:0]

DINP[1:0] = DINPADIN[1:0] DINP[1:0] = DINPBDINP[1:0] DINP[3:0] = DINPADIN[3:0] DINP[3:0] = DINPBDINP[3:0]

DIN[31:16] = DINBDIN[15:0] DIN[63:32] = DINBDIN[31:0]

DINP[3:2] = DINPBDINP[1:0] DINP[7:4] = DINPBDINP[3:0]

DOUT[15:0] =

DOUTADOUT[15:0]

DOUT[15:0] =

DOUTADOUT[15:0]

DOUT[31:0] =

DOUTADOUT[31:0]

DOUT[31:0] =

DOUTADOUT[31:0]

DOUTP[1:0] =

DOUTPADOUTP[1:0]

DOUTP[1:0] =

DOUTPADOUTP[1:0]

DOUTP[3:0] =

DOUTPADOUTP[3:0]

DOUTP[3:0] =

DOUTPADOUTP[3:0]

DOUT[31:16] =

DOUTBDOUT[15:0]

DOUT[63:32] =

DOUTBDOUT[31:0]

DOUTP[3:2] =

DOUTPBDOUTP[1:0]

DOUTP[7:4] =

DOUTPBDOUTP[3:0]

UltraScale アーキテクチャ  メモリ  リソース 30UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 31: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

データ入力バス – DINADIN、 DINPADINP、 DINBDIN、 DINPBDINP

データ入力バスは、 RAM に書き込むデータ値を供給します。 通常のデータ入力バス (DIN) とデータ入力パリティ バ

ス (DINP) (使用可能な場合) の幅を合計したものがポート幅になり ます。 たとえば、 29ページの表 1-7 ~表 1-10 に示

すよ うに、 36 ビッ トのポート データ幅は DIN[31:0] と DINP[3:0] で表されます。ブロ ッ ク RAM を SDP メモ リ と して

使用する場合のポート名マッピングは、 表 1-11 を参照してください。

データ出力バス – DOUTADOUT、 DOUTPADOUTP、 DOUTBDOUT、DOUTPBDOUTP

読み出しでは、 最後のアクティブなク ロ ッ ク エッジでアドレス バスによ り指定されたメモ リ セルの内容が、 データ

出力バスに送信されます。 WRITE_FIRST または READ_FIRST モードの書き込みでは、 書き込み中の値または書き

込み前に保存されていた値がデータ出力バスに送信されます。 NO_CHANGE モードの書き込みでは、 データ出力バ

スは変化しません。 29ページの表 1-7 ~ 30ページの表 1-10 に示すよ うに、 通常のデータ出力バス (DOUT) とパリ

ティ データ出力バス (DOUTP) (使用可能な場合) の幅を合計したものがポート幅になり ます。 ブロ ッ ク RAM を SDP

メモ リ と して使用する場合のポート名マッピングは、 30ページの表 1-11 を参照して ください。

ADDRENA

ADDRENA は、 ポート A のアドレスのラ ッチを有効にします。 ブロ ッ ク RAM が有効で ADDRENA が Low の場合、

ブロ ッ ク RAM には前のアドレスがラ ッチされたまま とな り ます。 High の場合はアドレスがキャプチャされてアク

ティブになり ます。 この機能は ENADDRENA 属性で制御します。 SDP モードでは、 ADDRENA ポートは

RDADDREN とな り ます。

ADDRENB

ADDRENB は、 ポート B のアドレスのラ ッチを有効にします。 ブロ ッ ク RAM が有効で ADDRENB が Low の場合、

ブロ ッ ク RAM には前のアドレスがラ ッチされたまま とな り ます。 High の場合はアドレスがキャプチャされてアク

ティブになり ます。 この機能は ENADDRENB 属性で制御します。 SDP モードでは、 ADDRENB ポートは

WRADDREN とな り ます。

CASDINA

下段のブロ ッ ク RAM からポート A へのカスケード データ入力です。

注記: カスケード接続の詳細は、 16ページの 「カスケード接続可能なブロ ッ ク RAM」 を参照してください。

CASDINB

下段のブロ ッ ク RAM からポート B へのカスケード データ入力です。

CASDINPA

下段のブロ ッ ク RAM からポート A へのカスケード パリティ入力です。

CASDINPB

下段のブロ ッ ク RAM からポート B へのカスケード パリティ入力です。

UltraScale アーキテクチャ  メモリ  リソース 31UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 32: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

CASDOUTA

ポート A から上段のブロッ ク RAM へのカスケード データ出力です。

CASDOUTB

ポート B から上段のブロ ッ ク RAM へのカスケード データ出力です。

CASDOUTPA

ポート A から上段のブロッ ク RAM へのカスケード パリティ出力です。

CASDOUTPB

ポート B から上段のブロ ッ ク RAM へのカスケード パリティ出力です。

カスケード選択 – CASDIMUX

ブロ ッ ク RAM をカスケード モードで使用する場合、入力マルチプレクサーで通常のデータ入力 (DIN) とカスケード

データ入力 (CASDIN) のどちらを選択するかを決定するセレク ト ラインです。 カスケード モードを使用しない場合

は、 DIN が常に選択されます。

カスケード選択 – CASOREGIMUX

ブロ ッ ク RAM をカスケード モードで使用する場合、 ブロ ッ ク RAM からの通常のデータ とカスケード入力

(CASDIN) のどちらを選択するかを決定するマルチプレクサー セレク ト ラインを駆動するレジスタへの D 入力です。

このマルチプレクサーはオプシ ョ ンの出力レジスタの前にあ り、 カスケード モードでパイプライン ステージを追加

します。 カスケード モードを使用しない場合は、 ブロ ッ ク RAM のデータが常に選択されます。

カスケード選択 – CASOREGIMUXEN

ブロ ッ ク RAM からの通常のデータ とカスケード入力 (CASDIN) のどちらを選択するかを決定するマルチプレクサー

セレク ト ラインを駆動するレジスタへのイネーブル制御入力です。

カスケード選択 – CASDOMUX

ブロ ッ ク RAM をカスケード モードで使用する場合、 ブロ ッ ク RAM からの通常のデータ とカスケード入力

(CASDIN) のどちらを選択するかを決定する出力マルチプレクサー セレク ト ラインを駆動するレジスタへの D 入力

です。 このマルチプレクサーは、 オプシ ョ ンの出力レジスタの後にあ り ます。 カスケード モードを使用しない場合

は、 ブロ ッ ク RAM のデータが常に選択されます。

カスケード選択 – CASDOMUXEN

カスケード モードを使用する場合、 ブロ ッ ク RAM 出力のカスケード出力マルチプレクサー セレク ト ラインを駆動

するレジスタへのイネーブル制御入力です。

UltraScale アーキテクチャ  メモリ  リソース 32UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 33: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

SLEEP

SLEEP ピンを利用する と、 ブロ ッ ク RAM を長時間使用しない場合に動的にパワー ゲーティング機能を制御できま

す。 SLEEP がアクティブ (High) の間は、 両ポートの EN ピンを Low に維持する必要があ り ます。 このモードの間、

メモ リに格納されたデータ内容は保持されます。 SLEEP_ASYNC モード設定にかかわらず、 2 ク ロ ッ ク サイ クルの

ウェークアップ時間の要件があ り ます。 ウェークアップ時間が経過する前にブロッ ク RAM にアクセスした場合の動

作は保証されず、 メモ リの内容が破損する可能性があ り ます。 ク ロ ッ クに対するこのピンの動作は、

SLEEP_ASYNC 属性で指定します。 詳細は、 35ページの 「ブロ ッ ク RAM の属性」 を参照して ください。

制御ピンの反転

各ポートの 8 つの制御ピン (CLK、 EN、 RSTREG、 RSTRAM) は個別に反転できます。 EN、 RSTREG、 RSTRAM 制御

信号はアクティブ High またはアクティブ Low のどちらにでも設定でき (デフォルトはアクティブ High)、アクティブ

ク ロ ッ クは立ち上がりエッジにも立ち下がりエッジにも設定できます (デフォルトは立ち上がりエッジ)。 反転には、

追加のロジッ ク リ ソースは必要あ り ません。

RAMB18/36 の未使用の入力

ブロ ッ ク RAM が正常に機能するには、 未使用の入力ピンには特定の定義済み定数入力値が必要です。 未接続のまま

にした場合 (Verilog)、 Vivado ツールは自動的にこれらのピンを適切な定数値に接続します。 ただし、 デザインで入

力が定数に接続される場合は (VHDL)、 表 1-12 に示す値が必要です。

表 1-12 に、 未使用の入力を示します。

表 1‐12: RAMB18/36 の未使用の入力

RAMB18/36 定数 注釈

ADDRENA 1

ADDRENB 1

CLKARDCLK 0

CLKBRDCLK 0

CLKAWRCLK 0

CLKBWRCLK 0

ENARDEN 0

ENBWREN 0

REGCEAREGCE1

消費電力を削減するため、 DOA_REG = 0 の場合は 0 に設定するこ と

を推奨します。

REGCEB1

消費電力を削減するため、 DOB_REG = 0 の場合は 0 に設定するこ と

を推奨します。

REGCLKARDRCLK 0

REGCLKB 0

RSTREGARSTREG 0

RSTREGB 0

RSTRAMARSTRAM 0

RSTRAMB 0

UltraScale アーキテクチャ  メモリ  リソース 33UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 34: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM のアドレス マップ

各ポートは、 RAMB18E2 か RAMB36E2 かによって異なるアドレス指定方法を使用し、 同じ 18,432 個または 36,864 個

のメモリ セルにアクセスします。 特定のポート幅での物理的な RAM の位置は、 次の式によって決定されます (2 つの

ポートが異なる比率の場合のみ参照)。

END = ((ADDR + 1) × Width) –1

START = ADDR × Width

RSTRAMARSTRAM 0

RSTRAMB 0

SLEEP 0

WEA<3:0>1

TDP: ポート A を書き込みに使用しない場合 (WRITE_WIDTH_A = 0)、

WEA<0> を 0 に接続する必要があ り ます。

WEBWE<7:0>1

TDP: ポート B を書き込みに使用しない場合 (WRITE_WIDTH_B = 0)、

WEB<0> を 0 に接続する必要があ り ます。

CASDOMUXA 0

CASDOMUXB 0

CASOREGIMUXA 0

CASOREGIMUXB 0

CASDIMUXA 0

CASDIMUXB 0

CASDOMUXEN_A 1

CASDOMUXEN_B 1

CASOREGIMUXEN_A 1

CASOREGIMUXEN_B 1

INJECTSBITERR 0

INJECTDBITERR 0

表 1‐12: RAMB18/36 の未使用の入力 (続き)

RAMB18/36 定数 注釈

UltraScale アーキテクチャ  メモリ  リソース 34UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 35: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1-13 に、 各ポート幅の下位のアドレス マッピングを示します。

ブロック  RAM の属性

表 1-14 に RAMB18E2 と RAMB36E2 の属性を示します。 すべての属性のコード例は、 43ページの 「VHDL または

Verilog コードでのブロ ッ ク RAM の初期化」 に記載されています。 これらの属性の使用については、 43ページの

「RAMB18E2 および RAMB36E2 プリ ミ ティブの設計上のその他の注意事項」 で詳細に説明しています。

表 1‐13:ポートのアドレス マッピング

ポート

パリテ ィ

位置データ位置

1 N.A. 3

1

3

0

2

9

2

8

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

1

9

1

8

1

7

1

6

1

5

1

4

1

3

1

2

1

1

1

0

9 8 7 6 5 4 3 2 1 0

2 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

4 7 6 5 4 3 2 1 0

8 + 1 3 2 1 0 3 2 1 0

16 +

2

1 0 1 0

32 +

4

0 0

表 1‐14: RAMB18E2 および RAMB36E2 の属性

属性 値 デフォルト タイプ 説明

CASCADE_ORDER_AFIRST、 MIDDLE、

LAST、 NONENONE 文字列

カスケード接続したポート A の

ブロ ッ ク RAM の順番を、 最下段

から最上段の順に指定します。

CASCADE_ORDER_BFIRST、 MIDDLE、

LAST、 NONENONE 文字列

カスケード接続したポート B の

ブロ ッ ク RAM の順番を、 最下段

から最上段の順に指定します。

CLOCK_DOMAINSINDEPENDENT、

COMMONINDEPENDENT 文字列

ポート A と B に別々のクロ ッ クを

接続するか、 共通クロ ッ クを接続

するかを指定します。

DOA_REG 0、 1 1 10 進数

1 を指定する と、 ブロ ッ ク RAM の

ポート A のオプシ ョ ン出力レジス

タが有効になり ます。 TDP および

SDP モードの両方で、 ポート A の

すべての出力に適用されます。

DOB_REG 0、 1 1 10 進数

1 を指定する と、 ブロ ッ ク RAM の

ポート B のオプシ ョ ン出力レジス

タが有効になり ます。 TDP および

SDP モードの両方で、 ポート B の

すべての出力に適用されます。

UltraScale アーキテクチャ  メモリ  リソース 35UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 36: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ENADDRENA FALSE、 TRUE FALSE 文字列

ポート A のアドレス イネーブル

ピンを有効にするかど うかを指定

します。

ENADDRENB FALSE、 TRUE FALSE 文字列

ポート B のアドレス イネーブル

ピンを有効にするかど うかを指定

します。

INIT_A

RAMB18E2:

18 ビッ ト 16 進数、

RAMB36E2:

36 ビッ ト 16 進数、

RAMB18E2:

18'h00000000

RAMB36E2:

36'h00000000

00000000

16 進数

コンフ ィギュレーシ ョ ン直後の

ポート A の出力初期値を指定しま

す。 TDP および SDP モードの両方

で、 ポート A のすべての出力に適

用されます。

INIT_B

RAMB18E2:

18 ビッ ト 16 進数、

RAMB36E2:

36 ビッ ト 16 進数、

RAMB18E2:

18'h00000000

RAMB36E2:

36'h00000000

00000000

16 進数

コンフ ィギュレーシ ョ ン直後の

ポート B の出力初期値を指定しま

す。 TDP および SDP モードの両方

で、 ポート B のすべての出力に適

用されます。

RAMB18E2:

INIT_00 ~ INIT_3F

RAMB36E2:

INIT_00 ~ INIT_7F

256 ビッ ト 16 進数 すべて 0 16 進数

ブロッ ク RAM のデータ内容を

初期化します。

RAMB18E2:

INITP_00 ~ INITP_07

RAMB36E2:

INITP_00 ~ INITP_0F

256 ビッ ト 16 進数 すべて 0 16 進数

ブロッ ク RAM のパリティ内容を

初期化します。

RDADDRCHANGEA(1) FALSE、 TRUE FALSE 文字列

ポート A の読み出しアドレス比較

機能を有効にするかど うかを指定

します。

RDADDRCHANGEB(1) FALSE、 TRUE FALSE 文字列

ポート B の読み出しアドレス比較

機能を有効にするかど うかを指定

します。

READ_WIDTH_A

RAMB18E2: 0、 1、

2、 4、 9、 18、 36

(SDP モード )、

RAMB36E2: 0、 1、

2、 4、 9、 18、 36、

72 (SDP モード )

0 10 進数

パリティ ビッ ト を含む読み出し

ポート A のデータ幅を指定しま

す。 ポート A を使用しない場合は

0 とする必要があ り ます。

READ_WIDTH_B

RAMB18E2: 0、 1、

2、 4、 9、 18

RAMB36E2: 0、 1、

2、 4、 9、 18、 36

0 10 進数

パリティ ビッ ト を含む読み出し

ポート B のデータ幅を指定しま

す。 ポート B を使用しない場合は

0 とする必要があ り ます。 SDP

モードでは使用しません。

表 1‐14: RAMB18E2 および RAMB36E2 の属性 (続き)

属性 値 デフォルト タイプ 説明

UltraScale アーキテクチャ  メモリ  リソース 36UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 37: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

RSTREG_PRIORITY_A RSTREG、 REGCE RSTREG 文字列

オプシ ョ ンの出力レジスタで リ

セッ ト と ク ロ ッ ク イネーブルのど

ちらを優先するかを選択します。

TDP および SDP モードの両方で、

ポート A のすべての出力に適用さ

れます。

RSTREG_PRIORITY_B RSTREG、 REGCE RSTREG 文字列

オプシ ョ ンの出力レジスタで リ

セッ ト と ク ロ ッ ク イネーブルのど

ちらを優先するかを選択します。

TDP および SDP モードの両方で、

ポート B のすべての出力に適用さ

れます。

SLEEP_ASYNC FALSE、 TRUE FALSE 文字列SLEEP ピンがクロ ッ クに同期か非

同期かを指定します。

SRVAL_A

RAMB18E2:

18 ビッ ト 16 進数、

RAMB36E2:

36 ビッ ト 16 進数、

RAMB18E2:

18'h00000000

RAMB36E2:

36'h00000000

00000000

16 進数

同期リセッ ト (RSTREG) がアサー

ト された場合の出力ラ ッチまたは

レジスタの初期値を指定します。

TDP および SDP モードの両方で、

ポート A のすべての出力に適用さ

れます。

SRVAL_B

RAMB18E2:

18 ビッ ト 16 進数、

RAMB36E2:

36 ビッ ト 16 進数、

RAMB18E2:

18'h00000000

RAMB36E2:

36'h00000000

00000000

16 進数

同期リセッ ト (RSTREG) がアサー

ト された場合の出力ラ ッチまたは

レジスタの初期値を指定します。

TDP および SDP モードの両方で、

ポート B のすべての出力に適用さ

れます。

WRITE_MODE_A(2)WRITE_FIRST、

NO_CHANGE、READ_FIRST

WRITE_FIRST 文字列

書き込みポート A の出力動作を指

定します。 11ページの 「書き込み

モード」 を参照してください。

WRITE_MODE_B(2)WRITE_FIRST、

NO_CHANGE、READ_FIRST

WRITE_FIRST 文字列

書き込みポート B の出力動作を指

定します。 11ページの 「書き込み

モード」 を参照してください。

WRITE_WIDTH_A

RAMB18E2: 0、 1、

2、 4、 9、 18

RAMB36E2: 0、 1、

2、 4、 9、 18、 36

0 10 進数

パリティ ビッ ト を含む書き込み

ポート A のデータ幅を指定します。

ポート を使用しない場合は 0 とす

る必要があり ます。 SDP メモリ と

して使用する場合は無効です。

表 1‐14: RAMB18E2 および RAMB36E2 の属性 (続き)

属性 値 デフォルト タイプ 説明

UltraScale アーキテクチャ  メモリ  リソース 37UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 38: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

データ  カスケード  – CASCADE_ORDER

カスケード接続したブロッ ク RAM の順番を指定します。 カスケード チェーンの最下段のブロッ ク RAM が FIRST、

最上段のブロッ ク RAM が LAST、 その中間のブロッ ク RAM が MIDDLE です。 これはポート A と B に適用されます。

クロッキング – CLOCK_DOMAINS

ポート A と B へのクロ ッ クが独立している (非同期) か共通 (同期) かを指定します。 CLKA と CLKB を接続して同じ

クロ ッ ク ソースで駆動する場合は COMMON です。 CLKA と CLKB をそれ以外の接続と した場合は INDEPENDENT

です。

アドレス ラッチ イネーブル – ENADDREN

アドレス イネーブル ピン (ADDRENA/B) を有効にするか無効にするかを指定します。 この属性が TRUE で、 対応す

る ADDREN ピンが Low の場合、 前のクロ ッ ク サイクルのアドレスが使用されます。

メモリ内容の初期化 – INIT_xx

メモ リ内容は、 コンフ ィギュレーシ ョ ン ビッ ト ス ト リームで初期化またはク リ アできます。 パワー ゲーティング機

能のため、 ブロ ッ ク RAM の初期化またはリードバッ クには標準の有効なビッ ト ス ト リームが必要です。 インスタン

シエート されていないパワー ゲーティングされたブロ ッ ク RAM の初期化またはリードバッ クは、 「未使用ブロ ッ ク

RAM のパワー ゲーティング」 を参照してください。

重要: ビッ ト ス ト リームの RSA 認証機能は、 特定のブロ ッ ク RAM を使用して当座のローリ ング キーを保持します。

指定されたブロ ッ ク RAM カラムで、 ク ロ ッ ク領域の最下部に各 36K ブロッ ク RAM ブロ ッ クが影響を受けます。

デバイスの最下部から始めて最初の 36K ブロ ッ ク RAM が使用され、その後はカラムの 12 番目ごとの 36K ブロ ッ ク

RAM が使用されます (BRAM36_X*Y0、 BRAM36_X*Y12、 BRAM36_X*Y24 など)。 これらのブロ ッ ク RAM はユー

ザー定義の値に初期化できません。 コンフ ィギュレーシ ョ ン後、 ブロ ッ ク RAM は常に 0 に初期化されます。

INIT_xx 属性では、 最初のメモ リ内容を定義します。 ブロ ッ ク RAM は、 デフォルトでは、 デバイスのコンフ ィギュ

レーシ ョ ン シーケンス中にすべて 0 に初期化されます。RAMB18E2 では INIT_00 ~ INIT_3F の 64 個の初期化属性を

使用し、 RAMB36E2 では INIT_00 ~ INIT_7F の 128 個の初期化属性を使用して、 通常のメモ リ内容を指定します。

各 INIT_xx は、 16 進数で表した 64 桁のビッ ト ベクターです。一部の内容だけを初期化するこ と も可能です。 この場

合、 初期値を指定した部分以外は自動的に 0 になり ます。

WRITE_WIDTH_B

RAMB18E2: 0、 1、

2、 4、 9、 18、 36

(SDP モード )、

RAMB36E2: 0、 1、

2、 4、 9、 18、 36、

72 (SDP モード )

0 10 進数

パリティ ビッ ト を含む書き込み

ポート B のデータ幅を指定しま

す。 ポート B を使用しない場合は

0 とする必要があ り ます。

注記:1. UltraScale ファ ミ リ (UltraScale+ ではない) では、 アドレス比較機能は、 初期化されていないブロ ッ ク RAM の内容とレジスタ (デフォルト値 0 に初期化される ) に対してのみサポート されます。

2. SDP モードでは、 WRITE_MODE_A と WRITE_MODE_B を同じ値にする必要があ り ます。

表 1‐14: RAMB18E2 および RAMB36E2 の属性 (続き)

属性 値 デフォルト タイプ 説明

UltraScale アーキテクチャ  メモリ  リソース 38UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 39: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

各 INIT_xx 属性のビッ ト位置は、次の式で決ま り ます。 16 進数 (xx) を 10 進数に変換した値を yy とする と、 INIT_xx

は次のメモ リ セルに対応します。

• 開始セル [(yy + 1) x 256] – 1

• 終了セル (yy) x 256

たとえば、 INIT_1F 属性は次のよ うに変換されます。

• yy = 16 進数 (xx) 1F を 10 進数に変換した値 = 31

• 開始セル: [(31+1) x 256] - 1 = 8,191

• 終了セル: 31 x 256 = 7,936

表 1-15 に例を示します。

パリテ ィ  メモリ内容の初期化 – INITP_xx

INITP_xx 属性は、 DINP/DOUTP バス (パリティ ビッ ト ) に対応する メモ リ セルの内容を初期化します。 デフォルト

では、 これらのメモ リ セルもすべて 0 に初期化されます。 初期化属性で、 パリティ ビッ トのメモ リ内容を指定しま

す。 RAMB18E2 では、 INITP_00 ~ INITP_07 の 8 つの初期化属性を使用します。 RAMB36E2 では、 INITP_00 ~

INITP_0F の 16 の初期化属性を使用します。各 INITP_xx は、 16 進数で表した 64 桁のビッ ト ベクターで、 INIT_xx 属

性と同様に機能します。 特定の INITP_xx 属性で初期化するビッ ト位置も、 同じ式で計算されます。

表 1‐15: ブロック  RAM の初期化属性

属性メモリ位置

開始位置 終了位置

INIT_00 255 0

INIT_01 511 256

INIT_02 767 512

… … …

INIT_0E 3839 3584

INIT_0F 4095 3840

INIT_10 4351 4096

… … …

INIT_1F 8191 7936

INIT_20 8447 8192

… … …

INIT_2F 12287 12032

INIT_30 12543 12288

… … …

INIT_3F 16383 16128

… … …

INIT_7F 32767 32512

UltraScale アーキテクチャ  メモリ  リソース 39UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 40: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

出力ラッチの初期化 – INIT (INIT_A または INIT_B)

INIT (シングル ポート ) または INIT_A および INIT_B (デュアル ポート ) 属性は、 コンフ ィギュレーシ ョ ン後の出力

ラ ッチまたは出力レジスタの値を指定します。 表 1-16 に示すよ うに、 INIT (または INIT_A と INIT_B) 属性の幅は、

ポート幅に等し くなっています。 これらの属性は 16 進数のビッ ト ベクターで、デフォルト値は 0 です。 カスケード

モードの場合、 上部および下部のブロ ッ ク RAM は同じ値で初期化する必要があ り ます。

省電力 – RDADDRCHANGE[A|B]

重要: UltraScale デバイス ファ ミ リ (UltraScale+ ではない) では、 アドレス比較機能は、 ブロ ッ ク RAM の内容とレジ

スタの両方が 0 に初期化される場合にのみサポート されます。

この属性は省電力機能の 1 つで、 読み出しアドレスの変化検出 (比較) 回路を有効にするかど うかを指定します。

TRUE に設定し、 読み出しアドレス と出力レジスタが直前の読み出しサイクルから変化していなければ出力は同じ

であるため、 消費電力を削減するためにブロッ ク RAM へのアクセスを実行しません。 この機能は、 ブロ ッ ク RAM

を常時有効にしている場合に特に効果があ り ます。 この機能を利用できるのは、 COMMON ク ロ ッ ク ド メ インの場

合のみです。

読み出し幅 – READ_WIDTH_[A|B]

ブロ ッ ク RAM の A/B 読み出しポートの幅を指定します。 有効な値は、 次のとおりです。 RAMB36E2 を SDP メモ リ

と して使用した場合、 0 (デフォルト )、 1、 2、 4、 9、 18、 36、 72 です。

リセッ トまたは CE の優先度 – RSTREG_PRIORITY_[A|B]

この属性は、 DO_REG = 1 の場合に RSTREZG をアサート したと きに RSTREG と REGCE のどちらが優先されるかを

指定します。 有効な値は RSTREG または REGCE です。 RSTREG を優先する場合、 REGCE の状態にかかわらず

RSTREG 入力によってオプシ ョ ンの出力レジスタがリセッ ト されます。 REGCE を優先する場合は、 REGCE = 1 のと

きのみ RSTREG 入力でオプシ ョ ンの出力レジスタがリセッ ト されます。

省電力 – SLEEP_ASYNC

この属性は、 SLEEP ピンを同期モード と非同期モードのどちらで使用するかを指定します。 両方のクロ ッ クが同じ

か、位相関係が固定されている場合は同期モード (SLEEP_ASYNC = FALSE) を使用します。 このモードでは、 SLEEP

をアサートする前のクロ ッ ク サイクルで ENA と ENB をディアサート して無効にする必要があ り ます。 SLEEP のア

サート とディアサートは、 CLKA および CLKB 両方に対してセッ ト アップ タイムとホールド タイム要件を満たす必

要があ り ます。 ENA と ENB を再びアサートするのは、 2 ク ロ ッ ク サイ クル後にブロ ッ ク RAM がス リープ モードか

ら復帰してから とする必要があ り ます。

2 つのクロ ッ クが完全に独立しており、 互いに非同期な場合は、 非同期モード (SLEEP_ASYNC = TRUE) を使用しま

す。 このモードでは、 SLEEP をアサートする前のクロ ッ ク サイ クル (遅い方のクロ ッ ク ) で ENA と ENB をディア

サート して無効にする必要があ り ます。 SLEEP は、 同じクロ ッ クの次のクロ ッ ク サイ クルでアサートできます。

SLEEP をディアサート してから 2 ク ロ ッ ク サイクル後に、 ブロ ッ ク RAM がウェークアップしてアクティブになり

ます。 ENA と ENB を再びアサートするのは、 必ずメモリがウェークアップしてからにしてください。

UltraScale アーキテクチャ  メモリ  リソース 40UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 41: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

出力ラッチ/レジスタの同期セッ ト /リセッ ト  (SRVAL_[A|B])

SRVAL (シングル ポート ) または SRVAL_A および SRVAL_B (デュアル ポート ) 属性は、 RSTRAM/RSTREG 入力をア

サート した際の出力ラ ッチの値を定義します。 表 1-16 に示すよ うに、 SRVAL (または SRVAL_A と SRVAL_B) 属性の

幅は、 ポート幅に等し くなっています。 これらの属性は 16 進数のビッ ト ベクターで、 デフォルト値は 0 です。 オプ

シ ョ ンの出力レジスタ属性が指定されている場合は、 この属性によって出力レジスタの値が設定されます。 レジス

タを使用しない場合は、 ラ ッチの値が SRVAL に指定されます。表 1-16 と表 1-17 に、 SRVAL および INIT のビッ ト位

置と、 ブロ ッ ク RAM プリ ミ ティブおよび SDP マクロの DOUT 出力とのマッピング関係を示します。

オプシ ョ ンの出力レジスタ切り替え – DOUT[A|B]_REG

この属性は、 ブロ ッ ク RAM の A/B 出力におけるオプシ ョ ンのパイプライン レジスタの有効/無効を切り替え、

Clock-to-Out タイ ミ ングを改善します。 出力レジスタを有効にする と、 読み出しレイテンシが 1 サイ クル分増加しま

す。 出力レジスタを無効にする と、 同じ ク ロ ッ ク サイクルでブロ ッ ク RAM のデータを読み出すこ とができますが、

Clock-to-Out は遅くな り ます。 指定可能な値は 0 (デフォルト ) か 1 です。

書き込み幅 – WRITE_WIDTH_[A|B]

ブロ ッ ク RAM の A/B 書き込みポートの幅を指定します。 有効な値は、 次のとおりです。 RAMB36E2 を SDP メモ リ

と して使用した場合、 0 (デフォルト )、 1、 2、 4、 9、 18、 36、 72 です。

書き込みモード  – WRITE_MODE_[A|B]

A/B 入力ポートの書き込みモードを指定します。 有効な値は、 WRITE_FIRST (デフォルト )、 READ_FIRST、 および

NO_CHANGE です。 書き込みモードの詳細は、 11ページの 「書き込みモード」 を参照してください。

表 1‐16: RAMB18E2 および RAMB36E2 の SRVAL および INIT のマッピング (ポート  A およびポート  B)

ポート幅 SRVAL/INIT_(A/B) の幅

SRVAL/INIT_(A/B) と  DOUT のマッピング SRVAL/INIT_(A/B) と  DOUTP のマッピング

DOUTADOUT/DOUTBDOUT

(SRVAL/INIT)_(A/B)DOUTP(A/B)/

DOUTPSRVAL/INIT_(A/B)

1 [0] [0] [0] N/A N/A

2 [1:0] [1:0] [1:0] N/A N/A

4 [3:0] [3:0] [3:0] N/A N/A

9 [8:0] [7:0] [7:0] [0] [8]

18 [17:0] [15:0] [15:0] [1:0] [17:16]

36 (RAMB36E2 のみ) [35:0] [31:0] [31:0] [3:0] [35:32]

表 1‐17: RAMB18E2 および RAMB36E2 の SDP マッピング

ポート幅 SRVAL/INIT の幅SRVAL/INIT と  DOUT のマッピング SRVAL/INIT と  DOUTP のマッピング

DOUT SRVAL/INIT DOUTP SRVAL/INIT

36 ビッ ト幅の RAMB18E2

[35:0] [31:0] [33:18]/[15:0] [3:0] [35:34]/[17:16]

72 ビッ ト幅の RAMB36E2

[71:0] [63:0] [67:36]/[31:0] [7:0] [71:68]/[35:32]

UltraScale アーキテクチャ  メモリ  リソース 41UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 42: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

SIM_COLLISION_CHECK

シ ミ ュレーシ ョ ン モデルでの動作および衝突を確認するレベルを指定します。 有効な値は、 ALL、

GENERATE_X_ONLY、 NONE、 および WARNING_ONLY で、 デフォルト値は ALL です。

INIT_FILE

オプシ ョ ンの、 初期内容の RAM 初期化ファイルを指します。 値は、 デフォルトで NONE、 または STRING (ファ イ

ル名) です。 ファ イル形式の詳細は、 ツールのマニュアルを参照してください。

ブロック  RAM と  FIFO の配置

図 1-15 に、 1 つの RAMB36 に配置可能な上段/下段の組み合わせ、 およびフルサイズの RAMB36 の割り当てを示し

ます。

X-Ref Target - Figure 1-15

図 1‐15: ブロック  RAM と  FIFO の配置

RAMB36 FIFO36

RAMB18

RAMB18

FIFO18

RAMB18

Dual 18k Block RAM/FIFO Primitive Combos

36k Block RAM/FIFO Primitives

X17177-012617

UltraScale アーキテクチャ  メモリ  リソース 42UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 43: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

VHDL または Verilog コードでのブロック  RAM の初期化

ブロ ッ ク RAM の属性および内容は、 インスタンシエート されたコンポーネン ト内で generic map (VHDL) または

defparam (Verilog) を使用して、 合成およびシ ミ ュレーシ ョ ン用に VHDL または Verilog コードで初期化できます。

generic map または defparam の値を変更する と、 シ ミ ュレーシ ョ ン動作と インプリ メンテーシ ョ ン結果に影響を与え

ます。 推論されたブロ ッ ク RAM も初期化可能です。 Vivado® Design Suite のテンプレートには、 RAMB プリ ミ ティ

ブをインスタンシエートするためのコードが含まれています。

RAMB18E2 および RAMB36E2 プリ ミテ ィブの設計上のその他の注意事項

ブロ ッ ク RAM ソ リ ューシ ョ ンに、 RAMB18E2 および RAMB36E2 プリ ミ ティブは不可欠です。

出力レジスタ  (オプシ ョ ン)

オプシ ョ ンの出力レジスタは、 RAMB18E2 および RAMB36E2 の A|B 出力ポートのいずれか、 または両方に使用でき

ます。 使用ポートは DO[A|B]_REG 属性を使用して指定します。 独立した 2 つのクロ ッ ク イネーブル ピンは

REGCE[A|B] です。 ポート [A|B] でオプシ ョ ンの出力レジスタを使用する場合、 ポート [A|B] の同期セッ ト / リセッ ト

(RSTREG および RSTRAM) ピンをアサートする と、 属性 SRVAL で指定された値がレジスタを介して出力されます。

図 1-16 にオプシ ョ ンの出力レジスタを示します。

独立した読み出しポート と書き込みポートの幅を選択

重要:デュアル ポート モードで使用しているブロ ッ ク RAM でポート幅を指定するには、 READ_WIDTH_[A|B] およ

び WRITE_WIDTH_[A|B] 属性を使用する必要があ り ます。

この場合、 次の規則に従ってください。

• シングル ポート ブロ ッ ク RAM を設計する場合、 ペアになっている書き込みポート と読み出しポートそれぞれ

の幅を設定する必要があ り ます (READ_WIDTH_A と WRITE_WIDTH_A など)。

• デュアル ポート ブロ ッ ク RAM の場合、 すべてのポート幅を設定する必要があ り ます。

• シンプル デュアル ポート モードでは、 ポートの一方は固定幅で、 も う一方が可変幅とな り ます。 RAMB18E2

のデータ ポート幅は最大 36、 RAMB36E2 のデータ ポート幅は最大 72 です。 ブロ ッ ク RAM を読み出し専用メ

モ リ と して使用する場合は、 READ_WIDTH_A/B のみを使用します。

UltraScale アーキテクチャ  メモリ  リソース 43UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 44: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

RAMB18E2 および RAMB36E2 のポート  マッピング設計規則

ブロ ッ ク RAM は、 さまざまなポート幅とサイズに構成できます。 構成によっては、 一部のデータ ピンとアドレス

ピンが未使用となり ます。 29ページの表 1-7 ~ 30ページの表 1-10 に、各構成で使用するピンを示しています。 これ

らの表の情報とあわせ、 次の規則にも基づく RAMB のポート接続を決定してください。

• RAMB36E2 を使用していて、 DIN[A|B] ピンの幅が 32 ビッ ト未満の場合、 (32 - DIN_BIT_WIDTH) の数のロジッ

ク 0 を DIN[A|B] の上位ビッ トに連結します。

• DINP[A|B] ピンの幅が 4 ビッ ト未満の場合、 (4 – DINP_BIT_WIDTH) の数のロジッ ク 0 を DINP[A|B] の上位ビッ

トに連結します。 DINP[A|B] を使用していない場合は、 未接続のままにできます。

• DOUT[A|B] ピンの幅は 32 ビッ トの必要があ り ます。 ただし、 (DOUT_BIT_WIDTH – 1) から 0 までのピンでのみ

データが有効です。

• DOUTP[A|B] ピンの幅は 4 ビッ トの必要があ り ます。 ただし、 (DOUTP_BIT_WIDTH – 1) から 0 までのピンでの

みデータが有効です。 DOUTP[A|B] を使用していない場合は、 未接続のままにできます。

• RAMB18E2 では ADDR[A/B] は 14 ビッ ト幅で、 RAMB32E2 では ADDR[A/B] は 15 ビッ ト幅です。 アドレス幅

は、 29ページの表 1-7 に記載されています。

バイ ト  ライ ト  イネーブル

バイ ト ライ ト イネーブル機能を使用する場合は、 次の規則に従います。

• RAMB36E1 の場合

° x72 SDP モードでは、 書き込みポート用に WEBWE[7:0] を使用して 8 つの WE 入力を接続します。

WEA[3:0] は使用しません。

° x36 モードでは、ポート A 用に WEA[3:0] を使用して 4 つの WE 入力を接続し、ポート B 用に WEBWE[3:0]

を使用して 4 つの WE 入力を接続します。 WEBWE[7:4] は使用しません。

° x18 モードでは、 ポート A 用に WEA[1:0] を使用して 2 つのユーザー WE 入力を接続し、 ポート B 用に

WEBWE[1:0] を使用して 2 つの WE 入力を接続します。 WEA[3:2] および WEBWE[7:2] は使用しません。

° x9 またはそれ以下のポート幅モードでは、 ポート A 用に WEA[0] を使用して 1 つのユーザー WE 入力を接

続し、 ポート B 用に WEBWE[0] を使用して 1 つの WE 入力を接続します。 WEA[3:1] および WEBWE[7:1]

は使用しません。

• RAMB18E1 の場合

° x36 SDP モードでは、 書き込みポート用に WEBWE[3:0] を使用して 4 つの WE 入力を接続します。

WEA[1:0] は使用しません。

° x18 モードでは、ポート A 用に WEA[1:0] を使用して 2 つの WE 入力を接続し、ポート B 用に WEBWE[1:0]

を使用して 2 つの WE 入力を接続します。 WEBWE[3:2] は使用しません。

° x9 またはそれ以下のポート幅モードでは、 ポート A 用に WEA[0] を使用して 1 つのユーザー WE 入力を接

続し、 ポート B 用に WEBWE[0] を使用して 1 つの WE 入力を接続します。 WEA[1] および WEBWE[3:1] は

使用しません。

UltraScale アーキテクチャ  メモリ  リソース 44UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 45: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM のアプリケーシ ョ ン

レジスタ  モードでのブロック  RAM の RSTREG

ブロ ッ ク RAM の RSTREG をレジスタ モードで使用する と、出力レジスタをブロ ッ ク RAM から完全に独立したパイ

プライン レジスタ と して制御できます。 図 1-16 では、 ブロ ッ ク RAM の読み出しおよび書き込みは、 レジスタ イ

ネーブルまたはセッ ト / リセッ ト とは独立して実行されます。 レジスタ モードでは、 RSTREG によって DOUT が

SRVAL に設定され、 ブロ ッ ク RAM から DBRAM へのデータ読み出しが可能です。 DBRAM のデータは、 次のク

ロ ッ ク サイ クルで DOUT に出力できます。 図 1-17 ~図 1-19 のタイ ミ ング図は、 その他のモードでの RSTREG の例

を示しています。

X-Ref Target - Figure 1-16

図 1‐16: レジスタ  モードでのブロック  RAM の RSTREG

X-Ref Target - Figure 1-17

図 1‐17: RSTREG モードでのブロック  RAM のリセッ ト動作

Block RAMOutput

Register

RSTRAM

DOUT

RAMENEN

REGCE

RSTREG

RSTRAM

DIN DBRAM

X17309-012617

DBRAM

CLK REGCLK

RAMEN

REGCE

RSTRAM

RSTREG

DOUT D0 SRVAL(1REG) D1 SRVAL(2REG) SRVAL(1LAT)

D1 D3D0 SRVAL(1LAT)

X17310-012617

UltraScale アーキテクチャ  メモリ  リソース 45UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 46: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

X-Ref Target - Figure 1-18

図 1‐18: REGCE モードでのブロック  RAM のリセッ ト動作

X-Ref Target - Figure 1-19

図 1‐19: ラッチ モードでのブロック  RAM のリセッ ト動作

DBRAM

CLK REGCLK

RAMEN

REGCE

RSTRAM

RSTREG

DOUT D0 SRVAL(1REG) D1 SRVAL(1LAT)

D1 D3D0 SRVAL(1LAT)

X17311-012617

DBRAM = DOUT

CLK

RAMEN

RSTLAT

D1 D3D0 SRVAL(1LAT)

RSTLAT needs RAMEN = 1 to reset the output of the latch

X17312-012617

UltraScale アーキテクチャ  メモリ  リソース 46UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 47: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ビルト イン  FIFO

概要

多くのデザインでは、 ブロ ッ ク RAM を使用して FIFO をインプリ メン ト します。 ブロ ッ ク RAM の専用ロジッ クを

用いるこ とで、 共通クロ ッ クまたは独立クロ ッ クの FIFO を容易にインプリ メン トできます。 これによ り、 カウン

ター、 コンパレータ、 ステータス フラグ生成などに別途 CLB ロジッ クを使用する必要がなくな り、 1 つのブロ ッ ク

RAM リ ソースだけで FIFO を実現できます。 この FIFO では、 標準モード と FWFT (First Word Fall Through) モードが

サポート されます。

FIFO は 18Kb または 36Kb メモ リ と して構成できます。 18Kb モードでは、 4Kx4、 2Kx9、 1Kx18 および 512x36 のコン

フ ィギュレーシ ョ ンがサポート され、 36Kb モードの FIFO では、 8Kx4、 4Kx9、 2Kx18、 1Kx36 および 512x72 のコン

フ ィギュレーシ ョ ンがサポート されます。 UltraScale アーキテクチャ FPGA では、 FIFO ポート を非対称に構成できる

よ うになり ました。

ブロ ッ ク RAM は、 共通または別々の読み出し /書き込みクロ ッ クを使用した FIFO (First-In/First-Out) メモ リ と して構

成できます。 ブロ ッ ク RAM のポート A は FIFO 読み出しポート と して、 ポート B は FIFO 書き込みポート と して使

用します。 データは、 読み出しクロ ッ クの立ち上がりエッジで FIFO から読み出され、 書き込みクロ ッ クの立ち上が

りエッジで FIFO に書き込まれます。

独立クロック/デュアル クロック  FIFO

独立クロ ッ ク FIFO (デュアル ク ロ ッ ク FIFO、 非同期 FIFO と も呼ぶ) は、書き込みインターフェイス と読み出しイン

ターフェイスがそれぞれ異なるクロ ッ ク ド メ インに属する FIFO (First-In/First-Out) キューです。 FIFO を独立クロ ッ

ク FIFO と して構成するには、 CLOCK_DOMAINS 属性を INDEPENDENT に設定します。

独立クロッ ク FIFO の場合の書き込みおよび読み出しインターフェイスはシンプルで、 周波数や位相間に関係がない

2 つのフ リーランニング クロ ッ クで動作します。 したがって、 独立クロッ ク FIFO は次のよ うな場合に適しています。

• WRCLK と RDCLK の周波数は異なっているが、 関連している

• WRCLK と RDCLK の位相が揃っていない

• WRCLK と RDCLK が完全に非同期である (まったく関連していない)

独立クロ ッ ク FIFO は、 仕様上限のクロ ッ ク周波数までサポートできます。 デュアル ク ロ ッ ク FIFO では不確定、 グ

リ ッチ、 メ タスタビ リ ティの問題が発生せず、 異なるク ロ ッ ク ド メ イン間でデータを受け渡す場合に便利です。

書き込みインターフェイスは WRCLK ド メ インに同期し、 WRCLK の立ち上がりエッジのセッ ト アップ タイム前に

WREN がアクティブであれば、 DIN のデータ ワードが FIFO に書き込まれます。

読み出しインターフェイスは RDCLK ド メ インに同期し、 RDCLK の立ち上がりエッジの前に RDEN がアクティブで

あれば FIFO の読み出し、 RDCLK の立ち上がりエッジの後に次のデータ ワードを DOUT に出力します (標準モード

の場合)。

WRCLK ド メ インと RDCLK ド メ インの内部同期のため、 一部の遷移では追加のクロ ッ ク サイクルが必要です。

たとえば書き込み動作を RDCLK ド メ インに同期するには、WRCLK と RDCLK の両方で数クロ ッ ク サイクル必要で

す。 書き込み動作が RDCLK ド メ インへ同期する と、 その書き込み動作が RDCLK 出力の EMPTY と PROGEMPTY

のステータスに反映され、 必要に応じてこれらのフラグがディアサート されます。

UltraScale アーキテクチャ  メモリ  リソース 47UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 48: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

同様に、 RDCLK ド メ インと WRCLK ド メ インの内部同期にも追加のクロ ッ ク サイクルが必要です。 たとえば読み

出し動作を WRCLK ド メ インに同期するには、 RDCLK と WRCLK の両方で数クロ ッ ク サイ クル必要です。 読み出

し動作が WRCLK ド メ インへ同期する と、 その読み出し動作が WRCLK 出力の FULL と PROGFULL のステータスに

反映され、 必要に応じてこれらのフラグがディアサート されます。

FIFO の入力と出力はすべて、 WRCLK または RDCLK ド メ インのどちらかに同期します。 2 つのクロ ッ ク ド メ イン

は互いに無関係でばらつきがあるため、 インプリ メンテーシ ョ ンでは 1 ワード分のメモ リ アドレスがエラー防止用

に確保されます。

共通クロック/シングル クロック  FIFO

共通クロ ッ ク FIFO (シングル ク ロ ッ ク FIFO、 同期 FIFO と も呼ぶ) は、 書き込みインターフェイス と読み出しイン

ターフェイスが同じクロ ッ ク ド メ インに属する FIFO キューです。 同期 FIFO を使用する場合、 フラグをアサート /

ディアサートする際のクロ ッ ク レイテンシをなくすために CLOCK_DOMAINS 属性を COMMON に設定する必要が

あ り ます。

共通クロ ッ ク FIFO のインターフェイスは独立クロ ッ ク FIFO のインターフェイス とほぼ同じですが、 次のいずれか

の相違点があ り ます。

• ク ロ ッ ク入力は CLK の 1 つのみを使用、 または

• 同じクロ ッ ク ソース (ク ロ ッ ク バッファー ) に接続された 2 つのクロ ッ ク入力 (WRCLK と RDCLK) を使用

共通クロ ッ ク FIFO では異なるクロ ッ ク ド メ イン間の同期が不要なため、 書き込みを実行してから EMPTY または

PROGEMPTY がディアサート されるまで、あるいは読み出しを実行してから FULL または PROGFULL がディアサー

ト されるまでの内部レイテンシは、 同等の独立クロ ッ ク FIFO よ り もはるかに小さ くな り ます。

また、 共通クロ ッ ク FIFO は 2 つの無関係なクロ ッ ク ド メ インのばらつきに対処する必要がないため、 1 ワード分の

メモ リ アドレスをエラー防止用に確保する必要がなく、 メモ リ全体を FIFO ス ト レージに使用できます。 このため、

共通クロ ッ ク FIFO の方が同等の独立クロ ッ ク FIFO よ り も 1 ワード分深さが大き くな り ます。 表 1-18 に、 標準モー

ド と FWFT モードの FIFO 容量を示します。

重要: ブロ ッ ク RAM と FIFO にはいずれも ク リーンなフ リーランニング ク ロ ッ クが必要です。 FIFO がリセッ ト状態

のと きに不安定なクロ ッ クが適用される と、 FIFO を リセッ ト状態から回復できません。 いずれかの FIFO ク ロ ッ ク

が不安定になった場合、 CE ピンを使用してクロ ッ ク バッファーを適宜無効にするか、 安定したクロ ッ クが回復した

後でのみ FIFO を リセッ トするこ とを推奨します。 これは、 主にギガビッ ト ト ランシーバーがリ カバリ ク ロ ッ クを

失った場合 (CDR がアライ メン ト を失った場合など) に実行します。

表 1‐18:出力レジスタを使用せず対称ポート と した場合の共通クロック  FIFO の容量

標準モード FWFT モード

18Kb FIFO 36Kb FIFO 18Kb FIFO 36Kb FIFO

4K エン ト リ (4 ビッ ト ごと ) 8K エン ト リ (4 ビッ ト ごと ) 4K + 1 エン ト リ (4 ビッ ト ごと ) 8K + 1 エン ト リ (4 ビッ ト ごと )

2K エン ト リ (9 ビッ ト ごと ) 4K エン ト リ (9 ビッ ト ごと ) 2K + 1 エン ト リ (9 ビッ ト ごと ) 4K + 1 エン ト リ (9 ビッ ト ごと )

1K エン ト リ (18 ビッ ト ごと ) 2K エン ト リ (18 ビッ ト ごと ) 1K + 1 エン ト リ (18 ビッ ト ごと ) 2K + 1 エン ト リ (18 ビッ ト ごと )

512 エン ト リ (36 ビッ ト ごと ) 1K エン ト リ (36 ビッ ト ごと ) 512 + 1 エン ト リ (36 ビッ ト ごと ) 1K + 1 エン ト リ (36 ビッ ト ごと )

– 512 エン ト リ (72 ビッ ト ごと ) – 512 + 1 エン ト リ (72 ビッ ト ごと )

注記:1. モード設定および出力レジスタのステージによって多少の変動があ り ます。

UltraScale アーキテクチャ  メモリ  リソース 48UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 49: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FIFO アーキテクチャの概略図

図 1-20 に、 FIFO の概略図を示します。 読み出しポインター、 書き込みポインター、 ステータス フラグ ロジッ クは

FIFO 専用です。

X-Ref Target - Figure 1-20

図 1‐20: ブロック  RAM の FIFO の概略図

WritePointer Read Pointer

ReadStatusFlagLogic

BlockRAM

WRCOUNT RDCOUNT

WRCLK

WREN

RDCLK

DOUT/DOUTPDIN/DINP

RDEN

RSTFU

LL

EMPT

Y PRO

GFU

LL

PRO

GEM

PTY

RD

ERR

WR

ERR

waddr raddr

mem

_wr

mem

_rd

WriteStatusFlagLogic

sync

X17313-012617

UltraScale アーキテクチャ  メモリ  リソース 49UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 50: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FIFO ポートの幅と深さ

読み出しポート と書き込みポートの幅を別々に設定できるブロッ ク RAM の非対称ポート機能に基づき、 FIFO も非

対称ポート をサポート しています。 FIFO18E2 では読み出し /書き込みポートの幅をそれぞれ個別に 4、 8、 16、 32 に

設定でき、 DINP ビッ ト を使用する場合は 9、 18、 36 に拡張できます。 FIFO36E2 では読み出し /書き込みポートの幅

をそれぞれ個別に 4、 8、 16、 32、 64 に設定でき、 DINP ビッ ト を使用する場合は 9、 18、 36、 72 に拡張できます。

出力レジスタのステージ数、 FWFT モード、 非対称ポート などの機能によって、 FIFO の深さは異なり ます。 非対称

なポート幅を使用する場合、 WRCLK ド メ インの FIFO の深さは書き込みワードの数によって異なり、 RDCLK ド メ

インの FIFO の深さは読み出しワードの数によって異なり ます。

WRCLK ド メ インの FIFO の深さは、 FIFO がフルになるまで書き込めるワード数です。読み出しポートの幅が書き込

みポートの幅よ り狭い場合、 FIFO 内にワード データの一部が存在し、 予想よ り も 1 ク ロ ッ ク早く FULL がアサート

される可能性があ り ます。

RDCLK ド メ インの FIFO の深さは、 FIFO がフルの場合に FIFO に存在する読み出しワードの数です。 読み出しポー

トの幅と書き込みポートの幅は異なる場合があるため、 RDCLK ド メ インで表される深さは異なり ます。 また、 書き

込みポートの幅が読み出しポートの幅よ り狭い場合、 FIFO 内に読み出すこ とのできないワード データの一部が存在

し、 RDCLK ド メ インで FIFO の深さにカウン ト されないこ とがあ り ます。

FIFO の深さを利用する と、 次のよ うな状態を把握して計算できます。

• WRCOUNT を使用する場合、 深さによって WRCLK ド メ インで FIFO がフルになるまであと何回書き込みを実

行できるかが決定します。 計算方法は次のとおりです。

° 「FIFO の深さ」 から 「FIFO 内のワード数」 を引きます。 FIFO 内のワード数は、 WRCOUNT (出力ステージ

を使用しない標準 FIFO の場合は WRCOUNT_TYPE = SIMPLE_DATACOUNT、 出力ステージを使用する場

合または FWFT モードの場合は WRCOUNT_TYPE = EXTENDED_DATACOUNT) で得られます。

• フルから特定のワード数満たないしきい値を設定する PROG_FULL_THRESH を計算できます。

• PROG_FULL_THRESH の範囲を決定できます。

• PROG_EMPTY_THRESH の範囲を決定できます。

• FULL のすべてのケースを決定できます。

表 1-19 ~表 1-22 に、WRCLK ド メ インと RDCLK ド メ インにおける FIFO の構成と幅のすべての組み合わせに対する

FIFO 深さをま とめます。

注記: この表には、 EN_ECC_PIPE = TRUE の構成は記載していません。 この構成では、 読み出しポートの深さが 1 つ

大き くな り ます。

UltraScale アーキテクチャ  メモリ  リソース 50UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 51: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1‐19:独立クロック  FIFO のポート幅と深さ  – FIFO36E2

ラッチ モード(REGISTER_MODE = UNREGISTERED)

レジスタ  モード(REGISTER_MODE = REGISTERED)

標準 FWFT 標準 FWFT

書き込みポート幅

読み出しポート幅

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

4 4 8191 8191 8192 8192 8192 8192 8193 8193

4 8 8191 4095(1) 8193 4096(1) 8193 4096(1) 8195 4097(1)

4 16 8191 2047(1) 8195 2048(1) 8195 2048(1) 8199 2049(1)

4 32 8191 1023(1) 8199 1024(1) 8199 1024(1) 8207 1025(1)

4 64 8191 511(1) 8207 512(1) 8207 512(1) 8223 513(1)

8 4 4095 8190 4095(2) 8191 4095(2) 8191 4096 8192

9 9 4095 4095 4096 4096 4096 4096 4097 4097

9 18 4095 2047(1) 4097 2048(1) 4097 2048(1) 4099 2049(1)

9 36 4095 1023(1) 4099 1024(1) 4099 1024(1) 4103 1025(1)

9 72 4095 511(1) 4103 512(1) 4103 512(1) 4111 513(1)

16 4 2047 8188 2047(2) 8189 2047(2) 8189 2047(2) 8190

18 9 2047 4094 2047(2) 4095 2047(2) 4095 2048 4096

18 18 2047 2047 2048 2048 2048 2048 2049 2049

18 36 2047 1023(1) 2049 1024(1) 2049 1024(1) 2051 1025(1)

18 72 2047 511(1) 2051 512(1) 2051 512(1) 2055 513(1)

32 4 1023 8184 1023(2) 8185 1023(2) 8185 1023(2) 8186

36 9 1023 4092 1023(2) 4093 1023(2) 4093 1023(2) 4094

36 18 1023 2046 1023(2) 2047 1023(2) 2047 1024 2048

36 36 1023 1023 1024 1024 1024 1024 1025 1025

36 72 1023 511(1) 1025 512(1) 1025 512(1) 1027 513(1)

64 4 511 8176 511(2) 8177 511(2) 8177 511(2) 8178

72 9 511 4088 511(2) 4089 511(2) 4089 511(2) 4090

72 18 511 2044 511(2) 2045 511(2) 2045 511(2) 2046

72 36 511 1022 511(2) 1023 511(2) 1023 512 1024

72 72 511 511 512 512 512 512 513 513

注記:1. 読み出しポートの深さが小数の場合、 小数点以下を切り捨てた値が読み出し深さです。 FIFO から 1 ワード未満のデータを読み出すこ とはできないため、 FIFO が空でもワード データの一部が FIFO 内に残っているこ とがあ り ます。 したがって、 FIFO に残っている最後のデータを読み出すには 1 回以上の書き込みが必要となるこ とがあ り ます。FIFO がフルの場合に読み出しを 1 回実行する と FULL はディアサート されますが、 その後再び FULL をアサートするには 2 回以上の書き込みが必要です。

2. 書き込みポートの深さが小数の場合、 小数点以下を切り捨てた値が書き込み深さです。 1 ワードの書き込みワード全体を読み出すには複数回の読み出しが必要なため、 FIFO 内に書き込みワードの一部が残る と きが必ずあ り ます。 フルの場合、 1 回の読み出しでは次に書き込みを実行できるだけの空きが生じないこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 51UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 52: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1‐20:共通クロック  FIFO のポート幅と深さ  – FIFO36E2

ラッチ モード(REGISTER_MODE = UNREGISTERED)

レジスタ  モード(REGISTER_MODE = REGISTERED)

標準 FWFT 標準 FWFT

書き込みポート幅

読み出し  ポート幅

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

4 4 8192 8192 8193 8193 8193 8193 8194 8194

4 8 8192 4096 8194 4097 8194 4097 8196 4098

4 16 8192 2048 8196 2049 8196 2049 8200 2050

4 32 8192 1024 8200 1025 8200 1025 8208 1026

4 64 8192 512 8208 513 8208 513 8224 514

8 4 4096 8192 4096(1) 8193 4096(1) 8193 4097 8194

9 9 4096 4096 4097 4097 4097 4097 4098 4098

9 18 4096 2048 4098 2049 4098 2049 4100 2050

9 36 4096 1024 4100 1025 4100 1025 4104 1026

9 72 4096 512 4104 513 4104 513 4112 514

16 4 2048 8192 2048(1) 8193 2048(1) 8193 2048(1) 8194

18 9 2048 4096 2048(1) 4097 2048(1) 4097 2049 4098

18 18 2048 2048 2049 2049 2049 2049 2050 2050

18 36 2048 1024 2050 1025 2050 1025 2052 1026

18 72 2048 512 2052 513 2052 513 2056 514

32 4 1024 8192 1024(1) 8193 1024(1) 8193 1024(1) 8194

36 9 1024 4096 1024(1) 4097 1024(1) 4097 1024(1) 4098

36 18 1024 2048 1024(1) 2049 1024(1) 2049 1025 2050

36 36 1024 1024 1025 1025 1025 1025 1026 1026

36 72 1024 512 1026 513 1026 513 1028 514

64 4 512 8192 512(1) 8193 512(1) 8193 512(1) 8194

72 9 512 4096 512(1) 4097 512(1) 4097 512(1) 4098

72 18 512 2048 512(1) 2049 512(1) 2049 512(1) 2050

72 36 512 1024 512(1) 1025 512(1) 1025 513 1026

72 72 512 512 513 513 513 513 514 514

注記:1. 書き込みポートの深さが小数の場合、 小数点以下を切り捨てた値が書き込み深さです。 1 ワードの書き込みワード全体を読み出すには複数回の読み出しが必要なため、 FIFO 内に書き込みワードの一部が残る と きが必ずあ り ます。 フルの場合、 1 回の読み出しでは次に書き込みを実行できるだけの空きが生じないこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 52UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 53: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1‐21:独立クロック  FIFO のポート幅と深さ  – FIFO18E2

ラッチ モード(REGISTER_MODE = UNREGISTERED)

レジスタ  モード(REGISTER_MODE = REGISTERED)

標準 FWFT 標準 FWFT

書き込みポート幅

読み出し  ポート幅

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

4 4 4095 4095 4096 4096 4096 4096 4097 4097

4 8 4095 2047(1) 4097 2048(1) 4097 2048(1) 4099 2049(1)

4 16 4095 1023(1) 4099 1024(1) 4099 1024(1) 4103 1025(1)

4 32 4095 511(1) 4103 512(1) 4103 512(1) 4111 513(1)

8 4 2047 4094 2047(2) 4095 2047(2) 4095 2048 4096

9 9 2047 2047 2048 2048 2048 2048 2049 2049

9 18 2047 1023(1) 2049 1024(1) 2049 1024(1) 2051 1025(1)

9 36 2047 511(1) 2051 512(1) 2051 512(1) 2055 513(1)

16 4 1023 4092 1023(2) 4093 1023(2) 4093 1023(2) 4094

18 9 1023 2046 1023(2) 2047 1023(2) 2047 1024 2048

18 18 1023 1023 1024 1024 1024 1024 1025 1025

18 36 1023 511(1) 1025 512(1) 1025 512(1) 1027 513(1)

32 4 511 4088 511(2) 4089 511(2) 4089 511(2) 4090

36 9 511 2044 511(2) 2045 511(2) 2045 511(2) 2046

36 18 511 1022 511(2) 1023 511(2) 1023 512 1024

36 36 511 511 512 512 512 512 513 513

注記:1. 読み出しポートの深さが小数の場合、 小数点以下を切り捨てた値が読み出し深さです。 FIFO から 1 ワード未満のデータを読み出すこ とはできないため、 FIFO が空でもワード データの一部が FIFO 内に残っているこ とがあ り ます。 したがって、 FIFO に残っている最後のデータを読み出すには 1 回以上の書き込みが必要となるこ とがあ り ます。FIFO がフルの場合に読み出しを 1 回実行する と FULL はディアサート されますが、 その後再び FULL をアサートするには 2 回以上の書き込みが必要です。

2. 書き込みポートの深さが小数の場合、 小数点以下を切り捨てた値が書き込み深さです。 1 ワードの書き込みワード全体を読み出すには複数回の読み出しが必要なため、 FIFO 内に書き込みワードの一部が残る と きが必ずあ り ます。 フルの場合、 1 回の読み出しでは次に書き込みを実行できるだけの空きが生じないこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 53UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 54: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1‐22:共通クロック  FIFO のポート幅と深さ  – FIFO18E2

ラッチ モード(REGISTER_MODE = UNREGISTERED)

レジスタ  モード(REGISTER_MODE = REGISTERED)

標準 FWFT 標準 FWFT

書き込みポート幅

読み出し  ポート幅

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

書き込みポートの深さ

読み出し  ポートの深さ

4 4 4096 4096 4097 4097 4097 4097 4098 4098

4 8 4096 2048 4098 2049 4098 2049 4100 2050

4 16 4096 1024 4100 1025 4100 1025 4104 1026

4 32 4096 512 4104 513 4104 513 4112 514

8 4 2048 4096 2048(1) 4097 2048(1) 4097 2049 4098

9 9 2048 2048 2049 2049 2049 2049 2050 2050

9 18 2048 1024 2050 1025 2050 1025 2052 1026

9 36 2048 512 2052 513 2052 513 2056 514

16 4 1024 4096 1024(1) 4097 1024(1) 4097 1024(1) 4098

18 9 1024 2048 1024(1) 2049 1024(1) 2049 1025 2050

18 18 1024 1024 1025 1025 1025 1025 1026 1026

18 36 1024 512 1026 513 1026 513 1028 514

32 4 512 4096 512(1) 4097 512(1) 4097 512(1) 4098

36 9 512 2048 512(1) 2049 512(1) 2049 512(1) 2050

36 18 512 1024 512(1) 1025 512(1) 1025 513 1026

36 36 512 512 513 513 513 513 514 514

注記:1. 書き込みポートの深さが小数の場合、 小数点以下を切り捨てた値が書き込み深さです。 1 ワードの書き込みワード全体を読み出すには複数回の読み出しが必要なため、 FIFO 内に書き込みワードの一部が残る と きが必ずあ り ます。 フルの場合、 1 回の読み出しでは次に書き込みを実行できるだけの空きが生じないこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 54UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 55: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FIFO プリ ミテ ィブ

図 1-21 に、 FIFO36 と して使用した FIFO36E2 を示します。

FIFO36E2 を ECC モードで使用する場合のポートは、 「ビル ト イン エラー訂正」 で説明します。

X-Ref Target - Figure 1-21

図 1‐21: FIFO36

DOUTP[7:0]

DIN[63:0]

DINP[7:0]

RDEN

RST

RDCLK

WRENWRCLK

DOUT[63:0]

RDCOUNT[13:0]WRCOUNT[13:0]

EMPTYFULL

PROGEMPTYPROGFULL

WRERRRDERR

FIFO36

RSTREGREGCE

CASDOUT[63:0] CASDOUTP[7:0] CASNXTEMPTYCASNXTRDEN

CASDIN[63:0] CASDINP[7:0] CASPRVRDEN CASPRVEMPTY

RDRSTBUSYWRRSTBUSYCASOREGIMUX

CASOREGIMUXENCASDOMUXCASDOMUXEN

SLEEP

X17314-012617

UltraScale アーキテクチャ  メモリ  リソース 55UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 56: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-22 に、 FIFO18 と して使用した FIFO18E2 を示します。

X-Ref Target - Figure 1-22

図 1‐22: FIFO18

DOUTP[3:0]

DIN[31:0]

DINP[4:0]

RDEN

RST

RDCLK

WRENWRCLK

DOUT[31:0]

RDCOUNT[12:0]WRCOUNT[12:0]

EMPTYFULL

PROGEMPTYPROGFULL

WRERR

RDERR

FIFO18

RSTREG

REGCE

RDRSTBUSY

WRRSTBUSY

CASDOUT[31:0] CASDOUTP[4:0] CASNXTEMPTYCASNXTRDEN

CASDIN[31:0] CASDINP[4:0] CASPRVRDEN CASPRVEMPTY

CASOREGIMUX

CASOREGIMUXEN

CASDOMUX

CASDOMUXEN

SLEEP

X17315-012617

UltraScale アーキテクチャ  メモリ  リソース 56UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 57: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FIFO ポートの説明と属性

表 1-23 に FIFO I/O ポートの名前と説明を示します。

表 1‐23: FIFO18E2 および FIFO36E2 のポート名と説明

ポート 方向 説明 設定

PROGEMPTY 出力 FIFO がほぼ空 (PROG_EMPTY_THRESH で

指定したワード数以下) であるこ とを示す

プログラマブルなフラグ。

RDCLK に同期します。

すべての設定。

PROG_EMPTY_THRESH で制御します。

PROGFULL 出力 FIFO がほぼフル (PROG_FULL_THRESH

で指定したワード数以上) であるこ とを示

すプログラマブルなフラグ。

WRCLK に同期します。

すべての設定。

PROG_FULL_THRESH で制御します。

FIFO18: DIN<31:0>

FIFO36: DIN<63:0>

入力 FIFO データ入力バス。

WRCLK に同期します。

すべての設定。幅は WRITE_WIDTH で

制御します。

FIFO18: DINP<3:0>

FIFO36: DINP<7:0>

入力 FIFO パリティ入力バス。

WRCLK に同期します。

すべての設定。幅は WRITE_WIDTH で

制御します。

FIFO18: DOUT<31:0>

FIFO36: DOUT<63:0>

出力 FIFO データ出力バス。

RDCLK に同期します。

すべての設定。 幅は READ_WIDTH で

制御します。

FIFO18: DOUTP<3:0>

FIFO36: DOUTP<7:0>

出力 FIFO パリティ出力バス。

RDCLK に同期します。

すべての設定。 幅は READ_WIDTH で

制御します。

EMPTY 出力 FIFO が空になったこ とを示すアクティブ

High のフラグ。

RDCLK に同期します。

すべての設定。

FULL 出力 FIFO がフルになったこ とを示すアクティ

ブ High のフラグ。

WRCLK に同期します。

すべての設定。

RDCLK 入力 読み出しクロ ッ ク。 すべての設定。

FIFO18:

RDCOUNT<12:0>

FIFO36:

RDCOUNT<13:0>

出力 内部 FIFO 読み出しポインター、 または

FIFO 内のワード数のいずれかの出力。

RDCLK に同期します。

すべての設定。 出力値は

RDCOUNT_TYPE で制御します。

RDEN 入力 RDCLK に対するアクティブ High の読み出

しイネーブル。

すべての設定。

RDERR 出力 FIFO が空またはリセッ ト状態のため読み

出しに失敗したこ とを示す。

RDCLK に同期します。

すべての設定。

RDRSTBUSY 出力 FIFO が現在リセッ ト状態であるこ とを示

すアクティブ High のフラグ。

RDCLK に同期します。

RDCLK ド メ インの FIFO ロジッ クが現

在リセッ ト状態であるこ とを示しま

す。 RDRSTBUSY = 1 の場合に読み出

しを実行する と RDERR が発生します。

UltraScale アーキテクチャ  メモリ  リソース 57UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 58: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

REGCE 入力 RDCLK に対するアクティブ High の出力レ

ジスタ ステージ イネーブル。

REGISTER_MODE = DO_PIPELINED

の場合のみ。

RST 入力 アクティブ High の同期リセッ ト 。

WRCLK に同期します。

RST 入力。 WRCLK ド メ インに同期し

ている必要があ り ます。 RST を使用し

ない場合は 0 に設定できます。

RSTREG 入力 RDCLK に対するアクティブ High の出力レ

ジスタ リセッ ト イネーブル。

REGISTER_MODE = DO_PIPELINED

の場合のみ。

SLEEP(2) 入力 動的シャッ ト ダウンによる消費電力削減。

SLEEP が High の場合、そのブロ ッ ク RAM

メモ リ アレイは省電力モードです。

すべての設定。

WRCLK 入力 書き込みクロ ッ ク。 すべての設定。

FIFO18:

WRCOUNT<12:0>

FIFO36:

WRCOUNT<13:0>

出力 内部 FIFO 書き込みポインター、 または

FIFO 内のワード数のいずれかの出力。

WRCLK に同期します。

すべての設定。 出力値は

WRCOUNT_TYPE で制御します。

WREN 入力 WRCLK に対するアクティブ High のライ

ト イネーブル。

すべての設定。

WRERR 出力 FIFO がフルまたはリセッ ト状態のため書

き込みに失敗したこ とを示す。

WRCLK に同期します。

すべての設定。

WRRSTBUSY 出力 FIFO が現在リセッ ト状態であるこ とを示

すアクティブ High のフラグ。

WRCLK に同期します。

WRCLK ド メ インの FIFO ロジッ クが現

在リセッ ト状態であるこ とを示しま

す。 WRRSTBUSY = 1 の場合に書き込

みを実行する と WRERR が発生します。

FIFO18: CASDIN<31:0>

FIFO36: CASDIN<63:0>

入力 FIFO を直列または並列にカスケード接続

して深さを拡張する場合、 直前の FIFO か

らの FIFO データ入力バス。

CASCADE_ORDER =

MIDDLE/LAST/PARALLEL の場合にの

み使用します。

FIFO18: CASDINP<3:0>

FIFO36: CASDINP<7:0>

入力 FIFO を直列または並列にカスケード接続

して深さを拡張する場合、 直前の FIFO か

らの FIFO パリティ データ入力バス。

CASCADE_ORDER =

MIDDLE/LAST/PARALLEL の場合にの

み使用します。

FIFO18: CASDOUT<31:0>

FIFO36: CASDOUT<63:0>

出力 FIFO を直列または並列にカスケード接続

して深さを拡張する場合、 次の FIFO への

FIFO データ出力バス。

CASCADE_ORDER =

FIRST/MIDDLE/PARALLEL の場合に

のみ使用します。

FIFO18: CASDOUTP<3:0>

FIFO36: CASDOUTP<7:0>

出力 FIFO を直列または並列にカスケード接続

して深さを拡張する場合、 次の FIFO への

FIFO パリティ データ出力バス。

CASCADE_ORDER =

FIRST/MIDDLE/PARALLEL の場合に

のみ使用します。

CASPRVEMPTY 入力 FIFO を直列にカスケード接続して深さを

拡張する場合、カスケード接続した直前の

FIFO からの EMPTY 入力。 前の FIFO の

CASNXTEMPTY に接続します。

CASCADE_ORDER = MIDDLE/LAST

で、 FIFO を直列にカスケード接続し

た場合にのみ使用します。

表 1‐23: FIFO18E2 および FIFO36E2 のポート名と説明 (続き)

ポート 方向 説明 設定

UltraScale アーキテクチャ  メモリ  リソース 58UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 59: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

CASPRVRDEN 出力 FIFO を直列にカスケード接続して深さを

拡張する場合、カスケード接続した直前の

FIFO の RDEN 入力を駆動する制御出力。

前の FIFO の CASNXTRDEN に接続します。

CASCADE_ORDER = MIDDLE/LAST

で、 FIFO を直列にカスケード接続し

た場合にのみ使用します。

CASNXTRDEN 入力 FIFO を直列にカスケード接続して深さを

拡張する場合、 カスケード接続した次の

FIFO からの RDEN 入力。 次の FIFO の

CASPRVRDEN に接続します。

CASCADE_ORDER = FIRST/MIDDLE

で、 FIFO を直列にカスケード接続し

た場合にのみ使用します。

CASNXTEMPTY 出力 FIFO を直列にカスケード接続して深さを

拡張する場合、 カスケード接続した次の

FIFO への EMPTY 出力。 次の FIFO の

CASPRVEMPTY に接続します。

CASCADE_ORDER = FIRST/MIDDLE

で、 FIFO を直列にカスケード接続し

た場合にのみ使用します。

CASOREGIMUX 入力 出力レジスタの前のカスケード マルチプ

レクサーのセレク ト ラインを駆動するフ

リ ップフロ ップへの D 入力。

REGISTER_MODE = DO_PIPELINED、

CASCADE_ORDER = PARALLEL の場

合にのみ使用します。

CASOREGIMUXEN 入力 出力レジスタの前のカスケード マルチプ

レクサーのセレク ト ラインを駆動するフ

リ ップフロ ップへの EN 入力。

REGISTER_MODE = DO_PIPELINED、

CASCADE_ORDER = PARALLEL の場

合にのみ使用します。

CASDOMUX 入力 ブロッ ク RAM の出力のカスケード マルチ

プレクサーのセレク ト ラインを駆動する

フ リ ップフロ ップへの D 入力。

CASCADE_ORDER = PARALLEL の場

合にのみ使用します。

CASDOMUXEN 入力 ブロッ ク RAM の出力のカスケード マルチ

プレクサーのセレク ト ラインを駆動する

フ リ ップフロ ップへの EN 入力。

CASCADE_ORDER = PARALLEL の場

合にのみ使用します。

注記:1. FIFO36E2 を ECC モードで使用する場合のポートは、 「ビルト イン エラー訂正」 で説明します。

2. 詳細は、 ブロ ッ ク RAM の SLEEP ピンと属性の説明を参照して ください。 FIFO がス リープ モードの場合、 ク ロ ッ ク モード (独立/共通)、読み出し /書き込みクロ ッ ク周波数比、および、 FWFT や出力/パイプライン レジスタなどのその他の FIFO の設定に応じて、 RDEN/WREN のアサート とディアサートの要件はブロ ッ ク RAM の規則から逸脱します。 特定の設定での動作が正確なものとなるよ うに、 デザインをシ ミ ュレーシ ョ ンするこ とを推奨します。

表 1‐23: FIFO18E2 および FIFO36E2 のポート名と説明 (続き)

ポート 方向 説明 設定

UltraScale アーキテクチャ  メモリ  リソース 59UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 60: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1‐24: FIFO18E2 および FIFO36E2 の属性と説明

属性 値 デフォルト 説明

FIFO18:

PROG_EMPTY_THRESH<11:0>

FIFO36:

PROG_EMPTY_THRESH<12:0>

10 進数

ユーザー選択可能

この値よ り も小さ くなる と

PROGEMPTY をアサートする、 FIFO

内の読み出しワード数を指定します。

FIFO18:

PROG_FULL_THRESH<11:0>

FIFO36:

PROG_FULL_THRESH<12:0>

10 進数

ユーザー選択可能

この値よ り も大き くなる と

PROGFULL をアサートする FIFO 内の

読み出しワード数を指定します。

WRITE_WIDTH 整数

4、 9、 18、 36、 72 (FIFO36)

DIN および DINP ポートのポート幅の

合計を示します。

READ_WIDTH 整数

4、 9、 18、 36、 72 (FIFO36)

DOUT および DOUTP ポートのポート

幅の合計を示します。

REGISTER_MODE UNREGISTERED、

REGISTERED、DO_PIPELINED

UNREGISTERED UNREGISTERED: 出力レジスタ ステー

ジなし。

REGISTERED: 出力レジスタは、 FIFO

コン ト ローラーによって自動的に制御

され、 追加 FIFO ワードのよ うに動作

します。

DO_PIPELINED: 出力レジスタは外部

入力 REGCE および RSTREG で制御さ

れます。

CLOCK_DOMAINS COMMON、INDEPENDENT

INDEPENDENT COMMON: 共通クロ ッ ク (シングル ク

ロ ッ ク /同期) FIFO。

INDEPENDENT: 独立クロ ッ ク (デュア

ル ク ロ ッ ク /非同期) FIFO。

FIRST_WORD_FALL_THROUGH 文字列:

TRUE、 FALSE

FALSE TRUE: FWFT FIFO の出力動作を使用し

ます。

FALSE: 標準 FIFO の出力動作を使用し

ます。

INIT(1) FIFO18: 36 ビッ トの 16 進数

FIFO36: 72 ビッ トの 16 進数

36'h0000000000

72'h0000000000

0000000000

コンフ ィギュレーシ ョ ン直後の DOUT

の初期値を指定します。 この初期値は

常にブロ ッ ク RAM/FIFO の出力ラ ッチ

に適用されます。 また、 出力レジスタ

の初期値もこの値で指定します。

UltraScale アーキテクチャ  メモリ  リソース 60UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 61: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

SRVAL(1) FIFO18: 36 ビッ トの 16 進数

FIFO36: 72 ビッ トの 16 進数

36'h0000000000

72'h0000000000

0000000000

FIFO 出力バスのリセッ ト値を指定し

ます。

REGISTER_MODE の状態にかかわら

ず、 この値が RAM 出力ラッチおよび出

力レジスタのリセッ ト値となり ます。

REGISTER_MODE = DO_PIPELINED

の場合、 RSTREG 入力によって FIFO

の出力レジスタ ステージの DOUT 出

力はこの値にリセッ ト されます。 それ

以外の場合、 DOUT は FIFO の RST 入

力によって リセッ ト されます。

WRCOUNT_TYPE RAW_PNTR、

SYNC_PNTR、

SIMPLE_DATACOUNT、EXTENDED_DATACOUNT

RAW_PNTR WRCOUNT 出力の動作を指定します。

この設定によ り、 内部 FIFO カウン

ターの値または FIFO 内のワード数の

いずれかを出力します。

RDCOUNT_TYPE RAW_PNTR、

SYNC_PNTR、

SIMPLE_DATACOUNT、EXTENDED_DATACOUNT

RAW_PNTR RDCOUNT 出力の動作を指定します。

この設定によ り、 内部 FIFO カウンター

の値または FIFO 内のワード数のいずれ

かを出力するよ うに設定できます。

RSTREG_PRIORITY RSTREG、 REGCE RSTREG REGISTER_MODE = DO_PIPELINED

の場合のみ使用します。 RSTREG に設

定する と、 REGCE 入力の状態にかか

わらず、 RSTREG 入力によって出力レ

ジスタが SRVAL にリセッ ト されます。

REGCE に設定する と、 REGCE 入力が

1 の場合のみ RSTREG 入力によって出

力レジスタが SRVAL にリセッ ト され

ます。

CASCADE_ORDER NONE、 FIRST、 MIDDLE、

LAST、 PARALLEL

NONE FIFO カスケード モード (直列または並

列)、 および直列の場合はカスケード

接続の順番を指定します。

注記:1. FIFO36E2 を ECC モードで使用する場合の属性は、 「ビル ト イン エラー訂正」 で説明します。

表 1‐24: FIFO18E2 および FIFO36E2 の属性と説明 (続き)

属性 値 デフォルト 説明

UltraScale アーキテクチャ  メモリ  リソース 61UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 62: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FIFO18/36 の未使用の入力

表 1-25 に、 未使用の入力を示します。

FIFO 属性の説明

PROG_EMPTY_THRESH

PROG_EMPTY_THRESH は、 ユーザーが指定したワード数が FIFO から読み出されたこ とを知らせるしきい値です。

FIFO 内のワード数が PROG_EMPTY_THRESH 以下になる と PROGEMPTY 信号がアサート されます。 PROGEMPTY

= 0 の場合、 FIFO 内のワード数は PROG_EMPTY_THRESH よ り も多いこ とになり ます。 PROG_EMPTY_THRESH の

設定値に基づいてアサート される PROGEMPTY フラグは、 FIFO 内のワード数を正確に反映しているわけではあ り

ません。 PROGEMPTY には読み出し動作はすべて反映されますが、 書き込みは同期のレイテンシがあるため即座に

反映されないこ とがあ り ます。 このため、 FIFO 内のワード数が実際よ り少なく示される可能性があ り ます。

PROG_FULL_THRESH

PROG_FULL_THRESH は、 ユーザーが指定したワード数が FIFO に書き込まれたこ とを知らせるしきい値で、 FIFO

の空きを調べる手段と して利用できます。 FIFO 内のワード数が PROG_FULL_THRESH 以上になる と PROGFULL 信

号がアサート されます。 PROGFULL = 0 の場合、 FIFO 内のワード数は PROG_FULL_THRESH よ り も少ないこ とにな

り ます。 PROGEMPTY のアサート と同様、 PROG_FULL_THRESH の設定値に基づいてアサート される PROGFULL

フラグも FIFO 内のワード数を正確に反映しているわけではあ り ません。 PROGFULL には書き込み動作はすべて反

映されますが、 読み出しは同期のレイテンシがあるため即座に反映されないこ とがあ り ます。 このため、 FIFO 内の

ワード数が実際よ り も多く示される可能性があ り ます。

表 1‐25: FIFO18/36 の未使用の入力

FIFO18/36 定数

RDCLK 0

WRCLK 0

RDEN 0

WREN 0

REGCLK 0

RSTREG 0

REGCE 1

RST 0

SLEEP 0

CASDOMUX 0

CASOREGIMUX 0

CASDOMUXEN 1

CASOREGIMUXEN 1

INJECTSBITERR 0

INJECTDBITERR 0

UltraScale アーキテクチャ  メモリ  リソース 62UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 63: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

WRITE_WIDTH

この属性は、 DIN および DINP ポートのデータ幅の合計を制御します。 WRITE_WIDTH の有効な値は、 4、 9、 18、

36 (および FIFO36E2 の場合は 72) です。

READ_WIDTH

この属性は、 DOUT および DOUTP ポートのデータ幅の合計を制御します。 READ_WIDTH の有効な値は、 4、 9、

18、 36 (および FIFO36E2 の場合は 72) です。

REGISTER_MODE

UNREGISTERED は、 FIFO でブロッ ク RAM の出力レジスタを使用しないこ とを示します。 REGISTERED は、 出力

レジスタを使用し、 これを制御して FIFO の DOUT が FIFO ワードを拡張する動作となるこ とを示します。 この設定

は、 DOUT にレイテンシを追加しませんが、 Clock-to-Out および WRCLK と EMPTY がディアサート されるまでのレ

イテンシには影響します。

DO_PIPELINED の場合、 出力レジスタによって DOUT パスにパイプライン ステージが 1 段追加され、 REGCE およ

び RSTREG 入力を使用して出力レジスタを制御します。 この設定は、 Clock-to-Out および WRCLK と EMPTY がディ

アサート されるまでのレイテンシに影響します。

CLOCK_DOMAINS

COMMON は、 FIFO が共通クロ ッ ク FIFO であ り、 ク ロ ッ ク入力が 1 つ (CLK) しかないか、 WRCLK と RDCLK の

2 つのクロ ッ ク入力が同じクロ ッ ク ソース (1 つのクロ ッ ク バッファー ) に接続されているこ とを示します。

INDEPENDENT は、 2 つの異なるクロ ッ ク バッファーから FIFO に 2 つの独立した (通常は非同期の) ク ロ ッ ク

WRCLK と RDCLK が供給されるこ とを示します。

FIRST_WORD_FALL_THROUGH

この属性は、 FIFO が空の場合の読み出し (出力) 動作を指定します。 TRUE (FWFT) の場合、 RDEN がアサート される

前に DIN データが DOUT バスに現れます。 空の FIFO に最初のワードを書き込むと、 最初のワードは直接出力に伝

達され (フォール スルー )、 EMPTY がディアサート される と同時に DOUT バスに現れます。 FALSE (標準読み出しイ

ンターフェイス) の場合、 RDEN をアサートする と RDCLK の次の立ち上がりエッジの後に DIN データ (FIFO 内の

データ ) が DOUT に現れます。 読み出し可能なデータがなくなる と EMPTY フラグがアサート され、 さ らに読み出し

を試みる と RDCLK の次の立ち上がりエッジの後に RDERR がアサート されます。 詳細は、 66ページの 「動作モー

ド」 を参照してください。

UltraScale アーキテクチャ  メモリ  リソース 63UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 64: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

INIT および SRVAL

INIT は、 コンフ ィギュレーシ ョ ン直後の出力ラ ッチ (DOUT および DOUTP) または出力レジスタの値を指定します。

SRVAL は、 RST/RSTREG 入力がアサート されたと きの出力ラ ッチまたは出力レジスタの値を指定します。 表 1-26 を

参照してください。

WRCOUNT_TYPE

WRCOUNT_TYPE は、 FIFO カウンターの内部ステート または FIFO 内のワード数のどちらをステータス情報と して

WRCOUNT に出力するかを指定します。

• RAW_PNTR = WRCLK ド メ インに同期した FIFO メモ リ書き込みポインター。

• SYNC_PNTR = RDCLK ド メ インに同期した FIFO メモ リ書き込みポインター。

• SIMPLE_DATACOUNT = WRCLK ド メ インの書き込みポインターから WRCLK ド メ インに同期した読み出しポ

インターを引いた、 WRCLK ド メ インのメモ リ内のワード数。 出力レジスタ ステージに格納されたワードは含

みません。

• EXTENDED_DATACOUNT = WRCLK ド メ インの書き込みポインターから WRCLK ド メ インに同期した読み出し

ポインターを引き、 0、 1、 2 (出力ステージ数による ) を足した、 WRCLK ド メ インのメモ リおよび出力ステージ

内のワード数。

RDCOUNT_TYPE

RDCOUNT_TYPE は、 FIFO カウンターの内部ステートに関するステータス情報をどのよ うに RDCOUNT に出力する

かを指定します。

• RAW_PNTR – RDCOUNT = RDCLK ド メ インに同期した FIFO メモ リ読み出しポインター。

• SYNC_PNTR – RDCOUNT = WRCLK ド メ インに同期した、 遅延のある FIFO メモ リ読み出しポインター。 共通

クロ ッ ク FIFO ではサポート されません。

• SIMPLE_DATACOUNT – RDCOUNT = RDCLK ド メ インに同期した書き込みポインターから RDCLK ド メ インの

読み出しポインターを引いた、 RDCLK ド メ インのメモ リ内のワード数。 出力レジスタ ステージに格納された

ワードは含みません。

• EXTENDED_DATACOUNT – RDCOUNT = RDCLK ド メ インに同期した書き込みポインターから RDCLK ド メ イ

ンの読み出しポインターを引き、 0、 1、 2 (出力ステージ数による ) を足した、 RDCLK ド メ インのメモ リおよび

出力ステージ内のワード数。

表 1‐26: FIFO18E2 と  FIFO36E2 の SRVAL および INIT のマッピング

ポート幅SRVAL/INIT の全体の幅

SRVAL/INIT と  DOUT のマッピング SRVAL/INIT と  DOUTP のマッピング

DOUT SRVAL/INIT DOUTP SRVAL/INIT

1 [0] [0] [0] N/A N/A

2 [1:0] [1:0] [1:0] N/A N/A

4 [3:0] [3:0] [3:0] N/A N/A

9 [8:0] [7:0] [7:0] [0] [8]

18 [17:0] [15:0] [15:0] [1:0] [17:16]

36 [35:0] [31:0] [31:0] [3:0] [35:32]

72 (FIFO36E2 のみ) [71:0] [63:0] [63:0] [7:0] [71:64]

UltraScale アーキテクチャ  メモリ  リソース 64UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 65: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

RSTREG_PRIORITY

この属性は、 オプシ ョ ンの出力レジスタを使用する (DO_REG = 1) 場合に RSTREG と REGCE のどちらを優先するか

を指定します。 RSTREG に設定する と、 REGCE 入力の状態にかかわらず、 RSTREG 入力によって出力レジスタが

SRVAL にリセッ ト されます。 REGCE に設定する と、 REGCE 入力が 1 の場合のみ RSTREG 入力によって出力レジス

タが SRVAL にリセッ ト されます。

CASCADE_ORDER

この属性は、 FIFO を直列にカスケード接続した場合の FIFO の順番、 または並列カスケード接続を指定します。

FIFO を直列にカスケード接続する場合、 最初の FIFO (書き込みインターフェイスを持つ FIFO) を

CASCADE_ORDER = FIRST と し、 最後の FIFO (読み出しインターフェイスを持つ FIFO) を CASCADE_ORDER =

LAST と し、 それ以外の FIFO はすべて CASCADE_ORDER = MIDDLE とする必要があ り ます。 FIFO を並列モードに

拡張する場合は、 この属性を PARALLEL に設定します (73ページの 「直列および並列カスケード接続による FIFO 深

さの拡張」 参照)。

• NONE: 通常の FIFO 動作。

• FIRST: FIFO の深さを拡張するために直列接続した最初の FIFO。 書き込みインターフェイスは通常どおりです

が、 読み出しインターフェイスはカスケード チェーンの次の FIFO に接続するよ うに変更されます。

• MIDDLE: FIFO の深さを拡張するために直列接続した最初と最後以外の FIFO。 この FIFO の前には FIRST また

は MIDDLE に設定された FIFO を接続し、 この FIFO の後には MIDDLE または LAST に設定された FIFO を接続

します。

• LAST: FIFO の深さを拡張するために直列接続した最後の FIFO。 読み出しインターフェイスは通常どおりです

が、 書き込みインターフェイスはカスケード チェーンの前の FIFO に接続するよ うに変更されます。

• PARALLEL: 出力データを並列にカスケード接続したデザインで使用する FIFO。

FIFO の動作

リセッ ト

重要: リセッ トの仕様と インプリ メンテーシ ョ ンは、 7 シ リーズの FIFO から完全に変わり ました。 RST は WRCLK

に同期します。 RST をアサートするには、 WRCLK の立ち上がりエッジ前に 1 セッ ト アップ タイムの期間アサート

しておく必要があ り ます。 RST には、 入力で反転するオプシ ョ ンもあ り ます。

RST をアサートする と、 WRRSTBUSY 出力が WRCLK の立ち上がりエッジ直後にアサート し、 リセッ ト動作が完了

するまでアサート されたまま とな り ます。 WRRSTBUSY の後、 内部リセッ トは RDCLK ド メ インに同期します。

RDCLK ド メ インに到達する と RDRSTBUSY がアサート されたまま とな り、 RDCLK ド メ インのすべての信号のリ

セッ トが完了する と RDRSTBUSY がディアサート されます。 共通クロ ッ ク モードではクロ ッ ク乗せ換えが不要なた

め、 このロジッ クは簡単なものになり ます。

UltraScale アーキテクチャ  メモリ  リソース 65UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 66: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

動作モード

FIFO の読み出し動作には、 標準モード と FWFT (First-Word Fall-Through) モードの 2 つがあ り ます。 これら動作モー

ドは、 空の FIFO に最初のワードを書き込んだ直後の出力動作が異なり ます。 詳細は、 「FWFT モード」 を参照して

ください。

標準モード

標準 FIFO では、 1 つ以上のワードが FIFO から読み出し可能になる と EMPTY がディアサート されます。 RDEN がア

サート される と、 RDCLK の次の立ち上がりエッジの後に次のデータが DOUT バスに現れます。読み出し可能なデー

タがなくなる と EMPTY フラグがアサート され、さ らに読み出しを試みる と RDCLK の次の立ち上がりエッジの後に

RDERR がアサート されます。 図 1-23 を参照して ください。

X-Ref Target - Figure 1-23

図 1‐23:標準 FIFO インターフェイス

DOUT

DIN

• • • • • ••• •• • • • • •• • • • • • •••• • •• • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

X17174-012617

UltraScale アーキテクチャ  メモリ  リソース 66UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 67: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FWFT モード

FWFT (First-Word Fall-Through) FIFO では、RDEN がアサート される前にデータが DOUT バスに現れます。空の FIFO

に最初のワードを書き込むと、 最初のワードは直接出力に伝達され、 EMPTY がディアサート される と同時に DOUT

バスに現れます。

システムでのデータ ロスを防ぐため、 この最初の出力値は RDEN がアサート されるまで DOUT バスから消えるこ と

はあ り ません。 それ以上データがない場合は EMPTY がアサート され、 次に FIFO にデータを書き込むと、 再びその

データが直接出力に伝達されます。 データは読み出しを実行する前に DOUT に現れるため、 FIFO が空になる

(EMPTY がアサート される ) には最後にも う 1 回読み出しが必要です。 どちらの場合も、 FIFO が空の状態に戻るには

書き込みと同じ回数の読み出しが必要です。 詳細は、 図 1-24 および図 1-25 を参照して ください。

X-Ref Target - Figure 1-24

図 1‐24: FIFO 内にデータ  ワードが 1 つしかない場合の FWFT FIFO

DIN

DOUT

• • • • • ••• •• • • • • •• • • • • • •••• • •• • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

X17175-012617

X-Ref Target - Figure 1-25

図 1‐25: FIFO 内にデータ  ワードが 2 つある場合の FWFT FIFO

DOUT

DIN

X17176-012617

UltraScale アーキテクチャ  メモリ  リソース 67UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 68: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

フラグ

EMPTY フラグ

FIFO に読み出し可能なデータがなくなる と EMPTY がアサート され、 それ以上読み出しを実行する と読み出しエ

ラー (RDERR = 1) とな り ます。 EMPTY がディアサート されてからデータが DOUT ポートに出力されるまでの時間

は、 FIFO の設定が標準 FIFO か FWFT FIFO かによって異なり ます。

空の FIFO に書き込みを実行してから EMPTY 出力がディアサート されるまでに必要なクロ ッ ク サイクル数も、FIFO

の設定によ り異なり ます。 独立クロ ッ ク FIFO の場合、 書き込み動作が内部で RDCLK ド メ インに同期してから

EMPTY フラグのステータスが変化します。 このため、 書き込みを実行してから EMPTY がディアサート されるまで

のレイテンシは、 書き込みの数サイクルとその後の読み出しの数サイ クルの合計となり ます。

EMPTY フラグは RDCLK ド メ インに同期し、 ロジッ クが FIFO から読み出す際のハンドシェイ ク信号と して使用さ

れます。

PROGEMPTY フラグ

FIFO 内のワード数が PROG_EMPTY_THRESH で指定した値以下になる と、 PROGEMPTY がアサート されます。

FIFO に内在するレイテンシのため、 特に独立クロ ッ ク FIFO の場合、 PROGEMPTY は正確なフラグとは見なされま

せん。 つま り、 すべての書き込み動作が RDCLK ド メ インへの同期を完了していなければ、 FIFO 内のワード数が実

際よ り も少なく示される可能性があ り ます。 しかし、 PROGEMPTY フラグは RDCLK ド メ インに同期しているため、

通常は FIFO から読み出すこ とができるワード数を判断する手段と して使用します。 つま り、 PROGEMPTY が実際

よ り も少ないワード数を示すこ とは、 FIFO のアンダーフローを防ぐ役割を果たします。

書き込みを実行してから PROGEMPTY がディアサート されるまでに必要なクロ ッ ク サイクル数は、 FIFO の設定に

よ り異なり ます。独立クロ ッ ク FIFO の場合、書き込み動作が内部で RDCLK ド メ インに同期してから PROGEMPTY

フラグのステータスが変化します。 このため、 書き込みを実行してから PROGEMPTY がディアサート されるまでの

レイテンシは、 書き込みの数サイクルとその後の読み出しの数サイ クルの合計となり ます。

PROGEMPTY フラグは RDCLK ド メ インに同期し、 ロジッ クが FIFO から読み出す際のステータス信号と して使用さ

れます。

RDERR フラグ

EMPTY フラグのアサート後に読み出しを実行しよ う と しても読み出しアドレス ポインターはインク リ メン トせず、

読み出しエラー (RDERR) フラグがアサート されます。 RDRSTBUSY がアサート されている と きに書き込みを実行し

た場合も RDERR がアサート されます。 RDEN または EMPTY がディアサート される と、 RDERR フラグはディア

サート されます。 このフラグは RDCLK に同期します。

FULL フラグ

FIFO に空きがなくな り、 これ以上ワードを書き込めなくなる と FULL がアサート され、 さ らに書き込みを試みる と

書き込みエラー (WRERR = 1) とな り ます。 フルの FIFO から読み出しを実行してから FULL 出力がディアサート され

るまでに必要なクロ ッ ク サイクル数は、 FIFO の設定によ り異な り ます。 独立クロ ッ ク FIFO の場合、 読み出し動作

が内部で WRCLK ド メ インに同期してから FULL フラグのステータスが変化します。 このため、 読み出しを実行し

てから FULL がディアサート されるまでのレイテンシは、 読み出しの数サイクルとその後の書き込みの数サイクル

の合計となり ます。

FULL フラグは WRCLK ド メ インに同期し、 ロジッ クが FIFO に書き込む際のハンドシェイク信号と して使用されます。

UltraScale アーキテクチャ  メモリ  リソース 68UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 69: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

WRERR フラグ

FULL フラグのアサート後に書き込みを実行しよ う と しても書き込みアドレス ポインターはインク リ メン トせず、

書き込みエラー (WRERR) フラグがアサート されます。 WRRSTBUSY がアサート されている と きに書き込みを実行

した場合も WRERR がアサート されます。 WREN または FULL がディアサート される と、 WRERR フラグはディア

サート されます。 このフラグは WRCLK に同期します。

PROGFULL フラグ

FIFO 内のワード数が PROG_FULL_THRESH で指定した値以上になる と、 PROGFULL がアサート されます。

重要: PROGFULL および PROGEMPTY フラグには 1 ク ロ ッ ク サイ クルのアサート レイテンシが伴います。 つま り、

PROGFULL がアサート されるまでに、 ワード数は PROG_FULL_THRESH - 1 となるこ とがあ り ます。 フラグ アサー

ト レイテンシの詳細は、 表 1-27 および表 1-28 を参照してください。

FIFO に内在するレイテンシのため、 特に独立クロ ッ ク FIFO の場合、 PROGFULL は正確なフラグとは見なされませ

ん。 つま り、 すべての読み出し動作が WRCLK ド メ インへの同期を完了していなければ、 FIFO 内のワード数が実際

よ り も多く報告される可能性があ り ます。 しかし、 PROGFULL フラグは WRCLK ド メ インに同期しているため、 通

常は FIFO に書き込むこ とができるワード数を判断する手段と して使用します。 つま り、 PROGFULL が実際よ り も

多いワード数を示すこ とは、 FIFO のオーバーフローを防ぐ役割を果たします。

読み出しを実行してから PROGFULL がディアサート されるまでに必要なクロ ッ ク サイクル数は、 FIFO の設定によ

り異なり ます。 独立クロ ッ ク FIFO の場合、 読み出し動作が内部で WRCLK ド メ インに同期してから PROGFULL フ

ラグのステータスが変化します。 このため、 読み出しを実行してから PROGFULL がディアサート されるまでのレイ

テンシは、 読み出しの数サイクルとその後の書き込みの数サイクルの合計となり ます。

PROGFULL フラグは WRCLK ド メ インに同期し、 ロジッ クが FIFO に書き込む際のステータス信号と して使用され

ます。

フラグのアサート /ディアサートおよびフラグのレイテンシ

フラグのアサート /ディアサートのタイ ミ ングは、 FIFO の設定によ り異なり ます。 共通クロ ッ ク FIFO に設定した場

合は 2 つの無関係なクロ ッ ク ド メ インのばらつきによる影響がなく、 異なるクロ ッ ク ド メ イン間の同期が不要で

す。 したがって、 書き込みを実行してから EMPTY または PROGEMPTY がディアサート されるまで、 あるいは読み

出しを実行してから FULL または PROGFULL がディアサート されるまでの内部レイテンシは、同等の独立クロ ッ ク

FIFO よ り もはるかに小さ くな り ます。 同様に、 FIFO を非対称ポートに設定した場合、 読み出しポート と書き込み

ポートのポート幅の比によってはレイテンシが増大します。 REGISTER_MODE、 FIRST_WORD_FALL_THROUGH、

EN_ECC_PIPE 属性の設定によっては、 書き込みを実行してから EMPTY がディアサート されるまでのレイテンシが

最大で RDCLK の 3 サイ クル分長くなるこ とがあ り ます。

独立クロ ッ ク FIFO は、 2 つのクロ ッ ク ド メ インが同期します。 WRCLK ド メ インと RDCLK ド メ インの内部同期の

ため、 遷移に数クロ ッ ク サイクルかかるこ と もあ り ます。 たとえば書き込み動作を RDCLK ド メ インに同期するに

は、 WRCLK と RDCLK の両方で数クロ ッ ク サイ クル必要です。 書き込み動作が RDCLK ド メ インへの同期を完了す

る と、 その書き込み動作が RDCLK 出力の EMPTY と PROGEMPTY のステータスに反映され、 必要に応じてこれら

のフラグがディアサート されます。

同様に、 RDCLK ド メ インと WRCLK ド メ インの内部同期にも数クロ ッ ク サイクルかかり ます。 たとえば読み出し

動作を WRCLK ド メ インに同期するには、 RDCLK と WRCLK の両方で数クロ ッ ク サイ クル必要です。 読み出し動

作が WRCLK ド メ インへの同期を完了する と、 その読み出し動作が WRCLK 出力の FULL と PROGFULL のステータ

スに反映され、 必要に応じてこれらのフラグがディアサート されます。 独立クロ ッ ク FIFO ではクロ ッ ク位相の関係

にばらつきがあるため、 フラグのディアサートがク ロ ッ クの 1 サイクル分ずれるこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 69UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 70: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

表 1‐27:独立クロック  FIFO

アサート (1) ディアサート標準 FIFO(2)

ディアサートFWFT FIFO(2)

EMPTY 0 RDCLK 1 WRCLK + 4 または 5 RDCLK(3) 1 WRCLK + 5 または 6 RDCLK(3)

PROGEMPTY 1 RDCLK 1 WRCLK + 5 または 6 RDCLK 1 WRCLK + 5 または 6 RDCLK

FULL 0 WRCLK 1 RDCLK + 4 または 5 WRCLK 1 RDCLK + 4 または 5 WRCLK

PROGFULL 1 WRCLK 1 RDCLK + 5 または 6 WRCLK 1 RDCLK + 5 または 6 WRCLK

注記:1. アサートのレイテンシは、 読み出し /書き込みが有効な場合に RDCLK/WRCLK の立ち上がりエッジから、 その読み出し /書き込み動作によって EMPTY (PROGEMPTY) または FULL (PROGFULL) がアサート されるまでの時間です。 ク ロ ッ クの立ち上がりエッジ直後にフラグがアサートする場合をレイテンシ 0 と し、 も う 1 回の立ち上がり クロ ッ ク エッジが必要な場合をレイテンシ 1 と しています。

2. ディアサートのレイテンシは、 読み出し /書き込みが有効な場合に RDCLK/WRCLK の立ち上がりエッジから、 その読み出し /書き込み動作によって EMPTY (PROGEMPTY) または FULL (PROGFULL) フラグがディアサート されるまでの時間です。 クロ ッ クの最初の立ち上がりエッジから N サイクル後にディアサート します。 ク ロ ッ クが非同期なため、 N の値は変化します。

3. REGISTERED モードでは RDCLK が 1 サイクル多くな り ます。

X-Ref Target - Figure 1-26

図 1‐26: EMPTY および PROGEMPTY のディアサート /アサート  レイテンシ(独立クロック  FIFO の場合)

WRCLK

WREN

RDCLK

EMPTY

PROGEMPTY

RDEN

. . .

. . .

EMPTY/PROGEMPTYDeassertion Latency

EMPTY/PROGEMPTYAssertion Latency

X17178-012617

UltraScale アーキテクチャ  メモリ  リソース 70UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 71: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-26 および図 1-27 で、 プログラム可能なフラグはそれぞれのしきい値設定に基づいてアサート /ディアサート さ

れ、 EMPTY/FULL フラグとの依存や関連はあ り ません。

X-Ref Target - Figure 1-27

図 1‐27: FULL および PROGFULL のディアサート /アサート  レイテンシ(独立クロック  FIFO の場合)

FULL/PROGFULLDeassertion Latency

RDCLK

RDEN

WRCLK

FULL

PROGFULL

WREN

. . .

. . .

FULL/PROGFULLAssertion Latency

X17179-012617

表 1‐28:共通クロック  FIFO

アサート (1) ディアサート標準 FIFO(2)

ディアサートFWFT FIFO(2)

EMPTY 0 RDCLK 0 WRCLK(3) 1 WRCLK(3)

PROGEMPTY 1 RDCLK 1 WRCLK 1 WRCLK

FULL 0 WRCLK 0 RDCLK 0 RDCLK

PROGFULL 1 WRCLK 1 RDCLK 1 RDCLK

注記:1. アサートのレイテンシは、 読み出し /書き込みが有効な場合に RDCLK/CLKWR の立ち上がりエッジから、 その読み出し /書き込み動作によって EMPTY (PROGEMPTY) または FULL (PROGFULL) がアサート されるまでの時間です。 ク ロ ッ クの立ち上がりエッジ直後にフラグがアサートする場合をレイテンシ 0 と し、 も う 1 回の立ち上がり ク ロ ッ ク エッジが必要な場合をレイテンシ 1 と しています。

2. ディアサートのレイテンシは、 読み出し /書き込みが有効な場合に RDCLK/WRCLK の立ち上がりエッジから、 その読み出し /書き込み動作によって EMPTY (PROGEMPTY) または FULL (PROGFULL) フラグがディアサート されるまでの時間です。 ク ロ ックの立ち上がりエッジ直後にフラグがディアサートする場合をレイテンシ 0 と し、 も う 1 回の立ち上がり ク ロ ッ ク エッジが必要な場合をレイテンシ 1 と しています。

3. REGISTERED モードでは RDCLK が 1 サイクル多くな り ます。

UltraScale アーキテクチャ  メモリ  リソース 71UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 72: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-28 および図 1-29 で、 プログラム可能なフラグはそれぞれのしきい値設定に基づいてアサート /ディアサート さ

れ、 EMPTY/FULL フラグとの依存や関連はあ り ません。

X-Ref Target - Figure 1-28

図 1‐28: EMPTY および PROGEMPTY のディアサート /アサート  レイテンシ(共通クロック  FIFO の場合)

WRCLK, RDCLK

WREN

EMPTY

PROGEMPTY

RDEN

EMPTY/PROGEMPTYAssertion Latency

EMPTY/PROGEMPTYDeassertion Latency

X17180-012617

X-Ref Target - Figure 1-29

図 1‐29: FULL および PROGFULL のディアサート /アサート  レイテンシ(共通クロック  FIFO の場合)

WRCLK, RDCLK

FULL

PROGFULL

WREN

FULL/PROGFULLDeassertion Latency

RDEN

FULL/PROGFULLAssertion Latency

X17181-012617

UltraScale アーキテクチャ  メモリ  リソース 72UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 73: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

直列および並列カスケード接続による  FIFO 深さの拡張

直列カスケード接続

UltraScale™ アーキテクチャ デバイスには、 FIFO を直列にカスケード接続するこ とによ り、 ロジッ ク リ ソースを使

用せずに FIFO の深さを拡張する機能があ り ます。 このカスケード機能をハード ウェアで利用できるよ うに、 専用の

配線およびロジッ クが追加されています。 FIFO を直列にカスケード接続して深さを拡張する機能は、 FIFO18E2 プ

リ ミ ティブと FIFO36E2 プリ ミ ティブでサポート されており、 2 つ以上の FIFO をカラム全体まで接続できます (ただ

し、 カラムの途中に PCIe® が割り込むなど、 多少の制約がある )。 FIFO を直列にカスケード接続する場合、 最初の

FIFO (書き込み側インターフェイスを持つ FIFO) を CASCADE_ORDER = FIRST と し、 最後の FIFO (読み出しイン

ターフェイスを持つ FIFO) を CASCADE_ORDER = LAST と し、 それ以外の FIFO はすべて CASCADE_ORDER =

MIDDLE とする必要があ り ます。 CASCADE_ORDER = FIRST または MIDDLE に設定した FIFO は、

FIRST_WORD_FALL_THROUGH = TRUE に設定する必要があ り ます。 CASCADE_ORDER = LAST に設定した FIFO

は、 FWFT モードにも標準モードにも設定できます。 これらブロッ ク間のハンドシェイ クおよび読み出し /書き込み

インターフェイスはすべて FIFO 制御ロジッ クが処理します。 ただし、 直列にカスケード接続したすべての FIFO に

ついて、 RDCLK および WRCLK ピンは定められた方法で接続する必要があ り ます。 すなわち、 最初の FIFO の

WRCLK 入力には必ずユーザーの WRCLK を使用するこ と、最後の FIFO の RDCLK 入力には必ずユーザーの RDCLK

を使用するこ と、 そしてその他のクロ ッ ク入力はすべてこれら 2 つのクロ ッ クのうち高速な方に接続するこ とが必

要です。FIFO プリ ミ ティブの WRCLK と RDCLK を同じクロ ッ ク入力 (同じクロ ッ ク バッファー ソース) に接続して

FIFO を共通クロ ッ ク FIFO に設定するこ とで、 FIFO を通過する際のレイテンシを抑えるこ とができます。 FIFO は

REGISTERED または UNREGISTERED モードに設定できます。 REGISTERED モードでは性能が最大化しますが、

WRCLK および RDCLK のフラグがディアサート されるまでのレイテンシが大き くな り ます。 FIFO のリセッ トが必

要な場合は、 アプ リ ケーシ ョ ンで FIFO の RST ピンを 1 つのリセッ ト ネッ トに接続する必要があ り ます。 リセッ ト

フラグの RDRSTBUSY と WRRSTBUSY は FIFO 制御ロジッ クによって自動的には処理されないため、 これらを OR

接続するなど必要に応じてアプリ ケーシ ョ ンで監視する必要があ り ます。

UltraScale アーキテクチャ  メモリ  リソース 73UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 74: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-30 に、 3 つの FIFO を直列にカスケード接続した例を示します。

重要:直列カスケード モードでは、 マルチプレクサー制御信号は自動で設定され、 アクセスできません。

X-Ref Target - Figure 1-30

図 1‐30: FIFO の直列カスケード接続

BRAM0OptionalRegister

DIN0

REGISTERED

0

1

0

1

0

1

BRAM1OptionalRegister

CASDIN

REGISTERED

0

1

0

1

0

1

CASDOUT

BRAM2OptionalRegister

CASDIN

FIFOWrite

Interface

FIFOReadInterface

REGISTERED

CASCADE_ORDER = LAST

0

1

0

1

0

1 DOUT

CASCADE_ORDER = MIDDLE

CASDOUT

CASCADE_ORDER = FIRST

X17316-012617

UltraScale アーキテクチャ  メモリ  リソース 74UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 75: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

FIFO には、 カスケード データ専用の 4 つのピン CASDIN、 CASDINP、 CASDOUT、 CASDOUTP 以外に、 直列カス

ケード接続をサポートするための制御ピンが 4 つあり ます。 これらのピンは、 次のよ うに接続します。

• CASNXTEMPTY 出力: CASCADE_ORDER = FIRST または MIDDLE に設定した FIFO からカスケード チェーンの

次の FIFO へ EMPTY 信号をカスケード出力するためのピンです。 CASNXTEMPTY は、 カスケード チェーンの

次の FIFO (CASCADE_ORDER = MIDDLE または LAST) の CASPRVEMPTY 入力に接続します。 次の FIFO は、

この入力に基づいてこの FIFO が EMPTY かど うか (読み出しが可能かど うか) を判断します。

• CASPRVEMPTY 入力: CASCADE_ORDER = MIDDLE または LAST に設定した FIFO へカスケード チェーンの直

前の FIFO から EMPTY 信号をカスケード入力するためのピンです。 CASPRVEMPTY は、 カスケード チェーン

の直前の FIFO (CASCADE_ORDER = FIRST または MIDDLE) の CASNXTEMPTY 出力に接続します。

CASPRVEMPTY = 0 なら、 現在の FIFO は直前の FIFO からデータ ワードを転送できる と判断します。

• CASPRVRDEN 出力: CASCADE_ORDER = MIDDLE または LAST に設定した FIFO からカスケード チェーンの直

前の FIFO へ RDEN 信号をカスケード出力するためのピンです。 CASPRVRDEN は、 カスケード チェーンの直前

の FIFO (CASCADE_ORDER = FIRST または MIDDLE) の CASNXTRDEN 入力に接続し、 これら 2 つの FIFO 間

のデータ ワード転送のうち、 いつ直前の FIFO から読み出しを実行するかを示します。

• CASNXTRDEN 入力: CASCADE_ORDER = FIRST または MIDDLE に設定した FIFO へ、 カスケード チェーンの

次の FIFO から RDEN 信号をカスケード入力するためのピンです。 CASNXTRDEN は、 カスケード チェーンの

次の FIFO (CASCADE_ORDER = MIDDLE または LAST) の CASPRVRDEN 出力に接続します。

並列カスケード接続

ブロ ッ ク RAM の標準/パイプライン データ出力カスケード モードに基づき、 複数の FIFO を並列モードでカスケー

ド接続できます。 この場合、 ブロ ッ ク RAM モード と同じマルチプレクサー ピンを利用できます。 このカスケード

モードは、 FIFO18E2 と FIFO36E2 の両方でサポート されます。 並列モードでは追加のユーザー ロジッ クが必要で、

カスケード チェーンの各 FIFO の読み出し /書き込みインターフェイスおよびマルチプレクサー制御のためのロジッ

クをアプ リ ケーシ ョ ンで適切に作成する必要があ り ます。

CASCADE_ORDER = PARALLEL の場合、 その FIFO のカスケード データのマルチプレクサーを制御するための

FIFO 入力が 4 つ追加されます。 これらの入力は、 ブロ ッ ク RAM の同等のピン CASOREGIMUX と

CASOREGIMUXEN (パイプライン レジスタ カスケード マルチプレクサー制御用)、 および CASDOMUX と

CASDOMUXEN (出力カスケード マルチプレクサー制御用) と同じです。 このモードでは、 直列カスケード接続専用

の制御ピン CASNXTEMPTY、 CASPRVEMPTY、 CASNXTRDEN、 CASPRVRDEN は利用できません。

重要: カスケード入力マルチプレクサーを利用するには、 CASCADE_ORDER = PARALLEL に設定する必要があり ます。

UltraScale アーキテクチャ  メモリ  リソース 75UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 76: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

図 1-31 に、 3 つの FIFO を並列にカスケード接続した例を示します。

重要: CASOREGIMUX および CASOREGIMUXEN 信号は、REGISTER_MODE = DO_PIPELINE と した場合のみ利用で

きます。

X-Ref Target - Figure 1-31

図 1‐31: FIFO の並列カスケード接続

OptionalRegister

FIFO2

DO

EN FFDO

EN FF

DIN2 0

1

0

1

0

1

CASDOMUX CASDOMUXEN

CASOREGIMUX CASOREGIMUXEN

CASDO

DOUT

CASCADE_ORDER = PARALLEL

DO_PIPELINE

FIFOWrite

Interface

FIFOReadInterface

OptionalRegister

FIFO1

DO

EN FFDO

EN FF

DIN1 0

1

0

1

0

1

CASDO

CASCADE_ORDER = PARALLEL

DO_PIPELINE

FIFOWrite

Interface

OptionalRegister

FIFO0

DO

EN FFDO

EN FF

DIN0 0

1

0

1

0

1

CASCADE_ORDER = PARALLEL

DO_PIPELINE

FIFOWrite

Interface

X17317-012617

UltraScale アーキテクチャ  メモリ  リソース 76UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 77: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ビルト イン  エラー訂正

概要

シンプル デュアル ポート モードの RAMB36E2 は、8 ビッ トのハミ ング コード エラー訂正を追加した 72 ビッ ト幅の

512x64 RAM と して構成できます。 このエラー訂正動作はユーザーから透過的です。

8 つの保護ビッ ト (ECCPARITY) は書き込み動作ごとに生成され、 64 ビッ トのデータ と共にメモ リに格納されます。

この ECCPARITY ビッ トは、 読み出し中にシングル ビッ ト エラーの訂正や、 ダブルビッ ト エラーの検出 (訂正は行

わない) に使用されます。 また、 ECCPARITY ビッ トは、 WRCLK の立ち上がりエッジでメモリへ書き込まれ、 FPGA

ロジッ クへ出力されます。 ECCPARITY 出力ビッ トに利用可能な、 オプシ ョ ンの出力レジスタはあ り ません。

1 回の読み出し動作で 72 ビッ トのデータ (64 ビッ トのデータ と 8 ビッ トのパリティ ) がメモ リから読み出され、ECC

デコーダーに入り ます。 ECC デコーダーは、 読み出しの結果 (エラーなし、 シングル ビッ ト エラーの訂正、 ダブル

ビッ ト エラーの検出) を示す 2 種類のステータス出力 (SBITERR および DBITERR) を生成します。 標準 ECC モード

では、 読み出し動作によって DOUT の出力データは訂正されますが、 メモ リ アレイ内のエラーは修正されません。

FMAX を向上させるため、 データ出力 (DOUT)、 SBITERR、 DBITERR には DO_REG 属性で制御されるオプシ ョ ンの

レジスタを使用できます。 これは、 ブロ ッ ク RAM におけるオプシ ョ ン レジスタ と同様です。 ECC パイプライン ス

テージを 1 段追加する と、 さ らに FMAX を高めるこ とができます。

ECC コンフ ィギュレーシ ョ ン オプシ ョ ンは、 シンプル デュアル ポート モード 72 (64/8) ビッ ト幅の 36Kb ブロ ッ ク

RAM (RAMB36E2) または 72 ビッ ト幅の 36Kb FIFO (FIFO36E2) で使用可能です。 読み出し と書き込みの幅は、 いず

れも 72 ビッ トにする必要があ り ます。 RAMB36E2 には、 エラーを挿入する機能があ り ます。 RAMB36E2 には、 現

在読み出し中のデータが格納されているアドレスを読み出すリードバッ ク機能があ り ます。 この機能を利用する と、

ビッ ト エラーを訂正したり、 今後のアクセスに備えてそのアドレスの内容を無効にするこ と も容易です。 FIFO36E2

は WRITE_WIDTH と READ_WIDTH を共に 72 に設定した標準 ECC モードをサポート しており、 エラー挿入機能も

あ り ます。 FIFO36E2 は、 読み出し中のアドレス位置の出力には対応していません。

ブロ ッ ク RAM の ECC も、 SDP モード と同じよ うに READ_FIRST、 WRITE_FIRST、 NO_CHANGE の各モードをサ

ポート します。

ECC モード

標準 ECC モード (EN_ECC_READ = TRUE、 EN_ECC_WRITE = TRUE) では、 エンコーダーとデコーダーの両方が使

用できます。 1 回の書き込みで 64 ビッ トのデータ と ECC で生成された 8 ビッ トのパリティがメモ リに格納されま

す。 外部パリティ ビッ トは無視されます。 読み出しでは、 デコード された 64 ビッ トのデータ と 8 ビッ トのパリティ

の計 72 ビッ ト を読み出し、 DOUT のデータに対してパリティ チェッ クを実行します。

72 ビッ ト シンプル デュアル ポート モードの RAMB36E2 と 72 ビッ ト モードの FIFO36E2 で外部から利用できるよ

うに、 エンコーダーとデコーダーには個別に (独立して) アクセスできます。 エンコーダーを個別に使用するには、

DIN ポートからデータを送信して ECCPARITY 出力ポート をサンプルします。 デコーダーを個別に使用するには、

エンコーダーを無効にしてデータをブロッ ク RAM に書き込み、 ブロ ッ ク RAM から訂正済みデータ とステータス

ビッ ト を読み出します。 81ページの 「ブロ ッ ク RAM および FIFO の ECC に関する属性」 を参照してください。

UltraScale アーキテクチャ  メモリ  リソース 77UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 78: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

デコーダーは、 次の 2 つの方法で使用できます。

• 標準の ECC モードでデコーダーを使用するには、 EN_ECC_WRITE = TRUE、 EN_ECC_READ = TRUE と設定し

ます。

• デコード専用モードで ECC を使用するには、 EN_ECC_WRITE = FALSE、 EN_ECC_READ = TRUE と設定しま

す。 DIN のデータ とユーザーが生成したパリティが 8 つの DINP ポートに現れます。 データはエンコード されま

せん。 読み出し動作は DOUT のデータを リードバッ ク し、 このデータに対してデコーダー パリティ チェッ クを

実行します。

エンコーダーは、 次の 2 つの方法で使用できます。

• 標準の ECC モードでエンコーダーを使用するには、 EN_ECC_WRITE = TRUE、 EN_ECC_READ = TRUE と設定

します。

• エンコード専用モードで ECC を使用するには、 EN_ECC_WRITE = TRUE、 EN_ECC_READ = FALSE と設定しま

す。 DIN にデータが入力される と、 すべての書き込み動作において DIN のデータを ECC でエンコード した値が

パリティ ビッ トに格納されます。 読み出し動作は、 エンコード機能を実行せずこれら 8 ビッ ト を読み出します。

ECC モードを使用する場合のブロ ッ ク RAM の機能は次のよ うになり ます。

• ブロ ッ ク RAM ポートのアドレス、 ク ロ ッ ク、 イネーブル入力は独立していますが、 1 つのポートが書き込み専

用ポートに、 も う 1 つのポートが読み出し専用ポートになり ます (シンプル デュアル ポート )。

• DOUT は、 エラー訂正後の読み出しデータを表します。

• DOUT の値は、 次のアクティブな読み出しまで有効なまま保持されます。

• 異なる読み出し /書き込みアドレスに対しては同時にデコード とエンコードを実行できますが、 同じ読み出し /書

き込みアドレスに対してはデコード とエンコードを同時実行できません。

• ECC コンフ ィギュレーシ ョ ンの場合、 ブロ ッ ク RAM は READ_FIRST、 WRITE_FIRST、 NO_CHANGE モードの

いずれかになり ます。 詳細は、 第 1章の 「アドレス競合」 を参照してください。

UltraScale™ アーキテクチャ デバイスには ECC パイプライン モードがあ り ます。 これは、 オプシ ョ ンの出力レジス

タに追加された機能です。 これらのレジスタを利用してデコーダーの動作をパイプライン処理にするこ とで、 ラ ッ

チ モードでの最大動作周波数 (FMAX) と Clock-to-Out が向上させるこ とができます。 ECC パイプライン モードでは、

ブロ ッ ク RAM から現在のアドレスを読み出しながら同時に前のアドレスをデコードするため、 レイテンシがクロ ッ

クの 1 サイクル分増加します。 ECC パイプライン レジスタにはユーザー アクセス可能な ENABLE 制御があ り ます

が、 リセッ ト制御はあ り ません。 ブロ ッ ク RAM のリセッ ト ピン RSTRAM および RSTREG をアサート しても このレ

ジスタには影響せず、 レジスタには既に取り込んだデータが残り ます。 FIFO の設定を EN_ECC_PIPE = TRUE とする

と、 FIFO コン ト ローラーは常に ECC パイプライン レジスタおよび関連する ECCPIPECE ピンを自動的に管理しま

す。 FIFO の実質的な読み出し深さは 1 ワード増加し、 読み出しクロ ッ クから書き込みフラグ EMPTY/PROGEMPTY

がディアサート されるまでのレイテンシも ク ロ ッ クの 1 サイクル分増えます。 ただし、 読み出し実行から DOUT ま

でのレイテンシは変わり ません。

UltraScale アーキテクチャ  メモリ  リソース 78UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 79: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM ECC アーキテクチャの概略図

図 1-32 に、 ECC モード時におけるブロ ッ ク RAM の概略図を示します。

X-Ref Target - Figure 1-32

図 1‐32: ブロック  RAM ECC の概略図

wraddr 9

Data In

EN_ECC_WRITE

EN_ECC_READ

EN_ECC_READ

Data Out

Parity Out

rdaddr 9

64

64

64

DIN[63:0]

DOUT[63:0]

0

1

64

64

RDADDR[8:0]

WRADDR[8:0]

8DOUTP[7:0]

RDADDRECC[8:0]

8ECCPARITY[7:0]

1INJECTDBITERR

1INJECTSBITERR

8

8

DINP[7:0] 8

8

0

1

0

1

81

0

1

0

11

DO_REG

0

164

Q D

DBITERR

DO_REG

0

11

Q D

SBITERR

DO_REG

0

11

Q D

DO_REG

0

18

9

Q D

DO_REG

0

1 Q D

ECCPIPECE

EN_ECC_PIPE

ENQ D

Block RAM 512 x 72

64-bitECC

Encode

Decode and Correct

ECCPIPECE

EN_ECC_PIPE

ENQ D

ECCPIPECE

EN_ECC_PIPE

ENQ D

X17318-012617

UltraScale アーキテクチャ  メモリ  リソース 79UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 80: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM および FIFO ECC プリ ミテ ィブ

RAMB36E2 と FIFO36E2 を ECC モードで使用する場合の入力/出力ピンは、ブロ ッ ク RAM および FIFO プリ ミ ティブ

の表に示したものと同じです。 これらの表に示したピン以外に、 ブロッ ク RAM および FIFO プリ ミ ティブにはどち

らも ECC モード専用のピンがあ り ます。 表 1-29 および表 1-30 に、 ECC モードでのみ使用するピンとその説明を示

します。 FIFO は標準 ECC モードのみサポート し、 RDADDRECC 出力はサポート しません。

ブロック  RAM および FIFO ECC のポート

表 1-29 に、 ブロ ッ ク RAM および FIFO の ECC に関連する I/O ポート名とその説明を示します。

表 1‐29: RAMB36E2 および FIFO32E2 の ECC 関連ポート名と説明

ポート名 信号の説明

INJECTSBERR ECC を使用する場合に、 シングル ビッ ト エラーを挿入します。 書き込み中にアサート

される と、 ブロ ッ ク RAM の特定のビッ ト位置にシングル ビッ ト エラーが生成されま

す。 このビッ ト位置を読み出すと、 ブロ ッ ク RAM の ECC ロジッ クによってエラーが訂

正されます。 シングル ビッ ト エラーはビッ ト位置 DIN[30] に生成されます。

INJECTDBERR ECC を使用する場合に、 ダブル ビッ ト エラーを挿入します。 書き込み中にアサート さ

れる と、 ブロ ッ ク RAM の特定のビッ ト位置にダブル ビッ ト エラーが生成されます。

このビッ ト位置を読み出すと、 ブロ ッ ク RAM の ECC ロジッ クによってダブル ビッ ト

エラーが示されます。 INJECTSBERR と INJECTDBERR が同時にアサート された場合は、

ダブル ビッ ト エラーが挿入されます。 ダブル ビッ ト エラーはビッ ト位置 DI[30] と

DI[62] に生成されます。

ECCPARITY[7:0] ECC エンコーダー出力バスは、 エンコード専用モードで使用されます。 この出力はカス

ケード接続できません。

SBERR ECC シングル ビッ ト エラーの出力ステータス。ブロ ッ ク RAM および FIFO を ECC カス

ケード接続モードで使用する場合は、 この表のカスケード接続専用ピンも参照してくだ

さい。 (1)

DBERR ECC ダブル ビッ ト エラーの出力ステータス。 ブロ ッ ク RAM および FIFO を ECC カス

ケード接続モードで使用する場合は、 この表のカスケード接続専用ピンも参照してくだ

さい。 (1)

RDADDRECC[8:0] ECC 読み出しアドレス。 現在読み出し中のデータへのアドレス ポインター。 データ とそ

のアドレスが同じクロ ッ ク サイ クルで出力されます。 この出力は FIFO ではサポート さ

れておらず、 カスケード接続できません。

CASINSBITERR カスケード接続モードでの ECC シングル ビッ ト エラー入力。 前のブロ ッ ク RAM/FIFO

からの SBERR エラー ビッ ト ステータスをカスケード入力します。

CASOUTSBITERR カスケード接続モードでの ECC シングル ビッ ト エラー出力。 SBERR エラー ビッ ト ス

テータスを次のブロ ッ ク RAM/FIFO へカスケード出力します。

CASINDBITERR カスケード接続モードでの ECC ダブル ビッ ト エラー入力。 前のブロ ッ ク RAM/FIFO か

らの DBERR エラー ビッ ト ステータスをカスケード入力します。

CASOUTDBITERR カスケード接続モードでの ECC ダブル ビッ ト エラー出力。 DBERR エラー ビッ ト ス

テータスを次のブロ ッ ク RAM/FIFO へカスケード出力します。

UltraScale アーキテクチャ  メモリ  リソース 80UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 81: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

ブロック  RAM および FIFO の ECC に関する属性

表 1-30 に、 ブロ ッ ク RAM および FIFO の ECC に関する属性を示します。

ECC モードの動作

ECC の動作モードには、 標準、 エンコード専用、 デコード専用の 3 つがあ り ます。 標準 ECC モードではエンコー

ダーとデコーダーの両方が使用されます。

標準モードの ECC

属性での設定

EN_ECC_READ = TRUE

EN_ECC_WRITE = TRUE

エンコード専用 ECC

属性での設定

EN_ECC_READ = FALSE

EN_ECC_WRITE = TRUE

ECCPIPECE EN_ECC_PIPE = TRUE の場合の ECC パイプライン レジスタ ク ロ ッ ク イネーブル。ECC

モードで EN_ECC_READ = TRUE の場合のみ利用できます。 FIFO では、 この機能は

FIFO ロジッ クによって制御され、 アプリ ケーシ ョ ンからは利用できません。

注記:1. ブロ ッ ク RAM の ECC ロジッ クにインプ リ メン ト されたハミ ング コードは、 エラー検出なし、 DOUT でのシングル ビッ ト エラーの検出と訂正 (メモ リ内容は訂正されない)、ダブル ビッ ト エラーの検出 (訂正はされない) とい う 3 つの状態のいずれかを検出します。 この状態は、 SBITERR および DBITERR によって示されます。

表 1‐30: ECC に関する  RAMB36E2 および FIFO32E2 の属性

属性名 タイプ 値 デフォルト 説明

EN_ECC_WRITE ブール型 TRUE、 FALSE FALSE ECC エンコーダーを有効にするには

TRUE に設定します。

EN_ECC_READ ブール型 TRUE、 FALSE FALSE ECC デコーダーを有効にするには

TRUE に設定します。

EN_ECC_PIPE ブール型 TRUE、 FALSE FALSE

注記:1. UltraScale デバイス (UltraScale+ ではない) では、 WRITE_FIRST または NO_CHANGE モードで EN_ECC_READ/WRITE および

EN_ECC_PIPE が TRUE に設定される と、 ENADDRENA と RDADDRCHANGEA は TRUE に設定できません。 つま り、WRITE_FIRST または NO_CHANGE モードでは、 ENADDRENA と RDADDRCHANGEA および EN_ECC_READ と EN_ECC_PIPE とい う属性の組み合わせを同時に TRUE に設定するこ とはできません。

表 1‐29: RAMB36E2 および FIFO32E2 の ECC 関連ポート名と説明 (続き)

ポート名 信号の説明

UltraScale アーキテクチャ  メモリ  リソース 81UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 82: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 1 章: ブロック  RAM リソース

エンコード専用 ECC での読み出し

エンコード専用モード ECC の場合、読み出しは通常のブロ ッ ク RAM と同様です。64 ビッ トのデータが DOUT[63:0]

に現れ、 8 ビッ トのパリティが DOUTP[7:0] に現れます。 シングル ビッ ト エラーは訂正されず、 エラー フラグの

SBITERR および DBITERR がアサート されるこ とはあ り ません。

デコード専用 ECC

属性での設定

EN_ECC_READ = TRUE

EN_ECC_WRITE = FALSE

デコード専用の ECC モードでは、 ECC デコーダーのみが有効で、 ECC エンコーダーは無効です。 デコード専用モー

ドは、 ECC デコーダーの機能テス ト用にシングル ビッ ト またはダブル ビッ トのエラーを挿入するために使用しま

す。 ECC パリティ ビッ トは、 DINP[7:0] を使用して外部から与える必要があ り ます。

64 ビッ ト  ワード用 8 ビッ ト  パリテ ィの作成

ブロ ッ ク RAM の外部ロジッ ク (多数の XOR 回路など) を使用する と、64 ビッ ト ワード用の 8 ビッ トのパリティが作

成できます。 ただし、 エンコード専用 ECC モードの場合は、 任意の 64 ビッ ト ワードを別のブロ ッ ク RAM に書き込

むこ とによ り、 追加ロジッ クを使用せずに 8 ビッ トのパリティが自動的に作成されます。 エンコード された 8 ビッ

トの ECC パリティ データはただちに使用可能とな り、 72 ビッ ト ワード全体を読み出すこ とができます。

ブロック  RAM ECC の VHDL および Verilog テンプレート

VHDL および Verilog テンプレートは、 Vivado Design Suite に含まれています。

UltraScale アーキテクチャ  メモリ  リソース 82UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 83: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2章

UltraRAM リソース

UltraRAM の概要

UltraRAM は、 UltraScale+™ デバイスで利用可能な 2 ポート、 シングル ク ロ ッ クの同期メモ リです。 UltraRAM はカ

ラム状アーキテクチャ と互換性があるため、 複数の UltraRAM をインスタンシエート し、 1 つの UltraRAM カラム内

でデバイスの高さまで直接カスケード接続できます。1 つのクロ ッ ク領域内の 1 カラムに 16 個の UltraRAM ブロ ッ ク

が含まれます。 UltraRAM を搭載したデバイスでは、 複数の UltraRAM カラムが分散して配置されています。

UltraScale+ ファ ミ リのほとんどのデバイスが UltraRAM ブロ ッ クを搭載しています。 利用可能な UltraRAM のデバイ

ス別の容量については、 『UltraScale アーキテクチャおよび製品データシート : 概要』 (DS890) [参照 1] を参照して くだ

さい。

UltraRAM ブロ ッ クは、 デバイスの 1 つまたは複数のカラムに配列される、 288Kb、 シングル ク ロ ッ クの同期メモ リ

ブロ ッ クです。 各クロ ッ ク領域の 1 カラムに 16 個の UltraRAM ブロ ッ クがあ り ます。 専用のカスケード配線を使用

して、 複数の UltraRAM ブロッ クをカラム内でカスケード接続できます。 この接続には、 デバイスの高さ と、 スタ ッ

ク ド シ リ コン インターコネク ト (SSI) デバイスの SLR (Super Logic Region) 以外に制限はあ り ません。 さ らに、 少量

のロジッ ク リ ソースを使用するだけで、 複数のカラムをカスケード接続できます。 UltraRAM ブロ ッ クを適切にパイ

プライン処理すれば、 UltraRAM ブロ ッ クをカスケード接続するこ とによるタイ ミ ングのペナルティは生じません。

UltraRAM は、 柔軟性に優れた高集積度のメモ リ構築ブロ ッ クです。 各 UltraRAM ブロ ッ クは最大 288Kb のデータを

格納する、 4Kx72 メモ リ ブロ ッ ク と して構成できます。 UltraRAM の容量はブロ ッ ク RAM の 8 倍です。 ブロ ッ ク

RAM と同様、 デバイスには複数の UltraRAM カラムが分散して配置されています。 UltraRAM は 2 ポートで、 両ポー

トが 4Kx72 ビッ トすべてをアドレス指定します。 各ポートは、 独立して 1 ク ロ ッ ク サイクルで 1 回の読み出しまた

は 1 回の書き込みを実行できます。 ただし、 内部では SRAM アレイはシングル ポート メモ リ セルを使用します。

デュアル ポート動作は、 1 サイクルでポート A の動作に続いてポート B の動作を実行するこ とによって実現してい

ます。 つま り、 シングル ク ロ ッ ク入力は両方のポートに共通です。 各ポートは、 1 サイクルで書き込みまたは読み

出しを 1 回だけ実行できます。 書き込みを実行する場合、 読み出し出力は変更されず、 以前の値を保持します。

288Kb ブロッ クをカスケード接続するこ とで、 よ り ビッ ト数の多いメモ リ を簡単にインプリ メン トできます。 カス

ケード接続に関連する配線の大部分は、 UltraRAM カラム内にあ り ます。 したがって、 汎用インターコネク トはほと

んど、 またはまったく必要あ り ません。 また、 UltraRAM ブロ ッ クを適切にパイプライン処理すれば、 配線によるタ

イ ミ ングのペナルティは生じません。

UltraRAM は、 2 つのポート インターフェイスそれぞれにつき最大 4 つのパイプライン ステージを含みます。 独立型

の非カスケード モードでは、 UltraRAM を 1 ~ 4 ク ロ ッ ク サイ クルのレイテンシで構成できます。 ただし通常は、必

要なレイテンシはターゲッ ト周波数によ り ますが、 1 ~ 3 サイ クルです。 カスケード モードのレイテンシは、

UltraRAM チェーンのサイズ、 ターゲッ ト周波数やその他の制約条件によって決ま り ます。 同様に、 Clock-to-Out は、

選択した出力レジスタによって異なり ます。 特定のデザイン インプリ メンテーシ ョ ンに適したパフォーマンスと

Clock-to-Out タイ ミ ングを判断するには、 Vivado ツールを使用します。

UltraScale アーキテクチャ  メモリ  リソース 83UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 84: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM の主な機能

UltraRAM には次の主な機能があ り ます。

• 1 ブロ ッ クで 288Kb の記憶容量

• デュアル ポート、 4K x 72、 シングル ク ロ ッ ク同期メモ リ

• UltraRAM をカスケード接続してよ り大規模なブロ ッ クを構築可能。 UltraRAM は、 適切な入力および出力を下

段の UltraRAM から上段の UltraRAM にカスケード接続できる専用配線リ ソースを備えています。

• 両方のポート上の訂正符号 (ECC) によるシングル ビッ ト エラー検出/訂正とダブル ビッ ト エラー検出

• ス リープ省電力機能

• UltraRAM ブロ ッ ク チェーン内でス リープ モードを自動でオン/オフする自動省電力機能

• 入力、 出力、 カスケード接続パス上のパイプライン フ リ ップフロ ップ (オプシ ョ ン)

• 出力をすべて 0 にリセッ トするデータ出力リセッ ト機能

• x72 のシングル ポート幅

• コンテンツ ク リ ア機能

• 電源投入時またはデバイス リセッ ト時、 UltraRAM メモ リはすべて 0 に初期化されます。 ユーザー定義の INIT

属性はあ り ません。 したがって、 SRAM アレイの内容をユーザー定義の値に初期化するこ とはできません。

UltraRAM のカスケード接続

UltraRAM には次のカスケード機能があ り ます。

• UltraRAM は、 大部分の入力および出力を下段の UltraRAM から上段の UltraRAM にカスケード接続できる専用

配線リ ソースを備えています。

• UltraRAM をカスケード接続する場合は、 11 ビッ トの MSB アドレスにビルト イン アドレス デコード ロジッ ク

を使用して、 読み出しおよび書き込みの内部イネーブル信号を自動生成します。

• カラム内のカスケード接続は下段から上段への一方向のみサポート され、 汎用インターコネク ト リ ソースを使

用せずにインプ リ メン トできます。

• 複数のカラムをカスケード接続するには、 各カラムの入口点と出口点にデバイス配線と、 場合によってはロ

ジッ ク リ ソースを使用する必要があ り ます。

UltraScale アーキテクチャ  メモリ  リソース 84UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 85: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM のエラー訂正符号

1 つの UltraRAM ブロッ クにつき 1 つの 64 ビッ ト ECC ブロッ クを備えています。 エンコード機能とデコード機能を個

別に使用するこ と もできます。 ECC モードではエラーの挿入が可能です。 UltraRAM には次の ECC 機能があり ます。

• 両ポートで ECC エンコード /デコード (オプシ ョ ン)

• シングル ビッ ト エラーおよびダブル ビッ ト エラー検出

• シングル ビッ ト エラー訂正

• シングル ビッ ト エラーまたはダブル ビッ ト エラー挿入機能

• ECC デコード ロジッ クの後のパイプライン レジスタによる性能の最大化 (オプシ ョ ン)

ブロック  RAM と  UltraRAM の違い

ブロ ッ ク RAM と UltraRAM には次の主な違いがあ り ます。

• UltraRAM は 1 つのシングル ク ロ ッ ク入力を使用する完全な同期メモ リで、 ブロ ッ ク RAM とは異なり、 独立し

たクロ ッ ク インターフェイスを直接サポート しません。

• 1 つの 4Kx72 UltraRAM または複数クロ ッ ク ド メ インのポート幅の設定変更はサポート していません。 ただし、

UltraRAM ブロ ッ クのバイ ト ライ ト イネーブル機能を使用して、 メモ リ構造自体の外部でポート幅の設定に対

応するこ とは可能です。

• UltraRAM は、 1 サイクルで各ポートの読み出しまたは書き込みをサポート します。

• ブロ ッ ク RAM の SDP (Simple Dual Port) モード と TDP (True Dual Port) モードは、 UltraRAM には直接適用されま

せん。 UltraRAM ポートの動作は、 TDP ではなく、 SDP のスーパーセッ ト と見なされます。

• 固定された読み出し動作。 UltraRAM には、 ユーザー定義可能な READ_FIRST、 WRITE_FIRST、 NO_CHANGE

モードはあ り ません。

• 静的データ カスケード。 UltraRAM には、 動的カスケード入力/出力のマルチプレクサー制御はあ り ません。

• UltraRAM にはアドレスの競合は発生しません。

• UltraRAM はデータ、 アドレス、 制御信号をカスケード接続できますが、 データ ラインのみをカスケード接続す

るこ とはできません。

• UltraRAM 省電力モード (SLEEP) では、 ユーザーの操作は無視され、 セッ ト アップ/ホールド タイム要件が満た

されている限り、 内容が破損するこ とはあ り ません。 ス リープ省電力モードでは、 メモ リ内容は維持されます。

• 自動省電力は、 アクティビティに基づいてウェークアップおよびス リープ モードを独立して制御する自動ス

リープ機能を使用して実現されます。 このモードは、 1 つのカラム内または複数のカラムにわたってカスケード

接続された多数の UltraRAM の動作を予測するこ とによ り、 チェーン内の選択された UltraRAM ブロッ クのス

リープ モードのオン/オフを動的に切り替えます。 シングル UltraRAM ブロッ ク アプリ ケーシ ョ ンで、 この機能

を用いて省電力効果を得るには、 多くの非アクティブ サイクルが必要になり ます。

重要: UltraRAM のアドレス ピン、 イネーブル ピン、 ス リープ ピンでセッ ト アップ/ホールド タイム違反が生じない

よ うにします。 これらのセッ ト アップ/ホールド タイムに違反する と、 ライ ト イネーブルが Low であっても、

UltraRAM のデータ内容が破損するこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 85UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 86: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

ブロック  RAM と  UltraRAM の比較

表 2-1 に、 ブロ ッ ク RAM と UltraRAM の主な機能の比較を示します。

表 2‐1: ブロック  RAM と  UltraRAM の比較

機能 ブロック  RAM UltraRAM

ク ロ ッキング 2 ク ロ ッ ク シングル ク ロ ッ ク

ビルト イン FIFO あ り なし

データ幅 設定可能 (1、 2、 4、 9、 18、 36、 72) 固定 (72 ビッ ト )

モード SDP および TDP 2 ポート、 各ポート を個別に読み出しまたは

書き込み可能 (SDP のスーパーセッ ト )

ECC 64 ビッ ト SECDED

64 ビッ ト SDP でのみサポート (ポート A に

1 つの ECC デコーダー、ポート B に 1 つの

ECC エンコーダー )

64 ビッ ト SECDED

各ポートが完全な ECC ロジッ ク セッ ト を備

え、 独立した ECC 動作が可能 (両方のポー

トに ECC エンコーダーおよびデコーダー )

カスケード接続 • カスケード出力のみ (入力のカスケード

接続はロジッ ク リ ソースによってイン

プリ メン ト )

• シングル ク ロ ッ ク領域内のカスケード

接続

• 入力と出力両方のカスケード接続 (グロー

バル アドレス デコーディングを使用)

• 複数のクロ ッ ク領域にわたるカラム内の

カスケード接続

• 最小限のロジッ ク リ ソースを使用して複

数のカラムをカスケード接続

省電力機能 手動信号アサートによる 1 モード 手動信号アサートによる 1 モード

UltraScale アーキテクチャ  メモリ  リソース 86UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 87: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM のプリ ミテ ィブ

UltraRAM のライブラ リ プリ ミ ティブ URAM288 および URAM288_BASE は、 すべての UltraRAM コンフ ィギュレー

シ ョ ンの基本構築ブロッ クです。 URAM288 プリ ミ ティブは、 カスケード接続と ECC を含むすべての可能なコン

フ ィギュレーシ ョ ンをサポート します。 URAM288_BASE プリ ミ ティブは URAM288 プリ ミ ティブのサブセッ トで、

カスケード接続機能のないシングル UltraRAM ブロ ッ ク インスタンスをサポート します。図 2-1 に URAM288_BASE

プリ ミ ティブ、 図 2-2 に URAM288 プリ ミ ティブを示します。

X-Ref Target - Figure 2-1

図 2‐1: UltraRAM の URAM288_BASE プリ ミテ ィブ

X17182-012617

UltraScale アーキテクチャ  メモリ  リソース 87UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 89: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

図 2-3 に、 カスケード接続を使用しないシングル UltraRAM ブロ ッ クの簡略図を示します (1 ポートのみ表示)。

X-Ref Target - Figure 2-3

図 2‐3: カスケード接続を使用しないシングル UltraRAM ブロックの簡略図 (1 ポートのみ表示)

X17184-060616

UltraScale アーキテクチャ  メモリ  リソース 89UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 90: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM のポート名と説明

このセクシ ョ ンでは、 UltraRAM のポート名について説明します。

カスケード接続ポートなし

表 2-2 に、 カスケード ポート以外の UltraRAM ポート名および説明を示します。

表 2‐2: カスケード接続ポートなし

ポート名 説明

CLK UltraRAM のクロ ッ ク ソース。

SLEEP 動的パワー ゲーティング制御。

ポート  A 入力

ADDR_A[22:0] ポート A アドレス。 ADDR_A[22:12] はカスケード モードでのみ使用します。

EN_A ポート A イネーブル。 ブロ ッ ク RAM メモ リ コアへの読み出し /書き込みアクセスを

有効または無効にします。

RDB_WR_A ポート A 読み出しまたは書き込みモード入力選択。 読み出し (BAR) はアクティブ

Low です (0 = 読み出し、 1 = 書き込み)。

BWE_A[8:0] ポート A バイ ト ライ ト イネーブル。

DIN_A[71:0] ポート A 書き込みデータ入力。

INJECT_SBITERR_A ポート A の書き込み時のシングル ビッ ト エラー挿入。

INJECT_DBITERR_A ポート A の書き込み時のダブル ビッ ト エラー挿入。

OREG_CE_A ポート A の SRAM アレイ コア ブロ ッ ク読み出し出力パイプライン レジスタの CLK

イネーブル。

OREG_ECC_CE_A ポート A の ECC デコーダー出力パイプライン レジスタの CLK イネーブル。

RST_A ポート A の出力レジスタの非同期または同期リセッ ト。 リセッ トが CE よ り も優先

されます。

ポート  A 出力

DOUT_A[71:0] ポート A 読み出しデータ出力。

RDACCESS_A ポート A 読み出しステータス出力。

SBITERR_A ポート A シングル ビッ ト エラー出力ステータス。

DBITERR_A ポート A ダブル ビッ ト エラー出力ステータス。

ポート  B 入力

ADDR_B[22:0] ポート B アドレス。 ADDR_B[22:12] はカスケード モードでのみ使用します。

EN_B ポート B イネーブル。 ブロ ッ ク RAM メモ リ コアへの読み出し /書き込みアクセスを

有効または無効にします。

BWE_B[8:0] ポート B バイ ト ライ ト イネーブル。

DIN_B[71:0] ポート B 書き込みデータ入力。

INJECT_SBITERR_B ポート B の書き込み時のシングル ビッ ト エラー挿入。

INJECT_DBITERR_B ポート B の書き込み時のダブル ビッ ト エラー挿入。

UltraScale アーキテクチャ  メモリ  リソース 90UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 91: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

カスケード接続ポート

表 2-3 に、 UltraRAM カスケード接続ポート名および説明を示します。 入力ポートは下段のブロ ッ クからカスケード

接続され、 出力ポートは上段のブロ ッ クにカスケード接続されます。

OREG_CE_B ポート B の SRAM アレイ コア ブロッ ク読み出し出力パイプライン レジスタの CLK

イネーブル。

OREG_ECC_CE_B ポート B の ECC デコーダー出力パイプライン レジスタの CLK イネーブル。

RST_B ポート B の出力レジスタの非同期または同期リセッ ト。 リセッ トが CE よ り も優先

されます。

ポート  B 出力

DOUT_B[71:0] ポート B 読み出しデータ出力。

RDACCESS_B ポート B 読み出しステータス出力。

SBITERR_B ポート B シングル ビッ ト エラー出力ステータス。

DBITERR_B ポート B ダブル ビッ ト エラー出力ステータス。

表 2‐3: カスケード接続ポート

ポート名 説明

ポート  A カスケード入力

CAS_IN_ADDR_A[22:0] ポート A 入力アドレス入力。 カスケード モードでは、 このポート を

CAS_OUT_ADDR_A に接続します。

CAS_IN_EN_A ポート A 入力イネーブル入力。 カスケード モードでは、 このポート を

CAS_OUT_EN_A に接続します。

CAS_IN_BWE_A[8:0] ポート A 入力書き込みモードのポート バイ ト ライ ト イネーブル。 カスケード モー

ドでは、 このポート を CAS_OUT_BWE_A に接続します。

CAS_IN_RDB_WR_A ポート A 入力読み出し /書き込みモード選択。 カスケード モードでは、 このポート

を CAS_OUT_RDB_WR_A に接続します。

CAS_IN_DIN_A[71:0] ポート A 入力書き込みモード データ入力。 カスケード モードでは、 このポート を

CAS_OUT_DIN_A に接続します。

CAS_IN_DOUT_A[71:0] ポート A 入力読み出しモード データ出力。 カスケード モードでは、 このポート を

CAS_OUT_DOUT_A に接続します。

CAS_IN_RDACCESS_A ポート A 入力読み出しモード読み出しステータス。 カスケード モードでは、 この

ポート を CAS_OUT_RDACCESS_A に接続します。

CAS_IN_SBITERR_A ポート A 入力読み出しモードのシングル ビッ ト エラー フラグ入力。 カスケード

モードでは、 このポート を CAS_OUT_SBITERR_A に接続します。

CAS_IN_DBITERR_A ポート A 入力読み出しモードのダブル ビッ ト エラー フラグ入力。 カスケード モー

ドでは、 このポート を CAS_OUT_SBITERR_A に接続します。

表 2‐2: カスケード接続ポートなし  (続き)

ポート名 説明

UltraScale アーキテクチャ  メモリ  リソース 91UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 92: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

ポート  A カスケード出力

CAS_OUT_ADDR_A[22:0] ポート A 出力アドレス。 カスケード モードでは、 このポート を CAS_IN_ADDR_A

に接続します。

CAS_OUT_EN_A ポート A 出力イネーブル。 カスケード モードでは、 このポート を CAS_IN_EN_A に

接続します。

CAS_OUT_RDB_WR_A ポート A 出力読み出し /書き込みモード選択。 カスケード モードでは、 このポート

を CAS_IN_RDB_WR_A に接続します。

CAS_OUT_BWE_A[8:0] ポート A 出力書き込みモードのバイ ト ライ ト イネーブル。 カスケード モードでは、

このポート を CAS_IN_BWE_A に接続します。

CAS_OUT_DIN_A[71:0] ポート A 出力書き込みモード データ入力。 カスケード モードでは、 このポート を

CAS_IN_DIN_A に接続します。

CAS_OUT_DOUT_A[71:0] ポート A 出力読み出しモード データ出力。 カスケード モードでは、 このポート を

CAS_IN_DOUT_A に接続します。

CAS_OUT_RDACCESS_A ポート A 出力読み出しモードの読み出しステータス フラグ。 カスケード モードで

は、 このポート を CAS_IN_RDACCESS_A に接続します。

CAS_OUT_SBITERR_A ポート A 出力読み出しモードのシングル ビッ ト エラー フラグ。 カスケード モード

では、 このポート を CAS_IN_SBITERR_A に接続します。

CAS_OUT_DBITERR_A ポート A 出力読み出しモードのダブル ビッ ト エラー フラグ。 カスケード モードで

は、 このポート を CAS_IN_DBITERR_A に接続します。

ポート  B カスケード入力

CAS_IN_ADDR_B[22:0] ポート B 入力アドレス入力。 カスケード モードでは、 このポート を

CAS_OUT_ADDR_B に接続します。

CAS_IN_EN_B ポート B 入力イネーブル入力。 カスケード モードでは、 このポート を

CAS_OUT_EN_B に接続します。

CAS_IN_BWE_B[8:0] ポート B 入力書き込みモードのポート バイ ト ライ ト イネーブル。 カスケード モー

ドでは、 このポート を CAS_OUT_BWE_B に接続します。

CAS_IN_RDB_WR_B ポート B 入力読み出し /書き込みモード選択。 カスケード モードでは、 このポート

を CAS_OUT_RDB_WR_B に接続します。

CAS_IN_DIN_B[71:0] ポート B 入力書き込みモード データ入力。 カスケード モードでは、 このポート を

CAS_OUT_DIN_B に接続します。

CAS_IN_DOUT_B[71:0] ポート B 入力読み出しモード データ出力。 カスケード モードでは、 このポート を

CAS_OUT_DOUT_B に接続します。

CAS_IN_RDACCESS_B ポート B 入力読み出しモード読み出しステータス。 カスケード モードでは、 この

ポート を CAS_OUT_RDACCESS_B に接続します。

CAS_IN_SBITERR_B ポート B 入力読み出しモードのシングル ビッ ト エラー フラグ入力。 カスケード

モードでは、 このポート を CAS_OUT_SBITERR_B に接続します。

CAS_IN_DBITERR_B ポート B 入力読み出しモードのダ ブル ビッ ト エラー フラグ入力。 カスケード モー

ドでは、 このポート を CAS_OUT_DBITERR_B に接続します。

表 2‐3: カスケード接続ポート  (続き)

ポート名 説明

UltraScale アーキテクチャ  メモリ  リソース 92UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 93: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM ポート信号

クロック  – CLK

各ポートは両方のポートのシングル ク ロ ッ ク ピンと完全に同期します。 すべてのポートの入力ピンにはセッ ト アッ

プ タイムがあ り、 この CLK ピンを基準と します。 また、 出力データ バスの Clock-to-Out も CLK ピンを基準と しま

す。 ク ロ ッ クの極性は設定変更可能で、 デフォルトでは立ち上がりエッジとなっています。

パワー ゲーティング イネーブル入力 – SLEEP

動的パワー ゲーティング機能を使用するこ とで、 長時間にわたってあま り使用されていないメモ リのスタティ ッ ク

消費電力を削減できます。

SLEEP 入力がアサート され、 セッ ト アップ タイムおよびホールド タイム要件が満たされている と、 メモ リは次のク

ロ ッ ク サイ クルでス リープ モードへの移行を開始します。 SLEEP 入力は、 UltraRAM の読み出し /書き込み動作を無

効にします。 その結果、 読み出しまたは書き込みを実行しよ う と しても、 ウェークアップ タイム要件が満たされる

まで無視されます。 ただし、 セッ ト アップ/ホールド タイム要件を満たす必要があ り ます。 ス リープ モードでは、

SRAM アレイおよび OREG パイプライン レジスタの出力は、 次のクロ ッ クの立ち上がりエッジに同期して 0 にリ

セッ ト されます。 その他のオプシ ョ ンのパイプライン レジスタは、 ス リープ モードの影響を受けません。 したがっ

て、 UltraRAM の最終的なデータ出力値は、 ほかのパイプライン レジスタがどのよ うに使用されているかによって、

以前の値に保たれるか、 または 0 にリセッ ト されます。 OREG レジスタの出力は、 (ウェークアップ タイム後の) 最

初の有効な読み出しデータがパイプラインを通過するまで 0 に保たれます。

ポート  B カスケード出力

CAS_OUT_ADDR_B[22:0] ポート B 出力アドレス。 カスケード モードでは、 このポート を CAS_IN_ADDR_B

に接続します。

CAS_OUT_EN_B ポート B 出力イネーブル。 カスケード モードでは、 このポート を CAS_IN_EN_B に

接続します。

CAS_OUT_BWE_B[8:0] ポート B 出力書き込みモードのバイ ト ライ ト イネーブル。 カスケード モードでは、

このポート を CAS_IN_BWE_B に接続します。

CAS_OUT_RDB_WR_B ポート B 出力読み出し /書き込みモード選択。 カスケード モードでは、 このポート

を CAS_IN_RDB_WR_B に接続します。

CAS_OUT_DIN_B[71:0] ポート B 出力書き込みモード データ入力。 カスケード モードでは、 このポート を

CAS_IN_DIN_B に接続します。

CAS_OUT_DOUT_B[71:0] ポート B 出力読み出しモード データ出力。 カスケード モードでは、 このポート を

CAS_IN_DOUT_B に接続します。

CAS_OUT_RDACCESS_B ポート B 出力読み出しモードの読み出しステータス フラグ。 カスケード モードで

は、 このポート を CAS_IN_RDACCESS_B に接続します。

CAS_OUT_SBITERR_B ポート B 出力読み出しモードのシングル ビッ ト エラー フラグ。 カスケード モード

では、 このポート を CAS_IN_SBITERR_B に接続します。

CAS_OUT_DBITERR_B ポート B 出力読み出しモードのダブル ビッ ト エラー フラグ。 カスケード モードで

は、 このポート を CAS_IN_DBITERR_B に接続します。

表 2‐3: カスケード接続ポート  (続き)

ポート名 説明

UltraScale アーキテクチャ  メモリ  リソース 93UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 94: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

SLEEP ピンは、 RAM のパワー ゲーティングを制御します。 SLEEP = 1 の場合、 SRAM ペリ フェラル ロジッ クの電源

を切断して消費電力を削減します。 SRAM アレイのデータは維持されますが、 読み出しや書き込みはできません。

SLEEP からのウェークアップ時間は 2 ク ロ ッ ク サイクルで、 SEU のパフォーマンスには影響を与えません。 このピ

ンの極性は設定可能ではあ り ません (アクティブ High)。

ウェークアップ時間は、 SLEEP のディアサート後に EN ピンをアサートできるタイ ミ ングを定義します。 上で述べ

たウェークアップ ク ロ ッ ク サイクルは、 オプシ ョ ンのパイプラインが有効になっていないこ とが前提です。

注意: OREG が使用され (OREG = TRUE) 読み出し動作直後に SLEEP 動作が続く (SLEEP がアクティブになる ) 場合、

OREG パイプライン ステージへの電源が即時に切断されるため、 読み出しデータが UltraRAM ブロ ッ クに留ま り ま

す。 データが出力で確認されなくても、 RDACCESS 信号はアサート されます。

アドレス バス – ADDR_A、 ADDR_B

23 ビッ ト アドレス バスは、 読み出しまたは書き込みを実行する メモ リ セルを選択します。 下位 12 ビッ ト を使用し

て、各 UltraRAM の 4K 位置の中のメモ リ セルを選択します。上位 11 ビッ トは、複数の UltraRAM をカスケード接続

してビッ ト数の多いメモ リ アレイを形成するのに使用される UltraRAM を選択します。 各 UltraRAM はビルト イン

コンパレータを備えています。 このコンパレータは、 この上位 11 ビッ ト アドレス と固有の SELF_ADDR 属性を比較

して、 その UltraRAM が選択されたかど うかを判断します。 SELF_MASK 属性は、 この比較に使用される 11 ビッ ト

アドレスの数を定義します。

イネーブル – EN_A、 EN_B

イネーブル ピンはポートの読み出しおよび書き込み機能を制御します。 ポートのイネーブル ピンが非アクティブの

と き、 出力ピンは前の状態を維持し、 データはメモ リ セルに書き込まれません。 イネーブルの極性は反転可能で、

デフォルトではアクティブ High となっています。 ただし、 リセッ ト時または省電力モード (ス リープ) では、 出力は

0 にリセッ ト されます。

読み出し /書き込み選択 – RDB_WR_A、 RDB_WR_B

このピンが 1 の場合は書き込みを選択し、 0 の場合は読み出しを選択します。 極性は反転可能です。 各ポートは、

1 サイ クルで書き込みまたは読み出しを 1 回だけ実行できます。 書き込みが実行される と き、 読み出し出力は以前の

値を保持します。

バイ ト  ライ ト  イネーブル – BWE_A、 BWE_B

バイ ト ライ ト イネーブル (BWE) は 9 ビッ ト バスです。 BWE_MODE_A/B 属性の設定によっては、 ビッ ト 9 (BWE[8])

は使用しません。 PARITY_INTERLEAVED モードでは、 下位 8 ビッ トのみが使用されます。 DIN バイ ト 0 ~ 7 の各バ

イ トのシングル パリティ ビッ トは、 DIN バスの MSB 内の関連するパリティ ビッ トに対応し、 そのビッ トに書き込ま

れます。 このモードは、 カスタム パリティ方式をサポート します。 PARITY_INDEPENDENT モードでは、 9 個の

BWE ビッ トが DIN バスの 1 バイ トに対応します。 表 2-4 に、 書き込み中に BWE_A/B ビッ ト を使用してそれに対応す

る DIN ビッ ト を有効にする方法を詳し く示します。 読み出し中は、 バイ ト ライ ト イネーブル入力は無視されます。

重要: ECC モードが正常に機能するには、 すべてのバイ ト ライ ト イネーブル ビッ トが 1 に設定されている必要があ

り ます。

UltraScale アーキテクチャ  メモリ  リソース 94UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 95: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

データ入力バス – DIN_A、 DIN_B

データ入力バスは、 UltraRAM に書き込むデータ値を供給します。 このデータバスは 72 ビッ ト幅で、 下位 64 ビッ ト

はデータに使用され、 上位 8 ビッ トはパリ ティ または通常のデータ入力に使用されます。

シングル ビッ ト /ダブル ビッ ト  エラー入力挿入 – INJECT_SBITERR_A、INJECT_DBITERR_A、 INJECT_SBITERR_B、 INJECT_DBITERR_B

エラー入力挿入ピンは、 テス ト目的で書き込みデータ入力にシングル ビッ ト エラーまたはダブル ビッ ト エラーを

発生させます。

OREG パイプライン  ステージのレジスタ  イネーブル – OREG_CE_A、 OREG_CE_B

このレジスタ イネーブル ピンは、 最初のオプシ ョ ン出力レジスタを制御します。 OREG_A/B 属性を使用してこのレ

ジスタを有効にし、 対応する CE 入力が High になる と、 読み出しデータがクロ ッ クの立ち上がりエッジでこのレジ

スタに格納されます。 CE 入力の極性は設定可能ではあ り ません (アクティブ High)。

表 2‐4:バイ ト  ライ ト  イネーブル (URAM288)

BWE_MODE_A/B BWE_A/B DIN_A/B

パリテ ィ  インターリーブド  モード

PARITY_INTERLEAVED BWE_A/B[7] DIN_A/B[71,63:56]

PARITY_INTERLEAVED BWE_A/B[6] DIN_A/B[70,55:48]

PARITY_INTERLEAVED BWE_A/B[5] DIN_A/B[69,47:40]

PARITY_INTERLEAVED BWE_A/B[4] DIN_A/B[68,39:32]

PARITY_INTERLEAVED BWE_A/B[3] DIN_A/B[67,31:24]

PARITY_INTERLEAVED BWE_A/B[2] DIN_A/B[66,23:16]

PARITY_INTERLEAVED BWE_A/B[1] DIN_A/B[65,15:8]

PARITY_INTERLEAVED BWE_A/B[0] DIN_A/B[64,7:0]

パリテ ィ独立モード

PARITY_INDEPENDENT BWE_A/B[8] DIN_A/B[71:64]

PARITY_INDEPENDENT BWE_A/B[7] DIN_A/B[63:56]

PARITY_INDEPENDENT BWE_A/B[6] DIN_A/B[55:48]

PARITY_INDEPENDENT BWE_A/B[5] DIN_A/B[47:40]

PARITY_INDEPENDENT BWE_A/B[4] DIN_A/B[39:32]

PARITY_INDEPENDENT BWE_A/B[3] DIN_A/B[31:24]

PARITY_INDEPENDENT BWE_A/B[2] DIN_A/B[23:16]

PARITY_INDEPENDENT BWE_A/B[1] DIN_A/B[15:8]

PARITY_INDEPENDENT BWE_A/B[0] DIN_A/B[7:0]

UltraScale アーキテクチャ  メモリ  リソース 95UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 96: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

OREG_ECC パイプライン  ステージのレジスタ  イネーブル – OREG_ECC_CE_A、OREG_ECC_CE_B

このレジスタ イネーブル ピンは、 ECC オプシ ョ ン出力レジスタを制御します。 OREG_ECC_A/B 属性を使用してこ

のレジスタに有効にし、 対応する CE 入力が High になる と、 読み出しデータがクロ ッ クの立ち上がりエッジでこの

レジスタに格納されます。 CE 入力の極性は設定可能ではあ り ません (アクティブ High)。

リセッ ト  – RST_A、 RST_B

リセッ ト動作には 2 つのモードがあ り ます。 同期リセッ ト モード と非同期リセッ ト モードは、 RST_MODE_A/B 属

性で制御されます。 デフォルトの同期リセッ ト モードでは、 すべての出力フ リ ップフロ ップおよびラ ッチは同期で

0 にリセッ ト されます。 非同期リセッ ト モードでは、 すべての出力フ リ ップフロ ップおよびラ ッチは CLK エッジを

待たずに 0 にリセッ ト されます。 この動作によって UltraRAM メモ リ セルが変化するこ とはなく、 も う 1 つのポート

での書き込みにも影響を与えません。 どちらの信号も極性は設定変更可能で、 デフォルトではアクティブ High と

なっています。

UltraRAM マ ト リ クスで使用する場合、同期/非同期リセッ ト モードにかかわらず、 マ ト リ クスのすべての UltraRAM

の入力で同時に RST 入力をアサートおよびディアサートする必要があ り ます。 したがって、 リセッ ト動作から N サ

イクル (N はマ ト リ クスの読み出しレイテンシ) 後に新しい読み出しデータが利用可能になり ます。 ただし読み出し

動作と リセッ ト動作が重複する場合、 N サイクルよ り前に DOUT がリセッ ト値から新しい読み出し値に変化するこ

とがあ り ます。 これは、 入力パイプラインの IREG_PRE/IREG_CAS がリセッ トの影響を受けないため、 リセッ ト中

またはリセッ ト前の読み出しに対応する読み出し出力が出力に伝搬するためです。 つま り、 この動作はマ ト リ クス

内の REG_CAS の位置によっても異なり ます。 REG_CAS の位置が変わる と、 リセッ ト後の DOUT の動作も変化しま

す。 動作の違いの例は、 「 リセッ ト付き読み出し /書き込み波形 (オプシ ョ ンの出力パイプライン レジスタあ り /なし )」

の図 2-11 および図 2-12 に示したタイ ミ ング図を参照してください。

重要:非同期リセッ ト モードの場合、 UltraRAM にはこの入力とディアサート エッジを同期させるビルト イン シンク

ロナイザーはあ り ません。 UltraRAM をカスケード接続する場合は、 (通常は階層の上位レベルにインプリ メン ト さ

れる ) 共通のシンクロナイザーが必要です。 ファブリ ッ クでの入力は、 UltraRAM に入る前に適切に同期化する必要

があ り ます。

データ出力バス – DOUT_A、 DOUT_B

読み出しでは、 最後のアクティブなク ロ ッ ク エッジでアドレス バスによ り指定されたメモ リ セルの内容が、 データ

出力バスに送信されます。 書き込み中や動作のない時は、 データ出力バスは変化せず、 前のサイ クルのデータが保

持されます。 これは、 シングル UltraRAM およびカスケード /マ ト リ クス コンフ ィギュレーシ ョ ンの両方に当てはま

り ます。 同様に、 カスケード接続された UltraRAM では、 カスケード チェーンの最後の (出口点の) 読み出し出力も

以前のデータを保持します。 データバスは 72 ビッ ト幅で、下位 64 ビッ トはデータに使用され、上位 8 ビッ トはパリ

ティ または通常のデータ入力に使用されます。

読み出しステータス出力 – RDACCESS_A、 RDACCESS_B

UltraRAM は、 読み出しの実行が終了したこ とを示す読み出しアクセス ステータス出力 (RDACCESS_A/B) を生成し、

新しいデータが出力で利用可能になるタイ ミ ングを示します。 この出力は、 それに対応する読み出しデータ と同じ

レイテンシを持ちます。 UltraRAM を複数のカラムにわたってカスケード接続する場合は、 この出力を最上位で使用

して、 適切な読み出しデータを選択できます。 この出力が High の場合は、 その UltraRAM またはカスケード チェー

ンの下段の UltraRAM で読み出しが実行されたこ とを示します。 カスケード接続された UltraRAM のカラムを複数接

続する場合は、 カラム カスケードのパイプライン処理を担う CLB レジスタが必要になるこ とがあ り ます。

UltraScale アーキテクチャ  メモリ  リソース 96UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 97: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

RDACCESS 信号は、 マ ト リ クス (行列) 状に配置される UltraRAM のサポート を主な目的と しています。 この信号は、

マ ト リ クス コンフ ィギュレーシ ョ ンの UltraRAM ブロ ッ クのうち、 どの UltraRAM が特定のクロ ッ ク サイクルでア

クティブにデータを読み出しているかを識別します。 その後アプリ ケーシ ョ ンは、 最終的な出力に伝搬する必要が

ある適切な読み出しデータを決定できます。

図 2-4 に、 RDACCESS 信号を使用して読み出し出力データを適切に選択してマ ト リ クスの出力データ パスを制御す

るユース ケースを示します。 回路では、 非アクティブ出力のデータが保持されます。 マ ト リ クスのエン ト リ ポイン

ト (性能上の理由によるファブリ ッ ク内の水平パイプラインなど) 間の入力遅延と出力側の同一遅延 (図 2-4 に示す遅

延/パイプライン ブロッ ク ) を一致させるこ とが重要です。

ECC エラー ビッ ト出力 – SBITERR_A、 DBITERR_A、 SBITERR_B、 DBITERR_B

ECC エラー ビッ ト出力は、 EN_ECC_RD_A/B 属性が TRUE に設定されている場合に有効です。 これらの出力は、

ECC デコーダーがシングル ビッ ト エラーまたはダブル ビッ ト エラーを検出した場合にアサート されます。

反転可能な制御信号ピン

5 本の制御ピン (CLK、 EN_A/B、 RST_A/B) は個別に反転できます。 EN および RST 制御信号はアクティブ High また

はアクティブ Low のどちらにでも設定でき (デフォルトはアクティブ High)、 アクティブ ク ロ ッ クは立ち上がりエッ

ジにも立ち下がりエッジにも設定できます (デフォルトは立ち上がりエッジ)。 反転には、 追加のロジッ ク リ ソース

は必要あ り ません。

X-Ref Target - Figure 2-4

図 2‐4: RDACCESS 信号のユース ケース

X17170-012617

UltraScale アーキテクチャ  メモリ  リソース 97UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 98: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM の属性

表 2-5 に UltraRAM の属性を示します。

表 2‐5: UltraRAM の属性

属性 値 デフォルト タイプ 説明

AUTO_SLEEP_LATENCY 3 ~ 15 8 10 進数UltraRAM をス リープ モードにす

るレイテンシ要件を設定します。

AVG_CONS_INACTIVE_CYCLES 10 ~ 100000 10 10 進数

ス リープ モードの連続した非ア

クティブ サイ クルの平均値を設

定します。 ス リープ モードの場

合、 いずれのポートでも読み出

し /書き込み動作が発生しない、

平均サイ クル数と して定義され

ます。 消費電力レポート ツール

で使用されます。 ユーザーが設

定します。

BWE_MODE_APARITY_INTERLEAVED、PARITY_INDEPENDENT

PARITY_INTERLEAVED 文字列

ポート A のバイ ト ラ イ ト制御

(1 バイ ト /1 ビッ ト パリティ また

は 8 バイ ト /1 バイ ト パリティ )

です。

BWE_MODE_BPARITY_INTERLEAVED、PARITY_INDEPENDENT

PARITY_INTERLEAVED 文字列

ポート B のバイ ト ラ イ ト制御

(1 バイ ト /1 ビッ ト パリティ また

は 8 バイ ト /1 バイ ト パリティ )

です。

CASCADE_ORDER_ANONE、 FIRST、

MIDDLE、 LASTNONE 文字列

ポート A のカスケード チェーン

における UltraRAM ブロ ッ クの

位置を指定します。

CASCADE_ORDER_BNONE、 FIRST、

MIDDLE、 LASTNONE 文字列

ポート B のカスケード チェーン

における UltraRAM ブロ ッ クの

位置を指定します。

EN_AUTO_SLEEP_MODE FALSE、 TRUE FALSE 文字列

UltraRAM の省電力モードへの

自動的移行を有効にするかど う

かを指定します。

EN_ECC_RD_A FALSE、 TRUE FALSE 文字列

ポート A の ECC デコーダーを

データ読み出しに使用するかど

うかを指定します。

EN_ECC_RD_B FALSE、 TRUE FALSE 文字列

ポート B の ECC デコーダーを

データ読み出しに使用するかど

うかを指定します。

EN_ECC_WR_A FALSE、 TRUE FALSE 文字列

ポート A の ECC エンコーダーを

データ書き込みに使用するかど

うかを指定します。

EN_ECC_WR_B FALSE、 TRUE FALSE 文字列

ポート B の ECC エンコーダーを

データ書き込みに使用するかど

うかを指定します。

UltraScale アーキテクチャ  メモリ  リソース 98UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 99: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

IREG_PRE_A FALSE、 TRUE FALSE 文字列

ポート A のデータ、 アドレス、

制御入力パイプライン レジスタ

を挿入します。

IREG_PRE_B FALSE、 TRUE FALSE 文字列

ポート B のデータ、 アドレス、

制御入力パイプライン レジスタ

を挿入します。

IS_CLK_INVERTED FALSE、 TRUE FALSE 文字列 CLK を反転します (オプシ ョ ン)。

IS_EN_A_INVERTED FALSE、 TRUE FALSE 文字列ポート A の EN を反転します

(オプシ ョ ン)。

IS_EN_B_INVERTED FALSE、 TRUE FALSE 文字列ポート B の EN を反転します

(オプシ ョ ン)。

IS_RDB_WR_A_INVERTED FALSE、 TRUE FALSE 文字列ポート A の RDB_WR をします

(オプシ ョ ン)。

IS_RDB_WR_B_INVERTED FALSE、 TRUE FALSE 文字列ポート B の RDB_WR を反転し

ます (オプシ ョ ン)。

IS_RST_A_INVERTED FALSE、 TRUE FALSE 文字列ポート A のリセッ ト入力を反転

します (オプシ ョ ン)。

IS_RST_B_INVERTED FALSE、 TRUE FALSE 文字列ポート B のリセッ ト入力を反転

します (オプシ ョ ン)。

MATRIX_ID カスタム ラベル NONE 文字列

カスケード チェーンまたはマ ト

リ クスに属するすべての

UltraRAM ブロ ッ クをタグ付け

するために消費電力レポート

ツールが使用するマ ト リ クス ID

名をカスタム ラベル (文字列) と

して指定します。 各マ ト リ クス

には異なる名前を割り当てま

す。 シングル UltraRAM インス

タンスにはラベルは必要あ り ま

せん。 消費電力レポート ツール

で使用されます。 ユーザーまた

は合成ツールが設定します。

NUM_URAM_IN_MATRIX 1 ~ 2048 1 10 進数

カスケード /マ ト リ クス サイズ

(マ ト リ クス内の UltraRAM の数)

を定義します。 特定マ ト リ クス

のインスタンスに帰属します。

シングル インスタンスの場合、

1 にセッ ト します。 消費電力レ

ポート ツールで使用されます。

ユーザーまたは合成ツールが設

定します。

表 2‐5: UltraRAM の属性 (続き)

属性 値 デフォルト タイプ 説明

UltraScale アーキテクチャ  メモリ  リソース 99UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 100: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

NUM_UNIQUE_SELF_ADDR_A 1 ~ 2048 1 10 進数

カスケード チェーンまたはマ ト

リ クス内の固有の

SELF_ADDR_A UltraRAM ブ

ロ ッ クの数を指定します。 通常

は、 カスケード チェーンまたは

マ ト リ クス内のブロ ッ ク数に相

当します。 ブロードキャス トの

場合、 共通の SELF_ADDR_A 設

定によ りその数は小さ くなる こ

とがあ り ます。 消費電力レポー

ト ツールで使用されます。 ユー

ザーまたは合成ツールが設定し

ます。

NUM_UNIQUE_SELF_ADDR_B 1 ~ 2048 1 10 進数

カスケード チェーンまたはマ ト

リ クス内の固有の

SELF_ADDR_B UltraRAM ブ

ロ ッ クの数を指定します。 通常

は、 カスケード チェーンまたは

マ ト リ クス内のブロ ッ ク数に相

当します。 ブロードキャス トの

場合、 共通の SELF_ADDR_B 設

定によ りその数は小さ くな り ま

す。 消費電力レポート ツールで

使用されます。 ユーザーまたは

合成ツールが設定します。

OREG_A FALSE、 TRUE FALSE 文字列

ポート A の SRAM アレイ出力パ

イプライン レジスタを挿入しま

す (オプシ ョ ン)。

OREG_B FALSE、 TRUE FALSE 文字列

ポート B の SRAM アレイ出力パ

イプライン レジスタを挿入しま

す (オプシ ョ ン)。

OREG_ECC_A FALSE、 TRUE FALSE 文字列

ポート A の ECC デコーダー出力

パイプライン レジスタを挿入し

ます (オプシ ョ ン)。

OREG_ECC_B FALSE、 TRUE FALSE 文字列

ポート B の ECC デコーダー出力

パイプライン レジスタを挿入し

ます (オプシ ョ ン)。

REG_CAS_A FALSE、 TRUE FALSE 文字列

ポート A のカスケード接続デー

タ入力/データ出力パイプライン

レジスタを挿入します。

REG_CAS_B FALSE、 TRUE FALSE 文字列

ポート B のカスケード接続デー

タ入力/データ出力パイプライン

レジスタを挿入します。

RST_MODE_A SYNC、 ASYNC SYNC 文字列ポート A のリセッ ト モードを指

定します。

表 2‐5: UltraRAM の属性 (続き)

属性 値 デフォルト タイプ 説明

UltraScale アーキテクチャ  メモリ  リソース 100UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 101: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

注記: URAM288_BASE プリ ミ ティブにはいずれのカスケード属性もあ り ません。

自動スリープのレイテンシ – AUTO_SLEEP_LATENCY

自動ス リープ モードは、 メモ リの使用状況に応じて SLEEP ピンの機能を自動的に利用します。 いつス リープに移行

し、 いつウェークアップするかを判断するために、 UltraRAM は RAM アクセスの発生頻度を予測します。

EN_AUTO_SLEEP_MODE 属性を TRUE に設定した場合、 イネーブル入力およびグローバル アドレス入力 (EN_A、

EN_B、 ADDR_A[22:12]、 ADDR_B[22:12]) の到着後、 AUTO_SLEEP_LATENCY 属性で定義されるクロ ッ ク サイクル

数以内にほかの入力が到着する必要があ り ます。 このルッ クアヘッ ド情報を使用して、 UltraRAM がいつス リープに

入るかを決定します。 この機能をインプリ メン トするためには、 EN_A/B および ADDR_A/B[22:12] は内部で遅延さ

れます。 イネーブル信号およびグローバル アドレス信号の到着後、 ほかの信号が到着するまでの時間を示すクロ ッ

ク サイ クル数は、 AUTO_SLEEP_LATENCY 属性によって 3 ~ 15 の範囲で設定されます。 したがって、 UltraRAM が

ス リープ モードに移行するには、 AUTO_SLEEP_LATENCY 属性の値で定義される最小限の非アクティブ ク ロ ッ ク

サイクルが連続して発生する必要があ り ます。

ス リープ サイ クル数は、 次の式で計算されます。

• 連続した非アクティブ サイクル数が AUTO_SLEEP_LATENCY の値よ り も小さい場合、ス リープ サイ クル数 = 0

になり ます。

• 連続した非アクティブ サイクル数が AUTO_SLEEP_LATENCY の値以上である場合、 連続したス リープ サイク

ル数 = 連続した非アクティブ サイクル数-3 になり ます。

• 非アクティブ サイクルは、いずれのポートから も読み出し /書き込みが発生しないサイクルと して定義されます。

たとえば、 非アクティブ状態が連続して 5 サイクル以上発生したと きにス リープ サイ クルを発生させるには、

AUTO_SLEEP_LATENCY の値を 5 に設定します。

RST_MODE_B SYNC、 ASYNC SYNC 文字列ポート B のリセッ ト モードを指

定します。

SELF_ADDR_A 11'h000 ~ 11'h7ff 11'h000 16 進数 ポート A の自己アドレス値です。

SELF_ADDR_B 11'h000 ~ 11'h7ff 11'h000 16 進数 ポート B の自己アドレス値です。

SELF_MASK_A 11'h000 ~ 11'h7ff 11'h7ff 16 進数ポート A の自己アドレス マスク

です。

SELF_MASK_B 11'h000 ~ 11'h7ff 11'h7ff 16 進数ポート B の自己アドレス マスク

です。

USE_EXT_CE_A FALSE、 TRUE FALSE 文字列

ポート A のすべての出力パイプ

ライン レジスタの CE ピンを内

部または外部で制御できるよ う

にします。

USE_EXT_CE_B FALSE、 TRUE FALSE 文字列

ポート B のすべての出力パイプ

ライン レジスタの CE ピンを内

部または外部で制御できるよ う

にします。

表 2‐5: UltraRAM の属性 (続き)

属性 値 デフォルト タイプ 説明

UltraScale アーキテクチャ  メモリ  リソース 101UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 102: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

自動ス リープ モードに入る と、OREG の出力は 1 ク ロ ッ ク サイ クル間だけ古い値を維持します。UltraRAM がいつス

リープ モードに移行するかに応じて、 このデータは次のサイクルまたはそれ以降に 0 にリセッ ト されます。 OREG

の後にほかのパイプライン レジスタが有効にされていない場合は、 最後の有効なクロ ッ ク サイクルの間、 このレジ

スタ出力読み出しデータを使用しなければなり ません。 ほかの連続したパイプライン レジスタがある場合は、 これ

らのパイプライン レジスタが最後の読み出しデータを保持します。

自動ス リープ モードは、 カスケード チェーンのサイズが大きい場合や、 チェーンのアクティ ビティがほとんどない

場合に効果的です。 この属性にはデフォルト値があ り ますが、 この機能で消費電力を効果的に削減できる設定値は、

アクティビティ、 レイテンシやほかのアプリ ケーシ ョ ン要件に応じて、 アプリ ケーシ ョ ンごとに決定する必要があ

り ます。 AUTO_SLEEP_LATENCY の値を小さ く しすぎる と、 UltraRAM のス リープと ウェークアップの頻度が高く

なって消費電力が増加します。 また、 値を大き く しすぎる と、 十分な省電力効果を得るこ とができません。

バイ ト  ライ ト  イネーブル モード  – BWE_MODE_[A|B]

この属性は、 バイ ト ラ イ ト イネーブル (BWE_[A/B]) 入力のデータおよびパリティの使用方法を指定します。 1 デー

タ バイ ト /1 パリティ ビッ ト モード (PARITY_INTERLEAVED) または 8 データ バイ ト /1 パリティ バイ ト モード

(PARITY_INDEPENDENT) を選択します。 詳細は、 「バイ ト ライ ト イネーブル – BWE_A、 BWE_B」 を参照して くだ

さい。

カスケード  チェーン  オーダー – CASCADE_ORDER_[A|B]

この属性は、 UltraRAM がカスケード接続に含まれるかど うかと、 カスケード チェーン内の UltraRAM の位置を指定

します。 値は、 NONE (デフォルト )、 FIRST、 MIDDLE、 LAST です。 各カラムの最初の UltraRAM はすべて FIRST

に設定し、各カラムの最後の UltraRAM はすべて LAST に設定します。中間の UltraRAM はすべて MIDDLE に設定し

ます。 詳細は、 「カスケード接続のユーザー属性」 を参照してください。

AVG_CONS_INACTIVE_CYCLES、 MATRIX_ID、 NUM_URAM_IN_MATRIX、および NUM_UNIQUE_SELF_ADDR_A|B 属性

これらの属性はデザインの機能に影響せず、 消費電力の見積も りおよびレポートに使用されます。 UltraRAM が合成

によって推論される場合、 これらの属性は Vivado ツールで自動的に設定されます。

推奨:手動でインスタンシエート した場合は、 正確な消費電力を算出するには実際の使用法を反映して設定する必要があ り ます。 このよ うに設定されないと、 消費電力の見積も りが不必要に悪い結果となり ます。

注記:ブロードキャス トのユース ケースでは、 SELF_MASK の設定が NUM_UNIQUE_SELF 属性に影響します。

ADDR_A/B[22:12] 入力はマ ト リ クス内の UltraRAM インスタンスで異なるこ とがあ り、 その一方で、 SELF_MASK 設

定はマ ト リ クス内の複数インスタンスで同じになるこ とがあ り ます。 図 2-8 に示す例を参照してください。

イネーブル自動スリープ モード  – EN_AUTO_SLEEP_MODE

このモードは、 自動的に消費電力を削減する自動ス リープ モードを有効にし、 アプリ ケーシ ョ ンによるス リープ

モードの制御を無効にします。 TRUE に設定する と、 ユーザーによって制御されるス リープ入力は無効になり ます。

代わりに UltraRAM が内部でス リープ モードのオン/オフを切り替え、自動的に消費電力を削減します。 UltraRAM の

ス リープ モードへの移行と終了の基準になるのは、 AUTO_SLEEP_LATENCY 属性で指定された非アクティブ ク

ロ ッ ク サイ クル数です。

注記: AUTO_SLEEP モードでは USE_EXT_CE_A/B を使用できません。 両方の属性を同時に TRUE にするこ とはでき

ません。

UltraScale アーキテクチャ  メモリ  リソース 102UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 103: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

イネーブル ECC ライ ト  – EN_ECC_WR_[A/B]

この属性は、 ECC エンコーダー (書き込み) を有効にするかど うかを指定します。

イネーブル ECC リード  – EN_ECC_RD_[A/B]

この属性は、 ECC エンコーダー (読み出し ) を有効にするかど うかを指定します。

入力レジスタ  ステージ (オプシ ョ ン) – IREG_PRE_[A|B]

この属性は、 UltraRAM 入力 EN/RDB_WR/BWE/ADDR/DIN/INJECT_SBITERR/INJECT_DBITERR それぞれの入力パ

イプライン レジスタを有効にするかど うかを指定します。 「カスケード レジスタ ステージ (オプシ ョ ン) –

REG_CAS_[A|B]」 の記載に該当しない限り、 IREG_PRE および REG_CAS は互いに両立しません。 図 2-5 を参照して

ください。

出力レジスタ  ステージ (オプシ ョ ン) – OREG_[A|B]

この属性は、 SRAM アレイ出力のパイプライン ステージを有効にするかど うかを指定します。

ECC 出力レジスタ  ステージ (オプシ ョ ン) – OREG_ECC_[A|B]

この属性は、 ECC デコード ロジッ クの ECC エラー /データ出力のパイプライン レジスタを有効にするかど うかを指

定します。

カスケード  レジスタ  ステージ (オプシ ョ ン) – REG_CAS_[A|B]

カスケード データ /制御/アドレス入力および出力のパイプライン レジスタ (IREG_CAS および OREG_CAS) を有効に

するかど うかを指定します。 これらのパイプライン ステージは、 UltraRAM の最大周波数を決める重要な役割を果た

します。 カスケード モードでは、 最大周波数の要件に応じて、 これらのレジスタをブロ ッ クごとに使用するか、 ま

たは数ブロ ッ クおきに使用する必要があ り ます。 CASCADE_ORDER 属性が MIDDLE または LAST に設定されてい

る場合を除いて IREG_PRE と REG_CAS は排他的にしか設定できませんが、 IREG_PRE レジスタはカスケード モー

ドでエラー挿入の入力 INJECT_S/DBITERR に使用できます。 その他すべての入力には REG_CAS を使用する必要が

あ り ます。 図 2-5 を参照してください。

リセッ ト  モード  – RST_MODE_[A|B]

RST_[A/B] が CLK に同期入力か非同期入力かを指定します。

自己アドレス – SELF_ADDR_[A|B]

この属性は、 UltraRAM の自己アドレスを指定します。 カスケード チェーン内の各 UltraRAM について固有の値でな

ければなり ません。 この値はカスケード チェーン内の各 UltraRAM のアドレスを指定します。 11 ビッ ト値で、

11'h000 ~ 11'h7fff の範囲で自由に指定できます。 詳細は、 「カスケード接続のユーザー属性」 を参照して くだ

さい。

UltraScale アーキテクチャ  メモリ  リソース 103UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 104: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

自己マスク値 – SELF_MASK_[A|B]

この属性は、 入力アドレスがカスケード チェーン内の UltraRAM と一致するかど うかを判断するために、 カスケー

ド接続アドレス (SELF_ADDR) 内で ADDR 入力と比較 (アドレス デコーディング) されるビッ ト数を指定します。

アドレス ビッ ト数は、 カスケード接続された UltraRAM の合計アドレス空間によって決定されます。 未使用のアド

レス ビッ トに対応する MSB ビッ トは、 1 に設定する必要があ り ます。 詳細は、 「カスケード接続のユーザー属性」

を参照してください。

外部 CE 使用 – USE_EXT_CE_[A|B]

この属性は、 非カスケード モードですべての出力パイプライン ステージの制御に外部 CE 入力を使用できるよ うにし

ます。 デフォルトでは、 内部で生成された CE を使用してすべてのパイプライン ステージを制御します。 この設定は

OREG_CAS レジスタ イネーブルには適用されません。 カスケード モードでは、 OREG_CAS レジスタ イネーブルは

UltraRAM によって自動的に制御されます。 外部 CE モードが有効の場合、 RDACCESS 出力信号は使用できません。

重要: カスケード モードでは、 USE_EXT_CE は使用できないため、 False に設定する必要があ り ます。 したがって、

カスケード モードでは、 外部 CE 入力 (OREG_CE および OREG_ECC_CE) は使用できません。 この属性は、

CASCADE_ORDER=NONE の場合にのみサポート されます。

デュアル ポート  SRAM アレイの動作

デュアル ポート 288Kb UltraRAM は、 288Kb の記憶領域と独立した 2 つのアクセス ポート A および B で構成されま

す。 2 つのポートはシングル ク ロ ッ ク入力を共有します。

各クロ ッ ク サイ クルで、 各ポートは互いに独立して読み出しまたは書き込みを実行できます。 読み出し /書き込みは

2 つのポートで自由に組み合わせるこ とができます。 読み出しおよび書き込みは常にクロ ッ クに同期します。 同じク

ロ ッ ク サイ クル内では、 常にポート A の動作が先に実行され、 続いてポート B の動作が実行されます。 したがっ

て、 2 つのポートが同じアドレス位置にアクセスしても、 データ アクセスの競合は発生しません。 各ポートは、 独

自のアドレス、 データ入力、 データ出力、 イネーブル、 書き込みイネーブルを備えています。

• 両方のポートが同じアドレスに対して読み出し と書き込みを実行する場合、 動作は次のよ うに定義されます

(表 2-6 参照)。

° ポート A が書き込み、 ポート B が読み出しを実行する場合は、 ポート B は新しいデータを読み出します。

° ポート A が読み出し、 ポート B が書き込みを実行する場合は、 ポート A は古いデータを読み出します。

° ポート A およびポート B が書き込みを実行する場合は、 ポート B の書き込みがポート A の書き込みを上書

きします。 ク ロ ッ ク サイクルの最後に、 メモ リはポート B の書き込みデータを格納します。

UltraScale アーキテクチャ  メモリ  リソース 104UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 105: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

読み出し

オプシ ョ ンのパイプライン レジスタが有効でないデフォルト モードでは、 読み出しに 1 つのクロ ッ ク エッジを使用

します。 読み出しアドレスが読み出しポートに取り込まれてから、 SRAM アクセス時間の後に、 格納されたデータ

が出力ラ ッチに読み込まれます。 オプシ ョ ンで追加の入力/出力レジスタを使用する場合は、 使用されるパイプライ

ン レジスタの数に応じて、 読み出しに追加のサイクルが必要になり ます。 読み出しデータは、 次の有効な読み出し

が行われるまで、 またはリセッ トによって出力が変化するまで、 出力上に保持されます。

書き込み

オプシ ョ ンの入力レジスタが有効でない限り、 書き込みに 1 つのクロ ッ ク エッジを使用します。 書き込みアドレス

は書き込みポートに取り込まれ、 入力データがメモ リに格納されます。 書き込み中は、 リセッ ト入力がアサート さ

れない限り、 読み出し出力は以前の値を保持します。

入力レジスタ  (オプシ ョ ン)

オプシ ョ ンのデータ、 アドレス、 制御入力レジスタ (IREG_PRE レジスタ ) を使用する と、 パイプライン処理におけ

る CLB フ リ ップフロ ップから配線遅延が削減され、 デザインのパフォーマンスが向上します。 データ、 アドレス、

制御信号のカスケード接続に、 オプシ ョ ンの入力レジスタ (IREG_CAS レジスタ ) を使用できます。 UltraRAM ブロ ッ

クのコンフ ィギュレーシ ョ ン (入力がカスケード接続されているかど うか) に応じて、 データ入力レジスタまたはカ

スケード入力レジスタを任意の時点で使用できます。 入力および出力カスケード レジスタは、 いずれも REG_CAS

属性で同時に有効になり ます。 個別にオン/オフを切り替えるこ とはできません。

出力レジスタ  (オプシ ョ ン)

オプシ ョ ンの出力レジスタを使用する と、 パイプライン処理における CLB フ リ ップフロ ップへの配線遅延が削減さ

れ、 デザインのパフォーマンスが向上します。 最初のオプシ ョ ンの出力レジスタ (OREG ステージ) は、 SRAM 配列

の読み出し直後に使用されます。 追加のオプシ ョ ンの出力レジスタは、 ECC デコード ロジッ ク (OREG_ECC ステー

ジ) およびカスケード ロジッ ク (OREG_CAS レジスタ ) の後に使用できます。 デフォルトでは、 デザインは消費電力

の削減のために内部生成された CE を使用してすべてのパイプライン ステージを制御します。 ただし、

USE_EXT_CE_A/B 属性を設定するこ とによ り、 外部の CE ポート を使用できます。 外部 CE が有効の場合、 オプ

シ ョ ンの出力レジスタには、 独立したク ロ ッ ク イネーブル入力ポートが与えられます。 出力データ レジスタが CE

ポートによって無効にされている場合、 これらのレジスタは入力レジスタの動作とは無関係にそれぞれの値を保持

します。

表 2‐6: UltraRAM のポート  アクセス

UltraRAM のポート  アクセス ポート  A ポート  B データ出力

1 回の読み出し /1 回の書き込み 読み出し 書き込み 古いデータ

1 回の読み出し /1 回の書き込み 書き込み 読み出し 新しいデータ

1 回の読み出し /1 回の読み出し

および書き込み読み出し 読み出し /書き込み 古いデータ

1 回の読み出し /1 回の読み出し

および書き込み読み出し /書き込み 読み出し 新しいデータ

2 回の読み出し /2 回の書き込み読み出しまたは

書き込み

書き込みまたは

読み出し

ポート A/B の読み出し /書き込みの

組み合わせによって異なる

UltraScale アーキテクチャ  メモリ  リソース 105UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 106: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

リセッ ト

UltraRAM の RST は、読み出しデータ /ステータス /ECC エラー出力と、 それに対応するすべてのオプシ ョ ン出力/カス

ケード パイプライン レジスタを同時にリセッ ト します。 リセッ ト機能は、 RST_MODE 属性の設定によって、 同期

(デフォルト ) または非同期で動作します。 リセッ ト動作は、 すべての読み出し動作および CE 入力に優先されます。

RST のディアサート後、 新しい読み出しデータ値がパイプラインを通過するまで、 リセッ ト値は有効です。

非同期リセッ ト モードの場合、 UltraRAM にはこの入力とディアサート信号を同期させるビルト イン シンクロナイ

ザーはあ り ません。 したがって、 RST 入力用にロジッ ク ベースのシンクロナイザーが必要な場合があ り ます。

重要:デザインでカスケード接続を使用する場合は、 チェーン内のすべての UltraRAM RST に共通のシンクロナイ

ザーを使用する必要があ り ます。

バイ ト  ライ ト  イネーブル

バイ ト ライ ト イネーブル機能によ り、入力データをバイ ト単位で SRAM アレイに書き込むこ とができます。ポート

A およびポート B のそれぞれに 9 ビッ トのライ ト イネーブル入力があ り ます。 また、BWE_MODE_[A/B] 属性で選択

される 2 つの動作モードがあ り ます。 PARITY_INTERLEAVED モードでは、 各ライ ト イネーブル ビッ トが 8 データ

ビッ ト + 1 パリティ ビッ トの書き込みを可能にします。 したがって、 各バイ トに、 それに対応する 1 つのパリティ

ビッ トがあ り ます。 PARITY_INDEPENDENT モードでは、 各ライ ト イネーブル ビッ ト (BWE[7:0]) が 8 データ ビッ

ト (1 バイ ト ) の書き込みを可能にします。 9 番目の BWE ビッ ト (BWE[8]) のイネーブル ビッ トは、 8 つのパリティ

ビッ トからなる 1 バイ ト を制御します。 読み出し動作中は、 バイ ト ライ ト入力は無視されます。

重要: ECC 機能を使用する場合、 ECC レコーダー /デコーダーが正常に機能するには、 すべてのバイ ト ライ ト イネー

ブル ビッ トが 1 に設定されている必要があ り ます。

UltraRAM のカスケード接続とマト リクス コンフ ィギュレーシ ョ ン

UltraRAM が備える高度なビルト イン機能の 1 つと して、 専用の直接インターコネク ト を介して 1 つのカラム内で複

数の UltraRAM ブロ ッ クを直接カスケード接続し、 よ り ビッ ト数の多い RAM を構築できます。 データ入力、 データ

出力、 ECC エラー、 アドレス、 イネーブル、 読み出し /書き込み選択、 書き込みマスク属性のポートがあ り、 カス

ケード接続を容易にしています (図 2-5 参照)。

カスケード接続は、 常に下段から上段への一方向にのみサポート されます。 UltraRAM ブロ ッ クは、 SLR 内の 1 つの

カラム内では無制限にカスケード接続できます。 各ブロ ッ クはビルト イン接続ポート を備えています。 各 UltraRAM

内でカスケード パイプライン レジスタをオプシ ョ ンで利用できます (IREG_CAS ステージおよび OREG_CAS ステー

ジは、 REG_CAS 属性で有効になる )。 これらのレジスタは、 デザインの最大周波数およびレイテンシの要件に基づ

いて、 必要に応じて有効にできます。 1 つのクロ ッ ク領域から上段の次のクロ ッ ク領域にカスケード接続する場合

は、 セッ ト アップ タイム違反を回避するため、 カスケード チェーンの入力側と出力側の両方に追加のパイプライン

レジスタが必要になるこ とがあ り ます。

ロジッ ク リ ソースおよび配線リ ソースを利用するこ とで、 UltraRAM を複数のカラムにわたってカスケード接続する

こ と も可能です。 UltraRAM は、 読み出しが実行されたこ とを示す読み出しアクセス ステータス出力

(RDACCESS_A/B) を生成します。 この出力は、 それに対応する読み出しデータ と同じレイテンシを持ちます。 複数

のカラムにわたってカスケード接続する場合、 この出力を使用して適切な読み出しデータかを選択できます。

実行中の読み出し動作がない場合、 カスケード チェーンの最後の (ブロ ッ クの出口点の) 読み出し出力は、 以前の

データを保持します。

UltraScale アーキテクチャ  メモリ  リソース 106UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 108: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

カスケード接続のユーザー属性

• CASCADE_ORDER_A/B は、 UltraRAM ブロッ クのカスケード接続の順序を指定します。

° NONE (デフォルト ) - UltraRAM はカスケード モードではあ り ません。

° FIRST - UltraRAM はカスケード チェーンの各カラムのチェーンの最初のインスタンスです。

° MIDDLE - UltraRAM はカスケード チェーンの中間のインスタンスです。

° LAST - UltraRAM はカスケード チェーンの各カラムのチェーンの最後のインスタンスです。

• SELF_MASK_A/B[22:12] は、 カスケード チェーン内の UltraRAM ブロ ッ クの数、 つま り使用される

ADDR_A/B[22:12] ビッ ト を指定します。

° 11'h7ff (デフォルト ) - カスケード モードではあ り ません。 ADDR_A/B[22:12] 入力がマスク されます。

° 11'h7fe - 2 個の UltraRAM がカスケード接続されています。 ADDR_A/B[22:13] 入力がマスク されます。

° 11'h7fc - 3 ~ 4 個の UltraRAM がカスケード接続されています。ADDR_A/B[22:14] 入力がマスク されます。

° 11'h7f8 - 5 ~ 8 個の UltraRAM がカスケード接続されています。ADDR_A/B[22:15] 入力がマスク されます。

° 11'h7f0 - 9 ~ 16 個の UltraRAM がカスケード接続されています。ADDR_A/B[22:16] 入力がマスク されます。

° 11'h7e0 - 17 ~ 32 個の UltraRAM がカスケード接続されています。ADDR_A/B[22:17] 入力がマスクされます。

° 11'h7c0 - 31 ~ 64 個の UltraRAM がカスケード接続されています。ADDR_A/B[22:18] 入力がマスクされます。

° 11'h780 - 65 ~ 128 個の UltraRAM がカスケード接続されています。 ADDR_A/B[22:19] 入力がマスク され

ます。

° 11'h700 - 129 ~ 256 個の UltraRAM がカスケード接続されています。 ADDR_A/B[22:20] 入力がマスク され

ます。

° 11'h600 - 257 ~ 512 個の UltraRAM がカスケード接続されています。 ADDR_A/B[22:21] 入力がマスク され

ます。

° 11'h400 - 513 ~ 1024 個の UltraRAM がカスケード接続されています。 ADDR_A/B[22] 入力がマスク され

ます。

° 11'h000 - 1025 ~ 2048 (1036) 個の UltraRAM がカスケード接続されています。 アドレス入力のどのビッ ト

もマスク されません。

• SELF_ADDR_A/B[22:12]

この属性はカスケード モードで使用されます。 UltraRAM カスケード チェーン内のどのアドレス ビッ トが、 そ

のビッ トが関連付けられる特定のブロッ クをアドレス指定するかに基づいて、 この属性を設定する必要があ り

ます。 カスケード チェーン内の特定の UltraRAM ブロ ッ クは、 使用される ADDR_A/B アドレス ビッ トにマッチ

する SELF_MASK_A/B 属性によるアドレス ビッ トのマスク後に自己アドレス ビッ トがセッ ト されたと きにアク

セスされます。 デフォルトは 11'h0 です (図 2-6 参照)。

UltraScale アーキテクチャ  メモリ  リソース 108UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 110: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

カスケード接続された UltraRAM でマト リクスを構築する

複数の UltraRAM で深さのある (ワード数の多い) 論理 SRAM を構築できます。 複数の UltraRAM で深さのある (ワー

ド数の多い) 論理 SRAM を構築できます。 これらの UltraRAM のインスタンスでは、 アドレス、 制御信号、 および

データが UltraRAM マ ト リ クスの左下に入力され、 出力データが右上に現れるマ ト リ クスが形成されます。 図 2-7

に、 UltraRAM マ ト リ クスの概念を示します。 この X x Y (行 x 列) マ ト リ クスの各マ ト リ クス要素は、 垂直にカス

ケード接続されるシングル UltraRAM ブロ ッ クです。 マ ト リ クスに対する読み出し /書き込みでは、 アドレス、 制御

信号、 およびデータ (書き込みの場合) が行 1 (Row 1) の UltraRAM マ ト リ クスに入力されます。 書き込み動作では、

入力データがアドレス指定された位置の行、 列 (R、 C) の UltraRAM ブロ ッ クおよびその中に含まれるワードに書き

込まれます。 読み出し動作も同様に、 UltraRAM R、 C およびその位置を指定するこ とで出力データが (必ず) 列の一

番上の出力バスに到達します。 図 2-7 に 4x4 の UltraRAM マ ト リ クスを示します。

各 UltraRAM に対して個別アドレス エンコード方式を用いて、 データを含む必要があるかど うかを各ブロ ッ ク別に

判断します。 SELF_ADDRESS および SELF_MASK によって非固有のアドレスがマ ト リ クス内で使用可能になるた

め、同じサイクル内で複数の UltraRAM にデータを同時に伝搬できます。 SELF_ADDRESS はワンホッ ト エンコード

アドレス と して使用可能で (パーシャルであっても )、 SELF_MASK は重要なアドレス ビッ トおよび無視しても問題

のないアドレス ビッ ト (ワンコールド ) を判断します。 その結果、 マ ト リ クス内のすべての UltraRAM に適用される

グローバル アドレスを、 あらかじめ指定した一連の UltraRAM に適用できます。 図 2-8 は、 行 1 の UltraRAM (2 つ以

上、 またはすべて) にデータが同時に書き込まれる様子を示しています。 この例では、 同時にデータを受信する必要

があるブロ ッ クの SELF_ADDR 設定を用いてブロ ッ ク アドレスの下位 4 ビッ トが OR 回路を介して出力され、

SELF_MASK は、 ブロ ッ クのデコード されないアドレス ビッ ト を無視します。 このよ うなユース ケースでは、

UltraRAM は 1 回の読み出し / 1 回の書き込みモードでしか使用できません。

X-Ref Target - Figure 2-7

図 2‐7: 4x4 の UltraRAM マト リクス

UltraRAM Matrix (4x4)

CASCADE_ORDER = LASTSELF_MASK_A = 7F0SELF_ADDR = 0011

Write Data

CASCADE_ORDER = FIRSTSELF_MASK_A = 7F0SELF_ADDR = 0000

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 0001

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 0010

ControlAddress

Data Output Bus

CASCADE_ORDER = LASTSELF_MASK_A = 7F0SELF_ADDR = 0111

CASCADE_ORDER = FIRSTSELF_MASK_A = 7F0SELF_ADDR = 0100

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 0101

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 0110

CASCADE_ORDER = LASTSELF_MASK_A = 7F0SELF_ADDR = 1011

CASCADE_ORDER = FIRSTSELF_MASK_A = 7F0SELF_ADDR = 1000

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 1001

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 1010

CASCADE_ORDER = LASTSELF_MASK_A = 7F0SELF_ADDR = 1111

CASCADE_ORDER = FIRSTSELF_MASK_A = 7F0SELF_ADDR = 1100

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 1101

CASCADE_ORDER = MIDDLESELF_MASK_A = 7F0SELF_ADDR = 1110

Single or Multiple UltraRAM hardware

columns

Note: For data output bus control, see the

Read Status Output – RDACCESS_A,

RDACCESS_B section.

Row 1

Column 1

X17172-012617X17172-062916

UltraScale アーキテクチャ  メモリ  リソース 110UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 111: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

アドレス ビッ トのデコード

• 行 1 マルチキャス ト

ADDR15:12 = 0011 は列 1+2 へのマルチキャス トに対応

ADDR15:12 = 0101 は列 1+3 へのマルチキャス トに対応

ADDR15:12 = 0110 は列 2+3 へのマルチキャス トに対応

ADDR15:12 = 0111 は列 1+2+3 へのマルチキャス トに対応

ADDR15:12 = 1101 は列 1+2+4 へのマルチキャス トに対応

以下同様

ADDR15:12 = 1111 は列 1+2+3+4 へのマルチキャス トに対応

• 行/列アドレス

ADDR19:16 = 0001 – 0011 行 2、 3、 4、 列 1 に対応

ADDR19:16 = 0101 – 0111 行 2、 3、 4、 列 2 に対応

ADDR19:16 = 1001 – 1011 行 2、 3、 4、 列 3 に対応

ADDR19:16 = 1101 – 1111 行 2、 3、 4、 列 4 に対応

X-Ref Target - Figure 2-8

図 2‐8: カスケード接続された UltraRAM 列の行 1 への同時 (ブロードキャスト ) 書き込み

CASCADE_ORDER = LASTSELF_MASK_A = 70E

SELF_ADDR = 0011_0001

Write Data

CASCADE_ORDER = FIRSTSELF_MASK_A = 70E

SELF_ADDR = 0000_0001

CASCADE_ORDER = MIDDLESELF_MASK_A = 70E

SELF_ADDR = 0001_0001

CASCADE_ORDER = MIDDLESELF_MASK_A = 70E

SELF_ADDR = 0010_0001

ControlAddress

CASCADE_ORDER = LASTSELF_MASK_A = 70D

SELF_ADDR = 0111_0111

CASCADE_ORDER = FIRSTSELF_MASK_A = 70D

SELF_ADDR = 0000_0010

CASCADE_ORDER = MIDDLESELF_MASK_A = 70D

SELF_ADDR = 0101_0101

CASCADE_ORDER = MIDDLESELF_MASK_A = 70D

SELF_ADDR = 0110_0110

CASCADE_ORDER = LASTSELF_MASK_A = 70B

SELF_ADDR = 1011_1011

CASCADE_ORDER = FIRSTSELF_MASK_A = 70B

SELF_ADDR = 0000_0100

CASCADE_ORDER = MIDDLESELF_MASK_A = 70B

SELF_ADDR = 1001_1001

CASCADE_ORDER = MIDDLESELF_MASK_A = 70B

SELF_ADDR = 1010_1010

CASCADE_ORDER = LASTSELF_MASK_A = 707

SELF_ADDR = 1111_1111

CASCADE_ORDER = FIRSTSELF_MASK_A = 707

SELF_ADDR = 0000_1000

CASCADE_ORDER = MIDDLESELF_MASK_A = 707

SELF_ADDR = 1101_1101

CASCADE_ORDER = MIDDLESELF_MASK_A = 707

SELF_ADDR = 1110_1110

Column 1 Column 2 Column 3 Column 4

Destination 1 Destination 2 Destination 3 Destination 4

Write broadcasting to Row 1 of depth cascaded UltraRAM columns

Row 1(one hot)

X17173-012617

UltraScale アーキテクチャ  メモリ  リソース 111UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 112: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraScale+ デバイスは、 Vivado Design Suite でサポート されています。 このツールには、 ターゲッ ト と して利用可能

なシ リ コン リ ソースの設定に役立つコード テンプレートがいくつか含まれています。 RTL デザイン入力によって

UltraRAM メモ リ を使用する方法には次の 3 つがあ り ます。

• 2016.1 Vivado ツール リ リース以降の Xilinx Parameterized Macros (XPM) を使用する。

• RTL メモ リ を推論し、 「ultra」 に設定した ram_style 属性を使用する。

• デバイス プリ ミ ティブをインスタンシエートする。

これらは、 Vivado 言語テンプレートに含まれています。 テンプレートは、 Vivado ツールのメニューで [Tools] →

[Language Templates] をク リ ッ ク して利用できます。

注記: XPM は、 高度にカスタマイズ可能で所望の結果を得るこ とができる最も効果的な方法です。 詳細は、

『UltraScale アーキテクチャ ライブラ リ ガイ ド』 (UG974) [参照 3] を参照してください。

ビルト インエラー検出/訂正

各 UltraRAM 4K x 72 RAM は、 各ポートにオプシ ョ ンのビルト イン ハミ ング コード エラー訂正を備えています。

ECC がオンの場合、 72 ビッ ト データ バスの上位 (MSB) 8 ビッ トはパリティに使用されます。ECC 動作は内部的に実

行されるため、 設計者が意識する必要があ り ません。 正常に機能するには、 ECC モードですべてのバイ ト ラ イ ト イ

ネーブル ビッ ト BWE_B[8:0] が 1 (HIGH) に設定されている必要があ り ます。ECC 動作はポート A とポート B で同じ

です。

8 つの保護ビッ ト (ECCPARITY) は書き込み動作ごとに生成され、 64 ビッ トのデータ と共にメモ リに格納されます。

この ECCPARITY ビッ トは、 読み出し中にシングル ビッ ト エラーの訂正や、 ダブルビッ ト エラーの検出 (訂正は行

わない) に使用されます。 ECC データ ビッ トおよびステータス /制御ビッ トは、 CLK に同期します。

1 回の読み出し動作で 72 ビッ トのデータ (64 ビッ トのデータ と 8 ビッ トのパリティ ) がメモ リから読み出され、ECC

デコーダーに与えられます。 ECC デコーダーは、 読み出しの結果 (エラーなし、 シングル ビッ ト エラーの訂正、 ダ

ブル ビッ ト エラーの検出) を示す 2 種類のステータス出力 (SBITERR_A/B および DBITERR_A/B) を生成します。

標準 ECC モードでは、読み出し動作によってメモ リ アレイ内のエラーは訂正されません。訂正済みデータを DOUT

に出力するだけです。 FMAX を向上させるため、 データ出力 (DO)、 SBITERR および DBITERR にオプシ ョ ンのレジ

スタが使用できます。

RST_A/B がアサート される と、 すべての出力レジスタは 0 にリセッ ト されます。 したがって、 SBITERR および

DBITERR ステータス信号も 0 (LOW) にリセッ ト され、 データ出力にシングル ビッ ト エラーやダブル ビッ ト エラー

が含まれていないこ とを示します。

さ らに、 UltraRAM はどちらのポートにもエラーを挿入できます。 ECC モードでは、 任意のワードまたはすべての

ワードにシングル ビッ ト エラーまたはダブル ビッ ト エラーを挿入できます。 書き込みサイクル中に

INJECT_SBITERR がアサート される と、 DIN[30] に対応する メモ リにシングル ビッ ト エラーが内部で挿入されます。

書き込みサイクル中に INJECT_DBITERR がアサート される と、 DIN[30] および DIN[62] に対応する メモ リにダブル

ビッ ト エラーが内部で挿入されます。 書き込みサイクル中に INJECT_SBITERR と INJECT_DBITERR の両方がア

サート される と、 ダブル ビッ ト エラーが INJECT_DBITERR と同じ位置に挿入されます。

この機能はすべての ECC モードで利用できます。

UltraScale アーキテクチャ  メモリ  リソース 112UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 113: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

ECC モード

標準 ECC モード (EN_ECC_RD = TRUE、 EN_ECC_WR = TRUE) では、 エンコーダーとデコーダーの両方が使用でき

ます。 1 回の書き込みで 64 ビッ トのデータ と ECC で生成された 8 ビッ トのパリティがメモ リに格納されます。 外部

パリティ入力ビッ トは無視されます。 また読み出しでは、 デコード された 72 ビッ トのデータおよびパリティが読み

出されます。

一般的なユース ケースでは、 ポートの ECC エンコーダーとデコーダーの両方を有効にします。 ただし、 エンコー

ダーとデコーダーは個別に有効にできます。 エンコーダーのみを有効にするには、 DI ポートからデータを送信し、

ECCPARITY ビッ ト を RAM に書き込み、 デコーダーを無効にします。 デコーダーのみを使用するには、 エンコー

ダーを無効にしてデータを RAM に書き込み、 UltraRAM から訂正済みデータ と ステータス ビッ ト を読み出します。

ECC モードの動作

ECC モードの動作には、 次の 3 つの種類があ り ます。

• 標準 ECC モード

• デコード専用 ECC モード

• エンコード専用 ECC モード

標準 ECC モードではエンコーダーとデコーダーの両方が使用されます。

標準モードの ECC

属性での設定

EN_ECC_RD = TRUE

EN_ECC_WR = TRUE

標準 ECC 書き込み

ECC エンコーダーは、 DIN[63:0] を使用して、 これに対応する 8 ビッ トの ECC パリティを生成し、 64 データ ビッ ト

に付加してメモ リに書き込みます。 ECC パリティは内部で生成されるため、 DIN[71:64] ピンは使用しません。

すべての入力ピンで、 ECC エンコード ロジッ クの前にオプシ ョ ンの IREG_PRE パイプライン ステージが利用可能で

す。 このステージは、 最大周波数の要件を満たすために必要に応じて有効にできます。

標準 ECC 読み出し

読み出し動作中に、 64 ビッ トのデータ と 8 ビッ トのパリティからなる 72 ビッ トのメモ リ内容がアドレス位置から読

み出され、 内部でデコード されます。 エラーがなければ、 データ とパリティがそのまま DOUT[71:0] に出力されま

す。 データまたはパリティにシングル ビッ ト エラーがある場合、 このエラーが訂正されて SBITERR が High になり

ます。 データおよびパリティにダブル ビッ ト エラーがある場合は、 エラーは訂正されません。 データ とパリティは

そのまま出力され、 DBITERR が High とな り ます。

すべての DOUT およびエラー ビッ ト出力で、 ECC デコード ロジッ ク直前にオプシ ョ ンの OREG パイプライン ス

テージが利用可能です。 また、 ECC デコード ロジッ ク直後にオプシ ョ ンの OREG_ECC パイプライン ステージが利

用可能です。 デザインの最大周波数およびレイテンシの要件に応じて、 これらのステージのいずれか一方または両

方を有効にできます。

UltraScale アーキテクチャ  メモリ  リソース 113UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 114: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

エンコード専用 ECC

属性での設定

EN_ECC_RD = FALSE

EN_ECC_WR = TRUE

エンコード専用 ECC での書き込み

ECC エンコーダーは、 DIN[63:0] を使用して、 これに対応する 8 ビッ トの ECC パリティを生成し、 64 データ ビッ ト

に付加してメモ リに書き込みます。 ECC パリティは内部で生成されるため、 DIN[71:64] ピンは使用しません。

すべての入力ピンで、 ECC エンコード ロジッ クの前にオプシ ョ ンの IREG_PRE パイプライン ステージが利用可能で

す。 このステージは、 Fmax の要件を満たすために必要に応じて有効にできます。

エンコード専用 ECC での読み出し

エンコード専用の ECC モードでは、読み出しは通常のブロ ッ ク RAM と同様です。64 ビッ トのデータが DOUT[63:0]

に現れ、 8 ビッ トのパリティが DOUT[71:64] に現れます。 シングル ビッ ト エラーは訂正されず、 エラー フラグの

SBITERR および DBITERR がアサート されるこ とはあ り ません。

デコード専用 ECC

属性での設定

EN_ECC_RD = TRUE

EN_ECC_WR = FALSE

デコード専用の ECC モードでは、 ECC デコーダーのみが有効で、 ECC エンコーダーは無効です。 デコード専用モー

ドは、 ECC デコーダーの機能テス ト用にシングル ビッ ト またはダブル ビッ トのエラーを挿入するために使用しま

す。 ECC パリティ ビッ トは、 DIN[71:64] を使用して外部から与える必要があ り ます。

デコード専用 ECC でのシングル ビッ ト  エラーの挿入

• シングル ビッ ト エラーが挿入された DIN[71:0] が、 メモ リ アレイに書き込まれます。

• メモ リ位置が読み出される と き、 必要に応じてデータが訂正されます。

• SBITERR には、 DOUT データに応じたステータスが出力されます。

ECC デコーダーはパリティ ビッ トにあるシングル ビッ ト エラーも訂正します。

デコード専用 ECC でのダブル ビッ ト  エラーの挿入

• ダブル ビッ ト エラーが挿入された DIN[71:0] が、 メモ リ アレイに書き込まれます。

• メモ リ位置にアクセスされる と き、 破損したデータが読み出され、 ダブル ビッ ト エラーが検出されます。

• DBITERR には、 DOUT データに応じたステータスが出力されます。

また、 ECC デコーダーは、 パリ ティ ビッ トで発生したダブル ビッ ト エラーや、 データ ビッ ト とそれに対応するパリティ ビッ トの両方で発生したシングル ビッ ト エラーも検出します。

UltraScale アーキテクチャ  メモリ  リソース 114UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 115: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

UltraRAM のタイ ミング図

このセクシ ョ ンでは、 UltraRAM ブロ ッ クに関するタイ ミ ングについて図を交えて説明します。 これらのタイ ミ ング

図は、 マ ト リ クスおよびシングル ブロ ッ ク コンフ ィギュレーシ ョ ンにおける読み出し /書き込み/ リセッ ト動作、 お

よび各種パイプライン オプシ ョ ンやクロ ッ ク イネーブル機能による影響を示します。 また、 パイプラインおよびレ

イテンシの設定別にス リープおよび自動ス リープ モードの詳細なタイ ミ ング図も示します。

読み出し/書き込み波形 (オプションのパイプライン レジスタあり/なし)

図 2-9 と図 2-10 に、 オプシ ョ ンのパイプライン レジスタを使用しない場合と使用した場合の読み出し /書き込みの波

形を示します。

X-Ref Target - Figure 2-9

図 2‐9:読み出し/書き込み: 属性 IREG_PRE_A/B=FALSE、 OREG_A/B=FALSE、 OREG_ECC_A/B=FALSE、USE_EXT_CE_A/B=FALSE の場合

X18680-012617

X-Ref Target - Figure 2-10

図 2‐10: リセッ ト /読み出し/書き込み: 属性 IREG_PRE_A/B=TRUE、 OREG_A/B=TRUE、 OREG_ECC_A/B=TRUE、USE_EXT_CE_A/B=FALSE の場合

X18681-012617

UltraScale アーキテクチャ  メモリ  リソース 115UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 116: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

リセッ ト付き読み出し/書き込み波形 (オプシ ョ ンの出力パイプライン  レジスタあり /なし )

図 2-11、 図 2-12、 および図 2-13 に、 オプシ ョ ンのパイプライン レジスタを使用しない場合と使用した場合のリセッ

ト付き読み出し /書き込みの波形を示します。

注記: リセッ トは読み出し動作よ り も優先され、 書き込み動作には影響しません。

X-Ref Target - Figure 2-11

図 2‐11: リセッ ト /読み出し/書き込み: 属性 RST_MODE=SYNC、 IREG_PRE_A/B=FALSE、 OREG_A/B=FALSE、OREG_ECC_A/B=FALSE、 USE_EXT_CE_A/B=FALSE の場合

X18682-012617

X-Ref Target - Figure 2-12

図 2‐12: リセッ ト /読み出し/書き込み: 属性 RST_MODE=SYNC、 IREG_PRE_A/B=FALSE、 OREG_A/B=TRUE、OREG_ECC_A/B=TRUE、 USE_EXT_CE_A/B=FALSE の場合

X18683-012617

UltraScale アーキテクチャ  メモリ  リソース 116UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 117: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

外部 CE を使用した場合の読み出し /書き込み波形

図 2-14 と図 2-15 に、 外部 CE を使用した場合の読み出し /書き込み波形を示します。 外部 CE を使用できるのはシン

グル UltraRAM ブロ ッ クの場合のみで、 カスケード接続した UltraRAM ではサポート されません。

USE_EXT_CE=TRUE の場合、 RDACCESS はサポート されません。

X-Ref Target - Figure 2-13

図 2‐13:読み出し/書き込み: 属性 RST_MODE=ASYNC、 IREG_PRE_A/B=FALSE、 OREG_A/B=TRUE、OREG_ECC_A/B=TRUE、 USE_EXT_CE_A/B=FALSE の場合

X18684-012617

X-Ref Target - Figure 2-14

図 2‐14:外部 CE: 属性 IREG_PRE_A/B=FALSE、 OREG_A/B=TRUE、 OREG_ECC_A/B=TRUE、USE_EXT_CE_A/B=TRUE

X18685-012617

UltraScale アーキテクチャ  メモリ  リソース 117UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 118: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

マト リクスからのリセッ ト付き読み出し波形

図 2-16 と図 2-17 に、 3 つの UltraRAM をカスケード接続して、 カスケード チェーンのすべての UltraRAM に対して

OREG と OREG_ECC を TRUE に設定した場合の波形を示します。

• RST 入力は 3 つの UltraRAM すべての入力で同時にアサート またはディアサート します。

• それ以外の入力はすべて最初の UltraRAM の入力で駆動されます。 出力はすべて最後の UltraRAM から とな り

ます。

注記:図 2-16 および図 2-17 に示すよ うに、 リセッ ト後の DOUT 出力の動作は REG_CAS の位置によ り異なるこ とが

あ り ます。

X-Ref Target - Figure 2-15

図 2‐15:外部 CE: 属性 IREG_PRE_A/B=FALSE、 OREG_A/B=FALSE、OREG_ECC_A/B=TRUE、 USE_EXT_CE_A/B=TRUE の場合

X18686-012617

X-Ref Target - Figure 2-16

図 2‐16:中間の UltraRAM からの読み出し : 中間の UltraRAM が REG_CAS=TRUE、最後の UltraRAM が REG_CAS=TRUE の場合

X18687-020918

UltraScale アーキテクチャ  メモリ  リソース 118UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 119: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

スリープの波形

ス リープは EN よ り も優先されます。 ス リープ中はメモ リへの書き込みは無視され、 それ以前のメモ リ内容が維持さ

れます。 メモ リからの読み出しも無視されます。 図 2-18 ~図 2-22 を参照してください。

X-Ref Target - Figure 2-17

図 2‐17:中間の UltraRAM からの読み出し : 最後の UltraRAM が REG_CAS=TRUE、中間の UltraRAM が REG_CAS=FALSE の場合

X18688-012617

X-Ref Target - Figure 2-18

図 2‐18:書き込み動作の場合のスリープ モード : 属性 IREG_PRE_A/B=FALSE の場合

X18689-012617

X-Ref Target - Figure 2-19

図 2‐19:読み出し動作の場合のスリープ モード : 属性 IREG_PRE_A/B=FALSE、 OREG_A/B= FALSE、OREG_ECC_A/B= FALSE、 USE_EXT_CE_A/B= FALSE の場合 (DOUT は 0 に強制)

X18690-012617

UltraScale アーキテクチャ  メモリ  リソース 119UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 120: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

注記: OREG=TRUE の場合、 読み出し直後のス リープ サイ クルによ り、 読み出し出力 D2、 D11、 および D19 は失わ

れます。 したがって、 DOUT は 0 に駆動されます。 ただし内部メモ リ読み出しアクセスはブロ ッ ク されないため、

RDACCESS はアサート されます。

X-Ref Target - Figure 2-20

図 2‐20:読み出し動作の場合のスリープ モード : 属性 IREG_PRE_A/B=FALSE、 OREG_A/B= FALSE、 OREG_ECC_A/B= TRUE、USE_EXT_CE_A/B= FALSE の場合 (DOUT は直前の読み出しデータを維持)

X18691-012617

X-Ref Target - Figure 2-21

図 2‐21:読み出し動作の場合のスリープ モード : 属性 IREG_PRE_A/B=FALSE、 OREG_A/B= TRUE、OREG_ECC_A/B= FALSE、 USE_EXT_CE_A/B= FALSE の場合

X18692-012617

X-Ref Target - Figure 2-22

図 2‐22:読み出し動作の場合のスリープ モード : 属性 IREG_PRE_A/B=FALSE、 OREG_A/B= TRUE、OREG_ECC_A/B= TRUE、 USE_EXT_CE_A/B= FALSE の場合

X18693-012617

UltraScale アーキテクチャ  メモリ  リソース 120UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 121: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

OREG=TRUE の場合、 アドレス A2 に対応する内部読み出しは、 このサイクルで SLEEP がまだ Low のためブロ ッ ク

されません。 しかし次のサイ クルで SLEEP が High になるため OREG はデータを失い、出力は 0 になり ます。 この場

合、 OREG_ECC=TRUE でも読み出し自体はブロッ ク されておらず、 新しい読み出しデータが期待されるため

OREG_ECC は 0 になり ます。 これは、 OREG=TRUE で読み出し動作の直後に SLEEP が High になる と起こ り ます。

OREG_ECC が TRUE か FALSE かは関係あ り ません。

自動スリープの波形

自動ス リープ モードでは、 UltraRAM がいつス リープに移行し、 いつウェークアップするかを判断するためにルッ ク

アヘッ ド情報が必要です。 バイ ト ラ イ ト イネーブル、 読み出し /書き込み、 データ、 および下位アドレス入力は、 イ

ネーブルおよび上位アドレス入力よ り も遅らせる必要があ り ます。 これらの入力は、 AUTO_SLEEP_LATENCY の設

定 (3 ~ 15) に等しいパイプライン ステージを使用して遅らせます。 これには、 FPGA ファブリ ッ クで FIFO またはリ

ニア シフ ト レジスタを使用します。 INJECT および CE 入力など、 その他の信号を使用する場合もパイプラインに

よって遅延を揃える必要があ り ます。 詳細は、 「自動ス リープのレイテンシ – AUTO_SLEEP_LATENCY」 を参照して

ください。

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイ クル数だけ遅れており、 その他の入力はパイプライン

による調整でこの信号に揃います。 OREG_ECC=TRUE の場合、 ス リープ サイクル中の DOUT は直前の読み出し

データを保持します。

X-Ref Target - Figure 2-23

図 2‐23:自動スリープ モードを使用する場合の代表的なファブリ ック  インプリ メンテーシ ョ ン

UltraRAM Matrix

ADDR_A[22:12]EN_A

FIFO or SRLPipeline

FIFO or SRLPipeline

ADDR_B[22:12]EN_BADDR_A[11:0]BWE_A[8:0]

RDB_WR_ADIN_A[71:0]

UltraRAM

UltraRAM UltraRAM

UltraRAM ADDR_B[11:0]BWE_B[8:0]

RDB_WR_BDIN_B[71:0]

X18679-030217

X-Ref Target - Figure 2-24

図 2‐24:読み出し動作の場合の自動スリープ モード : 属性 AUTO_SLEEP_LATENCY=4、 IREG_PRE_A/B=FALSE、OREG_A/B= TRUE、 OREG_ECC_A/B= TRUE、 USE_EXT_CE_A/B= FALSE の場合

X18694-012617

UltraScale アーキテクチャ  メモリ  リソース 121UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 122: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

EN_INT_DLY がディアサート された後、 ス リープ サイクルの前に OREG ステージによる 1 アイ ドル サイクルが挿入

されます。 OREG パイプラインが TRUE に設定されている場合は、 UltraRAM がス リープに移行する前に読み出し

データが出力に伝搬するよ うに追加の 1 サイクルが必要です。 したがって、 EN_INT_DLY がディアサート してから

ス リープ サイ クルが開始するまでには 2 サイ クルの待ち時間があ り ます。 また、 ス リープ サイクルは

AUTO_SLEEP_LATENCY (ス リープに移行するのに必要なアイ ドル サイ クルの数、 すなわち EN から EN_INT_DLY

までの遅延) の影響も受けます。

次の読み出しまたは書き込みサイクルまでに十分なウェークアップ時間を確保できるよ う、 自動ス リープからの

ウェークアップは常に EN_INT_DLY が High に遷移する 1 サイ クル前に発生します。 ウェークアップは

EN_INT_DLY_A/B (および間接的に EN) の立ち上がりによってのみ決ま り、 その他の入力は関係あ り ません。

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイ クル数だけ遅れており、 その他の入力はパイプライン

による調整でこの信号に揃います。 OREG_ECC=TRUE の場合、 ス リープ サイクル中の DOUT は直前の読み出し

データを保持します。

AUTO_SLEEP_LATENCY は、 UltraRAM がス リープに移行するのに必要なアイ ドル サイクルの数を指定します。

図 2-25 ではこの値は 8 に設定されています。 これは、 ス リープ サイクルが現れるには EN_INT_DLY がディアサート

してから次に EN_INT_DLY がアサートするまでの間に少なく と も 8 サイクルが必要であるこ とを意味します。 この

例では、 いったんス リープに移行してウェークアップした後のサイ クルでは十分なアイ ドル時間がないため

UltraRAM はス リープに移行しません。

期待されるス リープ サイクル数の詳細は、 「自動ス リープのレイテンシ – AUTO_SLEEP_LATENCY」 の属性の説明

を参照してください。

X-Ref Target - Figure 2-25

図 2‐25:読み出し動作の場合の自動スリープ モード : 属性 AUTO_SLEEP_LATENCY=8、 IREG_PRE_A/B=FALSE、OREG_A/B= TRUE、 OREG_ECC_A/B= TRUE、 USE_EXT_CE_A/B= FALSE の場合

X18695-012617

UltraScale アーキテクチャ  メモリ  リソース 122UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 123: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

第 2 章: UltraRAM リソース

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイ クル数だけ遅れており、 その他の入力はパイプライン

による調整でこの信号に揃います。 OREG_ECC=FALSE の場合、 ス リープ サイ クルが存在しないと DOUT は直前の

読み出しデータを保持しますが、 ス リープ サイクルの間は 0 に駆動されます。

EN_INT_DLY は入力 EN から AUTO_SLEEP_LATENCY のサイ クル数だけ遅れており、 その他の入力はパイプライン

による調整でこの信号に揃います。 OREG_ECC=FALSE の場合、 ス リープ サイ クルが存在しないと DOUT は直前の

読み出しデータを保持しますが、 ス リープ サイクルの間は 0 に駆動されます。

X-Ref Target - Figure 2-26

図 2‐26:読み出し動作の場合の自動スリープ モード : 属性 AUTO_SLEEP_LATENCY=8、 IREG_PRE_A/B=FALSE、OREG_A/B= FALSE、 OREG_ECC_A/B= FALSE、 USE_EXT_CE_A/B= FALSE の場合

X18696-012617

X-Ref Target - Figure 2-27

図 2‐27:読み出し動作の場合の自動スリープ モード : 属性 AUTO_SLEEP_LATENCY=8、 IREG_PRE_A/B=FALSE、OREG_A/B= TRUE、 OREG_ECC_A/B= FALSE、 USE_EXT_CE_A/B= FALSE の場合

X18697-012617

UltraScale アーキテクチャ  メモリ  リソース 123UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 124: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

付録 A

その他のリソースおよび法的通知

ザイリンクス リソース

アンサー、 資料、 ダウンロード、 フォーラムなどのサポート リ ソースは、 ザイ リ ンクス サポート サイ ト を参照して

ください。

ソリューシ ョ ン  センター

デバイス、 ツール、 IP のサポートについては、 ザイ リ ンクス ソ リ ューシ ョ ン センターを参照して ください。 デザイ

ン アシスタン ト 、 デザイン アドバイザリ、 ト ラブルシューティングのヒン ト などが含まれます。

Xilinx Documentation Navigator およびデザイン  ハブ

Xilinx Documentation Navigator (DocNav) では、 ザイ リ ンクスの資料、 ビデオ、 サポート リ ソースへアクセスでき、 特

定の情報を取得するためにフ ィルター機能や検索機能を利用できます。Xilinx Documentation Navigator を開くには、次

のいずれかを実行します。

• Vivado IDE で [Help] → [Documentation and Tutorials] をク リ ッ ク します。

• Windows で [スタート ] → [すべてのプログラム] → [Xilinx Design Tools] → [DocNav] をク リ ッ ク します。

• Linux のコマンド プロンプ トに 「docnav」 と入力します。

ザイ リ ンクスのデザイン ハブでは、 資料へのリ ンクがデザイン タスクおよびト ピッ クごとにま とめられており、 こ

れらを参照するこ とで重要なコンセプ トに関する知識を得たり、 よ くある質問 (FAQ) を参考に問題を解決できます。

デザイン ハブにアクセスするには、 次のいずれかを実行します。

• Xilinx Documentation Navigator で [Design Hubs View] タブをク リ ッ ク します。

• ザイ リ ンクス ウェブサイ トのデザイン ハブ ページを参照します。

注記: Xilinx Documentation Navigator の詳細は、ザイ リ ンクス ウェブサイ トの Documentation Navigator ページを参照し

てください。

注意: Xilinx Documentation Navigator からは、 日本語版は参照できません。 ウェブサイ トのデザイン ハブ ページの一

部は翻訳されており、 日本語版が提供されている場合はそのリ ンク も追加されています。

UltraScale アーキテクチャ  メモリ  リソース 124UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 125: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

付録 A:その他のリソースおよび法的通知

参考資料

次の文書は、 このユーザー ガイ ドの補足資料と して役立ちます。

注記:日本語版のバージ ョ ンは、 英語版よ り古い場合があ り ます。

1. UltraScale および UltraScale+ デバイス データシート :

° 『UltraScale アーキテクチャおよび製品データシート : 概要』 (DS890: 英語版、 日本語版)

° 『Zynq UltraScale+ MPSoC データシート : 概要』 (DS891: 英語版、 日本語版)

° 『Zynq UltraScale+ MPSoC データシート : DC 特性および AC スイ ッチ特性』 (DS925: 英語版、 日本語版)

° 『Kintex UltraScale FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS892: 英語版、 日本語版)

° 『Kintex UltraScale+ FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS922: 英語版、 日本語版)

° 『Virtex UltraScale FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS893: 英語版、 日本語版)

° 『Virtex UltraScale+ FPGA データシート : DC 特性および AC スイ ッチ特性』 (DS923: 英語版、 日本語版)

2. 『7 シ リーズ FPGA メモ リ リ ソース ユーザー ガイ ド』 (UG473: 英語版、 日本語版)

3. 『UltraScale アーキテクチャ ライブラ リ ガイ ド』 (UG974: 英語版、 日本語版)

UltraScale アーキテクチャ  メモリ  リソース 125UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com

Page 126: UltraScale アーキテクチャ メモリ リソース アーキテクチャ メモリ リソース 4 UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com 第1章 ブロック RAM リソース

付録 A:その他のリソースおよび法的通知

お読みください: 重要な法的通知本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開示される情報 (以下 「本情報」 といいます) は、 ザイ リ ンクスの製品を選択および使用するこ とのためにのみ提供されます。 適用される法律が許容する最大限の範囲で、 (1) 本情報は 「現状有姿」、 およびすべて受領者の責任で (with all faults) という状態で提供され、 ザイ リ ンクスは、 本通知をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれらに限られません)、 すべての保証および条件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、 本情報 (貴殿または貴社による本情報の使用を含む) に関係し、 起因し、 関連する、 いかなる種類 ・性質の損失または損害についても、 責任を負わない (契約上、 不法行為上 (過失の場合を含む)、 その他のいかなる責任の法理によるかを問わない) ものと し、 当該損失または損害には、 直接、 間接、 特別、 付随的、 結果的な損失または損害 (第三者が起こした行為の結果被った、 データ、 利益、 業務上の信用の損失、 その他あらゆる種類の損失や損害を含みます) が含まれるものと し、 それは、 たとえ当該損害や損失が合理的に予見可能であったり、 ザイ リ ンクスがそれらの可能性について助言を受けていた場合であったと しても同様です。 ザイ リ ンクスは、 本情

報に含まれるいかなる誤り も訂正する義務を負わず、 本情報または製品仕様のアップデート を貴殿または貴社に知らせる義務も負

いません。 事前の書面による同意のない限り、 貴殿または貴社は本情報を再生産、 変更、 頒布、 または公に展示してはなり ませ

ん。 一定の製品は、 ザイ リ ンクスの限定的保証の諸条件に従う こ と となるので、 https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照して ください。 IP コアは、 ザイ リ ンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条件に従う こ とにな り ます。 ザイ リ ンクスの製品は、 フェイルセーフと して、 または、 フェイルセーフの動作を要求するアプ

リ ケーシ ョ ンに使用するために、 設計されたり意図されたり していません。 そのよ う な重大なアプリ ケーシ ョ ンにザイ リ ンクスの

製品を使用する場合のリ スク と責任は、 貴殿または貴社が単独で負う ものです。 https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照して ください。

自動車用のアプリケーシ ョ ンの免責条項

オートモーティブ製品 (製品番号に 「XA」 が含まれる ) は、 ISO 26262 自動車用機能安全規格に従った安全コンセプ ト または余剰性の機能 ( 「セーフティ設計」 ) がない限り、 エアバッグの展開における使用または車両の制御に影響するアプリ ケーシ ョ ン ( 「セーフティ アプリ ケーシ ョ ン」 ) における使用は保証されていません。 顧客は、 製品を組み込むすべてのシステムについて、 その使用前または提供前に安全を目的と して十分なテス ト を行う ものと します。 セーフティ設計なしにセーフティ アプリ ケーシ ョ ンで製品を使用する リ スクはすべて顧客が負い、 製品の責任の制限を規定する適用法令および規則にのみ従う ものと します。

© Copyright 2013-2018 Xilinx, Inc. Xilinx、 Xilinx のロゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこの文書に含まれるその他の指定されたブランドは、 米国およびその他各国のザイ リ ンクス社の商標です。 すべてのその他の商標は、 それぞれ

の保有者に帰属します。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下にある [フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。 フ ィードバッ クは日本語で入力可能です。 いただきましたご意見を参考に早急に対応させていただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

UltraScale アーキテクチャ  メモリ  リソース 126UG573 (v1.9) 2018 年 2 月 9 日 japan.xilinx.com