(57)【要約】本発明は、エラー耐性の高い高信頼・高安全なプログラマブルロジックデバイスを提供することを目的とする。本発明は、複数のコンフィギュレーションメモリを有するプログラマブルロジックデバイスにおいて、前記コンフィギュレーションメモリが複数の領域に区分して配置され、前記複数の領域の一部は、前記コンフィギュレーションメモリの故障に対する信頼性を他の領域よりも高めた高信頼領域に設定されることを特徴とする。
2015045135.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンフィギュレーションメモリを有するプログラマブルロジックデバイスにおいて、
前記コンフィギュレーションメモリが複数の領域に区分して配置され、
前記複数の領域の一部は、前記コンフィギュレーションメモリの故障に対する信頼性を他の領域よりも高めた高信頼領域に設定されることを特徴とするプログラマブルロジックデバイス。
【請求項２】
請求項１に記載のプログラマブルロジックデバイスにおいて、
前記高信頼領域は、前記コンフィギュレーションメモリのチェック頻度が他の領域よりも高く設定されることを特徴とするプログラマブルロジックデバイス。
【請求項３】
請求項１に記載のプログラマブルロジックデバイスにおいて、
前記高信頼領域のコンフィギュレーションメモリは、他の領域のコンフィギュレーションメモリに比べて、トランジスタのゲート酸化膜の厚さ及びセルサイズが大きく設定されることを特徴とするプログラマブルロジックデバイス。
【請求項４】
請求項１に記載のプログラマブルロジックデバイスにおいて、
前記他の領域には、演算処理を行う演算部が設けられ、
前記高信頼領域には、前記演算部で演算された演算結果を処理する演算結果処理部が配置されることを特徴とするプログラマブルロジックデバイス。
【請求項５】
請求項１に記載のプログラマブルロジックデバイスにおいて、
前記他の領域には、同様の演算を多重化して行う多重化演算部が設けられ、
前記高信頼領域には、前記多重化演算部で演算された演算結果を比較する比較器が配置されることを特徴とするプログラマブルロジックデバイス。
【請求項６】
請求項５に記載のプログラマブルロジックデバイスにおいて、
前記高信頼領域には、前記比較器からの出力を検査する出力検査部が配置されることを特徴とするプログラマブルロジックデバイス。
【請求項７】
請求項５に記載のプログラマブルロジックデバイスにおいて、
前記高信頼領域には、前記コンフィギュレーションメモリが直列に配置されたセル列が複数並べて設けられ、
前記比較器が多重化して複数設けられ、
前記各比較器は、前記複数のセル列のうちの異なるセル列に配置されることを特徴とするプログラマブルロジックデバイス。
【請求項８】
前記請求項１に記載のプログラマブルロジックデバイスに論理を集積する論理集積ツールであって、
前記プログラマブルロジックデバイスに集積される論理のデータには、前記論理が集積される対象領域が前記高信頼領域であるか前記他の領域であるかを示す識別タグが含まれ、
前記識別タグに基づいて前記対象領域に前記論理の集積を実行することを特徴とする論理集積ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックデバイス、及び、論理集積ツールに関する。
【背景技術】
【０００２】
近年、制御の自動化が進み、電子制御装置の安全性、信頼性の要求が高まってきている。電子制御装置の安全性を確保するために、異常発生時に直ちにその異常を検出して動作を停止することが求められている。【０００３】
従来、論理回路は固定論理を提供するＣＢＩＣ(Cell-based Integrated Circuit)によるＡＳＩＣ(Application Specified Integrated Circuit)やゲートアレイにより実現されることが多かった。特に、高信頼、高安全なシステムでは、このような固定論理の装置で実現されるのが一般的である。例えば特許文献１では、比較器をセルフチェック化することによって高信頼、高安全なシステムを実現する技術が開示されている。【０００４】
しかし近年ではムーアの法則にしたがった集積度の向上に伴い、ＡＳＩＣを製造するためのマスクの設計製造コストが高騰する傾向にあり、よほどの量産品でない限りＡＳＩＣを適用できなくなることが予測される。特に本発明の対象とする高信頼、高安全なシステムでは用途の特殊性から自ずと生産量が限られている。【０００５】
そこで、製造に際して初期費用を抑えられるＦＰＧＡ(Field Programmable Gate Array)などのＰＬＤ(Programmable Logic Device)の利用が期待される。このプログラマブルロジックデバイスは論理情報を書き換え可能なメモリ（コンフィギュレーションメモリ：ＣＲＡＭ）に保持できることが特長であり、ユーザ側で論理を事後的に設定することができる。特に、高集積なＦＰＧＡはこのメモリをＳＲＡＭ(Static Random Access Memory)にて保持する構造をとっているものが主流である。以後、本タイプのプログラマブルロジックデバイスをＳＲＡＭベースプログラマブルロジックデバイスと呼ぶ。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２３４８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、ＳＲＡＭベースのプログラマブルロジックデバイス特有の問題として、プログラマブルロジックデバイスの論理情報（コンフィギュレーション情報）をＳＲＡＭにて格納するため、ソフトエラー耐性が低いと考えられており、ミッションクリティカルな産業応用には適用が広がっていなかった。【０００８】
そこで本発明では、エラー耐性の高い高信頼・高安全なプログラマブルロジックデバイスを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、複数のコンフィギュレーションメモリを有するプログラマブルロジックデバイスにおいて、前記コンフィギュレーションメモリが複数の領域に区分して配置され、前記複数の領域の一部は、前記コンフィギュレーションメモリの故障に対する信頼性を他の領域よりも高めた高信頼領域に設定されることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、エラー耐性の高い高信頼・高安全なプログラマブルロジックデバイスを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例１に係るＦＰＧＡの構造図を示す。
【図２】実施例１に係るＦＰＧＡのＣＲＡＭとＲＯＭの接続図を示す。
【図３】実施例１に係るＦＰＧＡのＣＲＡＭの配置図を示す。
【図４】実施例１に係るＦＰＧＡのＣＲＡＭ制御の動作波形図を示す。
【図５】実施例１に係るＦＰＧＡに集積される論理の切り分けのフロー図を示す。
【図６】実施例２に係るＦＰＧＡの構造図を示す。
【図７】実施例２に係るＦＰＧＡのロジックエレメントの配置図を示す。
【図８】実施例２に係るＦＰＧＡの高信頼実装部と大容量論理実装部の境界部のチップ断面構造を示す。
【図９】実施例３に係るＦＰＧＡの構造図を示す。
【図１０】実施例３に係るＦＰＧＡの比較器の構造図を示す。
【図１１】実施例３に係るＦＰＧＡのＣＲＡＭ制御の動作波形図を示す。
【図１２】実施例４に係るＦＰＧＡの構造図を示す。
【図１３】実施例４に係るＦＰＧＡのＣＲＡＭ制御の動作波形図を示す。
【図１４】実施例５に係るＦＰＧＡの構造図を示す。
【図１５】実施例６に係るＦＰＧＡの構造図を示す。
【発明を実施するための形態】
【００１２】
発明者らは、エラー耐性の高い高信頼・高安全なプログラマブルロジックデバイスを検討するに当たり、ソフトエラーに対して耐性の低いコンフィギュレーションメモリ（以下、ＣＲＡＭと呼ぶことがある）の高信頼化に着目した。論理ＬＳＩには、記憶保持素子として、フリップフロップやラッチといった回路があるが、これらの回路は、ＳＲＡＭメモリセルよりもサイズが大きく、ソフトエラーに対する耐性がＳＲＡＭよりも高いことが知られている。また、論理ＬＳＩに集積されるＳＲＡＭメモリは、パリティやＥＣＣ（Error Correction Code）が付加されており、ＳＲＡＭビットの反転等に対してシステム的に検出や訂正が可能な構成としている。一方のＣＲＡＭは、データをセットした後はデータを保持した形となり、ＥＣＣによる監視なども難しく、メモリセルのビット反転に対して弱い構成である。
【００１３】
発明者らは、検討を進める中で、ＬＳＩへの要件としてハード単体での信頼性が重要な部分と、システム的に信頼性を担保すればハード的には信頼性がそれほど重要でない部分があることに気づいた。高い信頼性を必要とする部分は、例えば、キーとなる情報を格納するためのレジスタや、多重化した演算結果を比較する比較器等である。一方の演算部分は、多重化や符号化を活用することで冗長化による信頼性向上ができるので、デバイスとしての高信頼化は必ずしも必要としない。
【００１４】
上記の技術思想に従い、本実施形態のプログラマブルロジックデバイスは、複数のコンフィギュレーションメモリを有し、このコンフィギュレーションメモリが複数の領域に区分して配置され、複数の領域の一部は、前記コンフィギュレーションメモリの故障に対する信頼性を他の領域よりも高めた高信頼領域に設定される。また、前記他の領域には、演算処理を行う演算部が設けられ、高信頼領域には、演算部で演算された演算結果を処理する演算結果処理部が配置される。
【００１５】
以下、本発明の実施形態について図面を用いて説明する。なお、以下では、プログラマブルロジックデバイスとしてＳＲＡＭベースのＦＰＧＡを例に説明するが、各実施例の内容は、これ以外にも、ユーザが論理を事後的にプログラムすることができるプログラマブルなＬＳＩや半導体にも適用可能である。
【実施例１】
【００１６】
本実施例のＦＰＧＡを図１に示す。このＦＰＧＡは複数の論理エレメントをタイル状に集積して構成されている。そしてこのＦＰＧＡでは、少なくとも２つの領域に分割している。そして、２つの領域のうちの一方が上述した高信頼領域に相当し、ソフトエラーに対してより高信頼化する部分である高信頼実装部２となる。また、他方が上述した他の領域に相当し、装置の機能を実現させるための演算論理を集積する部分である大容量論理実装部１となる。なお、大容量論理実装部１は、高信頼実装部２と比べると信頼性の位置づけが低い部分とはなるが、本実施例では、その分高密度に論理を実装することに重点を置いている。【００１７】
本実施例では、高信頼領域は、ＣＲＡＭのチェック頻度が他の領域よりも高く設定される。具体的には、本実施例では、それぞれの領域に集積されるＣＲＡＭのチェックを独立して実施するものであり、それぞれのＣＲＡＭについて、ＣＲＡＭに格納しているデータが破壊されているかどうかをチェックするＣＲＡＭ制御部ＣＲＡＭＣＴＬ１、２を設けている。ＣＲＡＭのチェックについては、一般的に、ハードウエア規模が小さく高速な検出が可能なＣＲＣチェックが知られており、本実施例においても、その技術を利用することが可能である。以下でＣＲＡＭのチェック方式について詳述する。【００１８】
上述したように、ＦＰＧＡ内において回路的な信頼性を確保すべき箇所は、物理的な量が少ない。すなわち、一般的な論理回路は、従来から知られている、２重化や３重化等の冗長化もしくは誤り訂正符号を付加した演算により信頼性を向上できる。一方、ＬＳＩとしての設定等を保持する部分や、演算結果の比較回路などは、回路自体の信頼性を高めて置くことで、装置全体の可用性や安全性の向上に大きく寄与できる。したがって、ＦＰＧＡへ集積させる回路の中で、一部の限られた回路をデバイス的・回路的に高信頼化させることで、装置全体の信頼性および安全性を高めることができる。【００１９】
ＳＲＡＭベースのＦＰＧＡを考える上で、ＳＲＡＭのソフトエラー耐性の向上が重要である。ＳＲＡＭの耐ソフトエラーについては、メモリセルの大型化や電源電圧の高電圧化などが知られている。これまでのＦＰＧＡでは、汎用的な使い方が優先されていたために、ＦＰＧＡ内をホモジニアスな構成にすることが重要であった。しかも、ＡＳＩＣと異なり、同一プロセス・同一チップサイズでの比較した際、実装率の観点で劣るＦＰＧＡにおいては、高密度な（又は大容量の）論理を実装できるアーキテクチャが重要視されていた。但し、ＬＳＩ内の信頼性を考察すると、ホモジニアスな構成ではなく、ヘテロジニアスな構成にしても、汎用性を確保しながら、信頼性を大きく向上させることが可能となることが見出された。【００２０】
図２は、本実施例のＦＰＧＡにおけるＣＲＡＭと、ＦＰＧＡ外部に設ける不揮発ＲＯＭとの接続例を示したものである。本実施例のＦＰＧＡは、ＣＲＡＭアクセス用データ転送を行うメモリバスＭＥＭＢＵＳを介して、Ｆｌａｓｈ等の不揮発ＲＯＭと接続する構成とすることが可能である。このようにすることで、ハードウエア規模を増大させることなく、ＦＰＧＡ内に高信頼実装部２と大容量論理実装部１の集積が可能である。【００２１】
本実施例では、ＲＯＭへのアクセスホストがたとえば、ＣＲＡＭ制御部ＣＲＡＭＣＴＬ１、ＣＲＭＣＴＬ２のように複数あるので、アービトレーションが必要になる。この場合、高信頼実装部２のＣＲＡＭ制御部ＣＲＭＣＴＬ２からのＲＯＭアクセスを優先させるように、別途信号線を追加したり、もしくは転送データのヘッダ部分等に識別信号を設け、データの宛先が高信頼実装部２となっている場合にデータ伝送を優先させたりすればよい。【００２２】
図３はＦＰＧＡ内のＣＲＡＭの物理的な配置を示したものである。ＦＰＧＡは、一般的に、ＣＲＡＭを構成するメモリセル列とスイッチ等の論理回路部とが交互に配置され、ＣＲＡＭのメモリセル列としては、チップの縦方向に複数並ぶ構成になる。本実施例では、このメモリの配置を物理的に分割し、大容量論理実装部１と高信頼実装部２とに分けてＬＳＩチップ上に集積する。即ち、大容量論理実装部１及び高信頼実装部２には、ＣＲＡＭが直列に配置されたセル列が複数並べて設けられている。図３の例では、簡単のため、大容量論理実装部１には１６のＣＲＡＭメモリセル列（ＣＲＡＭ＃０〜１５）を、高信頼実装部２には、信頼性の高い３つのＣＲＡＭセル列（ＲＣＲＡＭ＃０〜２）を集積した例で説明する。なお、本実施例では、信頼性の高いＣＲＡＭをＲＣＲＡＭ（Reliable  CRAM）と標記している。【００２３】
ところで、この図では、紙面左側に大容量論理実装部１、右側に高信頼実装部２を集積した例を示しているが、高信頼実装部２が左側にあっても、左右に分かれていてもかまわない。また、チップの上下に分かれて配置することも可能である。【００２４】
このような構成において、大容量論理実装部１に対応するＣＲＡＭ制御部ＣＲＡＭＣＴＬ１は、ＣＲＡＭ＃０〜ＣＲＡＭ＃１５について順次格納データのチェックを実施する。また、高信頼実装部２に対応するＣＲＡＭ制御部ＣＲＡＭＣＴＬ２は、ＲＣＲＡＭ＃０〜ＲＣＲＡＭ＃２について順次チェックを実施する。【００２５】
図４はＣＲＡＭアクセスのタイミングチャートを示している。大容量論理実装部１については１６列のＣＲＡＭセル列をチェックし、高信頼実装部２については、３列のＣＲＡＭメモリセル列をチェックする例で説明する。【００２６】
ＣＲＡＭ制御部ＣＲＡＭＣＴＬ１は、ＣＲＡＭ＃０から順次ＣＲＡＭ＃１５までをＣＲＡＭ制御部ＣＲＡＭＣＴＬ１の動作クロックに同期しながらチェックを実施する。ＣＲＡＭ＃１５までチェックした後は、再びＣＲＡＭ＃０に戻りチェックを実施する。この例では、ＣＲＡＭ制御部ＣＲＡＭＣＴＬ１の検査周期をＴ１とする。一方、高信頼実装部２については、この図では３つのＣＲＡＭメモリセル列をチェックする場合で説明する。ここでは、ＲＣＲＡＭ＃０、ＲＣＲＡＭ＃１、ＲＣＲＡＭ＃２を順次チェックし、ＲＣＲＡＭ＃２のチェックが終了したら再びＲＣＲＡＭ＃０に戻りチェックを実施する。このときのチェックの周期はＴ２である。このようにするとＴ２＜Ｔ１となるため、大容量論理実装部１の集積容量に依存せず高信頼実装部２のチェック周期を固定でき、しかも、高信頼実装部２のＣＲＡＭのチェックと修復が速やかに実施できることで、ＬＳＩ全体としての高信頼化・高安全化につなげることが可能となる。【００２７】
このように、実施例１では、高信頼実装部２のチェックの周期を大容量論理実装部１よりも短くすることで信頼性を向上させているため、大容量論理実装部１及び高信頼実装部２のＣＲＡＭは、同一の設計プロセスおよび設計ルールに基づいて製造されるトランジスタにより構成することができ、メモリセルサイズも等しく構成することができる。但し、後述する実施例２のように、高信頼実装部２のＣＲＡＭを大容量論理実装部１よりも大きくする方法をさらに採用しても良い。【００２８】
図５は、本実施例のＦＰＧＡを活用した論理設計の設計フローを説明する図である。本実施例のＦＰＧＡに論理を集積する際、ＦＰＧＡに搭載する機能論理の設計は、従来同様、ＲＴＬ(Register Transfer Level)等の記述言語で設計を実施する。このとき、より上位のＣ言語等の高級言語で設計することも可能である。本実施例を用いる際には、設計した論理に対して、信頼性の度合いを定義し、例えば、設計したＲＴＬに信頼度を示す識別タグを付加することである。このとき、例えば、高信頼論理な論理には、機能ブロックに高信頼実装部２への集積を意味する記号を付加させるなどが考えられる。即ち、ＦＰＧＡに集積される論理のデータには、論理が集積される対象領域が高信頼実装部２であるか大容量論理実装部１であるかを示す識別タグが含まれるようにしておく。【００２９】
その後、高信頼実装部２の選定が終了した後は、論理集積ツールによって論理集積を行う。この際、論理集積ツールは、識別タグに基づいて、大容量論理実装部１と高信頼実装部２に対して論理の集積を実行する。【００３０】
最後に、チップ全体での遅延解析や、信頼性の観点での論理の分離実装を確認し、設計が終了となる。【００３１】
なお、高信頼実装部２は、ＬＳＩに搭載する論理のうち、大容量論理実装部１に搭載する論理量よりも少なく済むが、ＦＰＧＡ設計としては、汎用性を持たせた設計が好ましく、高信頼実装部２の容量を一定量確保して定義することが望ましい場合がある。その場合、高信頼実装部２に実装する必要がない論理でも、大容量論理実装部１の空き領域に論理集積を実施すれば、ＬＳＩのハードウエアリソースを効果的に使用できる。
【実施例２】
【００３２】
本実施例のＦＰＧＡを図６に示す。本実施例も同様に大容量論理実装部１と高信頼実装部２を設けるが、高信頼実装部２には、トランジスタサイズの比較的大きなＣＲＡＭを用い、さらに、構成するＭＩＳＦＥＴのゲート絶縁膜の厚さを大きく構成することで、高電圧の印加に耐えられるものである。これにより、高信頼実装部２のＣＲＡＭは、他の領域のＣＲＡＭに比べて、電源電圧が高く設定される。そして、実施例１と比較して、信号レベル変換回路ＬＳが追加されている。【００３３】
本実施例によると、高信頼実装部２のＣＲＡＭは大容量論理実装部１のＣＲＡＭと比較して、保持電荷量が多くなるように設計できるので、中性子等の放射線が他の原子核に衝突する際に引き起こされる荷電粒子の突入による電荷蓄積に対して高い耐性を持つことが可能である。なお、図示していないが、容量素子を追加することも可能である。ゲートで容量を構成したり、配線層で容量を構成したりすればよい。【００３４】
トランジスタサイズにおけるＳＲＡＭに対する中性子ソフトエラーの影響については、例えば、１８０ｎｍノードのトランジスタに対して、２２ｎｍノードのトランジスタでは、およそ２５００倍のマルチビットエラーのイベントが生じる可能性があるという報告が存在する。また、９０ｎｍノードのトランジスタの場合には、２２ｎｍノードのトランジスタと比較して、１０倍程度耐性が低い。つまり、大型のトランジスタを活用すれば、ソフトエラーレートを１桁〜２桁以上低く抑えることができる。【００３５】
本実施例は、この原理に基づき、高信頼実装部２を比較的大型のトランジスタで構成するものである。このとき、高信頼実装部２のＣＲＡＭ単体のソフトエラー耐性は、大容量論理実装部１のＣＲＡＭの単体ソフトエラー耐性と比較して、例えば１桁程度向上できているとすれば、ＣＲＡＭのチェック機構は、チップに一つのＣＲＡＭ制御部ＣＲＡＭＣＴＬ３にて各ＣＲＡＭメモリセル列を順次巡回チェックする方法をとっても、高信頼実装部２のＣＲＡＭメモリセルのＭＴＴＦ（Mean Time To Failure）が大容量論理実装部１のＣＲＡＭメモリセルのＭＴＴＦと比較して長いので、相対的に高信頼実装部２のＣＲＡＭチェック頻度を高く設定することが可能になる。さらに、実施例１のように、高信頼実装部２と大容量論理実装部１とで独立にＣＲＡＭ制御部を設けても良い。【００３６】
本実施例を実現するための、ＬＳＩ内の論理エレメントの集積例を図７に示す。この図では、例えば、大容量論理実装部１に２２ｎｍのプロセスノードで設計されたトランジスタを配置し、高信頼実装部２には、それよりも２倍ほど大きなサイズのトランジスタ(設計ルールとしては２世代前のトランジスタ、すなわち、４５ｎｍプロセス相当)で設計されるトランジスタを配する例を示した。【００３７】
本図において、ルックアップテーブルＬＵＴは、ＣＲＡＭに格納されたビット情報に応じて、ルックアップテーブルＬＵＴからの入力値を出力値に変換するものである。ルックアップテーブルＬＵＴの出力はフリップフロップＦＦに取り込まれ、次のルックアップテーブルＬＵＴ等へ接続される。セレクタＳＥＬは、配線とルックアップテーブルＬＵＴとの接続を切り替える回路であり、これもＣＲＡＭに格納されたビットで切り替えられる。配線同士の接続切り替えは、スイッチＳＷで切り替える。【００３８】
大容量論理実装部１と高信頼実装部２の界面は電源電圧が異なるので、この境界上には信号レベル変換回路ＬＳ（Level  Shifter）を設ける必要がある。この例では、信号レベル変換回路ＬＳをルックアップテーブルＬＵＴと配線の接続を切り替えるセレクタの後段と、大容量論理実装部１のスイッチと高信頼実装部２のスイッチの間に設ける。ひとたび信号レベルが変換されれば、その後の高信頼実装部２には信号レベル変換回路は不要である。【００３９】
中性子に対するソフトエラーの耐性をさらに向上させるためには、Ｉ／Ｏに用いられるトランジスタで設計することが望ましく、その場合は、１３０ｎｍもしくは１８０ｎｍ相当のトランジスタで設計することとなり、４〜８倍の大きさのセルを構成することになる。その場合も、大容量論理実装部１の４セル〜８セルごとに高信頼実装部２の１セルを配置するような形で図７に示すようにタイル状に配置すればよい。もしくは、この図で横方向に長いセルを構成することも可能である。いずれにせよ、トランジスタサイズが異なる場合でも、適切な設計によりタイル状に配置することは可能であり、ＦＰＧＡとしての汎用性の高い回路が設計できることになる。【００４０】
本実施例を構成するトランジスタ構造例を図８に示す。この図では、大容量論理実装部１と高信頼実装部２についてそれぞれ、Ｐ型ＭＩＳＦＥＴとＮ型  ＭＩＳＦＥＴを記載した。この図では、Ｐ型基板上にＮ型ウェルを構成した、いわゆる、トリプルウエル構造の例で示した。この場合、高信頼実装部２の電源電圧ＶＣＣは、大容量論理実装部１の電源電圧ＶＤＤよりも高いので、ＮＭＯＳ側のウエルの分離が必要である。【００４１】
このような構成とすれば、高信頼実装部２のグランドＶＳＳＱと大容量論理実装部１のグランドＶＳＳとを分離することができるので、電源電圧の高い高信頼実装部２のグランドノイズが大容量論理実装部１へ伝播することを防止できる。また、このような構成を設けることで、高信頼実装部２の電源分離も可能となる。信頼性設計においては、電源の多重化も重要と考えられる場合もあり、その際、電源を分離して設計できる効果もある。【００４２】
なお、トランジスタの構造としては、トリプルウエル構造に制限されるものではなく、ディープＮウエルの存在しない、いわゆるデュアルウエル構造のＬＳＩにも適用できる。その場合、グランド側の分離が困難になるおそれがあるが、複数の電源電圧の設定は可能である。【００４３】
高信頼実装部に用いるＣＲＡＭとしては、プロセス世代の古い、いわゆる太線径のプロセスで製造されたＣＲＡＭを用いることができる。一般的にＩ／Ｏを構成するＭＯＳにはレガシー電圧の周辺機器の接続が必要であることから、微細化が進んだＬＳＩにおいても、太線径のトランジスタが同一チップに集積されて使用されているので、この太線径のプロセスのトランジスタとしてはこれを利用すればよい。
【実施例３】
【００４４】
本実施例のＦＰＧＡの大容量論理実装部１と高信頼実装部２の集積の例を図９に示す。本実施例では、比較器が多重化して複数設けられている。具体的には、ＦＰＧＡ内には、大容量論理実装部１と高信頼実装部２を設け、大容量論理実装部１では、２重化した機能ブロックＦＢＡと、機能ブロックＦＢＢで機能が実現される。機能ブロックＦＢＡ、ＦＢＢにはそれぞれ論理情報および配線切り替え情報を格納するＣＲＡＭがそれぞれ定義される。この図では、物理的な配置ではなく、機能に合わせて対応するＣＲＡＭが明確になるように論理的な関係を示している。これらのＣＲＡＭはＣＲＡＭ制御部１ＣＲＡＭＣＴＬ１にて、ＲＯＭからのデータ書き込みおよびＣＲＡＭの格納情報のチェックを実施する。一方の高信頼実装部２には、機能ブロックＦＢＡ、ＦＢＢからの信号を比較する比較器ＣＭＰＡ、ＣＭＰＢと、主にフェールセーフ用途で用いられる出力検査部ＯＲＡ（Output Response Analyzer）、および、機能ブロックＦＢＡ、ＦＢＢ、比較器ＣＭＰＡ、ＣＭＰＢの故障を診断するためのセルフテスト用のテストパタン発生回路ＴＰＧ、配線切り替えのペリフェラル論理Ｐｌｏｇｉｃ、機能ブロックＦＢＡ、ＦＢＢのいずれかを出力させるセレクタＳＥＬと、異常時に出力ＯＵＴを停止させる機能を持たせた出力制御回路ＯＵＴＣＴＬで構成される。さらに、比較器ＣＭＰＡ、ＣＭＰＢについては、可用性を向上させるために、２重系としている例を示し、出力検査部ＯＲＡの制御のためのＯＲＡ制御部ＯＲＡＣＴＬを設けている。なお、ペリフェラル論理Ｐｌｏｇｉｃ内のＥＯＲは、排他論理和回路を示す。また、ＴＰＡ、ＴＰＢは、それぞれ、テストパタンＡ、テストパタンＢを示す。【００４５】
本実施例で上述の２重系を構成する際には、一方のＲＣＲＡＭのリコンフィグ中に他方のＲＣＲＡＭに関連する論理動作が不可能にならないように、マッピングするのが好ましい。このため、図３に示したように、ＲＣＲＡＭのメモリセルが縦方向にストライプ状に配置される場合、Ａ系の論理を格納するＲＣＲＡＭとＢ系の論理を格納するＲＣＲＡＭを別のセル列へ配置する。【００４６】
このように、各比較器ＣＭＰＡ、ＣＭＰＢを、複数のセル列のうちの異なるセル列に配置することによって、ＣＲＡＭを物理的に分離するため、同一タイミングでＣＲＡＭへのリードおよびライト動作が実施されないようにすることができる。すなわち同一タイミングでスクラビング（ＣＲＡＭへのリード・ライトアクセスを通じたＣＲＡＭ格納情報のチェック）が実行されないように配置されることができる。【００４７】
比較器ＣＭＰＡ、ＣＭＰＢについては、図１０に示すように、初段に排他論理和回路を用い、その後段にはＯＲをツリー状に配置した回路構成であり、これにより、機能ブロックＦＢＡ、ＦＢＢから送出される信号の不一致を検出し、一つの出力信号で外部へ通知できるものである。【００４８】
出力検査部ＯＲＡの内部は、２重化された比較器ＣＭＰＡ、ＣＭＰＢのそれぞれの出力に対して、検査ができる回路構成として検査回路ＯＲＡＡ、ＯＲＡＢを設け、それぞれの出力ＴＯＵＴ１、ＴＯＵＴ２はＣＴＬへも入力される。【００４９】
出力検査部ＯＲＡ内では、検査回路ＯＲＡＡの出力ＴＯＵＴ１と検査回路ＯＲＡＢの出力ＴＯＵＴ２のいずれかをＬＳＩ外部に出力するために、セレクタＳＥＬにて切り替えて出力される。セレクタＳＥＬの切り替えは、ＣＴＬからの制御信号ＳＥＬＣによって実施される。【００５０】
ＯＲＡ制御部ＯＲＡＣＴＬでは検査回路ＯＲＡＡの出力ＴＯＵＴ１及び検査回路ＯＲＡＢの出力ＴＯＵＴ２の出力である交番信号を観測し、交番信号の停止をチェックする。ここで交番信号とは、出力のハイレベルとロウレベルが交互に現れる信号を意味する。比較器ＣＭＰＡ、ＣＭＰＢの動作を考えると、２つの機能ブロックＦＢＡ、ＦＢＢからの同一の信号を比較するため、通常動作時には比較結果は０になる。【００５１】
このとき、比較器ＣＭＰＡ、ＣＭＰＢ内の故障を検出するためのテストパタンを入力信号の一つに信号とは逆レベルに信号を印加することで（即ち、誤動作信号を比較器ＣＭＰＡ、ＣＭＰＢへ恣意的に入れることで）、比較器ＣＭＰＡ、ＣＭＰＢの故障を検出する。この例では、クロックの立ち上がりと同時に比較器ＣＭＰＡ、ＣＭＰＢのチェックを実施し、クロックの立ち下がりの時間でデータの比較を実施する例である。この場合、前者を比較器チェック期間、後者を被比較信号比較期間と呼ぶことにする。クロック立ち上がりでの比較結果が１の場合は、テストパタンを印加している時間であり、正常状態では、“１”となる。クロックが立ち下がりのときの比較結果が０の場合は、データの比較で一致を示している。【００５２】
検査回路ＯＲＡＡの出力ＴＯＵＴ１および検査回路ＯＲＡＢの出力ＴＯＵＴ２のうちのいずれか一方を出力ＴＯＵＴとして出力するようにＳＥＬセレクタで切り替えるが、その際、ＣＲＡＭ制御部ＣＲＡＭＣＴＬ２からのエラー信号ＥＲＲで制御を実施する。エラー信号ＥＲＲはここでは詳細に図示しないが、２ビットの信号で設計すれば、ＣＭＰＡおよびＣＭＰ２のいずれが故障したかが指示できるので、それに応じて、ＳＥＬＣによりセレクタＳＥＬの制御を実施することが可能である。同時に、比較器の異常時にＦＢＡおよびＦＢＢの故障が疑われる場合は、すなわち、被比較信号比較期間中に、ＦＢＡおよびＦＢＢの出力を一致しない場合は、ＳＣＴＬ１信号により、出力ＯＵＴの出力停止制御を実施する。【００５３】
高信頼実装部２に集積される各種論理回路には、それぞれ対応するＣＲＡＭ（ＲＣＲＡＭ）が関連付けられている。これらのＲＣＲＡＭは、ＣＲＡＭ制御部ＣＲＡＭＣＴＬ２にて制御される。【００５４】
本実施例では、ＣＲＡＭ制御部ＣＲＡＭＣＴＬ１、ＣＲＡＭＣＴＬ２は同一のメモリバスＭＥＭＢＵＳに接続され、各ＣＲＡＭへのコンフィギュレーションデータは、ＦＰＧＡ外部のＲＯＭもしくは、ＦＰＧＡ内の記憶回路ＲＡＭ１に格納されており、これらのＲＯＭおよびＲＡＭも同一のメモリバスに接続されている。このＲＡＭ１は、図示していないが、ＥＣＣ等のエラー検出訂正機構を設けたメモリとして構成される。【００５５】
２種類のＲＯＭ１、ＲＡＭ１を設けている理由は以下の通りである。ＦＰＧＡ外部のＲＯＭはＦｌａｓｈ等の不揮発ＲＯＭで構成されることを想定しており、中性子耐性は高いものの、アクセスとしてはいわゆるファーストアクセスが数十マイクロ秒かかるなど、データのアクセス速度が遅い。一方、ＦＰＧＡ内部のＲＡＭ１は基本的にＳＲＡＭベースのメモリであり、中性子耐性は低いものの、高速なアクセスが可能である特徴がある。しかしながら、ＥＣＣ等で回路的に保護することができるので、中性子耐性も高めることが可能である。さらに、この内蔵ＲＡＭは、高信頼実装部２に集積されており、信頼性の高いＣＲＡＭと同様にデバイス的なソフトエラー耐性の高いトランジスタで構成されてもよいし、高速動作が可能なＲＯＭとして構成してもよい。【００５６】
高信頼比較器についての基本的な動作は、特許文献１に記載のように動作させればよいが、ここでは、比較器自体の可用性を向上させるために、２重化している。【００５７】
本実施例の動作波形図を図１１に示す。ここで、時刻ｔ１でＲＣＲＡＭ＃ｉの検査を実施し、ＣＲＡＭにソフトエラーがあった場合について述べる。このとき、比較器ＣＭＰＡにエラーが発生し、出力検査部ＯＲＡにおいては、比較器ＣＭＰＡからの正常な出力が出なくなり、したがって、検査回路ＯＲＡＡの出力信号である交番信号が途絶えることになる。なお、ＣＲＡＭチェックからエラー検出が1サイクルで実施できることを仮定しているが、数サイクルかかる場合でも良い。このとき、比較器ＣＭＰＢは正常であるので、機能ブロックＦＢＡ、ＦＢＢの出力は一致しているので、出力を止める必要はない。そのため、出力検査部ＯＲＡ内に、両者の交番信号をチェックする回路を設けておけば、装置の機能を実現する上では不具合がない状態なので、システム動作を止める必要はなく、外部へは比較器ＣＭＰＢの出力を出すようにセレクタを切り替えて動作を継続させる。これはＳＥＬＣで制御する。【００５８】
エラー信号ＥＲＲがハイレベルになると同時に、ＣＲＡＭの再書き込みを実施するリコンフィグ信号ＲＥＣＯＮＦＩＧをアサートして、ＲＡＭ１からの正常なコンフィグデータをＲＣＲＡＭへ書き込む動作を実施する。ここではマルチビットのエラーに対する耐性を高めるものとして、ＲＡＭ１からの再書き込みについて述べる。ＣＲＣによるチェックにおいては、１ビットの誤り訂正ができるので、１ビット訂正であればより高速に復帰が可能である。【００５９】
この例では、ＲＡＭ１として内蔵のＳＲＡＭベースのＲＡＭを想定しているので、エラー信号ＥＲＲから1サイクルでアドレスを計算し、時刻ｔ２でアドレスをＲＡＭ１へ伝達し、次のサイクル（時刻ｔ３）でデータを受領できると想定している。データ到着のレイテンシは、設計するＬＳＩの仕様により数サイクル必要な場合もあるが、ここでは１サイクルと仮定している。【００６０】
その後、データをＲＣＲＡＭ＃ｉへ書き込み、時刻ｔ４において書き込み完了を受けて、リコンフィグ信号ＲＥＣＯＮＦＩＧをネゲートし、引き続き、エラー信号ＥＲＲをネゲートする。その後、時刻ｔ５にて出力ＴＯＵＴ１が正常な交番信号が出力されることを受けて、セレクタＳＥＬを検査回路ＯＲＡＡ側へ戻す操作を実施し、時刻ｔ６にて元の状態に戻る。このとき、検査回路ＯＲＡＡ、ＯＲＡＢは等価であるので、検査回路ＯＲＡＢを選択したままでもかまわない。その場合、時刻ｔ４にて比較器の２重系は復帰するが、検査回路ＯＲＡＡの交番信号が正常に戻る時刻ｔ５にて完全な２重系復帰とすることができる。【００６１】
ここでは、出力ＴＯＵＴ２が正常動作をしているので、出力ＴＯＵＴ１が時刻Ｔ１で異常動作をしても、この異常が比較器ＣＭＰＡ、ＣＭＰＢに起因すると明言できるので、出力を止める制御を実施せず、出力信号ＯＵＴは正常に出力される。
【実施例４】
【００６２】
本実施例では、図１２に示すように、実施例３の構成ではＦＰＧＡ内部にあったＲＯＭおよび出力検査部ＯＲＡ、テストパタン発生回路ＴＰＧをＦＰＧＡ外部に設ける。本実施例では、ＣＲＡＭ制御部２ＣＲＡＭＣＴＬ２でエラーを検出後、制御部ＣＴＬ２へエラー信号ＥＲＲ２を伝達する。制御回路ＣＴＬ２は、ＥＲＲ２信号と共に、ＯＲＡからの交番信号ＴＯＵＴ１１、ＴＯＵＴ１２を入力と、制御回路ＯＵＴＣＴＬへ制御信号ＳＣＴＬ２を送出し、出力ＯＵＴの出力停止を制御する機能と共に、制御信号ＳＥＬＣにてＯＲＡ回路内の交番信号出力セレクタの切り替え制御を実施する機能を持つ。ＣＴＬ２では、エラー信号ＥＲＲ２と共に、比較回路ＣＭＰＡおよびＣＭＰＢからの出力の交番信号ＴＯＵＴ１１、ＴＯＵＴ１２を検査し、その波形に異常がある場合に、すなわち、被比較信号比較期間中の比較器の不一致を検出した場合に、出力を停止する制御を実施する。このとき、図１２の実施例で説明したように、比較回路ＣＭＰＡおよびＣＭＰＢのいずれかが正常な場合で、かつ、ＦＢＡおよびＦＢＢの各出力が一致する場合には、ＯＵＴＣＴＬは出力を出し続ける制御を実施し、それ以外の、両コンパレータ出力が異常である場合等は、安全のため、出力ＯＵＴを停止する制御を実施する。この場合、どちらの比較器が壊れたかは、ＣＲＡＭ ＣＴＬ２が判断できるので、壊れた側の比較器の修復を実施する。本実施例では、ＦＰＧＡ内に集積する回路をより少なくできるメリットがある。本実施例では、出力検査部ＯＲＡなどは別途専用ＬＳＩや汎用ＬＳＩで構成される。この場合、ＯＲＡやＴＰＧなどがハード論理で構成できるので、ソフトエラーに対してより耐性が高くなる効果がある。もちろん、ＲＯＭはＰＧＡ内に設けられるものであってもよい。【００６３】
本実施例の動作例を図１３に示す。基本的な動作は図１１での説明と同様である。本実施例では、外付けのＲＯＭアクセスとなるため、一般的なＦｌａｓｈ  ＲＯＭを用いると、ファーストアクセスで数十マイクロ秒が必要となり、アドレス送付(時刻ｔ２′)からデータ受領開始(時刻ｔ３′)まで数十マイクロ秒のオーダーの待ち時間が発生する。この待ち時間が図１１と異なる。【００６４】
また、図１３には、データ転送量が多い例を示しており、データ量が多い場合はデータ転送待ち時間(時刻ｔ３′〜時刻ｔ３′′)およびコンフィギュレーション時間(時刻ｔ４′〜時刻ｔ５′)も必要となる。高信頼実装部２は、比較的小さい領域で回路実装を定義することで、データ転送およびコンフィギュレーションのオーバーヘッドを低減することが可能である。
【実施例５】
【００６５】
本実施例を図１４に示す。本発明は高信頼実装部２に集積している比較器を３重化しているものである。本実施例においても、高信頼実装部２に比較器等を集積する。本実施例では、ＣＲＡＭ制御部２ＣＲＡＭＣＴＬ２でエラーを検出後、制御部ＣＴＬ３へエラー信号ＥＲＲ３を伝達する。制御回路ＣＴＬ３は、ＥＲＲ３信号とＯＲＡからの交番信号ＴＯＵＴ３［０：２］の入力と、制御回路ＯＵＴＣＴＬへ信号ＳＣＴＬ３を送出し、出力ＯＵＴの出力停止制制御を実施する機能を持つと共に、制御信号ＳＥＬＣ３にてＯＲＡ回路内の交番信号出力セレクタの切り替え制御を実施する機能を持つ。ＣＴＬ３では、エラー信号ＥＲＲ３と共に、比較回路ＣＭＰＡ、ＣＭＰＢ、および、ＣＭＰＣから、それぞれ出力される３本の交番信号ＴＯＵＴ３［０：２］を検査し、その波形に異常がある場合に、すなわち、信号比較期間中の比較器の不一致を検出した場合には、出力を停止する制御を実施する。このとき、比較回路ＣＭＰＡ、ＣＭＰＢ、ＣＰＭＣのいずれかが正常な場合に、しかも、多数決でＦＢＡおよびＦＢＢの出力が正しいと判断される場合は、ＯＵＴＣＴＬは出力を出し続ける制御を実施する。このとき、不具合のある比較器はただちに修復を実施する。一方、それ以外の、すべてのコンパレータ出力が異常である場合等は、安全のため、出力ＯＵＴを停止する制御を実施する。３重化していることで多数決が実施できるため、比較器のうちの一つが故障しても壊れた部分の修復と、演算処理の継続実行が容易に実施できる。
【実施例６】
【００６６】
実施例１の変形例として、論理エレメント部の集積について、大容量論理実装部１と高信頼実装部２とで区別しない実施例について述べる。実施例１では、大容量論理実装部１と高信頼実装部２を物理的に分ける例について説明した。一方、図１５に記載の実施例は、高信頼実装部２におけるＣＲＡＭソフトエラーの検査頻度を上げるために、高信頼実装部２に対応したＣＲＡＭチェック回路と、大容量論理実装部１に対応したＣＲＡＭチェック回路とを独立させるが、さらに、大容量論理実装部１と高信頼実装部２の切り分けをプログラマブルとする。【００６７】
本実施例では、大容量論理実装部１のＣＲＡＭと高信頼実装部２のＣＲＡＭは同一種類のメモリセル回路および素子が使われている。大容量論理実装部１のＣＲＡＭと高信頼実装部２のＣＲＡＭの区分けは、アドレスにより決定すればよい。たとえば、この図に示すように、ＣＲＡＭのアドレスＡ０〜ＡＮを大容量論理実装部１に相当させて、そのＣＲＡＭの制御をＣＲＡＭ制御部ＣＲＭＣＴＬ１が実施し、一方、ＣＲＡＭのアドレスＡＮ＋１〜ＡＭを高信頼実装部２に相当させて、そのＣＲＡＭの制御をＣＲＡＭ制御部ＣＲＭＣＴＬ２が実施する。【００６８】
このとき、大容量論理実装部１と高信頼実装部２の論理およびＣＲＡＭを構成するトランジスタは同一のプロセスルールで製造され、たとえば、高信頼実装部２のＣＲＡＭのビット容量サイズを、大容量論理実装部１のＣＲＡＭのビット容量サイズの1／１０乃至、１／１００としてＣＲＡＭのチェック頻度を高頻度化させるようにすればよい。もしくは、ＣＲＡＭ制御部ＣＲＡＭＣＴＬ２の動作周波数をＣＲＡＭ制御部ＣＲＡＭＣＴＬ１の動作周波数より大きくすれば、相対的に高信頼実装部２のＣＲＡＭチェック頻度が大容量論理実装部１のＣＲＡＭのチェック頻度より高くすることができる。もちろん上記２つの方法をあわせるとさらに効果的である。このように構成することで、大容量論理実装部１と高信頼実装部２の搭載論理規模（すなわち、ＣＲＡＭの容量）を可変にできるので、より汎用的に使うことが可能となる。
【符号の説明】
【００６９】
１…大容量論理実装部、２…高信頼実装部、ＣＲＡＭＣＴＬ…ＣＲＡＭ制御部、ＬＵＴ…ルックアップテーブルＳＥＬ…セレクタ、ＳＷ…スイッチ、ＦＦ…フリップフロップ、ＬＳ…信号レベル変換回路、ＦＢＡ、ＦＢＢ…機能ブロック、ＣＭＰＡ、ＣＭＰＢ…比較器、ＴＯＵＴ…出力、ＯＲＡ…出力検査部、ＴＰＧ…テストパタン発生回路、ＣＲＡＭＣＴＬ…ＣＲＡＭ制御部、ＭＥＭＢＵＳ…メモリバスＣＲＡＭアクセス用データ転送バス
【図１】
2015045135.tif 000003
【図２】
2015045135.tif 000004
【図３】
2015045135.tif 000005
【図４】
2015045135.tif 000006
【図５】
2015045135.tif 000007
【図６】
2015045135.tif 000008
【図７】
2015045135.tif 000009
【図８】
2015045135.tif 000010
【図９】
2015045135.tif 000011
【図１０】
2015045135.tif 000012
【図１１】
2015045135.tif 000013
【図１２】
2015045135.tif 000014
【図１３】
2015045135.tif 000015
【図１４】
2015045135.tif 000016
【図１５】
2015045135.tif 000017
【国際調査報告】
2015045135.tif 000018
2015045135.tif 000019
2015045135.tif 000020
2015045135.tif 000021
2015045135.tif 000022
2015045135.tif 000023