UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 53561

Artix-7 FPGA GTP トランシーバーのデザイン アドバイザリ: プロダクション シリコンの RX リセット シーケンス要件

説明

このアンサーでは、Artix-7 FPGA GTP トランシーバーのプロダクション シリコンの RX リセット シーケンス要件について説明します。

ソリューション

Artix-7 GTP プロダクション トランシーバーでは、GTRXRESET、RXPMARESET、または RXRATE を次のシーケンスで発行する必要があります。これらのリセット シーケンスは General ES (エンジニアリング サンプル) でも使用できますが、必須ではありません。

これらのシーケンスは、ISE 14.4.1 デバイス パックまたは ISE 14.5/Vivado 2013.1 ツール バージョンの 7 Series FPGAs Transceivers Wizard v2.5 で生成されたラッパーにインプリメントされます。これらのリセット シーケンスについては、『7 シリーズ FPGA GTP トランシーバー ユーザー ガイド』 (UG482) v1.4 に記載されています。シミュレーションでは、特別な注意が必要です。下の「シミュレーションでの追加要件」セクションを参照してください。

シーケンスの説明で、user_* はユーザー入力を示します。この信号は以前は GT プリミティブに直接接続されていましたが、下記に説明するように、代替リセット シーケンスをトリガーするように変更されました。
gt_* は GT プリミティブへの接続を示します。次の図は、この新しいシーケンスがどこに使用されるかを示しています。
DRP wr はアドレス 9'h011 への DRP 書き込みを実行する関数を示します。正確な DRP トランザクションが表示されているわけではありません。


1) GTRXRESET:

GTRXRESET を実行する場合は、次のリセット シーケンスに従う必要があります。


 

手順:

  1. user_GTRXRESET をアサートしてリセット要求をトリガーします。
  2. gt_GTRXRESET を High に設定して保持します。これにより、gt_RXPMARESETDONE が Low になります。
  3. GTPE2_CHANNEL プリミティブ (DRP アドレス 9'h011) に対して DRP 書き込みを発行し、bit[11] を 1'b0 に設定します。
  4. DRP アドレス 9h'011 の bit[11] だけを変更するには、read-modify-write 関数を実行するのが最適な方法です。
  5. DRP 書き込みが完了して user_GTRXRESET が Low になったことが検出されたら、gt_GTRXRESET を Low に設定して保持します。DRP 書き込みが完了しても user_GTRXRESET がアサートされたままになる場合は、user_GTRXRESET が Low になるまで gt_GTRXRESET をアサートし続けます。
  6. gt_RXPMARESETDONE の立ち下がりエッジを待ちます。
  7. GTPE2_CHANNEL プリミティブ (DRP アドレス 9'h011) に対して DRP 書き込みを発行し、bit[11] の元の設定を復元します。この DRP 書き込みは、gt_RXPMARESETDONE が Low から High に切り替わるよりも前に完了する必要があります。gt_RXPMARESETDONE は 0.66 us 以上 Low のままになります。

注記:

  1. gt_GTRXRESET がレジスタの出力であることを確認してください。
  2. RXPMARESET_TIME は 5'h3 に設定する必要があります。これをデフォルト設定にします。
  3. 上記のシーケンスは、SIM_GTRESET_SPEEDUP が FALSE に設定されている場合にのみ正しくシミュレーションされます。SIM_GTRESET_SPEEDUP が TRUE に設定されている場合は、上記のシーケンスをバイパスする必要があります。

2) RXPMARESET:

RXPMARESET を実行する場合は、次のリセット シーケンスに従う必要があります。


 

手順:

  1. user_RXPMARESET をアサートして RXPMARESET 要求をトリガーします。
  2. GTPE2_CHANNEL プリミティブ (DRPADDR 9h011) に対して DRP 書き込みを発行し、bit[11] を 1'b0 に設定します。
  3. DRPADDR 9h011 の bit[11] だけを変更するには、read-modify-write 関数を実行するのが最適な方法です。
  4. DRP の書き込みが完了したら、gt_RXPMARESET を High に設定して保持します。
  5. RXPMARESETDONE が Low になるのを待ちます。
  6. GTPE2_CHANNEL プリミティブ (DRPADDR 9h011) に対して DRP 書き込みを発行し、bit[11] の元の設定を復元します。
  7. DRP 書き込みが完了して user_RXPMARESET が Low になったことが検出されたら、gt_RXPMARESET を Low に設定して保持します。DRP 書き込みが完了しても user_RXPMARESET がアサートされたままになる場合は、user_RXPMARESET が Low になるまで gt_RXPMARESET をアサートし続けます。

注記: gt_RXPMARESET がレジスタの出力であることを確認してください。

3) RXRATE:

