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

PHY からコントローラへのインタフェース

次の項では、ALTMEMPHYバリエーションに接続される標準的なモジュールおよび各 モジュールの使用を付加するポート名について説明します。また、この項ではカス タム・コントローラを使用して説明します。この項では、AFIについて説明します。

AFIはすべてのアルテラのメモリ設計者に対してコントローラとPHY間のインタ フェースを標準化し簡素化します。したがって、アルテラの高性能コントローラで、

独自のコントローラ・コードを容易に交換することができます。 AFIはキャリブレー ション用にメモリをコンフィギュレーションする管理ブロックを含めて、必要に応 じてメモリをコンフィギュレーションするのに必要なモード・レジス・タアクセス を実行します(キャリブレーション・プロセスは異なります)。 図 5–13に、PHY、コ ントローラ、およびメモリ・デバイスとの接続の概要を示しています。

1 アルテラでは、新しいデザインに対するAFIの使用を推奨しています。

MEM_IF_BANKADDR_WIDTH メモリ・デバイスのバンク・アドレス幅。

MEM_IF_CS_WIDTH インタフェースでのチップ・セレクト数。 シーケンサは1つのチップ・セレ クト・ピンのみをキャリブレーションします。

MEM_IF_DM_WIDTH メモリ・インタフェースのmem_dmピンの総数。

MEM_IF_DQ_PER_DQS mem_dqsピンあたりのmem_dq[]ピンの数。

MEM_IF_CLK_PAIR_COUNT インタフェースでのmem_clk/mem_clk_nペアの数。

表 5‒8. パラメータ ( その 2 )

パラメータ名 説明

図 5‒13. AFI PHY の接続

AFI コントローラ local_wdata

local_rdata

ctl_addr ctl_cas_n ctl_we_n

ctl_rdata

Admin

シーケンサ AFI PHY

mem_dqs mem_dq

DDR3 SDRAM アルテラのデバイス

5–42 第 5 章 : 機能の説明 ̶ALTMEMPHY PHY からコントローラへのインタフェース

ハーフ・レート・デザインの場合、ALTMEMPHYメガファンクションでのアドレスお よびコマンド信号はアドレスあたりのビットとハーフ・レート・デザインのコマン ド・ピンがあるように、1つのmem_clk サイクル(1Tアドレッシング)にアサート されます。 より慎重な2Tアドレシングが必要である場合、ハーフ・レート・デザイ ンに(アドレス、およびコマンド信号の)入力ビットの両方を同様にドライブしま す。

AFI付きDDR3 SDRAMに対して、リードおよびライト・コントロール信号はDQSあ

たりのグループ単位にあります。コントローラはキャリブレーションできて、使用

可能なDDR3 SDRAMデバイスのサブセットを使用できます。 例えば、より良いデ

バッグするメカニズムに対して、64ビットまたは72ビットDIMMから2つのデバイ スです。

ハーフ・レート・デザインの場合、AFIはコントローラがハーフ・レートphy_clk のハーフ・サイクルのいずれかにアラインメントされるリードおよびライトを発行 することができます。これは、データパスが複数のデータ・アラインメント(ワー ド・非アラインメントおよびワード・アラインメント・ライトとリード)をサポー トできます。 図 5–14および図 5–15に、ハーフ・レート・ライト動作を表示します。

図 5–16に、フル・レート・ライトを示します。

図 5‒14. ワード・アラインメントされていないデータ付きハーフ・レート・ライト

図 5‒15. ワード・アラインメントされたデータ付きハーフ・レート・ライト

00 11 01 00

00

11 01

10 00

-- a x cb xd

ctl_clk

ctl_dqs_burst

ctl_wdata_valid

ctl_wdata

00 10 11 00

00 11 00

-- ba dc

--ctl_clk

ctl_dqs_burst

ctl_wdata_valid

ctl_wdata

第 5 章 : 機能の説明 ̶ALTMEMPHY 5–43 PHY からコントローラへのインタフェース

キャリブレーションが完了すると、シーケンサはクロック・サイクル数でのライト・

レイテンシをコントローラに送信します。

図 5–17に、フル・レート・リードを示します;図 5–18に、ハーフ・レート・リー ドを示します。

図 5‒16. フル・レート・ライト

-- a b

