(57)【要約】【課題】従来のフリップフロップは、消費電力を十分に削減できない問題があった。【解決手段】一実施の形態によれば、半導体装置は、入力データと出力データの不一致を検出して不一致検出信号Ｓ１１を出力する不一致検出回路１１と、不一致検出信号Ｓ１１と動作クロック信号ＣＫＳとに基づき内部クロック信号ＣＫｘを生成するセットリセットラッチ１２と、内部クロック信号ＣＫｘをトリガ信号として入力データを保持するデータ保持部１５と、を有し、セットリセットラッチを反転論理和回路又は反転論理積回路により構成する。【選択図】図１
2014158176.tif 000002
【特許請求の範囲】
【請求項１】
入力データと出力データの不一致を検出して、不一致検出信号を出力する不一致検出回路と、
セット入力端子とリセット入力端子との一方に前記不一致検出信号が入力され、前記セット入力端子と前記リセット入力端子との他方に動作クロック信号が入力され、前記不一致検出回路と前記動作クロック信号とに基づき内部クロック信号を生成するセットリセットラッチと、
前記内部クロック信号をトリガ信号として前記入力データを保持するデータ保持部と、を有し、
前記セットリセットラッチは、
反転論理和回路と反転論理積回路とのいずれか一方により構成される半導体装置。
【請求項２】
前記セットリセットラッチは、それぞれが第１の入力端子、第２の入力端子及び出力端子を有する第１の反転論理和回路と第２の反転論理和回路とを有し、
前記第１の反転論理和回路の第１の入力端子と、前記第２の反転論理和回路の第１の入力端子と、の一方に前記不一致検出信号が入力され、
前記第１の反転論理和回路の第１の入力端子と、前記第２の反転論理和回路の第１の入力端子と、の他方に前記動作クロック信号が入力され、
前記第１の反転論理和回路の出力端子と前記第２の反転論理和回路の第２の入力端子とが接続され、
前記第２の反転論理和回路の出力端子と前記第１の反転論理和回路の第２の入力端子とが接続される請求項１に記載の半導体装置。
【請求項３】
前記不一致検出回路は、排他的論理和回路であって、
前記不一致検出信号は、前記第１の反転論理和回路の第１の入力端子に与えられ、
前記動作クロック信号は、前記第２の反転論理和回路の第１の入力端子に与えられ、
前記セットリセットラッチは、前記不一致検出信号により前記入力データと出力データとが不一致状態となったことの通知を受けて、前記第２の反転論理和回路の出力端子から前記動作クロック信号に対して逆相となる前記内部クロック信号を生成する請求項２に記載の半導体装置。
【請求項４】
前記セットリセットラッチは、それぞれが第１の入力端子、第２の入力端子及び出力端子を有する第１の反転論理積回路と第２の反転論理積回路とを有し、
前記第１の反転論理積回路の第１の入力端子と、前記第２の反転論理積回路の第１の入力端子と、の一方に前記不一致検出信号が入力され、
前記第１の反転論理積回路の第１の入力端子と、前記第２の反転論理積回路の第１の入力端子と、の他方に前記動作クロック信号が入力され、
前記第１の反転論理積回路の出力端子と前記第２の反転論理積回路の第２の入力端子とが接続され、
前記第２の反転論理積回路の出力端子と前記第１の反転論理積回路の第２の入力端子とが接続される請求項１に記載の半導体装置。
【請求項５】
前記不一致検出回路は、排他的反転論理和回路であって、
前記不一致検出信号は、前記第１の反転論理積回路の第１の入力端子に与えられ、
前記動作クロック信号は、前記第２の反転論積和回路の第１の入力端子に与えられ、
前記セットリセットラッチは、前記不一致検出信号により前記入力データと出力データとが不一致状態となったことの通知を受けて、前記第２の反転論理積回路の出力端子から前記動作クロック信号に対して同相となる前記内部クロック信号を生成する請求項５に記載の半導体装置。
【請求項６】
前記セットリセットラッチは、前記動作クロック信号が入力されるトランジスタの数が２以下である請求項１に記載の半導体装置。
【請求項７】
前記入力データは、第１の入力データと第２の入力データとを含み、
前記データ保持部は、外部から与えられる選択信号に応じて前記第１の入力データと前記第２の入力データとのいずれかが伝達される第１の配線を有し、当該第１の配線に伝達された被保持データを前記内部クロック信号に応じて保持し、
前記セットリセットラッチは、前記選択信号が前記第２の入力データを選択することを示す場合、前記不一致検出信号の論理レベルによらず、前記動作クロック信号の論理レベルの変化に対応して論理レベルが変化する前記内部クロック信号を生成する請求項１に記載の半導体装置。
【請求項８】
前記不一致検出回路は、前記入力データとして前記第１の入力データを参照し、前記第１の入力データと前記出力データと不一致を検出して、不一致検出信号を出力する請求項７に記載の半導体装置。
【請求項９】
前記セットリセットラッチは、第１の反転論理和回路と、第２の反転論理和回路と、を有し、
前記第２の反転論理和回路は、
前記第１の反転論理和回路の出力端子が制御端子に接続され、第１の端子が電源端子に接続される第１の導電型の第１のトランジスタと、
前記動作クロック信号が制御端子に与えられ、第１の端子が前記第１のトランジスタの第２の端子に接続され、第２の端子が前記第２の反転論理和回路の出力端子となる第１の導電型の第２のトランジスタと、
前記第１の反転論理和回路の出力端子が制御端子に接続され、第２の端子が前記第２の反転論理和回路の出力端子に接続される第２導電型の第３のトランジスタと、
前記動作クロック信号が制御端子に与えられ、第２の端子が前記第２の反転論理和回路の出力端子に接続され、第１の端子が接地端子に接続される第２導電型の第４のトランジスタと、
前記選択信号を反転した反転選択信号が制御端子に与えられ、前記第１のトランジスタと並列に接続される第１の導電型の第５のトランジスタと、
前記反転選択信号が制御端子に与えられ、前記第４のトランジスタの第１の端子と前記接地端子との間に接続される第２の導電型の第６のトランジスタと、
を有する請求項７に記載の半導体装置。
【請求項１０】
前記セットリセットラッチは、第１の反転論理積回路と、第２の反転論理積回路と、により構成され、
前記第２の反転論理積回路は、
前記第１の反転論理積回路の出力端子が制御端子に接続され、第２の端子が前記第２の反転論理積回路の出力端子に接続される第１の導電型の第１のトランジスタと、
前記動作クロック信号が制御端子に与えられ、第１の端子が電源端子に接続され、第２の端子が前記第２の反転論理積回路の出力端子に接続される第１の導電型の第２のトランジスタと、
前記第１の反転論理和回路の出力端子が制御端子に接続され、第２の端子が前記第２の反転論理和回路の出力端子に接続される第２導電型の第３のトランジスタと、
前記動作クロック信号が制御端子に与えられ、第２の端子が前記第２の反転論理和回路の出力端子に接続され、第１の端子が接地端子に接続される第２導電型の第４のトランジスタと、
前記選択信号が制御端子に与えられ、前記第１のトランジスタの第１の端子と前記電源端子との間に接続される第１の導電型の第５のトランジスタと、
前記選択信号が制御端子に与えられ、前記第４のトランジスタと並列に接続される第２の導電型の第６のトランジスタと、
を有する請求項７に記載の半導体装置。
【請求項１１】
前記データ保持部は、
前記内部クロック信号に含まれる第１の内部クロック信号に応じて前記被保持データを保持するマスターラッチと、
前記内部クロック信号に含まれ、前記第１の内部クロック信号とは反転した論理レベルの第２のクロック信号に応じて前記マスターラッチの出力値を保持するスレーブラッチと、を有し、
前記不一致検出回路は、前記出力データとして前記マスターラッチの保持値を参照し、
前記入力データと前記マスターラッチの保持値との不一致を検出して、前記不一致検出信号を出力する請求項１に記載の半導体装置。
【請求項１２】
それぞれが、前記不一致検出回路と、前記セットリセットラッチと、前記データ保持部とを有する複数のフリップフロップ回路と、
前記複数のフリップフロップのそれぞれに前記動作クロック信号を分配するクロックツリーと、を有する請求項１に記載の半導体装置。
【請求項１３】
プログラムに基づき演算動作を行う演算部と、
前記演算部に利用される周辺回路と、
前記周辺回路から通知されるエラー信号に基づき前記演算部に割込要求を発行する割込制御部と、
前記割込制御部において前記エラー信号を受信し、前記不一致検出回路と、前記セットリセットラッチと、前記データ保持部とを有するフリップフロップ回路と、
を有する請求項１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、例えば、エッジトリガ型フリップフロップを搭載する半導体装置に関する。
【背景技術】
【０００２】
近年、半導体装置では、消費電力の低減が強く求められている。この半導体装置は、例えば、動作クロック信号を伝達するクロックツリーと、動作クロック信号に基づきデータの保持動作を行うフリップフロップとを有する。このような半導体装置では、クロックツリー及びフリップフロップにおける消費電流が動作クロック信号の高速化に伴い増大している。
【０００３】
そこで、特許文献１〜６に、入力データの遷移がない場合に動作クロック信号に応じた内部トランジスタの動作を抑制するコンディショナルクロック動作を行うフリップフロップの例が開示されている。このコンディショナルクロック動作を行うことで、動作クロックに応じた内部トランジスタのトグルを抑制できるため、フリップフロップにおける消費電力を削減できる。また、特許文献７〜１０では、コンディショナルクロック動作を行うフリップフロップにおけるハザード耐性を向上させる技術が開示されている。
【０００４】
特許文献１〜６に記載されたフリップフロップには、入力データにハザードが生じた場合に誤動作を生じる問題があり、特許文献７〜１０に開示されてい技術を用いることで、ハザードの問題を解決することができる。しかしながら、特許文献７〜１０に記載のフリップフロップは、ハザード耐性を向上させるために、フリップフロップ内で動作クロック信号を受信するトランジスタが特許文献１〜６に記載のフリップフロップよりも多い。そのため、特許文献７〜１０に記載のフリップフロップは、クロック入力端子の入力容量が増大し、当該入力容量の増大に起因して消費電力が増大する問題が生じる。
【０００５】
そこで、非特許文献１に記載の技術では、入力容量を特許文献１〜６の記載のフリップフロップと同程度としながら、ハザード耐性を向上させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２２９７４５号公報
【特許文献２】特開平１０−４１７８９号公報
【特許文献３】特開平４−２９８１１５号公報
【特許文献４】特開平１０−１６３８２０号公報
【特許文献５】特開平１−２８６６０９号公報
【特許文献６】特開２０００−１３１９５号公報
【特許文献７】特開平１１−３４０７９５号公報
【特許文献８】特開２００４−５６６６７号公報
【特許文献９】特開平８−２７４５９４号公報
【特許文献１０】特開２０００−２３２３３９号公報
【非特許文献】
【０００７】
【非特許文献１】A.G.M. Strollo, E. Napoli, D. De Caro, "New Clock-Gating Techniques for Low-Power Flip-Flops", Low Power Electronics and Design, 2000. ISLPED '00. Proceedings of the 2000 International Symposium on, pp. 114-119, 2000
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１に記載の技術では、ゲーティング回路がクロック遮断状態からクロック通過状態に遷移するタイミングでゲーティング回路の不安定になる問題がある。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、半導体装置は、入力データと出力データの不一致を検出して不一致検出信号を生成する不一致検出回路と、不一致検出信号と動作クロック信号とに基づき内部クロック信号を生成するセットリセットラッチと、内部クロック信号をトリガ信号として入力データを保持するデータ保持部と、を有し、セットリセットラッチを反転論理和回路又は反転論理積回路を用いて構成するものである。
【発明の効果】
【００１０】
一実施の形態によれば、安定性が高く消費電力が小さな半導体装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるフリップフロップのブロック図である。
【図２】実施の形態１にかかるフリップフロップの内部クロック生成部への入力値と内部クロック信号との関係を示す真理値表である。
【図３】実施の形態１にかかるフリップフロップの不一致検出回路の回路図である。
【図４】実施の形態１にかかるフリップフロップの不一致検出回路の真理値表である。
【図５】実施の形態１にかかるフリップフロップのＳＲラッチの回路図である。
【図６】実施の形態１にかかるフリップフロップのＳＲラッチの真理値表である。
【図７】実施の形態１にかかるフリップフロップのデータ保持部の回路図である。
【図８】実施の形態１にかかるフリップフロップの動作を示すタイミングチャートである。
【図９】非特許文献１に記載のフリップフロップの回路図である。
【図１０】非特許文献１に記載のフリップフロップのゲーティング回路の課題を説明する回路図である。
【図１１】非特許文献１に記載のフリップフロップのゲーティング回路の課題を説明する回路図である。
【図１２】非特許文献１に記載のフリップフロップのゲーティング回路の課題を説明する回路図である。
【図１３】実施の形態１にかかるフリップフロップのＳＲラッチの動作を説明する回路図である。
【図１４】実施の形態１にかかるフリップフロップのＳＲラッチの動作を説明する回路図である。
【図１５】実施の形態１にかかるフリップフロップのＳＲラッチの動作を説明する回路図である。
【図１６】実施の形態１にかかるフリップフロップと非特許文献１に記載のフリップフロップとの安定度の差を説明するグラフである。
【図１７】クロック信号に対する制御を行わないフリップフロップの回路図である。
【図１８】実施の形態１にかかるフリップフロップを含む半導体装置と他のフリップフロップを含む半導体装置の消費電力を比較したグラフである。
【図１９】実施の形態１にかかるフリップフロップと一般的なフリップフロップの出力データによる消費電力の違いを示すグラフである。
【図２０】実施の形態２にかかるフリップフロップのブロック図である。
【図２１】実施の形態２にかかるフリップフロップのＳＲラッチへの入力値と内部クロック信号との関係を示す真理値表である。
【図２２】実施の形態２にかかるフリップフロップの不一致検出回路の回路図である。
【図２３】実施の形態２にかかるフリップフロップの不一致検出回路の真理値表である。
【図２４】実施の形態２にかかるフリップフロップのＳＲラッチの回路図である。
【図２５】実施の形態２にかかるフリップフロップのＳＲラッチの真理値表である。
【図２６】実施の形態２にかかるフリップフロップの動作を示すタイミングチャートである。
【図２７】実施の形態１にかかるフリップフロップの変形例を示すブロック図である。
【図２８】図２１に示したフリップフロップのＳＲラッチへの入力値と内部クロック信号との関係を示す真理値表である。
【図２９】実施の形態２にかかるフリップフロップの変形例を示すブロック図である。
【図３０】図２３に示したフリップフロップのＳＲラッチへの入力値と内部クロック信号との関係を示す真理値表である。
【図３１】実施の形態４にかかるフリップフロップの回路図である。
【図３２】実施の形態４にかかるフリップフロップの排他的論理和回路の回路図である。
【図３３】実施の形態４にかかるフリップフロップのＳＲラッチの回路図である。
【図３４】実施の形態４にかかるフリップフロップの比較例となるフリップフロップの回路図である。
【図３５】実施の形態４にかかるフリップフロップの別の形態で利用する排他的反転論理和回路の回路図である。
【図３６】実施の形態４にかかるフリップフロップの別の形態で利用するＳＲラッチの回路図である。
【図３７】実施の形態５にかかるフリップフロップの回路図である。
【図３８】実施の形態５にかかる不一致検出回路を適用した実施の形態１にかかるフリップフロップの回路図である。
【図３９】実施の形態５にかかるフリップフロップのレイアウトの概略図である。
【図４０】図３６に示したフリップフロップのレイアウトの概略図である。
【図４１】実施の形態５にかかるフリップフロップの動作を示すタイミングチャートである。
【図４２】実施の形態１にかかるフリップフロップを含む半導体装置の第１の例となる回路構成を示す半導体装置のブロック図である。
【図４３】実施の形態１にかかるフリップフロップを含む半導体装置の第２の例となるの回路構成を示す半導体装置のブロック図である。
【図４４】実施の形態１にかかるフリップフロップを含む半導体装置の第３の例となるの回路構成を示す半導体装置のブロック図である。
【発明を実施するための形態】
【００１２】
実施の形態１
以下、図面を参照して実施の形態について説明する。以下では、主にフリップフロップの回路構成について説明するが、当該フリップフロップは、半導体装置を構成する回路の１つとして用いられるものである。そこで、図１に実施の形態１にかかるフリップフロップ１のブロック図を示す。
【００１３】
図１に示すように、実施の形態１にかかるフリップフロップ１は、データ入力端子Ｄ、クロック入力端子ＣＫ及びデータ出力端子Ｑｏを有する。クロック入力端子ＣＫはクロック信号ＣＫＳが入力される端子である。データ入力端子Ｄは入力データＤｉｎが入力される端子である。データ出力端子Ｑｏは出力データＤｏを出力する端子である。そして、フリップフロップ１は、入力データＤｉｎに状態遷移（例えば、論理レベルの変化）が生じた場合に、クロック信号ＣＫＳの立ち上がりエッジに応じて出力データＤｏの論理レベルを変化させる。つまり、実施の形態１にかかるフリップフロップ１は、トリガエッジの直前の期間の第１の論理レベルがロウレベルとなり、トリガエッジの直後の期間の第２の論理レベルがハイレベルとなるクロック信号ＣＫＳに基づき入力データＤｉｎの保持動作を行うものである。
【００１４】
図１に示すように、実施の形態１にかかるフリップフロップ１は、クロック制御回路１０及びデータ保持部１５を有する。クロック制御回路１０は、入力データＤｉｎが出力データＤｏとは異なる論理レベルとなったときのみ、内部クロック信号ＣＫｘの論理レベルをクロック信号ＣＫＳのクロックエッジに応じて変化させる。つまり、クロック制御回路１０は、入力データＤｉｎと出力データＤｏとに応じたクロックゲーティング機能を有する。そして、フリップフロップ１は、内部クロック信号ＣＫｘをデータ保持部１５に与える。データ保持部１５は、内部クロック信号ＣＫｘをトリガ信号として入力データＤｉｎを保持する。実施の形態１にかかるフリップフロップ１では、データ保持部１５として立ち上がりエッジに応じて入力データＤｉｎを取り込み、出力データＤｏを入力データＤｉｎに応じた論理レベルとする。つまり、フリップフロップ１は、データ保持部１５として立ち上がりエッジトリガのフリップフロップを用いる。つまり、実施の形態１にかかるフリップフロップ１では、内部クロック信号ＣＫｘとして、トリガエッジの直前の期間の第３の論理レベルがロウレベルとなり、トリガエッジの直後の期間の第４の論理レベルがハイレベルとなる信号を用いる。
【００１５】
なお、以下の説明では、データ保持部１５に入力データＤｉｎの取り込み指示を行うトリガエッジを与える信号を内部クロック信号ＣＫｘと称する。また、クロック制御回路１０は、内部クロック信号ＣＫｘとは反転した論理レベルを有する反転内部クロック信号ＣＫｘＢを生成する。そして、データ保持部１５は、内部クロック信号ＣＫｘと反転内部クロック信号ＣＫｘＢとに基づき動作するものとする。つまり、フリップフロップ１と、フリップフロップ１で利用するデータ保持部１５と、が共に立ち上がりエッジトリガ型であった場合、クロック制御回路１０は、クロック信号ＣＫＳの立ち上がりエッジに合わせて内部クロック信号ＣＫｘを立ち上げる。一方、フリップフロップが立ち下がりエッジトリガ型であり、フリップフロップで利用するデータ保持部１５が立ち上がりエッジトリガ型であった場合、クロック制御部１０は、クロック信号ＣＫＳの立ち下がりエッジに合わせて内部クロック信号ＣＫｘを立ち下げる。
【００１６】
クロック制御回路１０は、不一致検出回路１１及び内部クロック生成部１２を有する。不一致検出回路１１は、入力データＤｉｎと出力データＤｏの不一致を検出して、不一致検出信号Ｓ１１を出力する。実施の形態１にかかるフリップフロップ１では、不一致検出回路１１として排他的論理和回路（図中ではＸＯＲと表示する）を利用する。この不一致検出回路１１は、２つの入力信号が不一致であることを検出した状態（以下、不一致検出状態と称す）において不一致検出信号Ｓ１１をハイレベル（例えば、１）とし、２つの入力信号が一致していることを検出した状態（以下、一致検出状態と称す）において不一致検出信号Ｓ１１をロウレベル（例えば、０）とする。
【００１７】
内部クロック生成部１２は、不一致検出信号Ｓ１１が不一致検出状態となったときにクロック信号ＣＫＳのトリガエッジの入力があった場合にクロック信号ＣＫＳのトリガエッジに対応したトリガエッジを有する内部クロック信号ＣＫｘを生成する。より具体的に説明するために、図２に内部クロック生成部１２の動作を示す真理値表を示す。
【００１８】
まず、実施の形態１にかかるフリップフロップ１では、クロック信号ＣＫＳは、論理レベルについて、トリガエッジの直前の期間の論理レベルが第１の論理レベル（例えば、ロウレベル又は０）となり、トリガエッジの直後の期間の論理レベルが第２の論理レベル（例えばハイレベル又は１）となる。また、内部クロック信号ＣＫｘは、論理レベルについて、トリガエッジの直前の期間の論理レベルが第３の論理レベル（例えば、ロウレベル又は０）となり、トリガエッジの直後の期間の論理レベルが第４の論理レベル（例えばハイレベル又は１）となる。
【００１９】
そして、図２に示すように、内部クロック生成部１２は、不一致検出信号Ｓ１１が一致検出状態（例えば、ロウレベル）である場合、クロック信号ＣＫＳがハイレベルとなることで内部クロック信号ＣＫｘをハイレベルとする。そして、内部クロック生成部１２は、不一致検出信号Ｓ１１がロウレベルである場合、一旦内部クロック信号ＣＫｘがハイレベルとなった後はクロック信号ＣＫＳがトグルしても内部クロックＣＫｘをハイレベルで維持する。また、内部クロック生成部１２は、不一致検出信号Ｓ１１が不一致検出状態（例えば、ハイレベル）である場合、クロック信号ＣＫＳの論理レベルと同じ論理レベルとなるように内部クロック信号ＣＫｘをトグルする。
【００２０】
ここで、内部クロック生成部１２の動作について別の観点から説明する。図２に示すように、内部クロック生成部１２は、クロック信号ＣＫＳがロウレベルである期間に不一致検出信号Ｓ１１が不一致検出状態（例えば、ハイレベル）となった場合、内部クロック信号ＣＫｘをロウレベルとする。その後、不一致検出信号Ｓ１１が不一致検出状態を維持した状態でクロック信号ＣＫＳのトリガエッジが入力されることでクロック信号ＣＫＳがハイレベルとなった場合、内部クロック信号ＣＫｘは、クロック信号ＣＫＳの論理レベルの切り替わりに応じて内部クロック信号ＣＫｘをロウレベルからハイレベルに切り替える。また、クロック信号ＣＫＳがハイレベルである期間に不一致検出信号Ｓ１１の状態が一致検出状態と不一致検出状態との間で切り替わっても、内部クロック生成部１２は、内部クロック信号ＣＫｘをハイレベルで維持する。また、クロック信号ＣＫＳがロウレベルである期間に不一致検出信号Ｓ１１の状態が一致検出状態と不一致検出状態との間で切り替わった場合、内部クロック生成部１２は、内部クロック信号ＣＫｘを一旦ロウレベルした後は内部クロック信ＣＫｘをロウレベルで維持する。
【００２１】
なお、図２に示すように、内部クロック生成部１２は、内部クロック信号ＣＫｘに加えて内部クロック信号ＣＫｘとは反転した論理レベルを有する反転内部クロック信号ＣＫｘＢを出力する。
【００２２】
この内部クロック生成部１２は、セットリセットラッチ（以下、ＳＲラッチと称す）１３、インバータ１４を有する。ＳＲラッチ１３は、セット入力端子Ｓ、リセット入力端子Ｒ、第１の出力端子（例えば、ラッチ出力端子ＱＬ）、第２の出力端子（例えば、反転ラッチ出力端子ＱＬＢ）を有する。そして、ＳＲラッチ１３は、セット入力端子Ｓとリセット入力端子Ｓとの一方に不一致検出信号Ｓ１１が入力され、セット入力端子Ｓとリセット入力端子Ｒとの他方に動作クロック信号（例えば、クロック信号ＣＫＳ）が入力され、不一致検出回路Ｓ１１とクロック信号ＣＫＳとに基づき内部クロック信号ＣＫｘを生成する。実施の形態１では、セット入力端子Ｓには、セット信号として不一致検出信号Ｓ１１が入力される。また、リセット入力端子Ｒには、リセット信号としてクロック信号ＣＫＳが入力される。また、詳細は後述するが、ＳＲラッチ１３はクロック信号ＣＫＳが入力されるトランジスタが２以下であるという特徴を有する。
【００２３】
そして、内部クロック生成部１２は、ＳＲラッチ１３のラッチ出力端子ＱＬから内部クロック信号ＣＫｘとは反転した論理レベルを有する反転クロック信号ＣＫｘＢを出力する。また、内部クロック生成部１２は、反転クロック信号ＣＫｘＢをインバータ１４で反転して内部クロック信号ＣＫｘを出力する。
【００２４】
続いて、実施の形態１にかかるフリップフロップ１の各ブロックの詳細な回路構成について説明する。まず、図３に不一致検出回路１１の回路図を示す。図３に示すように、不一致検出回路１１は、第１の入力端子Ｉｎ１、第２の入力端子Ｉｎ２、及び、出力端子ＯＵＴを有する。そして、第１の入力端子Ｉｎ１には出力データＤｏが与えられ、第２の入力端子Ｉｎ２には入力データＤｉｎが与えられ、出力端子ＯＵＴから不一致検出信号Ｓ１１を出力する。また、不一致検出回路１１は、インバータ、ＰＭＯＳトランジスタＰ１１〜Ｐ１４、及び、ＮＭＯＳトランジスタＮ１１〜Ｎ１４を有する。
【００２５】
ＰＭＯＳトランジスタＰ１１のソースは、電源電圧ＶＤＤが供給される電源端子に接続される。ＰＭＯＳトランジスタＰ１１のゲートには、出力データＤｏをインバータで反転して生成した反転出力データＤｏＢが与えられる。ＰＭＯＳトランジスタＰ１１のドレインは、ＰＭＯＳトランジスタＰ１２のソースに接続される。ＰＭＯＳトランジスタＰ１２のゲートには、入力データＤｉｎをインバータで反転して生成した反転入力データＤｉｎＢが与えられる。ＰＭＯＳトランジスタＰ１２のドレインは、出力端子ＯＵＴに接続される。
【００２６】
ＰＭＯＳトランジスタＰ１３のソースは、電源端子に接続される。ＰＭＯＳトランジスタＰ１３のゲートには、出力データＤｏが与えられる。ＰＭＯＳトランジスタＰ１３のドレインは、ＰＭＯＳトランジスタＰ１４のソースに接続される。ＰＭＯＳトランジスタＰ１４のゲートには、入力データＤｉｎが与えられる。ＰＭＯＳトランジスタＰ１４のドレインは、出力端子ＯＵＴに接続される。
【００２７】
ＮＭＯＳトランジスタＮ１２のソースは、接地電圧ＶＳＳが供給される接地端子に接続される。ＮＭＯＳトランジスタＮ１２のゲートには、入力データＤｉｎが与えられる。ＮＭＯＳトランジスタＮ１２のドレインは、ＮＭＯＳトランジスタＰ１１のソースに接続される。ＮＭＯＳトランジスタＮ１１のゲートには、出力データＤｏをインバータで反転して生成した反転出力データＤｏＢが与えられる。ＮＭＯＳトランジスタＮ１１のドレインは、出力端子ＯＵＴに接続される。
【００２８】
ＮＭＯＳトランジスタＮ１４のソースは、接地端子に接続される。ＮＭＯＳトランジスタＮ１４のゲートには、入力データＤｉｎをインバータで反転して生成した反転入力データＤｉｎＢが与えられる。ＮＭＯＳトランジスタＮ１４のドレインは、ＮＭＯＳトランジスタＮ１３のソースに接続される。ＮＭＯＳトランジスタＮ１３のゲートには、出力データＤｏが与えられる。ＮＭＯＳトランジスタＮ１３のドレインは、出力端子ＯＵＴに接続される。
【００２９】
上記回路構成により、不一致検出回路１１では、排他的論理和回路を構成する。そこで、不一致検出回路１１の真理値表を図４に示す。図４に示すように、不一致検出回路１１は、第１の入力端子Ｉｎ１に入力される出力データＤｏと、第２の入力端子Ｉｎ２に入力される入力データＤｉｎと、が異なる論理レベルとなったときに、出力端子ＯＵＴから出力する不一致検出信号Ｓ１１をハイレベルとする。一方、不一致検出回路１１は、第１の入力端子Ｉｎ１に入力される出力データＤｏと、第２の入力端子Ｉｎ２に入力される入力データＤｉｎと、が同じ論理レベルとなったときに、出力端子ＯＵＴから出力する不一致検出信号Ｓ１１をロウレベルとする。
【００３０】
続いて、ＳＲラッチ１３の詳細な回路について説明する。図５にＳＲラッチ１３の詳細な回路図を示す。図５に示すように、ＳＲラッチ１３は、第１の反転論理和回路（例えば、反転論理和回路ＮＯＲ１）及び第２の反転論理和回路（例えば、反転論理和回路ＮＯＲ２）を有する。ＳＲラッチ１３では、反転論理和回路ＮＯＲ１の第１の入力端子と、反転論理和回路ＮＯＲ２の第１の入力端子と、の一方に不一致検出信号Ｓ１１が入力される。また、ＳＲラッチ１３は、反転論理和回路ＮＯＲ１の第１の入力端子と、反転論理和回路ＮＯＲ２の第１の入力端子と、の他方にクロック信号が入力される。さらに、ＳＲラッチ１３では、反転論理和回路ＮＯＲ１の出力端子と反転論理和回路ＮＯＲ２の第２の入力端子とが接続され、反転論理和回路ＮＯＲ２の出力端子と反転論理和回路ＮＯＲ１の第２の入力端子とが接続される。
【００３１】
より具体的には、反転論理和回路ＮＯＲ１は、第１の入力端子がセット端子Ｓに接続され、第２の入力端子が反転論理和回路ＮＯＲ２の出力端子に接続される。また、反転論理和回路ＮＯＲ１の出力端子は反転ラッチ出力端子ＱＬＢに接続される。反転論理和回路ＮＯＲ２は、第１の入力端子がリセット端子Ｒに接続され、第２の入力端子が反転論理和回路ＮＯＲ１の出力端子に接続される。また、反転論理和回路ＮＯＲ２の出力端子はラッチ出力端子ＱＬに接続される。このラッチ出力端子ＱＬから出力される信号が反転内部クロック信号ＣＫｘＢとなる。そして、実施の形態１では、セット端子Ｓに不一致検出信号Ｓ１１が入力され、リセット端子Ｒにクロック信号ＣＫＳが入力される。
【００３２】
反転論理和回路ＮＯＲ１は、ＰＭＯＳトランジスタＰ１５、Ｐ１６、ＮＭＯＳトランジスタＮ１５、Ｎ１６を有する。ＰＭＯＳトランジスタＰ１５のソースは電源端子に接続される。ＰＭＯＳトランジスタＰ１５のゲートには、不一致検出信号Ｓ１１が入力される。ＰＭＯＳトランジスタＰ１５のドレインは、ＰＭＯＳトランジスタＰ１６のソースと接続される。ＰＭＯＳトランジスタＰ１６のゲートは、反転論理和回路ＮＯＲ２の出力端子と接続される。ＰＭＯＳトランジスタＰ１６のドレインは、反転ラッチ出力端子ＱＬＢと接続される。ＮＭＯＳトランジスタＮ１５、Ｎ１６のソースは、接地端子と接続される。ＮＭＯＳトランジスタＮ１５、Ｎ１６のドレインは、反転ラッチ出力端子ＱＬＢと接続される。ＮＭＯＳトランジスタＮ１５のゲートには、不一致検出信号Ｓ１１が入力される。ＮＭＯＳトランジスタＮ１６のゲートは反転論理和回路ＮＯＲ２の出力端子と接続される。
【００３３】
反転論理和回路ＮＯＲ２は、ＰＭＯＳトランジスタＰ１７、Ｐ１８、ＮＭＯＳトランジスタＮ１７、Ｎ１８を有する。ＰＭＯＳトランジスタＰ１７のソースは電源端子に接続される。ＰＭＯＳトランジスタＰ１７のゲートは、反転論理和回路ＮＯＲ１の出力端子と接続される。ＰＭＯＳトランジスタＰ１７のドレインは、ＰＭＯＳトランジスタＰ１８のソースと接続される。ＰＭＯＳトランジスタＰ１８のゲートには、クロック信号ＣＫＳが入力される。ＰＭＯＳトランジスタＰ１８のドレインは、ラッチ出力端子ＱＬと接続される。ＮＭＯＳトランジスタＮ１７、Ｎ１８のソースは、接地端子と接続される。ＮＭＯＳトランジスタＮ１７、Ｎ１８のドレインは、ラッチ出力端子ＱＬと接続される。ＮＭＯＳトランジスタＮ１７のゲートは、反転論理和回路ＮＯＲ１の出力端子と接続される。ＮＭＯＳトランジスタＮ１８のゲートには、クロック信号ＣＫＳが入力される。なお、ＰＭＯＳトランジスタＰ１７、Ｐ１８が第１のトランジスタ及び第２のトランジスタに相当し、ＮＭＯＳトランジスタＮ１７、Ｎ１８が第３のトランジスタ及び第４のトランジスタに相当する。なお、ＰＭＯＳトランジスタ、及びＮＭＯＳトランジスタの説明では、制御端子がゲートであり、第１の端子がソースであり、第２の端子がドレインである。
【００３４】
ここで、ＳＲラッチ１３の真理値表を図６に示し、ＳＲラッチ１３の動作について説明する。図６に示すように、ＳＲラッチ１３は、不一致検出信号Ｓ１１がロウレベル、かつ、クロック信号ＣＫＳがハイレベルである場合、ラッチ出力端子ＱＬの出力値をロウレベルとし、反転ラッチ出力端子ＱＬＢの出力値をハイレベルとする。ＳＲラッチ１３は、不一致検出信号Ｓ１１がハイレベル、かつ、クロック信号ＣＫＳがロウレベルである場合、ラッチ出力端子ＱＬの出力値をハイレベルとし、反転ラッチ出力端子ＱＬＢの出力値をロウレベルとする。ＳＲラッチ１３は、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもロウレベルである場合、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもロウレベルとなる前のラッチ出力端子ＱＬの出力値及び反転ラッチ出力端子ＱＬＢの出力値の論理レベルを維持する。さらに、ＳＲラッチ１３は、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもハイレベルである場合、ラッチ出力端子ＱＬの出力値及び反転ラッチ出力端子ＱＬＢの出力値をいずれもロウレベルとする。
【００３５】
つまり、実施の形態１にかかるフリップフロップ１では、通常、ＳＲラッチの利用形態として禁止或いは条件付きで利用可能とされるラッチ出力端子ＱＬ及び反転ラッチ出力端子ＱＬＢがいずれもロウレベルとなる入力状態を積極的に利用する。これにより、ＳＲラッチ１３は、不一致検出信号Ｓ１１が入力データＤｉｎと出力データＤｏとが異なる論理レベルである状態（例えば、不一致検出信号Ｓ１１がハイレベルとなる状態）で、クロック信号ＣＫＳの立ち上がりエッジが入力された場合のみ内部クロック信号ＣＫｘをクロック信号ＣＫＳのトグルに合わせてトグルさせる。
【００３６】
続いて、データ保持部１５の詳細な回路について説明する。図７にデータ保持部１５の詳細な回路図を示す。図７に示すように、このデータ保持部１５は、データ入力端子ＤＦ、クロック入力端子ＴＣＡ、反転クロック入力端子ＴＣＢ、データ出力端子ＱＦを有する。データ入力端子ＤＦには入力データＤｉｎが入力され、クロック入力端子ＴＣＡには内部クロック信号ＣＫｘが入力され、反転クロック入力端子ＴＣＢには反転内部クロック信号ＣＫｘＢが入力される。また、データ出力端子ＱＦからスレーブラッチＳＬから出力される値を出力する。データ出力端子ＱＦから出力される値により出力データＤｏの論理レベルが決定される。
【００３７】
図７に示すように、データ保持部１５は、マスターラッチＭＡ、スレーブラッチＳＬを有する。マスターラッチＭＡは、内部クロック信号ＣＫｘがロウレベルである期間はデータ入力端子ＤＦから与えられた入力データＤｉｎをスレーブラッチＳＬに伝達するスルー状態となる。また、マスターラッチＭＡは、内部クロック信号ＣＫｘがハイレベルである期間は内部クロック信号ＣＫｘの立ち上がりエッジが入力された時点でマスターラッチＭＡに入力されている値を保持するホールド状態となる。スレーブラッチＳＬは、内部クロック信号ＣＫｘがロウレベルである期間は内部クロック信号ＣＫｘの立ち下がりエッジが入力された時点でスレーブラッチＳＬに入力されている値を保持するホールド状態となる。また、スレーブラッチＳＬは、内部クロック信号ＣＫｘがハイレベルである期間はマスターラッチＭＡから与えられた値を出力するスルー状態となる。つまり、マスターラッチＭＡは、内部クロック信号ＣＫｘの立ち上がりエッジが入力された時点で入力されている値を保持するラッチ回路であり、スレーブラッチＳＬは、内部クロック信号ＣＫｘの立ち下がりエッジが入力された時点で入力されている値を保持するラッチ回路である。言い換えると、マスターラッチＭＡは、内部クロック信号に含まれる第１の内部クロック信号ＣＫｘに応じて被保持データを保持する。また、スレーブラッチＳＬは、内部クロック信号に含まれ、第１の内部クロック信号とは反転した論理レベルの第２のクロック信号ＣＫｘＢに応じてマスターラッチＭＡの出力値を保持する。
【００３８】
マスターラッチＭＡは、インバータＩＮＶ１〜ＩＮＶ３、トランスファースイッチＴＳＷａ１、及び、トランスファースイッチＴＳＷｂ１を有する。インバータＩＮＶ１は、入力データＤｉｎを反転してトランスファースイッチＴＳＷｂ１に伝達する。トランスファースイッチＴＳＷｂ１は、内部クロック信号ＣＫｘがロウレベルである期間に導通状態となり、内部クロック信号ＣＫｘがハイレベルである期間に遮断状態となるスイッチ回路である。インバータＩＮＶ２は、トランスファースイッチＴＳＷｂ１を介して入力される入力データＤｉｎの反転信号をさらに反転してスレーブラッチＳＬに伝達する。インバータＩＮＶ３は、インバータＩＮＶ２の出力値をさらに反転してインバータＩＮＶ２の入力に戻す。トランスファースイッチＴＳＷａ１は、インバータＩＮＶ３の出力端子と、インバータＩＮＶ２の入力端子とトランスファースイッチＴＳＷｂ１とを接続する配線と、の間に設けられる。トランスファースイッチＴＳＷａ１は、内部クロック信号ＣＫｘがハイレベルである期間に導通状態となり、内部クロック信号ＣＫｘがロウレベルである期間に遮断状態となるスイッチ回路である。つまり、トランスファースイッチＴＳＷａ１とトランスファースイッチＴＳＷｂ１とは互いに排他的に導通状態となる。
【００３９】
なお、トランスファースイッチＴＳＷｂ１は、ＮＭＯＳトランジスタＭＮ、ＰＭＯＳトランジスタＭＰを有する。そして、ＮＭＯＳトランジスタＭＮのソース・ドレインの一方とＰＭＯＳトランジスタＭＰのソース・ドレインの一方とは、互いに接続される。また、ＮＭＯＳトランジスタＭＮのソース・ドレインの他方とＰＭＯＳトランジスタＭＰのソース・ドレインの他方とは、互いに接続される。そして、ＮＭＯＳトランジスタＭＮのゲートは、反転クロック入力端子ＴＣＢに接続され、反転内部クロック信号ＣＫｘＢが与えられる。ＰＭＯＳトランジスタＭＰのゲートは、クロック入力端子ＴＣＡに接続され、内部クロック信号ＣＫｘが与えられる。
【００４０】
また、トランスファースイッチＴＳＷａ１は、ＮＭＯＳトランジスタＭＮ、ＰＭＯＳトランジスタＭＰを有する。そして、ＮＭＯＳトランジスタＭＮのソース・ドレインの一方とＰＭＯＳトランジスタＭＰのソース・ドレインの一方とは、互いに接続される。また、ＮＭＯＳトランジスタＭＮのソース・ドレインの他方とＰＭＯＳトランジスタＭＰのソース・ドレインの他方とは、互いに接続される。そして、ＮＭＯＳトランジスタＭＮのゲートは、クロック入力端子ＴＣＡに接続され、内部クロック信号ＣＫｘが与えられる。ＰＭＯＳトランジスタＭＰのゲートは、反転クロック入力端子ＴＣＢに接続され、反転内部クロック信号ＣＫｘＢが与えられる。
【００４１】
スレーブラッチＳＬは、インバータＩＮＶ４〜ＩＮＶ６、トランスファースイッチＴＳＷａ２、及び、トランスファースイッチＴＳＷｂ２を有する。トランスファースイッチＴＳＷａ２は、マスターラッチＭＡの出力値をインバータＩＮＶ４に伝達する。トランスファースイッチＴＳＷａ２は、内部クロック信号ＣＫｘがハイレベルである期間に導通状態となり、内部クロック信号ＣＫｘがロウレベルである期間に遮断状態となるスイッチ回路である。インバータＩＮＶ４は、トランスファースイッチＴＳＷａ２を介して入力されるマスターラッチＭＡの出力値を反転してインバータＩＮＶ６に伝達する。インバータＩＮＶ５は、インバータＩＮＶ４の出力値をさらに反転してインバータＩＮＶ４の入力に戻す。トランスファースイッチＴＳＷｂ２は、インバータＩＮＶ５の出力端子と、インバータＩＮＶ４の入力端子とトランスファースイッチＴＳＷａ２とを接続する配線と、の間に設けられる。トランスファースイッチＴＳＷｂ２は、内部クロック信号ＣＫｘがロウレベルである期間に導通状態となり、内部クロック信号ＣＫｘがハイレベルである期間に遮断状態となるスイッチ回路である。つまり、トランスファースイッチＴＳＷａ２とトランスファースイッチＴＳＷｂ２とは互いに排他的に導通状態となる。インバータＩＮＶ６は、インバータＩＮＶ４の出力値を反転してデータ出力端子ＱＦに伝達する。
【００４２】
なお、トランスファースイッチＴＳＷａ２は、トランスファースイッチＴＳＷａ１と同じ回路構成を有し、トランスファースイッチＴＳＷｂ２は、トランスファースイッチＴＳＷｂ１と同じ回路構成を有するものである。
【００４３】
次いで、実施の形態１にかかるフリップフロップ１の動作について説明する。そこで、図８にフリップフロップ１の動作を示すタイミングチャートを示す。まず、図８の期間ＴＭ１について説明する。期間ＴＭ１では、クロック信号ＣＫＳの立ち上がりエッジが入力されるタイミングＴ１の前に入力データＤｉｎの論理レベルがロウレベルからハイレベルに遷移する。そのため、期間ＴＭ１では、入力データＤｉｎの論理レベルの切り替わりに伴い、不一致検出回路１１が不一致検出信号Ｓ１１をハイレベルとする。また、不一致検出信号Ｓ１１がハイレベルとなったことに応じて、ＳＲラッチ１３が内部クロック信号ＣＫｘをロウレベルとする。このとき、マスターラッチＭＡがホールド状態からスルー状態となり、スレーブラッチＳＬがスルー状態からホールド状態となる。つまり、マスターラッチＭＡは、入力データＤｉｎに応じて論理レベルがハイレベルとなる信号をスレーブラッチＳＬに伝達し、スレーブラッチＳＬは入力データＤｉｎがハイレベルとなる前の期間にマスターラッチＭＡから与えられていた信号の論理レベル（つまり、ロウレベル）を保持する。
【００４４】
そして、タイミングＴ１においてクロック信号ＣＫＳの立ち上がりエッジが入力されると、ＳＲラッチ１３は内部クロック信号ＣＫｘをロウレベルからハイレベルに遷移させる。この内部クロック信号ＣＫｘの立ち上がりエッジに応じて、データ保持部１５のマスターラッチＭＡは、スルー状態からホールド状態となり、入力データＤｉｎの値を保持する状態となる。また、内部クロック信号ＣＫｘの立ち上がりエッジに応じて、データ保持部１５のスレーブラッチＳＬは、ホールド状態からスルー状態となり、マスターラッチＭＡが出力している入力データＤｉｎの値をデータ出力端子ＱＦから出力する。これにより、出力データＤｏの値が入力データＤｉｎの値と一致した状態になるため、不一致検出信号Ｓ１１はロウレベルとなる。
【００４５】
続いて、入力データＤｉｎの論理レベルが変化しない状態でクロック信号ＣＫＳの立ち上がりエッジが入力される期間ＴＭ２における実施の形態１にかかるフリップフロップ１の動作について説明する。期間ＴＭ２では、入力データＤｉｎの論理レベルが維持される。そのため、不一致検出回路１１は、不一致検出信号Ｓ１１をロウレベルで維持する。これにより、ＳＲラッチ１３のセット端子Ｓに入力される不一致検出信号Ｓ１１がロウレベルで維持されるため、クロック信号ＣＫＳの立ち上がりエッジが入力されても、ＳＲラッチ１３は、内部クロック信号ＣＫｘの論理レベルを維持する。従って、マスターラッチＭＡはホールド状態を維持し、かつ、スレーブラッチＳＬはスルー状態を維持する。つまり、出力データＤｏの論理レベルは、クロック信号ＣＫＳの立ち上がりエッジがタイミングＴ２で入力されても変化しない。このように、実施の形態１にかかるフリップフロップ１は、入力データＤｉｎに論理レベルの変化がなければ、クロック信号ＣＫＳの立ち上がりエッジが入力されても内部クロック信号ＣＫｘをトグルしない。
【００４６】
続いて、入力データＤｉｎにハザードが発生した期間ＴＭ３における実施の形態１にかかるフリップフロップ１の動作について説明する。期間ＴＭ３では、タイミングＴ３でクロック信号ＣＫＳの立ち上がりエッジが入力されるが、タイミングＴ３の前後の期間に入力データＤｉｎにハザードが発生する。
【００４７】
このハザードが発生した場合、ハザード発生期間中において入力データＤｉｎと出力データＤｏとの論理レベルが異なるレベルとなるため、ハザード発生期間中は、不一致検出回路１１が出力する不一致検出信号Ｓ１１がハイレベルとなる。そして、クロック信号ＣＫＳがロウレベルである期間にハザードが発生するとＳＲラッチ１３のリセット端子Ｒに入力されるクロック信号ＣＫＳがロウレベルとなり、セット端子Ｓに入力される不一致検出信号Ｓ１１がハイレベルとなる。したがって、クロック信号ＣＫＳがロウレベルである期間中にハザードが発生すると、ＳＲラッチ１３は内部クロック信号ＣＫｘをロウレベルとする。一方、クロック信号ＣＫＳがハイレベルである期間にハザードが発生するとＳＲラッチ１３のリセット端子Ｒに入力されるクロック信号ＣＫＳがハイレベルとなり、セット端子Ｓに入力される不一致検出信号Ｓ１１がハイレベルとなるため、ＳＲラッチ１３は内部クロック信号ＣＫｘの論理レベルをハイレベルで維持する。
【００４８】
また、クロック信号ＣＫＳがロウレベルである期間にハザードが発生した場合、内部クロック信号ＣＫｘがハイレベルからロウレベルに切り替わるため、マスターラッチＭＡはホールド状態からスルー状態となり、スレーブラッチＳＬはスルー状態からホールド状態となる。そのため、クロック信号ＣＫＳがロウレベルである期間にハザードが発生した場合、マスターラッチＭＡは入力データＤｉｎの値をスレーブラッチＳＬに伝達する状態となり、スレーブラッチＳＬはハザード発生前にマスターラッチＭＡで保持されていた値を保持する状態となる。そのため、ハザードが発生しても、フリップフロップ１は、出力データＤｏの論理レベルを維持する。
【００４９】
そして、図８に示した例では、ハザードが収束した後のタイミングＴ３でクロック信号ＣＫＳの立ち上がりエッジが入力される。このタイミングＴ３では、入力データＤｉｎはハイレベルとなっているため、不一致検出信号Ｓ１１はロウレベルとなっている。そのため、タイミングＴ３では、ＳＲラッチ１３のリセット端子Ｒに入力されるクロック信号ＣＫＳがハイレベルとなり、セット端子Ｓに入力される不一致検出信号Ｓ１１がロウレベルとなるため、ＳＲラッチ１３は内部クロック信号ＣＫｘをロウレベルからハイレベルとする。また、内部クロック信号ＣＫｘがハイレベルとなったことに応じて、マスターラッチＭＡはスルー状態からホールド状態となり、スレーブラッチＳＬはホールド状態からスルー状態となる。このタイミングＴ３では、入力データＤｉｎがハザード発生前の状態であるため、マスターラッチＭＡはハザード発生前と同じ論理レベルの信号をスレーブラッチＳＬに出力する。また、タイミングＴ３でスレーブラッチＳＬに伝達されている値はハザード発生前と同じであるためスレーブラッチＳＬはスルー状態となっても、ハザード発生前と同じ値をデータ出力端子ＱＦに出力する。つまり、実施の形態１にかかるフリップフロップ１では、ハザード発生期間中にクロック信号ＣＫＳの立ち上がりエッジが入力されなければ、ハザードの発生に起因して出力データＤｏの値が変化することはない。
【００５０】
上記したように、実施の形態１にかかるフリップフロップ１では、入力データＤｉｎに論理レベルが変化しない場合にはクロック信号ＣＫＳの立ち上がりエッジに基づく内部クロック信号ＣＫｘのトグルを防止する。これにより、実施の形態１にかかるフリップフロップ１はデータ保持部１５の内部回路の動作を抑制して消費電力を削減する。また、実施の形態１にかかるフリップフロップ１は、入力データＤｉｎにハザードが発生した場合においても出力データＤｉｎを当該ハザードに対して反応させずに安定した動作を維持することができる。さらに、実施の形態１にかかるフリップフロップ１では、動作の安定性を高めることができる。そこで、動作の安定性に関する効果について以下でさらに詳細に説明する。
【００５１】
そこで、非特許文献１に記載されたフリップフロップ１００（以下、従来のフリップフロップ１００と称す。）の回路図を図９に示す。図９に示すように、従来のフリップフロップ１００は、ゲーティング回路１０１、データ保持部ＦＦ０１、排他的反転論理和回路１０２を有する。従来のフリップフロップ１００では、排他的反転論理和回路１０２により、入力データＤＡＴＡと出力データＱとが一致状態であるか、不一致状態であるかを示す比較信号ＣＯＭＰを出力する。また、ゲーティング回路１０１は、比較信号ＣＯＭＰが不一致状態を示す場合に動作クロックＣＬＫに応じて論理レベルが変化するゲーティングクロック信号ＣＫｇを出力する。そして、従来のフリップフロップ１００は、ゲーティングクロック信号ＣＫｇに応じて入力データＤＡＴＡを保持する。
【００５２】
また、従来のフリップフロップ１００は、ゲーティング回路１０１をＰＭＯＳトランジスタＰ１０１、Ｐ０１２、ＮＭＯＳトランジスタＮ１０１、インバータＩＮＶ０１、ＩＮＶ０２を有する。ＰＭＯＳトランジスタＰ１０１は、ソースが電源端子に接続され、ゲートに動作クロックＣＬＫが与えられる。ＰＭＯＳトランジスタＰ１０２は、ソースがＰＭＯＳトランジスタＰ１０１のドレインと接続され、ゲートに比較信号ＣＯＭＰが入力される。ＮＭＯＳトランジスタＮ１０１は、ソースが接地端子に接続され、ドレインがＰＭＯＳトランジスタＰ１０２のドレインと接続される。そして、ＮＭＯＳトランジスタＮ１０１のドレインとＰＭＯＳトランジスタＰ１０２のドレインとが接続される配線からは、ゲーティングクロック信号ＣＫｇとは反転関係を有する反転ゲーティングクロック信号ＣＫｇＢが出力される。
【００５３】
インバータＩＮＶ０１は、反転ゲーティングクロック信号ＣＫｇＢが入力され、ゲーティングクロック信号ＣＫｇを出力する。インバータＩＮＶ０２は、入力がインバータＩＮＶ０１の出力に接続され、出力がインバータＩＮＶ０１の入力に接続される。また、図９では、インバータＩＮＶ０２については、トランジスタレベルの回路を示した、図９に示すように、インバータＩＮＶ０２は、ＰＭＯＳトランジスタＰ１０３及びＮＭＯＳトランジスタＮ１０２を有する。ＰＭＯＳトランジスタＰ１０３は、ソースが電源端子に接続され、ゲートがインバータＩＮＶ０２の入力となる。ＮＭＯＳトランジスタＮ１０２のソースは接地端子に接続され、ゲートがインバータＩＮＶ０２の入力となる。ＰＭＯＳトランジスタＰ１０３のドレインとＮＭＯＳトランジスタＮ１０２のドレインとが接続される。ＰＭＯＳトランジスタＰ１０３のドレインとＮＭＯＳトランジスタＮ１０２のドレインとの接続点はインバータＩＮＶ０２の出力となる。
【００５４】
この従来のフリップフロップ１００は、基本的動作が実施の形態１にかかるフリップフロップ１と同じになるものの、動作クロックＣＬＫがロウレベルの期間に比較信号ＣＯＭＰが一致状態（例えば、ハイレベル）から不一致状態（例えば、ロウレベル）に遷移するときに回路の状態が不安定になる。一方、実施の形態１にかかるフリップフロップ１は、動作クロックＣＬＫがロウレベルの期間に比較信号ＣＯＭＰが一致状態（例えば、ハイレベル）から不一致状態（例えば、ロウレベル）に遷移する場合であっても回路を安定した状態で動作させることができる。そこで、以下では、従来のフリップフロップ１００と実施の形態１にかかるフリップフロップ１の動作を比較して、回路動作の安定性について説明する。
【００５５】
まず、図１０に従来のフリップフロップ１００において、比較信号が一致状態のときに動作クロックＣＬＫがハイレベルからロウレベルに遷移してゲーティング回路１０１が安定状態となったときゲーティング回路１０１の回路図を示す。図１０に示すように、ゲーティング回路１０１は、比較信号ＣＯＭＰがハイレベルである場合、ＰＭＯＳトランジスタＰ１０２がオフ状態となる。そして、クロック信号ＣＬＫがロウレベルとなることで、ＰＭＯＳトランジスタＰ１０１がオン状態となり、ＮＭＯＳトランジスタＮ１０１がオフ状態となる。また、ゲーティング回路１０１では、クロック信号ＣＬＫがハイレベルである期間に反転ゲーティングクロック信号ＣＫｇＢをロウレベルとなり、インバータＩＮＶ０２のＮＭＯＳトランジスタＮ１０２がオン状態となる。そのため、ゲーティング回路１０１では、図１０に示した状態では、クロック信号ＣＬＫがハイレベルからロウレベルに切り替わってもゲーティングクロック信号ＣＫｇをハイレベルで維持する。
【００５６】
続いて、図１１に従来のフリップフロップ１００において、クロック信号ＣＬＫがロウレベルの期間に比較信号ＣＯＭＰがハイレベル（例えば、一致状態）からロウレベル（不一致状態）に遷移するタイミングのゲーティング回路１０１の回路図を示す。図１１に示すように、比較信号ＣＯＭＰがハイレベルからロウレベルに遷移するタイミングでは、まず、ＰＭＯＳトランジスタＰ１０２がオン状態となる。このとき、反転ゲーティングクロック信号ＣＫｇＢは、ロウレベルからハイレベルに遷移するが、インバータＩＮＶ０１の出力及びインバータＩＮＶ０２の出力の反転が完了するまでの間、ＰＭＯＳトランジスタＰ１０１、Ｐ１０２及びＮＭＯＳトランジスタＮ１０２が導通状態となる。そのため、インバータＩＮＶ０１、ＩＮＶ０２の出力の反転が完了するまでの期間に、ＰＭＯＳトランジスタＰ１０１、Ｐ１０２及びＮＭＯＳトランジスタＮ１０２を介して貫通電流Ｉｔｒａｎが流れる。
【００５７】
続いて、図１２に従来のフリップフロップ１００において、クロック信号ＣＬＫがロウレベルの期間に比較信号ＣＯＭＰがハイレベル（例えば、一致状態）からロウレベル（不一致状態）に遷移して安定状態となったときのゲーティング回路１０１の回路図を示す。図１２に示す状態では、ゲーティング回路１０１は、比較信号ＣＯＭＰ及びクロック信号ＣＬＫの論理レベルに応じて、ＰＭＯＳトランジスタＰ１０１、Ｐ１０２がオン状態となり、ＮＭＯＳトランジスタＮ１０１、Ｎ１０２がオフ状態となる。これにより、ゲーティング回路１０１は、反転ゲーティングクロック信号ＣＫｇがハイレベルかつゲーティングクロック信号ＣＫｇがロウレベルとなる。
【００５８】
上記したように、ゲーティング回路１０１では、クロック信号ＣＬＫがロウレベルである期間に比較信号ＣＯＭＰがハイレベルからロウレベルに遷移すると、当該遷移タイミングで貫通電流Ｉｔｒａｎが流れる。そのため、ＮＭＯＳトランジスタＮ１０２の動作電流Ｉｏｎｎに対してＰＭＯＳトランジスタＰ１０１、Ｐ１０２の動作電流Ｉｏｎｐが製造ばらつき等の影響で小さくなると、反転ゲーティングクロック信号ＣＫｇＢがハイレベルに遷移することができずにゲーティングクロック信号ＣＫｇの論理レベルを切り替えることが出来ない問題が生じる。一方、実施の形態１にかかるフリップフロップ１のクロック制御回路１０においては、反転論理和回路を用いてＳＲラッチ１３を構成したことで、貫通電流Ｉｔｒａｎに関する問題は生じない。
【００５９】
そこで、図１３に、図１０に示した状態と同じ状態（つまり、不一致検出信号Ｓ１１がロウレベルのときにクロック信号ＣＫＳがロウレベルとなった後の安定状態）の実施の形態１にかかるＳＲラッチ１３の回路図を示す。図１３に示すように、この状態では、ＳＲラッチ１３は、反転論理和回路ＮＯＲ２のＮＭＯＳトランジスタＮ１７がオン状態となることで、反転内部クロック信号ＣＫｘＢをロウレベルとする。また、ＳＲラッチ１３では、不一致検出信号Ｓ１１がロウレベル、かつ、反転内部クロック信号ＣＫｘＢがロウレベルであるため、ＰＭＯＳトランジスタＰ１５、Ｐ１６が導通状態となり、反転ラッチ出力端子ＱＬＢの信号レベルをハイレベルとする。このとき、ＮＭＯＳトランジスタＮ１５、Ｎ１６がオフ状態となるため、反転論理和回路ＮＯＲ１において貫通電流は流れない。また、反転ラッチ出力端子ＱＬＢの信号レベルがハイレベルとなり、かつ、クロック信号ＣＫＳがロウレベルであるため、反転論理和回路ＮＯＲ２のＰＭＯＳトランジスタＰ１７及びＮＭＯＳトランジスタＮ１８がオフ状態となる。つまり、反転論理和回路ＮＯＲ２において貫通電流は流れない。
【００６０】
続いて、図１４に、図１１に示した状態と同じ状態（つまり、クロック信号ＣＫＳがロウレベルである期間に不一致検出信号Ｓ１１がロウレベルからハイレベルに遷移するタイミング）の実施の形態１にかかるＳＲラッチ１３の回路図を示す。図１４に示すように、この状態では、ＳＲラッチ１３は、反転論理和回路ＮＯＲ１のＰＭＯＳトランジスタＰ１５がオン状態からオフ状態に遷移すると共に、ＮＭＯＳトランジスタＮ１５がオフ状態からオン状態に遷移する。これにより、反転ラッチ出力端子の信号レベルがハイレベルからロウレベルに遷移する。また、反転ラッチ出力端子の信号レベルがハイレベルからロウレベルに遷移したことに応じて反転論理和回路ＮＯＲ２のＰＭＯＳトランジスタＰ１７がオフ状態からオン状態に遷移すると共に、ＮＭＯＳトランジスタＮ１７がオン状態からオフ状態となる。これにより、反転内部クロック信号ＣＫｘＢはロウレベルからハイレベルに遷移する。このとき、ＳＲラッチ１３では、ＰＭＯＳトランジスタＰ１５及びＮＭＯＳトランジスタＮ１５が同時に状態を遷移させ、かつ、ＰＭＯＳトランジスタＰ１７及びＮＭＯＳトランジスタＮ１７が同時に状態を遷移させるため、電源端子から接地端子に向かって流れる貫通電流は発生しない。
【００６１】
続いて、図１５に、図１２に示した状態と同じ状態（つまり、クロック信号ＣＫＳがロウレベルである期間に不一致検出信号Ｓ１１がロウレベルからハイレベルに遷移した後の安定状態）の実施の形態１にかかるＳＲラッチ１３の回路図を示す。図１５に示すように、この状態では、反転内部クロック信号ＣＫｘＢはハイレベルとなるため、図１４に示した状態から、ＰＭＯＳトランジスタＰ１６及びＮＭＯＳトランジスタＮ１６の状態が変化する。具体的には、反転論理和回路ＮＯＲ１のＰＭＯＳトランジスタＰ１６がオフ状態となり、ＮＭＯＳトランジスタＮ１６がオン状態となる。図１５に示すように、この状態においてもＳＲラッチ１３では、電源端子と接地端子との間がオン状態のトランジスタにより接続されることはないため貫通電流は流れない。
【００６２】
上記説明より、従来のフリップフロップ１００では、クロック信号がロウレベルである期間に入力データと出力データとが一致状態から不一致状態となると、貫通電流Ｉｔｒａｎがながれ、当該貫通電流Ｉｔｒａｎに起因して回路の状態が不安定になる可能性がある。しかしながら、実施の形態１にかかるフリップフロップ１００では、クロック信号がロウレベルである期間に入力データと出力データとが一致状態から不一致状態となっても、電源端子と接地端子との間がオン状態のトランジスタにより接続されることはないため貫通電流は流れない。つまり、実施の形態１にかかるフリップフロップ１では、トランジスタのオン電流にばらつきが生じた場合においても安定した動作を維持することができる。また、実施の形態１にかかるフリップフロップ１では、トランジスタのオン電流のばらつきに対して高い耐性を有することで、電源電圧を低く設定することができる。そこで、従来のフリップフロップ１００と、実施の形態１にかかるフリップフロップ１と、の電源電圧に対する動作フリップフロップの割合の変化を示すグラフを図１６に示す。
【００６３】
図１６に示すように、従来のフリップフロップ１００では、電源電圧が１Ｖを下回ると動作するフリップフロップの割合が低下する。例えば、従来のフリップフロップ１００では、９０％のフリップフロップを動作させるためには０．７Ｖ程度の電源電圧が必要である。一方、実施の形態１にかかるフリップフロップ１は、０．４Ｖ程度まで１００％のフリップフロップが動作する。また、９０％のフリップフロップを動作させる電源電圧は、０．３５Ｖ程度の電圧で良い。つまり、実施の形態１にかかるフリップフロップ１を用いることで、従来のフリップフロップ１００よりも電源電圧を低下させて消費電力を削減することができる。
【００６４】
また、実施の形態１にかかるフリップフロップ１では、入力容量が小さいことも１つの特徴である。実施の形態１にかかるフリップフロップ１では、クロック信号ＣＫＳがＳＲラッチ１３の２つのトランジスタ（例えば、ＰＭＯＳトランジスタＰ１８及びＮＭＯＳトランジスタＮ１８）のみに入力される。そこで、以下では、クロック信号に対する制御を行わない通常のフリップフロップと、クロック信号の制御は行うものの入力容量が大きい（例えば、３つのトランジスタでクロック信号を受信する）特許文献７に記載のフリップフロップとの消費電力について説明する。
【００６５】
そこで、クロック信号に対する制御を行わないフリップフロップの回路図を図１７に示す。なお、以下の説明では、クロック信号に対する制御を行わないフリップフロップを一般的なフリップフロップ２００と称す。図１７に示すように、一般的なフリップフロップ２００では、クロック分配部２０１によりデータ保持部１５に内部クロック信号ＣＫｘ及び反転内部クロック信号ＣＫｘＢを与える。このクロック分配部２０１は、インバータ２０２、２０３を有する。そして、インバータ２０２によりクロック信号ＣＫＳを反転して反転内部クロック信号ＣＫｘＢを生成し、インバータ２０３により反転内部クロック信号ＣＫｘＢをさらに反転して内部クロック信号ＣＫｘを生成する。このインバータ２０２は、例えば、ＰＭＯＳトランジスタとＮＭＯＳトランジスタとを電源端子と接地端子との間に直列に接続したものである。つまり、一般的なフリップフロップ２００２つのトランジスタによりクロック信号ＣＫＳを受信する。
【００６６】
特許文献７に記載のフリップフロップは、３つのトランジスタによりクロック信号を受信し、入力データと出力データとが不一致の期間のみデータ保持部に出力する内部クロック信号をトグルさせる。なお、ここでは、入力容量とクロック信号の制御の有無とについての消費電力の比較を行うため特許文献７に記載のフリップフロップの回路の詳細な説明は省略する。
【００６７】
続いて、一般的なフリップフロップ２００を有する半導体装置と、特許文献７に記載されたフリップフロップ１００を有する半導体装置と、実施の形態１にかかるフリップフロップ１を有する半導体装置と、の消費電力を比較したグラフを図１８に示す。図１８では、同じ回路を、一般的なフリップフロップ２００を利用して形成した場合と、フリップフロップ１００を利用して形成した場合と、実施の形態１にかかるフリップフロップ１を利用して形成した場合とを比較したものである。また、図１８では、一般的なフリップフロップ２００を利用して形成した回路の消費電力を１とし、他のフリップフロップを利用して形成した回路の消費電力を一般的なフリップフロップ２００の消費電力との比により示したものである。
【００６８】
図１８に示すように、特許文献７に記載のフリップフロップ１００を利用して回路を形成した場合、内部クロック信号のトグルが減少するためフリップフロップの消費電力は低減するものの、クロックツリーの消費電力が増加する。そのため、特許文献７に記載のフリップフロップ１００を利用して回路を形成した場合、半導体装置全体の消費電力は削減できない。一方、実施の形態１にかかるフリップフロップ１を利用して回路を形成した場合、内部クロック信号ＣＫｘのトグルが減少するためフリップフロップ１の消費電力が低減する。さらに、実施の形態１にかかるフリップフロップ１は、クロック信号ＣＫＳが入力されるクロック入力端子ＣＫの入力容量が一般的なフリップフロップ２００と同程度に抑制されているため、クロックツリーの消費電力は増加しない。つまり、フリップフロップ１を用いることで、半導体装置全体の消費電力を抑制することができる。
【００６９】
また、一般的なフリップフロップ２００と、実施の形態１にかかるフリップフロップ１の出力データのトグル率と消費電力の関係について説明する。そこで、図１９に実施の形態１にかかるフリップフロップ１と一般的なフリップフロップ２００の出力データのトグル率の違いによる消費電力の違いを示すグラフを示す。なお、図１９で示した消費電力は、フリップフロップにクロック信号を伝達するクロックバッファの消費電力を含むものである。
【００７０】
図１９に示すように、一般的なフリップフロップ２００は、出力データのトグル率が変化しても一定の消費電力となる。これは、一般的なフリップフロップ２００が、出力データがトグルするか否かに関わらず、クロック信号ＣＫＳに基づき内部回路中の接点電圧を変化させるためである。一方、実施の形態１にかかるフリップフロップ１は、出力データのトグル率が５０％よりも低い場合、一般的なフリップフロップ２００よりも消費電力が低くなる。特に、出力データのトグル率が１％未満である場合には、実施の形態１にかかるフリップフロップ１は、一般的なフリップフロップ２００よりも８０％以上消費電力が小さくなる。これは、実施の形態１にかかるフリップフロップ１が、入力データＤｉｎと出力データＤｏとが不一致である場合にのみ内部クロック信号ＣＫｘをトグルさせるためである。
【００７１】
上記説明より、実施の形態１にかかるフリップフロップ１を用いることで、クロックツリーにかる消費電力の増加を抑制しながら、フリップフロップ１の消費電力を削減し、半導体装置全体の消費電力を抑制することができる。
【００７２】
また、実施の形態１にかかるフリップフロップ１では、クロック信号ＣＫＳがロウレベルである期間に入力データＤｉｎにハザードが発生した場合、マスターラッチＭＡ及びスレーブラッチＳＬが入力データＤｉｎの値を取り込み可能な状態となる。しかしながら、実施の形態１にかかるフリップフロップ１は、ハザードが収束した後、入力されるクロック信号ＣＫＳの立ち上がりエッジが入力されるまで内部クロック信号ＣＫｘをロウレベルに維持する。そのため、クロック信号ＣＫＳの立ち上がりエッジに応じて内部クロック信号ＣＫｘの論理レベルがハイレベルに復帰する場合に、ハザードの影響により出力データＤｏの論理レベルが遷移することを防止することができる。つまり、実施の形態１にかかるフリップフロップ１を用いることで、入力データＤｉｎのハザードに対する耐性を有しながら、クロック信号ＣＫＳの入力端子の入力容量が小さなフリップフロップを実現することができる。また、実施の形態１にかかるフリップフロップ１を用いることで半導体装置全体の消費電力を低減することができる。
【００７３】
また、実施の形態１にかかるフリップフロップ１では、不一致検出信号Ｓ１１の状態遷移に応じて生じる貫通電流の発生がないため、安定した回路動作を実現することができる。このようにフリップフロップ１を安定動作させることで電源電圧を低く設定し消費電力を抑制することができる。
【００７４】
実施の形態２
実施の形態１ではクロック信号ＣＫＳの立ち上がりエッジに応じて出力データＤｏの論理レベルを遷移させるフリップフロップについて説明した。実施の形態２では、クロック信号ＣＫＳの立ち下がりエッジに応じて出力データＤｏの論理レベルを遷移させる、つまり、立ち下がりエッジトリガ型のフリップフリップについて説明する。つまり、実施の形態２にかかるフリップフロップ２は、トリガエッジの直前の期間の第１の論理レベルがハイレベルとなり、トリガエッジの直後の期間の第２の論理レベルがロウレベルとなるクロック信号ＣＫＳに基づき入力データＤｉｎの保持動作を行うものである。
【００７５】
そこで、図２０に実施の形態２にかかるフリップフロップ２のブロック図を示す。なお、実施の形態２にかかる説明において実施の形態１と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【００７６】
図２０に示すように、実施の形態２にかかるフリップフロップ２は、クロック制御回路２０及びデータ保持部１５を有する。クロック制御回路２０は、入力データＤｉｎが出力データＤｏとは異なる論理レベルとなったときのみ、内部クロック信号ＣＫｘの論理レベルをクロック信号ＣＫＳのクロックエッジに応じて変化させる。そして、フリップフロップ２は、内部クロック信号ＣＫｘをデータ保持部１５に与える。
【００７７】
クロック制御回路２０は、不一致検出回路２１及び内部クロック生成部２２を有する。不一致検出回路２１は、入力データＤｉｎと出力データＤｏの不一致を検出して、不一致検出信号Ｓ２１を出力する。実施の形態２にかかるフリップフロップ２では、不一致検出回路２１として排他的反転論理和回路（図中では、ＸＮＯＲと表記する）を利用する。この不一致検出回路２１は、２つの入力信号が不一検出状態である場合に不一致検出信号Ｓ２１をロウレベル（例えば、０）とし、２つの入力信号が一致検出状態である場合に不一致検出信号をハイレベル（例えば、１）とするものである。
【００７８】
内部クロック生成部２２は、不一致検出信号Ｓ２１が不一致検出状態となったときにクロック信号ＣＫＳのトリガエッジの入力があった場合にクロック信号ＣＫＳのトリガエッジに対応したトリガエッジを有する内部クロック信号ＣＫｘを生成する。実施の形態２では、クロック信号ＣＫＳのトリガエッジは立ち下がりエッジであり、内部クロック信号ＣＫｘのトリガエッジは立ち上がりエッジである。より具体的に説明するために、図２１に内部クロック生成部２２の動作を示す真理値表を示す。
【００７９】
まず、実施の形態２にかかるフリップフロップ２では、クロック信号ＣＫＳは、論理レベルについて、トリガエッジの直前の期間の論理レベルが第１の論理レベル（例えば、ハイレベル又は１）となり、トリガエッジの直後の期間の論理レベルが第２の論理レベル（例えばロウレベル又は０）となる。また、内部クロック信号ＣＫｘは、論理レベルについて、トリガエッジの直前の期間の論理レベルが第３の論理レベル（例えば、ロウレベル又は０）となり、トリガエッジの直後の期間の論理レベルが第４の論理レベル（例えばハイレベル又は１）となる。
【００８０】
そして、図２１に示すように、内部クロック生成部２２は、不一致検出信号Ｓ２１が一致検出状態（例えば、ハイレベル）である場合、クロック信号ＣＫＳがロウレベルとなることで内部クロック信号ＣＫｘをハイレベルとする。そして、内部クロック生成部２２は、不一致検出信号Ｓ２１がハイレベルである場合、一旦内部クロック信号ＣＫｘがハイレベルとなった後はクロック信号ＣＫＳがトグルしても内部クロックＣＫｘをハイレベルで維持する。また、内部クロック生成部２２は、不一致検出信号Ｓ２１が不一致検出状態（例えば、ロウレベル）である場合、クロック信号ＣＫＳの論理レベルと逆の論理レベルで内部クロック信号ＣＫｘをトグルする。
【００８１】
ここで、内部クロック生成部２２の動作について別の観点から説明する。図２１に示すように、内部クロック生成部２２は、クロック信号ＣＫＳがハイレベルである期間に不一致検出信号Ｓ２１が不一致検出状態（例えば、ロウレベル）となった場合、内部クロック信号ＣＫｘをロウレベルとする。その後、不一致検出信号Ｓ２１が不一致検出状態を維持した状態でクロック信号ＣＫＳのトリガエッジが入力されることでクロック信号ＣＫＳがロウレベルとなった場合、内部クロック信号ＣＫｘは、クロック信号ＣＫＳの論理レベルの切り替わりに応じて内部クロック信号ＣＫｘをロウレベルからハイレベルに切り替える。また、クロック信号ＣＫＳがロウレベルである期間に不一致検出信号Ｓ２１の状態が一致検出状態と不一致検出状態との間で切り替わっても、内部クロック生成部２２は、内部クロック信号ＣＫｘをハイレベルで維持する。また、クロック信号ＣＫＳがハイレベルである期間に不一致検出信号Ｓ２１の状態が一致検出状態と不一致検出状態との間で切り替わった場合、内部クロック生成部２２は、内部クロック信号ＣＫｘを一旦ロウレベルした後は内部クロック信ＣＫｘをロウレベルで維持する。
【００８２】
なお、図２１に示すように、内部クロック生成部２２は、内部クロック信号ＣＫｘに加えて内部クロック信号ＣＫｘとは反転した論理レベルを有する反転内部クロック信号ＣＫｘＢを出力する。
【００８３】
この内部クロック生成部２２は、セットリセットラッチ（以下、ＳＲラッチと称す）２３、インバータ２４を有する。ＳＲラッチ２３は、セット入力端子Ｓ、リセット入力端子Ｒ、第１の出力端子（例えば、ラッチ出力端子ＱＬ）、第２の出力端子（例えば、反転ラッチ出力端子ＱＬＢ）を有する。そして、ＳＲラッチ２３は、セット入力端子Ｓとリセット入力端子Ｓとの一方に不一致検出信号Ｓ２１が入力され、セット入力端子Ｓとリセット入力端子Ｒとの他方にクロック信号（例えば、クロック信号ＣＫＳ）が入力され、不一致検出回路Ｓ２１とクロック信号ＣＫＳとに基づき内部クロック信号ＣＫｘを生成する。実施の形態２では、セット入力端子Ｓには、セット信号として不一致検出信号Ｓ２１が入力される。また、リセット入力端子Ｒには、リセット信号としてクロック信号ＣＫＳが入力される。また、詳細は後述するが、ＳＲラッチ２３はクロック信号ＣＫＳが入力されるトランジスタが２以下であるという特徴を有する。
【００８４】
そして、内部クロック生成部２２は、ＳＲラッチ２３のラッチ出力端子ＱＬから内部クロック信号ＣＫｘとは反転した論理レベルを有する反転クロック信号ＣＫｘＢを出力する。また、内部クロック生成部２２は、反転クロック信号ＣＫｘＢをインバータ２４で反転して内部クロック信号ＣＫｘを出力する。
【００８５】
続いて、実施の形態２にかかるフリップフロップ２の各ブロックの詳細な回路構成について説明する。まず、図２２に不一致検出回路２１の回路図を示す。図２２に示すように、不一致検出回路２１は、不一致検出回路１１の出力段にＰＭＯＳトランジスタＰ２１とＮＭＯＳトランジスタＮ２１で形成されたインバータを追加したものである。このインバータにより、不一致検出回路２１は、不一致検出信号Ｓ１１とは論理が反転した不一致検出信号Ｓ２１を出力する。
【００８６】
このような回路構成により、不一致検出回路２１では、排他的反転論理和回路を構成する。そこで、不一致検出回路２１の真理値表を図２３に示す。図２３に示すように、不一致検出回路２１は、第１の入力端子Ｉｎ１に入力される出力データＤｏと、第２の入力端子Ｉｎ２に入力される入力データＤｉｎと、が異なる論理レベルとなったときに、出力端子ＯＵＴから出力する不一致検出信号Ｓ２１をロウレベルとする。一方、不一致検出回路２１は、第１の入力端子Ｉｎ１に入力される出力データＤｏと、第２の入力端子Ｉｎ２に入力される入力データＤｉｎと、が同じ論理レベルとなったときに、出力端子ＯＵＴから出力する不一致検出信号Ｓ２１をハイレベルとする。
【００８７】
続いて、ＳＲラッチ２３の詳細な回路について説明する。図２４にＳＲラッチ２３の詳細な回路図を示す。図２４に示すように、ＳＲラッチ２３は、第１の反転論理積回路（例えば、反転論理積回路ＮＡＮＤ１）及び第２の反転論理積回路（例えば、反転論理積回路ＮＡＮＤ２）を有する。ＳＲラッチ２３では、反転論理積回路ＮＡＮＤ１の第１の入力端子と、反転論理積回路ＮＡＮＤ２の第１の入力端子と、の一方に不一致検出信号Ｓ２１が入力される。また、ＳＲラッチ２３は、反転論理積回路ＮＡＮＤ１の第１の入力端子と、反転論理積回路ＮＡＮＤ２の第１の入力端子と、の他方にクロック信号が入力される。さらに、ＳＲラッチ２３では、反転論理積回路ＮＡＮＤ１の出力端子と反転論理積回路ＮＡＮＤ２の第２の入力端子とが接続され、反転論理積回路ＮＡＮＤ２の出力端子と反転論理積回路ＮＡＮＤ１の第２の入力端子とが接続される。
【００８８】
より具体的には、反転論理積回路ＮＡＮＤ１は、第１の入力端子がセット端子Ｓに接続され、第２の入力端子が反転論理積回路ＮＡＮＤ２の出力端子に接続される。また、反転論理積回路ＮＡＮＤ１の出力端子は反転ラッチ出力端子ＱＬＢに接続される。反転論理積回路ＮＡＮＤ２は、第１の入力端子がリセット端子Ｒに接続され、第２の入力端子が反転論理積回路ＮＡＮＤ１の出力端子に接続される。反転論理積回路ＮＡＮＤ２の出力端子はラッチ出力端子ＱＬに接続される。このラッチ出力端子ＱＬから出力される信号が内部クロック信号ＣＫｘとなる。そして、実施の形態１では、セット端子Ｓに不一致検出信号Ｓ２１が入力され、リセット端子Ｒにクロック信号ＣＫＳが入力される。
【００８９】
反転論理積回路ＮＡＮＤ１は、ＰＭＯＳトランジスタＰ２５、Ｐ２６、ＮＭＯＳトランジスタＮ２５、Ｎ２６を有する。ＰＭＯＳトランジスタＰ２５、Ｐ２６のソースは電源端子に接続される。ＰＭＯＳトランジスタＰ２５のゲートには、不一致検出信号Ｓ２１が入力される。ＰＭＯＳトランジスタＰ２６のゲートは、反転論理積回路ＮＡＮＤ２の出力端子に接続される。ＰＭＯＳトランジスタＰ２５、Ｐ２６のドレインは、反転ラッチ出力端子ＱＬＢと接続される。ＮＭＯＳトランジスタＮ２５のドレインは、反転ラッチ出力端子ＱＬＢと接続される。ＮＭＯＳトランジスタＮ２５のゲートは、反転論理積回路ＮＡＮＤ２と接続される。ＮＭＯＳトランジスタＮ２５のソースは、ＮＭＯＳトランジスタＮ２６のドレインと接続される。ＮＭＯＳトランジスタＮ２６のゲートには、不一致検出信号Ｓ２１が入力される。ＮＭＯＳトランジスタＮ２６のソースは、接地端子と接続される。
【００９０】
反転論理積回路ＮＡＮＤ２は、ＰＭＯＳトランジスタＰ２７、Ｐ２８、ＮＭＯＳトランジスタＮ２７、Ｎ２８を有する。ＰＭＯＳトランジスタＰ２７、Ｐ２８のソースは電源端子に接続される。ＰＭＯＳトランジスタＰ２７のゲートは、反転論理積回路ＮＡＮＤ１の出力端子に接続される。ＰＭＯＳトランジスタＰ２８のゲートには、クロック信号ＣＫＳが入力される。ＰＭＯＳトランジスタＰ２７、Ｐ２８のドレインは、ラッチ出力端子ＱＬと接続される。ＮＭＯＳトランジスタＮ２７のドレインは、ラッチ出力端子ＱＬと接続される。ＮＭＯＳトランジスタＮ２７のゲートには、クロック信号ＣＫＳが入力される。ＮＭＯＳトランジスタＮ２７のソースは、ＮＭＯＳトランジスタＮ２８のドレインと接続される。ＮＭＯＳトランジスタＮ２８のゲートは、反転論理積回路ＮＡＮＤ１の出力端子と接続される。ＮＭＯＳトランジスタＮ２８のソースは、接地端子と接続される。なお、ＰＭＯＳトランジスタＰ２７、Ｐ２８が第１のトランジスタ及び第２のトランジスタに相当し、ＮＭＯＳトランジスタＮ２７、Ｎ２８が第３のトランジスタ及び第４のトランジスタに相当する。
【００９１】
ここで、ＳＲラッチ２３の真理値表を図２５に示し、ＳＲラッチ２３の動作について説明する。図２５に示すように、ＳＲラッチ２３は、不一致検出信号Ｓ２１がロウレベル、かつ、クロック信号ＣＫＳがハイレベルである場合、ラッチ出力端子ＱＬの出力値をロウレベルとし、反転ラッチ出力端子ＱＬＢの出力値をハイレベルとする。ＳＲラッチ２３は、不一致検出信号Ｓ２１がハイレベル、かつ、クロック信号ＣＫＳがロウレベルである場合、ラッチ出力端子ＱＬの出力値をハイレベルとし、反転ラッチ出力端子ＱＬＢの出力値をロウレベルとする。ＳＲラッチ２３は、不一致検出信号Ｓ２１及びクロック信号ＣＫＳがいずれもハイレベルである場合、不一致検出信号Ｓ２１及びクロック信号ＣＫＳがいずれもハイレベルとなる前のラッチ出力端子ＱＬの出力値及び反転ラッチ出力端子ＱＬＢの出力値の論理レベルを維持する。さらに、ＳＲラッチ２３は、不一致検出信号Ｓ２１及びクロック信号ＣＫＳがいずれもロウレベルである場合、ラッチ出力端子ＱＬの出力値及び反転ラッチ出力端子ＱＬＢの出力値をいずれもハイレベルとする。
【００９２】
つまり、実施の形態２にかかるフリップフロップ２では、通常、ＳＲラッチの利用形態として禁止或いは条件付きで利用可能とされるラッチ出力端子ＱＬ及び反転ラッチ出力端子ＱＬＢがいずれもハイレベルとなる入力状態を積極的に利用する。これにより、ＳＲラッチ２３は、不一致検出信号Ｓ２１が入力データＤｉｎと出力データＤｏとが異なる論理レベルである状態（例えば、不一致検出信号Ｓ２１がロウレベルとなる状態）で、クロック信号ＣＫＳの立ち下がりエッジが入力された場合のみ内部クロック信号ＣＫｘをクロック信号ＣＫＳのトグルに合わせてトグルさせる。
【００９３】
また、実施の形態２にかかるＳＲラッチ２３においても、不一致検出信号Ｓ２１の論理レベルの遷移に応じて異なる導電型のトランジスタが同時に導通状態を逆の状態に遷移させ、電源端子と接地端子とが導通状態となることを防止する。そのため、実施の形態２においても不一致検出信号Ｓ２１の論理レベルの切り替わりに応じて貫通電流が流れることがない。つまり、実施の形態２にかかるＳＲラッチ２３においても入力信号の論理レベルの遷移に応じて貫通電流が流れることはないのでフリップフロップ２の安定性を向上させることができる。また、実施の形態２にかかるフリップフロップ２は、実施の形態１にかかるフリップフロップ１と同様に高い安定性に基づき電源電圧を低下させて消費電力を削減することができる。
【００９４】
次いで、実施の形態２にかかるフリップフロップ２の動作について説明する。そこで、図２６にフリップフロップ２の動作を示すタイミングチャートを示す。まず、図２６の期間ＴＭ１について説明する。期間ＴＭ１では、クロック信号ＣＫＳの立ち下がりエッジが入力されるタイミングＴ１の前に入力データＤｉｎの論理レベルがロウレベルからハイレベルに遷移する。そのため、期間ＴＭ１では、入力データＤｉｎの論理レベルの切り替わりに伴い、不一致検出回路２１が不一致検出信号Ｓ２１をロウレベルとする。また、不一致検出信号Ｓ２１がロウレベルとなったことに応じて、ＳＲラッチ２３が内部クロック信号ＣＫｘをロウレベルとする。このとき、マスターラッチＭＡがホールド状態からスルー状態となり、スレーブラッチＳＬがスルー状態からホールド状態となる。つまり、マスターラッチＭＡは、入力データＤｉｎに応じて論理レベルがハイレベルとなる信号をスレーブラッチＳＬに伝達し、スレーブラッチＳＬは入力データＤｉｎがハイレベルとなる前の期間にマスターラッチＭＡから与えられていた信号の論理レベル（つまり、ロウレベル）を保持する。
【００９５】
そして、タイミングＴ１においてクロック信号ＣＫＳの立ち下がりエッジが入力されると、ＳＲラッチ２３は内部クロック信号ＣＫｘをロウレベルからハイレベルに遷移させる。この内部クロック信号ＣＫｘの立ち下がりエッジに応じて、データ保持部１５のマスターラッチＭＡは、スルー状態からホールド状態となり、入力データＤｉｎの値を保持する状態となる。また、内部クロック信号ＣＫｘの立ち下がりエッジに応じて、データ保持部１５のスレーブラッチＳＬは、ホールド状態からスルー状態となり、マスターラッチＭＡが出力している入力データＤｉｎの値をデータ出力端子ＱＦから出力する。これにより、出力データＤｏの値が入力データＤｉｎの値と一致した状態になるため、不一致検出信号Ｓ２１はロウレベルとなる。
【００９６】
続いて、入力データＤｉｎの論理レベルが変化しない状態でクロック信号ＣＫＳの立ち下がりエッジが入力される期間ＴＭ２における実施の形態２にかかるフリップフロップ２の動作について説明する。期間ＴＭ２では、入力データＤｉｎの論理レベルが維持される。そのため、不一致検出回路１１は、不一致検出信号Ｓ２１をロウレベルで維持する。これにより、ＳＲラッチ２３のセット端子Ｓに入力される不一致検出信号Ｓ２１がハイレベルで維持されるため、クロック信号ＣＫＳの立ち下がりエッジが入力されても、ＳＲラッチ２３は、内部クロック信号ＣＫｘの論理レベルを維持する。従って、マスターラッチＭＡはホールド状態を維持し、かつ、スレーブラッチＳＬはスルー状態を維持する。つまり、出力データＤｏの論理レベルは、クロック信号ＣＫＳの立ち下がりエッジがタイミングＴ２で入力されても変化しない。このように、実施の形態２にかかるフリップフロップ２は、入力データＤｉｎに論理レベルの変化がなければ、クロック信号ＣＫＳの立ち下がりエッジが入力されても内部クロック信号ＣＫｘをトグルしない。
【００９７】
続いて、入力データＤｉｎにハザードが発生した期間ＴＭ３における実施の形態２にかかるフリップフロップ２の動作について説明する。期間ＴＭ３では、タイミングＴ３でクロック信号ＣＫＳの立ち下がりエッジが入力されるが、タイミングＴ３の前後の期間に入力データＤｉｎにハザードが発生する。
【００９８】
このハザードが発生した場合、ハザード発生期間中において入力データＤｉｎと出力データＤｏとの論理レベルが異なるレベルとなるため、ハザード発生期間中は、不一致検出回路２１が出力する不一致検出信号Ｓ２１がロウレベルとなる。そして、クロック信号ＣＫＳがロウレベルである期間にハザードが発生するとＳＲラッチ２３のリセット端子Ｒに入力されるクロック信号ＣＫＳがロウレベルとなり、セット端子Ｓに入力される不一致検出信号Ｓ２１がハイレベルとなる。したがって、クロック信号ＣＫＳがロウレベルである期間中にハザードが発生すると、ＳＲラッチ２３は内部クロック信号ＣＫｘをロウレベルとする。一方、クロック信号ＣＫＳがハイレベルである期間にハザードが発生するとＳＲラッチ２３のリセット端子Ｒに入力されるクロック信号ＣＫＳがハイレベルとなり、セット端子Ｓに入力される不一致検出信号Ｓ２１がハイレベルとなるため、ＳＲラッチ２３は内部クロック信号ＣＫｘの論理レベルをハイレベルで維持する。
【００９９】
また、クロック信号ＣＫＳがロウレベルである期間にハザードが発生した場合、内部クロック信号ＣＫｘがハイレベルからロウレベルに切り替わるため、マスターラッチＭＡはホールド状態からスルー状態となり、スレーブラッチＳＬはスルー状態からホールド状態となる。そのため、クロック信号ＣＫＳがロウレベルである期間にハザードが発生した場合、マスターラッチＭＡは入力データＤｉｎの値をスレーブラッチＳＬに伝達する状態となり、スレーブラッチＳＬはハザード発生前にマスターラッチＭＡで保持されていた値を保持する状態となる。そのため、ハザードが発生しても、フリップフロップ２は、出力データＤｏの論理レベルを維持する。
【０１００】
そして、図２６に示した例では、ハザードが収束した後のタイミングＴ３でクロック信号ＣＫＳの立ち下がりエッジが入力される。このタイミングＴ３では、入力データＤｉｎはハイレベルとなっているため、不一致検出信号Ｓ２１はハイレベルとなっている。そのため、タイミングＴ３では、ＳＲラッチ２３のリセット端子Ｒに入力されるクロック信号ＣＫＳがハイレベルとなり、セット端子Ｓに入力される不一致検出信号Ｓ２１がロウレベルとなるため、ＳＲラッチ２３は内部クロック信号ＣＫｘをロウレベルからハイレベルとする。また、内部クロック信号ＣＫｘがハイレベルとなったことに応じて、マスターラッチＭＡはスルー状態からホールド状態となり、スレーブラッチＳＬはホールド状態からスルー状態となる。このタイミングＴ３では、入力データＤｉｎがハザード発生前の状態であるため、マスターラッチＭＡはハザード発生前と同じ論理レベルの信号をスレーブラッチＳＬに出力する。また、タイミングＴ３でスレーブラッチＳＬに伝達されている値はハザード発生前と同じであるためスレーブラッチＳＬはスルー状態となっても、ハザード発生前と同じ値をデータ出力端子ＱＦに出力する。つまり、実施の形態１にかかるフリップフロップ１では、ハザード発生期間中にクロック信号ＣＫＳの立ち下がりエッジが入力されなければ、ハザードの発生に起因して出力データＤｏの値が変化することはない。
【０１０１】
上記したように、実施の形態２にかかるフリップフロップ２では、入力データＤｉｎに論理レベルが変化しない場合にはクロック信号ＣＫＳの立ち下がりエッジに基づく内部クロック信号ＣＫｘのトグルを防止することでデータ保持部１５の内部回路動作を抑制して消費電力を削減する。また、実施の形態２にかかるフリップフロップ２では、ハザードの発生に伴うデータ保持部１５の誤動作を防止することができる。さらに、実施の形態２にかかるフリップフロップ２においても、クロック信号ＣＫＳがゲートに入力されるトランジスタは２つである。そのため、実施の形態２にかかるフリップフロップ２においても、記内部クロック信号ＣＫｘのトグルを防止することによる消費電力を削減する第１の機能と、ハザード発生に起因する誤動作を防止する第２の機能と、をクロック入力端子ＣＫの入力容量を削減しながら実現ことができる。
【０１０２】
また、実施の形態２にかかるフリップフロップ２は、実施の形態１にかかるフリップフロップ１と同様の高い安定性を確保できるため、低電源電圧による消費電力の削減を行うことができる。
【０１０３】
実施の形態３
実施の形態３では、実施の形態１にかかるフリップフロップ１の変形例となるフリップフロップ１ａと、実施の形態２にかかるフリップフロップ２の変形例となるフリップフロップ２ａと、について説明する。なお、実施の形態３の説明において実施の形態１、２と同じ構成要素については実施の形態１、２と同じ符号を付して説明を省略する。
【０１０４】
まず、実施の形態３にかかるフリップフロップ１ａのブロック図を図２７に示し、フリップフロップ１ａについて説明する。図２７に示すように、実施の形態３にかかるフリップフロップ１ａは、実施の形態１にかかるクロック制御回路１０に代えてクロック制御回路３０を用いる。クロック制御回路３０は、入力データＤｉｎと出力データＤｏとが異なる値となっている状態でクロック信号ＣＫＳの立ち上がりエッジが入力された場合に立ちあがる内部クロック信号ＣＫｘを生成する。
【０１０５】
ここで、クロック制御回路３０についてさらに詳細に説明する。図２７に示すように、クロック制御回路３０は、クロック制御回路１０の内部クロック生成部１２に代えて内部クロック生成部１２ａを有する。内部クロック生成部１２ａは、ＳＲラッチ１３の接続形態の変形例となるものである。より具体的には、内部クロック生成部１２ａでは、ＳＲラッチ１３のセット端子Ｓにクロック信号ＣＫＳが入力され、リセット端子Ｒに不一致検出信号Ｓ１１が入力される。また、クロック制御回路３０では、ＳＲラッチ１３の反転ラッチ出力端子ＱＬＢから反転内部クロック信号ＣＫｘＢを出力し、反転内部クロック信号ＣＫｘＢをインバータ１４で反転した信号を内部クロック信号ＣＫｘとして用いる。
【０１０６】
ここで、内部クロック生成部１２ａへの入力値と内部クロック信号との関係を示す真理値表を図２８に示す。図２８に示すように、フリップフロップ１ａの内部クロック生成部１２ａは、不一致検出信号Ｓ１１がロウレベル（例えば、０）、かつ、クロック信号ＣＫＳがハイレベル（例えば、１）である場合、反転内部クロック信号ＣＫｘＢをロウレベルとし、内部クロック信号ＣＫｘをハイレベルとする。フリップフロップ１ａの内部クロック生成部１２ａは、不一致検出信号Ｓ１１がハイレベル、かつ、クロック信号ＣＫＳがロウレベルである場合、反転内部クロック信号ＣＫｘＢをハイレベルとし、内部クロック信号ＣＫｘをロウレベルとする。フリップフロップ１ａの内部クロック生成部１２ａは、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもロウレベルである場合、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもロウレベルとなる前の反転内部クロック信号ＣＫｘＢ及び内部クロック信号ＣＫｘの論理レベルを維持する。さらに、フリップフロップ１ａの内部クロック生成部１２ａは、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもハイレベルである場合、反転内部クロック信号ＣＫｘＢをロウレベルとし、内部クロック信号ＣＫｘをハイレベルとする。
【０１０７】
つまり、フリップフロップ１ａの内部クロック生成部１２ａは、不一致検出信号Ｓ１１が入力データＤｉｎと出力データＤｏとが不一致の状態のとき（例えば、不一致検出信号Ｓ１１がハイレベルのとき）は、実施の形態１にかかるフリップフロップ１と同様にクロック信号ＣＫＳと同じ論理レベルで内部クロック信号ＣＫｘをトグルする。一方、フリップフロップ１ａの内部クロック生成部１２ａは、不一致検出信号Ｓ１１が入力データＤｉｎと出力データＤｏとが一致の状態のとき（例えば、不一致検出信号Ｓ１１がロウレベルのとき）は、実施の形態１にかかるフリップフロップ１と同様にクロック信号ＣＫＳがトグルしても内部クロック信号ＣＫｘをハイレベルで維持する。
【０１０８】
図２７及び図２８を参照して説明したように、実施の形態３にかかるフリップフロップ１ａは、クロック制御回路１０内の各ブロックの接続関係を変形したクロック制御回路３０を用いて実施の形態１にかかるフリップフロップ１と同様の機能及び効果を実現するものである。
【０１０９】
続いて、実施の形態３にかかるフリップフロップ２ａのブロック図を図２９に示し、フリップフロップ２ａについて説明する。図２９に示すように、実施の形態３にかかるフリップフロップ２ａは、実施の形態２にかかるクロック制御回路２０に代えてクロック制御回路４０を用いる。クロック制御回路４０は、入力データＤｉｎと出力データＤｏとが異なる値となっている状態でクロック信号ＣＫＳの立ち下がりエッジが入力された場合に立ちあがる内部クロック信号ＣＫｘを生成する。
【０１１０】
ここで、クロック制御回路４０についてさらに詳細に説明する。図２９に示すように、クロック制御回路４０は、クロック制御回路２０の内部クロック生成部２２の接続形態の変形例となるものである。より具体的には、内部クロック生成部２２ａでは、ＳＲラッチ２３のセット端子Ｓにクロック信号ＣＫＳが入力され、リセット端子Ｒに不一致検出信号Ｓ２１が入力される。また、クロック制御回路４０では、ＳＲラッチ２３の反転ラッチ出力端子ＱＬＢから内部クロック信号ＣＫｘを出力し、内部クロック信号ＣＫｘをインバータ２４で反転した信号を反転内部クロック信号ＣＫｘＢとして用いる。
【０１１１】
ここで、内部クロック生成部２２ａへの入力値と内部クロック信号との関係を示す真理値表を図３０に示す。図３０に示すように、フリップフロップ２ａの内部クロック生成部２２ａは、不一致検出信号Ｓ２１がロウレベル（例えば、０）、かつ、クロック信号ＣＫＳがハイレベル（例えば、１）である場合、内部クロック信号ＣＫｘをロウレベルとし、反転内部クロック信号ＣＫｘをハイレベルとする。フリップフロップ２ａの内部クロック生成部２２ａは、不一致検出信号Ｓ２１がハイレベル、かつ、クロック信号ＣＫＳがロウレベルである場合、内部クロック信号ＣＫｘをハイレベルとし、反転内部クロック信号ＣＫｘＢをロウレベルとする。フリップフロップ２ａの内部クロック生成部２２ａは、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもハイレベルである場合、不一致検出信号Ｓ２１及びクロック信号ＣＫＳがいずれもハイレベルとなる前の内部クロック信号ＣＫｘ及び反転内部クロック信号ＣＫｘＢの論理レベルを維持する。さらに、フリップフロップ２ａの内部クロック生成部２２ａは、不一致検出信号Ｓ１１及びクロック信号ＣＫＳがいずれもロウレベルである場合、内部クロック信号ＣＫｘをハイレベルとし、反転内部クロック信号ＣＫｘＢをハイレベルとする。
【０１１２】
つまり、フリップフロップ２ａの内部クロック生成部２２ａは、不一致検出信号Ｓ２１が入力データＤｉｎと出力データＤｏとが不一致の状態のとき（例えば、不一致検出信号Ｓ１１がロウレベルのとき）は、実施の形態２にかかるフリップフロップ２と同様にクロック信号ＣＫＳとは反転した論理レベルで内部クロック信号ＣＫｘをトグルする。一方、フリップフロップ２ａの内部クロック生成部２２ａは、不一致検出信号Ｓ２１が入力データＤｉｎと出力データＤｏとが一致の状態のとき（例えば、不一致検出信号Ｓ１１がハイレベルのとき）は、実施の形態２にかかるフリップフロップ２と同様にクロック信号ＣＫＳがトグルしても内部クロック信号ＣＫｘをハイレベルで維持する。
【０１１３】
図２９及び図３０を参照して説明したように、実施の形態３にかかるフリップフロップ２ａは、クロック制御回路２０内の各ブロックの接続関係を変形したクロック制御回路４０を用いて実施の形態２にかかるフリップフロップ２と同様の機能及び効果を実現するものである。
【０１１４】
実施の形態４
実施の形態４では、データ保持部１５としてスキャンテストに対応したデータ保持部１５Ｓ（例えば、スキャンフリップフロップ）を用いた実施の形態について説明する。また、実施の形態４では、排他的論理和回路１１の別の形態となる排他的論理和回路１１ａについても説明する。なお、実施の形態４の説明において上記実施の形態で説明した構成要素と同じ構成要素については上記実施の形態と同じ符号を付して説明を省略する。
【０１１５】
実施の形態４にかかるフリップフロップ３のブロック図を図３１に示す。図３１に示すように、実施の形態４にかかるフリップフロップ３は、実施の形態１にかかるフリップフロップ１のクロック制御回路１０及びデータ保持部１５をクロック制御回路５０及びデータ保持部１５Ｓに置き換えたものである。
【０１１６】
そこで、まず、データ保持部１５Ｓについて説明する。スキャンテストでは、入力信号として入力データＤｉｎとスキャンデータＳｉｎが利用される。そのため、フリップフロップ３では入力データが第１の入力データ（例えば、入力データＤｉｎ）と第２の入力データ（例えば、スキャンデータＳｉｎ）を含む。そこで、図３１に示すように、データ保持部１５Ｓは、データ保持部１５のマスターラッチＭＡをマスターラッチＭＡＳに置き換えたものである。このマスターラッチＭＡＳは、マスターラッチＭＡに、インバータＩＮＶｓ、ＩＮＶｓｅ、トランスファースイッチＴＳＷｂｓ、ＴＳＷａｓを追加したものである。また、データ保持部１５Ｓは、外部から与えられる選択信号ＳＦＴに応じて入力データＤｉｎとスキャンデータＳｉｎとのいずれかが伝達される第１の配線を有する。そして、データ保持部１５Ｓは、第１の配線に伝達された被保持データを内部クロック信号ＣＫｘに応じて保持する。
【０１１７】
トランスファースイッチＴＳＷｂｓは、インバータＩＮＶ１の出力とトランスファースイッチＴＳＷｂ１との間に設けられる。インバータＩＮＶｓは、シフトデータＳＩが入力されるシフトデータ入力端子ＳＩに入力が接続され、出力がトランスファースイッチＴＳＷａｓを介してトランスファースイッチＴＳＷｂ１に接続される。このトランスファースイッチＴＳＷａｓ、ＴＳＷｂｓと、トランスファースイッチＴＳＷｂ１とを接続する配線が第１の配線に相当するものである。インバータＩＮＶｓｅは、シフトイネーブル端子ＳＥを介して外部から与えられる選択信号ＳＦＴを反転して反転選択信号ＳＦＴＢを生成する。なお、選択信号ＳＦＴは、トランスファースイッチＴＳＷａｓ、ＴＳＷａｓ及びＳＲラッチ１３ａに与えられる。また、反転選択信号ＳＦＴＢは、トランスファースイッチＴＳＷａｓ、ＴＳＷａｓに与えられる。
【０１１８】
ここで、トランスファースイッチＴＳＷａｓ、ＴＳＷｂｓは、選択信号ＳＦＴに応じて排他的に導通状態となる。より具体的には、選択信号ＳＦＴがシフトデータＳｉｎの選択を指示するハイレベルの状態である場合、トランスファースイッチＴＳＷａｓが導通状態となり、トランスファースイッチＴＳＷｂｓが遮断状態となる。また、選択信号ＳＦＴが入力データＤｉｎの選択を指示するロウレベルの状態である場合、トランスファースイッチＴＳＷａｓが遮断状態となり、トランスファースイッチＴＳＷｂｓが導通状態となる。
【０１１９】
これにより、データ保持部１５Ｓは、選択信号ＳＦＴがハイレベルの期間はシフトデータＳｉｎを内部クロック信号ＣＫｘに応じて保持し、選択信号ＳＦＴがロウレベルの期間は入力データＤｉｎを内部クロック信号ＣＫｘに応じて保持する。
【０１２０】
続いて、クロック制御回路５０は、実施の形態１のクロック制御回路１０の不一致検出回路１１及びＳＲラッチ１３を不一致検出回路１１ａ及びＳＲラッチ１３ａに置き換えたものである。実施の形態４にかかるフリップフロップ３では、不一致検出回路１１ａは、入力データとして入力データＤｉｎを参照し、入力データＤｉｎと出力データＤｏと不一致を検出して、不一致検出信号Ｓ１１を出力する。不一致検出回路１１ａは、不一致検出回路１１と同様に排他的論理和回路として動作するものであるが、回路構成が不一致検出回路１１とはことなる。そこで、不一致検出回路１１ａの回路図を図３２に示す。
【０１２１】
図３２に示すように、不一致検出回路１１ａは、トランスファースイッチ１１１ａ、１１１ｂを有する。トランスファースイッチ１１１ａは、ＮＭＯＳトランジスタＭＮ、ＰＭＯＳトランジスタＭＰを有する。そして、ＮＭＯＳトランジスタＭＮのソース・ドレインの一方とＰＭＯＳトランジスタＭＰのソース・ドレインの一方とは、互いに接続される。また、ＮＭＯＳトランジスタＭＮのソース・ドレインの他方とＰＭＯＳトランジスタＭＰのソース・ドレインの他方とは、互いに接続される。そして、ＮＭＯＳトランジスタＭＮのゲートには、入力データＤｉｎを反転させた反転入力データＤｉｎＢが与えられる。ＰＭＯＳトランジスタＭＰのゲートには、入力データＤｉｎが与えられる。このトランスファースイッチ１１１ａは、入力データＤｉｎがロウレベルである期間に導通状態となるスイッチ回路である。なお、実施の形態４では、図３０に示すように、反転入力データＤｉｎＢは、データ保持部１５ＳのインバータＩＮＶ１で入力データＤｉｎを反転して生成されるものである。
【０１２２】
また、トランスファースイッチ１１１ｂは、ＮＭＯＳトランジスタＭＮ、ＰＭＯＳトランジスタＭＰを有する。そして、ＮＭＯＳトランジスタＭＮのソース・ドレインの一方とＰＭＯＳトランジスタＭＰのソース・ドレインの一方とは、互いに接続される。また、ＮＭＯＳトランジスタＭＮのソース・ドレインの他方とＰＭＯＳトランジスタＭＰのソース・ドレインの他方とは、互いに接続される。そして、ＮＭＯＳトランジスタＭＮのゲートには、入力データＤｉｎが与えられる。ＰＭＯＳトランジスタＭＰのゲートには、反転入力データＤｉｎＢが与えられる。このトランスファースイッチ１１１ｂは、入力データＤｉｎがハイレベルである期間に導通状態となるスイッチ回路である。つまり、トランスファースイッチ１１１ａと、トランスファースイッチ１１１ｂは、排他的に導通状態となる。
【０１２３】
そして、不一致検出回路１１ａでは、トランスファースイッチ１１１ａに出力データＤｏを与え、トランスファースイッチ１１１ｂにインバータＩＮＶ６の入力信号として与えられる反転出力データＤｏＢを与える。この反転出力データＤｏＢは、インバータＩＮＶ６で反転される前の出力データＤｏであり、出力データＤｏとは反転した論理レベルを有する。
【０１２４】
この不一致検出回路１１ａは、入力データＤｉｎがロウレベルである場合、トランスファースイッチ１１１ａが導通状態となり、かつ、トランスファースイッチ１１１ｂが遮断状態となり、出力データＤｏの論理レベルに応じた不一致検出信号Ｓ１１を出力する。また、不一致検出回路１１ａは、入力データＤｉｎがハイレベルである場合、トランスファースイッチ１１１ａが遮断状態となり、かつ、トランスファースイッチ１１１ｂが導通状態となり、反転出力データＤｏＢの論理レベルに応じた不一致検出信号Ｓ１１を出力する。つまり、不一致検出回路１１ａは、入力データＤｉｎと出力データＤｏとが共にロウレベルであれば、トランスファースイッチ１１１ａを介してロウレベルの不一致検出信号Ｓ１１を出力する。不一致検出回路１１ａは、入力データＤｉｎと出力データＤｏとが共にハイレベルであれば、トランスファースイッチ１１１ｂを介してロウレベルの不一致検出信号Ｓ１１を出力する。また、不一致検出回路１１ａは、入力データＤｉｎがロウレベルかつ出力データＤｏがハイレベルであれば、トランスファースイッチ１１１ａを介してハイレベルの不一致検出信号Ｓ１１を出力する。不一致検出回路１１ａは、入力データＤｉｎがハイレベルかつ出力データＤｏがロウレベルであれば、トランスファースイッチ１１１ｂを介してハイレベルの不一致検出信号Ｓ１１を出力する。
【０１２５】
上記したように、不一致検出回路１１ａは、図３で示した不一致検出回路１１と同じく排他的論理和回路として動作するものでありながら、回路素子を削減することができる。
【０１２６】
続いて、ＳＲラッチ１３ａについて説明する。ＳＲラッチ１３ａは、実施の形態１にかかるＳＲラッチ１３に選択信号ＳＦＴに応じてクロック信号ＣＫＳのゲーティング機能を停止させる機能を追加したものである。つまり、ＳＲラッチ１３ａは、選択信号ＳＦＴがスキャンデータＳｉｎを選択することを示す場合、不一致検出信号Ｓ１１の論理レベルによらず、クロック信号ＣＫＳの論理レベルの変化に対応して論理レベルが変化する内部クロック信号ＣＫｘを生成する。そこで、ＳＲラッチ１３ａの詳細な回路図を図３３に示す。
【０１２７】
図３３に示すように、ＳＲラッチ１３ａは、反転論理和回路ＮＯＲ２を反転論理和回路ＮＯＲ２Ｓに置き換えたものである。反転論理和回路ＮＯＲ２Ｓは、反転論理和回路ＮＯＲ２に第５のトランジスタ（例えば、ＰＭＯＳトランジスタＰ３７）と第６のトランジスタ（例えば、ＮＭＯＳトランジスタＮ３６）を追加したものである。
【０１２８】
ＰＭＯＳトランジスタＰ３７は、選択信号ＳＦＴを反転した反転選択信号ＳＦＴＢが制御端子に与えられ、ＰＭＯＳトランジスタＰ１７と並列に接続される。ＮＭＯＳトランジスタＮ３７は、反転選択信号ＳＦＴＢが制御端子（例えば、ゲート端子）に与えられ、ＮＭＯＳトランジスタＮ１７の第１の端子（例えば、ソース端子）と接地端子との間に接続される。
【０１２９】
ＳＲラッチ１３ａは、選択信号ＳＦＴがシフトデータＳｉｎを選択するハイレベルある状態で、反転選択信号ＳＦＴＢがロウレベルとなるため、ＰＭＯＳトランジスタＰ３７がオン状態、かつ、ＮＭＯＳトランジスタＮ３７がオフ状態となる。これにより、ＳＲラッチ１３ａは、選択信号ＳＦＴがシフトデータＳｉｎの選択を指示している期間は、ＰＭＯＳトランジスタＰ１７及びＮＭＯＳトランジスタＮ１７が無効状態なり、ＰＭＯＳトランジスタＰ１８及びＮＭＯＳトランジスタＮ１８により構成されるインバータとして機能する。つまり、ＳＲラッチ１３ａは、選択信号ＳＦＴの論理レベルによりクロック信号ＣＫのゲーティング機能を無効とするか有効とするかを切り替えることができる。
【０１３０】
なお、スキャンテストでは、シフトデータＳｉｎとしてトグル率の高い信号が入力されるため、入力データと出力データとの遷移によりクロック信号ＣＫをゲーティングすることの効果が小さい。そのため、スキャンテスト時にクロック制御回路５０によるクロック信号ＣＫのゲーティング機能を無効にしても消費電力の違いは小さい。
【０１３１】
また、実施の形態４にかかるフリップフロップ３は、選択信号ＳＦＴの論理レベルによりクロック信号ＣＫのゲーティング機能を無効とするか有効とするかを切り替える機能を実現しながら、回路面積を小さくすることができる。そこで、回路面積について説明するために、実施の形態１にかかるクロック制御回路１０とデータ保持部１５Ｓとを用いてフリップフロップを構成した場合のブロック図を図３４に示す。
【０１３２】
なお、図３４に示す例では、クロック制御回路１０の不一致検出回路１１に代えて不一致検出回路１１ａを用いたクロック制御回路１０ａを示した。また、図３４に示すフリップフロップを以下ではフリップフロップ３００と称す。
【０１３３】
図３４に示すように、フリップフロップ３００では、入力データＤｉｎとシフトデータＳｉｎの両方を参照すべき入力データとするために、トランスファースイッチＴＳＷａｓ、ＴＳＷａｓと、トランスファースイッチＴＳＷｂ１と、の間にインバータＩＮＶａ、ＩＮＶｂを設ける。図３４では、インバータＩＮＶａ、ＩＮＶｂを有するマスターラッチをマスターラッチＭＡＳｃと示し、データ保持部をデータ保持部１５Ｓｃと示した。そして、インバータＩＮＶｂの入力から入力データＤｉｎ及びシフトデータＳｉｎと同じ論理レベルのモニタ信号Ｘを得る。また、インバータＩＮＶｂの出力から反転入力データＤｉｎＢ及び反転シフトデータＳｉｎＢと同じ論理レベルの反転モニタ信号ＸＢを得る。このような構成とすることでフリップフロップ３００は、フリップフロップ３と同じ論理でデータ保持部１５Ｓｃにデータを保持させることができる。
【０１３４】
この図３４に示す例では、インバータを２つのトランジスタにより構成した場合、実施の形態４にかかるデータ保持部１５Ｓに対して４つのトランジスタが追加される。一方、図３４に示したクロック制御回路１０ａは、図３１に示したクロック制御回路５０に対して、ＳＲラッチにおいてトランジスタを２つ少なくできる。つまり、実施の形態４にかかるフリップフロップ３は、図３４に示したフリップフロップ３００よりもトランジスタを削減することができる。このように、実施の形態４にかかるフリップフロップ３は、トランジスタ数が少ないスキャンテストに対応したフリップフロップを実現することができる。
【０１３５】
なお、ここで、不一致検出回路１１から不一致検出回路１１ａへの変形と同様の変形を不一致検出回路２１に施した不一致検出回路２１ａ及びＳＲラッチ１３からＳＲラッチ１３ａへの変形と同様の変形をＳＲラッチ２３に施したＳＲラッチ２３ａについて説明する。
【０１３６】
そこで、不一致検出回路２１ａの詳細な回路図を図３５に示す。図３５に示すように、不一致検出回路２１ａは、トランスファースイッチ２１１ａ、２１１ｂを有する。トランスファースイッチ２１１ａは、ＮＭＯＳトランジスタＭＮ、ＰＭＯＳトランジスタＭＰを有する。そして、ＮＭＯＳトランジスタＭＮのソース・ドレインの一方とＰＭＯＳトランジスタＭＰのソース・ドレインの一方とは、互いに接続される。また、ＮＭＯＳトランジスタＭＮのソース・ドレインの他方とＰＭＯＳトランジスタＭＰのソース・ドレインの他方とは、互いに接続される。そして、ＮＭＯＳトランジスタＭＮのゲートには、入力データＤｉｎが与えられる。ＰＭＯＳトランジスタＭＰのゲートには、入力データＤｉｎを反転させた反転入力データＤｉｎＢが与えられる。このトランスファースイッチ１１１ａは、入力データＤｉｎがハイレベルである期間に導通状態となるスイッチ回路である。なお、実施の形態４では、図３０に示すように、反転入力データＤｉｎＢは、データ保持部１５ＳのインバータＩＮＶ１で入力データＤｉｎを反転して生成されるものである。
【０１３７】
また、トランスファースイッチ２１１ｂは、ＮＭＯＳトランジスタＭＮ、ＰＭＯＳトランジスタＭＰを有する。そして、ＮＭＯＳトランジスタＭＮのソース・ドレインの一方とＰＭＯＳトランジスタＭＰのソース・ドレインの一方とは、互いに接続される。また、ＮＭＯＳトランジスタＭＮのソース・ドレインの他方とＰＭＯＳトランジスタＭＰのソース・ドレインの他方とは、互いに接続される。そして、ＮＭＯＳトランジスタＭＮのゲートには、反転入力データＤｉｎＢが与えられる。ＰＭＯＳトランジスタＭＰのゲートには、入力データＤｉｎが与えられる。このトランスファースイッチ２１１ｂは、入力データＤｉｎがロウレベルである期間に導通状態となるスイッチ回路である。つまり、トランスファースイッチ２１１ａと、トランスファースイッチ２１１ｂは、排他的に導通状態となる。
【０１３８】
そして、不一致検出回路２１ａでは、トランスファースイッチ２１１ａに出力データＤｏを与え、トランスファースイッチ２１１ｂにインバータＩＮＶ６の入力信号として与えられる反転出力データＤｏＢを与える。この反転出力データＤｏＢは、インバータＩＮＶ６で反転される前の出力データＤｏであり、出力データＤｏとは反転した論理レベルを有する。
【０１３９】
この不一致検出回路２１ａは、入力データＤｉｎがハイレベルである場合、トランスファースイッチ２１１ａが導通状態となり、かつ、トランスファースイッチ２１１ｂが遮断状態となり、反転出力データＤｏＢの論理レベルに応じた不一致検出信号Ｓ２１を出力する。また、不一致検出回路２１ａは、入力データＤｉｎがロウレベルである場合、トランスファースイッチ２１１ａが遮断状態となり、かつ、トランスファースイッチ２１１ｂが導通状態となり、出力データＤｏの論理レベルに応じた不一致検出信号Ｓ２１を出力する。つまり、不一致検出回路２１ａは、入力データＤｉｎと出力データＤｏとが共にロウレベルであれば、トランスファースイッチ２１１ｂを介してハイレベルの不一致検出信号Ｓ２１を出力する。不一致検出回路２１ａは、入力データＤｉｎと出力データＤｏとが共にハイレベルであれば、トランスファースイッチ２１１ａを介してハイレベルの不一致検出信号Ｓ２１を出力する。また、不一致検出回路２１ａは、入力データＤｉｎがハイレベルかつ出力データＤｏがロウレベルであれば、トランスファースイッチ２１１ａを介してロウレベルの不一致検出信号Ｓ２１を出力する。不一致検出回路２１ａは、入力データＤｉｎがロウレベルかつ出力データＤｏがハイレベルであれば、トランスファースイッチ２１１ｂを介してロウレベルの不一致検出信号Ｓ２１を出力する。
【０１４０】
上記したように、不一致検出回路２１ａは、図２３で示した不一致検出回路２１と同じく排他的反転論理和回路として動作するものでありながら、回路素子を削減することができる。
【０１４１】
続いて、ＳＲラッチ２３ａについて説明する。ＳＲラッチ２３ａは、実施の形態２にかかるＳＲラッチ２３に選択信号ＳＦＴに応じてクロック信号ＣＫＳのゲーティング機能を停止させる機能を追加したものである。そこで、ＳＲラッチ２３ａの詳細な回路図を図３６に示す。
【０１４２】
図３６に示すように、ＳＲラッチ２３ａは、反転論理積回路ＮＡＮＤ２を反転論理積回路ＮＡＮＤ２Ｓに置き換えたものである。反転論理積回路ＮＡＮＤ２Ｓは、反転論理積回路ＮＡＮＤ２に第５のトランジスタ（例えば、ＰＭＯＳトランジスタＰ４７）と第６のトランジスタ（例えば、ＮＭＯＳトランジスタＮ４６）を追加したものである。
【０１４３】
ＰＭＯＳトランジスタＰ４７は、選択信号ＳＦＴが制御端子（例えば、ゲート端子）に与えられ、ＰＭＯＳトランジスタＰ２７の第１の端子（例えば、ソース端子）と電源端子との間に接続される。ＮＭＯＳトランジスタＮ４７は、選択信号ＳＦＴが制御端子（例えば、ゲート端子）に与えられ、ＮＭＯＳトランジスタＮ２８と並列に接続される。
【０１４４】
ＳＲラッチ２３ａは、選択信号ＳＦＴがシフトデータＳｉｎを選択するハイレベルある状態で、ＰＭＯＳトランジスタＰ４７がオフ状態、かつ、ＮＭＯＳトランジスタＮ４７がオン状態となる。これにより、ＳＲラッチ２３ａは、選択信号ＳＦＴがシフトデータＳｉｎの選択を指示している期間は、ＰＭＯＳトランジスタＰ２７及びＮＭＯＳトランジスタＮ２７が無効状態なり、ＰＭＯＳトランジスタＰ２８及びＮＭＯＳトランジスタＮ２８により構成されるインバータとして機能する。つまり、ＳＲラッチ２３ａは、選択信号ＳＦＴの論理レベルによりクロック信号ＣＫのゲーティング機能を無効とするか有効とするかを切り替えることができる。
【０１４５】
実施の形態５
実施の形態５にかかるフリップフロップ４のブロック図を図３７に示す。図３７に示すように、実施の形態５にかかるフリップフロップ４は、実施の形態１にかかるフリップフロップ１の変形例を示すものである。なお、実施の形態４の説明において上記実施の形態で説明した構成要素と同じ構成要素については上記実施の形態と同じ符号を付して説明を省略する。
【０１４６】
図３７に示すように、実施の形態５にかかるフリップフロップ４は、不一致検出回路１１に代えて不一致検出回路１１ａを有するクロック制御回路１０ａを有する。そして、不一致検出回路１１ａは、入力側のデータとして入力データＤｉｎ及び反転入力データＤｉｎＢを参照し、出力側のデータとしてマスターラッチＭＡの保持値（例えば、保持値Ｘ及び反転保持値ＸＢ）を参照する。そして、不一致検出回路１１ａは、入力データＤｉｎとマスターラッチの保持値Ｘとの不一致を検出して、不一致検出信号Ｓ１１を出力する。
【０１４７】
ここで、実施の形態１にかかるフリップフロップ１のクロック制御回路１０として１０ａを用いたフリップフロップ４００のブロック図を図３８に示す。図３８に示すように、フリップフロップ４００では、不一致検出回路１１ａが、入力側データとして入力データＤｉｎ及び反転入力データＤｉｎＢを参照し、出力側のデータとして出力データＤｏ及び反転出力データＤｏＢを参照する。
【０１４８】
つまり、実施の形態５にかかるフリップフロップ４では、フリップフロップ４００とは不一致検出回路１１ａが参照する信号が異なる。これにより、実施の形態５にかかるフリップフロップ４では、レイアウトの容易性を向上させることができる。そこで、フリップフロップ４のレイアウトの概略図を図３９に示し、フリップフロップ４００のレイアウトの概略図を図４０に示す。
【０１４９】
図３９及び図４０に示すように、フリップフロップは、マスターラッチを挟んでクロック制御回路とスレーブラッチとを配置する。このような配置とすることで、入力データＤｉｎ及び反転入力データＤｉｎＢを伝達する配線、及び、マスターラッチからスレーブラッチへの信号Ｍｏを伝達する配線の長さを短くすることができる。
【０１５０】
ここで、実施の形態５にかかるフリップフロップ４では、クロック制御回路の不一致検出回路１１ａが参照する出力側のデータがマスターラッチの保持値Ｘ及び反転保持値ＸＢである。そのため、図３９に示すように、フリップフロップ４では、保持値Ｘ及び反転保持値ＸＢを伝達する配線は隣接する領域を接続するのみである。
【０１５１】
一方、フリップフロップ４００では、出力データＤｏ及び反転出力データＤｏＢを伝達する配線をマスターラッチを跨いで配線する必要がある。つまり、フリップフロップ４００では、レイアウトセルを跨いで配線を行わなければならない配線の数がフリップフロップ４よりも多くなる。
【０１５２】
ここで、実施の形態５にかかるフリップフロップ４の動作について説明する。実施の形態５にかかるフリップフロップ４の動作を示すタイミングチャートを図４１に示す。図４１に示すように、フリップフロップ４の動作は、不一致検出信号Ｓ１１のパルス幅が図８に示した実施の形態１にかかるフリップフロップ１よりも狭くなっている他は、実施の形態１にかかるフリップフロップ１と同じである。実施の形態５にかかるフリップフロップ４では、不一致検出回路１１ａが出力側データとしてマスターラッチＭＡの保持値Ｘ及び反転保持値Ｘを参照する。そのため、フリップフロップ４では、入力データＤｉｎの信号レベルに変化が生じたことに応じて内部クロック信号ＣＫｘがハイレベルからロウレベルに遷移した後に、マスターラッチＭＡが保持値を更新するまでの期間のみ不一致検出信号Ｓ１１がハイレベルとなる。しかしながら、ＳＲラッチ１３は、不一致検出信号Ｓ１１が一度ハイレベルになり内部クロック信号ＣＫｘをハイレベルに遷移させた後は、クロック信号ＣＫＳがハイレベルとなるまで内部クロック信号ＣＫｘをハイレベルで維持する。そのため、不一致検出信号Ｓ１１のパルス幅が狭くなっても実質的な動作に問題は生じず、実施の形態５にかかるフリップフロップ４は、実施の形態１にかかるフリップフロップ１と実質的に同じ動作を行うことができる。
【０１５３】
上記説明より、実施の形態５にかかるフリップフロップ４では、レイアウトセルを跨いで配線する配線数を削減できる。これにより、実施の形態５にかかるフリップフロップ４は、高い配線性を実現し、レイアウトの容易性を向上させることができる。
【０１５４】
実施の形態６
実施の形態６では、上記実施の形態において説明したフリップフロップ１〜４の具体的な利用形態について説明する。以下の説明では第１の例から第３の例の３つの利用形態について説明する。また、以下の説明では、フリップフロップ１〜４の利用形態として、フリップフロップ１を利用した半導体装置の例を説明する。
【０１５５】
まず、図４２に実施の形態１にかかるフリップフロップ１を含む半導体装置の第１の例となる回路構成を示す半導体装置８ａのブロック図の第１の例を示す。図４２に示すように、半導体装置８ａは、クロックツリー及びゲーティングバッファを介して複数のフリップフロップ１にクロック信号ＣＫＳを供給する。そして、半導体装置８ａ複数のフリップフロップ１の出力信号を論理回路に与えることで各種演算を実行する。また、半導体装置８ａは、ゲーティングバッファにクロック信号ＣＫＳを後段回路に伝達するか、遮断するかの指示を与える制御信号生成部を有する。この制御信号生成部は、図４２の例では、論理回路が処理結果に応じて出力する信号に基づきゲーティングバッファに与える制御信号を生成する。
【０１５６】
このように、ゲーティングバッファを設けることで、フリップフロップ１に供給されるクロック信号ＣＫＳのトグルを抑制することができる。しかし、このような場合においてもフリップフロップ１を用いることで入力データＤｉｎに基づく内部クロック信号ＣＫｘのトグル頻度の抑制を行うことができる。つまり、フリップフロップ１を用いることで、ゲーティングバッファによるクロック制御を行う場合よりもさらに半導体装置の消費電力を抑制することができる。
【０１５７】
続いて、図４３に実施の形態１にかかるフリップフロップ１を含む半導体装置の第２の例となる回路構成を示す半導体装置８ｂのブロック図を示す。図４３に示すように、半導体装置８ｂは、図４２に示した半導体装置８ａのゲーティングバッファをクロックツリー中に含まれるクロックバッファに置き換えたものである。つまり、半導体装置８ｂは、複数のフリップフロップ１がそれぞれ直接クロックツリーからクロック信号ＣＫＳの供給を受ける。
【０１５８】
ゲーティングバッファは、一般的に駆動能力のばらつきが大きいため、このばらつきを考慮してクロックバッファよりも大きな素子により回路が構成される。そのため、半導体装置８ｂは、半導体装置８ａよりも回路規模を削減することができる。このような場合に、実施の形態１にかかるフリップフロップ１を利用することで、入力データＤｉｎの変化がない状態（つまり、ゲーティングバッファによりフリップフロップへのクロック信号ＣＫＳの供給を停止できる状態）における半導体装置８ｂの消費電力を削減できる。また、消費電力の削減の程度は、ゲーティングバッファを介して一般的なフリップフロップ２００にクロック信号ＣＫＳを供給した場合以下とすることができる程度である。
【０１５９】
続いて、図４４に実施の形態１にかかるフリップフロップを含む半導体装置の第３の例となるの回路構成を示す半導体装置８ｃのブロック図を示す。図４４に示すように、半導体装置８ｃは、演算部（例えば、ＣＰＵコア８１）、割込制御部８２、ＲＯＭ（Read Only Memory）８３、ＲＡＭ（Random Access Memory）８４、タイマー８５、アナログデジタル変換回路８６、入出力インタフェース８７を有する。
【０１６０】
ＣＰＵコア８１は、図示しないプログラム格納部、或いは、ＲＯＭ８３等に格納されているプログラムに基づき演算動作を行う。ＲＯＭ８３、ＲＡＭ８４、タイマー８５、アナログデジタル変換回路８６、入出力インタフェース８７は、ＣＰＵコア８１に利用される周辺回路である。そして、半導体装置８ｃでは、ＣＰＵコア８１と周辺回路がローカルバスＢＵＳを介して互いに接続される。割り込み制御部８２は、周辺回路がエラーの発生を通知するエラー信号ＥＲＲに基づき割込要求ＩＮＴを発行する。半導体装置８ｃでは、ＣＰＵコア８１は、割込要求ＩＮＴが発行されると当該エラーに対処するための割込処理を実行し、発生したエラーに対する復帰処理等を行う。
【０１６１】
ここで、割り込み制御部８２には、実施の形態１にかかるフリップフロップ１が含まれる。そして、割り込み制御部８２は、フリップフロップ１によりエラー信号ＥＲＲを受信する。エラー信号ＥＲＲは、発生頻度が低い信号であり、このような信号の待ち受けのために常にクロック信号に基づき内部クロック信号ＣＫｘをトグルさせると消費電力の無駄が大きくなる。そこで、エラー信号ＥＲＲ１のようなトグル頻度が低い信号の待ち受け部に実施の形態１にかかるフリップフロップ１を利用することで半導体装置８ｃは信号待ち受けにかかる消費電力を削減することができる。
【０１６２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１６３】
例えば、上記実施の形態ではデータ保持部１５として立ち上がりエッジトリガ型のフリップフロップを用いたが、このデータ保持部１５として立ち下がりエッジトリガ型のフリップフロップを用いることもできる。この場合、立ち下がりエッジトリガ型のフリップフロップのクロック入力端子ＴＣＡに反転内部クロック信号ＣＫｘＢを入力し、反転クロック入力端子ＴＣＢに内部クロック信号ＣＫｘを入力すればよい。
【符号の説明】
【０１６４】
１−４、１ａ、２ａ  フリップフロップ
５ａ〜５ｃ  半導体装置
１０、１０ａ、２０、３０、４０、５０  クロック制御回路
１１、１１ａ、２１、２１ａ  不一致検出回路
１２、１２ａ、２２、２２ａ  内部クロック生成部
１３、１３ａ、２３、２３ａ  ＳＲラッチ
１４、２４  インバータ
１５、１５Ｓ  データ保持部
１１１ａ、１１１ｂ  トランスファースイッチ
８１  ＣＰＵコア
８２  割り込み制御部
８３  ＲＯＭ
８４  ＲＡＭ
８５  タイマー
８６  アナログデジタル変換回路
８７  入出力インタフェース
ＢＵＳ  ローカルバス
ＥＲＲ  エラー信号
ＩＮＴ  割込要求
ＮＯＲ１、ＮＯＲ２、ＮＯＲ２Ｓ  反転論理和回路
ＮＡＮＤ１、ＮＡＮＤ２、ＮＡＮＤ２Ｓ  反転論理積回路
ＭＡ  マスターラッチ
ＭＡＳ  マスターラッチ
ＳＬ  スレーブラッチ
ＴＳＷａ１、ＴＳＷａ２、ＴＳＷａｓ  トランスファースイッチ
ＴＳＷｂ１、ＴＳＷｂ２、ＴＳＷｂｓ  トランスファースイッチ
ＭＰ  ＰＭＯＳトランジスタ
ＭＮ  ＮＭＯＳトランジスタ
Ｄ  データ入力端子
ＣＫ  クロック入力端子
Ｑｏ  データ出力端子
Ｓ  セット端子
Ｒ  リセット端子
ＱＬ  ラッチ出力端子
ＱＬＢ  反転ラッチ出力端子
ＤＦ  データ入力端子
ＴＣＡ  クロック入力端子
ＴＣＢ  反転クロック入力端子
ＱＦ  データ出力端子
ＮＱＬ  ラッチ出力配線
ＲＳＴ  リセット信号
ＳＩ  シフトデータ入力端子
ＳＥ  シフト制御端子
Ｄｉｎ  入力データ
ＤｉｎＢ  反転入力データ
ＣＫＳ  クロック信号
Ｄｏ  出力データ
ＤｏＢ  反転出力データ
Ｓ１１、Ｓ２１  不一致検出信号
ＣＫｘ  内部クロック信号
ＣＫｘＢ  反転内部クロック信号
Ｓｉｎ  シフトデータ
ＳＦＴ  シフト制御信号
ＳＦＴＢ  反転シフト制御信号
【図１】
2014158176.tif 000003
【図２】
2014158176.tif 000004
【図３】
2014158176.tif 000005
【図４】
2014158176.tif 000006
【図５】
2014158176.tif 000007
【図６】
2014158176.tif 000008
【図７】
2014158176.tif 000009
【図８】
2014158176.tif 000010
【図９】
2014158176.tif 000011
【図１０】
2014158176.tif 000012
【図１１】
2014158176.tif 000013
【図１２】
2014158176.tif 000014
【図１３】
2014158176.tif 000015
【図１４】
2014158176.tif 000016
【図１５】
2014158176.tif 000017
【図１６】
2014158176.tif 000018
【図１７】
2014158176.tif 000019
【図１８】
2014158176.tif 000020
【図１９】
2014158176.tif 000021
【図２０】
2014158176.tif 000022
【図２１】
2014158176.tif 000023
【図２２】
2014158176.tif 000024
【図２３】
2014158176.tif 000025
【図２４】
2014158176.tif 000026
【図２５】
2014158176.tif 000027
【図２６】
2014158176.tif 000028
【図２７】
2014158176.tif 000029
【図２８】
2014158176.tif 000030
【図２９】
2014158176.tif 000031
【図３０】
2014158176.tif 000032
【図３１】
2014158176.tif 000033
【図３２】
2014158176.tif 000034
【図３３】
2014158176.tif 000035
【図３４】
2014158176.tif 000036
【図３５】
2014158176.tif 000037
【図３６】
2014158176.tif 000038
【図３７】
2014158176.tif 000039
【図３８】
2014158176.tif 000040
【図３９】
2014158176.tif 000041
【図４０】
2014158176.tif 000042
【図４１】
2014158176.tif 000043
【図４２】
2014158176.tif 000044
【図４３】
2014158176.tif 000045
【図４４】
2014158176.tif 000046