(57)【要約】【課題】本発明は、フリップフロップのデータの信頼性を向上させた半導体集積回路を提供することを目的とする。【解決手段】半導体集積回路は、複数のフリップフロップ群と、複数のフリップフロップ群の各々から出力されるエラー検出信号を１つに纏める論理回路を含み、複数のフリップフロップ群の各々は、同一のクロック信号に同期して入力データをラッチする１つ又は複数のフリップフロップと、複数のフリップフロップの格納データのエラーを検出して訂正するとともに、エラーの検出に応答してエラー検出を示すエラー検出信号を出力するエラー検出訂正回路を含むことを特徴とする。【選択図】図１
2007248378.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップ群と、
該複数のフリップフロップ群の各々から出力されるエラー検出信号を１つに纏める論理回路
を含み、該複数のフリップフロップ群の各々は、
同一のクロック信号に同期して入力データをラッチする１つ又は複数のフリップフロップと、
該複数のフリップフロップの格納データのエラーを検出して訂正するとともに、該エラーの検出に応答してエラー検出を示す該エラー検出信号を出力するエラー検出訂正回路
を含むことを特徴とする半導体集積回路。
【請求項２】
該複数のフリップフロップ群の各々は、該エラー検出訂正回路によるエラー検出に応答してエラー検出を示す値を格納するエラー検出用フリップフロップを更に含み、該複数のフリップフロップ群の各エラー検出用フリップフロップは直列に結合されてチェインを形成し、該チェインの終端を外部に出すように構成されることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
該複数のフリップフロップ群の複数のフリップフロップは直列に結合されてチェインを形成し、該チェインの終端を該半導体集積回路の外部に出すように構成されることを特徴とする請求項１記載の半導体集積回路。
【請求項４】
該論理回路の出力は該半導体集積回路の外部に送出するように構成されることを特徴とする請求項１記載の半導体集積回路。
【請求項５】
コントローラを更に含み、該論理回路の出力は該コントローラに供給するように構成されることを特徴とする請求項１記載の半導体集積回路。
【請求項６】
該複数のフリップフロップ群の各々は、
該入力データからエラー訂正コードを生成するＥＣＣ生成回路と、
該エラー訂正コードを格納するエラー訂正コード用フリップフロップと、
該１つ又は複数のフリップフロップのデータと該エラー訂正コード用フリップフロップの該エラー訂正コードとに基づいてエラー検出及びエラー訂正を行うＥＣＣチェック訂正回路
を更に含むことを特徴とする請求項１記載の半導体集積回路。
【請求項７】
該複数のフリップフロップ群の該１つ又は複数のフリップフロップの各々は、
該入力データ中の同一の１ビットをそれぞれがラッチする複数のラッチと、
該複数のラッチの出力の多数決論理を算出する多数決論理回路
を更に含むことを特徴とする請求項１記載の半導体集積回路。
【請求項８】
該複数のフリップフロップ群の該１つ又は複数のフリップフロップの各々は、該クロック信号を遅延して異なるタイミングのクロック信号を生成する１つ又は複数の遅延素子を更に含み、該複数のラッチの少なくとも２つは互いに異なるタイミングのクロック信号に同期して該入力データ中の同一の１ビットをラッチすることを特徴とする請求項７記載の半導体集積回路。
【請求項９】
該１つ又は複数のフリップフロップは第１のグループのフリップフロップであり、該複数のフリップフロップ群の各々は、
該入力データからパリティビットを生成するパリティ生成回路と、
該パリティビットを格納するパリティビット用フリップフロップと、
該クロック信号に同期して該入力データをラッチする１つ又は複数の第２のグループのフリップフロップと、
該パリティビット用フリップフロップの該パリティビットに基づいて該第１のグループのフリップフロップをパリティチェックする第１のパリティチェック回路と、
該第１のパリティチェック回路のパリティチェック結果に応じて該第１のグループのフリップフロップのデータ又は該第２のグループのフリップフロップのデータを選択して出力するセレクタ
を含むことを特徴とする請求項１記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に半導体集積回路に関し、詳しくはエラー訂正機能を有した半導体集積回路に関する。
【背景技術】
【０００２】
半導体技術が未熟であった当時、半導体回路中のフリップフロップの信頼性が低く、フリップフロップ中の格納データが破壊されてしまう場合があった。データ破壊が発生するのは、回路の動作自体の信頼性が低いことに起因する場合もあれば、半導体パッケージ中に含まれる金属から放出される放射線に起因する場合もあった。このようなフリップフロップ中のデータ破壊は頻度が小さいものであったので、例えばフリップフロップのデータをパリティ検査して、エラーが発見されたときにはシステムを停止するといった措置がとられていた。
【０００３】
現在では、半導体技術の進歩により、上記のようにフリップフロップ中の格納データが損なわれるという問題はなくなっている。しかし現在の半導体技術で製造された半導体集積回路においても、例えばＤＲＡＭの場合、宇宙線由来の高エネルギー中性子（宇宙線の陽子が大気中の原子核と反応した際に生成される二次粒子としての中性子）に起因するソフトエラーと呼ばれる現象の存在が知られている。これは、ＤＲＡＭのメモリ素子が微少な容量であるために、宇宙線由来の高エネルギー中性子とシリコンの原子核との衝突により発生したイオンに起因する電荷により、メモリセル中のビットが変化してしまう現象である。但しフリップフロップの場合、ＤＲＡＭとは異なり、クロスカップリング回路の端子のＨＩＧＨ／ＬＯＷの論理状態によりデータを格納するので、宇宙線由来の中性子程度のエネルギーによりデータが反転してしまうことはない。
【０００４】
しかし今後、半導体技術が更に進歩して回路素子のサイズ及び配線幅が微細になると、半導体集積回路中のフリップフロップにおいても、宇宙線由来の高エネルギー中性子によるデ―タ破壊が発生することが予想される。この場合、そのようなデータ破壊は比較的に頻度が高いものであると予想され、エラーが発生したときにシステムを停止させるという措置では対応できないと考えられる。
【特許文献１】特開２００２−２５１８９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上を鑑みて、本発明は、フリップフロップのデータの信頼性を向上させた半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
半導体集積回路は、複数のフリップフロップ群と、該複数のフリップフロップ群の各々から出力されるエラー検出信号を１つに纏める論理回路を含み、該複数のフリップフロップ群の各々は、同一のクロック信号に同期して入力データをラッチする１つ又は複数のフリップフロップと、該複数のフリップフロップの格納データのエラーを検出して訂正するとともに、該エラーの検出に応答してエラー検出を示す該エラー検出信号を出力するエラー検出訂正回路を含むことを特徴とする。
【発明の効果】
【０００７】
本発明の少なくとも１つの実施例によれば、半導体集積回路内の各フリップフロップ群について、格納データのエラーを検出して訂正するエラー検出訂正回路を設けることにより、フリップフロップのデータの信頼性を向上させることができる。またフリップフロップ群の各々から出力されるエラー検出信号を１つに纏めることにより、例えば半導体集積回路外部の装置や内部コントローラを用いてこのエラー検出信号を判定し、エラーが発生したことを検知することができる。
【発明を実施するための最良の形態】
【０００８】
図１は、本発明による半導体集積回路の構成の一例を示す図である。図１に示す半導体集積回路１０は、フリップフロップ群１１−１乃至１１−３及び複数のＯＲ回路１３を含む。
【０００９】
フリップフロップ群１１−１乃至１１−３のフリップフロップは、当該半導体集積回路１０の動作に使用されるデータ信号、制御信号、クロック信号等の種々の信号を入力し、ラッチし、出力する全てのフリップフロップである。図示を省くが、半導体集積回路１０内には、これらフリップフロップ群１１−１乃至１１−３に接続される種々の回路が存在する。半導体集積回路１０内部で使用されるフリップフロップの全てが、フリップフロップ群１１−１乃至１１−３として示されていると考えてよい。これらのフリップフロップのうち、同一のクロック信号により同一のタイミングでデータを格納する互いに隣接するフリップフロップ同士を纏めることにより、各フリップフロップ群を形成している。１つのフリップフロップ群に含まれるフリップフロップの数は１つでも複数でもよい。なお図示の都合上、３つのフリップフロップ群のみを示すが、実際には、半導体集積回路の回路規模に応じて回路内部に何万、何十万という単位で存在するものである。
【００１０】
フリップフロップ群１１−１乃至１１−３の各々は、データ用フリップフロップＦ、エラー検出用フリップフロップＥ、及びエラー検出訂正回路１２を含む。データ用フリップフロップＦは、入力データをラッチし、ラッチしたデータを出力する。エラー検出訂正回路１２は、後述するようにＥＣＣ（エラー訂正符号）、パリティ、多数決論理等を用いて、フリップフロップＦ中の格納データのエラーを検出・訂正する。エラー検出訂正回路１２は、フリップフロップＦ中の格納データのエラーが検出された場合、その出力であるエラー検出信号をアサートする（この例ではＨＩＧＨレベル出力状態にする）。フリップフロップ群１１−１乃至１１−３の各エラー検出訂正回路１２が出力するエラー検出信号は、複数のＯＲ回路１３により論理和がとられ、最終的に纏められたエラー検出信号Ｅａｌｌとして半導体集積回路１０外部に出力される。
【００１１】
この最終的に纏められたエラー検出信号Ｅａｌｌは、半導体集積回路１０内部のＣＰＵ等のコントローラに供給されてもよい。なおこのエラー検出信号Ｅａｌｌは、例えば、訂正可能エラーの存在を示す第１のエラー検出信号と訂正不可能なエラーの存在を示す第２のエラー検出信号との２ビットからなり、それぞれのビットについて論理和がとられる構成であってよい。またエラー検出信号Ｅａｌｌは、必ずしも全てのフリップフロップ群１１−１乃至１１−３のエラー検出信号を纏めたものである必要はなく、全てのフリップフロップ群を例えば第１グループと第２グループとに分け、それぞれのグループについて別個に最終的に纏められたエラー検出信号を出力するように構成してもよい。
【００１２】
最終的に纏められたエラー検出信号Ｅａｌｌがアサートされると、半導体集積回路１０内部の何れかのフリップフロップでエラーが発生したことが分かる。この時、何れのフリップフロップ群１１−１乃至１１−３でエラーが発生したかを調べるために、エラー検出用フリップフロップＥが使用される。
【００１３】
エラー検出用フリップフロップＥには、エラー検出訂正回路１２がエラーを検出した時にエラー検出訂正回路１２により１が格納される。フリップフロップ群１１−１乃至１１−３の各エラー検出用フリップフロップＥは、その出力が次段のフリップフロップの入力になるように直列に接続され、フリップフロップのチェイン１５を構成している。最終的に纏められたエラー検出信号Ｅａｌｌがアサートされた場合、このチェイン１５内でフリップフロップのデータを次段に順次伝搬させていけば、各エラー検出用フリップフロップＥの内容を半導体集積回路１０の外部にエラースキャン信号Ｅｓｃａｎとして読み出すことができる。外部では、読み出されたエラースキャン信号Ｅｓｃａｎの内容に基づいて、エラー位置を特定することができる。
【００１４】
また同様に、フリップフロップ群１１−１乃至１１−３の各データ用フリップフロップＦもチェインを構成するようにしてよい。即ち、各データ用フリップフロップＦは、その出力が次段のフリップフロップの入力になるように直列に接続され、フリップフロップのチェイン１６を構成している。最終的に纏められたエラー検出信号Ｅａｌｌがアサートされた場合、このチェイン１６内でフリップフロップのデータを次段に順次伝搬させていけば、各データ用フリップフロップＦの内容を半導体集積回路１０の外部にデータスキャン信号Ｄｓｃａｎとして読み出すことができる。外部では、読み出されたデータスキャン信号Ｄｓｃａｎの内容に基づいて、エラービットの位置を特定する等の詳細な解析が可能となる。
【００１５】
データ用フリップフロップＦには、半導体集積回路１０内でデータ用フリップフロップＦが果たすその本来の目的のためのデータ入出力経路があるので、チェイン１６はそれとは別の経路として設ける必要がある。スキャンチェインを構成する際の技術として知られているように、例えば、各フリップフロップの入力に、当該フリップフロップの本来の入力と前段のフリップフロップの出力との何れかを選択するセレクタを設け、通常は当該フリップフロップの本来の入力を選択して、スキャン時には前段のフリップフロップの出力を選択するように構成してよい。或いは、通常データ用入力とスキャン用入力との２つの入力端を有するフリップフロップを使用してもよい。或いは、シャドーレジスタとして、本来のフリップフロップとは別個のフリップフロップを重複するように設け、本来のフリップフロップは半導体集積回路の本来の動作用に用いるとともに、重複して設けたフリップフロップをスキャン用に用いてもよい。この構成の場合、半導体集積回路１０の通常の動作を実行しながらスキャン動作をすることが可能となる。
【００１６】
図２は、本発明の第１の実施例によるフリップフロップ群の構成の一例を示す図である。図２のフリップフロップ群は、フリップフロップ群１１−１乃至１１−３の１つに対応し、ＥＣＣをエラー訂正・検出に用いた場合の例である。
【００１７】
図２のフリップフロップ群は、複数のデータ用フリップフロップ２１、複数のエラー訂正コード用フリップフロップ２２、ＥＣＣ生成回路２３、ＥＣＣチェック訂正回路２４、及びエラー記憶回路２５を含む。データ用フリップフロップ２１が図１のデータ用フリップフロップＦに相当し、エラー記憶回路２５が図１のエラー検出用フリップフロップＥに相当する。またエラー訂正コード用フリップフロップ２２、ＥＣＣ生成回路２３、及びＥＣＣチェック訂正回路２４が、図１のエラー検出訂正回路１２に相当する。なお図示の都合上、図１のチェイン１６に相当するチェインは省略してある。
【００１８】
データ用フリップフロップ２１は、入力データＤ０乃至Ｄ３を受け取り、クロック信号ＣＬＫに同期して入力データＤ０乃至Ｄ３を内部に取り込む（ラッチする）。データ用フリップフロップ２１中の格納データ（ラッチしたデータ）は、ＥＣＣチェック訂正回路２４に供給される。エラーが存在しない場合には、データ用フリップフロップ２１中の格納データは、そのまま出力データＱ０乃至Ｑ３として送出される。
【００１９】
入力データＤ０乃至Ｄ３がデータ用フリップフロップ２１に供給されると、ＥＣＣ生成回路２３は、入力データＤ０乃至Ｄ３に所定の計算を施すことにより、エラー訂正コードを算出する。算出されたエラー訂正コードは、クロック信号ＣＬＫに同期して、エラー訂正コード用フリップフロップ２２に格納される。
【００２０】
ＥＣＣチェック訂正回路２４は、データ用フリップフロップ２１から供給されるデータとエラー訂正コード用フリップフロップ２２から供給されるエラー訂正コードとに基づいて、エラーがあるか否かを検出し、エラーがある場合にはエラー訂正を行う。エラー訂正されたデータは、出力データＱ０乃至Ｑ３として送出される。例えばハミング符号を用いてエラー訂正を実現する場合には、１ビットの誤りが発生した場合にエラー訂正が可能であり、２ビットの誤りが発生した場合にエラー検出が可能である。
【００２１】
例えば、データ用フリップフロップ２１の４ビットとエラー訂正コード用フリップフロップ２２の３ビットからなる７ビットのコードが、符号間距離が３以上であるハミング符号となるように、エラー訂正コードを生成する場合を考える。この場合、フリップフロップ出力の７ビットのデータがハミング符号として存在し得るビットパターンか否かを判定することで、エラーの有無を検出できる。エラーが１ビットの場合には、この７ビットのデータに最もハミング距離が近いハミング符号とこの７ビットのデータとの差分を検出すれば、何れの１ビットが誤っているかが分かるとともにエラー訂正することができる。ハミング符号の符号間距離が３であるので、エラーが２ビットの場合には、エラーの存在は分かるが何れのハミング符号が正しいコードであるかまでは判別できない。なお実際には、ハミング符号のシンドローム情報を計算すれば、シンドローム情報がエラーの有無及びエラー位置を一意に示すことになる。
【００２２】
ＥＣＣチェック訂正回路２４は、上記のようにしてエラーの有無を判定した際のエラーの有無を示すエラー検出信号を外部に出力する。このエラー検出信号は、図１のエラー検出信号に相当し、訂正可能エラーの存在を示す訂正可能エラー検出信号と訂正不可能なエラーの存在を示す訂正不可エラー検出信号とを含んでよい。またＥＣＣチェック訂正回路２４は、エラーを検出した場合に、エラー記憶回路２５に"１"を格納する。
【００２３】
このように第１の実施例では、半導体集積回路１０内のフリップフロップ群にＥＣＣを適用することで、ビット誤りが発生した場合には、エラーを検出するとともにエラー訂正することができる。なお拡張ハミング符号を用いれば、複数の不良ビットの訂正も可能になる。これにより半導体集積回路１０内のフリップフロップのデータの信頼性を向上させることができる。
【００２４】
図３は、本発明の第２の実施例によるデータ用フリップフロップＦの構成の一例を示す図である。図２に示す第１の実施例では、複数のデータ用フリップフロップＦの入力データからエラー訂正コードを生成することより、フリップフロップのデータの信頼性を向上させるように構成した。図３に示す第２の実施例では、データ用フリップフロップＦの各々に多数決論理を採用することで、各フリップフロップのデータの信頼性を向上させる。
【００２５】
図３に示すデータ用フリップフロップ３０は、複数のラッチ３１及び多数決論理回路３２を含む。図には３つのラッチ３１が示されるが、その数は３に限定されるものではなく、２以上の任意の複数であってよい（多数決で論理を決定する都合上奇数が好ましい）。
【００２６】
データ用フリップフロップ３０に入力データＤが供給されると、入力データＤは、全てのラッチ３１に共通に供給される。クロック信号ＣＬＫに同期して、全てのラッチ３１が同一の入力データを取り込む（ラッチする）。
【００２７】
多数決論理回路３２は、複数のラッチ３１の出力Ａ、Ｂ、Ｃを受け取り、多数決論理を算出する。即ち、出力Ａ、Ｂ、Ｃの内で、論理値"０"の数と論理値"１"の数のうち数が多い方の論理値を算出し、多数決論理回路３２は、この算出された論理値を出力Ｑとして送出する。例えば入力データＤが"１"であるが、３つのラッチ３１のうちの１つにおいて、例えば二次宇宙線中性子の影響でデータが反転し、出力Ｂが"０"になったとする。このような場合でも、出力Ａ、Ｂ、Ｃのうちで論理値"１"の数が過半数を占めるので、多数決論理回路３２は正しいデータ値"１"を出力することができる。
【００２８】
なおデータ用フリップフロップ３０は、設計時に用いるセルとしてライブラリ化しておけばよい。このようにセル化しておくことで、フリップフロップを配置するのと同様にしてこのセルを配置すればよく、設計時の手間を省くことができる。
【００２９】
図４は、多数決論理回路３２の構成の一例を示す図である。図４に示す多数決論理回路３２は、ＡＮＤ回路４１乃至４３及びＯＲ回路４４を含む。ラッチの出力Ａ、Ｂ、Ｃが全て"１"のとき、ＡＮＤ回路４１乃至４３の出力は全て"１"となり、ＯＲ回路４４の出力Ｑは"１"となる。ラッチの出力Ａ、Ｂ、Ｃが全て"０"のとき、ＡＮＤ回路４１乃至４３の出力は全て"０"となり、ＯＲ回路４４の出力Ｑは"０"となる。ラッチの出力Ａ、Ｂ、Ｃ中で２つが"１"のとき、ＡＮＤ回路４１乃至４３の出力のうちの１つが"１"となり、ＯＲ回路４４の出力Ｑは"１"となる。ラッチの出力Ａ、Ｂ、Ｃ中で２つが"０"のとき、ＡＮＤ回路４１乃至４３の出力は全て"０"となり、ＯＲ回路４４の出力Ｑは"０"となる。このようにして多数決論理が実現される。
【００３０】
なおデータ用フリップフロップ３０を図１のフリップフロップ群１１−１乃至１１−３に適用した場合、エラー検出訂正回路１２としては、例えば図３の各データ用フリップフロップ３０においてラッチ３１の出力が全て同一でない場合に、出力であるエラー検出信号をアサートするような論理回路を構成すればよい。このような論理回路は例えばＸＯＲ（排他的論理和）ゲートとＯＲゲートとを組み合わせて容易に構成することができる。この場合のエラー検出信号としては、一種類のエラー検出信号となる。
【００３１】
このように第２の実施例では、半導体集積回路１０内の各フリップフロップに多数決論理を適用することで、誤りが発生した場合には、エラーを検出するとともにエラー訂正することができる。これにより半導体集積回路１０内のフリップフロップのデータの信頼性を向上させることができる。なお単純な多数決論理を用いるので、ＥＣＣを用いる場合等と比較して、高速に誤り訂正を行うことが可能であるとともに、各ビット毎にエラー訂正をするので信頼性が高い。
【００３２】
図５は、図３のデータ用フリップフロップ３０の変形例を示す図である。図５において、図３と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００３３】
図５のデータ用フリップフロップ３０Ａは、複数のラッチ３１、複数の遅延素子３３、及び多数決論理回路３２を含む。遅延素子３３はクロック信号ＣＬＫを遅延させるためのものである。各ラッチ３１に入力されるクロック信号ＣＬＫは、遅延素子３３による遅延によりそれぞれ異なるタイミングを有する。
【００３４】
データ用フリップフロップ３０に入力データＤが供給されると、入力データＤは、全てのラッチ３１に共通に供給される。それぞれ異なるタイミングを有するクロック信号に同期して、全てのラッチ３１が入力データを取り込む（ラッチする）。この際、取り込みタイミング（ラッチタイミング）が異なるので、例えば入力データＤの立ち上がりにおいて波形に乱れがある等のグリッチが存在しても、全てのデータがグリッチの影響で誤ってラッチされるのを避けることができる。従って、ソフトエラーに対処可能な信頼性のある回路として機能するだけでなく、多数決論理回路３２を利用することで、グリッチに起因する誤りにも対処することが可能となる。
【００３５】
図６は、本発明の第３の実施例によるフリップフロップ群の構成の一例を示す図である。図６のフリップフロップ群は、フリップフロップ群１１−１乃至１１−３の１つに対応し、パリティチェックをエラー訂正・検出に用いた場合の例である。
【００３６】
図６のフリップフロップ群は、パリティ生成回路５０、複数のデータ用フリップフロップ５１、パリティビット用フリップフロップ５２、パリティチェック回路５３、複数のデータ用フリップフロップ６１、パリティビット用フリップフロップ６２、パリティチェック回路６３、複数のセレクタ７１、ＡＮＤ回路７２、エラー記憶回路７３、及びエラー記憶回路７４を含む。データ用フリップフロップ５１及び６１が図１のデータ用フリップフロップＦに相当し、エラー記憶回路７３及び７４が図１のエラー検出用フリップフロップＥに相当する。またパリティ生成回路５０、パリティビット用フリップフロップ５２、パリティチェック回路５３、パリティビット用フリップフロップ６２、パリティチェック回路６３、セレクタ７１、及びＡＮＤ回路７２が、図１のエラー検出訂正回路１２に相当する。なお図示の都合上、図１のチェイン１６に相当するチェインは省略してある。
【００３７】
データ用フリップフロップ５１及び６１は、入力データＤ０乃至Ｄ３を受け取り、クロック信号ＣＬＫに同期して入力データＤ０乃至Ｄ３を内部に取り込む（ラッチする）。データ用フリップフロップ５１中の格納データ（ラッチしたデータ）は、セレクタ７１に供給されるとともに、パリティチェック回路５３に供給される。またデータ用フリップフロップ６１中の格納データ（ラッチしたデータ）は、セレクタ７１に供給されるとともに、パリティチェック回路６３に供給される。
【００３８】
入力データＤ０乃至Ｄ３がデータ用フリップフロップ５１及び６１に供給されると、パリティ生成回路５０は、入力データＤ０乃至Ｄ３に所定の計算を施すことにより、パリティビットを算出する。算出されたパリティビットは、クロック信号ＣＬＫに同期して、パリティビット用フリップフロップ５２及び６２に格納される。
【００３９】
パリティチェック回路５３は、データ用フリップフロップ５１から供給されるデータとパリティビット用フリップフロップ５２から供給されるパリティビットとに基づいて、パリティチェックを行い、エラーがあるか否かを検出する。エラーがある場合にはパリティチェック信号Ｐ１をアサートする（この例では"１"にする）。パリティチェック信号Ｐ１は、訂正可能エラー検出信号として送出されるとともに、セレクタ７１、ＡＮＤ回路７２、及びエラー記憶回路７３に供給される。
【００４０】
パリティチェック回路６３は、データ用フリップフロップ６１から供給されるデータとパリティビット用フリップフロップ６２から供給されるパリティビットとに基づいて、パリティチェックを行い、エラーがあるか否かを検出する。エラーがある場合にはパリティチェック信号Ｐ２をアサートする（この例では"１"にする）。パリティチェック信号Ｐ２は、ＡＮＤ回路７２及びエラー記憶回路７４に供給される。
【００４１】
データ用フリップフロップ５１の格納データにエラーが存在しない場合、パリティチェック回路５３の出力するパリティチェック信号Ｐ１は"０"である。この場合、複数のセレクタ７１は、データ用フリップフロップ５１のデータを選択して出力Ｑ０乃至Ｑ３として送出する。
【００４２】
データ用フリップフロップ５１のうちの１つの格納データが例えばソフトエラーにより変化してしまった場合、パリティチェック回路５３はパリティエラーを検出し、その出力であるパリティチェック信号Ｐ１を"１"とする。この場合、複数のセレクタ７１は、データ用フリップフロップ６１のデータを選択して出力Ｑ０乃至Ｑ３として送出する。データ用フリップフロップ６１においてはエラーが起こっていないと考えれば、このようなセレクタ７１による選択動作により、エラーを訂正することが可能となる。また"１"であるパリティチェック信号Ｐ１を訂正可能エラー検出信号として送出することで、訂正可能エラー検出信号がアサートされる。
【００４３】
データ用フリップフロップ６１の格納データにエラーが存在しない場合、パリティチェック回路６３の出力するパリティチェック信号Ｐ２は"０"である。この場合、パリティチェック信号Ｐ１の値に関わらず、ＡＮＤ回路７２の出力は"０"である。またデータ用フリップフロップ５１の格納データにエラーが存在しない場合、パリティチェック回路５３の出力するパリティチェック信号Ｐ１は"０"である。この場合、パリティチェック信号Ｐ２の値に関わらず、ＡＮＤ回路７２の出力は"０"である。データ用フリップフロップ５１の格納データ及びデータ用フリップフロップ６１の格納データの双方にエラーが存在する場合、パリティチェック信号Ｐ１及びＰ２は双方ともに"１"である。この場合、ＡＮＤ回路７２の出力は"１"となり、訂正不可エラー検出信号がアサートされる。
【００４４】
図６のフリップフロップ群は、上記のようにしてパリティエラーの有無を判定した際のパリティエラーの有無を示すエラー検出信号を外部に出力する。このエラー検出信号は、図１のエラー検出信号に相当し、訂正可能エラーの存在を示す訂正可能エラー検出信号と訂正不可能なエラーの存在を示す訂正不可エラー検出信号とを含む。また本実施例では、エラー検出用フリップフロップＥとして２ビット用意されており、エラー記憶回路７３はデータ用フリップフロップ５１側のエラー、エラー記憶回路７４はデータ用フリップフロップ６１側のエラーに対応する。
【００４５】
このように第３の実施例では、半導体集積回路１０内のフリップフロップ群を第１のフリップフロップ群と第２のフリップフロップ群との２重に設け、それぞれにパリティチェック機能を設ける。パリティエラーを検出した場合には、パリティエラーが発生した方のフリップフロップ群ではない方のフリップフロップ群のデータを出力することで、バリティエラーが発生した場合には、エラー訂正することができる。これにより半導体集積回路１０内のフリップフロップのデータの信頼性を向上させることができる。
【００４６】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明による半導体集積回路の構成の一例を示す図である。
【図２】本発明の第１の実施例によるフリップフロップ群の構成の一例を示す図である。
【図３】本発明の第２の実施例によるデータ用フリップフロップの構成の一例を示す図である。
【図４】多数決論理回路の構成の一例を示す図である。
【図５】図３のデータ用フリップフロップの変形例を示す図である。
【図６】本発明の第３の実施例によるフリップフロップ群の構成の一例を示す図である。
【符号の説明】
【００４８】
１０  半導体集積回路
１１−１乃至１１−３  フリップフロップ群
１２  エラー検出訂正回路
１３  ＯＲ回路
１５  チェイン
１６  チェイン
２１  データ用フリップフロップ
２２  エラー訂正コード用フリップフロップ
２３  ＥＣＣ生成回路
２４  ＥＣＣチェック訂正回路
２５  エラー記憶回路
３１  ラッチ
３２  多数決論理回路
４１乃至４３  ＡＮＤ回路
４４  ＯＲ回路
５０  パリティ生成回路
５１  データ用フリップフロップ
５２  パリティビット用フリップフロップ
５３  パリティチェック回路
６１  データ用フリップフロップ
６２  パリティビット用フリップフロップ
６３  パリティチェック回路
７１  セレクタ
７２  ＡＮＤ回路
７３  エラー記憶回路
７４  エラー記憶回路
【図１】
2007248378.tif 000003
【図２】
2007248378.tif 000004
【図３】
2007248378.tif 000005
【図４】
2007248378.tif 000006
【図５】
2007248378.tif 000007
【図６】
2007248378.tif 000008