(57)【要約】【課題】クロックゲーティング回路の配置位置に依存しない適切なクロックパスを配線し、クロックスキューの調整の容易化を図ること。【解決手段】設計支援装置４００は、第１のレイアウトデータ２００の中から選択されたクロックゲーティング回路の出力先ＦＦを特定部４０１により特定し、クロックゲーティング回路が削除されてクロックツリーが構築された第２のレイアウトデータ４１０を取得部４０２により取得し、第２のレイアウトデータ４１０内の特定されたＦＦごとに、ＦＦの出力元のクロックバッファを探索部４０５により探索し、特定されたＦＦの中から探索されたクロックバッファごとに出力先ＦＦ群を選択部４０６により選択し、ＦＦ群ごとにクロックバッファの配置位置情報を出力部４０７により出力する。【選択図】図４
2010198293.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
１または複数のクロックゲーティング回路群を含む設計対象回路の第１のレイアウトデータの中から選択された特定のクロックゲーティング回路の出力先であるデータ保持素子を特定する特定手段、
前記第１のレイアウトデータ内の前記クロックゲーティング回路群の中から少なくとも前記特定のクロックゲーティング回路が削除されてクロックツリーが構築された第２のレイアウトデータを取得する取得手段、
前記取得手段により取得された第２のレイアウトデータ内の前記特定手段により特定されたデータ保持素子ごとに、前記データ保持素子にクロックデータを出力する出力元のクロックバッファを探索する探索手段、
前記データ保持素子の中から前記探索手段により探索されたクロックバッファごとに、前記クロックバッファを出力元とするデータ保持素子群を選択する選択手段、
前記選択手段により前記データ保持素子群が選択されたクロックバッファの配置位置情報を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記コンピュータを、
前記クロックゲーティング回路群の中から少なくとも前記特定のクロックゲーティング回路を削除する削除手段、
前記削除手段により削除された削除結果に基づいてクロックツリーを構築することにより前記第２のレイアウトデータを生成する生成手段として機能させ、
前記探索手段は、
前記生成手段により生成された第２のレイアウトデータ内の前記特定手段により特定されたデータ保持素子ごとに、前記データ保持素子にクロックデータを出力する出力元のクロックバッファを探索することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記コンピュータを、
前記データ保持素子群が選択されたクロックバッファの配置位置情報に基づいて、前記特定のクロックゲーティング回路の挿入位置を決定する決定手段として機能させ、
前記出力手段は、
前記決定手段によって決定された挿入位置に関する情報を出力することを特徴とする請求項１に記載の設計支援プログラム。
【請求項４】
前記コンピュータを、
前記挿入位置に関する情報に基づいて、前記特定のクロックゲーティング回路を前記第２のレイアウトデータの前記挿入位置に挿入する挿入手段として機能させることを特徴とする請求項３に記載の設計支援プログラム。
【請求項５】
１または複数のクロックゲーティング回路群を含む設計対象回路の第１のレイアウトデータの中から選択された特定のクロックゲーティング回路の出力先であるデータ保持素子を特定する特定手段と、
前記第１のレイアウトデータ内の前記クロックゲーティング回路群の中から少なくとも前記特定のクロックゲーティング回路が削除されてクロックツリーが構築された第２のレイアウトデータを取得する取得手段と、
前記取得手段により取得された第２のレイアウトデータ内の前記特定手段により特定されたデータ保持素子ごとに、前記データ保持素子にクロックデータを出力する出力元のクロックバッファを探索する探索手段と、
前記データ保持素子の中から前記探索手段により探索されたクロックバッファごとに、前記クロックバッファを出力元とするデータ保持素子群を選択する選択手段と、
前記選択手段により前記データ保持素子群が選択されたクロックバッファの配置位置情報を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項６】
コンピュータが、
１または複数のクロックゲーティング回路群を含む設計対象回路の第１のレイアウトデータの中から選択された特定のクロックゲーティング回路の出力先であるデータ保持素子を特定する特定工程、
前記第１のレイアウトデータ内の前記クロックゲーティング回路群の中から少なくとも前記特定のクロックゲーティング回路が削除されてクロックツリーが構築された第２のレイアウトデータを取得する取得工程、
前記取得工程により取得された第２のレイアウトデータ内の前記特定工程により特定されたデータ保持素子ごとに、前記データ保持素子にクロックデータを出力する出力元のクロックバッファを探索する探索工程、
前記データ保持素子の中から前記探索工程により探索されたクロックバッファごとに、前記クロックバッファを出力元とするデータ保持素子群を選択する選択工程、
前記選択工程により前記データ保持素子群が選択されたクロックバッファの配置位置情報を出力する出力工程、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、クロックゲーティング回路を有する設計対象回路のレイアウトを支援する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路のレイアウトでは、初期配置後にクロックツリーを生成させる技術が用いられている。クロックツリーを生成させる技術は、フリップフロップやラッチのような順序回路を構成する各データ保持素子へ入力されるクロックデータのタイミングにずれが生じないようにする。具体的には、タイミングを調整するためにクロックパス上にクロックバッファが自動で挿入され、配置され、配線される。
【０００３】
一方、半導体集積回路の低消費電力化として、フリップフロップやラッチのような順序回路を構成するデータ保持素子へのクロックデータを制御する技術が知られている。クロックデータを制御する技術とは、たとえば、半導体集積回路の内部のモジュールごとに、半導体集積回路の動作に応じてデータの更新がおこなわれないモジュールの動作が停止される。クロックデータを制御する技術では、少なくとも制御信号とクロックデータを入力とするクロックゲーティング回路によりクロックデータが制御される。
【０００４】
たとえば、クロックゲーティング回路へ入力される制御信号が、クロックデータの出力を示す場合、クロックゲーティング回路はクロックデータを出力する。そして、制御信号が、クロックデータの出力を停止させることを示す場合、クロックゲーティング回路は、たとえば、０か１に固定されているデータを出力する。
【０００５】
ところが、クロックゲーティング回路を有する半導体集積回路のレイアウトでは、クロックゲーティング回路の出力と各データ保持素子のクロック入力とを接続させる配線上にクロックツリーが構築される。クロックゲーティング回路の配置位置を基準として、各データ保持素子までの配線上にクロックバッファが挿入される。
【０００６】
そして、たとえば、組合せ回路の出力データがクロックデータの供給源である場合、組合せ回路の出力とクロックゲーティング回路の入力とを接続させる配線上にクロックツリーが構築される。組合せ回路の配置位置とクロックゲーティング回路の配置位置により配線長が異なり、挿入されるクロックバッファの数が異なる。
【０００７】
したがって、クロックゲーティング回路の無い半導体集積回路に比べて挿入されるクロックバッファの数が増加する。そのため、クロックバッファの数が増加する問題点を解決するために、クロックゲーティング回路の配置位置を変更させる技術（第１の従来技術）が知られている（たとえば、下記特許文献１および２を参照。）。
【０００８】
そして、クロックバッファの数が増加することにより発生するクロックパスの配線遅延のばらつきを減少させるために、データ保持素子ごとにクロックゲーティング回路が配置される技術（第２の従来技術）が知られている（たとえば、下記特許文献３を参照。）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−７２９９５号公報
【特許文献２】特開２００５−２５９７８１号公報
【特許文献３】特開２００７−８１８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、第１の従来技術では、クロック供給元（たとえば、クロック入力端子または組合せ回路）からデータ保持素子までの全体のクロックパスの配線を短縮化している。これにより、クロックバッファの数を減少化している。しかし、クロックゲーティング回路から各データ保持素子までのクロックパスには、ばらつきが生じてクロックスキューの調整が困難であるという問題点があった。
【００１１】
たとえば、クロックゲーティング回路の出力先であるデータ保持素子の中で他のデータ保持素子と比較して離れて配置されているデータ保持素子がある場合、離れて配置されているデータ保持素子の配線遅延に基づいてクロックツリーが構築される。そのため、ゲーティング回路からデータ保持素子までのクロックバッファ数が減少するか否かが不明となる問題点があった。
【００１２】
また、第２の従来技術では、クロックゲーティング回路ごとにデータ保持素子が配置されるために、半導体集積回路の面積が大きくなるという問題点があった。
【００１３】
本開示技術は、上述した従来技術による問題点を解消するためクロックゲーティング回路の配置位置に依存しない適切なクロックパスを配線することで、クロックスキューの調整の容易化を図ることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、本開示技術は、１または複数のクロックゲーティング回路群を含む設計対象回路の第１のレイアウトデータの中から選択された特定のクロックゲーティング回路の出力先であるデータ保持素子を特定し、第１のレイアウトデータ内のクロックゲーティング回路群の中から少なくとも特定のクロックゲーティング回路が削除されてクロックツリーが構築された第２のレイアウトデータを取得し、取得された第２のレイアウトデータ内の特定されたデータ保持素子ごとに、データ保持素子にクロックデータを出力する出力元のクロックバッファを探索し、データ保持素子の中から探索されたクロックバッファごとに、クロックバッファを出力元とするデータ保持素子群を選択し、データ保持素子群が選択されたクロックバッファの配置位置情報を出力することを要件とする。
【００１５】
本開示技術によれば、クロックゲーティング回路の配置位置に依存しない適切なクロックパスが配線され、クロックパスの配線遅延のばらつきの減少化を図ることができる。
【発明の効果】
【００１６】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、クロックゲーティング回路の配置位置に依存しない適切なクロックパスを配線することで、クロックスキューの調整の容易化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】近傍のＦＦごとにクロックゲーティング回路が配置されているレイアウトデータの一例を示す説明図である。
【図２】設計対象回路の第１のレイアウトデータの一例を示す説明図である。
【図３】実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図４】設計支援装置の機能的構成を示すブロック図である。
【図５】ＧＣＢの制御信号とＧＣＢの出力先であるＦＦとのテーブルを示す説明図である。
【図６】クロックゲーティング回路が削除されたレイアウトデータの一例を示す説明図である。
【図７】クロックツリーが構築された第２のレイアウトデータの一例を示す説明図である。
【図８−１】ＦＦと出力元のクロックバッファとのテーブルを示す説明図である。
【図８−２】各クロックバッファと出力先のＦＦとのテーブルを示す説明図である。
【図９】設計支援装置４００の設計支援処理手順を示すフローチャートである。
【図１０】ＦＦの特定処理の処理手順を示すフローチャートである。
【図１１】クロックバッファの探索処理の処理手順を示すフローチャートである。
【図１２】ＧＣＢの挿入処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００１９】
（実施の形態）
本実施の形態では、設計対象回路のレイアウトデータ内のクロックゲーティング回路の出力先であるＦＦが特定される。そして、レイアウトデータからクロックゲーティング回路が削除され、クロックツリーが構築される。つぎに、クロックゲーティング回路の配置位置に依存せずにクロックツリーが構築されたレイアウトデータ内の特定されたＦＦの出力元であるクロックバッファが検索され、クロックゲーティング回路の挿入位置情報として出力される。これにより、クロックゲーティング回路から各データ保持素子までのクロックパスの配線遅延のばらつきを減少させることができる。したがって、クロックスキューの調整を容易化することができる。
【００２０】
さらに、クロックゲーティング回路の出力先のデータ保持素子が近傍に配置されている場合、挿入されるクロックゲーティング回路の数が減少される。そして、半導体集積回路の面積を縮小化することができる。
【００２１】
なお、本実施の形態では、データ保持素子としてフリップフロップ（以下、ＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）と称す。）を例に説明する。本実施の形態では、すべてのクロックゲーティング回路の出力先であるＦＦを特定して、すべてのクロックゲーティング回路が削除される例を用いて説明する。図１にてクロックツリー構築後にクロックゲーティング回路が挿入される例を示す。
【００２２】
図１は、近傍のＦＦごとにクロックゲーティング回路が配置されているレイアウトデータの一例を示す説明図である。挿入済レイアウトデータ１００では、理解の容易さのために素子および端子を回路図の表記としているが、実際には、セルおよびパッドである。なお、後述するすべてのレイアウトデータでは、挿入済レイアウトデータ１００と同様に素子および端子を回路図の表記としている。挿入済レイアウトデータ１００は、ＣＬＯＣＫ端子と、組合せ回路と、ｃｌｋｂｕｆ１〜３と、ＧＣＢ（Ｇａｔｅｄ  Ｃｌｏｃｋ  Ｂｕｆｆｅｒ）１−１と、ＧＣＢ１−２と、ＧＣＢ２−１と、ＧＣＢ２−２と、ＦＦ１〜ＦＦ６とを含む構成である。
【００２３】
ＣＬＯＣＫ端子には、クロックデータが入力される。組合せ回路には、ＣＬＯＣＫ端子から入力されたクロックデータが設計対象回路内で入力される。ｃｌｋｂｕｆ１〜３は、クロックバッファである。ｃｌｋｂｕｆ１〜３によりＦＦ１〜ＦＦ６に入力されるクロックデータのタイミングを調整するためのクロックツリーが構成されている。
【００２４】
ＧＣＢ１−１と、ＧＣＢ１−２と、ＧＣＢ２−１と、ＧＣＢ２−２は、クロックゲーティング回路である。本実施の形態では、２入力かつ１出力のＮＡＮＤ素子をクロックゲーティング回路としている。ＧＣＢ１−１によりＦＦ１とＦＦ２に入力されるクロックデータが制御される。ＦＦ１とＦＦ２は、出力元のクロックバッファが同一のクロックバッファ（ｃｌｋｂｕｆ１）である。
【００２５】
したがって、ＦＦ１とＦＦ２では、クロックツリーが構築される際に、同一のクロックバッファであっても配線遅延に影響がないと判断されている。これにより、ＦＦ１とＦＦ２のクロックデータは、ＦＦ１とＦＦ２の配置が近傍であるために同一のクロックゲーティング回路により制御されている。
【００２６】
そして、ＧＣＢ１−２によりＦＦ６に入力されるクロックデータが制御される。ＧＣＢ１−１およびＧＣＢ１−２の制御信号はＡである。ＦＦ６の出力先であるクロックバッファは、ｃｌｋｂｕｆ２である。したがって、ＦＦ６は、クロックゲーティング回路の制御信号が同一であるＦＦ１およびＦＦ２とは出力先であるクロックバッファが異なる。したがって、ＦＦ６は、ＦＦ１およびＦＦ２の配置とは離れているためにＦＦ１およびＦＦ２とは異なるクロックゲーティング回路により制御されている。
【００２７】
つぎに、ＧＣＢ２−２によりＦＦ４とＦＦ５に入力されるクロックデータが制御される。ＦＦ４とＦＦ５は、出力元のクロックバッファが同一のクロックバッファ（ｃｌｋｂｕｆ２）である。
【００２８】
したがって、ＦＦ４とＦＦ５では、クロックツリーが構築される際に、同一のクロックバッファであっても配線遅延に影響がないと判断されている。これにより、ＦＦ４とＦＦ５のクロックデータは、ＦＦ４とＦＦ５の配置が近傍であるために同一のクロックゲーティング回路により制御されている。
【００２９】
そして、ＧＣＢ２−１によりＦＦ３に入力されるクロックデータが制御される。ＧＣＢ２−１およびＧＣＢ２−２の制御信号はＢである。ＦＦ３の出力先であるクロックバッファは、ｃｌｋｂｕｆ１である。したがって、ＦＦ３の出力元であるクロックバッファは、クロックゲーティング回路の制御信号が同一であるＦＦ４およびＦＦ５の出力元であるクロックバッファとは異なる。
【００３０】
したがって、ＦＦ３は、ＦＦ４およびＦＦ５とは離れて配置されているためにＦＦ４およびＦＦ５とは異なるクロックゲーティング回路により制御されている。なお、挿入済レイアウトデータ１００は、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
【００３１】
（設計対象回路のレイアウトデータ）
図２は、設計対象回路の第１のレイアウトデータの一例を示す説明図である。第１のレイアウトデータ２００では、設計対象回路のレイアウトデータを示している。第１のレイアウトデータ２００は、ＣＬＯＣＫ端子と、組合せ回路と、ＧＣＢ１と、ＧＣＢ２と、ＦＦ１〜ＦＦ６とを含む構成である。
【００３２】
ＧＣＢ１およびＧＣＢ２は、クロックゲーティング回路である。ＧＣＢ１によりＦＦ１と、ＦＦ２と、ＦＦ６とに入力されるクロックデータが制御される。そして、ＧＣＢ２によりＦＦ３〜５に入力されるクロックデータが制御される。ＧＣＢ１の制御信号はＡである。
【００３３】
たとえば、Ａが１の場合、ＧＣＢ１はクロックデータを出力する。そして、Ａが０の場合、ＧＣＢ１は０を出力する。第１のレイアウトデータ２００では、ＦＦ１と、ＦＦ２と、ＦＦ６では、ＦＦ６の配置位置のみが離れている。ＧＣＢ１からＦＦ６までの配線が、ＧＣＢ１からＦＦ１およびＦＦ２と比較して長い配線である。
【００３４】
したがって、ＧＣＢ１から出力されるクロックデータのクロックパスには、配線遅延にばらつきがありクロックスキューの調整が困難である。たとえば、第１のレイアウトデータ２００にクロックツリーが構築される場合、ＧＣＢ１の出力からＦＦ１と、ＦＦ２と、ＦＦ６までのクロックパスにクロックツリーが構築される。
【００３５】
クロックパスの中で最大の配線遅延であるＧＣＢ１からＦＦ６までの配線遅延に基づいてＧＣＢ１からのクロックスキューが調整される。したがって、ＧＣＢ１の出力からＦＦ１と、ＦＦ２と、ＦＦ６までのクロックパス上に複数のクロックバッファが挿入される。
【００３６】
つぎに、上述したようにＧＣＢ２によりＦＦ３〜５に入力されるクロックデータが制御される。ＧＣＢ２の制御信号はＢである。たとえば、Ｂが１の場合、ＧＣＢ２はクロックデータを出力する。そして、Ｂが０の場合、ＧＣＢ２は０を出力する。
【００３７】
第１のレイアウトデータ２００では、ＦＦ３と、ＦＦ４と、ＦＦ５では、ＦＦ３の配置位置のみが離れている。ＧＣＢ２からＦＦ３までの配線が、ＧＣＢ２からＦＦ４およびＦＦ５と比較して長い配線である。
【００３８】
したがって、ＧＣＢ２から出力されるクロックデータのクロックパスには、配線遅延にばらつきがありクロックスキューの調整が困難である。たとえば、第１のレイアウトデータ２００にクロックツリーが構築される場合、ＧＣＢ２の出力からＦＦ３と、ＦＦ４と、ＦＦ５までのクロックパスにクロックツリーが構築される。
【００３９】
クロックパスの中で最大の配線遅延であるＧＣＢ２からＦＦ３までの配線遅延に基づいてＧＣＢ２からのクロックスキューが調整される。したがって、ＧＣＢ２の出力からＦＦ３と、ＦＦ４と、ＦＦ５までのクロックパス上に複数のクロックバッファが挿入される。
【００４０】
また、たとえば、第１のレイアウトデータ２００は、それぞれの素子の接続関係を示す接続情報を有している。具体的には、たとえば、ＧＣＢ１の出力とｃｌｋｂｕｆ５の入力とが接続されている情報などを有している。さらに、たとえば、第１のレイアウトデータ２００は、各素子の配置位置情報を有している。
【００４１】
そして、たとえば、第１のレイアウトデータ２００は、各素子の座標位置を有している。なお、第１のレイアウトデータ２００は、記憶装置またはアクセス可能な外部のコンピュータの記憶装置に記憶されている。
【００４２】
（設計支援装置のハードウェア構成）
図３は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図３において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００４３】
ここで、ＣＰＵ３０１は、設計支援装置の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００４４】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００４５】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４６】
Ｉ／Ｆ３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４７】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４８】
スキャナ３１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４９】
（設計支援装置の機能的構成）
つぎに、設計支援装置の機能的構成について説明する。図４は、設計支援装置の機能的構成を示すブロック図である。設計支援装置４００は、特定部４０１と、取得部４０２と、削除部４０３と、生成部４０４と、探索部４０５と、選択部４０６と、出力部４０７と、決定部４０８と、挿入部４０９と、を含む構成である。設計支援装置４００の制御部となる機能（特定部４０１〜挿入部４０９）は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、その機能を実現する。
【００５０】
まず、特定部４０１は、１または複数のクロックゲーティング回路群を含む第１のレイアウトデータ２００の中から選択された特定のクロックゲーティング回路の出力先であるＦＦを特定する。
【００５１】
具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして第１のレイアウトデータ２００の中からクロックゲーティング回路を選択する。つぎに、選択されたクロックゲーティング回路の出力先であるＦＦを、第１のレイアウトデータ２００の接続情報に基づいて特定する。なお、特定結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。図５に特定結果を示す。
【００５２】
図５は、ＧＣＢの制御信号とＧＣＢの出力先であるＦＦとのテーブルを示す説明図である。テーブル５００では、特定部４０１により特定されたＦＦを示している。テーブル５００は、ＧＣＢの制御信号名５０１と、ＦＦリスト５０２とを有している。制御信号がＡであるクロックゲーティング回路の出力先のＦＦは、ＦＦ１と、ＦＦ２と、ＦＦ６である。そして、制御信号がＢであるクロックゲーティング回路の出力先のＦＦは、ＦＦ３と、ＦＦ４と、ＦＦ５である。これにより、どのクロックゲーティング回路によりＦＦが制御されているかを特定することができる。
【００５３】
本実施の形態では、特定部４０１により設計対象回路内のすべてのクロックゲーティング回路の出力先であるＦＦを特定している。たとえば、設計者が、クロックゲーティング回路から出力先であるＦＦまでの配線にばらつきがあるか否かを把握している場合、任意のクロックゲーティング回路のみを本設計支援装置４００の対象として実施することとしてもよい。これにより、設計期間を短縮化することができる。
【００５４】
つぎに、図４に戻って、取得部４０２は、第１のレイアウトデータ２００内のクロックゲーティング回路群の中から少なくとも特定のクロックゲーティング回路が削除されてクロックツリーが構築された第２のレイアウトデータ４１０を取得する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして第２のレイアウトデータ４１０を読み出す。
【００５５】
また、取得部４０２は、削除部４０３および生成部４０４により構成されている。取得部４０２は、第１のレイアウトデータ２００内のクロックゲーティング回路群から少なくとも特定のクロックゲーティング回路を削除する。そして、クロックゲーティング回路が削除されたレイアウトデータ内にクロックツリーを構築して第２のレイアウトデータ４１０を生成する。
【００５６】
削除部４０３は、設計対象回路である第１のレイアウトデータ２００から少なくとも特定のクロックゲーティング回路を削除する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして第１のレイアウトデータ２００を読み出す。そして、第１のレイアウトデータ２００の中からクロックゲーティング回路をすべて選択する。
【００５７】
つぎに、たとえば、ＣＰＵ３０１が、選択されたクロックゲーティング回路を削除する。そして、クロックゲーティング回路の入力であるクロックパスとクロックゲーティング回路の出力であるクロックパスとを接続する。
【００５８】
なお、クロックゲーティング回路が削除されたレイアウトデータは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。本実施の形態では、すべてのクロックゲーティング回路が削除される例を用いて説明する。図６にクロックゲーティング回路が削除された例を示す。
【００５９】
図６は、クロックゲーティング回路が削除されたレイアウトデータの一例を示す説明図である。削除済レイアウトデータ６００は、ＧＣＢ１およびＧＣＢ２が削除された例を示している。削除済レイアウトデータ６００では、ＧＣＢ１が削除されてｃｌｋｂｕｆ４の出力とｃｌｋｂｕｆ５の入力とが接続される。そして、削除済レイアウトデータ６００では、ＧＣＢ２が削除されてｃｌｋｂｕｆ６の出力とｃｌｋｂｕｆ７の入力とが接続される。
【００６０】
本実施の形態では、削除部４０３により削除される対象のクロックゲーティング回路がすべてのクロックゲーティング回路として説明している。実際には、たとえば、設計者が、クロックゲーティング回路から出力先である各ＦＦまでの配線にばらつきがあるか否かを把握している場合、任意のクロックゲーティング回路のみを削除対象としてもよい。これにより、設計期間を短縮化することができる。
【００６１】
図４に戻って、つぎに、生成部４０４は、削除部４０３によりクロックゲーティング回路が削除された削除済レイアウトデータ６００にクロックツリーを構築することにより第２のレイアウトデータ４１０を生成する。
【００６２】
具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして削除済レイアウトデータ６００を読み出す。そして、ＣＰＵ３０１が、既存のクロックツリーを構築させるツールを実行する。
【００６３】
これにより、削除済レイアウトデータ６００内のクロックパス上にタイミングを調整させるためのクロックバッファが挿入され、配置され、配線されて第２のレイアウトデータ４１０が生成される。なお、生成された第２のレイアウトデータ４１０は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。図７にクロックツリーが構築された例を示す。
【００６４】
図７は、クロックツリーが構築された第２のレイアウトデータの一例を示す説明図である。第２のレイアウトデータ４１０は、ＦＦ１と、ＦＦ２と、ＦＦ３がｃｌｋｂｕｆ１によりクロックデータが入力される。そして、ＦＦ４と、ＦＦ５と、ＦＦ６がｃｌｋｂｕｆ２によりクロックデータが入力される。クロックゲーティング回路を介さずにクロックツリーが構築されるため、配置位置が近傍のＦＦごとに同一のクロックバッファを出力元として各ＦＦへクロックデータが入力される。
【００６５】
これにより、ＦＦの配置位置に基づいてクロックパスが生成される。したがって、クロックゲーティング回路の配置位置に依存しないクロックパスが生成される。そして、クロックバッファの出力から各ＦＦまでの配線長のばらつきを減少させ、クロックパスの配線遅延のばらつきを減少させることができる。
【００６６】
たとえば、上述したように第１のレイアウトデータ２００では、ＧＣＢ１によりＦＦ１と、ＦＦ２と、ＦＦ６に入力されるクロックデータが制御される。したがって、ＧＣＢ１を介してＦＦ１と、ＦＦ２と、ＦＦ６にクロックパスが配線される。一方、第２のレイアウトデータ４１０では、クロックゲーティング回路が削除されているため、配置位置が近傍のＦＦごとに、クロックパスが形成されている。
【００６７】
そして、探索部４０５は、取得部４０２により取得された第２のレイアウトデータ４１０内の特定部４０１により特定されたＦＦごとに、ＦＦにクロックデータを出力する出力元のクロックバッファを探索する。
【００６８】
また、探索部４０５は、生成部４０４により生成された第２のレイアウトデータ４１０内の特定部４０１により特定されたＦＦごとに、ＦＦにクロックデータを出力する出力元のクロックバッファを探索する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスしてテーブル５００を読み出す。
【００６９】
そして、たとえば、ＣＰＵ３０１が、ＧＣＢの制御信号名５０１の中から制御信号を選択し、選択されたＧＣＢの制御信号名５０１のＦＦリスト５０２から順次ＦＦを選択する。つぎに、記憶装置にアクセスして第２のレイアウトデータ４１０を読み出す。そして、選択されたＦＦごとに、選択されたＦＦの出力元のクロックバッファを第２のレイアウトデータ４１０から探索する。
【００７０】
たとえば、テーブル５００のＧＣＢの制御信号名５０１からＡが選択される。そして、ＡのＦＦリスト５０２が読み出される。したがって、ＦＦ１と、ＦＦ２と、ＦＦ６が読み出される。そして、ＦＦ１のクロックバッファ名が検索される。つぎに、ＦＦ２のクロックバッファ名が検索される。そして、ＦＦ６のクロックバッファ名が探索される。
【００７１】
さらに、たとえば、ＣＰＵ３０１が、第２のレイアウトデータ４１０内から探索されたクロックバッファ名の配置位置情報を探索する。配置位置情報とは、たとえば、第２のレイアウトデータ４１０内のクロックバッファの座標である。なお、探索結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。図８−１にＦＦごとにクロックバッファが探索された例を示す。
【００７２】
図８−１は、ＦＦと出力元のクロックバッファとのテーブルを示す説明図である。テーブル８００は、ＦＦ名８０１と、ＧＣＢの制御信号名８０２と、クロックバッファ名８０３とを含むテーブルである。ＦＦ１は、ＧＣＢの制御信号名８０２がＡであり、出力元であるクロックバッファ名８０３がｃｌｋｂｕｆ１であることがわかる。
【００７３】
図４に戻って、つぎに、選択部４０６は、特定部４０１により特定されたＦＦの中から探索部４０５により探索されたクロックバッファごとに、クロックバッファを出力元とするＦＦ群を選択する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスしてテーブル８００を読み出す。そして、テーブル８００のＦＦ名８０１を順次選択する。そして、ＧＣＢの制御信号名８０２およびクロックバッファ名８０３が同一であるＦＦ名を選択する。そして、探索されたクロックバッファを出力元とするすべてのＦＦ名を選択する。
【００７４】
たとえば、テーブル８００のＦＦ名８０１からＦＦ１が選択される。そして、ＦＦ１のＧＣＢの制御信号名８０２とクロックバッファ名８０３が読みだされる。ＦＦ１のＧＣＢの制御信号名８０２は、Ａである。そして、クロックバッファ名８０３は、ｃｌｋｂｕｆ１である。
【００７５】
つぎに、ＦＦ２のＧＣＢの制御信号名８０２とクロックバッファ名８０３が読み出される。そして、ＦＦ１のＧＣＢの制御信号名８０２とＦＦ２のＧＣＢの制御信号名８０２とが同一であるか否か判断される。ＦＦ１とＦＦ２のＧＣＢの制御信号名８０２は同一であるため、ＦＦ１のクロックバッファ名８０３とＦＦ２のクロックバッファ名８０３とが同一であるか否かが判断される。
【００７６】
ＦＦ１のクロックバッファ名８０３とＦＦ２のクロックバッファ名８０３は同一であると判断される。したがって、ｃｌｋｂｕｆ１は、ＧＣＢの制御信号名８０２がＡの場合、ＦＦ１とＦＦ２が選択される。
【００７７】
たとえば、テーブル８００から順次ＦＦ名が選択されて同様の処理が実行される。これにより、クロックバッファごとに、ＦＦが選択される。なお、選択結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。図８−２に探索されたクロックバッファごとにＦＦが選択された例を示す。
【００７８】
図８−２は、各クロックバッファと出力先のＦＦとのテーブルを示す説明図である。テーブル８０４は、クロックバッファ名８０５と、ＧＣＢの制御信号名８０６と、ＦＦリスト８０７と、を含む構成である。特定されたクロックバッファごとに、クロックバッファをクロックデータの出力元とするＦＦと、ＦＦへのクロックデータの入力を制御するクロックゲーティング回路の制御信号を示している。
【００７９】
たとえば、ｃｌｋｂｕｆ１の場合、ＧＣＢの制御信号名８０６がＡであれば、ＦＦ１とＦＦ２が出力先のＦＦである。そして、ｃｌｋｂｕｆ１の場合、ＧＣＢの制御信号名８０６がＢであれば、ＦＦ３が出力先のＦＦである。
【００８０】
つぎに、たとえば、ｃｌｋｂｕｆ２の場合、ＧＣＢの制御信号名８０６がＡであれば、ＦＦ６が出力先のＦＦである。そして、ｃｌｋｂｕｆ２の場合、ＧＣＢの制御信号名８０６がＢであれば、ＦＦ４およびＦＦ５が出力先のＦＦである。
【００８１】
図４に戻って、つぎに、出力部４０７は、選択部４０６により選択されたＦＦ群ごとに、探索部４０５で探索された第２のレイアウトデータ４１０のクロックバッファの配置位置情報を出力する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスしてテーブル８０４を読み出す。そして、テーブル８０４からクロックバッファ名８０５とＦＦリスト８０７を選択する。つぎに、選択されたクロックバッファ名８０５の配置位置情報を出力する。
【００８２】
出力形式としては、たとえば、ディスプレイ３０８への表示、プリンタ３１３への印刷出力、Ｉ／Ｆ３０９による外部装置への送信がある。また、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶することとしてもよい。
【００８３】
これにより、設計者が、配置位置情報に基づいてクロックゲーティング回路の挿入位置を決定し、クロックゲーティング回路を挿入することができる。そして、同一のクロックゲーティング回路によりクロックデータが制御される複数のＦＦが、配置位置が近傍のＦＦごとに制御されるようにクロックゲーティング回路が挿入される。
【００８４】
したがって、クロックゲーティング回路からＦＦまでの配線遅延のばらつきの減少を容易化することができる。そして、クロックスキューの調整を容易化することができる。
【００８５】
つぎに、決定部４０８は、出力部４０７により出力されたクロックバッファの配置位置情報に基づいて、特定のクロックゲーティング回路の挿入位置を決定する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスしてクロックバッファの配置位置情報と第２のレイアウトデータ４１０を読み出す。
【００８６】
そして、たとえば、ＣＰＵ３０１が、第２のレイアウトデータ４１０内のクロックバッファの配置位置を特定する。つぎに、第２のレイアウトデータ４１０内のクロックバッファの配置位置の隣接または近傍の領域からセルの配置されていない領域を検索する。そして、検索された領域を、特定のクロックゲーティング回路の挿入位置として決定する。
【００８７】
なお、特定結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。これにより、自動で挿入位置を決定することができる。そして、設計者が、挿入位置に基づいてクロックゲーティング回路を挿入することができる。したがって、クロックゲーティング回路からＦＦまでの配線遅延のばらつきを減少させることができ、クロックスキューの調整を容易化できる。さらに、設計者が挿入位置を決定する手間を省くことができ、設計期間の短縮化を図ることができる。
【００８８】
出力部４０７は、決定部４０８により決定された特定のクロックバッファの挿入位置情報を出力する。具体的には、たとえば、ＣＰＵ３０１が、特定のクロックゲーティング回路の挿入位置情報を出力する。
【００８９】
出力形式としては、たとえば、ディスプレイ３０８への表示、プリンタ３１３への印刷出力、Ｉ／Ｆ３０９による外部装置への送信がある。また、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶することとしてもよい。
【００９０】
挿入部４０９は、決定部４０８により決定された挿入位置情報に基づいてクロックゲーティング回路を挿入して出力する。具体的には、たとえば、ＣＰＵ３０１が、記憶装置にアクセスして挿入位置情報を読み出す。そして、挿入位置情報に基づき第２のレイアウトデータ４１０内に、第１のレイアウトデータ２００内のクロックゲーティング回路と同一のクロックゲーティング回路を挿入する。
【００９１】
つぎに、挿入されたクロックゲーティング回路の入力へ制御信号と、クロックバッファの出力とが接続される。そして、クロックゲーティング回路の出力が、ＦＦのクロックパスに接続される。図１に示した挿入済レイアウトデータ１００が、クロックゲーティング回路が挿入される例を示している。
【００９２】
なお、挿入結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶される。これにより、クロックゲーティング回路が自動再挿入される。したがって、クロックゲーティング回路からＦＦまでの配線遅延のばらつきを減少させることができる。そして、クロックスキューを調整することができ、タイミングエラーを防止することができる。
【００９３】
さらに、設計者がクロックゲーティング回路を再挿入する手間を省くことができ、設計期間の短縮化を図ることができる。そして、クロックゲーティング回路の出力先のＦＦの配置位置が近傍であれば、挿入されるクロックゲーティング回路の数が減少し、半導体集積回路の面積の縮小化を図ることができる。
【００９４】
（設計支援装置４００の設計支援処理手順）
実施の形態にかかる設計支援装置４００の設計支援処理手順について説明する。図９は、設計支援装置４００の設計支援処理手順を示すフローチャートである。フローチャートは、すべてのクロックゲーティング回路が選択されて出力先であるＦＦが特定される場合について説明する。そして、フローチャートは、すべてのクロックゲーティング回路が削除されてクロックツリーが構築される場合について説明する。
【００９５】
まず、特定部４０１により、ＦＦの特定処理を実行し（ステップＳ９０１）、第１のレイアウトデータ２００の中からＧＣＢをすべて選択し（ステップＳ９０２）、削除部４０３により、選択されたＧＣＢを削除する（ステップＳ９０３）。そして、削除後のレイアウトデータを保存し（ステップＳ９０４）、生成部４０４により、クロックツリーを生成し（ステップＳ９０５）、クロックツリー生成後のレイアウトデータを保存する（ステップＳ９０６）。具体的には、たとえば、ＧＣＢ削除後のレイアウトデータが、削除済レイアウトデータ６００である。そして、クロックツリー生成後のレイアウトデータが、第２のレイアウトデータ４１０である。
【００９６】
そして、取得部４０２と、探索部４０５と、選択部４０６と、出力部４０７により、クロックバッファの探索処理を実行し（ステップＳ９０７）、決定部４０８と、挿入部４０９により、ＧＣＢの挿入処理を実行し（ステップＳ９０８）、一連の処理を終了する。
【００９７】
つぎに、上述したＦＦの特定処理（ステップＳ９０１）について説明する。図１０は、ＦＦの特定処理の処理手順を示すフローチャートである。まず、ＦＦが特定されていないＧＣＢはあるか否かを判断する（ステップＳ１００１）。ＦＦが特定されていないＧＣＢはあると判断された場合（ステップＳ１００１：Ｙｅｓ）、ＧＣＢを選択し（ステップＳ１００２）、特定部４０１により、選択されたＧＣＢの出力先ＦＦを特定する（ステップＳ１００３）。そして、ＧＣＢの制御信号と出力先ＦＦとを関連づけて保存し（ステップＳ１００４）、ステップＳ１００１へ戻る。
【００９８】
一方、ＦＦが特定されていないＧＣＢはないと判断された場合（ステップＳ１００１：Ｎｏ）、ステップＳ９０２へ移行する。上述したテーブル５００が、ＧＣＢの制御信号と出力先ＦＦのＦＦ名が関連づけて保存されている例である。
【００９９】
つぎに、上述したクロックバッファの探索処理（ステップＳ９０７）について説明する。図１１は、クロックバッファの探索処理の処理手順を示すフローチャートである。まず、取得部４０２により、クロックツリー生成後のレイアウトデータを取得し（ステップＳ１１０１）、クロックバッファが未探索のＧＣＢの制御信号はあるか否かを判断する（ステップＳ１１０２）。クロックバッファが未探索のＧＣＢの制御信号はあると判断された場合（ステップＳ１１０２：Ｙｅｓ）、ＧＣＢの制御信号を選択し（ステップＳ１１０３）、クロックバッファが未探索のＦＦはあるか否かを判断する（ステップＳ１１０４）。
【０１００】
クロックバッファが未探索のＦＦはあると判断された場合（ステップＳ１１０４：Ｙｅｓ）、対象のＦＦを選択し（ステップＳ１１０５）、探索部４０５により、対象のＦＦの出力元クロックバッファを探索し（ステップＳ１１０６）、対象のＦＦとクロックバッファを関連づけて保存し（ステップＳ１１０７）、ステップＳ１１０４へ戻る。テーブル８００が、対象のＦＦとクロックバッファとが関連づけられて保存されている例である。
【０１０１】
一方、クロックバッファが未探索のＦＦはないと判断された場合（ステップＳ１１０４：Ｎｏ）、ＦＦが未選択のクロックバッファはあるか否かを判断する（ステップＳ１１０８）。ＦＦが未選択のクロックバッファはあると判断された場合（ステップＳ１１０８：Ｙｅｓ）、対象のクロックバッファを選択し（ステップＳ１１０９）、選択部４０６により、ＧＣＢの制御信号が同一のＦＦの中から対象のクロックバッファの出力先であるＦＦを選択する（ステップＳ１１１０）。たとえば、テーブル８０４が、ＧＣＢの制御信号が同一のＦＦの中から対象のクロックバッファの出力先であるＦＦが選択された選択結果を示す例である。そして、出力部４０７により、クロックバッファの配置位置情報を出力し（ステップＳ１１１１）、ステップＳ１１０８へ戻る。
【０１０２】
一方、ＦＦが未選択のクロックバッファはないと判断された場合（ステップＳ１１０８：Ｎｏ）、ステップＳ１１０２へ戻る。そして、クロックバッファが未探索のＧＣＢの制御信号はないと判断された場合（ステップＳ１１０２：Ｎｏ）、ステップＳ９０８へ移行する。
【０１０３】
つぎに、上述したＧＣＢの挿入処理（ステップＳ９０８）について説明する。図１２は、ＧＣＢの挿入処理の処理手順を示すフローチャートである。まず、ＧＣＢを挿入していないクロックバッファがあるか否かを判断する（ステップＳ１２０１）。ＧＣＢを挿入していないクロックバッファがあると判断された場合（ステップＳ１２０１：Ｙｅｓ）、決定部４０８により、クロックバッファの配置位置情報に基づいてＧＣＢの挿入位置を決定し（ステップＳ１２０２）、挿入部４０９により、決定されたＧＣＢの挿入位置へＧＣＢを挿入し（ステップＳ１２０３）、ＧＣＢの出力とＦＦのクロック入力とを接続し（ステップＳ１２０４）、ステップＳ１２０１へ戻る。
【０１０４】
一方、ＧＣＢを挿入していないクロックバッファがないと判断された場合（ステップＳ１２０１：Ｎｏ）、ＧＣＢが挿入されたレイアウトデータを保存し（ステップＳ１２０５）、一連の処理を終了する。
【０１０５】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、第１のレイアウトデータ２００内のクロックゲーティング回路の出力先ＦＦを特定する。そして、クロックゲーティング回路が削除されてクロックツリーが構築されている第２のレイアウトデータ４１０の中から特定された出力先ＦＦの出力元クロックバッファを探索する。さらに、探索されたクロックバッファの配置位置情報を出力する。
【０１０６】
これにより、設計者が、配置位置情報に基づいてクロックゲーティング回路の挿入位置を決定し、クロックゲーティング回路を挿入することができる。そして、クロックゲーティング回路からＦＦまでの配線遅延のばらつきを減少させることができる。したがって、クロックスキューの調整を容易化できる。
【０１０７】
また、クロックゲーティング回路が削除された後にクロックツリーが構築された第２のレイアウトデータ４１０を自動生成することにより、クロックゲーティング回路の配置位置に依存しないクロックツリーが構築される。これにより、クロックパスの配線遅延のばらつきを減少させることができる。
【０１０８】
また、探索されたクロックバッファの配置位置情報に基づいて、クロックゲーティング回路の挿入位置を自動決定する。これにより、設計者が、挿入位置に基づいてクロックゲーティング回路を挿入することができる。そして、クロックゲーティング回路からＦＦまでの配線遅延のばらつきを減少させることができる。したがって、クロックスキューの調整を容易化できる。さらに、設計者が挿入位置を決定する手間を省くことができ、設計期間の短縮化を図ることができる。
【０１０９】
また、クロックゲーティング回路の挿入位置にクロックゲーティング回路を自動挿入する。これにより、クロックゲーティング回路からＦＦまでの配線遅延のばらつきを減少させることができる。そして、クロックスキューを調整することができ、タイミングエラーを防止することができる。さらに、設計者がクロックゲーティング回路を再挿入する手間を省くことができ、設計期間の短縮化を図ることができる。
【０１１０】
そして、クロックゲーティング回路の出力先のＦＦの配置位置が近傍であれば、挿入されるクロックゲーティング回路の数が減少し、半導体集積回路の面積の縮小化を図ることができる。
【０１１１】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１１２】
２００  第１のレイアウトデータ
４００  設計支援装置
４０１  特定部
４０２  取得部
４０３  削除部
４０４  生成部
４０５  探索部
４０６  選択部
４０７  出力部
４０８  決定部
４０９  挿入部
４１０  第２のレイアウトデータ
【図１】
2010198293.tif 000003
【図２】
2010198293.tif 000004
【図３】
2010198293.tif 000005
【図４】
2010198293.tif 000006
【図５】
2010198293.tif 000007
【図６】
2010198293.tif 000008
【図７】
2010198293.tif 000009
【図８−１】
2010198293.tif 000010
【図８−２】
2010198293.tif 000011
【図９】
2010198293.tif 000012
【図１０】
2010198293.tif 000013
【図１１】
2010198293.tif 000014
【図１２】
2010198293.tif 000015