(57)【特許請求の範囲】
【請求項１】
チャンネルによって分離された複数の回路ブロックを有する集積回路においてクロック信号を経路設定するためのコンピュータで実行される方法であって、
少なくとも１つのプロセッサを有するコンピュータシステムを用い、該コンピュータシステムが、少なくとも、
上記回路ブロックを複数の回路ブロックグループに分割し、各回路ブロックグループが上記集積回路の連続した領域上を覆うようにすることと、
上記各回路ブロックグループの中心点を少なくとも部分的に集合体中心に基いて決定することと、
複数の回路ブロックグループの各中心点が回路ブロック内にあるかどうかを判定し、あると判定された場合は、決定された各中心点をそれに最も近いチャンネルに移動させることと、
上記中心点間の距離を水平的および垂直的に算出し、水平的および垂直的に算出された距離間の最小差に少なくとも部分的に基づいて上記中心点の組を選択することと、
各選択された中心点の組内の上記中心点間の一組のクロック線を経路設定することと、
上記各組のクロック線の線中心点を決定することと、
上記各組のクロック線の線中心点に主クロック線を経路設定することと、
上記各回路ブロックグループに対して、上記回路ブロックグループの中心点から該回路ブロックグループの回路ブロックにクロック線を経路設定すること
の動作を実行するようプログラムされている、コンピュータで実行される方法。
【請求項２】
前記各回路ブロックグループは同数の回路ブロックを有する請求項１記載のコンピュータで実行される方法。
【請求項３】
前記回路ブロックの数は２の累乗より成る請求項１記載のコンピュータで実行される方法。
【請求項４】
前記回路ブロックの数が２の累乗となるように前記方法のために、多数の回路ブロックが集約されて１つの回路ブロックとして処理される請求項３記載のコンピュータで実行される方法。
【請求項５】
前記主クロック線の幅が上記クロック線の組の両方を結合した幅に等しい請求項１記載のコンピュータで実行される方法。
【請求項６】
前記各回路ブロックグループに対して、上記回路ブロックグループの中心点から該回路ブロックグループの回路ブロックにクロック線を経路設定する動作が、
各回路ブロックグループに対して、該各回路ブロックグループ内の隣接する回路ブロックの対向端部間の回路ブロックグループ内部中心点を決定することと、
各回路ブロックグループに対して、上記クロック線の組の最も近い終点から上記各回路ブロックグループ内部中心点までの距離を算出することと、
各回路ブロックグループに対して、上記距離の平均を水平的及び垂直的に算出し、平均水平測定値と平均垂直測定値を求めることと、
上記回路ブロックグループの全てに対して集合的に、最小の差異をもつ平均水平測定値と平均垂直測定値との組合せを選択することと、
結合されたチャンネル内の上記回路ブロックグループを調整し、実質的に理想の距離を達成することと、
各回路ブロックグループに対して、上記クロック線の組の最も近い終点から上記各回路ブロックグループ内部中心点までクロック線を経路設定すること
を有する請求項１記載のコンピュータで実行される方法。
【請求項７】
各回路ブロックグループに対して、上記回路ブロックグループ内部中心点から上記各回路ブロックまでクロック線を経路設定する工程を更に有する請求項６記載のコンピュータで実行される方法。
【発明の詳細な説明】
【０００１】
関連出願に関する前後参照
この出願は２０００年１月１８日出願の同時係属米国仮出願第60/177,048号の継続出願である。前記出願をここに充分に記載しているように参照によりここに導入している。
【０００２】
発明の背景
発明の技術分野
この発明はエレクトロニックデザインオートメーション（電子工学設計自動制御）に関し、特に、集積回路用のＨ形木構造クロックレイアウトを作成するための方法およびシステムに関する。
【０００３】
背景技術
集積回路（ＩＣｓ）の設計は、多くの場合、機能的特性、信号特性（例えばアナログやデジタル等）または他の区別する特徴に基いて、小区分に分割されることができる。さらに、しばしば所有権の特徴を提案する知的財産権（ＩＰｓ）と呼ばれる予め形成された「仮想」の素子ブロックを用いて、チップ上に完全なシステムを設計することは、チップの設計において益々一般的になりつつある。ほとんどのチップ設計は、チップのすべての回路ブロック（または仮想の素子ブロック）に分配される共通のクロック信号を必要とする。クロック信号は典型的にはチップの（クロック入出力Ｉ／Ｏピンに対応する）信号位置から入力され、金属線を介してＩ／Ｏパッドからクロック信号の使用を必要とするすべての回路ブロック（または仮想の素子ブロック）に付与される。しかし、クロック線の ad hoc レイアウトは不都合である。なぜなら、このようなレイアウトは、通常はクロック信号経路の種々の分枝に沿って不均一なインピーダンス特性をもたらすからである。その結果、異なる回路ブロック（および仮想の素子ブロック）は、時間の異なる瞬間において同じクロック信号を受信し、クロック信号は異なる回路ブロック（または仮想の素子ブロック）において異なる歪特性を有することになるであろう。この場合、不満足なチップ特性をもたらすことになる。
【０００４】
上記異なるクロック信号分枝路における不均一なインピーダンス特性の問題を解消するための１つの技法は、平衡Ｈ形木構造のクロック信号レイアウトを構成することである。平衡Ｈ形木構造のレイアウトでは、クロック信号を搬送するための一組の配線が、回路ブロック（または仮想の素子）を配置する前に木構造内に設けられる。クロック信号のレイアウトの形状は、クロック信号線の各分割部または分離部が理想的な長さの２本の分枝路内に導入されるように構成される。その結果、クロック信号経路の各分枝は同じインピーダンス特性を有することになり、平衡クロック信号を達成している。しかし、従来の平衡Ｈ形木構造レイアウトを使用することの問題点としては、配線の組が回路ブロック（または仮想の素子ブロック）を配置する前に固定され、したがって回路ブロック（または仮想の素子ブロック）を配置することを困難でかつ不便なものとし、ときには所望の回路ブロック（または仮想の素子ブロック）のすべてを配置することができなくなることである。
【０００５】
そこで、順応性があり、回路ブロックまたは仮想の素子ブロックの配置に不都合な制約を設けないで、しかも均一な平衡クロック信号を提供するクロック信号用の平衡Ｈ形木構造レイアウトを提供することができれば好都合である。
【０００６】
発明の概要
本発明は、１態様において、特に、集積回路におけるクロック信号に適用することによく適し、ただし、同じかまたは他の状況において、広い領域に渡って平衡分配を必要とする他の信号に対しても適用可能である平衡Ｈ形木構造を作成するためのシステムと方法を提供する。
【０００７】
ここで開示の好ましい実施例では、回路ブロックの数が２の累乗（好ましくは１６個以下の回路ブロック）を有する回路設計が提供される。回路ブロックは等しい数（例えば４個）の回路ブロックグループに分割される。上部のＨ形木クロック構造は、ガイドポストとしての各回路ブロックグループの集合体の中心を用いて設定され、配線長さの調整を行ってＨ形木構造の平衡処理を行う。下部のＨ形木クロック構造は、クロック線の終点のガイドポストとしての隣接または近接の回路ブロックグループの複数組の間の中心点を用いて設定され、必要に応じて個々の回路ブロックに対する配線区分を経路設定する。
さらに、種々の実施例、変形例および補強例もまたここで説明される。
【０００８】
発明を実施するための好ましい形態
ここでは種々の実施例が一般的な意味での回路ブロックを用いて構成された集積回路を参照して説明しているが、ここに含まれる原理は、仮想の素子ブロック又は任意の他の形体の回路ブロック、または任意の回路／素子ブロックの混合形体により構成された回路およびシステムに適用され、本発明は特定の形体の回路ブロックに限定されることを意図していなことを理解すべきである。ここで述べる技術は、複数の仮想素子が共に配置されて単一のチップ上に凝集したシステムを形成する環境に特によく適している。
【０００９】
ここで述べる１つまたは複数の実施例では、集積回路でのクロック信号への適用に特に好適な平衡Ｈ形木構造を構成するためのシステムと方法が提供されている。種々の実施例では、クロック配線のレイアウトは、回路ブロックの初期的または予備の配置が実行された後で行われ、回路ブロックが配置可能な場所に関してより高い度合の順応性を可能にしている。
【００１０】
特に有用な形体の回路ブロックは仮想素子ブロックと呼んでもよい。仮想素子ブロックは、典型的には、特別な回路設計に望ましい抽象化の水準に基いて、多数の工程を含むことができる設計処理の一部として生成される。チップの設計者はしばしば電子設計自動制御（ＥＤＡ）ソフトウェアツールを使用して設計処理を補佐し、原型化または製作の前にチップ設計のシミュレーションを可能にしている。ＥＤＡソフトウェアツールを使用したチップの設計は一般に反復処理を含み、チップ設計は徐々に完成される。典型的には、チップの設計者は、通常、必要な回路設計の部分を表示できる高品質のグラフィック性能を有するコンピュータ作業場で情報を入力することにより、回路を作成している。包括的な設計の方法論が一般に採用され、Verilog または VHDL などのハードウェア記述言語（ＨＤＬｓ）を使用し、例えば、設計者はこれによって回路の機能的要素を階層的に規定し、各要素をさらにより小さな要素に分解することにより、集積回路を作成する。
【００１１】
集積回路の種々の要素はそれらの機能的動作と関連する入力および出力により最初に規定される。設計者は、また、基盤設計ツールを用いて回路の素子の配置についての基礎の構造的な情報を提供してもよい。これらの設計状態の間、設計者は通常はかなりの量の階層情報を使用して回路を構成し、そして典型的には設計における実質的な規則性を提供している。
【００１２】
ＨＤＬまたは他の高レベル記述から、実際の論理セル実行手段が典型的には論理合成により決定され、回路の機能的な記述を特別な回路の実行手段に変換する。そして論理セルは「配置(placed)」され（即ち、回路レイアウト内において特定の座標位置が付与され）、「経路設定(routed)」（即ち、設計者の回路規定に基いて配線または接続）される。配置および経路設定のソフトウェア処理手順は、一般に論理合成処理により生成された平坦化ネットリストをそれらの入力として受容している。この平坦化ネットリストは目標の標準セルライブラリから特定の論理セルインスタンスを確認し、上記特定のセル対セル接続性を記述する。
【００１３】
データ経路の配置と経路設定を強調した特別なチップ設計処理の更なる説明が、例えば、米国特許 5,838,583 号に記載されており、参照によりここに導入して充分に記載した。
【００１４】
図１はここで説明した種々の実施例に関連して使用されるコンピュータシステムの図である。図１に示すように、コンピュータシステム１００は表示装置１９１に接続されたコンピュータ１１０と種々の入出力装置１９２を有する。コンピュータ１１０は、システムの速度と処理要求を満たすのに充分な量の作業メモリ(例えばＲＡＭ等）とともに１つ又は複数のプロセッサ（不図示）を有してもよい。コンピュータ１１０は、例えば、カリフォルニア州サンタクララのサンコンピュータ会社（Sun Computers, Inc.）製の市販のＳＰＡＲＫＴＭワークステーションまたは他の適当なコンピュータを有する構成としてもよい。
【００１５】
コンピュータ１１０は、１実施例では、データ経路基盤設計部１２０とデータ経路配置部１３０と経路スペース概算部１４０を有する保持プログラムコードを含む。データ経路基盤設計部１２０はデータ経路機能の規定のためにデータ経路領域を備え、回路設計者によって相互作用する基盤設計動作のためにこれら領域上に制約を設け、データ経路配置部１３０の配置動作の制御を行う。データ経路配置部１３０は、回路設計者によって規定された制約に基いて、データ経路領域内にデータ経路機能の配置と、各データ機能内に論理セルインスタンスの配置を決定する。経路スペース概算部１４０は、データ経路配置部１３０によってその機能の配置が付与されたデータ経路機能を経路設定するために必要な経路スペースを概算する。
【００１６】
上記システムの構成要素の保持部において、チップ基盤設計部１５０と全体／細部経路設定部１６０と基準セル配置部１７０と論理合成部１８０とＨＤＬエディタ１９０が好適に使用されてもよい。チップ基盤設計部１５０と全体／細部経路設定部１６０と基準セル配置部１７０と論理合成部１８０とＨＤＬエディタ１９０の動作は、これらの構成要素の設計が従来技術の電子設計自動制御において公知であるように、従来と同じ動作である。これらのシステム構成要素の市販例としては、それぞれプレビュー(PreviewTM)、セル(CellTM)、キュープレイス(QPlaceTM)、シナジー(SynergyTM)、ベリログ(Verilog)がある。コンピュータ１１０は、クロック信号レイアウト用の平衡Ｈ形木構造の構成における補佐のために種々のツールを備えてもよい。このようなツールの例、またはそれらの一般的な機能性の例については後述する。
【００１７】
コンピュータ１１０は、好ましくは、レイアウトデータベース１９５を提供する多量保持装置（例えば磁気ディスクまたはカートリッジ保持部）と連結され、前記システムの要素がインターフェース動作を行う。レイアウトデータベース１９５はＥＤＩＦデータベーススタンダードを用いて実現してもよい。また、コンピュータ１１０は、回路設計において利用可能な電気部品の特徴を特定する１つまたは複数個のライブラリ（不図示）を含む多量格納部を有するかまたはその格納部に接続されてもよい。
【００１８】
図２において、レイアウトデータベース１９５に格納された仮想回路設計データにより表示可能な簡略化された集積回路２００の概略図が示されている。実際のもっと現実的な集積回路設計では、集積回路２００は更に複雑になるであろう。しかし、図２は図示の目的には有用である。そこに示すように、集積回路２００は、複数個の制御領域２０１と、データ経路領域２０３と、メモリ２０５とを有する。種々の制御領域２０１とデータ経路領域２０３とメモリ２０５が、通常は多重ビットをスパンするデータバス２０７と相互接続されている。各データ経路領域２０３は複数のデータ経路機能部２０９を備えてもよい。データ経路機能部２０９はデータバス２０７から利用可能ないくつかのビットまたはすべてのビットを利用してもよい。データ機能部３０９は、いくつかの信号形体またはデータバス２０７により通過されたデータの論理変換を可能にする複数のセルインスタンス２１５を有してもよい。データ経路機能部２０９内のセルインスタンス２１５は、通常はデータ経路機能部２０９上に搬送されたデータに対して作用する。
【００１９】
レイアウトデータベース１９５の図式概要で表されているように、集積回路２００は複数のインスタンスと複数のネットを有する。ネットは各インスタンス上のピンを関連づけることにより多数のインスタンスを相互接続する。
【００２０】
図３は回路設計のための一般的な処理フロー図であり、前述のような回路抽象化の種々のレベルのいくつかを図示している。図３に示すように、ＨＤＬファイル形式のレジスタトランスファ論理（ＲＴＬ）ファイル３０１または他の高レベル機能的記述は編集処理３０３を施され、該処理は典型的には論理合成の形式を有し、回路の機能的記述をネットリストファイル３０４の形式で保持できる特定の回路実行手段に変換する。編集処理３０３の一部として、一般に要素ライブラリ３０６が参照され、該要素ライブラリ３０６はどんな種類の設計要素が利用可能か及びそれらの機能的接続性を決定するために必要なそれらの設計要素の特徴に関する情報を保持している。この処理段階において、回路設計に使用される要素数を最小にするために回路の最適化においてある試みを成すことができる。前述のように、ネットリストファイル３０４は一般に目標の基準セルライブラリから特定の論理セルインスタンスを識別し、特定のセル対セルの接続性を記述する。
【００２１】
図３に示す物理設計処理３０９の適用により、ネットリストファイル３０４の論理セルが次に配置及び経路設定され、レイアウトファイル３１０となる。物理設計処理３０９は領域最小化の努力を含むことができる。この処理段階において、ゲートのサイズおよびネットリストファイル３０４内に存在可能な他の要素に関する情報を得るために、要素ライブラリ３０６が用いられる。
【００２２】
さらに図３に示すように、レイアウトファイル３１０から確認処理３１２を実行することができ、その結果、例えばＧＤＳII又はＣＩＦ形式のマスクファイル３１５となる。マスクファイル３１５は鋳造に対して設けることができ、鋳造が実際の集積回路を製造することが可能となるのに充分な情報を保持している。
【００２３】
図４は、クロック信号のレイアウト用等の平衡Ｈ形木構造を構成するための好ましい処理工程４００のフロー図である。処理４００は（図１に示すコンピュータ１１０等の）コンピュータを用いて回路設計者により実行することができ、該コンピュータは経路設定へのアクセスおよび後述するような他の種々のソフトウェアツールを有していることが好ましい。
【００２４】
図４に示す処理４００の第１の工程４０１では、回路設計のための回路ブロックの組が好ましくは必要に応じて結合され、回路ブロック数が所定最大値以下となるようにされる。この工程４０１の基本的な理由は、回路ブロック数が多くなるほど上部木構造レベルでより大きな配線幅が必要となり、その結果、上部レベルでの配線幅が望ましくないものとなるためである。例えば、Ｈ形木構造クロックレイアウトを用いた３２個の回路ブロックを有する回路設計は、回路ブロックを経路設定するために使用される最小の配線幅の３２倍以上のトランキ（幹）のサイズ（即ち、上部レベル入力クロック線）を必要とするであろう。好ましい実施例では、回路ブロックの所定最大数は１６である。または、回路ブロックの所定最大数は他の２の累乗である。回路ブロックの数が選択された２の累乗の数（即ち、１６）より多い場合は、ブロックは好ましくは集団化されて、その数が選択された２の累乗の数に等しくなるようにされる。このような処理の例を図５と図６に示す。
【００２５】
図５は、回路ブロックの初期または予備配置後（即ち、基盤設計後）で、クロック信号の経路設定前の回路設計５００の例を示す。図６は同じ回路設計５００であるが、図示的に簡略化されて回路ブロックの相対位置と大きさのみを示している。図５および図６に示すように、溝５２０で分離された全部で１７個の回路ブロック５０２が回路設計５００内に存在する。好ましい方法によれば、２個の回路ブロック５０２ａ，５０２ｂが結合されて、クロックレイアウトのために単一の回路ブロック５０２として扱われる。図６は図５の回路設計５００の変形を示し、２個の小さな回路ブロック５０２ａ，５０２ｂが結合されて、１つのより大きな回路ブロック５０２ｃに収束されている。好ましくは、集団化またはグループ化のために選択された２個の回路ブロックは、後続のステップ４０３を含む処理工程４００の後続ステップを容易にするように選択され、残りのブロック５０２はほぼ等しい領域の多数のグループ（好ましくは４個）に分割され、各グループが最も接近した領域の回路ブロック５０２を有するようにされる。
【００２６】
回路設計５００内に８個以下の回路ブロック５０２がある場合は、処理４００の工程のいくつかは省略することができる。回路ブロック５０２の個数を次の最下位の２の累乗に各削減することにより、処理４００のもっと多くの工程を省略することができる。
【００２７】
図４に示す処理４００の次のステップ４０３では、残りのブロック５０２がほぼ等しい領域の４つのグループに分割され、各グループは互いに近接した回路ブロックを有するように５０２を有するように処理される。一般に、各回路ブロック５２０は、回路設計５００が抽象化レベルで分割され得る４つの象限の１つと関連付けることができる。典型的な回路設計５００では、回路ブロック５０２のの領域は一般に配置時間によって知られるであろう。したがって、回路ブロック５０２の各可能なグループの全領域を合計することは容易なことである。図７は図６の回路設計の図であり、回路ブロック５０２はほぼ等しい領域の４つのグループＡ，Ｂ，Ｃ，Ｄに分割されている。回路ブロックＡ１，Ａ２，Ａ３，Ａ４はグループＡ内にあり、回路ブロックＢ１，Ｂ２，Ｂ３，Ｂ４はグループＢ内にあり、回路ブロックＣ１，Ｃ２，Ｃ３，Ｃ４はグループＣ内にあり、回路ブロックＤ１，Ｄ２，Ｄ３，Ｄ４はグループＤ内にある。
【００２８】
図４に示す処理４００の次の一連のステップ４０５〜４１７では、Ｈ形木構造クロックレイアウトの上部構造が生成される。詳しく説明すると、ステップ４０５において、各回路ブロックグループＡ乃至Ｄの中心点（即ち、集合体の中心）が決定される。各回路ブロック５０２の既知の領域とその配置情報を付与することにより、各回路ブロックグループＡ乃至Ｄの中心点の決定は直進的代数演算を含む。図８は図７の回路設計５００の図であり、回路ブロックグループＡ，Ｂ，Ｃ，Ｄのそれぞれの近似中心点５１１，５１２，５１３，５１４を示している。次のステップ４０６では、中心点５１１，５１２，５１３，または５１４のいずれかが回路ブロック５０２内に存在するかどうか判定される。もし存在しなければ、処理４００はステップ４０８に進む。存在する場合は、ステップ４０７において、中心点はそれに最も近い溝（チャンネル）部５２０に移動される。図９は図７の回路設計５００を示し、中心点５１２がブロックＢ１の外部の新しい中心点５１２’に移動され、中心点５１４がブロックＤ２の外部の新しい中心点５１４’に移動され、その結果、変更された中心点５１１，５１２’，５１３，５１４’の組となっている。
【００２９】
次のステップ４０８では、変更された４つの中心点５１１，５１２’，５１３，５１４’の組は垂直的に組合され、次に再度水平的に組合される。したがって、図示の例では、中心点５１１は中心点５１１’と垂直的に組合され、中心点５１３は中心点５１４’と垂直的に組合される。次に、中心点５１１は中心点５１３と水平的に組合され、中心点５１２’は中心点５１４’と水平的に組合される。次のステップ４０９では、非対角線位置の各組合わせ中心点間の溝部配線長さが測定される。溝部配線長さの測定は、「マンハッタン距離」を用いて行われる、即ち、最短の溝経路を用いるが、いずれの回路ブロック５０２も通過しない溝部５２０に沿って測定される。図１０は前記技術による溝部配線長さの測定を示す。中心点５１１と５１３を水平的に接続する溝部配線６０１の長さは長さａに等しく、中心点５１２’と５１４’を水平的に接続する溝部配線６０４の長さは長さｅ，ｆ，ｇの合計に等しく、中心点５１１と５１２’を垂直的に接続する溝部配線６０２の長さは長さｈ，ｉ，ｊの合計に等しく、中心点５１３と５１４’を垂直的に接続する溝部配線６０３の長さは長さｂ，ｃ，ｄの合計に等しい。
【００３０】
次のステップ４１０では、上記中心点の各組合せに対する溝部配線長さが比較され、その差が算出される。即ち、溝部配線６０１の長さは溝部配線６０４の長さと比較され（差Δｈを生じ）、溝部配線６０２の長さは溝部配線６０３の長さと比較され（差Δｖを生じ）る。これらの比較は絶対距離測定の方法で行うことができ、または他の方法として比率（パーセンテージ）により行うこともでき、またはチップの長さ及び幅の比率に基く重量比較で行うこともできる。次のステップ４１１では、中心点の組合せ（即ち、垂直的または水平的）が、組合せ距離が最も等しくなるように選択される（即ち、最小の差ΔｈまたはΔｖが選択される）。この例では、ΔｈはΔｖより小さい場合を想定すると、中心点の水平的組合せが選択されるであろう。（配線６０２と６０３に対して）長さの最も等しい配線６０１と６０４の組合わせを最初に選択する目的は、平衡Ｈ形木構造レイアウトをより容易に達成するためである。同様に、「マンハッタン距離」測定が成される理由は、回路ブロック５０２の周囲及びその間に経路設定された配線６０１と６０４の全長が、各クロック経路に沿ってインピーダンスを平衡処理するために考慮される必要があるためである。
【００３１】
次のステップ４１２では、選択された組の中心点が再度必要に応じて調整され、このとき組合せられた距離が（「マンハッタン距離」測定を用いて）等しくなるように調整される。図１１は、配線長さ６０１と６０４が等しくなるように中心点５１２’を中心点５１２”に移動することを示す。移動すべき中心点５１１，５１２’，５１３，または５１４’の選択は種々の基準に基いて行うことができる。例えば1実施例では、調整済中心点を元の中心点から最大可能範囲まで移動することを防止することを目的としている。しかし、移動すべき中心点５１１，５１２’，５１３，または５１４’の選択の他の基準も使用可能である。
【００３２】
次のステップ４１３では、クロック線が各中心点の組合わせにおける中心点間に経路設定される。図１２は、他の部品間において、各中心点の組からの中心点間（即ち、中心点５１１と５１２間、および中心点５１２”と５１４’間）に水平的に経路設定された２本のクロック線５２１と５２２を示す図である。次のステップ４１４では、各配線５２１と５２２のそれぞれの中心点５２４と５２５が決定される。次のステップ４１５では、さらに図１２に示すように、クロック線５３０が、各配線５２１と５２２の中心点５２４と５２５間に経路設定される。クロック線５３０の幅は好ましくは配線５２１と５２２の幅の合計、即ち、配線５２１または５２２の２倍の幅に等しい。次のステップ４１６では、クロック線５３０の中心点５３１が決定される。次のステップ４１７では、図１２に示すように、クロック線５３５が、ターンを最小にしながら、クロック線５３０の中心点５３１から回路設計の最近接端部まで経路設定される（距離的経路設定）。クロック線５３５は好ましくはクロック線５３０と同じ幅（即ち、各クロック線５２１，５２２の２倍の幅）である。１態様におけるクロック線５２１，５２２，５３０，５３５は、平衡Ｈ形木構造クロックレイアウトの上部構造５３６を形成する。
【００３３】
一旦、Ｈ形木構造クロックレイアウトの上部構造５３６が設定されると、Ｈ形木構造クロックレイアウトの下部構造が展開される。全体のＨ形木構造クロックレイアウトが図１３に図示され、以下の説明に関連して時々参照されるであろう。図４に示す好ましい処理４００のステップ４２０で始まる後続のステップの一団は、各回路ブロックグループＡ，Ｂ，Ｃ，Ｄに対して実行される。各回路ブロックグループに対して隣接回路ブロック５０２の端部間の中心点が決定される。このステップ４２０は図１４を参照して説明できる。そこに図示されているように、中心点６９１は回路ブロックＡ１とＡ３の対向端部間に決定され、他の中心点６９２は回路ブロックＡ１とＡ２の対向端部間に決定され、等々と４個の中心点６９１，６９２，６９３，６９４まで決定される。中心点６９１，６９２，６９３，６９４の決定は、回路設計５２０内の回路ブロックＡ１，Ａ２，Ａ３，Ａ４の既知の配置及び大きさが付与された自動制御ソフトウェアツールによって実行することができる。
【００３４】
次のステップ４２１では、Ｈ形木構造クロックレイアウトの上部構造５３６の最も近い終点の端部（この例では配線５２１の端部５１１）と各中心点６９１，６９２，６９３，６９４との間の距離が算出される。これらの距離の算出は、（中心点と配線５２１の位置情報が付与された）直進的自動制御ソフトウェアルーチンを用いて達成することも可能であり、その測定結果はそれぞれｘ１，ｙ１，ｘ２，ｙ２となる。次のステップ４２２では、２つの水平的測定値（ｘ１とｘ２）の平均値および２つの垂直的測定値（ｙ１とｙ２）の平均値が算出され、その結果、平均の水平及び垂直測定値ｘavg＝（ｘ１＋ｘ２）／２とｙavg＝（ｙ１＋ｙ２）／２が得られる。ステップ４２２は４個の回路ブロックグループＡ，Ｂ，Ｃ，Ｄすべてに対して実行され、その結果、各回路ブロックグループに対する平均測定値ｘavgとｙavgが求められる。
【００３５】
次のステップ４２５では、最小の偏差で４つの平均測定値ｘavgとｙavgの組み合わせ（特定の回路ブロックグループからｘavgかまたはｙavgを選択すること）が決定される。最小の偏差をもつ１つを決定するために、すべての可能な組合せ（全部で１６組）が判定される。例えば、最小の偏差をもつ組合せは、ｘavgが回路ブロックグループＡとＣに対して選択され、ｙavgが回路ブロックグループＢとＤに対して選択された１つであり得る。基本的な目的は、下部Ｈ形木構造の各レベルにおいて同じ長さの配線長さに到達し、レイアウトを平衡化することである。
【００３６】
次のステップ４２６では、図１５に更に示すように、想像線６９７と６９８が、２個の隣接回路ブロック５０２の各々の端部から等距離にあるように、経路溝スペースの中心に沿って形成される。想像線６９７と６９８は好ましくはそれらが入力される回路ブロック５０２の角部によって連結される。次のステップ４２７では、（４個の回路ブロックグループＡ，Ｂ，Ｃ，Ｄすべてに同時に対する）中心点６９１と６９４が（束縛された）想像線６９７と６９８に沿って調整され、配線５２１の端部５１１からの距離を等しくするとともに、４個の回路ブロックグループすべての配線分枝線（合計８本）に対して共通の長さを達成する。中心点調整の例を図１５に示し、中心点６９１は（連結された）想像線６９７に沿って新しい中心点６９１’に調整される。この技法は、８本のすべての配線に対する共通長さに収束するように試みることにおいて、例えば、４個の回路ブロックグループＡ，Ｂ，Ｃ，Ｄすべての種々の中心点に順次適用することができる。または、８本のすべての配線に対する共通長さに収束することが可能であることを確かめる前に、境界線の判定を完了してもよい。
【００３７】
共通長さに収束することが達成された場合、次のステップ４３０で、クロック線セグメントが各組の中心点に対して経路設定される。それによって得られた回路ブロックグループＡのクロック線セグメントが、図１３で配線５６２として集合的に図示されている。各回路ブロックグループＢ，Ｃ，Ｄに対しても同じ処理工程が繰返され、それぞれ配線５６３，５６１，５６０が生成される。各配線５６２，５６３，５６１，５６０は好ましくは同じ長さであり、上記工程によって達成される。各配線５６２，５６３，５６１，５６０は経路溝の中心で終端すべきであり、図１３はこの観点で設計する必要はないことに留意すべきである。経路溝の中心で終端させることにより、次のレベルでの配線は等しい長さとなり、Ｈ形木構造の次の下部と通常最後の階層を平衡化する。
【００３８】
共通長さに収束することが達成されない場合、またはクロック信号レイアウトを最適化するために、ステップ４３５で記載しているように、２個の回路ブロック５０２を回路ブロックグループ間で「交換」してもよい。例えば、図１３では、回路ブロックＣ３とＤ４が交換され、配線５６１が回路ブロックＣ４とＤ４（Ｃ３ではなく）に接続し、配線５６０が回路ブロックＤ３とＣ３（Ｄ４ではなく）に接続する。自動化された処理では、交換は、共通長さに収束することが達成されるまで、異なる回路ブロック５０２を用いて引き続き試みることができる。
【００３９】
処理４００の次のステップは、ある程度まで、最下位レベルの回路ブロック５０２が単独ブロックであるか、またはここで前述の集合化処理により形成された複合ブロックであるか（または１６個の代わりに３２個のブロックに関するレイアウトを実行した結果であるか）どうかに依存する。最下位レベルの回路ブロック５０２が単独ブロックである場合は、ステップ４３６で、各回路ブロックグループＡ，Ｂ，Ｃ，Ｄの２組の回路ブロック５０２の各々に対して、配線が、各組の回路ブロック５０２間に、経路中央部で組の中心と交差するするように経路設定される。したがって、例えば、配線５７５は配線経路の中央部において回路ブロックＡ１とＡ３の中心と交差し（即ち、図１５の想像線６９７）、同様に、配線５７４は配線経路の中央部において回路ブロックＡ２とＡ４の中心と交差すべきである（即ち、図１５の想像線６９８）。最終結果は、図１３に示すように、一組のブロック対ブロックを接続する配線集団５７０乃至５７８が形成される。
【００４０】
他方、最下位レベルの回路ブロック５０２の一方または両方が複合ブロックかまたはブロックの集団である場合は、ステップ４３６で、複合回路ブロック５０２の「端部」と他の回路ブロック（または複合回路ブロックの端部）５０２との間に、配線が経路中央部において２個のブロック５０２の中心と交差するように経路設定され、これは単独の回路ブロック５０２の場合と同様である。配線の終端では、バッファが配置される。バッファを追加する目的は、単独の回路ブロックでの終端と一致するようにブロックの複合グループでＨ形木構造を終端することであり、これは各単独の回路ブロックがそれのクロックピンにおいてバッファを有することを想定しているためである。複合グループはピンを備えないで、むしろ２個以上の回路ブロックを備え（各々それ自体の規定のＩ／Ｏピンの組を備える）ているので、複合グループの端部に配置されたバッファは、その特性を、バッファが本来配置された他の回路ブロックに一致させる。バッファから、配線を、複合回路ブロック５０２に関して内部の回路ブロックに経路設定してもよい。このような複合回路ブロックに関して内部的でありバッファを超えた配線は、Ｈ形木構造のインピーダンスに影響を与えない。
【００４１】
次のステップ４５０では、最大のブロック対ブロック経路が決定される。即ち、最長の配線５７０乃至５７７が決定される。すべての配線５７０乃至５７７が等しい長さでない場合は、レイアウトは可能な限り平衡化されたものではないであろう。したがって、後続のステップ４５１では、各配線５７０乃至５７７と配線５７０乃至５７７の最大長さの配線との差を考慮して、配線の接続位置及び／又は大きさを変更することにより、配線の長さが調整される。１実施例では、このステップは、最大でないブロック対ブロック長さのすべてを最大のブロック対ブロック長さに等しくなるように増大することにより達成される。最終ステップ４５５では、Ｈ形木構造レイアウトが完成される。
【００４２】
ある例では、溝５２０は、Ｈ形木構造レイアウトの種々の配線を収容するために、幅を広げる必要があるかもしれないことが留意される。しかし、基盤設計の改善は、通常は、クロック信号の経路設定に適した幅の可能な限り比較的真っ直ぐで長い溝５２０を提供することを目的として行われている。
【００４３】
場合によっては、配線はチップ設計の下位レベルからチップ設計の上位レベル、またはその逆向きに経路設定されるであろう。このようなチップレベルの変換は「バイアス（ｖｉａ’ｓ）」と呼ばれる。好ましくは、「バイアス」によって提供された追加の配線長さは、配線の距離を測定するとき、またはクロック線をレイアウトするときに、平衡Ｈ形木構造クロックレイアウトを確実にするために、考慮される。また、クロック経路の１分枝線上にバイアス経路が存在する場合は、同様のバイアス経路がクロック経路の他の分枝線に付加され、Ｈ形木構造レイアウトを平衡化することが好ましい。
【００４４】
２通りの方法の一方で、隣接配線（例えば、１トラック離間）が使用されてもよい。最初に、隣接配線が接地部により分離される。または、配線は、配線間に開口トラックを有して２本以上の離間トラック線となるように配置することもできる。互いに交差する配線がチップの異なるレベル面上に存在しなければならないことも理解されるであろう。
【００４５】
回路ブロック５０２は全体が「軟体」であるか、または「軟体の環状部」を有する硬体であり、それらのピン（特に、クロック入力ピン）がＨ形木構造レイアウトによるクロック信号を受信するのに適した位置に再配置できることが好ましい。「軟体の環状部」は一般に回路ブロック５０２の入出力ピンの順応性のある配置と呼ばれる。
【００４６】
ここでは種々の実施例がクロック信号に関して説明されているが、同様の原理は多数の異なる回路ブロック間の平衡分布から利点を得るであろう他の種類の信号にも適用可能であることを理解すべきである。
【００４７】
本発明の好ましい実施例がここで説明されているが、本発明の概念および範囲内にある多くの変形が可能である。このような変形は明細書と図面を参照することにより当業者に明確になるであろう。したがって本発明は添付の請求項の範囲内以外に限定されるべきではない。
【図面の簡単な説明】
【図１】  ここで述べた本発明の種々の実施例に関して使用可能なコンピュータシステムの図
【図２】  仮想素子ブロックの形体で表記可能な簡略化された集積回路の図
【図３】  回路抽象化の種々のレベルを示す回路設計のための一般的な処理フローの図
【図４】  クロック信号のレイアウト用などの平衡Ｈ形木構造を構成するための好ましい技法を示す処理フロー図
【図５】  回路ブロックの初期または予備配置後で、クロック信号の経路設定前の回路設計例の図
【図６】  ２個の小回路ブロックを１個の大回路ブロックに変形した図５の回路設計の図
【図７】  回路ブロックがグループに分割された図６の回路設計の図
【図８】  回路ブロックの各組の近似中心点を示す図７の回路設計の図
【図９】  近似中心点が最近接の隣接溝の新中心点に移動された図７の回路設計の他の図
【図１０】  図９の変形中心点を用い、垂直及び水平的に、中心点の組間の距離の比較を示す図
【図１１】  クロック信号レイアウトの上部構造の配線長さを等しくするための中心点の調整を示す図
【図１２】  クロック信号レイアウトの上部構造の図
【図１３】  図７の元の回路設計の完全なＨ形木構造クロック信号レイアウトの例を示す図
【図１４】  Ｈ形木構造クロックレイアウトの下位レベルをレイアウトするときに有用な演算を示す図
【図１５】  Ｈ形木構造クロックレイアウトの下位レベルをレイアウトするときに有用な演算を示す図
【符号の説明】
１００…コンピュータシステム、  １１０…コンピュータ、  １２０…データ経路基盤設計部、  １３０…データ経路配置部、  １４０…経路スペース概算部、  １５０…チップ基盤設計部、  １６０…全体／細部経路設定部、  １７０…基準セル配置部、  １８０…論理合成部、  １９０…ＨＤＬエディタ、  １９１…表示装置、  １９２…入出力装置、  １９５…レイアウトデータベース、  ２００…集積回路、  ２０１…制御領域、  ２０３…データ経路領域、  ２０５…メモリ、  ２０７…データバス、  ２０９…データ経路機能部、  ２１５…セルインスタンス、  ３０１…（ＲＴＬ）ファイル、  ３０３…編集処理、  ３０４…ネットリストファイル、  ３０６…要素ライブラリ、  ３０９…物理設計処理、  ３１０…レイアウトファイル、  ３１２…確認処理、  ３１５…マスクファイル、  ５００…回路設計、  ５０２…回路ブロック、  ５１１，５１２，５１３，５１４、６９１，６９２，６９３，６９４…中心点、  ５２１、５６２，５６３，５６１，５６０…配線  ６０１、６０２、６０３、６０４…溝部配線、  ６９７、６９８…想像線、  ７００…Ｈ形木構造クロックレイアウト。
【図１】
0004676123.tif 000002
【図２】
0004676123.tif 000003
【図３】
0004676123.tif 000004
【図４】
0004676123.tif 000005
【図５】
0004676123.tif 000006
【図６】
0004676123.tif 000007
【図７】
0004676123.tif 000008
【図８】
0004676123.tif 000009
【図９】
0004676123.tif 000010
【図１０】
0004676123.tif 000011
【図１１】
0004676123.tif 000012
【図１２】
0004676123.tif 000013
【図１３】
0004676123.tif 000014
【図１４】
0004676123.tif 000015
【図１５】
0004676123.tif 000016