• 検索結果がありません。

SLEEP ピ ン を利用す る と 、 ブ ロ ッ ク RAM を長時間使用 し ない場合に動的にパ ワー ゲーテ ィ ン グ機能を制御で き ま す。SLEEP がア ク テ ィ ブ (High) の間は、 両ポー ト の EN ピ ン を Low に維持す る 必要があ り ます。 こ のモー ド の間、

メ モ リ に格納 さ れたデー タ 内容は保持 さ れます。SLEEP_ASYNC モー ド 設定にかかわ ら ず、2 ク ロ ッ ク サ イ ク ルの ウ ェー ク ア ッ プ時間の要件があ り ます。 ウ ェー ク ア ッ プ時間が経過す る 前にブ ロ ッ ク RAM にア ク セ ス し た場合の動 作は保証 さ れず、 メ モ リ の内容が破損す る 可能性があ り ます。 ク ロ ッ ク に対す る こ の ピ ンの動作は、

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

制御ピ ンの反転

各ポー ト の 8 つの制御ピ ン (CLK、EN、RSTREG、RSTRAM) は個別に反転で き ます。EN、RSTREG、RSTRAM 制御 信号はア ク テ ィ ブ High ま たはア ク テ ィ ブ Low の ど ち ら にで も 設定で き (デフ ォ ル ト はア ク テ ィ ブ High)、ア ク テ ィ ブ

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

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

RAMB18/36 の未使用の入力

ブ ロ ッ ク RAM が正常に機能す る には、 未使用の入力ピ ンには特定の定義済み定数入力値が必要です。 未接続の ま ま に し た場合 (Verilog)、Vivado ツールは自動的に こ れ ら の ピ ン を適切な定数値に接続 し ます。 ただ し 、 デザ イ ン で入 力が定数に接続 さ れ る 場合は (VHDL)、表1-14 に示す値が必要です。

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

表 1-14: RAMB18/36 の未使用の入力

RAMB18/36 定数 注釈

ADDRENA 1

ADDRENB 1

CLKARDCLK 0

CLKBRDCLK 0

CLKAWRCLK 0

CLKBWRCLK 0

ENARDEN 0

ENBWREN 0

REGCEAREGCE

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

REGCEB

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

REGCLKARDRCLK 0

REGCLKB 0

RSTREGARSTREG 0

RSTREGB 0

RSTRAMARSTRAM 0

RSTRAMB 0

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-14: RAMB18/36 の未使用の入力 (続き)

RAMB18/36 定数 注釈

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

各ポー ト は、RAMB18E2 か RAMB36E2 かに よ っ て異な る ア ド レ ス指定方法を使用 し 、 同 じ 18,432 個ま たは 36,864 個の メ モ リ セルにア ク セ ス し ます。 特定のポー ト 幅での物理的な RAM の位置は、 次の式に よ っ て決定 さ れます (2 つのポー ト が異な る 比率の場合のみ参照)。

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

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

ブ ロ ッ ク RAM の属性

表1-16 に RAMB18E2 と RAMB36E2 の属性を示 し ます。 すべての属性の コ ー ド 例は、44ページの 「VHDL ま たは Verilog コ ー ド でのブ ロ ッ ク RAM の初期化」 に記載 さ れてい ます。 こ れ ら の属性の使用については、45ページの

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

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

パ リ テ ィ

位置 デー タ 位置

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-16: RAMB18E2 および RAMB36E2 の属性

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

CASCADE_ORDER_A FIRST、MIDDLE、

LAST、NONE NONE 文字列

カ ス ケー ド 接続 し たポー ト A のブ ロ ッ ク RAM の順番を、 最下段か ら 最上段の順に指定 し ます。

CASCADE_ORDER_B FIRST、MIDDLE、

LAST、NONE NONE 文字列

カ ス ケー ド 接続 し たポー ト B のブ ロ ッ ク RAM の順番を、 最下段か ら 最上段の順に指定 し ます。

CLOCK_DOMAINS INDEPENDENT、

COMMON INDEPENDENT 文字列

ポー ト 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 の すべての出力に適用 さ れます。

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 の読み出 し ア ド レ ス比較 機能を有効にす る か ど う かを指定

し ます。

表 1-16: RAMB18E2 および RAMB36E2 の属性 (続き)

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

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 モー ド では使用 し ません。

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ページの 「書 き 込み モー ド 」 を参照 し て く だ さ い。

表 1-16: RAMB18E2 および RAMB36E2 の属性 (続き)

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

デー タ カ スケー ド – 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 はユー WRITE_WIDTH_A

RAMB18E2: 0、1、

2、4、9、18 RAMB36E2: 0、1、

2、4、9、18、36

0 10 進数

パ リ テ ィ ビ ッ ト を含む書き込み ポー ト A のデー タ幅を指定 し ます。

ポー ト を使用 し ない場合は 0 と す る必要があ り ます。SDP メ モ リ と し て使用する場合は無効です。

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-16: RAMB18E2 および RAMB36E2 の属性 (続き)

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

INIT_xx 属性では、 最初の メ モ リ 内容を定義 し ます。 ブ ロ ッ ク RAM は、 デフ ォ ル ト では、 デバ イ ス の コ ン フ ィ ギ ュ レーシ ョ ン シーケ ン ス中にすべて 0 に初期化 さ れます。RAMB18E2 では INIT_00 ~ INIT_3F の 64 個の初期化属性を 使用 し 、RAMB36E2 では INIT_00 ~ INIT_7F の 128 個の初期化属性を使用 し て、 通常の メ モ リ 内容を指定 し ます。

各 INIT_xx は、16 進数で表 し た 64 桁のビ ッ ト ベ ク タ ーです。 一部の内容だけ を初期化す る こ と も 可能です。 こ の場 合、 初期値を指定 し た部分以外は自動的に 0 にな り ます。

各 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-17 に例を示 し ます。

表 1-17:ブ ロ ッ ク 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

関連したドキュメント