インテル® Arria® 10 トランシーバーPHY ユーザーガイド

ID 683617
日付 4/20/2017
Public
ドキュメント目次

7.1. PreSICE キャリブレーション・エンジンを使用したリコンフィグレーション・インターフェイスとアービトレーション

Arria 10 デバイスでは、キャリブレーションは高精度シグナル・インテグリティ・キャリブレーション・エンジン (PreSICE) を使用して行われます。PreSICE は、トランシーバー・チャネルのプログラマブル・レジスターおよびPLL プログラマブル・レジスターにアクセスするAvalon-MM インターフェイスを備えています。このAvalon-MM インターフェイスには、キャリブレーション・コントローラーから特別なキャリブレーション・シーケンスを要求できる通信メカニズムが含まれています。

PreSICE Avalon-MM インターフェイスおよびユーザーAvalon-MM リコンフィグレーション・インターフェイスは、単一の内部コンフィグレーション・バスを共有します。このバスは、トランシーバー・チャネルおよびPLL プログラマブル・レジスター、およびキャリブレーション・レジスターへアクセスするようアービトレーションされます。

どのレジスターが内部コンフィグレーション・バスへアクセスしているかを確認するには、2 通りの方法があります。

  • reconfig_waitrequest を使用する
  • ケーパビリティー・レジスターを使用する

ネイティブPHY IP コアとPLL のデフォルト設定では、reconfig_waitrequest が使用されます。PreSICE が内部コンフィグレーション・バスを制御する場合、内部コンフィグレーション・バスからのreconfig_waitrequest はHigh となります。ユーザーのアクセスが承認されると内部コンフィグレーション・バスからのreconfig_waitrequest はLow となります。Avalon-MM リコンフィグレーション・インターフェイスでは、reconfig_waitrequest はネイティブPHY IP コア内の数箇所から引き出すことが可能です。具体的には、内部コンフィグレーション・バス、ストリーマーなどが挙げられます。これは1 つにバンドルし、Avalon-MM リコンフィグレーション・インターフェイスで単一のreconfig_waitrequest とすることが可能です。reconfig_address は、Avalon-MM リコンフィグレーション・インターフェイスで表示させるreconfig_waitrequest を決定します。PreSICE へ内部コンフィグレーション・バスを戻した後、内部コンフィグレーション・バスからのreconfig_waitrequest はHigh となります。キャリブレーション中にreconfig_address をODI あるいはAvalon-MM リコンフィグレーション・インターフェイスのストリーマー・オフセット・アドレスに設定する場合、reconfig_waitrequest はキャリブレーションが完了する前にLow となりえます。キャリブレーション中に内部コンフィグレーション・バスのオフセットアドレスと同じくreconfig_address を保持する場合、Avalon-MM リコンフィグレーション・インターフェイスでreconfig_waitrequest は、PreSICE が内部コンフィグレーション・バスを戻すまでHigh となります。キャリブレーション中にreconfig_address をスタティック状態に保持することが必要です。

ケーパビリティー・レジスターを使用してバス・アービトレーションをチェックするには、IP を生成するための以下の手順を実行します。

  1. Dynamic Reconfiguration タブからEnable dynamic reconfiguration を選択します。
  2. Separate reconfig_waitrequest from the status of AVMM arbitration with PreSICE オプションとEnable control and status registers オプションの両方を選択します。

ケーパビリティー・レジスター0x281[2]をリードすることで、何がチャネルアクセスおよびPLL アクセスを制御しているのかを確認することができます。Separate reconfig_waitrequest from the status of AVMM arbitration with PreSICEEnable control and status registers がイネーブルされている場合、PreSICE が内部コンフィグレーション・バスを制御する際、reconfig_waitrequest がHigh でアサートされることはありません。

PreSICE に内部コンフィグレーション・バスを戻すには以下を実行します。

  • オフセットアドレス0x100 からいずれかのキャリブレーション・ビットがイネーブルされている場合、オフセットアドレス0x0[7:0]に0x1 をライトします。
  • オフセットアドレス0x100 からキャリブレーション・ビットがイネーブルされていない場合、オフセットアドレス0x0[7:0]に0x3 をライトします。

キャリブレーション処理が実行中であることを確認するには、以下のいずれかを実行します。

  • pll_cal_busy 信号、tx_cal_busy 信号、およびrx_cal_busy 信号をモニターします。
  • ケーパビリティー・レジスターから*_cal_busy 信号のステータスをリードします。

*_cal_busy 信号は、キャリブレーション処理が実行中である限りアサートされた状態を保持します。キャリブレーションの完了を確認するには、ケーパビリティー・レジスターをリードするか、あるいは*_cal_busy 信号を確認します。Avalon-MM リコンフィグレーション・インターフェイスからのreconfig_waitrequest は、キャリブレーション完了の確認には信頼性の高い指標ではありません。キャリブレーション中に0x2 から0x0 をライトする場合、PreSICE はキャリブレーション処理を中止し内部コンフィグレーション・バスを戻すことが可能です。よって、reconfig_waitrequest がLow である間はキャリブレーションは完了していません。PMA tx_cal_busy およびrx_cal_busy は、ハードウェアから切り離すことができない同一の内部ノードから発出しています。Avalon-MM リコンフィグレーション・インターフェイスから個別にtx_cal_busy またはrx_cal_busy をイネーブル/ディスエーブルするには、ケーパビリティー・レジスター0x281[5:4]をコンフィグレーションします。