(57)【要約】【課題】ユーザに、並列のプリント回路基板（ＰＣＢ）設計についての共有された環境を与える機構を提供することである。【解決手段】複数のユーザに、全体の設計への編集を見ることを可能としながら（１４０４）、設計を同時に編集することを可能とする方法及び装置が記載される。複数の排他的な領域を有する（プリント回路基板のような）設計は、複数のユーザに表示される（１４０２）。第１のユーザは、設計の対応する部分を払い出し、そして、設計を編集し（１４０６）、第２のユーザは、設計の対応する部分を払い出し、そして、設計を編集する第１のユーザと同時に、設計を編集する（１４０６）。【選択図】図１
2010123146.tif 000002
【特許請求の範囲】
【請求項１】
各々がクライアントに対応する複数のユーザへマスタ設計を表示する段階であって、前記マスタ設計はサーバの記憶手段に維持され、複数の排他的な領域を有し、各排他的な領域は前記複数のユーザの中の単一のユーザによる編集に利用可能である段階と、
前記複数のユーザの第１のユーザが、前記クライアント中の対応する第１のクライアントにおいて、前記複数の排他的な領域の中の第１の排他的な領域内で編集することを可能とする段階と、
第２のユーザが、前記クライアント中の対応する第２のクライアントにおいて、前記第１のユーザによる第１の排他的な領域内でなされた編集を前記第２のクライアントで見ながら前記複数の排他的な領域の中の第２の排他的な領域内で編集することを同時に可能とする段階とを有する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子設計自動化ツールの分野に関連し、そして、特に、ユーザに、並列のプリント回路基板（ＰＣＢ）設計についての共有された環境を与える機構に関連する。
【背景技術】
【０００２】
ＰＣＢは、ＰＣＢの機能が記号表現の論理図としてレアアウトされる配線略図として開始する。配線略図が完了すると、配線略図は、配線略図に詳細に示されたＰＣＢ機能を構成する物理的な構成要素の仮想のＰＣＢへ解釈され又は捕捉される。ＰＣＢ設計は、プリント回路基板の形式で電気回路を製造するために使用され得る。
【０００３】
ＰＣＢレイアウト処理中は、多くのユーザが仮想のＰＣＢを生成するために配線略図設計のために作業する。伝統的に、これは、設計分割機構を介して達成され、これにより、各ユーザは、ＰＣＢレイアウトへの編集を行うために設計の対応する（割当てられた）部分をチェックアウトすることができる。
【０００４】
編集が、基板の残りの部分への大部分の現在の編集にどのように影響するかをみるために、編集はオリジナルのデータベースへ合されて戻され、ここでマスタ設計が編集で更新される。しかしながら、このアプローチは、ユーザが、各個々により開かれている設計の領域のみをみることに制限されているように、制限的である。従って、ユーザは、ユーザの編集が行われながら、基板の残りの部分になされた編集を見ることができない。
【０００５】
更に、ＰＣＢ設計の完全性を維持しながら、ユーザがＰＣＢ設計の共有された領域で同時に作業することを可能とする機構は、現在は知られていない。
【０００６】
優先権の主張
本出願は、２００１年１２月１０日に出願された、米国仮出願番号６０／３４０，９６３の利益を主張する。この出願は、２００２年１０月１０日に同時に出願された、名称”並列電子設計自動化：共用された同時の編集”の米国特許出願番号にも関連する。
【０００７】
著作権の注意
本特許文書の開示の部分は、著作権保護を受ける資料を含みうる。それを行う範囲まで、著作権者は、特許商標庁の特許ファイル又は記録に現れる特許文書又は特許開示のいずれかのものによるファクシミリ複製へは異議はないが、しかし、その他は、どのようなものでも全ての著作権を保有する。以下の注意は、以下に記載の及び図面内のソフトウェア及びデータへ適用される：Ｃｏｐｙｒｉｇｈｔ（ｃ）２００２，Ｍｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ  Ｃｏｒｐ．，Ａｌｌ  Ｒｉｇｈｔｓ  Ｒｅｓｅｒｖｅｄ．
【発明の概要】
【課題を解決するための手段】
【０００８】
本発明の１つの面では、複数のユーザが、マスタ設計の排他的な領域内で、編集することを同時に可能とする方法である。この方法は、マスタ設計を表示し、第２のユーザが設計の対応する排他的な領域内で同時に編集することを可能としながら、第１のユーザが設計の対応する排他的な領域内で編集することを可能とする。
【発明を実施するための形態】
【０００９】
発明の詳細な説明
【００１０】
本発明は、添付の図面の図で、例により説明され、限定されるのではなく、そして、同様な参照符号は同様な構成要素を示す。
【００１１】
本発明の一面では、他のユーザによるＰＣＢ設計への編集を見ることをユーザに同時可能としながら、ＰＣＢ設計を編集することをそのユーザに可能とする方法である。一般的には、本方法は、複数のユーザにＰＣＢ設計を表示する。第１ユーザがＰＣＢ設計の任意の部分の編集を行いながら、第２ユーザが、マスタ設計の完全性を保持しながら、ＰＣＢ設計の任意の部分の編集を行う。本発明の一実施例では、任意の部分は重なっても良く、各ユーザがマスタ設計の共有された領域を編集することを可能とする。本発明の他の実施例では、各ユーザが、マスタ設計の、共有されていない、排他的な領域を編集するように、任意の部分は、相互に排他的である。
【００１２】
本発明は、種々の動作を有し、これを以下に説明する。本発明の動作は、ハードウェア構成要素により実行され又は機械実行可能な命令で実現され、これは、命令でプログラムされた汎用又は特別目的のプロセッサ又は論理回路にその動作を実行させるのに使用される。代わりに、動作はハードウェアとソフトウェアの組合せにより実行されてもよい。
【００１３】
本発明は、本発明に従った処理を実行するコンピュータ（又は他の電子装置）をプログラムするのに使用されうる、命令が記憶された機械読出し可能な媒体を含みうるコンピュータプログラムプロダクトとして提供されうる。機械読出し可能な媒体は、限定はされないが、フレキシブルディスケット、光ディスク、ＣＤ−ＲＯＭ（コンパクトディスク−読出し専用メモリ）、及び、光磁気ディスク、ＲＯＭ（読出し専用メモリ）、ＲＡＭ（ランダムアクセスメモリ）、ＥＰＲＯＭ（消去可能プログラマブル専用メモリ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブル専用メモリ）、磁気又は光カード、フラッシュメモリ、又は、電子的命令を記憶するのに適する他の形式の媒体／機械読出し可能な媒体を含む。
【００１４】
更に、本発明は、コンピュータプログラムプロダクトのとして、ダウンロードもされ得、プログラムは、遠隔コンピュータ（例えば、サーバ）から要求するコンピュータ（例えば、クライアント）へ、通信リンク（例えば、モデム又は、ネットワーク接続）を介した搬送波又は他の伝搬媒体で実現される、データ信号で伝送されうる。従って、搬送波は、機械読出し可能な媒体を含むとみなされる。
【００１５】
序説
プリント回路基板設計は、それが電気回路になる前に、多くの段階を推移する。仕様の組に従って、電気エンジニアは、記号を使用して回路の機能をマップする回路図を作成する。例えば、ジグザグ線が抵抗を表すのに使用される。この図は、配線略図と呼ばれる。
【００１６】
プリント回路基板を製造するために、配線略図をとりそして、それを部品と配線のパターンを作るアートワークの形式に変更することが必要であり、これはＰＣＢを製造するための写真画像技術で使用される。このアートワークは、ＰＣＢ設計と呼ばれ、ＰＣＢ設計についての作業をする者を以後、ユーザと呼ぶ。ユーザは、他のユーザと同時に、ＰＣＢを編集する設計者を含みうる。ユーザは、代わりに、自動配置ツール、シミュレーションツール、又は、配線略図により定義されたネットラインに従って、ＰＣＢ上の部品を自動的に配線する自動ルータのような、任意の自動化されたプログラムを含んでもよい。本発明の更に他の実施例では、ユーザは、設計者と自動化されたプログラムの両方を含みうる。この後者の実施例では、任意の１つ又はそれ以上のユーザは、基板を設計している設計者と同時に存在する自動化されたプログラムを含んでもよい。
【００１７】
図１は、ＰＣＢを設計する従来技術のシステムを示すブロック図である。このシステムは、複数のクライアント１０２、１０４、１０６とサーバ１００を含み、サーバ１００は、マスタＰＣＢ設計１１６（以後”マスタ設計”と呼ぶ）を記憶するデータベース１０８含み、各クライアント１０２、１０４、１０６は、そこに接続されたユーザへマスタ設計１１６への編集を要求することを可能とする。ここで、使用するようにマスタ設計は、ユーザにより編集されることが可能なＰＣＢ設計を指す。示された従来技術の下で、各ユーザは、作業するために、マスタ設計１１６の唯一の部分１１０、１１２、１１４を開く。ユーザはデータベース１０８からマスタ設計１１６の対応する部分１１０、１１２、１１４を開きそして、設計１１６の対応する部分１１０、１１２、１１４を編集する。しかしながら、ユーザは、他のユーザによりマスタ設計１１６にどんな編集がなされているか、及び、マスタ設計１１６の他の領域の編集がどのようにそのユーザに対応する領域に影響するかを見ることができない。例えば、クライアント１０２のユーザはマスタ設計の部分１１０を編集し且つそれのみを見る；クライアント１０４のユーザはマスタ設計の部分１１２を編集し且つそれのみを見る；クライアント１０６のユーザはマスタ設計の部分１１４を編集し且つそれのみを見る。
【００１８】
完了又は、ユーザの要求に際して、対応する部分１１０、１１２、１１４は、データベース１０８へチェックバック（check  back）されうる。後の時点で、ユーザは誰でもマスタ設計１１６の対応する部分１１０、１１２、１１４をチェックアウト（check  out）して、その時点までに全てのユーザによりなされて蓄積された全体の編集が、そのユーザの対応する部分にどのように影響するかを見ることができる。
【００１９】
図２は、本発明の一般的な実施例に従った並列ＰＣＢ設計のシステムを示すブロック図である。これは、複数のクライアント２０２、２０４、２０６、サーバ２００を含み、サーバ２００は、マスタ設計１１６を維持するデータベース２０８を有する。
【００２０】
各クライアント２０２、２０４、２０６は、ユーザが、他の者によりマスタ設計１１６になされた編集を見ながら、他の者と並行して、マスタ設計１１６への編集を要求することを可能とする。マスタ設計１１６は、サーバ２００により受諾されたクライアントからの編集要求を組み込み、蓄積されたマスタ設計とも呼ばれる、サーバ２００データベース２０８に関するバージョンを有する。マスタ設計２１６は、所定のクライアント２０２、２０４、２０６に関するユーザにより編集されたバージョンを含む。
【００２１】
ＰＣＢ設計が表示されるときに（即ち、マスタ設計２１６）、全体のＰＣＢ設計を含み得、又は、部分的なＰＣＢ設計を含みうる。例えば、マスタ設計１１６は、幾つかのユーザグループの間で分散され、そして、本発明の実施例は、所定のユーザグループについて、それらの部分のみが表示され、それにより部分的なＰＣＢ設計のみが表示されるように、各ユーザグループへ適用可能である。しかしながら、そのユーザグループに表示される部分は、ここに記載のような共有され且つ排他的な領域を有しうる。
【００２２】
クライアント２０６のユーザは、例えば、マスタ設計１１６への編集を要求しそして、編集要求はサーバ２００へ送信される。サーバ２００は編集要求を処理しそして、編集要求を受諾するか又はそれらを拒否するかのいずれかを行う。拒否された編集要求は、要求するクライアント２０６へ報告して戻される。受諾された編集要求は、マスタ設計１１６に適用される。クライアント２０２、２０４、２０６は、マスタ設計１１６と同期されることが可能である。
【００２３】
本発明の実施例では、並列のＰＣＢ設計は、編集をマスタ設計１１６に要求しながら、ユーザに、蓄積されたマスタ設計１１６を見る能力を与える。一実施例では、１ユーザは、マスタ設計１１６（共有されたＰＣＢ設計）を見ながら、他のユーザと、マスタ設計の共有された領域を同時に編集しうる。他の実施例では、１ユーザは、マスタ設計１１６を見ながら、マスタ設計１１６の共有されていない、排他的な領域を（分散されたＰＣＢ設計）、他のユーザと、同時に編集しうる。
【００２４】
編集要求は、１つ又はそれ以上のオブジェクトのリストと、特定のユーザによりなされる対応するコマンドを有する。オブジェクトは、例えば、経路、部品、線、ビア（ｖｉａｓ）、テキスト及び描画オブジェクト、を有し、そしてコマンドは、例えば、左へ移動、右へ移動、消去又は、追加を含む。
【００２５】
図３は、実体図を示す。これは、ｎのクライアント２０２、２０４及び２０６、及びサーバ２００を有する。蓄積されたマスタ設計はユーザへ表示される。所定のクライアント２０４に接続されたユーザは、マスタ設計を編集する編集要求３００をする。クライアント２０４が、（説明されるべき）衝突検査と解決３０２の資源を有する場合には、タスクはクライアントにより実行される。クライアント衝突検査と解決を通過する場合には、又は、クライアント衝突検査と解決がない場合には、編集要求３００は、サーバ３０４へ送られる。クライアント衝突検査と解決を通過しない場合には、編集要求は拒否されそして、他の編集要求３００がなされうる。
【００２６】
一旦、編集要求３００がサーバ３０４へ送られると、編集要求３００はサーバの要求キュー３０６に配置される。要求キューは、編集要求が最初に送られそして最初に処理されるＦＩＦＯ（ファースト−イン−ファースト−アウト）キュー又は、例えば、ある編集キュー（即ち、要求の形式又は、あるクライアントからの要求）に他の編集キューを超える所定の優先順位が与えられる、優先キューを有しうる。編集要求が結果的に、要求キューを離れるときには、（説明されるべき）サーバ衝突検査及び解決３０８は、編集要求で実行される。サーバ衝突検査及び解決を通過する場合には、編集は受諾されそしてマスタ設計は更新される３１０。クライアントは、そして、マスタ設計３１２と同期されることが可能である。
以下は、どのように編集が検出されるかの例を含む：
・ユーザがオブジェクトを移動するときには、ユーザはそれを選択し、それを移動し、そして、それを解放する。編集は一旦オブジェクトが解放されると検出される。
・ユーザがオブジェクトを消去するときには、ユーザはそれを選択し、そして、消去コマンドを選択する。消去コマンドが選択されたときに、編集が検出される。（消去コマンドは、多くの変形を包含する。例えば、消去ボタンが選択され得又は、消去されるべきオブジェクトは、リサイクルビンに配置されうる。）
・ユーザがオブジェクトを加えるときには、加えられるべきオブジェクトが選択され、マスタ設計上に配置されそして、解放される。編集は、加えられたオブジェクトが解放されるときに検出される。
・ユーザは、オブジェクト名とコマンドを送る。
【００２７】
共有されたＰＣＢ設計
本発明の一実施例では、共有された編集システムが図４に示され、複数のユーザ２０２、２０４、２０６が、ＰＣＢ設計１１６の共有された領域４１０を同時に編集し、ユーザの各々へ、ＰＣＢ設計への共有されたアクセスを与える。本発明の実施例では、共有された領域は、複数のユーザによりアクセスされ且つ編集されることが可能なマスタ設計の領域を含む。他方では、排他的な領域が分割されそして、個々のユーザへ割り当てられる。排他的な領域を、”分散されたＰＣＢ設計”と題するセクションで、更に詳細に説明する。
【００２８】
説明の目的のために、全体の基板は、クライアント２０２、２０４、２０６のユーザの各々が、以下に示すように、アクセス権を受ける、全体のマスタ設計１１６内のオブジェクトを同時に編集し且つ見ることができるような、共有された領域を有すると仮定する。共有された領域は、マスタ設計１１６が、共有された及び排他的な領域の両方を有するように、マスタ設計１１６の領域のサブセットを含みうることが、考えられる。この後者のシナリオでは、排他的な領域内のマスタ設計１１６への編集は、対応するクライアント衝突検査及び解決モジュールにより有効とされ、そして、共有された領域内のマスタ設計１１６への編集は、対応するクライアント衝突検査及び解決モジュール、サーバ衝突検査及び解決モジュール又は、両方により有効とされる。
【００２９】
図５では、クライアント２０２（１つのみ示されている）は、所定のユーザに対応し、そして、プロセッサ５００及び選択的なメモリ空間５０２を含む。サーバ２００は、プロセッサ５０４を同様に有する。１対１クライアント−サーバ及びユーザ−クライアント関係として示されているが、当業者には構成は、このようには限定されないことは理解されるべきである。任意の単一のクライアントは、単に、ユーザに、他のユーザと同時にマスタ設計１１６を編集することを可能とする入口であることは、理解されるべきである。更に、サーバ２００は、マスタ設計１１６への編集を調整し且つ管理する装置として理解されるべきである。
【００３０】
一実施例では、マスタ設計２１６は、シンクライアント（即ち、最小の処理資源を有するクライアント）のような、クライアントにマスタ設計１１６を含み、全ての編集要求は、サーバ２００へ送られる。この実施例では、サーバ２００は、説明されるべき、編集要求が受諾可能かどうかを決定するために、全ての衝突検査及び解決動作を実行する。
他の実施例では、マスタ設計２１６は、クライアントメモリ空間内にマスタ設計１１６のコピーを有する。この実施例では、衝突検査及び解決動作は、サーバ２００のプロセッサ５０４のみで、クライアント２０２によるプロセッサ５００単独で、実行され又は、所定のクライアント２０２、２０４、２０６とサーバ２００のそれぞれのプロセッサの間の種々の部分に分散されうる。これらは、以下に更に詳細に記載される。
【００３１】
アクセス権
本発明の一般的な実施例では、各ユーザは、他のユーザとマスタ設計の同じ面へアクセスし、割当て制限を受ける（”分散されたＰＣＢ設計”で以下に説明する）。一実施例では、全てのユーザは、同じアクセス権を有する。例えば、第１ユーザは、第２ユーザと同じオブジェクト及びコマンドへの編集を要求しうる。他の実施例では、各ユーザのアクセス権は異なる。例えば、第１ユーザは、部品への編集のみを要求しそして、第２ユーザは経路への編集のみを要求しうる。
【００３２】
衝突検査及び解決
編集要求が受信されるときには、衝突検査及び解決動作が、実行される。衝突検査は、１つ又はそれ以上の規則に違反する編集を防止するための検査を含む。設計規則は、設計が、製造欠陥の可能性を最小化するために、予め定められた組の規則を厳守することを保証する。設計規則検査器は、例えば、間隔違反、幾何学的違反、及び接続性違反を検査する。例えば、２つの線が間隔規則よりも近くに互いに隣りにあるときに、設計規則違反が発生する。
【００３３】
衝突解決は、衝突しうるがしかし解決されていない編集を検出することを含む。例えば、２つの線が非常に近く設計規則に違反する場合には、１つの線が衝突を解決するために移動されうる。
【００３４】
図６に示されたように、クライアント衝突検査及び解決及びサーバ衝突検査及び解決は、共存し又は、分離して存在しうる。それらが共存する場合には、クライアント２０２のクライアント衝突検査及び解決モジュール６００は、クライアントのマスタ設計２１６が任意の衝突を有するかを決定する。衝突がある場合には、衝突が解決されることが可能であるかどうかを決定する。
【００３５】
衝突を解決できる場合には、又は、衝突がない場合には、サーバのマスタ設計１１６とともに任意の衝突が存在するかどうかを決定するために、クライアント衝突検査及び解決モジュール６００は、編集要求を、サーバ２００のサーバ衝突検査及び解決モジュール６０２へ送る。
【００３６】
衝突が存在する場合には、サーバ衝突検査及び解決モジュール６０２は衝突が解決され得るかどうかを決定する。衝突がない場合には、編集要求は、受諾されそして、サーバ１００の併合ユニット６０４は、編集要求をマスタ設計データ構造へ適用する。
【００３７】
サーバ２００の同期化器６０６は、１つ又はそれ以上のクライアント２０２、２０４、２０６を、蓄積されたマスタ設計１１６と同期させる。同期化は例えば、クライアントからの要求でマスタ設計１１６を単一クライアントへ送り；複数クライアントからの要求により全ての又は複数のクライアントへマスタ設計１１６を同報通信し；マスタ設計の更新で、サーバ２００の更新されたマスタ設計データ構造１１６についてクライアント２０２、２０４、２０６の各々上のマスタ設計データ構造２１６のクライアントコピーを自動的に交換し；又は、マスタ設計１１６の更新でクライアント２０２、２０４、２０６の表示を自動的に更新する、ことを含む。もちろん、これらの例は網羅的なリストを含まない。
【００３８】
衝突検査及び解決が別に存在するときには、サーバは全ての衝突検査及び解決を実行するか又は、各クライアントが全ての衝突検査及び解決を実行するかのいずれかである。例えば、クライアントがシンクライアント（即ち、最小の処理資源を有するクライアント）のときに、サーバは、全ての衝突検査及び解決動作を実行し、そして、クライアントのマスタ設計２１６はマスタ設計１１６を含み、編集要求はサーバ２００へ送信される。例えば、（分散されたＰＣＢ設計で説明される）編集中にクライアント間衝突が発生しないように、マスタ設計が分割されそして個々のユーザに割当てられるときに、クライアントは、全ての衝突検査及び解決を実行しうる。この後者のシナリオでは、編集はそれぞれの排他的な領域で行われ、それらの編集がなされた後に更に任意の衝突が存在する場合には（残留衝突）、サーバは、衝突検査及び解決動作を実行しうる。しかしながら、編集が適用された後に、残留衝突が処理されるので、これは必要ない。
【００３９】
サーバが、クライアントと協働して又は別に、衝突検査及び解決を実行するときには、サーバは作業負荷を最小化するために、最適化関数を実行しうる。例えば、どのクライアントが併合された前の編集要求を行ったかを追跡しそれにより、次の編集要求が同じクライアントから来る場合には、サーバは、ある衝突検査及び解決機能を除去することができることを知っている。
【００４０】
衝突防止
第１の場所で衝突が発生することを防止するために、幾つかの衝突防止機構が使用されうる。衝突を防止するのに使用されうる１つの機構は、図７に示された保護境界の使用である。保護境界７００は、ユーザが、特定のユーザについて領域を一時的に保持するユーザの作業場所の周りに保護境界を引くことを可能とする。保護境界は、全てのクライアントへ同報通信され、そして、ユーザが、衝突に出会うことなしにマスタ設計を編集することを可能とする。保護境界は、ユーザの要求で除去されうる。他のユーザが、保護境界に含まれる領域内で編集をしようとする場合には、衝突検査器がそれを防止し、そして、それをエラーとして、編集がなされようとしているクライアントに報告する。
【００４１】
図８に示されたように、衝突を防止する他の機構は、作業領域の周りに合理的な隙間を自動的に提供するための、ユーザの作業領域に沿った、強制フィールド幅８００，８０２の使用である。一実施例では、ユーザの作業領域は、カーソルを含み、カーソルの周りの領域へ強制フィールド幅が適用される。他の実施例では、作業領域は、カーソルに最も近いオブジェクトを含み、強制フィールド幅はこのオブジェクトの周りの領域に適用される。他のユーザが、強制フィールドにより保護されている作業領域の境界内で編集しようとする場合には、衝突検査器がそれを防止し、そして、それをエラーとして、編集がなされようとしているクライアントに報告する。
【００４２】
使用されうる他の機構は、オブジェクトロッキングである。オブジェクトロッキングは、ロッキング動作を実行するクライアントについて確保しそして、他のユーザにより編集できないとして、オブジェクトにマークをフクすることを必要とする。衝突防止に使用され得る更なる他の機構は、自動ルータへのネットラインの割当てである。自動ルータへのネットラインの割当ては、１つの自動ルータが同じネットラインを異なって配線（ｒｏｕｔｉｎｇ）することを防止する。
【００４３】
分散されたＰＣＢ設計
図９は、本発明の他の実施例に従った、分散された編集システムのブロック図である。このシステムは、複数のクライアント２０２、２０４、２０６及び、マスタ設計１１６を記憶するデータベース２０８を有するサーバ２００を含む。マスタ設計は、排他的な領域９１０，９１２，９１４を含み、各排他的な領域９１０，９１２，９１４は、全てのユーザにより見られうるがしかし、単一のユーザによって編集される。
【００４４】
従来技術のシステムのように、各ユーザは、作業するために、マスタ設計１１６の唯一の部分９１０，９１２，９１４が割当てられる。しかしながら、従来技術のシステムと異なり、ユーザは、ユーザがセッションを編集するのと同時に他のユーザにより実行される設計の他の部分への編集を見ることができる。例えば、排他的な領域９１０は、クライアント２０２のユーザが排他的な領域９１０を編集しうるように、クライアント２０２のユーザに対応しうる。クライアント２０２のユーザは、排他的な領域９１０を編集でき、そして、蓄積されたマスタ設計を見るために排他的な領域９１２，９１４を見ることもできる。
【００４５】
分割
分割は、設計を複数の領域へ分離する処理である。分割された領域は、そして、１人のみの割当てられたユーザがその領域を編集するように、ユーザに割当てられる。排他的な領域へ割当られようとしている所定のユーザに関する排他的な領域は、その所定のユーザによってのみ編集されることが可能である。任意の他のユーザに関する排他的な領域は、他のユーザにより見られるのみ（即ち、読出し専用）である。
【００４６】
領域境界は任意でありそして、配線略図境界には拘束されない。分割は、多角形を生成する特定の描画ツールにより実行されそして、名称、所有者等のような属性を各排他的な領域に割当てることができる。
【００４７】
本発明の実施例では、設計の所有者は、設計を複数の部分に分割する。例えば、図１０に示されたように、弧１０００と線１００２は、設計１１６の単一のレイヤ１００４を又は、設計１１６の複数のレイヤ１００６を分割するのに使用されうる。部分は領域の形式（即ち、円、矩形、多角形）を規定し；１つ又はそれ以上のレイヤをその領域に割当て；そして、その部分を割当てることにより、定義されうる。各部分は、そして、単一のユーザにより編集するために利用可能である。設計の所有者は、ユーザでもよい。
【００４８】
部分がユーザに割当てられるときに、その部分は排他的な領域となる。排他的な領域は、他のユーザにより編集するために利用可能ではないが、しかし、他のユーザにより見るためには利用可能である。排他的な領域は、明確に割当てられ、それにより設計の所有者は、特定のユーザへ所定の領域を特に割当て、又は、排他的な領域は、暗示的に割当てられ、それにより明確に割当てられていない領域は省略時設定により設計の所有者へ割当てられる。代わりに、各領域は、任意の名称が割当てられ、そしてユーザは要求により排他的な領域をチェックアウト（check  out）することにより領域を確保しうる。
【００４９】
説明のために、全体の基板は、前述のアクセス権を受ける、蓄積されたマスタ設計１１６を見ながら、クライアント２０２、２０４、２０６のユーザが割当てられた領域を同時に編集できるように、排他的である、と仮定される。排他的な領域は、マスタ設計１１６が共有された及び排他的な領域を含むように、マスタ設計１１６上に領域のサブセットを有する、と考えられる。この後者のシナリオでは、排他的な領域でのマスタ設計１１６への編集は、対応するクライアント衝突検査及び解決モジュールにより有効化され；そして共有された領域でのマスタ設計１１６への編集は、対応するクライアント衝突検査及び解決モジュール、サーバ衝突検査及び解決モジュール又は、両者により有効化されうる。
【００５０】
編集
図１１に示されたように、ユーザが設計１１６を開くときに、もしあれば共有された領域と共に、ユーザ１１００に対応する全ての部分（即ち、ユーザに割当てられた又はユーザによりチェックアウトされた排他的な領域）は、編集のためにそのユーザに利用可能であり、そして、全ての他の非対応の、排他的な領域１１０２、１１０４は、見るために利用可能である。本発明の実施例では、ユーザは、その部分のみを表示しそして、特定のユーザについての排他的な領域の内側を配線する選択を与えられる。ＰＣＢオブジェクト、描画オブジェクト及びネットラインのような他の項目は、標準的に表示されうる。
【００５１】
対応する排他的な領域内の任意のオブジェクトは、編集について利用可能であり、そして、対応する排他的な領域の外側の任意のオブジェクトは、ロックされそして、編集に利用可能でないが、読み出し専用である。オブジェクトは、限定はされないが、経路、部品、線、ビア（ｖｉａｓ）、テキスト及び描画オブジェクトを含む。
【００５２】
配置規則
配置規則は、部分の設計中に起りうる衝突を防止するのに役立つ。例えば、排他的な領域はレイヤ制限を有しうるので、ビア、スルーホールピン、又は部分が複数の排他的な領域内に存在することが可能である。複数の領域内にある任意のオブジェクトは、ロックされるべきである。（異なるユーザへ割当てられた複数のレイヤ上に存在することにより）複数の領域を横切るオブジェクトは、追加されることが防止されるべきである。
【００５３】
更に、図１２に示されたように（領域１２１０は排他的な領域と仮定すると）、排他的な領域内で開始し排他的な領域内で終了するネットライン１２００、１２０２は、完全に配線され；、排他的な領域内で開始するが排他的な領域外で終了するネットライン１２０４は、排他的な領域のエッジまで配線される。一旦ネットラインが１つの排他的な領域のエッジへ配線されると、隣接する排他的な領域の所有者（又は、それが共有された領域ならば、他のユーザ）は、それら自身の領域内でネットラインを配線することを継続する。排他的な領域内で開始せずそして終了しないネットライン１２０６は、配線することから制限され、又は、制限内で配線されうる。この例では、ネットライン１２０６は、その終了点が排他的な領域のエッジにある場合には、配線される。
【００５４】
間隔違反は、線が互いに非常に近すぎて配置されるときに、発生しうる。（上述の衝突検査及び解決を参照する）。間隔違反は、２つの部分の境界にそって又は、排他的な領域内で、発生しそうである。図１３に示されたように、２つの部分の境界にそって発生する間隔違反を扱う１つの方法は、境界に沿って（前述の）強制フィールド幅１３００，１３０２を許すことである。強制フィールド幅は、境界に沿ったオブジェクト間に合理的な隙間を提供し、そして、潜在的な間隔違反に直面することなしに、ユーザが排他的な領域のエッジへ設計することを可能とする。
【００５５】
技術的に良く知られている配置規則についての種々の他の可能性がありそして、ここでは更に説明はしない。提供された例は、説明の目的のためのみであり、本発明の実施例に限定することは意図していない。
【００５６】
フローチャート
図１４は、上述の本発明の一般的な実施例に従った方法を示すフローチャートである。フローチャートは、ブロック１４００で開始し、そして、ブロック１４０２に続き、ここで、複数のクライアントへ、マスタ設計が表示される。一実施例では、各クライアントは、サーバデータベースからマスタ設計を見る。他の実施例では、各クライアントは、クライアント自身のメモリ空間内にマスタ設計のコピーを維持する。
【００５７】
ブロック１４０４で、１つ又はそれ以上の編集要求が複数のユーザから受信される。ブロック１４０６で、所定の編集要求が処理される。一実施例では、編集要求は、必要なら、サーバ衝突検査及び解決のためにサーバに編集要求を送る前に、クライアント衝突検査及び解決への編集要求を受けることにより処理される。他の実施例では、編集要求は、サーバ衝突検査及び解決のためにサーバへ直接的に送られる。
【００５８】
ブロック１４０８で、編集要求が受諾されたかどうかが決定される。編集要求が衝突検査及び解決を通過する場合には、それは受諾される。そのようでなければ、編集要求は拒否される。編集要求が受諾される場合には、ブロック１４１２で、マスタ設計が更新され、そして、クライアントは、ブロック１４１４でマスタ設計と同期される。編集要求が拒否される場合には、ブロック１４１０で適切なクライアントへエラーとして報告される。この方法は、ブロック１４１６で終了する。
【００５９】
結論
前述の明細書では、本発明を、特定の実施例を参照して記載した。しかしながら、種々の修正と変更が、本発明の精神と範囲から離れることなしに、それになされうることは、明らかである。明細書と図面は、従って、限定する意味ではなく、説明するためあるとみなされる。
【００６０】
例えば、マスタ設計１１６は領域に分割され、そしてその領域は、共有され及び排他的な領域の両方が、部分を含むように、共有され又は排他的であると指定されうる。
【図面の簡単な説明】
【００６１】
【図１】ＰＣＢ設計の従来技術のシステムを示すブロック図であり、マスタ設計の個々の部分はユーザによりチェックアウトされる。
【図２】本発明の一般的な実施例を示すブロック図であり、ユーザは編集のためにマスタ設計への並行するアクセスを与えられる。
【図３】本発明の一般的な実施例を示す実体図である。
【図４】マスタ設計の共有された領域への同時の編集アクセスをユーザへ与えることにより、並行するアクセスが実行される、本発明の第１の実施例を示すブロック図である。
【図５】本発明の一般的な実施例に従って、クライアントとサーバの間の相互動作を示す実体図である。
【図６】本発明の第１の実施例に従って、クライアントとサーバの間の相互動作を示す実体図である。
【図７】第１の衝突防止機構を示すブロック図である。
【図８】第２の衝突防止機構を示すブロック図である。
【図９】マスタ設計の対応する領域への編集アクセスを及びマスタ設計の他の領域への読出し専用アクセスをユーザへ与えることにより並行するアクセスが実行される、本発明の第２の実施例を示すブロック図である。
【図１０】分割を示すブロック図である。
【図１１】分割されたマスタ設計を示すブロック図である。
【図１２】分割が実行されるときにネットラインの接続性を示すブロック図である。
【図１３】ネットラインの接続性の強制フィールド幅の使用を示すブロック図である。
【図１４】本発明の一般的な実施例に従った方法を示すフローチャートである。
【図１】
2010123146.tif 000003
【図２】
2010123146.tif 000004
【図３】
2010123146.tif 000005
【図４】
2010123146.tif 000006
【図５】
2010123146.tif 000007
【図６】
2010123146.tif 000008
【図７】
2010123146.tif 000009
【図８】
2010123146.tif 000010
【図９】
2010123146.tif 000011
【図１０】
2010123146.tif 000012
【図１１】
2010123146.tif 000013
【図１２】
2010123146.tif 000014
【図１３】
2010123146.tif 000015
【図１４】
2010123146.tif 000016