(57)【特許請求の範囲】
【請求項１】
クロックに応じて、入力データを取り込んで保持するラッチ回路であって、
前記クロックに応じて、前記入力データを通過させるトランスファーゲートと、
４個以上の偶数個のインバータを直列にループを形成するように接続し、初段の入力および最終段の出力が前記トランスファーゲートの出力に接続されたループ状インバータ列と、を備え、
前記ループ状インバータ列の４個以上のインバータの駆動力は、前段より後段になるほど大きいことを特徴とするラッチ回路。
【請求項２】
入力データを取り込んで保持する第１ラッチパスと、
前記入力データを取り込んで保持する第２ラッチパスと、
前記第１ラッチパスの出力と前記第２ラッチパスの出力を受け、前記第１ラッチパスの出力および前記第２ラッチパスの出力の両方が変化した時のみ出力が変化する出力部とを、備え、
前記第１ラッチパスおよび前記第２ラッチパスは、それぞれマスタラッチと、スレーブラッチと、を備え、
前記第１ラッチパスおよび前記第２ラッチパスの前記マスタラッチは、請求項１記載のラッチ回路を備えることを特徴とするデータ保持回路。
【請求項３】
前記出力部は、
高電位電源と低電位電源の間に直列に接続した４個のトランジスタを備え、
直列に接続された前記４個のトランジスタの両側の２個のトランジスタのゲートに、前記第１ラッチパスの出力と前記第２ラッチパスの出力の一方が、内側の２個のトランジスタのゲートに、前記第１ラッチパスの出力と前記第２ラッチパスの出力の他方が、供給される請求項２記載のデータ保持回路。
【請求項４】
クロックに同期して入力データを取り込んで保持するマスタラッチと、
前記クロックを反転した逆相クロックに同期して前記マスタラッチの出力するマスタデータを取り込んで保持するスレーブラッチと、を備えるマスタ・スレーブ型データ保持回路であって、
前記マスタラッチは、請求項１記載のラッチ回路を有することを特徴とするマスタ・スレーブ型データ保持回路。
【請求項５】
前記スレーブラッチは、請求項１記載のラッチ回路であることを特徴とする請求項４記載のマスタ・スレーブ型データ保持回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラッチ回路およびデータ保持回路に関する。
【背景技術】
【０００２】
クロックに同期して入力データを取り込んで保持するラッチ回路、フリップフロップあるいはデータ保持回路などと呼ばれる回路が広く使用されている。ここでは、説明を簡単にするために、入力データを保持する部分が１個のものをラッチ回路、入力データを保持する部分が２個以上のものをデータ保持回路と称する。
【０００３】
近年、回路の特定箇所が永久的に破壊されるハードエラーのほかに、半導体チップ中でランダムに誤動作を発生するが、その後正常状態に再生可能な一過性のソフトエラーが注目されている。ソフトエラーは、二次宇宙線の中性子線やＬＳＩ材料からのアルファ線などの入射に起因して発生すると考えられている。
【０００４】
ソフトエラーは、回路の各箇所で発生するが、ゲート回路でソフトエラーが発生しても、ゲート回路の入力が変化しなければゲート回路の出力は直ちに元の値に復帰するので影響は小さい。これに対して、ラッチ回路またはデータ保持回路の入力データがこれらの回路に取り込まれる（ラッチされる）時に、ソフトエラーにより入力データにエラーが発生すると、誤ったデータが取り込まれて保持されることになる。ラッチ回路またはデータ保持回路に保持されたデータは、正しいデータに復帰せず、後段の回路に出力されるので、エラーの影響が大きくなる。これは、ラッチ回路またはデータ保持回路にソフトエラーが発生し、保持しているデータが変化した場合も同様である。
【０００５】
そのため、一般的には、ラッチ回路またはデータ保持回路の入力データおよびラッチ回路またはデータ保持回路に保持されたデータがソフトエラーにより変化しないようにする対策が行われる。
【０００６】
図１は、マスタ・スレーブ型ラッチを有するデータ保持回路の動作を説明する図である。
【０００７】
図１の（Ａ）に示すように、データ保持回路１０は、マスタラッチ１１と、スレーブラッチ１２と、を有し、組合せ回路１からの入力データＤｉｎを取り込んで保持し、出力データＤｏｕｔを出力する。マスタラッチ１１は、ＣＬＫに同期して動作し、ＣＬＫが「低（Ｌ）」の時に入力データを取り込み、ＣＬＫがＬから「高（Ｈ）」に変化する時のデータを、ＣＬＫがＨの間保持してスレーブラッチ１２に出力する。スレーブラッチ１２は、ＣＬＫの逆相の逆相クロックＸＣＬＫに同期して動作し、ＸＣＬＫがＬの時にマスタラッチ１１からのデータを取り込み、ＸＣＬＫがＬからＨに変化する時のデータを、ＸＣＬＫがＨの間保持して出力Ｄｏｕｔとして出力する。
【０００８】
図１の（Ｂ）に示すように、ＤｉｎがＬの状態で、ＣＬＫおよびＸＣＬＫが変化する場合を考える。マスタラッチ１１は、ＣＬＫのＬからＨへの変化時にＬであるＤｉｎを取り込み、ＣＬＫがＨの間保持する。スレーブラッチ１２は、ＸＣＬＫのＬからＨへの変化時、すなわちＣＬＫのＨからＬへの変化時に、Ｌであるマスタラッチ１１の出力データを取り込み、ＸＣＬＫがＨの間、すなわちＣＬＫがＬの間保持する。ＣＬＫのＬからＨへの変化時以外の期間に、組合せ回路１でのソフトエラーにより入力データＤｉｎにエラーが発生しても、データ保持回路１０に取り込まれる（ラッチされる）前に正しいデータに復帰する場合にはエラーが伝播することはない。しかし、図１の（Ｂ）で破線で示すように、ＣＬＫのＬからＨへの変化時に、入力データＤｉｎにエラーが発生した場合、誤った入力データがデータ保持回路１０に取り込まれ（ラッチされ）、誤った出力データＤｏｕｔが出力される。
【０００９】
現在、ソフトエラーに対して様々な対策が考えられている。広く使用される対策の１つは、パリティチェックなどによりエラーが発生したことが検出して必要な処置を実行することであり、例えばエラー修正を行う。例えば、ＥＣＣ(Error Correction Code)回路は、比較的簡単にエラー修正をすることが可能である。これにより、エラーが発生してもシステムは、影響されない。しかし、この対策は、データビット数を増加させる必要があり、回路規模が大幅に増加などの問題を発生する。
【００１０】
他の対策は、ソフトエラーは発生する範囲が限定され、組合せ回路で発生したエラーは短時間で正常な状態に復帰することに着目した方法である。
【００１１】
しかし、提案されている対策は、遅延要素を使用するため、応答速度が遅くなることや、遅延要素を実現する回路が大きいため回路サイズが大きくなることなどの問題があった。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平１０−３３５９９２号公報
【特許文献２】特開２００９−１３０４４１号公報
【特許文献３】特開２００７−３１２１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
実施形態によれば、応答速度の低下が比較的少なく、小さな回路サイズで実現できるラッチ回路およびデータ保持回路が実現される。
【課題を解決するための手段】
【００１４】
本発明の第１の観点によれば、クロックに応じて、入力データを取り込んで保持するラッチ回路であって、クロックに応じて、前記入力データを通過させるトランスファーゲートと、４個以上の偶数個のインバータを直列にループを形成するように接続し、初段の入力および最終段の出力がトランスファーゲートの出力に接続されたループ状インバータ列と、を有し、ループ状インバータ列の４個以上のインバータの駆動力は、前段より後段になるほど大きいラッチ回路が提供される。
【００１５】
本発明の第２の観点によれば、入力データを取り込んで保持する第１ラッチパスと、入力データを取り込んで保持する第２ラッチパスと、第１ラッチパスの出力と第２ラッチパスの出力を受け、第１ラッチパスの出力および第２ラッチパスの出力の両方が変化した時のみ出力が変化する出力部とを、備え、第１ラッチパスおよび第２ラッチパスは、それぞれマスタラッチと、スレーブラッチと、を備え、第１ラッチパスおよび第２ラッチパスのマスタラッチは、本発明の第１の観点のラッチ回路を有するデータ保持回路が提供される。
【００１６】
本発明の第３の観点によれば、クロックに同期して入力データを取り込んで保持するマスタラッチと、クロックを反転した逆相クロックに同期してマスタラッチの出力するマスタデータを取り込んで保持するスレーブラッチと、を備えるマスタ・スレーブ型データ保持回路であって、マスタラッチは、本発明の第１の観点のラッチ回路を有するマスタ・スレーブ型データ保持回路が提供される。
【発明の効果】
【００１７】
実施形態によれば、応答速度の低下が比較的少なく、小さな回路サイズで実現できるラッチ回路およびデータ保持回路が実現される。
【図面の簡単な説明】
【００１８】
【図１】図１は、マスタ・スレーブ型ラッチを有するデータ保持回路の動作を説明する図である。
【図２】図２は、データ保持回路に入力する入力データにソフトエラーが発生した場合の対策例を示す図である。
【図３】図３は、入力データにおけるソフトエラーおよび保持したデータにおけるソフトエラーが発生した場合に誤動作も防止する対策を行ったデータ保持回路例を示す図である。
【図４】図４は、第１実施形態のラッチ回路の構成を示す図である。
【図５】図５は、図４に示した第１実施形態のラッチ回路を、マスタ・スレーブ型データ保持回路に適用した第２実施形態のデータ保持回路を示す図である。
【図６】図６は、遅延要素を使用したデータ保持回路と第２実施形態のデータ保持回路の、遅延時間、１ＧＨｚ動作時の消費電力（パワー）および回路面積を比較したシミュレーション結果を示す図である。
【図７】図７は、第１実施形態のラッチ回路を、マスタ・スレーブ型のデータ保持回路に使用した他の回路例を示す図である。
【発明を実施するための形態】
【００１９】
実施形態を説明する前に、データ保持回路におけるソフトエラー対策の基本構成を説明する。
【００２０】
図２は、データ保持回路に入力する入力データにソフトエラーが発生した場合の対策例を示す図である。
【００２１】
図２の（Ａ）に示すように、入力データＤｉｎは、組合せ回路の出力部を形成するインバータ２から出力される。データ保持回路１０の前段に、遅延要素（τ）１３と、Ｃエレメント回路１４と、を設ける。遅延要素（τ）１３は、Ｄｉｎを遅延時間Ｔｄだけ遅延させる。Ｃエレメント回路１４は、高電位電源（Ｖｄｄ）と低電位電源（ＧＮＤ）の間に直列に接続し２個のＰチャネルトランジスタと２個のＮチャネルトランジスタを有する。４個のトランジスタのうちの外側のＰチャネルトランジスタとＮチャネルトランジスタのゲートにはＤｉｎが、内側のＰチャネルトランジスタとＮチャネルトランジスタのゲートには、遅延要素１３の出力が供給される。ここでは、遅延要素１３の出力をＡで、ＤｉｎをＢで表す。内側のＰチャネルトランジスタとＮチャネルトランジスタの接続ノードから出力Ｑが得られる。
【００２２】
図２の（Ｃ）に示すように、Ｃエレメント回路１４の出力Ｑは、ＡとＢの両方が“０”（Ｌ）の時に “１”（Ｈ）となり、ＡとＢの両方が“１”の時に “０”となり、ＡとＢが異なる値の時には、前の値を維持する。
【００２３】
図２の（Ｂ）に示すように、組合せ回路からの入力データＤｉｎが“０”（Ｌ）の時に、ソフトエラーが発生し、一時的に“１”（Ｈ）に変化するパルスが発生した場合、ＡとＢに時間差Ｔｄで“１”（Ｈ）のパルスが発生する。パルス幅に比べて時間差Ｔｄが大きい場合には、ＡとＢの両方が“１”（Ｈ）になることはないので、Ｑは“１”（Ｈ）の状態を維持する。言い換えれば、データ保持回路１０に、誤った入力データが入力されることはない。これは、力データＤｉｎが“１”（Ｈ）の時も同様である。
【００２４】
図３は、入力データにおけるソフトエラーおよび保持したデータにおけるソフトエラーが発生した場合に誤動作も防止する対策を行ったデータ保持回路例を示す図である。
【００２５】
図３の（Ａ）に示すように、このデータ保持回路は、マスタ・スレーブ型であり、前段のマスタラッチおよび後段のスレーブラッチは、それぞれ２つのラッチパスを有する。マスタラッチは、入力部に入力データＤｉｎを反転するインバータＩＶ１と、第１のラッチパスと、第２のラッチパスと、図２に示したＣエレメント回路２２と、キーパ回路２３と、を有する。第１のラッチパスは、インバータＩＶ１の出力を遅延する遅延要素（τ）２１と、トランスファーゲートＭＴＧＡと、ループ状に接続された２個のインバータＭＩＡ１およびＭＩＡ２と、を有する。第２のラッチパスは、トランスファーゲートＭＴＧＢと、ループ状に接続された２個のインバータＭＩＢ１およびＭＩＢ２と、を有する。
【００２６】
スレーブラッチは、第１のラッチパスと、第２のラッチパスと、Ｃエレメント回路２４と、キーパ回路２５と、を有する。第１のラッチパスは、トランスファーゲートＳＴＧＡと、ループ状に接続された２個のインバータＳＩＡ１およびＳＩＡ２と、を有する。第２のラッチパスは、トランスファーゲートＳＴＧＢと、ループ状に接続された２個のインバータＳＩＢ１およびＳＩＢ２と、を有する。
【００２７】
図３の（Ｂ）は、キーパ回路２３および２５の回路構成を示す図である。キーパ回路２３および２５は、２個のインバータをループ状に接続した回路であり、接続されるノードの状態を安定に保持するように作用する。
【００２８】
マスタラッチの第１のラッチパスでは、インバータＩＶ１の出力が、遅延要素２１で遅延された後、トランスファーゲートＭＴＧＡに入力される。トランスファーゲートＭＴＧＡの出力は、インバータＭＩＡ１に入力される。インバータＭＩＡ１の出力は、インバータＭＩＡ２に入力されると共に、Ｃエレメント回路２２に入力される。インバータＭＩＡ２の出力は、インバータＭＩＡ１に入力される。２個のインバータＭＩＡ１およびＭＩＡ２は、フリップフロップを形成する。トランスファーゲートＭＴＧＡは、クロックＣＬＫに同期して状態が変化し、ＣＬＫがＬの時に通過状態になり、ＣＬＫがＨの時に遮断状態になる。また、インバータＭＩＡ２は、入力を反転する動作を行い、クロックＣＬＫに同期して状態が変化し、ＣＬＫがＬの時に出力が変化する状態に、ＣＬＫがＨの時には出力が保持される状態になる。
【００２９】
マスタラッチの第１のラッチパスでは、ＣＬＫがＬの時に、遅延された反転入力データがトランスファーゲートＭＴＧＡ通過してインバータＭＩＡ１に入力される。さらに、インバータＭＩＡ１の出力が、動作状態のインバータＭＩＡ２で反転されて、インバータＭＩＡ１に入力され、インバータＭＩＡ１とインバータＭＩＡ２が形成するフリップフロップに入力データが保持される。ＣＬＫがＬからＨに変化すると、トランスファーゲートＭＴＧＡは遮断状態になり、インバータＭＩＡ２は出力が変化しない状態になるので、第１のパスは、ＣＬＫがＬからＨに変化した時の状態を維持することになる。言い換えれば、第１のラッチパスは、ＣＬＫのＬからＨへの変化に同期して遅延した入力データＤｉｎを取り込み、取り込んだデータを保持する。
【００３０】
マスタラッチの第２のラッチパスは、インバータＩＶ１の出力が、遅延されずに入力される以外は、第１のラッチパスと同様の動作を行う。
【００３１】
入力データＤｉｎにソフトエラーが発生しない場合には、マスタラッチの第１のラッチパスと第２のラッチパスには同じ正常な入力データが取り込まれて保持される。第１のラッチパスと第２のラッチパスが取り込む入力データには時間遅延があるため、入力データＤｉｎにソフトエラーが発生してパルス状の誤ったデータになった場合でも、誤ったデータが同時に第１のラッチパスと第２のラッチパスに取り込まれることはない。具体的には、入力データＤｉｎにおける誤ったデータのパルス幅が遅延要素２１の遅延時間より短ければ、マスタラッチの第１のラッチパスと第２のラッチパスの両方に、同じ誤ったデータが取り込まれて保持されることはない。前述のように、Ｃエレメント回路２２は、２つの入力が同じ場合のみ出力が変化し、２つの入力が異なる場合には直前の出力を維持する。マスタラッチの第１のラッチパスと第２のラッチパスに保持されたデータの両方が誤ったデータにはならないので、入力データＤｉｎにソフトエラーが発生した場合でも、Ｃエレメント回路２２の出力は誤ったデータにならない。
【００３２】
さらに、マスタラッチの第１のラッチパスと第２のラッチパスの一方でソフトエラーが発生して、一方に保持されたデータが誤ったデータに変化した場合も、第１のラッチパスと第２のラッチパスに保持されたデータが異なる状態になる。そのため、Ｃエレメント回路２２の出力は変化せず、誤ったデータにならない。
【００３３】
スレーブラッチの第１および第２のラッチパスは、Ｃエレメント回路２２の出力が入力され、ＸＣＬＫに同期して動作する以外は、マスタラッチの第２のラッチパスと同様の動作を行う。
【００３４】
上記のように、マスタラッチのＣエレメント回路２２がソフトエラーによる誤ったデータを出力することはないので、マスタラッチの第１のラッチパスのように、遅延要素２１を設ける必要はない。さらに、スレーブラッチの第１のラッチパスと第２のラッチパスの一方でソフトエラーが発生して、一方に保持されたデータが誤ったデータに変化した場合も、第１のラッチパスと第２のラッチパスに保持されたデータが異なる状態になる。そのため、Ｃエレメント回路２２の出力は変化せず、誤ったデータにならない。
【００３５】
以上のように、図３のデータ保持回路は、ソフトエラーにより入力データが一時的に（パルス状に）誤ったデータになっても、またデータ保持回路が保持しているデータにソフトエラーが発生しても、誤ったデータを出力することはない。
【００３６】
図２および図３に示したデータ保持回路は、いずれも遅延要素を使用する。遅延要素は、例えば、容量素子、抵抗およびインバータなどにより実現されるが、一般に回路サイズが大きくなるという問題があった。また、遅延要素を使用するため、出力が得られるまでの応答時間が長くなり、高速のデータ保持回路の実現が難しいという問題があった。
【００３７】
以下に説明する実施形態のラッチ回路およびデータ保持回路は、比較的小さな回路サイズで実現でき、応答時間も比較的短く、高速動作が可能である。
【００３８】
図４は、第１実施形態のラッチ回路の構成を示す図である。
【００３９】
図４に示すように、第１実施形態のラッチ回路は、インバータＩＶ１０と、トランスファーゲートＴＧと、ループ状に接続された４個のインバータＩＶ１１−ＩＶ１４と、インバータＩＶ１５と、を有する。インバータＩＶ１１−ＩＶ１４の駆動力（ドライブ能力）は、前段より後段になるほど大きくなる。言い換えれば、インバータＩＶ１１の駆動力＜インバータＩＶ１２の駆動力＜インバータＩＶ１３の駆動力＜インバータＩＶ１４の駆動力の関係を有する。駆動力は、トランジスタのゲート幅などにより異ならせる。
【００４０】
インバータＩＶ１０は、入力データＤｉｎを反転してトランスファーゲートＴＧに出力する。トランスファーゲートＴＧの出力は、インバータＩＶ１１およびＩＶ１５に入力される。インバータＩＶ１５の出力は、出力データＤｏｕｔである。なお、インバータＩＶ１５を設けずに、インバータＩＶ１１の出力を出力データＤｏｕｔとすることも可能である。
【００４１】
４個のインバータＩＶ１１−ＩＶ１４は、ループ状に接続されるので、フリップフロップを形成する。トランスファーゲートＴＧは、クロックＣＬＫに同期して状態が変化し、ＣＬＫがＬの時に通過状態になり、ＣＬＫがＨの時に遮断状態になる。また、インバータＩＶ１４は、入力を反転する動作を行い、クロックＣＬＫに同期して状態が変化し、ＣＬＫがＬの時に出力が変化する状態に、ＣＬＫがＨの時には出力が保持される状態になる。
【００４２】
第１実施形態のラッチ回路では、ＣＬＫがＬの時に、反転された入力データがトランスファーゲートＴＧ通過してインバータＩＶ１１およびインバータＩＶ１５に入力される。さらに、インバータＩＶ１１の出力が、インバータＩＶ１２、ＩＶ１３および動作状態のインバータＩＶ１４の順に伝達され、インバータＩＶ１４の出力は、インバータＩＶ１１の入力にフィードバックされる。インバータＩＶ１４の出力がインバータＩＶ１１の入力にフィードバックされているため、トランスファーゲートＴＧを通過してインバータＩＶ１１に入力される信号が、４個のインバータが形成するフリップフロップの状態を変化させるにはある程度の時間を要する。特に、インバータＩＶ１１の入力には、トランスファーゲートＴＧを通過した反転した入力データだけでなく、駆動力の大きなインバータＩＶ１４の出力も印加されているため、ある程度の時間が必要である。このように、入力データＤｉｎは、ある程度の時間が経過すると、４個のインバータが形成するフリップフロップに保持される。
【００４３】
ＣＬＫがＬからＨに変化すると、トランスファーゲートＴＧは遮断状態になり、インバータＩＶ１１およびインバータＩＶ１４の出力が変化しない状態になるので、フリップフロップは、ＣＬＫがＬからＨに変化した時の状態を維持することになる。
【００４４】
上記のように、第１実施形態のラッチ回路は、入力データＤｉｎが変化した状態をある程度の時間以上継続しないと保持しているデータを変化させない。ソフトエラーにより入力データＤｉｎが一時的に（パルス状に）誤ったデータになる場合、パルス幅は狭く、４個のインバータが形成するフリップフロップに保持されるデータを変化させることはできないので、ソフトエラーによる誤った入力データを保持することはない。このように、第１実施形態のラッチ回路は、入力データＤｉｎのソフトエラーによる影響を受けにくくなっている。
【００４５】
次に、ラッチ回路内で、具体的には４個のインバータＩＶ１１−ＩＶ１４のいずれかでソフトエラーによるパルス状の変化が発生した場合を考える。前述のように、ソフトエラーによる誤ったデータのパルス幅は小さいので、４個のインバータが形成するフリップフロップの状態を変化させることはできない。例えば、駆動力の小さな前段のインバータ（例えばインバータＩＶ１１）でソフトエラーによるパルス状の変化が発生した場合、インバータＩＶ１２、ＩＶ１３およびＩＶ１４の順に状態を変化させる必要があり、それにはある程度の時間が必要である。そのため、パルス幅は小さなソフトエラーによる誤ったデータでは、フリップフロップの状態を変化させることはできない。また、駆動力の大きな後段のインバータ（例えばインバータＩＶ１４）でソフトエラーによるパルス状の変化が発生した場合、インバータの出力が変化すれば、フリップフロップの状態を変化させることができる。しかし、インバータの駆動力が大きいということは、インバータの入力もその分大きい必要があり、そもそも駆動力の大きなインバータの状態を変化させることができない。このように、第１実施形態のラッチ回路は、保持しているデータのソフトエラーによる影響を受けにくくなっている。
【００４６】
以上説明したように、第１実施形態のラッチ回路は、ソフトエラーの影響を受けにくい。また、図２および図３の回路のように遅延要素を使用しないので、回路サイズを小さくできる。
【００４７】
図４に示した第１実施形態のラッチ回路は、各種のデータ保持回路に応用することが可能である。
【００４８】
図５は、図４に示した第１実施形態のラッチ回路を、マスタ・スレーブ型データ保持回路に適用した第２実施形態のデータ保持回路を示す図である。
【００４９】
第２実施形態のデータ保持回路は、入力データＤｉｎを反転するインバータＩＶ１と、第１マスタ・スレーブパスと、第２マスタ・スレーブパスと、Ｃエレメント回路３１と、キーパ回路３２と、インバータＩＶ２２と、を有する。  第１マスタ・スレーブパスと第２マスタ・スレーブパスは、同じ構成を有する。Ｃエレメント回路３１は、図２に示した回路１４と同じ構成を有し、第１マスタ・スレーブパスと第２マスタ・スレーブパスの出力を受け、両方が同じ時に対応した出力を行い、異なる時には前の出力を維持する。インバータＩＶ２２は、Ｃエレメント回路３１の出力を反転して出力データＤｏｕｔとして出力する。キーパ回路３２は、図３の（Ｂ）の構成を有し、Ｃエレメント回路３１の出力を安定に保持する。
【００５０】
第１マスタ・スレーブパスは、マスタラッチと、スレーブラッチと、を有する。マスタラッチは、図４に示した第１実施形態のラッチ回路と略同一の回路であるが、フリップフロップを形成する初段のインバータＭＩＶＡ１から出力を得ていることが異なる。スレーブラッチは、図３の（Ａ）に示したスレーブラッチと略同一の回路であるが、トランスファーゲートの変わりにクロック同期式のインバータＩＧＡが使用されていることが異なる。マスタラッチの動作および特徴は、図４に示した第１実施形態のラッチ回路と略同一であり、スレーブラッチの動作および特徴は、図３の（Ａ）に示した例と略同一であるから、説明は省略する。
【００５１】
第２実施形態のデータ保持回路では、第１および第２マスタ・スレーブパスのマスタラッチは、第１実施形態のラッチ回路と同様に、入力データＤｉｎのソフトエラーによる影響を受けにくく、保持しているデータのソフトエラーによる影響を受けにくい。第１および第２マスタ・スレーブパスのスレーブラッチは、保持しているデータがソフトエラーにより変化する場合が起こり得るが、Ｃエレメント回路３１が設けられているため、ソフトエラーに起因する誤ったデータを出力することはない。
【００５２】
図６は、図３の（Ａ）の遅延要素を使用したデータ保持回路と図５の第２実施形態のデータ保持回路の、遅延時間、１ＧＨｚ動作時の消費電力（パワー）および回路面積を、図３の（Ａ）のデータ保持回路を１として比較したシミュレーション結果を示す。第２実施形態のデータ保持回路では、遅延時間およびパワーが７〜８％改善し、面積が１８％改善した。
【００５３】
図７は、図４に示した第１実施形態のラッチ回路を、マスタ・スレーブ型のデータ保持回路に使用した他の回路例を示す図である。
【００５４】
図７の（Ａ）は、一般的なマスタ・スレーブ型のデータ保持回路のマスタラッチに、図４に示した第１実施形態のラッチ回路を使用した例を示す。
【００５５】
図７の（Ｂ）は、一般的なマスタ・スレーブ型のデータ保持回路のマスタラッチおよびスレーブラッチの両方に、図４に示した第１実施形態のラッチ回路を使用した例を示す。
【００５６】
図７の（Ａ）および（Ｂ）に示した回路の構成、動作および特徴は、これまでの説明から明らかであるので、詳しい説明は省略する。
【００５７】
以上、実施形態を説明したが、フリップフロップを形成するループ状に接続されたインバータの個数は、偶数であることが必要であるが、４個以上であればよい。
【００５８】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００５９】
１    組合せ回路
１０    データ保持回路
１１    マスタラッチ
１２    スレーブラッチ
３１    Ｃエレメント回路
３２    キーパ回路
Ｄｉｎ    入力データ
ＴＧ    トランスファーゲート
ＩＶ１１−ＩＶ１５    インバータ
【図１】
0005707964.tif 000002
【図２】
0005707964.tif 000003
【図３】
0005707964.tif 000004
【図４】
0005707964.tif 000005
【図５】
0005707964.tif 000006
【図６】
0005707964.tif 000007
【図７】
0005707964.tif 000008