2.1.2. CPRI Multirateハードウェア・デザイン例
図 8. CPRI Multirateハードウェア・デザイン例のブロック図
ハードウェア・デザイン例では、パケット・クライアント、デザイン例のF-Tile CPRI PHY Multirate Intel FPGA IP、およびF-Tile Dynamic Reconfiguration Suite Intel FPGA IPからのリセット、ステータス、コントロール信号がIn-System Sources and Probes IPs (ISSP) に接続されています。ハードウェア・テスト・スクリプトは、値を読み出して駆動するためにISSPへのサービスを開放します。JTAGホストは、 Avalon® メモリーマップド・インターフェイスにアクセスするためにインスタンス化されます。
デザイン例のハードウェア・フロー
- パケットの往復測定をイネーブルします。
- 確定的レイテンシーのテストフローを実行します。
- 確定的レイテンシーのデータを det_latency.log ファイルに出力します。
- プロファイル0 (24G RSFEC) に基づいて、CPRI PHY Multirate IP DUTをパワーアップします。
- パワーアップ・プロファイルに基づいてテストベンチ変数を初期化します。変数は次のとおりです。
- cpri_speed: 現在のプロファイルの速度を示します。
- enable_rsfec: 現在のプロファイルに対してRS-FECがイネーブルであるかディスエーブルであるかを示します。
- current_dr_profile: 現在のプロファイルのIDを示します。
- ダイナミック・リコンフィグレーションを実行します。
- テストベンチのエラーフラグを確認し、テストベンチが成功したか失敗したかを判断します。ダイナミック・リコンフィグレーションのトラフィック・テスト後にエラーが発生した場合、このエラーフラグは1に設定されます。
カスタマイズの場合、srcまたはパラメーター・ファイルの DR_TRANSITION 配列変数を変更して、テストフローをコンフィグレーションできます。プロファイルIDはDynamic Reconfiguration IPに渡され、目的のダイナミック・リコンフィグレーション・タスクをコンフィグレーションします。
- DR_TRANSITION: 意図されたダイナミック・リコンフィグレーション・シーケンス配列。この配列変数のサイズによって、実行されるダイナミック・リコンフィグレーションの数が決まります。
set DR_TRANSITION(0) "10G" set DR_TRANSITION(1) " 4P9G"
CPRI Multirateハードウェア・デザイン例の出力例を以下に示します。
CPRI Multirateハードウェア・デザイン例の出力例は、次のとおりです。
Info: Number of Channels = 1 Info: JTAG Port ID = 1 Info: Power Up Variant = 24G_RSFEC Info: Start of ftile_dr_cpri_test Info: Basic CPRI DR test INFO: Checking PLL lock status... iopll_sclk_locked 1 INFO: IOPLL sclk is locked INFO: Set Reconfig Reset INFO: Release Reconfig Reset Loop 0 INFO: Set RT Counter INFO: Channel 0: Set TX Reset INFO: Channel 0 : Checking tx reset ack n status... INFO: TX fully in reset state INFO: Channel 0: Set RX Reset INFO: Channel 0 : Checking rx reset ack n status... INFO: RX fully in reset state Info: Channel: 0 Configuring ED to CPRI 10G .... Info: Wait for DR Ready.... Info: Trigger DR interrupt Info: Wait for DR interrupt Ack.... Info: DR Request acknowledged Info: Wait for DR Config to be done.... Info: DONE Reconfigure to 10G. INFO: Channel 0: Configuring cpri_speed Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 10G .... INFO: Channel 0: Release TX Reset Info: Check TX Ready Attempt: 1 INFO: Channel 0 : Checking TX ready status... Info: tx_ready = 1 INFO: Channel 0: Release RX Reset Info: Check RX Ready Attempt: 1 INFO: Channel 0 : Checking RX ready status... Info: rx_ready = 1 INFO: Channel 0 : Checking RX PCS ready status... Info: rx_pcs_ready = 1 Info:Info: Channel: 0 Configuring DL .... Info Channel: 0 sending packets in progress, waiting for checker pass *** Info Channel: 0 waiting for measure_valid to assert... INFO: Channel 0 : Checking hyperframe sync status... INFO: hyperframe sync asserted INFO: Channel 0 : Checking RT count done status... INFO: RT count done asserted Channel 0 : Read Determenistic latency counts Channel 0 : Get checker_pass status: Checker value = 1 Checker status = Passed! ** ***************************************** INFO: Channel 0: Set TX Reset INFO: Channel 0 : Checking tx reset ack n status... INFO: TX fully in reset state INFO: Channel 0: Set RX Reset INFO: Channel 0 : Checking rx reset ack n status... INFO: RX fully in reset state Info: Channel: 0 Configuring ED to CPRI 9P8G .... Info: Wait for DR Ready.... Info: Trigger DR interrupt Info: Wait for DR interrupt Ack.... Info: DR Request acknowledged Info: Wait for DR Config to be done.... Info: DONE Reconfigure to 9P8G. INFO: Channel 0: Configuring cpri_speed Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 9P8G .... INFO: Channel 0: Release TX Reset Info: Check TX Ready Attempt: 1 INFO: Channel 0 : Checking TX ready status... Info: tx_ready = 1 INFO: Channel 0: Release RX Reset Info: Check RX Ready Attempt: 1 INFO: Channel 0 : Checking RX ready status... Info: rx_ready = 1 Info:Info: Channel: 0 Configuring DL .... Info Channel: 0 sending packets in progress, waiting for checker pass *** Info Channel: 0 waiting for measure_valid to assert... INFO: Channel 0 : Checking hyperframe sync status... INFO: hyperframe sync asserted INFO: Channel 0 : Checking RT count done status... INFO: RT count done asserted Channel 0 : Read Determenistic latency counts Channel 0 : Get checker_pass status: Checker value = 1 Checker status = Passed! ** ***************************************** INFO: Channel 0: Set TX Reset INFO: Channel 0 : Checking tx reset ack n status... INFO: TX fully in reset state INFO: Channel 0: Set RX Reset INFO: Channel 0 : Checking rx reset ack n status... INFO: RX fully in reset state Info: Channel: 0 Configuring ED to CPRI 4P9G .... Info: Wait for DR Ready.... Info: Trigger DR interrupt Info: Wait for DR interrupt Ack.... Info: DR Request acknowledged Info: Wait for DR Config to be done.... Info: DONE Reconfigure to 4P9G. INFO: Channel 0: Configuring cpri_speed Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 4P9G .... INFO: Channel 0: Release TX Reset Info: Check TX Ready Attempt: 1 INFO: Channel 0 : Checking TX ready status... Info: tx_ready = 1 INFO: Channel 0: Release RX Reset Info: Check RX Ready Attempt: 1 INFO: Channel 0 : Checking RX ready status... Info: rx_ready = 1 Info:Info: Channel: 0 Configuring DL .... Info Channel: 0 sending packets in progress, waiting for checker pass *** Info Channel: 0 waiting for measure_valid to assert... INFO: Channel 0 : Checking hyperframe sync status... INFO: hyperframe sync asserted INFO: Channel 0 : Checking RT count done status... INFO: RT count done asserted Channel 0 : Read Determenistic latency counts Channel 0 : Get checker_pass status: Checker value = 1 Checker status = Passed! ** ***************************************** INFO: Channel 0: Set TX Reset INFO: Channel 0 : Checking tx reset ack n status... INFO: TX fully in reset state INFO: Channel 0: Set RX Reset INFO: Channel 0 : Checking rx reset ack n status... INFO: RX fully in reset state Info: Channel: 0 Configuring ED to CPRI 2P4G .... Info: Wait for DR Ready.... Info: Trigger DR interrupt Info: Wait for DR interrupt Ack.... Info: DR Request acknowledged Info: Wait for DR Config to be done.... Info: DONE Reconfigure to 2P4G. INFO: Channel 0: Configuring cpri_speed Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 2P4G .... INFO: Channel 0: Release TX Reset Info: Check TX Ready Attempt: 1 INFO: Channel 0 : Checking TX ready status... Info: tx_ready = 1 INFO: Channel 0: Release RX Reset Info: Check RX Ready Attempt: 1 INFO: Channel 0 : Checking RX ready status... Info: rx_ready = 1 Info:Info: Channel: 0 Configuring DL .... Info Channel: 0 sending packets in progress, waiting for checker pass *** Info Channel: 0 waiting for measure_valid to assert... INFO: Channel 0 : Checking hyperframe sync status... INFO: hyperframe sync asserted INFO: Channel 0 : Checking RT count done status... INFO: RT count done asserted Channel 0 : Read Determenistic latency counts Channel 0 : Get checker_pass status: Checker value = 1 Checker status = Passed! ** ***************************************** INFO: Channel 0: Set TX Reset INFO: Channel 0 : Checking tx reset ack n status... INFO: TX fully in reset state INFO: Channel 0: Set RX Reset INFO: Channel 0 : Checking rx reset ack n status... INFO: RX fully in reset state Info: Channel: 0 Configuring ED to CPRI 24G_RSFEC .... Info: Wait for DR Ready.... Info: Trigger DR interrupt Info: Wait for DR interrupt Ack.... Info: DR Request acknowledged Info: Wait for DR Config to be done.... Info: DONE Reconfigure to 24G_RSFEC. INFO: Channel 0: Configuring cpri_speed Info: Channel: 0 Loop: 0 De-asserting reset to CPRI 24G_RSFEC .... INFO: Channel 0: Release TX Reset Info: Check TX Ready Attempt: 1 INFO: Channel 0 : Checking TX ready status... Info: tx_ready = 1 INFO: Channel 0: Release RX Reset Info: Check RX Ready Attempt: 1 INFO: Channel 0 : Checking RX ready status... Info: rx_ready = 1 INFO: Channel 0 : Checking RX PCS ready status... Info: rx_pcs_ready = 1 Info:Info: Channel: 0 Configuring DL .... Info:Info: Channel: 0 Programing RSFEC WA into DL counter .... Info:Info: Channel: 0 Starting DL .... Info Channel: 0 sending packets in progress, waiting for checker pass *** Info Channel: 0 waiting for measure_valid to assert... INFO: Channel 0 : Checking hyperframe sync status... INFO: hyperframe sync asserted INFO: Channel 0 : Checking RT count done status... INFO: RT count done asserted Channel 0 : Read Determenistic latency counts Channel 0 : Get checker_pass status: Checker value = 0 Checker status = Passed! ** ***************************************** Info: End of ftile_cpri_dr_test Info: Test <ftile_cpri_dr_test> Passed