(57)【要約】【課題】カスタム・マクロの高速ルーティングを提供すること【解決手段】集積回路（ＩＣ）のレイアウト図および配線図を作り出すためのシステムは、階層回路図を受け取り、配置済みレイアウトを作り出すように構成された配置エンジンを含む。本システムは、また、階層回路図を受け取り、フラット・レイアウトを作り出すように構成されたフラット・レイアウト・エンジンと、配置エンジンおよびフラット・レイアウト・エンジンに結合されたバック・アノテーション・エンジンとを含み、バック・アノテーション・エンジンは、階層配置済みレイアウトおよびフラット未配置レイアウトを受け取ってそれらからフラット配置済みレイアウトを作り出すように構成されている。【選択図】図１
2010140474.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）のレイアウト図および配線図を作り出すシステムであって、
階層回路図を受け取り、配置済みレイアウトを作り出すように構成された配置エンジンと、
前記階層回路図を受け取り、フラット・レイアウトを作り出すように構成されたフラット・レイアウト・エンジンと、
前記配置エンジンおよび前記フラット・レイアウト・エンジンに結合され、前記階層配置済みレイアウトおよびフラット未配置レイアウトを受け取ってそれらからフラット配置済みレイアウトを作り出すように構成されたバック・アノテーション・エンジンと、を含むシステム。
【請求項２】
前記階層回路図が、集積回路の階層表現を含む、請求項１に記載のシステム。
【請求項３】
前記配置済みレイアウトが、接続性情報を含まない、請求項１に記載のシステム。
【請求項４】
前記フラット・レイアウトが、階層情報を含まないが、接続性情報を含む、請求項１に記載のシステム。
【請求項５】
前記フラット配置済みレイアウトが、接続性情報を含む、請求項１に記載のシステム。
【請求項６】
前記バック・アノテーション・エンジンが、前記階層配置済みレイアウトを横断し、前記配置済みレイアウトを横断している間に取った経路と前記フラット・レイアウトからの前記接続性情報を組み合わせるように構成されている、請求項１に記載のシステム。
【請求項７】
前記バック・アノテーション・エンジンが、ＳＫＩＬＬコード・アルゴリズムで形成されている、請求項６に記載のシステム。
【請求項８】
集積回路（ＩＣ）をルーティングする際に使用するためのフラット配置済みレイアウトを作り出す、コンピュータをベースにした方法であって、
前記集積回路の階層回路図を作り出すステップであって、前記階層回路図が、それぞれ１つまたは複数の対象セルを含む複数の回路コンポーネントの高レベル記述を含むものであるステップと、
前記階層回路図から、階層配置済み未ルーティング・レイアウトを作り出すステップと、
前記階層回路図から、前記１つまたは複数の対象セル間の接続性情報を含むフラット・レイアウトを作り出すステップと、
各対象セルについて、前記階層配置済みレイアウトを横断し、相対的な配置情報を蓄積し、前記相対的配置情報を前記接続性情報にバック・アノテーションするステップと、
前記バック・アノテーションの結果からルーティング図を作り出すステップと、を含む方法。
【請求項９】
前記階層回路図が、計算システムで作り出される、請求項８に記載の方法。
【請求項１０】
前記配置済み未ルーティング・レイアウトおよび前記フラット・レイアウトが、計算システムで前記階層回路図から作り出される、請求項８に記載の方法。
【請求項１１】
各対象セルが、前記対象セルに到達するために横断された各階層レベルの連なりであるインスタンス呼称を割り当てられる、請求項８に記載の方法。
【請求項１２】
前記ルーティング図が、前記相対的配置情報のバック・アノテーションから生成される、請求項８に記載の方法。
【請求項１３】
フラット配置済み回路図を作り出すためのコンピュータ・プログラム製品であって、
集積回路の階層回路図を作り出すステップであって、前記階層回路図が、それぞれ１つまたは複数の対象セルを含む複数の回路コンポーネントの高レベル記述を含むものであるステップと、
前記階層回路図から、配置済み未ルーティング・レイアウトを作り出すステップと、
前記階層回路図から、前記１つまたは複数の対象セル間の接続性情報を含むフラット・レイアウトを作り出すステップと、
各対象セルについて、前記配置済みレイアウトを横断し、相対的な配置情報を蓄積し、前記相対的配置情報を前記接続性情報にバック・アノテーションするステップと、
前記バック・アノテーションの結果からルーティング図を作り出すステップと、を含む方法を容易にするために処理回路によって実行される命令を格納する、前記処理回路によって読取り可能な記憶媒体を備えるコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に関し、より詳細には、集積回路（ＩＣ）のコンポーネント間の接続をルーティングすることに関する。
【背景技術】
【０００２】
ＩＣレイアウト、ＩＣマスク・レイアウト、またはマスク設計としても知られている集積回路レイアウトは、集積回路のコンポーネントを構成する金属層、酸化物層、または半導体層のパターンに対応する平面幾何学的形態によって、集積回路を表現したものである。標準的なプロセスを使用するとき、−標準プロセスでは、多くの化学的、熱的、また写真的変動要素の相互作用が知られており、注意深く制御される−最終的な集積回路の動作は、それらの幾何学的形態の位置および相互接続に大きく依存する。レイアウト技術者の仕事は、チップを構成する全てのコンポーネントを、全ての条件を満たすように配置し接続することである。通常目標は、性能、サイズおよび製造能力である。
【０００３】
当初、ＩＣ設計のレイアウトは、初期のＰＣＢ設計によく似たやり方で、不透明なテープおよびフィルムを使用して手で行われた。現代のＩＣレイアウトは、ＩＣレイアウト・エディタ・ソフトウェアを使って、または、配置配線ツールまたはＳＤＬ（schematic driven layout）ツールなどのＥＤＡ（電子的設計自動化）ツールを使用しても行われる。幾何学的形態を選択し位置付けする手操作は、「ポリゴン・プッシング（polygonpushing）」として非公式に知られている。
【０００４】
レイアウト設計は、全体的なプロジェクト・スケジュールの中でかなりの時間を占める。レイアウト設計のターンアラウンド・タイムを改善することは、生産性を高めるために重要である。レイアウト・プロセスにおける主要な時間的制約の１つは、コンポーネント間の電線のルーティングを含む。例えばコンピュータ・プログラミングによって行われる自動化ルーティングを使用することで、レイアウトのターンアラウンド・タイムを改善することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カスタム・マクロ設計では、設計者は、一般に、対応する階層レイアウトを有する階層回路図を持っている。階層回路図の基礎は、より複雑なコンポーネントを形成するように組み合わされた基礎ビルディング・ブロックから形成されている。しかし、その構造が階層であるために、現在使用されているルーティング技術は、あまり効率が良くない。
【０００６】
ルーティングの時間を短縮する１つの方法は、いわゆる「ランダム・ロジック・マクロ」（ＲＬＭ）法を使用することであった。ＲＬＭ法では、階層回路図はフラット化されて、「フラットな」回路が作り出される。次に、このフラット回路が、素早く容易にルーティングされる。しかし、この解決策には、回路が「フラット化」された後で読み難くなるという問題がある。この原因は、一つには、人が容易に理解することができる回路素子を表すブロックが回路図にないことにある。
【０００７】
他の方法は、カスタム・マクロ法である。この方法では、ルーティングは、階層の各レベルを通して別々に行われる。しかし、このプロセスは、時間が掛かり、さらに、配線障害物または起こることがある他の問題の処理において効率の問題が生じることがある。
【課題を解決するための手段】
【０００８】
本発明の一実施形態に従って、集積回路（ＩＣ）のレイアウト図および配線図を作り出すシステムが開示される。この実施形態のシステムは、階層回路図を受け取り、配置済みレイアウトを作り出すように構成された配置エンジンと、階層回路図を受け取り、フラット・レイアウトを作り出すように構成されたフラット・レイアウト・エンジンとを含む。この実施形態のシステムは、また、配置エンジンおよびフラット・レイアウト・エンジンに結合され階層配置済みレイアウトおよびフラット未配置レイアウトを受け取ってそれらからフラット配置済みレイアウトを作り出すように構成されたバック・アノテーション・エンジンを含む。
【０００９】
本発明の他の実施形態は、集積回路（ＩＣ）をルーティングする際に使用するためのフラット配置済みレイアウトを作り出す、コンピュータをベースにした方法に向けられる。この実施形態の方法は、集積回路の階層回路図を作り出すステップであって、階層回路図が、それぞれ１つまたは複数の対象セルを含む複数の回路コンポーネントの高レベル記述を含むものであるステップと、階層回路図から階層配置済み未ルーティング・レイアウトを作り出すステップと、階層回路図から、１つまたは複数の対象セル間の接続性情報を含むフラット・レイアウトを作り出すステップと、各対象セルについて、階層配置済みレイアウトを横断し、相対的な配置情報を蓄積し、相対的配置情報を接続性情報にバック・アノテーションするステップと、バック・アノテーションの結果からルーティング図を作り出すステップと、を含む。
【００１０】
本発明の他の実施形態は、フラット配置済み回路図を作り出すためのコンピュータ・プログラム製品に向けられる。このコンピュータ・プログラム製品は、集積回路の階層回路図を作り出すステップであって、階層回路図が、それぞれ１つまたは複数の対象セルを含む複数の回路コンポーネントの高レベル記述を含むものであるステップと、階層回路図から配置済み未ルーティング・レイアウトを作り出すステップと、階層回路図から、１つまたは複数の対象セル間の接続性情報を含むフラット・レイアウトを作り出すステップと、各対象セルについて、配置済みレイアウトを横断し、相対的な配置情報を蓄積し、相対的配置情報を接続性情報にバック・アノテーションするステップと、バック・アノテーションの結果からルーティング図を作り出すステップと、を含む方法を容易にするために処理回路によって実行される命令を格納する、処理回路によって読取り可能な記憶媒体を備える。
【００１１】
その他の特徴および有利点が本発明の技術によって実現される。本発明の他の実施形態および態様は、本明細書で詳細に説明され、特許請求される発明の一部分と考えられる。有利点および特徴を有する本発明をより適切に理解するために、説明および図面を参照されたい。
【００１２】
本発明と見なされる内容は、明細書の終わりの特許請求の範囲で特に指摘され、かつ明確に特許請求される。本発明の前記および他の特徴および有利点は、添付の図面に関連して解釈される以下の詳細な説明から明らかである。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に従ったデータ流れ図である。
【図２】階層回路図の例を示す図である。
【図３】図２から作り出されたフラット未配置レイアウトを示す図である。
【図４】フラット・レイアウトのバック・アノテーションを生成することができる方法の例を示す図である。
【図５】セルの位置を決定することができる１つのやり方を示す図である。
【図６】本明細書の教示を実現する計算システム５００の実施形態を示す図である。
【発明を実施するための形態】
【００１４】
ここで図１に関して、本発明の一実施形態に従ったカスタム・マクロの高速ルーティングを行うシステム１００のデータ流れ図が示されている。このシステムは、例えば、図６に示されるような計算システムで実現することができる。もちろん、このシステムは、必要であれば、どんな他の計算システムとも無関係に形成することができる。
【００１５】
システム１００は、配置エンジン１０２、フラット・レイアウト・エンジン１０４、およびバック・アノテーション・エンジン１０６を含む。配置エンジン１０２は、階層構造１０８の電子的表現を受け取る。階層構造１０８は、複数のビルディング・ブロックを含むどんな表現の回路図であってもよい。ビルディング・ブロックの例にはＮＡＮＤゲートを含めることができ、次のより高いレベルは、例えばＪ−Ｋフリップ・フロップであり得る。
【００１６】
配置エンジンは、階層構造１０８から階層配置済みレイアウト１１０を作り出すことができる。配置済みレイアウトは、シリコン・チップにレイアウトすることができるような回路図を含み、階層構造を持つものとして回路を表している。
【００１７】
フラット・レイアウト・エンジンは、階層構造１０８からフラット未配置レイアウト１１２を作り出すことができる。図２および３は、階層回路図の例（図２）およびフラット未配置レイアウト（図３）を示す。構成図２００は複数のコンポーネントを含む。各コンポーネントは、より小さな部分から構成されている。これらの部分は、例えば図３に示されるように、配線によって個々に接続されている。しかし、この表現は配置されていない。したがって、設計は、スペースに関することが最適化されていない可能性がある。
【００１８】
一実施形態では、フラット・レイアウト１１２は、自動レイアウト・プログラムを利用して作り出されることがある。例として、Cadence Design Systemは、回路図階層を横断して、階層サブブロック（見つけた場合に）ごとに対応するレイアウト・インスタンスを最高レベルのレイアウトで作り出す「ソースから生成する（generatefrom source）」コマンドを含む。「ソースから生成する」は、標準セル・ブロック（ラッチ、その他）のインスタンスのレイアウトを見出すだけである。新しいレイアウトは、標準セル・ブロックのレイアウト・インスタンスを含むだけであり、階層レイアウトのサブブロックを含まない。そのように、「ソースから生成する」は、階層回路図からフラット・レイアウトを作り出す。新しいレイアウトは階層回路図から生成されたので、階層回路図からの全ての接続性情報を有しているが、配置されていない。もちろん、他のプログラムまたはコマンドを使用することができる。理解されることであろうが、フラット・レイアウト１１２は、これに関連した接続性情報を含んでいる。すなわち、フラット・レイアウト１１２は、どの標準セル・ブロックが互いに結合されるべきかを詳述する情報を含んでいる。しかし、ルーティング情報は、未だ作り出されていない可能性がある。
【００１９】
再び図１を参照すると、階層配置済みレイアウト１１０とフラット未配置レイアウト１１２の両方をバック・アノテーション・エンジン１０６が受け取る。バック・アノテーション・エンジン１０６は、階層配置済みレイアウト１１０およびフラット未配置レイアウト１１２から得られた情報を組み合わせる。
【００２０】
フラット・レイアウト１１２は、階層回路図からの全ての接続性情報を有し、ルーティングの準備が整っているが、配置されていない。一実施形態では、バック・アノテーション・エンジン１０６は、配置済みレイアウト１１０からの配置情報をフラット・レイアウト１１２に利用して、フラット配置済みレイアウト１１４を作り出す。このフラット配置済みレイアウト１１４は、次に、一気にルーティングすることができる。
【００２１】
図４は、フラット・レイアウトのバック・アノテーションを生成することができる方法の例を示す。理解されることであろうが、このプロセスは、例えば、バック・アノテーション・エンジン１０６（図１）で行うことができる。また、理解されるべきことであるが、フラット・レイアウトと配置済みレイアウトの両方が、図４に示されたプロセスに利用可能である。
【００２２】
ブロック３０２で、最低レベルのセルの第１／次インスタンスがフラット・レイアウト中で識別される。一実施形態では、このことは、全てのセルのリストを作り出しどのセルが解析されたかを常時監視することを含むことがある。
【００２３】
ブロック３０４で、各最低レベル・セルの配置情報が決定される。例えば、配置済みレイアウト中の各セルの位置を調べることで、これを行うことができる。上で述べられたように、配置済みレイアウトは、事実上階層である。
【００２４】
ブロック３０６で、配置情報がフラット・レイアウトにバック・アノテーションされる。このフラット・レイアウトは、既に全ての接続性情報を有している。したがって、位置情報と接続性情報を組み合わせることによって、容易にルーティングすることができるフラット配置済みレイアウトの基礎が形成される。
【００２５】
ブロック３０８で、他のインスタンスが存在するかどうかが決定される。存在すれば、処理はブロック３０２に戻る。存在しなければ、処理は完了し、ブロック３１０で、フラット配置済みレイアウトを作り出すことができる。フラット配置済みレイアウトは、従来のやり方でルーティングすることができる。このレイアウトは、フラットでかつ全ての接続性を有しているので、単一ルーティング・ステップでルーティングすることができ、それによって従来のカスタム・マクロ・ルーティングの遅れを無くする。
【００２６】
図５は、セルの位置を決定することができる１つのやり方を示す回路図である。この回路図は、対象セル４０２を示す。対象セル４０２は、階層のより高いレベルのより大きなセル４０４の一部分である。例えば、対象セル４０２はＮＡＮＤゲートであり、より大きなセル４０４はＪ−Ｋフリップ・フロップであり得る。最も大きなセル４０６は、より大きなセル４０４と対象セル４０２の両方を含む。
【００２７】
一実施形態では、各インスタンス（セル）は呼称で与えられる。例えば、最も大きなインスタンス４０６はインスタンスＡと呼ばれることがあり、より大きなセル４０４はインスタンスＢと呼ばれることがあり、対象セル４０２はインスタンスＣと呼ばれることがある。一実施形態では、フラット・レイアウト中のインスタンスの呼称には、階層インスタンスの呼称の連なりが割り当てられることがある。例えば、対象セル４０２は、インスタンス＿呼称＝｜Ａ｜Ｂ｜Ｃと呼ばれることがある。例えばブロック３０６において、位置のバック・アノテーションは、この連なりの各レベルを横断することを含むことがある。対象セル４０２の位置を位置決めするために、このストリングが複数の部分に分けられ、各部分が階層の１つのレベルである。例えば、ＳＫＩＬＬコードを使用してストリングを横断するときに、相対的な配置情報が蓄積される。例えば、インスタンスＣの位置は、図５に示された２つのベクトル４１０および４１２で記憶することができる。
【００２８】
図６は、本明細書の教示を実現する計算システム５００の実施形態を示す。この実施形態では、システム５００は、１つまたは複数の中央処理装置（プロセッサ）５０１ａ、５０１ｂ、５０１ｃ、その他（一括して、または総称してプロセッサ５０１と呼ばれる）を備えている。一実施形態では、各プロセッサ５０１は、縮小命令セット・コンピュータ（ＲＩＳＣ）・マイクロプロセッサを含むことがある。プロセッサ５０１は、システム・バス５１３を介してシステム・メモリ５１４および様々な他のコンポーネントに結合されている。読取り専用メモリ（ＲＯＭ）５０２は、システム・バス５１３に結合され、さらに、システム５００の特定の基本機能を制御する基本入力／出力システム（ＢＩＯＳ）を含むことがある。
【００２９】
また、本システムは、システム・バス５１３に結合された入力／出力（Ｉ／Ｏ）アダプタ５０７およびネットワーク・アダプタ５０６を含むことができる。Ｉ／Ｏアダプタ５０７は、ハード・ディスク５０３またはテープ記憶装置ドライブ５０５あるいはその両方、または任意の他の同様なコンポーネントと通信する小型コンピュータ・システム・インターフェース（ＳＣＳＩ）・アダプタであってもよい。Ｉ／Ｏアダプタ５０７、ハード・ディスク５０３、およびテープ記憶装置５０５は、本明細書で一括して大容量記憶装置５０４と呼ばれる。一実施形態では、大容量記憶装置は、エンタプライズ・アーキテクチャ情報を格納するデータベースを含むことができ、またはそのようなデータベースとして実現されてもよい。ネットワーク・アダプタ５０６は、バス５１３を外部ネットワーク５１６と相互接続して、データ処理システム５００が他のそのようなシステムと通信することができるようにする。画面（例えば、表示装置モニタ）５１５は、表示装置アダプタ５１２によってシステム・バス５１３に接続され、表示装置アダプタ５１２は、グラフィックスの多い応用の性能を改善するためのグラフィックス・アダプタおよびビデオ・コントローラを含むことがある。一実施形態では、アダプタ５０７、５０６、および５１２は、中間バス・ブリッジ（図示されない）を介してシステム・バス５１３に接続された１つまたは複数のＩ／Ｏバスに接続されることがある。ハード・ディスク・コントローラ、ネットワーク・アダプタ、およびグラフィックス・アダプタのような周辺デバイスを接続する適切なＩ／Ｏバスは、一般に、周辺コンポーネント・インターフェース（ＰＣＩ）などの共通プロトコルを含む。その他の入力／出力デバイスが、ユーザ・インターフェース・アダプタ５０８および表示装置アダプタ５１２を介してシステム・バス５１３に接続されるように示されている。キーボード５０９、マウス５１０、およびスピーカ５１１は、全て、ユーザ・インターフェース・アダプタ５０８を介してバス５１３に相互接続され、ユーザ・インターフェース・アダプタ５０８は、例えば、複数のデバイス・アダプタを単一集積回路中に組み込んだスーパＩ／Ｏチップを含むことがある。
【００３０】
したがって、図６で構成されるように、システム５００は、プロセッサ５０１の形の処理手段、システム・メモリ５１４および大容量記憶装置５０４を含んだ記憶手段、キーボード５０９およびマウス５１０のような入力手段、およびスピーカ５１１および表示装置５１５を含んだ出力手段を含む。一実施形態では、システム・メモリ５１４の一部および大容量記憶装置５０４は、ＩＢＭ社からのＡＩＸ「（Ｒ）」オペレーティング・システムのようなオペレーティング・システムを一括して格納して、図６に示された様々なコンポーネントの機能を統合する。
【００３１】
理解されることであろうが、システム５００は、任意の適切なコンピュータまたは計算プラットフォームであってもよく、さらに、端末無線デバイス、情報機器デバイス、ワークステーション、ミニコンピュータ、メインフレーム・コンピュータ、個人向け携帯型情報機器（ＰＤＡ）、または他の計算デバイスを含むことができる。
【００３２】
システム５００がサポートすることができるオペレーティング・システムの例には、Ｗｉｎｄｏｗｓ９５、Ｗｉｎｄｏｗｓ９８、ＷｉｎｄｏｗｓＮＴ４．０、ＷｉｎｄｏｗｓＸＰ、Ｗｉｎｄｏｗｓ２０００、ＷｉｎｄｏｗｓＣＥ、Ｗｉｎｄｏｗｓ  Ｖｉｓｔａ、Ｍａｃｉｎｔｏｓｈ、Ｊａｖａ、ＬＩＮＵＸ、およびＵＮＩＸ、または任意の他の適切なオペレーティング・システムがある。システム５００は、また、ネットワーク５１６上で通信するために通信アダプタ５０６も含む。ネットワークは、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロ・エリア・ネットワーク（ＭＡＮ）、またはインターネットまたはワールド・ワイド・ウェブなどの広域ネットワーク（ＷＡＮ）であってもよい。
【００３３】
システム５００のユーザは、標準電話線、ディジタル加入者線、ＬＡＮまたはＷＡＮリンク（例えば、Ｔ１、Ｔ３）、広帯域接続（フレーム・リレー、ＡＴＭ）、および無線接続（例えば、８０２．１１（ａ）、８０２．１１（ｂ）、８０２．１１（ｇ））などの任意の適切なネットワーク・アダプタ５０６を介してネットワーク５１６に接続することができる。
【００３４】
本明細書で開示されたように、システム５００は、ユーザの画面５１５上に示される情報の収集および対話型表示のために、機械読取り可能媒体（例えば、ハード・ディスク５０４）に格納された機械読取り可能命令を含む。本明細書で述べられるように、これらの命令は、「ソフトウェア」５２０と呼ばれる。ソフトウェア５２０は、当技術分野で知られているようなソフトウェア開発ツールを使用して生成することができる。ソフトウェア５２０は、当技術分野で知られているようなユーザ対話能力を実現するために様々なツールおよび特徴を含むことができる。
【００３５】
本明細書で使用される用語は、特定の実施形態だけを説明する目的のためのものであり、本発明を限定する意図でない。本明細書で使用されるときに、単数形「ひとつの」および「それ」は、背景が特に明らかに指示しない限り複数形も同様に含む意図である。さらに理解されることであろうが、用語「備える」または「備えている」あるいはその両方は、この明細書で使用されるとき、詳細に述べられた特徴、完全体、ステップ、動作、要素、またはコンポーネントあるいはその全ての存在を明示するが、１つまたは複数の他の特徴、完全体、ステップ、動作、要素コンポーネント、またはそれらのグループあるいはその全ての存在または追加を排除しない。
【００３６】
以下の特許請求の範囲の機能要素に加えて、対応する構造、材料、作用、および全ての手段またはステップの同等物は、特に特許請求されるような他の特許請求要素との組み合わせでこの機能を行う任意の構造、材料、または作用を含む意図である。本発明の説明は、例示と説明の目的のために述べられたが、網羅的である意図でなく、または開示された形の本発明に限定される意図でない。本発明の範囲および精神から逸脱することなしに、多くの修正物および変形物が当業者には明らかになるであろう。実施形態は、本発明の原理および実際の応用を最適に説明し、かつ、意図された特定の使用に適しているような様々な修正のある様々な実施形態のために当業者が本発明を理解することができるようにするために、実施形態は選ばれ、説明された。
【００３７】
本明細書に示された流れ図は、１つの例に過ぎない。本発明の精神から逸脱することなしに、この図またはそこで説明されたステップ（または、動作）の多くの変形物がある可能性がある。例えば、ステップは異なる順序で行われることがあり、またはステップが追加、削除または修正されることがある。これらの変形物は全て、特許請求される発明の一部分と考えられる。
【００３８】
本発明の好ましい実施形態が説明されたが、当業者が、現在でも将来でも、次の特許請求の範囲内に含まれる様々な改良および強化を行う可能性のあることは理解されるであろう。この特許請求の範囲は、最初に述べられた本発明の適切な保護を維持するように解釈されるべきである。
【符号の説明】
【００３９】
１００  システム
１０２  配置エンジン
１０４  フラット・レイアウト・エンジン
１０６  バック・アノテーション・エンジン
１０８  階層回路図
１１０  配置済みレイアウト
１１２  フラット・レイアウト
１１４  フラット配置済みレイアウト
４０６  インスタンス呼称＝Ａ
４０４  インスタンス呼称＝Ｂ
４０２  インスタンス呼称＝Ｃ（対象セル）
４１０、４１２  ベクトル
５００  処理（計算）システム
５０１  プロセッサ
５０２  読取り専用メモリ（ＲＯＭ）
５０３  ハード・ディスク
５０４  大容量記憶装置
５０５  テープ記憶装置ドライブ
５０６  ネットワーク・アダプタ
５０７  入力／出力（Ｉ／Ｏ）アダプタ
５０８  ユーザ・インターフェース・アダプタ
５０９  キーボード
５１０  マウス
５１２  表示装置アダプタ
５１３  バス
５１５  画面
５１６  外部ネットワーク
【図１】
2010140474.tif 000003
【図２】
2010140474.tif 000004
【図３】
2010140474.tif 000005
【図４】
2010140474.tif 000006
【図５】
2010140474.tif 000007
【図６】
2010140474.tif 000008