(57)【要約】【課題】クロックスキューの低減と消費電力の低減を実現できるメッシュクロック構造を生成する。【解決手段】メッシュクロック構造生成装置は、複数のノードを生成するノード生成部と、各々が複数のノードにクロック信号を供給するメッシュ構造のクロック配線を示す複数のメッシュクロック構造候補を生成するメッシュドライバ構造生成部とを備える。メッシュドライバ構造生成部は、複数のメッシュクロック構造候補の各々について消費電力の評価値を算出する消費電力評価部と、複数のメッシュクロック構造候補の各々についてクロック信号の遅延時間差の評価値を算出する遅延解析部とを備える。【選択図】図１０
2010211737.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを生成するノード生成部と、
各々が前記複数のノードにクロック信号を供給するメッシュ構造のクロック配線を示す複数のメッシュクロック構造候補を生成するメッシュドライバ構造生成部とを具備し、
前記メッシュドライバ構造生成部は、
前記複数のメッシュクロック構造候補の各々について消費電力の評価値を算出する消費電力評価部と、
前記複数のメッシュクロック構造候補の各々について前記クロック信号の遅延時間差の評価値を算出する遅延解析部とを備える
メッシュクロック構造生成装置。
【請求項２】
請求項１に記載されたメッシュクロック構造生成装置であって、
前記複数のメッシュクロック構造候補の各々には、クロックソースが生成する前記クロック信号を前記メッシュ構造の複数の箇所に均一化された遅延時間で供給するメッシュドライバの数が含まれる
メッシュクロック構造生成装置。
【請求項３】
請求項１又は２に記載されたメッシュクロック構造生成装置であって、
前記メッシュドライバ構造生成部は、前記メッシュ構造のクロック配線を規定する複数のパラメタを記憶し、前記複数のパラメタのそれぞれの設定値候補の組を複数生成することによって前記複数のメッシュクロック構造候補を生成する
メッシュクロック構造生成装置。
【請求項４】
請求項３に記載されたメッシュクロック構造生成装置であって、
前記メッシュドライバ構造生成部は、前記複数の設定値候補の組の中からランダムに選択した複数の組について前記複数の設定値候補の組を生成することによって前記複数のメッシュクロック構造候補を生成する
メッシュクロック構造生成装置。
【請求項５】
請求項３又は４に記載されたメッシュクロック構造生成装置であって、
前記メッシュドライバ構造生成部は、前記設定値候補の組のそれぞれについて、前記消費電力の評価値と前記遅延時間差の評価値のそれぞれに所定の係数を掛けて足した値が最も小さい組の前記メッシュ構造のクロック配線を、最も有力なメッシュクロック構造として出力する
メッシュクロック構造生成装置。
【請求項６】
請求項１から５のいずれかに記載されたメッシュクロック構造生成装置であって、
更に、与えられた配置を有するフリップフロップ素子群について複数のクラスタを形成するクラスタリング部を具備し、
前記複数のクラスタの各々は、
複数のフリップフロップ素子と、
前記メッシュ構造のクロック配線から供給される前記クロック信号を前記複数のフリップフロップ素子に伝達するゲートとを備え、
前記複数のノードは、前記複数のクラスタにそれぞれ対応する
メッシュクロック構造生成装置。
【請求項７】
請求項６に記載されたメッシュクロック構造生成装置であって、
前記クラスタリング部は、前記フリップフロップ素子群について前記複数のクラスタの候補を生成し、前記複数のクラスタ候補のうち、各々のクラスタの容量の差の最大値が最も小さいクラスタ候補を前記複数のクラスタとして選択する
メッシュクロック構造生成装置。
【請求項８】
複数のノードを生成する工程と、
各々が前記複数のノードにクロック信号を供給するメッシュ構造のクロック配線を示す複数のメッシュクロック構造候補を生成する工程とを具備し、
前記複数のメッシュクロック構造候補を生成する工程は、
前記複数のメッシュクロック構造候補の各々について消費電力の評価値を算出する工程と、
前記複数のメッシュクロック構造候補の各々について前記クロック信号の遅延時間差の評価値を算出する工程とを備える
メッシュクロック構造生成方法。
【請求項９】
請求項８に記載されたメッシュクロック構造生成方法であって、更に、前記消費電力の評価値と前記遅延時間差の評価値とに基づいて、前記複数のメッシュクロック構造候補の中から採用するメッシュクロック構造を決定する工程を具備する
メッシュクロック構造生成方法。
【請求項１０】
請求項８又は９に記載されたメッシュクロック構造生成方法であって、
前記複数のメッシュクロック構造候補の各々には、クロックソースが生成する前記クロック信号を前記メッシュ構造の複数の箇所に均一化された遅延時間で供給するメッシュドライバの数が含まれる
メッシュクロック構造生成方法。
【請求項１１】
請求項８から１０のいずれかに記載されたメッシュクロック構造生成方法であって、
前記複数のメッシュクロック構造候補を生成する工程は、
前記メッシュ構造のクロック配線を規定する複数のパラメタを記憶する工程と、
前記複数のパラメタのそれぞれの設定値候補の組を複数生成することによって前記複数のメッシュクロック構造候補を生成する工程
とを具備するメッシュクロック構造生成方法。
【請求項１２】
請求項１１に記載されたメッシュクロック構造生成方法であって、
前記複数のメッシュクロック構造候補を生成する工程において、前記複数のメッシュクロック構造候補は、前記複数の設定値候補の組の中からランダムに選択した複数の組について前記複数の設定値候補の組を生成することによって生成される
メッシュクロック構造生成方法。
【請求項１３】
請求項１１又は１２に記載されたメッシュクロック構造生成方法であって、
前記複数のメッシュクロック構造候補を生成する工程は、前記設定値候補の組のそれぞれについて、前記消費電力の評価値と前記遅延時間差の評価値のそれぞれに所定の係数を掛けて足した値が最も小さい組の前記メッシュ構造のクロック配線を、最も有力なメッシュクロック構造として出力する工程を備える
メッシュクロック構造生成方法。
【請求項１４】
請求項８から１３のいずれかに記載されたメッシュクロック構造生成方法であって、
更に、与えられた配置を有するフリップフロップ素子群について複数のクラスタを形成する工程を具備し、
前記複数のクラスタの各々は、
複数のフリップフロップ素子と、
前記メッシュ構造のクロック配線から供給される前記クロック信号を前記複数のフリップフロップ素子に伝達するゲートとを備え、
前記複数のノードは、前記複数のクラスタにそれぞれ対応する
メッシュクロック構造生成方法。
【請求項１５】
請求項１４に記載されたメッシュクロック構造生成方法であって、
前記複数のクラスタを形成する工程は、
前記フリップフロップ素子群について前記複数のクラスタの候補を生成する工程と、
前記複数のクラスタ候補のうち、各々のクラスタの容量の差の最大値が最も小さいクラスタ候補を前記複数のクラスタとして選択する工程とを備える
メッシュクロック構造生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＬＳＩのクロック構造を設計する技術に関する。本発明は特に、メッシュ構造を用いたクロック構造を設計する技術に関する。
【背景技術】
【０００２】
ＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）の工程において、クロック信号を分配する方法の一つとして、クロックソースが生成したクロック信号をメッシュ構造の配線に供給し、そのメッシュ構造の配線から各素子にクロック信号を供給するメッシュクロック構造を用いる方法が用いられている。
【０００３】
図１は、本発明を説明するための参考例におけるメッシュクロック構造を示す。非特許文献１には、図１に近い構造が記載されている。クロックソース１００はクロック信号を生成する。クロック信号はバッファ１０２を介してＨ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４の先端に配置されたメッシュドライバ１０８に分配される。クロック信号は、バッファ１０２とＨ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４とにより、複数のメッシュドライバ１０８に概ね遅延時間差無く分配される。メッシュドライバ１０８はメッシュ状配線１０６にクロック信号を供給する。このメッシュ状配線１０６によって、ＬＳＩ上の複数のノードにクロック信号が供給される。一方、ＬＳＩ上に形成される多数のＦＦ（フリップフロップ回路）１１２からなるフリップフロップ素子群は、複数のクラスタ１１４にまとめられる。各々のクラスタ１１４に属するＦＦ１１２には、同一のクラスタバッファ１１０を介してクロック信号が供給される。各々のクラスタバッファ１１０は、メッシュ状配線１０６の比較的近い位置のノードに接続される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ａｎａｎｄ  Ｒａｊａｒａｍ  ａｎｄ  Ｄａｖｉｄ  Ｚ．  Ｐａｎ，  “ＭｅｓｈＷｏｒｋｓ：  Ａｎ  Ｅｆｆｉｃｉｅｎｔ  Ｆｒａｍｅｗｏｒｋ  ｆｏｒ  Ｐｌａｎｎｉｎｇ，  Ｓｙｎｔｈｅｓｉｓ  ａｎｄ  Ｏｐｔｉｍｉｚａｔｉｏｎ  ｏｆ  Ｃｌｏｃｋ  Ｍｅｓｈ  Ｎｅｔｗｏｒｋｓ，”  ＡＳＰ−ＤＡＣ２００８，  ｐｐ  ２５０−２５７．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図１に示したようなメッシュクロック構造を自動設計するシステムは知られていない。本願発明者の考えによれば、図２に示すメッシュクロック構造生成装置１１５によって図１に示したメッシュクロック構造を自動的に設計することができる。メッシュクロック構造生成装置１１５は、クラスタリング部１１６、メッシュドライバ数決定部１１８及び規則構造生成部１２０を備える。
【０００６】
メッシュクロック構造生成装置１１５は以下のように動作する。まず入力データとして、ＬＳＩ上の与えられた配置を有するフリップフロップ素子群についてのデータが提供される。図３は、この入力データが含んでいる情報を示す。複数のＦＦ１２４、１２６について、ＬＳＩ上の位置を示す情報が与えられる。一部のＦＦ１２６はクロックソース１００に直接接続される（「接続される」とは、設計データにおいて接続する配線についての情報が設定されるという意味である。以下の説明における「生成」等の表現も同様）。他のＦＦ１２４はＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）設計時に挿入されたゲート１２２に接続される。ゲート１２２はバッファとして機能する。ＦＦ１２４、１２６は図１のメッシュクロック構造におけるＦＦ１１２に対応する。
【０００７】
図４は、クラスタリング部１１６が生成する設計データの例を示す。クラスタリング部１１６は、フリップフロップ素子群に対して複数のクラスタバッファ１１０と呼ばれるセルを生成してクラスタリング処理を行う。各々のクラスタバッファ１１０には複数のＦＦ１１２が接続される。クラスタリング部１１６は、全てのＦＦ１１２がいずれかのクラスタ１１４に含まれるようにクラスタリング処理を行う。クラスタバッファ１１０は、クロックソース１００またはＲＴＬ設計時に挿入されたゲート１２２に接続される。このクラスタリング処理により、図４に示したような配線構造の設計データが作成される。
【０００８】
図５は、メッシュドライバ数決定部１１８が作成する設計データの例を示す。メッシュドライバ数決定部１１８は、図５に示したように、ある数のメッシュドライバ１０８（図５の例では４×４＝１６個）が生成されている。更に、各メッシュドライバ１０８の出力端子が碁盤目状の配線であるメッシュ状配線１０６によって結線される。メッシュ状配線１０６とそれに接続されたメッシュドライバ１０８とを合わせてメッシュネット１０７と呼ぶ。
【０００９】
メッシュドライバ数決定部１１８は最適なメッシュドライバ数を次のように決定する。図６Ａは２×２のメッシュドライバを、図６Ｂは４×４のメッシュドライバを生成する例である。図６Ｃは３×３のメッシュドライバの上面図である。メッシュドライバ数決定部１１８は、メッシュドライバ数を決めてメッシュドライバを配置し、メッシュドライバ間を碁盤目状に結線する。この配線をｔｒｕｎｋ１２８と呼ぶ。さらにクラスタバッファ１１０とｔｒｕｎｋ１２８を最短距離で結線する。この配線をｓｔｕｂ１３０と呼ぶ。一般的にメッシュドライバ数が多いほどｔｒｕｎｋ１２８の配線長は大きくなりｓｔｕｂ１３０の配線長は小さくなる。そのため、ｔｒｕｎｋ１２８とｓｔｕｂ１３０の合計の配線長は適当なメッシュドライバ数で最小値を取る。図６Ｄは、メッシュドライバ数と、ｔｒｕｎｋ１２８、ｓｔｕｂ１３０、及びその合計の配線長との関係を示す。メッシュドライバ数決定部１１８は、複数のメッシュドライバ数候補についてｔｒｕｎｋ１２８、ｓｔｕｂ１３０を生成して合計配線長が最短となる候補をメッシュドライバ数の設計値として選択する。
【００１０】
次に図７を参照して、規則構造生成部１２０の動作を説明する。メッシュドライバ数決定部１１８によってメッシュドライバ１０８の数が決定されると、規則構造生成部１２０は、クロックソース１００が生成するクロック信号をメッシュドライバ１０８に伝達するための配線を生成し、その配線に適宜バッファ１０２を挿入する。このとき生成される配線は、Ｈ−ｔｒｅｅと呼ばれる構造とＳｐｉｎｅと呼ばれる構造を利用したＨ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４である。この構造により、クロックソース１００が発信するクロック信号は全てのメッシュドライバ１０８に同時に入力する。メッシュクロック構造生成装置１１５は、以上のような動作によりメッシュクロック構造を自動的に設計することができる。
【００１１】
ところで本願発明者は、以上のような方法で作成されるメッシュクロック構造には、更に低消費電力化を図る余地があることに着目した。その根拠は次の通りである。上記の方法ではメッシュネットの配線長または配線の寄生容量の最適化だけを目的としており、クロックソースからメッシュネットまでの配線容量とバッファ数を考慮に入れていない。またメッシュドライバ数も考慮に入れていない。これらの要因により、消費電力が最適化されていないメッシュクロック構造が作成される可能性がある。
【００１２】
図９Ａ〜図９Ｃを参照してより具体的に説明する。図９Ａは、ある範囲に４×４のメッシュドライバとＨ−ｔｒｅｅを生成した例を示す。図９Ｂは、同じ範囲に３×４のメッシュドライバとＨ−ｔｒｅｅを生成した例を示す。図９Ｂのような場合、Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４を与えられた範囲に直接作成することはできない。そのため図９Ｃに示すように、与えられた領域をダミー領域１３４を加えることによって拡張する。拡張された領域にＨ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４が作成される。その後、ダミー領域１３４に形成された部分のＨ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４が与えられた領域内に折り返される。最後にダミー領域１３４を消去することにより、図９Ｂに示されるような３×４のメッシュドライバが形成される。
【００１３】
図９Ａにおいて、Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４の配線長は１８であり、ｔｒｕｎｋ１２８の配線長は２４である。図９Ｂにおいて、Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４の配線長は２１であり、ｔｒｕｎｋ１２８の配線長は２１である。すなわち、図９Ａのｔｒｕｎｋ配線長は図９Ｂのｔｒｕｎｋ配線長より大きいが、ｔｒｕｎｋ配線長とＨ−ｔｒｅｅ＋ｓｐｉｎｅ配線長の和を比較した場合、図９Ａと図９Ｂは同じ配線長を有する。このようにメッシュネットの配線長だけを考慮する方法では消費電力の最適化が難しい。
【００１４】
本発明の目的は、クロックスキューの低減と消費電力の低減を実現できるメッシュクロック構造を生成する装置及び方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明の一実施形態におけるメッシュクロック構造生成装置は、複数のノードを生成するノード生成部と、各々が複数のノードにクロック信号を供給するメッシュ構造のクロック配線を示す複数のメッシュクロック構造候補を生成するメッシュドライバ構造生成部とを備える。メッシュドライバ構造生成部は、複数のメッシュクロック構造候補の各々について消費電力の評価値を算出する消費電力評価部と、複数のメッシュクロック構造候補の各々についてクロック信号の遅延時間差の評価値を算出する遅延解析部とを備える。
【００１６】
本発明によるメッシュクロック構造生成方法は、複数のノードを生成する工程と、各々が複数のノードにクロック信号を供給するメッシュ構造のクロック配線を示す複数のメッシュクロック構造候補を生成する工程とを備える。複数のメッシュクロック構造候補を生成する工程は、複数のメッシュクロック構造候補の各々について消費電力の評価値を算出する工程と、複数のメッシュクロック構造候補の各々についてクロック信号の遅延時間差の評価値を算出する工程とを備える。
【発明の効果】
【００１７】
本発明により、伝達遅延誤差の小さいメッシュクロック構造を低消費電力で実現できる。
【図面の簡単な説明】
【００１８】
【図１】図１は、参考例におけるメッシュクロック構造を示す。
【図２】図２は、メッシュクロック構造生成装置の例を示す。
【図３】図３は、メッシュクロック構造生成装置の入力データを示す。
【図４】図４は、クラスタリング部が生成する設計データを示す。
【図５】図５は、メッシュドライバ数決定部が作成する設計データの例を示す。
【図６Ａ】図６Ａは、メッシュドライバの例を示す。
【図６Ｂ】図６Ｂは、メッシュドライバの例を示す。
【図６Ｃ】図６Ｃは、メッシュドライバの上面図である。
【図６Ｄ】図６Ｄは、メッシュドライバ数と配線長との関係を示す。
【図７】図７は、規則構造生成部が生成する設計データを示す。
【図８Ａ】図８Ａは、ダミー領域を用いた規則構造の生成方法の説明図である。
【図８Ｂ】図８Ｂは、ダミー領域を用いた規則構造の生成方法の説明図である。
【図８Ｃ】図８Ｃは、ダミー領域を用いた規則構造の生成方法の説明図である。
【図９Ａ】図９Ａは、規則構造を示す。
【図９Ｂ】図９Ｂは、ダミー領域を用いた規則構造の生成方法を示す。
【図９Ｃ】図９Ｃは、ダミー領域を用いて作成された規則構造を示す。
【図１０】図１０は、メッシュクロック構造生成装置の構成を示す。
【図１１】図１１は、メッシュクロック構造生成装置の入力データを示す。
【発明を実施するための形態】
【００１９】
次に、本発明の実施形態について図面を参照して詳細に説明する。図１０を参照すると、本発明の第１の実施形態におけるメッシュクロック構造生成装置は、クラスタリング部１０とメッシュドライバ数決定部２０とから構成されている。メッシュドライバ数決定部２０はメッシュネット生成部２１と規則構造生成部２２と消費電力評価部２３と遅延解析部２４とを含む。これら各部は、コンピュータによって実行されるプログラムによって実現される機能ブロックである。
【００２０】
本実施形態においては、メッシュドライバ数決定部２０が複数のメッシュクロック構造候補を生成するメッシュドライバ構造生成部の機能を有する。メッシュドライバ数決定部２０は、それらの候補の消費電力と遅延時間の評価の結果に基づいてメッシュドライバ数を決定する。
【００２１】
より詳細には、メッシュドライバ数決定部２０は、メッシュクロック構造を規定する複数のパラメタ（例えばメッシュドライバ数、メッシュドライバ１０８として使用されるセル種類、メッシュ状配線の配線幅、メッシュ状配線の配線層、規則構造（ｓｐｉｎｅ＋ｔｒｅｅなど）の配線幅、規則構造の配線層、バッファ１０２、１１０として使用するセル種別）を記憶する。メッシュドライバ数決定部２０は、それら複数のパラメタのそれぞれについての設定値候補を生成する。各パラメタの設定値候補の組に基づいて、メッシュクロック構造候補が生成される。パラメタとその設定値候補としては、例えば以下のようなものが例示される。
メッシュドライバとして使用するセル種類・・・１０通り
メッシュ配線幅・・・通常幅、二倍幅、三倍幅、四倍幅の四通り
メッシュ配線層・・・高々８通り程度
規則構造の配線幅・・・通常幅、二倍幅、三倍幅、四倍幅の四通り
規則構造の配線層・・・高々８通り程度
バッファとして使用するセル種別・・・１０通り
メッシュドライバ数決定部２０は、以上の設定値候補の全組み合わせ約１０万通りについてメッシュクロック構造候補を生成する。
【００２２】
メッシュクロック構造候補は、以下の方法により決定することもできる。複数の設定値候補の組１０万通りの中から、各パラメタをランダムに選択した複数の組み合わせを設定値候補をとして決定する。そのように決定された例えば１０００組の設定値候補に基づいて、１０００通りのメッシュクロック構造候補を生成する。その中で、後述する評価方法により結果の良い方から１００通りについて、各設定値の平均値を求める。その平均値に最も近い設定値が、最適な設定値であると推定される。例えば結果の良かった１００通りの組み合わせについて、メッシュ配線幅が通常幅の１．８倍であれば、通常幅の２倍がメッシュ配線幅の最適候補値として選択される。このようにして各パラメタの最適候補値を決定し、それに近い値を設定値候補として設定することにより、複数のメッシュクロック構造候補が設定される。このような方法によって得られたメッシュクロック構造候補を用いることにより、以下の処理において、総当たりによる方法よりも大幅に少ない試行回数でメッシュドライバ数の選択を含むメッシュクロック構造を決定することができる。
【００２３】
クラスタリング部１０は、図４を参照して説明した構造の設計データを作成する。すなわちクラスタリング部１０は、フリップフロップ素子群のＬＳＩ状の配置を示す入力データに基づいて、各々が少なくとも一つのＦＦ１１２を含む複数のクラスタ１１４を生成する。クラスタリング部１０は更に、クラスタ１１４ごとに一つのクラスタバッファ１１０を生成し、同一のクラスタ１１４に属するクラスタバッファ１１０とＦＦ１１２の各々とを一本の配線で接続するネットを生成する。クラスタリング部１０の入力データにおいては、図３に示したようにＦＦ１２４はクロックソース１００またはＲＴＬ設計で挿入したゲート１２２に接続されている。また、セルの配置位置は決定済みである。
【００２４】
本実施形態において、クラスタリング部１０は、各クラスタ１１４の容量が等しくなるようにクラスタリング処理を行う。容量とは、クラスタ１１４内の配線の容量とＦＦ１１２の端子容量との和である。具体的には、フリップフロップ素子群について、所定の手順により複数のクラスタの候補が作成される。複数のクラスタの候補のうち、各々のクラスタの容量の差の最大値が最も小さいクラスタ候補を、クラスタリング処理の結果として採用する。
【００２５】
各クラスタ１１４に含まれるＦＦ１１２の数が等しくなるようにクラスタリングを行う方法に比べて、各クラスタ１１４の容量が等しくなるようにクラスタリングを行うことにより、クラスタバッファ１１０からＦＦ１１２までの信号伝達遅延の誤差が小さくなる効果がある。以上のクラスタリング処理により、図４に示したような構成を示すデータが得られる。この処理の結果、ＬＳＩ上の各クラスタバッファ１１０の配置が決定される。
【００２６】
メッシュドライバ数決定部２０は、生成された複数のメッシュクロック構造候補について、メッシュネット生成部２１と規則構造生成部２２と消費電力評価部２３と遅延解析部２４を動作させる。メッシュドライバ数決定部２０は、各メッシュクロック構造候補について、こうして得られた消費電力や遅延などの情報をディスプレイに表示する。ユーザはその表示を参照して最良と思われるメッシュドライバ数を選択して入力操作により指定する。またはメッシュドライバ数決定部２０がメッシュクロック構造候補の中から所定の基準に基づいて最良のものをメッシュクロック構造として決定する。
【００２７】
メッシュネット生成部２１は、９×６のように＜横に並べる数＞×＜縦に並べる数＞で与えられた数のメッシュドライバ１０８が配列されたメッシュ状配線１０６を生成する。メッシュ状配線上のメッシュドライバ１０８は、クラスタバッファ１１０の分布範囲全体に均等な間隔で配置される。メッシュネット生成部２１は、メッシュドライバ１０８の出力端子同士を碁盤目状に結線する。メッシュネット生成部２１は更に、図６Ｂに例示されるように、各クラスタバッファ１１０とその碁盤目状配線とを最短距離で結線する。以上のメッシュネット生成処理により、図５に例示される構成を示すデータが作成される。
【００２８】
規則構造生成部２２はクロックソース１００からメッシュドライバ１０８までをＨ−ｔｒｅｅやＳｐｉｎｅ構造などの対称的な構造を用いて結線する。このＨ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４により、全てのメッシュドライバ１０８にクロック信号が同時に伝達される。
【００２９】
Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４を形成する方法の詳細は、例えば特願２００８−１６９０９９号公報「データ処理装置、データ処理方法およびプログラム」に記載されている。以下にその方法の概略を説明する。一般にＨ−ｔｒｅｅとＳｐｉｎｅ構造による対称構造は末端数が３２×１６のように２のべき乗である必要がある。２のべき乗でないメッシュドライバ数が与えられた場合、本来メッシュネットが配置される配置領域にダミー領域を追加することにより、メッシュドライバ数を仮に２のべき乗にする。ダミー領域は、配置領域とダミー領域を合わせた領域において、メッシュドライバの横に並べる数と縦に並べる数がそれぞれ与えられた数より小さくない最も小さい整数になるように追加される。
【００３０】
図８Ａ〜図８Ｃを参照して、３×４のメッシュドライバ数が与えられた場合の例を示す。この場合、図８Ａに示すようにダミー領域１３４を追加することにより、４×４のメッシュドライバ数が与えられたものとして配線を生成する。次に、図８Ｂに示すように、ダミー領域１３４に配置された配線の規則構造をもともと与えられた配置領域１３２に折り返して折り返された規則構造１３６を生成する。次に適宜バッファ１０２を挿入する。信号が伝達されるセルを持たない領域のネットは削除する（図８Ｃ）。もともと与えられた配置領域１３２にはメッシュドライバ１０８が信号伝達対象として存在するため、削除されることはないが、ダミー領域１３４への配線は削除される。
【００３１】
消費電力評価部２３は、各々のメッシュクロック構造候補について、上記の処理によって生成されたメッシュ状配線１０６、メッシュドライバ１０８、Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線１０４に基づいて、配線とバッファの消費電力の評価値を算出する。この消費電力の評価は、一般的な技術によって実現される。
【００３２】
遅延解析部２４は、各々のメッシュクロック構造候補について、上記の処理によって生成されたメッシュ状配線１０６、メッシュドライバ１０８、Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線に基づいて、一般的な手法によって信号の伝達遅延時間を見積もり、遅延時間差の評価値を算出する。この処理にはＥｌｍｏｒｅ法のような一般的な手法を用いて行ってもよい。特に、特願２００８−０３９９０５号公報「遅延解析システム」に記載された技術を利用することが望ましい。
【００３３】
次に、図１０のブロック図を参照して本実施形態の全体の動作について詳細に説明する。まず、クラスタリング部１０は、クラスタ１１４を生成する。次に、メッシュドライバ数決定部２０はメッシュ構造に関するさまざまなパラメタの組み合わせを生成する。このパラメタにはメッシュドライバ数、メッシュドライバとして使用するセル種類、メッシュ配線幅、メッシュ配線層、規則構造の配線幅と配線層とバッファとして使用するセル種別、などが含まれる。パラメタの組み合わせはユーザが与えても良い。これらのパラメタの組み合わせによって規定されるメッシュクロック構造候補について、メッシュネット生成部２１が動作し、次いで規則構造生成部２２が動作する。次に消費電力評価部２３と遅延解析部２４による処理を任意の順番で、または並列で実行する。
【００３４】
各メッシュクロック構造候補について、消費電力評価部２３が算出した消費電力の評価値と、遅延解析部２４が算出したクロック信号の遅延時間差の評価値（遅延時間差の最大値や平均値）とがディスプレイに表示される。ユーザはその表示を参照して、最良と思われるメッシュクロック構造（メッシュドライバ数の選択を含む）を決定する。最後に、メッシュドライバ数決定部２０が備えるクラスタ遅延調整部がクラスタバッファ１１０の配置位置を調整することでクロックソース１００からＦＦ１１２へのクロック信号伝達遅延誤差の低減を行う。
【００３５】
ユーザによる選択に替えて、メッシュドライバ数決定部２０が何らかの評価基準に基づいて最良と推測されるメッシュクロック構造（メッシュドライバ数の選択を含む）を自動的に決定してもよい。その評価基準の一例を以下に示す。メッシュドライバ数決定部２０が生成したパラメタの設定値候補の組のそれぞれについて、消費電力の評価値ａと遅延時間差の評価値ｂのそれぞれに所定の係数を掛けて足した値（ａ＋ｋ＊ｂ、ｋは重み付け係数であり正数）を算出する。その値が最も小さい設定値候補の組を、パラメタの設定値として採用する。その設定値に基づいて生成されるメッシュクロック構造が最良の候補として決定される。
【００３６】
次に、本実施形態の効果について説明する。本実施形態では、メッシュ状配線１０６を生成し、クロックソース１００からメッシュドライバ１０８に等遅延でクロック信号を伝達するための規則構造を生成し、その後で消費電力を評価するため、消費電力の最適化を図ることができる。また、規則構造生成には任意のメッシュドライバ数に対して適用できる技術を利用するため、最適と思われたメッシュドライバ数を実装できないという事態を避けることができる。
【００３７】
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。図１１は、メッシュクロック構造生成装置の入力データの一例を示す。この例に示されるように、ＲＴＬ設計時に挿入されたゲート３４の他に、レイアウト時にゲート３８を挿入することがある。この場合、一般的にそのゲート３８に接続されるＦＦ３６の数は少ないため、ゲート３８とそこに接続されるＦＦ３６との組を既存クラスタとして扱うことができる。このような場合、クラスタリング部１０は、既存クラスタの容量（容量とは配線容量とＦＦの端子容量の和）を求める。クラスタリング部１０は、図４を参照して説明したように新たにクラスタ１１４を生成する際に、そのクラスタ１１４の容量と既存クラスタの容量の差が所定の基準以下となるようにする。
【００３８】
以上に説明した方法により、設計データが以下のような手順で作成される。まず回路の物理設計を行い、すべてのセルを配置し、その結果を入力回路データとして保存する。次に入力回路データに対し、本実施形態で説明したようにクロック構造を生成し、その結果を出力回路データとして保存する。出力回路データに対し、残りの設計を行う。このようにしてＬＳＩのレイアウト設計のような回路設計が行われる。
【符号の説明】
【００３９】
１０  クラスタリング部
２０  メッシュドライバ数決定部
２１  メッシュネット生成部
２２  規則構造生成部
２３  消費電力評価部
２４  遅延解析部
３０  クロックソース
３２  ＦＦ
３４  ゲート
３６  ＦＦ
３８  ゲート
１００  クロックソース
１０２  バッファ
１０４  Ｈ−ｔｒｅｅ＋ｓｐｉｎｅ構造配線
１０６  メッシュ状配線
１０７  メッシュネット
１０８  メッシュドライバ
１１０  クラスタバッファ
１１２  ＦＦ
１１４  クラスタ
１１５  メッシュクロック構造生成装置
１１６  クラスタリング部
１１８  メッシュドライバ数決定部
１２０  規則構造生成部
１２２  ゲート
１２４  ＦＦ
１２６  ＦＦ
１２８  ｔｒｕｎｋ
１３０  ｓｔｕｂ
１３２  配置領域
１３４  ダミー領域
１３６  規則構造
【図１】
2010211737.tif 000003
【図２】
2010211737.tif 000004
【図３】
2010211737.tif 000005
【図４】
2010211737.tif 000006
【図５】
2010211737.tif 000007
【図６Ａ】
2010211737.tif 000008
【図６Ｂ】
2010211737.tif 000009
【図６Ｃ】
2010211737.tif 000010
【図６Ｄ】
2010211737.tif 000011
【図７】
2010211737.tif 000012
【図８Ａ】
2010211737.tif 000013
【図８Ｂ】
2010211737.tif 000014
【図８Ｃ】
2010211737.tif 000015
【図９Ａ】
2010211737.tif 000016
【図９Ｂ】
2010211737.tif 000017
【図９Ｃ】
2010211737.tif 000018
【図１０】
2010211737.tif 000019
【図１１】
2010211737.tif 000020