AR# 69026

|

10G/25G/40G/50G/100G Ethernet のオート ネゴシエーション (AN)/リンク トレーニング (LT) の開始およびデバッグ

説明

10G/25G/40G/50G/100G Ethernet のサンプル デザインでは、オート ネゴシエーション (AN)/リンク トレーニング (LT) がデフォルトでイネーブルにされません。

ハードウェアで AN/LT を実行するために変更する信号については、サンプル デザインのコメントを探します。

ソリューション

オート ネゴシエーションをイネーブルにするには、次の手順に従います。

ctl_autoneg_enable = 1
ctl_autoneg_bypass = 0

 

希望の AN 設定を出力するように ctl_an_* を設定します。

制御およびステータス インターフェイスを使用している場合、サンプル デザインでは ctl_an_* 値が有効な設定に結び付けられます。

レジスタ インターフェイスを使用している場合は、レジスタ シーケンスについてオート ネゴシエーションに関する付録を参照してください。

リンク トレーニングをイネーブルにするには、次の手順に従います。

ctl_lt_training_enable = 1

 

コアでは、トレーニングを一切実行しません。セクション 72.6.10 に記述されている制御プロトコルのみが提供されます。

トレーニング アルゴリズムの使用はユーザー責任となっています。

コアでは、RX アイを監視せず、リンク パートナー TX へのプリセット、初期化、または係数制御リクエストも送信しません。

ctl_lt_rx_trained は 1 に設定することが推奨されます。ctl_lt_rx_trained を設定すると、リンク パートナーには、RX トレーニングの完了と、プリセット、初期化、または係数変更はこれ以上送信されないことが通知されます。

コアでは、リンク パートナーから受信したトレーニング メッセージに応答して GT TX 振幅または係数制御設定を調整しません。

サンプル デザインのリンク トレーニングの Place_Holder ロジックにより、最大制限に達したことが示されます。これでリンク トレーニングが完了するようになります。

ノンス:

nonce_seed はゼロ以外の値に設定する必要があります。

同じボードに同じノンス シードを持つ 2 つのポートを接続している場合、それぞれ異なるタイミングでリセットを解放する必要があります。

nonce_seed を変更した場合、新しい値を読み込むために an_reset が必要になります。これには、AXI Lite レジスタを介した nonce_seed の変更も含まれます。

次のページ:

リンク パートナーによって次のページが送信される場合は、次のページを承認して AN が完了するように ctl_an_loc_np_ack を High に設定する必要があります。

この制御信号は、次のページの受信後に High に設定したり、常に High に接続したりできます。



段階およびステータス信号に関する詳細:



  1. AN の開始で、tx ディスエーブル ステートがあります。ここでは、両側でリンクがダウンしていることを確認できるようデータが表示されません。
    stat_an_stat_tx_disable が 1 サイクル間トグルし、この段階の開始を示します。

  2. tx ディスエーブル ステートの後、AN 情報が交換されます。
    この段階中、stat_an_rxcdrhold は High に維持されます。stat_an_lp_autoneg_able および stat_an_lp_ability_valid が 1 サイクル間 High にトグルし、stat_an_lp* 情報が有効になったことを示します。

  3. リンク トレーニングの開始で、stat_an_stat_an_good_check が 1 サイクル間 High にトグルします。
    stat_an_rxcdrhold がディアサートされ、gtwiz_reset_rx_datapath がトグルします。
    リンク トレーニングの開始後、500 ms タイマーがあります。これにより、ミッション モード/通常 PCS 動作のトレーニングおよびブロック ロック/リンク アップを完了させたり、AN を再開したりします。
    stat_lt_frame_lock が High になり、stat_lt_rx_sof が 1 回トグルし、リンク トレーニング ブロックがフレーム同期になります。
    トレーニング フレーム境界で、stat_lt_rx_sof が 1 クロック期間 High にトグルし続けます。

  4. リンク トレーニングが完了すると、stat_lt_signal_detect がアサートされ、通常 PCS 動作の開始を示します。

  5. ブロック ロック、同期とアライメント (マルチレーン コアの場合)、および stat_rx_status と stat_rx_valid_ctrl_code (stat_rx_valid_ctrl_code はシングル レーン 10G/25G コアの場合のみ) が High になると、an_autoneg_complete が High になります。

  6. an_autoneg_complete は 500 ms タイムアウト内に High になる必要があります。そうでないと、AN が再開します。
    stat_rx_status が Low に戻ると、AN が再開します。



シミュレーションおよびループバック::

オート ネゴシエーションの TX ディスエーブル ステートでは、完了するのに 50 ms のシミュレーション時間を必要とします。

待機時間を短縮するには、コンパイル済みの IP ライブラリなしで SIM_SPEED_UP オプションを使用します。コンパイル済みのライブラリの使用をオフにする方法は、(Xilinx Answer 73518) を参照してください。

オート ネゴシエーションはループバックで完了しません。その理由は、オート ネゴシエーションでは、リンク パートナーから受信したノンス値とリンク パートナーに送信されたノンス値が異なっている必要があるためです。

 

デバッグ用に ILA に追加するための信号リストの開始:

 

sys_reset
an_reset
ctl_an_*
ctl_lt_*
stat_an_start_tx_disable
stat_an_rxcdrhold
stat_an_lp_autoneg_able
stat_an_lp_ability_valid
stat_an_start_an_good_check
stat_lt_frame_lock
stat_lt_signal_detect
stat_lt_link_training
stat_lt_link_training_fail
stat_rx_block_lock
stat_rx_synced (only available on multi-lane cores)
stat_rx_aligned (only available on mult-lane cores)
stat_rx_valid_ctrl_code (only available on 10G/25G core)
stat_rx_status
stat_rx_bad_code
stat_rx_hi_ber

 

Clause 74 Fire code FEC をサポートするライン レートを使用している場合:

 

stat_fec_inc_cant_correct_count
stat_fec_lock_error
stat_fec_rx_lock
stat_fec_inc_correct_count
ctl_an_fec_10g_request
ctl_fec_rx_enable
ctl_fec_tx_enable
stat_an_fec_enable
stat_an_lp_fec_10g_ability
stat_an_lp_fec_10g_request

 

RSFEC をサポートするライン レートを使用している場合:

 

ctl_tx_rsfec_enable
ctl_rx_rsfec_enable
stat_rx_rsfec_am_lock
stat_an_rs_fec_enable
AR# 69026
日付 07/26/2020
ステータス アクティブ
種類 一般
IP
People Also Viewed