インテルのみ表示可能 — GUID: nik1415404385309
Ixiasoft
インテルのみ表示可能 — GUID: nik1415404385309
Ixiasoft
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 を生成するための以下の手順を実行します。
- Dynamic Reconfiguration タブからEnable dynamic reconfiguration を選択します。
- 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 PreSICE とEnable 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]をコンフィグレーションします。