RXRATE を介して RX レートの変更をトリガーする場合は、次のシーケンスに従う必要があります。




手順:

  1. user_RXRATE を変更して RX レートの変更要求をトリガーします。
  2. GTPE2_CHANNEL プリミティブ (DRPADDR 9h011) に対して DRP 書き込みを発行し、bit[11] を 1b0 に設定します。
  3. DRPADDR 9h011 の bit[11] だけを変更するには、read-modify-write 関数を実行するのが最適な方法です。
  4. DRP 書き込みが完了したら、gt_RXRATE を user_RXRATE の値に設定します。
  5. RXPMARESETDONE が Low になるのを待ちます。
  6. GTPE2_CHANNEL プリミティブ (DRPADDR 9h011) に対して DRP 書き込みを発行し、bit[11] の元の設定を復元します。 この DRP 書き込みは、RXPMARESETDONE が Low から High に切り替わるよりも前に完了する必要があります。RXPMARESETDONE は 0.66 us 以上 Low のままになります。


注記:
上記のシーケンスは、SIM_GTRESET_SPEEDUP が FALSE に設定されている場合にのみ正しくシミュレーションされます。SIM_GTRESET_SPEEDUP が TRUE に設定されている場合は、上記のシーケンスをバイパスする必要があります。下の「シミュレーションでの追加要件」セクションを参照してください。

GTP 属性:

上記のシーケンスに従うことに加え、次の属性も正しく設定する必要があります。

PMA_RSV2 = 32h'00002040

シミュレーションでの追加要件

これらのシーケンスは、ハードウェアで正しく動作するよう 7 Series FPGAs Transceivers Wizard で生成されるラッパーにインプリメントされますが、シミュレーションでは RXOUTCLK、RXUSRCLK、および RXUSRCLK2 のクロック レートが正しくなくなることがあります。 

たとえば、8B/10B デコーダーがイネーブルで内部データ幅が 20 の設定では、クロック レートは正しくは GT レートを 20 で割った値ですが、GT レートを 16 で割った値になります。

シミュレーションでのこの動作を回避/バイパスして正しいクロック レートを生成するには、次の手順に従います。

  1. core_name_gtxreset_seq.v/.vhd で DRP アドレス (drpaddr_o) を 2C に設定します。この DRP アドレスは、デフォルトではハードウェアには適切な 11 に設定されています。
    2C の設定は、シミュレーションでの回避策として使用できます。
    Verilog では、core_name_gtrxreset_seq.v の 251 行目と 324 行目を確認してください。
    VHDL では、core_name_gtrxreset_seq.v の 244 行目を確認してください。
    注記: これはシミュレーションでのみ定義し、ハードウェア動作では使用しないでください。たとえば、Verilog では 2C ドレスを `ifdef SIMULATION 内で定義します。

  2. EXAMPLE_SIM_GTRESET_SPEEDUP パラメーターがRTL 階層の gt_channel レベルにも適用されることを確認してください。この手順は、GT Wizard のサンプル デザインで必要です。
  3. EXAMPLE_SIMULATION パラメーターを 1 に設定してください。

これらの変更を加えると、シミュレーションでリセットの約 20 us 以内に正しいクロック レートになります。

改訂履歴

2017/02/14「シミュレーションでの追加要件」を追加
2013/04/12リセット シーケンスのユーザー ガイド バージョンをアップデート
2013/01/31初版

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

マスター アンサー レコード

関連アンサー レコード

AR# 53561
日付 02/17/2017
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス
  • Artix-7
このページをブックマークに追加