インテルのみ表示可能 — GUID: lvw1522438178781
Ixiasoft
1. Eタイル・トランシーバーPHYの概要
2. トランシーバーPHYレイヤーの実装
3. Eタイル・トランシーバーPHYのアーキテクチャー
4. クロック・ネットワーク
5. PMAのキャリブレーション
6. トランシーバー・チャネルのリセット
7. ダイナミック・リコンフィグレーション
8. ダイナミック・リコンフィグレーションの例
9. レジスターマップ
10. Eタイル・トランシーバー・リンクのデバッグ
A. E-Tile Channel Placement Tool
B. PMA Direct PAM4 30Gbpsから57.8Gbpsの実装
C. 信号検出アルゴリズム
D. ミッションモードからチャネル保護モードへのリコンフィグレーションの詳細手順
E. チャネル保護モードからミッションモードへのリコンフィグレーションの詳細手順
F. ホールド時間違反
4.2.1. PMA Directチャネル 25Gbps x 1 (FECオン、シングルFECブロック内)
4.2.2. PMA Direct チャネル10Gbps x 1 (FECオフ)
4.2.3. PMA Directチャネル 25Gbps x 4 (FECオン、シングルFECブロック内)
4.2.4. PMA Direct 25Gbps x 4 (FECオフ)
4.2.5. PMA Direct 10.3125Gbps x 4
4.2.6. PMA Direct 100GE 25Gbps x 4 (FECオン)
4.2.7. PMA Direct 100GE PAM4 50Gbps x 2 (アグリゲートFECオン)
4.2.8. PMA Direct High Data Rate (FECオフ)
7.1. チャネルブロックのダイナミック・リコンフィグレーション
7.2. ダイナミック・リコンフィグレーション最大データレートの切り替え
7.3. ダイナミック・リコンフィグレーション・インターフェイスとのインタラクション
7.4. サポートされない機能
7.5. ダイナミック・リコンフィグレーション・インターフェイスからの読み出し
7.6. ダイナミック・リコンフィグレーション・インターフェイスへの書き込み
7.7. 複数のリコンフィグレーション・プロファイル
7.8. アービトレーション
7.9. PMAダイナミック・リコンフィグレーションに関する推奨事項
7.10. ダイナミック・リコンフィグレーションの実行手順
7.11. PMA属性の詳細
7.12. 特殊なケースでのダイナミック・リコンフィグレーション・フロー
7.13. ポートとパラメーター
7.14. エンベデッド・デバッグ機能
7.15. タイミング・クロージャーに関する推奨事項
7.16. トランシーバー・レジスター・マップ
7.17. IPコンフィグレーション設定をロードする
7.18. ダイナミック・リコンフィグレーションの改訂履歴
8.1. リセット・コントローラーを自動モードで使用したデュプレックスPMAのリコンフィグレーション
8.2. PRBS使用モデル
8.3. PMAエラー・インジェクション
8.4. PMAレシーバー・イコライゼーション・アダプテーションの使用モデル
8.5. ユーザー定義パターンの例
8.6. 減衰値 (VOD) のコンフィグレーション
8.7. ポスト・エンファシス値のコンフィグレーション
8.8. pretap1 値のコンフィグレーション
8.9. PMAドライバーのTX極性の反転
8.10. PMAドライバーのRX極性の反転
8.11. アダプティブ・エンジンによって調整可能なPMAパラメーターのコンフィグレーション
8.12. ネイティブPHY IPを使用したPMAパラメーターのコンフィグレーション
8.13. 複数のチャネルで低電力モードをイネーブルする
8.14. RXの初期化
8.15. RXイコライゼーションをリセットする
8.16. ダイナミック・リコンフィグレーションの例の改訂履歴
9.2.1. 0x0001: PMAのイネーブル/ディスエーブル
9.2.2. 0x0002: PMA PRBS設定
9.2.3. 0x0003: データ比較のセットアップと開始/停止
9.2.4. 0x0005: TXチャネル分周比
9.2.5. 0x0006: RXチャネル分周比
9.2.6. 0x0008: 内部シリアル・ループバックおよびリバース・パラレル・ループバック制御
9.2.7. 0x000A: レシーバー調整制御
9.2.8. 0x000E: RXフェーズスリップ
9.2.9. 0x0011: PMA TX/RXキャリブレーション
9.2.10. 0x0013: TX/RX極性およびグレイコードのエンコーディング
9.2.11. 0x0014: TX/RX幅モード
9.2.12. 0x0015: TXイコライゼーション
9.2.13. 0x0017: エラー・カウンター・リセット
9.2.14. 0x0018: ステータス/デバッグレジスター
9.2.15. 0x0019: ステータス/デバッグレジスターの次の書き込みフィールド
9.2.16. 0x001A: ステータス/デバッグレジスターの次の読み出しフィールド
9.2.17. 0x001B: TXエラー・インジェクション信号
9.2.18. 0x001C: 着信RXデータキャプチャ
9.2.19. 0x001E: エラー・カウント・ステータス
9.2.20. 0x0020: 電気的アイドル検出器
9.2.21. 0x002B: RX終端とTXドライバーのトライステート動作
9.2.22. 0x0030: PMA多重化クロックスワップ
9.2.23. 0x0126: レシーバー調整パラメーターの読み出し
9.2.24. 属性を使用したPMAアナログ・パラメーターの読み出しと書き込み
9.5.1. rsfec_top_clk_cfg
9.5.2. rsfec_top_tx_cfg
9.5.3. rsfec_top_rx_cfg
9.5.4. tx_aib_dsk_conf
9.5.5. rsfec_core_cfg
9.5.6. rsfec_lane_cfg
9.5.7. tx_aib_dsk_status
9.5.8. rsfec_debug_cfg
9.5.9. rsfec_lane_tx_stat
9.5.10. rsfec_lane_tx_hold
9.5.11. rsfec_lane_tx_inten
9.5.12. rsfec_lane_rx_stat
9.5.13. rsfec_lane_rx_hold
9.5.14. rsfec_lane_rx_inten
9.5.15. rsfec_lanes_rx_stat
9.5.16. rsfec_lanes_rx_hold
9.5.17. rsfec_lanes_rx_inten
9.5.18. rsfec_ln_mapping_rx
9.5.19. rsfec_ln_skew_rx
9.5.20. rsfec_cw_pos_rx
9.5.21. rsfec_core_ecc_hold
9.5.22. rsfec_err_inj_tx
9.5.23. rsfec_err_val_tx
9.5.24. rsfec_corr_cw_cnt (Low)
9.5.25. rsfec_corr_cw_cnt (High)
9.5.26. rsfec_uncorr_cw_cnt (Low)
9.5.27. rsfec_uncorr_cw_cnt (High)
9.5.28. rsfec_corr_syms_cnt (Low)
9.5.29. rsfec_corr_cw_cnt (High)
9.5.30. rsfec_corr_0s_cnt (Low)
9.5.31. rsfec_corr_0s_cnt (High)
9.5.32. rsfec_corr_1s_cnt (Low)
9.5.33. rsfec_corr_1s_cnt (High)
インテルのみ表示可能 — GUID: lvw1522438178781
Ixiasoft
8.1. リセット・コントローラーを自動モードで使用したデュプレックスPMAのリコンフィグレーション
ダイナミック・リコンフィグレーションは、デバイスの動作中に変化する要件に合わせて、トランシーバー・チャネルを変更するプロセスです。チャネルをカスタマイズするには、デバイスの動作、またはデバイス・コンフィグレーション後にリコンフィグレーションを初期化します。
リコンフィグレーションする主なPMAパラメーターは、リファレンス・クロック・ソース、データレート、およびPMAシリアライゼーション/デシリアライゼーション・ファクターです。属性コードの変更方法については、PMA属性コード を参照してください。次の例は、デュプレックスPMAチャネルをNRZモードでリコンフィグレーションする方法を示しています。その目的は次のとおりです。
- ネイティブ PHY IPのリストのとおり、PMAリファレンス・クロックをリコンフィグレーションして、refclk0 から refclk1 にする
- PMAボーレートを変更する
- デシリアライゼーション係数を変更する
図 109. Avalon® Memory-Mappedインターフェイスを介したPMA属性の送信
リコンフィグレーション・フロー
- tx_reset/rx_reset をアサートします。
- tx_ready/rx_ready がデアサートするのを待ちます。
- PMA属性コード0x0001を使用してPMAをディスエーブルします。
- オプション: 0x8A[7] = 0x1を書き込み、PMA属性ステータスフラグ (前の属性の0x8A[7]) がクリアされるようにします。これは、レジスター0x84から0x87に書き込み、新しいPMA属性をロードする前に行います。
- 0x84[7:0] = 0x00を書き込みます。
- 0x85[7:0] = 0x00を書き込みます。
- 0x86[7:0] = 0x01を書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- tx_pma_ready/rx_pma_ready がデアサートするのを待ちます。
- リファレンス・クロックの変更方法については、リファレンス・クロックの切り替え を参照してください。
- PMA内の内部コントローラーをリセットします。これは、REFCLKソースが、次に示す事項によって変更されるためです。
- 0x200[7:0] = 0x00を書き込みます。
- 0x201[7:0] = 0x00を書き込みます。
- 0x202[7:0] = 0x00を書き込みます。
- 0x203[7:0] = 0x81を書き込みます。
- 0x207を読み出します。0x80になるまで行います。これは、動作が正常に完了したことを示します。
- TX/RXボーレートをrefclk * 50、かつ15Gbps以上に変更します。これにはPMA属性コード0x0005を使用します。
- 0x84[7:0] = 0x32を書き込みます。
- 0x85[7:0] = 0x80を書き込みます (ビット7はTX/RXの両方に更新を適用します)。
- 0x86[7:0] = 0x05を書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- シリアライゼーション/デシリアライゼーション・ファクターを40ビット幅に変更します。これにはPMA属性コード0x0014を使用します。
- 0x84[7:0] = 0x33を書き込みます。
- 0x85[7:0] = 0x00を書き込みます。
- 0x86[7:0] = 0x14を書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- RXフェーズスリップを変更して、RX PMAタイミングマージンを最大化します。
- 0x84[7:0] = 0x00を書き込みます。
- 0x85[7:0] = 0xA4を書き込み、36UIだけスリップさせます。
- 0x86[7:0] = 0x0Eを書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- PMA属性コード0x0001を使用してPMAをイネーブルします。
- 0x84[7:0] = 0x07を書き込みます。
- 0x85[7:0] = 0x00を書き込みます。
- 0x86[7:0] = 0x01を書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- PRBS31データをイネーブルします。
- 0x84[7:0] = 0x25を書き込みます。
- 0x85[7:0] = 0x03を書き込みます。
- 0x86[7:0] = 0x02を書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- 内部シリアル・ループバック・モードに変更します。これにはPMA属性コード0x0008を使用します。
- 0x84[7:0] = 0x01を書き込みます。
- 0x85[7:0] = 0x01を書き込みます。
- 0x86[7:0] = 0x08を書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- 初期粗調アダプティブ・イコライゼーションをイネーブルします。これにはPMA属性0x000Aを使用します。
- 0x84[7:0] = 0x01を書き込みます。
- 0x85[7:0] = 0x00を書き込みます。
- 0x86[7:0] = 0x0Aを書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- 初期粗調アダプテーション・ステータスを読み出します。これにはPMA属性0x0126を使用します。
- 0x84[7:0] = 0x00を書き込みます。
- 0x85[7:0] = 0x0Bを書き込みます。
- 0x86[7:0] = 0x26を書き込みます。
- 0x87[7:0] = 0x01を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- レジスター0x88を読み出します。0x88[0] = 0になるまでこのステップ14を繰り返して、初期粗調アダプテーションが完了したことを示します。
- PMAアナログ・コンフィグレーションをロードします (該当する場合)。
- 0x40143 = 0x80に加えて、ロードするコンフィグレーション番号を書き込みます。例えば、コンフィグレーション2をロードするには0x82を書き込みます。
- 0x40144[0] を読み出します。0x1が報告されるまで行います。
内部シリアル・ループバック・モードを実行している場合は、次の手順はスキップします。
- ミッションモードをイネーブルするか、内部シリアル・ループバック・モードをディスエーブルします。
- 0x200 = 0xD2を書き込みます。
- 0x201 = 0x00を書き込みます。
- 0x202 = 0x00を書き込みます。
- 0x203 = 0x96を書き込みます。これにより、START_ADAPTATION のオペコードが選択されます。
- 0x80になるまで0x207を読み出します。これは、動作が正常に完了したことを示します。
内部シリアル・ループバック・モードを実行している場合は、次の手順はスキップします。
- ミッションモードで初期粗調アダプティブ・イコライゼーションをイネーブルします。
- 0x200 = 0xD2を書き込みます。
- 0x201 = 0x00を書き込みます。
- 0x202 = 0x01を書き込みます。
- 0x203 = 0x96を書き込みます。これにより、START_ADAPTATION のオペコードが選択されます。
- 0x80になるまで0x207を読み出します。これは、動作が正常に完了したことを示します。
内部シリアル・ループバック・モードを実行している場合は、次の手順はスキップします。
- 初期粗調アダプテーション・ステータスを読み出します。これにはPMA属性0x0126を使用します。
- 0x84[7:0] = 0x00を書き込みます。
- 0x85[7:0] = 0x0Bを書き込みます。
- 0x86[7:0] = 0x26を書き込みます。
- 0x87[7:0] = 0x01を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- レジスター0x88を読み出します。0x88[0] = 0になるまでこのステップ18を繰り返して、初期粗調アダプテーションが完了したことを示します。
- tx_reset/rx_reset をアサートします。
- PRBS31データをディスエーブルします。
- 0x200 = 0xE2を書き込みます。
- ミッションモードの場合は、0x201 = 0x01を書き込みます。
- 内部シリアル・ループバック・モードの場合、0x201 = 0x03を書き込みます。
- 0x202 = 0x00を書き込みます。
- 0x203 = 0x96を書き込みます。これにより、START_ADAPTATION のオペコードが選択されます。
- 0x80になるまで0x207を読み出します。これは、動作が正常に完了したことを示します。
- 有効なデータレート・トラフィックがRXで使用可能な場合は、次の手順に進みます。または、トラフィックが有効になるまで初期粗調アダプテーションを再実行します。
- 継続アダプテーションの実行前にPMAアナログ・パラメーターを設定する必要がある場合は、属性を送信します。属性を使用したPMAアナログ・パラメーターの読み出しと書き込み を参照してください。
- 連続アダプティブ・イコライゼーションをイネーブルします。これにはPMA属性コード0x000Aを使用します。
- 0x84[7:0] = 0x06を書き込みます。
- 0x85[7:0] = 0x00を書き込みます。
- 0x86[7:0] = 0x0Aを書き込みます。
- 0x87[7:0] = 0x00を書き込みます。
- 0x90[0] = 1'b1を書き込みます。
- 0x8A[7] を読み出します。これは1である必要があります。
- 0x8B[0] を読み出します。0に変わるまで行います。
- 0x8A[7] を1'b1に書き込み、0x8A[7] 値をクリアします。
- 必要に応じて、 rx_is_lockedtodata 出力ピンを確認します。
- リンクがアップしました。