AR# 33607

MIG Virtex-6 DDR3/DDR2 - データ バイト配置の入れ替えに関するガイドライン (rtl および UCF 要件)

説明

MIG では、ユーザーがデータ、アドレス/制御、システム制御、システム クロックの配置のためにバンクを選択できます。これらのバンク選択に基づいて、MIG は理想的なピン配置とデザイン配置でデザインを生成します。
『Virtex-6 FPGA Memory Solutions User Guide』 (UG406) には、MIG で生成されたデザインのピンを次のように変更できると記載されています。
  • アドレスおよび制御ピンの割り当ては、必要に応じて互いに入れ替え可能
  • 同じバイト内の DQ と DM ピンの割り当ては、互いに入れ替え可能

これらのピン変更に加え、MIG 出力のデータ バイト (DQS グループ) を入れ替えることもできます。ただし、かなりの変更が必要になります。必要な変更については、このアンサーで説明します。次の手順では、同じ I/O 列 (左中央、右中央など) とピンが使用されていると想定しています。これは、同じピンすべてが使用され、DQS グループが単に入れ替えられることを意味します。

メモ : ISE 12.1 より、MIG には UCF 検証とデザインおよび UCF のアップデート機能が提供されています。このツールで、ユーザー ボードのレイアウトに合わせて MIG で生成された UCF を変更でき、アップデートされた MIG デザインを生成することができます。このフローを使用し、生成されたデザインの RTL パラメータおよび UCF 設定すべてにボードのピン配置が正しく反映されます。MIG デザインの byte[0] が DIMM の byte[3] に配線される場合などは、「論理的」な入れ替えが可能です。PCB を配線しやすくするこの種の入れ替えでは、このアンサーに記述されている変更は必要ありません。

メモ : このアンサー レコードは、ザイリンクス MIG ソリューション センター (ザイリンクス アンサー 34243) の一部です。ザイリンクス MIG ソリューション センターには、MIG に関するすべての質問についての回答が含まれます。MIG でデザインを新しく作成する場合、または問題をトラブルシュートする場合は、このザイリンクス MIG ソリューション センターから情報を入手してください。

ソリューション

手順 1 - ピン LOC の修正

MIG で提供される UCF で DQS グループのピン LOC を入れ替えます。

手順 2 - キャプチャ ロジック制約の修正

MIG で提供される UCF の「Place CPT OSERDES and IODELAY」というコメント ヘッダの下に、LOC 制約のペアがあります (各ペアには OLOGIC と IODELAY LOC が含まれます)。 これらのペアはそれぞれ DQS グループに対応します。2 バイトのこれらの制約例は、次のようになります。
##Site: AJ10 -- Bank 33
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[0].u_oserdes_cpt"
LOC = "OLOGIC_X2Y63";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[0].u_odelay_cpt"
LOC = "IODELAY_X2Y63";
##Site: AD12 -- Bank 33
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[1].u_oserdes_cpt"
LOC = "OLOGIC_X2Y59";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[1].u_odelay_cpt"
LOC = "IODELAY_X2Y59";
制約内でリファレンスされるインデックス (例 : 上記例の "cpt[0]" および "cpt[1]") は DQR グループの入れ替えに従って入れ替えられるべきです。

手順 3 - HDL パラメータの修正

概要 : MIG デザインには最大で 8 個のピン配置特定の最上位レベル パラメータがあります。 これらは、nDQS_COLx および DQS_LOC_COLx パラメータです。 x =0、1、2、3 の場合、デバイスに 4 つある I/O 列の 1 つに対応します (内側左、内側右、外側左、外側右)。x と I/O 列間の必要な相互関係は、[0, 1] が 2 つの内部列に対応するという点のみです (インデックス [0] は左内部列または右内部列のどちらかに対応)。これらのパラメータは DQS グループのグループを指定するので、共通の BUFR が正しい DQS グループの IOB ロジックを駆動します (I/O 列の DQS グループの数に関係なく、1 つの BUFR が同じ I/O 列内の DQ すべてに使用される)。
必要な変更 : これらのパラメータは、DQS グループを 2 つの内部列間で入れ替える場合にのみ変更が必要です (左内部列の 1 バイトと右内部列の 1 バイトを入れ替える場合など)。内部列間での入れ替えがない場合は、これらのパラメータを変更する必要はありません。内部列間で入れ替える場合、これらのパラメータ値を新しいピン配置 (次を参照) に基づいて変更する必要があります。2 列のデザインの場合、使用されるのは nDQS_COL0、DQS_LOC_COL0、nDQS_COL1、DQS_LOC_COL1 のみです。それ以外の 4 つのパラメータは、MIG で 0 に設定されます。
パラメータの詳細 :
パラメータの詳細
パラメータの詳細

例 :
例 1 :
次のように 1 列、9 バイトのデザイン (DDR3 インターフェイスの影部分で表示されているバンク)
1 列の例
1 列の例

最終的なパラメータは、次のように設定する必要があります。
- nDQS_COL0 = 9
- DQS_LOC_COL0 = 72?h080706050403020100
- nDQS_COL1 = nDQS_COL2 = nDQS_COL3 = 0
- DQS_LOC_COL1 = DQS_LOC_COL2 = DQS_LOC_COL3 = 0
例 2 :
2 列、9 バイトのデザイン (DDR3 インターフェイスの影部分で表示されているバンク)バイト [8] [6] [4] [2] [1] [0] が右内部列、バイト [7] [5] [3] が左内部列
2 列の例
2 列の例

最終的なパラメータは、次のように設定する必要があります。
- nDQS_COL0 = 6
- nDQS_COL1 = 3
- DQS_LOC_COL0 = 48?h080604020100
- DQS_LOC_COL1 = 24?h070503
- nDQS_COL2 = nDQS_COL3 = 0
- DQS_LOC_COL2 = DQS_LOC_COL3 = 0

アンサー レコード リファレンス

関連アンサー レコード

AR# 33607
日付 12/15/2012
ステータス アクティブ
種類 一般
デバイス 詳細 概略
IP