この項では、以下の内容について説明します。
■ 3–5ページの「データパス」
■ 3–15ページの「PLLコンフィギュレーション」
■ 3–19ページの「DLLコンフィギュレーション」
■ 3–20ページの「デザイン例」
■ 3–22ページの「制約」
データパス
Stratixシリーズでは、DDRおよびDDR2 SDRAMコントローラは、ラ イトおよびリード方向で入力出力エレメント(IOE)レジスタを使用し ます。リード方向では、位相シフト・リファレンス回路が、DQリード・
データのサンプリングに使用する各 DQS でのプロセス、電圧、温度
(PVT)補償された遅延を提供します。Cyclone シリーズでは、DDR
SDRAMコントローラは、ロジック・エレメント(LE)レジスタを使用
して、グループ全体で一貫したタイミングを保証します。適切なDQS遅 延は、Cycloneシリーズのプログラマブル遅延によって生成され、その 値は制約スクリプトで設定されます。
リード方向では、DQ ピンからのダブル・レート・データは、正および 負エッジでトリガされるレジスタに供給され、DQS の両方のエッジで データがサンプリングされます。次に、これらの信号は、コンフィギュ レーション可能な別のレジスタ・セットを通過して、これらをシステム・
クロック・ドメインに返します。IP Toolbenchタイミング解析は、DQS クロック・ドメインからシステム・クロック・ドメインへの遷移(再同 期化)を設定します。システム・クロックの正エッジを再同期クロック
として使用することから、リード・データをシステム・クロック・ドメ インに安全に返すためにさらに1個以上のレジスタ・セットが必要にな る、より複雑なケースまで、多様なオプションがあります。
再同期化について詳しくは、A–4ページの「再同期」を参照してください。
ライト方向では、wdata_valid 信号は、local_wdataレジスタのイ ネーブルとして働きます。これらのレジスタの出力は、IOEのレジスタ にクロックされ、そこからDQピンに供給されます。IOEのレジスタは、
ライト・クロック(システム・クロックより位相が90°早い)によって クロックされます。これにより、データパスで生成されるDQSが、DQ ピンのデータの中央に現れます。ライト DQS は、tDQSS パラメータが
DDRまたはDDR2 SDRAMデバイスで条件を満たすように、システム・
クロックでクロックされるレジスタから生成されます。
表3–3に、データパスへのインタフェースを示します。
表3–3.データパス・インタフェース (1/2)
信号名 方向 説明
control_doing_wr 入力 control_doing_wr信号は、コントローラがDDRまたは
DDR2 SDRAMへの書き込み中にアサートされ、DQピン
の出力イネーブルを制御します。
control_wdata_valid 入力 control_wdata_valid信号は、ローカル・インタフェー スへのライト・データ要求のクロックに同期した信号で す。この信号は、ライト・データとバイト・イネーブル・
レジスタをイネーブルし、有効データとイネーブルがあ る場合にのみ、それらが更新されるようにします。
control_dqs_burst 入力 control_dqs_burst信号は、DQSピンの出力イネーブル を制御します。DQS 出力イネーブルは、特にローカル・
バースト・サイズがメモリ・バースト長よりも短いとき には、DQ出力イネーブルよりも長くアサートする必要が あります。
control_wdata[] 入力 control_wdata 信号はライト・データ・バスであり、
control_wdata_valid がアサートされるのと同じク ロック・サイクルで有効なデータを持つ必要があります。
control_be[] 入力 control_be 信号はバイト・イネーブル・バスであり、
control_wdata_valid がアサートされるのと同じク ロック・サイクルで有効なデータを持つ必要があります。
図3-3に、データパスのタイミング(CASレイテンシが2.0)を示しま す。
図3-3. データパス・タイミング
control_doing_rd 入力 control_doing_rd信号は、コントローラがDDRまたは
DDR2 SDRAM から読み出しているときアサートされ、
DQキャプチャ・レジスタをイネーブルします。また、こ の信号は、ポストアンブル・コントロール・レジスタを 制御して、DQキャプチャ・レジスタがDQSリード・ポ ストアンブル後に誤ってクロックされるのを防止しま す。
control_rdata[] 出力 control_rdataバスはリード・データ・バスで、リード・
コマンドが発行された後何クロック・サイクルかの間、有 効なデータが存在する必要があります。正確な関係は、メ モリのCASレイテンシと、レジスタ付きDIMMが使わ れているか否かによります。
表3–3.データパス・インタフェース (2/2)
信号名 方向 説明
clk
Write Interface
control_doing_wr control_wdata_valid
control_wdata control_be
Read Interface
control_doing_rd control_rdata
DDR SDRAM Interface
DDR Command ddr_dm ddr_dq ddr_dqs control_dqs_burst
A269 32A0 4671 31F531F5
1 0 3 00
AD75 D739D31D3A503A50
NOP ACT NOP RD NOP PCH NOP ACT NOP WRWR NOP
[1] [2] [3] [4]
1. コントローラは、control_doing_rdをアサートしてDQ入力レ ジスタをイネーブルして、リード・データがキャプチャされるよう にします(データパスはこの信号を遅延させて CAS レイテンシと 一致させる)。このケースでは、4サイクルのリード・データを期待 しているため、4 クロック・サイクルの間信号はアサートのまま保 持されます。バーストの終了時に、この信号がデアサートされてDQ キャプチャ・レジスタをディセーブルします。これにより、DQキャ プチャ・レジスタが DQS リード・ポストアンブル後に不必要にク ロックされるのを防止します。
2. コントローラ・ステート・マシンは書き込み中であると判断すると、
直ぐにcontrol_wdata_valid信号をアサートします。この信号 はこのように早い段階でアサートする必要はありません。ただし、
この例では、コントローラのデザインが単純化されます。ライト・
データは、そのクロック・サイクルでのみ有効で、書き込みが発生 するまでwdataレジスタに保持されます。
3. コントローラは、control_doing_wr をバーストの間(4 ビート)
アサートして、書き込み中であることを示します。この信号は、DQ 信号の出力イネーブルを制御します。
4. コントローラは現在メモリに書き込み中であることが分かると、
control_wdata_validを再アサートして次のライト・データを要 求します。
DDR2 SDRAMを使用して独自のコントローラを設計する
場合は、control_doing_wr 信号の生成時に、可変のラ イト・レイテンシを考慮する必要があります。
独自のコントローラの設計
リード・コマンドを発行するステート・マシンは、control_doing_rd を生成します。この信号は、リード・コマンドがメモリに発行されると 開始され、バーストの間アサート状態を維持します。これは、以下のオ プションに対応するために、コントローラ内部で遅延されます。
■ Insert pipeline registers on address and command outputs(アドレ スおよびコマンド出力にパイプライン・レジスタを挿入する)
■ Registered DIMM(レジスタ付きDIMM)
■ Insert extra pipeline registers in the datapath(追加パイプライン・
レジスタをデータパスに挿入する)
のパイプラインの最後のレジスタがポストアンブル・コントロール・レ ジスタに供給されます。独自のコントローラを設計する場合は、適切な CAS レイテンシのデータパスを生成する必要があります。そうでない と、このパイプラインは正しい長さになりません。
キ ャ プ チ ャ・レ ジ ス タ の イ ネ ー ブ ル と デ ィ セ ー ブ ル
(control_doing_rd信号で制御される)は、RTLシミュレーションで ディセーブルされます。これは、RTLシミュレーションの動作はシステ ムでのタイミングに大きく依存するためです。したがって、RTLシミュ レ ー シ ョ ン で は、キ ャ プ チ ャ・レ ジ ス タ は 常 に イ ネ ー ブ ル さ れ、
control_doing_rd 信号のタイミングが変化してもデータパスの動作 は変わりません。独自のコントローラを設計する場合、ゲート・レベル・
シミュレーションを使用して、この信号の正確なタイミングをテストす る必要があります。
control_doing_rdを生成するソースと同じソースで
local_rdata_valid信号を生成します。この信号はコントローラ内部 で同じ時間だけ遅延させます。また、この信号は以下のデータパス・オ プションを考慮して遅延させます。
■ Reclock resynchronized data to the positive edge(再同期データを 正エッジに再クロックする)
■ Insert intermediate resynchronization registers(中間再同期レジス タを挿入する)
また、local_rdata_valid 信号は 4 + R サイクルだけ遅延させます
(ここで、Rは、ウィザードが予測する再同期サイクル)。例えば、再同 期サイクルが2、Reclock resynchronized data to the positive edgeがオ ン、Insert intermediate resynchronization registers がオ フの 場合、
local_rdata_valid信号はcontrol_doing_rd信号よりも7サイク ル(4 + 2 + 1 + 0 = 7)遅れる必要があります。
control_doing_wr信号は、DQおよびDQSピンの出力イネーブルを制 御します。この信号は、ライト・コマンドを発行するステート・マシン が生成し、以下のオプションに対応するためにコントローラ内部で遅延 されます。
■ Insert pipeline registers on address and command outputs(アドレ スおよびコマンド出力にパイプライン・レジスタを挿入する)
■ Registered DIMM(レジスタ付きDIMM)
■ Insert extra pipeline registers in the datapath(追加パイプライン・
レジスタをデータパスに挿入する)
DDR SDRAMの場合、ライト・レイテンシは1クロック・サイクルに固 定されています。control_doing_wr 信号は、メモリにライト・コマ ンドを発行すると開始するようにし、バースト長の間アサートされたま まの状態であることが必要です。
DDR2 SDRAMの場合、ライト・レイテンシはCASレイテンシに応じて
変化します。コントローラはこれを考慮し、control_doing_wr 信号 を遅延させて一致させます。control_doing_wr 信号は、ライト・コ マンドが発行された(CASレイテンシ-2)クロック後に発行し、バース ト長の間アサートされたままにする必要があります。
コントローラがDDR2 SDRAMモードの場合、control_doing_wrお よびcontrol_wdata_valid信号は、コントローラからの出力で全く 同じ信号です。コントローラがフル・サイズのライト・バーストを発行 している場合、control_dqs_burst 信号はcontrol_doing_wr よ りも1クロック・サイクル長く発行する必要があります。コントローラ が メ モ リ・バ ー ス ト 長 の 全 長 で 書 き 込 ま な い 場 合 は、
control_dqs_burst 信号をアサート状態に維持することによって、
DQSをバーストの全長でトグルさせる必要があります。
DQSグループのブロック図
3–11ページの図3-4に、Stratix II DQS グループのブロック図を示しま す。3–12ページの図3-5に、Stratix DQSグループのブロック図を示し ます。3–13ページの図3-6に、Cyclone II DQSグループのブロック図を 示します。3–14ページの図3-7に、Cyclone DQSグループのブロック図 を示します。