AR# 31968

Virtex-5 GTX RocketIO - レート変更ロジックのインプリメンテーションの手順

説明

キーワード : PCIe, SATA, Ethernet, gen2, gen 2, rate, line rate, DRP, GTX, negotiation, autonegotiation, イーサネット, レート, ライン レート, ネゴシエーション

プロトコルの多くには、特定システムでどの速度で動作するかをネゴシエートする機能が含まれます。GTX RocketIO トランシーバには、ライン レート、内部ドライバ設定、その他をダイナミックに変更し、レートを変更する機能があります。システムごとに必要となる変更内容が異なる可能性があるので、このアンサーには、インプリメントされたプロトコルに関係なく、そのような設定をインプリメントするのに必要な手順を記述しています。

ソリューション

GTX RocketIO トランシーバには、DRP (Dynamic Reconfiguration Port) 機能があり、ランタイム時にユーザー ロジックが GTX の属性スペースに変更を加えることができます。これにより、2 つのインプリメンテーション間でどの属性が異なっているかを識別し、FPGA をコンフィギュレーションし直さなくても変更を加えることができるようになります。レート変更ロジックを正しくインプリメントするには、次の 3 つの主な手順に従ってください。

1. どの属性を変更する必要があるか決定します。
2. 属性が配置される DRP アドレスとビットを決定します。
3. read-modify-write ロジックをインプリメントし、DRP を介して属性を修正します。
4. 変更した GTX_DUAL を初期化し直します。

手順 1 :
RocketIO GTX Wizard では、単一のライン レートに対して正しい属性設定のすべてが生成されるので、GTX トランシーバの正しい設定を指定するためには常にこのウィザードを使用します。これは、どの属性が変更の必要があるかどうかを指定する場合も同様です。

変更する必要のある特定の属性を見つけるには、FPGA がコンフィギュレーションされるときに使用されたベース インスタンスをまず生成します。ウィザードで必要なラッパと属性が生成されたら、新しいフォルダに CORE Generator プロジェクトを新規で作成し、同じ名前でもその新しいライン レートの設定でラッパを新たに生成します。これにより、多くの比較プログラムを使用できるようになるので、ベース レートと変更するレート間でアップデートされた特定の属性を簡単に見つけることができます。

これらの属性が見つかったら、違っていた属性とその新しい値を書きとめておいてください。これらの設定の中には、DRP に書き込む必要のあるバイナリの値と異なって見えることがあります。『Virtex-5 FPGA GTX RocketIO User's Guide』 の付録 D 「DRP Address Map of the GTX_DUAL Tile」 には、どの属性をバイナリに変換する必要があるか、またその変更方法が記述されています。このユーザー ガイドは、
http://japan.xilinx.com/support/documentation/virtex-5.htm
から入手できます。
手順 2 :
これで、修正する必要のある属性のリストが入手できたので、次はこれらの属性をどこに記述するかを決定します。付録 D には修正する必要のある属性のアドレスとビットを決定するために必要な情報もリストされています。属性の中には、複数のアドレスにまたがって使用され、1 つの属性の DRP を使用して何度も繰り返す必要のあるものもあります。

手順 3 :
変更する必要のある属性の値も位置も把握したので、このロジックを記述してインプリメントします。

DRP へのインターフェイスの詳細は、『Virtex-5 FGPA Configuration User's Guide』に記述されています。
http://japan.xilinx.com/support/documentation/virtex-5.htm

前述のとおり、各属性は複数のアドレス ロケーションを占めることがありますが、その逆に、1 つのアドレス ロケーションに複数の属性のビットが含まれることもあります。このため、read-modify-write ストラテジを使用して、変更する必要のあるビットのみを変更する必要があります。

手順 4 :
変更する必要のある属性がすべて変更されたら、GTXRESET を発行して、すべての属性が使用され、ユーザー アプリケーションで必要とされる初期化ステップがすべて実行されるようにします。再実行する必要がある初期化ステップには、次が含まれます。

1. TX/RXRESET に従い、バッファのバイパスまたはロー スキューアプリケーションでTX 位相アライメントを確立し直します。
2. カンマ アライメントを使用してバイトをアライメントし直します。
3. チャネル ボンディングを使用してチャネルをアライメントし直します。
AR# 31968
日付 02/10/2009
ステータス アクティブ
種類 一般