(57)【要約】【課題】消費電力を削減した半導体集積回路及びその設計方法を提供する。【解決手段】半導体集積回路の設計方法は、複数の標準フリップフロップ回路及び低消費電力フリップフロップ回路を配置するステップと、セルタイプを指標に含む評価関数を用いて、配置されたフリップフロップ回路を複数のクラスタにグループ化するステップと、標準フリップフロップ回路のみで構成されたクラスタに対して第１クロックバッファを割り当て、低消費電力フリップフロップ回路を含むクラスタに対して前記第１クロックバッファよりサイズの大きい第２クロックバッファを割り当てるステップと、クロック配線するステップと、を備える。【選択図】図４
2011233559.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１フリップフロップ回路及び前記第１フリップフロップ回路よりクロック信号の波形変化に対する遅延変化量が大きい複数の第２フリップフロップ回路を配置するステップと、
各フリップフロップ回路の座標、入力スリュー制約、クロック入力容量、及び各フリップフロップ回路が前記第１フリップフロップ回路及び前記第２フリップフロップ回路のうちのいずれであるかを示すセルタイプを指標に含む評価関数を用いて、前記第１フリップフロップ回路及び前記第２フリップフロップ回路を複数のクラスタにグループ化するステップと、
前記第１フリップフロップ回路により構成される第１クラスタに対して第１クロックバッファを割り当て、前記第２フリップフロップ回路を含む第２クラスタに対して前記第１クロックバッファよりサイズの大きい第２クロックバッファを割り当てるステップと、
前記第１クロックバッファの出力が前記第１クラスタを構成する前記第１フリップフロップ回路に与えられ、前記第２クロックバッファの出力が前記第２クラスタを構成するフリップフロップ回路に与えられるようにクロック配線するステップと、
を備える半導体集積回路の設計方法。
【請求項２】
前記第２クラスタの前記第２フリップフロップ回路を、他の第２クラスタに含め、当該第２クラスタを第１クラスタに修正するステップをさらに備えることを特徴とする請求項１に記載の半導体集積回路の設計方法。
【請求項３】
複数の前記第１クラスタに対応する前記第１クロックバッファを共通化するステップをさらに備えることを特徴とする請求項１又は２に記載の半導体集積回路の設計方法。
【請求項４】
複数の第１フリップフロップ回路と、
前記第１フリップフロップ回路よりクロック信号の波形変化に対する遅延変化量が大きい複数の第２フリップフロップ回路と、
前記クロック信号が与えられる第１クロックバッファと、
前記クロック信号が与えられ、前記第１クロックバッファよりサイズの大きい第２クロックバッファと、
を備える半導体集積回路であって、
前記第２クロックバッファは前記第１フリップフロップ回路及び／又は前記第２フリップフロップ回路へクロック信号を出力し、
前記第１クロックバッファのクロック信号の出力先は前記第１フリップフロップ回路により構成されることを特徴とする半導体集積回路。
【請求項５】
前記第１フリップフロップ回路及び前記第２フリップフロップ回路はそれぞれ前記クロック信号を反転するインバータを有し、
前記第１フリップフロップ回路のインバータのサイズは、前記第２フリップフロップ回路のインバータのサイズより大きいことを特徴とする請求項４に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路及びその設計方法に関するものである。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated Circuit：大規模集積回路）のレイアウト設計においては、クロックスキュー（クロック信号が供給されるフリップフロップ間のクロック信号の遅延時間差）対策として、クロック回路がツリー型構造の回路で構成される。
【０００３】
ＬＳＩでは、消費電力を削減するために、通常のフリップフロップよりも内部のクロックバッファのサイズを小さくした低消費電力フリップフロップが使用される。このような低消費電力フリップフロップは、フリップフロップの遅延時間が、クロック入力波形（クロックスリュー）に大きく依存する。具体的には、クロック入力波形が鈍った時に、フリップフロップの遅延時間が、通常のフリップフロップに比べて、大きくなる。
【０００４】
このような低消費電力フリップフロップを用いる際に、遅延時間を大きくしないために、クロックスリューの上限を設定してクロックツリー生成（CTS:Clock Tree Synthesis）を実行すると、通常のフリップフロップのスリューを必要以上に鋭くするために、駆動力の大きなクロックバッファを挿入することになる。そのため、クロックツリーの消費電力が増加するという問題があった。
【０００５】
一方、ＣＴＳ実行時に、通常のフリップフロップのクロックスリューの上限を設定すると、上述したような低消費電力フリップフロップの遅延時間が大きくなる。従って、タイミング制約を満たすために、低消費電力フリップフロップがあまり使用されなくなり、ＬＳＩの消費電力を削減することが困難になるという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５３９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、消費電力を削減した半導体集積回路及びその設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本実施形態によれば、半導体集積回路の設計方法は、複数の第１フリップフロップ回路及び前記第１フリップフロップ回路よりクロック信号の波形変化に対する遅延変化量が大きい複数の第２フリップフロップ回路を配置するステップと、各フリップフロップ回路の座標、入力スリュー制約、クロック入力容量、及び各フリップフロップ回路が前記第１フリップフロップ回路及び前記第２フリップフロップ回路のうちのいずれであるかを示すセルタイプを指標に含む評価関数を用いて、前記第１フリップフロップ回路及び前記第２フリップフロップ回路を複数のクラスタにグループ化するステップと、前記第１フリップフロップ回路により構成される第１クラスタに対して第１クロックバッファを割り当て、前記第２フリップフロップ回路を含む第２クラスタに対して前記第１クロックバッファよりサイズの大きい第２クロックバッファを割り当てるステップと、前記第１クロックバッファの出力が前記第１クラスタを構成する前記第１フリップフロップ回路に与えられ、前記第２クロックバッファの出力が前記第２クラスタを構成するフリップフロップ回路に与えられるようにクロック配線するステップと、を備える。
【０００９】
本実施形態によれば、半導体集積回路は、複数の第１フリップフロップ回路と、前記第１フリップフロップ回路よりクロック信号の波形変化に対する遅延変化量が大きい複数の第２フリップフロップ回路と、前記クロック信号が与えられる第１クロックバッファと、前記クロック信号が与えられ、前記第１クロックバッファよりサイズの大きい第２クロックバッファと、を備える半導体集積回路であって、前記第２クロックバッファは前記第１フリップフロップ回路及び／又は前記第２フリップフロップ回路へクロック信号を出力し、前記第１クロックバッファのクロック信号の出力先は前記第１フリップフロップ回路により構成される。
【図面の簡単な説明】
【００１０】
【図１】フリップフロップ回路の一例を示す回路図である。
【図２】各フリップフロップ回路のクロックスリューと遅延時間の関係を示すグラフである。
【図３】本実施形態に係る半導体集積回路の設計装置の概略構成図である。
【図４】同実施形態に係る半導体集積回路の設計方法を説明するフローチャートである。
【図５】ＣＴＳ処理の一例を示す図である。
【図６】ＣＴＳ処理の一例を示す図である。
【図７】ＣＴＳ処理の一例を示す図である。
【図８】低消費電力フリップフロップ回路の一例を示す回路図である。
【図９】低消費電力フリップフロップ回路の一例を示す回路図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１２】
図１にフリップフロップ回路の構成の一例を示す。図１（ａ）はフリップフロップ回路の信号伝送回路を示し、図１（ｂ）はフリップフロップ回路のクロック供給回路を示す。信号伝送回路は、クロックドインバータ１１〜１３、インバータ１４〜１６及びトランスミッションゲート１７を有する。
【００１３】
クロックドインバータ１１にはデータ信号Ｄが入力される。クロックドインバータ１１の出力はインバータ１４の入力及びクロックドインバータ１２の出力に接続されている。インバータ１４の出力及びクロックドインバータ１２の入力はトランスミッションゲート１７の入力に接続されている。トランスミッションゲート１７の出力はインバータ１５の入力及びクロックドインバータ１３の出力に接続されている。インバータ１５の出力及びクロックドインバータ１３の入力はインバータ１６の入力に接続される。インバータ１６は出力信号Ｑを出力する。
【００１４】
フリップフロップ回路のクロック供給回路はインバータ１８、１９を有する。インバータ１８の入力はクロック信号ＣＬＫの供給ノードに接続され、インバータ１８の出力にインバータ１９の入力が接続される。インバータ１９の出力から内部クロック信号ＣＬＫＩを供給し、インバータ１８の出力から内部クロック反転信号／ＣＬＫＩを供給する。
【００１５】
クロックドインバータ１２は内部クロック信号ＣＬＫＩがハイレベルのときはインバータとして動作し、ロウレベルのときは出力が高インピーダンス状態になり、入出力を切り離す。クロックドインバータ１１、１３は内部クロック信号ＣＬＫＩがロウレベルのときはインバータとして動作し、ハイレベルのときは出力が高インピーダンス状態になり、入出力を切り離す。トランスミッションゲート１７は内部クロック信号ＣＬＫＩがハイレベルのとき信号を通し、ロウレベルのときは通さなくなる。
【００１６】
クロック信号ＣＬＫがロウレベルのとき、データ信号Ｄはクロックドインバータ１１を通過してインバータ１４に入力される。内部クロック信号ＣＬＫＩはロウレベルのためトランスミッションゲート１７及びクロックドインバータ１２は閉じており、入力信号は阻止される。
【００１７】
クロック信号ＣＬＫがロウレベルからハイレベルに切り替わるとクロックドインバータ１１が閉じ、トランスミッションゲート１７及びクロックドインバータ１２が開く。つまりクロック信号ＣＬＫが切り替わる瞬間に、データ信号Ｄは、インバータ１４及びクロックドインバータ１２によりラッチされるとともに、トランスミッションゲート１７、インバータ１５、１６を通過して出力される。
【００１８】
続いて、クロック信号がハイレベルからロウレベルに切り替わると、トランスミッションゲート１７が閉じ、クロックドインバータ１３が開く。これにより、トランスミッションゲート１７を通過してきていた信号はインバータ１５及びクロックドインバータ１３によりラッチされ、インバータ１６から出力される。この状態は、トランスミッションゲート１７が開いて、異なるレベルの信号が入力されるまで継続する。
【００１９】
このようなフリップフロップ回路では、図１（ｂ）に示すクロック供給回路のインバータ１８、１９のサイズを小さくすると、消費電力が小さくなる。本実施形態では、半導体集積回路に、インバータ１８、１９のサイズが異なるフリップフロップ回路を配置する。以下の説明では、インバータ１８、１９のサイズが大きく、動作速度の速いフリップフロップ回路を標準フリップフロップ回路と称し、インバータ１８、１９のサイズが小さく、標準フリップフロップ回路より消費電力が少なく動作速度の遅いフリップフロップ回路を低消費電力フリップフロップ回路と称する。
【００２０】
図２に、標準フリップフロップ回路（標準ＦＦ）と低消費電力フリップフロップ回路（低消費電力ＦＦ）の各々についての、クロックスリューと遅延時間との関係の一例を示す。図２に示すように、標準フリップフロップ回路と比較して、低消費電力フリップフロップ回路の方が、クロックスリューに敏感である。言い換えれば、標準フリップフロップ回路と比較して、低消費電力フリップフロップ回路は、クロック信号の波形変化（波形なまり）に対する遅延増加量が大きいことが分かる。
【００２１】
本実施形態は、このような標準フリップフロップ回路と低消費電力フリップフロップ回路とを用いて、半導体集積回路を設計するものである。
【００２２】
図３に、本実施形態に係る半導体集積回路の設計装置の概略構成を示す。設計装置１００は、入出力部１０１、制御部１０２、記憶部１１０、及び演算部１２０を備える。入出力部１０１は、データの入出力を行う。制御部１０２は、入出力部１０１、記憶部１１０、演算部１２０間のデータ転送制御を行う。
【００２３】
記憶部１１０は、回路情報記憶領域１１１、チップ情報記憶領域１１２、及び回路図データ記憶領域１１３を有する。
【００２４】
回路情報記憶領域１１１は、チップに配置されるフリップフロップ等の素子情報や、各素子の接続情報（ネットリスト）等の回路設計情報を記憶する。フリップフロップは、上述の標準フリップフロップ回路や低消費電力フリップフロップ回路である。
【００２５】
チップ情報記憶領域１１２は、素子が配置されるチップのサイズ等の情報を記憶する。回路図データ記憶領域１１３は、素子が配置されたチップ情報である回路図データを記憶する。
【００２６】
演算部１２０は、配置配線部１２１、タイミング解析部１２２、判定部１２３、及びセル置換部１２４を有する。
【００２７】
配置配線部１２１は、回路設計情報及びチップ情報に基づいて、素子の配置を実行する。そして、配置配線部１２１は、クロック配線網にクロックバッファを挿入し、ツリー状に負荷バランスを調整してレイアウトするＣＴＳ（クロックツリー合成）を実行する。ＣＴＳでは、近接する複数のフリップフロップ回路をまとめてクラスタ（グループ）を作成するクラスタリング処理（グループ化）が行われた後、各クラスタに対して、クロックバッファが挿入される（割り当てられる）。クラスタリング処理では以下の評価関数ｆが最小となるようにクラスタが作成される。
【００２８】
ｆ（各フリップフロップのセルタイプ，各フリップフロップの座標，各フリップフロップのクロック入力端子容量，利用できるクロックバッファセルリスト，各フリップフロップのクロック入力端子に対する最大入力スリュー制約，クロックバッファの最大ファンアウト制約，クラスタの最大負荷容量制約）
フリップフロップのセルタイプとは、フリップフロップが標準フリップフロップ回路であるか、又は低消費電力フリップフロップ回路であるかを示す。
【００２９】
配置配線部１２１は、クロック信号を伝送するクロックラインの配線後、データ信号を伝送するデータラインの配線を実行し、回路図データを作成する。配置配線部１２１は、回路図データを回路図データ記憶領域１１３に書き込む。
【００３０】
タイミング解析部１２２は、回路図データ記憶領域１１３に記憶されている回路図データに所定の高精度なタイミング解析を実行する。タイミング解析は、例えば、ＣＴＳ処理において構成されたクロックツリー配線のクロック遅延時間、データパスの遅延時間、半導体回路の動作速度等を計測することによって行われる。
【００３１】
判定部１２３は、タイミング解析部１２２の解析結果が、所定のタイミング条件を満たしているか否か判定する。
【００３２】
セル置換部１２４は、回路図データに対してタイミングの修正（ＩＰＯ：ｉｎ  ｐｌａｃｅ  ｏｐｔｉｍｉｚａｔｉｏｎ）を実行する。例えば、セル置換部１２４は、配置されているクロックバッファを、設計制約に合わせて、駆動能力の大きいクロックバッファに置換する。
【００３３】
次に、このような設計装置１００を用いて半導体集積回路を設計する方法を、図４に示すフローチャートを用いて説明する。
【００３４】
（ステップＳ４０１）配置配線部１２１が、回路設計情報及びチップ情報に基づいて、標準フリップフロップ回路及び低消費電力フリップフロップ回路をロジカルに合成配置する。
【００３５】
（ステップＳ４０２）配置配線部１２１が、ＣＴＳ処理を行う。これにより、クラスタリング処理、クロックツリー配線、及びクロックバッファの挿入が行われる。
【００３６】
クラスタリング処理では、上述の評価関数ｆが用いられ、近接する複数のフリップフロップ回路をまとめてクラスタが作成される。評価関数ｆでは、フリップフロップのセルタイプが指標に含まれている。これにより、図５（ａ）に示すように、同じタイプのフリップフロップ回路が同じクラスタに含まれ易くなる。
【００３７】
図５（ｂ）に示すように、標準フリップフロップ回路のみで構成されるクラスタにはサイズの小さいクロックバッファが挿入され、低消費電力フリップフロップ回路のみで構成されるクラスタにはサイズの大きいクロックバッファが挿入される。また、低消費電力フリップフロップ及び標準フリップフロップ回路が混在するクラスタにも、サイズの大きいクロックバッファが挿入される。図２で説明したように、低消費電力フリップフロップ回路は、クロックスリューに敏感であり、駆動力の大きなクロックバッファから出力されるクロック信号を与える必要があるためである。
【００３８】
（ステップＳ４０３）配置配線部１２１が、詳細配線を実行し、データ信号の配線を行う。これにより回路図データが作成される。なお、本ステップでは、詳細配線ではなく概略配線を実行して回路図データを作成することも可能である。
【００３９】
（ステップＳ４０４）タイミング解析部１２２が、回路図データに対してタイミング解析を実行する。
【００４０】
（ステップＳ４０５）判定部１２３が、タイミング解析の結果が所定のタイミング条件を満たしているか否か判定する。所定のタイミング条件を満たしている場合は処理を終了し、満たしていない場合はステップＳ４０６へ進む。
【００４１】
（ステップＳ４０６）セル置換部１２４が、回路図データに対してタイミングの修正を実行し、ステップＳ４０４に戻る。
【００４２】
フリップフロップのタイプを考慮せずにクラスタリング処理を行うと、標準フリップフロップ回路と低消費電力フリップフロップ回路とが混在したクラスタが多くなる。このようなクラスタには、駆動力の大きいクロックバッファを挿入するため、クロックツリーの消費電力が大きい。
【００４３】
一方、本実施形態では、フリップフロップのタイプを考慮してクラスタリング処理を行うため、標準フリップフロップ回路のみで構成されるクラスタが作成され易くなる。このようなクラスタに対しては、駆動力の小さいクロックバッファを挿入することができる。従って、クロックツリーの消費電力が削減され、半導体集積回路全体の消費電力を削減できる。
【００４４】
図６に示すように、配置配線部１２１は、クラスタリング処理の際に、近接するクラスタを比較して、標準フリップフロップ回路のみで構成されるクラスタが出来るようにクラスタを修正してもよい。この例では、クラスタ６０Ａの低消費電力フリップフロップ回路６２、６３とクラスタ６１Ａの低消費電力フリップフロップ回路６５とで新たにクラスタ６０Ｂとし、クラスタ６０Ａの標準フリップフロップ回路６４とクラスタ６１Ａの標準フリップフロップ回路６６、６７とで新たにクラスタ６１Ｂとしている。
【００４５】
これにより、標準フリップフロップ回路のみで構成されるクラスタが増加し、駆動力の小さいクロックバッファを挿入する箇所がさらに増えるため、クロックツリーの消費電力をさらに削減できる。なお、クラスタの修正は、上記の評価関数ｆの値が所定の閾値以下の場合のみ行うものとし、フリップフロップ回路の配置位置は変えないものとする。
【００４６】
図６に示す例において、クラスタ６１Ａの低消費電力フリップフロップ回路６５をクラスタ６０Ａに含めるようにし、標準フリップフロップ回路６６、６７のみで１つのクラスタとしてもよい。
【００４７】
また、図６に示す例では、２つのクラスタ間でクラスタの再構成をしているが、３つ以上のクラスタ間で行ってもよい。
【００４８】
また、図７（ａ）に示すように、標準フリップフロップ回路のみで構成されるクラスタが近接（隣接）している場合、図７（ｂ）に示すように、２つのクラスタの標準フリップフロップを１つのクロックバッファで駆動するようにしてもよい。クロックバッファを１つ削除できるため、クロックツリーの消費電力をさらに削減できる。なお、このようなクロックバッファの削除、共通化は、入力スリュー制約が満たせる場合にのみ行うものとする。
【００４９】
上記実施形態では、図１（ｂ）に示すクロック供給回路の２段のインバータ１８、１９のサイズが小さいフリップフロップ回路を低消費電力フリップフロップ回路としていたが、これらのインバータ１８、１９を省略した構成のフリップフロップ回路を低消費電力フリップフロップ回路として用いてもよい。このようなフリップフロップ回路の構成例を図８に示す。
【００５０】
図８の回路は、２つの状態（論理値０及び論理値１）を保持する状態保持回路Ｆ１１が設けられ、状態保持回路Ｆ１１にはインバータＶ１１〜Ｖ１４が設けられている。インバータＶ１１の出力がインバータＶ１２の入力に接続されることで記憶ノードＭＢが構成され、インバータＶ１２の出力がインバータＶ１１の入力に接続されることで記憶ノードＭが構成されている。記憶ノードＭＢはインバータＶ１３の入力に接続され、記憶ノードＭはインバータＶ１４の入力に接続されている。
【００５１】
また、状態保持回路Ｆ１１の後段に、２つの状態（論理値０および論理値１）を保持する状態保持回路Ｆ１２が設けられることで、マスタースレーブフリップフロップが構成されている。状態保持回路Ｆ１２にはインバータＶ３〜Ｖ５が設けられている。インバータＶ３の出力がインバータＶ４の入力に接続されることで記憶ノードＳが構成され、インバータＶ４の出力がインバータＶ３の入力に接続されることで記憶ノードＳＢが構成されている。記憶ノードＳＢはインバータＶ５の入力に接続され、出力信号Ｑが出力される。
【００５２】
また、この回路には、Ｐチャンネル電界効果トランジスタ（以下、ＰＭＯＳトランジスタ）Ｍ１、Ｍ２およびＮチャンネル電界効果トランジスタ（以下、ＮＭＯＳトランジスタ）Ｍ３、Ｍ４が設けられている。ＰＭＯＳトランジスタＭ１のドレインは記憶ノードＭＢに接続され、ソースはインバータＶ１を介してデータ信号Ｄが入力される。ＰＭＯＳトランジスタＭ２のドレインは記憶ノードＭに接続され、ソースはインバータＶ２を介してデータ反転信号ＤＢが入力されている。
【００５３】
また、ＮＭＯＳトランジスタＭ３のドレインはインバータＶ１３の出力に接続され、ソースは記憶ノードＳに接続されている。ＮＭＯＳトランジスタＭ４のドレインはインバータＶ１４の出力に接続され、ソースは記憶ノードＳＢに接続されている。そして、ＰＭＯＳトランジスタＭ１、Ｍ２およびＮＭＯＳトランジスタＭ３、Ｍ４の各ゲートにはクロック信号ＣＫが入力される。
【００５４】
クロック信号ＣＫがハイレベルの場合、ＰＭＯＳトランジスタＭ１、Ｍ２はオフし、ＮＭＯＳトランジスタＭ３、Ｍ４はオンする。そして、状態保持回路Ｆ１１では、記憶ノードＭがハイレベルに維持されている時は記憶ノードＭＢがロウレベルに維持され、記憶ノードＭがロウレベルに維持されている時は記憶ノードＭＢがハイレベルに維持される。
【００５５】
インバータＶ１にデータ信号Ｄが入力されると、データ反転信号ＤＢが生成され、ＰＭＯＳトランジスタＭ１のソースおよびインバータＶ２に入力される。また、インバータＶ２にデータ反転信号ＤＢが入力されると、データ信号ＤＢＢが生成され、ＰＭＯＳトランジスタＭ２のソースに入力される。
【００５６】
そして、クロック信号ＣＫがハイレベルからロウレベルに遷移すると、ＰＭＯＳトランジスタＭ１、Ｍ２はオンする。このとき、データ反転信号ＤＢがＰＭＯＳトランジスタＭ１を介して記憶ノードＭＢに印加され、データ信号ＤＢＢがＰＭＯＳトランジスタＭ２を介して記憶ノードＭに印加され、その状態が記憶ノードＭＢ、Ｍに保持される。
【００５７】
そして、記憶ノードＭＢの状態がインバータＶ１３にて反転されることで出力信号Ｑ１が生成され、ＮＭＯＳトランジスタＭ３のドレインに入力される。また、記憶ノードＭの状態がインバータＶ１４にて反転されることで出力反転信号ＱＢ１が生成され、ＮＭＯＳトランジスタＭ４のドレインに入力される。このとき、ＮＭＯＳトランジスタＭ３、Ｍ４はオフしている。したがって、状態保持回路Ｆ１２の出力信号Ｑの状態は変化しない。
【００５８】
次に、クロック信号ＣＫがロウレベルからハイレベルに遷移すると、ＰＭＯＳトランジスタＭ１、Ｍ２はオフし、ＮＭＯＳトランジスタＭ３、Ｍ４はオンする。ＮＭＯＳトランジスタＭ３、Ｍ４がオンすると、出力信号Ｑ１がＮＭＯＳトランジスタＭ３を介して記憶ノードＳに印加され、出力反転信号ＱＢ１がＮＭＯＳトランジスタＭ４を介して記憶ノードＳＢに印加され、その状態が記憶ノードＳ、ＳＢに保持される。
【００５９】
そして、記憶ノードＳＢに保持された状態がインバータＶ５にて反転されることで出力信号Ｑが生成される。
【００６０】
ここで、データ反転信号ＤＢがハイレベルで記憶ノードＭＢがロウレベルの場合は、ＰＭＯＳトランジスタＭ１を介して記憶ノードＭＢに充電させることができる。また、データ反転信号ＤＢがロウレベルで記憶ノードＭＢがハイレベルの場合は、データ信号ＤＢＢがハイレベルで記憶ノードＭがロウレベルであることから、ＰＭＯＳトランジスタＭ２を介して記憶ノードＭに充電させることができる。
【００６１】
また、出力信号Ｑ１がロウレベルで記憶ノードＳがハイレベルの場合は、ＮＭＯＳトランジスタＭ３を介して記憶ノードＳを放電させることができる。また、出力信号Ｑ１がロウレベルで記憶ノードＳがハイレベルの場合は、出力反転信号ＱＢ１がハイレベルで記憶ノードＳＢがロウレベルであることから、ＮＭＯＳトランジスタＭ４を介して記憶ノードＳＢを充電させることができる。
【００６２】
さらに、ＰＭＯＳトランジスタＭ１、Ｍ２をそれぞれ介して記憶ノードＭＢ、Ｍにデータ反転信号ＤＢおよびデータ信号ＤＢＢをそれぞれ入力させ、ＮＭＯＳトランジスタＭ３、Ｍ４をそれぞれ介して出力信号Ｑ１および出力反転信号ＱＢ１をそれぞれ出力させることにより、ＰＭＯＳトランジスタＭ１、Ｍ２のゲートおよびＮＭＯＳトランジスタＭ３、Ｍ４のゲートにクロック信号ＣＫを入力することで、状態保持回路Ｆ１１に状態を保持させたり、状態保持回路Ｆ１１に保持されている状態を出力したりすることができる。このため、クロック信号ＣＫからクロック反転信号を生成するクロックバッファ（図１（ｂ）に示すインバータ１８、１９）を別途設ける必要がなくなり、クロックバッファによる消費電力を削減することができる。上記実施形態では、図８に示すような回路を低消費電力フリップフロップ回路として使用することができる。
【００６３】
また、図８に示す状態保持回路Ｆ１１を図９に示す状態保持回路Ｆ３１に置換した回路を低消費電力フリップフロップ回路として用いてもよい。状態保持回路Ｆ３１には、インバータＶ３１、Ｖ３２、ＰＭＯＳトランジスタＭ３１、Ｍ３３およびＮＭＯＳトランジスタＭ３２、Ｍ３４が設けられている。
【００６４】
インバータＶ３１の出力が、並列に接続されたＰＭＯＳトランジスタＭ３１及びＮＭＯＳトランジスタＭ３２を介してインバータＶ３２の入力に接続されることで記憶ノードＭが構成されている。また、インバータＶ３２の出力が、並列に接続されたＰＭＯＳトランジスタＭ３３およびＮＭＯＳトランジスタＭ３４を介してインバータＶ３１の入力に接続されることで記憶ノードＭＢが構成されている。
【００６５】
ＰＭＯＳトランジスタＭ３１のゲートとＮＭＯＳトランジスタＭ３２のゲートにはデータ反転信号ＤＢが入力され、ＰＭＯＳトランジスタＭ３３のゲートとＮＭＯＳトランジスタＭ３４のゲートにはデータ信号ＤＢＢが入力される。そして、インバータＶ３１の入力にはトランジスタＭ１のドレインが接続され、インバータＶ３２の入力にはトランジスタＭ２のドレインが接続されている。
【００６６】
そして、データ信号Ｄがハイレベルの場合、データ反転信号ＤＢはロウレベルになり、ＮＭＯＳトランジスタＭ３４がオンし、ＰＭＯＳトランジスタＭ３１がオンする。一方、データ信号Ｄがロウレベルの場合、データ反転信号ＤＢはハイレベルになり、ＰＭＯＳトランジスタＭ３３がオンし、ＮＭＯＳトランジスタＭ３２がオンする。このため、データ信号Ｄがいずれの状態においても、インバータＶ３１の出力とインバータＶ３２の入力とは導通し、インバータＶ３２の出力とインバータＶ３１の入力とは導通する。このため、状態保持回路Ｆ３１では、記憶ノードＭがハイレベルに維持されている時は記憶ノードＭＢがロウレベルに維持され、記憶ノードＭがロウレベルに維持されている時は記憶ノードＭＢがハイレベルに維持される。
【００６７】
そして、トランジスタＭ１、Ｍ２がオンすると、データ反転信号ＤＢが記憶ノードＭＢに印加され、データ信号Ｄが記憶ノードＭに印加される。そして、データ反転信号ＤＢおよびデータ信号Ｄのレベルに応じて記憶ノードＭＢ、Ｍの状態が変化し、その状態が記憶ノードＭＢ、Ｍに保持される。記憶ノードＭＢ、Ｍに保持されている状態は、インバータＶ３１、Ｖ３２にてそれぞれ反転され、出力信号Ｑ及び出力反転信号ＱＢとして出力される。
【００６８】
ここで、ＰＭＯＳトランジスタＭ３１、Ｍ３３がオンの場合、ハイレベル電位ＶＤＤがソースに印加されると、ドレインもハイレベル電位ＶＤＤになる。これに対し、ロウレベル電位ＶＳＳがドレインに印加されると、ソースはＰＭＯＳトランジスタＭ３１、Ｍ３３のしきい値電圧Ｖｐｈ分だけロウレベル電位ＶＳＳから上昇する。
【００６９】
一方、ＮＭＯＳトランジスタＭ３２、Ｍ３４がオンの場合、ロウレベル電位ＶＳＳがソースに印加されると、ドレインもロウレベル電位ＶＳＳになる。これに対し、ハイレベル電位ＶＤＤがドレインに印加されると、ソースはＮＭＯＳトランジスタＭ３２、Ｍ３４のしきい値電圧Ｖｎｈ分だけハイレベル電位ＶＤＤから降下する。
【００７０】
ここで、データ反転信号ＤＢがハイレベルで記憶ノードＭＢがロウレベル、データ信号Ｄがロウレベルで記憶ノードＭがハイレベルとする。このとき、ＰＭＯＳトランジスタＭ３３およびＮＭＯＳトランジスタＭ３２がオンする。
【００７１】
このため、ＮＭＯＳトランジスタＭ３２にて記憶ノードＭでのハイレベルの保持能力が低下され、記憶ノードＭに印加されるデータ信号Ｄがロウレベルになった時に、記憶ノードＭに保持されている状態をハイレベルからロウレベルに遷移し易くさせることができる。また、ＰＭＯＳトランジスタＭ３３にて記憶ノードＭＢでのロウレベルの保持能力が低下され、記憶ノードＭＢに印加されるデータ反転信号ＤＢがハイレベルになった時に、記憶ノードＭＢに保持されている状態をロウレベルからハイレベルに遷移し易くさせることができる。このため、本回路が動作可能の電源電圧マージンを拡大し、回路のロバスト性を改善できる。
【００７２】
一方、データ反転信号ＤＢがロウレベルで記憶ノードＭＢがハイレベル、データ信号Ｄがハイレベルで記憶ノードＭがロウレベルとする。このとき、ＮＭＯＳトランジスタＭ３４およびＰＭＯＳトランジスタＭ３１がオンする。
【００７３】
このため、ＰＭＯＳトランジスタＭ３１にて記憶ノードＭでのロウレベルの保持能力が低下され、記憶ノードＭに印加されるデータ信号Ｄがハイレベルになった時に、記憶ノードＭに保持されている状態をロウレベルからハイレベルに遷移し易くさせることができる。また、ＮＭＯＳトランジスタＭ３４にて記憶ノードＭＢでのハイレベルの保持能力が低下され、記憶ノードＭＢに印加されるデータ反転信号ＤＢがロウレベルになった時に、記憶ノードＭＢに保持されている状態をハイレベルからロウレベルに遷移し易くさせることができる。
【００７４】
このように、図９に示すような回路構成にすることで、記憶ノードＭ、ＭＢに保持されている状態を遷移しやすくさせることができ、動作可能な電源電圧マージンを拡大することができる。また、図８に示す回路と同様に、クロック信号ＣＫからクロック反転信号を生成するクロックバッファ（図１（ｂ）に示すインバータ１８、１９）を別途設ける必要がなくなり、クロックバッファによる消費電力を削減することができる。
【００７５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００７６】
１００  設計装置
１０１  入出力部
１０２  制御部
１１０  記憶部
１２０  演算部
【図１】
2011233559.tif 000003
【図２】
2011233559.tif 000004
【図３】
2011233559.tif 000005
【図４】
2011233559.tif 000006
【図５】
2011233559.tif 000007
【図６】
2011233559.tif 000008
【図７】
2011233559.tif 000009
【図８】
2011233559.tif 000010
【図９】
2011233559.tif 000011