(57)【要約】【課題】従来クロックゲーティング回路を挿入できなかった箇所にクロックゲーティング回路を挿入し、より一層の低消費電力化を図ること。【解決手段】決定部４により、クロックゲーティング回路のイネーブル信号のタイミング解析を行い、イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める。特別挿入部５により、集積回路の遅延ばらつき値が遅延ばらつき上限値以下であるときにイネーブル信号を選択し、そうでないときには、クロックゲーティング回路をクロック信号が通過する状態に固定する信号を選択するセレクタ回路と、そのセレクタ回路により選択された信号がイネーブル入力端子に入力されるクロックゲーティング回路からなる、セレクタ付きクロックゲーティング回路を挿入する。【選択図】図２
2008204152.tif 000002
【特許請求の範囲】
【請求項１】
集積回路内にクロックゲーティング回路を挿入するクロックゲーティング回路挿入方法において、
回路データおよび遅延ライブラリを読み込む読み込み工程と、
前記読み込み工程で読み込まれた前記回路データに基づいて、クロックゲーティング回路の挿入候補箇所を検出する検出工程と、
前記検出工程で検出された前記挿入候補箇所にクロックゲーティング回路を挿入し、前記読み込み工程で読み込まれた前記遅延ライブラリに基づいて、前記クロックゲーティング回路のイネーブル信号のタイミング解析を行い、該イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める決定工程と、
前記遅延ばらつき情報から得られる遅延ばらつき値が、前記決定工程で決定された前記遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力し、一方、前記遅延ばらつき値が前記遅延ばらつき上限値を超えるときに、クロック信号を通過させる信号を選択して出力するセレクタ回路、および該セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行うクロックゲーティング回路からなるセレクタ付きクロックゲーティング回路を、前記挿入候補箇所に挿入する特別挿入工程と、
前記クロックゲーティング回路が挿入された回路データを出力する出力工程と、
を含むことを特徴とするクロックゲーティング回路挿入方法。
【請求項２】
前記遅延ばらつき上限値が規定値以上である場合、前記特別挿入工程を行うことを特徴とする請求項１に記載のクロックゲーティング回路挿入方法。
【請求項３】
前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件と同じかそれよりも大きい場合、前記特別挿入工程を省略し、前記出力工程を行う前に、前記挿入候補箇所にクロックゲーティング回路のみを挿入する通常挿入工程を行うことを特徴とする請求項１に記載のクロックゲーティング回路挿入方法。
【請求項４】
前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件よりも小さい場合、前記特別挿入工程を行うことを特徴とする請求項１または２に記載のクロックゲーティング回路挿入方法。
【請求項５】
前記集積回路の遅延ばらつき値が、遅延ばらつきの程度が段階的に異なる複数の遅延レベルで表され、前記遅延ばらつき上限値は、複数の遅延レベルの中から、前記イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値で表されることを特徴とする請求項１に記載のクロックゲーティング回路挿入方法。
【請求項６】
集積回路内にクロックゲーティング回路を挿入するためのクロックゲーティング回路挿入プログラムにおいて、
回路データおよび遅延ライブラリを読み込む読み込み工程と、
前記読み込み工程で読み込まれた前記回路データに基づいてクロックゲーティング回路の挿入に適する箇所を検出する検出工程と、
前記読み込み工程で読み込まれた前記回路データに基づいて、クロックゲーティング回路の挿入候補箇所として検出する検出工程と、
前記検出工程で検出された前記挿入候補箇所にクロックゲーティング回路を挿入し、前記読み込み工程で読み込まれた前記遅延ライブラリに基づいて、前記クロックゲーティング回路のイネーブル信号のタイミング解析を行い、該イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める決定工程と、
前記遅延ばらつき情報から得られる遅延ばらつき値が、前記決定工程で決定された前記遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力し、一方、前記遅延ばらつき値が前記遅延ばらつき上限値を超えるときに、クロック信号を通過させる信号を選択して出力するセレクタ回路、および該セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行うクロックゲーティング回路からなるセレクタ付きクロックゲーティング回路を、前記挿入候補箇所に挿入する特別挿入工程と、
をコンピュータに実行させるクロックゲーティング回路挿入プログラム。
【請求項７】
前記遅延ばらつき上限値が規定値よりも小さい場合、前記特別挿入工程を省略し、
前記遅延ばらつき上限値が規定値以上である場合、前記特別挿入工程を行うことを特徴とする請求項６に記載のクロックゲーティング回路挿入プログラム。
【請求項８】
前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件と同じかそれよりも大きい場合、前記特別挿入工程を省略し、前記出力工程を行う前に、前記挿入候補箇所にクロックゲーティング回路のみを挿入する通常挿入工程を行うことを特徴とする請求項６に記載のクロックゲーティング回路挿入プログラム。
【請求項９】
前記集積回路の遅延ばらつき値が、遅延ばらつきの程度が段階的に異なる複数の遅延レベルで表され、前記遅延ばらつき上限値は、複数の遅延レベルの中から、前記イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値で表されることを特徴とする請求項６に記載のクロックゲーティング回路挿入プログラム。
【請求項１０】
集積回路内にクロックゲーティング回路を挿入するのを支援する設計支援装置において、
回路データおよび遅延ライブラリを読み込む読込手段と、
前記読込手段で読み込まれた前記回路データに基づいて、クロックゲーティング回路の挿入候補箇所を検出する検出手段と、
前記検出手段で検出された前記挿入候補箇所にクロックゲーティング回路を挿入し、前記読込手段で読み込まれた前記遅延ライブラリに基づいて、前記クロックゲーティング回路のイネーブル信号のタイミング解析を行い、該イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める決定手段と、
前記遅延ばらつき情報から得られる遅延ばらつき値が前記遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力し、一方、前記遅延ばらつき値が前記遅延ばらつき上限値を超えるときに、クロック信号を通過させる信号を選択して出力するセレクタ回路、および該セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行うクロックゲーティング回路からなるセレクタ付きクロックゲーティング回路を、前記挿入候補箇所に挿入する特別挿入手段と、
前記クロックゲーティング回路が挿入された回路データを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路の設計時に、製造ばらつきによる素子遅延のばらつきを考慮して集積回路内にクロックゲーティング回路を挿入するクロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路の消費電力を削減するために、半導体集積回路の設計時に、クロックツリーの途中にクロックゲーティング回路を挿入することがある。クロックゲーティング回路の挿入を支援する設計支援方法として、以下のような提案がある。
【０００３】
例えば、少なくともクロックゲーティングされていない論理回路に関する情報、クロック出力を制御するためのイネーブル論理に関する情報及びゲーティング回路に関する情報を入力し、前記イネーブル論理に与えられるタイミング制約を生成し、前記イネーブル論理における遅延時間を計算し、前記計算された遅延時間が前記生成されたタイミング制約を満たしているか否かを判定し、前記遅延時間がタイミング制約を満たしている場合は、前記設計対象となる論理回路に前記ゲーティング回路と前記イネーブル論理により構成される回路とを付加してクロックゲーティングされた論理回路を生成し、前記クロックゲーティングされた論理回路に関する情報と前記イネーブル論理に関するタイミング制約とを出力することを特徴とする（例えば、特許文献１参照。）。
【０００４】
また、ゲーテッドバッファからレジスタまでの遅延時間を表わす第１のパラメータにゲーテッドバッファの遅延時間を設定するステップと、前記第１のパラメータを考慮してゲーテッドクロック部分に第１のタイミング制約を与えるステップと、前記第１のタイミング制約で拘束されるゲーテッドクロック部分を含む回路のタイミング解析を行うステップと、前記タイミング解析結果から前記ゲーテッドクロック部分が前記第１のタイミング制約を満足するかどうかを判断するステップと、前記ゲーテッドクロック部分が前記タイミング制約を満足して、前記回路に配線処理をした後のゲーテッドバッファからレジスタまでの遅延時間を表わす第２のパラメータとして、ゲーテッドバッファからこのゲーテッドバッファが駆動するレジスタセルまでの遅延時間を設定するステップと、前記第２のパラメータを考慮してゲーテッドクロック部分に第２のタイミング制約を与えるステップと、前記第２のタイミング制約で拘束されるゲーテッドクロック部分を含む回路のタイミング解析を行うステップと、前記タイミング解析結果から前記ゲーテッドクロック部分が前記第２のタイミング制約を満足するかどうかを判断するステップと、を具備することを特徴とする（例えば、特許文献２参照。）。
【０００５】
【特許文献１】特開平１０−２８３３８１号公報
【特許文献２】特開２００２−１９０５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の設計支援方法では、クロックゲーティング回路の挿入箇所が、設計時のタイミング解析でイネーブル信号のセットアップ条件を満たす箇所に限られる。そのため、論理的にクロックバッファを挿入できる箇所であっても、そのセットアップ条件を満たさずにセットアップ違反となる場合には、クロックゲーティング回路を挿入することができない。つまり、消費電力の削減を図ることができない。
【０００７】
一方、イネーブル信号のセットアップ条件を満たすように、クロックツリーの末端に近い箇所にクロックゲーティング回路を挿入することも可能である。しかし、クロックゲーティング回路の挿入箇所がクロックツリーの末端に近づくほど、消費電力の削減効果が低くなってしまう。
【０００８】
このように、従来技術では、十分な低消費電力化を図ることができないという問題点がある。ここで、イネーブル信号のセットアップ条件とは、クロックゲーティング回路がマスク対象のクロック信号の通過または遮断の制御を行うには、そのクロック信号のエッジの到達よりも前に、イネーブル信号がクロックゲーティング回路に到達している必要があるということである。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、従来クロックゲーティング回路を挿入できなかった箇所にもクロックゲーティング回路を挿入することによって、より一層の低消費電力化を図ることができるクロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明にかかるクロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置は、以下の特徴を有する。読み込み手段により、回路データおよび遅延ライブラリを読み込む。検出手段により、回路データに基づいてクロックゲーティング回路の挿入候補箇所を検出する。
【００１１】
決定手段により、挿入候補箇所にクロックゲーティング回路を挿入し、遅延ライブラリに基づいて、クロックゲーティング回路のイネーブル信号のタイミング解析を行い、イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める。特別挿入手段により、挿入候補箇所にセレクタ付きクロックゲーティング回路を挿入する。セレクタ付きクロックゲーティング回路は、セレクタ回路とクロックゲーティング回路からなる。
【００１２】
セレクタ回路は、遅延ばらつき情報から得られる遅延ばらつき値が遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力する。一方、遅延ばらつき値が遅延ばらつき上限値を超えるときには、セレクタ回路は、クロック信号を通過させる信号を選択して出力する。クロックゲーティング回路は、セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行う。出力手段により、クロックゲーティング回路が挿入された回路データを出力する。
【００１３】
この発明によれば、設計時のタイミング解析でイネーブル信号のセットアップ違反となる箇所にセレクタ付きクロックゲーティング回路が挿入される。素子遅延の小さい集積回路では、そのセレクタ付きクロックゲーティング回路のクロックゲーティング回路に、セレクタ回路によりイネーブル信号が選択されて供給される。素子遅延が小さいと、イネーブル信号がクロック信号よりも前にそのクロックゲーティング回路に到達するので、クロックゲーティング回路によりクロック信号がクロックツリーのより下流側へ伝わるのを遮断することができる。
【発明の効果】
【００１４】
本発明にかかるクロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置によれば、従来クロックゲーティング回路を挿入できなかった箇所にもクロックゲーティング回路を挿入することができるので、より一層の低消費電力化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照して、この発明にかかるクロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置の好適な実施の形態を詳細に説明する。
【００１６】
（設計支援装置のハードウェア構成）
まず、この発明の実施の形態にかかる設計支援装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる設計支援装置のハードウェア構成を示す図である。
【００１７】
図１に示すように、設計支援装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部は、バス１００によってそれぞれ接続されている。
【００１８】
ここで、ＣＰＵ１０１は、設計支援装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御に従ってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００１９】
ＦＤＤ１０６は、ＣＰＵ１０１の制御に従ってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを設計支援装置に読み取らせたりする。
【００２０】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２１】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００２２】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２３】
スキャナ１１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２４】
（設計支援装置の機能的構成）
次に、この発明の実施の形態にかかる設計支援装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる設計支援装置の機能的構成を示す図である。図２に示すように、設計支援装置は、読込部１、検出部２、選択部３、決定部４、特別挿入部５、通常挿入部６および出力部７を備えている。
【００２５】
読込部１は、未挿入回路データ１１と遅延ライブラリ１２を読み込む。未挿入回路データ１１は、クロックゲーティング回路が挿入されていない回路のデータである。検出部２は、読込部１により読み込まれた未挿入回路データ１１に基づいて、クロックゲーティング回路の挿入に適する箇所を検出する。選択部３は、検出部２により検出された、クロックゲーティング回路の挿入に適する箇所のうち、１つの箇所をクロックゲーティング回路の挿入候補箇所として選択する。
【００２６】
決定部４は、クロックゲーティング回路データ１３を取得し、選択部３により選択された挿入候補箇所にクロックゲーティング回路を挿入する。そして、決定部４は、読込部１により読み込まれた遅延ライブラリ１２に基づいて、クロックゲーティング回路のイネーブル信号のタイミング解析を行い、イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める。
【００２７】
特別挿入部５は、遅延ばらつき上限値データ１４を取得し、後述する第１の条件と第２の条件をともに満たす場合に、セレクタ付きクロックゲーティング回路データ１５を取得し、選択部３により選択された挿入候補箇所にセレクタ付きクロックゲーティング回路を挿入する。前記第１の条件は、遅延ばらつき上限値が規定値以上になっていることである。
【００２８】
これは、遅延ばらつき上限値が規定値よりも小さい場合には、クロックゲーティング回路を挿入しても、十分な消費電力の削減効果が得られないからである。従って、前記第１の条件を満たさない場合には、当該挿入候補箇所には、クロックゲーティング回路が挿入されない。
【００２９】
第２の条件は、遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件よりも小さいことである。これは、遅延ばらつき上限値が、その通常のセットアップタイミング解析における遅延ばらつき条件以上であれば、常にイネーブル信号がセットアップ条件を満たすことになるので、セレクタ回路を設ける必要がないからである。
【００３０】
従って、前記第２の条件を満たさない場合には、通常挿入部６により、通常のクロックゲーティング回路、すなわちセレクタ回路が付いていないクロックゲーティング回路が当該挿入候補箇所に挿入される。図３に、セレクタ付きクロックゲーティング回路の構成を示す。
【００３１】
図３に示すように、セレクタ付きクロックゲーティング回路は、クロックゲーティング回路２１のイネーブル入力端子に、セレクタ回路２２の出力端子を接続した構成となっている。セレクタ回路２２は、各入力端子に次の信号が入力されるように、接続される。制御入力端子には、遅延ばらつき値が遅延ばらつき上限値以下であるか否かを示す制御信号が入力される。
【００３２】
遅延ばらつき値が遅延ばらつき上限値以下である場合に選択される側（図３のＹ側）の入力端子には、イネーブル信号が入力される。遅延ばらつき値が遅延ばらつき上限値よりも大きい場合に選択される側（図３のＮ側）の入力端子には、クロックゲーティング回路２１をクロック信号が通過する状態に固定する信号が入力される。
【００３３】
ここで、製造後の集積回路において、遅延ばらつき値は、集積回路の遅延ばらつき情報から得られる。製造後の個々の集積回路は、素子遅延の製造ばらつき情報をその集積回路内で参照するための手段を有しており、その手段により前記遅延ばらつき情報を得ることができる。その製造ばらつき情報を参照する手段は、例えば、集積回路内に遅延モニタ回路を埋め込むことにより、実現される。
【００３４】
あるいは、製造テスト時の遅延試験などで得られる遅延ばらつき情報を、ヒューズ等により集積回路内に焼き付けたり、ＲＯＭ等の不揮発性メモリに記録しておくことによっても、実現できる。製造後の集積回路においては、遅延ばらつき値が遅延ばらつき上限値以下である場合には、セレクタ回路２２は、イネーブル信号を選択して出力し、そうでない場合には、クロック信号を通過状態に固定する信号を選択して出力する。
【００３５】
クロックゲーティング回路２１は、セレクタ回路２２の出力信号に基づいてクロック信号の通過または遮断の制御を行う。通常挿入部６は、上述したように、第１の条件を満たし、かつ第２の条件を満たさない場合に、クロックゲーティング回路データ１６を取得し、選択部３により選択された挿入候補箇所に通常のクロックゲーティング回路を挿入する。
【００３６】
通常のクロックゲーティング回路は、図３に示すクロックゲーティング回路２１と同じでものある。ただし、そのイネーブル入力端子には、イネーブル信号が入力される。出力部７は、特別挿入部５または通常挿入部６によりセレクタ付きクロックゲーティング回路または通常のクロックゲーティング回路が挿入された挿入済み回路データ１７を出力する。
【００３７】
なお、上述した読込部１、検出部２、選択部３、決定部４、特別挿入部５、通常挿入部６および出力部７は、具体的には、例えば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記録媒体に記録されたプログラムを、ＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。また、未挿入回路データ１１、遅延ライブラリ１２および挿入済み回路データ１７は、ＨＤ１０５などの記録媒体に記録される。
【００３８】
（クロックゲーティング回路挿入処理手順の全体）
次に、この発明の実施の形態にかかるクロックゲーティング回路挿入処理手順について説明する。図４は、この発明の実施の形態にかかるクロックゲーティング回路挿入処理手順の全体を示す図である。図４に示すように、クロックゲーティング回路挿入処理が開始されると、まず、読込部１により、未挿入回路データ１１と遅延ライブラリ１２を読み込む（ステップＳ１）。
【００３９】
次いで、検出部２により、ステップＳ１で読み込まれた回路データに基づいて、クロックゲーティング回路の挿入に適する箇所（挿入候補箇所）を検出する（ステップＳ２）。次いで、選択部３により、ステップＳ２で検出された挿入候補箇所の中から１つを選択する（ステップＳ３）。次いで、ステップＳ３で選択された挿入候補箇所に対するクロックゲーティング回路の挿入処理を行う（ステップＳ４）。この挿入処理の詳細な手順については、後述する。
【００４０】
ステップＳ４の挿入処理が終了した後、ステップＳ２で検出されたすべての挿入候補箇所に対してステップＳ４の挿入処理が完了したか否かを判定する（ステップＳ５）。その結果、ステップＳ４の挿入処理を行っていない挿入候補箇所が残っている場合（ステップＳ５：Ｎｏ）には、ステップＳ３に戻り、別の挿入候補箇所を１つ選択する。そして、その選択された挿入候補箇所に対するクロックゲーティング回路の挿入処理を行う（ステップＳ４）。
【００４１】
一方、ステップＳ５での判定の結果、すべての挿入候補箇所に対するステップＳ４の挿入処理が完了している場合（ステップＳ５：Ｙｅｓ）には、出力部７により、クロックゲーティング回路が挿入された挿入済み回路データ１７を出力し（ステップＳ６）、一連のクロックゲーティング回路挿入処理を終了する。
【００４２】
（挿入処理手順の概略）
図５は、この発明の実施の形態にかかるクロックゲーティング回路挿入処理における挿入処理手順の概略を示す図である。図５に示すように、決定部４により、クロックゲーティング回路データ１３を取得し、ステップＳ３で選択された挿入候補箇所にクロックゲーティング回路を挿入する。そして、ステップＳ１で読み込まれた遅延ライブラリに基づいて、クロックゲーティング回路のイネーブル信号のタイミング解析を行い、そのイネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める（ステップＳ１１）。
【００４３】
次いで、ステップＳ１１で決定された遅延ばらつき上限値が、予め設定された規定値以上であるか否かを判定する（ステップＳ１２）。判定の結果、遅延ばらつき上限値が規定値以上である場合（ステップＳ１２：Ｙｅｓ）には、さらに、遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件よりも小さいか否かを判定する（ステップＳ１３）。
【００４４】
判定の結果、遅延ばらつき上限値がその遅延ばらつき条件よりも小さい場合（ステップＳ１３：Ｙｅｓ）には、特別挿入部５により、セレクタ付きクロックゲーティング回路データ１５を取得する。そして、ステップＳ３で選択された挿入候補箇所にセレクタ付きクロックゲーティング回路を挿入し（ステップＳ１４）、一連の挿入処理を終了する。セレクタ付きクロックゲーティング回路の各端子に対する信号線の接続形態については、上述した通りである。
【００４５】
一方、ステップＳ１３での判定の結果、遅延ばらつき上限値が前記遅延ばらつき条件と同じかそれよりも大きい場合（ステップＳ１３：Ｎｏ）には、通常挿入部６により、セレクタ回路が付いていない通常のクロックゲーティング回路データ１６を取得する。そして、ステップＳ３で選択された挿入候補箇所に、その通常のクロックゲーティング回路を挿入し（ステップＳ１６）、一連の挿入処理を終了する。通常のクロックゲーティング回路の各端子に対する信号線の接続形態については、上述した通りである。
【００４６】
また、ステップＳ１２での判定の結果、遅延ばらつき上限値が規定値よりも小さい場合（ステップＳ１２：Ｎｏ）には、ステップＳ１３およびステップＳ１４を省略し、ステップＳ３で選択された挿入候補箇所に通常のクロックゲーティング回路およびセレクタ付きクロックゲーティング回路のいずれも挿入しないで（ステップＳ１５）、一連の挿入処理を終了する。
【００４７】
（挿入処理手順の具体例）
挿入処理手順の具体例について説明する。この例では、集積回路の遅延ばらつき情報から得られる前記遅延ばらつき値が、遅延ばらつきの程度が段階的に異なる複数の遅延レベルで表されるものとする。また、前記遅延ばらつき上限値が、複数の遅延レベルの中から、イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値で表されるものとする。
【００４８】
従って、この具体例では、セレクタ付きクロックゲーティング回路のセレクタ回路２２構成は、図６に示す通りとなる。すなわち、セレクタ回路２２は、その制御入力端子に、遅延レベルがｋ以下であるか否かを示す制御信号が入力されるように、接続される。ここで、ｋは、イネーブル信号のタイミング解析を行うことによって得られる値であり、イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値である。セレクタ回路２２のその他の入力端子および出力端子の接続先については、図３において説明した通りである。
【００４９】
また、この具体例では、図７に示すように、タイミング解析を行うための条件（プロセスばらつき・電圧・温度）を、遅延ばらつきの程度に応じて段階的に複数、用意する。ここでは、通常のセットアップタイミング解析に用いる条件と、それよりも遅延の小さい複数の条件である。
【００５０】
図７において、遅延レベルｎが、通常のセットアップタイミング解析に用いる条件であり、最も遅延の大きいレベルである。遅延レベル１は、最も遅延の小さいレベルである。各遅延レベルごとに遅延ライブラリが用意される。ただし、ｎは、２以上の整数である。
【００５１】
図８は、挿入処理手順の具体例を示す図である。この具体例では、図４に示すステップＳ１において、遅延レベル１から遅延レベルｎまでのすべての遅延ライブラリを読み込んでおく。そして、図８に示すように、変数ｉの値をｎに設定する（ステップＳ２１）。次いで、図４のステップＳ３で選択された挿入候補箇所にクロックゲーティング回路を挿入し、遅延レベルｉの遅延ライブラリに基づいて、クロックゲーティング回路のイネーブル信号のセットアップタイミング解析を行う（ステップＳ２２）。
【００５２】
タイミング解析の結果、セットアップ違反になるか否かを判定する（ステップＳ２３）。その判定の結果、セットアップ条件を満たす場合（ステップＳ２３：Ｎｏ）には、さらに、変数ｉの値がｎであるか否かを判定する（ステップＳ２４）。変数ｉの値がｎでない場合（ステップＳ２４：Ｎｏ）には、ステップＳ３で選択された挿入候補箇所にセレクタ付きクロックゲーティング回路を挿入し（ステップＳ２５）、一連の挿入処理を終了する。
【００５３】
一方、ステップＳ２４での判定の結果、変数ｉの値がｎに等しい場合（ステップＳ２４：Ｙｅｓ）には、ステップＳ３で選択された挿入候補箇所に通常のクロックゲーティング回路を挿入し（ステップＳ２９）、一連の挿入処理を終了する。また、ステップＳ２３での判定の結果、セットアップ違反となる場合（ステップＳ２３：Ｙｅｓ）には、変数ｉの値が１であるか否かを判定する（ステップＳ２６）。
【００５４】
変数ｉの値が１でない場合（ステップＳ２６：Ｎｏ）には、変数ｉの値を１だけ小さくし（ステップＳ２８）、ステップＳ２２に戻り、それ以降の処理を繰り返す。ステップＳ２６での判定の結果、変数ｉの値が１に等しい場合（ステップＳ２６：Ｙｅｓ）は、すべての遅延レベルでセットアップ違反となる場合である。従って、この場合には、ステップＳ３で選択された挿入候補箇所に通常のクロックゲーティング回路およびセレクタ付きクロックゲーティング回路のいずれも挿入しないで（ステップＳ２７）、一連の挿入処理を終了する。
【００５５】
ここで、特定の挿入候補箇所において、パス遅延の異なるイネーブル信号の候補が複数ある場合には、各イネーブル信号に対してセットアップタイミング解析が行われる。また、セレクタ付きクロックゲーティング回路のセレクタ回路として、多入力セレクタ回路が用いられる。そして、その多入力セレクタ回路には、各イネーブル信号と、クロックゲーティング回路をクロック信号が通過する状態に固定する信号が入力される。この場合には、ばらつきレベルの範囲に応じてイネーブル信号が切り替えられる。
【００５６】
ところで、製造後の集積回路では、集積回路の遅延ばらつき情報から得られる遅延の程度が、複数の遅延レベルのそれぞれを超えているか否かを示す信号が必要となる。従って、集積回路内に、その信号を生成する手段（以下、信号生成手段とする）を用意しておく必要がある。その信号生成手段としては、例えば、通常の論理回路や変換テーブルなどが考えられる。
【００５７】
図９は、信号生成手段の構成の一例を示す図である。図９に示すように、この信号生成手段は、遅延情報変換テーブル３１により、遅延ばらつき情報を遅延レベルに変換し、その遅延レベルをデコーダ３２によりデコードすることによって、遅延の程度が複数の遅延レベルのそれぞれを超えているか否かを示す信号を出力する構成となっている。
【００５８】
図９に示す構成では、デコーダ３２から、遅延レベルが１以下であるか否かを示す信号、遅延レベルが２以下であるか否かを示す信号、・・・、および遅延レベルがｎ以下であるか否かを示す信号が出力される。そのうち、例えば、イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値ｋの値が３である場合には、デコーダ３２の、遅延レベルが３以下であるか否かを示す信号を出力する端子が、セレクタ付きクロックゲーティング回路の前記セレクタ回路２２の制御入力端子に接続される。
【００５９】
例えば、イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値ｋの値が３である場合は、次のようになる。製造後の集積回路の遅延ばらつき情報が遅延レベル２と遅延レベル３の間に相当する値である場合、デコーダ３２の、遅延レベルが３以下であるか否かを示す信号の値が真となる。従って、セレクタ回路２２は、イネーブル信号を選択してクロックゲーティング回路２１のイネーブル入力端子に供給する。
【００６０】
一方、製造後の集積回路の遅延ばらつき情報が遅延レベル３に相当する値よりも大きい場合、デコーダ３２の、遅延レベルが３以下であるか否かを示す信号の値は、偽となる。従って、セレクタ回路２２は、クロック信号を通過状態に固定する信号を選択してクロックゲーティング回路２１のイネーブル入力端子に供給する。
【００６１】
図１０および図１２は、従来のクロックゲーティング回路の挿入箇所を説明する図であり、図１１、図１３および図１４は、実施の形態にかかるセレクタ付きクロックゲーティング回路の挿入箇所を示す図である。これらの図において、遅延情報とあるのは、セレクタ回路２２の制御入力端子に入力される、遅延レベルがｋ以下であるか否かを示す制御信号である。図１０に示すように、従来、イネーブル信号の遅延により、クロックツリー４１の上流（クロック源に近い側）にクロックゲーティング回路を挿入することができず、クロックツリー４１の下流にしかクロックゲーティング回路４２を挿入できないことがある。
【００６２】
このような場合に、実施の形態にかかるクロックゲーティング回路挿入処理を行うことによって、図１１に示すように、クロックツリー４１のより上流に、クロックゲーティング回路２１およびセレクタ回路２２からなるセレクタ付きクロックゲーティング回路を挿入することができる。また、従来、クロックゲーティング回路４２を全く挿入することができないような場合でも、実施の形態にかかるクロックゲーティング回路挿入処理を行うことによって、セレクタ付きクロックゲーティング回路を挿入することができることがある。
【００６３】
また、図１２に示すように、既にクロックツリー４１にクロックゲーティング回路４２が挿入されている場合でも、実施の形態にかかるクロックゲーティング回路挿入処理を行うことによって、クロックツリー４１のより上流に、クロックゲーティング回路２１およびセレクタ回路２２からなるセレクタ付きクロックゲーティング回路を挿入することができる。従って、セレクタ付きクロックゲーティング回路でクロック信号を遮断することによって、既設のクロックゲーティング回路４２よりも上流でクロック信号を遮断することができる。
【００６４】
さらに、図１３に示すように、従来、クロックツリー４１の下流側に異なるイネーブル信号によって動作するクロックゲーティング回路４２，４３，４４，４５が挿入される場合がある。このような場合でも、実施の形態にかかるクロックゲーティング回路挿入処理を行うことによって、図１４に示すように、クロックツリー４１のより上流に、クロックゲーティング回路２１およびセレクタ回路２２からなるセレクタ付きクロックゲーティング回路を挿入することができる。
【００６５】
この場合には、セレクタ回路２２のイネーブル入力端子には、クロックゲーティング回路４２，４３，４４，４５の各イネーブル信号Ａ、Ｂ、ＣおよびＤのアンド論理をとった信号が入力される。従って、各イネーブル信号Ａ、Ｂ、ＣおよびＤによってクロックゲーティング回路４２，４３，４４，４５のすべてにおいてクロック信号を遮断する場合、クロックツリー４１のより上流に挿入されたクロックゲーティング回路２１でクロック信号を遮断することができる。
【００６６】
以上説明したように、実施の形態によれば、クロックツリーのより上流にセレクタ付きクロックゲーティング回路を挿入することができる。それによって、従来クロックツリーの下流に配置されていたクロックゲーティング回路が不要となるので、その不要となるクロックゲーティング回路の消費電力分が減る。また、クロックツリーの、より上流に配置されるセレクタ付きクロックゲーティング回路と、従来の下流に配置されていたクロックゲーティング回路との間の部分において、クロック信号を止めることができるので、その分のスイッチング電力が減る。従って、より一層の低消費電力化を図ることができる。
【００６７】
また、図１２に示すようにゲーティング済の回路において、クロックツリーのより上流にセレクタ付きクロックゲーティング回路を挿入する場合、セレクタ付きクロックゲーティング回路を挿入することによる電力増加分よりもクロックツリーでのスイッチング電力の削減分の方が大きければ、消費電力の削減効果が得られる。例えば、従来クロックツリー全体のうちの３０％の箇所でゲーティングが可能であり、クロックゲーティング確率が９０％であるとする。
【００６８】
これに対して、実施の形態を適用することによって、さらにクロックツリー全体の２０％の部分でゲーティングが可能となり、その部分のゲーティング確率が７０％であるとする。この場合には、クロックツリーでのスイッチング電力削減効果は、約１９％（＝０．２×０．７／（１−０．３×０．９））となる。
【００６９】
一般に、素子遅延の小さい半導体チップは、素子遅延の大きいチップと比べて、リーク電流が大きいという特性を有する。そのため、集積回路の消費電力は、素子遅延の小さいチップで最悪となる。本発明では、ばらつきによる素子遅延の大きいチップはクロック信号を常時通過させるため、素子遅延の大きいチップでは従来手法と比べて消費電力が増加する。しかし、本実施の形態によれば、素子遅延が小さければクロックツリーのより上流にセレクタ付きクロックゲーティング回路を挿入することができるので、消費電力が大きくなる素子遅延の小さいチップの消費電力を効果的に削減することができる。従って、全体として、集積回路の最大消費電流値を小さくすることができる。
【００７０】
また、本実施の形態では、製造後の集積回路に、素子の遅延ばらつき情報を生成し、変換し、分配する回路などが必要となる。しかし、集積回路が通常動作しているときには、それらの回路は、ほとんど動作しない。従って、リーク電流の小さいトランジスタを用いてそれらの回路を作製すれば、それらの回路による消費電力を小さく抑えることができるので、低消費電力化の妨げにはならない。
【００７１】
以上において本発明は、上述した実施の形態に限らず、種々変更可能である。例えば、図８に示すフローチャートにおいて、変数ｉをｎから漸次、減らす代わりに、１から増やすようにしてもよい。また、本実施の形態によってクロックツリーの上流に挿入されたセレクタ付きクロックゲーティング回路でクロック信号を遮断することができないことによって回路の正常動作に影響が生じるおそれがある場合には、クロックツリーの、そのセレクタ付きクロックゲーティング回路よりも下流に、さらに通常のクロックゲーティング回路を挿入しておけばよい。
【００７２】
なお、本実施の形態で説明したクロックゲーティング回路挿入方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７３】
（付記１）集積回路内にクロックゲーティング回路を挿入するクロックゲーティング回路挿入方法において、回路データおよび遅延ライブラリを読み込む読み込み工程と、前記読み込み工程で読み込まれた前記回路データに基づいて、クロックゲーティング回路の挿入候補箇所を検出する検出工程と、前記検出工程で検出された前記挿入候補箇所にクロックゲーティング回路を挿入し、前記読み込み工程で読み込まれた前記遅延ライブラリに基づいて、前記クロックゲーティング回路のイネーブル信号のタイミング解析を行い、該イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める決定工程と、前記遅延ばらつき情報から得られる遅延ばらつき値が、前記決定工程で決定された前記遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力し、一方、前記遅延ばらつき値が前記遅延ばらつき上限値を超えるときに、クロック信号を通過させる信号を選択して出力するセレクタ回路、および該セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行うクロックゲーティング回路からなるセレクタ付きクロックゲーティング回路を、前記挿入候補箇所に挿入する特別挿入工程と、前記クロックゲーティング回路が挿入された回路データを出力する出力工程と、を含むことを特徴とするクロックゲーティング回路挿入方法。
【００７４】
（付記２）前記遅延ばらつき上限値が規定値よりも小さい場合、前記特別挿入工程を省略することを特徴とする付記１に記載のクロックゲーティング回路挿入方法。
【００７５】
（付記３）前記遅延ばらつき上限値が規定値以上である場合、前記特別挿入工程を行うことを特徴とする付記１に記載のクロックゲーティング回路挿入方法。
【００７６】
（付記４）前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件と同じかそれよりも大きい場合、前記特別挿入工程を省略し、前記出力工程を行う前に、前記挿入候補箇所にクロックゲーティング回路のみを挿入する通常挿入工程を行うことを特徴とする付記１に記載のクロックゲーティング回路挿入方法。
【００７７】
（付記５）前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件よりも小さい場合、前記特別挿入工程を行うことを特徴とする付記１または３に記載のクロックゲーティング回路挿入方法。
【００７８】
（付記６）前記集積回路の遅延ばらつき値が、遅延ばらつきの程度が段階的に異なる複数の遅延レベルで表され、前記遅延ばらつき上限値は、複数の遅延レベルの中から、前記イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値で表されることを特徴とする付記１に記載のクロックゲーティング回路挿入方法。
【００７９】
（付記７）集積回路内にクロックゲーティング回路を挿入するためのクロックゲーティング回路挿入プログラムにおいて、回路データおよび遅延ライブラリを読み込む読み込み工程と、前記読み込み工程で読み込まれた前記回路データに基づいてクロックゲーティング回路の挿入に適する箇所を検出する検出工程と、前記読み込み工程で読み込まれた前記回路データに基づいて、クロックゲーティング回路の挿入候補箇所として検出する検出工程と、前記検出工程で検出された前記挿入候補箇所にクロックゲーティング回路を挿入し、前記読み込み工程で読み込まれた前記遅延ライブラリに基づいて、前記クロックゲーティング回路のイネーブル信号のタイミング解析を行い、該イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める決定工程と、前記遅延ばらつき情報から得られる遅延ばらつき値が、前記決定工程で決定された前記遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力し、一方、前記遅延ばらつき値が前記遅延ばらつき上限値を超えるときに、クロック信号を通過させる信号を選択して出力するセレクタ回路、および該セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行うクロックゲーティング回路からなるセレクタ付きクロックゲーティング回路を、前記挿入候補箇所に挿入する特別挿入工程と、をコンピュータに実行させるクロックゲーティング回路挿入プログラム。
【００８０】
（付記８）前記遅延ばらつき上限値が規定値よりも小さい場合、前記特別挿入工程を省略し、前記遅延ばらつき上限値が規定値以上である場合、前記特別挿入工程を行うことを特徴とする付記７に記載のクロックゲーティング回路挿入プログラム。
【００８１】
（付記９）前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件と同じかそれよりも大きい場合、前記特別挿入工程を省略し、前記出力工程を行う前に、前記挿入候補箇所にクロックゲーティング回路のみを挿入する通常挿入工程を行うことを特徴とする付記７に記載のクロックゲーティング回路挿入プログラム。
【００８２】
（付記１０）前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件よりも小さい場合、前記特別挿入工程を行うことを特徴とする付記７または８に記載のクロックゲーティング回路挿入プログラム。
【００８３】
（付記１１）前記集積回路の遅延ばらつき値が、遅延ばらつきの程度が段階的に異なる複数の遅延レベルで表され、前記遅延ばらつき上限値は、複数の遅延レベルの中から、前記イネーブル信号がセットアップ条件を満たすための遅延レベルの上限値で表されることを特徴とする付記７に記載のクロックゲーティング回路挿入プログラム。
【００８４】
（付記１２）集積回路内にクロックゲーティング回路を挿入するのを支援する設計支援装置において、回路データおよび遅延ライブラリを読み込む読込手段と、前記読込手段で読み込まれた前記回路データに基づいて、クロックゲーティング回路の挿入候補箇所を検出する検出手段と、前記検出手段で検出された前記挿入候補箇所にクロックゲーティング回路を挿入し、前記読込手段で読み込まれた前記遅延ライブラリに基づいて、前記クロックゲーティング回路のイネーブル信号のタイミング解析を行い、該イネーブル信号がセットアップ条件を満たすための遅延ばらつき上限値を決める決定手段と、前記遅延ばらつき情報から得られる遅延ばらつき値が前記遅延ばらつき上限値以下であるときにイネーブル信号を選択して出力し、一方、前記遅延ばらつき値が前記遅延ばらつき上限値を超えるときに、クロック信号を通過させる信号を選択して出力するセレクタ回路、および該セレクタ回路の出力信号に基づいてクロック信号の通過または遮断の制御を行うクロックゲーティング回路からなるセレクタ付きクロックゲーティング回路を、前記挿入候補箇所に挿入する特別挿入手段と、前記クロックゲーティング回路が挿入された回路データを出力する出力手段と、を備えることを特徴とする設計支援装置。
【００８５】
（付記１３）前記遅延ばらつき上限値が、設計時に行われる通常のセットアップタイミング解析における遅延ばらつき条件と同じかそれよりも大きい場合、前記挿入候補箇所にクロックゲーティング回路のみを挿入する通常挿入手段、をさらに備えることを特徴とする付記１２に記載の設計支援装置。
【産業上の利用可能性】
【００８６】
以上のように、本発明にかかるクロックゲーティング回路挿入方法、クロックゲーティング回路挿入プログラムおよび設計支援装置は、半導体集積回路の設計に有用であり、特に、低消費電力タイプの半導体集積回路の設計に適している。
【図面の簡単な説明】
【００８７】
【図１】この発明の実施の形態にかかる設計支援装置のハードウェア構成を示す図である。
【図２】この発明の実施の形態にかかる設計支援装置の機能的構成を示す図である。
【図３】セレクタ付きクロックゲーティング回路の構成を示す図である。
【図４】この発明の実施の形態にかかるクロックゲーティング回路挿入処理手順の全体を示す図である。
【図５】この発明の実施の形態にかかるクロックゲーティング回路挿入処理における挿入処理手順の概略を示す図である。
【図６】具体例におけるセレクタ付きクロックゲーティング回路の構成を示す図である。
【図７】具体例における素子遅延の製造ばらつきを説明する図である。
【図８】この発明の実施の形態にかかるクロックゲーティング回路挿入処理における挿入処理手順の具体例を示す図である。
【図９】具体例における信号生成手段の構成を示す図である。
【図１０】従来のクロックゲーティング回路の挿入箇所を示す図である。
【図１１】セレクタ付きクロックゲーティング回路の挿入箇所を示す図である。
【図１２】セレクタ付きクロックゲーティング回路の挿入箇所を示す図である。
【図１３】従来のクロックゲーティング回路の挿入箇所を示す図である。
【図１４】セレクタ付きクロックゲーティング回路の挿入箇所を示す図である。
【符号の説明】
【００８８】
１  読込部
２  検出部
３  選択部
４  決定部
５  特別挿入部
６  通常挿入部
７  出力部
１１  未挿入回路データ
１２  遅延ライブラリ
１４  遅延ばらつき上限値データ
１７  挿入済み回路データ
【図１】
2008204152.tif 000003
【図２】
2008204152.tif 000004
【図３】
2008204152.tif 000005
【図４】
2008204152.tif 000006
【図５】
2008204152.tif 000007
【図６】
2008204152.tif 000008
【図７】
2008204152.tif 000009
【図８】
2008204152.tif 000010
【図９】
2008204152.tif 000011
【図１０】
2008204152.tif 000012
【図１１】
2008204152.tif 000013
【図１２】
2008204152.tif 000014
【図１３】
2008204152.tif 000015
【図１４】
2008204152.tif 000016