(57)【要約】【課題】誤り訂正機能を可及的に小さな面積の増大で実現することを可能にする。【解決手段】第１のクロック信号の立ち上がりエッジまたは立ち下がりエッジの一方のエッジに基づいて動作するフリップフロップ２と、フリップフロップの入力と出力とを比較し、異なる場合に要求信号を出力する判定回路６と、外部からの第２のクロック信号を受け、前記第１のクロック信号および確認信号を発生する制御回路４と、を備え、制御回路は、判定回路から要求信号が送られてきたときにフリップフロップが動作後であれば、第１のクロック信号を反転させかつ確認信号を前記判定回路に送出し、判定回路に要求信号を解除させる。【選択図】図１
2008085592.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号の立ち上がりエッジまたは立ち下がりエッジの一方のエッジに基づいて動作するフリップフロップと、
前記フリップフロップの入力と出力とを比較し、異なる場合に要求信号を出力する判定回路と、
外部からの第２のクロック信号を受け、前記第１のクロック信号および確認信号を発生する制御回路と、
を備え、前記制御回路は、前記判定回路から前記要求信号が送られてきたときに前記フリップフロップが動作後であれば、前記第１のクロック信号を反転させかつ前記確認信号を前記判定回路に送出し、前記判定回路に前記要求信号を解除させることを特徴とするフリップフロップ回路。
【請求項２】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、前記不一致検出回路の出力と前記遅延素子の出力とに基づいてＮＡＮＤ演算し、前記要求信号を出力する論理回路とを有し、
前記ＡＮＤ回路は前記第２のクロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項３】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、前記不一致検出回路の出力と前記遅延素子の出力とに基づいて演算する論理回路とを有し、
前記論理回路は前記遅延素子の出力をゲートに受けソースが電源に接続されるｐチャネルトランジスタと、前記不一致検出回路の出力をゲートに受け、ドレインが前記ｐチャネルトランジスタのドレインに接続される第１のｎチャネルトランジスタと、前記遅延素子の出力をゲートに受け、ドレインが前記第１のｎチャネルトランジスタのソースに接続され、ソースが接地される第２のｎチャネルトランジスタと、を備え、前記ｐチャネルトランジスタと前記第１のｎチャネルトランジスタの共通接続ノードから前記要求信号を出力し、
前記ＡＮＤ回路は前記第２のクロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項４】
前記フリップフロップは、前記第１クロック信号に基づいて動作する第１のラッチ回路と、前記第１のラッチ回路に直列に接続され前記第１のクロック信号の反転信号に基づいて動作する第２のラッチ回路とを備え、
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、前記不一致検出回路の出力と前記遅延素子の出力とに基づいて演算する論理回路とを有し、
前記不一致検出回路は、前記フリップフロップの入力データの反転信号に基づいて前記第２のラッチ回路の入力の取り込みまたは遮断の制御する第１のトランスファーゲートと、前記フリップフロップの入力データに基づいて前記第２のラッチ回路の出力の取り込みまたは遮断の制御する第２のトランスファーゲートと、を備え、前記第１および第２のトランスファーゲートの出力端子が共通に接続され、
前記論理回路は前記遅延素子の出力をゲートに受けソースが電源に接続されるｐチャネルトランジスタと、前記不一致検出回路の出力をゲートに受け、ドレインが前記ｐチャネルトランジスタのドレインに接続される第１のｎチャネルトランジスタと、前記遅延素子の出力をゲートに受け、ドレインが前記第１のｎチャネルトランジスタのソースに接続され、ソースが接地される第２のｎチャネルトランジスタと、を備え、前記ｐチャネルトランジスタと前記第１のｎチャネルトランジスタの共通接続ノードから前記要求信号を出力し、
前記ＡＮＤ回路は前記第２クロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。  
【請求項５】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力と前記不一致回路の出力とに基づいてＮＡＮＤ演算する論理回路と、前記論理回路の出力を遅延する遅延素子と、を有し、
前記ＡＮＤ回路は前記第２のクロック信号と、前記不一致検出回路の出力と、前記遅延素子の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記論理回路に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項６】
前記フリップフロップは、前記第１のクロック信号に基づいて動作する第１のラッチ回路と、前記第１のラッチ回路に直列に接続され前記第１のクロック信号の反転信号に基づいて動作する第２のラッチ回路とを備え、
前記制御回路は、前記第２クロック信号を反転する第１のインバータと、第１のＮＯＲ回路と、前記第１のＮＯＲ回路の出力を反転する第２のインバータとを有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記不一致検出回路の出力と前記第２のインバータの出力とに基づいてＮＯＲ演算する第２のＮＯＲ回路とを有し、
前記不一致検出回路は、前記フリップフロップの入力データの反転信号に基づいて前記第２のラッチ回路の入力の取り込みまたは遮断の制御する第１のトランスファーゲートと、前記フリップフロップの入力データに基づいて前記第２のラッチ回路の出力の取り込みまたは遮断の制御する第２のトランスファーゲートと、を備え、前記第１および第２のトランスファーゲートの出力端子が共通に接続され、
前記第１のＮＯＲ回路は前記第２のクロック信号の反転値と、前記不一致回路の出力と、前記第２のＮＯＲ回路の出力とに基づいてＮＯＲ演算することを特徴とする請求項１記載のフリップフロップ回路。
【請求項７】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、テストモード信号と前記不一致検出回路の出力と前記遅延素子の出力とに基づいてＮＡＮＤ演算し、前記要求信号を出力する論理回路とを有し、
前記ＡＮＤ回路は前記第２のクロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項８】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、テストモード信号と前記不一致検出回路の出力と前記ＡＮＤ回路の出力とに基づいてＮＡＮＤ演算する論理回路と、前記論理回路の出力を遅延する遅延素子とを有し、
前記ＡＮＤ回路は前記第２のクロック信号と前記不一致回路の出力と前記遅延素子の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記論理回路に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項９】
フリップフロップと論理回路との組が複数個直列に接続され、少なくとも一組のフリップフロップが請求項１乃至８のいずれかに記載のフリップフロップ回路に置き換えられていることを特徴とするパイプラインシステム。
【請求項１０】
前記フリップフロップ回路に置き換えられた組の後段の少なくとも一組は論理回路が省略されていることを特徴とする請求項９記載のパイプラインシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置に関する。
【背景技術】
【０００２】
半導体素子の微細化がすすむにつれて、素子ごとのばらつきが大きくなるという問題がある。ばらつきが大きくなると、動作が非常に遅い回路ブロックがある確率で出現することになり、ワーストケースの遅延時間に合わせた回路設計では、クロック周波数を速くすることが困難になる。また、ばらつきの増大は、シミュレーションによる遅延時間の見積もりを困難にさせ、予測以上の遅延によりタイミングエラーを引き起こす原因になる。また、素子の微細化と集積度の増大により、電源電圧は小さくなりクロック周波数が速くなったことで、高エネルギー粒子によるソフトエラーが起こる確率が高くなってきている。
【０００３】
従来、タイミングエラーやソフトエラーを回避するフリップフロップの構成としては、例えば特許文献１に記載された構成が知られている。これは、パイプライン上のフリップフロップと並列に、別のラッチ回路を設け、システムクロックから少し遅れたクロックでこれを使用して、両方が保持しているデータの内容をくらべ、違う場合にエラーがあったと判断してデータの修正を行うものである。
【０００４】
しかし、この方法では、ラッチ回路をもう一つ用意することや、データを比べるための比較回路、データを修正するための回路などにより、回路面積が大きくなるという問題があった。また、エラーがたとえなくても、用意されたラッチ回路を動作させることになるため、消費電力が増大するという問題があった。
【０００５】
低消費電力化を目的としたフリップフロップ構成としては、例えば、特許文献２、特許文献３に開示されている。これはフリップフロップの入力と出力が違うときのみ、クロックの立ち上がりのタイミングで内部クロックが立ち上がり、入力と出力が変わらなければ、クロックが立ち上がらないものである。しかし、この構成はクロックの立ち上がり時のみで入出力を判断するので、予期しないエラーに対する耐性は持っていない。
【特許文献１】米国特許公開第２００４／０１９９８２１号明細書
【特許文献２】特開２０００−２３２３３９号公報
【特許文献３】特開２００４−５６６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、上記事情を考慮してなされたものであって、誤り訂正機能を可及的に小さな面積の増大で実現することができるフリップフロップ回路およびこれを用いたパイプラインシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によるフリップフロップ回路は、第１のクロック信号の立ち上がりエッジまたは立ち下がりエッジの一方のエッジに基づいて動作するフリップフロップと、前記フリップフロップの入力と出力とを比較し、異なる場合に要求信号を出力する判定回路と、外部からの第２のクロック信号を受け、前記第１のクロック信号および確認信号を発生する制御回路と、を備え、前記制御回路は、前記判定回路から前記要求信号が送られてきたときに前記フリップフロップが動作後であれば、前記第１のクロック信号を反転させかつ前記確認信号を前記判定回路に送出し、前記判定回路に前記要求信号を解除させることを特徴とする。
【０００８】
また、本発明の第２の態様によるパイプラインシステムは、フリップフロップと論理回路との組が複数個直列に接続され、少なくとも一組のフリップフロップが請求項１乃至８のいずれかに記載のフリップフロップ回路に置き換えられていることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、誤り訂正機能を可及的に小さな面積の増大で実現することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態を、図面を参照して説明する。以下に示す、実際の回路例では、論理的に変換されるすべての回路構成の中の一例を示したもので、ここに示さない他の回路構成でも同じことが実現できるのは明らかである。
【００１１】
（第１実施形態）
本発明の第１実施形態によるフリップフロップ回路の基本的な構成を図１に示す。
【００１２】
フリップフロップ回路はクロックの立ち上がりエッジで動作するものと、立ち下りエッジで動作するものがあるが、以下の実施形態ではすべて立ち上がりエッジで動作するものを想定して説明をする。立ち下りエッジで動作する場合も同様に考えられる。また、Ｄ型フリップフロップ（以下、Ｄ−ＦＦとも云う）の場合を例にとり説明するが、クロックを使うフリップフロップに対して適用可能であり、Ｄ−ＦＦに限定されるものではない。
【００１３】
本実施形態のフリップフロップ回路は、通常のＤ−ＦＦ２と、制御回路４と、判定回路６とを備えている。制御回路４はクロック信号および判定回路６からの要求信号に基づいて動作し、判定回路６に確認信号を送出するとともにＤ−ＦＦ２にクロック信号を送出する。判定回路６は、Ｄ−ＦＦ２の入出力Ｄ、Ｑと、制御回路４からの確認信号とに基づいて動作し、要求信号を判定回路６に送出する。
【００１４】
初期状態では判定回路６からの要求信号も、制御回路４からの確認信号も出されていないとする。まず、判定回路６はフリップフロップ２の入力Ｄと出力Ｑを比べ、両者が違う値である場合に、制御回路４へ要求信号を送る。制御回路４は要求信号のタイミングが、クロックの立ち上がり後であれば、クロックを立ち下げて確認信号を判定回路６へ送る。判定回路６は確認信号を受け取ると、要求信号を解除する。制御回路４は要求信号が解除されると、クロックの立ち下げ状態を解除し、確認信号を解除する。立ち下げ状態を解除されたクロックは再び立ち上がるので、このエッジでＤ−ＦＦ２の入力が再び保持される。
【００１５】
この動作の中で、クロックが立ち上がったすぐ後にＤ≠Ｑの状態であった場合にエラーが起こっていると判断している。クロック立ち上がり後のすぐ後というのは、ひとまずクロックが「Ｈ」の状態にある場合とする。すなわち、クロックが「Ｌ」の状態にあるときに要求信号が送られても、その場合は、確認信号は発せられず、上記動作は起こらない。
【００１６】
要求信号や確認信号は、正論理でも負論理でもかまわない。制御回路４および判定回路６で辻褄が合っていればよい。
【００１７】
タイミングエラーが起きたときやソフトエラーが起こったときに、上記の動作が行われると、Ｄ−ＦＦ２にとっては、クロックが二度立ち上がり、後半のクロックにより値を保持することになる。そのとき、システム全体で見ると、その部分のクロックが遅れて立ち上がっていることになり、後段の回路のタイミングが厳しくなることになる。しかし、クロックのタイミングはワーストケースで設計されているものの、常にロジックがクリティカルパスを通るようなワーストケースの計算をしているわけではなく、また、素子のばらつきにより、ある部分の回路は動作が非常に速くなることもありえるため、一部分のタイミングが厳しくなっても後段の回路のどこかで、そのタイミングを吸収することは可能である。
【００１８】
以上説明したように、本実施形態によれば、制御回路４および判定回路６を設けることにより誤り訂正機能を付加することができ、これにより可及的に小さな面積の増大で実現することができる。
【００１９】
（第２実施形態）
本発明の第２実施形態によるフリップフロップ回路を図２に示す。本実施形態は、第１実施形態のフリップフロップ回路の制御回路４および判定回路６をロジックレベルで具体的に記述した一回路構成となっている。制御回路４はＡＮＤ回路４ａから構成され、判定回路６は、Ｄ−ＦＦ２の入出力Ｄ，Ｑに基づいて排他的論理和演算をする排他的論理和回路６ａ（以下、ＥＸＯＲ回路６ａとも云う）と、遅延素子６ｂと、およびＥＸＯＲ回路６ａおよび遅延素子６ｂの出力に基づいてＮＡＮＤ演算する論理回路６ｃとから構成される。この場合、Ｄ−ＦＦ２へのクロックと確認信号は同じ信号を使用しているが、合成する論理によって、そうである場合もそうでない場合もある。また、本実施形態においては、要求信号や確認信号は、負論理で行われていることになる。
【００２０】
遅延素子６ｂは、Ｄ−ＦＦ２のクロック−出力遅延時間を吸収するために挿入されている。すなわち、Ｄ−ＦＦ２はクロック入力後から出力が変わるまで遅延時間があるので、この遅延により、エラーがなくてもクロック立ち上がり直後はＤ≠Ｑとなる時間帯が存在する。この状態はエラーではないので、遅延素子６ｂにより、この時間を吸収する。この意味で、遅延素子６ｂは必ずしも図２中に示される確認信号の位置に挿入される必要は無く、論理回路６ｃからＡＮＤ回路４ａの間、要求信号のノードに挿入されてもよい。遅延素子６ｂの実現方法は、例えば、ＣＭＯＳインバータを繰り返し用いることで実現できる。また、遅延素子６ｂという形で明示的に入れなくとも、前後の論理ゲートのサイズを変更することで論理ゲート自身の遅延をコントロールして、実質的に遅延素子を挿入したのと同様の遅延時間を挿入することもできる。また遅延時間の調整は、ＣＭＯＳインバータを複数個用いても良いし、ＣＭＯＳインバータを構成するトランジスタのサイズを変更し、チャネル幅を狭くしたり、チャネル長を長くしたりすることや、キャパシタと組み合わせることで実現できる。
【００２１】
以上説明したように、本実施形態によれば、制御回路４および判定回路６を設けることにより誤り訂正機能を付加することができ、これにより可及的に小さな面積の増大で実現することができる。
【００２２】
（第３実施形態）
次に、本発明の第３実施形態によるフリップフロップ回路を図３に示す。この実施形態のフリップフロップ回路は、第２実施形態の論理回路６ｃを、直列に接続されたｐチャネルトランジスタ６ｃ１、ｎチャネルトランジスタ６ｃ２、およびｎチャネルトランジスタ６ｃ３に置き換えた構成となっている。
【００２３】
立ち上がりエッジフリップフロップの場合は、クロックが「Ｌ」の場合は、判定回路６からどんな要求信号が送られても、制御回路４では何も行わないので、判定回路６はクロックが「Ｈ」のときのみ正しく動作すればよいので、図３に示すようなダイナミックな回路構成が可能となる。
【００２４】
本実施形態の第１変形例によるフリップフロップ回路を図４に示す。この第１変形例は、図３に示すフリップフロップ回路の構成を、Ｄ−ＦＦ２も含めて論理ゲートレベルで記述したフリップフロップ回路の一例である。Ｄ−ＦＦ２は、インバータ２ａと、トランスファーゲート２ｂと、交差接続されたインバータ２ｃおよびクロックドインバータ２ｄからなるラッチ回路と、トランスファーゲート２ｅと、交差接続されたインバータ２ｆおよびクロックドインバータ２ｇからなるラッチ回路と、インバータ２ｈとを備えており、これらが直列に接続されている。
【００２５】
制御回路４は、ＮＡＮＤ回路４ａと、ＮＡＮＤ回路４ａの出力を反転するインバータ４ｂとを備えている。判定回路６は、インバータ２ａの入出力に基づいて動作するトランスファーゲート６ａ１、６ａ２と、インバータ６ｂ１、６ｂ２と、直列に接続された、ｐチャネルトランジスタ６ｃ１およびｎチャネルトランジスタ６ｃ２、６ｃ３と、を備えている。なお、トランスファーゲート２ｂはＮＡＮＤ回路４ａの出力ｃｎとインバータ４ｂの出力ｃの反転出力とに基づいて動作し、トランスファーゲート２ｅはＮＡＮＤ回路４ａの出力ｃｎの反転出力とインバータ４ｂの出力ｃとに基づいて動作する。トランスファーゲート６ａ１、６ａ２が図３に示すＥＸＯＲ回路６ａを構成する。
【００２６】
本変形例のような回路構成をとると、元のＤ−ＦＦ２に追加されるトランジスタ数は１７個ですむ。一方、特許文献１に記載された回路構成をとると、追加のラッチ回路や比較回路、セレクタ回路から、追加トランジスタ数は３８個程度となる。このため、本変形例により回路のオーバーヘッドを小さく抑えたまま、誤り訂正機能を実現することが可能となる。
【００２７】
なお、本変形例においては、トランスファーゲート６ａ１はインバータ２ｆの入力を受け、トランスファーゲート６ａ２はインバータ２ｆの出力を受けていたが、図５に示す第２変形例のように、トランスファーゲート６ａ１はインバータ２ｈの出力を受け、トランスファーゲート６ａ２はインバータ２ｈの出力を反転するインバータ２ｉの出力を受けるように構成してもよい。この場合、トランスファーゲート６ａ１、６ａ２はインバータ２ａの入力と、上記入力を反転するインバータ２ｊの出力とに基づいて動作することになる。
【００２８】
本実施形態のフリップフロップ回路の信号波形を図６に示す。Ｄ−ＦＦ２の入力信号Ｄが、通常動作している状態では、本実施形態のＤ−ＦＦ２と通常のＤ−ＦＦで動作に差はない。ここに、例えば、高エネルギー粒子により、トランジエントエラー（ここでは電圧降下）が起き、そのタイミングでクロックが立ち上がったとすると、対策をとっていない通常のＤ−ＦＦでは誤ったデータを保持してしまうのに対して、本実施形態においては、Ｄ−ＦＦ２は、データ回復後にもう一度クロックを立ち上げなおし、多少の遅延は伴うものの、正しいデータを後段へ送り出せる。また、例えば、ロジックのタイミングを誤り、タイミングエラーを起こした場合でも、それがクロック立ち上がり直後に正しい値に回復している場合には、やはりクロックを再立ち上げして、正しいデータを後段に送り出すことができる。この動作例で回路に流れた平均電流は、シミュレーションによると０．０４７ｍＡ程度であったが、特許文献１の構成では、平均電流は０．０６９ｍＡ程度であった。これにより、本実施形態のフリップフロップ回路は、低消費電力で誤り訂正機能を実現することが可能となる。
【００２９】
立ち上がり直後というのは、クロックが「Ｈ」レベルの間である。というのは、クロックのデューティー比が５０％程度のとき、しばしば長すぎる場合がある。その場合は、クロックのデューティー比を変えて、「Ｈ」レベルの時間を短くすることで対応できる。このことは、次に示す第４実施形態でも可能である。
【００３０】
（第４実施形態）
次に、本発明の第４実施形態によるフリップフロップ回路を図７に示す。本実施形態のフリップフロップ回路は、図３に示す第３実施形態において、遅延素子６ｂの後に、遅延素子６ｂ３と、ＡＮＤ回路６ｂ４とを挿入した構成となっている。ＡＮＤ回路６ｂ４の片方の論理だけ負論理動作にしておく。このときＡＮＤ回路６ｂ４は２つの入力が「Ｈ」になると「Ｌ」を出力するが、片方の入力にだけ遅延素子が挿入されているので、クロックが「Ｌ」から「Ｈ」になった後、両入力の遅延差の時間だけ、ＡＮＤ回路６ｂ４は「Ｈ」を出力し、この間だけ、Ｄ−ＦＦ２のエラー判定が行われる。その時間は遅延素子６ｂ３による、ＡＮＤ回路６ｂ４の２入力の遅延差で決定される。遅延時間の調整は、他の実施形態と同じく、インバータを重ねた形でも良いし、チャネル幅やチャネル長を変化させること、キャパシタと組み合わせることで実現できる。片方を負論理にしたＡＮＤ回路は、ＡＮＤ回路の入力にインバータを接続することで実現できる。このような構成をとっても、追加トランジスタ数は２７個程度であり、回路のオーバーヘッドを小さく抑えたまま、誤り訂正機能を持たせることが可能になる。
【００３１】
本実施形態も第３実施形態と同様に、誤り訂正機能を可及的に小さな面積の増大で実現することができる。
【００３２】
（第５実施形態）
次に、本発明の第５実施形態によるフリップフロップ回路を図８に示す。この実施形態のフリップフロップ回路は、図２に示す第２実施形態において、制御回路４を３入力ＡＮＤ回路４ｃから構成し、ＥＸＯＲ回路６ａの出力を第１要求信号として３入力ＡＮＤ回路４ｃに入力し、判定回路６の遅延素子６ｂを論理回路６ｃの出力と３入力ＡＮＤ回路４ｃの入力との間に設け、この遅延素子６ｂの出力を第２要求信号として３入力ＡＮＤ回路４ｃの入力とした構成となっている。
【００３３】
すなわち、制御回路４への要求信号に、判定回路中のＤ≠Ｑ信号を出力する信号（第１要求信号）も合わせて要求信号として出力する構成を示したもので、より具体的には判定回路６中の排他的論理和回路６ａの出力を正論理として制御回路４中の３入力ＡＮＤ回路４ｃへ入力したものである。このような構成をとることによって、制御回路４はＤ−ＦＦ２がクロックを必要とするときのみ、クロックをＤ−ＦＦへ入力するように制御する。すなわち、Ｄ≠Ｑでかつクロックが立ち上がったときと、その後エラーが検出されたときである。遅延素子６ｂは判定回路６中の論理回路６ｃの出力後、要求信号のノードに接続されているが、これは他の実施形態と同様で、確認信号のノードに接続することも、もちろん可能であり、その位置にはこだわらない。
【００３４】
本実施形態も、誤り訂正機能を可及的に小さな面積の増大で実現することができる。
【００３５】
次に、本実施形態の第１変形例によるフリップフロップ回路を図９に示す。この変形例は、図８に示す第５実施形態の構成を論理ゲートレベルで具体的に記述したときの一例である。論理ゲートが図８に示すＮＡＮＤ回路４ｃ、論理回路６ｃやＡＮＤ回路のロジックからＮＯＲ回路のロジックに変更されているが、これは論理ゲート数や動作を最適化する上での変更であり、論理的には全く同じものである。Ｄ−ＦＦ２は、図４に示すＤ−ＦＦ２と同じ構成となっている。制御回路４は、インバータ４ｄと、３入力ＮＯＲ回路４ｅと、インバータ４ｆとを備えており、これらが直列に接続されている。判定回路６は、トランスファーゲート６ａ１、６ａ２と、インバータ６ｄと、ＮＯＲ回路６ｅとを備えており、図８に示す第５実施形態で記述していた遅延素子６ｂを本変形例では使用していないが、これは前後の論理や論理ゲートサイズを調整することで必要な遅延時間を確保したためである。インバータ６ｄはトランスファーゲート６ａ１、６ａ２の出力を受ける。インバータ４ｄは外部から入力されるクロックを反転する。ＮＯＲ回路４ｅはインバータ４ｄ出力と、インバータ６ｄの出力（第２要求信号）と、ＮＯＲ回路６ｅの出力（第１要求信号）とを受け、ＮＯＲ演算を行う。インバータ４ｆはＮＯＲ回路４ｅの出力を反転する。ＮＯＲ回路６ｅはインバータ４ｆの出力（確認信号）と、インバータ６ｄの出力を受け、ＮＯＲ演算を行う。なお、Ｄ−ＦＦ２のクロック信号ｃｎとしてインバータ４ｆの出力信号が用いられ、クロック信号ｃとしてインバータ８の出力信号が用いられる。
【００３６】
このように、図８に示す第５実施形態以外でも、本変形例で記述した回路構成には、その論理を変えない範囲で、当然ながら無数の構成方法が可能である。このような回路構成をとっても、誤り訂正機能を実現するための追加トランジスタ数は２０個程度であり、回路のオーバーヘッドを小さく抑えたまま、誤り訂正機能を実現することが可能である。
【００３７】
図１０は、図９に示す本変形例のＤ−ＦＦ２の構成の回路動作を示す信号波形である。図６に示したと同様に、高エネルギー粒子による電圧効果と、遅延によるタイミング違反が起きたときの動作を示している。本変形例によれば、Ｄ−ＦＦ２の内部クロックｃ、ｃｎは、エラーが起きていても起きていなくても、Ｄ＝Ｑの場合にはクロックは立ち上がらない。Ｄ≠Ｑの場合、クロックの立ち上がりタイミングで、内部クロックｃ、ｃｎが立ち上がり、Ｄ−ＦＦ２にデータが保持される。また、エラーが起きた場合も、その時点でクロックが立ち上がり、多少の遅れを伴いながらも正しい値を保持できる。このときのシミュレーションによる平均電流値は０．０４８ｍＡ程度であり、特許文献１に比べて低消費電力で誤り訂正機能を実現することが可能である。なお、図４に示す第３実施形態の変形例に比べて低消費電力化されていないが、本実施形態はＤ−ＦＦ２に入力されるデータの遷移が少ないときに余分な回路動作を排除することで低消費電力を実現するものである。このため、本シミュレーションのようにデータの遷移が多い場合には、それほど大きな効果があるわけではない。逆に、データの遷移が少ない場合には、余分な回路動作が排除されるため、より大きな低消費電力効果が得られる。
【００３８】
エラーとＤ≠Ｑの時のみクロックを立ち上げる構成の一部は、図１１に示す第２変形例によるフリップフロップ回路のような構成でも実現できる。この変形例では、ＡＮＤ回路４ａからなる制御回路２からの確認信号を、ＥＸＯＲ回路６ａからなる判定回路６は受け取らず、判定回路６はＤ≠Ｑの情報のみを制御回路４に要求するだけであるので、回路規模が小さくすむという利点がある。ただし、確認信号がないので、クロックを立ち上げたにも関わらず、何らかのエラーによりＤ≠Ｑが解消されなかった場合、Ｄ−ＦＦ２はそれを知ることなく動作を続けてしまうので、エラー耐性としては落ちるという欠点もある。
【００３９】
（第６実施形態）
次に、本発明の第６実施形態によるフリップフロップ回路を図１２に示す。本実施形態のフリップフロップ回路は、図１に示す第１実施形態のＤ−ＦＦ２をフリップフロップ２Ａに置き換えた構成となっている。このフリップフロップ２Ａは、第１実施形態のＤ−ＦＦ２にテストモード信号ＴＥを受ける端子と、テストモード用入力信号ＳＩを受ける端子と、テストモード用出力信号ＳＯを受ける端子とを設けた構成となっている。
【００４０】
スキャンテストを行うときなど、外部からフリップフロップへ直接データを入力していく場合がある。そのときはテストモード信号ＴＥを入力することで、パイプラインシステム中の隣接する後段のフリップフロップ回路の入力信号ＳＩ用端子と前段のフリップフロップ回路の出力信号ＳＯ用端子をそれぞれ結んでシフトレジスタ的に動作させることが可能になる。その際テストモード信号ＴＥを判定回路６にも入力し、判定回路６の動作を一時的に停止させる。本構成はテストモードのときだけでなく、もちろん通常使用時でも必要があれば使用することは可能である。
【００４１】
本実施形態も、誤り訂正機能を可及的に小さな面積の増大で実現することができる。
【００４２】
本実施形態の第１変形例によるフリップフロップ回路を図１３に示す。本変形例は、図１２に示す第６実施形態の構成をゲートレベルで記述したものである。本変形例では、図３に示す第３実施形態の構成にテストモード信号ＴＥを受けるインバータ６ｆと、論理回路６ｃにこのインバータ６ｆの出力を受けるｎチャネルトランジスタ６ｃ４とを新たに設けた、論理回路６ｇを用いた構成となっている。ｎチャネルトランジスタ６ｃ４は、ｎチャネルトランジスタ６ｃ２、６ｃ３間に設けられる。テストモード信号ＴＥがＯＮされることで、判定回路６から要求信号の出力を止め、判定回路６の機能を一時的に停止させる。テストモード信号ＴＥが負論理の場合は、テストモード信号ＴＥを受けるインバータ６ｆを除去することができ、回路面積を縮小できる。
【００４３】
本実施形態の第２変形例によるフリップフロップ回路を図１４に示す、この変形例のフリップフロップ回路は、図８に示す第５実施形態のフリップフロップ回路にテストモード信号ＴＥを受けるインバータ６ｆを新たに設けるとともに、インバータ６ｆの出力を受けるために２入力論理回路６ｃをNAND演算する３入力論理回路６ｇに置き換えた構成となっている。テストモード信号ＴＥがＯＮされることで、判定回路６から要求信号の出力を止め、判定回路６の機能を一時的に停止させる。テストモード信号ＴＥが負論理の場合は、テストモード信号ＴＥを受けるインバータ６ｆを除去することができ、回路面積を縮小できる。
【００４４】
（第７実施形態）
次に、本発明の第７実施形態によるフリップフロップ回路を図１５に示す。本実施形態のフリップフロップ回路は、複数のＤ−ＦＦ２１、２２、・・・、２ｎ（ｎ≧２）を備え、これらのＤ−ＦＦ２１、２２、・・・、２ｎに対して判定回路６と、制御回路４とを共有した構成となっている。これにより、判定回路６や制御回路４の面積は増大するものの、回路全体の面積は縮小される。この構成によれば、複数のＤ−ＦＦ２１、２２、・・・、２ｎの入力と出力をそれぞれ判定し、一つでもエラーが検出された場合は、全体のクロックを立ち上げなおすことで、エラー耐性を持たせることができる。
【００４５】
次に、本実施形態の第１変形例によるフリップフロップ回路を図１６に示す。この変形例のフリップフロップ回路は、図１５に示す第７実施形態の構成をゲートレベルで記述した一例を示している。なお、図１６においては、Ｄ−ＦＦはＤ−ＦＦ２１のみを表示し、他のＤ−ＦＦは省略してある。本変形例では、図３に示す第３実施形態の構成に、複数のＤ≠Ｑを判定する判定回路（ＥＸＯＲ回路）を、ダイナミックゲートであるドミノ回路のＯＲ構成で接続した形となっている。すなわち、Ｄ−ＦＦ２ｉ（ｉ＝１，・・・，ｎ）のＤ≠Ｑを判定するＥＸＯＲ回路６ａｉの出力をゲートに受けるｎチャネルトランジスタ６ｃ２ｉのソース同士およびドレイン同士をそれぞれ共通に接続した構成となっている。この構成によれば、複数のＤ−ＦＦ２１、２２、・・・、２ｎのうちの少なくとも一つにエラーが起これば、クロックを再立ち上げして、データの再読み込みを実行することができ、エラー耐性を持たせることができる。また、本構成のようにドミノ回路の構成にせずに、スタティックゲートで実現する場合にも同様であり、複数のＥＸＯＲ回路をＯＲ接続することで、同じことが実現できる。
【００４６】
複数のＤ≠Ｑの判定回路をＯＲ接続する場合に、分割して接続することもできる。これにより一度にＯＲ接続するよりも動作速度を改善できる。図１７は、この構成を図８に示す第５実施形態の構成をもとにして適用した第７実施形態の第２変形例によるフリップフロップ回路を示す回路図である。このようにＯＲ接続を分割する方法は、ダイナミック回路の構成をとったときも同様に適用できることは明らかである。
【００４７】
（第８実施形態）
次に、本発明の第８実施形態によるパイプラインシステムを図１８に示す。本実施形態のパイプラインシステムは、Ｄ−ＦＦ１０１と、論理回路１０２とが直列に複数組接続されたパイプラインにおいて、少なくとも一つＤ−ＦＦ１０１を第１乃至第７実施形態のいずれかのフリップフロップ回路で置き換えた構成となっている。このようなパイプライン構成にすることで、回路全体にエラー耐性を持たせることができる。すべてのフリップフロップを上記実施形態のフリップフロップ回路に取り替えても良いし、ロジックのタイミングの厳しいところにだけ挿入しても良い。なお、図１８においては、パイプラインに導入された上記実施形態のフリップフロップ回路の後段に論理回路を含まないようにした、すなわち空のステージを設けた構成となっている。
【００４８】
上記実施形態のフリップフロップ回路により、エラーを回避したとき、その後段のロジックはタイミングが厳しくなる。通常は、すべてのロジックで最悪遅延時間の計算が行われているわけではないので、どこかのタイミングで吸収できるわけではない。このため、図１８に示すように、空のステージを用意することで、より確実なエラー耐性を実現することができる。空のステージは導入された上記実施形態のフリップフロップ回路の後であれば、直後でも、パイプライン全体の最後でも、どこでも良い。
【００４９】
以上の実施形態において、その回路構成はこれに限定するものではなく、論理的な変換により、同様の効果を持った回路構成をとることが可能であることは自明である。フリップフロップは、立ち上がりエッジトリガのものを想定して説明を行ったが、立下りエッジトリガのものでも同様に考えることができる。その場合はクロックを負論理として、反転回路を挿入し、論理変換により最適な回路を構成を実現することができる。
【００５０】
以上説明したように、本発明の各実施形態によれば、誤り耐性を持ったシステムを実現することが可能になる。
【図面の簡単な説明】
【００５１】
【図１】第１実施形態によるフリップフロップ回路の基本的な構成を示すブロック図。
【図２】第２実施形態によるフリップフロップ回路を示す回路図。
【図３】第３実施形態によるフリップフロップ回路を示す回路図。
【図４】第３実施形態の第１変形例によるフリップフロップ回路を示す回路図。
【図５】第３実施形態の第２変形例によるフリップフロップ回路を示す回路図。
【図６】第３実施形態の動作を示す信号波形図。
【図７】第４実施形態によるフリップフロップ回路を示す回路図。
【図８】第５実施形態によるフリップフロップ回路を示す回路図。
【図９】第５実施形態の第１変形例によるフリップフロップ回路を示す回路図。
【図１０】第５実施形態の第１変形例によるフリップフロップ回路の動作を示す信号波形図。
【図１１】第５実施形態の第２変形例によるフリップフロップ回路を示す回路図。
【図１２】第６実施形態によるフリップフロップ回路を示す回路図。
【図１３】第６実施形態の第１変形例によるフリップフロップ回路を示す回路図。
【図１４】第６実施形態の第２変形例によるフリップフロップ回路を示す回路図。
【図１５】第７実施形態によるフリップフロップ回路を示す回路図。
【図１６】第７実施形態の第１変形例によるフリップフロップ回路を示す回路図。
【図１７】第７実施形態の第２変形例によるフリップフロップ回路を示す回路図。
【図１８】第８実施形態によるパイプラインシステムを示すブロック図。
【符号の説明】
【００５２】
２  Ｄ−ＦＦ（Ｄ型フリップフロップ）
４  制御回路
６  判定回路
【図１】
2008085592.tif 000003
【図２】
2008085592.tif 000004
【図３】
2008085592.tif 000005
【図４】
2008085592.tif 000006
【図５】
2008085592.tif 000007
【図６】
2008085592.tif 000008
【図７】
2008085592.tif 000009
【図８】
2008085592.tif 000010
【図９】
2008085592.tif 000011
【図１０】
2008085592.tif 000012
【図１１】
2008085592.tif 000013
【図１２】
2008085592.tif 000014
【図１３】
2008085592.tif 000015
【図１４】
2008085592.tif 000016
【図１５】
2008085592.tif 000017
【図１６】
2008085592.tif 000018
【図１７】
2008085592.tif 000019
【図１８】
2008085592.tif 000020
【手続補正書】
【提出日】平成19年10月2日(2007.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のクロック信号の立ち上がりエッジまたは立ち下がりエッジの一方のエッジに基づいて動作するフリップフロップと、
前記フリップフロップの入力と出力とを比較し、異なる場合に要求信号を出力する判定回路と、
外部からの第２のクロック信号を受け、前記第１のクロック信号および確認信号を発生する制御回路と、
を備え、前記制御回路は、前記判定回路から前記要求信号が送られてきたときに前記フリップフロップが動作後であれば、前記第１のクロック信号を反転させかつ前記確認信号を前記判定回路に送出し、前記判定回路に前記要求信号を解除させることを特徴とするフリップフロップ回路。
【請求項２】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、前記不一致検出回路の出力と前記遅延素子の出力とに基づいてＮＡＮＤ演算し、前記要求信号を出力する論理回路とを有し、
前記ＡＮＤ回路は前記第２のクロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項３】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、前記不一致検出回路の出力と前記遅延素子の出力とに基づいて演算する論理回路とを有し、
前記論理回路は前記遅延素子の出力をゲートに受けソースが電源に接続されるｐチャネルトランジスタと、前記不一致検出回路の出力をゲートに受け、ドレインが前記ｐチャネルトランジスタのドレインに接続される第１のｎチャネルトランジスタと、前記遅延素子の出力をゲートに受け、ドレインが前記第１のｎチャネルトランジスタのソースに接続され、ソースが接地される第２のｎチャネルトランジスタと、を備え、前記ｐチャネルトランジスタと前記第１のｎチャネルトランジスタの共通接続ノードから前記要求信号を出力し、
前記ＡＮＤ回路は前記第２のクロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項４】
前記フリップフロップは、前記第１クロック信号に基づいて動作する第１のラッチ回路と、前記第１のラッチ回路に直列に接続され前記第１のクロック信号の反転信号に基づいて動作する第２のラッチ回路とを備え、
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、前記不一致検出回路の出力と前記遅延素子の出力とに基づいて演算する論理回路とを有し、
前記不一致検出回路は、前記フリップフロップの入力データの反転信号に基づいて前記第２のラッチ回路の入力の取り込みまたは遮断の制御する第１のトランスファーゲートと、前記フリップフロップの入力データに基づいて前記第２のラッチ回路の出力の取り込みまたは遮断の制御する第２のトランスファーゲートと、を備え、前記第１および第２のトランスファーゲートの出力端子が共通に接続され、
前記論理回路は前記遅延素子の出力をゲートに受けソースが電源に接続されるｐチャネルトランジスタと、前記不一致検出回路の出力をゲートに受け、ドレインが前記ｐチャネルトランジスタのドレインに接続される第１のｎチャネルトランジスタと、前記遅延素子の出力をゲートに受け、ドレインが前記第１のｎチャネルトランジスタのソースに接続され、ソースが接地される第２のｎチャネルトランジスタと、を備え、前記ｐチャネルトランジスタと前記第１のｎチャネルトランジスタの共通接続ノードから前記要求信号を出力し、
前記ＡＮＤ回路は前記第２クロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。  
【請求項５】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力と前記不一致回路の出力とに基づいてＮＡＮＤ演算する論理回路と、前記論理回路の出力を遅延する遅延素子と、を有し、
前記ＡＮＤ回路は前記第２のクロック信号と、前記不一致検出回路の出力と、前記遅延素子の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記論理回路に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項６】
前記フリップフロップは、前記第１のクロック信号に基づいて動作する第１のラッチ回路と、前記第１のラッチ回路に直列に接続され前記第１のクロック信号の反転信号に基づいて動作する第２のラッチ回路とを備え、
前記制御回路は、前記第２クロック信号を反転する第１のインバータと、第１のＮＯＲ回路と、前記第１のＮＯＲ回路の出力を反転する第２のインバータとを有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記不一致検出回路の出力を反転する第３のインバータと、前記第３のインバータの出力と前記第２のインバータの出力とに基づいてＮＯＲ演算する第２のＮＯＲ回路とを有し、
前記不一致検出回路は、前記フリップフロップの入力データの反転信号に基づいて前記第２のラッチ回路の入力の取り込みまたは遮断の制御する第１のトランスファーゲートと、前記フリップフロップの入力データに基づいて前記第２のラッチ回路の出力の取り込みまたは遮断の制御する第２のトランスファーゲートと、を備え、前記第１および第２のトランスファーゲートの出力端子が共通に接続され、
前記第１のＮＯＲ回路は前記第２のクロック信号の反転値と、前記不一致回路の出力と、前記第２のＮＯＲ回路の出力とに基づいてＮＯＲ演算することを特徴とする請求項１記載のフリップフロップ回路。
【請求項７】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、前記ＡＮＤ回路の出力を遅延させる遅延素子と、テストモード信号と前記不一致検出回路の出力と前記遅延素子の出力とに基づいてＮＡＮＤ演算し、前記要求信号を出力する論理回路とを有し、
前記ＡＮＤ回路は前記第２のクロック信号と前記論理回路の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記遅延素子に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項８】
前記制御回路はＡＮＤ回路を有し、
前記判定回路は、前記フリップフロップの入力および出力の不一致を検出する不一致検出回路と、テストモード信号と前記不一致検出回路の出力と前記ＡＮＤ回路の出力とに基づいてＮＡＮＤ演算する論理回路と、前記論理回路の出力を遅延する遅延素子とを有し、  前記ＡＮＤ回路は前記第２のクロック信号と前記不一致回路の出力と前記遅延素子の出力とに基づいてＡＮＤ演算し、出力である前記確認信号を前記フリップフロップおよび前記論理回路に送出することを特徴とする請求項１記載のフリップフロップ回路。
【請求項９】
フリップフロップと論理回路との組が複数個直列に接続され、少なくとも一組のフリップフロップが請求項１乃至８のいずれかに記載のフリップフロップ回路に置き換えられていることを特徴とするパイプラインシステム。
【請求項１０】
前記フリップフロップ回路に置き換えられた組の後段の少なくとも一組は論理回路が省略されていることを特徴とする請求項９記載のパイプラインシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
上記実施形態のフリップフロップ回路により、エラーを回避したとき、その後段のロジックはタイミングが厳しくなる。通常は、すべてのロジックで最悪遅延時間の計算が行われているわけではないので、どこかのタイミングで吸収できると期待される。しかし、すべてのケースでそれが成り立つとは限らない。このため、図１８に示すように、空のステージを用意することで、より確実なエラー耐性を実現することができる。空のステージは導入された上記実施形態のフリップフロップ回路の後であれば、直後でも、パイプライン全体の最後でも、どこでも良い。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2008085592.tif 000021