(57)【要約】【課題】解析時間の短縮及び解析に必要なコンピュータメモリの量を削減すること。【解決手段】CADツール設計(109)の設計要素(111)を解析するためのシステム(100)と方法(200)。コンフィギュレーション要素発生器(110)は、コンフィギュレーションコマンドの情報を符号化して、設計要素(111)の少なくとも１つに関連付けられたコンフィギュレーション要素(113)を生成する。シーケンサ(108)は、コンフィギュレーション要素発生器(110)に結合され、コンフィギュレーション要素(113)に連続番号でタグ付けする。シーケンサ(108)に結合されたコンピュータメモリ(104)は、コンフィギュレーション要素(113)を格納する。メモリ(104)に結合されたプロセッサは、対象となっている設計要素に関連付けられたそれぞれの格納されたコンフィギュレーション要素を、対象となっている設計要素に、連続番号によって示された順序で適用する。【選択図】図１
2005071371.tif 000002
【特許請求の範囲】
【請求項１】
ＣＡＤツール設計（１０９）の設計要素（１１１）を解析するための方法（２００）であって、
コンフィギュレーションファイル（１１７）の各コンフィギュレーションコマンドに対して、
コンフィギュレーション要素（１１３）を生成するために、前記コンフィギュレーションコマンドの情報を符号化するステップと、
前記コンフィギュレーションコマンドが、前記コンフィギュレーションファイル（１１７）に現れた順序を示す連続番号で前記コンフィギュレーション要素を配列するステップ（２０４）と、および
前記コンフィギュレーション要素をコンピュータメモリ（１０４）に格納するステップ（２０６、２０７）と、および
対象となっているそれぞれの前記設計要素（１１１）に対して、
設計を解析するために、前記コンピュータメモリ（１０４）に格納された前記コンフィギュレーション要素（１１３）のそれぞれを、前記連続番号によって示される順序で、前記対象となっている設計要素に適用するステップとを含む、方法。
【請求項２】
前記コンフィギュレーション要素（１１３）が部分的指定子である場合に、前記コンフィギュレーション要素を第１のリスト（１２０）に格納するステップ（２０６）と、
前記コンフィギュレーション要素（１１３）が完全な指定子である場合に、前記コンフィギュレーション要素を第２のリスト（１２２）に格納するステップ（２０７）と、
前記第１のリスト（１２０）の各部分的指定子を評価するステップであって、その評価される部分的指定子が対象となっている設計要素（１１１）と一致するかどうかを判定する、ステップと、
前記評価される部分的指定子が、特定のコンフィギュレーション要素と一致した場合に、前記コンフィギュレーション要素（１１３）を取り出して、第３のリストに入れるステップ（２１２）と、
前記特定のコンフィギュレーション要素と一致する前記第２のリスト（１２２）内の各完全な指定子を取り出して、前記第３のリストに入れるステップ（２１４）とを含む、請求項１に記載の方法。
【請求項３】
前記第３のリスト内の前記コンフィギュレーション要素（１１３）が、前記対象となっている設計要素（１１１）に適用された後、前記コンピュータメモリ（１０４）から前記第３のリストを廃棄するステップを含む、請求項２に記載の方法。
【請求項４】
前記完全な指定子が、前記設計要素の１つの名前を含み、前記部分的指定子が、評価時に前記名前を与える正規表現を含む、請求項２に記載の方法。
【請求項５】
前記コンフィギュレーション要素（１１３）が、設計要素情報を含み、前記設計要素（１１１）が、トランジスタ、ワイヤ、コンデンサ、抵抗、ダイオード、演算増幅器、論理ゲート、階層的な部分設計、および電源からなる設計要素のグループから選択される、請求項１に記載の方法。
【請求項６】
ＣＡＤツール設計（１０９）の設計要素（１１１）を解析するための方法であって、
コンフィギュレーションファイル（１１７）の各コンフィギュレーションコマンドに対して、
コンフィギュレーション要素（１１３）を生成するために、前記コンフィギュレーションコマンドの情報を符号化するステップ（２０４）と、
前記コンフィギュレーションコマンドが、前記コンフィギュレーションファイル（１１７）に現れた順序を示す連続番号で前記コンフィギュレーション要素を配列するステップと、
前記コンフィギュレーション要素が部分的指定子である場合に、前記コンフィギュレーション要素を第１のリスト（１２０）に格納するステップ（２０６）と、および
前記コンフィギュレーション要素が完全な指定子である場合に、前記コンフィギュレーション要素を第２のリスト（１２０）に格納するステップ（２０７）と、
対象となっているそれぞれの前記設計要素に対して、
前記第１のリスト（１２０）の各部分的指定子を評価するステップであって、その評価される部分的指定子が前記対象となっている設計要素と一致するかどうかを判定する、ステップと、
前記評価される部分的指定子が、特定のコンフィギュレーション要素と一致した場合に、前記コンフィギュレーション要素を取り出して、第３のリストに入れるステップ（２１２）と、および
前記特定のコンフィギュレーション要素と一致する前記第２のリスト内の各完全な指定子を取り出して、前記第３のリストに入れるステップ（２１４）と、
前記第３のリストの前記コンフィギュレーション要素（１１３）のそれぞれを、前記連続番号によって示される順序で、前記対象となっている設計要素に適用するステップと、および
前記第３のリスト内のコンフィギュレーション要素（１１３）が、前記対象となっている設計要素（１１１）に適用された後、コンピュータメモリ（１０４）から前記第３のリストを廃棄するステップとを含む、方法。
【請求項７】
ＣＡＤツール設計（１０９）の設計要素を解析するためのシステム（１００）であって、
コンフィギュレーションコマンドの情報を符号化して、前記設計要素（１１１）の少なくとも１つに関連付けられたコンフィギュレーション要素（１１３）を生成するコンフィギュレーション要素発生器（１１０）と、
前記コンフィギュレーション要素発生器（１１０）に結合され、前記コンフィギュレーション要素に連続番号でタグ付けするシーケンサ（１０８）と、
前記シーケンサ（１０８）に結合され、前記コンフィギュレーション要素（１１３）を格納するコンピュータメモリ（１０４）と、および
前記コンピュータメモリ（１０４）に結合されたプロセッサ（１０２）であって、対象となっている前記設計要素に関連付けられたそれぞれの格納された前記コンフィギュレーション要素を、対象となっている前記設計要素に、前記連続番号によって示された順序で適用する、プロセッサ（１０２）とを備える、システム。
【請求項８】
前記コンフィギュレーション要素発生器（１１０）が、コンフィギュレーションファイル（１１７）から前記コンフィギュレーションコマンドを選択することによって、前記コンフィギュレーション要素（１１３）を生成するためのコントローラ（１０３）を含む、請求項７に記載のシステム。
【請求項９】
前記コントローラ（１０３）は、
前記コンフィギュレーション要素が部分的指定子である場合に、前記コンフィギュレーション要素（１１３）を第１のリスト（１２０）に格納し、前記コンフィギュレーション要素（１１３）が完全な指定子である場合に、前記コンフィギュレーション要素を第２のリスト（１２２）に格納し、
前記第１のリスト（１２０）の各部分的指定子を評価して、その評価される部分的指定子が前記対象となっている設計要素（１１１）と一致するかどうかを判定し、
前記評価される部分的指定子が、特定のコンフィギュレーション要素（１１３）と一致した場合に、前記コンフィギュレーション要素を取り出して、第３のリストに入れ、および
前記特定のコンフィギュレーション要素（１１３）と一致する前記第２のリスト（１２２）内の各完全な指定子を取り出して、前記第３のリストに入れる、請求項８に記載のシステム。
【請求項１０】
前記完全な指定子が、前記設計要素（１１１）のうちの１つの名前を含み、前記部分的指定子が、評価時に前記名前を与える正規表現を含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ支援設計ツールにおける設計要素を解析するシステムおよび方法に関する。
【０００２】
関連出願
本発明は、同日付けで出願され同時係属中の以下の米国特許出願の題材に関係した要素を含む。すなわち、係る米国特許出願は、System And Method For Determining Wire Capacitance For A VLSI Circuitと題する米国特許出願第１０／６４７，５９７号、System And Method For Determining Applicable Configuration Information For Use In Analysis Of A Computer Aided Designと題する米国特許出願第１０／６４７，５９５号、Systems And Methods Utilizing Fast Analysis Information During Detailed Analysis Of A Circuit Designと題する米国特許出願第１０／６４７，６８７号、Systems And Methods For Determining Activity Factors Of A Circuit Designと題する米国特許出願第１０／６４７，５９４号、System And Method For Determining A Highest Level Signal Name In A Hierarchical VLSI Designと題する米国特許出願第１０／６４７，７６８号、System And Method For Determining Connectivity Of Nets In A Hierarchical Circuit Designと題する米国特許出願第１０／６４７，６０６号、System And Method For Determining Unmatched Design Elements In A Computer-Automated Designと題する米国特許出願第１０／６４７，６０８号、Computer Aided Design Systems And Methods With Reduced Memory Utilizationと題する米国特許出願第１０／６４７，５９８号、System And Method For Iteratively Traversing A Hierarchical Circuit Designと題する米国特許出願第１０／６４７，６８８号、Systems And Methods For Establishing Data Model Consistency Of Computer Aided Design Toolsと題する米国特許出願第１０／６４７，７６９号、Systems And Methods For Identifying Data Sources Associated With A Circuit Designと題する米国特許出願第１０／６４７，６０７号、Systems And Methods For Performing Circuit Analysis On A Circuit Designと題する米国特許出願第１０／６４７，６０５号である。これらの米国特許出願のすべては、２００３年８月２５日に出願されている。
【背景技術】
【０００３】
コンピュータ支援設計（ＣＡＤ）ツールおよびコンピュータ支援エンジニアリング（ＣＡＥ）ツールは、さまざまなタイプの設計の作成および解析に使用される。以下では、ＣＡＤツールおよびＣＡＥツールの双方を、単にＣＡＤツールと呼ぶことにする。設計は、建築学、土木工学、機械工学、電気工学などのさまざまな分野をサポートするために使用される。Ｍ−ＣＡＤツールおよびＥ−ＣＡＤツールは、ＣＡＤツールの２つのタイプである。Ｍ−ＣＡＤツールは、機械工学設計の作成および解析を行い、Ｅ−ＣＡＤツールは、電子回路の回路図など、電気／電子工学設計の作成および解析を行う。
【０００４】
ＣＡＤツールは、非常に多くの計算を実行する。これらの計算には、解析計算のほかに設計計算も含まれ得る。解析計算は、設計で使用されるエンジニアリングコンポーネントの特性を判定するために使用される。以下では、設計におけるエンジニアリングコンポーネントを設計要素と呼ぶことにする。例えば、Ｅ−ＣＡＤツールは、電子設計で使用されるワイヤやトランジスタなどの設計要素の抵抗、静電容量、および接続を決定することができる。これらの設計計算および解析計算を組み合わせたものは、ＣＡＤツール動作時にコンピュータシステムのプロセッサ能力およびメモリ空間の大部分を使い果たす。
【０００５】
大規模設計は、本質的に複雑である。したがって、ＣＡＤツールによって実行される計算は、非常に多く非常に長い。大規模設計の一例は、Intel Corporationによって製造されるItanium（R）ファミリーのマイクロプロセッサの設計やHewlett Packard Corporationによって製造されるプレシジョンアーキテクチャ縮小命令セットコンピュータ（ＰＡ−ＲＩＳＣ）のマイクロプロセッサの設計などのマイクロプロセッサの設計である。現在、このようなマイクロプロセッサは、１０億個を超える設計要素を含むことができる。マイクロプロセッサの設計要素は、トランジスタ、ワイヤ、抵抗、ならびに他のさまざまな半導体コンポーネントおよび半導体デバイスである。プロセッサ技術が進歩するにつれて、設計要素の個数は一般に増加し、それによってマイクロプロセッサの設計はさらに複雑になる。
【０００６】
現在、設計に関して解析モジュールにより実行されるＣＡＤツールの計算は、非常に多く、何時間も続くことがあり、数日続くことさえある。例えば、技術者は、マイクロプロセッサのある新たな部分を設計することがある。次に、その技術者は、その新たな部分をＣＡＤツールで解析し、次いで設計全体を再解析して、その新たな部分が許容可能かどうかを判断することがある。１０億個またはそれ以上の設計要素を有する設計に対して計算が行われる場合、ＣＡＤツールは、大量のデータを含む大規模設計に対して複雑な計算を行うことが必要となる可能性があるので、その新たな部分が許容可能かどうかの判定は、翌日またはそれ以降の日まで行うことができない。さらに、コンピュータメモリの物理的な限界も、複雑な計算の実行を不可能にする可能性がある。解析が時間のかかるプロセスであり、技術者は解析結果を待たなければならないことから、生産性が失われる可能性がある。非常に長い開発時間に起因して、連続して生産性が失われると、技術進歩が遅くなり、著しいコストおよびビジネスの損失をもたらす可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明は、上述した問題点を部分的にまたは完全に解決することを目的とする。
【課題を解決するための手段】
【０００８】
本システムは、ＣＡＤツール設計の設計要素を解析するための方法を提供する。コンフィギュレーションファイルの各コンフィギュレーションコマンドに対して、コンフィギュレーション要素を生成するためにコンフィギュレーションコマンドの情報が符号化され、コンフィギュレーションコマンドがコンフィギュレーションファイルに現れた順序を示す連続番号で、コンフィギュレーション要素が配列され、コンフィギュレーション要素がコンピュータメモリに格納される。対象となっているそれぞれの設計要素に対して、コンピュータメモリに格納されたコンフィギュレーション要素のそれぞれが、設計を解析するために、連続番号によって示される順序で、対象となっている設計要素に適用される。
【０００９】
本システムは、コンフィギュレーションコマンドの情報を符号化して、設計要素の少なくとも１つに関連付けられたコンフィギュレーション要素を生成するコンフィギュレーション要素発生器を含む。シーケンサは、コンフィギュレーション要素発生器に結合され、コンフィギュレーション要素に連続番号でタグ付けする。コンピュータメモリは、コンフィギュレーション要素を格納し、プロセッサは、対象となっている設計要素に関連付けられたそれぞれの格納されたコンフィギュレーション要素を、対象となっている設計要素に、連続番号によって示された順序で適用する。
【００１０】
本システムのより完全な理解は、図面を参照することにより得ることができる。
【発明の効果】
【００１１】
本発明によれば、従来技術の問題点が克服され、特に、ＣＡＤシステムにおいて解析に必要とされるコンピュータメモリの量を削減することが可能になる。
【発明を実施するための最良の形態】
【００１２】
図１は、本システムの一実施形態による、コンフィギュレーション要素１１３を生成するように構成されたＣＡＤシステム１００を示す。コンフィギュレーション要素は、設計に関連付けられたフォーマット済み情報を含むデータを符号化したものである。より具体的には、コンフィギュレーション要素は、コンフィギュレーションコマンド（後述される）に含まれる情報を符号化したものである。複数のコンフィギュレーション要素が、単一の設計要素に関係することもあるし、単一のコンフィギュレーション要素が、複数の設計要素に関係することもある。例えば、複数のコンフィギュレーション要素を使用して、１つの設計要素の個々の特性を記述できる場合もあれば、１つのコンフィギュレーション要素を使用して、１つの特定の設計要素の特性のすべてを記述できる場合もある。設計要素（すなわち、複数の設計要素１１１の１つの設計要素）は、単一のコンポーネント、網、またはＣＡＤツール１０７によって生成される設計を構造的に定義する設計１０９の要素からなるグループである。例えば、Ｅ−ＣＡＤツールによって生成された電子設計は、本システムによる関連付けられたコンフィギュレーション要素を使用して解析されるトランジスタ（例えば、金属酸化物半導体電界効果トランジスタ、すなわち「ＭＯＳＦＥＴ」）、ワイヤ、抵抗、コンデンサ、電源、ダイオード、演算増幅器、階層的な部分設計、および論理ゲートなどの設計要素を含むことができる。このように、コンフィギュレーション要素１１３は、設計の設計要素に関係する情報を有するので、設計１０９に関連付けられる。コンフィギュレーション要素１１３は、Ｅ−ＣＡＤツールの設計のほかにＭ−ＣＡＤツールの設計の解析にも使用され得る。Ｍ−ＣＡＤツールによって生成される機械設計は、金属構造物、ギヤ、流体、継ぎ手、およびコネクタなどの設計要素を含むことができる。
【００１３】
図１に示されるように、ＣＡＤシステム１００は、コンピュータシステム１０１を含む。コンピュータシステム１０１は、ＣＡＤツール１０７を制御して、設計１０９を解析する。設計１０９は、ＣＡＤツール１０７によって発生され、作成される設計のタイプに関連した設計要素を含む。例えば、Ｅ−ＣＡＤツールは、トランジスタおよび／または他の電子コンポーネントである複数の設計要素を有するＶＬＳＩ設計を作成することができる。設計１０９の解析は、コンピュータシステム１０１を使用してコンフィギュレーション要素１１３を解析することを含む。コンピュータシステム１０１は、プロセッサ１０２、コンピュータメモリ１０４、および記憶ユニット１０６を含む。コンピュータシステム１０１において、プロセッサ１０２は、コンピュータメモリ１０４および記憶ユニット１０６に結合されて、ＣＡＤツール１０７を動作させる。ＣＡＤツール１０７は、最初、ソフトウェア命令として記憶ユニット１０６に存在する。ＣＡＤツール１０７の初期化時に、ＣＡＤツール１０７を形成するソフトウェア命令のセットが、コンピュータメモリ１０４にロードされる。設計１０９の少なくとも一部も、ＣＡＤツール１０７の初期化時にコンピュータメモリ１０４にロードされる。次いで、プロセッサ１０２は、これらのＣＡＤツール命令のセットを実行する。
【００１４】
ＣＡＤシステム１００において、コンピュータシステム１０１は、コンフィギュレーション要素発生器１１０およびシーケンサ１０８をさらに含む。コンフィギュレーション要素発生器１１０は、コンフィギュレーション要素１１３を生成する。シーケンサ１０８は、コンフィギュレーション要素発生器１１０に結合されて、設計１０９の解析によって求められる連続番号でコンフィギュレーション要素１１３を順番付ける。この連続番号は、特定のコンフィギュレーション要素の相対的な適用順序を指定するために使用され得る番号または他の印である。連続番号は、特定のコンフィギュレーション要素と、その特定のコンフィギュレーション要素を生成するのに使用されるコンフィギュレーションコマンドの順序との関連を表す。連続番号を使用して、特定の設計要素に関連付けられたコンフィギュレーション要素の順序リストが形成される。
【００１５】
各コンフィギュレーション要素は、コンフィギュレーションファイル１１７からのコンフィギュレーションコマンドを符号化することによって生成される。コンフィギュレーションコマンドは、ワイヤの抵抗など、設計要素の物理特性および／または電気特性を設定するために使用される関数である。コンフィギュレーションコマンドは、コンフィギュレーションファイルに記載された順序でコンフィギュレーションファイル１１７から読み出される。コンフィギュレーションコマンドの順序は、生成されるべきコンフィギュレーション要素のそれぞれの連続番号を設定する。
【００１６】
コンフィギュレーションファイル１１７は、記憶ユニット１０６内における、コンフィギュレーションコマンドを含む記憶構造体である。Ｅ−ＣＡＤ設計用のコンフィギュレーションファイルの一例を、以下のサンプルコンフィギュレーションファイルに示す。このサンプルコンフィギュレーションファイルは、６つのコンフィギュレーションコマンドを含む。
【００１７】
【表１】
2005071371.tif 000003
【００１８】
例示的な本実施形態では、コンフィギュレーションファイル１１７の各コンフィギュレーションコマンドは、コンフィギュレーションコマンドタイプフィールド、設計要素指定子フィールド、値フィールド、および任意選択の説明フィールドを有する。これらのフィールドは、組み合わせて使用される場合に、設計要素の特性を確立する。例えば、サンプルコンフィギュレーションファイルの第１行（すなわち、「voltage  ＶＤＤ  ２．１Ｖ」）は、設計要素の供給電圧を２．１ボルトに設定するために使用される。
【００１９】
設計要素指定子は、設計要素の記述を含み、タイプによって設計要素１１１を特定するために使用される。設計要素指定子は、１つの設計要素を示す場合に「完全（complete）」であり、複数の設計要素を示すことができる場合には「部分的（partial）」である。完全な指定子は、設計要素に名前をつけ、したがって、特定の設計要素の名前または特定の網インスタンスに関する網の名前である。部分的指定子は、網の名前の「正規表現」であり、適用可能な設計要素の名前を記述する。正規表現は、その正規表現によって記述されたパターンを満たす１つまたは複数のターゲット列を表すために使用される文字列である。上記に示されたサンプルコンフィギュレーションファイルにおいて、設計要素指定子「＊／scan／shift」、「testjig／happy／＊」、および「＊」は、部分的指定子であり、したがって、本システムにおける正規表現である。特定のタイプの設計要素を２度以上解析する場合に、設計要素指定子を使用して設計要素１１１を特定することにより、関連付けられたコンフィギュレーション要素の検索が促進される。上記に示されたサンプルコンフィギュレーションファイルにおいて、設計要素指定子「ＧＮＤ」および「ＶＤＤ」は、１つの設計要素のみを示すので、完全な指定子である。
【００２０】
ＣＡＤシステム１００において、適切なコンフィギュレーションコマンドを特定のコンフィギュレーション要素の他のインスタンスに再利用できるように、コンピュータメモリ１０４は、連続番号の順序で設計要素指定子によってコンフィギュレーション要素１１３を格納する。例えば、特定の設計要素のタイプが２回以上解析される場合に、関連付けられたコンフィギュレーション要素は、コンピュータメモリ１０４内で見出され、その特定の設計要素のタイプに関する過去の解析に基づいた解析に再利用され得る。
【００２１】
コンピュータメモリ１０４は、コンフィギュレーション要素の設計要素１１１との関連によって、コンフィギュレーション要素１１３の単一のコピーを格納する。例えば、Ｅ−ＣＡＤ設計において、特定のコンフィギュレーション要素が設計要素に関係しているので、コンピュータメモリ１０４は、特定のコンフィギュレーション要素の関連を格納し、別の同一の設計要素に遭遇した場合には、その特定のコンフィギュレーション要素を再利用できるようにする。また、コンピュータメモリ１０４は、設計要素指定子およびコンフィギュレーション要素の連続番号も格納し、プロセッサ１０２に必要な解析時間を削減する。プロセッサが、コンフィギュレーション要素の適用可能な情報をすべて再計算する必要なしに、設計要素指定子および連続番号に基づいて、特定のコンフィギュレーション要素を見つけることができるので、処理時間は削減される。
【００２２】
一実施形態において、コンフィギュレーション要素発生器１１０は、コントローラ１０３を含み、このコントローラ１０３は、コンフィギュレーション要素１１３の生成に使用されるコンフィギュレーションコマンドを保持するコンフィギュレーションファイル１１７を選択して読み出す。コントローラ１０３は、コンフィギュレーションファイル１１７のそれぞれが選択されるまで、コンフィギュレーションファイルの選択を続ける。また、コントローラ１０３は、設計１０９の解析を行うソフトウェアと、コンフィギュレーション要素１１３の格納および管理を行うソフトウェアとの間のインターフェースを提供するように、特定のコンフィギュレーション要素に対する要求を受け取って、その特定のコンフィギュレーション要素をコンピュータメモリ１０４において検索することも行う。
【００２３】
一実施形態において、シーケンサ１０８は、論理要素１１２を含み、この論理要素１１２は、コントローラ１０３に結合され、設計１０９の解析に使用されるコンフィギュレーション要素のリストを生成する。コンフィギュレーション要素は、コンフィギュレーション要素発生器１１０によって生成されると、リストに加えられる。次いで、コンフィギュレーション要素の新たな順序リストが、解析中の設計要素の順序と相関するように、シーケンサ１０８は、コンフィギュレーション要素を連続番号によって配列する。
【００２４】
本明細書で説明されるように、ＣＡＤシステム１００は、所与の回路の解析に必要とされるコンピュータメモリ１０４の量を削減する。この必要とされるメモリの削減は、ＣＡＤツール１０７が設計要素１１１の次のインスタンシエイションを得るためにコンフィギュレーション要素のリストを要求する場合に、各コンフィギュレーション要素の単一のコピーをコンピュータメモリ１０４に格納し、コンフィギュレーション要素のコピーの順序リストを作成することにより達成される。設計要素１１１の解析は、部分的指定子および／または完全な指定子を使用して、その指定子と一致する回路素子のインスタンシエイションを特定する。解析プロセス中、特定の部分的指定子に関連付けられたコンフィギュレーション要素のすべてが、順序リストにコピーされる。設計要素の解析が完了すると、コンフィギュレーション要素のリストは廃棄され、それによって、必要なコンピュータメモリの量がさらに減少する。ＣＡＤシステム１００は、設計全体が、定められた時間にコンピュータメモリ１０４に存在することを必要とせずに、設計の解析を可能にする。
【００２５】
例示的な実施形態において、プロセッサ１０２は、コンフィギュレーション要素発生器１１０、コントローラ１０３、シーケンサ１０８、論理要素１１２の機能を具体化する。例えば、アイテム１１０、１０３、１０８、１１２は、コンピュータメモリ１０４内に存在し、それに従って動作するようにプロセッサ１０２に命令する１つまたは複数のソフトウェアモジュールの形態を取ることができる。
【００２６】
図２は、システム１００の例示的な動作２００を示すフローチャートである。図２に示されるように、動作２００は、コントローラ１０３が、ステップ２０２において、コンフィギュレーションファイル１１７からコマンドを読み出した時に開始する。このコンフィギュレーションファイルは、コンフィギュレーション要素の生成に使用されるコンフィギュレーションコマンドのリストを含む。次いで、シーケンサ１０８は、ステップ２０４において、コンフィギュレーションコマンドに連続番号でタグ付けして、コンフィギュレーションコマンドを配列する。次いで、コントローラ１０３は、ステップ２０５において、コンフィギュレーションコマンドが部分的指定子を含むか、または完全な指定子を含むかを判定する。本実施形態では、部分的指定子として正規表現が使用され、設計１０９の設計要素が識別される。
【００２７】
コンフィギュレーションコマンドが、部分的指定子（例えば、本実施形態では正規表現）を含む場合には、ステップ２０６において、そのコンフィギュレーションコマンドから符号化されたコンフィギュレーション要素が、部分的指定子を含むコンフィギュレーションコマンドのみを格納するために使用されるデータ構造体１２０に格納される。コンフィギュレーションコマンドが、完全な指定子を含む場合、すなわち、コンフィギュレーションコマンドが、設計要素を完全に指定する場合には、そのコンフィギュレーションコマンドから符号化されたコンフィギュレーション要素は、完全な指定子であるコンフィギュレーション要素を格納するために使用されるデータ構造体１２２に格納される。ステップ２０７において、完全な指定子は、設計１０９内に存在する設計要素に直接的に適用される（すなわち、コンフィギュレーション要素は、その設計の特定の設計要素、網の名前、またはブロックを指定する）。本実施形態では、データ構造体１２２は、特性またはタイプによってコンフィギュレーション要素を格納する。例えば、以下のコンフィギュレーションコマンド
wire＿cap  Element１＝１２０ｐｆ
voltage  Element１  ＋．１Ｖ
voltage  Element２  ２．５Ｖ
は、「Element１」という名前の設計要素のデータ構造体１２２の１つの対応するエントリと、「Element２」という名前の設計要素の１つの対応するエントリとを有する。この例では、Element１は、２つの関連付けられたコンフィギュレーション要素を有し、Element２は、１つの関連付けられたコンフィギュレーション要素を有する。これらの２つの設計要素名Element１およびElement２は、コンフィギュレーションコマンドと２つの対応する設計要素との間の以下の関連を示す。すなわち、
Element１−＞［（wire＿cap＝１２０ｐｆ），（voltage  ＋０．１Ｖ）］
Element２−＞［（voltage＝２．５Ｖ）］
【００２８】
コンフィギュレーション要素が、その適切なデータ構造体に割り当てられると、コントローラ１０３は、ステップ２０８において、コンフィギュレーションファイル内のすべてのコンフィギュレーションコマンドが処理されたかどうかを判定する。すべてのコンフィギュレーションコマンドが処理されていない場合には、コントローラ１０３は、ステップ２０２に戻って、すべてのコマンドが処理されるまで、コマンドの処理を継続する。ステップ２０２〜２０８を、以下のテーブル１にアルゴリズム形式で要約する。
【００２９】
テーブル１  コンフィギュレーションファイルからのコンフィギュレーションコマンドの処理
コントローラ１０３は、コンフィギュレーションファイル１１７からコンフィギュレーションコマンドを読み出す；
シーケンサ１０８は、コンフィギュレーションコマンドに連続番号でタグ付けする；
コントローラ１０３は、コンフィギュレーションコマンドが部分的指定子を含むかどうかを判定する。コンフィギュレーションコマンドが部分的指定子である場合には、コントローラ１０３は、そのコマンドをコンフィギュレーション要素として符号化し、そのコンフィギュレーション要素を部分的指定子データ構造体１２０に格納する。コンフィギュレーションコマンドが部分的指定子でない場合には、コントローラ１０３は、コンフィギュレーション要素として符号化されたコンフィギュレーションコマンドを、完全な指定子データ構造体１２２に格納する；
コントローラ１０３は、コンフィギュレーションファイル内のすべてのコンフィギュレーションコマンドが処理されたかどうかを判定する。すべてのコンフィギュレーションコマンドが処理されていない場合には、すべてのコンフィギュレーションコマンドが処理されるまで、コンフィギュレーションファイルの行が読み出される。
【００３０】
次に、コントローラ１０３は、ステップ２１２において、部分的指定子データ構造体１２０の各部分的指定子／正規表現を評価して、対応するコンフィギュレーション要素が、現在対象となっている設計要素内で見出されるかどうかを判定し、そして、一致するすべてのコンフィギュレーション要素を取り出して、優先キューに入れる。評価された正規表現が、データ構造体１２０内で探索された特定のコンフィギュレーション要素と一致する場合、コントローラ１０３は、ステップ２１２において、適切なコンフィギュレーション要素を取り出して、優先キューに入れる。同様に、コントローラ１０３は、ステップ２１４において、対象となっている設計要素の名前が、特定の設計要素の名前を含む完全な指定子データ構造体１２２内で見出されるどうかを判定し、そして、適切なコンフィギュレーション要素を取り出して、優先キューに入れる。ステップ２１２および２１４は、逆の順序で実行され得ることに留意すべきである。
【００３１】
コントローラ１０３は、ステップ２１６において、データ構造体１２０のエントリとデータ構造体１２２のエントリとをマージすることによって、特定の設計要素に関連付けられたコンフィギュレーション要素のマージリストを作成する。ステップ２１８において、シーケンサ１０８は、コンフィギュレーション要素がコンフィギュレーションファイル１１７によって決定された順序で列挙されるように、連続番号によって優先キューのコンフィギュレーション要素をソートする。次いで、シーケンサ１０８は、ステップ２２０において、コンフィギュレーション要素のソートされたリストをプロセッサ１０２に戻し、その結果、プロセッサ１０２は、そのリストのコンフィギュレーション要素を設計１０９の解析に適用することができる。ステップ２１２から２２０は、設計１０９において対象となっている各設計要素に対して実行される。ステップ２１２から２２０を、以下のテーブル２にアルゴリズム形式で要約する。
【００３２】
テーブル２  特定の設計要素のコンフィギュレーション要素の取得
データ構造体１２２内において対象となっている設計要素に一致するコンフィギュレーション要素を検索して取り出す；
データ構造体１２０の各エントリに対して、評価された部分的指定子／正規表現が、対象となっている設計要素に一致する場合、そのコンフィギュレーション要素を取り出す；
コンフィギュレーション要素が、コンフィギュレーションファイルによって決定された順序で列挙されるように、連続番号によってソートされた２つのリストを結合する；
設計１０９の解析に使用するために、コンフィギュレーション要素のリストをプロセッサ１０２に戻す。
【００３３】
プロセッサ１０２は、コンフィギュレーション要素が戻された後、コンフィギュレーション要素を現在対象となっている設計要素に適用することにより、設計１０９の解析を開始することができる。この現在の設計要素の解析が完了すると、プロセッサ１０２は、適用されたコンフィギュレーション要素を廃棄し、したがって、コンピュータメモリ１０４を解放する。動作２００の概要を以下のテーブル３に示す。
【００３４】
テーブル３  設計の解析
コンフィギュレーションファイルのすべてのコンフィギュレーションコマンドを読み出す（テーブル１）；
設計の各設計要素に対して、
この特定の設計要素のコンフィギュレーション要素を取得する（テーブル２）；
この設計要素にコンフィギュレーション要素を適用する；
この設計要素のコンフィギュレーション要素を廃棄する。
【００３５】
超大規模設計に対して、設計全体がメモリに同時に存在する必要なしに、動作２００を実行することができる。この能力は、設計が大規模すぎてコンピュータメモリ１０４に収まることができない場合に重要である。図２に関して説明された動作を実行する命令は、記憶媒体またはコンピュータメモリに格納され、後に、プロセッサ１０２によって、そこから取り出されて実行され、本システムに従って動作することができる。命令の例としては、ソフトウェア、プログラムコード、およびファームウェアが含まれる。記憶媒体の例としては、メモリデバイス、テープ、ディスク、集積回路、およびサーバが含まれる。
【００３６】
図３は、例示的なＣＡＤツールシステム３００を示し、このＣＡＤツールシステム３００は、コンフィギュレーション要素発生器３０１、モデル発生器３０３、記憶ユニット３０６、および解析エンジン３０５を含む。図３に示されるように、モデル発生器３０３は、設計ファイル３１５から設計要素を読み出し、図１の設計１０９などの設計を生成する。この設計は、複数の設計要素を含み、記憶ユニット３０６に格納される。コンフィギュレーション要素発生器３０１は、コンフィギュレーションファイル３１４を読み出して、設計要素の解析に使用されるコンフィギュレーション要素を生成する。コンフィギュレーション要素は、完全なおよび／または部分的な設計要素指定子を使用して記憶ユニット３０６に格納される。
【００３７】
解析エンジン３０５は、記憶ユニット３０６に結合され、特定の設計を解析する。解析エンジン３０５は、設計要素（例えば、設計要素１１１）に関連付けられたコンフィギュレーション要素を適用することにより、その設計要素の計算および解析を行う。設計の中には、単に大規模すぎて（すなわち、所与の設計の設計要素が多すぎて）利用可能なコンピュータメモリに収まらないものがあるので、解析エンジン３０５は、一度に、特定の設計の１つまたは複数の設計要素を解析する。本実施形態において、特定のコンフィギュレーション要素が、解析中に再利用される。例えば、解析エンジン３０５は、設計要素の複数のインスタンシエイションに遭遇すると、以前に決定されたコンフィギュレーション要素を記憶ユニット３０６内で捜し出して使用する。このコンフィギュレーションの再利用によって、一度にメモリに存在するコンフィギュレーション要素の個数が削減される。また、解析により、特定のコンフィギュレーション要素の別のインスタンスが求められた場合に、利用可能な各コンフィギュレーション要素の単一のコピーを格納することによって、コンピュータメモリの使用量も削減され得る。
【００３８】
本発明の範囲から逸脱することなく、上記の方法およびシステムに何らかの変更を行うことができるので、１つの意図するものとしては、上記説明に含まれる、または添付図面に示されるすべての事項は、例示として解釈されるべきであり、限定する意味で解釈されるべきでないことが挙げられる。一例として、当業者ならば、本発明の範囲から逸脱することなく、アイテム１０２、１０３、１０４、１０６、１０８、１１０、および１１２をソフトウェアモジュールなどの他のフォーマットで構築でき、接続でき、構成でき、および／または結合できるということは理解されるべきである。さらなる例として、当業者ならば、本発明の範囲から逸脱することなく、アイテム３０１、３０３、３０５、および３０６を他のフォーマットで構築でき、接続でき、構成でき、および／または結合できるということは理解されるべきである。別の意図には、特許請求の範囲が、本明細書で説明された本発明の一般的な特徴および具体的な特徴のすべて、ならびに言葉の理由でそこに含まれると言うことができる本発明の範囲のすべての記述をカバーするものであると理解されることが含まれる。
【図面の簡単な説明】
【００３９】
【図１】ＣＡＤシステムの例示的な実施形態を示す図である。
【図２】図１のシステムの動作において実行される例示的な１組のステップを示すフローチャートである。
【図３】代替的な一例のＣＡＤシステムを示す図である。
【符号の説明】
【００４０】
100  ＣＡＤシステム
102  プロセッサ
103  コントローラ
104  コンピュータメモリ
106  記憶ユニット
107  ＣＡＤツール
108  シーケンサ
109  設計
110  コンフィギュレーション要素発生器
111  設計要素
113  コンフィギュレーション要素
117  コンフィギュレーションファイル
120  部分的指定子データ構造体
122  完全な指定子データ構造体
【図１】
2005071371.tif 000004
【図２】
2005071371.tif 000005
【図３】
2005071371.tif 000006