V シリーズFPGA デバイスにおけるCvP (プロトコル経由コンフィグレーション) 実装ユーザーガイド

ID 683889
日付 10/31/2016
Public
ドキュメント目次

5.5. CvP デバッグ・チェックリスト

  1. PCIe コンフィグレーションがCvP をサポートしていることを確認します。たとえば、Stratix V はGen3 CvP をサポートしていません。
  2. 現在のQuartus Prime ソフトウェア・バージョンがCvP をサポートしていることを確認します。
  3. 物理のピン・アサインメントがCvP をサポートしていることを確認します。たとえば、Stratix V の場合、左下のStratix V のPCI Express 用ハードIP のみがCvP をサポートしています。同じデバイス内の他のハードIP コアはCvP をサポートしていません。
  4. PERST# および refclk のPCB 接続を確認します。
  5. トランシーバー・リコンフィグレーション・コントローラーIP コアへのリセットおよびクロック接続が正しいことを確認します。CvP モードでは、refclk を使用してreconfig_clk をドライブする必要があります。PERST# は、PCI Express IP コア用のハードIP にreconfig_reset をドライブする必要があります。
  6. デザインがマルチコーナーのセットアップ、ホールドタイム、およびリカバリーのタイミング制約を満たしていることを確認します。
  7. test_in バスが0xA8 にハード配線されていることを確認します。次のtest_in 信号は、デバッグ時に最も重要です。
    1. test_in[7]=1 に設定すると、低電力状態のサポートが無効になります。
    2. test_in[5]=1 に設定すると、コアがコンプライアンス・モードに入らなくなります。
    3. test_in[3]=1 に設定すると、PCI Express 用ハードIP がFPGA に実装されていることを示します。
    4. test_in[0] = 0 に設定すると、PCIe 仕様を満たすタイムアウト値とカウンター値が使用されます。そうでなければ、準拠していない短いシミュレーション値が使用されます。
  8. ホストBIOS 設定の電源管理サポートを無効にします。
  9. quartus_cvp.exe コマンドの引数として指定されたVendor ID およびDevice ID 引数が、PCI Express IP コアGUI のハードIP で指定された値と一致することを確認します。
  10. オープンシステムをデザインする場合は、異なるPC でテストし、結果を比較してください。
  11. 最初のCvP 更新が失敗した場合は、正しいquartus_cvp.exe コマンドが使用されていることを確認してください。32 ビット・システムでは、.\quartus\bin\quartus_cvp.exe を使用する必要があります。64 ビット・システムの場合、正しいquartus_cvp バージョンは.\quartus\bin64 です。
  12. quartus_cvp コマンドを実行する前に、PCI Express Configuration Space のCommand レジスターにMemory Space Enable ビットが設定されていることを確認します。BIOS がこのビットを有効にしない場合は、RW Utilities などのシステムツールを使用して0x0006 の値をオフセット0x4 でCommand レジスターに書き込む必要があります。この値を書き込むと、Memory Space Enable ビットとMaster Bus Enable ビットの両方がセットされます。
  13. 暗号化または圧縮が有効な場合は、無効にして再試行します。症状を記録します。
  14. JTAG 経由でFPGA をSOF でコンフィグレーションしてから、ウォームリブートを行った後、デザインが機能するかどうかを確認してください。.sof ファイルには、ペリフェラル・イメージとコアイメージの両方が含まれています。その結果、このテストでは、どのタイプのイメージが失敗を引き起こすのかを判断しません。
  15. PCI Express アナライザーを使用して、障害のあるシナリオのPCIe トレースをキャプチャーします。LTSSM がリンク障害についての洞察を得ることができなければ、LTSSM の遷移を観察します。
  16. SignalTap II Embedded Logic Analyzer のPower On Trigger を使用して、LTSSM の遷移を記録します。LTSSM がL0 (0xF) に遷移するか、またはDetect 状態とPolling 状態間でトグルするかを決定します。
  17. トランシーバー・リコンフィグレーション・コントローラーを無効にし、他の入力を0 に固定します。ただし、各チャネルのビット[44]をHigh にする必要があるreconfig_to_xcvr() バスを除きます。reconfig_to_xcvr() の残りのビットはLow に接続されます。サンプルファイルは./altera_pcie_cvp/hw_devkit_ed ディレクトリーの下にあるtop_wo_reconfig.v です。
  18. CvP が失敗した場合は、同様のAltera CvP デザイン例を試して、症状が同じかどうかを判断してください。障害が引き続き発生する場合は、非CvP デザインを試し、その違いに注意してください。
  19. 同様のコンフィグレーションを持つCvP デザイン例が同じプラットフォーム上で動作するかどうかを判断します。
  20. 以上の提案をすべて試しても、デザインがまだ機能していない場合は、SR (Service Request) を提出してください。SR に、以下の情報を記入してください。
    1. 試したこととテストの結果を説明します。
    2. Quartus Prime のソフトウェア・バージョン、ターゲットデバイス、テスト対象のシステムに関する情報、およびどのCvP モードが使用されているかをリストします。
    3. 障害が発生する場所を指定します。ペリフェラルのロード後、最初のCvP 更新時、または後続のCvP 更新に発生しますか?
    4. 可能な場合は、デザインを添付してください。これは、リセットとクロックの接続を確認して障害を再現できるようにするためです。
    5. デザインを実行するために必要な手順を説明します。
  21. 後続のCvP 更新では、次のいずれかのロジックの変更に対して両方のリビジョンをコンパイルする必要があります。
    1. ペリフェラル・ロジック
    2. I/O ポートまたはコアラッパー
    3. Quartus Prime ソフトウェアのバージョン