--ctl_clk

ctl_dqs_burst

ctl_wdata_valid

ctl_wdata

図 5‒17. フル・レート・リード

ctl_rlat = 9

1 2 3 4 5 6 7 8 9

clock ctl_addr ctl_cs_n ctl_doing_rd mem_dqs mem_dq ctl_rdata_valid ctl_rdata

5–44 第 5 章 : 機能の説明 ̶ALTMEMPHY PHY からコントローラへのインタフェース

図 5–20および図 5–21に、ワード・アラインメントされたライトおよびリードを示

します。 以下のリードおよびライトの例では、データは同じアドレスに書き込まれ

て、同じアドレスから読み出されます。 各例では、ctl_rdataおよびctl_wdata はコントローラ・クロック(ctl_clk)サイクルにアラインメントされます。ビッ ト・ベクトルでのすべてのデータは同時に有効です。比較のために、ワード・アラ インメントされていないライトおよびリードを示す図 5–21および図 5–22を参照し てください。

1 ctl_doing_rdはPHYに渡されると、ハーフ・レート信号として表されます。 した がって、このビット・ベクトルの下半分は1メモリ・クロック・サイクルを表し、

上半分は次のメモリ・クロック・サイクルを表します。 5–49ページの 図 5–22に、2 つのctl_doing_rdビットの例が異なるとき、分離するワード・アラインメントさ れていないリードを示します。 したがって、各x16 デバイスでは、少なくとも2 ctl_doing_rdビットをドライブする必要があり、また、2 ctl_rdata_valid ビットは解釈される必要があります。

AFIには次の表記規則が含まれています。

AFIで、HighとLow信号は1つの信号に組み合わせ、そして、シングル・チップ・セ

レクト(ctl_cs_n)インタフェース;ctl_cs_n[1:0]の場合、0の位置は

1mem_clkサイクルのメモリ・バスで表示されて、1の位置は次のmem_clkサ

イクルで表示されます。

1 この規則はすべての信号に維持されていおり、そして8ビット・メモリ・

インタフェースの場合、ライト・データ(ctl_wdata)信号は ctl_wdata[31:0]です。ここで、DQピンの最初のデータは ctl_wdata[7:0]であり;次にctl_wdata[15:8]、

ctl_wdata[23:16]、およびctl_wdata[31:24]です。

図 5‒18. ハーフ・レート・リード

clock ctl_addr ctl_cs_n ctl_doing_rd mem_dqs mem_dq ctl_rdata_valid ctl_rdata

AX XA

10

10 01

10 01

DX XD

ctl_rlat = 9

1 2 3 4 5 6 7 8 9

第 5 章 : 機能の説明 ̶ALTMEMPHY 5–45 PHY からコントローラへのインタフェース

ワード・アラインメントおよびワード・非アラインメントリードとライトは、以 下の定義があります。

位置1(_l)におけるシングル・チップ・セレクトのワード・アラインメントは

アクティブ(Low)です。 書き込みが発生する際、ctl_cs_n[1:0] = 01で

す。 このアラインメントは設計する中で最も簡単なアラインメントです。

ワード・非アラインメントは逆であり;そして、リードおよびライトが発生 しおよび他のコントロールとデータ信号は連続ctl_clkサイクルに分配され るときにctl_cs_n[1:0] = 10です。

1 アルテラの高性能コントローラはワード・アラインメントされたデータの みを使用します。

タイミング解析スクリプトはワード・非アラインメントされたリードおよ びライトをサポートしません。

ワード・非アラインメントされたリードおよびライトはStratix IIIおよび

Stratix IVデバイスにのみをサポートされます。

空間リードおよび空間ライトは、以下の定義があります。

空間ライト—1つのコントローラ・クロック(ctl_clk)サイクルのギャップに よって分離するライト・コマンド

空間リード—1つのコントローラ・クロック(ctl_clk)サイクルのギャップに よって分離するリード・コマンド

図 5–19~図 5–22に、以下の一般ポイントを仮定します。

バースト・レングスが4です。 DDR2 SDRAMが使用されます—DDR3デバイスに対し てインタフェースのタイミングは同じです。

1チップ・セレクト付き8ビット・インタフェース。

1つのコントローラ・クロック(ctl_clk)サイクルのデータは2つのメモリ・ク

