Virtex-7 GTH 製品版トランシーバーが次のようにコンフィギュレーションされる場合に GTRXRESET、RXPMARESET、または RXRATE を発行するには、次のシーケンスに従う必要があります。
1. RXOUT_DIV = 2、4、8 または 16
および
2. RX 内部データ幅は 20 または 40 ビット (RX_DATA_WIDTH = 20、40 または 80)
その他のモードの場合、このシーケンスは必須ではありませんが、サポートされています。
これらのリセット シーケンスは General ES (エンジニアリング サンプル) でも使用できますが、その場合、必須ではありません。 これらのシーケンスは、ISE 14.5/Vivado 2013.1 ツール バージョンの 7 Series FPGAs Transceivers Wizard v2.5 で生成されたラッパーにインプリメントされます。リセット シーケンスについては、『7 シリーズ FPGA GTX/GTH トランシーバー ユーザー ガイド』 (UG476) の次のバージョン v1.9 に記載されています。
これらのシーケンスでは、''user_*'' はユーザー入力を示します。この信号は以前は GT プリミティブに直接接続されていましたが、下記に説明するように、代わりのリセット シーケンスをトリガーするようになりました。
''gt_*'' は GT プリミティブへの接続を示します。次の図は、この新しいシーケンスがどこに使用されるかを示しています。
''DRP wr'' はアドレス 9'h011 への DRP 書き込みを実行する関数を示します。 正確な DRP トランザクションが表示されているわけではありません。
1. GTRXRESET :
GTRXRESET を実行する場合は、次のリセット シーケンスに従う必要があります。
手順 :
- user_GTRXRESET をアサートしてリセット リクエストをトリガーします。
- gt_GTRXRESET を High に設定してホールドします。これにより、gt_RXPMARESETDONE は Low になります。
- GTHE2_CHANNEL プリミティブ (DRP アドレス 9'h011) に対して DRP 書き込みを発行して、bit[11] を 1'b0 に設定します。
注記 : DRP アドレス 9h'011 の bit[11] だけを変更するには、read-modify-write 関数を実行するのが最適な方法です。
- DRP 書き込みが終了して user_GTRXRESET が Low であると検出されたら、gt_GTRXRESET を Low に設定してホールドします。DRP 書き込みが終了したときに user_GTRXRESET がアサートされたままになる場合は、user_GTRXRESET が Low になるまで gt_GTRXRESET をアサートし続けます。
- gt_RXPMARESETDONE の立ち下がりエッジを待ちます。
- GTHE2_CHANNEL プリミティブ (DRP アドレス 9'h011) へ DRP 書き込みを発行し、bit[11] の元の設定を復元します。 この DRP 書き込みの終了は、RXPMARESETDONE が Low から High に切り替わるよりも前に発生する必要があります。RXPMARESETDONE は最低 0.66 us 間は Low のままになります。
注:
- 必ず gt_GTRXRESET がレジスタの出力になるようにしてください。
- RXPMARESET_TIME は 5'h3 に設定する必要があります。これを必ずデフォルト設定にします。
- 上記のシーケンスは、SIM_GTRESET_SPEEDUP が FALSE に設定されていて、UNISIM ライブラリの GT 論理シミュレーション モデルが使用されている場合にのみ正しくシミュレーションされます。 SIM_GTRESET_SPEEDUP が TRUE に設定される場合または UNISIM ライブラリの GT 論理シミュレーション モデルが使用されている場合、上記のシーケンスはバイパスされる必要があります。
2. RXPMARESET :
RXPMARESET を実行する場合は、次のリセット シーケンスに従う必要があります。
手順 :
- user_RXPMARESET をアサートして RXPMARESET リクエストをトリガーします。
- GTHE2_CHANNEL プリミティブ (DRP アドレス 9'h011) に対して DRP 書き込みを発行して、bit[11] を 1'b0 に設定します。
注記 : DRP アドレス 9h'011 の bit[11] だけを変更するには、read-modify-write 関数を実行するのが最適な方法です。
- DRP の書き込みが終了したら、gt_RXPMARESET を High に設定およびホールドします。
- RXPMARESETDONE が Low になるのを待ちます。
- GTHE2_CHANNEL プリミティブ (DRP アドレス 9'h011) へ DRP 書き込みを発行し、bit[11] の元の設定を復元します。
- DRP 書き込みが終了して user_RXPMARESET が Low であると検出されたら、gt_RXPMARESET を Low に設定してホールドします。DRP 書き込みが終了したときに user_RXPMARESET がアサートされたままになる場合は、user_RXPMARESET が Low になるまで gt_RXPMARESET をアサートし続けます。
注記 : 必ず gt_RXPMARESET がレジスタの出力になるようにしてください。
3. RXRATE :
RXRATE を介して RX レート変更をトリガーする場合は、次のシーケンスに従う必要があります。
手順 :
- user_RXRATE を変更して RX レート変更リクエストをトリガーします。
- GTHE2_CHANNEL プリミティブ (DRP アドレス 9'h011) に対して DRP 書き込みを発行して、bit[11] を 1'b0 に設定します。
注記 : DRP アドレス 9h'011 の bit[11] だけを変更するには、read-modify-write 関数を実行するのが最適な方法です。
- DRP 書き込みが終了したら、gt_RXRATE を user_RXRATE の値に設定します。
- RXPMARESETDONE が Low になるのを待ちます。
- GTHE2_CHANNEL プリミティブ (DRP アドレス 9'h011) へ DRP 書き込みを発行し、bit[11] の元の設定を復元します。 この DRP 書き込みの終了は、RXPMARESETDONE が Low から High に切り替わるよりも前に発生する必要があります。RXPMARESETDONE は最低 0.66 us 間は Low のままになります。
注:
- 上記のシーケンスは、SIM_GTRESET_SPEEDUP が FALSE に設定されていて、UNISIM ライブラリの GT 論理シミュレーション モデルが使用されている場合にのみ正しくシミュレーションされます。 SIM_GTRESET_SPEEDUP が TRUE に設定される場合または UNISIM ライブラリの GT 論理シミュレーション モデルが使用されている場合、上記のシーケンスはバイパスされる必要があります。
- RXRATE 変更に関してここに示される手順は、まだハードウェアでテストおよび検証中です。
改訂履歴
2013/04/12 - リセット シーケンスを含むユーザー ガイドのバージョンをアップデート
2013/02/20 - 正しい GTH モードの組み合わせ (新しいリセットが必要) を示すように冒頭部分をアップデート
2013/01/31 - 初版