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
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス