JP6352744B2 - Ic設計データの比較およびマージング - Google Patents

Ic設計データの比較およびマージング Download PDF

Info

Publication number
JP6352744B2
JP6352744B2 JP2014188834A JP2014188834A JP6352744B2 JP 6352744 B2 JP6352744 B2 JP 6352744B2 JP 2014188834 A JP2014188834 A JP 2014188834A JP 2014188834 A JP2014188834 A JP 2014188834A JP 6352744 B2 JP6352744 B2 JP 6352744B2
Authority
JP
Japan
Prior art keywords
data store
section
version
key
ancestor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014188834A
Other languages
English (en)
Other versions
JP2015079493A (ja
JP2015079493A5 (ja
Inventor
ドビンソン イアン
ドビンソン イアン
Original Assignee
ダッソー システムズ アメリカス コーポレイション
ダッソー システムズ アメリカス コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ダッソー システムズ アメリカス コーポレイション, ダッソー システムズ アメリカス コーポレイション filed Critical ダッソー システムズ アメリカス コーポレイション
Publication of JP2015079493A publication Critical patent/JP2015079493A/ja
Publication of JP2015079493A5 publication Critical patent/JP2015079493A5/ja
Application granted granted Critical
Publication of JP6352744B2 publication Critical patent/JP6352744B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、IC設計データの比較およびマージングを行うための方法およびシステムに関する。
関連出願
本願は、2013年9月25日に出願された米国特許出願第14/036,734号明細書の継続出願であり、その優先権を主張する。上記出願の教示全体を参照により本明細書に組み込む。
どのようなデータも時間の経過と共に発展するにつれて、そのデータの複数のバージョンが、おそらくは複数の人が別々のコピーに働きかけることによって(データファイル、データベース、またはデータストアとして)生成される。様々なときに、データの異なるバージョンを比較すること、おそらくはデータの異なるバージョンのそれぞれに対する異なる編集によってなされた変更を「マージ」することが望ましい。
単純な文書など1または複数の「テキスト」ファイルの形態にあるデータ用には、どのような変更がなされたか識別するために、またそれらの変更を組み合わせるためのインターフェースを提供するために、様々なアルゴリズムを使用して、多数のツールが開発されている。これらのアルゴリズムのすべてが、一般に同一の、または異なるファイル「領域」を識別することによって動作する。これらの「領域」は、ファイルの1または複数の行の形態をとる。相違が識別された後で、マージングは、通常、ソースファイルによりよく合致するように、単純に行を追加する、および/または「結果」ファイルから行を除去することを必要とする。
集積回路(IC)設計環境では、ICデータは、一般に単純な「テキスト」ファイルの形態をとらず、1または複数のバイナリファイル、データストア、データライブラリ、または他のタイプのICデータなど「データベース」の形態にある。ICデータは、様々な異なる「プロパティ」を有する様々なタイプの(非常に)多数の「オブジェクト」を含む。その性質上、「テキスト」ファイルとは対照的に、IC設計はしばしば3次元であり、複数のレイヤ(たとえば、metal1、metal2、およびmetal3)を有し、これは記憶されることを必要とする「オブジェクト」の数をさらに増大する。ユーザは、一般に、グラフィカルな設計ツールを使用することを通じてそのようなICデータとインタラクションする。したがって、標準的なテキストファイルデータ管理を超えるIC用のそのような複雑なデータを管理するための手法が求められている。
そのような複雑なデータを管理するための手法として、複数のデータストアについて集積回路(IC)設計情報を管理するための方法およびシステムを含み、IC設計データの比較およびマージングを行うための改善された方法およびシステムを提供する。
提案されている手法は、複数のデータストアについて集積回路(IC)設計情報を管理するための方法およびシステムを含む。各データストアは、セクションに分割され、より大きなデータセットが比較されることを可能にする。複数のデータストア間でオブジェクトが追加、削除、または修正されているかどうか決定するために、またオブジェクトの相違を決定するために、各データセット内のオブジェクトに鍵が割り当てられる。ユーザは、グラフィカルな手法またはテキストベースの手法を使用してデータストア間の相違を比較およびマージする。提案されている手法は、より大きなデータベースにとってについて非常に効率的かつ正確である。提案されている手法は、ユーザが複雑なデータベース内の相違を容易に可視化すること、また所望の変更を容易にマージすることを可能にする。
データベース(あるいはデータストア、ジェネリックデータストア、1または複数のバイナリファイル、データライブラリ、または他のタイプのファイルもしくはデータストレージ)に対するテキストファイルの比較およびマージのために既存の解決策を適用することは、少なくとも以下の4つの主な理由で非常に難しい。
第1に、「行」の単純な「線形」比較は、「オブジェクト」が必ずしも一貫した手法で「順序付け」られないデータベースには移行されない。データベースオブジェクトが位置座標を有している場合でさえ、比較は、これらに基づかないことが好ましい。なぜなら、オブジェクトが位置を変えることが一般的であり、これは正しく識別されることを必要とするからである(そして、たとえば、そのオブジェクトが削除されおよび新しいオブジェクトが追加されたときは識別されない)。
第2に、「同じ」であるが「修正されている」オブジェクトがデータベース内にある。ファイルの2行が同じに見えるが、異なる1つまたは2つの文字を有するのと同じように、データベース内では、同じであるがいくつかの「プロパティ」が異なる2つのオブジェクトがある。テキスト比較では、そのような場合は行全体が異なるかのように処理されてもよいが、データベースでは、これは非常に非効率的なものになる。
第3に、比較のための設計データベースのサイズは、一般に、テキストファイルより数桁大きい。たとえば、数千行のテキストファイルを比較/マージすることは「無理なく」予想されるが、数十万オブジェクトを含むデータベースを比較/マージすることはほとんどない。
第4に、データベース内の2つのオブジェクトの「相違」を識別するために必要とされるステップは、テキストの2行を単純に比較し、一方の行を他方の行で置き換えることよりはるかに複雑である。実際、データベースについては、異なるように処理されることを必要とする多くのタイプのオブジェクトがある。
全体として、データベースに見られる相違をテキストの単純な行としてユーザに提示することは非常に難しい。変更を説明し、ユーザがそれらを可視化することを可能にし、次いでユーザが何らかの「マージ」の結果を見ることを可能にする代替の方法が必要とされている。
代替の方法に対するこの必要に鑑みて、提案されている下記の手法は、データベースの相違を提示する上述の挑戦課題を克服する、少なくとも以下の4つの要素(および後に続く追加の要素)を含む。
第1に、データベースがセクションに分割される。これは、比較するためにオブジェクトのより小さなセットをもたらし、したがって比較するためにはるかに大きなデータセットを可能にする。
第2に、データベース内のオブジェクトには、オブジェクトのいくつかの態様に基づいて「鍵」(key:キー)が割り当てられる。次いで、2つのデータベース内の鍵が比較され、「同じ」であるオブジェクトを識別する。これは、アイテムが追加/削除されているか、それとも変更されているだけであるか正確に識別することを可能にする。次いで、同じ鍵を有する2つのオブジェクトがより詳細に調査され、それらが「修正」されているかどうか識別する。
次いで、第3に、2つのデータベース間の相違が、相違のテキストによる要約として、または相違があるデータベースのグラフィカル表現上での強調表示によって、ユーザに提示される。これは、ユーザが相違を見て、データベースの残りの部分の状況における影響についてそれらを調査するのを容易にする。
次いで、第4に、1または複数の相違が1つずつまたはグループで選択され、2つのデータベースの一方が他方のデータベースに合致するように修正される(すなわち、選択された変更がマージされる)。
プロセス全体、比較とマージの両方が、1または複数のユーザが使用しているデータベースの任意の特定の要件または特定の態様を満たすように、1または複数のユーザによってカスタマイズされる。
提案されている手法は、集積回路(IC)設計情報を管理するための、コンピュータによって実施される方法を含む。前記コンピュータによって実施される方法は、第1のデータストア内で対象IC設計情報の第1のバージョンを表現し、第2のデータストア内で前記対象IC設計情報の第2のバージョンを表現する。前記方法は、前記第1のデータストアを複数のセクションに分割し、各セクションは、前記第1のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。前記方法は、前記第2のデータストアを、前記第1のデータストアの複数のセクションに対応するセクションに分割し、前記第2のデータストアの各セクションは、前記第2のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。
各セクションについて、前記方法は、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当て、その結果、前記鍵の割当ては、(a)同じ鍵が(i)前記第1のデータストア内のセクション内の対象オブジェクトと、(ii)前記第1のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第2のデータストア内の前記対応するセクション内のオブジェクトとに割り当てられ、(b)それぞれの鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられる、という結果になる。
各所与のセクションについて、前記方法は、前記第1のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第2のデータストア内の前記対応するセクション内の前記オブジェクトの鍵に基づいて、第1の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記第1のデータストア内の各所与のオブジェクト、および前記第2のデータストア内で同じ鍵を共有するその対応するオブジェクトについて、前記方法は、1または複数のオブジェクトの相違を決定する第2の比較を実施する。前記第1の比較および第2の比較の結果に基づいて、前記方法は、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンと前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンとの間の1または複数の相違を提示する。
前記コンピュータによって実施される方法は、エンドユーザが1または複数の相違のうちの少なくとも1つの相違セットを選択することを可能にし、前記エンドユーザが前記選択された相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にする。前記コンピュータによって実施される方法は、前記1または複数の相違がテキストによるフォーマットでエンドユーザに提示されることを含む。前記コンピュータによって実施される方法は、前記1または複数の相違がグラフィカル表現上で各相違を強調表示することによってエンドユーザに提示されることを含む。前記コンピュータによって実施される方法は、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てることを含めて、各オブジェクトに鍵を割り当てる。
前記コンピュータによって実施される方法は、先祖データストア内の前記対象IC設計情報の先祖バージョンを表現し、前記第1のバージョンおよび第2のバージョンは、前記先祖バージョンからのものである。前記コンピュータによって実施される方法は、前記先祖データストアを、前記第1のデータストアおよび前記第2のデータストアのうちの複数のセクションに対応するセクションに分割するステップであって、前記先祖データストアの各セクションは、前記先祖バージョン内の前記IC設計情報の一部分を表すそれぞれのオブジェクトを保持する、ステップをさらに含む。
前記先祖データストア内の各セクションについて、前記方法は、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当て、その結果、前記先祖データストアの各セクションについて、(1)同じ鍵が前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第1のデータストアおよび前記第2のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、(2)それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられる。
各所与のセクションについて、前記方法は、第3の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記第3の比較は、前記第1のデータストアおよび前記第2のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記第1のデータストアおよび前記第2のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、前記方法は、1または複数のそれぞれのオブジェクトの相違を決定する第4の比較を実施する。
前記第3の比較および前記第4の比較の結果に基づいて、前記方法は、前記先祖データストア内の前記対象IC設計情報の前記先祖バージョン間の少なくとも1つの相違を提示する。また、前記方法は、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンおよび前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンのうちの少なくとも1つを提示する。前記方法は、エンドユーザが前記少なくとも1つの相違うちの少なくとも1つの、それぞれの相違セットを選択することを可能にする。前記方法は、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にする。
提案されている手法は、集積回路(IC)設計情報を管理するための、コンピュータによって実施されるシステムを含む。前記コンピュータによって実施されるシステムは、第1のデータストア内で対象IC設計情報の第1のバージョンを表現するように構成されたデータモジュールを備える。前記データモジュールは、第2のデータストア内で前記対象IC設計情報の第2のバージョンを表現するようにさらに構成される。分割モジュールが、前記第1のデータストアを複数のセクションに分割するように構成され、各セクションは、前記第1のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。前記分割モジュールは、前記第2のデータストアを、前記第1のデータストアの前記複数のセクションに対応するセクションに分割するようにさらに構成される。前記第2のデータストアの各セクションは、前記第2のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。
制御モジュールが、各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てるように構成され、その結果、前記制御モジュールによる鍵の割当ては、(a)同じ鍵が前記制御モジュールによって、(i)前記第1のデータストア内のセクション内の対象オブジェクトと、(ii)前記第1のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第2のデータストア内の前記対応するセクション内のオブジェクトとに割り当てられ、(b)それぞれの鍵が前記制御モジュールによって、別途前記制御モジュールによって鍵が割り当てられていない各オブジェクトに割り当てられる、という結果になる。
前記制御モジュールは、各所与のセクションについて、前記第1のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第2のデータストア内の前記対応するセクション内の前記オブジェクトの鍵に基づいて、第1の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成される。前記制御モジュールは、前記第1のデータストア内の各所与のオブジェクト、および前記第2のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、1または複数のオブジェクトの相違を決定する第2の比較を実施するようにさらに構成される。
このシステムは、前記第1の比較および前記第2の比較の結果に基づいて、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンと前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンとの間の1または複数の相違を提示するように構成された表示モジュールを含む。
前記制御モジュールは、エンドユーザが前記1または複数の相違のうちの少なくとも1つの相違セットを選択することを可能にするようにさらに構成される。前記制御モジュールは、前記エンドユーザが前記選択された相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にするようにさらに構成される。
前記表示モジュールは、前記1または複数の相違をテキストによるフォーマットでエンドユーザに提示するようにさらに構成される。前記表示モジュールは、前記1または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示するようにさらに構成される。前記制御モジュールは、各オブジェクトに鍵を割り当てるようにさらに構成され、前記制御モジュールは、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てる。
前記データモジュールは、先祖データストア内の前記対象IC設計情報の先祖バージョンを表現するようにさらに構成される。前記第1のバージョンおよび前記第2のバージョンは、前記先祖バージョンからのものである。
前記分割モジュールは、前記先祖データストアを、前記第1のデータストアおよび前記第2のデータストアのうちの前記複数のセクションに対応するセクションに分割するようにさらに構成され、前記先祖データストアの各セクションは、前記先祖バージョン内の前記IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。
前記制御モジュールは、前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当てるようにさらに構成され、その結果、前記先祖データストアの各セクションについて、(1)同じ鍵が、前記制御モジュールによって、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第1のデータストアおよび前記第2のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、(2)それぞれの鍵が前記制御モジュールによって、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられる、という結果になる。
前記制御モジュールは、各所与のセクションについて、第3の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成される。前記第3の比較は、前記第1のデータストアおよび前記第2のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記制御モジュールは、前記第1のデータストアおよび前記第2のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第4の比較を実施するようにさらに構成される。前記第4の比較を通じて、前記制御モジュールは、1または複数のそれぞれのオブジェクトの相違を決定する。
前記表示モジュールは、前記第3の比較および前記第4の比較の結果に基づいて、前記先祖データストア内の前記対象IC設計情報の前記先祖バージョン間の少なくとも1つの相違を提示するようにさらに構成される。また、前記表示モジュールは、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンおよび前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンのうちの少なくとも1つを提示する。
前記制御モジュールは、エンドユーザが前記少なくとも1つの相違うちの少なくとも1つのそれぞれの相違セットを選択することを可能にするようにさらに構成される。前記制御モジュールは、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にするようにさらに構成される。
提案されている手法は、命令のシーケンスを記憶している非一時的なコンピュータ可読媒体を含む。前記命令は、装置に結合されたプロセッサによってロードおよび実行されたとき、前記装置に、第1のデータストア内で対象IC設計情報の第1のバージョンを表現させ、第2のデータストア内で前記対象IC設計情報の第2のバージョンを表現させる。前記命令は、前記装置に、前記第1のデータストアを複数のセクションに分割させる。前記第1のデータストアの各セクションは、前記第1のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。前記命令は、前記装置に、前記第2のデータストアを、前記第1のデータストアの前記複数のセクションに対応するセクションに分割させる。前記第2のデータストアの各セクションは、前記第2のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。
前記装置は、各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当て、その結果、鍵の割当ては、(a)同じ鍵が(i)前記第1のデータストア内のセクション内の対象オブジェクトと、(ii)前記第1のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第2のデータストア内の前記対応するセクション内のオブジェクトとに割り当てられ、(b)それぞれの鍵が別途鍵が割り当てられていない各オブジェクトに割り当てられる、という結果になる。
前記装置は、各所与のセクションについて、第1の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記比較は、前記第1のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第2のデータストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記装置は、前記第1のデータストア内の各所与のオブジェクト、および前記第2のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第2の比較を実施する。前記第2の比較は、1または複数のオブジェクトの相違を決定する。前記装置は、前記第1の比較および前記第2の比較の結果に基づいて、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンと前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンとの1または複数の相違を提示する。
前記装置は、エンドユーザが1または複数の相違のうちの少なくとも1つの相違セットを選択することを可能にする。また、前記装置は、前記エンドユーザが前記選択された相違セットを、前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にする。
前記装置は前記1または複数の相違をテキストによるフォーマットでエンドユーザに提示する。前記装置は、前記1または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示する。前記装置は各オブジェクトに鍵を割り当て、前記装置は前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てる。前記装置は先祖データストア内の前記対象IC設計情報の先祖バージョンを表現し、前記第1のバージョンおよび前記第2のバージョンは前記先祖バージョンからのものである。前記装置は、前記先祖データストアを、前記第1のデータストアおよび前記第2のデータストアのうちの前記複数のセクションに対応するセクションに分割する。前記先祖データストアの各セクションは、前記先祖バージョン内の前記IC設計情報の一部分を表すそれぞれのオブジェクトを保持する。
前記装置は、前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当て、その結果、前記先祖データストアの各セクションについて、(1)同じ鍵が前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第1のデータストアおよび前記第2のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、(2)それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられる。
前記装置は、各所与のセクションについて、第3の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。前記第3の比較は、前記第1のデータストアおよび前記第2のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の前記対応するセクション内の前記オブジェクトの鍵に基づく。前記装置は、前記第1のデータストアおよび前記第2のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第4の比較を実施する。前記第4の比較は、1または複数のそれぞれのオブジェクトの相違を決定する。
前記装置は、前記第3の比較および前記第4の比較の結果に基づいて、前記先祖データストア内の前記対象IC設計情報の前記先祖バージョン間の少なくとも1つの相違を提示する。また、前記装置は、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンおよび前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンのうちの少なくとも1つを提示する。
前記装置は、エンドユーザが前記少なくとも1つの相違うちの少なくとも1つの、それぞれの相違セットを選択することを可能にする。前記装置は、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にする。
本発明の利点は、大きなデータベースについて非常に効率的であることである。本発明の別の利点は、カスタマイズ可能な程度の精度をもたらすことである。本発明の別の利点は、ユーザが複雑なデータベース内の相違を容易に可視化すること、また必要とされる変更だけをマージすることを可能にすることである。
前述のことは、異なる図全体にわたって同様の符号が同じ部分を指す添付の図面に示されている本発明の例示的な実施形態の以下のより詳細な説明から明らかになる。これらの図面は、必ずしも原寸に比例しておらず、むしろ本発明の実施形態を例示することが重要視されている。
テキストファイルの相違の比較の図である。 単純な回路図の第1のバージョンと共に本発明の一実施形態を示す図である。 図2Aの回路図の第2のバージョンと共に本発明の一実施形態を示す図である。 図2Bの回路図について分割の一形態を示す本発明の一実施形態の図である。 図2Bの回路図からの分割を示す本発明の他の実施形態の図である。 本発明のテキストベースの要約の図である。 図2Aと図2Bとの相違を強調表示する本発明のテキストベースの要約の図である。 図2Aと図2Bとの相違を強調表示する本発明のグラフィカルビューの図である。 本発明のグラフィカルユーザインターフェースの図である。 フィルタリングを実施する本発明のGUIの図である。 マージングを実施する本発明のGUIの図である。 本発明のステップの高レベル流れ図である。 図5Aを参照する、本発明の鍵割当てアルゴリズムの高レベル流れ図である。 本発明の3方比較およびマージの高レベル流れ図である。 図5Cを参照する、本発明の鍵割当てアルゴリズムの高レベル流れ図である。 本発明の実施形態が実装されるコンピュータネットワークまたは同様のデジタル処理環境の図である。 図6のコンピュータネットワーク内のコンピュータの内部構造のブロック図である。
以下、本発明の例示的な実施形態を説明する。
前述のように、既存のアルゴリズムは、一般に、同一である、または異なるテキストファイルの領域を識別することによって動作する。テキストファイルの領域の相違を比較する図として、図1を参照されたい。図1に示されているように、テキスト比較領域は、一般に、ファイルの1または複数の行の形態をとる。ファイルの相違101が識別された後で、マージングは、通常、ソースファイル102、103によりよく合致するように、単純に行を追加する、および/または結果ファイルから行を除去することを必要とする。
単にテキストファイルを処理するのとは対照的に、提案されている手法は、設計データベース間でデータを比較し、その後でマージするための方法およびシステムを提供する。
テキストファイルを処理することに加えて、既存の手法はIC設計データベースを処理するが、既存の手法は、データベース(データストア、バイナリデータファイル、データライブラリ、または他のタイプのIC設計データなど)を比較およびマージすることができないので、不完全である。また、そのような既存のICデータベース手法は、見出された相違の2方または3方データ比較およびマージングを処理することができない。そのような既存のICデータベース手法は、比較およびマージングをユーザフレンドリに処理する本発明の適用から利益を受ける。
本発明は、既存のプログラミング言語を使用して実装され、既存のICデータベース設計フレームワークに追加される(またそれに適合する)。たとえば、本発明は、SKILL拡張プログラミング言語を使用して実装されるが、本発明は、SKILL拡張プログラミング言語を使用することに限定されず、他のプログラミング言語を使用して実装されてもよい。また、本発明は、「Open Access」(「OpenAccess」または「OpenAccess Coalition」としても知られる)データベースフォーマットを使用する既存の設計フレームワークに追加されるが、本発明はそのように限定されず、他のデータベースフォーマットを使用する他のタイプのフレームワークに追加されてもよい。
比較
非常に大きい2つのデータベースを比較するためには、いくつかの要因を考慮することが好ましい。1つのそのような要因は、データベースをどのように管理可能なセクションに分割するかである。別のそのような要因は、2つのデータベース内で「同じ」であるオブジェクト、または追加および/もしくは除去されたオブジェクトをどのように識別するかである。別のそのような要因は、オブジェクトが「同じ」であるとき、オブジェクトが同一のプロパティを有するかどうか、またオブジェクトプロパティの相違は何かをいかに識別するかである。
たとえば、第1のデータベース内のオブジェクトが第2のデータベース内の「同じ」オブジェクトである。しかし、第2のデータベース内のオブジェクトは、第1のデータベース内の同じ(対応する)オブジェクトの位置に比べて異なる位置に移動されている。オブジェクトが移動されたので、第2のデータベース内のオブジェクトは、第1のデータベース内の同じ(対応する)オブジェクトの位置/場所プロパティに比べて異なる(同一でない)位置/場所プロパティを有する。
本発明の例示的な実施形態を示す図2Aおよび図2Bを参照されたい。図2Aは、単純な回路図の第1のバージョン201aと共に本発明の一実施形態を示す。図2Bは、図2Aの回路図の第2のバージョン201bと共に本発明の一実施形態を示す
図2Aないし図5Dを参照すると、動作は、ユーザによって実施されると示されている場合を除いて、本発明のプロセッサ、装置、またはコンピュータシステム1000によって実施される。
図2Aないし図2Bの回路図は同様に見えるが、図2Aと図2Bの間に小さな修正がある。第1に、図2Bでは、ラベル202aが回路図要素201bをnand2(2入力否定積ゲート)として識別し、このラベル202aは、ユーザによって図2Aの回路図要素201a内のその元の場所290aに対して新しい場所290bに移動されている。図2Bのラベル202aは、今、図2B内の新しい位置290bにあるだけで、図2A内のラベル202aと同じである。第2に、左上のpチャネル電界効果トランジスタ(PFET)251fに電力接続を提供する図2Aの「ワイヤ」201eが、図2Bではユーザによって除去されている。第3に、右手のPFET251bの「幅」プロパティが、ユーザによって「6」の幅(図2A内の位置290cにおける要素203a参照)から「8」の幅(図2B内の位置290cにおける要素203b参照)に変更されている。PFETインスタンス251bは、図2Aの回路図201aと図2Bの回路図201bとの間で同じインスタンスであるが、図2B内のインスタンス251bは、既存のプロパティ203aについて新しい値203bを有する。第4に、図2Aでは見あたらない(位置290dにおける)グランド(「gnd」としても知られる)インスタンス251eが、今、ユーザによって図2B内に追加されている。
提案されている手法は、これらの相違を識別し、既存のアイテムに対する「修正」と追加/除去とを識別する。
データベースの分割
データを「管理可能なもの」にするために、データベースは、最初に、本発明のプロセッサ、装置、またはコンピュータシステム1000によって異なる「種類」のデータ(「セクション」としても知られる)に分割される。
図2Cは、本発明のプロセッサ、装置、またはコンピュータシステム1000によって図2B(回路図201b)のオブジェクトをセクション261aとセクション261bに分割する一実施形態を示す。図2Cでは、図2Bの回路図が2つのセクションに分割される。セクション261bは、オブジェクト201a、251d、251e、252bを含む。セクション261aは、オブジェクト201b、201c、201d、202a、251a、251b、251c、251f、252a、252cを含む。
図2Dにおける分割のための一実施形態は、図2Bの回路図データベース201bがワイヤ201、ラベル202、インスタンス251、およびピン252のセクションに分割されたものを示す。
以下、本発明のプロセッサ、装置、またはコンピュータシステム1000による図2Dの分割についてより詳細に述べる。それだけには限らないがワイヤ201、ラベル202、経路、および他の形状(shape)を含む、データベース内の「物理的な」形状が、「レイヤ/目的の対」に関連付けられる。すなわち、各形状は、「レイヤ名」(これは、「ポリシリコン」もしくは「金属層1」など物理レイヤ、または「ワイヤ」201など論理レイヤである可能性がある)と「目的」(たとえば、「図面」または「レイアウト」)の組合せを有する。レイヤと目的のこの対(lpp)は、設計データベースの共通の特徴である。したがって、データベース内のすべての「形状」が、「lpp」値に従って分類される。
それだけには限らないがピン252、インスタンス251、ピン/端子252、およびネットを含む、データベース内のすべての「論理」要素には、「タイプ」が関連付けられている。したがって、データベース内のすべての「論理」要素は、「タイプ」に従って分類される。
分割は、本発明のプロセッサ、装置、またはコンピュータシステム1000によって、一連の「抽出」(分割)ルーチンとして実装され、上記の基準に従ってデータベースのサブセットを取り出す。本発明の実施形態は、「標準的な」抽出ルーチンのセットを提供するが、システムのユーザは、これらのルーチンを(本発明によって提供されるAPIを使用して)修正し、データベースの追加の部分を比較するように、または比較を関心領域に制限するように拡張してもよい。
所与のデータベースについて、この部分のプロセスの結果は、データの一連のより小さなサブセット(または「セクション」)であり、これらのサブセットは、比較されることを必要とするデータベースの各要素がちょうど1つのサブセットに含まれ、好ましくは所与のデータベースの異なるサブセット内の2つの要素が「同じ」要素とみなされないように分割される。所与のデータベースについて、これは、サブセットが好ましくは重なり合わず、所与のサブセットの各所与のオブジェクトが所与のデータベースの他のサブセット内の各オブジェクトに比べて一意であることを意味する。1つのデータベース内のオブジェクトは別のデータベース内の別のオブジェクトと「同じ」であってもよいが、所与のデータベース内の各オブジェクトは、その所与のデータベース内で一意であることが好ましいことに留意されたい。
データを分割するための的確な基準は、データベースフォーマット、および使用可能なアクセス手順によって決まる。上記の基準は、オープンアクセス(Open Access)データベース、特にSKILL言語インターフェースにとって好都合であるが、提案されている手法は、他のデータベースにとってより好都合な他の基準を使用してもよい。
比較可能なオブジェクトの識別
データベースをより小さなセットに分割したので、次の問題は、「同じものを表す」オブジェクトをどのように識別するかである。これは、提案されている手法の重要な部分である。オブジェクトが「移動」されている場合には、それは同じオブジェクトであるか。オブジェクトの「名前が変更」されている場合、それは同じオブジェクトであるか。
テキストファイルの従来の比較では、ファイルの「セクション」ごとに行が比較され、行がファイル内のある場所から別の場所に移動される場合、それはある場所では削除、他の場所では追加として見える。従来の比較は、少なくとも以下の3つの欠点のために、IC設計データベースの要件を満たすことができない。第1に、IC設計では、1または複数のオブジェクトが移動するのが普通であり、オブジェクトが移動するからというだけで、それは異なるオブジェクトではない。第2に、IC設計データベースは構造が多次元(2次元、3次元以上)であり、その結果、「エリア」による比較はより複雑であり、誤りを犯しやすい。第3に、場合によっては、まったく同じ位置にあり異なる名前または異なるプロパティを有するオブジェクトが、単純な「修正」ではなく追加および除去とみなされる。
提案されている手法は、従来の比較の欠点を克服する。提案されている手法では、「抽出」ルーチンに関連付けられたデータのあらゆるセットに、「鍵生成」ルーチンが関連付けられている。提案されている手法では、「鍵生成」は、そのデータセットからオブジェクトを取り、データのそのセットにとって一意であるべき「鍵」を作り出す。次いで、提案されている手法は、「鍵」値を比較し、オブジェクトが「同じ」である(しかし小さな相違を有する)か、それとも完全に異なるオブジェクトであるか識別する。
たとえば、「ラベル」のための「鍵生成」は、ラベルの位置に基づいて鍵を作り出し、またはラベルのテキストに基づいて鍵を作り出す。リファレンス実装において作り出される実際の鍵は、値の「リスト」の形態をとる。これはSKILL言語にとって好都合であり、得られるリストを比較するのを簡単にする。
図2Aないし図2Bにおける先の例を参照すると、ラベル202aのための「鍵」が単にラベル202aのテキストである場合には、両回路図ビュー(201a、201b)のための得られる鍵は、(「nand2」)の鍵、すなわち図2Aないし図2Bの202aにおけるラベル「nand2」の文字列を含むリストである。これは、両ビューについて同じなので、比較ツールは、これらの2つのオブジェクトが同じである(しかし、他の点では「異なる」−−以下で詳細に述べる)ことを識別する。
しかし、テキストラベルを鍵として使用することは、所与のシナリオでは十分でない。回路図内に同じテキストを有する他のラベルがあり、複数の要素が同じ鍵を生成することになり、これは許されないことが好ましい。なぜなら、その場合、それらをデータベース間で「マッチング」することが非常に難しいからである。したがって、好ましい実施形態では、鍵は、ラベルのx/y原点(またはx/y座標)である。たとえば、図2A内の202aについて(0.1,0.98)の原点290a、および図2B内の202aについての座標290bの原点(0.2,0.965)を参照されたい。このシナリオでは、鍵(290a、290b)は異なり、比較は、これらを「同じ」オブジェクト202aとして識別せず、比較は、2つの相違、すなわち除去されたラベル、および追加されたラベルをレポートする。
鍵生成は複雑であり、一意の値を生成する必要と、「同じ」であるアイテムを大部分、正しく識別したいという願望との兼ね合いである。単純な実装は、これらの兼ね合いを最もよく処理する鍵生成ルーチンのセットを提供するが、ユーザの設計方法がよりよい代替をもたらす場合、ユーザはこれらのルーチンを取り替えることが可能である。たとえば、ユーザの設計方法および規則が同じ名前の複数のラベルを許さなかった場合には、ラベルテキストを使用することの方が、ラベル位置を使用することより、よい鍵になる。
データベースの特定の「区画」内の各オブジェクトについて「鍵」を評価した後で、比較ルーチンは、「追加」もしくは「除去」されているアイテム、または「同じである」アイテムを識別するために鍵を比較する。
同一であるが相違
2つのアイテムが同じ「鍵」を返すが、それらが相違を有することがある。これは、行が2つのファイルで「同じ」であるが、おそらくはいくつかの文字を追加または除去するように「修正」されている「テキスト」比較における場合に相当する。
これらのデータベースでは、「同じ」であるオブジェクト間に存在する変更のセットは、非常に大きい。オブジェクトは、同じであるが「移動」されている。オブジェクトは、同じであるが「名前が変更」されている。オブジェクトは、同じであるがプロパティが変更されている。しばしば、nand2の回路図ビュー201a、または中央処理装置(CPU)のレイアウトなど、多数のオブジェクトがセルビュー(または「cellview」「データライブラリ」)内に含まれる。したがって、比較の次のステップは、「同じ」であるアイテムを取り、オブジェクトのより詳細な「相違チェック」を実施することである。
この場合も、実施される的確な比較は、オブジェクトによって決まる。また、鍵生成にも大きく依存し、鍵の一部としてすでに抽出されている値は比較されることを必要としない。たとえば、「インスタンス」がそのインスタンスのx/y位置、および「親」(または「マスタ」)セルビューのセルビュー名を含む鍵を有する場合には、これらの値は、詳細な「相違チェック」によって再比較されることを必要としない。しかし、インスタンスの任意の回転/反映は鍵の一部でないので、その回転/反映は、相違チェックの一部であることが好ましい。
例示的な実装では、「相違」ルーチンは、鍵の一部でないオブジェクトの大部分の態様をチェックする。具体的には、このデータベースでは、オブジェクトは、比較される一般的な「プロパティリスト」を有する。しかし、提案されている手法は、ユーザの特定の必要に合致させるために、ユーザが標準的な相違ルーチンをオーバーライドすることを可能にする。
結果のレポート
2つのデータベース間の相違を識別することは、見出された相違についてユーザに知らせるためのわかりやすい手法がある場合、より有益である。提案されている手法は、様々なレベルの詳細さで相違をレポートするための「多層」方式と、セルビューそれら自体内で変更を「強調表示」するための機能とを有するグラフィカルな手法を使用する。
グラフィカルな手法に加えて、本発明のプロセッサ、装置、またはコンピュータシステム1000は、図3Aに示されているテキストベースの要約レポートをも使用する。図3Aの要約レポートは、比較動作が実施されたとき最初にユーザに対して表示されるフォーム結果を示す。図3Aでは、要約レポート301a(プルダウンメニュー303を通じて選択される)は、(図2A内の)201aに関する第1のセルビューと(図2B内の)201bに関する第2のセルビューとの相違302を示す。
図3Aに示されているように、提案されている手法は、図2Dの分割/セクション化を使用して、データの各「区画」内で見出された201aと201bとの相違302を単純な要約として決定する。図3Aでは、区画は、本発明のプロセッサ、装置、またはコンピュータシステム1000によって、ワイヤ201、ラベル202、インスタンス251、およびネット253について生成される。
たとえば、図3Aは、インスタンス251内の相違302を示す。図3Aのレポートは、1つのインスタンスが相違を有することを示す(図2Aの要素203aから図2Bの要素203bへの「6」から「8」への幅の変更を参照されたい)。また、図3Aのレポートは、1つのインスタンスが第2のセルビュー内にだけあり、したがってインスタンスが「追加」されていることを示す(図2Bのインスタンス251eを参照されたい)。
図3Bに示されているように、次に、ユーザは、ドロップダウンフィールド/メニュー303を使用し、インスタンス301bを選択し、データの1つの「区画」だけに適用可能な結果を示すように結果をさらに簡潔にする。図の「区画」のセットは、好ましくは定義されている分割機能によって決まり、相違をもたらす区画がユーザに提示されることが好ましい。
図3Bの場合、「インスタンス」レポート301bがユーザによって選択される。図3Bに示されているように、本発明のプロセッサ、装置、またはコンピュータシステム1000によって、インスタンスレポート301bは、インスタンス区画(図3Aの251)内の相違305のより多くの詳細をユーザに示す。具体的には、相違ウィンドウ309内に示されている相違305は、インスタンス名と、各インスタンスについて生成された(データベース内で鍵を見出すために使用される、提案されている手法を可能にする)「鍵」の詳細と、インスタンスがセルビューの一方だけにあるか(追加または除去されたインスタンス)、それとも両方のセルビューにあるがいくつかの「相違」を有するかについてのレポートとを示す。「相違」を有するオブジェクトの場合、図3Bに示されているように、行選択307がユーザによって実施され、関連の相違の完全な詳細306が下のパネル308内に示される。詳細セクション306では、ユーザは、位置(0.8125,0.9375)にある、セルpCells/pmos/symbolのインスタンスであるインスタンス「2」が1つの相違を有し、この相違は、プロパティ「w」は値が変更されており、今「8」の値を有し(図2B参照)、「6」の値であった(図2A参照)ことであるとわかる。
結果の詳細なテキストによるレポートの的確な形態は、「相違チェック」ルーチンによって制御される。図3Bでは、プロパティ変更が示される手法を、「古い」値を先にレポートするように切り替えることが好ましく、提案されている手法は、ユーザがこの切替えを実施することを可能にする。さらに、提案されている手法では、詳細な結果の完全なセットがファイルに書き込まれ、結果の永続的な記録を提供し、結果をさらに分析することを可能にする。さらに、図3Bは、マージ機能304を示す。
図3Cに示されているように、本発明のプロセッサ、装置、またはコンピュータシステム1000によって、提案されている手法は、グラフィカルな相違/変更310が図3C内の回路図のグラフィカルビュー350a上で直接「強調表示」されることをも可能にする。たとえば、図3Bでは、インスタンス変更305がユーザによって選択されている(307)場合には、回路図ビュー350a内で、グラフィカルな変更が本発明のプロセッサ、装置、またはコンピュータシステム1000によって強調表示される(310)。
図3Cに示されているように、要素203a(上の「pmos」記号)が強調表示されており、その理由は、このオブジェクトが第1のデータベースにも第2のデータベースにもある(図2Aの203aおよび図2Bの203b参照)が、相違を有するからである。図3Cの、下にある要素251e(グランド記号)が強調表示されており、その理由は、この特定のビュー内にないからである。提案されている手法は、形状が所与のビュー内に実際にない場合でさえ、(他のビューと比較することによって)形状を強調表示してもよいことに留意されたい。
マージング
2つのデータベース間の相違が識別された後で、それらの変更を「マージ」することを考えることが可能である。マージを実施するために必要とされる的確なステップは、変更のタイプ、その変更が「追加」「削除」、それとも単純な「変更」を表すか、基礎となるシステムのAPI機能、および必要とされる何らかの「結果的な」変更を含む要因に依存する。たとえば、「ネット」が削除されている場合、そのネットに関連付けられた物理的な形状もまた除去されるべきであるか。
前述の単純な比較では(より複雑な場合については下記の3方比較を参照)、「すべての」相違をマージすることは、実際には決して適切ではない。すべての相違をマージすることが所望の結果である場合には、ユーザは、1つのデータベースを別のデータベースに単純に「コピー」する。
本発明のプロセッサ、装置、またはコンピュータシステム1000は、ユーザが比較結果の任意のサブセットを選択し、「第1の」データベース(またはセルビュー)から「第2の」データベース(またはセルビュー)に相違を「マージ」することを可能にする。たとえば、第2のセルビュー内にない第1のセルビュー内のワイヤは、第2のセルビュー内で同じワイヤを作成することによってマージされる。別の例として、第2のセルビュー内にある第1のセルビュー内にないラベルは、そのラベルを第2のセルビューから削除することによってマージされる。別の例として、第1のセルビューについて「6」の幅プロパティを有し第2のセルビューについて「8」の幅を有するセルビューのインスタンスは、第2のセルビュー内でそのプロパティを「6」に変更することによってマージされる。
提案されている手法は、たとえばSKILL言語を通じて使用可能であるAPI機能を使用して、マージ方法、すなわち変更をマージするための手法を、データベース内の共通のデータベースオブジェクトタイプに提供する。しかし、当業者なら気付くように、このマージ方法は、望むならエンドユーザ自身のマージ機能を提供するように、エンドユーザによって修正されてもよい。
いくつかのマージ動作を実施する際に、マージされるデータベース内の同等のオブジェクトを識別することが必要である。たとえば、「追加」するべきネットの両端間でマージングする場合、第2のデータベース内で、そのネットが元のデータベース内で接続されるものに相当する「ピン」を見出し、その結果、その新しいネットが接続されるようにすることが望ましい。これを行う際に、提案されている手法は、比較機能によって使用される同じ鍵生成を利用する。すなわち、同等のピンを見出すために、提案されている手法は、ソースデータベース内のピンと同じ鍵を生成するピンを見出す。
オブジェクトがマージされる順序は重要である。たとえば、ネットを接続するためにピンが存在するように、ネットをマージする前にピンをマージすることが望ましい。ユーザがマージングするためにすべてのネットおよびピンを単純に選択した場合には、本発明のプロセッサ、装置、またはコンピュータシステム1000は、ピンが最初に処理されることを知る必要があることが好ましい。データベース構造の知識は、マージ要求を処理するためのデフォルトの「順番」を定義するために使用されるが、これは、本発明のプロセッサ、装置、またはコンピュータシステム1000によって必要とされる場合、修正されてもよい。
3方比較
図2Aないし図2Bにおける上記の単純な比較では、「gnd」が除去され、左側に示されているデータベースを生成したのか、それとも追加され、右側に示されているデータベースを生成したのか知るのは困難である。どのデータベース(第1または第2)が「後の」バージョンであるかは示されていない。これが、インスタンスが「Only in second view(第2のビュー内だけ)」とシステム1000のレポートが単純に述べている理由である(図3B内の305参照)。プログラムを実行しているユーザは、右側のデータベース(図2B、201b)が左側のもの(図2A、201a)より「後」であることを「知り」、したがって、これは問題でない。
しかし、この種の比較ツールが非常に一般的に必要とされ使用されるのは、同じ開始点から2つの別々の修正がデータベースに加えられる場合である。一例では、データベースの以前のバージョンが、データ管理システム内で記憶される。設計者フレッドが、データベースのコピーをフェッチし、変更を加え始める。設計者ジルもまた、コピーをフェッチし、いくつかの変更を加え、変更をデータベース管理システム内に戻して記憶する。この時点で、フレッドは、ジルが何を変更したか見るためにデータベースの自分のバージョンをジルのものと比較し、おそらくはフレッドとジルの間での変更をマージしたいと望む。これが従来の「3方マージ」問題である。
本発明のプロセッサ、装置、またはコンピュータシステム1000は、3方比較を完全にサポートする。システム1000は、3つのデータベースすべてに分割を適用する。システム1000は、3つのデータベースすべてについて鍵を生成する。次いで、システム1000は、「共通の先祖」データベースに比べて後のデータベースのそれぞれについて、オブジェクトが「追加」または「除去」されているかどうか識別するために、3つのデータベースすべてにわたって鍵を比較する。次いで、システム1000の得られるレポートおよび強調表示が、実施されている実際の変更をより正確に示す。
3方マージング
システム1000を使用して3方比較が実施される場合には、システム1000からのマージするためのアクションは、システム1000にとって2方比較/マージの場合とは異なる。3方マージについては、共通の先祖に対して「現在の」データベースに加えられた変更はそのままにしておくことが好ましく、「比較」データベースと共通の先祖との間で加えられた変更が、マージングのために考慮されることが好ましい。システム1000は、どの場合が当てはまるかわかりやすいように、またその結果、ユーザがマージングのために変更の適切なセットを容易に選べるように、結果をユーザに提示する。
グラフィカルユーザインターフェース
図4Aは、本発明のシステム1000のグラフィカルユーザインターフェースおよび表示(GUI)400を示す。図4Aは、第1のデータベースのためのデータベース名情報401a、および第2のデータベースのためのデータベース名情報401bを示し、データベース名情報は、ライブラリ名(430a、430b)、セル名(431a、431b)、およびビュー名(432a、431b)を含む。GUIは、いくつかのコマンド(ボタン、フィールド、プルダウンメニューとして、または他のメニューを通じて実装される)を含む。図4Aに示されているように、GUIコマンドは、セルビューのためのブラウジング410a、410b、セルビューを開くこと(409a、409b)、および異なるバージョンをフェッチすること(411a、411b)を含む。また、コマンドは、第1のセルビューから第2のセルビューへのマージング304を含む。図4AのGUIは、ドロップダウンフィールド/メニュー303を含む。また、GUIは、ユーザが、(コンピュータマウスまたは他の手段を通じて)すべての相違を選択すること(402)、相違を選択しないこと(403)、相違を強調表示すること(404)、次の相違に進むこと(405)、以前の相違に進むこと(406)、選択された相違をクリアすること(407)を可能にするコマンドを含む。
図4Aに示されているように、GUI表示は、得られるビューにある(414)、得られるビューにない(415)、および現在のビューと得られるビューとで異なる(416)セルビュー要素を示す。フィールド414、415、416は、相違要素が強調表示される手段をユーザが選択することを可能にし、また強調表示するために使用される「レイヤ」をユーザが選択することを可能にすることに留意されたい。GUIを使用して、ユーザは、比較を実行し(420)、または動作を取り消す(421)(フォームを隠す)。また、GUIは、ズームインすること(408b)またはズームアウトすること(408c)を含めて、ズーム率417を表示した状態でユーザがズームすること(408a)を可能にするコマンドを含む。他のGUIコマンドは、ユーザがGUIの状態を保存すること(423)、GUIの状態を復元すること(422)、または説明およびチュートリアルを含むヘルプを得ること(424)を可能にする。
図4BのGUI400は、2つのセルビューに関するシステム1000のフィルタリング動作を示す。ユーザは、比較するために異なるセルビューまたはデータベースバージョンを選択し(430)、強調表示するためのオブジェクトについて結果をフィルタリングする(431)。システム1000は、「diff」動作を実施し(相違を決定する)、グラフィカルビュー350b内の強調表示された相違310bを通じて、また出力ファイルに相違をテキストにより出力することを通じても、結果を表示する。
図4CのGUI400は、2つのセルビューに関するシステム1000のマージング動作を示す。ユーザは、比較するために異なるセルビューまたはデータベースバージョンを選択する(430)。システム1000は、「diff」動作を実施し(相違を決定する)、グラフィカルビュー350b内の強調表示された相違310bを通じて、また出力ファイルに相違をテキストにより出力することを通じて結果を表示する。また、ユーザは、マージするべきアイテムを選択し(432)、強調表示された/選択された相違を自動的にマージする(433)。
図4Cに示されているように、システム1000は、テキストによる原語のためのdiff/マージと同様であり、ユーザが相違ソースから変更を管理し、それらの変更を選択し、選択された変更を適用することを可能にする。設計の態様、たとえばインスタンス、または個々のレイヤ上の形状は、個々にマージされる。システム1000は、ユーザがどのタイプの要素をマージするか定義すること、たとえば単純なグラフィカル操作を無視することを可能にするようにカスタマイズ可能である。さらに、システム1000は、内容が異なるセルビューをエンジニアが自動的にマージすることを可能にすることによって開発生産性を改善する。
図5Aは、本発明を実施するシステムまたはプロセス1000のステップの高レベル流れ図500を示す。ステップ501では、(第1のデータストアからの)設計情報の第1のバージョン、および(第2のデータストアからの)設計情報の第2のバージョンが表現される。設計情報は、設計オブジェクトを含む。ステップ502では、第1のデータストアおよび第2のデータストアが、(分割ルーチンを通じて)第1のデータベースと第2のデータベースの間で対応するセクションに分割される。ステップ503では、各セクション内の各オブジェクトに鍵が割り当てられる。鍵割当て503については、以下の図5Bでより詳細に述べる。
図5Aに戻ると、ステップ504は、第1のデータストア内のセクション内のオブジェクトの鍵および第2のデータストア内の対応するセクション内のオブジェクトの鍵に基づいて第1の比較を実施することによって、セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。ステップ505では、第2の比較を通じて、1または複数のオブジェクトの相違が決定される。第1のデータストア内の各所与のオブジェクトおよび第2のデータストア内で同じ鍵を共有するその対応するオブジェクトについて、1または複数のオブジェクトの相違を決定する第2の比較が実施される。ステップ506では、第1の比較および第2の比較から得られる相違がユーザに提示される。ステップ507では、システム1000は、ユーザがそれらの相違からの少なくとも1つの相違のセットを選択することを可能にする。ステップ508では、システム1000は、ユーザが選択された相違を設計情報の第2のバージョンに適用することを可能にする。
図5Bは、本発明のシステムまたはプロセス1000の鍵割当てアルゴリズム(または鍵生成ルーチン)503の高レベル流れ図を示す。分割ルーチンに関連付けられるデータストア内のデータのあらゆるセットがやはり、鍵生成ルーチンに関連付けられることに留意されたい。ステップ503aでは、各セクションについて、鍵が(以下のように)セクション内の各オブジェクトに割り当てられる。ステップ503bでは、同じ(一意の)鍵が、第1のデータストア内のセクション内のオブジェクトと、第2のデータストア内の対応するセクション内のオブジェクトとに割り当てられる。ステップ503cでは、それぞれの(一意の)鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられる。これらの鍵は、オブジェクト位置、オブジェクトテキスト、および/または他のオブジェクト属性に基づいて生成される。
図5Cは、本発明の3方比較およびマージを示す本発明のシステムまたはプロセス1000の別の高レベル流れ図520を示す。ステップ521では、(第1のデータストアからの)設計情報の第1のバージョン、(第2のデータストアからの)設計情報の第2のバージョン、および(先祖データストアからの)設計情報の先祖バージョンが表現される。設計情報の先祖バージョンは、設計情報の第1のバージョンおよび第2のバージョンに対して先祖である。ステップ522では、第1、第2、および先祖データストアが、(分割ルーチンを通じて)先祖データストアと第1のデータストアと第2のデータストアとの間で対応するセクションに分割される。ステップ523では、各セクション内の各オブジェクトに鍵が割り当てられる。鍵割当て523については、以下の図5Dでより詳細に述べる。
図5Cに戻ると、ステップ524は、先祖データストア内のセクション内ならびに第1のデータストアおよび第2のデータストア内の対応するセクション内のオブジェクトの鍵に基づいて比較を実施することによって、セクションのオブジェクトが追加、削除、または修正されているかどうか決定する。ステップ525では、1または複数の相違が、追加の比較を通じて決定される。第1のデータストアおよび第2のデータストア内の各所与のオブジェクト、ならびに先祖データストア内で同じ鍵を共有するその対応するオブジェクトについて、1または複数のオブジェクトの相違を決定する追加の比較が実施される。ステップ526では、これらの比較から得られる相違がユーザに提示される。ステップ527では、システム1000は、ユーザがそれらの相違からの少なくとも1つの相違のセットを選択することを可能にする。ステップ528では、システム1000は、ユーザが選択された相違を設計情報の第2のバージョンに適用することを可能にする。
図5Dは、本発明のシステムまたはプロセス1000の鍵割当てアルゴリズム(または鍵生成ルーチン)523の高レベル流れ図を示す。分割ルーチンに関連付けられるデータストア内のデータのあらゆるセットがやはり、鍵生成ルーチンに関連付けられることに留意されたい。ステップ523aでは、各セクションについて、鍵が(以下のように)セクション内の各オブジェクトに割り当てられる。ステップ523bでは、同じ(一意の)鍵が、先祖データストア内のセクション内のオブジェクトと、第1のデータストアおよび第2のデータストア内の対応するオブジェクトとに割り当てられる。ステップ523cでは、それぞれの(一意の)鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられる。これらの鍵は、オブジェクト位置、オブジェクトテキスト、および/または他のオブジェクト属性に基づいて生成される。
図6は、提案されている手法が実装されるコンピュータネットワークまたは同様のデジタル処理環境を示す。
クライアントコンピュータ/デバイス50およびサーバコンピュータ60は、アプリケーションプログラムなどを実行する処理、記憶、および入力/出力デバイスを提供する。また、クライアントコンピュータ/デバイス50は、通信ネットワーク70を通じて、他のクライアントデバイス/プロセス50およびサーバコンピュータ60を含む他のコンピューティングデバイスにリンクされる。通信ネットワーク70は、現在それぞれのプロトコル(TCP/IP、BLUETOOTH(登録商標)など)を使用し互いに通信するリモートアクセスネットワーク、グローバルネットワークまたはローカルネットワーク(たとえば、インターネット)、コンピュータの世界的な集まり、ローカルエリアネットワークまたはワイドエリアネットワーク、およびゲートウェイの一部であってよい。他の電子デバイス/コンピュータネットワークアーキテクチャが好適である。
図7は、図6のコンピュータシステム内のコンピュータ(たとえば、クライアントプロセッサ/デバイス50またはサーバコンピュータ60)の内部構造の図である。各コンピュータ50、60はシステムバス79を含み、バスはコンピュータまたは処理システムの構成要素の間でデータを転送するために使用されるハードウェアラインのセットである。バス79は、本質的に、コンピュータシステムの異なる要素(たとえば、プロセッサ、ディスクストレージ、メモリ、入力/出力ポート、ネットワークポートなど)を接続し、それらの要素間で情報の転送を可能にする、共有された導管である。システムバス79には、様々な入力および出力デバイス(たとえば、キーボード、マウス、ディスプレイ、プリンタ、スピーカなど)をコンピュータ50、60に接続するためのI/Oデバイスインターフェース82が接続される。ネットワークインターフェース86は、ネットワーク(たとえば、図6のネットワーク70)に接続された様々な他のデバイスにコンピュータが接続することを可能にする。メモリ90は、提案されている手法の実施形態(たとえば、上記で詳述したシステム1000およびプロセスステップ/フロー400)を実装するために使用されるコンピュータソフトウェア命令92およびデータ94のための揮発性記憶を提供する。ディスクストレージ95は、提案されている手法の実施形態を実装するために使用されるコンピュータソフトウェア命令92およびデータ94のための不揮発性記憶を提供する。データ94はクライアント50とサーバ60の間で同じであってもよいが、コンピュータソフトウェア命令92のタイプは、クライアント50とサーバ60の間で異なってもよいことに留意されたい。また、中央プロセッサユニット84は、システムバス79に接続され、コンピュータ命令の実行をする。
一実施形態では、プロセッサルーチン92およびデータ94は、本発明のシステムのためにソフトウェア命令の少なくとも一部分を提供するコンピュータ可読媒体(たとえば、1または複数のDVD−ROM、CD−ROM、ディスケット、テープなど取外し式記憶媒体)を含むコンピュータプログラム製品(全体的に92で参照される)である。コンピュータプログラム製品92は、当技術分野で周知の任意の好適なソフトウェアインストール手順によってインストールされる。他の実施形態では、ソフトウェア命令の少なくとも一部分もまた、ケーブル、通信、および/または無線接続の上でダウンロードされてもよい。他の実施形態では、本発明のプログラムは、伝搬媒体上の伝搬信号(たとえば、電波、赤外線波、レーザ波、音波、またはインターネットなどグローバルネットワークもしくは他のネットワークの上で伝搬される電気波)上に含まれるコンピュータプログラム伝搬信号製品107(図6に示す)である。そのようなキャリア媒体または信号は、提案されている手法のルーチン/プログラム92のためのソフトウェア命令の少なくとも一部分を提供する。
代替的実施形態では、伝搬信号は、アナログ搬送波、または伝搬媒体上で担持されるデジタル信号である。たとえば、伝搬信号は、グローバルネットワーク(たとえば、インターネット)、電気通信ネットワーク、または他のネットワークの上で伝搬されるデジタル信号である。一実施形態では、伝搬信号は、数ミリ秒、数秒、数分、またはそれ以上の期間にわたってネットワークの上で、パケット内で送られるソフトウェアアプリケーションのための命令など、ある期間にわたって伝搬媒体の上で送信される信号である。他の実施形態では、コンピュータプログラム製品92のコンピュータ可読媒体は、伝搬媒体を受信し、コンピュータプログラム伝搬信号製品について上述したように伝搬媒体内に含まれる伝搬信号を識別することによってなど、コンピュータシステム50が受信し読み取る伝搬媒体である。
一般的に言えば、「キャリア媒体」という用語、または過渡的キャリアは、前述の過渡的信号、伝搬信号、伝搬媒体、記憶媒体などを包含する。
提案されている手法は、アナログ構成要素とデジタル構成要素の両方のためのIC設計環境に当てはまる。提案されている手法は、ICに限定されず、プリント回路板(PCB)、回路図、ならびにアナログ回路および/またはデジタル回路のための他の使用法にも適用される。提案されている手法は、それだけには限らないが2次元または3次元を含めて、多次元の設計を処理する。
本発明についてその例示的な実施形態を参照して示し述べたが、添付の特許請求の範囲によって包含される本発明の範囲から逸脱することなしに、形態および詳細の様々な変更が本発明に加えられることを、当業者なら理解するであろう。

Claims (14)

  1. 集積回路(IC)設計情報を管理するための、コンピュータによって実施される方法であって、
    第1のデータストア内で対象IC設計情報の第1のバージョンを表現するステップと、
    第2のデータストア内で前記対象IC設計情報の第2のバージョンを表現するステップ
    と、
    前記第1のデータストアを複数のセクションに分割するステップであって、各セクションは前記第1のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する、該ステップと、
    前記第2のデータストアを前記第1のデータストアの前記複数のセクションに対応するセクションに分割するステップであって、前記第2のデータストアの各セクションは前記第2のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する、該ステップと、
    各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てるステップであって、前記鍵の割当ては、
    (a)同じ鍵が、
    (i)前記第1のデータストア内のセクション内の対象オブジェクトと、
    (ii)前記第1のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第2のデータストア内の対応するセクション内のオブジェクトとに割り当てられ、
    (b)それぞれの鍵が、別途鍵が割り当てられていない各オブジェクトに割り当てられるという結果になる、該ステップと、
    各所与のセクションについて、前記第1のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第2のデータストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第1の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するステップと、
    前記第1のデータストア内の各所与のオブジェクト、および前記第2のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、1または複数のオブジェクトの相違を決定する第2の比較を実施するステップと、
    前記第1の比較および前記第2の比較の結果に基づいて、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンと前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンとの間の1または複数の相違を提示するステップと
    を備えたことを特徴とする方法。
  2. エンドユーザが前記1または複数の相違のうちの少なくとも1つの相違セットを選択することを可能にするステップと、
    前記エンドユーザが前記選択された相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にするステップと
    をさらに備えたことを特徴とする請求項1に記載のコンピュータによって実施される方法。
  3. 前記1または複数の相違がテキストによるフォーマットでエンドユーザに提示されることを特徴とする請求項1に記載のコンピュータによって実施される方法。
  4. 前記1または複数の相違がグラフィカル表現上で各相違を強調表示することによってエンドユーザに提示されることを特徴とする請求項1に記載のコンピュータによって実施される方法。
  5. 各オブジェクトに鍵を割り当てるステップは、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てるステップを含むことを特徴とする請求項1に記載のコンピュータによって実施される方法。
  6. 先祖データストア内の前記対象IC設計情報の先祖バージョンを表現するステップであって、前記第1のバージョンおよび前記第2のバージョンは、前記先祖バージョンからのものである、該ステップと、
    前記先祖データストアを、前記第1のデータストアおよび前記第2のデータストアのうちの前記複数のセクションに対応するセクションに分割するステップであって、前記先祖データストアの各セクションは、前記先祖バージョン内の前記IC設計情報の一部分を表すそれぞれのオブジェクトを保持する、該ステップと、
    前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当てるステップであって、前記先祖データストアの各セクションについて、
    (1)同じ鍵が、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第1のデータストアおよび前記第2のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、および、
    (2)それぞれの鍵が、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられるという結果になる、該ステップと、
    各所与のセクションについて、前記第1のデータストアおよび前記第2のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第3の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するステップと、
    前記第1のデータストアおよび前記第2のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、1または複数のそれぞれのオブジェクトの相違を決定する第4の比較を実施するステップと、
    前記第3の比較および前記第4の比較の結果に基づいて、前記先祖データストア内の前記対象IC設計情報の前記先祖バージョンと、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンおよび前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンのうちの少なくとも1つとの間の少なくとも1つの相違を提示するステップと、
    エンドユーザが前記少なくとも1つの相違のうちの少なくとも1つの、それぞれの相違セットを選択することを可能にするステップと、
    前記エンドユーザが前記選択されたそれぞれの相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にするステップとをさらに備えたことを特徴とする請求項1に記載のコンピュータによって実施される方法。
  7. 集積回路(IC)設計情報を管理するための、コンピュータによって実施されるシステムであって、
    第1のデータストア内で対象IC設計情報の第1のバージョンを表現するように構成されたデータモジュールであって、
    前記データモジュールは第2のデータストア内で前記対象IC設計情報の第2のバージョンを表現するようにさらに構成された、該データモジュールと、
    前記第1のデータストアを複数のセクションに分割するように構成された分割モジュールであって、各セクションは前記第1のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持し、
    前記分割モジュールは、前記第2のデータストアを前記第1のデータストアの前記複数のセクションに対応するセクションに分割するようにさらに構成され、前記第2のデータストアの各セクションは前記第2のバージョンにおける前記対象IC設計情報の一部分を表すそれぞれのオブジェクトを保持する、該分割モジュールと、
    各セクションについて、前記オブジェクトの態様に従って前記セクション内の各オブジェクトに鍵を割り当てるように構成された制御モジュールであって、前記制御モジュールによる鍵の割当ては、
    (a)同じ鍵が、制御モジュールによって、
    (i)前記第1のデータストア内のセクション内の対象オブジェクトと、
    (ii)前記第1のデータストア内の前記対象オブジェクトに対応するオブジェクトである前記第2のデータストア内の対応するセクション内のオブジェクトとに割り当てられ、および、
    (b)それぞれの鍵が、前記制御モジュールによって、別途制御モジュールによって鍵が割り当てられていない各オブジェクトに割り当てられるという結果になり、
    前記制御モジュールは、各所与のセクションについて、前記第1のデータストア内の前記セクション内の前記オブジェクトの鍵、および前記第2のデータストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第1の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成され、
    前記制御モジュールは、前記第1のデータストア内の各所与のオブジェクト、および前記第2のデータストア内で前記同じ鍵を共有するその対応するオブジェクトについて、1または複数のオブジェクトの相違を決定する第2の比較を実施するようにさらに構成された、該制御モジュールと、
    前記第1の比較および前記第2の比較の結果に基づいて、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンと前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンとの間の1または複数の相違を提示するように構成された表示モジュールと
    を備えたことを特徴とするシステム。
  8. 前記制御モジュールは、エンドユーザが前記1または複数の相違のうちの少なくとも1つの相違セットを選択することを可能にするようにさらに構成され、
    前記制御モジュールは、前記エンドユーザが前記選択された相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にするようにさらに構成されたことを特徴とする請求項7に記載のコンピュータによって実施されるシステム。
  9. 前記表示モジュールは、前記1または複数の相違をテキストによるフォーマットでエンドユーザに提示するようにさらに構成されたことを特徴とする請求項7に記載のコンピュータによって実施されるシステム。
  10. 前記表示モジュールは、前記1または複数の相違を、グラフィカル表現上で各相違を強調表示することによってエンドユーザに提示するようにさらに構成されたことを特徴とする請求項7に記載のコンピュータによって実施されるシステム。
  11. 前記制御モジュールは、各オブジェクトに鍵を割り当てるようにさらに構成され、前記制御モジュールは、前記オブジェクトの位置情報とプロパティ情報の任意の組合せに基づいて前記鍵を割り当てることを特徴とする請求項7に記載のコンピュータによって実施されるシステム。
  12. 前記データモジュールは、先祖データストア内の前記対象IC設計情報の先祖バージョンを表現するようにさらに構成され、前記第1のバージョンおよび前記第2のバージョンは、前記先祖バージョンからのものであり、
    前記分割モジュールは、前記先祖データストアを、前記第1のデータストアおよび前記第2のデータストアのうちの前記複数のセクションに対応するセクションに分割するようにさらに構成され、前記先祖データストアの各セクションは前記先祖バージョン内の前記IC設計情報の一部分を表すそれぞれのオブジェクトを保持し、
    前記制御モジュールは、前記先祖データストア内の各セクションについて、前記オブジェクトの態様に従って各オブジェクトに鍵を割り当て、前記先祖データストアの各セクションについて、
    (1)同じ鍵が、前記制御モジュールによって、前記先祖データストアの前記セクション内の所与のオブジェクトと、前記先祖データストア内の前記所与のオブジェクトに対応する前記第1のデータストアおよび前記第2のデータストアの対応するセクション内の対応するオブジェクトとに割り当てられ、および、
    (2)それぞれの鍵が、前記制御モジュールによって、前記先祖データストアの前記セクション内の残りのオブジェクトに割り当てられるという結果になり、
    前記制御モジュールは、各所与のセクションについて、前記第1のデータストアおよび前記第2のデータストア内の前記セクション内の前記オブジェクトの鍵、ならびに前記先祖データストア内の対応するセクション内の前記オブジェクトの鍵に基づいて、第3の比較を実施することによって、前記セクションのオブジェクトが追加、削除、または修正されているかどうか決定するようにさらに構成され、
    前記制御モジュールは、前記第1のデータストアおよび前記第2のデータストア内の各所与のオブジェクト、ならびに前記先祖データストア内で前記同じ鍵を共有するその対応するオブジェクトについて、第4の比較を実施するようにさらに構成され、該さらなる比較は1または複数のそれぞれのオブジェクトの相違を決定し、
    前記表示モジュールは、第3の比較および第4の比較の結果に基づいて、前記先祖データストア内の前記対象IC設計情報の前記先祖バージョンと、前記第1のデータストア内の前記対象IC設計情報の前記第1のバージョンおよび前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンのうちの少なくとも1つとの間の少なくとも1つの相違を提示するようにさらに構成され、
    前記制御モジュールは、エンドユーザが前記少なくとも1つの相違うちの少なくとも1つの、それぞれの相違セットを選択することを可能にするようにさらに構成され、
    前記制御モジュールは、前記エンドユーザが前記選択されたそれぞれの相違セットを前記第2のデータストア内の前記対象IC設計情報の前記第2のバージョンに適用することを可能にするようにさらに構成されたことを特徴とする請求項7に記載のコンピュータによって実施されるシステム。
  13. コンピュータに、請求項1ないし6のいずれかに記載の方法を実行させることを特徴とするコンピュータプログラム
  14. 請求項13記載のコンピュータプログラムを記録した非一時的なコンピュータ可読媒体。
JP2014188834A 2013-09-25 2014-09-17 Ic設計データの比較およびマージング Active JP6352744B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/036,734 2013-09-25
US14/036,734 US9557989B2 (en) 2013-09-25 2013-09-25 Comparison and merging of IC design data

Publications (3)

Publication Number Publication Date
JP2015079493A JP2015079493A (ja) 2015-04-23
JP2015079493A5 JP2015079493A5 (ja) 2017-08-31
JP6352744B2 true JP6352744B2 (ja) 2018-07-04

Family

ID=51618999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014188834A Active JP6352744B2 (ja) 2013-09-25 2014-09-17 Ic設計データの比較およびマージング

Country Status (6)

Country Link
US (1) US9557989B2 (ja)
EP (1) EP2854052A1 (ja)
JP (1) JP6352744B2 (ja)
KR (1) KR20150034106A (ja)
CN (1) CN104572800B (ja)
CA (1) CA2864915A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779193B1 (en) * 2015-03-31 2017-10-03 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing electronic design layouts with symbolic representations
WO2017134651A1 (en) * 2016-02-01 2017-08-10 Shapedo Ltd. Comparing and merging complex data structures
CN106777766B (zh) * 2017-01-03 2019-09-03 山东理工大学 一级渐变刚度板簧的各片副簧下料长度的设计方法
JP6870479B2 (ja) 2017-05-30 2021-05-12 オムロン株式会社 Hmi開発支援装置、hmi開発支援方法、および、hmi開発支援プログラム
CN107341197B (zh) * 2017-06-16 2020-05-05 国电南瑞科技股份有限公司 一种电力系统多版本图形差异可视化展示方法
US10423750B1 (en) * 2017-10-24 2019-09-24 Cadence Design Systems, Inc. Technology database independent components for integrated circuit package
CN114416163A (zh) * 2021-12-27 2022-04-29 中国民航信息网络股份有限公司 一种制品管理方法、系统、存储介质和电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3137231B2 (ja) * 1995-11-02 2001-02-19 株式会社図研 差分表示装置
JP3761156B2 (ja) * 2001-07-27 2006-03-29 三菱電機株式会社 接続図面の編集表示装置、その動作方法およびその方法をコンピュータに実行させるプログラム
US7420573B1 (en) 2001-11-09 2008-09-02 The Mathworks, Inc. System and method for merging electronic diagrams
GB0217201D0 (en) * 2002-07-24 2002-09-04 Beach Solutions Ltd XML database differencing engine
US7373586B2 (en) 2004-09-03 2008-05-13 International Business Machines Corporation Differencing and merging tree-structured documents
US7703027B2 (en) 2005-01-13 2010-04-20 National Instruments Corporation Merging graphical programs
US7904844B2 (en) 2007-03-30 2011-03-08 Taiwan Semiconductor Manufacturing Company, Ltd. System, method, and computer program product for matching cell layout of an integrated circuit design
KR101580258B1 (ko) * 2008-06-10 2015-12-28 오아시스 툴링 인코포레이티드 생산용 칩 디자인 워크플로우에서의 셀 무결성, 변경 및 기점에 대한 독립적인 평가 방법 및 장치
US8286132B2 (en) 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically
JP2012038266A (ja) * 2010-08-11 2012-02-23 Ricoh Co Ltd 設計支援装置及び設計支援方法
EP2718860A4 (en) 2011-06-10 2015-03-04 Oasis Tooling Inc INTELLECTUAL PROPERTY IDENTIFICATION OF HIERARCHICAL CHIP DESIGN BY SUMMARY

Also Published As

Publication number Publication date
JP2015079493A (ja) 2015-04-23
EP2854052A1 (en) 2015-04-01
CN104572800B (zh) 2018-08-21
US20150088861A1 (en) 2015-03-26
US9557989B2 (en) 2017-01-31
CA2864915A1 (en) 2015-03-25
KR20150034106A (ko) 2015-04-02
CN104572800A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
JP6352744B2 (ja) Ic設計データの比較およびマージング
US9639240B2 (en) Computer-implemented method for launching an installed application
US9129081B2 (en) Synchronized three-dimensional display of connected documents
TWI423057B (zh) 佈局對原理圖錯誤系統及方法
US9292182B2 (en) Business intelligence dashboard assembly tool with indications of relationships among content elements
US6910200B1 (en) Method and apparatus for associating selected circuit instances and for performing a group operation thereon
US10641822B2 (en) Critical path architect
CN107480369B (zh) 一种pcb设计中分类显示drc的设计、操作方法
EP2577516A2 (en) Search-based system management
CN106406999A (zh) 计算系统和计算系统的执行控制方法
CN104834759A (zh) 电子设计的实现方法和装置
US9355130B1 (en) Method and system for component parameter management
US9690893B1 (en) Methods and systems for customizable editing of completed chain of abutted instances
US10055533B2 (en) Visualization of analysis process parameters for layout-based checks
US8813004B1 (en) Analog fault visualization system and method for circuit designs
US20160232275A1 (en) Method and apparatus for logical design connectivity-based automatic macro placement
US9348963B1 (en) Automatic abutment for devices with horizontal pins
US20160210396A1 (en) Method and apparatus for visualizing timing margin on a graphical user interface
CN109298686A (zh) 用于针对基于规则的制造工艺设计使用商业智能的系统和方法
US10031989B2 (en) Integrated circuit performance modeling using a connectivity-based condensed resistance model for a conductive structure in an integrated circuit
US8839166B1 (en) Method and apparatus for unified out-of-context flow and automation for IP reuse and hierarchical design flows
US9436796B2 (en) Method and apparatus for determining common node logical connectivity
JP6364786B2 (ja) 設計書管理プログラム、設計書管理方法および設計書管理装置
WO2022107228A1 (ja) 操作支援装置、操作支援方法および操作支援プログラム
US10963616B1 (en) Systems and methods of aligning sets of wires with minimum spacing rules

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180607

R150 Certificate of patent or registration of utility model

Ref document number: 6352744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250