コンフィグレーションデータが格納された第1のコンフィグレーションROM及び第2のコンフィグレーションROMと、電源投入後に前記第1のコンフィグレーションROMまたは前記第2のコンフィグレーションROMのうち少なくともどちらか一方に格納された前記コンフィグレーションデータを読み込むことによりFPGAの回路の構築を開始し、前記FPGAの回路の構築が成功するとコンフィグレーション完了信号を出力し、前記FPGAの回路の構築が失敗するとコンフィグレーションエラー検出信号を出力するFPGAと、前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのデータにアクセスすることが可能なCPUと、電源投入後に最初は前記第1のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成し、前記FPGAから前記コンフィグレーションエラー検出信号が出力された場合、前記第2のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成するROM制御信号切替回路と、を有するコンフィグレーション冗長化装置。前記FPGAが出力する前記コンフィグレーション完了信号が出力されたこと及び前記コンフィグレーションデータを前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのどちらから読み込んだのかを示すコンフィグレーション成功ROM通知信号を前記ROM制御信号切替回路が出力する請求項1記載のコンフィグレーション冗長化装置。前記コンフィグレーションデータが格納された前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMの空き領域に前記コンフィグレーションデータの誤り検出符号が付加されている請求項1記載のコンフィグレーション冗長化装置。前記コンフィグレーションデータが格納された前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMの空き領域に、前記コンフィグレーションデータのバージョン情報が付加されており、外部から前記コンフィグレーションデータを受け取ることができる通信ポートと、を有する請求項3記載のコンフィグレーション冗長化装置。前記第1のコンフィグレーションROMからコンフィグレーションして前記コンフィグレーション完了信号が出力した後に、前記FPGAまたは前記CPUのうち少なくともどちらか一方からアクセスが無ければ、前記ROM制御信号切替回路に対して、コンフィグレーション経路を前記第2のコンフィグレーションROMに変更して前記第2のコンフィグレーションROMからコンフィグレーションを開始する信号を出力するFPGA起動確認レジスタを有する請求項1記載のコンフィグレーション冗長化装置。前記FPGAの回路の構築が失敗すると前記コンフィグレーションエラー検出信号が出力されるように前記第1のコンフィグレーションROMの前記コンフィグレーションデータの一部もしくは全部を書き換えるのに必要な間、電源遮断時に電圧を保持する電圧保持回路と、電源が遮断したことを検出し、電源が遮断したことを前記電圧保持回路に出力する電源遮断検出回路と、を有する請求項1記載のコンフィグレーション冗長化装置。電源投入後に最初から前記FPGAが前記第2のコンフィグレーションROMに格納された前記コンフィグレーションデータを読み込むことにより前記FPGAの回路の構築を開始するように設定できる不揮発性である起動ROM選択レジスタと、電源投入後に前記起動ROM選択レジスタの状態を確認することにより、最初は前記第1のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成し、前記FPGAから前記コンフィグレーションエラー検出信号が出力された場合、前記第2のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成するか、または最初から前記第2のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成するROM制御信号切替回路と、を有する請求項1記載のコンフィグレーション冗長化装置。前記CPUが前記FPGAに内蔵されている請求項1記載のコンフィグレーション冗長化装置。電源投入後に第1のコンフィグレーションROM及び第2のコンフィグレーションROMに格納されたコンフィグレーションデータをFPGAが読み込むことによりFPGAをコンフィグレーションする手法において、最初に前記FPGAは前記第1のコンフィグレーションROMからコンフィグレーションを開始する処理と、前記第1のコンフィグレーションROMからのコンフィグレーションしているときに、前記FPGAからコンフィグレーションエラー検出信号が出力された場合は、コンフィグレーション経路を前記第2のコンフィグレーションROMに切り替え、前記第2のコンフィグレーションROMからコンフィグレーションを開始する処理と、を有するコンフィグレーション手法。前記FPGAが前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのどちらからのコンフィグレーションでコンフィグレーションが成功したのかを示すコンフィグレーション成功ROM通知信号をROM制御信号切替回路が出力する処理を有する請求項9記載のコンフィグレーション手法。前記FPGAが前記第2のコンフィグレーションROMからコンフィグレーションが成功した場合、コンフィグレーション成功後に前記FPGAまたはCPUのうち少なくともどちらか一方が前記第2のコンフィグレーションROMのデータを検証する処理と、前記FPGAまたはCPUのうち少なくともどちらか一方が前記第2のコンフィグレーションROMのデータを前記第1のコンフィグレーションROMにコピーする処理と、前記FPGAまたはCPUのうち少なくともどちらか一方が前記第1のコンフィグレーションROMのデータを検証する処理と、を有する請求項9記載のコンフィグレーション手法。前記FPGAがコンフィグレーション成功後に前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMに格納されているコンフィグレーションデータを更新する手法において、更新コンフィグレーションデータを通信ポートから受け取る処理と、受け取った前記更新コンフィグレーションデータのバージョンが正しいことを確認する処理と、前記第2のコンフィグレーションROMに前記更新コンフィグレーションデータを書き込み検証する処理と、前記第1のコンフィグレーションROMに前記更新コンフィグレーションデータを書き込み検証する処理と、を有する請求項9記載のコンフィグレーション手法。前記FPGAが前記第1のコンフィグレーションROMからのコンフィグレーションによりコンフィグレーションが成功した場合、前記FPGAまたは前記CPUのうち少なくともどちらか一方がFPGA起動確認レジスタにアクセスをするFPGA起動確認処理と、前記FPGA起動確認処理が無い場合、コンフィグレーション経路を前記第2のコンフィグレーションROMに切り替え、前記第2のコンフィグレーションROMからコンフィグレーションを開始する処理を有する請求項9記載のコンフィグレーション手法。電源遮断時に前記FPGAの回路の構築が失敗すると前記コンフグレーションエラー検出信号が出力されるように、前記FPGAまたは前記CPUのうち少なくともどちらか一方が前記第1のコンフィグレーションROMのコンフィグレーションデータの一部もしくは全部を書き換える処理を有する請求項9記載のコンフィグレーション手法。前記第1のコンフィグレーションROMにアクセスする前に、次回の電源投入時は最初から前記第2のコンフィグレーションROMからコンフィグレーションが開始するように前記FPGAまたは前記CPUのうち少なくともどちらか一方が、不揮発性である起動ROM選択レジスタに設定する処理と、前記第1のコンフィグレーションROMにアクセスした後に、次回の電源投入時は通常通り前記第1のコンフィグレーションROMからコンフィグレーションが開始するように前記FPGAまたは前記CPUのうち少なくともどちらか一方が、前記起動ROM選択レジスタに設定する処理と、を有する請求項9記載のコンフィグレーション手法。しかしこの装置では、コンフィグレーションデータがデータ化けを起こしている場合、タイマのタイムアウトでコンフィグレーションの失敗を判断しているので時間がかかる。また、1度目のコンフィグレーションが実施されるコンフィグレーションROMのデータがデータ化けをしている場合であっても、次回以降の起動時にはそのデータ化けを起こしているコンフィグレーションROMからコンフィグレーションを試み、起動を失敗した後に2度目のコンフィグレーションが実施されるコンフィグレーションROMからコンフィグレーションを実施するため、起動に時間がかかるという課題がある。そこで上記課題を解決するために本発明では、電源を投入してからFPGAが起動するまでの時間を短縮しつつ、FPGAの起動を保証することが可能なコンフィグレーション冗長化装置、及びコンフィグレーション手法を提案することを目的とする。上記課題を解決するために、本発明の一態様によれば、コンフィグレーションデータが格納された第1のコンフィグレーションROM及び第2のコンフィグレーションROMと、電源投入後に前記第1のコンフィグレーションROMまたは前記第2のコンフィグレーションROMのうち少なくともどちらか一方に格納された前記コンフィグレーションデータを読み込むことによりFPGAの回路の構築を開始し、前記FPGAの回路の構築が成功するとコンフィグレーション完了信号を出力し、前記FPGAの回路の構築が失敗するとコンフィグレーションエラー検出信号を出力するFPGAと、前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのデータにアクセスすることが可能なCPUと、電源投入後に最初は前記第1のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成し、前記FPGAから前記コンフィグレーションエラー検出信号が出力された場合、前記第2のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成するROM制御信号切替回路とを有するコンフィグレーション冗長化装置が提供される。ここで、本発明でいう第1のコンフィグレーションROM及び第2のコンフィグレーションROMは、書き換え可能であり、かつ電源が遮断されてもデータが保持される不揮発性のメモリである。また、本発明でいうFPGAは電源投入される毎にコンフィグレーションデータを外部から読み込むことにより回路を構築し、電源が遮断されると構築した回路が失われるデバイスである。これにより、前記第1のコンフィグレーションROMのコンフィグレーションデータがデータ化けを起こしていた場合、タイムアウトを待たなくても前記第2のコンフィグレーションROMからコンフィグレーションを開始できるため、起動時間が短縮する。また、本発明の一態様によれば、前記FPGAが出力する前記コンフィグレーション完了信号が出力されたこと及び前記コンフィグレーションデータを前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのどちらから読み込んだのかを示すコンフィグレーション成功ROM通知信号を前記ROM制御信号切替回路が出力する上記のコンフィグレーション冗長化装置が提供される。これにより、前記FPGAが前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのどちらから起動したのかわかる。このため、前記第2のコンフィグレーションROMから起動した場合は、前記第1のコンフィグレーションROMの前記コンフィグレーションデータを修復することにより、次回起動時は前記第1のコンフィグレーションROMから起動するため、起動時間が短縮する。また、本発明の一態様によれば、前記コンフィグレーションデータが格納された前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMの空き領域に前記コンフィグレーションデータの誤り検出符号が付加されている上記のコンフィグレーション冗長化装置が提供される。これにより、前記第1のコンフィグレーションROMまたは前記第2のコンフィグレーションROMの前記コンフィグレーションデータを修復する際に、前記誤り検出符号により前記コンフィグレーションデータが正常に修復されたことを保証できる。また、本発明の一態様によれば、前記コンフィグレーションデータが格納された前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMの空き領域に、前記コンフィグレーションデータのバージョン情報が付加されており、外部から前記コンフィグレーションデータを受け取ることができる通信ポートと、を有する上記のコンフィグレーション冗長化装置が提供される。これにより、通信ポートから前記コンフィグレーションデータを受信することにより、前記コンフィグレーションデータを更新する際も誤ったバージョンの前記コンフィグレーションデータが更新されることを防止できる。また、本発明の一態様によれば、前記第1のコンフィグレーションROMからコンフィグレーションして前記コンフィグレーション完了信号が出力した後に、前記FPGAまたは前記CPUのうち少なくともどちらか一方からアクセスが無ければ、前記ROM制御信号切替回路に対して、コンフィグレーション経路を前記第2のコンフィグレーションROMに変更して前記第2のコンフィグレーションROMからコンフィグレーションを開始する信号を出力するFPGA起動確認レジスタを有する上記のコンフィグレーション冗長化装置が提供される。これにより、前記第1のコンフィグレーションROMから前記コンフィグレーションデータの内容通りに前記FPGAの回路の構築は完了したが、その他の要因によりFPGAが正常に動作しない場合でも、前記第2のコンフィグレーションROMから再びコンフィグレーションを実施することができる。また、本発明の一態様によれば、前記FPGAの回路の構築が失敗すると前記コンフィグレーションエラー検出信号が出力されることを保証するために、前記第1のコンフィグレーションROMの前記コンフィグレーションデータの一部もしくは全部を書き換えるのに必要な間、電源遮断時に電圧を保持する電圧保持回路と、電源が遮断したことを検出し、電源が遮断したことを前記電圧保持回路に出力する電源遮断検出回路と、を有する上記のコンフィグレーション冗長化装置が提供される。これにより、前記CPUが前記第1のコンフィグレーションROMにアクセス中に電源が遮断した場合でも、次回起動時に前記FPGAの回路の構築が失敗すると前記コンフィグレーションエラー検出信号が出力されることが保証されるため、前記第2のコンフィグレーションROMによるコンフィグレーションに切り替えることができる。また、本発明の一態様によれば、電源投入後に最初から前記FPGAは前記第2のコンフィグレーションROMに格納された前記コンフィグレーションデータを読み込むことにより前記FPGAの回路の構築を開始するように設定できる不揮発性である起動ROM選択レジスタと、電源投入後に前記起動ROM選択レジスタの状態を確認することにより、最初は前記第1のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成し、前記FPGAから前記コンフィグレーションエラー検出信号が出力された場合、前記第2のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成するか、または最初から前記第2のコンフィグレーションROMから前記コンフィグレーションデータを前記FPGAが読み込むようにデータ経路を構成するROM制御信号切替回路と、を有する上記のコンフィグレーション冗長化装置が提供される。これにより、前記CPUが前記第1のコンフィグレーションROMにアクセス中に電源が遮断した場合、次回電源投入時は最初から前記第2のコンフィグレーションROMによるコンフィグレーションを行うことができる。また、本発明の一態様によれば、前記CPUが前記FPGAに内蔵されている上記のコンフィグレーション冗長化装置が提供される。これによりデバイスの数が少なくなるため、信頼性が増すこと及び、デバイス管理が容易になること及び、ハードウェア仕様変更が容易になること及び、価格が安くなることなどのメリットがある。また、本発明の一態様によれば、電源投入後に第1のコンフィグレーションROMまたは第2のコンフィグレーションROMのうち少なくともどちらか一方に格納されたコンフィグレーションデータをFPGAが読み込むことによりFPGAをコンフィグレーションする手法において、最初に前記FPGAは前記第1のコンフィグレーションROMからコンフィグレーションを開始する処理と、前記第1のコンフィグレーションROMからのコンフィグレーションしているときに、前記FPGAからコンフィグレーションエラー検出信号が出力された場合は、コンフィグレーション経路を前記第2のコンフィグレーションROMに切り替え、前記第2のコンフィグレーションROMからコンフィグレーションを開始する処理と、を有するコンフィグレーション手法が提供される。これにより、前記第1のコンフィグレーションROMが破壊されていた場合、タイムアウトを待たなくても前記第2のコンフィグレーションROMに切り替えることができるため、起動時間が短縮する。また、本発明の一態様によれば、前記FPGAが前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのどちらからのコンフィグレーションでコンフィグレーションが成功したのかを示すコンフィグレーション成功ROM通知信号をROM制御信号切替回路が出力する処理を有する上記のコンフィグレーション手法が提供される。これにより、前記FPGAが前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMのどちらから起動したのかわかる。このため、前記第2のコンフィグレーションROMから起動した場合は、前記第1のコンフィグレーションROMの前記コンフィグレーションデータを修復することにより、次回起動時は前記第1のコンフィグレーションROMから起動するため、起動時間が短縮する。また、本発明の一態様によれば、前記FPGAが前記第2のコンフィグレーションROMからコンフィグレーションが成功した場合、コンフィグレーション成功後に前記FPGAまたはCPUのうち少なくともどちらか一方が前記第2のコンフィグレーションROMのデータを検証する処理と、前記FPGAまたはCPUのうち少なくともどちらか一方が前記第2のコンフィグレーションROMのデータを前記第1のコンフィグレーションROMにコピーする処理と、前記FPGAまたはCPUのうち少なくともどちらか一方が前記第1のコンフィグレーションROMのデータを検証する処理と、を有する上記のコンフィグレーション手法が提供される。これにより、前記第1のコンフィグレーションROMまたは前記第2のコンフィグレーションROMの前記コンフィグレーションデータを修復する際に、前記コンフィグレーションデータを検証することにより、前記コンフィグレーションデータが正常に修復されたことを保証できる。また、本発明の一態様によれば、前記FPGAがコンフィグレーション成功後に前記第1のコンフィグレーションROM及び前記第2のコンフィグレーションROMに格納されているコンフィグレーションデータを更新する手法において、更新コンフィグレーションデータを通信ポートから受け取る処理と、受け取った前記更新コンフィグレーションデータのバージョンが正しいことを確認する処理と、前記第2のコンフィグレーションROMに前記更新コンフィグレーションデータを書き込み検証する処理と、前記第1のコンフィグレーションROMに前記更新コンフィグレーションデータを書き込み検証する処理と、を有する上記のコンフィグレーション手法が提供される。これにより、通信ポートから前記コンフィグレーションデータを受信することにより、前記コンフィグレーションデータを更新する際も誤ったバージョンの前記コンフィグレーションデータが更新されることを防止できる。また、本発明の一態様によれば、前記FPGAが前記第1のコンフィグレーションROMからのコンフィグレーションによりコンフィグレーションが成功した場合、前記FPGAまたは前記CPUのうち少なくともどちらか一方がFPGA起動確認レジスタにアクセスをするFPGA起動確認処理と、前記FPGA起動確認処理が無い場合、コンフィグレーション経路を前記第2のコンフィグレーションROMに切り替え、前記第2のコンフィグレーションROMからコンフィグレーションを開始する処理を有する上記のコンフィグレーション手法が提供される。これにより、前記第1のコンフィグレーションROMから前記コンフィグレーションデータの内容通りに前記FPGAの回路の構築は完了したが、その他の要因によりFPGAが正常に動作しない場合でも、前記第2のコンフィグレーションROMから再びコンフィグレーションを実施することができる。また、本発明の一態様によれば、電源遮断時に前記FPGAの回路の構築が失敗すると前記コンフグレーションエラー検出信号が出力されるように、前記FPGAまたは前記CPUのうち少なくともどちらか一方が前記第1のコンフィグレーションROMのコンフィグレーションデータの一部もしくは全部を書き換える処理を有する上記のコンフィグレーション手法が提供される。これにより、前記CPUが前記第1のコンフィグレーションROMにアクセス中に電源が遮断した場合でも、次回起動時に前記FPGAの回路の構築が失敗すると前記コンフグレーションエラー検出信号が出力されるため、前記第2のコンフィグレーションROMによるコンフィグレーションに切り替えることができる。また、本発明の一態様によれば、前記第1のコンフィグレーションROMにアクセスする前に、次回の電源投入時は最初から前記第2のコンフィグレーションROMからコンフィグレーションが開始するように前記FPGAまたは前記CPUのうち少なくともどちらか一方が、不揮発性である起動ROM選択レジスタに設定する処理と、前記第1のコンフィグレーションROMにアクセスした後に、次回の電源投入時は通常通り前記第1のコンフィグレーションROMからコンフィグレーションが開始するように前記FPGAまたは前記CPUのうち少なくともどちらか一方が、前記起動ROM選択レジスタに設定する処理と、を有する上記のコンフィグレーション手法が提供される。これにより、前記CPUが前記第1のコンフィグレーションROMにアクセス中に電源が遮断した場合、次回電投入時は最初から前記第2のコンフィグレーションROMによるコンフィグレーションを行うことができる。以上説明したように本発明によれば、電源を投入してからFPGAが起動するまでの時間を短縮しつつ、FPGAの起動を保証することが可能なコンフィグレーション冗長化装置、及びコンフィグレーション手法を提案することが可能になる。以下に図面を参照して、この発明を実施するための形態を例示的に詳しく説明する。第1実施形態図1は本実施形態の構成を表したブロック図である。FPGA101はコンフィグ専用回路1011と、論理回路1012と、CPU1013とを備える。コンフィグ専用回路1011はFPGA101の起動時にコンフィグレーションを制御する。具体的には、電源投入後にROM制御信号切替回路103に接続されているコンフィグレーションデータ読込み信号S103を経由してコンフィグレーションROM1104またはコンフィグレーションROM2105からコンフィグレーションデータを読み込む。コンフィグレーションが成功した場合はコンフィグレーション完了信号S104をROM制御信号切替回路103に出力し、コンフィグレーションが失敗した場合はコンフィグレーションエラー検出信号S105をROM制御信号切替回路103に出力する。論理回路1012はFPGA101のコンフィグレーションにより構成された回路である。CPU1013はコンフィグレーション完了後にROMアクセス信号S106とROM制御信号切替回路103を通してコンフィグレーションROM1104またはコンフィグレーションROM2105にアクセスできる。CPU1013がコンフィグレーションROM1104またはコンフィグレーションROM2105のどちらにアクセスするのかはROM選択信号S107により決定する。また、CPU1013はFPGAリセット信号S111を起動制御回路102に出力することにより、FPGAをリコンフィグすることができる。起動制御回路102は電源投入を検出すると、リセット信号S101をROM制御信号切替回路103に出力する。また、FPGA101からFPGAリセット信号S111を受け取った場合も、リセット信号S101をROM制御信号切替回路103に出力する。ROM制御信号切替回路103は起動制御回路102からリセット信号S101を受け取ると、コンフィグレーション開始信号S102をFPGA101に出力する。また、ROM制御信号切替回路103は電源投入後、コンフィグレーションデータ読込み信号S103とコンフィグレーションROM1アクセス信号S109を接続し、FPGA101がコンフィグレーションROM1104からコンフィグレーションされる状態にする。その後、FPGA101からコンフィグレーションエラー検出信号S105が出力された場合は、ROM制御信号切替回路103はコンフィグレーションデータ読込み信号S103とコンフィグレーションROM2アクセス信号S110を接続し、FPGA101がコンフィグレーションROM2105からコンフィグレーションされる状態に切り替える。また、ROM制御信号切替回路103はCPU1013の説明で述べたように、FPGA101のコンフィグレーションが完了後、CPU1013がコンフィグレーションROM1104またはコンフィグレーションROM2105のどちらにアクセスするのかをCPU1013により制御されたROM選択信号S107により切り替える。また、コンフィグレーションROM1104またはコンフィグレーションROM2105のどちらのROMからコンフィグレーションが成功したのかをコンフィグレーション成功ROM通知信号S108により、FPGA101に通知する。通信ポート106はFPGAが装置外部とデータを送受信するためのインタフェースであり、例えばLANポートを意味する。通信ポート106を用いる事により、装置外部からコンフィグレーションデータを受信し、FPGA101、ROM制御信号切替回路103を通して、コンフィグレーションROM1104及びコンフィグレーションROM2105に受信したコンフィグレーションデータを書き込むことができる。図2に示すコンフィグレーションROMデータ121は、本実施形態のコンフィグレーションROM1104及びコンフィグレーションROM2105に格納されているデータの構成を示す。コンフィグレーションROMデータ121は、コンフィグレーションデータ1211と、誤り検出符号1212と、バージョン情報1213と、空き領域1214とを備える。コンフィグレーションデータ1211はFPGA101が回路を構築するのに必要なデータであり、FPGA101供給元の独自のフォーマットである。誤り検出符号1212はコンフィグレーションデータ1211が正常であることを検証するための符号であり、例えばCRC符号がある。バージョン情報1213はコンフィグレーションデータ1211のバージョンを示すデータであり、例えばコンフィグレーションデータ1211に対して一意の値をとる。空き領域1214はコンフィグレーションROMデータ121のうち、コンフィグレーションデータ1211と、誤り検出符号1212と、バージョン情報1213以外のデータであり、本装置では意味を持たない。図3はコンフィグレーションのフローチャートを示す。電源投入すると、起動制御回路102はリセット信号S101をROM制御信号切替回路に出力し、ROM制御信号切替回路103はコンフィグレーション開始信号S102をFPGA101に出力する。このコンフィグレーション開始信号S102をFPGA101が受け取ると、FPGA101はコンフィグレーションROM1104に格納されたコンフィグレーションデータ121によりコンフィグレーションを開始するA-101。その後、FPGA101によりコンフィグレーションエラー検出信号S105が出力されずS103、かつコンフィグレーション完了信号S104が出力するとS104、FPGAはコンフィグレーションROM1104により正常に起動したことになる。また、FPGA101によりコンフィグレーションエラー検出信号S105が出力されるとS103、ROM制御信号切替回路103はコンフィグレーション経路をコンフィグレーションROM2105に切り替えるA-102。その後、FPGA101によりコンフィグレーションエラー検出信号S105が出力されずS105、かつコンフィグレーション完了信号S104が出力するとS106、FPGAはコンフィグレーションROM2105により正常に起動したことになる。この場合、FPGA101起動後は、後述の復帰処理が始る。また、FPGA101によりコンフィグレーションエラー検出信号S105が出力されるとS105、FPGAは起動せず、装置故障と判断される。前述のように、FPGA101がコンフィグレーションROM1104からのコンフィグレーションに失敗して、コンフィグレーションROM2105からのコンフィグレーションに成功して正常に起動した場合、FPGA101はコンフィグレーションROM1104のコンフィグレーションデータ1211の復帰処理を行う。図4は復帰処理のフローチャートを示す。まず、FPGA101内のCPU1013が、コンフィグレーションROM2105のコンフィグレーションデータ1211が正常であることを誤り検出符号1212を用いて検証しS-105、正常である場合はコンフィグレーションROM2105のコンフィグレーションデータ1211をコンフィグレーションROM1104にコピーするA-104。ここでコンフィグレーションROM2105のコンフィグレーションデータ1211が正常でない場合は、復帰処理失敗となる。その後、FPGA101内のCPU1013が、コンフィグレーションROM2105のコンフィグレーションデータ1211が正常であることを誤り検出符号1212を用いて検証しS-106、正常である場合は復帰処理完了となり、正常でない場合はコンフィグレーションROM2105のコンフィグレーションデータ1211検証S-105に戻る。本実施形態では、FPGA101起動後にコンフィグレーションROM1104及びコンフィグレーションROM2105のコンフィグレーションROMデータ121を更新することができる。図5は、データ更新のフローチャートを示す。まず、FPGA101は通信ポート106を通して更新データを受け取りA-105、更新データのバージョン情報1213が正常であるか検証するS-107。更新データが正常であった場合は、FPGA101はコンフィグレーションROM2105に更新データを書き込みA-106、正常に書き込まれたかを誤り検出符号1212を用いて確認後A-107、コンフィグレーションROM1104に更新データを書き込みA-108、正常に書き込まれたかを誤り検出符号1212を用いて確認する。その後、FPGA101がリコンフィグを行うことによりA110、FPGA101は更新データで起動しA-111、データ更新が完了する。第2実施形態図6は本実施形態の構成を表したブロック図であり、第1実施形態を示した図1にFPGA起動確認レジスタ203を追加した構成である。FPGA起動確認レジスタ203は装置実装時の初期状態が0である不揮発性メモリで構成されており、FPGA201によりデータを書き換えることができ、またROM制御信号切替回路202はデータを読み込むことができる。FPGA201はコンフィグ専用回路1011と、論理回路1012と、CPU2013とを備える。コンフィグ専用回路1011及び論理回路1012は図1で説明した内容と同じである。CPU2013は図1で説明した内容に加えて、FPGA起動後にFPGA起動確認レジスタ書込み信号S201を通してFPGA起動確認レジスタ203に1を書き込む。ROM制御信号切替回路202は図1で説明した内容に加えて、コンフィグレーションROM1によりFPGAが起動後に、FPGA起動確認レジスタ読込み信号S202を通してFPGA起動確認レジスタ203のデータを読み込む。ここで、読み込んだ値が0の場合は、コンフィグレーション経路をコンフィグレーションROM2105に切り替える。起動制御回路102及び通信ポート106は図1で説明した内容と同じ機能を持つ。コンフィグレーションROM1104及びコンフィグレーションROM2105は図2で説明した内容と同じデータ構成を持つ。図7はコンフィグレーションのフローチャートを示しており、第1実施形態を示した図3にFPGA起動確認レジスタ203にデータを書き込む処理A-201及び、FPGA起動確認レジスタ203のデータを読み込むことによりその後の処理を判断する処理S-201を追加したフローチャートである。電源投入後、図3で説明した内容と同じフローを実施し、FPGA101がコンフィグレーションROM1104に格納されたコンフィグレーションデータ121によりコンフィグレーションが成功して、FPGA101がコンフィグレーション完了信号をS104を出力するとS-102、FPGA101内のCPU2013はFPGA起動確認レジスタ203に1を書き込む。その後、ROM制御信号切替回路202はFPGA起動確認レジスタ203のデータを読み込み、データが1の場合、FPGAはコンフィグレーションROM1104により正常に起動したことになる。データが0の場合、ROM制御信号切替回路202はコンフィグレーション経路をコンフィグレーションROM2105に切り替える。その後は図3で説明した内容と同じフローを実施する。第3実施形態図8は本実施形態の構成を表したブロック図であり、第1実施形態を示した図1に電源遮断検出回路302と電源保持回路303を追加した構成である。電源遮断検出回路302は電源が遮断したことを検出し、電源保持回路303及びFPGA301に電源遮断検出信号S301を出力する。電源保持回路302は電源遮断検出信号S301を受け取ると一定時間電源電圧を保持し、FPGA101とROM制御信号切替回路103とコンフィグレーションROM1104とコンフィグレーションROM2105と通信ポート106が動作できる状態にする。FPGA301はコンフィグ専用回路1011と、論理回路1012と、CPU3013とを備える。コンフィグ専用回路1011及び論理回路1012は図1で説明した内容と同じである。CPU3013は図1で説明した内容に加えて、電源遮断検出回路から電源遮断検出信号S301を受け取ったときにコンフィグレーションROM1104にアクセス中であった場合、コンフィグレーションROM1104のコンフィグレーションデータ1211を、コンフィグレーション失敗時に必ずンフグレーションエラー検出信号が出力されるように書き換える。起動制御回路102及びROM制御信号切替回路103及び通信ポート106は図1で説明した内容と同じ機能を持つ。コンフィグレーションROM1104及びコンフィグレーションROM2105は図2で説明した内容と同じデータ構成を持つ。コンフィグレーションのフローチャートは第1実施形態を示した図3と同じである。図9は電源遮断時のフローチャートを示す。電源遮断すると、電源遮断検出回路302は電源が遮断したことを検出しA-301、電源保持回路303は電源電圧の保持を開始するA-302。それと同時にFPGA301内のCPU3013はコンフィグレーションROM1104のコンフィグレーションデータ1211を、コンフィグレーション失敗時に必ずコンフグレーションエラー検出信号が出力されるように書き換えるA-303。第4実施形態図10は本実施形態の構成を表したブロック図であり、第1実施形態を示した図1に起動ROM選択レジスタ403を追加した構成である。起動ROM選択レジスタ403は装置実装時の初期状態が0である不揮発性メモリで構成されており、FPGA401によりデータを書き換えることができ、またROM制御信号切替回路402はデータを読み込むことができる。FPGA401はコンフィグ専用回路1011と、論理回路1012と、CPU4013とを備える。コンフィグ専用回路1011及び論理回路1012は図1で説明した内容と同じである。CPU4013は図1で説明した内容に加えて、FPGA起動後に起動ROM選択レジスタ書込み信号S401を通して起動ROM選択レジスタ403にデータを書き込むことができる。ROM制御信号切替回路402は、電源投入すると起動ROM選択レジスタ403のデータを読み込むことにより、最初からコンフィグレーションROM2105によりコンフィグレーションを開始するか、または図1で説明したように最初はコンフィグレーションROM1104によりコンフィグレーションを開始するかどうかを判断する。起動制御回路102及び通信ポート106は図1で説明した内容と同じ機能を持つ。コンフィグレーションROM1104及びコンフィグレーションROM2105は図2で説明した内容と同じデータ構成を持つ。図11はコンフィグレーションのフローチャートを示しており、第1実施形態を示した図3に起動ROM選択レジスタ403のデータによる条件分岐S-401を追加したフローチャートである。電源投入すると、ROM制御信号切替回路402は起動ROM選択レジスタ403のデータを読み込みS-401、データが0の場合はコンフィグレーションROM1104によりコンフィグレーションを開始しA-101、その後は図3で説明した内容と同じフローを実施する。データが1の場合はコンフィグレーションROM2105によりコンフィグレーションを開始しA-102、その後は図3で説明した内容と同じフローを実施する。図12は復帰処理のフローチャートを示しており、第1実施形態を示した図4に起動ROM選択レジスタ403へのデータ書き込みA-401、A-402を追加したフローチャートである。コンフィグレーションROM2105のデータをコンフィグレーションROM1104にコピーするA-104前に、FPGA401内のCPU4013は起動ROM選択レジスタ403に1を書き込むA-401。そして、コンフィグレーションROM2105のデータをコンフィグレーションROM1104にコピーしたA-104後に、FPGA401内のCPU4013は起動ROM選択レジスタ403に0を書き込むA-402。図13はデータ更新のフローチャートを示しており、第1実施形態を示した図5に起動ROM選択レジスタ403へのデータ書き込みA-403、A-404を追加したフローチャートである。コンフィグレーションROM1104に更新データを書き込むA-108前に、FPGA401内のCPU4013は起動ROM選択レジスタ403に1を書き込むA-403。そして、コンフィグレーションROM1104に更新データを書き込みA-108後に、FPGA401内のCPU4013は起動ROM選択レジスタ403に0を書き込むA-404。