(57)【要約】【課題】ゲーティングされたクロック信号が低消費電力フリップフロップ回路に供給されず、回路面積を低減した低消費電力の半導体集積回路を提供する。【解決手段】イネーブル信号ＥＮ１（ＥＮ２）及びクロック信号ＣＬＫが入力され、前記イネーブル信号に基づいて出力制御されたクロック信号ＣＬＫであるゲーテッドクロック信号ＧＣＬＫ１（ＧＣＬＫ２）を出力するクロックゲーティングセル３ａ（３ｂ）と、前記ゲーテッドクロック信号ＧＣＬＫ１（ＧＣＬＫ２）が供給され駆動する第１のフリップフロップ回路１ａ、１ｂ（１ｃ、１ｄ）と、入力と出力が同一の場合は値を保持し異なる場合は前記クロック信号ＣＬＫが供給され駆動する第２のフリップフロップ回路２ａ、２ｂと、を備える。【選択図】図１
2008028930.tif 000002
【特許請求の範囲】
【請求項１】
イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、
第１の入力データ信号及び前記ゲーテッドクロック信号が入力され、前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、
第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路と、
を備えることを特徴とする半導体集積回路。
【請求項２】
イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、
前記クロックゲーティングセルを１つずつ取り出し、それぞれのファンアウト先の前記第１のフリップフロップ回路をマーキングするステップと、
前記マーキングされなかった第１のフリップフロップ回路を、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換するステップと、
前記半導体集積回路にタイミング制約を満たさないパスがあるかを検出するステップと、
前記第２のフリップフロップ回路を１つずつ取り出し、それぞれタイミング制約を満たしているかを検出し、満たしていない場合は前記第１のフリップフロップ回路に置換するステップと、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項３】
イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、
前記第１のフリップフロップ回路を１つずつ取り出し、前記ゲーテッドクロック信号が入力されているかを検出し、前記ゲーテッドクロック信号が入力されていない場合は、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換するステップと、
前記半導体集積回路にタイミング制約を満たさないパスがあるかを検出するステップと、
前記第２のフリップフロップ回路を１つずつ取り出し、それぞれタイミング制約を満たしているかを検出し、満たしていない場合は前記第１のフリップフロップに置換するステップと、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項４】
イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、
前記クロックゲーティングセルを１つずつ取り出し、それぞれのファンアウト先の前記第１のフリップフロップ回路をマーキングするステップと、
前記マーキングされていない前記第１のフリップフロップ回路を１つずつ取り出し、それぞれが接続されるパスのタイミング余裕度を検出し、前記タイミング余裕度が所定値以上である場合は第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換するステップと、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項５】
イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、
前記クロックゲーティングセルを１つずつ取り出し、それぞれのファンアウト先の前記第１のフリップフロップ回路をマーキングするステップと、
前記マーキングされていない前記第１のフリップフロップ回路を１つずつ取り出し、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換して配置することが可能な面積があるかどうかを検出し、前記面積がある場合は置換を行うステップと、
前記半導体集積回路にタイミング制約を満たさないパスがあるかを検出するステップと、
前記第２のフリップフロップ回路を１つずつ取り出し、それぞれタイミング制約を満たしているかを検出し、満たしていない場合は前記第１のフリップフロップ回路に置換するステップと、
を含むことを特徴とする半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びその設計方法に関するものである。
【背景技術】
【０００２】
半導体集積回路内ではクロックが常にオンしているため、フリップフロップ回路及びクロックツリーでの消費電力が大きい。消費電力を低減するフリップフロップ回路として、低消費電力フリップフロップ（Conditional Clocking Flip Flop、以下ＣＣＫ−ＦＦ）がある（例えば特許文献１参照）。ＣＣＫ−ＦＦは第１及び第２のラッチ回路を有するマスタースレーブ方式のフリップフロップ回路であり、マスター部（第１のラッチ回路）の入力と出力の比較、スレーブ部（第２のラッチ回路）の入力と出力の比較を行い、同一の論理値をとるときは各ラッチ回路にクロック信号を供給せず、異なる論理値をとるときにクロック信号を供給するクロック制御回路を備えている。
【０００３】
また、ゲーティングされたクロック信号（ゲーテッドクロック信号）を用いることで消費電力を低減することができる。これはクロックゲーティングセルによりフリップフロップ回路へのクロック信号供給を制御するものである。フリップフロップ回路はデータ転送が必要なときにクロック信号が供給され、データ転送の必要がないときはクロック信号が供給されない。
【０００４】
しかし、ゲーテッドクロック信号をＣＣＫ−ＦＦに適用した場合、以下のような問題を有する。ゲーテッドクロック信号は多くの場合数回に一回しか立ち上がらない、つまり大半がローレベルの状態である。ＣＣＫ−ＦＦのクロック制御回路は、入力信号と出力信号が一致するかを検出してクロック信号を供給しないようにするものである。従って、ＣＣＫ−ＦＦは、ゲーティングされほとんどがローレベルのクロック信号に対しては消費電力低減の効果を得られない。さらに、ＣＣＫ−ＦＦは通常のフリップフロップ回路にクロック制御回路を加えた構成になるため、通常のフリップフロップ回路に比べて回路面積が大きくなる。また、素子数が多くなるのでリーク電流のオーバーヘッドもある。つまり、ゲーテッドクロック信号をＣＣＫ−ＦＦに適用すると、通常のフリップフロップ回路に適用する場合よりも、回路面積が増大し、消費電力低減の効果が得られないという問題を有する。
【特許文献１】特開２００４−５６６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明は、回路面積を低減した低消費電力の半導体集積回路及びその設計方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様による半導体集積回路は、イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号及び前記ゲーテッドクロック信号が入力され、前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路と、を備えるものである。
【０００７】
本発明の一態様による半導体集積回路の設計方法は、イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、前記クロックゲーティングセルを１つずつ取り出し、それぞれのファンアウト先の前記第１のフリップフロップ回路をマーキングするステップと、前記マーキングされなかった第１のフリップフロップ回路を、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換するステップと、前記半導体集積回路にタイミング制約を満たさないパスがあるかを検出するステップと、前記第２のフリップフロップ回路を１つずつ取り出し、それぞれタイミング制約を満たしているかを検出し、満たしていない場合は前記第１のフリップフロップ回路に置換するステップと、を含むものである。
【０００８】
また、本発明の一態様による半導体集積回路の設計方法は、イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、前記第１のフリップフロップ回路を１つずつ取り出し、前記ゲーテッドクロック信号が入力されているかを検出し、前記ゲーテッドクロック信号が入力されていない場合は、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換するステップと、前記半導体集積回路にタイミング制約を満たさないパスがあるかを検出するステップと、前記第２のフリップフロップ回路を１つずつ取り出し、それぞれタイミング制約を満たしているかを検出し、満たしていない場合は前記第１のフリップフロップに置換するステップと、を含むものである。
【０００９】
また、本発明の一態様による半導体集積回路の設計方法は、イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、前記クロックゲーティングセルを１つずつ取り出し、それぞれのファンアウト先の前記第１のフリップフロップ回路をマーキングするステップと、前記マーキングされていない前記第１のフリップフロップ回路を１つずつ取り出し、それぞれが接続されるパスのタイミング余裕度を検出し、前記タイミング余裕度が所定値以上である場合は第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換するステップと、を含むものである。
【００１０】
また、本発明の一態様による半導体集積回路の設計方法は、イネーブル信号及びクロック信号が入力され、前記イネーブル信号に基づいて出力制御された前記クロック信号であるゲーテッドクロック信号を出力するクロックゲーティングセルと、第１の入力データ信号と前記クロック信号又は前記ゲーテッドクロック信号とが入力され、前記クロック信号又は前記ゲーテッドクロック信号に同期して前記第１の入力データ信号を保持して、第１の出力データ信号として出力する第１のフリップフロップ回路と、を用いて半導体集積回路のセル配置を行うステップと、前記クロックゲーティングセルを１つずつ取り出し、それぞれのファンアウト先の前記第１のフリップフロップ回路をマーキングするステップと、前記マーキングされていない前記第１のフリップフロップ回路を１つずつ取り出し、第２の入力データ信号が入力され、この第２の入力データ信号と第２の出力データ信号の論理値が異なる場合は前記クロック信号に同期して前記第２の入力データ信号を保持して前記第２の出力データ信号として出力し、前記第２の入力データ信号と前記第２の出力データ信号の論理値が同一の場合は前記第２の出力データ信号の出力を維持する第２のフリップフロップ回路に置換して配置することが可能な面積があるかどうかを検出し、前記面積がある場合は置換を行うステップと、前記半導体集積回路にタイミング制約を満たさないパスがあるかを検出するステップと、前記第２のフリップフロップ回路を１つずつ取り出し、それぞれタイミング制約を満たしているかを検出し、満たしていない場合は前記第１のフリップフロップ回路に置換するステップと、を含むものである。
【発明の効果】
【００１１】
本発明によれば、回路面積を低減した低消費電力の半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【００１３】
（第１の実施形態）図１に本発明の第１の実施形態に係る半導体集積回路の概略構成を示す。半導体集積回路はフリップフロップ（ＦＦ）回路１、低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路２及びクロックゲーティングセル３を備える。
【００１４】
クロックゲーティングセル３ａにはクロック信号ＣＬＫ及びイネーブル信号ＥＮ１が入力され、ゲーテッドクロック信号ＧＣＬＫ１が出力される。このゲーテッドクロック信号ＧＣＬＫ１はフリップフロップ回路１ａ及び１ｂに入力される。
【００１５】
クロックゲーティングセル３ｂにはクロック信号ＣＬＫ及びイネーブル信号ＥＮ２が入力され、ゲーテッドクロック信号ＧＣＬＫ２が出力される。このゲーテッドクロック信号ＧＣＬＫ２はフリップフロップ回路１ｃ及び１ｄに入力される。
【００１６】
低消費電力フリップフロップ回路２ａ、２ｂにはクロック信号ＣＬＫが入力される。
【００１７】
図２にフリップフロップ回路１の回路図を示す。図２（ａ）はフリップフロップ回路の信号伝送回路を示し、図２（ｂ）はフリップフロップ回路のクロック供給回路を示す。フリップフロップ回路の信号伝送回路は、クロックドインバータ２１〜２３、インバータ２４〜２６及びトランスミッションゲート２７を有する。
【００１８】
クロックドインバータ２１の入力はＤ入力に接続されている。クロックドインバータ２１の出力はインバータ２４の入力及びクロックドインバータ２２の出力に接続されている。インバータ２４の出力及びクロックドインバータ２２の入力はトランスミッションゲート２７の入力に接続されている。トランスミッションゲート２７の出力はインバータ２５の入力及びクロックドインバータ２３の出力に接続されている。インバータ２５の出力及びクロックドインバータ２３の入力はインバータ２６の入力に接続され、インバータ２６の出力はＱ出力に接続されている。
【００１９】
フリップフロップ回路のクロック供給回路はインバータ２８、２９を有する。インバータ２８の入力はゲーテッドクロック信号ＧＣＬＫの供給ノードに接続され、インバータ２８の出力にインバータ２９の入力が接続される。インバータ２９の出力から内部クロック信号ＧＣＬＫＩを供給し、インバータ２８の出力から反転内部クロック信号／ＧＣＬＫＩを供給する。
【００２０】
クロックドインバータ２２は内部クロック信号ＧＣＬＫＩがＨ（Ｈｉｇｈ）レベルのときはインバータとして動作し、Ｌ（Ｌｏｗ）レベルのときは出力が高インピーダンス状態になり、入出力を切り離す。クロックドインバータ２１、２３は内部クロック信号ＧＣＬＫＩがＬレベルのときはインバータとして動作し、Ｈレベルのときは出力が高インピーダンス状態になり、入出力を切り離す。トランスミッションゲート２７は内部クロック信号ＧＣＬＫＩがＨレベルのとき信号を通し、Ｌレベルのときは通さなくなる。
【００２１】
ゲーテッドクロック信号ＧＣＬＫがＬレベルのとき、Ｄ入力から入力された信号はクロックドインバータ２１を通過してインバータ２４に入力される。内部クロック信号ＧＣＬＫＩはＬレベルのためトランスミッションゲート２７及びクロックドインバータ２２は閉じており、入力信号は阻止される。
【００２２】
ゲーテッドクロック信号ＧＣＬＫがＬレベルからＨレベルに切り替わるとクロックドインバータ２１が閉じ、トランスミッションゲート２７及びクロックドインバータ２２が開く。つまりゲーティングされたクロック信号ＧＣＬＫが切り替わる瞬間に、Ｄ入力から入力されていた信号は、インバータ２４及びクロックドインバータ２２によりラッチされるとともに、トランスミッションゲート２７、インバータ２５、２６を通過してＱ出力から出力される。
【００２３】
続いて、ゲーテッドクロック信号がＨレベルからＬレベルに切り替わると、トランスミッションゲート２７が閉じ、クロックドインバータ２３が開く。これにより、トランスミッションゲート２７を通過してきていた信号はインバータ２５及びクロックドインバータ２３によりラッチされ、インバータ２６を通過してＱ出力から出力される。この状態は、トランスミッションゲート２７が開いて、異なるレベルの信号が入力されるまで継続する。
【００２４】
以下、通常のフリップフロップ回路は上記のような構成を備えたフリップフロップ回路を示すとする。
【００２５】
図３にクロックゲーティングセル３の概略構成を示す。クロックゲーティングセルはラッチ回路３１及び論理積（ＡＮＤ）回路３２を有する。ラッチ回路３１にはイネーブル信号ＥＮ及びクロック信号ＣＬＫが入力される。論理積回路３２にはラッチ回路３１の出力及びクロック信号ＣＬＫが入力される。このような構成にすることで、論理積回路３２からは、ゲーテッドクロック信号ＧＣＬＫが出力される。
【００２６】
フリップフロップ回路１ａ〜１ｄの信号伝送回路は、ゲーテッドクロック信号ＧＣＬＫ１、ＧＣＬＫ２から生成された内部クロック信号及び反転内部クロック信号に同期して動作する。クロックゲーティングセル３ａは、イネーブル信号ＥＮ１により、フリップフロップ回路１ａ、１ｂにおいてデータ伝送が必要な場合はクロック信号を供給し、必要でない場合は供給しないよう制御される。また、クロックゲーティングセル３ｂは、イネーブル信号ＥＮ２により、フリップフロップ回路１ｃ、１ｄにおいてデータ伝送が必要な場合はクロック信号を供給し、必要でない場合は供給しないよう制御される。これによりフリップフロップ回路１ａ〜１ｄはデータ伝送が不要な場合、クロック信号が供給されず動作が止められるため、消費電力を抑えることが出来る。
【００２７】
図４に低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路２の概略構成を示す。低消費電力フリップフロップ回路はラッチ回路４１、４２、２入力ＥＸ−ＮＯＲ（排他的否論理和）回路４３、２入力ＯＲ（論理和）回路４４、２入力ＥＸ−ＯＲ（排他的論理和）回路４５、２入力ＡＮＤ（論理積）回路４６を有する。
【００２８】
ラッチ回路４１の入力ノードはＤ入力に接続され、出力ノードはノードＸに接続されている。ラッチ回路４２の入力ノードはノードＸに接続され、出力ノードはＱ出力に接続されている。ＥＸ−ＮＯＲ回路４３は入力の一方がＤ入力に接続され、他方がノードＸに接続されている。ＯＲ回路４４はＥＸ−ＮＯＲ回路４３の出力ｎ１及びクロック信号ＣＬＫが入力され、第１の内部クロック信号ＣＬＫＩ１が出力される。
【００２９】
ＥＸ−ＯＲ回路４５は入力の一方がＱ出力に接続され、他方がノードＸに接続されている。ＡＮＤ回路４６はＥＸ−ＯＲ回路４５の出力ｎ２及びクロック信号ＣＬＫが入力され、第２の内部クロック信号ＣＬＫＩ２が出力される。
【００３０】
ラッチ回路４１は入力されるクロック信号がＬレベルの間は信号を通過させ、Ｈレベルの間は信号を保持する。また、ラッチ回路４２は入力されるクロック信号がＨレベルの間は信号を通過させ、Ｌレベルの間は信号を保持する。
【００３１】
このような構成の低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路の動作について説明する。Ｄ入力、ノードＸ、Ｑ出力の論理値が同じ場合、ＥＸ−ＮＯＲ回路４３の出力ｎ１はＨレベルになる。このＨレベルのｎ１がＯＲ回路４４に入力されるため、ＯＲ回路４４が出力しラッチ回路４１に入力される内部クロック信号ＣＬＫＩ１は常にＨレベルになり、ラッチ回路４１は信号を保持する。また、ＥＸ−ＯＲ回路４５の出力ｎ２はＬレベルとなる。このＬレベルのｎ２がＡＮＤ回路４６に入力されるため、ＡＮＤ回路４６が出力しラッチ回路４２に入力される内部クロック信号ＣＬＫＩ２は常にＬレベルになり、ラッチ回路４２は信号を保持する。従って、ラッチ回路４１、４２はそれぞれ、ＯＲ回路４４、ＡＮＤ回路４６によりクロック信号ＣＬＫの入力を阻止されることとなる。
【００３２】
ここで、Ｄ入力の論理値が変わったとする。ＥＸ−ＮＯＲ回路４３に入力されるＤ入力の論理値とノードＸの論理値は異なるため、ＥＸ−ＮＯＲ回路４３の出力ｎ１はＬレベルになる。このＬレベルのｎ１がＯＲ回路４４に入力されるため、ＯＲ回路４４が出力しラッチ回路４１に入力される内部クロック信号ＣＬＫＩ１はクロック信号ＣＬＫと同一になる。クロック信号ＣＬＫがＬレベルになるとラッチ回路４１は信号を通過させるため、Ｄ入力とノードＸの論理値が同一になる。ＥＸ−ＯＲ回路４５に入力されるノードＸの論理値とＱ出力の論理値は異なることになるため、ＥＸ−ＯＲ回路４５の出力ｎ２はＨレベルになる。このＨレベルのｎ２がＡＮＤ回路４６に入力されるため、ＡＮＤ回路４６が出力しラッチ回路４２に入力される内部クロック信号ＣＬＫＩ２はクロック信号ＣＬＫと同一になる。クロック信号ＣＬＫがＨレベルになるとラッチ回路４２は信号を通過させるためＱ出力はノードＸと同一の論理値になる。つまり、Ｄ入力がクロック信号ＣＬＫの立ち上がりに同期してＱ出力から出力されることになる。
【００３３】
このように、低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路は、通常のＤ型フリップフロップ回路の動作を行いつつ、Ｄ入力とＱ出力が同一の論理値をとるときは、クロック制御回路４７（ＥＸ−ＮＯＲ回路４３、ＯＲ回路４４）によりラッチ回路４１へのクロック信号ＣＬＫの入力が阻止され、また、クロック制御回路４８（ＥＸ−ＯＲ回路４５、ＡＮＤ回路４６）によりラッチ回路４２へのクロック信号ＣＬＫの入力が阻止される。これにより不要な回路動作を行わず、消費電力の低減を図ることができる。
【００３４】
本発明の第１の実施形態における半導体集積回路は、通常のフリップフロップ回路をクロックゲーティングセルに接続し、ゲーテッドクロック信号を供給することで消費電力の低減を図り、かつ低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路とする場合よりも回路面積を小さくすることができる。ゲーティングされていないクロック信号が供給される部分は低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路にすることで消費電力を低減できる。
【００３５】
（第２の実施形態）本発明の第２の実施形態による半導体集積回路の設計方法について図５に示すフローチャートを用いて説明する。
【００３６】
（ステップＳ１）クロックゲーティングセル、通常のフリップフロップ回路を用いて、タイミング制約を満たすように、セル配置をし、半導体集積回路のデザインを行う。
【００３７】
（ステップＳ２）取り出されていないクロックゲーティングセルが１つ取り出される。
【００３８】
（ステップＳ３）取り出せた場合はステップＳ４へ進む。取り出せなかった（すべてのクロックゲーティングセルが既に取り出されていた）場合はステップＳ６へ進む。
【００３９】
（ステップＳ４）取り出されたクロックゲーティングセルのファンアウト先のフリップフロップがすべて取り出される。
【００４０】
（ステップＳ５）取り出されたフリップフロップにマークがつけられ、ステップＳ２に戻る。
【００４１】
（ステップＳ６）マークのついていないフリップフロップ回路がすべて低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路に置換される。
【００４２】
（ステップＳ７）タイミング最適化処理が行われる。タイミング最適化処理とは、レイアウトから得られる配線遅延、配線負荷、セル配置位置などの情報を基に、ユーザから与えられるタイミング制約を満たしていない（タイミングエラーの発生している）パスをさがし、バッファの挿入、不要なバッファの削除、セルサイジング等を行いパスの最適化を行うことである。
【００４３】
（ステップＳ８）タイミング最適化処理によりすべてのパスにおいてタイミング制約が満たされた（タイミング収束した）場合は終了する。タイミング制約が満たされなかった（タイミング収束しなかった）場合はステップＳ９へ進む。
【００４４】
（ステップＳ９）取り出されていない低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路を１つ取り出す。
【００４５】
（ステップＳ１０）取り出せた場合はステップＳ１１へ進む。取り出せなかった（すべての低消費電力フリップフロップ回路が既に取り出されていた）場合は処理を終了する。
【００４６】
（ステップＳ１１）取り出された低消費電力フリップフロップ回路がタイミング制約を満たしているかが調べられる。満たしている場合はステップＳ９へ戻る。満たしていない場合はステップＳ１２へ進む。
【００４７】
（ステップＳ１２）取り出された低消費電力フリップフロップ回路が通常のフリップフロップ回路に置換され、ステップＳ９へ戻る。
【００４８】
上記ステップＳ１〜Ｓ６により、図１に示すようなゲーティングされたクロック信号が通常のフリップフロップ回路に供給され、ゲーテッドクロック信号が低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路に供給される半導体集積回路を設計することができる。また、この半導体集積回路がタイミング最適化処理によりタイミング制約が満たされないパスがあった場合はステップＳ９〜Ｓ１２により、タイミング制約を満たしていない低消費電力フリップフロップ回路を通常のフリップフロップ回路に置換する。ステップＳ１においてタイミング制約を満たすように半導体集積回路を設計しており、ステップＳ６で通常のフリップフロップ回路を低消費電力フリップフロップ回路に置換したことでタイミング制約を満たさなくなったと考えられる。低消費電力フリップフロップ回路よりも通常のフリップフロップ回路の方がクロック信号の伝達が速いため、通常のフリップフロップ回路に置換することでタイミング制約を満たすようにする。
【００４９】
上記第２の実施形態における半導体集積回路の設計方法により、ゲーティングされたクロック信号が供給される部分は低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路でなく通常のフリップフロップ回路となるため回路面積を低減した半導体集積回路の設計を行うことができる。
【００５０】
（第３の実施形態）本発明の第３の実施形態による半導体集積回路の設計方法について図６に示すフローチャートを用いて説明する。
【００５１】
（ステップＳ１０１）クロックゲーティングセル、通常のフリップフロップ回路を用いて、タイミング制約を満たすように、セル配置をし、半導体集積回路のデザインを行う。
【００５２】
（ステップＳ１０２）取り出されていない通常のフリップフロップ回路を１つ取り出す。
【００５３】
（ステップＳ１０３）取り出せた場合はステップＳ１０４へ進む。取り出せなかった（すべての通常のフリップフロップ回路が既に取り出されていた）場合はステップＳ１０６へ進む。
【００５４】
（ステップＳ１０４）取り出された通常のフリップフロップ回路がゲーティングされたクロック信号で駆動するか（クロックゲーティングセルに接続されているか）が調べられる。ゲーティングされたクロック信号で駆動する場合はステップＳ１０２へ戻る。ゲーティングされたクロック信号で駆動しない場合はステップＳ１０５へ進む。
【００５５】
（ステップＳ１０５）取り出された通常のフリップフロップ回路が低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路に置換され、ステップＳ１０２へ戻る。
【００５６】
（ステップＳ１０６）タイミング最適化処理が行われる。
【００５７】
（ステップＳ１０７）タイミング制約を満たさないパスがない（タイミング収束する）場合は終了する。タイミング制約を満たさないパスがある（タイミング収束しない）場合はステップＳ１０８へ進む。
【００５８】
（ステップＳ１０８）取り出されていない低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路を１つ取り出す。
【００５９】
（ステップＳ１０９）取り出せた場合はステップＳ１１０へ進む。取り出せなかった（すべての低消費電力フリップフロップ回路が既に取り出されていた）場合は処理を終了する。
【００６０】
（ステップＳ１１０）取り出された低消費電力フリップフロップ回路がタイミング制約を満たしているかが調べられる。満たしている場合はステップＳ１０８へ戻る。満たしていない場合はステップＳ１１１へ進む。
【００６１】
（ステップＳ１１１）取り出された低消費電力フリップフロップ回路が通常のフリップフロップ回路に置換され、ステップＳ１０８へ戻る。
【００６２】
上記ステップＳ１０１〜Ｓ１０５により、図１に示すようなゲーテッドクロック信号が通常のフリップフロップ回路に供給され、ゲーティングされていないクロック信号が低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路に供給される半導体集積回路を設計することができる。
【００６３】
また、この半導体集積回路がタイミング最適化処理によりタイミング収束しなかった場合はステップＳ１０８〜Ｓ１１１により、タイミング制約を満たしていない低消費電力フリップフロップ回路を通常のフリップフロップ回路に置換し、半導体集積回路内のパスがタイミング制約を満たすようにする。
【００６４】
上記第３の実施形態における半導体集積回路の設計方法により、ゲーティングされたクロック信号が供給される部分は低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路でなく通常のフリップフロップ回路となるため回路面積を低減した低消費電力の半導体集積回路の設計を行うことができる。
【００６５】
（第４の実施形態）本発明の第４の実施形態による半導体集積回路の設計方法について図７に示すフローチャートを用いて説明する。
【００６６】
（ステップＳ２０１）クロックゲーティングセル、通常のフリップフロップ回路を用いて、タイミング制約を満たすように、セル配置をし、半導体集積回路のデザインを行う。
【００６７】
（ステップＳ２０２）取り出されていないクロックゲーティングセルが１つ取り出される。
【００６８】
（ステップＳ２０３）取り出せた場合はステップＳ２０４へ進む。取り出せなかった（すべてのクロックゲーティングセルが既に取り出されていた）場合はステップＳ２０６へ進む。
【００６９】
（ステップＳ２０４）取り出されたクロックゲーティングセルのファンアウト先のフリップフロップ回路がすべて取り出される。
【００７０】
（ステップＳ２０５）取り出されたフリップフロップ回路にマークがつけられ、ステップＳ２０２に戻る。
【００７１】
（ステップＳ２０６）取り出されていないフリップフロップ回路が１つ取り出される。
【００７２】
（ステップＳ２０７）取り出せた場合はステップＳ２０８へ進む。取り出せなかった（すべてのフリップフロップ回路が既に取り出されていた）場合は終了する。
【００７３】
（ステップＳ２０８）取り出されたフリップフロップ回路にマークがついているかが調べられる。マークがついている場合はステップＳ２０６へ戻る。マークがついていなかった場合はステップＳ２０９へ進む。
【００７４】
（ステップＳ２０９）取り出されたマークのついていないフリップフロップ回路に接続されているパスのタイミング余裕度が所定値以上であるかが調べられる。所定値以上の場合はステップＳ２１０へ進む。所定値未満の場合はステップＳ２０６へ戻る。タイミング余裕度はパスのセットアップタイムとそのパスに指定されているタイミング制約との差である。セットアップタイムは、データを読み取るために、クロック信号に先立って入力データ信号を確定しておかなければならない最小時間をいう。
【００７５】
（ステップＳ２１０）取り出されたマークのついていないフリップフロップ回路を低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路に置換し、ステップＳ２０６へ戻る。
【００７６】
低消費電力フリップフロップ回路はクロック制御回路を有する分、通常のフリップフロップ回路よりもクロック信号の伝達が遅く、長いセットアップタイムが必要となる。上記の設計方法では、ゲーテッドクロック信号が供給されないフリップフロップ回路それぞれについて接続されるパスのタイミング余裕度が所定値以上であるか、つまり低消費電力フリップフロップ回路に置換してもタイミング制約を満たせるかを調べてから置換するため、置換後にタイミング最適化処理を行う必要がなく、回路の設計にかかる時間を短縮することが出来る。
【００７７】
上記第４の実施形態における半導体集積回路の設計方法により、ゲーティングされたクロック信号が供給される部分は低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路でなく通常のフリップフロップ回路となるため回路面積を低減した半導体集積回路の設計を行うことができる。また設計にかかる時間を短縮することが出来る。
【００７８】
（第５の実施形態）本発明の第５の実施形態による半導体集積回路の設計方法について図８に示すフローチャートを用いて説明する。
【００７９】
（ステップＳ３０１）クロックゲーティングセル、通常のフリップフロップ回路を用いて、タイミング制約を満たすように、セル配置をし、半導体集積回路のデザインを行う。
【００８０】
（ステップＳ３０２）取り出されていないクロックゲーティングセルが１つ取り出される。
【００８１】
（ステップＳ３０３）取り出せた場合はステップＳ３０４へ進む。取り出せなかった（すべてのクロックゲーティングセルが既に取り出されていた）場合はステップＳ３０６へ進む。
【００８２】
（ステップＳ３０４）取り出されたクロックゲーティングセルのファンアウト先のフリップフロップ回路がすべて取り出される。
【００８３】
（ステップＳ３０５）取り出されたフリップフロップ回路にマークがつけられ、ステップＳ３０２に戻る。
【００８４】
（ステップＳ３０６）取り出されていないフリップフロップ回路が１つ取り出される。
【００８５】
（ステップＳ３０７）取り出せた場合はステップＳ３０８へ進む。取り出せなかった（すべてのフリップフロップ回路が既に取り出されていた）場合はステップＳ３１１へ進む。
【００８６】
（ステップＳ３０８）取り出されたフリップフロップ回路にマークがついているかが調べられる。マークがついている場合はステップＳ３０６へ戻る。マークがついていない場合はステップＳ３０９へ進む。
【００８７】
（ステップＳ３０９）取り出されたマークのついてないフリップフロップ回路の周りに低消費電力フリップフロップ回路に置換して配置し配線することが可能な面積があるかが調べられる。余裕がある場合はステップＳ３１０へ進む。ない場合はステップＳ３０６へ戻る。
【００８８】
（ステップＳ３１０）取り出されたマークのついていないフリップフロップ回路を低消費電力フリップフロップ回路に置換し、ステップＳ３０６へ戻る。
【００８９】
（ステップＳ３１１）タイミング最適化処理が行われる。
【００９０】
（ステップＳ３１２）タイミング制約を満たさないパスがない（タイミング収束する）場合は終了する。タイミング制約を満たさないパスがある（タイミング収束しない）場合はステップＳ３１３へ進む。
【００９１】
（ステップＳ３１３）取り出されていない低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路を１つ取り出す。
【００９２】
（ステップＳ３１４）取り出せた場合はステップＳ１５へ進む。取り出せなかった（すべての低消費電力フリップフロップ回路が既に取り出されていた）場合は処理を終了する。
【００９３】
（ステップＳ３１５）取り出された低消費電力フリップフロップ回路がタイミング制約を満たしているかが調べられる。満たしている場合はステップＳ３１３へ戻る。満たしていない場合はステップＳ３１６へ進む。
【００９４】
（ステップＳ３１６）取り出された低消費電力フリップフロップ回路が通常のフリップフロップ回路に置換され、ステップＳ３１３へ戻る。
【００９５】
低消費電力フリップフロップ回路はクロック制御回路を有するため通常のフリップフロップ回路より回路面積が大きくなるが、上記設計方法ではそのことを考慮に入れて（ステップＳ３０６〜Ｓ３１０）回路設計している。
【００９６】
上記第５の実施形態における半導体集積回路の設計方法により、ゲーティングされたクロック信号が供給される部分は低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路でなく通常のフリップフロップ回路となるため回路面積を低減した低消費電力の半導体集積回路の設計を行うことができる。
【００９７】
上述した実施の形態はいずれも一例であって制限的なものではないと考えられるべきである。例えば、上記第３の実施形態による半導体集積回路の設計方法において、取り出された通常のフリップフロップ回路がゲーテッドクロック信号で駆動するか（クロックゲーティングセルに接続されているか）が調べられるステップＳ１０４と取り出された通常のフリップフロップ回路を低消費電力フリップフロップ回路に置換するステップＳ１０５との間に、その通常のフリップフロップ回路の周りに低消費電力フリップフロップ回路に置換して配置することが可能な面積があるかどうかを調べるステップを追加しても良い。
【００９８】
また、上記第４の実施形態による半導体集積回路の設計方法において、取り出されたマークのついていないフリップフロップ回路に接続されているパスのタイミング余裕度が所定値以上であるかが調べられるステップＳ２０９と取り出されたマークのついていないフリップフロップ回路を低消費電力フリップフロップ（ＣＣＫ−ＦＦ）回路に置換するステップＳ２１０との間に、その取り出されたマークのついていないフリップフロップ回路の周りに低消費電力フリップフロップ回路に置換して配置し配線することが可能な面積があるかどうかを調べるステップを追加しても良い。
【００９９】
本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１の実施形態に係る半導体集積回路の概略構成図である。
【図２】同第１の実施形態に係る半導体集積回路におけるフリップフロップ回路の概略構成図である。
【図３】同第１の実施形態に係る半導体集積回路におけるクロックゲーティングセルの概略構成図である。
【図４】同第１の実施形態に係る半導体集積回路における低消費電力フリップフロップ回路の概略構成図である。
【図５】本発明の第２の実施形態による半導体集積回路の設計方法のフローチャートである。
【図６】本発明の第３の実施形態による半導体集積回路の設計方法のフローチャートである。
【図７】本発明の第４の実施形態による半導体集積回路の設計方法のフローチャートである。
【図８】本発明の第５の実施形態による半導体集積回路の設計方法のフローチャートである。
【符号の説明】
【０１０１】
１ａ〜１ｄ  フリップフロップ回路
２ａ、２ｂ  低消費電力フリップフロップ回路
３ａ、３ｂ  クロックゲーティングセル
２１〜２３  クロックドインバータ
２７  トランスミッションゲート
【図１】
2008028930.tif 000003
【図２】
2008028930.tif 000004
【図３】
2008028930.tif 000005
【図４】
2008028930.tif 000006
【図５】
2008028930.tif 000007
【図６】
2008028930.tif 000008
【図７】
2008028930.tif 000009
【図８】
2008028930.tif 000010