導電性パスの分散自動ルーティング
サーバコンピュータは、PCB設計のためのマスターデータベースを維持し、PCB設計のコピーが、複数のクライアントコンピュータに提供される。サーバは、接続がルート決定される必要がある異なるピンペアを各クライアントに割り当てる。クライアントが割り当てられたルーティングタスクを完了させると、それは、サーバがそれに割り当てられたピンペアについてクライアントにより検出されたルートによりPCBマスター設計を更新するよう要求する。リクエストの転送後、クライアントは、検出されたルートを反映させるようPCB設計のコピーを更新しない。代わりに、クライアントは、サーバによるピンペアの割当て前に占有されている状態にそれのコピーを戻す。検出されたルートをサーバが実装したという通知を受信すると、クライアントは、当該ルートを含むよう設計のコピーを更新する。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
[関連出願の相互参照]
本出願は、参照することにより含まれる、2003年11月21日に出願された米国仮出願第60/523,697号「A Revolutionary Design Technology」の優先権を主張する。
[発明の技術分野]
本発明は、電子設計自動化ツールの技術分野に関する。より詳細には、本発明の実施例は、プリント基板(PCB)設計におけるトレースのルーティングを含む電子回路の導電性パスのルーティングに関する。
[発明の背景]
電子回路は、典型的には、レジスタ、集積回路(IC)、キャパシタ、ダイオード、トランジスタなどの多数の電子コンポーネントを有する。各コンポーネントは、当該コンポーネントがあるタイプの電気コンダクタにより1以上の他のコンポーネントに電気的に接続される接続ポイント(又はピン)を有する。プリント基板(PCB)上の回路では、コンポーネントピンは、基板上(内)の導電性ストリップ(又はトレース)と接続される。多くのケースにおいて、電気回路はまず概略図により記述される。この概略は、通常は記号表示されたコンポーネント間を結ぶラインにより相互接続される従来技術による記号(レジスタについてはジグザグのライン、ICについては矩形のボックスなど)として回路コンポーネントを示す。概略図に与えられるコンポーネントと、当該コンポーネント間の必要な電気的接続に基づき、PCB上の物理コンポーネントの構成(又は配置)が決定される。その後、電気的に接続される必要があるピンのペア間でトレースがルーティングされる。
【0002】
電子回路がより複雑になるに従い、当該回路のPCBの設計はより困難なものとなる。この複雑さのため、多くの設計者がしばしば同一のPCB設計について作業する。参照することによりここに含まれる、米国特許第6,708,313号「Parallel Electronic Design Automation:Shared Simultaneous Editing」は、複数の設計者が同一のPCB設計について同時に作業することを可能にするシステム及び方法を記載している。ここで使用される「設計者」とは、人間の設計者と設計機能を実行するソフトウェアアプリケーションの両方を含む。少なくとも一実施例では、サーバコンピュータはPCB設計を維持し、当該設計のコピーが複数のクライアントコンピュータに配置される。各クライアントは、PCB設計の全体を閲覧することができる。クラインと側で当該設計が編集されると、この編集は設計を編集するリクエストとしてサーバに送信される。サーバが設計基準チェック(DRC)を実行し、リクエストされた編集が他の編集とコンフリクトしない、又はPCB設計に課された制約(トレース間の最小セパレーションなど)に違反していないことを確認した後、サーバは、リクエストされた編集を当該設計に適用する。適用された編集は、その後、クライアント側におけるPCB設計コピーの更新のため、クライアントに配信される。
【0003】
複数の設計者が同一のPCB設計について同時に作業するときでさえ、この処理は大変時間のかかるものとなりうる。設計処理の最も時間を要する点の1つは、電子コンポーネント間の導電性パスのルーティングである。接続ラインが頻繁に交差している概略図では、PCB上のトレースの交差は短絡又は他の望ましくない結果をもたらしうる。回路のすべてのコンポーネントが基板上のある位置に割り当てられると(配置されると)、所望の電子接続のみが生成されるように、ピン間の接続がルーティングされる必要がある。一部のケースでは、PCBは相互に接続される必要がある数百又は数千のピンを有するかもしれない。ある接続について与えられたルートは、しばしば他の接続のための利用可能なルートを排除する。ルート決定される接続が多くなるほど、利用可能なルーティングスペースは少なくなり、残りの接続をルート決定する作業はより困難となる。マルチレイヤPCBは、接続をルート決定するためのスペースをより多く提供することにより上記問題を解消するものであるが、この作業は極めて複雑なものである。しばしば、多数の接続が、以前にルート決定された接続が「取り除かれ(ripped up)」、再ルート決定される必要があることが検出される前に、ルート決定される。
【0004】
人間の設計者によるPCBの手動によるルート決定は、大変大きな作業時間を要するため、ルーティング処理を自動化する(「自動ルーティング」)ための多数のアルゴリズムが作成されてきた。しかしながら、適度な複雑さの回路についてでさえ、既存のアルゴリズムはPCB全体をルート決定するのに極めて多くの時間を要する。実際、PCB設計者が仕事時間の終わりに自動ルーティングプログラムをスタートさせ、プログラムを一晩中実行させることが通常である。このような大きな実行時間に対する1つの可能な解決策は、複数のコンピュータ間にルーティングタスクを分散させることである。集積回路(IC)の設計に用いられるルーティングプログラムは、予め分散環境において動作するよう変換されていた。しかしながら、PCBのルーティング問題は、ICルーティングに係るものとは全く異なるものである。例えば、ICの機能コンポーネントは、しばしばトレースが基盤の幅全体及び/又は長さ全体にわたることが必要であるPCBよりも、より局所化される傾向にある。この局所性の欠落は、PCBのルーティング設計の領域の割当てを困難にすると共に、異なる設計者(人間又は自動化の何れでも)によりルート決定される各セクションを結合させるとき問題を生じさせる。ICの各要素は、同一サイズに近いものとなる傾向があり(少なくともトランジスタレベルでは)、しばしばチップの異なるレベルにおける導電性パスの接続に関するコストは大きなものではない。他方、PCB上に配置される各コンポーネントは、広範なサイズを有し、このサイズ範囲はルーティング問題を複雑化しうる。さらに、製造コストはしばしば、異なるPCBレイヤ上のトレースを接続する「ビア」を最小限に抑えるよう要求する。上記及び他の理由のため、IC設計に用いられる分散自動ルーティングアプローチは、PCB設計において限定的な価値しか有さない。実際、分散PCB自動ルーティングは、新たなタイプのルーティングアルゴリズムがまず開発されることを要求し、既存のルーティングアルゴリズムが1つのPCBをルート決定するのに複数のコンピュータにより効果的には利用することができないと、多くが考えている。
[発明の概要]
本発明の実施例は、自動ルーティングがより迅速に実行されることを可能にし、PCB設計のルートが既存のルーティングアルゴリズムを利用して複数のコンピュータにより生成されることを可能にする。少なくとも一部の実施例では、サーバコンピュータは、PCB設計のためのマスターデータベースを維持する。このデータベースは、回路コンポーネントとそれらの配置に関する情報、PCB設計の設計基準及び他の各種情報を有する。PCB設計のコピーが、複数のクライアントコンピュータに提供される。概略的な電子回路(又はそのための他の設計データ)が、接続される必要がある回路コンポーネントピンのすべてのペアのリストを生成するのに利用される。このリスト(又はネットリスト)は、サーバによりソートされる。各クライアントについて、サーバは接続がルート決定される必要がある異なるピンペアを割り当てる。クライアントが与えられたピンペアについて割り当てられたルーティングタスクを完了すると、結果をサーバに転送する。特に、クライアントは、サーバがPCBマスターデザインを、クライアントがそれの割り当てられたピンペアについて求めたルートにより更新することを要求する。編集リクエストを転送した後、クライアントは、当該編集を反映させるため、PCB設計のそれのコピーを更新しない。代わりに、クライアントは、サーバによるピンペアの割当て前に占有されていた状態にそれのコピーを返す。
【0005】
少なくとも第1実施例では、本発明は、プリント基板(PCB)の導電性パスをルート決定する方法を有する。当該方法は、コンポーネントピンペアを2つのピンの間に導電性パスを自動的にルート決定するよう構成される複数のクライアントコンピュータのそれぞれに割り当てることからなる。本方法はまた、各クライアントから当該クライアントの割り当てられたピンペアを接続する導電性パスの提起されたルートを受信することからなる。当該ルートは、マスターPCB設計に含められ、本方法の各ステップが繰り返される。第2実施例は、第1実施例の方法を実行するための命令を含むマシーン可読媒体を含む。
【0006】
少なくとも第2実施例では、本発明は、プリント基板(PCB)の導電性パスをルート決定する他の方法を有する。本方法は、接続する導電性パスがルート決定される電子回路の1以上のコンポーネントのピンを特定するピンペア割当てを含む。本方法はさらに、特定されたピン間の導電性パスのルートを自動検出し、検出されたルートを提起する編集リクエストを送信し、提起されたルートがPCB設計に含まれることの表示を受信することからなる。当該表示の受信後、PCB設計のローカルコピーが、検出されたルートを含むよう更新される。第4実施例は、第3実施例の方法を実行するための命令を含むマシーン可読媒体を含む。
【0007】
本発明の上記及び他の特徴及び効果は、添付された図面と共に以下の好適な実施例の詳細な説明から容易に明らかとなり、十分理解されるであろう。
[好適実施例の詳細な説明]
少なくとも一部の実施例は、従来の自動ルーティングアルゴリズムを実行する複数のコンピュータ間のPCB設計の自動ルーティングを分散化する。予備的なテスト処理は、大きく複雑なPCBをルーティングするとき、コンピュータの個数に対して約0.75のパフォーマンスレシオとなる。言い換えると、4つのクライアントコンピュータを用いてPCBをルート決定する場合、PCBは、1つのコンピュータを用いてルート決定する場合より約3倍速くルート決定される。少なくとも一部の実施例では、サーバコンピュータは、PCB設計のためのマスターデータベースを維持する。このデータベースは、回路コンポーネントとそれらの配置に関する情報、PCB設計の設計基準及び他の各種情報を有する。PCB設計のコピーが複数のクライアントコンピュータに提供される。概略的な電子回路(又はそれについての他の設計データ)が、電気的に接続される必要がある回路コンポーネントピンのすべてのペアのリストを生成するのに利用される。このリスト(又はネットリスト)、その後サーバにソートされる。各クライアントについて、サーバは、接続がルート決定される必要がある異なるピンペアを割り当てる。クライアントが与えられたピンペアについて割り当てられたルーティングタスクを完了させると、それは結果をサーバに転送する。特に、クライアントは、サーバがクライアントがそれの割り当てられたピンペアについて検出したルートによりPCBマスター設計を更新することをリクエストする。編集リクエストを転送した後、クライアントは、編集を反映させるためのPCB設計のそれのコピーを更新しない。代わりに、クライアントは、それのコピーをサーバによるピンペアの割当て前に占有されている状態に返す。
【0008】
クライアントから編集リクエストを受信した後、サーバは、要求元のクライアントにより検出されたルートについて設計基準チェック(DRC)を実行する。当該ルートがDRCをパスすると、サーバは、当該ルートを含めるよう編集リクエストをマスター設計に適用する。サーバは、新たなルートを反映させるため、すべてのクライアントにそれらのPCB設計のコピーを変更するよう更新を転送する。サーバはまた、新たに適用されたルートを検出したクライアントに新たなピンペアを割り当てる。編集リクエストがDRCを満たしていない場合、サーバは、PCBマスター設計を更新しない。代わりに、サーバは、当該リクエストを送信したクライアントに前に割り当てられたピンペアのルート決定を再試行し、又は他のピンペアをルート決定するよう指示する。本発明のさらなる特徴及び追加的な実施例が、以下において説明される。
【0009】
図1は、ネットワーク接続されたコンピュータシステムにより実現される本発明の一例を示すブロック図である。サーバ2は、マスターPCB設計3を維持し、複数のクライアントコンピュータ5、6及び7へのピンペア割当てをネットワーク8を介し通信する。クライアント5、6及び7のそれぞれは、PCB設計3のコピーを維持する。しかしながら、以下でより詳細に説明されるように、各クライアントにより維持されるPCB設計3のコピーは、同一でなくてもよく、サーバ2がPCB設計3に実装したすべての変更を反映していないかもしれない。3つのクライアントのみが示されているが、他の多数のクライアントコンピュータが、同様にしてサーバ2とネットワーク接続することが可能である。各クライアント5、6及び7において、PCBコンポーネントのピン間の接続をルート決定するアプリケーションプログラムが実行されている。クライアント5、6及び7上の自動ルーティングソフトウェアは、サーバ2と協調して実行するよう変更される従来技術による各種自動ルーティングプログラムの何れかとすることができる(例えば、AUTOACTIVE位置及びルート編集環境又はオレゴン州のWilsonvilleのMentor Graphics Corporationから利用可能なBLAZEROUTER自動ルーティングソフトウェアなど)。特に、以下でより詳細に説明されるように、サーバ2は、ピンペア間の接続をルート決定するため、各クライアントにピンペアを割当て、さらにルート決定された接続が許容又は拒絶されるか否かクライアントに指示する。サーバ2からの指示に基づき、クライアント5、5及び7は、既知のルーティングアルゴリズムを利用して、PCB設計3の各部分をルート決定する。一部の実施例では、クライアント5、6及び7のすべてが、同一の自動ルーティングソフトウェアを有するとは限らない。
【0010】
サーバ2は、データベース9からPCB設計3にアクセスする。データベース9は、サーバ2の一部(サーバ2のハードドライブなど)であってもよく、またサーバ2の近隣に配置されてもよく、またサーバ2から遠隔に配置されてもよい。実際、データベース9は、クライアント5、6又は7の1つに物理的に配置されてもよい。サーバ2とクライアント5、6及び7は、従来技術によるコンピュータである。それぞれは、例えば、1以上のプロセッサ、不揮発性ストレージ(ハードディスクドライブなど)、揮発性メモリ(RAMなど)及び当該技術分野において周知な他の要素を有する。サーバ2とクライアント5、6及び7は、様々なオペレーティングシステムソフトウェアの何れかを利用するものであってもよい、コンピュータ間のネットワーク接続の詳細は、同様に当該技術分野において知られたものであり、ここでは説明されない。特に、サーバ2は、クライアント5、6又は7より大きな処理能力を有する必要はない。
【0011】
図2は、本発明の実施例をさらに示すのに用いられるPCB設計3の一部のブロック図である。図2に示されるように、各種電子コンポーネントの位置が基盤10にマップ(又は配置)されている。例えば、集積回路IC1とIC2の位置は、大きな正方形として示されている。メモリチップM1の位置は、大きな長方形として示されている。レジスタR1とR2は、より小さな長方形として示されている。図2の各コンポーネントとは、1以上の導電性トレースが接続される2以上のピン(大きなドットとして示される)を有する。これらのピンのいくつかは、以降の図面に対応するようラベル付けされている(21a、21bなど)。図2のPCBは両面基板である。言い換えると、PCBは、基板の両側に形成されるトレースを有し、このとき、反対側のトレースは「ビア」(すなわち、トレースを接続するため基板に貫通され、その後導電性物質により充填された開口)を用いて接続される。基板の反対側のトレースは、図面では垂直方向に配置され、以降の図面では破線により示される。基板の前面のトレースは、水平方向に配置され、実践により示される。上述のように、PCB設計3は、PCB設計が生成されている回路の一部しか有さない。これは、本発明の実施例の説明を簡単化するためのものである。実際的には、完全な回路はしばしばはるかに複雑であり、数百のコンポーネントと数百又は数千のピンを有するかもしれない。図2に示されるコンポーネントは、単なる具体例であり、本発明は当該コンポーネントの個数、タイプ又は構成に限定されるものではない。同様に本発明はまた、1つのサイドにしかトレースを有しないPCBと共に、2以上のトレースレイヤを有するPCBにも適用可能である。
【0012】
上述のように、ネットリストが、PCB上の回路について生成される。このリストは、回路から概略的又は他の方法により構成可能であり、接続される必要がある各ピンペアを特定する。図3は、図2のPCB設計3に対応するネットリスト11の一部を示す。図3に示されるように、ピン21a(IC1に配置される)は、ピン21b(IC2に配置される)に接続される必要がある。同様に、ピン22aと22b(それぞれIC1とIC2に配置される)とピン23aと23b(それぞれIC2とM1に配置される)が接続される。
【0013】
図4は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションの始まりを概略的に示す。図4に示されるように、サーバ2は、マスターPCB設計3を維持する。設計3は、すべてのコンポーネントの位置と、サーバ2が設計3に実装したすべてのルート決定された接続とを有する。図4は自動ルーティングセッションの始まりに対応しているため、サーバ2は、まだルート決定されたピン接続を設計3に実装していない。サーバ2はさらに、自動ルーティングセッションに参加するクライアントコンピュータの情報を維持する。各クライアントについて、サーバ2は、当該クライアントにまだ与えられていない中断中の設計更新を追跡する(更新キュー)。サーバ2はさらに、自動ルーティングのため各クライアントに割り当てられた現在のピンペアと、割り当てられた自動ルーティングタスクの各クライアントの進捗状況に関する他の各種情報を追跡する。図4〜12の例では、3つのクライアント(5、6及び7)しか示されていないが、異なる個数のクライアントを含めることができる。
【0014】
図5は、図4の自動ルーティングセッションの以降の時点を示す。特に、サーバ2は、初期的にはルート決定のため、あるピンペアを各クライアントコンピュータに割り当てている。具体的には、サーバ2は、ピンペア21a−21bをクライアント5に、ピンペア22a−22bをクライアント6に、ピンペア23a−23bをクライアント7に割り当てている。クライアント7は、ピン23aと23bとの間の接続をルート決定している。図6に示されるように、その後、クライアント7は編集リクエストをサーバ2に転送する。転送された編集リクエストは、クライアント7により求められたピン23aと23bの間のルートを含む。編集リクエストをサーバ2に転送した後、クライアント7は、ピン23a−23bのルート決定前の状態にPCB設計のコピーを返し、サーバ2からのさらなる指示を待機する。
【0015】
図7において、サーバ2は、クライアント7から編集リクエストを受信し、クライアント7が設計3に追加しようとするルートに対し設計基準チェック(DRC)を実行した。特に、サーバ2は、提起されたルートが設計3に以前に追加された他のルートとコンフリクトしているか、又はPCB設計に対して確定された基準に違反しているか判断する。例えば、ある基準は、製造不具合により発生する短絡の可能性を最小限にするため、PCB上のトレースが最小距離だけ分離されることを要求するかもしれない。クライアント7からの編集リクエストに含まれる提起されたルートがDRCをパスした後、サーバ2は当該編集を設計3に適用する。その後、サーバ2は、ルート決定のため、クライアント7に新たなピンペアを割当て、ピン23aと23bの間の新たなルートを反映させるため、すべてのクライアントが設計3のコピーを更新するよう更新メッセージを用意する。
【0016】
サーバ22は、各クライアントの更新キューに更新メッセージを配置する。少なくとも一部の実施例では、サーバ2は、当該クライアントがアイドル状態であるまで更新をクライアントに送信しない。例えば、クライアント7は、サーバ2が新たなピンペア割当てを転送するのを待機している。サーバ2が新たなピンペア割当てをクライアント7に転送すると、サーバ2はまた、提起されたルート23a−23bを設計3のクライアント7のコピーに含めるようクライアント7に指示する更新を転送する。このようにして、クライアント7は、それの新たなルーティングタスク中に、この新たに含められたルートを考慮することができる。サーバ2が提起されたルート23a−23bを拒絶し、クライアント7へのピンペア23a−23bの初期的な割当て時点と拒絶を通知する時点との間に更新が生成された場合、サーバ2は、提起されたルート23a−23bが拒絶されたことを通知し、クライアント7に再試行するよう指示するメッセージにより、これらの仮の更新をクライアント7に送信する。例えば、クライアント5又は6は、クライアント7の前にルーティングタスクを完了し、クライアント7により提起されたルートとコンフリクトするルートを生成したかもしれない。
【0017】
図8は、図4において開始された自動ルーティングセッション中のさらなる以降の時点を示す。当該時点において、サーバ2は、ピンペア21a−21b、22a−22b、23a−23b、24a−24b、25a−25b及び26a−26bのルートを設計3に実装した。クライアント7は、ピンペア24a−24bの間の接続をちょうどルート決定したところであり、クライアント5と6はそれぞれ、ピンペア27a−27bと28a−28bをルート決定しようとしている。サーバ2がピンペア24a−24bをクライアント7に割り当てた時点から、クライアント5は、ピンペア25a−25bを接続するルートを提起する編集リクエストをサーバ2に送信し、サーバ2は当該ルートを受け入れる。同じ期間中、クライアント6は、ピンペア26a−26bを接続するルートを提起する編集リクエストをサーバ2に送信し、サーバ2はまた当該ルートを受け入れる。サーバ2がピンペア25a−25bのルートを受け入れると、サーバ2は更新リクエストを準備し、それを各クライアントの更新キューに配置する。この更新は、新たなピンペア割当て(27a−27b)と共にクライアント5に送信されたが、何れもルート決定割当てによりビジー状態であったため、クライアント6又は7には送信されなかった。サーバ2は以降においてクライアント6により提起されたピンペア26a−26bのルートを受け入れたとき、サーバ2は、当該ルートに対する他の更新リクエストを準備し、それを各クライアントの更新キューに配置する。その後、クライアント5はピンペア27a−27bをルート決定するのにビジー状態であり、クライアント7は依然としてピンペア24a−24bをルート決定するのにビジー状態であったため、更新はクライアント5又は7には送信されなかった。しかしながら、ピンペア25a−25bと26a−26bのルートの更新は、新たなピンペア割当て(28a−28b)と共にクライアント6に送信された。従って、クライアント7がピンペア24a−24bのルートを検出した時点では、クライアント7はそれの更新キューに2つの更新を有し、クライアント5はそれの更新キューに1つの更新を有し、クライアント6はそれの更新キューに更新を有しない。同様に、クライアント7は、設計3に実装されたピンペア25a−25bと26a−26bのルートを知ることなく、ピンペア24a−24bをルート決定した。
【0018】
図9において、クライアント7は、提起された24a−24bの接続ルートに対する更新リクエストを転送した。サーバ2がピンペア24a−24bを接続する提起されたルートに対してDRCを実行すると、サーバ2は、基準違反を検出する。特に、図10及び10Aにより詳細に示されるように、提起された24a−24bのルートは、ピン25a−25bのルートに近すぎる。図10では、トレースは実線又は破線として示される。トレース間の最小クリアランスは、各トレースの周囲の斜線領域として表される。基板の同一サイドの2つのトレースの斜線領域がオーバーラップする場合(又は2以上のレベルを有する基板についての同一レベル上で)、これらのトレースは近すぎる。図10に示されるように、図10Aの拡大図により詳細に示されるように、提起されたルート24a−24bのクリアランスゾーンの水平部分は、前に実装された25a−25bルートのクリアランスゾーンの水平部分とオーバーラップする。従って、サーバ2は、ピン24a−24bを接続する提起されたルートを拒絶する。このとき、サーバ2は、クライアント7の更新キューの(ピンペア25a−25b及び26a−26bの)更新と共に、拒絶メッセージをクライアント7に送信する(図11)。その後、クライアント7は、新たなルートを検出する(図12)。特に、この新たなルートは、2つの水平セクションと2つの垂直セクションを有するため、追加的なビアを要する。図12には図示されていないが、クライアント7は、その後第2のルートに対するその後の編集リクエストを転送する。
【0019】
すべてのピンペアがルート決定されるまで、又は他の停止状態に到達するまで、図4〜9に示されるプロセスは続けられる。例えば、1以上のクライアントは、あるピンペアが現在の設計基準及び以前に実装されたルートに基づきルート決定できないと通知するかもしれない。一部のケースでは、接続のルート決定ができないことは、クライアントが指定された期間内に当該接続をルート決定しないことに基づくものであるかもしれない。ルート決定できない接続の接続数に応じて、設計者は、設計基準及び/又は以前のルートを調整することによりこれらの接続を手作業によりルート決定するかもしれない。決定不能な接続数が十分大きなものであり、あるいはその問題が他のルート及び/又は設計基準を調整することによっては解決できない場合、1以上のコンポーネントを移動させる必要があり、ルート決定プロセスは繰り返される。
【0020】
本発明の他の実施例では、サーバ2は、ネットリストを介し複数のパスを実行する。第1パスでは、サーバ2は、クライアント5、6及び7がビアを用いることなくピンペア接続をルート決定することを要求する。サーバ2は、第1パス中にネットリストのすべてのピンペアを検索する(又は後述されるように、ビアなしにおそらくルート決定可能なすべてのペアを検索する)。各ピンペアについて、サーバ2は、クライアントの1つから接続ルートを取得するか、又は当該接続がビアなしにルート決定することは不可能であるという表示を取得する。あるピンペアの接続がビアなしにルート決定することができない場合、当該ピンペアのルート決定は、ネットリストの次のパスまで保留される。ネットリストの第2パスでは、サーバ2は、1つのビアしか用いることなくクライアントが接続をルート決定するよう要求する。サーバ2は、再びネットリストのすべてのピンペアを検索し(又は後述されるように、1つのみのビアでおそらくルート決定なすべてのペアを検索し)、クライアントの1つから各ペアのルート決定が不可能であるとの旨又はルートの何れかを取得する。1つのみのペアを用いてはルート決定不可能なピンペア接続は、次のパスまで再び保留される。第3パスでは、サーバ2は、クライアントが2つのビアを用いて接続をルート決定することを可能にする。サーバ2は再び、ネットリストのすべてのピンペアを検索し(又は2つのビアのみでおそらくルート決定可能なすべてのペアを検索し)、各ペアについて1つのクライアントからのルート決定が不可能であるとの旨又はルートの何れかを取得し、次のパスまでルート決定が不可能な接続を保留する。サーバ2は、すべての接続がルート決定されるまで、又は他の停止状態に到達するまで、追加的な個数のビアについてパスを実行し続ける。
【0021】
各パスの内部に、サーバ2は複数のベース上でピンペアを割り当てる。まず、サーバ2は、より短い接続を要求するピンペアを割り当てる前に、より長い接続を要求するピンペアを割り当てる。言い換えると、サーバ2は、各ペア内のピンの間の距離に基づきピンペアをソートし、距離について降順にピンペアを割り当てる。一部の実施例では、サーバ2はさらに、ピンペアの相対位置に基づきピンペアをソートする。特に、同一の一般的分離距離を有するピンペアの複数のグループについて、サーバ2は、最も少なくしかオーバーラップしないピンペアを割り当てる。このことは、接続対象となるピンを有する3つのレジスタ(R)、メモリチップ(M)及び2つの集積回路(IC)を示す図13に示される。ピン41a及び41bと、ピン42a及び42bと、ピン43a及び43bを接続する要求は、図13の回路のネットリストに含まれる。ピン41aと41bの間の距離は、ピン42aと42bの間の距離に等しく、またピン43aと43bの間の距離に等しい。図13の上記ピンペアのそれぞれについて、各ペアのピンは対角的なノードに配置されるような長方形が示される。43a−43bの長方形は、41a−41bの長方形に若干オーバーラップしている。42a−42bの長方形は、より大きく41a−41bの長方形にオーバーラップしている。43a−43bの長方形は41a−41bの長方形とあまりオーバーラップしていないため、ピン41a−41bと43a−43bについて同時にルート決定される接続がコンフリクトする可能性は低い。他方、ピン41a−41bと42a−42bについて同時にルート決定される接続がコンフリクトする可能性は高い。従って、サーバ2は、ピン41a−41bを1つのクライアントに、43a−43bを他のクライアントにそれぞれ割当て、ピン41a−41bをルート決定しながら、ピン42a−42bを割り当てることを回避する。
【0022】
実際に、図13と同一の分離距離を有するピンペアが複数存在することはないかもしれない。しかしながら、分離に基づきピンペアをソートした後、サーバ2は、一部の実施例では、距離によりランク付けされたペアのリストのある範囲内のピンペアの間のオーバーラップの量をチェックするよう構成される。図14は、少なくとも一部の実施例において、サーバ2が(図15のネットリストを用いて)どのようにしてこのチェックを実行するかについての一例を示すフローチャートである。図15のネットリストは、分離距離の降順によりピンペアをリストする。言い換えると、ピンペアn−4のピンはペアn−3のピンより離れており、ペアn−3のピンはさらにペアn−2のピンより離れているなどである。図14及び15において、サーバは、ピンペアnとピンペアn−2を各自の第1及び第2クライアントに以前に割り当てており、現在はあるピンペアを第3クライアントに割り当てている。サーバは、ピンペアn−4、n−3又はn−1をまだ割り当てていない。前のピンペア割当てを行うとき、これらのピンペアについて描かれる長方形は、他のピンペアの長方形よりすでに割り当てられたピンペアの長方形とより大きくオーバーラップしている。ブロック101(図14)から始まり、サーバは、現在割り当てられているピンペア長方形といくつかの候補ピンペアの間のオーバーラップを評価する。特に、サーバは、ピンペアn−4、n−3及びn−1のそれぞれの長方形が、ピンペアnの長方形とピンペアn−2の長方形とオーバーラップしている量を計算する。その後、サーバは、サーバがX個の候補ピンペアについて計算する実行完了するまで、ピンペアn+1、n+2、n+3などについて同じ計算を実行する。Xの値は、予め設定された値とすることができ、又は自動ルーティングセッション中に他の条件に基づき可変とすることも可能である。候補ピンペアのオーバーラップを計算した後、ブロック103において、サーバは、何れの候補ピンペアが現在割り当てられているピンペアと最小のオーバーラップを有しているか決定する。具体的には、サーバは、各候補ピンペアがピンペアnとオーバーラップしている量を、同じ候補ピンペアがピンペアn−2とオーバーラップしている量に追加する。ブロック105において、最小の合計されたオーバーラップを有するピンペアが、第3クライアントに割り当てられる。
【0023】
図14のアルゴリズムに対する多数の変形が、他の実施例において利用されている。例えば、現在割り当てられているピンペアの最小合計オーバーラップを有するピンペアを単に割り当てる代わりに、サーバはさらに、あるピンペアが現在割り当てられているピンペノ何れとも所定量以上はオーバーラップしていないことを要求することができる。他の実施例では、以前に無視されたピンペアは(n−4、n−3及びn−1など)優先され、及び/又は所定の回数以上無視されると自動的に選択される。本発明の範囲内において、多数の他の変形が可能である。
【0024】
一部の実施例では、サーバ2はまた、ある個数のビアを用いてルート決定を求めるネットリストのパスを行う前に、何れのピンペアが当該ビア制限を満たすことができないか判断する。(図13の回路コンポーネントを生成する)図16に示されるように、一部のピンペア(ピン44a−44b、48a−48bなど)は、ターン(turn)を有しないルートにより潜在的に接続可能である。これらのピンがターンを有しないルートと接続することが可能である場合、ビアは必要ではないかもしれない。従って、これらのピンペアは、第1パス中のルート決定のため割当て可能である。他のピンペア(ピン45a−45bなど)は、少なくとも1つのターンと、従って少なくとも1つのビアを有するルートを要求するであろう。これらのピンペアはビアを用いることなくルート決定するよう制限されるクライアントによってはルート決定することはできないため、第2パスまでこれらのピンペアは保留される。一部のピンペア(ピン46a−46b、47a−47bなど)は、少なくとも2つのターンを有し、従って少なくとも2つのビアを有するルートを要求し、このため、第3パスまで自動的に保留されるであろう。より複雑な設計では、さらに大きな最小ターン数を有するルートを有するピンペアが存在するかもしれない。
【0025】
他の実施例では、ピンペア間の接続は、PCBの1つのレイヤ上で方向を変更することが許されるかもしれない。言い換えると、トレースがピン49aから延びることにより示されるように、いくつかのトレースは、他のレベルのトレースと接続することなく、従って、ビアを利用することなくターンすることが許されるかもしれない。当該実施例では、このようなトレースは、予め特定することができ(例えば、ある領域にあるコンポーネントについて、あるピンのこのようなトレースを可能にするなど)、適当なパスに含めることができる。
【0026】
図17は、本発明の少なくとも一部の実施例により、サーバからの分散自動ルーティングセッションを制御する方法のフローチャートである。ブロック201において、サーバは、プリント基板上に配置されるべき回路の電気設計を受信する。この電気設計は、接続されるべきすべてのピンペアを示すネットリストと、PCB上のコンポーネントの配置を含む。ブロック203において、サーバはピンペアをソートする。一部の実施例では、上述されるように、サーバは接続対象のピンの間の距離に基づきピンペアをソートする。サーバはまた、1つのビア、又は2つのビアなどを用いることなく接続可能なピンなど、他のベースについてソートするかもしれない。ブロック205において、サーバは、パスカウンター(p)を「0」に設定する。ブロック207において、サーバはパス0を開始する。当該パス中、サーバは、ビアを用いることなくピン間の接続をクライアントにルート決定するよう要求するであろう。ブロック209において、サーバは、クライアントへの割当てのためピンペアを選択する。初期的には、サーバは、ネットリストの最初のピンペアを単に選ぶことによりピンペアを選択する。最初のピンペアが割り当てられた後、サーバは前に割り当てられたピンペアとのオーバーラップ及び距離に基づくと共に(図14及び15について説明されるように)、あるピンペアが現在のビア制限を用いて接続可能であるかに基づき(例えば、パス0にはビアはなく、パス1には1つのビアなど)、以降のピンペアを選択する。ブロック211において、サーバは、選択されたピンペアをクライアントに割当て、割り当てられたピンペアを当該クライアントの更新キューの更新と共に転送する(初期的には更新は存在しない)。ブロック213において、サーバは、ピンペアに割り当てられていない他の何れかのクライアントが存在しないか判断する。存在する場合、サーバはブロック209に戻って、次のクライアントのピンペアを選択肢、ブロック211において当該割当てを転送する。ブロック213において、ピンペアが割り当てられる必要があるクライアントがもはや存在しない場合(「no」ブランチ)、サーバは、ブロック215に移行する。ブロック215において、サーバは、クライアントが当該クライアントの割り当てられたピンペアの提起されたルートを含む編集リクエストを提出するか(編集)、又は割り当てられたピンペアが接続不可(エラー)であることを示すまで待機する。
【0027】
クライアントは、それ自体、割り当てられたピンペアが現在のビア制限を用いてルート決定することができないことを示すことによって、エラーを提出するようにしてもよい。クライアントはまた、所定時間以上接続をルート決定しようとした場合、エラーを提出するようにしてもよい。サーバはまた、クライアントにタイムアウトエラーを生成するようにしてもよい。エラーが発生すると、サーバはブロック217に移行する。ブロック271において、サーバは、現在のビア制限のためルート決定することができないか判断する。そうである場合(ピンペアが現在ルート決定できないため、「no」ブランチ)、又はピンペアが現在のパスにおいて最大数のエラーを前に生成してしまっている場合(拒絶が最大値未満でない)、サーバはブロック219に移行する。ブロック219において、ピンペアは以降のパスに保留される。その後、サーバはブロック227に移行し、現在のパスに残りのピンペアがあるか判断する。そうである場合、サーバは保留されたピンペアをルート決定できないクライアントの他のピンペアの選択のため、ブロック209に移行する。そうでない場合、サーバは後述されるブロック203に移行する。
【0028】
ブロック215で通知されるエラーが、ビア制限により生じたものではなく、ピンペアが現在のビアにおいて最大回数拒絶されていない場合、サーバは、ブロック217において「yes」ブランチを選択する。例えば、一部のピンペアがルート決定された後、あるクライアントは前にルート決定された接続を知ることなく接続をルート決定するかもしれない。この場合、現在のビア制限を用いて接続をルート決定することが依然として可能であるかもしれない。従って、ブロック221において、サーバは、当該クライアントの更新キューの更新と、現在のピンペアのルート決定を再試行する指示(すなわち、ピンペアの再割当て)を送信する。ブロック221から、サーバはブロック215に戻り、他の編集又はエラー報告を待機する。
【0029】
サーバがブロック215において編集リクエストを受信した場合、サーバは、ブロック223に戻り、提起されたルートについて設計基準チェック(DRC)を実行する。提起されたルートがDRCを満たしていない場合(「不成功(fail)」ブランチ)、サーバはブロック225に移行する。ブロック225において、サーバは、ピンペアが現在パス中に最大回数未満しかDRCに失敗していないか判断する。そうである場合(「yes」ブランチ)、サーバは、ブロック221に移行し、更新がクライアントに送信され、クライアントは再試行するよう指示される。現在パス中のピンペアのDRCの失敗回数が最大数未満でない場合(「no」ブランチ)、サーバはブロック219に移行し、ピンペアが以降のパスに保留され、その後ブロック227に移行する。
【0030】
提起されたルートがブロック223においてDRCをパスすると(「成功(pass)ブランチ」ブランチ)、サーバは、ブロック229においてマスターPCB設計に当該ルートを実装する。サーバはまた、新たに実装されたルートを反映する更新を生成し、各クライアントのキューに更新を配置する。その後、サーバはブロック231に移行し、現在のパスに残りのピンペアがないか判断する。そうである場合、サーバはブロック209に移行し、実装されたルートを提供するクライアントのため他のピンペアを選択する。そうでない場合、サーバはブロック233に移行する。ブロック233において、サーバは、ネットリストの他のパスを実行するか判断する。例えば、設計基準は、何れの状況においても指定された個数のビアより多く有するルートが存在しないことを要求するかもしれない。サーバが当該指定された個数プラスビアのないルートには1つのパスに等しいパス数を実行した後、サーバはもはやパスを生成しない。このような場合、サーバはブロック233の「no」ブランチからブロック237に移行する。ブロック237において、サーバは、何れのピンペア(存在すれば)がルート決定されていないか示すレポートを生成し、その後、ルーティングセッションを終了する。さらなるパスがネットリストにおいて生成される場合(ブロック233の「yes」ブランチ)、サーバは、ブロック235においてパスカウンターpをインクリメントし、その後、ブロック207に戻り、新たなパスを開始する。次のパス中、クライアントは、p個のビアを用いてピンペアをルート決定するよう指示される。
【0031】
一般には、DRCを実行し、サーバにより実行される他のタスクを実行するのに必要な処理時間は、1つのピンペアをルート決定するのにクライアントにより必要とされる時間よりはるかに少ない。従って、サーバはしばしば、クライアントより大きな処理パワーを必要としなくなる。複数の編集リクエストが素早く連続的にクライアントから到達する場合(図17のブロック215)、当該編集リクエストはキュー可能であり、FIFOベースによりサーバにより処理可能となる。
【0032】
図18は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションによりクライアントを実行する方法のフローチャートである。ブロック301から始まり、クライアントはサーバから指示を受信する。これらの指示は、新たなピン割当てかもしれないし、あるいはピンペアのルート決定を再試行する指示であるかもしれない(すなわち、ピンペアの再割当て)。クライアントはまた、サーバにより可能な接続に介される制限を受信し(ビア制限など)、またクライアントにより維持されるPCB設計のコピーの1以上の更新を受信するようにしてもよい。ブロック303において、ブロック301において受信した更新が(存在する場合)、PCB設計のクライアントコピーに適用される。ブロック305において、クライアントは、割り当てられたピンペアを接続するルートを検出するため、1以上のルーティングアルゴリズムの利用を開始する。これらのルーティングアルゴリズムに基づき、クライアントは、ルートを検出するか、あるいはピン間の接続が検出不可であると判断する(現在のビア制限のためなど)。一部の実施例では、クライアントはまた、所定時間後に接続をルート決定することを停止し、必要となる時間に基づきルート決定することができないと通知するよう構成されてもよい。ブロック305から、クライアントはブロック307に移行する。ブロック305においてクライアントが割り当てられたピンペアのルートを検出した場合、クライアントは、「yes」ブランチによりブロック309に移行する。ブロック309において、クライアントは、検出されたルートを含む編集リクエストをサーバに転送する。ブロック311において、クライアントは、ブロック305の前であって、ブロック303の後にPCB設計のそれのコピーを当該コピーの状態に戻す。ブロック311から、クライアントは、ブロック315に戻り、サーバからのさらなる指示を待機する。クライアントがブロック305において割り当てられたピンペアのルートを検出することができなかった(又はタイムアウトとなった)場合、クライアントは、「no」ブランチによりブロック307からブロック313に移行する。ブロック313において、クライアントは、ピンペア接続をルート決定することができないことを通知する。その後、クライアントはさらなる指示を待機するためブロック315に移行する。
【0033】
一部の実施例では、図19に示されるように、サーバは、ルート決定のため同一のピンペア(ya−yb)を複数のクライアントに割り当てるようにしてもよい。一部のケースでは、ルーティングセッションは、ほとんど完了し、ルート決定されていないピンペアよりクライアントの方が多くなるかもしれない。他のケースでは、比較のため他のルートを展開することが望ましいかもしれない。ピンペア接続をルート決定するのに要する処理時間は、より多くのピン接続が追加されるに従って、大きく増加しうる。より多くのクライアントが同じルーティング問題を解こうとする場合、解は潜在的により速く検出されるかもしれない。これについて、図19に示されるように、クライアントには、同じピンペアをルート決定するための異なるパラメータが与えられているかもしれない。一例として、1つのクライアントは必要に応じて多数のビアを利用することが許され、他のクライアントは1つのPCBレイヤを占有する多方向トレースを利用することが許されているかもしれない(すなわち、ビアを利用することなく方向を変更する)。他の例として、1つのクライアントは、ルートの一部を削除し、再ルート決定することが許され、他のクライアントは、他のルート部分を削除し、再ルート決定することが許されているかもしれない。また、クライアントには異なるコンポーネント配置、異なるルーティングスキーム、異なる接続スケジュール又は他の異なるパラメータを有するルーティング割当てが与えられてもよい。さらなる他の実施例では、ピンペアをルート決定するクライアントには、労力の重複を回避するため、同じピンペアを他のクライアントがルート決定することによりしさされるルートがアドバイスされる。同一のピンペアをルート決定するクライアントの状況は、例えば、何れのルーティングパラメータがより迅速な進捗を可能にするか判断するためなどに監視されてもよい。
【0034】
本発明を実行する複数の例が説明されたが、当業者は、添付された請求項に与えられる本発明の趣旨及び範囲内に属する上述の例の変形及び並び替えが多数存在するということは理解するであろう。上述のアルゴリズム、システム構成及び他の特徴は、単なる例にすぎない。多数の他のアルゴリズム、構成及び特徴と同様に、上述のアルゴリズム、システム及び特徴の変更は本発明の範囲内に属する。例えば、上述の実施例は、1つのピンペアを各クライアントコンピュータに割り当てるが、本発明はこのような実施例に限定されるものではない。他の実施例では、サーバは、あるクライアントに対する自動ルーティング割当てに2つの(又はそれ以上の)ピンペアを含むかもしれない。その後、クライアントは、これらのピンペアの一部又はすべてについての提起されたルートを返す。従って、以下の請求項の単数形の使用は、排他的に解釈されるべきではない(例えば、「ある」とは、「唯一」を意味するものではない)。他の例として、2つのピンの間のルートを検出するクライアントコンピュータは、編集リクエストをサーバに転送するとすぐに、PCB設計のそれのコピーを以前の状態に戻す必要はない。代わりに、クライアントは、それの検出したルートが残ることを許容することが可能であり、サーバが検出されたルートを拒絶した場合、クライアントは、拒絶を受信すると、検出されたルートを削除することができる。さらに、ここで使用される(請求項を含む)「プロセッサ」という表現は、単一のプロセッサに限定されず、相互に関連する処理機能を共に実行するよう協調する複数のプロセッサを含むものであってもよい。
【図面の簡単な説明】
【0035】
【図1】図1は、本発明の少なくとも一部の特徴が実現される計算システムのブロック図である。
【図2】図2は、PCB設計の一部のブロック図である。
【図3】図3は、図2のPCB設計のネットリストである。
【図4】図4は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションの始めを概略図により示す。
【図5】図5は、図4の自動ルーティングセッションの以降の時点を示す。
【図6】図6は、図4の自動ルーティングセッションの以降の時点を示す。
【図7】図7は、図4の自動ルーティングセッションの以降の時点を示す。
【図8】図8は、図4の自動ルーティングセッションの以降の時点を示す。
【図9】図9は、図4の自動ルーティングセッションの以降の時点を示す。
【図10】図10は、提起されたピン接続ルートの設計基準違反を示す。
【図10A】図10Aは、提起されたピン接続ルートの設計基準違反を示す。
【図11】図11は、図4の自動ルーティングセッションのさらなる以降の時点を示す。
【図12】図12は、図4の自動ルーティングセッションのさらなる以降の時点を示す。
【図13】図13は、相対位置によるピンペアの分類を示す。
【図14】図14は、少なくとも一部の実施例によるピンペア間のオーバーラップ量をチェックするアルゴリズムを示すフローチャートである。
【図15】図15は、分離距離の降順によるピンペアを有するネットリストを示す。
【図16】図16は、最小のビアによるピンペアの分類を示す。
【図17】図17は、本発明の少なくとも一部の実施例によるサーバからの分散自動ルーティングセッションを制御する方法のフローチャートである。
【図18】図18は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションにおいてクライアントを実行する方法のフローチャートである。
【図19】図19は、本発明の少なくとも一部の実施例による複数のクライアントへの同一のピンペアの割当てを示す。
【発明の詳細な説明】
【0001】
[関連出願の相互参照]
本出願は、参照することにより含まれる、2003年11月21日に出願された米国仮出願第60/523,697号「A Revolutionary Design Technology」の優先権を主張する。
[発明の技術分野]
本発明は、電子設計自動化ツールの技術分野に関する。より詳細には、本発明の実施例は、プリント基板(PCB)設計におけるトレースのルーティングを含む電子回路の導電性パスのルーティングに関する。
[発明の背景]
電子回路は、典型的には、レジスタ、集積回路(IC)、キャパシタ、ダイオード、トランジスタなどの多数の電子コンポーネントを有する。各コンポーネントは、当該コンポーネントがあるタイプの電気コンダクタにより1以上の他のコンポーネントに電気的に接続される接続ポイント(又はピン)を有する。プリント基板(PCB)上の回路では、コンポーネントピンは、基板上(内)の導電性ストリップ(又はトレース)と接続される。多くのケースにおいて、電気回路はまず概略図により記述される。この概略は、通常は記号表示されたコンポーネント間を結ぶラインにより相互接続される従来技術による記号(レジスタについてはジグザグのライン、ICについては矩形のボックスなど)として回路コンポーネントを示す。概略図に与えられるコンポーネントと、当該コンポーネント間の必要な電気的接続に基づき、PCB上の物理コンポーネントの構成(又は配置)が決定される。その後、電気的に接続される必要があるピンのペア間でトレースがルーティングされる。
【0002】
電子回路がより複雑になるに従い、当該回路のPCBの設計はより困難なものとなる。この複雑さのため、多くの設計者がしばしば同一のPCB設計について作業する。参照することによりここに含まれる、米国特許第6,708,313号「Parallel Electronic Design Automation:Shared Simultaneous Editing」は、複数の設計者が同一のPCB設計について同時に作業することを可能にするシステム及び方法を記載している。ここで使用される「設計者」とは、人間の設計者と設計機能を実行するソフトウェアアプリケーションの両方を含む。少なくとも一実施例では、サーバコンピュータはPCB設計を維持し、当該設計のコピーが複数のクライアントコンピュータに配置される。各クライアントは、PCB設計の全体を閲覧することができる。クラインと側で当該設計が編集されると、この編集は設計を編集するリクエストとしてサーバに送信される。サーバが設計基準チェック(DRC)を実行し、リクエストされた編集が他の編集とコンフリクトしない、又はPCB設計に課された制約(トレース間の最小セパレーションなど)に違反していないことを確認した後、サーバは、リクエストされた編集を当該設計に適用する。適用された編集は、その後、クライアント側におけるPCB設計コピーの更新のため、クライアントに配信される。
【0003】
複数の設計者が同一のPCB設計について同時に作業するときでさえ、この処理は大変時間のかかるものとなりうる。設計処理の最も時間を要する点の1つは、電子コンポーネント間の導電性パスのルーティングである。接続ラインが頻繁に交差している概略図では、PCB上のトレースの交差は短絡又は他の望ましくない結果をもたらしうる。回路のすべてのコンポーネントが基板上のある位置に割り当てられると(配置されると)、所望の電子接続のみが生成されるように、ピン間の接続がルーティングされる必要がある。一部のケースでは、PCBは相互に接続される必要がある数百又は数千のピンを有するかもしれない。ある接続について与えられたルートは、しばしば他の接続のための利用可能なルートを排除する。ルート決定される接続が多くなるほど、利用可能なルーティングスペースは少なくなり、残りの接続をルート決定する作業はより困難となる。マルチレイヤPCBは、接続をルート決定するためのスペースをより多く提供することにより上記問題を解消するものであるが、この作業は極めて複雑なものである。しばしば、多数の接続が、以前にルート決定された接続が「取り除かれ(ripped up)」、再ルート決定される必要があることが検出される前に、ルート決定される。
【0004】
人間の設計者によるPCBの手動によるルート決定は、大変大きな作業時間を要するため、ルーティング処理を自動化する(「自動ルーティング」)ための多数のアルゴリズムが作成されてきた。しかしながら、適度な複雑さの回路についてでさえ、既存のアルゴリズムはPCB全体をルート決定するのに極めて多くの時間を要する。実際、PCB設計者が仕事時間の終わりに自動ルーティングプログラムをスタートさせ、プログラムを一晩中実行させることが通常である。このような大きな実行時間に対する1つの可能な解決策は、複数のコンピュータ間にルーティングタスクを分散させることである。集積回路(IC)の設計に用いられるルーティングプログラムは、予め分散環境において動作するよう変換されていた。しかしながら、PCBのルーティング問題は、ICルーティングに係るものとは全く異なるものである。例えば、ICの機能コンポーネントは、しばしばトレースが基盤の幅全体及び/又は長さ全体にわたることが必要であるPCBよりも、より局所化される傾向にある。この局所性の欠落は、PCBのルーティング設計の領域の割当てを困難にすると共に、異なる設計者(人間又は自動化の何れでも)によりルート決定される各セクションを結合させるとき問題を生じさせる。ICの各要素は、同一サイズに近いものとなる傾向があり(少なくともトランジスタレベルでは)、しばしばチップの異なるレベルにおける導電性パスの接続に関するコストは大きなものではない。他方、PCB上に配置される各コンポーネントは、広範なサイズを有し、このサイズ範囲はルーティング問題を複雑化しうる。さらに、製造コストはしばしば、異なるPCBレイヤ上のトレースを接続する「ビア」を最小限に抑えるよう要求する。上記及び他の理由のため、IC設計に用いられる分散自動ルーティングアプローチは、PCB設計において限定的な価値しか有さない。実際、分散PCB自動ルーティングは、新たなタイプのルーティングアルゴリズムがまず開発されることを要求し、既存のルーティングアルゴリズムが1つのPCBをルート決定するのに複数のコンピュータにより効果的には利用することができないと、多くが考えている。
[発明の概要]
本発明の実施例は、自動ルーティングがより迅速に実行されることを可能にし、PCB設計のルートが既存のルーティングアルゴリズムを利用して複数のコンピュータにより生成されることを可能にする。少なくとも一部の実施例では、サーバコンピュータは、PCB設計のためのマスターデータベースを維持する。このデータベースは、回路コンポーネントとそれらの配置に関する情報、PCB設計の設計基準及び他の各種情報を有する。PCB設計のコピーが、複数のクライアントコンピュータに提供される。概略的な電子回路(又はそのための他の設計データ)が、接続される必要がある回路コンポーネントピンのすべてのペアのリストを生成するのに利用される。このリスト(又はネットリスト)は、サーバによりソートされる。各クライアントについて、サーバは接続がルート決定される必要がある異なるピンペアを割り当てる。クライアントが与えられたピンペアについて割り当てられたルーティングタスクを完了すると、結果をサーバに転送する。特に、クライアントは、サーバがPCBマスターデザインを、クライアントがそれの割り当てられたピンペアについて求めたルートにより更新することを要求する。編集リクエストを転送した後、クライアントは、当該編集を反映させるため、PCB設計のそれのコピーを更新しない。代わりに、クライアントは、サーバによるピンペアの割当て前に占有されていた状態にそれのコピーを返す。
【0005】
少なくとも第1実施例では、本発明は、プリント基板(PCB)の導電性パスをルート決定する方法を有する。当該方法は、コンポーネントピンペアを2つのピンの間に導電性パスを自動的にルート決定するよう構成される複数のクライアントコンピュータのそれぞれに割り当てることからなる。本方法はまた、各クライアントから当該クライアントの割り当てられたピンペアを接続する導電性パスの提起されたルートを受信することからなる。当該ルートは、マスターPCB設計に含められ、本方法の各ステップが繰り返される。第2実施例は、第1実施例の方法を実行するための命令を含むマシーン可読媒体を含む。
【0006】
少なくとも第2実施例では、本発明は、プリント基板(PCB)の導電性パスをルート決定する他の方法を有する。本方法は、接続する導電性パスがルート決定される電子回路の1以上のコンポーネントのピンを特定するピンペア割当てを含む。本方法はさらに、特定されたピン間の導電性パスのルートを自動検出し、検出されたルートを提起する編集リクエストを送信し、提起されたルートがPCB設計に含まれることの表示を受信することからなる。当該表示の受信後、PCB設計のローカルコピーが、検出されたルートを含むよう更新される。第4実施例は、第3実施例の方法を実行するための命令を含むマシーン可読媒体を含む。
【0007】
本発明の上記及び他の特徴及び効果は、添付された図面と共に以下の好適な実施例の詳細な説明から容易に明らかとなり、十分理解されるであろう。
[好適実施例の詳細な説明]
少なくとも一部の実施例は、従来の自動ルーティングアルゴリズムを実行する複数のコンピュータ間のPCB設計の自動ルーティングを分散化する。予備的なテスト処理は、大きく複雑なPCBをルーティングするとき、コンピュータの個数に対して約0.75のパフォーマンスレシオとなる。言い換えると、4つのクライアントコンピュータを用いてPCBをルート決定する場合、PCBは、1つのコンピュータを用いてルート決定する場合より約3倍速くルート決定される。少なくとも一部の実施例では、サーバコンピュータは、PCB設計のためのマスターデータベースを維持する。このデータベースは、回路コンポーネントとそれらの配置に関する情報、PCB設計の設計基準及び他の各種情報を有する。PCB設計のコピーが複数のクライアントコンピュータに提供される。概略的な電子回路(又はそれについての他の設計データ)が、電気的に接続される必要がある回路コンポーネントピンのすべてのペアのリストを生成するのに利用される。このリスト(又はネットリスト)、その後サーバにソートされる。各クライアントについて、サーバは、接続がルート決定される必要がある異なるピンペアを割り当てる。クライアントが与えられたピンペアについて割り当てられたルーティングタスクを完了させると、それは結果をサーバに転送する。特に、クライアントは、サーバがクライアントがそれの割り当てられたピンペアについて検出したルートによりPCBマスター設計を更新することをリクエストする。編集リクエストを転送した後、クライアントは、編集を反映させるためのPCB設計のそれのコピーを更新しない。代わりに、クライアントは、それのコピーをサーバによるピンペアの割当て前に占有されている状態に返す。
【0008】
クライアントから編集リクエストを受信した後、サーバは、要求元のクライアントにより検出されたルートについて設計基準チェック(DRC)を実行する。当該ルートがDRCをパスすると、サーバは、当該ルートを含めるよう編集リクエストをマスター設計に適用する。サーバは、新たなルートを反映させるため、すべてのクライアントにそれらのPCB設計のコピーを変更するよう更新を転送する。サーバはまた、新たに適用されたルートを検出したクライアントに新たなピンペアを割り当てる。編集リクエストがDRCを満たしていない場合、サーバは、PCBマスター設計を更新しない。代わりに、サーバは、当該リクエストを送信したクライアントに前に割り当てられたピンペアのルート決定を再試行し、又は他のピンペアをルート決定するよう指示する。本発明のさらなる特徴及び追加的な実施例が、以下において説明される。
【0009】
図1は、ネットワーク接続されたコンピュータシステムにより実現される本発明の一例を示すブロック図である。サーバ2は、マスターPCB設計3を維持し、複数のクライアントコンピュータ5、6及び7へのピンペア割当てをネットワーク8を介し通信する。クライアント5、6及び7のそれぞれは、PCB設計3のコピーを維持する。しかしながら、以下でより詳細に説明されるように、各クライアントにより維持されるPCB設計3のコピーは、同一でなくてもよく、サーバ2がPCB設計3に実装したすべての変更を反映していないかもしれない。3つのクライアントのみが示されているが、他の多数のクライアントコンピュータが、同様にしてサーバ2とネットワーク接続することが可能である。各クライアント5、6及び7において、PCBコンポーネントのピン間の接続をルート決定するアプリケーションプログラムが実行されている。クライアント5、6及び7上の自動ルーティングソフトウェアは、サーバ2と協調して実行するよう変更される従来技術による各種自動ルーティングプログラムの何れかとすることができる(例えば、AUTOACTIVE位置及びルート編集環境又はオレゴン州のWilsonvilleのMentor Graphics Corporationから利用可能なBLAZEROUTER自動ルーティングソフトウェアなど)。特に、以下でより詳細に説明されるように、サーバ2は、ピンペア間の接続をルート決定するため、各クライアントにピンペアを割当て、さらにルート決定された接続が許容又は拒絶されるか否かクライアントに指示する。サーバ2からの指示に基づき、クライアント5、5及び7は、既知のルーティングアルゴリズムを利用して、PCB設計3の各部分をルート決定する。一部の実施例では、クライアント5、6及び7のすべてが、同一の自動ルーティングソフトウェアを有するとは限らない。
【0010】
サーバ2は、データベース9からPCB設計3にアクセスする。データベース9は、サーバ2の一部(サーバ2のハードドライブなど)であってもよく、またサーバ2の近隣に配置されてもよく、またサーバ2から遠隔に配置されてもよい。実際、データベース9は、クライアント5、6又は7の1つに物理的に配置されてもよい。サーバ2とクライアント5、6及び7は、従来技術によるコンピュータである。それぞれは、例えば、1以上のプロセッサ、不揮発性ストレージ(ハードディスクドライブなど)、揮発性メモリ(RAMなど)及び当該技術分野において周知な他の要素を有する。サーバ2とクライアント5、6及び7は、様々なオペレーティングシステムソフトウェアの何れかを利用するものであってもよい、コンピュータ間のネットワーク接続の詳細は、同様に当該技術分野において知られたものであり、ここでは説明されない。特に、サーバ2は、クライアント5、6又は7より大きな処理能力を有する必要はない。
【0011】
図2は、本発明の実施例をさらに示すのに用いられるPCB設計3の一部のブロック図である。図2に示されるように、各種電子コンポーネントの位置が基盤10にマップ(又は配置)されている。例えば、集積回路IC1とIC2の位置は、大きな正方形として示されている。メモリチップM1の位置は、大きな長方形として示されている。レジスタR1とR2は、より小さな長方形として示されている。図2の各コンポーネントとは、1以上の導電性トレースが接続される2以上のピン(大きなドットとして示される)を有する。これらのピンのいくつかは、以降の図面に対応するようラベル付けされている(21a、21bなど)。図2のPCBは両面基板である。言い換えると、PCBは、基板の両側に形成されるトレースを有し、このとき、反対側のトレースは「ビア」(すなわち、トレースを接続するため基板に貫通され、その後導電性物質により充填された開口)を用いて接続される。基板の反対側のトレースは、図面では垂直方向に配置され、以降の図面では破線により示される。基板の前面のトレースは、水平方向に配置され、実践により示される。上述のように、PCB設計3は、PCB設計が生成されている回路の一部しか有さない。これは、本発明の実施例の説明を簡単化するためのものである。実際的には、完全な回路はしばしばはるかに複雑であり、数百のコンポーネントと数百又は数千のピンを有するかもしれない。図2に示されるコンポーネントは、単なる具体例であり、本発明は当該コンポーネントの個数、タイプ又は構成に限定されるものではない。同様に本発明はまた、1つのサイドにしかトレースを有しないPCBと共に、2以上のトレースレイヤを有するPCBにも適用可能である。
【0012】
上述のように、ネットリストが、PCB上の回路について生成される。このリストは、回路から概略的又は他の方法により構成可能であり、接続される必要がある各ピンペアを特定する。図3は、図2のPCB設計3に対応するネットリスト11の一部を示す。図3に示されるように、ピン21a(IC1に配置される)は、ピン21b(IC2に配置される)に接続される必要がある。同様に、ピン22aと22b(それぞれIC1とIC2に配置される)とピン23aと23b(それぞれIC2とM1に配置される)が接続される。
【0013】
図4は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションの始まりを概略的に示す。図4に示されるように、サーバ2は、マスターPCB設計3を維持する。設計3は、すべてのコンポーネントの位置と、サーバ2が設計3に実装したすべてのルート決定された接続とを有する。図4は自動ルーティングセッションの始まりに対応しているため、サーバ2は、まだルート決定されたピン接続を設計3に実装していない。サーバ2はさらに、自動ルーティングセッションに参加するクライアントコンピュータの情報を維持する。各クライアントについて、サーバ2は、当該クライアントにまだ与えられていない中断中の設計更新を追跡する(更新キュー)。サーバ2はさらに、自動ルーティングのため各クライアントに割り当てられた現在のピンペアと、割り当てられた自動ルーティングタスクの各クライアントの進捗状況に関する他の各種情報を追跡する。図4〜12の例では、3つのクライアント(5、6及び7)しか示されていないが、異なる個数のクライアントを含めることができる。
【0014】
図5は、図4の自動ルーティングセッションの以降の時点を示す。特に、サーバ2は、初期的にはルート決定のため、あるピンペアを各クライアントコンピュータに割り当てている。具体的には、サーバ2は、ピンペア21a−21bをクライアント5に、ピンペア22a−22bをクライアント6に、ピンペア23a−23bをクライアント7に割り当てている。クライアント7は、ピン23aと23bとの間の接続をルート決定している。図6に示されるように、その後、クライアント7は編集リクエストをサーバ2に転送する。転送された編集リクエストは、クライアント7により求められたピン23aと23bの間のルートを含む。編集リクエストをサーバ2に転送した後、クライアント7は、ピン23a−23bのルート決定前の状態にPCB設計のコピーを返し、サーバ2からのさらなる指示を待機する。
【0015】
図7において、サーバ2は、クライアント7から編集リクエストを受信し、クライアント7が設計3に追加しようとするルートに対し設計基準チェック(DRC)を実行した。特に、サーバ2は、提起されたルートが設計3に以前に追加された他のルートとコンフリクトしているか、又はPCB設計に対して確定された基準に違反しているか判断する。例えば、ある基準は、製造不具合により発生する短絡の可能性を最小限にするため、PCB上のトレースが最小距離だけ分離されることを要求するかもしれない。クライアント7からの編集リクエストに含まれる提起されたルートがDRCをパスした後、サーバ2は当該編集を設計3に適用する。その後、サーバ2は、ルート決定のため、クライアント7に新たなピンペアを割当て、ピン23aと23bの間の新たなルートを反映させるため、すべてのクライアントが設計3のコピーを更新するよう更新メッセージを用意する。
【0016】
サーバ22は、各クライアントの更新キューに更新メッセージを配置する。少なくとも一部の実施例では、サーバ2は、当該クライアントがアイドル状態であるまで更新をクライアントに送信しない。例えば、クライアント7は、サーバ2が新たなピンペア割当てを転送するのを待機している。サーバ2が新たなピンペア割当てをクライアント7に転送すると、サーバ2はまた、提起されたルート23a−23bを設計3のクライアント7のコピーに含めるようクライアント7に指示する更新を転送する。このようにして、クライアント7は、それの新たなルーティングタスク中に、この新たに含められたルートを考慮することができる。サーバ2が提起されたルート23a−23bを拒絶し、クライアント7へのピンペア23a−23bの初期的な割当て時点と拒絶を通知する時点との間に更新が生成された場合、サーバ2は、提起されたルート23a−23bが拒絶されたことを通知し、クライアント7に再試行するよう指示するメッセージにより、これらの仮の更新をクライアント7に送信する。例えば、クライアント5又は6は、クライアント7の前にルーティングタスクを完了し、クライアント7により提起されたルートとコンフリクトするルートを生成したかもしれない。
【0017】
図8は、図4において開始された自動ルーティングセッション中のさらなる以降の時点を示す。当該時点において、サーバ2は、ピンペア21a−21b、22a−22b、23a−23b、24a−24b、25a−25b及び26a−26bのルートを設計3に実装した。クライアント7は、ピンペア24a−24bの間の接続をちょうどルート決定したところであり、クライアント5と6はそれぞれ、ピンペア27a−27bと28a−28bをルート決定しようとしている。サーバ2がピンペア24a−24bをクライアント7に割り当てた時点から、クライアント5は、ピンペア25a−25bを接続するルートを提起する編集リクエストをサーバ2に送信し、サーバ2は当該ルートを受け入れる。同じ期間中、クライアント6は、ピンペア26a−26bを接続するルートを提起する編集リクエストをサーバ2に送信し、サーバ2はまた当該ルートを受け入れる。サーバ2がピンペア25a−25bのルートを受け入れると、サーバ2は更新リクエストを準備し、それを各クライアントの更新キューに配置する。この更新は、新たなピンペア割当て(27a−27b)と共にクライアント5に送信されたが、何れもルート決定割当てによりビジー状態であったため、クライアント6又は7には送信されなかった。サーバ2は以降においてクライアント6により提起されたピンペア26a−26bのルートを受け入れたとき、サーバ2は、当該ルートに対する他の更新リクエストを準備し、それを各クライアントの更新キューに配置する。その後、クライアント5はピンペア27a−27bをルート決定するのにビジー状態であり、クライアント7は依然としてピンペア24a−24bをルート決定するのにビジー状態であったため、更新はクライアント5又は7には送信されなかった。しかしながら、ピンペア25a−25bと26a−26bのルートの更新は、新たなピンペア割当て(28a−28b)と共にクライアント6に送信された。従って、クライアント7がピンペア24a−24bのルートを検出した時点では、クライアント7はそれの更新キューに2つの更新を有し、クライアント5はそれの更新キューに1つの更新を有し、クライアント6はそれの更新キューに更新を有しない。同様に、クライアント7は、設計3に実装されたピンペア25a−25bと26a−26bのルートを知ることなく、ピンペア24a−24bをルート決定した。
【0018】
図9において、クライアント7は、提起された24a−24bの接続ルートに対する更新リクエストを転送した。サーバ2がピンペア24a−24bを接続する提起されたルートに対してDRCを実行すると、サーバ2は、基準違反を検出する。特に、図10及び10Aにより詳細に示されるように、提起された24a−24bのルートは、ピン25a−25bのルートに近すぎる。図10では、トレースは実線又は破線として示される。トレース間の最小クリアランスは、各トレースの周囲の斜線領域として表される。基板の同一サイドの2つのトレースの斜線領域がオーバーラップする場合(又は2以上のレベルを有する基板についての同一レベル上で)、これらのトレースは近すぎる。図10に示されるように、図10Aの拡大図により詳細に示されるように、提起されたルート24a−24bのクリアランスゾーンの水平部分は、前に実装された25a−25bルートのクリアランスゾーンの水平部分とオーバーラップする。従って、サーバ2は、ピン24a−24bを接続する提起されたルートを拒絶する。このとき、サーバ2は、クライアント7の更新キューの(ピンペア25a−25b及び26a−26bの)更新と共に、拒絶メッセージをクライアント7に送信する(図11)。その後、クライアント7は、新たなルートを検出する(図12)。特に、この新たなルートは、2つの水平セクションと2つの垂直セクションを有するため、追加的なビアを要する。図12には図示されていないが、クライアント7は、その後第2のルートに対するその後の編集リクエストを転送する。
【0019】
すべてのピンペアがルート決定されるまで、又は他の停止状態に到達するまで、図4〜9に示されるプロセスは続けられる。例えば、1以上のクライアントは、あるピンペアが現在の設計基準及び以前に実装されたルートに基づきルート決定できないと通知するかもしれない。一部のケースでは、接続のルート決定ができないことは、クライアントが指定された期間内に当該接続をルート決定しないことに基づくものであるかもしれない。ルート決定できない接続の接続数に応じて、設計者は、設計基準及び/又は以前のルートを調整することによりこれらの接続を手作業によりルート決定するかもしれない。決定不能な接続数が十分大きなものであり、あるいはその問題が他のルート及び/又は設計基準を調整することによっては解決できない場合、1以上のコンポーネントを移動させる必要があり、ルート決定プロセスは繰り返される。
【0020】
本発明の他の実施例では、サーバ2は、ネットリストを介し複数のパスを実行する。第1パスでは、サーバ2は、クライアント5、6及び7がビアを用いることなくピンペア接続をルート決定することを要求する。サーバ2は、第1パス中にネットリストのすべてのピンペアを検索する(又は後述されるように、ビアなしにおそらくルート決定可能なすべてのペアを検索する)。各ピンペアについて、サーバ2は、クライアントの1つから接続ルートを取得するか、又は当該接続がビアなしにルート決定することは不可能であるという表示を取得する。あるピンペアの接続がビアなしにルート決定することができない場合、当該ピンペアのルート決定は、ネットリストの次のパスまで保留される。ネットリストの第2パスでは、サーバ2は、1つのビアしか用いることなくクライアントが接続をルート決定するよう要求する。サーバ2は、再びネットリストのすべてのピンペアを検索し(又は後述されるように、1つのみのビアでおそらくルート決定なすべてのペアを検索し)、クライアントの1つから各ペアのルート決定が不可能であるとの旨又はルートの何れかを取得する。1つのみのペアを用いてはルート決定不可能なピンペア接続は、次のパスまで再び保留される。第3パスでは、サーバ2は、クライアントが2つのビアを用いて接続をルート決定することを可能にする。サーバ2は再び、ネットリストのすべてのピンペアを検索し(又は2つのビアのみでおそらくルート決定可能なすべてのペアを検索し)、各ペアについて1つのクライアントからのルート決定が不可能であるとの旨又はルートの何れかを取得し、次のパスまでルート決定が不可能な接続を保留する。サーバ2は、すべての接続がルート決定されるまで、又は他の停止状態に到達するまで、追加的な個数のビアについてパスを実行し続ける。
【0021】
各パスの内部に、サーバ2は複数のベース上でピンペアを割り当てる。まず、サーバ2は、より短い接続を要求するピンペアを割り当てる前に、より長い接続を要求するピンペアを割り当てる。言い換えると、サーバ2は、各ペア内のピンの間の距離に基づきピンペアをソートし、距離について降順にピンペアを割り当てる。一部の実施例では、サーバ2はさらに、ピンペアの相対位置に基づきピンペアをソートする。特に、同一の一般的分離距離を有するピンペアの複数のグループについて、サーバ2は、最も少なくしかオーバーラップしないピンペアを割り当てる。このことは、接続対象となるピンを有する3つのレジスタ(R)、メモリチップ(M)及び2つの集積回路(IC)を示す図13に示される。ピン41a及び41bと、ピン42a及び42bと、ピン43a及び43bを接続する要求は、図13の回路のネットリストに含まれる。ピン41aと41bの間の距離は、ピン42aと42bの間の距離に等しく、またピン43aと43bの間の距離に等しい。図13の上記ピンペアのそれぞれについて、各ペアのピンは対角的なノードに配置されるような長方形が示される。43a−43bの長方形は、41a−41bの長方形に若干オーバーラップしている。42a−42bの長方形は、より大きく41a−41bの長方形にオーバーラップしている。43a−43bの長方形は41a−41bの長方形とあまりオーバーラップしていないため、ピン41a−41bと43a−43bについて同時にルート決定される接続がコンフリクトする可能性は低い。他方、ピン41a−41bと42a−42bについて同時にルート決定される接続がコンフリクトする可能性は高い。従って、サーバ2は、ピン41a−41bを1つのクライアントに、43a−43bを他のクライアントにそれぞれ割当て、ピン41a−41bをルート決定しながら、ピン42a−42bを割り当てることを回避する。
【0022】
実際に、図13と同一の分離距離を有するピンペアが複数存在することはないかもしれない。しかしながら、分離に基づきピンペアをソートした後、サーバ2は、一部の実施例では、距離によりランク付けされたペアのリストのある範囲内のピンペアの間のオーバーラップの量をチェックするよう構成される。図14は、少なくとも一部の実施例において、サーバ2が(図15のネットリストを用いて)どのようにしてこのチェックを実行するかについての一例を示すフローチャートである。図15のネットリストは、分離距離の降順によりピンペアをリストする。言い換えると、ピンペアn−4のピンはペアn−3のピンより離れており、ペアn−3のピンはさらにペアn−2のピンより離れているなどである。図14及び15において、サーバは、ピンペアnとピンペアn−2を各自の第1及び第2クライアントに以前に割り当てており、現在はあるピンペアを第3クライアントに割り当てている。サーバは、ピンペアn−4、n−3又はn−1をまだ割り当てていない。前のピンペア割当てを行うとき、これらのピンペアについて描かれる長方形は、他のピンペアの長方形よりすでに割り当てられたピンペアの長方形とより大きくオーバーラップしている。ブロック101(図14)から始まり、サーバは、現在割り当てられているピンペア長方形といくつかの候補ピンペアの間のオーバーラップを評価する。特に、サーバは、ピンペアn−4、n−3及びn−1のそれぞれの長方形が、ピンペアnの長方形とピンペアn−2の長方形とオーバーラップしている量を計算する。その後、サーバは、サーバがX個の候補ピンペアについて計算する実行完了するまで、ピンペアn+1、n+2、n+3などについて同じ計算を実行する。Xの値は、予め設定された値とすることができ、又は自動ルーティングセッション中に他の条件に基づき可変とすることも可能である。候補ピンペアのオーバーラップを計算した後、ブロック103において、サーバは、何れの候補ピンペアが現在割り当てられているピンペアと最小のオーバーラップを有しているか決定する。具体的には、サーバは、各候補ピンペアがピンペアnとオーバーラップしている量を、同じ候補ピンペアがピンペアn−2とオーバーラップしている量に追加する。ブロック105において、最小の合計されたオーバーラップを有するピンペアが、第3クライアントに割り当てられる。
【0023】
図14のアルゴリズムに対する多数の変形が、他の実施例において利用されている。例えば、現在割り当てられているピンペアの最小合計オーバーラップを有するピンペアを単に割り当てる代わりに、サーバはさらに、あるピンペアが現在割り当てられているピンペノ何れとも所定量以上はオーバーラップしていないことを要求することができる。他の実施例では、以前に無視されたピンペアは(n−4、n−3及びn−1など)優先され、及び/又は所定の回数以上無視されると自動的に選択される。本発明の範囲内において、多数の他の変形が可能である。
【0024】
一部の実施例では、サーバ2はまた、ある個数のビアを用いてルート決定を求めるネットリストのパスを行う前に、何れのピンペアが当該ビア制限を満たすことができないか判断する。(図13の回路コンポーネントを生成する)図16に示されるように、一部のピンペア(ピン44a−44b、48a−48bなど)は、ターン(turn)を有しないルートにより潜在的に接続可能である。これらのピンがターンを有しないルートと接続することが可能である場合、ビアは必要ではないかもしれない。従って、これらのピンペアは、第1パス中のルート決定のため割当て可能である。他のピンペア(ピン45a−45bなど)は、少なくとも1つのターンと、従って少なくとも1つのビアを有するルートを要求するであろう。これらのピンペアはビアを用いることなくルート決定するよう制限されるクライアントによってはルート決定することはできないため、第2パスまでこれらのピンペアは保留される。一部のピンペア(ピン46a−46b、47a−47bなど)は、少なくとも2つのターンを有し、従って少なくとも2つのビアを有するルートを要求し、このため、第3パスまで自動的に保留されるであろう。より複雑な設計では、さらに大きな最小ターン数を有するルートを有するピンペアが存在するかもしれない。
【0025】
他の実施例では、ピンペア間の接続は、PCBの1つのレイヤ上で方向を変更することが許されるかもしれない。言い換えると、トレースがピン49aから延びることにより示されるように、いくつかのトレースは、他のレベルのトレースと接続することなく、従って、ビアを利用することなくターンすることが許されるかもしれない。当該実施例では、このようなトレースは、予め特定することができ(例えば、ある領域にあるコンポーネントについて、あるピンのこのようなトレースを可能にするなど)、適当なパスに含めることができる。
【0026】
図17は、本発明の少なくとも一部の実施例により、サーバからの分散自動ルーティングセッションを制御する方法のフローチャートである。ブロック201において、サーバは、プリント基板上に配置されるべき回路の電気設計を受信する。この電気設計は、接続されるべきすべてのピンペアを示すネットリストと、PCB上のコンポーネントの配置を含む。ブロック203において、サーバはピンペアをソートする。一部の実施例では、上述されるように、サーバは接続対象のピンの間の距離に基づきピンペアをソートする。サーバはまた、1つのビア、又は2つのビアなどを用いることなく接続可能なピンなど、他のベースについてソートするかもしれない。ブロック205において、サーバは、パスカウンター(p)を「0」に設定する。ブロック207において、サーバはパス0を開始する。当該パス中、サーバは、ビアを用いることなくピン間の接続をクライアントにルート決定するよう要求するであろう。ブロック209において、サーバは、クライアントへの割当てのためピンペアを選択する。初期的には、サーバは、ネットリストの最初のピンペアを単に選ぶことによりピンペアを選択する。最初のピンペアが割り当てられた後、サーバは前に割り当てられたピンペアとのオーバーラップ及び距離に基づくと共に(図14及び15について説明されるように)、あるピンペアが現在のビア制限を用いて接続可能であるかに基づき(例えば、パス0にはビアはなく、パス1には1つのビアなど)、以降のピンペアを選択する。ブロック211において、サーバは、選択されたピンペアをクライアントに割当て、割り当てられたピンペアを当該クライアントの更新キューの更新と共に転送する(初期的には更新は存在しない)。ブロック213において、サーバは、ピンペアに割り当てられていない他の何れかのクライアントが存在しないか判断する。存在する場合、サーバはブロック209に戻って、次のクライアントのピンペアを選択肢、ブロック211において当該割当てを転送する。ブロック213において、ピンペアが割り当てられる必要があるクライアントがもはや存在しない場合(「no」ブランチ)、サーバは、ブロック215に移行する。ブロック215において、サーバは、クライアントが当該クライアントの割り当てられたピンペアの提起されたルートを含む編集リクエストを提出するか(編集)、又は割り当てられたピンペアが接続不可(エラー)であることを示すまで待機する。
【0027】
クライアントは、それ自体、割り当てられたピンペアが現在のビア制限を用いてルート決定することができないことを示すことによって、エラーを提出するようにしてもよい。クライアントはまた、所定時間以上接続をルート決定しようとした場合、エラーを提出するようにしてもよい。サーバはまた、クライアントにタイムアウトエラーを生成するようにしてもよい。エラーが発生すると、サーバはブロック217に移行する。ブロック271において、サーバは、現在のビア制限のためルート決定することができないか判断する。そうである場合(ピンペアが現在ルート決定できないため、「no」ブランチ)、又はピンペアが現在のパスにおいて最大数のエラーを前に生成してしまっている場合(拒絶が最大値未満でない)、サーバはブロック219に移行する。ブロック219において、ピンペアは以降のパスに保留される。その後、サーバはブロック227に移行し、現在のパスに残りのピンペアがあるか判断する。そうである場合、サーバは保留されたピンペアをルート決定できないクライアントの他のピンペアの選択のため、ブロック209に移行する。そうでない場合、サーバは後述されるブロック203に移行する。
【0028】
ブロック215で通知されるエラーが、ビア制限により生じたものではなく、ピンペアが現在のビアにおいて最大回数拒絶されていない場合、サーバは、ブロック217において「yes」ブランチを選択する。例えば、一部のピンペアがルート決定された後、あるクライアントは前にルート決定された接続を知ることなく接続をルート決定するかもしれない。この場合、現在のビア制限を用いて接続をルート決定することが依然として可能であるかもしれない。従って、ブロック221において、サーバは、当該クライアントの更新キューの更新と、現在のピンペアのルート決定を再試行する指示(すなわち、ピンペアの再割当て)を送信する。ブロック221から、サーバはブロック215に戻り、他の編集又はエラー報告を待機する。
【0029】
サーバがブロック215において編集リクエストを受信した場合、サーバは、ブロック223に戻り、提起されたルートについて設計基準チェック(DRC)を実行する。提起されたルートがDRCを満たしていない場合(「不成功(fail)」ブランチ)、サーバはブロック225に移行する。ブロック225において、サーバは、ピンペアが現在パス中に最大回数未満しかDRCに失敗していないか判断する。そうである場合(「yes」ブランチ)、サーバは、ブロック221に移行し、更新がクライアントに送信され、クライアントは再試行するよう指示される。現在パス中のピンペアのDRCの失敗回数が最大数未満でない場合(「no」ブランチ)、サーバはブロック219に移行し、ピンペアが以降のパスに保留され、その後ブロック227に移行する。
【0030】
提起されたルートがブロック223においてDRCをパスすると(「成功(pass)ブランチ」ブランチ)、サーバは、ブロック229においてマスターPCB設計に当該ルートを実装する。サーバはまた、新たに実装されたルートを反映する更新を生成し、各クライアントのキューに更新を配置する。その後、サーバはブロック231に移行し、現在のパスに残りのピンペアがないか判断する。そうである場合、サーバはブロック209に移行し、実装されたルートを提供するクライアントのため他のピンペアを選択する。そうでない場合、サーバはブロック233に移行する。ブロック233において、サーバは、ネットリストの他のパスを実行するか判断する。例えば、設計基準は、何れの状況においても指定された個数のビアより多く有するルートが存在しないことを要求するかもしれない。サーバが当該指定された個数プラスビアのないルートには1つのパスに等しいパス数を実行した後、サーバはもはやパスを生成しない。このような場合、サーバはブロック233の「no」ブランチからブロック237に移行する。ブロック237において、サーバは、何れのピンペア(存在すれば)がルート決定されていないか示すレポートを生成し、その後、ルーティングセッションを終了する。さらなるパスがネットリストにおいて生成される場合(ブロック233の「yes」ブランチ)、サーバは、ブロック235においてパスカウンターpをインクリメントし、その後、ブロック207に戻り、新たなパスを開始する。次のパス中、クライアントは、p個のビアを用いてピンペアをルート決定するよう指示される。
【0031】
一般には、DRCを実行し、サーバにより実行される他のタスクを実行するのに必要な処理時間は、1つのピンペアをルート決定するのにクライアントにより必要とされる時間よりはるかに少ない。従って、サーバはしばしば、クライアントより大きな処理パワーを必要としなくなる。複数の編集リクエストが素早く連続的にクライアントから到達する場合(図17のブロック215)、当該編集リクエストはキュー可能であり、FIFOベースによりサーバにより処理可能となる。
【0032】
図18は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションによりクライアントを実行する方法のフローチャートである。ブロック301から始まり、クライアントはサーバから指示を受信する。これらの指示は、新たなピン割当てかもしれないし、あるいはピンペアのルート決定を再試行する指示であるかもしれない(すなわち、ピンペアの再割当て)。クライアントはまた、サーバにより可能な接続に介される制限を受信し(ビア制限など)、またクライアントにより維持されるPCB設計のコピーの1以上の更新を受信するようにしてもよい。ブロック303において、ブロック301において受信した更新が(存在する場合)、PCB設計のクライアントコピーに適用される。ブロック305において、クライアントは、割り当てられたピンペアを接続するルートを検出するため、1以上のルーティングアルゴリズムの利用を開始する。これらのルーティングアルゴリズムに基づき、クライアントは、ルートを検出するか、あるいはピン間の接続が検出不可であると判断する(現在のビア制限のためなど)。一部の実施例では、クライアントはまた、所定時間後に接続をルート決定することを停止し、必要となる時間に基づきルート決定することができないと通知するよう構成されてもよい。ブロック305から、クライアントはブロック307に移行する。ブロック305においてクライアントが割り当てられたピンペアのルートを検出した場合、クライアントは、「yes」ブランチによりブロック309に移行する。ブロック309において、クライアントは、検出されたルートを含む編集リクエストをサーバに転送する。ブロック311において、クライアントは、ブロック305の前であって、ブロック303の後にPCB設計のそれのコピーを当該コピーの状態に戻す。ブロック311から、クライアントは、ブロック315に戻り、サーバからのさらなる指示を待機する。クライアントがブロック305において割り当てられたピンペアのルートを検出することができなかった(又はタイムアウトとなった)場合、クライアントは、「no」ブランチによりブロック307からブロック313に移行する。ブロック313において、クライアントは、ピンペア接続をルート決定することができないことを通知する。その後、クライアントはさらなる指示を待機するためブロック315に移行する。
【0033】
一部の実施例では、図19に示されるように、サーバは、ルート決定のため同一のピンペア(ya−yb)を複数のクライアントに割り当てるようにしてもよい。一部のケースでは、ルーティングセッションは、ほとんど完了し、ルート決定されていないピンペアよりクライアントの方が多くなるかもしれない。他のケースでは、比較のため他のルートを展開することが望ましいかもしれない。ピンペア接続をルート決定するのに要する処理時間は、より多くのピン接続が追加されるに従って、大きく増加しうる。より多くのクライアントが同じルーティング問題を解こうとする場合、解は潜在的により速く検出されるかもしれない。これについて、図19に示されるように、クライアントには、同じピンペアをルート決定するための異なるパラメータが与えられているかもしれない。一例として、1つのクライアントは必要に応じて多数のビアを利用することが許され、他のクライアントは1つのPCBレイヤを占有する多方向トレースを利用することが許されているかもしれない(すなわち、ビアを利用することなく方向を変更する)。他の例として、1つのクライアントは、ルートの一部を削除し、再ルート決定することが許され、他のクライアントは、他のルート部分を削除し、再ルート決定することが許されているかもしれない。また、クライアントには異なるコンポーネント配置、異なるルーティングスキーム、異なる接続スケジュール又は他の異なるパラメータを有するルーティング割当てが与えられてもよい。さらなる他の実施例では、ピンペアをルート決定するクライアントには、労力の重複を回避するため、同じピンペアを他のクライアントがルート決定することによりしさされるルートがアドバイスされる。同一のピンペアをルート決定するクライアントの状況は、例えば、何れのルーティングパラメータがより迅速な進捗を可能にするか判断するためなどに監視されてもよい。
【0034】
本発明を実行する複数の例が説明されたが、当業者は、添付された請求項に与えられる本発明の趣旨及び範囲内に属する上述の例の変形及び並び替えが多数存在するということは理解するであろう。上述のアルゴリズム、システム構成及び他の特徴は、単なる例にすぎない。多数の他のアルゴリズム、構成及び特徴と同様に、上述のアルゴリズム、システム及び特徴の変更は本発明の範囲内に属する。例えば、上述の実施例は、1つのピンペアを各クライアントコンピュータに割り当てるが、本発明はこのような実施例に限定されるものではない。他の実施例では、サーバは、あるクライアントに対する自動ルーティング割当てに2つの(又はそれ以上の)ピンペアを含むかもしれない。その後、クライアントは、これらのピンペアの一部又はすべてについての提起されたルートを返す。従って、以下の請求項の単数形の使用は、排他的に解釈されるべきではない(例えば、「ある」とは、「唯一」を意味するものではない)。他の例として、2つのピンの間のルートを検出するクライアントコンピュータは、編集リクエストをサーバに転送するとすぐに、PCB設計のそれのコピーを以前の状態に戻す必要はない。代わりに、クライアントは、それの検出したルートが残ることを許容することが可能であり、サーバが検出されたルートを拒絶した場合、クライアントは、拒絶を受信すると、検出されたルートを削除することができる。さらに、ここで使用される(請求項を含む)「プロセッサ」という表現は、単一のプロセッサに限定されず、相互に関連する処理機能を共に実行するよう協調する複数のプロセッサを含むものであってもよい。
【図面の簡単な説明】
【0035】
【図1】図1は、本発明の少なくとも一部の特徴が実現される計算システムのブロック図である。
【図2】図2は、PCB設計の一部のブロック図である。
【図3】図3は、図2のPCB設計のネットリストである。
【図4】図4は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションの始めを概略図により示す。
【図5】図5は、図4の自動ルーティングセッションの以降の時点を示す。
【図6】図6は、図4の自動ルーティングセッションの以降の時点を示す。
【図7】図7は、図4の自動ルーティングセッションの以降の時点を示す。
【図8】図8は、図4の自動ルーティングセッションの以降の時点を示す。
【図9】図9は、図4の自動ルーティングセッションの以降の時点を示す。
【図10】図10は、提起されたピン接続ルートの設計基準違反を示す。
【図10A】図10Aは、提起されたピン接続ルートの設計基準違反を示す。
【図11】図11は、図4の自動ルーティングセッションのさらなる以降の時点を示す。
【図12】図12は、図4の自動ルーティングセッションのさらなる以降の時点を示す。
【図13】図13は、相対位置によるピンペアの分類を示す。
【図14】図14は、少なくとも一部の実施例によるピンペア間のオーバーラップ量をチェックするアルゴリズムを示すフローチャートである。
【図15】図15は、分離距離の降順によるピンペアを有するネットリストを示す。
【図16】図16は、最小のビアによるピンペアの分類を示す。
【図17】図17は、本発明の少なくとも一部の実施例によるサーバからの分散自動ルーティングセッションを制御する方法のフローチャートである。
【図18】図18は、本発明の少なくとも一部の実施例による分散自動ルーティングセッションにおいてクライアントを実行する方法のフローチャートである。
【図19】図19は、本発明の少なくとも一部の実施例による複数のクライアントへの同一のピンペアの割当てを示す。
【特許請求の範囲】
【請求項1】
プリント基板(PCB)の導電性パスをルート決定する方法であって、
(a)2つのコンポーネントピンの間の導電性パスを自動的にルート決定するよう構成される複数のクライアントコンピュータのそれぞれにコンポーネントピンペアを割り当てるステップと、
(b)各クライアントから、該クライアントに割り当てられたピンペアを接続する導電性パスの提起されたルートを受け付けるステップと、
(c)前記提起されたルートをマスターPCB設計に実装するステップと、
(d)前記ステップ(a)〜(c)を繰り返すステップと、
から構成されることを特徴とする方法。
【請求項2】
請求項1記載の方法であって、さらに、
(e)前記複数のクライアントに更新メッセージを転送するステップを有し、
前記更新メッセージは、提起されたルートのPCB設計のマスターコピーへの実装を示し、前記複数のクライアントが該クライアントにより維持されるPCB設計のローカルコピーに前記実装されたルートを含めることを認めるものであることを特徴とする方法。
【請求項3】
請求項2記載の方法であって、
前記ステップ(e)は、クライアントが該クライアントによって前に提起された実装されたルートを該クライアントのローカルPCB設計コピーに含めることを認める更新メッセージを前記クライアントに転送するステップを有することを特徴とする方法。
【請求項4】
請求項1記載の方法であって、さらに、
(e)提起されたルートを前記マスターPCB設計に実装することにより、前記ルートの実装を示す更新を生成するステップと、
(f)クライアントが割り当てられたピンペアをルート決定していないとき、前記クライアントに前記更新を転送するステップと、
を有することを特徴とする方法。
【請求項5】
請求項4記載の方法であって、
前記ステップ(e)は、複数の提起されたルートのそれぞれを前記PCBマスター設計コピーに実装することにより、別の更新メッセージを生成し、
前記ステップ(e)はさらに、前記複数のクライアントの更新キューに各更新を配置し、
前記ステップ(f)は、前記クライアントが割り当てられたピンペアを現在ルート決定していないとき、前記更新キューのコンテンツを転送する、
ことを特徴とする方法。
【請求項6】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(d)は、前記リストを介し複数のパスにおいて前記ステップ(a)〜(c)を繰り返す、
ことを特徴とする方法。
【請求項7】
請求項6記載の方法であって、
前記ステップ(a)は、前記リストを介した1つのパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する制限を課し、
前記ステップ(a)はさらに、前記リストを介した以降のパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する異なる制限を課す、
ことを特徴とする方法。
【請求項8】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項9】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項10】
請求項9記載の方法であって、
前記ステップ(a)はさらに、異なるピンペアのピン位置から構成されるポリゴン間のオーバーラップ量に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項11】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項12】
請求項1記載の方法であって、
前記ステップ(a)は、コンポーネントピンペアを前記複数のクライアントの第1クライアントに、前記同一のコンポーネントピンペアを前記複数のクライアントの第2クライアントに、前記第1及び第2クライアントが、割り当てられるピンペアのピンの間の導電性パスを同時にルート決定するよう割り当てることを特徴とする方法。
【請求項13】
請求項12記載の方法であって、
前記ステップ(a)は、第1ルーティングパラメータにより前記ピンペアを前記第1クライアントに割当て、第2ルーティングパラメータにより前記ピンペアを前記第2クライアントに割当てることを特徴とする方法。
【請求項14】
プリント基板(PCB)の導電性パスをルート決定する方法であって、
(a)接続する導電性パスがルート決定される電子回路の1以上のコンポーネントのピンを特定するピンペア割当てを受け付けるステップと、
(b)前記特定されたピンの間の導電性パスのルートを自動検出するステップと、
(c)前記検出されたルートを提起する編集リクエストを送信するステップと、
(d)前記提起されたルートがPCB設計に実装されている表示を受け付けるステップと、
(e)前記表示の受信後、前記PCB設計のローカルコピーを前記検出されたルートを含むよう更新するステップと、
から構成されることを特徴とする方法。
【請求項15】
請求項14記載の方法であって、さらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記ステップ(i)において提起されたルートが前記PCB設計に実装される表示を受け付けるステップと、
(j)前記ステップ(i)の表示の受信後、前記PCB設計のローカルコピーを前記ステップ(g)において検出されたルートを含むよう更新するステップと、
を有することを特徴とする方法。
【請求項16】
請求項14記載の方法であって、さらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記第2ピンペア割当てのピンの間の他のルートを検出する指示を受け付けるステップと、
(j)前記第2ピンペア割当てのピンの間の第2ルートを自動検出するステップと、
(k)前記第2ルートを提起する編集リクエストを送信するステップと、
を有することを特徴とする方法。
【請求項17】
請求項14記載の方法であって、
前記ステップ(d)は、前記ステップ(a)〜(e)を実行するコンピュータ以外の1以上のコンピュータにより検出される他のルートが前記PCB設計に実装されるという1以上の表示を受け付け、
前記ステップ(e)は、前記PCB設計のローカルコピーを前記他のルートを含むよう更新する、
ことを特徴とする方法。
【請求項18】
請求項14記載の方法であって、さらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間にルート決定された導電性パスに許されるビアの個数に対する制限の表示を受け付けるステップと、
(h)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(i)前記第2ピンペア割当てのピンの間の接続をルート決定することが不可能であるという表示を送信するステップと、
を有することを特徴とする方法。
【請求項19】
命令シーケンスを表すデータを格納するマシーン可読媒体であって、
前記命令シーケンスは、プロセッサにより実行時に、
(a)2つのコンポーネントピンの間の導電性パスを自動的にルート決定するよう構成される複数のクライアントコンピュータのそれぞれにコンポーネントピンペアを割り当てるステップと、
(b)各クライアントから、該クライアントに割り当てられたピンペアを接続する導電性パスの提起されたルートを受け付けるステップと、
(c)前記提起されたルートをマスターPCB設計に実装するステップと、
(d)前記ステップ(a)〜(c)を繰り返すステップと、
を前記プロセッサに実行させることを特徴とする媒体。
【請求項20】
請求項19記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(e)前記複数のクライアントに更新メッセージを転送するステップを有し、
前記更新メッセージは、提起されたルートのPCB設計のマスターコピーへの実装を示し、前記複数のクライアントが該クライアントにより維持されるPCB設計のローカルコピーに前記実装されたルートを含めることを認めるものであることを特徴とする媒体。
【請求項21】
請求項20記載のマシーン可読媒体であって、
前記ステップ(e)は、クライアントが該クライアントによって前に提起された実装されたルートを該クライアントのローカルPCB設計コピーに含めることを認める更新メッセージを前記クライアントに転送するステップを有することを特徴とする媒体。
【請求項22】
請求項19記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(e)提起されたルートを前記マスターPCB設計に実装することにより、前記ルートの実装を示す更新を生成するステップと、
(f)クライアントが割り当てられたピンペアをルート決定していないとき、前記クライアントに前記更新を転送するステップと、
を有することを特徴とする媒体。
【請求項23】
請求項22記載のマシーン可読媒体であって、
前記ステップ(e)は、複数の提起されたルートのそれぞれを前記PCBマスター設計コピーに実装することにより、別の更新メッセージを生成し、
前記ステップ(e)はさらに、前記複数のクライアントの更新キューに各更新を配置し、
前記ステップ(f)は、前記クライアントが割り当てられたピンペアを現在ルート決定していないとき、前記更新キューのコンテンツを転送する、
ことを特徴とする媒体。
【請求項24】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(d)は、前記リストを介し複数のパスにおいて前記ステップ(a)〜(c)を繰り返す、
ことを特徴とする媒体。
【請求項25】
請求項24記載のマシーン可読媒体であって、
前記ステップ(a)は、前記リストを介した1つのパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する制限を課し、
前記ステップ(a)はさらに、前記リストを介した以降のパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する異なる制限を課す、
ことを特徴とする媒体。
【請求項26】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項27】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項28】
請求項27記載のマシーン可読媒体であって、
前記ステップ(a)はさらに、異なるピンペアのピン位置から構成されるポリゴン間のオーバーラップ量に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項29】
請求項27記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項30】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、コンポーネントピンペアを前記複数のクライアントの第1クライアントに、前記同一のコンポーネントピンペアを前記複数のクライアントの第2クライアントに、前記第1及び第2クライアントが、割り当てられるピンペアのピンの間の導電性パスを同時にルート決定するよう割り当てることを特徴とする媒体。
【請求項31】
請求項30記載のマシーン可読媒体であって、
前記ステップ(a)は、第1ルーティングパラメータにより前記ピンペアを前記第1クライアントに割当て、第2ルーティングパラメータにより前記ピンペアを前記第2クライアントに割当てることを特徴とする媒体。
【請求項32】
命令シーケンスを表すデータを格納するマシーン可読媒体であって、
前記命令シーケンスは、プロセッサにより実行時に、
(a)接続する導電性パスがルート決定される電子回路の1以上のコンポーネントのピンを特定するピンペア割当てを受け付けるステップと、
(b)前記特定されたピンの間の導電性パスのルートを自動検出するステップと、
(c)前記検出されたルートを提起する編集リクエストを送信するステップと、
(d)前記提起されたルートがPCB設計に実装されている表示を受け付けるステップと、
(e)前記表示の受信後、前記PCB設計のローカルコピーを前記検出されたルートを含むよう更新するステップと、
を前記プロセッサに実行させることを特徴とする媒体。
【請求項33】
請求項32記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記ステップ(i)において提起されたルートが前記PCB設計に実装される表示を受け付けるステップと、
(j)前記ステップ(i)の表示の受信後、前記PCB設計のローカルコピーを前記ステップ(g)において検出されたルートを含むよう更新するステップと、
を有することを特徴とする媒体。
【請求項34】
請求項32記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記第2ピンペア割当てのピンの間の他のルートを検出する指示を受け付けるステップと、
(j)前記第2ピンペア割当てのピンの間の第2ルートを自動検出するステップと、
(k)前記第2ルートを提起する編集リクエストを送信するステップと、
を有することを特徴とする媒体。
【請求項35】
請求項32記載のマシーン可読媒体であって、
前記ステップ(d)は、前記ステップ(a)〜(e)を実行するコンピュータ以外の1以上のコンピュータにより検出される他のルートが前記PCB設計に実装されるという1以上の表示を受け付け、
前記ステップ(e)は、前記PCB設計のローカルコピーを前記他のルートを含むよう更新する、
ことを特徴とする媒体。
【請求項36】
請求項32記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間にルート決定された導電性パスに許されるビアの個数に対する制限の表示を受け付けるステップと、
(h)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(i)前記第2ピンペア割当てのピンの間の接続をルート決定することが不可能であるという表示を送信するステップと、
を有することを特徴とする媒体。
【請求項1】
プリント基板(PCB)の導電性パスをルート決定する方法であって、
(a)2つのコンポーネントピンの間の導電性パスを自動的にルート決定するよう構成される複数のクライアントコンピュータのそれぞれにコンポーネントピンペアを割り当てるステップと、
(b)各クライアントから、該クライアントに割り当てられたピンペアを接続する導電性パスの提起されたルートを受け付けるステップと、
(c)前記提起されたルートをマスターPCB設計に実装するステップと、
(d)前記ステップ(a)〜(c)を繰り返すステップと、
から構成されることを特徴とする方法。
【請求項2】
請求項1記載の方法であって、さらに、
(e)前記複数のクライアントに更新メッセージを転送するステップを有し、
前記更新メッセージは、提起されたルートのPCB設計のマスターコピーへの実装を示し、前記複数のクライアントが該クライアントにより維持されるPCB設計のローカルコピーに前記実装されたルートを含めることを認めるものであることを特徴とする方法。
【請求項3】
請求項2記載の方法であって、
前記ステップ(e)は、クライアントが該クライアントによって前に提起された実装されたルートを該クライアントのローカルPCB設計コピーに含めることを認める更新メッセージを前記クライアントに転送するステップを有することを特徴とする方法。
【請求項4】
請求項1記載の方法であって、さらに、
(e)提起されたルートを前記マスターPCB設計に実装することにより、前記ルートの実装を示す更新を生成するステップと、
(f)クライアントが割り当てられたピンペアをルート決定していないとき、前記クライアントに前記更新を転送するステップと、
を有することを特徴とする方法。
【請求項5】
請求項4記載の方法であって、
前記ステップ(e)は、複数の提起されたルートのそれぞれを前記PCBマスター設計コピーに実装することにより、別の更新メッセージを生成し、
前記ステップ(e)はさらに、前記複数のクライアントの更新キューに各更新を配置し、
前記ステップ(f)は、前記クライアントが割り当てられたピンペアを現在ルート決定していないとき、前記更新キューのコンテンツを転送する、
ことを特徴とする方法。
【請求項6】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(d)は、前記リストを介し複数のパスにおいて前記ステップ(a)〜(c)を繰り返す、
ことを特徴とする方法。
【請求項7】
請求項6記載の方法であって、
前記ステップ(a)は、前記リストを介した1つのパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する制限を課し、
前記ステップ(a)はさらに、前記リストを介した以降のパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する異なる制限を課す、
ことを特徴とする方法。
【請求項8】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項9】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項10】
請求項9記載の方法であって、
前記ステップ(a)はさらに、異なるピンペアのピン位置から構成されるポリゴン間のオーバーラップ量に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項11】
請求項1記載の方法であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする方法。
【請求項12】
請求項1記載の方法であって、
前記ステップ(a)は、コンポーネントピンペアを前記複数のクライアントの第1クライアントに、前記同一のコンポーネントピンペアを前記複数のクライアントの第2クライアントに、前記第1及び第2クライアントが、割り当てられるピンペアのピンの間の導電性パスを同時にルート決定するよう割り当てることを特徴とする方法。
【請求項13】
請求項12記載の方法であって、
前記ステップ(a)は、第1ルーティングパラメータにより前記ピンペアを前記第1クライアントに割当て、第2ルーティングパラメータにより前記ピンペアを前記第2クライアントに割当てることを特徴とする方法。
【請求項14】
プリント基板(PCB)の導電性パスをルート決定する方法であって、
(a)接続する導電性パスがルート決定される電子回路の1以上のコンポーネントのピンを特定するピンペア割当てを受け付けるステップと、
(b)前記特定されたピンの間の導電性パスのルートを自動検出するステップと、
(c)前記検出されたルートを提起する編集リクエストを送信するステップと、
(d)前記提起されたルートがPCB設計に実装されている表示を受け付けるステップと、
(e)前記表示の受信後、前記PCB設計のローカルコピーを前記検出されたルートを含むよう更新するステップと、
から構成されることを特徴とする方法。
【請求項15】
請求項14記載の方法であって、さらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記ステップ(i)において提起されたルートが前記PCB設計に実装される表示を受け付けるステップと、
(j)前記ステップ(i)の表示の受信後、前記PCB設計のローカルコピーを前記ステップ(g)において検出されたルートを含むよう更新するステップと、
を有することを特徴とする方法。
【請求項16】
請求項14記載の方法であって、さらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記第2ピンペア割当てのピンの間の他のルートを検出する指示を受け付けるステップと、
(j)前記第2ピンペア割当てのピンの間の第2ルートを自動検出するステップと、
(k)前記第2ルートを提起する編集リクエストを送信するステップと、
を有することを特徴とする方法。
【請求項17】
請求項14記載の方法であって、
前記ステップ(d)は、前記ステップ(a)〜(e)を実行するコンピュータ以外の1以上のコンピュータにより検出される他のルートが前記PCB設計に実装されるという1以上の表示を受け付け、
前記ステップ(e)は、前記PCB設計のローカルコピーを前記他のルートを含むよう更新する、
ことを特徴とする方法。
【請求項18】
請求項14記載の方法であって、さらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間にルート決定された導電性パスに許されるビアの個数に対する制限の表示を受け付けるステップと、
(h)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(i)前記第2ピンペア割当てのピンの間の接続をルート決定することが不可能であるという表示を送信するステップと、
を有することを特徴とする方法。
【請求項19】
命令シーケンスを表すデータを格納するマシーン可読媒体であって、
前記命令シーケンスは、プロセッサにより実行時に、
(a)2つのコンポーネントピンの間の導電性パスを自動的にルート決定するよう構成される複数のクライアントコンピュータのそれぞれにコンポーネントピンペアを割り当てるステップと、
(b)各クライアントから、該クライアントに割り当てられたピンペアを接続する導電性パスの提起されたルートを受け付けるステップと、
(c)前記提起されたルートをマスターPCB設計に実装するステップと、
(d)前記ステップ(a)〜(c)を繰り返すステップと、
を前記プロセッサに実行させることを特徴とする媒体。
【請求項20】
請求項19記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(e)前記複数のクライアントに更新メッセージを転送するステップを有し、
前記更新メッセージは、提起されたルートのPCB設計のマスターコピーへの実装を示し、前記複数のクライアントが該クライアントにより維持されるPCB設計のローカルコピーに前記実装されたルートを含めることを認めるものであることを特徴とする媒体。
【請求項21】
請求項20記載のマシーン可読媒体であって、
前記ステップ(e)は、クライアントが該クライアントによって前に提起された実装されたルートを該クライアントのローカルPCB設計コピーに含めることを認める更新メッセージを前記クライアントに転送するステップを有することを特徴とする媒体。
【請求項22】
請求項19記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(e)提起されたルートを前記マスターPCB設計に実装することにより、前記ルートの実装を示す更新を生成するステップと、
(f)クライアントが割り当てられたピンペアをルート決定していないとき、前記クライアントに前記更新を転送するステップと、
を有することを特徴とする媒体。
【請求項23】
請求項22記載のマシーン可読媒体であって、
前記ステップ(e)は、複数の提起されたルートのそれぞれを前記PCBマスター設計コピーに実装することにより、別の更新メッセージを生成し、
前記ステップ(e)はさらに、前記複数のクライアントの更新キューに各更新を配置し、
前記ステップ(f)は、前記クライアントが割り当てられたピンペアを現在ルート決定していないとき、前記更新キューのコンテンツを転送する、
ことを特徴とする媒体。
【請求項24】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(d)は、前記リストを介し複数のパスにおいて前記ステップ(a)〜(c)を繰り返す、
ことを特徴とする媒体。
【請求項25】
請求項24記載のマシーン可読媒体であって、
前記ステップ(a)は、前記リストを介した1つのパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する制限を課し、
前記ステップ(a)はさらに、前記リストを介した以降のパス中に、クライアントに割り当てられたピンペアをルート決定するよう指示し、提起されたルートに許されているビアの個数に対する異なる制限を課す、
ことを特徴とする媒体。
【請求項26】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項27】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項28】
請求項27記載のマシーン可読媒体であって、
前記ステップ(a)はさらに、異なるピンペアのピン位置から構成されるポリゴン間のオーバーラップ量に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項29】
請求項27記載のマシーン可読媒体であって、
前記ステップ(a)は、電子回路のコンポーネントピンペアのリストからコンポーネントピンペアを割当て、
前記ステップ(a)はさらに、前記ピンペア内のピンを分離する距離に少なくとも部分的に基づき、前記リストからピンペアを割り当て、
前記ステップ(a)はさらに、異なるピンペアの相対位置に少なくとも部分的に基づき、前記リストからピンペアを割り当てる、
ことを特徴とする媒体。
【請求項30】
請求項19記載のマシーン可読媒体であって、
前記ステップ(a)は、コンポーネントピンペアを前記複数のクライアントの第1クライアントに、前記同一のコンポーネントピンペアを前記複数のクライアントの第2クライアントに、前記第1及び第2クライアントが、割り当てられるピンペアのピンの間の導電性パスを同時にルート決定するよう割り当てることを特徴とする媒体。
【請求項31】
請求項30記載のマシーン可読媒体であって、
前記ステップ(a)は、第1ルーティングパラメータにより前記ピンペアを前記第1クライアントに割当て、第2ルーティングパラメータにより前記ピンペアを前記第2クライアントに割当てることを特徴とする媒体。
【請求項32】
命令シーケンスを表すデータを格納するマシーン可読媒体であって、
前記命令シーケンスは、プロセッサにより実行時に、
(a)接続する導電性パスがルート決定される電子回路の1以上のコンポーネントのピンを特定するピンペア割当てを受け付けるステップと、
(b)前記特定されたピンの間の導電性パスのルートを自動検出するステップと、
(c)前記検出されたルートを提起する編集リクエストを送信するステップと、
(d)前記提起されたルートがPCB設計に実装されている表示を受け付けるステップと、
(e)前記表示の受信後、前記PCB設計のローカルコピーを前記検出されたルートを含むよう更新するステップと、
を前記プロセッサに実行させることを特徴とする媒体。
【請求項33】
請求項32記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記ステップ(i)において提起されたルートが前記PCB設計に実装される表示を受け付けるステップと、
(j)前記ステップ(i)の表示の受信後、前記PCB設計のローカルコピーを前記ステップ(g)において検出されたルートを含むよう更新するステップと、
を有することを特徴とする媒体。
【請求項34】
請求項32記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(h)前記ステップ(g)において検出されたルートを提起する編集リクエストを送信するステップと、
(i)前記第2ピンペア割当てのピンの間の他のルートを検出する指示を受け付けるステップと、
(j)前記第2ピンペア割当てのピンの間の第2ルートを自動検出するステップと、
(k)前記第2ルートを提起する編集リクエストを送信するステップと、
を有することを特徴とする媒体。
【請求項35】
請求項32記載のマシーン可読媒体であって、
前記ステップ(d)は、前記ステップ(a)〜(e)を実行するコンピュータ以外の1以上のコンピュータにより検出される他のルートが前記PCB設計に実装されるという1以上の表示を受け付け、
前記ステップ(e)は、前記PCB設計のローカルコピーを前記他のルートを含むよう更新する、
ことを特徴とする媒体。
【請求項36】
請求項32記載のマシーン可読媒体であって、
前記命令シーケンスはさらに、
(f)前記ステップ(d)の表示の受信後、前記回路の1以上のコンポーネントのピンを特定する第2ピンペア割当てを受け付けるステップと、
(g)前記第2ピンペア割当てのピンの間にルート決定された導電性パスに許されるビアの個数に対する制限の表示を受け付けるステップと、
(h)前記第2ピンペア割当てのピンの間の導電性パスのルートを自動検出するステップと、
(i)前記第2ピンペア割当てのピンの間の接続をルート決定することが不可能であるという表示を送信するステップと、
を有することを特徴とする媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図10A】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図10A】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公表番号】特表2008−507002(P2008−507002A)
【公表日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願番号】特願2006−541235(P2006−541235)
【出願日】平成16年11月17日(2004.11.17)
【国際出願番号】PCT/US2004/037183
【国際公開番号】WO2005/052730
【国際公開日】平成17年6月9日(2005.6.9)
【出願人】(500241860)メンター・グラフィクス・コーポレーション (42)
【Fターム(参考)】
【公表日】平成20年3月6日(2008.3.6)
【国際特許分類】
【出願日】平成16年11月17日(2004.11.17)
【国際出願番号】PCT/US2004/037183
【国際公開番号】WO2005/052730
【国際公開日】平成17年6月9日(2005.6.9)
【出願人】(500241860)メンター・グラフィクス・コーポレーション (42)
【Fターム(参考)】
[ Back to top ]