(57)【特許請求の範囲】
【請求項１】
機能ブロック間の相互の接続を行うバスに出力が接続され、構成情報メモリに格納されている情報に基づき、オン・オフ制御されるスイッチと、
前記構成情報メモリのエラーを検出するエラー検出回路と、
前記エラー検出回路で前記構成情報メモリのエラーを検出したとき、エラー検出結果に基づき、前記スイッチをオフ状態に設定する回路と、
を備えている、ことを特徴とする再構成可能デバイス。
【請求項２】
前記構成情報メモリに格納されている情報に基づき、オン・オフ制御され、出力が前記バスに接続した前記スイッチを複数備え、
前記構成情報メモリのエラーが検出されたとき、複数の前記スイッチは共通にオフ状態に設定される、ことを特徴とする請求項１記載の再構成可能デバイス。
【請求項３】
前記構成情報メモリが、前記構成情報メモリのエラーの検出結果に基づき、前記構成情報メモリに格納された情報の前記スイッチへの伝達をマスクする制御を行う論理回路を備え、
前記スイッチは、前記構成情報メモリ内の前記論理回路の出力に基づき、オン・オフ制御される、ことを特徴とする請求項１又は２記載の再構成可能デバイス。
【請求項４】
前記エラー検出回路から出力されるエラーを保持するエラー保持回路を備え、
前記エラー保持回路の出力がエラーを示すとき、前記論理回路は、対応するスイッチをオフ状態とする値を出力することで、前記構成情報メモリに格納された情報をマスクする、ことを特徴とする請求項３記載の再構成可能デバイス。
【請求項５】
前記エラー保持回路をエラー無しの状態にリセットするリセット回路を備え、
前記エラー保持回路がエラー無しの状態にリセットされた後に、前記エラー検出回路からエラーが出力され前記エラー保持回路で前記エラーを一旦保持すると、前記構成情報メモリの前記論理回路からの出力に基づき、前記エラー検出回路でエラー無しが検出されても、前記エラー保持回路は前記エラーを保持する、ことを特徴とする請求項４記載の再構成可能デバイス。
【請求項６】
前記エラー検出回路の出力が、前記構成情報メモリのエラーを示すとき、状態遷移コントローラに通知し、前記状態遷移コントローラにおける所定の動作を停止する信号を生成する回路を備えている、ことを特徴とする請求項１又は２記載の再構成可能デバイス。
【請求項７】
現在の状態を入力し、次の状態を出力する状態遷移テーブルと、
イベント識別コードに基づき、前記状態遷移テーブルから出力される状態を選択する選択回路と、
前記イベント識別コードが予め定められた所定値のとき、予め定められた所定の動作を停止する信号を出力するとともに、所定の状態を選択するように前記選択回路を制御するイベント発生判定回路と、
前記イベント発生判定回路からの動作を停止する信号と、前記エラー検出回路からのエラー検出信号の少なくともいずれか１方が活性状態のとき、活性状態の動作を停止する信号を出力する回路と、
を備えている、ことを特徴とする請求項１又は２記載の再構成可能デバイス。
【請求項８】
前記構成情報メモリにおいて、物理的な隣接ビットごとにグループに分け、
前記エラー検出回路として、グループごとにエラー検出する回路を備えている、ことを特徴とする請求項１又は２記載の再構成可能デバイス。
【請求項９】
前記構成情報メモリにおいて、物理的な隣接ビットごとに、メモリセルを複数のグループにグループ分けし、各グループには、それぞれエラーチェック用の冗長ビットが割り付けられ、
前記エラー検出回路として、各グループごとに冗長ビットを含めたエラーの検出を行い、前記複数のグループでのエラー検出結果に基づき、全体のエラー検出結果を生成する回路を備えている、ことを特徴とする請求項１又は２記載の再構成可能デバイス。
【請求項１０】
機能ブロック間の相互の接続を行うバスに出力が接続され、構成情報メモリに格納されている情報に基づき、オン・オフ制御されるスイッチと、
前記構成情報メモリのエラーを検出するエラー検出回路と、
前記エラー検出回路で前記構成情報メモリのエラーを検出したとき、エラー検出結果に基づき、前記スイッチの出力を所定の値に設定する回路と、
を備えている、ことを特徴とする再構成可能デバイス。
【請求項１１】
前記スイッチの出力を所定の値に設定する回路は、
前記スイッチの前段に配設され、
前記スイッチに入力される信号と、前記エラー検出回路からのエラー検出信号とを入力し、前記エラー検出回路でエラーが検出されないときは、前記スイッチに入力される信号を出力して前記スイッチに供給し、前記エラー検出回路でエラー検出時、出力を予め定められた所定値に設定し、前記スイッチの入力に供給する論理回路を備えている、ことを特徴とする請求項１０記載の再構成可能デバイス。
【請求項１２】
前記スイッチが、トライステートバッファを含む、ことを特徴とする請求項１乃至１１のいずれか１項記載の再構成可能デバイス。
【請求項１３】
前記構成情報メモリが、エラーチェック用の冗長ビットを備えている、ことを特徴とする請求項１乃至８、１０乃至１２のいずれか１項記載の再構成可能デバイス。
【請求項１４】
前記構成情報メモリが、パリティビットを備えている、ことを特徴とする請求項１乃至１２のいずれか１項記載の再構成可能デバイス。
【請求項１５】
前記構成情報メモリの予め定められた１又は複数の所定のビットにパリティを予め埋め込んでおく、ことを特徴とする請求項１乃至１２のいずれか１項記載の再構成可能デバイス。
【請求項１６】
前記エラー検出回路が、パリティエラーを検出する、ことを特徴とする請求項１４又は１５記載の再構成可能デバイス。
【請求項１７】
前記構成情報メモリは、前記機能ブロックに対応して配設され、
前記エラー検出回路は、前記機能ブロックに対応して配設され、対応する前記構成情報メモリの出力信号を入力する、ことを特徴とする請求項１乃至１６のいずれか１項記載の再構成可能デバイス。
【請求項１８】
前記バスが、アレイ状に配設された複数の前記機能ブロック間に配設された双方向バスを含む、ことを特徴とする請求項１乃至１７のいずれか１項記載の再構成可能デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスに関し、特に、プログラマブルに多様な機能を実現できる再構成可能デバイスに関する。
【背景技術】
【０００２】
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）と呼称される製品が実用化されている。このようなプロセッサユニットを利用したデータ処理システムでは、複数の命令コードが記述された各種のアプリケーションプログラムと、各種の処理データとがメモリデバイスに格納され、プロセッサユニットは、メモリデバイスから、命令コードや処理データを順番に読み出して複数の演算処理を逐次実行する。このため、一個のプロセッサユニットで各種のデータ処理を実現できる。しかしながら、データ処理では複数の演算処理を順番に逐次実行する必要があり、逐次処理ごとに、プロセッサユニットがメモリデバイスから命令コードを読み出す必要がある。このため、複数の演算処理を伴う複雑なデータ処理を、一個のプロセッサユニットで高速に実行することは困難である。
【０００３】
一方、実行するデータ処理が予め一つに限定されている場合には、該限定されたデータ処理を実行するように、論理をハードウェア回路（ハードワイヤードロジック）で形成することで、プロセッサユニットがメモリデバイスから複数の命令コードを順番にデータ読出して複数の演算処理を順番に逐次実行するような必要はない。このため、該限定されたデータ処理を高速に実行することは可能であるが、一つのデータ処理しか実行することができない（汎用性に欠ける）。
【０００４】
実行するアプリケーションプログラムを切換自在としたデータ処理システムでは、各種のデータ処理を実行することになるが、ハードウェアの構成が固定されているので、データ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、実行できるアプリケーションプログラムを変更できないので一つのデータ処理しか実行できない。
【０００５】
この２つの極端な例の中間に位置するのが再構成可能デバイスである。これは必要に応じて異なる所定の構成へと再構成することができる。したがって、再構成可能デバイスは、適切な再構成により、現在の計算上の必要性を満たすように、ハードウェア資源を変更するコンピュータの可能性を提供するものとなる。
【０００６】
構成可能デバイスは、マトリクス状に配列された小規模の複数の機能ブロックを備え、アプリケーションプログラムに対応して、機能ブロックの動作と、プログラマブルな配線資源によって接続された演算器の相互の接続関係とが可変される。構成可能デバイスは、実行するアプリケーションプログラムを変更した場合、そのハードウェアの構成が変化する。このため、構成可能デバイスは、各種のデータ処理を実行することができる。また、構成可能デバイスにおいては、小規模の複数の機能ブロックが、それぞれ演算処理を並列に実行するため、データ処理を高速に実行することができる。
【０００７】
ソフトウェアに対応してハードウェアの構成が変化する再構成可能デバイスとして、例えば特許文献１（特開２００３−７６６６８号公報）、特許文献２（特開２００１−３１２４８１号公報）等に開示されているデバイスが知られている。再構成可能デバイスの配線資源の具体的な構成例として、特許文献３（特許第３４９６６６１号公報）の記載が参照される。再構成可能デバイスの構成情報メモリ内の構成情報が不正になった場合の対策として、特許文献４（特開平０２−０３２６２０号公報）、特許文献５（特開平０５−３２７４７７号公報）、特許文献６（特開２００６−３４４２２３号公報）等の記載が参照される。
【０００８】
【特許文献１】特開２００３−７６６６８号公報
【特許文献２】特開２００１−３１２４８１号公報
【特許文献３】特許第３４９６６６１号公報
【特許文献４】特開平０２−０３２６２０号公報
【特許文献５】特開平０５−３２７４７７号公報
【特許文献６】特開２００６−３４４２２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献の記載内容は、参照によって本明細書に組み込まれる。
【００１０】
以下は、本願発明者らの分析結果による。
【００１１】
再構成可能デバイスは、プログラマブルな配線資源によって自由に機能ブロックの接続関係を変更することによって、さまざまな処理を実現できる。
【００１２】
再構成デバイスの内部の配線資源としては、例えば特許文献３（特許第３４９６６６１号公報）に開示されているように、トライステートバッファやパストランジスタ等を用いた双方向バスが良く使われる。その理由の１つは、双方向線を用いてバスを構成した場合、複数の単方向線を使用するよりも少ない面積で自由度の高い接続関係を実現できるからである。図７は、特許文献３等に記載された再構成可能デバイスの構成を説明するための図である。再構成可能デバイスは、二次元アレイ状に配設された機能ブロック２０１、二次元アレイ状に配設された機能ブロックの各行、各列に対応して水平方向、垂直方向に敷設された双方向バス２０２、２０３を備えている。
【００１３】
再構成可能デバイスの接続関係を変更するためのプログラマブルスイッチは、メモリやフリップフロップ等の記憶素子（「構成情報メモリ」という）によって制御されている。特許文献３（特許第３４９６６６１号公報の図５）に記載の構成では、トライステートバッファについても、出力イネーブルと出力ディスエーブル（出力がハイインピーダンス状態（Ｈｉ−ｚ））のいずれかの選択は、構成情報メモリの値によって決定される。
【００１４】
図８に、特許文献３に開示された構成の一例を示す。なお、特許文献３の図５では、構成情報メモリはフリップフロップよりなる。図８に示すように、機能ブロック２０１に対応して設けられた構成情報メモリ２０４の出力信号は、機能ブロック２０１の出力を受け、出力が双方向バス２０２−１、２０２−２に接続されたトライステートバッファ２０６−１、２０６−２の出力制御端子に接続され、双方向バス２０２−１に挿入されたトライステートバッファ２０５−１、２０５−２の出力制御端子に接続され、トライステートバッファを出力イネーブル、出力ディスエーブル（出力がハイインピーダンス状態）に切替制御する。セレクタ２０７は、構成情報メモリ２０４の出力を選択制御信号として受け複数の双方向バス２０２−１、２０２−２、・・・のうちの１つを選択し、機能ブロック２０１に接続する。構成情報メモリ２０４の出力信号（コンフィギュレーション情報）は、トライステートバッファのほかに機能ブロック２０１、セレクタ２０７にも入力され、機能ブロック２０１内の演算器等の構成、セレクタ２０７による選択を切替制御し、構成を可変する。
【００１５】
図８に示すように、双方向バス（２０２−１、２０２−２、・・・）について、１つの双方向バス（例えば２０２−１）に複数のトライステートバッファ（例えば２０５−１、２０６−１）の出力が接続されており、トライステートバッファ（例えば２０５−１、２０６−１）に接続されている構成情報メモリ２０４の値によっては、複数のトライステートバッファ（２０５−１、２０６−１）が同じバス（例えば２０２−１）に対して出力する状態になり、バスファイト状態を招く。バスファイト状態が長く続くと、デバイスにダメージを与えることになる。これによって、デバイスの不良となる可能性が高くなり、恒久的な故障を引き起こすことになる。パストランジスタの場合も同様である。
【００１６】
構成情報メモリの内容は、一般的に、再構成可能デバイスの開発ツールによって生成される。具体的には、予めコンパイラや論理合成で作成したネットリストを配置配線ツールを通すことによって作成される。構成情報メモリに格納される情報（コンフィギュレーション情報）に関して、以下のような課題がある。
【００１７】
正常なメモリイメージが、データを書き込む前に、なんらかの原因で化けたり、使用者のミスオペレーションで無効データが構成情報メモリに書き込まれる場合が想定される。さらに、作為的に不正なデータが構成情報メモリに書き込まれることもありうる。
【００１８】
また、構成情報メモリに正常なデータが書き込まれていたとしても、外部放射線等に起因するソフトエラーにより、不正なデータになることもある。半導体は、微細化の進展により、このようなソフトエラーの発生頻度が高くなっており、高信頼性の要求される用途では、対策が必要となる。
【００１９】
いずれの場合も、不正なデータが構成情報メモリに書き込まれた場合、一つの双方向バスに複数のトライステートバッファが出力するような構成になる可能性が存在する。このような、不正なデータが構成情報メモリに書き込まれた場合の対策には、特許文献４（特開平０２−０３２６２０号公報）、特許文献５（特開平０５−３２７４７７号公報）、特許文献６（特開２００６−３４４２２３号公報）等の記載が参照される。特許文献４には、ロジックアレイが実際に行う論理動作が、プログラムされた論理動作と一致するか否かを診断可能とするプログラマブルロジックアレイが開示されている。特許文献５には、ゲートアレイに供給されているシステムクロックを一時停止した後、ゲートアレイから読み出したデータと記憶装置から読み出したオリジナルなデータの一致を判定し、実際に動作しているゲートアレイ上のデータの異常発生の有無を検査できるようにした構成が開示されている。特許文献６には、プログラマブルデバイスの偽陽性ソフトエラーを検出するための構成が開示されている。
【００２０】
いずれの技術も、不正なデータが書き込まれたことによって、双方向線によって構成されたプログラマブルな配線資源にバスファイトが生じデバイスにダメージを与えることに関しては、対処できない。
【００２１】
さらに、特許文献４（特開平０２−０３２６２０号公報）、特許文献５（特開平０５−３２７４７７号公報）においては、構成情報が正常であるかの確認に、診断モードに設定する必要があり、通常動作の最中に、チェックできない。したがって、再構成可能デバイスの通常動作時にバスファイトがおきても対応できず、デバイスのダメージを防ぐことは不可能である。
【００２２】
特許文献６（特開２００６−３４４２２３号公報）については、構成情報メモリにソフトエラーを検出した場合に、外部から再度構成情報を読み直すが、その間に生じる可能性のあるバスファイトには、対策が施されていない。なお、特許文献６には何ら記載も示唆もされていないが、構成情報メモリのデータがソフトエラーで不正になって、一旦動作を中断した場合、再度、当該中断時点からの動作を再開する機能を実現したい。構成情報メモリの内容が修正された後に、実行を最初からやり直さなければならないのでは、高信頼性の要求される用途で使用することは難しい。
【課題を解決するための手段】
【００２３】
本願で開示される発明は、本願発明者達による上記課題の認識に基づき創案されたものであって、概略以下の構成とされる。
【００２４】
本発明の１つの側面（アスペクト）に係るデバイスは、機能ブロック間の相互の接続を行うバスに出力が接続され、構成情報メモリに格納されている情報に基づき、オン・オフ制御されるスイッチと、前記構成情報メモリのエラーを検出するエラー検出回路と、前記エラー検出回路で前記構成情報メモリのエラーを検出したとき、エラー検出結果に基づき、前記スイッチをオフ状態に設定する回路と、を備えている。
【００２５】
本発明において、前記構成情報メモリに格納されている情報に基づき、オン・オフ制御され、出力が前記バスに接続した前記スイッチを複数備え、前記構成情報メモリのエラーが検出されたとき、複数の前記スイッチは共通にオフ状態に設定される。
【００２６】
本発明において、前記構成情報メモリは、前記構成情報メモリのエラーの検出結果に基づき、前記構成情報メモリに格納された情報の前記スイッチへの伝達をマスクする制御を行う論理回路（ゲート）を備え、前記スイッチは、前記構成情報メモリの前記論理回路の出力に基づき、オン・オフ制御される構成としてもよい。
【００２７】
本発明において、前記エラー検出回路から出力されるエラーを保持するエラー保持回路を備え、前記エラー保持回路の出力がエラーを示すとき、前記論理回路は、対応するスイッチをオフ状態とする値を出力することで、前記構成情報メモリに格納された情報をマスクする構成としてもよい。
【００２８】
本発明において、前記エラー保持回路をエラー無しの状態にリセットするリセット回路を備え、前記エラー保持回路がエラー無しの状態にリセットされた後に、前記エラー検出回路からエラーが出力され前記エラー保持回路で前記エラーを一旦保持すると、前記構成情報メモリの前記論理回路からの出力に基づき、前記エラー検出回路でエラー無しが検出されても、前記エラー保持回路は、前記エラーを保持する構成としてもよい。
【００２９】
本発明において、前記エラー検出回路の出力が、前記構成情報メモリのエラーを示すとき、状態遷移コントローラに通知し、前記状態遷移コントローラにおける所定の動作を停止する信号を生成する回路を備えた構成としてもよい。
【００３０】
本発明において、現在の状態を入力し、次の状態を出力する状態遷移テーブルと、
イベント識別コードに基づき、前記状態遷移テーブルから出力される状態を選択する選択回路と、前記イベント識別コードが予め定められた所定値のとき、予め定められた所定の動作を停止する信号を出力するとともに、所定の状態を選択するように前記選択回路を制御するイベント発生判定回路と、前記イベント発生判定回路からの動作を停止する信号と、前記エラー検出回路からのエラー検出信号の少なくともいずれか１方が活性状態のとき、活性状態の動作を停止する信号を出力する回路と、を備えた構成としてもよい。
【００３１】
本発明において、前記構成情報メモリにおいて、物理的な隣接ビットごとにグループに分け、前記エラー検出回路として、グループごとにエラー検出する回路を備えた構成としてもよい。
【００３２】
本発明において、前記構成情報メモリにおいて、物理的な隣接ビットごとに、メモリセルを複数のグループにグループ分けし、各グループには、それぞれエラーチェック用の冗長ビットが割り付けられ、前記エラー検出回路として、各グループごとに冗長ビットを含めたエラーの検出を行い、前記複数のグループでのエラー検出結果に基づき、全体のエラー検出結果を生成する回路を備えた構成としてもよい。
【００３３】
本発明において、機能ブロック間の相互の接続を行うバスに出力が接続され、構成情報メモリに格納されている情報に基づき、オン・オフ制御されるスイッチと、前記構成情報メモリのエラーを検出するエラー検出回路と、前記エラー検出回路で前記構成情報メモリのエラーを検出したとき、エラー検出結果に基づき、前記スイッチの出力を所定の値に設定する回路と、を備えた構成としてもよい。本発明において、前記スイッチの出力を所定の値に設定する回路は、前記スイッチの前段に配設され、前記スイッチに入力される信号と、前記エラー検出回路からのエラー検出信号とを入力し、前記エラー検出回路でエラーが検出されないときは、前記スイッチに入力される信号を出力して前記スイッチに供給し、前記エラー検出回路でエラー検出時、出力を予め定められた所定値に設定し、前記スイッチの入力に供給する論理回路を備えている。
【００３４】
本発明において、前記スイッチは、トライステートバッファを含む構成としてもよい。あるいは、前記スイッチが、パストランジスタを含む構成としてもよい。
【００３５】
本発明において、前記構成情報メモリが、エラーチェック用の冗長ビットを備えた構成としてもよい。
【００３６】
本発明において、前記構成情報メモリが、パリティビットを備えた構成としてもよい。本発明において、前記構成情報メモリの予め定められた１又は複数の所定のビットに、エラーチェック用のパリティを埋め込んでおく構成としてもよい。本発明において、前記エラー検出回路が、パリティエラーを検出する構成としてもよい。
【００３７】
本発明において、前記構成情報メモリは、前記機能ブロックに対応して配設され、前記エラー検出回路は、前記機能ブロックに対応して配設され、対応する前記構成情報メモリの出力信号を入力する構成としてもよい。本発明において、前記バスは、アレイ状に配設された複数の前記機能ブロック間に配設された双方向バスを含む構成としてもよい。
【発明の効果】
【００３８】
本発明によれば、構成情報メモリの内容が不正になると、これを検出することで、即座にバスへの出力をやめ、バスファイトの発生を未然に防ぐことができる。
【発明を実施するための最良の形態】
【００３９】
上記した本発明についてさらに詳細に説述すべく添付図面を参照して説明する。本発明に係る再構成可能デバイスは、その１つの態様において、構成情報メモリのエラーを検出し、双方向バスに出力するトライステートバッファやパストランジスタ（スイッチ）の出力を強制的にハイインピーダンス状態にする構成としたことで、構成情報メモリにエラー発生時、即座に、バスへの出力をやめ、バスファイトの発生を未然に防ぐことができる。以下具体的ないくつかの実施例に即して説明する。
【００４０】
＜実施例１＞
図１は、本発明の第１の実施例の構成を示す図である。図１を参照すると、本実施例においては、構成情報メモリ１０３にパリティ格納用の冗長ビット（パリティビット）１０４を追加し、構成情報メモリ１０３の複数の出力信号とパリティビット１０４とを入力しパリティエラーを検出するパリティエラー検出回路１０５を備えている。パリティビット１０４は、偶パリティ方式であれば、構成情報メモリ１０３の複数の出力信号とパリティビット１０４の１の数が偶数となるように、０又は１がセットされ、一方、奇パリティ方式の場合、構成情報メモリ１０３の複数の出力信号とパリティビット１０４の１の数が奇数となるように、０又は１がセットされる。
【００４１】
本実施例において、パリティエラー検出回路１０５は、排他的論理和（ＥＸＯＲ）回路を用いて構成される。パリティエラー検出回路１０５は、構成情報メモリ１０３の複数の出力信号とパリティビット１０４とを入力し、入力された信号について１が偶数個あるか奇数個あるか調べ、偶パリティ方式の場合、１が奇数個であれば、パリティエラーを出力する（出力信号１０６をＨＩＧＨレベルとする）。一方、奇パリティ方式の場合、パリティエラー検出回路１０５は、入力された信号について１が偶数個であれば、パリティエラーを出力する（出力信号１０６をＨＩＧＨレベルとする）。パリティエラー検出回路１０５は、構成情報メモリ１０３の５本の出力信号とパリティビット１０４の計６本の信号（２値信号）を入力し、これら６本の２値信号についてパリティ検査を行う。パリティエラー検出回路１０５は、６本の入力信号をｘ１〜ｘ６とし、偶パリティ方式の場合、例えば２入力の排他的論理和回路ｅｘｏｒを５個用いて構成することができる。この場合、パリティエラー検出結果は、ｅｘｏｒ（ｅｘｏｒ（ｅｘｏｒ（ｘ１、ｘ２）、ｅｏｒ（ｘ３、ｘ４））、ｅｘｏｒ（ｘ５、ｘ６））で与えられ、入力信号をｘ１〜ｘ６のうち１が偶数個の場合、パリティエラー検出結果は０（パリティエラー無し）となり、１が奇数個の場合、１（パリティエラー有り）となる。なお、図１では、構成情報メモリ１０３の出力信号は５本（機能ブロック１０１、セレクタ１１１、トライステートバッファ１０９−１、１０９−２、１１０−１用の計５本）とされているが、本発明はかかる構成に限定されるものでないことは勿論である。
【００４２】
パリティエラー検出回路１０５の出力信号１０６をインバータ１０７で反転した信号と構成情報メモリ１０３の出力信号との論理積演算をとる論理積（ＡＮＤ）回路１０８−１、１０８−２、１０８−３の出力信号が、それぞれ、トライステートバッファ１１０−１、１０９−１、１０９−２の出力制御端子に入力される。すなわち、パリティエラー検出回路１０５の出力信号（「パリティエラー検出信号」という）１０６がＨＩＧＨレベルのとき（パリティエラー発生時）、インバータ１０７の出力はＬＯＷレベルとなり、ＡＮＤ回路１０８−１〜１０８−３の出力は、構成情報メモリ１０３の出力信号の値によらずＬＯＷ固定となり（したがって、構成情報メモリ１０３の出力信号はマスクされる）、トライステートバッファ１０９−１、１０９−２、１１０−１は、いずれも出力ディスエーブル（出力がハイインピーダンス状態）に設定される。なお、特に制限されないが、図１に示す例では、トライステートバッファ１１０−２は、別の隣接セルの構成情報メモリのパリティエラー検出信号をマスク信号として、隣接セルの構成情報メモリの出力に基づきオン・オフされる。
【００４３】
パリティエラー検出信号１０６がＬＯＷレベルのとき（パリティエラー無しの時）、インバータ１０７の出力はＨＩＧＨレベルとなり、ＡＮＤ回路１０８−１〜１０８−３は、構成情報メモリ１０３からの信号をそのまま出力し、トライステートバッファ１０９−１、１０９−２、１１０−１は、構成情報メモリ１０３からの対応する信号がＨＩＧＨレベルのときは、出力イネーブル、構成情報メモリ１０３からの対応する信号がＬＯＷレベルのときは、出力ディスーブル（出力がハイインピーダンス状態）となる。構成情報メモリ１０３の出力信号（コンフィギュレーション情報）は、トライステートバッファのオン・オフ制御のほかにも、機能ブロック１０１、セレクタ１１１にもそれぞれ入力され、機能ブロック１０１内の演算器等の構成、セレクタ１１１による、双方向バス１０２−１、１０２−２、・・・の選択を切替制御し、構成を可変する。
【００４４】
上記した如く、本実施例においては、双方向バスを制御するトライステートバッファやパストランジスタの制御線に、このパリティエラーによってマスクするための論理ゲート１０８を挿入する。
【００４５】
また、パリティエラー検出回路１０５は、ハードウェア量等のオーバーヘッドが少なく、エラー検出にかかる遅延が少ない点では、パリティが適している。以下の例では、パリティの場合で説明しているが、本発明は、エラー検出としては、パリティエラーに限定されるものでなく、例えば、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）やＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｉｎｇ）といった他のエラー検出回路であってもよいことは勿論である。
【００４６】
本実施例において、ソフトエラー等で構成情報メモリ１０３のビットが１ビット反転した場合に、パリティエラーとなり、パリティエラーが発生した構成情報メモリ１０３に制御されるバスを駆動するバッファの出力が強制的にハイインピーダンス状態となり、バスファイトが起こらない。すなわち、不正な構成情報では、パリティエラーが発生し、即座に、バスへの出力を強制的にやめ、バスをハイインピーダンス状態（フローティング状態）にすることによって、バスファイトの発生を未然に防ぐことができる。
【００４７】
なお、構成情報メモリ１０３に不正な情報があっても、不正な情報の値如何では、バスファイトが生じないこともあり得るが、実際にバスファイトが生じてからでは、デバイスにダメージを与えるため、バスファイトの可能性が生じた時点で、即座に対応すべきであり、本発明の実用的価値、有効性に変わりはない。
【００４８】
なお、トライステートバッファのかわりに、バスに接続され、構成情報メモリ１０３の出力に基づきオン・オフ制御されるパストランジスタ等のスイッチに対しても、本実施例を適用することができることは勿論である。
【００４９】
＜実施例２＞
図２は、本発明の第２の実施例の構成を示す図である。本実施例は、面積効率のために、構成情報メモリ１０３として、前記第１の実施例で用いたマスク用のゲート（ＡＮＤ回路）１０８を、カスタムメモリの中に含めるようにしたものである。
【００５０】
この場合、構成情報メモリ１０３にパリティエラーが発生しているにもかかわらず、構成情報メモリ１０３の出力であるＡＮＤ回路１０８の出力が、全て０（ＬＯＷ）となる。このとき、例えば偶パリティの場合、パリティビット１０４が０であると（奇パリティの場合、パリティビット１０４が１であると）、パリティエラー検出回路１０５の出力信号１０６はＬＯＷとなり（パリティエラー無し）、パリティエラーが解除されてしまうことになる。
【００５１】
そこで、本実施例においては、パリティエラー保持レジスタ１１２を備え、構成情報メモリ１０３にパリティエラーが１度でも発生した場合に、パリティエラー保持レジスタ１１２に論理１が保持されるようにしておく。この結果、パリティエラーが発生した場合、後から、パリティエラー保持レジスタ１１２の値を読み出すことで、エラー発生要因を解析することができる。なお、パリティエラー保持レジスタ１１２は、初期化時等に、パリティエラー無しに対応する状態にリセットしておく。
【００５２】
より詳細には、図２を参照すると、本実施例においては、構成情報メモリ１０３に出力強制マスク端子１１３を備え、構成情報メモリ１０３内に、構成情報メモリ１０３の出力信号と出力強制マスク端子１１３の信号との論理積演算をとるＡＮＤ回路１０８を備えている。構成情報メモリ１０３内の複数のＡＮＤ回路１０８の出力とパリティビット１０４とを入力するパリティエラー検出回路１０５の出力信号１０６は、２入力論理和（ＯＲ）回路１１４の第１の入力に入力され、２入力ＯＲ回路１１４の出力信号と、リセット信号１１６（反転論理）を入力するＡＮＤ回路１１５の出力が、パリティエラー保持レジスタ１１２に入力される。パリティエラー保持レジスタ１１２の出力信号１１７は、２入力ＯＲ回路１１４の第２の入力に帰還入力さる。またパリティエラー保持レジスタ１１２の出力信号１１７をインバータ１１８で反転した信号が、出力強制マスク端子１１３に入力される。
【００５３】
本実施例の動作を以下に説明する。
【００５４】
パリティエラー保持レジスタ１１２のリセット時、リセット信号１１６（ワンショットパルス）はＨＩＧＨレベルとされ、ＡＮＤ回路１１５はＬＯＷレベルを出力し、パリティエラー保持レジスタ１１２の出力信号１１７をＬＯＷレベルにリセットする。
【００５５】
リセット解除後（リセット信号１１６はＬＯＷレベル）、パリティエラーが発生するまで、パリティエラー保持レジスタ１１２の出力信号１１７はＬＯＷレベルとされる。このとき、構成情報メモリ１０３の出力強制マスク端子１１３にはＨＩＧＨレベルが与えられ、構成情報メモリ１０３内の複数のＡＮＤ回路１０８は、構成情報メモリ１０３の出力信号を伝達して、トライステートバッファ１０９−１、１０９−２、１１０−１の出力制御端子にそれぞれ出力し、トライステートバッファ１０９−１、１０９−２、１１０−１は、構成情報メモリ１０３の出力信号に基づき、オン・オフ制御される。なお、リセット解除後、構成情報メモリ１０３にパリティエラーが無い場合、パリティエラー検出回路１０５の出力信号（パリティエラー検出信号）１０６はＬＯＷレベルであり、ＯＲ回路１１４の出力信号はＬＯＷレベルであり、ＯＲ回路１１４の出力信号を受けるＡＮＤ回路１１５はＬＯＷレベルをパリティエラー保持レジスタ１１２に与える。パリティエラー保持レジスタ１１２の出力信号１１７はＬＯＷレベルとされる。
【００５６】
この状態で、構成情報メモリ１０３にパリティエラーが発生した場合、パリティエラー検出回路１０５から出力されるパリティエラー検出信号１０６はＨＩＧＨレベルとなり、ＯＲ回路１１４の出力信号は、ＨＩＧＨレベルとなり、ＯＲ回路１１４の出力信号とリセット信号１１６（ＬＯＷレベル）を受けるＡＮＤ回路１１５の出力信号はＨＩＧＨレベルとなり、ＡＮＤ回路１１５のＨＩＧＨレベルの出力信号がパリティエラー保持レジスタ１１２に入力される。パリティエラー保持レジスタ１１２はＨＩＧＨレベル信号を受けてセットされ、出力信号１１７をＨＩＧＨレベルとする（すなわちパリティエラー発生を示す値をとる）。パリティエラー保持レジスタ１１２の出力信号１１７（ＨＩＧＨレベル）は、ＯＲ回路１１４に帰還入力され、ＡＮＤ回路１１５を通してパリティエラー保持レジスタ１１２に入力され、パリティエラー保持レジスタ１１２の出力信号１１７はＨＩＧＨを保持する。また、パリティエラー保持レジスタ１１２の出力信号１１７（ＨＩＧＨレベル）は、インバータ１１８で反転され、構成情報メモリ１０３の出力強制マスク端子１１３にはＬＯＷレベルが入力され、構成情報メモリ１０３内の複数のＡＮＤ回路１０８は全てＬＯＷレベルを出力し、トライステートバッファ１０９−１、１０９−２、１１０−１は、いすれも出力ディスエーブル状態（出力がハイインピーダンス状態）に設定される。
【００５７】
本実施例において、構成情報メモリ１０３の出力強制マスク端子１１３がＬＯＷレベルとなり、構成情報メモリ１０３内の複数のＡＮＤ回路１０８が全てＬＯＷレベルを出力することで、パリティエラー検出回路１０５から出力されるパリティエラー検出信号１０６がＬＯＷレベルとなっても、ＯＲ回路１１４はＨＩＧＨを出力するため、パリティエラー保持レジスタ１１２の出力信号１１７はＨＩＧＨを保持し、パリティエラーが解除されてしまうことはない。
【００５８】
構成情報メモリ１０３の全出力を強制的にマスクする機能は、デバイス停止状態や、安定していない状態、スリープ状態で、回路の保護や消費電力を抑える点で有用である。すでにこれらの目的で、構成情報メモリ１０３に出力マスク機能が具備されている場合、別途、マスク用のゲート（ＡＮＤ）回路１０８を設けなくてもよくなるが、この場合、パリティエラー時に、構成情報メモリ１０３の出力が全て０となってパリティエラーが解除されてしまうことになる。この場合、本実施例で説明したパリティエラー保持レジスタ１１２を配設することで、パリティエラーの解除を回避することができる。
【００５９】
＜実施例３＞
特許文献２（特開２００１−３１２４８１号公報）等に記載された構成のように、状態遷移コントローラからの信号で所定の動作（書き込み）をキャンセルできるようなデバイスに、本発明を適用することで、パリティエラーが発生した際に、この動作（書き込み）キャンセル信号を強制的に有効にする。これによって、パリティエラーが発生したサイクルの動作を無効化できる。パリティエラーが発生した際に、強制的に動作を中断し、その間、例えば構成情報書き込み制御回路などが、エラー発生要因を解析し、ソフトエラー発生個所の構成情報メモリを特定し正しい構成情報を書き直す。
【００６０】
これによって、一時的なソフトエラーによってパリティエラーが発生した際に、デバイスをリセットせずにエラーを修正して動作を再開させることができる。また、パリティエラー発生時には強制的にバスをハイインピーダンスにしているため、エラーの解析、復旧に時間をかけてもデバイスにダメージを与えることはない。
【００６１】
図３は、本発明の第３の実施例の構成を示す図である。図３を参照すると、本実施例において、状態遷移コントローラ１３０は、現在状態信号を入力し、該現在状態信号でアクセスされるエントリの次の状態の状態番号（複数）を出力する状態遷移テーブル１２０と、状態遷移テーブル１２０からの出力（状態番号）を保持するレジスタ１２１と、レジスタ１２１の出力を入力し、イベント識別コードを保持するレジスタ１２３の出力に基づき、イベント識別コードに応じた状態番号を選択するセレクタ１２２と、セレクタ１２２の出力と状態遷移テーブル１２０の出力を入力し、イベント発生判定回路１２５による判定結果に基づき、いずれか一方を、次の状態番号として選択するセレクタ１２４を備えている。イベント識別コードを４ビットで構成し、セレクタ１２２は、４ビットのイベント識別コードのうち１がたっているビットに対応する状態番号を選択するようにしてもよい。また、イベント発生判定回路１２５では、イベント識別コードが所定の値のときは、セレクタ１２４で、セレクタ１２２の出力を選択し、イベント識別コードがその他の所定値のときは、状態遷移テーブル（例えばデフォルト状態遷移テーブル）１２０の出力を選択するように、セレクタ１２４を制御する。イベント発生判定回路１２５は、イベント識別コードに基づき、動作（書き込み）をキャンセルすべきイベントが発生したと判定した場合、動作キャンセル信号を出力する。
【００６２】
本実施例においては、イベント発生判定回路１２５からの動作キャンセル信号と、パリティエラー検出回路１０５のパリティエラー検出信号１０６の論理和をとるＯＲ回路１２７の出力との論理和をとるＯＲ回路１２６の出力が、動作キャンセル信号として出力される。
【００６３】
ＥＣＣを用いた場合、１ビットのソフトエラーの訂正は可能であるが、ＥＣＣは、回路的なオーバーヘッドがパリティに比べ大きい。一般的に、再構成可能デバイスは、大量の構成情報メモリを含むため、全てにＥＣＣ回路を付けるのは、面積を増大させる。また、ＥＣＣでエラー訂正を行ったとしても、構成情報メモリ１０３内に存在しているデータは、依然としてエラーを含んだままであるため、このデータは、修正しておく必要がある。エラーを含んだままにしておくと、再度ソフトエラーが発生した際に、訂正不能となる。つまり、訂正されたデータは、即座に得られても、構成情報メモリ内のデータ修正をする必要がある。
【００６４】
本実施例によれば、構成情報メモリ１０３に、例えば１ビットのソフトエラーが発生した際に、即座に、動作キャンセル信号を活性化して、動作を停止させ、構成情報メモリ１０３のエラーを修正して、動作再開することで、実質的にソフトエラーの訂正は実現できる。パリティエラーを検出する構成としており、ＥＣＣの場合と比べオーバーヘッドも小さくて済む。
【００６５】
＜実施例４＞
半導体プロセスの微細加工技術の進展によるメモリセルの縮小によって、ソフトエラーが隣接したメモリセルで同時に発生する場合がある。全てのメモリセルを１つのグループで扱っているとこのようなエラーを起こした際にパリティでは検出できない。
【００６６】
図４は、本発明の第４の実施例の構成を示す図である。図４には、構成情報メモリ（ＣＦＧＭ）のメモリセルのイメージが示されている。並設された複数のメモリセルを、隣接したメモリセル同士が同一グループに入らないようにグループ分けする。そして、グループごとに別々にパリティ検出を行う。別々に検出したパリティは論理和（ＯＲ）回路でまとめてパリティエラー信号となる。これによって隣接したメモリセルが同時にエラーを起こした場合、該エラーを検出することができる。なお、図４では、隣接するメモリセル（白抜とハッチングを施したメモリセル）を交互に２つのグループにわけているが、グループは２つに限定されるものでないことは勿論である。
【００６７】
＜実施例５＞
デバイスに構成情報を書き込む際に、パリティビットをデバイス内部で自動生成すると、ソフトエラーには対応できても、最初から不正なデータを書き込まれた場合には対応できない。これは、不正なデータに対応したパリティビットが生成されるため、パリティエラーが発生しないためである。
【００６８】
本実施例では、予め開発ツール等で構成情報のイメージを生成する際に、当該ツールがパリティビットを構成情報メモリ（ＣＦＧＭ）に埋め込んでおく。
【００６９】
これによって、
・正常なメモリイメージが書き込む前になんらかの原因でデータが化けた場合や、
・使用者のミスオペレーション等によって、無効データが構成情報メモリに書き込まれた場合に、パリティエラーが発生し、不正な動作を未然に防ぐことができる。
【００７０】
特にパリティビットが多くなれば、偶然正常なパリティが生成される可能性が下がるため、不正なデータが構成情報に書き込まれた場合に、パリティエラーが発生し不正な動作を未然に防ぐことができる可能性が高まる。
【００７１】
さらに、不正な構成情報を検出する目的では、単純にエラー検出用の冗長ビットを増やすだけでなく、その位置や組み合わせを不規則にすると、解析困難となるため、作為的な不正に対して、効果が大きい。
【００７２】
エラー検出用のビット位置や組み合わせが不明であり、さらに多数のパリティビットがある場合、構成情報を改竄して、エラー検出をかいくぐることはほぼ不可能である。
【００７３】
図５では、メモリセルをグループ１からグループ４の４つのグループに分け、グループ１〜４には、それぞれ、エラーチェック用の冗長ビットが割り付けられ、各グループごとに、排他的論理和（ｅｘｏｒ）回路で、冗長ビットを含めてパリティエラーの検出を行い、グループでの検出結果を入力する４入力論理和（ｏｒ４）回路でパリティエラーを検出している。
【００７４】
＜実施例６＞
以上の例では、エラー検出時に、ただちに、接続したトライステートバッファの出力をハイインピーダンス状態にすることによって、バスファイトを未然に防止していた。
【００７５】
バスファイトを防ぐには、バスに接続されたトライステートバッファの出力を全てハイインピーダンスにする他にも、接続された全てのトライステートバッファの出力を、０か１に統一するという方法もある。
【００７６】
図１に示した前記第１の実施例の変形として、本発明の第６の実施例では、構成情報メモリのパリティエラー検出時に、バスに出力が接続するトライステートバッファの出力値を強制的に統一する。
【００７７】
図６は、本発明の第６の実施例の構成を示す図である。図６を参照すると、本実施例において、構成情報メモリ１０３の出力信号は、トライステートバッファ１０９−１、１０９−２、１１０−１の出力制御端子にそれぞれ入力される。トライステートバッファ１０９−１、１０９−２、１１０−１の前段のデータ入力パスに、ＡＮＤ回路１０８−１、１０８−２が挿入され、ＡＮＤ回路１０８−１、１０８−２には、パリティエラー検出回路１０５の出力信号１０６を反転するインバータ１０７の出力が入力される。パリティエラー発生時、インバータ１０７の出力はＬＯＷレベルとなるため、ＡＮＤ回路１０８−１はＬＯＷレベルを、トライステートバッファ１０９−１、１０９−２の入力端子に入力し、ＡＮＤ回路１０８−２はＬＯＷレベルをトライステートバッファ１１０−１の入力端子に入力する。本実施例においては、パリティエラー検出回路１０５でパリティエラー検出に、強制的に、バス１０２−１、１０２−２に対するバッファの出力を０（ＬＯＷレベル）に統一している。この場合、バス１０２−１、１０２−２をハイインピーダンス状態にしなくて済むため、バスホルダーが使用できない等の理由で、バスをハイインピーダンス状態にしたくない場合に有用である。
【００７８】
本実施例においては、データパス側にマスク用のゲート（ＡＮＤ回路）１０８−１、１０８−２、１０８−３が挿入されるため、その分、前記第１の実施例と比べ、再構成可能デバイス上にマッピングされた回路の遅延が増大する。
【００７９】
本実施例の作用効果について以下説明する。
【００８０】
再構成可能デバイスに不正な構成情報が入力された、あるいは、ソフトエラーで構成情報が不正になった場合に、バスファイトがおこり、デバイスにダメージを与えることを防ぐ。
【００８１】
状態遷移コントローラが付いたタイプの再構成可能デバイスでは、ソフトエラー発生時に、一旦デバイスの動作を停止し、原因を解析し復旧した後、停止時点から動作を再開することができる。
【００８２】
構成情報メモリにおけるソフトエラーの発生個所を後から調べることができる。
【００８３】
デバイス内でパリティを生成する場合、構成情報メモリのパリティエラーでソフトエラーは検出できても、最初から不正なデータが書き込まれたことは検出できない。そこで、本実施例によれば、あらかじめツールで特定のビットに（複数の）（不規則な）パリティを埋め込んでおくことによって、不正なデータを入力した場合も高い確率で検出可能である。
【００８４】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１実施例の構成を示す図である。
【図２】本発明の第２実施例の構成を示す図である。
【図３】本発明の第３実施例の構成を示す図である。
【図４】本発明の第４の実施例を説明する図である。
【図５】本発明の第５の実施例を説明する図である。
【図６】本発明の第６実施例の構成を示す図である。
【図７】関連技術の再構成可能デバイスの構成を示す図である。
【図８】関連技術の双方向バスによるプログラマブル配線の一例を示す図である。
【符号の説明】
【００８６】
１０１  機能ブロック
１０２  双方向バス
１０３  構成情報メモリ
１０４  パリティビット
１０５  パリティエラー検出回路
１０６  パリティエラー検出信号
１０７  インバータ
１０８  ＡＮＤ回路
１０９、１１０  トライステートバッファ
１１１  セレクタ
１１２  パリティエラー保持レジスタ
１１３  出力強制マスク端子
１１４  ＯＲ回路
１１５  ＡＮＤ回路
１１６  リセット信号
１１７  パリティエラー保持レジスタの出力信号
１１８  インバータ
１２０  状態遷移テーブル
１２１  レジスタ
１２２  セレクタ
１２３  レジスタ
１２４  セレクタ
１２５  イベント発生判定回路
１２６、１２７  ＯＲ回路
１３０  状態遷移コントローラ
【図１】
0005014899.tif 000002
【図２】
0005014899.tif 000003
【図３】
0005014899.tif 000004
【図４】
0005014899.tif 000005
【図５】
0005014899.tif 000006
【図６】
0005014899.tif 000007
【図７】
0005014899.tif 000008
【図８】
0005014899.tif 000009