(57)【要約】【課題】バッファ配置禁止領域を持つ半導体のクロック分配回路の設計において、クロックスキューを最小にする。【解決手段】クロックドライバセルから各末端セルへの配線経路の形状が完全に対称となる配線経路を生成した後（Ｓ５０）、クロックドライバセルから各末端セルへの配線経路上のバッファの種類及びバッファが駆動する配線経路の形状が各段で完全に同一となるように、バッファ配置禁止領域以外の場所に、バッファ挿入を行う（Ｓ７０）。この時、任意の一つの末端セルへの経路上のバッファ挿入位置を決定した後、そのバッファ挿入位置を他の末端セルへの経路上に複製する。バッファ配置禁止領域については、全ての末端セルへの配線経路上に存在する全てのバッファ配置禁止領域を、その一つ末端セルへの経路上に設定して考慮する。【選択図】図２
2009211489.tif 000002
【特許請求の範囲】
【請求項１】
バッファ配置禁止領域を持つ半導体に、クロックドライバセルの発生したクロックをバッファを介して複数の末端セルに与えるクロック分配回路のレイアウトを設計するクロック分配回路設計方法であって、
前記半導体に配置された前記クロックドライバセルから前記複数の末端セルに至る配線経路を、各分岐点から先の形状がそれぞれ対称となる所定数段のツリーで構成して該半導体に配置する配線処理と、
前記クロックドライバセルから前記各末端セルに至る複数の配線経路の前記バッファ配置禁止領域以外の部分に、バッファの種類及びバッファが駆動する配線経路の形状が前記ツリーの各段で等しくなるように、前記バッファを挿入するバッファ挿入処理と、
を行うことを特徴とするクロック分配回路設計方法。
【請求項２】
前記ツリーは、Ｈ型ツリー、バイナリツリー、或はＨ型ツリーとバイナリツリーを組合わせたツリーであることを特徴とする請求項１に記載のクロック分配回路設計方法。
【請求項３】
前記バッファ挿入処理は、前記複数の末端セルに至る複数の配線経路のうちの任意の一つの配線経路上の前記バッファ挿入位置を決定した後、得られたバッファ挿入位置を他の配線経路上に複製することにより、全ての末端セルへの配線経路上のバッファ挿入位置を決定することを特徴とする請求項１または２に記載のクロック分配回路設計方法。
【請求項４】
前記クロックドライバセルから全ての末端セルへの配線経路上に存在する全てのバッファ配置禁止領域を、前記クロックドライバセルからの相対位置が変化しないように、前記一つの末端セルへの配線経路上に設定した後、該一つの末端セルへの配線経路上の該設定されたバッファ配置禁止領域以外の場所に、前記バッファを挿入をすることを特徴とする請求項３に記載のクロック分配回路設計方法。
【請求項５】
前記バッファ挿入処理は、一部の末端セルへのクロックの供給が不要である場合に、前記クロックドライバセルから該クロックの供給が不要な末端セルへの配線経路上に挿入したバッファが駆動する配線経路について、前記配線処理で配置した状態から変化させることを特徴とする請求項１乃至４のいずれか１項に記載のクロック分配回路設計方法。
【請求項６】
前記バッファ配置禁止領域を、前記配線処理の前に前記半導体に設定することを特徴とする請求項１乃至５のいずれか１項に記載のクロック分配回路設計方法。
【請求項７】
前記バッファ配置禁止領域を、前記配線処理の後に前記半導体に設定し、
前記バッファ挿入処理では、前記半導体に設定されたバッファ配置禁止領域以外の部分に前記バッファを挿入することを特徴とする請求項１乃至５のいずれか１項に記載のクロック分配回路設計方法。
【請求項８】
前記バッファ挿入処理で適切な前記バッファの挿入位置が見つからなかった場合に、前記バッファ配置禁止領域を移動することにより、適切なバッファの挿入位置を決定することを特徴とする請求項１乃至７のいずれか１項に記載のクロック分配回路設計方法。
【請求項９】
前記バッファ挿入処理で適切な前記バッファの挿入位置を見つからなかった場合に、前記複数の配線経路をその形状を維持した状態で、相対的に移動することにより、適切なバッファの挿入位置を決定することを特徴とする請求項１乃至７のいずれか１項に記載のクロック分配回路設計方法。
【請求項１０】
バッファ配置禁止領域を持つ半導体に、クロックドライバセルの発生したクロックをバッファを介して複数の末端セルに与えるクロック分配回路のレイアウトを設計するクロック分配回路設計装置であって、
前記半導体に配置された前記クロックドライバセルから前記複数の末端セルに至る配線経路を、各分岐点から先の形状がそれぞれ対称となる所定数段のツリーで構成して該半導体に配置する配線手段と、
前記クロックドライバセルから前記各末端セルに至る複数の配線経路の前記バッファ配置禁止領域以外の部分に、バッファの種類及びバッファが駆動する配線経路の形状が前記ツリーの各段で等しくなるように、前記バッファを挿入するバッファ挿入手段と、
を備えることを特徴とするクロック分配回路設計装置。
【請求項１１】
前記ツリーは、Ｈ型ツリー、バイナリツリー、或はＨ型ツリーとバイナリツリーを組合わせたツリーであることを特徴とする請求項１０に記載のクロック分配回路設計装置。
【請求項１２】
前記バッファ挿入手段は、前記複数の末端セルに至る複数の配線経路のうちの任意の一つの配線経路上の前記バッファ挿入位置を決定した後、得られたバッファ挿入位置を他の配線経路上に複製することにより、全ての末端セルへの配線経路上のバッファ挿入位置を決定することを特徴とする請求項１０または１１に記載のクロック分配回路設計装置。
【請求項１３】
前記クロックドライバセルから全ての末端セルへの配線経路上に存在する全てのバッファ配置禁止領域を、前記クロックドライバセルからの相対位置が変化しないように、前記一つの末端セルへの配線経路上に設定した後、該一つの末端セルへの配線経路上の該設定されたバッファ配置禁止領域以外の場所に、前記バッファを挿入をすることを特徴とする請求項１２に記載のクロック分配回路設計装置。
【請求項１４】
前記バッファ挿入手段は、一部の末端セルへのクロックの供給が不要である場合に、前記クロックドライバセルから該クロックの供給が不要な末端セルへの配線経路上に挿入したバッファが駆動する配線経路について、前記配線手段で配置した状態から変化させることを特徴とする請求項１０乃至１３のいずれか１項に記載のクロック分配回路設計装置。
【請求項１５】
前記バッファ配置禁止領域を、前記クロックドライバセルから前記複数の末端セルに至る配線経路を配置する前に前記半導体に設定することを特徴とする請求項１０乃至１４のいずれか１項に記載のクロック分配回路設計装置。
【請求項１６】
前記バッファ配置禁止領域を、前記クロックドライバセルから前記複数の末端セルに至る配線経路を配置した後に前記半導体に設定し、
前記バッファ挿入手段は、前記半導体に設定されたバッファ配置禁止領域以外の部分に前記バッファを挿入することを特徴とする請求項１０乃至１４のいずれか１項に記載のクロック分配回路設計装置。
【請求項１７】
前記バッファ挿入手段で適切な前記バッファの挿入位置が見つからなかった場合に、前記バッファ配置禁止領域を移動することにより、適切なバッファの挿入位置を決定する調整手段を備えることを特徴とする請求項１０乃至１６のいずれか１項に記載のクロック分配回路設計装置。
【請求項１８】
前記バッファ挿入処理で適切な前記バッファの挿入位置を見つからなかった場合に、前記複数の配線経路をその形状を維持した状態で、相対的に移動することにより、適切なバッファの挿入位置を決定する調整手段を備えることを特徴とする請求項１０乃至１６のいずれか１項に記載のクロック分配回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計方法及び設計装置に関し、特には、クロックスキューが小さくなるようにクロック分配回路の配置配線を行うクロック分配回路設計方法及びクロック分配回路設計装置に関する。
【背景技術】
【０００２】
同期式半導体集積回路は、演算及び演算の制御を行うための論理素子（以後、論理セルまたは論理ゲートとも呼ぶ）と、論理素子群の動作の同期を取るための順序回路素子となるフリップフロップとを含んでいる。フリップフロップには周期的に発振するクロック信号が供給される。クロック信号の立上りまたは立下りのタイミングで、フリップフロップがデータを保持し、保持したデータを論理素子に供給する。論理素子は供給されたデータを入力として演算及び演算の制御を行い、その結果をフリップフロップに保持させる。以上の処理は周期的に変化するクロック信号の立上りまたは立下りに応じて繰り返される。
【０００３】
上述の同期式半導体集積回路を、クロック信号を基準にして正常なタイミングで動作させるためには、クロック信号分配回路の配置配線が、半導体基板上のいずれの場所においても全く同じクロック信号波形が得られるようになっていることが理想的である。
【０００４】
しかし、実際には、クロック信号を伝達する配線やそれに接続しているセルの配置によって、フリップフロップによってはクロック信号がフリップフロップに到着する時間に差が生じる。フリップフロップ集合の中で、クロック信号が最も早く到達する時間と、クロック信号が最も遅く到着する時間の差をクロックスキュー（クロック信号到着時間差）と呼ぶ。このクロックスキューが大きいと回路は正常動作しなくなる。従って、クロック分配回路の配置配線は、可能な限りクロックスキューを最小とすることが要求される。なお、本発明では、クロック信号供給先は、フリップフロップに限らずバッファとすることもできるため、今後、クロック供給先を末端セルと呼ぶことにする。
【０００５】
上述のクロックスキューを最小化するように、クロック分配回路の配置配線を行う方法の例としては、特許文献１に示されたものがある。
図１９（ａ）、（ｂ）は、従来の配置配線方法の概要を示す説明図であり、図１９（ａ）は途中図であり、図１９（ｂ）は、末端セルの併合状態を示している。
特許文献１に示された方法は、クロック分配回路を構築していく際、末端セル１をボトムアップ的に二分岐木を構成するように併合しつつ中継バッファ２を配置し、常にその木のスキューがゼロ（この状態をゼロスキューと呼ぶ）となるように生成していくものである。この処理を末端セル１から順にクロックドライバセル３まで繰り返す。
【０００６】
一方、近年の半導体プロセスの微細化に伴い、製造バラツキに起因する遅延バラツキ問題が深刻化しており、これに従い、クロックスキューの最小化は、さらに困難なものになっている。
図２０は、完全対称なクロック分配回路のレイアウト例を示す図である。
製造バラツキによる遅延バラツキ問題が深刻な半導体集積回路のクロック設計では、製造バラツキの影響を最小化するために、図２のように、クロックドライバセル３から各末端セル１への配線経路と、配線経路上の中継バッファ２の種類及び中継バッファ２が駆動する配線経路の形状が、２分木の各段で完全に同１となるようにクロック分配信号のレイアウトを行うことが望まれている。
【０００７】
前述の特許文献１の配置配線方法を、製造バラツキ耐性を強くするための拡張した方法の公知例として、特許文献２があるが、ボトムアップ的に二分岐を構成するゼロスキュー併合を繰り返す方法では、完全対称なクロック信号レイアウトを生成できる保証はない。即ち、最先端の半導体プロセスを利用しても、実際のデバイス上でのクロックスキューが極小となるクロックレイアウトを生成することは不可能である。
【０００８】
また、半導体集積回路は、メモリ等の既設計メガブロックを多数含んでおり、これらのブロックが配置された領域には中継バッファ２を配置することができない。メガブロックの配置により生じるバッファ配置禁止領域は、完全対称なクロック分配回路のレイアウトを行うことを困難する要因の一つであり、現在の半導体設計において、上記のボトムアップ的な部分木のゼロスキュー併合を繰り返す方法が広く利用される理由のひとつとなっている。
【特許文献１】特開平５−５４１００号公報
【特許文献２】特開２００７−１２３３３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、製造バラツキによる遅延バラツキ問題が深刻な半導体集積回路のクロック設計では、製造バラツキの影響を最小化するためには、図２のように、完全対称なクロック分配回路のレイアウトが望まれるが、従来の設計技術では、クロックドライバセル３から末端バッファ１への遅延差が最小となる、完全対称なクロック分配信号レイアウトを得ることは保証できない。
特に、メガブロックの配置等により生じるバッファ配置禁止領域が複数存在する場合は、完全対称なクロック分配回路のレイアウトを得ることは不可能である。
【００１０】
本発明は上述したような従来の技術が有する問題点に鑑みてなされたものであって、バッファ配置禁止領域が存在する半導体のクロック設計において、クロックスキューを最小とすることが可能なクロック分配回路設計方法及びクロック分配回路設計装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の第１の観点に係るクロック分配回路設計方法は、バッファ配置禁止領域を持つ半導体に、クロックドライバセルの発生したクロックをバッファを介して複数の末端セルに与えるクロック分配回路のレイアウトを設計するクロック分配回路設計方法であって、
前記半導体に配置された前記クロックドライバセルから前記複数の末端セルに至る配線経路を、各分岐点から先の形状がそれぞれ対称となる所定数段のツリーで構成して該半導体に配置する配線処理と、
前記クロックドライバセルから前記各末端セルに至る複数の配線経路の前記バッファ配置禁止領域以外の部分に、バッファの種類及びバッファが駆動する配線経路の形状が前記ツリーの各段で等しくなるように、前記バッファを挿入するバッファ挿入処理と、
を行うことを特徴とする。
【００１２】
上記目的を達成するために、本発明の第２の観点に係るクロック分配回路設計装置は、バッファ配置禁止領域を持つ半導体に、クロックドライバセルの発生したクロックをバッファを介して複数の末端セルに与えるクロック分配回路のレイアウトを設計するクロック分配回路設計装置であって、
前記半導体に配置された前記クロックドライバセルから前記複数の末端セルに至る配線経路を、各分岐点から先の形状がそれぞれ対称となる所定数段のツリーで構成して該半導体に配置する配線手段と、
前記クロックドライバセルから前記各末端セルに至る複数の配線経路の前記バッファ配置禁止領域以外の部分に、バッファの種類及びバッファが駆動する配線経路の形状が前記ツリーの各段で等しくなるように、前記バッファを挿入するバッファ挿入手段と、
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、バッファ配置禁止領域が存在する半導体のクロック分配回路におけるクロックスキューを最小とすることが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
［第１の実施形態］
図１は、本発明の第１の実施形態に係るクロック分配回路設計装置を示す構成図である。
【００１５】
このクロック分配回路設計装置１０は、コンピュータ等で構成することが可能であり、プログラム制御により動作するデータ処理装置１１と、データ処理装置１１がデータを処理するために用いる記憶領域を持つ記憶装置１２と、入力装置１３と、出力装置１４とを備えている。
【００１６】
データ処理装置１１は、チップ情報取得手段１１ａと、末端セル配置手段１１ｂと、バッファ配置禁止領域配置手段１１ｃと、配線経路配置手段１１ｄと、経路データ生成手段１１ｅと、経路のバッファ配置禁止位置設定手段１１ｆと、バッファ挿入手段１１ｇと、複製手段１１ｈとを備えている。
チップ情報取得手段１１ａは、入力装置１３から入力された半導体集積回路のチップ情報を取得し、記憶装置１２に記憶させる機能を有する。
【００１７】
末端セル配置手段１１ｂは、末端セルをチップに均等に配置する機能を有する。バッファ配置禁止領域配置手段１１ｃは、チップにメガブロック等のバッファ配置禁止領域を配置する機能を有する。
配線経路配置手段１１ｄは、任意の末端セルとクロックドライバセルとの間の配線経路を配置する機能を有する。
経路データ生成手段１１ｅは、一つの配線経路の線幅を設定する機能を有する。経路のバッファ配置禁止位置設定手段１１ｆは、一つの配線経路におけるバッファ配置禁止位置を設定する機能を有する。
【００１８】
バッファ挿入手段１１ｇは、一つの配線経路にバッファを挿入する機能を有する。複製手段１１ｈは、全ての配線経路にバッファを挿入する機能を有する。
【００１９】
次に、クロック分配回路設計装置１０の動作を説明する。
図２は、図１のクロック分配回路設計装置１０の行うクロック分配回路配置方法を示すフローチャートである。
図３は、チップ２０に配置された末端セル２１、クロックドライバセル２２及びバッファ配置禁止領域２３を示す図である。
【００２０】
設計者が入力装置１３を用いて半導体のチップ情報を入力すると、チップ情報取得手段１１ａは、チップ情報を記憶装置１２に記憶させる（ステップＳ１０）。チップ情報には、クロック分配回路を構成する末端セルの数、クロックドライバセルの位置情報、バッファ配置禁止領域の形状等が含まれる。
【００２１】
チップ情報が入力されると、末端セル配置手段１１ｂは、記憶装置１２に記憶されているチップ情報に基づいて、チップ２０に対して、末端セル２１及びクロックドライバセル２２を配置し（ステップＳ２０）、バッファ配置禁止領域配置手段１１ｃが、メガブロック等の形成されて中継バッファの配置ができないバッファ配置禁止領域２３を配置する（ステップＳ３０）。末端セル２１の配置は、図３のように、各末端セル２１の間隔が等距離になるように均一に配置する。
【００２２】
図４は、配線経路２４が配置されたチップ２０を示す図である。
ステップＳ３０の次のステップＳ４０で、配線経路配置手段１１ｄは、クロックドライバセル２２から各末端セル２１までに、各段における分岐点から先の形状がそれぞれ対称となるＨ型ツリーが再帰的に繰り返された構成の配線経路２４を配置する。
【００２３】
ここでは、配線経路２４をＨ型ツリーで構成しているが、各末端セル２１までの配線経路形状が完全に対称となっていれば、H型ツリー以外の形状でも構わない。各末端セル２１までの配線経路２４の形状が対称になる他の例としては、例えばバイナリツリーが考えられる。また、バイナリツリーとH型ツリーを組合わせた構造も考えられる。
【００２４】
なお、前述のステップＳ３０のバッファ配置禁止領域２３を配置する処理は、このステップＳ４０の後に行っても良い。
【００２５】
次に、ステップＳ５０において、経路データ生成手段１１ｅは、任意の一つの末端セル２１への配線経路２４を選択し、バッファ挿入用経路データを生成する。
図５は、バッファ挿入用経路データの生成例を示す説明図である。
【００２６】
ここでは、クロックドライバセル２２から該当末端バッファ２１への配線経路２４を単純に抽出するのではなく、遅延計算時に配線分岐先の配線経路の影響を正確に考慮できるように、クロックドライバセル２２から配線経路２４上を辿って配線分岐点２５を経由する毎に、配線幅が２倍となるように配線幅を設定する。
【００２７】
図６は、配線経路２４にバッファ挿入禁止位置２６を設定した例を示す図である。
ステップＳ５０の次のステップＳ６０においては、経路のバッファ配置禁止位置設定手段１１ｆは、前述の選択した一つの配線経路２４に対して、バッファ配置禁止位置を設定する。この時、クロックドライバセル２２から複数末端セル２１への配線経路２４上に存在する全てのバッファ配置禁止領域２３を、選択した配線経路２４上に、クロックドライバセル２２からの相対位置が変わらないように設定し、該配線経路２４のバッファ配置禁止領域２３と重なった部分を、配線経路２４のバッファ配置禁止位置２６とする。
【００２８】
図７は、バッファ２７を配置した例を示す図である。
ステップＳ６０の次のステップＳ７０においては、ドライバセル２２から末端セル２１までの遅延が最小となるように、前述の選択した配線経路２４のバッファ配置禁止位置２６以外に、バッファ２７を挿入する。即ち、バッファ２７の挿入位置を決定する。この時、各バッファ２７には、そのバッファが駆動できる配線容量の制約があるため、この制約を守るように、例えば複数のバッファ２７を配線経路２４上に挿入する。また、ここで挿入するバッファ２７の種類としては、配線分岐点２５を経由する毎に配線幅が２倍となるように設定されているのに合わせて、本来用意されたバッファの駆動能力を２倍に設定した仮想的バッファを用いる。
【００２９】
バッファ２７の挿入結果が得ることができた場合、ステップＳ８０において、前述の選択した配線経路２４上へのバッファ挿入結果を他のすべての配線経路２４への複製する。これにより、クロック配分回路全体にバッファ２７を挿入したことになる。この時、実際に挿入するバッファ２７の種類は、ステップＳ７０で挿入位置を決定するために仮想的に駆動能力を高めたバッファから、その仮想的バッファに対応する本来用意された元のバッファの種類に戻される。
【００３０】
図８（ａ），（ｂ）は、図１のクロック配分回路設計装置の効果を説明する図であり、同図（ａ）はバッファ挿入結果を全ての配線経路上に複製した結果を示し、同図（ｃ）は１つの配線経路に配置されたバッファ２７を示している。
【００３１】
図８（ａ）のように、本実施形態では、バッファ配置禁止領域２３へのバッファ２７の配置を行うこと無く、完全対称構造を持ったクロック分配回路が得られる。また、一つの末端セル２１への配線経路２４上のバッファ２７が駆動する配線経路２４の形状は、図８（ｂ）のようになっており、全ての末端セルへの配線経路２７上のバッファ２７がそれぞれ駆動する配線経路２７の形状が、ツリーの各段で完全に同一になっている。よって、クロックスキューを最小にすることができる。
【００３２】
［第２の実施形態］
前述の第１の実施形態では、すべての末端セル２１にクロックが与えられる場合の半導体チップについて説明したが、現実には、メガマクロのためにバッファ配置禁止領域と重なる等の理由により、クロック分配が不要な末端セルが存在する場合がある。
【００３３】
本実施形態では、クロック分配が不要な末端セルが半導体チップに存在する場合の処理について説明する。
図９は、クロック分配が不要な末端セル３１が存在する半導体チップ３０を示す図であり、紙面右上に、クロック分配が不要な末端セル３１が存在する。
【００３４】
この場合の処理を、第１の実施形態の図２を用いて説明する。
設計者は、ステップＳ１０でチップ情報を入力するが、チップ情報には、チップ３０上に配置されるクロック分配不要な末端セル３１の情報と、末端セル３１を含むバッファ配置禁止領域３２の情報も含まれる。
この場合、ステップＳ４０の配線処理では、図９のように、末端セル２１及びクロック信号分配不要末端セル３１への配線経路２４を生成する。
【００３５】
そして、ステップＳ５０において、一つ末端セル２１又は３１への配線経路２４の経路データを生成し、ステップＳ６０において、バッファ配置禁止領域３２を設定すると、図１０の状態が得られる。図１０は、バッファ配置禁止領域３２上の配線経路２４を示す図である。
ここで、クロック分配不要の末端セル３１につながる配線経路２４のバッファ配置禁止領域３２に含まれる部分は、全て、クロック分配不要の末端セル３１につながる。これに対し、バッファ挿入候補位置Aからクロックを分配すべき末端セル２１への配線経路２４上には、バッファ挿入禁止領域は存在しない。そこで、配線経路２４のバッファ配置禁止領域３２のクロックドライバセル２２側にバッファ挿入候補位置３３として設定し、これ基づいて、バッファ２７を挿入すればよい。
【００３６】
図１１は、バッファ２７の挿入結果を示す図である。
図１２は、クロック分配回路のレイアウトを示す図である。
この結果を他の配線経路２４に複製し、その後、クロックの配分不要の末端セル３１への配線経路２４を削除すると、クロック配分回路のツリー全体へのバッファ挿入結果は図１２のようになり、バッファ配置禁止領域３２にバッファを配置すること無く、完全対称構造を持ったバッファ２７の挿入結果が得られている。
【００３７】
［第３の実施形態］
図１３は、本発明の第３の実施形態に係るクロック分配回路設計装置１０Ａを示す構成図であり、図１中の要素と共通する要素には、共通の符号が付されている。
【００３８】
本実施形態のクロック配分回路設計装置１０Ａは、前述の第１の実施形態のクロック配分回路設計装置１０を、高機能化したものであり、クロック配分回路設計装置１０のデータ処理装置１１に調整手段１１ｉが追加されている。調整手段１１ｉの他は、クロック配分回路設計装置１０と同様の構成である。
【００３９】
次に、クロック分配回路設計装置１０Ａの動作を説明する。
図１４は、図１３のクロック分配回路設計装置１０Ａの行うクロック配分回路設計方法を示すフローチャートである。
【００４０】
クロック分配回路設計装置１０Ａでは、第１の実施形態のクロック配分回路設計装置１０と同様に、ステップＳ１０からステップＳ７０を行い、選択した配線経路２４にバッファ挿入を行う。そして、更に、調整手段１１ｉは、適切なバッファ挿入位置が見つかったかどうかの判定を行う（ステップＳ７１）。前述したように、各バッファ２７には、そのバッファ２７が駆動できる配線容量の制約があるため、バッファ配置禁止領域２３と配線経路２４の組合わせによっては、適切なバッファ挿入結果を得ることができない可能性がある。そのため、ステップＳ７１では、バッファ２７の駆動可能配線容量制約を守るように配線経路２４上にバッファ２７の挿入を行うことができたかどうかの判定を行う。
【００４１】
ステップＳ７１で、適切なバッファ挿入位置を得ることができなかったと判定された場合、ステップＳ７２でバッファ配置禁止領域２３を図１５のように、移動する。
【００４２】
図１５は、適切なバッファ挿入位置を得ることができなかったときの処理例を示す図である。
バッファ配置禁止領域２３を移動することにより、バッファ２７の挿入の可能性を増やすことができる。バッファ配置禁止領域２３を移動した後、再度、ステップ５０からの処理を行う。
【００４３】
ステップＳ７１で良好なバッファ挿入結果を得ることができた場合は、ステップ８０に処理を進める。
【００４４】
以上のように、本実施形態のクロック分配回路設計装置１０Ａは、バッファ２７の配置を第１の実施形態よりも適正化することができる。
【００４５】
［第４の実施形態］
図１６は、本発明の第４の実施形態に係るクロック分配回路設計装置１０Ｂを示す構成図であり、図１中の要素と共通する要素には、共通の符号が付されている。
【００４６】
本実施形態のクロック配分回路設計装置１０Ｂは、前述の第１の実施形態のクロック配分回路設計装置１０を、高機能化したものであり、クロック配分回路設計装置１０のデータ処理装置１１に調整手段１１ｊが追加されている。調整手段１１ｊの他は、クロック配分回路設計装置１０と同様の構成である。
【００４７】
次に、クロック分配回路設計装置１０Ｂの動作を説明する。
図１７は、図１６のクロック分配回路設計装置１０Ｂの行うクロック配分回路設計方法を示すフローチャートである。
【００４８】
クロック分配回路設計装置１０Ｂでは、第１の実施形態のクロック配分回路設計装置１０と同様に、ステップＳ１０からステップＳ７０を行い、選択した配線経路２４にバッファ挿入を行う。そして、更に、調整手段１１ｊは、適切なバッファ挿入位置が見つかったかどうかの判定を行う（ステップＳ７３）。前述したように、各バッファ２７には、そのバッファ２７が駆動できる配線容量の制約があるため、バッファ配置禁止領域２３と配線経路２４の組合わせによっては、適切なバッファ挿入結果を得ることができない可能性がある。そのため、ステップＳ７３では、バッファ２７の駆動可能配線容量制約を守るように配線経路２４上にバッファ２７の挿入を行うことができたかどうかの判定を行う。
【００４９】
ステップＳ７３で、適切なバッファ挿入位置を得ることができなかったと判定された場合、ステップＳ７４で、配線経路２４を形状を保持した状態で相対的に全体を移動する（図１８）。
【００５０】
図１８は、適切なバッファ挿入位置を得ることができなかったときの処理例を示す図である。
配線経路２４を移動することにより、バッファ２７の挿入の可能性を増やすことができる。配線経路２４を移動した後、再度、ステップ５０からの処理を行う。
【００５１】
ステップＳ７３で良好なバッファ挿入結果を得ることができた場合は、ステップ８０に処理を進める。
【００５２】
以上のように、本実施形態のクロック分配回路設計装置１０Ｂは、バッファ２７の配置を第１の実施形態よりも適正化することができる。
【００５３】
なお、本発明は、上記各実施形態に限定されるものではなく、種々の変形が可能である。例えば、第３及び第４の実施形態のクロック分配回路設計装置１０Ａ，１０Ｂにおいても、クロック分配が不要な末端セルが半導体チップに存在する場合には、第２の実施形態と同様の処理を行うことにより、クロック分配が不要な末端セル３１が配置されるバッファ配置領域３２にバッファ２７が配置されることを防止できる。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施形態に係るクロック分配回路設計装置を示す構成図である。
【図２】図１のクロック分配回路設計装置の行うクロック分配回路配置方法を示すフローチャートである
【図３】チップに配置された末端セル、クロックドライバセル及びバッファ配置禁止領域を示す図である。
【図４】配線経路が配置されたチップを示す図である。
【図５】バッファ挿入用経路データの生成例を示す説明図である。
【図６】配線経路にバッファ配置禁止位置を設定した例を示す図である。
【図７】バッファを配置した例を示す図である。
【図８】図１のクロック配分回路設計装置の効果を説明する図である。
【図９】クロック分配が不要な末端セルが存在する半導体チップを示す図である。
【図１０】バッファ配置禁止領域上の配線経路を示す図である。
【図１１】バッファの挿入結果を示す図である。
【図１２】クロック分配回路のレイアウトを示す図である。
【図１３】本発明の第３の実施形態に係るクロック分配回路設計装置を示す構成図である。
【図１４】図１３のクロック分配回路設計装置の行うクロック配分回路設計方法を示すフローチャートである。
【図１５】適切なバッファ挿入位置を得ることができなかったときの処理例を示す図である。
【図１６】本発明の第４の実施形態に係るクロック分配回路設計装置を示す構成図である。
【図１７】図１６のクロック分配回路設計装置の行うクロック配分回路設計方法を示すフローチャートである。
【図１８】適切なバッファ挿入位置を得ることができなかったときの処理例を示す図である。
【図１９】従来の配置配線方法の概要を示す説明図である。
【図２０】完全対称なクロック分配回路のレイアウト例を示す図である。
【符号の説明】
【００５５】
１０，１０Ａ，１０Ｂ    クロック分配回路設計装置
２０，３０    チップ
２１，３１    末端セル
２２    クロックドライバセル
２３，３２    バッファ配置禁止領域
２４    配線経路
２５    分岐点
２６    バッファ配置禁止位置
２７    バッファ
【図１】
2009211489.tif 000003
【図２】
2009211489.tif 000004
【図３】
2009211489.tif 000005
【図４】
2009211489.tif 000006
【図５】
2009211489.tif 000007
【図６】
2009211489.tif 000008
【図７】
2009211489.tif 000009
【図８】
2009211489.tif 000010
【図９】
2009211489.tif 000011
【図１０】
2009211489.tif 000012
【図１１】
2009211489.tif 000013
【図１２】
2009211489.tif 000014
【図１３】
2009211489.tif 000015
【図１４】
2009211489.tif 000016
【図１５】
2009211489.tif 000017
【図１６】
2009211489.tif 000018
【図１７】
2009211489.tif 000019
【図１８】
2009211489.tif 000020
【図１９】
2009211489.tif 000021
【図２０】
2009211489.tif 000022