ロック(mem_clk)サイクル(ハーフ・レート・インタフェース)のデータを表

します。

5–46 第 5 章 : 機能の説明 ̶ALTMEMPHY PHY からコントローラへのインタフェース

図 5‒19. ワード・アラインメントされたライト

5–19の注:

(1) ctl_cs_nの偶数のアラインメントを示すには、信号を展開します(この規則は他のすべての信号に適用します) (2) ctl_dqs_burstは、ctl_wdata_validの前に1メモリ・クロック・サイクルのHighになる必要があります。

(3) ワード・アラインメントされていないケースと比較します。チップ・セレクト(ctl_cs_n)がアサートされると、

ctl_wdata_valid2つのctl_wlatコントローラ・クロック(ctl_clk)サイクルにアサートされます。ctl_wlatはシステ ムの必要なライト・レイテンシを示します。この値はキャリブレーション中に決定され、そしてアドレスとコマンド・パス、

かつPHYおよび外部DDR SDRAMサブシステムの両方のライト・データパスの相対的な遅延時に依存します。コントローラは、

ctl_cs_nをドライブして、次にctl_wdata_validをドライブする前にctl_wlat(この例では2つ)ctl_clkを待ちます。

(4) ライト・データのオーダリング(ctl_wdata)を観察します。これをmem_dq信号でのデータと比較します。

(5) すべての波形では、発行される現在のコマンドにメモリ・ピンras_n、cas_nおよびwe_nを組み合わせるコマンド・レコー ドが追加されます。このコマンドは、チップ・セレクト(mem_cs_n)Lowのとき、メモリによって登録されます。表される 波形で重要なコマンドはWR =ライト(write)、ACT =アクティブ(activate)です。

ctl_clk

(4) (2)

(1)

ctl_wlat ctl_ras_n ctl_cas_n ctl_we_n ctl_cs_n ctl_dqs_burst ctl_wdata_valid ctl_wdata ctl_addr Memory Interface mem_clk command (Note 5) mem_cs_n

mem_dqs mem_dq

(3)

00

00 11

2

11

11 00

11

11 00

11

11 01 11 01 11

00

00 10 11 10 11 00

00

00 11 00 11

00000000

00000000 03020100 07060504 0b0a0908 0f0e0d0c

00000000

00000000 0020008

ACT

ACT WR

第 5 章 : 機能の説明 ̶ALTMEMPHY 5–47 PHY からコントローラへのインタフェース

図 5‒20. ワード・アラインメントされたリード

5–20の注:

(1) AFIの場合、ctl_doing_rdはチップ・セレクト(ctl_cs_n)がアサートされる前に、1クロック・サイクルにアサートされ

る必要があります。 ハーフ・レートctl_clkドメインで、この要件はctl_doing_rd上でコントローラ・ドライブ11(01 とは異なり)として現れます。

(2) AFIには、ctl_doing_rdはリードの持続時間にドライブされることを必要とします。 この例では、2つのハーフ・レート

ctl_clksの場合、11にドライブされます。これは、4ビート・バースの4メモリ・クロック・サイクルの場合1にドライブする と一致しています。

(3) ctl_rdata_valid はctl_doing_rdがアサートされた後、15(ctl_rlat)コントローラ・クロック(ctl_clk)サイクルを 返します。 コントローラ内のレジスタの出力におけるctl_rdata_valid信号は観測されるときに返されます。コントローラ はデータの登録および返し時間を決めるために、ctl_rlat値を使用できますが、リード・データを登録するとき、

ctl_rdata_validはイネーブルとして使用するコントローラに提供するので、これが不要です。

(4) バス上のデータに対して返したリード・データのアラインメントを観測します。

ctl_clk ctl_rlat ctl_ras_n ctl_cas_n ctl_we_n ctl_cs_n ctl_doing_rd ctl_rdata_valid ctl_rdata ctl_ba ctl_addr ctl_dm Memory Interface mem_clk command mem_cs_n mem_dqs mem_dq

15 11

0 00

00 11

11

11 01 11 01 11

00

00 11 00 11 00

00

00 11 00 11 00

FFFFFFFF FFFFFFFF

00

0000000 0020008

ACT RD

(1) ( 2) (3) (3)

(4)