(57)【要約】【課題】提案されている手法は、複数のデータストアについて集積回路（ＩＣ）設計情報を管理するための方法およびシステムを含む。【解決手段】各データストアは、セクションに分割され、より大きなデータセットが比較されることを可能にする。複数のデータストア間でオブジェクトが追加、削除、または修正されているかどうか決定するために、またオブジェクトの相違を決定するために、各データセット内のオブジェクトに鍵が割り当てられる。ユーザは、グラフィカルな手法またはテキストベースの手法を使用してデータストア間の相違を比較およびマージする。提案されている手法は、より大きなデータベースにとってについて非常に効率的かつ正確である。提案されている手法は、ユーザが複雑なデータベース内の相違を容易に可視化すること、また所望の変更を容易にマージすることを可能にする。【選択図】図２Ａ
2015079493.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）設計情報を管理するための、コンピュータによって実施される方法であって、
第１のデータストア内で対象ＩＣ設計情報の第１のバージョンを表現するステップと、
第２のデータストア内で前記対象ＩＣ設計情報の第２のバージョンを表現するステップと、
前記第１のデータストアを複数のセクションに分割するステップであって、各セクションは前記第１のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する、該ステップと、
前記第２のデータストアを前記第１のデータストアの前記複数のセクションに対応するセクションに分割するステップであって、前記第２のデータストアの各セクションは前記第２のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する、該ステップと、
各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てるステップであって、前記鍵の割当ては、
（ａ）同じ鍵が、
（ｉ）前記第１のデータストア内のセクション内の対象オブジェクトと、
（ｉｉ）前記第１のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第２のデータストア内の対応するセクション内のオブジェクトとに割り当てられ、
（ｂ）それぞれの鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられるという結果になる、該ステップと、
各所与のセクションについて、前記第１のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第２のデータストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第１の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するステップと、
前記第１のデータストア内の各所与のオブジェクト、および前記第２のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、１または複数のオブジェクトの相違を決定する第２の比較を実施するステップと、
前記第１の比較および前記第２の比較の結果に基づいて、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンと前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンとの間の１または複数の相違を提示するステップと
を備えたことを特徴とする方法。
【請求項２】
エンドユーザが前記１または複数の相違のうちの少なくとも１つの相違セットを選択することを可能にするステップと、
前記エンドユーザが前記選択された相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にするステップと
をさらに備えたことを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項３】
前記１または複数の相違がテキストによるフォーマットでエンドユーザに提示されることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項４】
前記１または複数の相違がグラフィカル表現上で各相違を強調表示することによってエンドユーザに提示されることを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項５】
各オブジェクトに鍵を割り当てるステップは、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てるステップを含むことを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項６】
先祖データストア内の前記対象ＩＣ設計情報の先祖バージョンを表現するステップであって、前記第１のバージョンおよび前記第２のバージョンは、前記先祖バージョンからのものである、該ステップと、
前記先祖データストアを、前記第１のデータストアおよび前記第２のデータストアのうちの前記複数のセクションに対応するセクションに分割するステップであって、前記先祖データストアの各セクションは、前記先祖バージョン内の前記ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する、該ステップと、
前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当てるステップであって、前記先祖データストアの各セクションについて、
（１）同じ鍵が、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第１のデータストアおよび前記第２のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、および、
（２）それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられるという結果になる、該ステップと、
各所与のセクションについて、前記第１のデータストアおよび前記第２のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第３の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するステップと、
前記第１のデータストアおよび前記第２のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、１または複数のそれぞれのオブジェクトの相違を決定する第４の比較を実施するステップと、
前記第３の比較および前記第４の比較の結果に基づいて、前記先祖データストア内の前記対象ＩＣ設計情報の前記先祖バージョンと、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンおよび前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンのうちの少なくとも１つとの間の少なくとも１つの相違を提示するステップと、
エンドユーザが前記少なくとも１つの相違のうちの少なくとも１つの、それぞれの相違セットを選択することを可能にするステップと、
前記エンドユーザが前記選択されたそれぞれの相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にするステップと
をさらに備えたことを特徴とする請求項１に記載のコンピュータによって実施される方法。
【請求項７】
集積回路（ＩＣ）設計情報を管理するための、コンピュータによって実施されるシステムであって、
第１のデータストア内で対象ＩＣ設計情報の第１のバージョンを表現するように構成されたデータモジュールであって、
前記データモジュールは第２のデータストア内で前記対象ＩＣ設計情報の第２のバージョンを表現するようにさらに構成された、該データモジュールと、
前記第１のデータストアを複数のセクションに分割するように構成された分割モジュールであって、各セクションは前記第１のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持し、
前記分割モジュールは、前記第２のデータストアを前記第１のデータストアの前記複数のセクションに対応するセクションに分割するようにさらに構成され、前記第２のデータストアの各セクションは前記第２のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する、該分割モジュールと、
各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てるように構成された制御モジュールであって、前記制御モジュールによる鍵の割当ては、
（ａ）同じ鍵が、制御モジュールによって、
（ｉ）前記第１のデータストア内のセクション内の対象オブジェクトと、
（ｉｉ）前記第１のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第２のデータストア内の対応するセクション内のオブジェクトとに割り当てられ、および、
（ｂ）それぞれの鍵が、前記制御モジュールによって、別途制御モジュールによって鍵が割り当てられていない各オブジェクトに割り当てられるという結果になり、
前記制御モジュールは、各所与のセクションについて、前記第１のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第２のデータストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第１の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成され、
前記制御モジュールは、前記第１のデータストア内の各所与のオブジェクト、および前記第２のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、１または複数のオブジェクトの相違を決定する第２の比較を実施するようにさらに構成された、該制御モジュールと、
前記第１の比較および前記第２の比較の結果に基づいて、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンと前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンとの間の１または複数の相違を提示するように構成された表示モジュールと
を備えたことを特徴とするシステム。
【請求項８】
前記制御モジュールは、エンドユーザが前記１または複数の相違のうちの少なくとも１つの相違セットを選択することを可能にするようにさらに構成され、
前記制御モジュールは、前記エンドユーザが前記選択された相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にするようにさらに構成されたことを特徴とする請求項７に記載のコンピュータによって実施されるシステム。
【請求項９】
前記表示モジュールは、前記１または複数の相違をテキストによるフォーマットでエンドユーザに提示するようにさらに構成されたことを特徴とする請求項７に記載のコンピュータによって実施されるシステム。
【請求項１０】
前記表示モジュールは、前記１または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示するようにさらに構成されたことを特徴とする請求項７に記載のコンピュータによって実施されるシステム。
【請求項１１】
前記制御モジュールは、各オブジェクトに鍵を割り当てるようにさらに構成され、前記制御モジュールは、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てることを特徴とする請求項７に記載のコンピュータによって実施されるシステム。
【請求項１２】
前記データモジュールは、先祖データストア内の前記対象ＩＣ設計情報の先祖バージョンを表現するようにさらに構成され、前記第１のバージョンおよび前記第２のバージョンは、前記先祖バージョンからのものであり、
前記分割モジュールは、前記先祖データストアを、前記第１のデータストアおよび前記第２のデータストアのうちの前記複数のセクションに対応するセクションに分割するようにさらに構成され、前記先祖データストアの各セクションは前記先祖バージョン内の前記ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持し、
前記制御モジュールは、前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当て、前記先祖データストアの各セクションについて、
（１）同じ鍵が、前記制御モジュールによって、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第１のデータストアおよび前記第２のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、および、
（２）それぞれの鍵が、前記制御モジュールによって、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられるという結果になり、
前記制御モジュールは、各所与のセクションについて、前記第１のデータストアおよび前記第２のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第３の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成され、
前記制御モジュールは、前記第１のデータストアおよび前記第２のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第４の比較を実施するようにさらに構成され、該さらなる比較は１または複数のそれぞれのオブジェクトの相違を決定し、
前記表示モジュールは、第３の比較および第４の比較の結果に基づいて、前記先祖データストア内の前記対象ＩＣ設計情報の前記先祖バージョンと、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンおよび前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンのうちの少なくとも１つとの間の少なくとも１つの相違を提示するようにさらに構成され、
前記制御モジュールは、エンドユーザが前記少なくとも１つの相違うちの少なくとも１つの、それぞれの相違セットを選択することを可能にするようにさらに構成され、
前記制御モジュールは、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にするようにさらに構成されたことを特徴とする請求項７に記載のコンピュータによって実施されるシステム。
【請求項１３】
命令のシーケンスを記憶している非一時的なコンピュータ可読媒体であって、前記命令は、装置に結合されたプロセッサによってロードおよび実行されたとき、前記装置に、
第１のデータストア内で対象ＩＣ設計情報の第１のバージョンを表現させ、
第２のデータストア内で前記対象ＩＣ設計情報の第２のバージョンを表現させ、
前記第１のデータストアを複数のセクションに分割させ、各セクションは、前記第１のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持し、
前記第２のデータストアを前記第１のデータストアの前記複数のセクションに対応するセクションに分割させ、前記第２のデータストアの各セクションは、前記第２のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持し、
各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てさせ、鍵の割当ては、
（ａ）同じ鍵が、
（ｉ）前記第１のデータストア内のセクション内の対象オブジェクトと、
（ｉｉ）前記第１のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第２のデータストア内の対応するセクション内のオブジェクトとに割り当てられ、および
（ｂ）それぞれの鍵が別途鍵が割り当てられていない各オブジェクトに割り当てられという結果になり、
各所与のセクションについて、前記第１のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第２のデータストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第１の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定させ、
前記第１のデータストア内の各所与のオブジェクト、および前記第２のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、１または複数のオブジェクトの相違を決定する第２の比較を実施させ、
前記第１の比較および前記第２の比較の結果に基づいて、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンと前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンとの間の１または複数の相違を提示させることを特徴とする非一時的なコンピュータ可読媒体。
【請求項１４】
さらに前記装置に、
エンドユーザが前記１または複数の相違のうちの少なくとも１つの相違セットを選択することを可能にさせ、
前記エンドユーザが前記選択された相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にさせることを特徴とする請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１５】
さらに前記装置に、前記１または複数の相違をテキストによるフォーマットでエンドユーザに提示させることを特徴とする請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１６】
さらに前記装置に、前記１または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示させることを特徴とする請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
さらに前記装置に、各オブジェクトに鍵を割り当てさせ、前記装置は、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てることを特徴とする請求項１３に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
さらに前記装置に、
先祖データストア内の前記対象ＩＣ設計情報の先祖バージョンを表現させ、前記第１のバージョンおよび前記第２のバージョンは、前記先祖バージョンからのものであり、
前記先祖データストアを前記第１のデータストアおよび前記第２のデータストアのうちの前記複数のセクションに対応するセクションに分割させ、前記先祖データストアの各セクションは前記先祖バージョン内の前記ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持し、
前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当てさせ、前記先祖データストアの各セクションについて、
（１）同じ鍵が、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第１のデータストアおよび前記第２のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、および、
（２）それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられるという結果になり、
各所与のセクションについて、前記第１のデータストアおよび前記第２のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づいて、第３の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定させ、
前記第１のデータストアおよび前記第２のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第４の比較を実施させ、前記第４の比較は１または複数のそれぞれのオブジェクトの相違を決定し、
前記第３の比較および前記第４の比較の結果に基づいて、前記先祖データストア内の前記対象ＩＣ設計情報の前記先祖バージョンと、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンおよび前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンのうちの少なくとも１つとの間の少なくとも１つの相違を提示させ、
エンドユーザが前記少なくとも１つの相違うちの少なくとも１つの、それぞれの相違セットを選択することを可能にさせ、
前記エンドユーザが前記選択されたそれぞれの相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にさせることを特徴とする請求項１３に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣ設計データの比較およびマージングを行うための方法およびシステムに関する。
【背景技術】
【０００２】
関連出願
本願は、２０１３年９月２５日に出願された米国特許出願第１４／０３６，７３４号明細書の継続出願であり、その優先権を主張する。上記出願の教示全体を参照により本明細書に組み込む。
【０００３】
どのようなデータも時間の経過と共に発展するにつれて、そのデータの複数のバージョンが、おそらくは複数の人が別々のコピーに働きかけることによって（データファイル、データベース、またはデータストアとして）生成される。様々なときに、データの異なるバージョンを比較すること、おそらくはデータの異なるバージョンのそれぞれに対する異なる編集によってなされた変更を「マージ」することが望ましい。
【０００４】
単純な文書など１または複数の「テキスト」ファイルの形態にあるデータ用には、どのような変更がなされたか識別するために、またそれらの変更を組み合わせるためのインターフェースを提供するために、様々なアルゴリズムを使用して、多数のツールが開発されている。これらのアルゴリズムのすべてが、一般に同一の、または異なるファイル「領域」を識別することによって動作する。これらの「領域」は、ファイルの１または複数の行の形態をとる。相違が識別された後で、マージングは、通常、ソースファイルによりよく合致するように、単純に行を追加する、および／または「結果」ファイルから行を除去することを必要とする。
【０００５】
集積回路（ＩＣ）設計環境では、ＩＣデータは、一般に単純な「テキスト」ファイルの形態をとらず、１または複数のバイナリファイル、データストア、データライブラリ、または他のタイプのＩＣデータなど「データベース」の形態にある。ＩＣデータは、様々な異なる「プロパティ」を有する様々なタイプの（非常に）多数の「オブジェクト」を含む。その性質上、「テキスト」ファイルとは対照的に、ＩＣ設計はしばしば３次元であり、複数のレイヤ（たとえば、ｍｅｔａｌ１、ｍｅｔａｌ２、およびｍｅｔａｌ３）を有し、これは記憶されることを必要とする「オブジェクト」の数をさらに増大する。ユーザは、一般に、グラフィカルな設計ツールを使用することを通じてそのようなＩＣデータとインタラクションする。したがって、標準的なテキストファイルデータ管理を超えるＩＣ用のそのような複雑なデータを管理するための手法が求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そのような複雑なデータを管理するための手法として、複数のデータストアについて集積回路（ＩＣ）設計情報を管理するための方法およびシステムを含み、ＩＣ設計データの比較およびマージングを行うための改善された方法およびシステムを提供する。
【課題を解決するための手段】
【０００７】
提案されている手法は、複数のデータストアについて集積回路（ＩＣ）設計情報を管理するための方法およびシステムを含む。各データストアは、セクションに分割され、より大きなデータセットが比較されることを可能にする。複数のデータストア間でオブジェクトが追加、削除、または修正されているかどうか決定するために、またオブジェクトの相違を決定するために、各データセット内のオブジェクトに鍵が割り当てられる。ユーザは、グラフィカルな手法またはテキストベースの手法を使用してデータストア間の相違を比較およびマージする。提案されている手法は、より大きなデータベースにとってについて非常に効率的かつ正確である。提案されている手法は、ユーザが複雑なデータベース内の相違を容易に可視化すること、また所望の変更を容易にマージすることを可能にする。
【０００８】
データベース（あるいはデータストア、ジェネリックデータストア、１または複数のバイナリファイル、データライブラリ、または他のタイプのファイルもしくはデータストレージ）に対するテキストファイルの比較およびマージのために既存の解決策を適用することは、少なくとも以下の４つの主な理由で非常に難しい。
【０００９】
第１に、「行」の単純な「線形」比較は、「オブジェクト」が必ずしも一貫した手法で「順序付け」られないデータベースには移行されない。データベースオブジェクトが位置座標を有している場合でさえ、比較は、これらに基づかないことが好ましい。なぜなら、オブジェクトが位置を変えることが一般的であり、これは正しく識別されることを必要とするからである（そして、たとえば、そのオブジェクトが削除されおよび新しいオブジェクトが追加されたときは識別されない）。
【００１０】
第２に、「同じ」であるが「修正されている」オブジェクトがデータベース内にある。ファイルの２行が同じに見えるが、異なる１つまたは２つの文字を有するのと同じように、データベース内では、同じであるがいくつかの「プロパティ」が異なる２つのオブジェクトがある。テキスト比較では、そのような場合は行全体が異なるかのように処理されてもよいが、データベースでは、これは非常に非効率的なものになる。
【００１１】
第３に、比較のための設計データベースのサイズは、一般に、テキストファイルより数桁大きい。たとえば、数千行のテキストファイルを比較／マージすることは「無理なく」予想されるが、数十万オブジェクトを含むデータベースを比較／マージすることはほとんどない。
【００１２】
第４に、データベース内の２つのオブジェクトの「相違」を識別するために必要とされるステップは、テキストの２行を単純に比較し、一方の行を他方の行で置き換えることよりはるかに複雑である。実際、データベースについては、異なるように処理されることを必要とする多くのタイプのオブジェクトがある。
【００１３】
全体として、データベースに見られる相違をテキストの単純な行としてユーザに提示することは非常に難しい。変更を説明し、ユーザがそれらを可視化することを可能にし、次いでユーザが何らかの「マージ」の結果を見ることを可能にする代替の方法が必要とされている。
【００１４】
代替の方法に対するこの必要に鑑みて、提案されている下記の手法は、データベースの相違を提示する上述の挑戦課題を克服する、少なくとも以下の４つの要素（および後に続く追加の要素）を含む。
【００１５】
第１に、データベースがセクションに分割される。これは、比較するためにオブジェクトのより小さなセットをもたらし、したがって比較するためにはるかに大きなデータセットを可能にする。
【００１６】
第２に、データベース内のオブジェクトには、オブジェクトのいくつかの態様に基づいて「鍵」（ｋｅｙ：キー）が割り当てられる。次いで、２つのデータベース内の鍵が比較され、「同じ」であるオブジェクトを識別する。これは、アイテムが追加／削除されているか、それとも変更されているだけであるか正確に識別することを可能にする。次いで、同じ鍵を有する２つのオブジェクトがより詳細に調査され、それらが「修正」されているかどうか識別する。
【００１７】
次いで、第３に、２つのデータベース間の相違が、相違のテキストによる要約として、または相違があるデータベースのグラフィカル表現上での強調表示によって、ユーザに提示される。これは、ユーザが相違を見て、データベースの残りの部分の状況における影響についてそれらを調査するのを容易にする。
【００１８】
次いで、第４に、１または複数の相違が１つずつまたはグループで選択され、２つのデータベースの一方が他方のデータベースに合致するように修正される（すなわち、選択された変更がマージされる）。
【００１９】
プロセス全体、比較とマージの両方が、１または複数のユーザが使用しているデータベースの任意の特定の要件または特定の態様を満たすように、１または複数のユーザによってカスタマイズされる。
【００２０】
提案されている手法は、集積回路（ＩＣ）設計情報を管理するための、コンピュータによって実施される方法を含む。前記コンピュータによって実施される方法は、第１のデータストア内で対象ＩＣ設計情報の第１のバージョンを表現し、第２のデータストア内で前記対象ＩＣ設計情報の第２のバージョンを表現する。前記方法は、前記第１のデータストアを複数のセクションに分割し、各セクションは、前記第１のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。前記方法は、前記第２のデータストアを、前記第１のデータストアの複数のセクションに対応するセクションに分割し、前記第２のデータストアの各セクションは、前記第２のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。
【００２１】
各セクションについて、前記方法は、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当て、その結果、前記鍵の割当ては、（ａ）同じ鍵が（ｉ）前記第１のデータストア内のセクション内の対象オブジェクトと、（ｉｉ）前記第１のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第２のデータストア内の前記対応するセクション内のオブジェクトとに割り当てられ、（ｂ）それぞれの鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられる、という結果になる。
【００２２】
各所与のセクションについて、前記方法は、前記第１のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第２のデータストア内の前記対応するセクション内の前記オブジェクトの鍵に基づいて、第１の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記第１のデータストア内の各所与のオブジェクト、および前記第２のデータストア内で同じ鍵を共有するその対応するオブジェクトについて、前記方法は、１または複数のオブジェクトの相違を決定する第２の比較を実施する。前記第１の比較および第２の比較の結果に基づいて、前記方法は、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンと前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンとの間の１または複数の相違を提示する。
【００２３】
前記コンピュータによって実施される方法は、エンドユーザが１または複数の相違のうちの少なくとも１つの相違セットを選択することを可能にし、前記エンドユーザが前記選択された相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にする。前記コンピュータによって実施される方法は、前記１または複数の相違がテキストによるフォーマットでエンドユーザに提示されることを含む。前記コンピュータによって実施される方法は、前記１または複数の相違がグラフィカル表現上で各相違を強調表示することによってエンドユーザに提示されることを含む。前記コンピュータによって実施される方法は、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てることを含めて、各オブジェクトに鍵を割り当てる。
【００２４】
前記コンピュータによって実施される方法は、先祖データストア内の前記対象ＩＣ設計情報の先祖バージョンを表現し、前記第１のバージョンおよび第２のバージョンは、前記先祖バージョンからのものである。前記コンピュータによって実施される方法は、前記先祖データストアを、前記第１のデータストアおよび前記第２のデータストアのうちの複数のセクションに対応するセクションに分割するステップであって、前記先祖データストアの各セクションは、前記先祖バージョン内の前記ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する、ステップをさらに含む。
【００２５】
前記先祖データストア内の各セクションについて、前記方法は、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当て、その結果、前記先祖データストアの各セクションについて、（１）同じ鍵が前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第１のデータストアおよび前記第２のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、（２）それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられる。
【００２６】
各所与のセクションについて、前記方法は、第３の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記第３の比較は、前記第１のデータストアおよび前記第２のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記第１のデータストアおよび前記第２のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、前記方法は、１または複数のそれぞれのオブジェクトの相違を決定する第４の比較を実施する。
【００２７】
前記第３の比較および前記第４の比較の結果に基づいて、前記方法は、前記先祖データストア内の前記対象ＩＣ設計情報の前記先祖バージョン間の少なくとも１つの相違を提示する。また、前記方法は、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンおよび前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンのうちの少なくとも１つを提示する。前記方法は、エンドユーザが前記少なくとも１つの相違うちの少なくとも１つの、それぞれの相違セットを選択することを可能にする。前記方法は、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にする。
【００２８】
提案されている手法は、集積回路（ＩＣ）設計情報を管理するための、コンピュータによって実施されるシステムを含む。前記コンピュータによって実施されるシステムは、第１のデータストア内で対象ＩＣ設計情報の第１のバージョンを表現するように構成されたデータモジュールを備える。前記データモジュールは、第２のデータストア内で前記対象ＩＣ設計情報の第２のバージョンを表現するようにさらに構成される。分割モジュールが、前記第１のデータストアを複数のセクションに分割するように構成され、各セクションは、前記第１のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。前記分割モジュールは、前記第２のデータストアを、前記第１のデータストアの前記複数のセクションに対応するセクションに分割するようにさらに構成される。前記第２のデータストアの各セクションは、前記第２のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。
【００２９】
制御モジュールが、各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てるように構成され、その結果、前記制御モジュールによる鍵の割当ては、（ａ）同じ鍵が前記制御モジュールによって、（ｉ）前記第１のデータストア内のセクション内の対象オブジェクトと、（ｉｉ）前記第１のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第２のデータストア内の前記対応するセクション内のオブジェクトとに割り当てられ、（ｂ）それぞれの鍵が前記制御モジュールによって、別途前記制御モジュールによって鍵が割り当てられていない各オブジェクトに割り当てられる、という結果になる。
【００３０】
前記制御モジュールは、各所与のセクションについて、前記第１のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第２のデータストア内の前記対応するセクション内の前記オブジェクトの鍵に基づいて、第１の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成される。前記制御モジュールは、前記第１のデータストア内の各所与のオブジェクト、および前記第２のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、１または複数のオブジェクトの相違を決定する第２の比較を実施するようにさらに構成される。
【００３１】
このシステムは、前記第１の比較および前記第２の比較の結果に基づいて、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンと前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンとの間の１または複数の相違を提示するように構成された表示モジュールを含む。
【００３２】
前記制御モジュールは、エンドユーザが前記１または複数の相違のうちの少なくとも１つの相違セットを選択することを可能にするようにさらに構成される。前記制御モジュールは、前記エンドユーザが前記選択された相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にするようにさらに構成される。
【００３３】
前記表示モジュールは、前記１または複数の相違をテキストによるフォーマットでエンドユーザに提示するようにさらに構成される。前記表示モジュールは、前記１または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示するようにさらに構成される。前記制御モジュールは、各オブジェクトに鍵を割り当てるようにさらに構成され、前記制御モジュールは、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てる。
【００３４】
前記データモジュールは、先祖データストア内の前記対象ＩＣ設計情報の先祖バージョンを表現するようにさらに構成される。前記第１のバージョンおよび前記第２のバージョンは、前記先祖バージョンからのものである。
【００３５】
前記分割モジュールは、前記先祖データストアを、前記第１のデータストアおよび前記第２のデータストアのうちの前記複数のセクションに対応するセクションに分割するようにさらに構成され、前記先祖データストアの各セクションは、前記先祖バージョン内の前記ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。
【００３６】
前記制御モジュールは、前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当てるようにさらに構成され、その結果、前記先祖データストアの各セクションについて、（１）同じ鍵が、前記制御モジュールによって、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第１のデータストアおよび前記第２のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、（２）それぞれの鍵が前記制御モジュールによって、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられる、という結果になる。
【００３７】
前記制御モジュールは、各所与のセクションについて、第３の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成される。前記第３の比較は、前記第１のデータストアおよび前記第２のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記制御モジュールは、前記第１のデータストアおよび前記第２のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第４の比較を実施するようにさらに構成される。前記第４の比較を通じて、前記制御モジュールは、１または複数のそれぞれのオブジェクトの相違を決定する。
【００３８】
前記表示モジュールは、前記第３の比較および前記第４の比較の結果に基づいて、前記先祖データストア内の前記対象ＩＣ設計情報の前記先祖バージョン間の少なくとも１つの相違を提示するようにさらに構成される。また、前記表示モジュールは、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンおよび前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンのうちの少なくとも１つを提示する。
【００３９】
前記制御モジュールは、エンドユーザが前記少なくとも１つの相違うちの少なくとも１つのそれぞれの相違セットを選択することを可能にするようにさらに構成される。前記制御モジュールは、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にするようにさらに構成される。
【００４０】
提案されている手法は、命令のシーケンスを記憶している非一時的なコンピュータ可読媒体を含む。前記命令は、装置に結合されたプロセッサによってロードおよび実行されたとき、前記装置に、第１のデータストア内で対象ＩＣ設計情報の第１のバージョンを表現させ、第２のデータストア内で前記対象ＩＣ設計情報の第２のバージョンを表現させる。前記命令は、前記装置に、前記第１のデータストアを複数のセクションに分割させる。前記第１のデータストアの各セクションは、前記第１のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。前記命令は、前記装置に、前記第２のデータストアを、前記第１のデータストアの前記複数のセクションに対応するセクションに分割させる。前記第２のデータストアの各セクションは、前記第２のバージョンにおける前記対象ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。
【００４１】
前記装置は、各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当て、その結果、鍵の割当ては、（ａ）同じ鍵が（ｉ）前記第１のデータストア内のセクション内の対象オブジェクトと、（ｉｉ）前記第１のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第２のデータストア内の前記対応するセクション内のオブジェクトとに割り当てられ、（ｂ）それぞれの鍵が別途鍵が割り当てられていない各オブジェクトに割り当てられる、という結果になる。
【００４２】
前記装置は、各所与のセクションについて、第１の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記比較は、前記第１のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第２のデータストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記装置は、前記第１のデータストア内の各所与のオブジェクト、および前記第２のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第２の比較を実施する。前記第２の比較は、１または複数のオブジェクトの相違を決定する。前記装置は、前記第１の比較および前記第２の比較の結果に基づいて、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンと前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンとの１または複数の相違を提示する。
【００４３】
前記装置は、エンドユーザが１または複数の相違のうちの少なくとも１つの相違セットを選択することを可能にする。また、前記装置は、前記エンドユーザが前記選択された相違セットを、前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にする。
【００４４】
前記装置は前記１または複数の相違をテキストによるフォーマットでエンドユーザに提示する。前記装置は、前記１または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示する。前記装置は各オブジェクトに鍵を割り当て、前記装置は前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てる。前記装置は先祖データストア内の前記対象ＩＣ設計情報の先祖バージョンを表現し、前記第１のバージョンおよび前記第２のバージョンは前記先祖バージョンからのものである。前記装置は、前記先祖データストアを、前記第１のデータストアおよび前記第２のデータストアのうちの前記複数のセクションに対応するセクションに分割する。前記先祖データストアの各セクションは、前記先祖バージョン内の前記ＩＣ設計情報の一部分を表すそれぞれのオブジェクトを保持する。
【００４５】
前記装置は、前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当て、その結果、前記先祖データストアの各セクションについて、（１）同じ鍵が前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第１のデータストアおよび前記第２のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、（２）それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられる。
【００４６】
前記装置は、各所与のセクションについて、第３の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記第３の比較は、前記第１のデータストアおよび前記第２のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記装置は、前記第１のデータストアおよび前記第２のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第４の比較を実施する。前記第４の比較は、１または複数のそれぞれのオブジェクトの相違を決定する。
【００４７】
前記装置は、前記第３の比較および前記第４の比較の結果に基づいて、前記先祖データストア内の前記対象ＩＣ設計情報の前記先祖バージョン間の少なくとも１つの相違を提示する。また、前記装置は、前記第１のデータストア内の前記対象ＩＣ設計情報の前記第１のバージョンおよび前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンのうちの少なくとも１つを提示する。
【００４８】
前記装置は、エンドユーザが前記少なくとも１つの相違うちの少なくとも１つの、それぞれの相違セットを選択することを可能にする。前記装置は、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第２のデータストア内の前記対象ＩＣ設計情報の前記第２のバージョンに適用することを可能にする。
【００４９】
本発明の利点は、大きなデータベースについて非常に効率的であることである。本発明の別の利点は、カスタマイズ可能な程度の精度をもたらすことである。本発明の別の利点は、ユーザが複雑なデータベース内の相違を容易に可視化すること、また必要とされる変更だけをマージすることを可能にすることである。
【図面の簡単な説明】
【００５０】
前述のことは、異なる図全体にわたって同様の符号が同じ部分を指す添付の図面に示されている本発明の例示的な実施形態の以下のより詳細な説明から明らかになる。これらの図面は、必ずしも原寸に比例しておらず、むしろ本発明の実施形態を例示することが重要視されている。
【図１】テキストファイルの相違の比較の図である。
【図２Ａ】単純な回路図の第１のバージョンと共に本発明の一実施形態を示す図である。
【図２Ｂ】図２Ａの回路図の第２のバージョンと共に本発明の一実施形態を示す図である。
【図２Ｃ】図２Ｂの回路図について分割の一形態を示す本発明の一実施形態の図である。
【図２Ｄ】図２Ｂの回路図からの分割を示す本発明の他の実施形態の図である。
【図３Ａ】本発明のテキストベースの要約の図である。
【図３Ｂ】図２Ａと図２Ｂとの相違を強調表示する本発明のテキストベースの要約の図である。
【図３Ｃ】図２Ａと図２Ｂとの相違を強調表示する本発明のグラフィカルビューの図である。
【図４Ａ】本発明のグラフィカルユーザインターフェースの図である。
【図４Ｂ】フィルタリングを実施する本発明のＧＵＩの図である。
【図４Ｃ】マージングを実施する本発明のＧＵＩの図である。
【図５Ａ】本発明のステップの高レベル流れ図である。
【図５Ｂ】図５Ａを参照する、本発明の鍵割当てアルゴリズムの高レベル流れ図である。
【図５Ｃ】本発明の３方比較およびマージの高レベル流れ図である。
【図５Ｄ】図５Ｃを参照する、本発明の鍵割当てアルゴリズムの高レベル流れ図である。
【図６】本発明の実施形態が実装されるコンピュータネットワークまたは同様のデジタル処理環境の図である。
【図７】図６のコンピュータネットワーク内のコンピュータの内部構造のブロック図である。
【発明を実施するための形態】
【００５１】
以下、本発明の例示的な実施形態を説明する。
前述のように、既存のアルゴリズムは、一般に、同一である、または異なるテキストファイルの領域を識別することによって動作する。テキストファイルの領域の相違を比較する図として、図１を参照されたい。図１に示されているように、テキスト比較領域は、一般に、ファイルの１または複数の行の形態をとる。ファイルの相違１０１が識別された後で、マージングは、通常、ソースファイル１０２、１０３によりよく合致するように、単純に行を追加する、および／または結果ファイルから行を除去することを必要とする。
【００５２】
単にテキストファイルを処理するのとは対照的に、提案されている手法は、設計データベース間でデータを比較し、その後でマージするための方法およびシステムを提供する。
【００５３】
テキストファイルを処理することに加えて、既存の手法はＩＣ設計データベースを処理するが、既存の手法は、データベース（データストア、バイナリデータファイル、データライブラリ、または他のタイプのＩＣ設計データなど）を比較およびマージすることができないので、不完全である。また、そのような既存のＩＣデータベース手法は、見出された相違の２方または３方データ比較およびマージングを処理することができない。そのような既存のＩＣデータベース手法は、比較およびマージングをユーザフレンドリに処理する本発明の適用から利益を受ける。
【００５４】
本発明は、既存のプログラミング言語を使用して実装され、既存のＩＣデータベース設計フレームワークに追加される（またそれに適合する）。たとえば、本発明は、ＳＫＩＬＬ拡張プログラミング言語を使用して実装されるが、本発明は、ＳＫＩＬＬ拡張プログラミング言語を使用することに限定されず、他のプログラミング言語を使用して実装されてもよい。また、本発明は、「Ｏｐｅｎ  Ａｃｃｅｓｓ」（「ＯｐｅｎＡｃｃｅｓｓ」または「ＯｐｅｎＡｃｃｅｓｓ  Ｃｏａｌｉｔｉｏｎ」としても知られる）データベースフォーマットを使用する既存の設計フレームワークに追加されるが、本発明はそのように限定されず、他のデータベースフォーマットを使用する他のタイプのフレームワークに追加されてもよい。
【００５５】
比較
非常に大きい２つのデータベースを比較するためには、いくつかの要因を考慮することが好ましい。１つのそのような要因は、データベースをどのように管理可能なセクションに分割するかである。別のそのような要因は、２つのデータベース内で「同じ」であるオブジェクト、または追加および／もしくは除去されたオブジェクトをどのように識別するかである。別のそのような要因は、オブジェクトが「同じ」であるとき、オブジェクトが同一のプロパティを有するかどうか、またオブジェクトプロパティの相違は何かをいかに識別するかである。
【００５６】
たとえば、第１のデータベース内のオブジェクトが第２のデータベース内の「同じ」オブジェクトである。しかし、第２のデータベース内のオブジェクトは、第１のデータベース内の同じ（対応する）オブジェクトの位置に比べて異なる位置に移動されている。オブジェクトが移動されたので、第２のデータベース内のオブジェクトは、第１のデータベース内の同じ（対応する）オブジェクトの位置／場所プロパティに比べて異なる（同一でない）位置／場所プロパティを有する。
【００５７】
本発明の例示的な実施形態を示す図２Ａおよび図２Ｂを参照されたい。図２Ａは、単純な回路図の第１のバージョン２０１ａと共に本発明の一実施形態を示す。図２Ｂは、図２Ａの回路図の第２のバージョン２０１ｂと共に本発明の一実施形態を示す
【００５８】
図２Ａないし図５Ｄを参照すると、動作は、ユーザによって実施されると示されている場合を除いて、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって実施される。
【００５９】
図２Ａないし図２Ｂの回路図は同様に見えるが、図２Ａと図２Ｂの間に小さな修正がある。第１に、図２Ｂでは、ラベル２０２ａが回路図要素２０１ｂをｎａｎｄ２（２入力否定積ゲート）として識別し、このラベル２０２ａは、ユーザによって図２Ａの回路図要素２０１ａ内のその元の場所２９０ａに対して新しい場所２９０ｂに移動されている。図２Ｂのラベル２０２ａは、今、図２Ｂ内の新しい位置２９０ｂにあるだけで、図２Ａ内のラベル２０２ａと同じである。第２に、左上のｐチャネル電界効果トランジスタ（ＰＦＥＴ）２５１ｆに電力接続を提供する図２Ａの「ワイヤ」２０１ｅが、図２Ｂではユーザによって除去されている。第３に、右手のＰＦＥＴ２５１ｂの「幅」プロパティが、ユーザによって「６」の幅（図２Ａ内の位置２９０ｃにおける要素２０３ａ参照）から「８」の幅（図２Ｂ内の位置２９０ｃにおける要素２０３ｂ参照）に変更されている。ＰＦＥＴインスタンス２５１ｂは、図２Ａの回路図２０１ａと図２Ｂの回路図２０１ｂとの間で同じインスタンスであるが、図２Ｂ内のインスタンス２５１ｂは、既存のプロパティ２０３ａについて新しい値２０３ｂを有する。第４に、図２Ａでは見あたらない（位置２９０ｄにおける）グランド（「ｇｎｄ」としても知られる）インスタンス２５１ｅが、今、ユーザによって図２Ｂ内に追加されている。
【００６０】
提案されている手法は、これらの相違を識別し、既存のアイテムに対する「修正」と追加／除去とを識別する。
【００６１】
データベースの分割
データを「管理可能なもの」にするために、データベースは、最初に、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって異なる「種類」のデータ（「セクション」としても知られる）に分割される。
【００６２】
図２Ｃは、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって図２Ｂ（回路図２０１ｂ）のオブジェクトをセクション２６１ａとセクション２６１ｂに分割する一実施形態を示す。図２Ｃでは、図２Ｂの回路図が２つのセクションに分割される。セクション２６１ｂは、オブジェクト２０１ａ、２５１ｄ、２５１ｅ、２５２ｂを含む。セクション２６１ａは、オブジェクト２０１ｂ、２０１ｃ、２０１ｄ、２０２ａ、２５１ａ、２５１ｂ、２５１ｃ、２５１ｆ、２５２ａ、２５２ｃを含む。
【００６３】
図２Ｄにおける分割のための一実施形態は、図２Ｂの回路図データベース２０１ｂがワイヤ２０１、ラベル２０２、インスタンス２５１、およびピン２５２のセクションに分割されたものを示す。
【００６４】
以下、本発明のプロセッサ、装置、またはコンピュータシステム１０００による図２Ｄの分割についてより詳細に述べる。それだけには限らないがワイヤ２０１、ラベル２０２、経路、および他の形状（ｓｈａｐｅ）を含む、データベース内の「物理的な」形状が、「レイヤ／目的の対」に関連付けられる。すなわち、各形状は、「レイヤ名」（これは、「ポリシリコン」もしくは「金属層１」など物理レイヤ、または「ワイヤ」２０１など論理レイヤである可能性がある）と「目的」（たとえば、「図面」または「レイアウト」）の組合せを有する。レイヤと目的のこの対（ｌｐｐ）は、設計データベースの共通の特徴である。したがって、データベース内のすべての「形状」が、「ｌｐｐ」値に従って分類される。
【００６５】
それだけには限らないがピン２５２、インスタンス２５１、ピン／端子２５２、およびネットを含む、データベース内のすべての「論理」要素には、「タイプ」が関連付けられている。したがって、データベース内のすべての「論理」要素は、「タイプ」に従って分類される。
【００６６】
分割は、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって、一連の「抽出」（分割）ルーチンとして実装され、上記の基準に従ってデータベースのサブセットを取り出す。本発明の実施形態は、「標準的な」抽出ルーチンのセットを提供するが、システムのユーザは、これらのルーチンを（本発明によって提供されるＡＰＩを使用して）修正し、データベースの追加の部分を比較するように、または比較を関心領域に制限するように拡張してもよい。
【００６７】
所与のデータベースについて、この部分のプロセスの結果は、データの一連のより小さなサブセット（または「セクション」）であり、これらのサブセットは、比較されることを必要とするデータベースの各要素がちょうど１つのサブセットに含まれ、好ましくは所与のデータベースの異なるサブセット内の２つの要素が「同じ」要素とみなされないように分割される。所与のデータベースについて、これは、サブセットが好ましくは重なり合わず、所与のサブセットの各所与のオブジェクトが所与のデータベースの他のサブセット内の各オブジェクトに比べて一意であることを意味する。１つのデータベース内のオブジェクトは別のデータベース内の別のオブジェクトと「同じ」であってもよいが、所与のデータベース内の各オブジェクトは、その所与のデータベース内で一意であることが好ましいことに留意されたい。
【００６８】
データを分割するための的確な基準は、データベースフォーマット、および使用可能なアクセス手順によって決まる。上記の基準は、オープンアクセス（Ｏｐｅｎ  Ａｃｃｅｓｓ）データベース、特にＳＫＩＬＬ言語インターフェースにとって好都合であるが、提案されている手法は、他のデータベースにとってより好都合な他の基準を使用してもよい。
【００６９】
比較可能なオブジェクトの識別
データベースをより小さなセットに分割したので、次の問題は、「同じものを表す」オブジェクトをどのように識別するかである。これは、提案されている手法の重要な部分である。オブジェクトが「移動」されている場合には、それは同じオブジェクトであるか。オブジェクトの「名前が変更」されている場合、それは同じオブジェクトであるか。
【００７０】
テキストファイルの従来の比較では、ファイルの「セクション」ごとに行が比較され、行がファイル内のある場所から別の場所に移動される場合、それはある場所では削除、他の場所では追加として見える。従来の比較は、少なくとも以下の３つの欠点のために、ＩＣ設計データベースの要件を満たすことができない。第１に、ＩＣ設計では、１または複数のオブジェクトが移動するのが普通であり、オブジェクトが移動するからというだけで、それは異なるオブジェクトではない。第２に、ＩＣ設計データベースは構造が多次元（２次元、３次元以上）であり、その結果、「エリア」による比較はより複雑であり、誤りを犯しやすい。第３に、場合によっては、まったく同じ位置にあり異なる名前または異なるプロパティを有するオブジェクトが、単純な「修正」ではなく追加および除去とみなされる。
【００７１】
提案されている手法は、従来の比較の欠点を克服する。提案されている手法では、「抽出」ルーチンに関連付けられたデータのあらゆるセットに、「鍵生成」ルーチンが関連付けられている。提案されている手法では、「鍵生成」は、そのデータセットからオブジェクトを取り、データのそのセットにとって一意であるべき「鍵」を作り出す。次いで、提案されている手法は、「鍵」値を比較し、オブジェクトが「同じ」である（しかし小さな相違を有する）か、それとも完全に異なるオブジェクトであるか識別する。
【００７２】
たとえば、「ラベル」のための「鍵生成」は、ラベルの位置に基づいて鍵を作り出し、またはラベルのテキストに基づいて鍵を作り出す。リファレンス実装において作り出される実際の鍵は、値の「リスト」の形態をとる。これはＳＫＩＬＬ言語にとって好都合であり、得られるリストを比較するのを簡単にする。
【００７３】
図２Ａないし図２Ｂにおける先の例を参照すると、ラベル２０２ａのための「鍵」が単にラベル２０２ａのテキストである場合には、両回路図ビュー（２０１ａ、２０１ｂ）のための得られる鍵は、（「ｎａｎｄ２」）の鍵、すなわち図２Ａないし図２Ｂの２０２ａにおけるラベル「ｎａｎｄ２」の文字列を含むリストである。これは、両ビューについて同じなので、比較ツールは、これらの２つのオブジェクトが同じである（しかし、他の点では「異なる」−−以下で詳細に述べる）ことを識別する。
【００７４】
しかし、テキストラベルを鍵として使用することは、所与のシナリオでは十分でない。回路図内に同じテキストを有する他のラベルがあり、複数の要素が同じ鍵を生成することになり、これは許されないことが好ましい。なぜなら、その場合、それらをデータベース間で「マッチング」することが非常に難しいからである。したがって、好ましい実施形態では、鍵は、ラベルのｘ／ｙ原点（またはｘ／ｙ座標）である。たとえば、図２Ａ内の２０２ａについて（０．１，０．９８）の原点２９０ａ、および図２Ｂ内の２０２ａについての座標２９０ｂの原点（０．２，０．９６５）を参照されたい。このシナリオでは、鍵（２９０ａ、２９０ｂ）は異なり、比較は、これらを「同じ」オブジェクト２０２ａとして識別せず、比較は、２つの相違、すなわち除去されたラベル、および追加されたラベルをレポートする。
【００７５】
鍵生成は複雑であり、一意の値を生成する必要と、「同じ」であるアイテムを大部分、正しく識別したいという願望との兼ね合いである。単純な実装は、これらの兼ね合いを最もよく処理する鍵生成ルーチンのセットを提供するが、ユーザの設計方法がよりよい代替をもたらす場合、ユーザはこれらのルーチンを取り替えることが可能である。たとえば、ユーザの設計方法および規則が同じ名前の複数のラベルを許さなかった場合には、ラベルテキストを使用することの方が、ラベル位置を使用することより、よい鍵になる。
【００７６】
データベースの特定の「区画」内の各オブジェクトについて「鍵」を評価した後で、比較ルーチンは、「追加」もしくは「除去」されているアイテム、または「同じである」アイテムを識別するために鍵を比較する。
【００７７】
同一であるが相違
２つのアイテムが同じ「鍵」を返すが、それらが相違を有することがある。これは、行が２つのファイルで「同じ」であるが、おそらくはいくつかの文字を追加または除去するように「修正」されている「テキスト」比較における場合に相当する。
【００７８】
これらのデータベースでは、「同じ」であるオブジェクト間に存在する変更のセットは、非常に大きい。オブジェクトは、同じであるが「移動」されている。オブジェクトは、同じであるが「名前が変更」されている。オブジェクトは、同じであるがプロパティが変更されている。しばしば、ｎａｎｄ２の回路図ビュー２０１ａ、または中央処理装置（ＣＰＵ）のレイアウトなど、多数のオブジェクトがセルビュー（または「ｃｅｌｌｖｉｅｗ」「データライブラリ」）内に含まれる。したがって、比較の次のステップは、「同じ」であるアイテムを取り、オブジェクトのより詳細な「相違チェック」を実施することである。
【００７９】
この場合も、実施される的確な比較は、オブジェクトによって決まる。また、鍵生成にも大きく依存し、鍵の一部としてすでに抽出されている値は比較されることを必要としない。たとえば、「インスタンス」がそのインスタンスのｘ／ｙ位置、および「親」（または「マスタ」）セルビューのセルビュー名を含む鍵を有する場合には、これらの値は、詳細な「相違チェック」によって再比較されることを必要としない。しかし、インスタンスの任意の回転／反映は鍵の一部でないので、その回転／反映は、相違チェックの一部であることが好ましい。
【００８０】
例示的な実装では、「相違」ルーチンは、鍵の一部でないオブジェクトの大部分の態様をチェックする。具体的には、このデータベースでは、オブジェクトは、比較される一般的な「プロパティリスト」を有する。しかし、提案されている手法は、ユーザの特定の必要に合致させるために、ユーザが標準的な相違ルーチンをオーバーライドすることを可能にする。
【００８１】
結果のレポート
２つのデータベース間の相違を識別することは、見出された相違についてユーザに知らせるためのわかりやすい手法がある場合、より有益である。提案されている手法は、様々なレベルの詳細さで相違をレポートするための「多層」方式と、セルビューそれら自体内で変更を「強調表示」するための機能とを有するグラフィカルな手法を使用する。
【００８２】
グラフィカルな手法に加えて、本発明のプロセッサ、装置、またはコンピュータシステム１０００は、図３Ａに示されているテキストベースの要約レポートをも使用する。図３Ａの要約レポートは、比較動作が実施されたとき最初にユーザに対して表示されるフォーム結果を示す。図３Ａでは、要約レポート３０１ａ（プルダウンメニュー３０３を通じて選択される）は、（図２Ａ内の）２０１ａに関する第１のセルビューと（図２Ｂ内の）２０１ｂに関する第２のセルビューとの相違３０２を示す。
【００８３】
図３Ａに示されているように、提案されている手法は、図２Ｄの分割／セクション化を使用して、データの各「区画」内で見出された２０１ａと２０１ｂとの相違３０２を単純な要約として決定する。図３Ａでは、区画は、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって、ワイヤ２０１、ラベル２０２、インスタンス２５１、およびネット２５３について生成される。
【００８４】
たとえば、図３Ａは、インスタンス２５１内の相違３０２を示す。図３Ａのレポートは、１つのインスタンスが相違を有することを示す（図２Ａの要素２０３ａから図２Ｂの要素２０３ｂへの「６」から「８」への幅の変更を参照されたい）。また、図３Ａのレポートは、１つのインスタンスが第２のセルビュー内にだけあり、したがってインスタンスが「追加」されていることを示す（図２Ｂのインスタンス２５１ｅを参照されたい）。
【００８５】
図３Ｂに示されているように、次に、ユーザは、ドロップダウンフィールド／メニュー３０３を使用し、インスタンス３０１ｂを選択し、データの１つの「区画」だけに適用可能な結果を示すように結果をさらに簡潔にする。図の「区画」のセットは、好ましくは定義されている分割機能によって決まり、相違をもたらす区画がユーザに提示されることが好ましい。
【００８６】
図３Ｂの場合、「インスタンス」レポート３０１ｂがユーザによって選択される。図３Ｂに示されているように、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって、インスタンスレポート３０１ｂは、インスタンス区画（図３Ａの２５１）内の相違３０５のより多くの詳細をユーザに示す。具体的には、相違ウィンドウ３０９内に示されている相違３０５は、インスタンス名と、各インスタンスについて生成された（データベース内で鍵を見出すために使用される、提案されている手法を可能にする）「鍵」の詳細と、インスタンスがセルビューの一方だけにあるか（追加または除去されたインスタンス）、それとも両方のセルビューにあるがいくつかの「相違」を有するかについてのレポートとを示す。「相違」を有するオブジェクトの場合、図３Ｂに示されているように、行選択３０７がユーザによって実施され、関連の相違の完全な詳細３０６が下のパネル３０８内に示される。詳細セクション３０６では、ユーザは、位置（０．８１２５，０．９３７５）にある、セルｐＣｅｌｌｓ／ｐｍｏｓ／ｓｙｍｂｏｌのインスタンスであるインスタンス「２」が１つの相違を有し、この相違は、プロパティ「ｗ」は値が変更されており、今「８」の値を有し（図２Ｂ参照）、「６」の値であった（図２Ａ参照）ことであるとわかる。
【００８７】
結果の詳細なテキストによるレポートの的確な形態は、「相違チェック」ルーチンによって制御される。図３Ｂでは、プロパティ変更が示される手法を、「古い」値を先にレポートするように切り替えることが好ましく、提案されている手法は、ユーザがこの切替えを実施することを可能にする。さらに、提案されている手法では、詳細な結果の完全なセットがファイルに書き込まれ、結果の永続的な記録を提供し、結果をさらに分析することを可能にする。さらに、図３Ｂは、マージ機能３０４を示す。
【００８８】
図３Ｃに示されているように、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって、提案されている手法は、グラフィカルな相違／変更３１０が図３Ｃ内の回路図のグラフィカルビュー３５０ａ上で直接「強調表示」されることをも可能にする。たとえば、図３Ｂでは、インスタンス変更３０５がユーザによって選択されている（３０７）場合には、回路図ビュー３５０ａ内で、グラフィカルな変更が本発明のプロセッサ、装置、またはコンピュータシステム１０００によって強調表示される（３１０）。
【００８９】
図３Ｃに示されているように、要素２０３ａ（上の「ｐｍｏｓ」記号）が強調表示されており、その理由は、このオブジェクトが第１のデータベースにも第２のデータベースにもある（図２Ａの２０３ａおよび図２Ｂの２０３ｂ参照）が、相違を有するからである。図３Ｃの、下にある要素２５１ｅ（グランド記号）が強調表示されており、その理由は、この特定のビュー内にないからである。提案されている手法は、形状が所与のビュー内に実際にない場合でさえ、（他のビューと比較することによって）形状を強調表示してもよいことに留意されたい。
【００９０】
マージング
２つのデータベース間の相違が識別された後で、それらの変更を「マージ」することを考えることが可能である。マージを実施するために必要とされる的確なステップは、変更のタイプ、その変更が「追加」「削除」、それとも単純な「変更」を表すか、基礎となるシステムのＡＰＩ機能、および必要とされる何らかの「結果的な」変更を含む要因に依存する。たとえば、「ネット」が削除されている場合、そのネットに関連付けられた物理的な形状もまた除去されるべきであるか。
【００９１】
前述の単純な比較では（より複雑な場合については下記の３方比較を参照）、「すべての」相違をマージすることは、実際には決して適切ではない。すべての相違をマージすることが所望の結果である場合には、ユーザは、１つのデータベースを別のデータベースに単純に「コピー」する。
【００９２】
本発明のプロセッサ、装置、またはコンピュータシステム１０００は、ユーザが比較結果の任意のサブセットを選択し、「第１の」データベース（またはセルビュー）から「第２の」データベース（またはセルビュー）に相違を「マージ」することを可能にする。たとえば、第２のセルビュー内にない第１のセルビュー内のワイヤは、第２のセルビュー内で同じワイヤを作成することによってマージされる。別の例として、第２のセルビュー内にある第１のセルビュー内にないラベルは、そのラベルを第２のセルビューから削除することによってマージされる。別の例として、第１のセルビューについて「６」の幅プロパティを有し第２のセルビューについて「８」の幅を有するセルビューのインスタンスは、第２のセルビュー内でそのプロパティを「６」に変更することによってマージされる。
【００９３】
提案されている手法は、たとえばＳＫＩＬＬ言語を通じて使用可能であるＡＰＩ機能を使用して、マージ方法、すなわち変更をマージするための手法を、データベース内の共通のデータベースオブジェクトタイプに提供する。しかし、当業者なら気付くように、このマージ方法は、望むならエンドユーザ自身のマージ機能を提供するように、エンドユーザによって修正されてもよい。
【００９４】
いくつかのマージ動作を実施する際に、マージされるデータベース内の同等のオブジェクトを識別することが必要である。たとえば、「追加」するべきネットの両端間でマージングする場合、第２のデータベース内で、そのネットが元のデータベース内で接続されるものに相当する「ピン」を見出し、その結果、その新しいネットが接続されるようにすることが望ましい。これを行う際に、提案されている手法は、比較機能によって使用される同じ鍵生成を利用する。すなわち、同等のピンを見出すために、提案されている手法は、ソースデータベース内のピンと同じ鍵を生成するピンを見出す。
【００９５】
オブジェクトがマージされる順序は重要である。たとえば、ネットを接続するためにピンが存在するように、ネットをマージする前にピンをマージすることが望ましい。ユーザがマージングするためにすべてのネットおよびピンを単純に選択した場合には、本発明のプロセッサ、装置、またはコンピュータシステム１０００は、ピンが最初に処理されることを知る必要があることが好ましい。データベース構造の知識は、マージ要求を処理するためのデフォルトの「順番」を定義するために使用されるが、これは、本発明のプロセッサ、装置、またはコンピュータシステム１０００によって必要とされる場合、修正されてもよい。
【００９６】
３方比較
図２Ａないし図２Ｂにおける上記の単純な比較では、「ｇｎｄ」が除去され、左側に示されているデータベースを生成したのか、それとも追加され、右側に示されているデータベースを生成したのか知るのは困難である。どのデータベース（第１または第２）が「後の」バージョンであるかは示されていない。これが、インスタンスが「Ｏｎｌｙ  ｉｎ  ｓｅｃｏｎｄ  ｖｉｅｗ（第２のビュー内だけ）」とシステム１０００のレポートが単純に述べている理由である（図３Ｂ内の３０５参照）。プログラムを実行しているユーザは、右側のデータベース（図２Ｂ、２０１ｂ）が左側のもの（図２Ａ、２０１ａ）より「後」であることを「知り」、したがって、これは問題でない。
【００９７】
しかし、この種の比較ツールが非常に一般的に必要とされ使用されるのは、同じ開始点から２つの別々の修正がデータベースに加えられる場合である。一例では、データベースの以前のバージョンが、データ管理システム内で記憶される。設計者フレッドが、データベースのコピーをフェッチし、変更を加え始める。設計者ジルもまた、コピーをフェッチし、いくつかの変更を加え、変更をデータベース管理システム内に戻して記憶する。この時点で、フレッドは、ジルが何を変更したか見るためにデータベースの自分のバージョンをジルのものと比較し、おそらくはフレッドとジルの間での変更をマージしたいと望む。これが従来の「３方マージ」問題である。
【００９８】
本発明のプロセッサ、装置、またはコンピュータシステム１０００は、３方比較を完全にサポートする。システム１０００は、３つのデータベースすべてに分割を適用する。システム１０００は、３つのデータベースすべてについて鍵を生成する。次いで、システム１０００は、「共通の先祖」データベースに比べて後のデータベースのそれぞれについて、オブジェクトが「追加」または「除去」されているかどうか識別するために、３つのデータベースすべてにわたって鍵を比較する。次いで、システム１０００の得られるレポートおよび強調表示が、実施されている実際の変更をより正確に示す。
【００９９】
３方マージング
システム１０００を使用して３方比較が実施される場合には、システム１０００からのマージするためのアクションは、システム１０００にとって２方比較／マージの場合とは異なる。３方マージについては、共通の先祖に対して「現在の」データベースに加えられた変更はそのままにしておくことが好ましく、「比較」データベースと共通の先祖との間で加えられた変更が、マージングのために考慮されることが好ましい。システム１０００は、どの場合が当てはまるかわかりやすいように、またその結果、ユーザがマージングのために変更の適切なセットを容易に選べるように、結果をユーザに提示する。
【０１００】
グラフィカルユーザインターフェース
図４Ａは、本発明のシステム１０００のグラフィカルユーザインターフェースおよび表示（ＧＵＩ）４００を示す。図４Ａは、第１のデータベースのためのデータベース名情報４０１ａ、および第２のデータベースのためのデータベース名情報４０１ｂを示し、データベース名情報は、ライブラリ名（４３０ａ、４３０ｂ）、セル名（４３１ａ、４３１ｂ）、およびビュー名（４３２ａ、４３１ｂ）を含む。ＧＵＩは、いくつかのコマンド（ボタン、フィールド、プルダウンメニューとして、または他のメニューを通じて実装される）を含む。図４Ａに示されているように、ＧＵＩコマンドは、セルビューのためのブラウジング４１０ａ、４１０ｂ、セルビューを開くこと（４０９ａ、４０９ｂ）、および異なるバージョンをフェッチすること（４１１ａ、４１１ｂ）を含む。また、コマンドは、第１のセルビューから第２のセルビューへのマージング３０４を含む。図４ＡのＧＵＩは、ドロップダウンフィールド／メニュー３０３を含む。また、ＧＵＩは、ユーザが、（コンピュータマウスまたは他の手段を通じて）すべての相違を選択すること（４０２）、相違を選択しないこと（４０３）、相違を強調表示すること（４０４）、次の相違に進むこと（４０５）、以前の相違に進むこと（４０６）、選択された相違をクリアすること（４０７）を可能にするコマンドを含む。
【０１０１】
図４Ａに示されているように、ＧＵＩ表示は、得られるビューにある（４１４）、得られるビューにない（４１５）、および現在のビューと得られるビューとで異なる（４１６）セルビュー要素を示す。フィールド４１４、４１５、４１６は、相違要素が強調表示される手段をユーザが選択することを可能にし、また強調表示するために使用される「レイヤ」をユーザが選択することを可能にすることに留意されたい。ＧＵＩを使用して、ユーザは、比較を実行し（４２０）、または動作を取り消す（４２１）（フォームを隠す）。また、ＧＵＩは、ズームインすること（４０８ｂ）またはズームアウトすること（４０８ｃ）を含めて、ズーム率４１７を表示した状態でユーザがズームすること（４０８ａ）を可能にするコマンドを含む。他のＧＵＩコマンドは、ユーザがＧＵＩの状態を保存すること（４２３）、ＧＵＩの状態を復元すること（４２２）、または説明およびチュートリアルを含むヘルプを得ること（４２４）を可能にする。
【０１０２】
図４ＢのＧＵＩ４００は、２つのセルビューに関するシステム１０００のフィルタリング動作を示す。ユーザは、比較するために異なるセルビューまたはデータベースバージョンを選択し（４３０）、強調表示するためのオブジェクトについて結果をフィルタリングする（４３１）。システム１０００は、「ｄｉｆｆ」動作を実施し（相違を決定する）、グラフィカルビュー３５０ｂ内の強調表示された相違３１０ｂを通じて、また出力ファイルに相違をテキストにより出力することを通じても、結果を表示する。
【０１０３】
図４ＣのＧＵＩ４００は、２つのセルビューに関するシステム１０００のマージング動作を示す。ユーザは、比較するために異なるセルビューまたはデータベースバージョンを選択する（４３０）。システム１０００は、「ｄｉｆｆ」動作を実施し（相違を決定する）、グラフィカルビュー３５０ｂ内の強調表示された相違３１０ｂを通じて、また出力ファイルに相違をテキストにより出力することを通じて結果を表示する。また、ユーザは、マージするべきアイテムを選択し（４３２）、強調表示された／選択された相違を自動的にマージする（４３３）。
【０１０４】
図４Ｃに示されているように、システム１０００は、テキストによる原語のためのｄｉｆｆ／マージと同様であり、ユーザが相違ソースから変更を管理し、それらの変更を選択し、選択された変更を適用することを可能にする。設計の態様、たとえばインスタンス、または個々のレイヤ上の形状は、個々にマージされる。システム１０００は、ユーザがどのタイプの要素をマージするか定義すること、たとえば単純なグラフィカル操作を無視することを可能にするようにカスタマイズ可能である。さらに、システム１０００は、内容が異なるセルビューをエンジニアが自動的にマージすることを可能にすることによって開発生産性を改善する。
【０１０５】
図５Ａは、本発明を実施するシステムまたはプロセス１０００のステップの高レベル流れ図５００を示す。ステップ５０１では、（第１のデータストアからの）設計情報の第１のバージョン、および（第２のデータストアからの）設計情報の第２のバージョンが表現される。設計情報は、設計オブジェクトを含む。ステップ５０２では、第１のデータストアおよび第２のデータストアが、（分割ルーチンを通じて）第１のデータベースと第２のデータベースの間で対応するセクションに分割される。ステップ５０３では、各セクション内の各オブジェクトに鍵が割り当てられる。鍵割当て５０３については、以下の図５Ｂでより詳細に述べる。
【０１０６】
図５Ａに戻ると、ステップ５０４は、第１のデータストア内のセクション内のオブジェクトの鍵および第２のデータストア内の対応するセクション内のオブジェクトの鍵に基づいて第１の比較を実施することによって、セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。ステップ５０５では、第２の比較を通じて、１または複数のオブジェクトの相違が決定される。第１のデータストア内の各所与のオブジェクトおよび第２のデータストア内で同じ鍵を共有するその対応するオブジェクトについて、１または複数のオブジェクトの相違を決定する第２の比較が実施される。ステップ５０６では、第１の比較および第２の比較から得られる相違がユーザに提示される。ステップ５０７では、システム１０００は、ユーザがそれらの相違からの少なくとも１つの相違のセットを選択することを可能にする。ステップ５０８では、システム１０００は、ユーザが選択された相違を設計情報の第２のバージョンに適用することを可能にする。
【０１０７】
図５Ｂは、本発明のシステムまたはプロセス１０００の鍵割当てアルゴリズム（または鍵生成ルーチン）５０３の高レベル流れ図を示す。分割ルーチンに関連付けられるデータストア内のデータのあらゆるセットがやはり、鍵生成ルーチンに関連付けられることに留意されたい。ステップ５０３ａでは、各セクションについて、鍵が（以下のように）セクション内の各オブジェクトに割り当てられる。ステップ５０３ｂでは、同じ（一意の）鍵が、第１のデータストア内のセクション内のオブジェクトと、第２のデータストア内の対応するセクション内のオブジェクトとに割り当てられる。ステップ５０３ｃでは、それぞれの（一意の）鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられる。これらの鍵は、オブジェクト位置、オブジェクトテキスト、および／または他のオブジェクト属性に基づいて生成される。
【０１０８】
図５Ｃは、本発明の３方比較およびマージを示す本発明のシステムまたはプロセス１０００の別の高レベル流れ図５２０を示す。ステップ５２１では、（第１のデータストアからの）設計情報の第１のバージョン、（第２のデータストアからの）設計情報の第２のバージョン、および（先祖データストアからの）設計情報の先祖バージョンが表現される。設計情報の先祖バージョンは、設計情報の第１のバージョンおよび第２のバージョンに対して先祖である。ステップ５２２では、第１、第２、および先祖データストアが、（分割ルーチンを通じて）先祖データストアと第１のデータストアと第２のデータストアとの間で対応するセクションに分割される。ステップ５２３では、各セクション内の各オブジェクトに鍵が割り当てられる。鍵割当て５２３については、以下の図５Ｄでより詳細に述べる。
【０１０９】
図５Ｃに戻ると、ステップ５２４は、先祖データストア内のセクション内ならびに第１のデータストアおよび第２のデータストア内の対応するセクション内のオブジェクトの鍵に基づいて比較を実施することによって、セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。ステップ５２５では、１または複数の相違が、追加の比較を通じて決定される。第１のデータストアおよび第２のデータストア内の各所与のオブジェクト、ならびに先祖データストア内で同じ鍵を共有するその対応するオブジェクトについて、１または複数のオブジェクトの相違を決定する追加の比較が実施される。ステップ５２６では、これらの比較から得られる相違がユーザに提示される。ステップ５２７では、システム１０００は、ユーザがそれらの相違からの少なくとも１つの相違のセットを選択することを可能にする。ステップ５２８では、システム１０００は、ユーザが選択された相違を設計情報の第２のバージョンに適用することを可能にする。
【０１１０】
図５Ｄは、本発明のシステムまたはプロセス１０００の鍵割当てアルゴリズム（または鍵生成ルーチン）５２３の高レベル流れ図を示す。分割ルーチンに関連付けられるデータストア内のデータのあらゆるセットがやはり、鍵生成ルーチンに関連付けられることに留意されたい。ステップ５２３ａでは、各セクションについて、鍵が（以下のように）セクション内の各オブジェクトに割り当てられる。ステップ５２３ｂでは、同じ（一意の）鍵が、先祖データストア内のセクション内のオブジェクトと、第１のデータストアおよび第２のデータストア内の対応するオブジェクトとに割り当てられる。ステップ５２３ｃでは、それぞれの（一意の）鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられる。これらの鍵は、オブジェクト位置、オブジェクトテキスト、および／または他のオブジェクト属性に基づいて生成される。
【０１１１】
図６は、提案されている手法が実装されるコンピュータネットワークまたは同様のデジタル処理環境を示す。
【０１１２】
クライアントコンピュータ／デバイス５０およびサーバコンピュータ６０は、アプリケーションプログラムなどを実行する処理、記憶、および入力／出力デバイスを提供する。また、クライアントコンピュータ／デバイス５０は、通信ネットワーク７０を通じて、他のクライアントデバイス／プロセス５０およびサーバコンピュータ６０を含む他のコンピューティングデバイスにリンクされる。通信ネットワーク７０は、現在それぞれのプロトコル（ＴＣＰ／ＩＰ、ＢＬＵＥＴＯＯＴＨ（登録商標）など）を使用し互いに通信するリモートアクセスネットワーク、グローバルネットワークまたはローカルネットワーク（たとえば、インターネット）、コンピュータの世界的な集まり、ローカルエリアネットワークまたはワイドエリアネットワーク、およびゲートウェイの一部であってよい。他の電子デバイス／コンピュータネットワークアーキテクチャが好適である。
【０１１３】
図７は、図６のコンピュータシステム内のコンピュータ（たとえば、クライアントプロセッサ／デバイス５０またはサーバコンピュータ６０）の内部構造の図である。各コンピュータ５０、６０はシステムバス７９を含み、バスはコンピュータまたは処理システムの構成要素の間でデータを転送するために使用されるハードウェアラインのセットである。バス７９は、本質的に、コンピュータシステムの異なる要素（たとえば、プロセッサ、ディスクストレージ、メモリ、入力／出力ポート、ネットワークポートなど）を接続し、それらの要素間で情報の転送を可能にする、共有された導管である。システムバス７９には、様々な入力および出力デバイス（たとえば、キーボード、マウス、ディスプレイ、プリンタ、スピーカなど）をコンピュータ５０、６０に接続するためのＩ／Ｏデバイスインターフェース８２が接続される。ネットワークインターフェース８６は、ネットワーク（たとえば、図６のネットワーク７０）に接続された様々な他のデバイスにコンピュータが接続することを可能にする。メモリ９０は、提案されている手法の実施形態（たとえば、上記で詳述したシステム１０００およびプロセスステップ／フロー４００）を実装するために使用されるコンピュータソフトウェア命令９２およびデータ９４のための揮発性記憶を提供する。ディスクストレージ９５は、提案されている手法の実施形態を実装するために使用されるコンピュータソフトウェア命令９２およびデータ９４のための不揮発性記憶を提供する。データ９４はクライアント５０とサーバ６０の間で同じであってもよいが、コンピュータソフトウェア命令９２のタイプは、クライアント５０とサーバ６０の間で異なってもよいことに留意されたい。また、中央プロセッサユニット８４は、システムバス７９に接続され、コンピュータ命令の実行をする。
【０１１４】
一実施形態では、プロセッサルーチン９２およびデータ９４は、本発明のシステムのためにソフトウェア命令の少なくとも一部分を提供するコンピュータ可読媒体（たとえば、１または複数のＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ディスケット、テープなど取外し式記憶媒体）を含むコンピュータプログラム製品（全体的に９２で参照される）である。コンピュータプログラム製品９２は、当技術分野で周知の任意の好適なソフトウェアインストール手順によってインストールされる。他の実施形態では、ソフトウェア命令の少なくとも一部分もまた、ケーブル、通信、および／または無線接続の上でダウンロードされてもよい。他の実施形態では、本発明のプログラムは、伝搬媒体上の伝搬信号（たとえば、電波、赤外線波、レーザ波、音波、またはインターネットなどグローバルネットワークもしくは他のネットワークの上で伝搬される電気波）上に含まれるコンピュータプログラム伝搬信号製品１０７（図６に示す）である。そのようなキャリア媒体または信号は、提案されている手法のルーチン／プログラム９２のためのソフトウェア命令の少なくとも一部分を提供する。
【０１１５】
代替的実施形態では、伝搬信号は、アナログ搬送波、または伝搬媒体上で担持されるデジタル信号である。たとえば、伝搬信号は、グローバルネットワーク（たとえば、インターネット）、電気通信ネットワーク、または他のネットワークの上で伝搬されるデジタル信号である。一実施形態では、伝搬信号は、数ミリ秒、数秒、数分、またはそれ以上の期間にわたってネットワークの上で、パケット内で送られるソフトウェアアプリケーションのための命令など、ある期間にわたって伝搬媒体の上で送信される信号である。他の実施形態では、コンピュータプログラム製品９２のコンピュータ可読媒体は、伝搬媒体を受信し、コンピュータプログラム伝搬信号製品について上述したように伝搬媒体内に含まれる伝搬信号を識別することによってなど、コンピュータシステム５０が受信し読み取る伝搬媒体である。
【０１１６】
一般的に言えば、「キャリア媒体」という用語、または過渡的キャリアは、前述の過渡的信号、伝搬信号、伝搬媒体、記憶媒体などを包含する。
【０１１７】
提案されている手法は、アナログ構成要素とデジタル構成要素の両方のためのＩＣ設計環境に当てはまる。提案されている手法は、ＩＣに限定されず、プリント回路板（ＰＣＢ）、回路図、ならびにアナログ回路および／またはデジタル回路のための他の使用法にも適用される。提案されている手法は、それだけには限らないが２次元または３次元を含めて、多次元の設計を処理する。
【０１１８】
本発明についてその例示的な実施形態を参照して示し述べたが、添付の特許請求の範囲によって包含される本発明の範囲から逸脱することなしに、形態および詳細の様々な変更が本発明に加えられることを、当業者なら理解するであろう。
【図１】
2015079493.tif 000003
【図２Ａ】
2015079493.tif 000004
【図２Ｂ】
2015079493.tif 000005
【図２Ｃ】
2015079493.tif 000006
【図２Ｄ】
2015079493.tif 000007
【図３Ａ】
2015079493.tif 000008
【図３Ｂ】
2015079493.tif 000009
【図３Ｃ】
2015079493.tif 000010
【図４Ａ】
2015079493.tif 000011
【図４Ｂ】
2015079493.tif 000012
【図４Ｃ】
2015079493.tif 000013
【図５Ａ】
2015079493.tif 000014
【図５Ｂ】
2015079493.tif 000015
【図５Ｃ】
2015079493.tif 000016
【図５Ｄ】
2015079493.tif 000017
【図６】
2015079493.tif 000018
【図７】
2015079493.tif 000019
【外国語明細書】
2015079493000001.pdf