(57)【要約】      （修正有）【課題】フリップフロップのソフトエラー耐性を向上することが可能な半導体集積回路を提供する。【解決手段】制御回路が、クロック信号生成回路に第１のクロック信号および第２のクロック信号を制御させて、第１のデータ保持端子に保持されたデータの論理と第２のデータ保持端子に保持されたデータの論理とを同じにし、その状態で、スイッチ回路をオンする。その後、スイッチ回路をオンさせた状態のまま、エラー検出回路が、第１のデータ保持端子の論理と第２のデータ保持端子の論理とを検知する。【選択図】図２Ａ
2010045610.tif 000002
【特許請求の範囲】
【請求項１】
データ入力端子と、
データ出力端子と、
前記データ入力端子に入力が接続され、前記データ入力端子を介して入力されたデータの論理またはこの論理を反転させた論理を保持する第１のデータ保持端子を有するマスタラッチ回路と、
前記マスタラッチ回路の出力に入力が接続され、前記データ出力端子に出力が接続され、前記マスタラッチ回路から入力されたデータに応じて前記第１のデータ保持端子に保持されていた論理と同じ論理を保持する第２のデータ保持端子を有するスレーブラッチ回路と、
前記マスタラッチ回路の動作を制御する第１のクロック信号、および前記スレーブラッチ回路の動作を制御する第２のクロック信号を生成し出力するクロック信号生成回路と、
前記第１のデータ保持端子と前記第２のデータ保持端子との間に接続されたスイッチ回路と、
前記第１のデータ保持端子の論理と前記第２のデータ保持端子の論理とを検知し、異なる場合には、エラー検出信号を出力するエラー検出回路と、
前記クロック信号生成回路および前記スイッチ回路を制御する制御回路と、を備え、
前記制御回路が、前記クロック信号生成回路に前記第１のクロック信号および前記第２のクロック信号を制御させて前記第１のデータ保持端子に保持されたデータの論理と前記第２のデータ保持端子に保持されたデータの論理とを同じにするとともに、前記スイッチ回路をオンし、
その後、前記エラー検出回路が、前記第１のデータ保持端子の論理と前記第２のデータ保持端子の論理とを検知する
ことを特徴とする半導体集積回路。
【請求項２】
データ入力端子と、
データ出力端子と、
前記データ入力端子に入力が接続され、前記データ入力端子を介して入力されたデータの論理またはこの論理を反転させた論理を保持する第１のデータ保持端子を有するマスタラッチ回路と、
前記マスタラッチ回路の出力に入力が接続され、前記データ出力端子に出力が接続され、前記マスタラッチ回路から入力されたデータに応じて前記第１のデータ保持端子に保持されていた論理と同じ論理を保持する第２のデータ保持端子を有するスレーブラッチ回路と、  
前記マスタラッチ回路の動作を制御する第１のクロック信号、および前記スレーブラッチ回路の動作を制御する第２のクロック信号を生成し出力するクロック信号生成回路と、
前記第１のデータ保持端子と前記第２のデータ保持端子との間に接続されたスイッチ回路と、
前記スイッチ回路に流れる電流を監視し、前記電流が規定値以上である場合には、エラー検出信号を出力するエラー検出回路と、
前記クロック信号生成回路および前記スイッチ回路を制御する制御回路と、を備え、
前記制御回路が、前記クロック信号生成回路に前記第１のクロック信号および前記第２のクロック信号を制御させて前記第１のデータ保持端子に保持されたデータの論理と前記第２のデータ保持端子に保持されたデータの論理とを同じにするとともに、前記スイッチ回路をオンし、
その後、前記スイッチ回路をオンさせた状態のまま、前記エラー検出回路が、前記スイッチ回路に流れる電流を監視する
ことを特徴とする半導体集積回路。
【請求項３】
前記データ入力端子に入力が接続され、前記データ入力端子を介して入力されたデータの論理またはこの論理を反転させた論理を保持する第１のデータ保持端子を有するマスタラッチ回路と、
前記マスタラッチ回路の出力に入力が接続され、前記データ出力端子に出力が接続され、前記マスタラッチ回路から入力されたデータに応じて前記第１のデータ保持端子に保持されていた論理と同じ論理を保持する第２のデータ保持端子を有するスレーブラッチ回路と、
前記マスタラッチ回路の動作を制御する第１のクロック信号、および前記スレーブラッチ回路の動作を制御する第２のクロック信号を生成し出力するクロック信号生成回路と、
前記第１のデータ保持端子と前記第２のデータ保持端子との間に接続されたスイッチ回路と、
前記マスタラッチ回路と前記スレーブラッチ回路に供給される電流の総和を監視し、前記電流が規定値以上である場合には、エラー検出信号を出力するエラー検出回路と、
前記クロック信号生成回路および前記スイッチ回路を制御する制御回路と、を備え、
前記制御回路が、前記クロック信号生成回路に前記第１のクロック信号および前記第２のクロック信号を制御させて前記第１のデータ保持端子に保持されたデータの論理と前記第２のデータ保持端子に保持されたデータの論理とを同じにするとともに、前記スイッチ回路をオンし、
その後、前記スイッチ回路をオンさせた状態のまま、前記エラー検出回路が、前記マスタラッチ回路と前記スレーブラッチ回路に供給される電流の総和を監視する
ことを特徴とする半導体集積回路。
【請求項４】
データを記憶する不揮発性メモリをさらに備え、
前記制御回路は、
前記エラー検出信号に応じて、前記不揮発性メモリに記憶されたデータの論理を前記マスタラッチ回路に保持させる
ことを特徴とする請求項１ないし３の何れかに記載の半導体集積回路。
【請求項５】
前記制御回路は、
前記エラー検出信号を受けてから、少なくとも前記マスタラッチ回路に前記不揮発性メモリに記憶されたデータの論理を保持させるまで、ビジー信号を出力する
ことを特徴とすることを特徴とする請求項４に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタスレーブ形のフリップフロップを備えた半導体集積回路に関する。
【背景技術】
【０００２】
近年、微細化された半導体集積回路においては、宇宙線や放射性同位体元素により生成されるアルファ線や中性子線によって起きるソフトエラーが大きな問題となっている。
【０００３】
アルファ線や中性子線が半導体集積回路に入射すると、入射した個所に電荷が生じ、これが半導体集積回路を誤動作（ソフトエラー）させる原因となる。
【０００４】
特に、フリップフロップにおいてはデータを保持している端子に放射線が入射することにより保持しているデータが反転する場合がある。
【０００５】
この問題を解決する従来手法として、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）といったメモリ回路では、エラー訂正符号（ＥＣＣ）を用いることによりソフトエラーにより反転したデータを検出・訂正する手法がある。
【０００６】
しかし、フリップフロップにこのような手法を適用することは困難である。
【０００７】
そこで、フリップフロップのソフトエラー耐性を高める手法が考案されている。しかし、これらは端子容量を大きくしたり、データのコピーを保持したりするため遅延や面積の増大を招く（例えば、非特許文献１参照。）。
【０００８】
該メモリ回路では、設定情報やリダンダンシ情報を蓄えるためのフリップフロップが複数存在している。これらのフリップフロップのデータは、メモリ回路が動作しているときには常時参照されている。さらに、これらのフリップフロップのデータは、メモリセルに蓄えられ読み出し時に正しく訂正すればよいデータと比べると、重要性が高い。
【０００９】
また、フリップフロップのデータにソフトエラーが生じた場合、タイミング情報やリダンダンシ情報が破壊される。この場合、メモリ回路として正しい動作をしなくなる。
【００１０】
したがって、このような従来技術においては、ソフトエラーを検出・訂正するメカニズムが、該メモリ回路の信頼性を確保するために、必要となる。
【非特許文献１】A. Goel, S. Bhunia, H. Mahmoodi, and K. Roy, “Low-overhead design of soft-error-tolerant scan flip-flops with enhanced-scan capability,” Digest of Technical Papers, Asia and South Pacific Conference on Design Automation pp.665-670, 2006.
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、フリップフロップのソフトエラー耐性を向上することが可能な半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一態様に係る実施例に従った半導体集積回路は、
データ入力端子と、
データ出力端子と、
前記データ入力端子に入力が接続され、前記データ入力端子を介して入力されたデータの論理またはこの論理を反転させた論理を保持する第１のデータ保持端子を有するマスタラッチ回路と、
前記マスタラッチ回路の出力に入力が接続され、前記データ出力端子に出力が接続され、前記マスタラッチ回路から入力されたデータに応じて前記第１のデータ保持端子に保持されていた論理と同じ論理を保持する第２のデータ保持端子を有するスレーブラッチ回路と、
前記マスタラッチ回路の動作を制御する第１のクロック信号、および前記スレーブラッチ回路の動作を制御する第２のクロック信号を生成し出力するクロック信号生成回路と、
前記第１のデータ保持端子と前記第２のデータ保持端子との間に接続されたスイッチ回路と、
前記第１のデータ保持端子の論理と前記第２のデータ保持端子の論理とを検知し、異なる場合には、エラー検出信号を出力するエラー検出回路と、
前記クロック信号生成回路および前記スイッチ回路を制御する制御回路と、を備え、
前記制御回路が、前記クロック信号生成回路に前記第１のクロック信号および前記第２のクロック信号を制御させて前記第１のデータ保持端子に保持されたデータの論理と前記第２のデータ保持端子に保持されたデータの論理とを同じにするとともに、前記スイッチ回路をオンし、
その後、前記スイッチ回路をオンさせた状態のまま、前記エラー検出回路が、前記第１のデータ保持端子の論理と前記第２のデータ保持端子の論理とを検知する
ことを特徴とする。
【００１３】
本発明の他の態様に係る実施例に従った半導体集積回路は、
データ入力端子と、
データ出力端子と、
前記データ入力端子に入力が接続され、前記データ入力端子を介して入力されたデータの論理またはこの論理を反転させた論理を保持する第１のデータ保持端子を有するマスタラッチ回路と、
前記マスタラッチ回路の出力に入力が接続され、前記データ出力端子に出力が接続され、前記マスタラッチ回路から入力されたデータに応じて前記第１のデータ保持端子に保持されていた論理と同じ論理を保持する第２のデータ保持端子を有するスレーブラッチ回路と、  
前記マスタラッチ回路の動作を制御する第１のクロック信号、および前記スレーブラッチ回路の動作を制御する第２のクロック信号を生成し出力するクロック信号生成回路と、
前記第１のデータ保持端子と前記第２のデータ保持端子との間に接続されたスイッチ回路と、
前記スイッチ回路に流れる電流を監視し、前記電流が規定値以上である場合には、エラー検出信号を出力するエラー検出回路と、
前記クロック信号生成回路および前記スイッチ回路を制御する制御回路と、を備え、
前記制御回路が、前記クロック信号生成回路に前記第１のクロック信号および前記第２のクロック信号を制御させて前記第１のデータ保持端子に保持されたデータの論理と前記第２のデータ保持端子に保持されたデータの論理とを同じにするとともに、前記スイッチ回路をオンし、
その後、前記スイッチ回路をオンさせた状態のまま、前記エラー検出回路が、前記スイッチ回路に流れる電流を監視する
ことを特徴とする。
【００１４】
本発明のさらに他の態様に係る実施例に従った半導体集積回路は、
前記データ入力端子に入力が接続され、前記データ入力端子を介して入力されたデータの論理またはこの論理を反転させた論理を保持する第１のデータ保持端子を有するマスタラッチ回路と、
前記マスタラッチ回路の出力に入力が接続され、前記データ出力端子に出力が接続され、前記マスタラッチ回路から入力されたデータに応じて前記第１のデータ保持端子に保持されていた論理と同じ論理を保持する第２のデータ保持端子を有するスレーブラッチ回路と、
前記マスタラッチ回路の動作を制御する第１のクロック信号、および前記スレーブラッチ回路の動作を制御する第２のクロック信号を生成し出力するクロック信号生成回路と、
前記第１のデータ保持端子と前記第２のデータ保持端子との間に接続されたスイッチ回路と、
前記マスタラッチ回路と前記スレーブラッチ回路に供給される電流の総和を監視し、前記電流が規定値以上である場合には、エラー検出信号を出力するエラー検出回路と、
前記クロック信号生成回路および前記スイッチ回路を制御する制御回路と、を備え、
前記制御回路が、前記クロック信号生成回路に前記第１のクロック信号および前記第２のクロック信号を制御させて前記第１のデータ保持端子に保持されたデータの論理と前記第２のデータ保持端子に保持されたデータの論理とを同じにするとともに、前記スイッチ回路をオンし、
その後、前記スイッチ回路をオンさせた状態のまま、前記エラー検出回路が、前記マスタラッチ回路と前記スレーブラッチ回路に供給される電流の総和を監視する
ことを特徴とする。
【発明の効果】
【００１５】
本発明の半導体集積回路によれば、フリップフロップのソフトエラー耐性を向上することができる。
【発明を実施するための最良の形態】
【００１６】
（比較例）
先ず、比較例として、一般的なマスタスレーブ形のフリップフロップの構成・機能について説明する。
【００１７】
図１は、比較例のマスタスレーブ形のフリップフロップ１００ａの構成を示すブロック図である。
【００１８】
図1に示すように、フリップフロップ１００ａは、入力データDを入力とするマスタラッチ回路１０１ａと、このマスタラッチ回路１０１ａの出力を入力とし、その出力をフリップフロップ１００ａの出力QもしくはQbもしくはその両方とするスレーブラッチ回路１０２ａと、を備える。  
マスタラッチ回路１０１ａにはマスタクロックが入力され、スレーブラッチ回路１０２ａにはスレーブクロックが入力されるようになっている。
【００１９】
マスタラッチ回路１０１ａおよびスレーブラッチ回路１０２ａの内部には、データを保持する機構があり、データの正論理とデータの負論理を保持できるようになっている。
【００２０】
ここで、マスタラッチ回路１０１ａが保持するデータの正論理をｍｓｐ、マスタラッチ回路１０１ａが保持するデータの負論理をｍｓｎとする。さらに、スレーブラッチ回路が保持するデータの正論理をｓｓｐ、スレーブラッチ回路が保持するデータの負論理をｓｓｎとする。
【００２１】
比較例のフリップフロップ１００ａでは、入力されるクロックによりマスタラッチ回路もしくはスレーブラッチ回路の一方のみがデータを保持し、マスタラッチ回路１０１ａおよびスレーブラッチ回路１０２ａがデータを保持していることはない。
【００２２】
したがって、既述のように、データを保持している端子に放射線が入射されると、保持しているデータが反転し、フリップフロップのソフトエラーが生じ得る。
【００２３】
そこで、本発明の一態様に係る半導体集積回路は、マスタラッチ回路とスレーブラッチ回路に同時にデータを保持させ、この状態で、マスタラッチ回路とスレーブラッチ回路のデータ保持端子を、スイッチ回路を介して、電気的に接続する。
【００２４】
ここで、該スイッチ回路は、オンしていても有限の抵抗値を有する。これにより、該スイッチ回路をオンさせた状態で、マスタラッチ回路のデータ保持端子とスレーブラッチ回路のデータ保持端子との間に電位差が生じ得る。
【００２５】
したがって、マスタラッチ回路とスレーブラッチ回路のそれぞれのデータ保持端子を電気的に接続した状態であっても、例えば、アルファ線や中性子線により、マスタラッチ回路（またはスレーブラッチ回路）が保持しているデータが反転し得る。すなわち、マスタラッチ回路のデータ保持端子に保持された論理とスレーブラッチ回路のデータ保持端子に保持された論理とが異なる場合がある。
【００２６】
そこで、この状態をエラー検出回路により検出し、エラー検出信号を出力するようにする。例えば、このエラー検出信号に基づいて、フリップフロップに記憶されたデータを正しいデータに書き換えたりすることにより、ソフトエラー耐性を向上させることができる。
【００２７】
以下、本発明に係る各実施例について図面に基づいて説明する。
【実施例１】
【００２８】
図２Ａは、本発明の一態様である実施例１に係る半導体集積回路１００の要部の構成を示す図である。
【００２９】
図２Ａに示すように、半導体集積回路１００は、データ入力端子１と、データ出力端子２と、マスタラッチ回路３と、スレーブラッチ回路４と、クロック信号生成回路５と、第１のスイッチ回路６と、第２のスイッチ回路７と、制御回路８と、エラー検出回路１１と、を備える。
【００３０】
なお、データ入力端子１と、データ出力端子２と、マスタラッチ回路３と、スレーブラッチ回路４と、第１のスイッチ回路６と、第２のスイッチ回路７と、により、フリップフロップ１０が構成される。
【００３１】
マスタラッチ回路３は、データ入力端子１に入力が接続されている。このマスタラッチ回路３は、データ入力端子１を介して入力されたデータの正論理ｍｓｐを保持するデータ保持端子３ａを有する。
【００３２】
さらに、マスタラッチ回路３は、データ入力端子１を介して入力された該データの負論理（データ保持端子３ａに保持された論理を反転させた論理）ｍｓｎを保持するデータ保持端子３ｂを有する。
【００３３】
スレーブラッチ回路４は、マスタラッチ回路３の出力に入力が接続され、データ出力端子２に出力が接続されている。このスレーブラッチ回路４は、マスタラッチ回路３から入力されたデータの正論理ｓｓｐを保持するデータ保持端子４ａを有する。すなわち、データ保持端子４ａには、マスタラッチ回路３から入力されたデータに応じてデータ保持端子３ａに保持されていた論理と同じ論理が保持される。
【００３４】
さらに、マスタラッチ回路３から入力された該データの負論理（データ保持端子４ａに保持された論理を反転させた論理）ｓｓｎを保持するデータ保持端子４ｂを有する。すなわち、データ保持端子４ｂには、マスタラッチ回路３から入力されたデータに応じてデータ保持端子３ｂに保持されていた論理と同じ論理が保持される。
【００３５】
クロック信号生成回路５は、基準クロックＣＬＫから、マスタラッチ回路３の動作を制御する第１のクロック信号ｍｃｌｋ、およびスレーブラッチ回路４の動作を制御する第２のクロック信号ｓｃｌｋを生成し出力するようになっている。
【００３６】
すなわち、この第１のクロック信号ｍｃｌｋに応じて、マスタラッチ回路３は、データ入力端子１から入力されたデータを保持し、または、入力されたデータをそのまま（またはバッファして）出力するようになっている。また、第２のクロック信号ｓｃｌｋに応じて、スレーブラッチ回路４は、マスタラッチ回路３から入力されたデータを保持し、または、入力されたデータをそのまま（またはバッファして）出力するようになっている。
【００３７】
第１のスイッチ回路６は、データ保持端子３ａとデータ保持端子４ａとの間に接続されている。
【００３８】
第２のスイッチ回路７は、データ保持端子３ｂとデータ保持端子４ｂとの間に接続されている。
【００３９】
なお、第１、第２のスイッチ回路６、７には、例えば、ＭＯＳトランジスタや、ＭＯＳトランジスタで構成されたトランスファーゲート等が適用される。
【００４０】
制御回路８は、第１のスイッチ回路６、第２のスイッチ回路７、およびクロック信号生成回路５を、制御信号Ｓ１、Ｓ２、Ｓ３により制御するようになっている。
【００４１】
エラー検出回路１１は、例えば、データ保持端子３ａの論理（電位）とデータ保持端子４ａの論理（電位）とが入力される排他的論理和演算回路１１ａで構成されている。データ保持端子３ａの論理（電位）とデータ保持端子４ａの論理（電位）とが同じ場合には、この排他的論理和演算回路１１ａの出力は、“Ｌｏｗ”レベルとなる。一方、データ保持端子３ａの論理（電位）とデータ保持端子４ａの論理（電位）とが異なる場合には、この排他的論理和演算回路１１ａの出力は、“Ｈｉｇｈ”レベルとなる。この“Ｈｉｇｈ”レベルの信号が、エラー検出信号Ｓｅとなる。
【００４２】
すなわち、このエラー検出回路１１は、データ保持端子３ａの論理とデータ保持端子４ａの論理とを検知し、異なる場合には、エラー検出信号Ｓｅを出力するようになっている。
【００４３】
ここで、以上のような構成を有する半導体集積回路１００がソフトエラー耐性を向上させる動作の一例について説明する。
【００４４】
まず、制御回路８は、制御信号Ｓ３により、クロック信号生成回路５に第１のクロック信号ｍｃｌｋおよび第２のクロック信号ｓｃｌｋを制御させる。これにより、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４が保持する状態Ａ、または、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４がデータ出力端子２に通過させる状態Ｂにする。
【００４５】
これにより、制御回路８は、データ保持端子３ａに保持されたデータの論理とデータ保持端子４ａに保持されたデータの論理とを同じにするとともに、データ保持端子３ｂに保持されたデータの論理とデータ保持端子４ｂに保持されたデータの論理とを同じにする。
【００４６】
そして、制御回路８は、該状態Ａ、Ｂの何れかで、制御信号Ｓ１、Ｓ２により、第１のスイッチ回路６および第２のスイッチ回路７をオンする。さらに、制御回路８は、フリップフロップが該状態Ｂにあればフリップフロップを該状態Ａにする（フリップフロップが該状態Ａにあればそのままの該状態Ａを保持させる）。
【００４７】
その後、第１のスイッチ回路６をオンさせた状態のまま、エラー検出回路１１が、データ保持端子の論理３ａとデータ保持端子４ａの論理とを検知する。
【００４８】
ここで、既述のように、第１のスイッチ回路６は有限のオン抵抗有する。したがって、マスタラッチ回路３とスレーブラッチ回路４のそれぞれのデータ保持端子を電気的に接続した状態であっても、例えば、アルファ線や中性子線により、マスタラッチ回路３（またはスレーブラッチ回路４）が保持しているデータが反転し得る。すなわち、マスタラッチ回路３のデータ保持端子に保持された論理とスレーブラッチ回路のデータ保持端子に保持された論理とが異なり得る。
【００４９】
そこで、エラー検出回路１１は、データ保持端子３ａの論理とデータ保持端子４ａの論理とが異なる場合には、エラー検出信号Ｓｅを出力する。既述のように、例えば、このエラー検出信号Ｓｅに基づいて、フリップフロップ１０に保持されたデータを正しいデータ書き換えたりすることにより、ソフトエラー耐性を向上させることができる。
【００５０】
以上のような半導体集積回路１００の動作により、ソフトエラー耐性が向上することが可能である。
【００５１】
ここで、図２Ｂは、本発明の一態様である実施例１に係る半導体集積回路１００の要部の構成の他の例を示す図である。
【００５２】
図２Ｂに示すように、エラー検出回路１１は、例えば、データ保持端子３ｂの論理（電位）とデータ保持端子４ｂの論理（電位）とが入力される排他的論理和演算回路１１ａで構成されている。
【００５３】
データ保持端子３ｂの論理（電位）とデータ保持端子４ｂの論理（電位）とが同じ場合には、この排他的論理和演算回路１１ａの出力は、“Ｌｏｗ”レベルとなる。一方、データ保持端子３ｂの論理（電位）とデータ保持端子４ｂの論理（電位）とが異なる場合には、この排他的論理和演算回路１１ａの出力は、“Ｈｉｇｈ”レベルとなる。この“Ｈｉｇｈ”レベルの信号が、エラー検出信号Ｓｅとなる。
【００５４】
すなわち、このエラー検出回路１１は、データ保持端子３ｂの論理とデータ保持端子４ｂの論理とを検知し、異なる場合には、エラー検出信号Ｓｅを出力するようになっている。
【００５５】
なお、図２Ｂに示す半導体集積回路１００の動作・機能は、既述の図２Ａに示す半導体集積回路１００と同様である。
【００５６】
また、クロック信号生成回路５、および制御回路８は、複数のフリップフロップ１０で共有化するようにしてもよい。
【００５７】
また、半導体集積回路１００においては、第１のスイッチ回路６または第２のスイッチ回路７の少なくとも何れか一方が設けられて入ればよい。この場合、エラー検出回路１１は、スイッチ回路が接続されたマスタラッチ回路３のデータ保持端子の論理とスレーブラッチ回路４のデータ保持端子の論理とを、検知できるようになっていればよい。
【００５８】
以上のように、本実施例に係る半導体集積回路によれば、フリップフロップのソフトエラー耐性を向上することができる。
【実施例２】
【００５９】
本実施例２では、エラー検出回路がスイッチ回路に流れる電流を検知することにより、間接的にマスタラッチ回路のデータ保持端子の論理とスレーブラッチ回路のデータ保持端子の論理を検知する例について述べる。
【００６０】
ここで、図３は、実施例１の図２Ａ、図２Ｂに示すフリップフロップ、およびクロック信号生成回路の具体的な回路構成の一例を示す図である。
【００６１】
図３に示すように、マスタラッチ回路３は、データ保持端子３ａと、データ保持端子３ｂと、第１のクロックドインバータ３ｃと、第１のインバータ３ｄと、第２のクロックドインバータ３ｅと、を含む。
【００６２】
なお、ここでは、図２Ａ、図２Ｂの第１のクロック信号ｍｃｌｋを、正相のクロック信号（以下では、第１の（正相の）クロック信号と表記）ｍｃｌｋｐ、逆相のクロック信号ｍｃｌｋｎの二つに分けて説明する。
【００６３】
第１のクロックドインバータ３ｃは、データ入力端子１に入力が接続されるとともにデータ保持端子３ｂに出力が接続されている。この第１のクロックドインバータ３ｃは、第１のクロック信号ｍｃｌｋｐが入力される第１のクロック端子３ｃ１を有し、第１のクロック信号ｍｃｌｋｐの逆相のクロック信号ｍｃｌｋｎが入力される第２のクロック端子３ｃ２を有する。
【００６４】
第１のインバータ３ｄは、データ保持端子３ｂに入力が接続されるとともに、データ保持端子３ａに出力が接続されている。
【００６５】
第２のクロックドインバータ３ｅは、データ保持端子３ａに入力が接続されるとともに、データ保持端子３ｂに出力が接続されている。この第２のクロックドインバータ３ｅは、第１のクロック信号ｍｃｌｋｐの逆相のクロック信号ｍｃｌｋｎが入力される第３のクロック端子３ｅ１を有し、第１のクロック信号ｍｃｌｋｐが入力される第４のクロック端子３ｅ２を有する。
【００６６】
また、スレーブラッチ回路４は、データ保持端子４ａと、データ保持端子４ｂと、第３のクロックドインバータ４ｃと、第２のインバータ４ｄと、第４のクロックドインバータ４ｅと、を含む。
【００６７】
なお、ここでは、図２Ａ、図２Ｂの第２のクロック信号ｓｃｌｋを、正相のクロック信号（以下では、第２の（正相の）クロック信号と表記）ｓｃｌｋｐ、逆相のクロック信号ｓｃｌｋｎの二つに分けて説明する。
【００６８】
第３のクロックドインバータ４ｃは、マスタラッチ回路３のデータ保持端子３ａに入力が接続されるとともにデータ保持端子４ｂに出力が接続されている。この第３のクロックドインバータ４ｃは、第２のクロック信号ｓｃｌｋｐが入力される第５のクロック端子４ｃ１を有し、第２のクロック信号ｓｃｌｋｐの逆相のクロック信号ｓｃｌｋｎが入力される第６のクロック端子４ｃ２を有する。
【００６９】
第２のインバータ４ｄは、データ保持端子４ｂに入力が接続されるとともにデータ保持端子４ａに出力が接続されている。
【００７０】
第４のクロックドインバータ４ｅは、データ保持端子４ａに入力が接続されるとともにデータ保持端子４ｂに出力が接続されている。この第４のクロックドインバータ４ｅは、第２のクロック信号ｓｃｌｋｐの逆相のクロック信号ｓｃｌｋｎが入力される第７のクロック端子４ｅ１を有し、第２のクロック信号ｓｃｌｋｐが入力される第８のクロック端子４ｅ２を有する。
【００７１】
なお、データ出力端子２は、出力Ｑを出力する場合はデータ保持端子４ａに接続され、出力Ｑｂを出力する場合はデータ保持端子４ｂに接続されている。
【００７２】
また、クロック信号生成回路５は、インバータ５ａと、セレクタ５ｂと、インバータ５ｃと、を含む。
【００７３】
インバータ５ａは、第１、第４のクロック端子３ｃ１、３ｅ２に入力が接続され、第２、第３のクロック端子３ｃ２、３ｅ１に出力が接続されている。このインバータ５ａは、基準クロック信号ＣＬＫ（ここでは、正相のクロック信号ｍｃｌｋｐとして使用）が入力され、この基準クロック信号ＣＬＫを反転させた信号（逆相のクロック信号ｍｃｌｋｎ）を出力するようになっている。
【００７４】
また、セレクタ５ｂは、基準クロック信号ＣＬＫ（すなわち、正相のクロック信号ｍｃｌｋｐ）および逆相のクロック信号ｍｃｌｋｎが入力されるようになっている。このセレクタ５ｂは、制御信号Ｓ３に応じて、正相のクロック信号ｍｃｌｋｐもしくは逆相のクロック信号ｍｃｌｋｎのどちらかを第２のクロック信号ｓｃｌｋｐとして、第５、第８のクロック端子４ｃ１、４ｅ２に出力するようになっている。
【００７５】
なお、セレクタ５ｂは、制御信号Ｓ３に応じて、通常動作時は、逆相のクロック信号ｍｃｌｋｎを出力し、一方、制御信号Ｓ３に応じて、ソフトエラー耐性を向上させる時は、正相のクロック信号ｍｃｌｋｐを出力するようになっている。
【００７６】
インバータ５ｃは、第５、第８のクロック端子４ｃ１、４ｅ２に入力が接続され、第６、第７のクロック端子４ｃ２、４ｅ１に出力が接続されている。このインバータ５ｃは、正相のクロック信号ｓｃｌｋｐが入力され、この正相のクロック信号ｓｃｌｋｐを反転させた信号（逆相のクロック信号ｓｃｌｋｎ）を出力するようになっている。
【００７７】
以上のように、クロック信号生成回路５は、基準クロック信号ＣＬＫに応じて、クロック信号ｍｃｌｋｐ、ｍｃｌｋｎ、ｓｃｌｋｐ、ｓｃｌｋｎが変化する構成になっている。
【００７８】
そして、クロック信号ｍｃｌｋｐ、ｍｃｌｋｎに応じて、マスタラッチ回路３は、データ入力端子１から入力されたデータを保持し、または、入力されたデータをそのまま（またはバッファして）出力するようになっている。
【００７９】
また、クロック信号ｓｃｌｋｐ、ｓｃｌｋｎに応じて、スレーブラッチ回路４は、マスタラッチ回路３から入力されたデータを保持し、または、入力されたデータをそのまま（またはバッファして）出力するようになっている。
【００８０】
ここで、以上のような構成を有する半導体集積回路１００がソフトエラー耐性を向上させる動作の一例について説明する。
【００８１】
まず、制御回路８は、制御信号Ｓ３により、クロック信号生成回路５に第１のクロック信号ｍｃｌｋ（ｍｃｌｋｐ、ｍｃｌｋｎ）および第２のクロック信号ｓｃｌｋ（ｓｃｌｋｐ、ｓｃｌｋｎ）を制御させる。例えば、制御回路８は、制御信号Ｓ３により、クロック信号生成回路５にクロック信号ｍｃｌｋｐ、ｓｃｌｋｐを“Ｈｉｇｈ”レベル（すなわち、論理“１”）にさせる（クロック信号ｍｃｌｋｎ、ｓｃｌｋｎを“Ｌｏｗ”レベル（すなわち、論理“０”）にさせる）。
【００８２】
これにより、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４が保持する状態Ａ、または、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４がデータ出力端子２に通過させる状態Ｂにする。
【００８３】
これにより、制御回路８は、データ保持端子３ａに保持されたデータの論理とデータ保持端子４ａに保持されたデータの論理とを同じにするとともに、データ保持端子３ｂに保持されたデータの論理とデータ保持端子４ｂに保持されたデータの論理とを同じにする。
【００８４】
そして、制御回路８は、該状態Ａ、Ｂの何れかで、制御信号Ｓ１、Ｓ２により、第１のスイッチ回路６および第２のスイッチ回路７をオンする。さらに、制御回路８は、フリップフロップが該状態Ｂにあればフリップフロップを該状態Ａにする（フリップフロップが該状態Ａにあればそのままの該状態Ａを保持させる）。
【００８５】
ここで、既述のように、第１のスイッチ回路６および第２のスイッチ回路７は、有限のオン抵抗を有する。したがって、マスタラッチ回路３とスレーブラッチ回路４のそれぞれのデータ保持端子を電気的に接続した状態であっても、例えば、アルファ線や中性子線により、マスタラッチ回路３（またはスレーブラッチ回路４）が保持しているデータが反転し得る。
【００８６】
すなわち、マスタラッチ回路３のデータ保持端子に保持された論理とスレーブラッチ回路のデータ保持端子に保持された論理とが異なり得る。この場合、マスタラッチ回路３のデータ保持端子とスレーブラッチ回路のデータ保持端子との間には、或る電位差が生じる。
【００８７】
これらの論理が同じで電位差がほとんど無い場合は、第１、第２のスイッチ回路６、７には、ほとんど電流が流れない。しかし、これらの論理が異なる場合は、第１のスイッチ回路６に或る値以上の電流Ｉ１が、また第２のスイッチ回路７に或る値以上の電流Ｉ２が、流れることになる。
【００８８】
そこで、本実施例２では、既述のように、エラー検出回路がスイッチ回路に流れる電流を検知することにより、間接的にマスタラッチ回路のデータ保持端子の論理とスレーブラッチ回路のデータ保持端子の論理を検知する。
【００８９】
図４は、本発明の一態様である実施例２に係る半導体集積回路２００の要部の構成を示す図である。
【００９０】
図４に示すように、半導体集積回路２００は、データ入力端子１と、データ出力端子２と、クロック信号生成回路５と、制御回路８と、フリップフロップ１０と、エラー検出回路２１１と、を備える。なお、クロック信号生成回路５、制御回路８、およびフリップフロップ１０の構成および動作は、実施例１と同様である。
【００９１】
エラー検出回路２１１は、フリップフロップ１０の第１のスイッチ回路６または第２のスイッチ回路７に流れる電流を監視する。そして、エラー検出回路２１１は、該電流が第１の規定値以上である場合には、エラー検出信号を出力するようになっている。なお、エラー検出回路２１１は、マスタラッチ回路とスレーブラッチ回路に供給される電流の総和を監視し、該電流が規定値以上である場合には、エラー検出信号Ｓｅを出力するようにしてもよい。
【００９２】
このエラー検出回路２１１は、例えば、フリップフロップ１０の消費電流を計測するための電流計２１１ａと、計測された電流値に基づいてエラーの発生を検知しエラー検出信号Ｓｅを出力する検知回路２１１ｂと、を有する。このような構成により、エラー検出回路２１１は、スイッチ回路６または第２のスイッチ回路７に流れる電流を監視する。
【００９３】
ここで、既述のように、マスタラッチ回路３のデータ保持端子で保持する論理とスレーブラッチ回路４のデータ保持端子で保持する論理が異なる場合には、オンしているスイッチ回路に電流が流れることとなる。すなわち、この論理が異なる場合、フリップフロップ１０の消費電流が増加する。
【００９４】
したがって、エラー検出回路２１１は、フリップフロップ１０の消費電流を監視することにより、間接的に、フリップフロップ１０の第１のスイッチ回路６または第２のスイッチ回路７に流れる電流を監視することができるようになっている。すなわち、エラー検出回路２１１は、該消費電流が第２の規定値以上である場合には、第１のスイッチ回路６または第２のスイッチ回路７に流れる電流が第１の規定値以上であると判断することができる。すなわち、この場合、上述のように論理が異なる（エラーが発生した）と判断することができる。
【００９５】
さらに、複数のフリップフロップ１０全体の消費電流を考えると、何れかのフリップフロップ１０において上述ように論理が異なる場合、該全体の消費電流が増加する。
【００９６】
したがって、エラー検出回路２１１は、複数のフリップフロップ１０全体の消費電流を監視することにより、この全体の消費電流が第３の規定値以上である場合には、何れかのフリップフロップ１０の第１のスイッチ回路６または第２のスイッチ回路７に流れる電流が第１の規定値以上であると判断することができる。すなわち、この場合、上述のように論理が異なる（エラーが発生した）フリップフロップ１０が存在すると判断することができる。
【００９７】
このようにして、エラー検出回路２１１は、フリップフロップ１０の第１のスイッチ回路６または第２のスイッチ回路７に流れる電流が第１の規定値以上である場合には、エラー検出信号を出力するようになっている。
【００９８】
ここで、以上のような構成を有する半導体集積回路２００がソフトエラー耐性を向上させる動作の一例について説明する。
【００９９】
まず、実施例１と同様に、制御回路８は、制御信号Ｓ３により、クロック信号生成回路５に第１のクロック信号ｍｃｌｋおよび第２のクロック信号ｓｃｌｋを制御させる。これにより、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４が保持する状態Ａ、または、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４がデータ出力端子２に通過させる状態Ｂにする。
【０１００】
これにより、制御回路８は、データ保持端子３ａに保持されたデータの論理とデータ保持端子４ａに保持されたデータの論理とを同じにするとともに、データ保持端子３ｂに保持されたデータの論理とデータ保持端子４ｂに保持されたデータの論理とを同じにする。
【０１０１】
そして、制御回路８は、該状態Ａ、Ｂの何れかで、制御信号Ｓ１、Ｓ２により、各フリップフロップ１０の第１のスイッチ回路６および第２のスイッチ回路７をオンする。さらに、制御回路８は、フリップフロップが該状態Ｂにあればフリップフロップを該状態Ａにする（フリップフロップが該状態Ａにあればそのままの該状態Ａを保持させる）。
【０１０２】
その後、第１のスイッチ回路６をオンさせた状態のまま、エラー検出回路１１が、フリップフロップ１０の第１のスイッチ回路６または第２のスイッチ回路７に流れる電流を監視する。そして、エラー検出回路１１は、該電流が第１の規定値以上である場合には、エラー検出信号Ｓｅを出力する。
【０１０３】
既述のように、例えば、このエラー検出信号Ｓｅに基づいて、各フリップフロップに記憶されたデータを書き換えたりすることにより、ソフトエラー耐性を向上させることができる。
【０１０４】
なお、エラー検出回路２１１がマスタラッチ回路とスレーブラッチ回路に供給される電流の総和を監視する場合は、上述のようにして各フリップフロップ１０の第１のスイッチ回路６および第２のスイッチ回路７をオンさせた後、該電流の総和が規定値以上である場合には、エラー検出信号Ｓｅを出力するようにしてもよい。
【０１０５】
以上のように、本実施例に係る半導体集積回路によれば、フリップフロップのソフトエラー耐性を向上することができる。
【実施例３】
【０１０６】
本実施例３では、実施例２のエラー検出回路をより具体的にした構成の一例について説明する。
【０１０７】
図５は、本発明の一態様である実施例３に係る半導体集積回路３００の要部の構成を示す図である。なお、図５において、クロック信号生成回路５、制御回路８、フリップフロップ１０の構成は、実施例１と同様である。
【０１０８】
図５に示すように、エラー検出回路２１１の電流計２１１ａは、抵抗により構成されている。また、エラー検出回路２１１の検知回路２１１ｂは、該抵抗の両端の電位が入力され、この電位差に基づいてエラー検出信号Ｓｅを出力するコンパレータにより構成されている。なお、該抵抗の抵抗値は、既知であるので、該コンパレータは、該抵抗の両端の電位差が規定値よりも大きい場合（すなわち、フリップフロップ１０の消費電流が規定値よりも大きい場合）、エラー検出信号Ｓｅを出力するようになっている。
【０１０９】
以上のような構成を有する半導体集積回路３００は、実施例２の半導体集積回路２００と同様に、フリップフロップのソフトエラー耐性を向上することができる。
【実施例４】
【０１１０】
本実施例４では、エラー検出信号を用いて具体的にソフトエラー耐性を向上させる構成の一例について説明する。なお、以下では、フリップフロップが１つの場合について説明するが、実施例２で説明したようにフリップフロップが複数の場合でも同様に適用可能である。
【０１１１】
図６は、本発明の一態様である実施例４に係る半導体集積回路４００の要部の構成を示す図である。
【０１１２】
図６に示すように、半導体集積回路４００は、クロック信号生成回路５と、制御回路８と、フリップフロップ１０と、エラー検出回路１１と、不揮発性メモリ１２と、を備える。なお、クロック信号生成回路５、制御回路８、フリップフロップ１０、エラー検出回路１１の構成・動作は、実施例１と同様である。
【０１１３】
不揮発性メモリ１２は、フリップフロップ１０に記憶させるためのデータを記憶するようになっている。この不揮発性メモリ１２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等で構成される。
【０１１４】
ここで、以上のような構成を有する半導体集積回路４００がソフトエラー耐性を向上させる動作の一例について説明する。
【０１１５】
まず、実施例１と同様に、制御回路８は、制御信号Ｓ３により、クロック信号生成回路５に第１のクロック信号ｍｃｌｋおよび第２のクロック信号ｓｃｌｋを制御させる。これにより、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４が保持する状態Ａ、または、マスタラッチ回路３に保持されマスタラッチ回路３から入力されるデータを、スレーブラッチ回路４がデータ出力端子２に通過させる状態Ｂにする。
【０１１６】
これにより、制御回路８は、データ保持端子３ａに保持されたデータの論理とデータ保持端子４ａに保持されたデータの論理とを同じにするとともに、データ保持端子３ｂに保持されたデータの論理とデータ保持端子４ｂに保持されたデータの論理とを同じにする。
【０１１７】
そして、制御回路８は、該状態Ａ、Ｂの何れかで、制御信号Ｓ１、Ｓ２により、第１のスイッチ回路６および第２のスイッチ回路７をオンする。
【０１１８】
その後、第１のスイッチ回路６をオンさせた状態のまま、エラー検出回路１１が、データ保持端子の論理３ａとデータ保持端子４ａの論理とを検知する。
【０１１９】
そこで、エラー検出回路１１は、データ保持端子３ａの論理とデータ保持端子４ａの論理とが異なる場合には、エラー検出信号Ｓｅを出力する。
【０１２０】
そして、制御回路８は、このエラー検出信号Ｓｅに応じて、不揮発性メモリ１２に制御信号Ｓ４を出力して、不揮発性メモリ１２に記憶されたデータをフリップフロップ１０に書き込ませる。すなわち、制御回路８は、エラー検出信号Ｓｅに応じて、不揮発性メモリ１２に記憶されたデータの論理をマスタラッチ回路３に保持させる。
【０１２１】
これにより、フリップフロップ１０に保持されたデータを正しいデータに書き換えることができ、ソフトエラー耐性を向上させることができる。
【０１２２】
ここで、制御回路８は、エラー検出信号Ｓｅを受けてから、少なくともマスタラッチ回路３に、不揮発性メモリ１２に記憶されたデータの論理を保持させるまで、ビジー信号を出力する。このビジー信号を受けた外部回路（図示せず）は、例えば、フリップフロップ１０に保持されているデータに基づいた情報へのアクセスを停止する。これにより、該外部回路がエラーと判断されたデータに基づいた該情報へのアクセスが回避され、回路の誤動作が回避される。
【０１２３】
以上のような半導体集積回路４００の動作により、ソフトエラー耐性が向上することが可能である。
【０１２４】
なお、ここでは、半導体集積回路４００に、実施例１のエラー検出回路１１を適用しているが、実施例２のエラー検出回路２１１を適用してもよい。
【０１２５】
また、フリップフロップ１０とエラー検出回路１１とが半導体集積回路４００内のＤＲＡＭに設けられていてもよい。また、フリップフロップ１０と、エラー検出回路１１と、不揮発性メモリ１２とが半導体集積回路４００内のＤＲＡＭに設けられていてもよい。
【図面の簡単な説明】
【０１２６】
【図１】比較例のマスタスレーブ形のフリップフロップ１００ａの構成を示すブロック図である。
【図２Ａ】本発明の一態様である実施例１に係る半導体集積回路１００の要部の構成を示す図である。
【図２Ｂ】本発明の一態様である実施例１に係る半導体集積回路１００の要部の構成の他の例を示す図である。
【図３】実施例１の図２Ａ、図２Ｂに示すフリップフロップ、およびクロック信号生成回路の具体的な回路構成の一例を示す図である。
【図４】本発明の一態様である実施例２に係る半導体集積回路２００の要部の構成を示す図である。
【図５】本発明の一態様である実施例３に係る半導体集積回路３００の要部の構成を示す図である。
【図６】本発明の一態様である実施例４に係る半導体集積回路４００の要部の構成を示す図である。
【符号の説明】
【０１２７】
１  データ入力端子
２  データ出力端子
３  マスタラッチ回路
３ａ、３ｂ、４ａ、４ｂ  データ保持端子
３ｃ  第１のクロックドインバータ
３ｄ  第１のインバータ
３ｅ  第２のクロックドインバータ
３ｆ  第１のトランスミッションゲート
４  スレーブラッチ回路
４ｃ  第３のクロックドインバータ
４ｄ  第２のインバータ
４ｅ  第４のクロックドインバータ
４ｆ  第２のトランスミッションゲート
５  クロック信号生成回路
５ａ  インバータ
５ｂ  セレクタ
５ｃ  インバータ
６  第１のスイッチ回路
７  第２のスイッチ回路
８  制御回路
１０  フリップフロップ
１１、２１１  エラー検出回路
１１ａ  排他的論理和演算回路
１２  不揮発性メモリ
２１１ａ  電流計
２１１ｂ  検知回路
１００、２００、３００、４００  半導体集積回路
１００ａ  フリップフロップ
１０１ａ  マスタラッチ回路
１０２ａ  スレーブラッチ回路
【図１】
2010045610.tif 000003
【図２Ａ】
2010045610.tif 000004
【図２Ｂ】
2010045610.tif 000005
【図３】
2010045610.tif 000006
【図４】
2010045610.tif 000007
【図５】
2010045610.tif 000008
【図６】
2010045610.tif 000009