AN 763: インテル® Arria® 10 SoCデバイスのデザイン・ガイドライン

ID 683192
日付 8/14/2020
Public
ドキュメント目次

5.1.10.2.2. HPSで開始するコンフィグレーション

デバイスに電源が入り、HPSがブートROMでソフトウェアの実行を開始すると、すべてのデバイスI/Oは、デフォルトの入力トライステートの動作モードになります。ブートROMは、サンプリングされたBSELピンに基づき専用のブートI/Oをコンフィグレーションします。ブートプロセス中のこの時点でコンフィグレーションされるI/Oは、HPSフラッシュデバイスに接続されるHPS専用I/Oのみであり、他のI/Oはすべてデフォルトの入力トライステートの動作モードに維持されます。第2ステージ・ブートローダーは、残りの専用HPSブートI/Oと、FPGAおよびHPS共有I/Oをコンフィグレーションします。これは、FPGA全体をコンフィグレーションする、もしくは早期I/Oリリース・ビットストリームをコンフィグレーションすることによりHPS共有I/OとHPS DDR I/Oのみをコンフィグレーションすることで行われます。

HPS早期I/Oリリース

HPSによって開始されるコンフィグレーション・フローは、早期I/Oリリースと呼ばれる機能をサポートします。早期I/Oリリースの機能により、HPSのブート時間を最小限に抑えることができます。これは、デバイスI/OのコンフィグレーションをFPGAファブリックの大部分のコンフィグレーションから独立して行うことで実現します。

この機能は、HPSのブート時間を短縮します。これは、FPGAコンフィグレーション・ファイルの大部分がFPGAファブリックのコンフィグレーションに使用され、I/Oのコンフィグレーションには一部のみが使用されることが理由です。コンフィグレーション・ファイルのI/O部分は、HPS共有I/O、HPS SDRAM I/O、および残りのFPGA I/Oのコンフィグレーションに使用されます。HPS専用I/Oは、FPGAコンフィグレーション・ビットストリームの影響を受けません。

FPGAファブリックから独立してI/Oをコンフィグレーションすることで、HPS SDRAMコントローラーが機能するようになり、HPSブートローダーは次のステージのブートコンテンツをSDRAMに取り込むことができます。I/Oがコンフィグレーションされると、残りのFPGAファブリックのコンフィグレーションは、すぐに行う、もしくはブートが完了した後にアプリケーションによって行うことができます。

ガイドライン: 早期I/Oリリースでは、起動に固定電源を使用します。

早期I/Oリリースのコンフィグレーション・フローを使用している場合、最初は、SmartVIDを使用してデバイスに電力を供給することができません。FPGAがコンフィグレーションされるまでは、代わりに固定電源を使用します。FPGAがコンフィグレーションされると、SmartVIDを有効にすることができます。

ガイドライン: HPS専用I/Oは、デバイスI/Oのコンフィグレーションに影響を受けない唯一のピンです。よって、コンフィグレーション・サイクルにわたって機能を維持する必要があるインターフェイスは、専用I/Oバンクに配置することが重要です。ブート時にHPSペリフェラルおよびHPS SDRAMへのアクセスが必要な場合は、HPSの早期I/Oリリースモードを使用してデバイスをコンフィグレーションする必要があります。

例えば、FPGAがコンフィグレーションされている間にシステムでUARTの動作を維持する必要がある場合は、専用I/OをUARTに使用する必要があります。HPSブートソースが外部フラッシュになる場合は、フラッシュを専用HPS I/Oに接続し、残りのI/Oがコンフィグレーションされている間にその機能を維持する必要があります。その他のユースケースに関しては、このドキュメントのFPGAのリコンフィグレーション の内容を参照してください。

HPSで開始するFPGAコアのコンフィグレーション

FPGAコンフィグレーションが失敗した場合 (例えばビットエラーのため)、HPS共有I/OおよびSDRAM I/Oは、入力トライステート・モードになります。早期I/Oリリース後にHPSでFPGA コンフィグレーションを開始してコンフィグレーションが失敗した場合、共有I/OペリフェラルまたはHPS SDRAMへのHPSアクセスは、I/Oがトライステートになっているために失敗します。HPS専用I/Oへの影響はありません。

この動作は、FPGAコアとコンフィグレーションの両方を含むRaw Binary File (.rbf) を使用するFPGAのフル・コンフィグレーションには影響しません。この場合、デバイスが正常にコンフィグレーションされた後にのみ、HPSはHPS共有I/OおよびHPS SDRAMにアクセスすることができます。

ガイドライン: HPS共有I/OまたはHPS SDRAMへのアクセスに依存しないコンフィグレーション障害回避または回復メカニズムを提供します。

ソフトウェアをSDRAM から実行する場合は、コンフィグレーションを開始する前にソフトウェアでコンフィグレーション・ビットストリームのチェックサムを実行することにより、この問題を回避することができます。例えば、.rbfにはCRC (巡回冗長検査) を含めることができるため、ファイルの内容をFPGAコアにプログラミングする前にソフトウェアで検証を行うことができます。

ガイドライン: ECCを有効にし、訂正可能なビットストリームの破損問題を回避します。

ソフトウェアが完全にオンチップRAMから実行されている際に、コンフィグレーション障害が発生した場合は、ペリフェラル・コンフィグレーションの.rbfを再度プログラミングし、HPS共有I/OとSDRAM I/Oを再度アクティブにすることで、ソフトウェアを回復することができます。

I/Oがリコンフィグレーションされると、ソフトウェアでFPGAファブリックをリコンフィグレーションすることができます。この場合、同じイメージまたはフォールバック・イメージ (同じ障害が再発しないように) のいずれかを使用します。

FPGAファブリックの残りの部分をコンフィグレーションする前に、ソフトウェアでまずビットストリームの整合性チェックを実行することが推奨されます。この整合性チェックの目的は、ビットストリームの破損によるコンフィグレーションの問題を回避することです。ビットストリームが破損している場合、FPGAファブリックのコンフィグレーションは失敗し、HPS専用I/Oを除くすべてのデバイスI/Oが入力トライステートの動作モードに戻ります。