AR# 33995

MIG 3.3、Virtex-6 FPGA DDR3 - IDELAYCTRL がソフトウェアで自動的に推論されないためライト レベリングが完了せず、キャリブレーションでエラーが発生する

説明

ハードウェアでマルチ コンポーネントまたは DIMM Virtex-6 FPGA DDR3 MIG デザインを実行すると、ライト レベリングが完了せず、キャリブレーションでエラーが発生します。このライト レベリング エラーは、次のように検出できます。
  • FPGA 出力で DQS がトグルしていない。
  • DQ の遷移が検出されない。
  • phy_dly_ctrl.v モジュールにある dlyval_dqs_early 信号が常に 0。

キャリブレーション エラーは、次のように検出できます。

phy_init_done がアサートされない。

ソリューション


ライト レベリングが完了しない場合、IDELAYCTRL ブロックが正しく配置されているかどうかを確認することが重要です。インプリメンテーション ツールで IDELAYCTRL ブロックが正しく複製されないという問題があり、現在調査中です。

MIG デザインでは、iodelay_ctrl.v に IDELAYCTRL がインスタンシエートされており、IODELAY_GROUP パラメータがイネーブルになっています。このコンフィギュレーションの場合、IODELAY が使用されている各バンクでこのブロックが複製されるべきです。

MIG デザインでは、IODELAY コンポーネントはキャプチャ クロック ロジックおよび再同期化クロック ロジックで使用されます。そのため、キャプチャ ロジックまたは再同期化ロジックが配置されているバンクに IDELAYCTRL が必要です。キャプチャ クロック ロジックは常にデータ グループと同じバンクに配置されますが、再同期化ロジックは、データ バンクに加え、アドレス/制御およびシステム クロック バンクに配置されることがあります。rsync (BUFR) の分配規則については、『Virtex-6 メモリー インターフェイス ソリューション ユーザー ガイド』 (UG406) を参照してください。 再同期化ロジックがデータ バンク以外のバンク (アドレス/制御またはシステムクロック) に配置されると、インプリメンテーション ツールでこれらのバンクに IDELAYCTRL が正しく割り当てられません。

この問題を回避するには、IODELAY が使用されるすべてのバンクに IDELAYCTRL を手動でインスタンシエートし、LOC 制約を設定します。

1. IDELAYCTRL をインスタンシエートするには、iodelay_ctrl.v を次のように変更します。
//Begin Edit

(* IODELAY_GROUP = IODELAY_GRP *) IDELAYCTRL u_idelayctrl_0
(
.RDY (iodelay_ctrl_rdy_0),
.REFCLK (clk_ref_bufg),
.RST (rst_ref)
);

IDELAYCTRL u_idelayctrl_1
(
.RDY (iodelay_ctrl_rdy_1),
.REFCLK (clk_ref_bufg),
.RST (rst_ref)
);


assign iodelay_ctrl_rdy = iodelay_ctrl_rdy_0 && iodelay_ctrl_rdy_1;

//End Edit
メモ : この例は 2 つの IDELAYCTRL を必要とする MIG デザインのものであり、IODELAY コンポーネントを使用するバンクの数によって、追加の IDELAYCTRL をインスタンシエートする必要があります。

2. 次のように、UCF で各 IDELAYCTRL # に LOC 制約を設定します。
INST "u_iodelay_ctrl/u_idelayctrl_#" LOC = IDELAYCTRL_X_Y_;

メモ : XY 座標を判断するには、FPGA Editor を使用して IDELAYCTRL が必要な各バンクで IDELAYCTRL を検索してください。ブロックをクリックすると、コンソール ウィンドウに座標 (IDELAYCTRL_X_Y_) が表示されます。

この問題は、MIG v3.4 を使用する ISE 12.1 ソフトウェア以降で修正されています。
AR# 33995
日付 12/15/2012
ステータス アクティブ
種類 一般
デバイス 詳細 概略
IP