理論的には、FPGAが構成イメージを外部メモリに書き込み、メモリから構成イメージを読み込んで再構成することは可能です。これは「非動的」再構成になります。
FPGAには、ロジックファブリックを動的に再配線する機能がありますか?実際、フリップフロップの値を変更することはできますが、ルックアップテーブルの動的な再構成や、ロジックファブリックを構成する内部配線のことは聞いたことがありません。
FPGAの内部ロジック(メモリ以外)を動的に変更できますか?そうでない場合は、なぜですか?
理論的には、FPGAが構成イメージを外部メモリに書き込み、メモリから構成イメージを読み込んで再構成することは可能です。これは「非動的」再構成になります。
FPGAには、ロジックファブリックを動的に再配線する機能がありますか?実際、フリップフロップの値を変更することはできますが、ルックアップテーブルの動的な再構成や、ロジックファブリックを構成する内部配線のことは聞いたことがありません。
FPGAの内部ロジック(メモリ以外)を動的に変更できますか?そうでない場合は、なぜですか?
回答:
使用できる一般的なアプローチは2つあります。多くのタイプのFPGAは、起動時に外部デバイス(通常はEEPROM)からフェッチされるラッチに構成を保持します。外部デバイスは、読み取られた後、FPGAで必要ありません。FPGAがその内容をリロードするように指示されるまで、デバイス動作中のEEPROMへの変更は有効になりません。したがって、FPGAなしでは完全に動作しなくなるデバイスでも、動作中にFPGAを再プログラムすることができます。ただし、EEPROMの書き込み中に問題が発生した場合、外部デバイス(「ブリック」と呼ばれることもある)によって書き換えられない限り、または書き換えられるまで、デバイスは動作不能になる可能性があります。
EEPROMセルが(ラッチにコピーされるのではなく)機能を「直接」制御するCPLDでしばしば役立つ代替アプローチは、プログラマブルデバイスが無用な状態にある場合でも、制限された機能で動作できるシステムを持つことです。そのような制限された機能がCPLDを再プログラムするのに十分である場合、デバイスは「ブリック」の影響を受けない可能性があります。たとえば、ワイヤレスデバイスはCPLDを使用して、ワイヤレス機能やその他の機能を制御します。CPLDを再プログラムする通常の方法は、ワイヤレスリンクを介してRAMにイメージを受信し、そのイメージを使用してCPLDを再プログラムすることです。ファイルをプログラミングする場合、CPLDが再プログラミングされるまで、ワイヤレスリンクが使用できない場合があります。ただし、システムが回復できるようにするには、プロセッサに「デフォルト」を含めることができます