(57)【要約】      （修正有）【課題】ＰＣＢ設計の整合性（ｉｎｔｅｇｒｉｔｙ）を図りつつ、ユーザが、ＰＣＢ設計の共用領域で同時に作業し得るようにする。【解決手段】複数のクライアント２０２，２０４，２０６に接続された複数のユーザが、主設計内容の共用領域にて同時に編集するための編集要求を行なうのを可能にする方法は、主設計内容を表示すること、第１のユーザが設計に関する共用領域で編集するのを可能にすること、設計に関する整合性を維持しながら、第２のユーザが設計に関する共用領域で同時に編集することを可能にすることを包含する。【選択図】図２
2008059597.tif 000002
【特許請求の範囲】
【請求項１】
編集段階にて第１及び第２ユーザ各自が印刷回路基板（ＰＣＢ）主設計内容部分を編集し、同一のＰＣＢ主設計内容部分に関して、前記編集段階にて第１及び第２ユーザの互いの相手側によりなされた編集を閲覧しながら、ＰＣＢ主設計内容を編集する方法であって：
クライアントの各々にてグラフィックス表示をするためにＰＣＢ主設計内容部分を第１及び第２クライアント各々における第１及び第２ユーザに送信する段階であって、前記グラフィックス表示が、ＰＣＢ主設計内容部分に対応するＰＣＢアートワークを表現するものを包含するところのステップ；
編集段階にて、第１クライアントから第１編集要求を受信するステップ；
第１編集要求を該ＰＣＢ主設計内容部分に適用するステップ；
編集段階にて、第２クライアントから第２編集要求を受信するステップ；
第２編集要求が該ＰＣＢ主設計内容部分とコンフリクトしないことを判定するステップ；
コンフリクト無しの判定結果に基づいて第２編集要求を該ＰＣＢ主設計内容部分に適用するステップ；
第１及び第２クライアントに同期データを送信するステップであって、前記同期データは、編集段階にて該ＰＣＢ主設計内容部分への第１及び第２の編集要求の適用を反映するために第１及び第２クライアントにおけるグラフィックス表示の更新を可能にするところのステップ；
ＰＣＢ主設計内容部分の一部分周囲に境界領域幅を設けるステップであって、前記一部分が第１クライアントの表示スクリーン上のカーソルを囲む領域に対応するところのステップ；
前記一部分に対する第２ユーザによる編集要求を以後受信するステップ；及び
境界領域幅の配置に基づいて第２ユーザによる要求を拒否するステップ；
より成ることを特徴とする方法。
【請求項２】
編集要求の少なくとも１つが、オブジェクト及び命令の選択に応答して自動的に生成され、
前記オブジェクトが、経路、素子、トレース、穴、及びテキストであり、及び
前記命令が、左移動、右移動、消去及び付加の少なくとも１つである
ことを特徴とする請求項１記載の方法。
【請求項３】
第２編集要求が該ＰＣＢ主設計内容部分とコンフリクトしないことを判定するステップは、第１及び第２編集要求の双方を該ＰＣＢ主設計内容部分に適用することが接続規則に違反することとなるか否かを判定するステップより成ることを特徴とする請求項１記載の方法。
【請求項４】
更なる編集要求が該ＰＣＢ主設計内容部分とコンフリクトすることを判別するステップ；及び
コンフリクトが解決され得るのであれば、該更なる編集要求を該ＰＣＢ主設計内容部分に適用して該コンフリクトを解決するステップ；
より成ることを特徴とする請求項１記載の方法。
【請求項５】
第１又は第２ユーザが第１オブジェクトを選択し、移動させ、そして解放する；
第１又は第２ユーザが第２オブジェクトを選択し、該第２オブジェクトを図形で表現された消去領域まで動かす；又は
第１又は第２ユーザが第３オブジェクトを選択し、該第３オブジェクトを表示されたアートワーク上に置き、該第３オブジェクトを解放する；
ことに応答して編集要求の１つが自動的に生成されることを特徴とする請求項１記載の方法。
【請求項６】
同期データを送信する前記ステップが、該ＰＣＢ主設計内容部分に編集要求を適用するのと同時に同期データを送信するステップより成ることを特徴とする請求項１記載の方法。
【請求項７】
更に：
第１ユーザからの命令に応答して、ＰＣＢ主設計内容部分の一部分周囲に保護境界を設けるステップ；
前記一部分に対する第２ユーザによる編集の要求を以後受信するステップ；及び
保護境界の配置に基づいて第２ユーザによる要求を拒否するステップ；
より成ることを特徴とする請求項１記載の方法。
【請求項８】
第１のクライアントにおいて実行された動作に応答してオブジェクトをロックし、
該オブジェクトがロックされている間は該オブジェクトに対する第２のクライアントからの編集の要求を拒絶する
各段階を更に含むことを特徴とする請求項１記載の方法。
【請求項９】
編集段階にて第１及び第２ユーザ各自が印刷回路基板（ＰＣＢ）主設計内容部分を編集し、同一のＰＣＢ主設計内容部分に関して、前記編集段階にて第１及び第２ユーザの互いの相手側によりなされた編集を閲覧しながら、ＰＣＢ主設計内容を編集する要求を受信及び処理するサーバであって：
主設計内容を保持するデータベース；
第１及び第２クライアントに対する接続部；及び
プロセッサ；
より成り、前記プロセッサは：
クライアントの各々にてグラフィックス表示をするためにＰＣＢ主設計内容部分を第１及び第２クライアント各々における第１及び第２ユーザに送信し、前記グラフィックス表示が、ＰＣＢ主設計内容部分に対応するＰＣＢアートワークを表現するものを包含し；
編集段階にて、第１クライアントから第１編集要求を受信し；
第１編集要求を該ＰＣＢ主設計内容部分に適用し；
編集段階にて、第２クライアントから第２編集要求を受信し；
第２編集要求が該ＰＣＢ主設計内容部分とコンフリクトしないことを判定し；
コンフリクト無しの判定結果に基づいて第２編集要求を該ＰＣＢ主設計内容部分に適用し；
編集段階にて該ＰＣＢ主設計内容部分へ第１及び第２の編集要求の適用を反映させるために第１及び第２クライアントにおけるグラフィックス表示の更新を可能にする同期データを、第１及び第２クライアントに送信し；
第１クライアントの表示スクリーン上のカーソルを囲む領域に対応するＰＣＢ主設計内容部分の一部分の周囲に境界領域幅を設け；
前記一部分に対する第２ユーザによる編集要求を以後受信し；及び
境界領域幅の配置に基づいて第２ユーザによる要求を拒否する
ように構成されることを特徴とするサーバ。
【請求項１０】
編集要求の少なくとも１つが、オブジェクト及び命令の選択に応答して自動的に生成され、
前記オブジェクトが、経路、素子、トレース、穴、及びテキストであり、及び
前記命令が、左移動、右移動、消去及び付加の少なくとも１つである
ことを特徴とする請求項９記載のサーバ。
【請求項１１】
第１及び第２編集要求の双方を該ＰＣＢ主設計内容部分へ適用することが接続規則に違反することとなるか否かを判定することにより、第２編集要求が該ＰＣＢ主設計内容部分とコンフリクトしないことを判定するように前記プロセッサが構成されることを特徴とする請求項９記載のサーバ。
【請求項１２】
更なる編集要求が該ＰＣＢ主設計内容部分とコンフリクトすることを判定し；
コンフリクトが解決され得るのであれば、該ＰＣＢ主設計内容部分へ該更なる編集要求を適用して該コンフリクトを解決する；
ように前記プロセッサが構成されることを特徴とする請求項９記載のサーバ。
【請求項１３】
第１又は第２ユーザが第１オブジェクトを選択し、移動させ、そして解放する；
第１又は第２ユーザが第２オブジェクトを選択し、該第２オブジェクトを図形で表現された消去領域まで動かす；又は
第１又は第２ユーザが第３オブジェクトを選択し、該第３オブジェクトを表示されたアートワーク上に置き、該第３オブジェクトを解放する；
ことに応答して編集要求の１つが自動的に生成されることを特徴とする請求項９記載のサーバ。
【請求項１４】
前記プロセッサが、該ＰＣＢ主設計内容部分に編集要求を適用するのと同時に同期データを送信することにより、同期データを送信するように構成されることを特徴とする請求項９記載のサーバ。
【請求項１５】
第１ユーザからの命令に応答して、ＰＣＢ主設計内容部分の一部分周囲に保護境界を設け；
前記一部分に対する第２ユーザによる編集の要求を以後受信し；及び
保護境界の配置に基づいて第２ユーザによる要求を拒否する；
ように前記プロセッサが構成されることを特徴とする請求項９記載のサーバ。
【請求項１６】
第１のクライアントにおいて実行された動作に応答してオブジェクトをロックし、
該オブジェクトがロックされている間は該オブジェクトに対する第２のクライアントからの編集の要求を拒絶する
ように前記プロセッサが構成されることを特徴とする請求項９記載のサーバ。
【請求項１７】
一連の命令を含むプログラムを格納する機械読み取り可能な媒体であって、前記一連の命令はプロセッサにより実行される場合に：
編集段階にて第１及び第２ユーザ各自が印刷回路基板（ＰＣＢ）主設計内容部分を編集し、同一のＰＣＢ主設計内容部分に関して、前記編集段階にて第１及び第２ユーザの互いの相手側によりなされた編集を閲覧しながら、ＰＣＢ主設計内容を送信するステップであって、ＰＣＢ主設計内容が、クライアントの各々にてグラフィックス表示をするために第１及び第２クライアント各々における第１及び第２ユーザに送信され、前記グラフィックス表示が、ＰＣＢ主設計内容部分に対応するＰＣＢアートワークを表現するものを包含するところのステップ；
編集段階にて、第１クライアントから第１編集要求を受信するステップ；
第１編集要求を該ＰＣＢ主設計内容部分に適用するステップ；
編集段階にて、第２クライアントから第２編集要求を受信するステップ；
第２編集要求が該ＰＣＢ主設計内容部分とコンフリクトしないことを判定するステップ；
コンフリクト無しの判定結果に基づいて第２編集要求を該ＰＣＢ主設計内容部分に適用するステップ；
第１及び第２クライアントに同期データを送信するステップであって、前記同期データは、編集段階にて該ＰＣＢ主設計内容部分への第１及び第２の編集要求の適用を反映するために第１及び第２クライアントにおけるグラフィックス表示の更新を可能にするところのステップ；
ＰＣＢ主設計内容部分の一部分周囲に境界領域幅を設けるステップであって、前記一部分が第１クライアントの表示スクリーン上のカーソルを囲む領域に対応するところのステップ；
前記一部分に対する第２ユーザによる編集要求を以後受信するステップ；及び
境界領域幅の配置に基づいて第２ユーザによる要求を拒否するステップ；
をプロセッサに実行させることを特徴とする機械読み取り可能な媒体。
【請求項１８】
編集要求の少なくとも１つが、オブジェクト及び命令の選択に応答して自動的に生成され、
前記オブジェクトが、経路、素子、トレース、穴、及びテキストであり、及び
前記命令が、左移動、右移動、消去及び付加の少なくとも１つである
ことを特徴とする請求項１７記載の機械読み取り可能な媒体。
【請求項１９】
第２編集要求が該ＰＣＢ主設計内容部分とコンフリクトしないことを判定するステップが、第１及び第２編集要求の双方を該ＰＣＢ主設計内容部分に適用することが接続規則に違反することとなるか否かを判定するステップより成ることを特徴とする請求項１７記載の機械読み取り可能な媒体。
【請求項２０】
更に：
更なる編集要求が該ＰＣＢ主設計内容部分とコンフリクトすることを判定するステップ；及び
コンフリクトが解決され得るのであれば、該更なる編集要求を該ＰＣＢ主設計内容部分に適用して該コンフリクトを解決するステップ；
を実行させる命令より成ることを特徴とする請求項１７記載の機械読み取り可能な媒体。
【請求項２１】
第１又は第２ユーザが第１オブジェクトを選択し、移動させ、そして解放する；
第１又は第２ユーザが第２オブジェクトを選択し、該第２オブジェクトを図形で表現された消去領域まで動かす；又は
第１又は第２ユーザが第３オブジェクトを選択し、該第３オブジェクトを表示されたアートワーク上に置き、該第３オブジェクトを解放する；
ことに応答して編集要求の１つが自動的に生成されることを特徴とする請求項１７記載の機械読み取り可能な媒体。
【請求項２２】
同期データを送信する前記ステップが、該ＰＣＢ主設計内容部分に編集要求を適用するのと同時に同期データを送信するステップより成ることを特徴とする請求項１７記載の機械読み取り可能な媒体。
【請求項２３】
更に：
第１ユーザからの命令に応答して、ＰＣＢ主設計内容部分の一部分周囲に保護境界を設けるステップ；
前記一部分に対する第２ユーザによる編集の要求を以後受信するステップ；及び
保護境界の配置に基づいて第２ユーザによる要求を拒否するステップ；
を実行させる命令より成ることを特徴とする請求項１７記載の機械読み取り可能な媒体。
【請求項２４】
更に：
第１のクライアントにおいて実行された動作に応答してオブジェクトをロックするステップ、
該オブジェクトがロックされている間は該オブジェクトに対する第２のクライアントからの編集の要求を拒絶するステップ
を実行させる命令より成ることを特徴とする請求項１７記載の機械読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［優先権］
本願は、２００１年１２月１０日付けの米国仮特許出願番号６０／３４１，０３７の利益を享受し得るものである。また、本願は２００２年１０月１０日に出願された“Ｐａｒａｌｌｅｌ
Ｅｌｅｃｔｒｏｎｉｃ Ｄｅｓｉｇｎ Ａｕｔｏｍａｔｉｏｎ：Ｄｉｓｔｉｂｕｔｅｄ Ｓｉｍｕｌｔａｎｅｏｕｓ Ｅｄｉｔｉｎｇ”と題する米国出願番号第１０／２６９，５２５号にも関連する。
［コピーライト］
本願による開示内容は、著作権保護を受け得るものを包含する。著作権者は、特許商標庁のファイル又は記録に表れるような、第三者による特許文献又は特許開示内容のファクシミリ複製を妨げるものではないが、それ以外については総ての著作権行使の対象とする。この留意事項は、以下に及び図面に記載されるようなソフトウエア及びデータに適用され得る：コピーライト
（外１）
2008059597.tif 000003
２００２、メントールグラフィクスコーポレーション、版権所有
［発明の技術分野］
本発明は、電子設計自動化ツールの技術分野に関連し、特に同時性の又は並列的な印刷回路基板（ＰＣＢ）設計用の共用される環境をユーザに与える手段に関連する。
【背景技術】
【０００２】
ＰＣＢ設計は、そのＰＣＢの機能が記号表現による論理図として描かれている系統設計（ｓｃｈｅｍａｔｉｃ ｄｅｓｉｇｎ）から始まる。その系統が完成すると、系統の詳細としてＰＣＢ機能を形成する物理的素子の仮想的ＰＣＢに変換され又は（データが）取り込まれる。ＰＣＢ設計は、印刷回路基板形式で電子回路を作成するために使用され得る。
【０００３】
ＰＣＢレイアウトプロセスでは、多くのユーザが、その仮想的ＰＣＢを形成するために、その系統にて作業を行なう。伝統的には、これは設計分離システム（ｄｅｓｉｇｎ
ｓｐｌｉｔｔｉｎｇ ｍｅｃｈａｎｉｓｍ）を通じて行なわれ、それにより、ＰＣＢレイアウトの編集を行なうために、各ユーザが、その設計に関して（割り当てられた）対応する部分を検討できるようにする。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
編集が基板の残余の部分に対する最新の編集内容にどのように影響するか、及びその逆を見るために、編集内容はオリジナルデータベースに吸収され、そこではその編集内容と共にマスタデザイン又は主設計内容が更新される。しかしながら、この手法は、各人に開かれた設計領域のみを見ることにユーザが制限されるという制約を受ける。結果的に、ユーザの編集がなされた場合に、ユーザは、基板の残余部分になされる編集内容を見ることはできない。
【０００５】
更に、ＰＣＢ設計の整合性（ｉｎｔｅｇｒｉｔｙ）を図りつつ、ユーザが、ＰＣＢ設計の共用領域で同時に作業し得るようにするシステムは、現在のところ知られていない。
【課題を解決するための手段】
【０００６】
本発明の一態様による方法は、複数のユーザが、主設計内容の共用領域で同時に編集することを可能にする。本方法は、主設計内容を表示すること、第１のユーザが設計に関する共用領域で編集することを可能にすること、同時に、第２のユーザが設計に関する共用領域で編集することを可能にし、設計に関する整合性を維持することを包含する。
【発明を実施するための最良の形態】
【０００７】
以下、本発明が、添付図面と共に限定としてではなく例として説明され、同様の参照番号は同様の要素を表現する。
【０００８】
本発明の一態様における方法は、あるユーザがＰＣＢ設計内容を編集することを可能にし、同時にそのユーザが他のユーザによるＰＣＢ設計の編集内容を閲覧することを可能にする。概して、本方法は複数ユーザにＰＣＢ設計内容を表示する。第１のユーザがＰＣＢ設計の任意の部分に対する編集を行なう際に、主設計内容の整合性を維持しつつ、第２のユーザはそのＰＣＢ設計内容の任意の部分に対する編集を行なう。本発明の一実施例では、任意の部分が重複することが可能であり、各ユーザが、主設計内容の共用領域を編集することを可能にする。本発明の他の実施例では、任意の部分は相互に排他的であり、各ユーザが、主設計内容の共用されない排他的領域を編集するようにする。
【０００９】
本発明は、以下に説明される様々な動作を包含する。本発明による動作は、ハードウエア素子によって実行され、又は機械読み取り可能な命令にて実施されることが可能であり、その命令は、命令のプログラムされた汎用の又は特定用途向けのプロセッサ又は論理回路にその動作を実行させるものである。或いは、その動作は、ハードウエア及びソフトウエアの組み合わせによっても実行され得る。
【００１０】
本発明は、コンピュータプログラムプロダクトとして与えられ、そこに命令を格納させる機械読み取り可能な媒体を含み、その媒体は本発明によるプロセスを実行するためにコンピュータ（又は他の電子装置）をプログラムするのに使用される。機械読み取り可能な媒体は、限定ではないが、フロッピディスク、光ディスク、ＣＤ−ＲＯＭ（コンパクトディスク読み取り専用メモリ）、及び磁気光学ディスク、ＲＯＭ（読み取り専用メモリ）、ＲＡＭ（ランダムアクセスメモリ）、ＥＰＲＯＭ（消去及びプログラム可能な読み取り専用メモリ）、ＥＥＰＲＯＭ（電磁的に消去及びプログラム可能な読み取り専用メモリ）、磁気又は光学的カード、フラッシュメモリ、その他の電子的命令を格納するのに適切な媒体／機械読み取り可能な媒体を包含する。
【００１１】
更に、本発明は、コンピュータプログラムプロダクトとしてダウンロードされることも可能であり、そのプログラムは、リモートコンピュータ（例えば、サーバ）から要求しているコンピュータ（例えば、クライアント）へ、通信リンク（例えば、モデム又はネットワーク接続）を通じて搬送波又は他の伝送媒体により具現化されるデータ信号によって転送され得る。従って、この場合における搬送波は機械読み取り可能な媒体を構成するものとして取り扱われ得る。
［イントロダクション］
印刷回路基板は、それが電子回路になるまでに多数の段階を経ている。一群の仕様に従って、設計技術者は、記号を用いて回路の機能を対応付ける回路図を作成する。例えば、ギザギザの線は抵抗を表すために使用される。この図は系統（ｓｃｈｅｍａｔｉｃ）と呼ばれる。
【００１２】
印刷回路基板を作成するために、その系統を採用し、素子及び配線のパターンを作成するアートワーク（ａｒｔｗｏｒｋ）の形式に変化させることを要し、そのアートワークは、ＰＣＢを製造するための写真画像処理に使用される。アートワークはＰＣＢ設計内容と呼ばれ、ＰＣＢ設計に従事する者は、以後、ユーザとして言及される。ユーザは、他のユーザと同時にＰＣＢを編集する設計者である。また、ユーザは、自動配置ツール（ａｕｔｏｐｌａｃｅｍｅｎｔ
ｔｏｏｌ）、シミュレーションツール、又は自動ルータ（ａｕｔｏｒｏｕｔｅｒ）のような任意の自動プログラムであることが可能であり、自動ルータは、系統によって規定されたネットライン（ｎｅｔｌｉｎｅ）に従って、ＰＣＢ内の素子を自動的にたどる。本発明の更なる他の実施例では、ユーザは設計者及び自動プログラム両者であり得る。後者の実施例では、１以上の任意のユーザが、基板を設計する設計者と共存する自動プログラムであり得る。
【００１３】
図１は、ＰＣＢを設計するための従来のシステムを示すブロック図である。このシステムは、複数のクライアント１０２，１０４，１０６及びサーバ１００より成り、サーバ１００は、マスタＰＣＢ設計内容１１６（以下、「主設計内容（ｍａｓｔｅｒ
ｄｅｓｉｇｎ）」という。）を格納するためのデータベース１０８より成り、各クライアント１０２，１０４，１０６は、そこに接続されたユーザが主設計内容１１６の編集を要求することを可能にする。ここで使用されるように、主設計内容は、ユーザにより編集され得るＰＣＢ設計内容を示す。図示されている従来技術では、各ユーザは、作業を行なうために主設計内容１１６の固有の部分１１０，１１２，１１４をオープンする又は開く。ユーザは、データベース１０８から設計内容１１６の対応する部分１１０，１１２，１１４を開き、設計内容１１６の対応する部分１１０，１１２，１１４に対する編集を行なう。しかしながら、ユーザは、他のユーザによりどのような編集が主設計内容になされるか、主設計内容の他の領域に対する編集がそのユーザに関連する領域にどのように影響するかを把握することができない。例えば、クライアント１０２におけるユーザは、主設計内容の部分１１０のみを編集及び閲覧できるに過ぎず；クライアント１０４におけるユーザは、主設計内容の部分１２０のみを編集及び閲覧できるに過ぎず；及びクライアント１０６におけるユーザは、主設計内容の部分１１４のみを編集及び閲覧できるに過ぎない。
【００１４】
終了時に又はユーザの要求時に、対応する部分１１０，１１２，１１４がデータベース１０８に戻されチェックされる。その後に、ユーザの中のある者が、主設計内容１１６の対応する部分１１０，１１２，１１４を検査し、ユーザの対応する部分に影響する時点までの総てのユーザによりなされた編集をまとめた統合されたものがどのようであるかを把握する。
【００１５】
図２は、本発明の一般的な実施例による並列的ＰＣＢ設計用のシステムを示すブロック図である。これは複数のクライアント２０２，２０４，２０６、サーバ２００より成り、サーバ２００は主設計内容１１６を保持するデータベースを有する。
【００１６】
各クライアント２０２，２０４，２０６は、他のユーザにより主設計内容１１８になされた編集を互いに閲覧しながら、ユーザが主設計内容への編集を同時に要求することを可能にする。主設計内容１１６は、サーバ２００のデータベース２０８におけるものより成り、それはサーバ２００にアクセスするクライアントからの編集要求を導入し、設計内容は、まとめられた又はコンパイルされた主設計内容としても言及される。主設計内容２１６は、所与のクライアント２０２，２０４，２０６におけるユーザによる編集された形式のものより成る。
【００１７】
ＰＣＢ設計内容（即ち、主設計内容）が表示される場合は、それは全体的なＰＣＢ設計内容より成り、又はそれは部分的なＰＣＢ設計内容より成る。例えば、主設計内容１１６がいくつかのユーザグループに分配され、本発明の実施例は、所与のユーザグループに対して彼らの部分のみが表示され、部分的なＰＣＢ設計内容のみを表示するように、各ユーザグループに適用可能である。しかしながら、そのユーザグループに対してのみ表示される部分は、以下に説明されるように共用される領域及び排他的な領域より成り得る。
【００１８】
クライアント２０６におけるユーザは、例えば、主設計内容１１６の編集を要求し、その編集要求がサーバ２００に提出される。サーバ２００は、その編集要求を処理し、編集要求を許可する又はそれらを拒否する。拒否された編集要求は、要求しているクライアント２０６に報告される。許可された編集要求は、主設計内容１１６に適用される。クライアント２０２，２０４，２０６は、その後に主設計内容１１６に合わせられる。
【００１９】
本発明の実施例における並列的なＰＣＢ設計は、主設計内容１１６を編集することを要求しつつ、コンパイルされた主設計内容１１６を閲覧する機能をユーザに与える。一実施例では、あるユーザは、主設計内容１１６を閲覧しながら他のユーザと共に主設計内容の共用領域を同時に編集し得る（協同的ＰＣＢ設計）。他の実施例では、あるユーザは、主設計内容１１６を閲覧しながら他のユーザと共用されない排他的な主設計領域（分散されたＰＣＢ設計内容）を同時に編集し得る。
【００２０】
編集要求は、その特定のユーザにより形成された、１つ又はそれ以上の対象又はオブジェクト（ｏｂｊｅｃｔ）及び対応する命令のリストより成る。オブジェクトは、経路又はルート（ｒｏｕｔｅ）、素子、トレース、穴、文又はテキスト、及び図形オブジェクト等を含み；及び命令は、左へ移動、右へ移動、消去、又は付加すること等を含む。
【００２１】
図３は、エンティティ図（ｅｎｔｉｔｙ ｄｉａｇｒａｍ）を示す。これは、ｎ個のクライアント２０２，２０４，２０６と１つのサーバ２００より成る。コンパイルされる主設計内容はユーザに提示される。所与のクライアント２０４に接続されるユーザは、主設計内容を編集するための編集要求３００を作成する。クライアント２０４がコンフリクト検査及び解決手段（ｃｏｎｆｌｉｃｔ
ｃｈｅｃｋｉｎｇ ａｎｄ ｒｅｓｏｌｕｔｉｏｎ）３０２（後述）を有するならば、その作業又はタスクはクライアントにより実行される。クライアントコンフリクト検査及び解決手段を通過すると、又はクライアントコンフリクト検査及び解決手段が存在しないならば、編集要求３００はサーバ３０４に送付される。クライアントコンフリクト検査及び解決手段を通過できなかった場合は、その編集要求は拒否され、他の編集要求３００が形成され得る。
【００２２】
ある編集要求３００がサーバ３０４に提出されると、その編集要求３００はサーバの要求キュー（ｑｕｅｕｅ）３０６内に置かれる。要求キューはＦＩＦＯ（先入れ先出し）キューより成り、最初に提出された編集要求が最初に処理され；又は要求キューは優先キューより成り、所定の編集要求（即ち、要求のタイプ、又は所定のクライアントからの要求）に、他の要求よりも高い優先度が与えられる。編集要求が要求キューから最終的に取り出されると、サーバコンフリクト検査及び解決手段３０８（後述）がその編集要求に対して実行される。サーバコンフリクト検査及び解決手段を通過すると、その編集が許可され、主設計内容が更新される３１０。クライアントはその後に主設計内容に合わせられる３１２。
【００２３】
以下は、編集がどのようにして検出されるかの例を示す：
・ ユーザがオブジェクトを動かす場合に、彼はそれを選択し、それを動かし、それを解放する。オブジェクトが解放されると、編集が検出される。
・ ユーザがオブジェクトを消去する場合に、彼はそれを選択し、消去命令を選択する。消去命令が選択された場合に、編集が検出される。（消去命令は様々な形式で実現され得る。例えば、消去ボタンが選択される、又は消去されるオブジェクトがリサイクルビン（ｒｅｃｙｃｌｅ
ｂｉｎ）に置かれる。）
・ ユーザがオブジェクトを付加する場合に、付加されるオブジェクトが選択され、主設計内容の上に置かれ、解放される。付加されるオブジェクトが解放される場合に、編集が検出される。
・ ユーザはオブジェクト名及び命令を送信する。
［協同的ＰＣＢ設計］
図４に示されるように、本発明の一実施例における共同編集システムでは、複数のユーザ２０２，２０４，２０６は、ＰＣＢ設計に対する同時アクセス権（ｓｈａｒｅｄ
ａｃｃｅｓｓ）を各ユーザに与えながら、ＰＣＢ設計内容１１６の共用領域４１０を同時に編集し得る。本発明の実施例では、共用領域は、複数のユーザによりアクセスされ編集され得る主設計内容の領域より成る。一方、排他的な領域は区別され、各ユーザに割り当てられる。排他的な領域は「分散的ＰＣＢ設計」と題する項目で詳細に説明される。
【００２４】
図示の都合上、基板全体が共用領域より成り、クライアント２０２，２０４，２０６におけるユーザ各々が、主設計内容１１６全体におけるオブジェクトを同時に編集及び閲覧することが可能であり、以下に説明されるようなアクセス権を有するようにする。また、共用領域は、主設計内容１１６上の領域の部分集合より成り、主設計内容１１６が共用領域及び排他的な領域双方から成るようにすることも想定され得る。後者の場合は、排他的領域における主設計内容１１６の編集は、関連するクライアントコンフリクト検査及び解決モジュールによって有効化され；共用領域における主設計内容１１６の編集は、関連するクライアントコンフリクト検査及び解決モジュール、サーバコンフリクト検査及び解決モジュール、又は双方によって有効化され得る。
【００２５】
図５では、クライアント２０２（１つのみが示されている）は所与のユーザに対応し、それはプロセッサ５００及び選択的なメモリ容量５０２より成る。サーバ２００はプロセッサ５０４より成る。１対１クライアント−サーバ及びユーザ−クライアント関係として図示されているが、そのような形態に限定されないことは、当業者に理解されるであろう。任意の１つのクライアントは、ユーザが、他のユーザと同時に主設計内容１１６を編集することを可能にする単なるポータル（ｐｏｒｔａｌ）であり得ることに留意を要する。更に、サーバ２００は、主設計内容１１６を協調させる及び管理するための機器として理解されるべきである。
【００２６】
一実施例では、主設計内容２１６は、小規模の（ｔｈｉｎ）クライアント（即ち、最少の処理リソースを有する）のようなクライアントにおける主設計内容１１６を形成し、総ての編集要求はサーバ２００に提出される。説明されるように、この例では、サーバ２００は総てのコンフリクト検査及び解決動作を実行し、編集要求が許容され得るか否かを判別する。
【００２７】
他の実施例では、主設計内容２１６は、クライアントのメモリ空間における主設計内容１１６の複製を形成する。この例では、コンフリクト検査及び解決動作は、サーバ２００におけるプロセッサ５０４単独によって、クライアント２０２によるプロセッサ５００単独によって実行されることが可能であり、又は所与のクライアント２０２，２０４，２０６及びサーバ２００の各プロセッサ間の様々な部分に分散され得る。これらは以下に詳細に説明される。
［アクセス権］
本発明の一般的な実施例において、各ユーザは、割り当て制約（「分散的ＰＣＢ設計」にて後述される）に従って、主設計内容の他のユーザと同じ部分（ａｓｐｅｃｔ）にアクセスし得る。一実施例では、総てのユーザは同じアクセス権を有する。例えば、第１ユーザは、第２ユーザと同じオブジェクトに対する編集及び命令を要求し得る。他の実施例では、各ユーザのアクセス権が異なり得る。例えば、第１ユーザは素子に対する編集を要求することしかできず、第２ユーザは経路に対する編集しか要求できないようにすることができる。
［コンフリクト検査及び解決手段］
編集要求が受信されると、コンフリクト検査及び解決動作が実行される。コンフリクト検査は、１つ又はそれ以上の設計規則又はデザインルールに矛盾又は違反する編集を防ぐための検査を含む。デザインルールは、その設計内容が、欠陥品の確率を最少にするための所定の一群の規則に適合することを保証する。デザインルール検査部は、間隔違反、幾何学的違反、接続違反等を検査する。例えば、２つのトレースが、間隔規則より互いに狭く隣接して設けられている場合には、デザインルール違反が生じる。
【００２８】
コンフリクト解決手段は、衝突、矛盾又はコンフリクトしているが解決され得る編集内容の検出を含む。例えば、２つのトレースが接近しすぎてデザインルールに違反する場合に、そのコンフリクトを回避するために一方のトレースが動かされる。
【００２９】
図６に示されるように、クライアントコンフリクト検査及び解決手段、並びにサーバコンフリクト検査及び解決手段が共存し、又はそれらは分離して存在し得る。それらが共存する場合には、クライアント２０２のクライアントコンフリクト検査及び解決モジュール６００は、クライアントにおける主設計内容２１６が何らかのコンフリクトを有するか否かを判別する。コンフリクトがあれば、そのコンフリクトが解決され得るか否かが判定される。
【００３０】
コンフリクトが解決されると、又は何らのコンフリクトも無い場合は、クライアントコンフリクト検査及び解決モジュール６００は、サーバ２００のサーバコンフリクト検査及び解決モジュール６０２に編集要求を送信し、サーバにおける主設計内容１１６に何らかのコンフリクトが存在するか否かを判別する。
【００３１】
コンフリクトが存在するならば、サーバクライアントコンフリクト解決モジュール６０２は、そのコンフリクトが解決され得るか否かを判別する。コンフリクトが無ければ、その編集要求は受け入れられ、サーバ１００の併合部６０４は、その編集要求を主設計データ構造に適用する。
【００３２】
サーバ２００の同期部６０６は、まとめられた又はコンパイルされた主設計内容１１６に、１つ又はそれ以上のクライアント２０２，２０４，２０６を同期させる。同期は、例えば、クライアントからの要請により主設計内容１１６を単独のクライアントに送付すること；複数のクライアントからの要請により主設計内容１１６を全員に又は複数のクライアントにブロードキャストすること；各クライアント２０２，２０４，２０６にける主設計データ構造２１６のクライアントコピーを、主設計内容を更新する際にサーバ２００上の更新される主設計データ構造１１６に自動的に交換すること；又は主設計内容１１６を更新する際にクライアント２０２，２０４，２０６のディスプレイを自動的に更新することを含む。当然に、これらの例は完全なリストを形成するものではない。
【００３３】
コンフリクト検査及び解決手段が孤立して存在する場合には、サーバは総てのコンフリクト検査及び解決手段を実行する；又は各クライアントが総てのコンフリクト検査及び解決手段を実行する。例えば、クライアントが薄い（ｔｈｉｎ）クライアント（即ち、最少の処理リソースしか有しない）である場合に、サーバは総てのコンフリクト検査及び解決動作を実行し、クライアント上の主設計内容２１６は主設計内容１１６を形成し、編集要求はサーバ２００に提出される。例えば、編集中にクライアント間のコンフリクトが一切生じないように（分散的ＰＣＢ設計で説明される）、主設計内容が区分化され、個々のユーザに割り当てられる場合には、クライアントは総てのコンフリクト検査及び解決手段を実行する。後者の場合には、編集は彼ら各々の排他的な領域内で行なわれ、それらの変種がなされた後に依然として何らかのコンフリクトが存在するならば（残留（ｒｅｓｉｄｕａｌ）コンフリクト）、サーバはコンフリクト検査及び解決動作を実行し得る。しかしながら、残留コンフリクトは、編集が適用された後に取り扱われる場合には、それは必要ではない。
【００３４】
クライアントと協同して、又は孤立して、サーバがコンフリクト検査及び解決手段を実行する場合には、サーバはその作業負荷を減らすために機能を最適化する。例えば、併合された以前の編集要求をどのクライアントが行なったかを記録し、次の編集要求が同じクライアントからのものであったならば、所定のコンフリクト検査及び解決機能を省略し得ることをサーバが把握できるようにする。
［コンフリクト防止］
第１の場所で生じたコンフリクトを回避するために、多数のコンフリクト回避法が使用される。コンフリクトを回避するのに使用され得るある方法は、図７に示されるような保護境界を使用することである。保護境界７００は、ユーザの作業領域近辺で、特定のユーザに対する領域を一時的に確保する保護境界（ｐｒｏｔｅｃｔｉｏｎ
ｂｏｒｄｅｒ）をユーザが描くことを可能にする。保護境界は、総てのクライアントにブロードキャストされ、コンフリクトに遭遇せずにユーザが主設計内容を編集することを可能にする。保護境界は、ユーザの要求によって除去され得る。他のユーザが、保護境界に含まれる領域にて編集しようとした場合には、コンフリクト検査部がそれを防止し、その編集を試みようとしたクライアントにエラーとしてそれを報告する。
【００３５】
図８に示されるように、コンフリクトを回避するための方法は、作業領域近辺で適切なゆとり（ｃｌｅａｒａｎｃｅ）を自動的に与えるために、ユーザの作業領域の境界に沿う境界領域幅（ｆｏｒｃｅ
ｆｉｅｌｄ ｗｉｄｔｈ）８００，８０２を使用することである。一実施例では、ユーザの作業領域がカーソルより成り、境界領域幅はそのカーソル近辺の領域に適用される。他の実施例では、作業領域はカーソルに最も接近したオブジェクトより成り、境界領域幅はオブジェクト近辺の領域に適用される。他のユーザが、境界領域で保護された作業領域の境界内での編集を試みると、コンフリクト検査部がそれを防止し、その編集を試みたクライアントにそれをエラーとして報告する。
【００３６】
使用され得る他の手法は、オブジェクト固定又はロックである。オブジェクトロックは、その結果として、オブジェクトがロック動作を実行するクライアントに確保され、他のクライアントによって編集され得ないものとする。コンフリクト防止に使用され得る更なる他の方法は、自動ルータに対するネットラインの割り当てである。自動ルータに対するネットラインの割り当ては、ある自動ルータが、同じネットラインを異なる経路とすることを防止する。
［分散的ＰＣＢ設計］
図９は、本発明の他の実施例による分散的システムのブロック図である。本システムは、複数のクライアント２０２，２０４，２０６、及び主設計内容１１６を格納するデータベース２０８を有するサーバ２００を含む。主設計内容は排他的領域９１０，９１２，９１４より成り、各排他的領域９１０，９１２，９１４は、総てのユーザから閲覧され得るが、単独のユーザによって編集され得る。
【００３７】
従来のシステムと同様に、各ユーザには、作業する主設計内容１１６の固有の部分９１０，９１２，９１４が割り当てられる。しかしながら、従来のシステムとは異なり、ユーザは、そのユーザの編集セッション中に他のユーザにより同時に実行された設計内容の他の部分に対する編集内容を見ることができる。例えば、排他的領域９１０は、クライアント２０２におけるユーザに対応し、クライアント２０２におけるユーザが排他的領域９１０を編集し得るようにする。クライアント２０２におけるユーザは、排他的領域９１０を編集することが可能であり、コンパイルされた主設計内容を閲覧するために、排他的領域９１２，９１４を閲覧することも可能である。
［区分化］
区分化（ｐａｒｔｉｔｉｏｎｉｎｇ）は、設計内容が複数の領域に分割されるところのプロセスである。区分化された領域はユーザに割り当てられ、割り当てられたユーザのみがその領域を編集し得るようにする。排他的領域に割り当てられた所与のユーザに関し、排他的領域は、その所与のユーザによってのみ編集される。他の任意のユーザに対しては、排他的領域は、他のユーザから閲覧され得るに過ぎない（即ち、読み取り専用）。
【００３８】
領域境界は任意であり、系統の境界に拘束されない。区分化は、多角形を形成する特定の作図ツールによって実行され、名称や所有者等のような属性を排他的領域各々に割り当てることが可能である。
【００３９】
本発明の実施例では、設計に関する所有者又はオーナーは、その設計内容を複数の部分に区分化する。例えば、図１０に示されるように、弧（ａｒｃ）１０００及び線１００２は、設計内容１１６の単独の層又はレイヤ１００４を又は設計内容１１６の複数層１００６さえも、区分化するために使用され得る。各部分は、領域の形式又はタイプ（即ち、円、四角形、多角形等）によって規定され；１つ又はそれ以上の層をその領域に割り当て；及びその部分に割り当てる。各部分は、単独のユーザによる編集に利用可能である。また、設計のオーナーはユーザであり得る。
【００４０】
部分又はセクションがユーザに割り当てられると、その部分は排他的な領域になる。排他的な領域は、他のユーザによる編集はできないが、他のユーザによる閲覧は可能である。排他的領域は明示的に割り当てられ、設計のオーナーが所与の領域に特定のユーザを具体的に割り当てることが可能であり、又は排他的領域は黙示的に割り当てられ、明示的には割り当てられない領域が、デフォルトによって設計のオーナーによって割り当てられ得る。或いは、各領域に任意的な名称が割り当てられ、要求に応じて排他的領域をチェックすることで、ユーザが領域を確保することも可能である。
【００４１】
図示の便宜上、基板全体が排他的であり、上述したアクセス権に従って、コンパイルされた主設計内容１１６を閲覧しながら、クライアント２０２，２０４，２０６におけるユーザが割り当てられた領域に同時に編集し得ることを想定している。また、主設計内容１１６が共用領域及び排他的涼気から形成されるように、排他的領域が主設計内容１１６上の領域の部分集合を形成することを想定することも可能である。後者の場合には、排他的領域における主設計内容１１６に対する編集は、対応するクライアントコンフリクト検査及び解決モジュールによって有効化され；共用領域における主設計内容１１６に対する編集は、対応するクライアントコンフリクト検査及び解決モジュール、サーバコンフリクト検査及び解決モジュール又はその両者によって有効化される。
［編集］
図１１に示されるように、ユーザが設計内容１１６を開くと、ユーザ１１００に対応する総ての部分（即ち、割り当てられた又はユーザにより検査される排他的領域）に加えて、もし存在すれば共用領域も、そのユーザに対する編集に利用可能であり、他の総ての対応しない排他的領域１１０２，１１０４は閲覧可能である。本発明の実施例では、ユーザには、その部分のみを表示し、指定されるユーザに対する排他的領域内部を経由する（ｒｏｕｔｅ）選択肢が与えられる。ＰＣＢオブジェクト、作図オブジェクト、ネットラインのような他の項目は、通常通り表示され得る。
【００４２】
対応する排他的領域内のオブジェクトは編集に利用可能であり、対応する排他的領域外のオブジェクトはロックされ、編集に利用可能でないが、閲覧だけは可能である。オブジェクトは、限定ではないが、経路、素子、トレース、ビア又は穴、文字又はテキスト、図形オブジェクト等を包含する。
［配置規則］
配置規則（ｐｌａｃｅｍｅｎｔ ｒｕｌｅ）は、セクションの設計中に生じ得るコンフリクトを防止する。例えば、排他的領域は層の制約を有し得るので、ビア、スルーホールピン又はある部分が、複数の排他的領域に存在することが可能である。複数領域に存在するオブジェクトは、ロックされるべきである。（別のユーザに割り当てられた複数層近辺に存在する）複数の領域に介在するオブジェクトが付加されることは防止されるべきである。
【００４３】
更に、図１２に示されるように（領域１２１０は排他的領域であることを想定している）、排他的領域内から始まり排他的領域内で終了するネットライン１２００，１２０２は、完全に経路が規定され；排他的領域内から始まるが排他的領域外で終了するネットライン１２０４は、排他的領域の端部で経路が終端する。ネットラインが、ある排他的領域の端部で終端されると、隣接する排他的領域のオーナー（又はそれが共有領域ならば任意のユーザ）は、彼らの領域におけるネットラインの経路を継続し得る。排他的領域内で始まらず又は終わらないネットライン１２０６は、経路を制限され、又は限定条件と共に経路が規定され得る。この例では、ネットライン１２０６では、その終点が排他的領域の端部にあることを条件に経路が規定される。
【００４４】
トレースが互いに接近し過ぎている場合は、間隔違反が生じる。（上述のコンフリクト検査及び解決手段参照。）間隔違反は、２つのセクションの境界に沿って又は排他的領域内で生じる傾向にある。図１３に示されるように、２つのセクションの境界に沿って生じる間隔違反に対処する１つの方法は、その境界に沿う（上述の）境界領域幅１３００，１３０２を設けることである。境界領域幅は、その境界に沿うオブジェクト間で適切なゆとりを自動的に与え、潜在的な間隔違反に遭遇せずに、排他的領域の端部に対する設計をユーザが行ない得るようにする。
【００４５】
配置規則に対する、当該技術分野で周知の及びここに説明されなかった他の様々な可能な手法が存在する。ここに与えられた例は、説明目的のみのためであり、本発明の例が限定されるものであることを意図しない。
［フローチャート］
図１４は、上述したような本発明の一般的実施例による方法を示すフローチャートである。それはブロック１４００から始まり、ブロック１４０２に続き、主設計内容が複数のクライアントに表示される。一実施例では、各クライアントはサーバデータベースから主設計内容を閲覧する。他の実施例では、各クライアントは、クライアント自身のメモリ空間内で主設計内容の複製を保持する。
【００４６】
ブロック１４０４において、１つ又はそれ以上の編集要求が複数のユーザから受信される。ブロック１４０６において、ある編集要求が処理される。一実施例では、必要であるならば、サーバコンフリクト検査及び解決のために編集要求をサーバに送信するのに先立って、編集要求をクライアントコンフリクト検査及び解決手段に委ねることで、編集要求が処理される。他の実施例では、編集要求は、サーバコンフリクト検査及び解決のためにサーバに直接的に送信される。
【００４７】
ブロック１４０８では、編集要求が受け入れられるか否かが判別される。編集要求がコンフリクト検査及び解決手段を通過すると、それは受け入れられる。そうでなければ、編集要求は拒否される。編集要求が受け入れられると、ブロック１４１２において、主設計内容が更新され、ブロック１４１４にてクライアントは主設計内容に同期させされる。編集要求が拒否されると、ブロック１４１０にて該当するクライアントにエラーとして報告される。本方法はブロック１４１６にて終了する。
［むすび］
以上の説明では、本発明が特定の実施例を参照しながら説明された。しかしながら、本発明の広範な精神及び範囲から逸脱せずに、様々な修正及び変形がそれらになされ得ることは明白であろう。従って、本説明及び図面は、限定的な意味ではなく例示として取り扱われるべきである。
【００４８】
例えば、主設計内容１１６は複数領域に区分化され、それらの領域は、共用される及び排他的な領域双方がセクションを形成するように、共用的な又は排他的なものとして指定され得る。
【図面の簡単な説明】
【００４９】
【図１】主設計内容の個々の部分が複数ユーザにより検討される、ＰＣＢ設計に関する従来システムを示すブロック図である。
【図２】複数ユーザが編集対象の主設計内容への同時アクセスを行なう、本発明の一般的実施例を示すブロック図である。
【図３】本発明の一般的実施例を示す全体図である。
【図４】主設計内容の共用部分に対する同時編集アクセス権を複数ユーザに与えることによって同時アクセスが実現される、本発明の第１実施例を示すブロック図である。
【図５】本発明の一般的実施例によるクライアント及びサーバ間のやりとりを示す図である。
【図６】本発明の第１実施例によるクライアント及びサーバ間のやりとりを示す図である。
【図７】第１のコンフリクト回避法を示すブロック図である。
【図８】第２のコンフリクト回避法を示すブロック図である。
【図９】主設計内容の対応する部分に編集アクセス権を及び主設計内容の他の部分に読み取り専用アクセス権を複数ユーザに与えることによって同時アクセスが実現される、本願第２実施例を示すブロック図である。
【図１０】区分化を示すブロック図である。
【図１１】区分化された主設計内容を示すブロック図である。
【図１２】区分化が実行された場合のネットライン接続を示すブロック図である。
【図１３】ネットライン接続における境界領域幅を利用することを示すブロック図である。
【図１４】本発明の一般的実施例による方法を示すフローチャートである。
【図１】
2008059597.tif 000004
【図２】
2008059597.tif 000005
【図３】
2008059597.tif 000006
【図４】
2008059597.tif 000007
【図５】
2008059597.tif 000008
【図６】
2008059597.tif 000009
【図７】
2008059597.tif 000010
【図８】
2008059597.tif 000011
【図９】
2008059597.tif 000012
【図１０】
2008059597.tif 000013
【図１１】
2008059597.tif 000014
【図１２】
2008059597.tif 000015
【図１３】
2008059597.tif 000016
【図１４】
2008059597.tif 000017