Parallel Flash Loader Intel® FPGA IPユーザーガイド

ID 683698
日付 7/23/2021
Public
ドキュメント目次

1.5. エンベデッド・システム内のPFL IPコア

PFL IPコアを使用すると、Nios® IIプロセッサーなどのプロセッサーによる、フラッシュのプログラミングやFPGAコンフィグレーション実行中のフラッシュ・メモリー・デバイスへのアクセスが可能になります。

次の図で示しているのは、PFL IPコアを使用してフラッシュ・メモリー・デバイスをプログラミングし、Nios IIプロセッサーでFPGAをコンフィグレーションする方法です。コンフィグレーションされたNios IIプロセッサーでは、同じフラッシュ・メモリー・デバイスに格納されている非コンフィグレーション・データを使用します。

図 22. PFLとコントローラーを使用したシングルデバイスのコンフィグレーション
図 23. デザイン例における4つのセクションの関係

ボードの電源投入時に、Nios IIプロセッサーでインテルFPGAをコンフィグレーションする必要があります。フラッシュ・メモリー・デバイス内にNios IIプロセッサー・イメージを格納し、PFL IPコアを使用してイメージをインテルFPGAにコンフィグレーションできます。プログラミングをするものと同じフラッシュ・メモリー・デバイス内にNios IIプロセッサー・イメージを格納する場合には、他のユーザーデータでフラッシュ・メモリー・デバイスをプログラミングする際、Nios IIプロセッサー・イメージを上書きしないでください。

イメージをフラッシュ・メモリー・デバイスに格納しない場合は、Nios IIイメージを別の格納デバイス、例えば、拡張コンフィグレーション (EPC) デバイス、または消去、プログラミングおよびコンフィグレーション可能なシリアル (EPCS) メモリー内に格納することができます。

上記にある、デザイン例における4つのセクションの関係の図で、Nios IIプロセッサーとPFL IPコアは、フラッシュ・メモリー・デバイスに対して同じバスラインを共有しています。ただし、データの競合を避けるために、プロセッサーとIPコアは、フラッシュ・メモリー・デバイスに同時にアクセスまたはプログラミングすることはできません。1つのコントローラー (プロセッサーまたはIPコア) のみが常にフラッシュ・メモリー・デバイスにアクセスしていることを確認するには、一方のコントローラーからフラッシュ・メモリー・デバイスに対するすべての出力ピンをトライステートにする必要があります。これは、PFL IPコアの pfl_flash_access_request ピンおよび pfl_flash_access_granted ピンを使用して、他のコントローラーがフラッシュ・メモリー・デバイスにアクセスしている間に行います。

表 12.  PFLフラッシュ・アクセス・ピンと機能
ピン 説明
pfl_flash_access_request PFL IPコアでは、このピンをHighに駆動して、フラッシュ・メモリー・デバイスへのアクセスを要求します。
pfl_flash_access_granted PFL IPコアによりこのピンでHighの入力信号が受信されるたびに、PFL IPコアでは、フラッシュ・メモリー・デバイスへのアクセスをイネーブルします。
表 13.  Nios IIおよびPFL IPコアを使用した pfl_flash_access_request ピンおよび pfl_flash_access_granted ピン表には、pfl_flash_access_request ピンおよび pfl_flash_access_granted ピンを使用して、両方のプロセッサーが同時にフラッシュ・メモリー・デバイスにアクセスしないようにする方法を一覧表示しています。
信号 Nios IIプロセッサー PFL IPコア
pfl_flash_access_request での出力信号がHigh フラッシュ・メモリー・デバイスへのすべての出力ピンがトライステートになります。 pfl_flash_access_granted ピンがHighの入力を受信し、フラッシュ・メモリー・デバイスへのすべての入力ピンおよび出力ピンを接続します。
pfl_flash_access_request での出力信号がLow フラッシュ・メモリー・デバイスへのすべてのピンを再接続します。 pfl_flash_access_granted ピンがLowの入力を受信し、フラッシュ・メモリー・デバイスへのすべての出力ピンがトライステートになります。
注: PFL IPコアのSet bus pins to tri-state when not in useオプションは、pfl_flash_access_granted ピンがLowに引き下げられるたびに、PFL IPコアをディスエーブルします。
図 24. Nios IIプロセッサーとPFLがフラッシュ・メモリー・デバイスにアクセスする際のシーケンス
注: インテルでは、PFL IPコアが未定義のステートにならないように、safe state machine設定をイネーブルすることをお勧めします。このオプションを設定するには、AssignmentsメニューのSettingsをクリックします。SettingsダイアログボックスのAnalysis and Synthesisページで、More Settingsをクリックし、safe state machineを選択します。

インテルCPLDおよびNios IIプロセッサーは、それぞれ個別のCFIフラッシュ・メモリー・デバイスをプログラミングできます。両方のプロセッサーが同時にCFIフラッシュ・メモリー・デバイスにアクセスするのを防止するために、CPLDおよびNios IIプロセッサーのflash_access_grantedピンとflash_access_requestピンは互いに接続されています。

Nios IIプロセッサーの代わりに他のプロセッサーまたはコントローラーを使用するには、PFL IPコアの pfl_flash_access_granted ピンおよび pfl_flash_access_request ピンが、プロセッサーに接続されていることを確認します。これには上記の、NiosIIおよびPFL IPコアを使用した pfl_flash_access_request ピンおよび pfl_flash_access_granted ピンの表にある方法を使用します。

また、プロセッサーやコントローラー用に、フラッシュ・メモリー・デバイスの読み出しまたは書き込みアクセス時間を指定する必要があります。PFL IPコアがフラッシュ・メモリー・デバイスにアクセスする際のデータの競合を避けるには、pfl_flash_access_request 信号がHighの場合に、プロセッサーからの出力ピンがトライステートになっていることを確認してください。