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

シ ミ ュ レーシ ョ ン モデルでの動作お よ び衝突を確認す る レベルを指定 し ます。 有効な値は、ALL、

GENERATE_X_ONLY、NONE、 お よ び WARNING_ONLY で、 デフ ォ ル ト 値は ALL です。

INIT_FILE

オプシ ョ ンの、 初期内容の RAM 初期化フ ァ イ ルを指 し ます。 値は、 デフ ォ ル ト で NONE、 ま たは STRING (フ ァ イ ル名) です。 フ ァ イ ル形式の詳細は、 ツールのマニ ュ アルを参照 し て く だ さ い。

ブ ロ ッ ク RAM と FIFO の配置

図1-15 に、1 つの RAMB36 に配置可能な上段/下段の組み合わせ、 お よ びフルサ イ ズの RAMB36 の割 り 当て を示 し ます。

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

ブ ロ ッ ク RAM の属性お よ び内容は、 イ ン ス タ ン シエー ト さ れた コ ン ポーネ ン ト 内で generic map (VHDL) ま たは defparam (Verilog) を使用 し て、 合成お よ びシ ミ ュ レーシ ョ ン用に VHDL ま たは Verilog コ ー ド で初期化で き ます。

generic map ま たは defparam の値を変更す る と 、 シ ミ ュ レーシ ョ ン動作 と イ ンプ リ メ ン テーシ ョ ン結果に影響を与え ます。 推論 さ れたブ ロ ッ ク RAM も 初期化可能です。Vivado® Design Suite のテ ンプ レー ト には、RAMB プ リ ミ テ ィ ブ を イ ン ス タ ン シエー ト す る ための コ ー ド が含まれてい ます。

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

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 のみを使用 し ます。

RAMB18E2 および RAMB36E2 のポー ト マ ッ ピ ン グ設計規則

ブ ロ ッ ク RAM は、 さ ま ざ ま なポー ト 幅 と サ イ ズに構成で き ます。 構成に よ っ ては、 一部のデー タ ピ ン と ア ド レ ス ピ ンが未使用 と な り ます。30ページの表1-9 ~ 31ページの表1-12 に、 各構成で使用す る ピ ン を示 し てい ます。 こ れ ら の表の情報 と あわせ、 次の規則に も 基づ く 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 ビ ッ ト 幅です。 ア ド レ ス幅

バイ ト ラ イ ト イ ネーブル

バ イ ト ラ イ ト イ ネーブル機能を使用す る 場合は、 次の規則に従い ます。

• 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] は 使用 し ません。

ブ ロ ッ ク 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 RAM

Output Register

RSTRAM

DOUT RAMEN

EN

REGCE RSTREG RSTRAM

DIN DBRAM

X17309-012617

DBRAM CLK REGCLK

RAMEN

REGCE RSTRAM

RSTREG

DOUT D0 SRVAL(1REG) D1 SRVAL(2REG) SRVAL(1LAT)

D1 D3

D0 SRVAL(1LAT)

X17310-012617

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 D3

D0 SRVAL(1LAT)

X17311-012617

DBRAM = DOUT CLK

RAMEN

RSTLAT

D1 D3

D0 SRVAL(1LAT)

RSTLAT needs RAMEN = 1 to reset the output of the latch

X17312-012617

ビル ト イ ン 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 の ス テー タ ス に反映 さ れ、 必要に応 じ て こ れ ら の フ ラ グがデ ィ アサー ト さ れます。

同様に、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-20 に、 標準モー ド と FWFT モー ド の FIFO 容量を示 し ます。

重要:ブ ロ ッ ク RAM と FIFO にはいずれ も ク リ ーン な フ リ ー ラ ン ニ ン グ ク ロ ッ ク が必要です。FIFO が リ セ ッ ト 状態 の と き に不安定な ク ロ ッ ク が適用 さ れ る と 、FIFO を リ セ ッ ト 状態か ら 回復で き ません。 いずれかの FIFO ク ロ ッ ク が不安定にな っ た場合、CE ピ ン を使用 し て ク ロ ッ ク バ ッ フ ァ ーを適宜無効にす る か、 安定 し た ク ロ ッ ク が回復 し た 後でのみ FIFO を リ セ ッ ト す る こ と を推奨 し ます。 こ れは、 主にギガ ビ ッ ト ト ラ ン シーバーが リ カバ リ ク ロ ッ ク を 失っ た場合 (CDR がア ラ イ メ ン ト を失っ た場合な ど) に実行 し ます。

表 1-20:出力レ ジス タ を使用せず対称ポー ト と し た場合の共通 ク ロ ッ ク 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. モー ド 設定お よ び出力レ ジ ス タ の ス テージに よ っ て多少の変動があ り ます。

関連したドキュメント