(57)【要約】【課題】消費電力を低減し、誤動作を防止することができるフリップフロップ回路を設計するための設計装置を提供することを課題とする。【解決手段】第１の入力信号、第１のイネーブル信号及び第１のクロック信号を入力する第１のフリップフロップ回路の第１の設計データに対して、第１のクロック信号の周波数の２倍以上の周波数のクロック信号で第１の静的タイミング解析を行う第１の静的タイミング解析部（Ｓ１１）と、第１の静的タイミング解析の結果が合格の場合には、第１の設計データを入力し、第１のフリップフロップ回路を第２のフリップフロップ回路に変換した第２の設計データを生成する第１の変換部（Ｓ１３）とを有し、第１のフリップフロップ回路はクロックゲーティング回路を有さず、第２のフリップフロップ回路はクロックゲーティング回路を有する設計装置が提供される。【選択図】図１２
2011164988.tif 000002
【特許請求の範囲】
【請求項１】
第１の入力信号、第１のイネーブル信号及び第１のクロック信号を入力する第１のフリップフロップ回路の第１の設計データに対して、前記第１のクロック信号の周波数の２倍以上の周波数のクロック信号で第１の静的タイミング解析を行う第１の静的タイミング解析部と、
前記第１の静的タイミング解析の結果が合格の場合には、前記第１の設計データを入力し、前記第１のフリップフロップ回路を第２のフリップフロップ回路に変換した第２の設計データを生成する第１の変換部とを有し、
前記第１のフリップフロップ回路は、クロックゲーティング回路を有さず、
前記第２のフリップフロップ回路は、前記第１のイネーブル信号を前記第１のクロック信号でクロックゲーティングして出力するクロックゲーティング回路と、前記クロックゲーティング回路の出力信号をクロック端子に入力して前記第１の入力信号を入力端子に入力する第３のフリップフロップ回路とを有することを特徴とする設計装置。
【請求項２】
前記クロックゲーティング回路は、前記第１のイネーブル信号及び前記第１のクロック信号を入力して前記第３のフリップフロップ回路のクロック端子に出力する論理和回路又は否定論理和回路を有することを特徴とする請求項１記載の設計装置。
【請求項３】
さらに、第３の設計データを論理合成してログファイル及び前記第１の設計データを生成する論理合成部と、
前記ログファイルを基に前記第１のフリップフロップ回路のリストを作成する第１のリスト作成部とを有し、
前記第１の変換部は、前記第１のフリップフロップの回路のリストを基に前記変換を行い、
さらに、前記第２の設計データに対して、前記第１のクロック信号の周波数の２倍以上の周波数のクロック信号で第２の静的タイミング解析を行う第２の静的タイミング解析部と、
前記第２の静的タイミング解析の結果が不合格の場合には、前記第２の設計データを入力し、前記第２のフリップフロップ回路を前記第１のフリップフロップ回路に戻した設計データを生成する第１の復元部とを有することを特徴とする請求項１又は２記載の設計装置。
【請求項４】
さらに、第２の入力信号及び第２のクロック信号を入力する第４のフリップフロップ回路の第４の設計データを入力し、前記第４のフリップフロップ回路を第５のフリップフロップ回路に変換した第５の設計データを生成する第２の変換部を有し、
前記第４のフリップフロップ回路は、クロックゲーティング回路を有さず、
前記第５のフリップフロップ回路は、前記第２の入力信号を入力端子に入力して出力端子から第２の出力信号を出力する第６のフリップフロップ回路と、前記第２の入力信号及び前記第２の出力信号を入力する排他的論理和回路と、前記排他的論理和回路の出力信号及び前記第２のクロック信号を入力して出力信号を前記第６のフリップフロップ回路のクロック端子に出力する論理和回路又は否定論理和回路とを有することを特徴とする請求項１〜３のいずれか１項に記載の設計装置。
【請求項５】
前記第２の変換部は、レイアウトの空き領域の面積が閾値以上であれば前記変換を行い、
さらに、前記第５のフリップフロップ回路の第５の設計データに対して、前記第２のクロック信号の周波数と同じ周波数のクロック信号で第３の静的タイミング解析を行う第３の静的タイミング解析部と、
前記第３の静的タイミング解析の結果が不合格の場合には、前記第５の設計データを入力し、前記第５のフリップフロップ回路を前記第４のフリップフロップ回路に戻した設計データを生成する第２の復元部とを有することを特徴とする請求項４記載の設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計装置に関する。
【背景技術】
【０００２】
図１（Ａ）〜（Ｄ）は、イネーブル信号入力ありのフリップフロップ回路を示す図である。図１（Ａ）は、複数のフリップフロップ回路１０１を示す。各フリップフロップ回路１０１は、入力信号Ｄ、イネーブル信号ＥＮ及びクロック信号ＣＬＫを入力する。ここで、イネーブル信号ＥＮ及びクロック信号ＣＬＫは、複数のフリップフロップ回路１０１間で共通である。図１（Ａ）の回路は、消費電力を低減するために図１（Ｂ）の回路に変換可能である。
【０００３】
図１（Ｂ）は消費電力を低減するためのフリップフロップ回路の構成を示す図であり、図１（Ｃ）及び（Ｄ）は図１（Ｂ）の回路の動作例を示すタイミングチャートである。クロックゲーティング回路１１２は、ラッチ回路１１３及び論理積回路１１４を有する。ラッチ回路１１３は、クロック信号ＣＬＫの立ち下がりエッジに同期してイネーブル信号ＥＮをラッチし、ラッチした信号を出力する。論理積回路１１４は、ラッチ回路１１３の出力信号及びクロック信号ＣＬＫの論理積信号をクロック信号ＣＬＫ１として出力する。複数のフリップフロップ回路１１１は、共通の同じクロック信号ＣＬＫ１をクロック端子に入力し、それぞれの入力信号Ｄを入力端子に入力する。クロックゲーティング回路１１２により、イネーブル信号ＥＮがローレベルのときには、クロック信号ＣＬＫ１を停止させることができるので、図１（Ｂ）の回路は図１（Ａ）の回路に比べて消費電力を低減することができる。
【０００４】
図１（Ｃ）はクロック信号ＣＬＫがハイレベルのときにイネーブル信号ＥＮが変化する場合のタイミングチャートであり、図１（Ｄ）はクロック信号ＣＬＫがローレベルのときにイネーブル信号ＥＮが変化する場合のタイミングチャートである。いずれの場合も、クロック信号ＣＬＫ１の立ち上がりエッジは、クロック信号ＣＬＫの立ち上がりエッジと同じタイミングであるため、クロック信号ＣＬＫ１に誤動作の原因となるグリッチが発生しない。そのため、図１（Ｂ）の回路は、正常な動作を行うことができる。
【０００５】
しかし、ラッチ回路１１３のクロック信号ＣＬＫは停止しないため、ラッチ回路１１３はイネーブル信号ＥＮがローレベルの期間でも電力を消費してしまう。また、ラッチ回路１１３は大面積を占有する課題がある。特に、図１（Ａ）の回路において、フリップフロップ回路１０１が１個の場合には、図１（Ａ）の回路を図１（Ｂ）の回路に変換するメリットがほとんどなく、低消費電力の効果を得ることができない。
【０００６】
また、タイミングクロックによってオン、オフするフリップフロップ、及び、フィードバックループとを有し、イネーブル信号にしたがって動作する論理回路部分を自動的に抽出する段階と、タイミングクロックをイネーブル信号によってゲートし、ゲーテッドクロック化する段階とを含み、これによって、タイミングクロックによるフリップフロップの変化の回数を削減する回路設計方法が知られている（例えば、特開平１０−２９４３７５号公報参照）。
【０００７】
また、ＲＴＬデータの動作シミュレーションにより、ゲートレベルでの消費電力解析を精度よく行うことが可能な消費電力解析装置が知られている（例えば、特開２００９−３６１８号公報参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１０−２９４３７５号公報
【特許文献２】特開２００９−３６１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、消費電力を低減し、誤動作を防止することができるフリップフロップ回路を設計するための設計装置を提供することである。
【課題を解決するための手段】
【００１０】
設計装置は、第１の入力信号、第１のイネーブル信号及び第１のクロック信号を入力する第１のフリップフロップ回路の第１の設計データに対して、前記第１のクロック信号の周波数の２倍以上の周波数のクロック信号で第１の静的タイミング解析を行う第１の静的タイミング解析部と、前記第１の静的タイミング解析の結果が合格の場合には、前記第１の設計データを入力し、前記第１のフリップフロップ回路を第２のフリップフロップ回路に変換した第２の設計データを生成する第１の変換部とを有し、前記第１のフリップフロップ回路は、クロックゲーティング回路を有さず、前記第２のフリップフロップ回路は、前記第１のイネーブル信号を前記第１のクロック信号でクロックゲーティングして出力するクロックゲーティング回路と、前記クロックゲーティング回路の出力信号をクロック端子に入力して前記第１の入力信号を入力端子に入力する第３のフリップフロップ回路とを有する。
【発明の効果】
【００１１】
クロックゲーティング回路を設けることによりフリップフロップ回路の電力を低減することができる。また、２倍以上の周波数のクロック信号で静的タイミング解析を行うことにより、フリップフロップ回路の誤動作を防止することができる。
【図面の簡単な説明】
【００１２】
【図１】図１（Ａ）〜（Ｄ）はイネーブル信号入力ありのフリップフロップ回路を示す図である。
【図２】図２（Ａ）〜（Ｄ）は本発明の第１の実施形態によるイネーブル信号入力ありのフリップフロップ回路の例を示す図である。
【図３】図２（Ｂ）のフリップフロップ回路の構成例を示す概念図である。
【図４】図３のフリップフロップ回路の構成例を示す回路図である
【図５】図２（Ａ）のイネーブル信号入力ありのフリップフロップ回路の構成例を示す回路図である。
【図６】図３のフリップフロップ回路の構成例を示す回路図である。
【図７】スキャンテスト機能ありのフリップフロップ回路の一部の構成例を示す回路図である。
【図８】図８（Ａ）〜（Ｄ）は本発明の第２の実施形態によるイネーブル信号入力なしのフリップフロップ回路の例を示す図である。
【図９】図８（Ｂ）のフリップフロップ回路の構成例を示す概念図である。
【図１０】図９のフリップフロップ回路の構成例を示す回路図である。
【図１１】本発明の第３の実施形態による設計装置を構成するコンピュータのハードウェア構成例を示すブロック図である。
【図１２】図１１の設計装置の設計方法の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
図２（Ａ）〜（Ｄ）は、本発明の第１の実施形態によるイネーブル信号入力ありのフリップフロップ回路の例を示す図である。図２（Ａ）は、イネーブル信号入力ありのフリップフロップ回路２００を示す。フリップフロップ回路２００は、入力信号Ｄ、イネーブル信号ＥＮ及びクロック信号ＣＬＫを入力し、出力信号Ｑを出力する。イネーブル信号ＥＮは、ハイレベルのときに入力信号Ｄの有効状態を示し、ローレベルのときに入力信号Ｄの無効情報を示す。本実施形態では、図２（Ａ）の回路を図２（Ｂ）の回路に変換する。
【００１４】
図２（Ｂ）の回路は、図２（Ａ）の回路と同じ論理動作を行う。図２（Ｂ）のイネーブル信号入力ありのフリップフロップ回路は、論理和回路２０１及びイネーブル信号入力なしのフリップフロップ回路２０２を有する。論理和回路２０１は、イネーブル信号ＥＮの論理反転信号及びクロック信号ＣＬＫの論理和信号をクロック信号ＣＬＫ１として出力する。論理和回路２０１は、イネーブル信号ＥＮをクロック信号ＣＬＫでクロックゲーティングし、クロック信号ＣＬＫ１を出力するクロックゲーティング回路である。フリップフロップ回路２０２は、クロック信号ＣＬＫ１をクロック端子に入力し、入力信号Ｄを入力端子に入力し、出力端子から出力信号Ｑを出力する。フリップフロップ回路２０２は、クロック信号ＣＬＫ１の立ち上がりエッジに同期して入力信号Ｄを保持し、保持した信号を出力信号Ｑとして出力する。論理和回路２０１をクロックゲーティング回路として設けることにより、図２（Ｃ）及び（Ｄ）に示すように、イネーブル信号ＥＮがローレベルのときには、クロック信号ＣＬＫ１を停止させることができるので、図２（Ｂ）の回路は図２（Ａ）の回路に比べて消費電力を低減することができる。
【００１５】
図２（Ｃ）は、クロック信号ＣＬＫがハイレベルのときにイネーブル信号ＥＮが変化する場合のタイミングチャートである。この場合、クロック信号ＣＬＫ１の立ち上がりエッジは、クロック信号ＣＬＫの立ち上がりエッジと同じタイミングであるため、クロック信号ＣＬＫ１に誤動作の原因となるグリッチが発生しない。そのため、図２（Ｂ）の回路は、正常な動作を行うことができる。
【００１６】
図２（Ｄ）は、クロック信号ＣＬＫがローレベルのときにイネーブル信号ＥＮが変化する場合のタイミングチャートである。この場合、クロック信号ＣＬＫ１に誤動作の原因となるグリッチ２１１が発生する。クロック信号ＣＬＫ１のグリッチ２１１の立ち上がりエッジは、クロック信号ＣＬＫの立ち上がりエッジと異なるタイミングであるため、図２（Ｂ）の回路は誤動作する可能性がある。すなわち、フリップフロップ回路２０２は、クロック信号ＣＬＫの立ち上がりエッジのタイミングで正常な入力信号Ｄが保証されている。したがって、クロック信号ＣＬＫ１の立ち上がりエッジがクロック信号ＣＬＫの立ち上がりエッジと同じタイミングであれば、フリップフロップ回路２０２の動作は保証される。しかし、クロック信号ＣＬＫ１内のグリッチ２１１の立ち上がりエッジは、クロック信号ＣＬＫの立ち上がりエッジと異なるタイミングであるため、フリップフロップ回路２０２の動作は保証されず、誤動作の可能性がある。
【００１７】
そこで、本実施形態では、図２（Ｂ）のフリップフロップ回路に対して、クロック信号ＣＬＫの周波数の２倍以上の周波数のクロック信号で静的タイミング解析を行い、その静的タイミング解析の結果が合格であれば、イネーブル信号ＥＮはクロック信号ＣＬＫがハイレベルの時に変化し、クロック信号ＣＬＫがローレベルの時には変化しないことが保証される。したがって、クロック信号ＣＬＫの周波数の２倍以上の周波数のクロック信号で静的タイミング解析の結果が合格であれば、図２（Ｂ）の回路の正常動作が保証される。
【００１８】
例えば、クロック信号ＣＬＫの要求周波数が５０ＭＨｚ、１周期が２０ｎｓの場合、論理和回路２０１の前段のフリップフロップ回路から論理和回路２０１までのイネーブル信号ＥＮのタイミングが、１周期の半分の１０ｎｓ以下であれば、イネーブル信号ＥＮはクロック信号ＣＬＫのハイレベルの時に変化することが保証される。そのため、図２（Ｂ）のフリップフロップ回路は、静的タイミング解析で、クロック信号ＣＬＫの２倍の周波数の１００ＭＨｚのクロック信号でタイミングを満たせば、図２（Ｂ）の正常動作が保証される。
【００１９】
図３は、図２（Ｂ）のフリップフロップ回路の構成例を示す概念図である。フリップフロップ回路３０１のセルは、論理和回路２０１のクロックゲーティング回路を内蔵する。イネーブル信号入力ありのフリップフロップ回路３０１は、図２（Ｂ）と同様に、論理和回路２０１及びイネーブル信号入力なしのフリップフロップ回路２０２を有する。
【００２０】
フリップフロップ回路２０２は、インバータ３１１〜３１４及びトライステートバッファ３２１〜３２４を有する。インバータ３１１〜３１４は、入力信号を論理反転した信号を出力する。トライステートバッファ３１１〜３１４は、クロック信号に同期し、出力がローレベル状態、ハイレベル状態又はハイインピーダンス状態になる。インバータ３１１は、クロック信号ＣＬＫ１の論理反転信号を出力する。インバータ３１２は、インバータ３１２の出力信号の論理反転信号を出力する。トライステートバッファ３２１は、インバータ３１１及び３１２の出力クロック信号に同期し、クロック信号ＣＬＫ１がローレベルになると、入力信号Ｄの論理反転信号を出力し、クロック信号ＣＬＫ１がハイレベルになると出力がハイインピーダンス状態になる。インバータ３１３は、トライステートバッファ３２１の出力信号の論理反転信号を出力する。トライステートバッファ３２２は、インバータ３１１及び３１２の出力クロック信号に同期し、クロック信号ＣＬＫ１がハイレベルになると、インバータ３１３の出力信号の論理反転信号をインバータ３１３の入力端子に出力し、クロック信号ＣＬＫ１がローレベルになると出力がハイインピーダンス状態になる。トライステートバッファ３２３は、インバータ３１１及び３１２の出力クロック信号に同期し、クロック信号ＣＬＫ１がハイレベルになると、インバータ３１３の出力信号の論理反転信号をインバータ３１４の入力端子に出力し、クロック信号ＣＬＫ１がローレベルになると出力がハイインピーダンス状態になる。インバータ３１４は、トライステートバッファ３２３の出力信号の論理反転信号を出力信号Ｑとして出力する。トライステートバッファ３２４は、インバータ３１１及び３１２の出力クロック信号に同期し、クロック信号ＣＬＫ１がローレベルになると、インバータ３１４の出力信号Ｑの論理反転信号をインバータ３１４の入力端子に出力し、クロック信号ＣＬＫ１がハイレベルになると出力がハイインピーダンス状態になる。なお、論理和回路２０１及びインバータ３１１を含む回路３０２は、否定論理和回路３０３として構成することもできる。否定論理和回路３０３は、イネーブル信号ＥＮの論理反転信号及びクロック信号ＣＬＫの否定論理和信号を出力する。
【００２１】
以上のように、論理和回路２０１は、フリップフロップ回路３０１のセル内部に追加される。フリップフロップ回路３０１のセルは、上記のように、内部でグリッチが発生し、誤動作を引き起こす可能性がある。そのため、フリップフロップ回路３０１のセルに対して、静的タイミング解析で、クロック信号ＣＬＫの要求周波数の２倍以上の周波数のクロック信号でタイミングを満たす場合には、図２（Ａ）のフリップフロップ回路２００を図３のフリップフロップ回路に変換することができる。図２（Ａ）のフリップフロップ回路２００はクロックゲーティング回路を有さず、図３のフリップフロップ回路はクロックゲーティング回路を有する。変換は、セル名を変更するのみでよい。変換方法の詳細は、後に図１２を参照しながら説明する。
【００２２】
図３のフリップフロップ回路３０１のセル外部端子は、図２（Ａ）のフリップフロップ回路２００のものと同じであり、フリップフロップ回路３０１のセル内部には論理和回路２０１が追加される。そのため、図３のフリップフロップ回路３０１は、図２（Ａ）のフリップフロップ回路２００と同様に、静的タイミング解析及びクロックツリー合成を容易に行うことが可能である。したがって、図２（Ａ）のフリップフロップ回路２００を図３のフリップフロップ回路３０１に変換し、変換したフリップフロップ回路３０１のネットリスト設計データに対して、クロック信号ＣＬＫの周波数の２倍以上の周波数のクロック信号で静的タイミング解析を行い、その結果が合格となれば、図２（Ｃ）のように、クロック信号ＣＬＫがハイレベルの時にクロック信号ＥＮが変化することが保証され、グリッチによる問題は起きない。図３のフリップフロップ回路３０１は、図２（Ａ）のフリップフロップ回路２００に比べ、消費電力を低減し、かつグリッチによる誤動作を防止することができる。
【００２３】
図４は、図３のフリップフロップ回路３０１の構成例を示す回路図であり、図３の論理和回路２０１及びインバータ３１１を否定論理和回路３０３として構成した例を示す。以下、電界効果トランジスタを単にトランジスタという。ｐチャネルトランジスタ４０１は、ソースが電源電位ノードに接続され、ゲートがイネーブル信号ＥＮのノードに接続される。ｎチャネルトランジスタ４０２は、ドレインがｐチャネルトランジスタ４０１のドレインに接続され、ゲートがイネーブル信号ＥＮのノードに接続され、ソースが基準電位ノード（グランド電位ノード）に接続される。ｐチャネルトランジスタ４０３は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４０１のドレインに接続される。ｐチャネルトランジスタ４０５は、ソースがｐチャネルトランジスタ４０３のドレインに接続され、ゲートがクロック信号ＣＬＫのノードに接続される。ｎチャネルトランジスタ４０６は、ドレインがｐチャネルトランジスタ４０５のドレインに接続され、ゲートがクロック信号ＣＬＫのノードに接続され、ソースが基準電位ノードに接続される。ｎチャネルトランジスタ４０４は、ドレインがｐチャネルトランジスタ４０５のドレインに接続され、ゲートがｐチャネルトランジスタ４０１のドレインに接続され、ソースが基準電位ノードに接続される。ｐチャネルトランジスタ４０７は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４０５のドレインに接続される。ｎチャネルトランジスタ４０８は、ドレインがｐチャネルトランジスタ４０７のドレインに接続され、ゲートがｐチャネルトランジスタ４０５のドレインに接続され、ソースが基準電位ノードに接続される。
【００２４】
ｐチャネルトランジスタ４０９は、ソースが電源電位ノードに接続され、ゲートが入力信号Ｄのノードに接続される。ｐチャネルトランジスタ４１０は、ソースがｐチャネルトランジスタ４０９のドレインに接続され、ゲートがｐチャネルトランジスタ４０７のドレインに接続される。ｎチャネルトランジスタ４１１は、ドレインがｐチャネルトランジスタ４１０のドレインに接続され、ゲートがｐチャネルトランジスタ４０５のドレインに接続される。ｎチャネルトランジスタ４１２は、ドレインがｎチャネルトランジスタ４１１のソースに接続され、ゲートが入力信号Ｄのノードに接続され、ソースが基準電位ノードに接続される。
【００２５】
ｐチャネルトランジスタ４１３は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４１７のドレインに接続される。ｐチャネルトランジスタ４１４は、ソースがｐチャネルトランジスタ４１３のドレインに接続され、ゲートがｐチャネルトランジスタ４０５のドレインに接続され、ドレインがｐチャネルトランジスタ４１０のドレインに接続される。ｎチャネルトランジスタ４１５は、ドレインがｐチャネルトランジスタ４１４のドレインに接続され、ゲートがｐチャネルトランジスタ４０７のドレインに接続される。ｎチャネルトランジスタ４１６は、ドレインがｎチャネルトランジスタ４１５のソースに接続され、ゲートがｐチャネルトランジスタ４１７のドレインに接続され、ソースが基準電位ノードに接続される。
【００２６】
ｐチャネルトランジスタ４１７は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４１４のドレインに接続される。ｎチャネルトランジスタ４１８は、ドレインがｐチャネルトランジスタ４１７のドレインに接続され、ゲートがｐチャネルトランジスタ４１４のドレインに接続され、ソースが基準電位ノードに接続される。
【００２７】
ｐチャネルトランジスタ４１９は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４２５のドレインに接続される。ｐチャネルトランジスタ４２０は、ソースがｐチャネルトランジスタ４１９のドレインに接続され、ゲートがｐチャネルトランジスタ４０７のドレインに接続され、ドレインがｐチャネルトランジスタ４２２のドレインに接続される。ｎチャネルトランジスタ４２１は、ドレインがｐチャネルトランジスタ４２０のドレインに接続され、ゲートがｐチャネルトランジスタ４０７のドレインに接続され、ソースがｐチャネルトランジスタ４１７のドレインに接続される。ｐチャネルトランジスタ４２２は、ソースがｎチャネルトランジスタ４２１のソースに接続され、ゲートがｐチャネルトランジスタ４０５のドレインに接続される。ｎチャネルトランジスタ４２３は、ドレインがｐチャネルトランジスタ４２２のドレインに接続され、ゲートがｐチャネルトランジスタ４０５のドレインに接続される。ｎチャネルトランジスタ４２４は、ドレインがｎチャネルトランジスタ４２３のソースに接続され、ゲートがｐチャネルトランジスタ４２５のドレインに接続され、ソースが基準電位ノードに接続される。
【００２８】
ｐチャネルトランジスタ４２５は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４２０のドレインに接続される。ｎチャネルトランジスタ４２６は、ドレインがｐチャネルトランジスタ４２５のドレインに接続され、ゲートがｐチャネルトランジスタ４２０のドレインに接続され、ソースが基準電位ノードに接続される。
【００２９】
ｐチャネルトランジスタ４２７は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４２５のドレインに接続され、ドレインが出力信号Ｑのノードに接続される。ｎチャネルトランジスタ４２８は、ドレインがｐチャネルトランジスタ４２７のドレインに接続され、ゲートがｐチャネルトランジスタ４２５のドレインに接続され、ソースが基準電位ノードに接続される。
【００３０】
ここで、トランジスタ４０１〜４０６は、図３の否定論理和回路３０３に対応する。トランジスタ４０７及び４０８は、図３のインバータ３１２に対応する。トランジスタ４０１及び４０２は、インバータとして機能する。ｐチャネルトランジスタ４０３は、イネーブル信号ＥＮがハイレベルのときにオンする。ｎチャネルトランジスタ４０４は、イネーブル信号ＥＮがローレベルのときにオンする。
【００３１】
トランジスタ４０５〜４２８は図３のフリップフロップ回路２０２と同じ回路であり、トランジスタ４０５及び４０６が図３のインバータ３１１に対応し、トランジスタ４０７及び４０８が図３のインバータ３１２に対応する。したがって、図３のフリップフロップ回路３０１は、フリップフロップ回路２０２に対して、４個のトランジスタ４０１〜４０４を追加しただけである。このフリップフロップ回路３０１により、イネーブル信号ＥＮがローレベルのときにはクロック信号ＣＬＫを停止させることができるので、消費電力を低減することができる。
【００３２】
図５は、図２（Ａ）のイネーブル信号入力ありのフリップフロップ回路２００の構成例を示す回路図である。図５のフリップフロップ回路は、図４のフリップフロップ回路に対して、４個のトランジスタ４０１〜４０４を削除し、８個のトランジスタ５０１〜５０８を追加したものである。すなわち、図４のフリップフロップ回路は、図５のフリップフロップ回路に対して、トランジスタ数を４個削減することができる。本実施形態は、図５のフリップフロップ回路（図２（Ａ）のフリップフロップ回路２００）に対して、クロック信号ＣＬＫの周波数の２倍以上の周波数のクロック信号で静的タイミング解析を行い、その結果が合格であるときには、図５のフリップフロップ回路（図２（Ａ）のフリップフロップ回路２００）を図４のフリップフロップ回路に変換する。この変換によりトランジスタ数を４個削減することができる。変換後の図４のフリップフロップ回路は、変換前の図５のフリップフロップ回路に対して、小型化かつ低消費電力の効果を得ることができる。
【００３３】
図５において、ｐチャネルトランジスタ５０１は、ソースが電源電位ノードに接続され、ゲートがイネーブル信号ＥＮのノードに接続される。ｎチャネルトランジスタ５０２は、ドレインがｐチャネルトランジスタ５０１のドレインに接続され、ゲートがイネーブル信号ＥＮのノードに接続され、ソースが基準電位ノードに接続される。ｐチャネルトランジスタ５０３は、ソースが基準電位ノードに接続され、ゲートがｐチャネルトランジスタ５０１のドレインに接続され、ドレインがｐチャネルトランジスタ４０９のソースに接続される。ｎチャネルトランジスタ５０４は、ドレインがｎチャネルトランジスタ４１２のソースに接続され、ゲートがイネーブル信号ＥＮのノードに接続され、ソースが基準電位ノードに接続される。ｐチャネルトランジスタ５０５は、ソースが電源電位ノードに接続され、ゲートがイネーブル信号ＥＮのノードに接続される。ｐチャネルトランジスタ５０６は、ソースがｐチャネルトランジスタ５０５のドレインに接続され、ゲートがｐチャネルトランジスタ４２０のドレインに接続され、ドレインがｐチャネルトランジスタ４１０のソースに接続される。ｎチャネルトランジスタ５０７は、ドレインがｎチャネルトランジスタ４１１のソースに接続され、ゲートがｐチャネルトランジスタ４２０のドレインに接続される。ｎチャネルトランジスタ５０８は、ドレインがｎチャネルトランジスタ５０７のソースに接続され、ゲートがｐチャネルトランジスタ５０１のドレインに接続され、ソースが基準電位ノードに接続される。
【００３４】
図６は、図３のフリップフロップ回路３０１の構成例を示す回路図であり、図３の論理和回路２０１及びインバータ３１１を用いて構成した例を示す。論理和回路２０１は図３の論理和回路２０１に対応し、フリップフロップ回路２０２は図３のフリップフロップ回路２０２に対応する。
【００３５】
論理和回路２０１は、８個のトランジスタ６０１〜６０８を有する。ｐチャネルトランジスタ６０１は、ソースが電源電位ノードに接続され、ゲートがイネーブル信号ＥＮのノードに接続される。ｎチャネルトランジスタ６０２は、ドレインがｐチャネルトランジスタ６０１のドレインに接続され、ゲートがイネーブル信号ＥＮのノードに接続され、ソースが基準電位ノードに接続される。ｐチャネルトランジスタ６０３は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ６０１のドレインに接続される。ｐチャネルトランジスタ６０４は、ソースがｐチャネルトランジスタ６０３のドレインに接続され、ゲートがクロック信号ＣＬＫのノードに接続される。ｎチャネルトランジスタ６０５は、ドレインがｐチャネルトランジスタ６０４のドレインに接続され、ゲートがクロック信号ＣＬＫのノードに接続され、ソースが基準電位ノードに接続される。ｎチャネルトランジスタ６０６は、ドレインがｐチャネルトランジスタ６０４のドレインに接続され、ゲートがｐチャネルトランジスタ６０１のドレインに接続され、ソースが基準電位ノードに接続される。ｐチャネルトランジスタ６０７は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ６０４のドレインに接続され、ドレインがトランジスタ４０５及び４０６のゲートに接続される。ｎチャネルトランジスタ６０８は、ドレインがｐチャネルトランジスタ６０７のドレインに接続され、ゲートがｐチャネルトランジスタ６０４のドレインに接続され、ソースが基準電位ノードに接続される。
【００３６】
フリップフロップ回路２０２は、図４と同様に、トランジスタ４０５〜４２８を有する。トランジスタ４０５及び４０６は図３のインバータ３１１に対応し、トランジスタ４０７及び４０８は図３のインバータ３１２に対応する。
【００３７】
図３のフリップフロップ回路３０１は、図４のフリップフロップ回路３０１の構成又は図６のフリップフロップ回路３０１の構成で実現することができる。ただし、図４のフリップフロップ回路３０１は、図６のフリップフロップ回路３０１に対して、トランジスタ数を４個削減することができるので、より好ましい。
【００３８】
図７は、スキャンテスト機能ありのフリップフロップ回路の一部の構成例を示す回路図であり、図４のフリップフロップ回路３０１にスキャンテスト機能を付加したものである。スキャンテストモードではスキャンテストモード信号ＳＣＡＮがハイレベルになり、それ以外のモードではスキャンテストモード信号ＳＣＡＮがローレベルになる。スキャンテストモード信号ＳＣＡＮがハイレベルになると、クロック信号ＣＬＫが有効状態になり、フリップフロップ回路３０１のスキャンテストを行うことができる。
【００３９】
図７のフリップフロップ回路３０１は、図４のフリップフロップ回路３０１に対して、２個のトランジスタ７０１及び７０２を追加したものである。以下、図７の回路が図４の回路と異なる点を説明する。ｐチャネルトランジスタ７０１は、ソースが電源電位ノードに接続され、ゲートがスキャンテストモード信号ＳＣＡＮのノードに接続され、ドレインがｐチャネルトランジスタ４０１のソースに接続される。ｎチャネルトランジスタ７０２は、ドレインがｐチャネルトランジスタ４０１のドレインに接続され、ゲートがスキャンテストモード信号ＳＣＡＮのノードに接続され、ソースが基準電位ノードに接続される。
【００４０】
ｐチャネルトランジスタ４０３は、スキャンテストモード信号ＳＣＡＮがハイレベル又はイネーブル信号ＥＮがハイレベルのときにオンになる。ｎチャネルトランジスタ４０４は、スキャンテストモード信号ＳＣＡＮがローレベルかつイネーブル信号ＥＮがローレベルのときにオンになる。すなわち、スキャンテストモード信号ＳＣＡＮ又はイネーブル信号ＥＮがハイレベルになると、クロック信号ＣＬＫが有効状態になり、スキャンテストモード信号ＳＣＡＮ及びイネーブル信号ＥＮがローレベルになるとクロック信号ＣＬＫが停止状態になる。図７のフリップフロップ回路３０１は、図４のフリップフロップ回路３０１よりトランジスタ数が２個増加し、図５のフリップフロップ回路よりトランジスタが２個減少する。
【００４１】
（第２の実施形態）
図８（Ａ）〜（Ｄ）は、本発明の第２の実施形態によるイネーブル信号入力なしのフリップフロップ回路の例を示す図である。図８（Ａ）は、イネーブル信号入力なしのフリップフロップ回路８０１を示す。フリップフロップ回路８０１は、入力信号Ｄ及びクロック信号ＣＬＫを入力し、出力信号Ｑを出力する。本実施形態では、図８（Ａ）の回路を図８（Ｂ）の回路に変換する。
【００４２】
図８（Ｂ）の回路は、図８（Ａ）の回路と同じ論理動作を行う。図８（Ｂ）のイネーブル信号入力なしのフリップフロップ回路は、排他的論理和回路８１１、論理和回路８１２及びイネーブル信号入力なしのフリップフロップ回路２０２を有する。排他的論理和回路８１１は、入力信号Ｄ及び出力信号Ｑの排他的論理和信号ＤＴを出力する。論理和回路８１２は、クロック信号ＣＬＫ及び信号ＤＴの論理和をクロック信号ＣＬＫ１として出力する。図８（Ｃ）及び（Ｄ）に示すように、排他的論理和回路８１１及び論理和回路８１２は、クロックゲーティング回路として機能する。フリップフロップ回路２０２は、図８（Ａ）のフリップフロップ回路８０１と同じ構成を有し、クロック信号ＣＬＫ１をクロック端子に入力し、入力信号Ｄを入力端子に入力し、出力端子から出力信号Ｑを出力する。フリップフロップ回路２０２は、クロック信号ＣＬＫ１の立ち上がりエッジに同期して入力信号Ｄを保持し、保持した信号を出力信号Ｑとして排他的論理和回路８１１に出力する。クロックゲーティング回路を設けることにより、入力信号Ｄの変化時のみクロック信号ＣＬＫ１を有効にし、入力信号Ｄが変化しない時にはクロック信号ＣＬＫを停止させることができる。これにより、図８（Ｂ）の回路は図８（Ａ）の回路に比べて消費電力を低減することができる。
【００４３】
図８（Ｃ）はクロック信号ＣＬＫがハイレベルのときに入力信号Ｄが変化する場合のタイミングチャートであり、図８（Ｄ）はクロック信号ＣＬＫがローレベルのときに入力信号Ｄが変化する場合のタイミングチャートである。いずれの場合も、クロック信号ＣＬＫ１の立ち上がりエッジは、クロック信号ＣＬＫの立ち上がりエッジと同じタイミングであるため、クロック信号ＣＬＫ１に誤動作の原因となるグリッチが発生しない。具体的には、図８（Ｄ）では、クロック信号ＣＬＫ１のパルス幅が狭くなるが、出力信号Ｑが直接、排他的論理和回路８１１に入力されるため、出力信号Ｑは入力信号Ｄに対して遅延量が小さく、クロック信号ＣＬＫがローレベルの時に出力信号Ｑが変化することはない。これにより、排他的論理和回路８１１の出力信号ＤＴは、クロック信号ＣＬＫがローレベルのときに立ち下がることはない。そのため、クロック信号ＣＬＫ１の立ち上がりエッジは、クロック信号ＣＬＫの立ち上がりエッジと同じタイミングになり、図８（Ｂ）のフリップフロップ回路の正常動作が保証される。
【００４４】
図９は、図８（Ｂ）のフリップフロップ回路の構成例を示す概念図である。フリップフロップ回路９０１のセルは、排他的論理和回路８１１及び論理和回路８１２のクロックゲーティング回路を内蔵する。イネーブル信号入力なしのフリップフロップ回路９０１は、図８（Ｂ）と同様に、排他的論理和回路８１１、論理和回路８１２及びイネーブル信号入力なしのフリップフロップ回路２０２を有する。フリップフロップ回路２０２は、図３のフリップフロップ回路２０２と同じ構成を有する。排他的論理和回路８１１及び論理和回路８１２のクロックゲーティング回路は、フリップフロップ回路９０１のセル内部に追加される。図９のフリップフロップ回路９０１は、上記のようにグリッチの問題が生じないため、図８（Ａ）のフリップフロップ回路８０１を図９のフリップフロップ回路９０１に変換することができる。図８（Ａ）のフリップフロップ回路８０１はクロックゲーティング回路を有さず、図９のフリップフロップ回路９０１はクロックゲーティング回路を有する。変換は、セル名を変更するのみでよい。変換方法の詳細は、後に図１２を参照しながら説明する。なお、論理和回路８１２及びインバータ３１１を含む回路９０２は、否定論理和回路９０３として構成することもできる。
【００４５】
図９のフリップフロップ回路９０１のセル外部端子は、図８（Ａ）のフリップフロップ回路８０１のものと同じであり、フリップフロップ回路９０１のセル内部には排他的論理和回路８１１及び論理和回路８１２が追加される。そのため、図９のフリップフロップ回路９０１は、図８（Ａ）のフリップフロップ回路８０１と同様に、静的タイミング解析及びクロックツリー合成を容易に行うことが可能である。したがって、図８（Ａ）のフリップフロップ回路８０１を図９のフリップフロップ回路９０１に変換し、変換したフリップフロップ回路９０１のネットリスト設計データに対して、クロック信号ＣＬＫの周波数と同じ周波数のクロック信号で静的タイミング解析を行い、その結果が合格であれば、図９のフリップフロップ回路９０１の正常動作が保証される。図９のフリップフロップ回路９０１は、図８（Ａ）のフリップフロップ回路８０１に比べ、消費電力を低減することができる。
【００４６】
図１０は、図９のフリップフロップ回路９０１の構成例を示す回路図であり、図９の論理和回路８１２及びインバータ３１１を否定論理和回路９０３として構成した例を示す。トランジスタ１００１〜１００８は図９の排他的論理和回路８１１に対応し、トランジスタ１００９，４０５，４０６，１０１０は図９の否定論理和回路９０３に対応する。図１０の回路は、図６のフリップフロップ回路２０２に対して、１０個のトランジスタ１００１〜１０１０を追加したものである。以下、図１０の回路が図６のフリップフロップ回路２０２と異なる点を説明する。
【００４７】
ｐチャネルトランジスタ１００１は、ソースが電源電位ノードに接続され、ゲートが出力信号Ｑのノードに接続される。ｐチャネルトランジスタ１００２は、ソースがｐチャネルトランジスタ１００１のドレインに接続され、ゲートが入力信号Ｄのノードに接続される。ｐチャネルトランジスタ１００３は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ４２５のドレインに接続される。ｐチャネルトランジスタ１００４は、ソースがｐチャネルトランジスタ１００３のドレインに接続され、ゲートがｐチャネルトランジスタ４０９のドレインに接続され、ドレインがｐチャネルトランジスタ１００２のドレインに接続される。ｎチャネルトランジスタ１００５は、ドレインがｐチャネルトランジスタ１００２のドレインに接続され、ゲートがｐチャネルトランジスタ４０９のドレインに接続される。ｎチャネルトランジスタ１００６は、ドレインがｎチャネルトランジスタ１００５のソースに接続され、ゲートが出力信号Ｑのノードに接続され、ソースが基準電位ノードに接続される。ｎチャネルトランジスタ１００７は、ドレインがｐチャネルトランジスタ１００２のドレインに接続され、ゲートが入力信号Ｄのノードに接続される。ｎチャネルトランジスタ１００８は、ドレインがｎチャネルトランジスタ１００７のソースに接続され、ゲートがｐチャネルトランジスタ４２５のドレインに接続され、ソースが基準電位ノードに接続される。ｐチャネルトランジスタ１００９は、ソースが電源電位ノードに接続され、ゲートがｐチャネルトランジスタ１００２のドレインに接続され、ドレインがｐチャネルトランジスタ４０５のソースに接続される。ｎチャネルトランジスタ１０１０は、ドレインがｐチャネルトランジスタ４０５のドレインに接続され、ゲートがｐチャネルトランジスタ１００２のドレインに接続され、ソースが基準電位ノードに接続される。
【００４８】
本実施形態では、図８（Ａ）のフリップフロップ回路８０１を図１０のフリップフロップ回路に変換する。図８（Ａ）のフリップフロップ回路８０１は、図６のフリップフロップ回路２０２と同じ構成を有し、クロックゲーティング回路を有しない。図１０のフリップフロップ回路は、上記のようにクロックゲーティング回路を有する。図１０のフリップフロップ回路は、図８（Ａ）のフリップフロップ回路８０１（図６のフリップフロップ回路２０２）に対して、１０個のトランジスタ１００１〜１０１０が増加し、面積が増加する。したがって、レイアウトの空き領域の面積が閾値以上であれば、図８（Ａ）のフリップフロップ回路８０１を図１０のフリップフロップ回路に変換することができる。図１０のフリップフロップ回路は、入力信号Ｄが変化した時のみクロック信号ＣＬＫが有効に動作し、入力信号Ｄが変化しない時にはクロック信号ＣＬＫが停止するため、図８（Ａ）のフリップフロップ回路８０１よりもかなりの低消費電力化が望める。
【００４９】
また、本実施形態も、図７の回路と同様に、図１０のフリップフロップ回路に２個のトランジスタを追加することにより、スキャンテスト機能ありのフリップフロップ回路を構成することができる。スキャンテスト機能ありのフリップフロップ回路は、図８（Ａ）のフリップフロップ回路８０１に対して、トランジスタ数が１２個増加する。
【００５０】
（第３の実施形態）
図１１は、本発明の第３の実施形態による設計装置を構成するコンピュータのハードウェア構成例を示すブロック図である。この設計装置は、ＣＡＤ（computer-aided design）により、フリップフロップ回路等の設計データを生成することができ、第１及び第２の実施形態のフリップフロップ回路を設計することができる。
【００５１】
バス１１０１には、中央処理装置（ＣＰＵ）１１０２、ＲＯＭ１１０３、ＲＡＭ１１０４、ネットワークインタフェース１１０５、入力装置１１０６、出力装置１１０７及び外部記憶装置１１０８が接続されている。
【００５２】
ＣＰＵ１１０２は、データの処理及び演算を行うと共に、バス１１０１を介して接続された上記の構成ユニットを制御するものである。ＲＯＭ１１０３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ１１０２が実行することにより、コンピュータが起動する。外部記憶装置１１０８にコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ１１０４にコピーされ、ＣＰＵ１１０２により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後述する図１２の設計処理等を行うことができる。
【００５３】
外部記憶装置１１０８は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置１１０８は、コンピュータプログラム、設計データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
【００５４】
ネットワークインタフェース１１０５は、ネットワークに対してコンピュータプログラム及び設計データ等を入出力することができる。入力装置１１０６は、例えばキーボード及びポインティングデバイス（マウス）等であり、各種指定又は入力等を行うことができる。出力装置１１０７は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
【００５５】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５６】
図１２は、図１１の設計装置の設計方法の処理例を示すフローチャートである。設計装置は、図２（Ａ）及び図８（Ａ）のフリップフロップ回路を含む半導体回路の設計処理を行い、ＲＴＬ（レジスタトランスファレベル）設計データＤ１を生成して外部記憶装置１１０８に記憶する。次に、ステップＳ１では、設計装置（論理合成部）は、ＲＴＬ設計データＤ１を論理合成し、ネットリスト設計データＤ２及びログファイルＤ４を生成し、外部記憶装置１１０８に記憶する。次に、ステップＳ２では、設計装置は、ネットリスト設計データＤ２に対してレイアウト処理を行い、ネットリスト設計データＤ３を生成し、外部記憶装置１１０８に記憶する。次に、ステップＳ３では、設計装置（静的タイミング解析部）は、ネットリスト設計データＤ３に対して、クロック信号ＣＬＫの要求周波数（例えば５０ＭＨｚ）と同じ周波数のクロック信号で静的タイミング解析（ＳＴＡ）を行う。静的タイミング解析の結果が合格であればステップＳ６へ進み、不合格であればステップＳ２に戻る。通常であれば、静的タイミング解析の結果が合格であれば、ステップＳ１７へ進み、ＬＳＩ実装を行う。これに対し、本実施形態では、フリップフロップ回路の消費電力を低減するため、低消費電力フリップフロップ回路への変換処理１２０１を行う。ステップＳ６〜Ｓ１０は、図８（Ａ）のフリップフロップ回路８０１のセルを図９のフリップフロップ回路９０１のセルに変換する処理である。ステップＳ１１〜Ｓ１６は、図２（Ａ）のフリップフロップ回路２００のセルを図３のフリップフロップ回路３０１のセルに変換する処理である。
【００５７】
ステップＳ５では、設計装置（リスト作成部）は、ログファイルＤ４を基に、図２（Ａ）のイネーブル信号入力ありのフリップフロップ回路２００のリストＤ５を作成し、図８（Ａ）のイネーブル信号入力なしのフリップフロップ回路８０１のリストＤ６を作成し、リストＤ５及びＤ６を外部記憶装置１１０８に記憶する。
【００５８】
その後、ステップＳ６では、設計装置は、レイアウトの空き領域の面積が閾値以上であればステップＳ７へ進み、閾値未満であればステップＳ１１へ進む。ステップＳ７では、設計装置（変換部）は、リストＤ６を参照し、図８（Ａ）のフリップフロップ回路８０１のセルを図９のフリップフロップ回路９０１のセルに変換することによりネットリスト設計データＤ７を生成し、外部記憶媒体１１０８に記憶する。すなわち、設計装置（変換部）は、入力信号Ｄ及びクロック信号ＣＬＫを入力するフリップフロップ回路８０１のネットリスト設計データＤ３を入力し、フリップフロップ回路８０１をフリップフロップ回路９０１に変換したネットリスト設計データＤ７を生成する。次に、ステップＳ８では、設計装置（静的タイミング解析部）は、ネットリスト設計データＤ７に対して、クロック信号ＣＬＫの要求周波数（例えば５０ＭＨｚ）と同じ周波数のクロック信号で静的タイミング解析を行う。次に、ステップＳ９では、設計装置は、変換後のフリップフロップ回路９０１の静的タイミング解析の結果が合格の場合はステップＳ１１へ進み、不合格の場合はステップＳ１０へ進む。ステップＳ１０では、設計装置（復元部）は、リストＤ６内のフリップフロップ回路の中で、合格のものは変換後のフリップフロップ回路９０１を採用し、不合格のものは変換前のフリップフロップ回路８０１に戻してリストＤ６から削除し、ネットリスト設計データＤ７を変更する。その後、ステップＳ８の処理に戻る。すなわち、設計装置（復元部）は、ネットリスト設計データＤ７を入力し、フリップフロップ回路９０１をフリップフロップ回路８０１に戻したネットリスト設計データを生成する。
【００５９】
ステップＳ１１では、設計装置（静的タイミング解析部）は、ネットリスト設計データＤ７に対して、クロック信号ＣＬＫの要求周波数（例えば５０ＭＨｚ）の２倍以上の周波数（例えば１００ＭＨz以上の周波数）のクロック信号で静的タイミング解析を行い、ログファイルＤ８を生成して外部記憶装置１１０８に記憶する。なお、静的タイミング解析でのクロック信号の周波数は、高いほどタイミング条件が厳しくなり、静的タイミング解析の結果が不合格になる確率が高くなる。歩留まりを上げるには、静的タイミング解析でのクロック信号の周波数が低いことが好ましい。したがって、設計部（静的タイミング解析部）は、ネットリスト設計データＤ７に対して、クロック信号ＣＬＫの要求周波数の２倍の周波数（例えば１００ＭＨｚ）のクロック信号で静的タイミング解析を行うことが好ましい。
【００６０】
次に、ステップＳ１２では、設計装置（リスト作成部）は、ログファイルＤ８を基に、静的タイミング解析の結果が合格であるフリップフロップ回路のリストＤ９を作成し、外部記憶装置１１０８に記憶する。次に、ステップＳ１３では、設計装置（変換部）は、リストＤ５及びＤ９を参照し、リストＤ５内のフリップフロップ回路２００の中で、静的タイミング解析の結果が合格であるフリップフロップ回路２００のセルを図３のフリップフロップ回路３０１のセルに変換し、ネットリスト設計データＤ１０を生成して外部記憶装置１１０８に記憶する。すなわち、設計装置（変換部）は、ステップＳ１１の静的タイミング解析の結果が合格の場合には、ネットリスト設計データＤ７を入力し、フリップフロップ回路２００をフリップフロップ回路３０１に変換したネットリスト設計データＤ１０を生成する。
【００６１】
次に、ステップＳ１４では、設計装置（静的タイミング解析部）は、ネットリスト設計データＤ１０に対して、クロック信号ＣＬＫの要求周波数（例えば５０ＭＨｚ）の２倍以上の周波数（１００ＭＨｚ以上の周波数）のクロック信号で静的タイミング解析を行う。なお、この静的タイミング解析の周波数は、ステップＳ１１と同様に、クロック信号ＣＬＫの要求周波数（例えば５０ＭＨｚ）の２倍の周波数（１００ＭＨｚ）が好ましい。次に、ステップＳ１５では、設計装置は、変換後のフリップフロップ回路３０１の静的タイミング解析の結果が合格の場合はステップＳ１７へ進み、不合格の場合はステップＳ１６へ進む。ステップＳ１６では、設計装置（復元部）は、リストＤ５内のフリップフロップ回路の中で、合格のものは変換後のフリップフロップ回路３０１を採用し、不合格のものは変換前のフリップフロップ回路２００に戻してリストＤ５から削除し、ネットリスト設計データＤ１０を変更する。その後、ステップＳ１４の処理に戻る。すなわち、設計装置（復元部）は、ネットリスト設計データＤ１０を入力し、フリップフロップ回路３０１をフリップフロップ回路２００に戻したネットリスト設計データを生成する。ステップＳ１７では、ステップＳ１４の静的タイミング解析で合格したネットリスト設計データＤ１０を基にＬＳＩ実装処理が行われる。
【００６２】
図１２の処理は一例であり、例えばレイアウト処理前のネットリスト設計データＤ２からフリップフロップ回路３０１又は９０１のセルへ変換してもよい。また、ステップＳ６〜Ｓ１０の処理とステップＳ１１〜Ｓ１６の処理の順番を入れ替えてもよいし、どちらか一方の処理しか行わなくてもよいし、対象のフリップフロップ回路すべてではなく一部のフリップフロップ回路のみ変換してもよい。
【００６３】
第１〜第３の実施形態によれば、低消費電力化できていないフリップフロップ回路２００及び／又は８０１のセルに対し、低消費電力化したフリップフロップ回路３０１及び／又は９０１のセルに変換することにより、低消費電力化が可能になる。さらに、図４の変換後のフリップフロップ回路３０１は、図５の変換前のフリップフロップ回路２００に対して面積を削減することができる。
【００６４】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６５】
１１０１  バス
１１０２  ＣＰＵ
１１０３  ＲＯＭ
１１０４  ＲＡＭ
１１０５  ネットワークインタフェース
１１０６  入力装置
１１０７  出力装置
１１０８  外部記憶装置
【図１】
2011164988.tif 000003
【図２】
2011164988.tif 000004
【図３】
2011164988.tif 000005
【図４】
2011164988.tif 000006
【図５】
2011164988.tif 000007
【図６】
2011164988.tif 000008
【図７】
2011164988.tif 000009
【図８】
2011164988.tif 000010
【図９】
2011164988.tif 000011
【図１０】
2011164988.tif 000012
【図１１】
2011164988.tif 000013
【図１２】
2011164988.tif 000014