(57)【要約】本発明は、ソフトエラーが発生しても、正しい記憶内容を出力することができ且つソフトエラーを回復して正しい記憶内容を保持し、回路規模が小さく、且つ回路の試験の容易な、多数決論理回路を有するフリップフロップ回路を提供することを目的とする。この目的を達成するために、本発明のフリップフロップ回路は、入力信号を書き込む複数のマスタラッチと、前記複数のマスタラッチの出力に接続された入力を有する多数決論理回路と、前記多数決論理回路の出力に接続された入力を有し且つ前記多数決論理回路の入力に接続された出力を有する１つのスレーブラッチとを有し、前記複数のマスタラッチが入力信号を書き込まない期間中に、前記多数決論理回路の出力が前記複数のマスタラッチの入力に供給される。
2004105241.tif 000002
【特許請求の範囲】
【請求項１】
入力信号を書き込む複数のマスタラッチと、前記複数のマスタラッチの出力に接続された入力を有する多数決論理回路と、前記多数決論理回路の出力に接続された入力を有し且つ前記多数決論理回路の入力に接続された出力を有する１つのスレーブラッチとを有し、前記複数のマスタラッチが入力信号を書き込まない期間中に、前記多数決論理回路の出力が前記複数のマスタラッチの入力に供給される、フリップフロップ回路。
【請求項２】
複数のマスタラッチと、前記複数のマスタラッチの各々のマスタラッチの入力切り換え回路と、１つのスレーブラッチと、多数決論理回路を有し、
前記入力切り換え回路の一方の入力には入力信号が接続されそして、前記入力切り換え回路の他方の入力には前記多数決論理回路の出力が接続され、
前記マスタラッチの入力には、前記入力切り換え回路の出力が接続され、
前記多数決論理回路の入力には、前記複数のマスタラッチの出力と前記１つのスレーブラッチの出力が接続され、
前記１つのスレーブラッチの入力には、前記多数決論理回路の出力が接続され、
前記入力切り換え回路は、前記入力信号を前記複数のマスタラッチの各々のマスタラッチに書き込む場合には、前記入力信号を出力し、前記マスタラッチが記憶している値を保持する場合には、前記多数決論理回路の出力を出力し、
前記スレーブラッチは、前記マスタラッチがその記憶している値を保持する場合には、前記多数決論理回路の出力を書き込む、多数決論理回路を有するフリップフロップ回路。
【請求項３】
複数の入力切り換え回路と、１つのスレーブラッチと、多数決論理回路を有し、
前記入力切り換え回路の一方の入力には入力信号が接続されそして、前記入力切り換え回路の他方の入力には前記多数決論理回路の出力が接続され、
前記多数決論理回路の入力には、前記複数の入力切り換え回路の出力と前記１つのスレーブラッチの出力が接続され、
前記１つのスレーブラッチの入力には、前記多数決論理回路の出力が接続され、
前記入力切り換え回路は、前記入力信号を前記多数決論理回路の入力に供給する場合には、前記入力信号を出力し、前記多数決論理回路の出力を前記多数決論理回路の入力に供給する場合には、前記多数決論理回路の出力を出力し、
前記スレーブラッチは、前記入力切り換え回路が、前記多数決論理回路の出力を前記多数決論理回路の入力に供給する場合には、前記多数決論理回路の出力を書き込む、多数決論理回路を有するフリップフロップ回路。
【請求項４】
メモリセルと、前記メモリセルに接続されたセンスアンプと、前記センスアンプに接続されたセンスアンプの開始信号の遅延調整部と、前記センスアンプの開始信号の遅延調整部に接続され、前記センスアンプの開始信号の遅延調整部の遅延設定値を記憶する請求項１に記載の多数決論理回路を有するフリップフロップ回路を有するランダムアクセスメモリ。
【請求項５】
メモリセルと、前記メモリセルに接続されたセンスアンプと、前記センスアンプに接続されたセンスアンプの開始信号の遅延調整部と、前記センスアンプの開始信号の遅延調整部に接続され、前記センスアンプの開始信号の遅延調整部の遅延設定値を記憶する請求項２に記載の多数決論理回路を有するフリップフロップ回路を有するランダムアクセスメモリ。
【請求項６】
メモリセルと、前記メモリセルに接続されたセンスアンプと、前記センスアンプに接続されたセンスアンプの開始信号の遅延調整部と、前記センスアンプの開始信号の遅延調整部に接続され、前記センスアンプの開始信号の遅延調整部の遅延設定値を記憶する請求項３に記載の多数決論理回路を有するフリップフロップ回路を有するランダムアクセスメモリ。
【発明の詳細な説明】
【技術分野】  本発明は、一般的には、フリップフロップ回路に関連し、特に、ソフトエラーが発生しても、正しい記憶内容を出力することができ且つソフトエラーを回復して正しい記憶内容を保持することができる多数決論理回路を有するフリップフロップ回路に関連する。
【背景技術】  メモリ回路などにおいて、保持されているデータが破壊される現象があり、これは、ソフトエラーとして知られている。ソフトエラーは、ＬＳＩチップ素材より発生するα線や、二次宇宙線中性子により、電子回路内部に電荷が発生し、そして、この発生した電荷の影響により、メモリ回路や、論理回路部内のフリップフロップ回路に保持している１ビットのデータを、反転させて、破壊してしまう現象である。このソフトエラーが発生した場合には、メモリ回路や論理回路部内のフリップフロップ回路は、誤動作するが、しかし、その誤動作したメモリ回路や論理回路部内のフリップフロップ回路は、ハードウェア的には故障は発生してはいない。従って、その誤動作したメモリ回路や論理回路部内のフリップフロップ回路へ、新たなデータが書き込まれた場合には、設計通りの動作をする。
ソフトエラーは、通常は、低確率で単発的に発生するが、しかし、ソフトエラーが発生しても、それが障害として顕在化する場合は更に低確率である。
例えば、メモリ回路においては、エラー訂正回路を搭載することが一般的である。そして、１ビットの誤りは、このエラー訂正回路により訂正されるので、メモリ回路の出力では、この１ビットの誤りの影響はない。
また論理回路部内に配置されたフリップフロップ回路においては、次のクロックサイクルで書き込みが行われるために、破壊されたデータを保持している期間が短く、そして、破壊されたデータが、他の論理回路の状態によりマスクされることにより、この破壊されたデータの影響が、他の回路部の動作に影響しない確率も高い。
しかし、他方では、タイミング調整回路の設定値などのような一部のデータについては、ソフトエラーが発生すると、チップ全体の誤動作を引き起こす可能性が高い。特に、システム等の初期化動作の期間中に設定されるデータは、初期化が終了して実際の動作が開始されると、その後に書き換えられることがないために、破壊されたデータを保持し続け、この結果、誤動作を引き起こすことが多い。
現在では、ソフトエラーが発生すると、システム全体に大きな影響を及ぼす信号を記憶するフリップフロップ回路については、例えば、フリップフロップ回路を３重化し、３入力多数決論理を実行することにより、ソフトエラーが発生した場合でも、システムに障害を与える確率を低く抑えるようにしている。
図１は、従来のフリップフロップ回路を示す。図１に示されたフリップフロップ回路で、フリップフロップ回路を３重化し、３入力多数決論理を実行する。図１のフリップフロップ回路は、主に、フリップフロップ１１０、フリップフロップ１２０、フリップフロップ１３０及び、多数決論理回路１４０より構成される。フリップフロップ１１０は、イネーブル端子付きのインバータ１１１、１１４、インバータ１１２、１１３，１１５及び１１６より構成される。イネーブル端子付きインバータ１１１の入力には、入力データ１０１が供給され、インバータ１１１のイネーブル端子には、クロック信号（ＣＫ）１０２が供給される。インバータ１１１の出力は、インバータ１１２の入力に接続されている。インバータ１１２の出力は、インバータ１１３の入力とインバータ１１４の入力に接続されている。インバータ１１３の出力は、インバータ１１２の入力に接続されている。インバータ１１４のイネーブル端子には、クロック信号（ＣＫＢ）１０３が供給される。インバータ１１４の出力は、インバータ１１５の入力に接続されている。インバータ１１５の出力は、インバータ１１６の入力と多数決論理回路１４０内の２入力ＮＡＮＤ回路１４１の１つの入力と２入力ＮＡＮＤ回路１４２の１つの入力に接続されている。インバータ１１６の出力は、インバータ１１５の入力に接続されている。
多数決論理回路１４０は、２入力ＮＡＮＤ回路１４１、１４２及び１４３と３入力ＮＡＮＤ回路１４４より構成される。２入力ＮＡＮＤ回路１４１、１４２及び１４３の出力は、３入力ＮＡＮＤ回路１４４の入力に接続されている。
図１のフリップフロップ１２０はインバータ１２１からインバータ１２６より構成されそして、フリップフロップ１３０はインバータ１３１からインバータ１３６より構成される。フリップフロップ１２０と１３０は、フリップフロップ１１０と同一の構成を有する。フリップフロップ１２０の出力は、多数決論理回路１４０内の２入力ＮＡＮＤ回路１４１と１４３の入力に接続され、そして、フリップフロップ１３０の出力は、多数決論理回路１４０内の２入力ＮＡＮＤ回路１４２と１４３の入力に接続されている。
フリップフロップ１１０には、入力データ１０１が供給され、クロック信号（ＣＫ）１０２が、ローレベルの時に、帰還インバータ１１２と１１３より構成されるマスタラッチに書きこまれ、クロック信号（ＣＫＢ）１０３がローレベルのときに、帰還インバータ１１５と１１６により構成されるスレーブラッチへ転送される。クロック信号（ＣＫ）１０２とクロック信号（ＣＫＢ）１０３は、例えば、互いに逆相のクロック信号でもよい。
フリップフロップ１２０と１３０も、フリップフロップと同一の入力データ１０１が供給され、そして、同一の動作を実行する。
多数決論理回路１４０は、フリップフロップ１１０、１２０、及び１３０の出力のうち少なくとも２つの論理レベルが”１”である場合には、論理レベル”１”を出力データ１０４として出力する。一方、多数決論理回路１４０は、フリップフロップ１１０、１２０、及び１３０の出力のうち少なくとも２つの論理レベルが”０”である場合には、論理レベル”０”を出力データ１０４として出力する。
しかし、図１に示した従来のフリップフロップ回路を使用する場合には、フリップフロップ回路１００の規模が大きいという問題がある。さらに、フリップフロップ回路１００を構成するフリップフロップの数が多いので、フリップフロップ回路１００をＬＳＩ回路上で作成したときに、フリップフロップ回路１００の試験時間が長いという問題がある。更に、図１に示された従来技術のフリップフロップ回路１００は、発生したソフトエラーの回復機能を持たないことにより、ソフトエラーが複数回発生した場合には、フリップフロップ回路１００の出力が、誤りとなるので、そのフリップフロップ回路１００が使用されているシステムに障害を発生するという問題がある。
また、本発明に関連する技術は、特許文献１、特許文献２及び、特許文献３にも記載されている。
【特許文献１】  （特許文献１）特開平４−１７０７９２号公報
【特許文献２】  （特許文献２）特開平２００２−１８５３０９号公報
【特許文献３】  （特許文献３）特開昭６１−２５６８２２号公報
【発明の開示】
本発明は上記の点に鑑みてなされたもので、ソフトエラーが発生しても、正しい記憶内容を出力することができ且つソフトエラーを回復して正しい記憶内容を保持し、回路規模が小さく、且つ回路の試験の容易な、多数決論理回路を有するフリップフロップ回路を提供することを目的とする。
この目的を達成するために、本発明のフリップフロップ回路は、入力信号を書き込む複数のマスタラッチと、前記複数のマスタラッチの出力に接続された入力を有する多数決論理回路と、前記多数決論理回路の出力に接続された入力を有し且つ前記多数決論理回路の入力に接続された出力を有する１つのスレーブラッチとを有し、前記複数のマスタラッチが入力信号を書き込まない期間中に、前記多数決論理回路の出力が前記複数のマスタラッチの入力に供給される。
本発明により、ソフトエラーが発生しても、正しい記憶内容を出力することができ且つソフトエラーを回復して正しい記憶内容を保持することができる。さらに、フリップフロップ回路内のフリップフロップ数を、従来の構成よりも減少することができるので、回路規模が小さく、且つ回路の試験の容易な、多数決論理回路を有するフリップフロップ回路を提供することができる。
【図面の簡単な説明】  本発明の他の目的、特徴及び利点は、添付の図面を参照しながら以下の詳細な説明を読むことにより一層明瞭となるであろう。
図１は、従来のフリップフロップ回路を示す図である。
図２は、本発明の第１実施例のフリップフロップ回路を示す図である。
図３は、本発明の第２実施例のフリップフロップ回路を示す図である。
図４は、本発明の第２実施例のフリップフロップ回路のクロック信号ＣＫがローレベルであり、クロック信号ＣＫＢがハイレベルの場合の状態を示す図である。
図５は、本発明の第２実施例のフリップフロップ回路のクロック信号ＣＫＢがローレベルであり、クロック信号ＣＫがハイレベルの場合の状態をを示す図である。
図６は、ソフトエラーが発生しない場合の、本発明の実施例のフリップフロップ回路と従来の１つのフリップフロップの動作の比較を示す図である。
図７は、マスタラッチでソフトエラーが発生した場合の、本発明の実施例のフリップフロップ回路と従来の１つのフリップフロップの動作の比較を示す図である。
図８は、スレーブラッチでソフトエラーが発生した場合の、本発明の実施例のフリップフロップ回路と従来の１つのフリップフロップの動作の比較を示す図である。
図９は、本発明の実施例のフリップフロップ回路と従来の多数決論理を有するフリップフロップ回路の動作の比較を示す図である。
図１０は、本発明をメモリの制御信号の設定回路に使用する本発明の第３の実施例を示す図である。
図１１は、図１０に記載のＲＡＭマクロの内部のセンスアンプ部と遅延調整回路を示す図である。
図１２は、遅延調整回路の実施例を示す図である。
図１３は、センスアンプの開始信号のタイミング調整の例を示す図である。
【発明を実施するための最良の形態】  以下に、本発明を実施するための実施の形態について、図面を用いて説明する。
先ず最初に、本発明の第１実施例のフリップフロップ回路について説明する。図２は、本発明の第１実施例のフリップフロップ回路２００を示す。
図２のフリップフロップ回路２００は、主に、第１のマスタラッチ２１０、第２のマスタラッチ２２０、スレーブラッチ２３０、多数決論理回路２４０、イネーブル端子付きのインバータ２５１、２５２、２５３、２５４、２５５より構成される。インバータ２５１と２５２は、第１のマスタラッチ２１０の入力切り換え回路として動作し、そして、インバータ２５３と２５４は、第２のマスタラッチ２２０の入力切り換え回路として動作する。
第１のマスタラッチ２１０は、インバータ２１１と２１２より構成される。インバータ２１１の出力はインバータ２１２の入力に接続され、そして、インバータ２１２の出力はインバータ２１１の入力に接続され、帰還回路を構成する。インバータ２１１の出力をノード１とする。第２のマスタラッチ２２０は、インバータ２２１と２２２より構成される。インバータ２２１の出力はインバータ２２２の入力に接続され、そして、インバータ２２２の出力はインバータ２２１の入力に接続され、帰還回路を構成する。インバータ２２１の出力をノード２とする。スレーブラッチ２３０は、インバータ２３１と２３２より構成される。インバータ２３１の出力はインバータ２３２の入力に接続され、そして、インバータ２３２の出力はインバータ２３１の入力に接続され、帰還回路を構成する。多数決論理回路２４０は、２入力ＮＡＮＤ回路２４１、２４２及び、２４３と、３入力ＮＡＮＤ回路２４４より構成される。２入力ＮＡＮＤ回路２４１、２４２及び２４３の出力は、３入力ＮＡＮＤ回路２４４の入力に接続されている。
イネーブル端子付きインバータ２５１の入力には、入力データ２０１が供給され、インバータ２５１のイネーブル端子には、クロック信号（ＣＫ）２０２が供給される。インバータ２５１の出力は、第１のマスタラッチ２１０の入力である、インバータ２１１の入力に接続されている。インバータ２５１に供給された入力データ２０１は、クロック信号（ＣＫ）２０２が、ローレベルの時に、第１のマスタラッチ２１０に書きこまれる。
同様に、イネーブル端子付きインバータ２５３の入力にも、入力データ２０１が供給され、インバータ２５３のイネーブル端子には、クロック信号（ＣＫ）２０２が供給される。インバータ２５３の出力は、第２のマスタラッチ２２０の入力である、インバータ２２１の入力に接続されている。インバータ２５３に供給された入力データ２０１は、クロック信号（ＣＫ）２０２が、ローレベルの時に、第２のマスタラッチ２２０に書きこまれる。
クロック信号（ＣＫＢ）２０３がハイレベルの場合には、スレーブラッチ２３０は、その記憶内容を保持している。
多数決論理回路２４０の２入力ＮＡＮＤ回路２４１と２４２には、第１のマスタラッチ２１０の出力が入力され、多数決論理回路２４０の２入力ＮＡＮＤ回路２４１と２４３には、第２のマスタラッチ２２０の出力が入力され、そして、多数決論理回路２４０の２入力ＮＡＮＤ回路２４２と２４３には、スレーブラッチ２３０の出力が入力される。そして、多数決論理回路２４０により、第１のマスタラッチ２１０の出力と、第２のマスタラッチ２２０の出力と、スレーブラッチ２３０の出力の多数決演算が行われ、その結果が、多数決論理回路２４０の３入力ＮＡＮＤ回路２４４の出力に出力される。
次に、クロック信号（ＣＫＢ）２０３が、ローレベルとなり、この期間に、インバータ２５５を介して、多数決論理回路２４０の出力が、スレーブラッチ２３０に転送され、そして、スレーブラッチ２３０の出力からフリップフロップ回路２００の出力である、スレーブ出力２０４が出力される。更に、多数決論理回路２４０の出力から、マスタ出力２０５が出力される。
このように、多数決論理回路２４０により、第１のマスタラッチ２１０の出力と、第２のマスタラッチ２２０の出力と、スレーブラッチ２３０の出力の多数決演算を行うので、いずれかのラッチにソフトエラーが発生しても、正しい記憶内容を出力することができる。
更に、クロック信号（ＣＫＢ）２０３がローレベルの場合には、インバータ２５１と２５３が遮断され且つ、インバータ２５２と２５４は、多数決論理回路２４０の出力であるマスタ出力２０５を、それぞれ、第１のマスタラッチ２１０と第２のマスタラッチ２２０へ書き込む。
これにより、いずれかのラッチにソフトエラーが発生しても、ソフトエラーの発生したラッチに正しいデータが再度記憶されるので、ソフトエラーを回復して正しい記憶内容を保持することができる。
次に本発明の第２の実施例について説明する。図３は、本発明の第２の実施例のフリップフロップ回路３００を示す。
図３のフリップフロップ回路３００は、主に、スレーブラッチ３２０、多数決論理回路３１０、イネーブル端子付きのインバータ３３１、３３２、３３３、３３４、３３５より構成される。インバータ３３１と３３２は、第１の入力切り換え回路として動作し、そして、インバータ３３３と３３４も、第２の入力切り換え回路として動作する。
スレーブラッチ３２０は、インバータ３２１、３２２より構成される。インバータ３２１の出力はインバータ３２２の入力に接続され、そして、インバータ３２２の出力はインバータ３２１の入力に接続され、帰還回路を構成する。多数決論理回路３１０は、２入力ＮＡＮＤ回路３１１、３１２及び、３１３と、３入力ＮＡＮＤ回路３１４及びインバータ３１５より構成される。２入力ＮＡＮＤ回路３１１、３１２及び３１３の出力は、３入力ＮＡＮＤ回路３１４の入力に接続され、３入力ＮＡＮＤ回路３１４の出力はインバータ３１５の入力に接続されている。
図４は、クロック信号（ＣＫ）３０２がローレベルであり、クロック信号（ＣＫＢ）３０３がハイレベルの場合の状態を示す図である。
イネーブル端子付きインバータ３３１の入力には、入力データ３０１が供給され、インバータ３３１のイネーブル端子には、クロック信号（ＣＫ）３０２が供給される。インバータ３３１の出力は、多数決論理回路３１０の２入力ＮＡＮＤ回路３１１と３１２の入力に接続されている。インバータ３３１の出力をノード１とする。インバータ３３１に供給された入力データ３０１は、クロック信号（ＣＫ）３０２が、ローレベルの時に、多数決論理回路３１０の２入力ＮＡＮＤ回路３１１と３１２へ入力される。
同様に、イネーブル端子付きインバータ３３３の入力にも、入力データ３０１が供給され、インバータ３３３のイネーブル端子には、クロック信号（ＣＫ）３０２が供給される。インバータ３３３の出力は、多数決論理回路３１０の２入力ＮＡＮＤ回路３１１と３１３の入力に接続されている。インバータ３３３の出力をノード２とする。インバータ３３３に供給された入力データ３０１は、クロック信号（ＣＫ）３０２が、ローレベルの時に、多数決論理回路３１０の２入力ＮＡＮＤ回路３１１と３１３へ入力される。
クロック信号（ＣＫＢ）３０３がハイレベルの場合には、スレーブラッチ３２０は、その記憶内容を保持している。多数決論理回路３１０の２入力ＮＡＮＤ回路３１２と３１３には、スレーブラッチ３２０の出力が入力される。
多数決論理回路３１０により、インバータ３３１の出力と、インバータ３３３の出力と、スレーブラッチ３１０の出力の多数決演算が行われ、その結果が、多数決論理回路３１０のインバータ３１５の出力に出力される。
図５は、クロック信号（ＣＫＢ）３０３がローレベルであり、クロック信号（ＣＫ）３０２がハイレベルの場合の状態を示す図である。
次に、クロック信号（ＣＫＢ）３０３が、ローレベルとなり、この期間に、インバータ３３５を介して、多数決論理回路３１０の出力が、スレーブラッチ３２０に転送され、そして、スレーブラッチ３２０の出力からフリップフロップ回路３００の出力である、スレーブ出力３０４が出力される。更に、多数決論理回路３１０の出力から、マスタ出力３０５が出力される。
このように、多数決論理回路３１０によりインバータ３３１の出力と、インバータ３３３の出力と、スレーブラッチ３１０の出力の多数決演算を行うので、スレーブラッチ３２０にソフトエラーが発生しても、正しい記憶内容を出力することができる。
更に、クロック信号（ＣＫＢ）３０３がローレベルの場合には、インバータ３３１と３３３が遮断され且つ、インバータ３３２と３３４は、多数決論理回路３１０の出力であるマスタ出力３０５を、それぞれ、多数決論理回路３１０へ入力する。このように、インバータ３３１と３３２及び多数決論理回路３１０により、上述の第１の実施例の第１のマスタラッチの動作と同等な動作を実現するので第１のマスタラッチに対応し、また、インバータ３３３と３３４及び多数決論理回路３１０により、上述の第１の実施例の第２のマスタラッチの動作と同等な動作を実現するのでで第２のマスタラッチに対応する。
これにより、インバータ３３２、３３４又は、スレーブラッチにソフトエラーが発生しても、インバータ３３２、３３４又は、スレーブラッチに正しいデータが再度記憶されるので、ソフトエラーを回復して正しい記憶内容を保持することができる。
さらに、本実施例にによ、図２の第１の実施例よりもさらに、２つのマスタラッチを削除することが出来るので、図１に示された従来技術に比べてより一層の回路規模を低減したフリップフロップ回路を提供できる。フィードバックトランジスタは、回路レイアウトが変則的であり、ＬＳＩチップ内での占有面積が、通常のトランジスタよりも大きいため、面積を縮小の効果は大きい。
次に、本発明の第１の実施例のフリップフロップ回路２００又は第２の実施例のフリップフロップ回路３００と、従来の１つのフリップフロップの動作の比較について説明する。図６は、ソフトエラーが発生しない場合の、本発明の第１実施例又は第２実施例のフリップフロップ回路と、例えば、図１のフリップフロップ１１０のような従来の１つのフリップフロップの動作の比較を示す図である。
（１）はクロック信号（ＣＫ）を示す。クロック信号（ＣＫＢ）は、クロック信号（ＣＫ）の反転された信号である。期間αは、入力から図２及び図３のノード１とノード２が駆動される期間を示す。この状態は、第２の実施例の場合には、図４に示された状態に対応する。一方、期間βは、図２及び図３のスレーブラッチ２３０及び３２０に、データが転送される期間を示す。この状態は、第２の実施例の場合には、上述の図５に示された状態に対応する。
（２）は、図２及び図３のノード１の状態を示す。
（３）は、図２及び図３のノード２の状態を示す。
（４）は、図２及び図３のスレーブラッチ２３０と３２０の出力を示す。
（５）は、図２及び図３の多数決論理回路２４０と３１０の出力を示す。
（６）は、例えば、図１のフリップフロップ１１０のような、従来の単一のフリップフロップのマスタラッチの出力を示す。
（７）は、例えば、図１のフリップフロップ１１０のような、従来の単一のフリップフロップのスレーブラッチの出力を示す。
期間βから期間αへ移行する時に、（２）と（３）に示されるように、図２の第１のマスタラッチと第２のマスタラッチのデータ及び、図３のインバータ３３１と３３３の出力するデータが、入力データにより書き換えられ、これにより、ノード１とノード２が書き換えられる。そして、ノード１とノード２のデータが、多数決論理回路へ入力される。しかし、図２及び図３のノード１とノード２は、ともに同じ値に書き換わるため、（５）に示されているように、多数決論理回路の出力も、入力データを表す正しい値を保持して出力する。
期間αから期間βへ移行すると、（４）に示されているように、多数決論理回路の出力する値が、スレーブラッチへ転送され、スレーブラッチを書き換える。そして、同時に、ノード１とノード２が、多数決論理回路の出力する値に書き換わるが、この値は、入力データと等しい。
一方、（６）に示された従来の単一のフリップフロップのマスタラッチの出力は、前述の（２）及び（３）に対応し、そして、（７）に示された従来の単一のフリップフロップのスレーブラッチの出力は、前述の（４）に対応する。
このようにソフトエラーが発生しない場合、図２と図３のノード１、ノード２及び、スレーブラッチは、従来の単一のフリップフロップと同一の動作をする。
従来のフリップフロップ回路と同様に、期間βにおいては常に多数決論理からスレーブラッチへの書き込みが行われているため、ソフトエラーによりスレーブラッチの保持値が反転した場合はすぐに回復することができる。
図７は、マスタラッチでソフトエラーが発生した場合の、本発明のフリップフロップ回路と従来の１つのフリップフロップの動作の比較を示す図である。（１）から（７）はは図６と同一の信号を示す。
（２）に示すように、期間αにおいて図２及び図３のマスターラッチにソフトエラーが発生し、ノード１にエラーが発生した場合には、データ入力部によりノード１とノード２が駆動されているために、ノード１のデータはすぐに正しい値に復帰する。本発明の第１及び第２の実施例に従ったフリップフロップ回路では、期間βの間にソフトエラーによりマスターラッチ１の保持値が反転した場合には、ノード２とスレーブラッチが同じ値を保持しているため、多数決回路の出力値は反転せず、ノード１の保持値はすぐに、正しい値に回復する。ソフトエラーによりノード２が反転した場合も同様に、フリップフロップ回路からの出力には変化はなく、ノード２の値は反転した値から、すぐに正しい値に回復する。
一方、図１のフリップフロップ１１０のような従来のフリップフロップでは、期間βにおいてマスターラッチの保持値が反転した場合には、正しい値に復帰する機構がないので、反転したままとなる。これにより、即座にスレーブラッチに誤った信号が転送される。
図８はスレーブラッチにソフトエラーが発生した場合の本発明のリップフロップ回路と従来の１つのフリップフロップの動作の比較を示す図である。（１）から（７）はは図６と同一の信号を示す。
（４）に示すように、期間αでスレーブラッチにソフトエラーが発生した場合には、本発明の第１及び第２の実施例のの回路も、従来のフリップフロップ回路も、正しいデータに復帰はできない。そして、期間βへ移行する際にマスターラッチからスレーブラッチへ、正しい値が転送される。期間βではマスターラッチによりスレーブラッチが駆動されており、スレーブラッチにソフトエラーが発生した場合は直ちに正しい値に訂正される。
図９は、本発明の実施例のフリップフロップ回路と従来の多数決論理を有するフリップフロップ回路の動作の比較を示す図である。
（１）は、図２及び図３の本発明の実施例のフリップフロップ回路のノード１の信号を示す。
（２）は、図２及び図３の本発明の実施例のフリップフロップ回路のノード２の信号を示す。
（３）は、図２及び図３の本発明の実施例のフリップフロップ回路のスレーブラッチの出力を示す。
（４）は、図２及び図３の本発明の実施例の多数決論理回路の出力を示す。
（５）は、図１の従来のフリップフロップ回路のフリップフロップ１１０のマスタラッチの出力を示す。
（６）は、図１の従来のフリップフロップ回路のフリップフロップ１２０のマスタラッチの出力を示す。
（７）は、図１の従来のフリップフロップ回路のフリップフロップ１３０のマスタラッチの出力を示す。
（８）は、図１の従来のフリップフロップ回路のフリップフロップ１３０のスレーブラッチの出力を示す。
（９）は、図１の従来のフリップフロップ回路の多数決論理回路の出力を示す。
図９において、時点（ｔ１）で、フリップフロップ回路の初期化が終了し、時点（ｔ２）において、スレーブラッチに、マスタラッチの出力が転送される。また、時点（ｔ３）と（ｔ４）では、マスタラッチにエラーが発生し、そして、時点（ｔ５）では、スレーブラッチにエラーが発生したとする。
先ず最初に、図９の（１）から（４）を用いて、本発明の実施例のフリップフロップの動作について説明する。
図２及び図３のフリップフロップのノード１とノード２の初期化前の信号値は”Ｙ”であり、初期化によって”Ｚ”が書き込まれ、この値”Ｚ”を、電源が切断されるまで保持するとする。時点（ｔ１）において初期化が終了し、時点（ｔ３）において第１のマスタラッチの出力ノード１にエラーが発生したとする。しかし、スレーブラッチの出力にはエラーは発生しない。そして、ノード２とスレーブラッチの値は共に”Ｚ”であるので、多数決回路の動作によって、第１のマスタラッチの出力は、もとの”Ｚ”の値に回復する。
時点（ｔ４）で、第２のマスタラッチの出力ノード２にエラーが発生した場合も、前記のノード１にエラーが発生した場合の動作と同一である。
時点（ｔ５）で、スレーブラッチにエラーが発生した場合には、スレーブラッチの出力は、一度反転するが、しかし、ノード１とノード２の値は正しい値であるので、多数決論理回路の出力は正しい値を出力し、この正しい値がスレーブラッチに転送され、スレーブラッチの出力は、正しい値に回復する。
なお、この状態を考慮すると本実施例の回路ではハザードの発生し得るスレーブ出力よりもマスター出力のほうが信頼性が高い。
次に、図９の（５）から（９）を用いて、図１の従来のフリップフロップの動作について説明する。
図１の従来のフリップフロップのフリップフロップ１１０、１２０及び１３０の初期化前の信号値は”Ｙ”であり、初期化によって”Ｚ”が書き込まれ、この値”Ｚ”を、電源が切断されるまで保持するとする。時点（ｔ１）において初期化が終了し、時点（ｔ３）においてフリップフロップ１１０のマスタラッチの出力にエラーが発生し”Ｙ”となると、フリップフロップ１１０のスレーブラッチの出力にはエラーが発生し”Ｙ”となる。そして、フリップフロップ１１０のマスタラッチは、”Ｙ”を保持し続ける。しかし、フリップフロップ１２０と１３０の出力は正しい値を保持しているので、多数決論理回路の出力（９）には、エラーは発生しない。
次に、時点（ｔ４）で、フリップフロップ１２０のマスタラッチの出力にエラーが発生し”Ｙ”となると、フリップフロップ１２０スレーブラッチの出力にはエラーが発生し”Ｙ”となる。そして、フリップフロップ１２０のマスタラッチは、”Ｙ”を保持し続ける。
この結果、フリップフロップ１１０と１２０の出力は正しい値を保持していないので、多数決論理回路の出力（９）には、エラーが発生する。
この多数決論理回路の出力のエラーは、フリップフロップ１１０と１２０のエラーが回復しないので、本発明の実施例のように、回復することはない。
一方、時点（ｔ５）で、フリップフロップ１３０のスレーブラッチにエラーが発生した場合には、スレーブラッチの出力は、一度反転するが、しかし、フリップフロップ１３０のマスタラッチは正しい値を保持しているので、この正しい値がスレーブラッチに転送され、スレーブラッチの出力は、正しい値に回復する。
以上のように、本発明の実施例では、ソフトエラーが発生しても、正しい記憶内容を出力することができ且つソフトエラーを回復して正しい記憶内容を保持することができる。
前述のように、本発明の実施例の回路は、ソフトエラーが発生した場合でも正しく動作でき且つ正しい値を保持でき且つ、他の機能は、通常のフリップフロップ回路と同一の機能であるために、高速動作が要求されるような、タイミングクリティカルパス以外では、通常のフリップフロップ回路を置換することが可能である。特に、ソフトエラーに対しシステムに致命的な障害を与える信号や、あるいは初期化時に設定された後、システム動作にて書き換えが行われないような信号を記憶するのに適する。例えば、タイミング調整回路の設定値保持や冗長ヒューズ信号値の保持である。
このような場合の実施例を次に説明する。
図１０は、本発明をメモリの制御信号の設定回路に使用する本発明の第３の実施例を示す図である。図１０は、ＲＡＭ（ランダムアクセスメモリ）内のセンスアンプの開始タイミングの調整のための３ビットの設定値を記憶する場合の実施例である。ＲＡＭマクロ１００１に、本発明の実施例のフリップフロップ１００２、１００３及び、１００４に記憶されたセンスアンプの開始タイミングの調整のための３ビットの設定値が、信号線１００５、１００６及び、１００７を介して入力される。この設定値を用いて、センスアンプの設計時の誤差や製造ばらつきを吸収することができる。また、ＲＡＭが高速な動作が可能であればセンスアンプの開始タイミングを早めることで性能向上を図ることができる。一方ＲＡＭ動作が不安定な場合には、センスアンプの開始タイミングを遅らせることで動作マージンを確保することができる。
設定値保存用のフリップフロップ回路に本発明の実施例のフリップフロップ回路を適用するが、通常のデータ入力とは別にスキャンチェイン用の入力（ＳＩ）１００８を追加する。スキャンチェインは専用の制御信号ＡＣＫとＢＣＫを有する。ＡＣＫはＳＩとマスターラッチ間のオン／オフを、そして、ＢＣＫはマスターとスレーブ間のオン／オフを制御する。
マスターとスレーブ間をオフ（ＢＣＫ＝１）し、次に、ＳＩとマスター間をオン（ＡＣＫ＝１）し、次に、ＳＩとマスター間をオフ（ＡＣＫ＝０）し、次に、マスターとスレーブ間オン（ＢＣＫ＝０）することを繰り返すことにより、フリップフロップ回路をチェイン状に接続して、この中を順に信号を伝搬させる。そして、各フリップフロップを所望の値を設定することができる。
図１１は、図１０に記載のＲＡＭマクロ１００１の内部のセンスアンプ部１１０１と、遅延調整回路１００５を示す。センスアンプ部は、ビット線１１０２、１１０３と出力１１０４及び、センスアンプ開始信号を入力する端子１１０７を有する。センスアンプ開始信号を入力する端子１１０７には、遅延調整回路１１０５が接続されている。遅延調整回路１１０５には、図１０で示された本発明の実施例のフリップフロップ１００２、１００３及び、１００４より、信号線１００５，１００６及び、１００７を介して、センスアンプの開始タイミングの調整のための３ビットの設定値が入力される。
図１２は、図１１の遅延調整回路１１０５の一実施例を示す。遅延調整回路１１０５は、主に、ゲート回路１２０１から１２０４、インバータ１２０５から１２０８、遅延バッファ１２０９から１２１１、転送ゲート１２１３から１２１５、バッファ１２１６、インバータ１２１７、転送ゲート１２１８及び、コンデンサ１２１９より構成される。
タイミング制御信号１００５は、インバータ１２１７と転送ゲートの正入力に加えられ、出力１１０７をコンデンサ１２１９を介して接地するかどうかを制御する。
遅延回路には、入力１１０６よりクロック信号が入力される。入力されたクロック信号は、遅延バッファ１２０９から１２１１及び、転送ゲート１２１５の入力に供給される。遅延バッファ１２０９から１２１１の入力に供給されたクロック信号は、遅延バッファ１２０９から１２１１の出力から転送ゲート１２１２から１２１４へ供給される。
タイミング制御信号１００６と１００７を、ゲート回路１２０１から１２０４によりデコードすることにより、転送ゲート１２１２から１２１５のうちのいずれか１つの転送ゲートのみがクロック信号を出力する。これにより、入力クロック信号は、遅延無し又は、遅延バッファ１２０９から１２１１の遅延に対応する遅延量で、遅延されて出力される。この遅延されたクロック信号は、バッファ１２１６を介して、センスアンプ１１０１へ供給される。
図１３は、センスアンプの開始信号のタイミング調整の例を示す図である。
（１）は、遅延回路１１０２に入力されるクロック信号１１０６を示す。
（２）は、図１１のビット線正１１０３の信号変化を示す。
（３）は、図１１のビット線負１１０２の信号変化を示す。
（４）は、図１１のセンスアンプ開始信号１１０７を示す。
上述の、遅延回路１１０２により、（４）に示されたセンスアンプ開始信号の出力時点が調整される。例えば、（Ａ）に示される時点にセンスアンプ開始信号の出力時点を調整すると、（２）と（３）に示すビット線の信号変化が小さい時点からセンスアンプが開始する。一方、（Ｂ）に示される時点にセンスアンプ開始信号の出力時点を調整すると、（２）と（３）に示すビット線の信号変化が大きくなった時点からセンスアンプが開始する。
（Ａ）のようにセンスアンプの開始信号を調整すると、ＲＡＭの動作速度が高速化されて性能が向上する。一方、（Ｂ）のようにセンスアンプの開始信号を調整すると、ＲＡＭの動作速度が低速とはなるが、ビット線の電位差が大きい時点でセンスアンプが動作するので、動作マージンが向上する。
このように、センスアンプの感度が悪い場合には、正論理と負論理のビット線のの間の電位差が十分に生じるまで、センスアンプの開始時点を遅らせ、あるいは、ＲＡＭセルの駆動能力が低い場合のようなビット線を駆動するのにある程度の時間が必要な場合は、センスアンプの開始時点を遅らせることで動作マージンを確保する。また、ＲＡＭ回路の駆動能力が十分に高く、高速な場合には、センスアンプの開始時点をを早めることで、ＲＡＭ動作の遅延時間を改善し動作速度の高速化を図るように調整を行うことができる。
以上のように、ソフトエラーが発生しても、正しい記憶内容を出力することができ且つソフトエラーを回復して正しい記憶内容を保持し、回路規模が小さく、且つ回路の試験の容易な、多数決論理回路を有するフリップフロップ回路を提供することができる。
【図１】
2004105241.tif 000003
【図２】
2004105241.tif 000004
【図３】
2004105241.tif 000005
【図４】
2004105241.tif 000006
【図５】
2004105241.tif 000007
【図６】
2004105241.tif 000008
【図７】
2004105241.tif 000009
【図８】
2004105241.tif 000010
【図９】
2004105241.tif 000011
【図１０】
2004105241.tif 000012
【図１１】
2004105241.tif 000013
【図１２】
2004105241.tif 000014
【図１３】
2004105241.tif 000015
【国際調査報告】
2004105241.tif 000016
2004105241.tif 000017
2004105241.tif 000018