(57)【特許請求の範囲】
【請求項１】
少なくとも１つの回路層を含む集積回路を診断する方法であって、
前記少なくとも１つの回路層の各々について複数の画像を捕捉するステップと、
前記少なくとも１つの回路層について層情報を規定するステップであって、
捕捉した前記複数の画像の各々について回路要素を識別するステップと、
第２の回路要素に重なる第１の回路要素を決定するステップと、
前記第１の回路要素および前記第２の回路要素を１つのネット・グループに縮小するステップとを含む、ステップと、
前記ネット・グループに基づいてコンポーネント・ネットリストを作成するステップと、
階層的合成ルールを適用することによって、前記コンポーネント・ネットリストに基づいて論理ネットリストを作成するステップと、
前記論理ネットリストに基づいて回路図を作成するステップとを有し、
前記集積回路のコンポーネントが、ポート情報、電力情報、およびコンポーネント・ピン接続情報の少なくとも１つに基づいて前記回路図内に配置される、方法。
【請求項２】
前記決定するステップにおいて分散が用いられる、請求項１に記載の方法。
【請求項３】
請求項１に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、集積回路の診断に関する。
【背景技術】
【０００２】
多くの場合、失われたネットリスト（netlist）または回路図（schematic）を回復するため、集積回路をネットリストもしくは回路図またはその双方に分解して模倣し、集積回路が知的所有権を侵害しているか否かを判定し、または集積回路の性能もしくは故障を分析することが望ましい。回路図は、回路の視覚表現であり、ネットリストは、回路の全要素および様々なピン接続のテキスト表現である。集積回路のいくつかの特性によって、このリバース・エンジニアリングのプロセスは、困難かつ時間のかかるものとなる。例えば、集積化路上の様々なコンポーネントの物理的配置は、それらのコンポーネントが回路図においてどこに配置されているかとは関連を持たない場合がある。更に、集積回路は、多くの場合、いくつかの層において実施され、それらを共に結び付けて意図する接続性を確立している。
【０００３】
最近、本来は退屈なリバース・エンジニアリング・プロセスを支援するいくつかの解決策が提案されている。一般に、集積回路の層を調べるため、走査型電子顕微鏡（ＳＥＭ：scanning electron microscope）または同様の撮像装置が用いられる。追加のツールによって、画像上でデータのオーバーレイを可能とし、コンポーネントの特徴および配線の相互接続を区別することができる。あるいは、ツールにより、画像をレイアウト（layout）に変換することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、リバース・エンジニアリング・プロセスを継続してネットリストもしくは回路図またはその双方を作成することは、依然として特別なスキルを必要とし、時間がかかる。この結果、集積回路からネットリストもしくは回路図またはその双方を作成するために必要なスキルの量を減らしながら、結果として得られるネットリストもしくは回路図またはその双方の精度を高める集積回路診断システム、方法、およびプログラム・プロダクトに対する要望がある。
【課題を解決するための手段】
【０００５】
本発明は、集積回路を診断するための方法、システム、およびプログラム・プロダクトを提供する。具体的には、本発明は、集積回路の各関連回路レイアウトごとに、１つ以上の画像を捕捉する。画像（複数の画像）に基づいて、コンポーネント・ネットリストを作成する。更に、コンポーネント・ネットリストに階層的合成ルールを適用することによって、論理ネットリストを作成する。コンポーネント・ネットリストまたは論理ネットリストを参照ネットリストと比較して、集積回路を診断することができる。本発明は、更に、コンポーネント・ネットリストまたは論理ネットリストに基づいて回路図を作成する。回路図では、ネットリストから求められたポート、電力、もしくはコンポーネント・ピン接続情報またはそれら全てに従って、コンポーネントが配置されている。更に、回路図を表示することができ、その場合、配線接続を選択的に表示して、ユーザが回路コンポーネントをインテリジェントに配置することに役立てることができる。
【０００６】
本発明の例示的な態様は、本明細書中に記載した問題および当業者によって発見可能な開示していない他の問題を解決するように設計されている。
【０００７】
本発明のこれらおよび他の特徴は、添付図面と関連付けた本発明の様々な実施形態の以下の詳細な説明から、より容易に理解されよう。
【０００８】
本発明の図面は、縮尺通りでないことに留意すべきである。図面は、本発明の典型的な実施形態を図示することのみを意図し、従って、本発明の範囲を限定するものと見なされるものではない。図面において、同様の付番は図面間で同様の要素を表す。
【発明を実施するための最良の形態】
【０００９】
単に便宜上であるが、詳細な説明は、１．例示的なシステム、２．方法の概要、３．画像（複数の画像）の捕捉、４．コンポーネント・ネットリストの作成、５．論理ネットリストの作成、６．ネットリストの用途、７．代替案を含む見出しによって指示される項を含む。
【００１０】
本発明は、集積回路（「ＩＣ」）を診断するシステム、プログラム・プロダクト、および方法を提供する。本発明は、集積回路の各回路層の１つ以上の画像に基づいて、「コンポーネント・ネットリスト」もしくは「論理ネットリスト」またはその双方を作成する。「コンポーネント・ネットリスト」は、集積回路において用いられる回路コンポーネント（すなわち、トランジスタ、キャパシタ、抵抗、ポート、電力レール、抵抗、ダイオード、チップ等）およびそれらの相互接続を含む。「論理ネットリスト」は、コンポーネント・ネットリストにおける回路コンポーネントの１つ以上の集合を、回路コンポーネントの各集合が実施する機能（複数の機能）（すなわち、ＡＮＤゲート、ＮＡＮＤ動作、加算器等）を表す１つ以上のシンボルによって置換したリストを含む。
【００１１】
１．例示的なシステム
図１は、本発明の１実施形態による集積回路診断システム１２を示す。システム１２は、中央演算処理装置（ＣＰＵ）１４、メモリ１６、入力／出力（Ｉ／Ｏ）インタフェース１８、バス２０、および任意選択的なデータベース２４を含むことができる。図示のように、ユーザ３０は、Ｉ／Ｏインタフェース１８を介してシステム１２とインタラクトする。システム１２は、いずれかのタイプの汎用／特定用途コンピュータ化システム（例えばサーバ、デスクトップ・コンピュータ等）とすれば良い。ユーザ３０は、システム１２を用いる個人であるか、または、例えばネットワークによってシステム１２にアクセスするために使用可能ないずれかのタイプのコンピュータ化システム（例えば、移動電話、ハンドヘルド・コンピュータ、パーソナル・デジタル・アシスタント、携帯（ラップトップ）コンピュータ、デスクトップ・コンピュータ、ワークステーション、メインフレーム・コンピュータ等）を含むことができる。後者の場合、ユーザ３０とシステム１２との間の通信は、かかる目的のための現在既知のもの、または後に開発される機構とすることができ、例えば、１つ以上の直接配線接続（例えばシリアル・ポート）、または、ワイヤラインもしくはワイヤレス伝送方法またはその双方のいずれかの組み合わせを用いることができるクライアント−サーバ（またはサーバ−サーバ）環境におけるアドレス可能接続を介したものとすれば良い。クライアント−サーバ環境では、サーバおよびクライアントは、インターネット、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、仮想プライベート・ネットワーク（ＶＰＮ：Virtual Private Network）、またはその他のプライベート・ネットワークを介して接続することができる。サーバおよびクライアントは、トークン・リング（Token Ring）、イーサネット（Ｒ）（Ethernet(R)）、ＷｉＦｉ、または他の従来の通信規格等の従来のネットワーク接続を利用することができる。クライアントが、インターネットを介してサーバと通信を行う場合、従来のＴＣＰ／ＩＰソケット・ベースのプロトコルによって接続を提供することができる。この場合、クライアントは、インターネット・サービス・プロバイダを利用してサーバへの接続を確立する。
【００１２】
システム１２は、標準的なオペレーティング・システム・ソフトウエアを利用するいずれかの汎用または特定用途のシステムを含むことができる。そのソフトウエアは、特定のハードウエアの動作を駆動するように設計され、他のシステム・コンポーネントおよびＩ／Ｏコントローラとコンパチブルである。ＣＰＵ１４は、単一の処理ユニット、並列動作が可能な多数の処理ユニットを含むことができ、または、例えばクライアントおよびサーバ上のような１つ以上の位置の１つ以上の処理ユニット間に分散させることも可能である。メモリ１６は、磁気媒体、光媒体、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、データ・キャッシュ、データ・オブジェクト等を含む、いずれかの既知のタイプのデータ・ストレージもしくは伝送媒体またはその双方を含むことができる。更に、ＣＰＵ１４と同様、メモリ１６は、１つ以上のタイプのデータ・ストレージを含む単一の物理的位置に常駐することができ、または、様々な形態で複数の物理的システム間に分散することも可能である。
【００１３】
Ｉ／Ｏインタフェース１８は、例えば、Ｉ／Ｏポート（シリアル、パラレル、イーサネット（Ｒ）、キーボード、マウス等）、ユニバーサル・シリアル・バス（ＵＳＢ）ポート、拡張バス、ＩＤＥ（Integrated Drive Electronics）、ネットワーク・システム、モデム、スピーカ、モニタ（陰極線管（ＣＲＴ）、液晶表示装置（ＬＣＤ）等）、ハンド・ヘルド・デバイス、キーボード、マウス、音声認識システム、音声出力システム、スキャナ、プリンタ、ファクシミリ、ページャ、ストレージ・デバイス等を含む、ユーザ３０と情報を交換するためのいずれかのシステムを含むことができる。バス２０は、コンピュータ・システム１２内の各コンポーネント間の通信リンクを提供し、また、電子、光、ワイヤレス等を含むいずれかの既知のタイプの伝送リンクを含むことができる。更に、図示しないが、キャッシュ・メモリ、通信システム、システム・ソフトウエア等の追加のコンポーネントもシステム１２内に組み込むことができる。
【００１４】
データベース２４は、以下で説明するように本発明を実行するために必要な情報のストレージを提供することができる。このため、データベース２４は、磁気ディスク・ドライブまたは光ディスク・ドライブ等の１つ以上のストレージ・デバイスを含む場合がある。更に、データベース２４は、例えば、ＬＡＮ、ＷＡＮ、またはストレージ・エリア・ネットワーク（ＳＡＮ：Storage Area Network）（図示せず）間に分散したデータを含むことができる。また、データベース２４は、当業者が１つ以上のストレージ・デバイスを含むとそれを解釈することができるように構成することも可能である。
【００１５】
システム１２は、コンピュータ・プログラム・コードとしてメモリ１６に保存された集積回路診断プログラム３２を含む。集積回路診断プログラム３２は、以下で更に説明する様々な方法を実施する。捕捉システム３４は、集積回路の１つ以上の画像を捕捉し、各画像に座標情報を割り当てることができる。コンポーネント・システム３６は、１つ以上の捕捉した画像に基づいてコンポーネント・ネットリストを作成する。論理システム３８は、コンポーネント・ネットリストに基づいて論理ネットリストを作成する（以下で更に説明する）。また、集積回路診断プログラム３２は、論理ネットリストもしくはコンポーネント・ネットリストまたはその双方を、参照回路から作成された１つ以上の参照論理ネットリストもしくは参照コンポーネント・ネットリストまたはその双方（まとめて「参照ネットリスト」と呼ぶ）と比較する比較システム４０、論理ネットリストもしくはコンポーネント・ネットリストまたはその双方に基づいて回路図を作成する回路図システム４２、回路図において配線情報を選択的に表示する表示システム４４も含むものとして図示する。
【００１６】
集積回路診断プログラム３２内に示す様々なシステムは、例示の目的のためのみに含まれることは理解されよう。この結果、システムの１つ以上を、１つのシステムに統合することも可能であり、または実施しないことも可能である。更に、システムの１つ以上を、集積回路診断プログラム３２とは別個に実行可能な異なるプログラムとして実施することもできる。
【００１７】
２．方法の概要
図２は、本発明の１実施形態による集積回路を診断する例示的な方法を示す。集積回路は、少なくとも１つの層を含み、一般的に、診断を実行する際に関連する２つ以上の層を含む。ステップＳ１では、２つ以上の回路層が関連する場合、現在既知のまたは後に開発されるいずれかの技法を用いて、集積回路の各関連回路層を表示する（すなわち露呈させる）。ステップＳ２では、捕捉システム３４（図１）によって、以下で更に詳細に論じるように、各回路層の１つ以上の画像を捕捉する。ステップＳ３では、画像（複数の画像）からコンポーネント・ネットリストを作成する。本発明は、コンポーネント・システム３６（図１）を用いて画像からコンポーネント・ネットリストを作成するために、２つの選択肢を提供する。これについては、以下で更に詳細に論じる。一方の選択肢を用いた場合、画像（複数の画像）をレイアウトに変換し、ここから、コンポーネント・ネットリストのための情報を抽出する。あるいは、コンポーネント・ネットリストのための情報を、画像の検査から直接取得することも可能である。ステップＳ４では、論理システム３８（図１）によって、コンポーネント・ネットリストに基づいて論理ネットリストを作成する。論理ネットリストは、コンポーネント・ネットリストに階層的合成ルールを適用して、１つ以上の回路要素をそれらが実施する１つ以上の論理機能で置換することによって作成する。
【００１８】
上述のように、集積回路は、１つ以上の入力もしくは出力「ポート」（信号）またはその双方を構成する回路要素を含むことができる。「ポート」は、追加の回路（すなわち、パッド、回路の非分析部分に接続するワイヤ等）に対するインタフェースを提供するいずれかのタイプの回路である。また、集積回路は、多くの場合、内部電力源（Ｖdd）、接地（Ｖss）、または他の電力源に接続された１つ以上の回路要素を含む。本発明は、ネットリスト内にポートおよび電力情報を含むことに対応する。
【００１９】
コンポーネント・ネットリストまたは論理ネットリストは、様々な用途に使用可能である。例えば、論理ネットリストまたはコンポーネント・ネットリストを、比較システム４０（図１）を用いて、参照回路に基づいて、類似の参照ネットリストと比較する。論理ネットリストは、参照回路に基づいて、別の論理ネットリスト（すなわち「参照論理ネットリスト」と比較することができる。同様に、集積回路から作成したコンポーネント・ネットリストは、集積回路を作成するために用いるコンポーネント・ネットリスト（すなわち「参照コンポーネント・ネットリスト」と比較して、製造上のエラーが発生したか否かを判定することができる。２つの回路（ネットリスト）間の類似点および相違点を求め、表示システム４４（図１）によって表示することができる。更に、回路図システム４２（図１）を用いて回路図を生成することができる。回路図では、ポート情報、電力情報、もしくはコンポーネント・ピン接続情報またはそれら全てに基づいて、回路コンポーネントを配置する。例えば、入力ポート回路要素を回路図の左側に位置付け、出力ポート回路要素を右側に位置付け、Ｖddを上部に位置付け、Ｖssを下部に位置付けることができる。回路図内の配線は、表示システム４４（図１）を用いて選択的に表示して、ユーザが回路コンポーネントを更に配置するのに役立てる。
【００２０】
３．画像（複数の画像）の捕捉
ステップＳ２に従って、各関連回路層の１つ以上の画像を捕捉し、例えばデータベース２４（図１）のようなメモリに保存することができる。各層ごとに必要な画像数は、必要な回路解像度、回路層のサイズ等に応じて異なることは理解されよう。例えば、走査型電子顕微鏡（ＳＥＭ）、専門の電子ビーム・ツール（電子ビーム励起電流（ＥＢＩＣ：Electron Beam Induced Current）技法等）、光顕微鏡、デジタル撮像等を含めて、画像を補足するためにいずれかの手段を使用可能である。各回路層ごとに多数の画像を用いる場合、座標システムを用いて、画像を位置付けることができる。例えば、各画像の左上かどに座標値を割り当てることができる。回路層の左上かどを含む画像は、座標参照値（０、０）を有する。座標は、例えば、画像内に存在する画素数もしくは画像に含まれる物理領域またはその双方等に基づいて決定することができる。
【００２１】
画像の捕捉は、１つの画像が１つ以上の隣接画像に部分的に重なるように行うことができる。この重なりは、確実に画像が回路層の全範囲をカバーし、１つの回路要素が２つの隣接画像で検出される状況を特定するのに役立つ。重なりが存在する場合、画像に割り当てた座標参照値は、重なりを考慮しなければならない。例えば、座標が画素数に基づく場合、重複する画素数を全画素から減算して、オフセット画像の座標参照値を得なければならない。あるいは、画像を位置付ける際に充分な精度が得られる場合には、重なりが存在しないように画像を捕捉することも可能である。
【００２２】
４．コンポーネント・ネットリストの作成
ステップＳ３では、集積回路の画像（複数の画像）に基づいて、コンポーネント・ネットリストを作成する。先に簡単に説明したように、コンポーネント・ネットリストを作成するために、２つの選択肢を選択することができる。第１の選択肢は、コンポーネント・ネットリストを作成するために既存の技術にいくつかの改良を加えることであり、第２の選択肢は、もっと直接的な手法を提供する。
【００２３】
Ａ．レイアウトに基づく作成
図３は、コンポーネント・ネットリストを作成する例示的な方法を示す。ステップＳ３０１では、集積回路の画像（複数の画像）を、コンポーネント・システム３６（図１）によって、レイアウトに変換する。この場合、コンポーネント・システム３６（図１）は、画像（複数の画像）をレイアウトに変換するために、Raith USA Inc.によるＣＨＩＰＳＣＡＮＮＥＲ（商標）等のソフトウエアを含むことができる。レイアウトは、集積回路の物理的設計の電子表現である。一般的なレイアウト記述ファイルのフォーマットは、ＧＬ１およびＧＤＳを含む。レイアウトを読み出して、集積回路内の特定の位置で各回路要素の視覚表現を提示することができる。
【００２４】
多くの場合、画像（複数の画像）から作成したレイアウトは、配線および物理的レイアウト情報を含むが、これには他の情報がない。例えば、集積回路のポート（複数のポート）および電力レール（複数のレール）の描写は存在しないことが多い。ウエル、公称Ｖｔトランジスタおよび低Ｖｔトランジスタの差別化等の他の情報も、存在しない場合がある。このため、コンポーネント・システム３６（図１）を用いてレイアウトを編集して、存在しない情報の一部または全ての描写を含ませることができる。例えば、デバイス間の閾値電圧の差には、通常、埋め込みマスクを付ける。埋め込みマスクは、新しいレベルとしてレイアウト・データに含ませることができる。特に、ステップＳ３０２に示すように、ポートおよび電力情報をレイアウトに追加することができる。この情報は、コンポーネント・ネットリストを用いた回路図の作成、コンポーネント・ネットリストと別のコンポーネント・ネットリストとの比較、もしくはコンポーネント・ネットリストの論理ネットリストへの変換、またはそれら全てにおいて役立つ。これらの各々については以下で更に論じる。
【００２５】
ステップＳ３０３では、レイアウトから、コンポーネント情報（トランジスタ、抵抗、チップ、ポート、電力レール等）を抽出する。ステップＳ３０４では、レイアウトから、ネット接続性（すなわちピン−ピン接続等の配線情報）を抽出する。ステップＳ３０５では、コンポーネント情報およびネット接続性を用いて、コンポーネント・ネットリストを作成する。
【００２６】
コンポーネント・システム３６（図１）の一部として、抽出エンジンを設けて、ステップＳ３０３、Ｓ３０４、およびＳ３０５を実施することができる。抽出エンジンは、コンポーネント・ネットリストからレイアウトを作成する１つ以上のツールから構築することができる。これらのツールを変更して、レイアウトからコンポーネント・ネットリストを抽出すれば良い。例えば、ＩＢＭ社（International Business Machines）によるＥＲＩＥ（商標）は、抽出エンジンの機能を実行するように変更可能なレイアウト発生ツールの１例である。この場合、ＥＲＩＥを変更して、レイアウト・インタラクションを記述するデータを受け入れる。このデータを用いて、コンポーネント情報およびネット接続性を抽出する。次いで、抽出した情報を組み合わせて、レイアウト・コンポーネントおよびそれらの接続をテキスト表現したもの（すなわちコンポーネント・ネットリスト）にフォーマット化する。
【００２７】
上述したレイアウトに基づく手法は、いくつかの改良と共に既存の技術を用いるので好都合であるが、この手法は、場合によっては好適でないことがある。例えば、もっと小さい集積回路を診断している場合、もっと「自動化されていない」手法が望ましいことがある。更に、上述したステップの１つ以上でエラーがあると、もっと直接的な手法よりも判定が難しいことがある。このため、場合によっては、以下で述べる画像に基づいた手法の方が有利である。
【００２８】
Ｂ．画像に基づいた作成
図４は、１つ以上の回路画像に基づいてコンポーネント・ネットリストを作成する代替的な方法を示す。ステップＳ３１１では、各画像ごとに、「層情報」を識別する。「層情報」は、ポート、回路コンポーネント、コンポーネント・ピン、ワイヤ、および電力レール（まとめて「回路要素」と呼ぶ）を含む、集積回路の診断に関連する回路要素を含むことができる。層情報の識別は、画像内の様々な回路要素を識別および区別することができるコンピュータ・プログラム（すなわちコンポーネント・システム３６（図１）の部分）によって、もしくは、ユーザが様々な回路要素を識別することによって、またはその双方によって実行可能である。
【００２９】
ユーザによる識別に関して、ユーザに各回路画像を順番に提示することができる。ユーザは、回路画像を見ながら回路要素を識別することができる。次いで、ユーザは、コンポーネント・システム３６（図１）のインタフェースを用いて画像内の回路要素上で領域の輪郭を描くことによって、ある区域を画定する。いったん領域を画定すると、これは一意の識別子を与えられ、回路要素タイプのタグを付けられる。要素の特徴（すなわち識別子、レベル、タイプ、位置、および領域情報）がデータベースに保存される。このプロセスは、全ての関連回路要素を識別するまで継続することができる。
【００３０】
回路に対する外部インタフェースを最も良く表す回路層について、ポートを識別して保存することができ、また、様々なコンポーネント（すなわちトランジスタ、抵抗等）を、手動でまたはソフトウエアを用いて識別し保存することができる。この後、各コンポーネントごとに、ピンのタイプ等の情報と共に、ピンを識別し保存することができる（すなわち電界効果トランジスタ、ソース、ドレイン、またはゲートについて）。最後に、配線を識別して保存する。
【００３１】
あるいは、ピンの集合を用いて、コンポーネントを別個に識別することなく、コンポーネントを識別することができる。更に、要素群を単一の要素として識別することも可能である。例えば、同じ信号を搬送するバイアまたはワイヤ群を単一のコンポーネントとして識別することができる。上述のように、１つの回路層について多数の画像を用いる場合、画像上の位置に画像オフセットを加えることができる。領域は、画像上に表示されたままとし、ユーザがその要素を識別したことを覚えておくのに役立てることが可能である。このプロセスは、各所望の回路要素ごとに、および各画像ごとに、全ての関連画像内の全ての関連回路要素を識別するまで繰り返すことができる。
【００３２】
ステップＳ３１２では、回路層間の接続の決定を容易にするため、手動でまたはソフトウエアを用いて、２つ以上の層間の接続を与える回路要素を中間の層情報として識別し保存することができる。「中間の層情報」は、バイアおよびコンタクトを含む層間の接続を提供する全ての回路要素の識別を含む。ステップＳ３１１と同様、コンピュータ・システム３６（図１）のコンピュータ・プログラム部分もしくはユーザまたはその双方が、中間回路要素を表す形状特徴を定義することができ、次いでこれは中間の層情報としてデータベース２４（図１）に保存される。中間の層情報は、更に、間に回路要素が位置付けられた２つの層（例えば層２および層３）を識別する。あるいは、中間の層情報は、層情報として定義および保存し、識別している回路要素のタイプによって区別することができる（例えばバイア、コンタクト等）。
【００３３】
ステップＳ３１３では、手動でまたはソフトウエアを用いて識別した後に、層情報および中間の層情報を個別に縮小する。層情報を縮小するために、回路要素を組み合わせてネット・グループにする。「ネット・グループ」は、重複すると判定される１組の回路要素を含む。このため、各ネット・グループは、電気的導通を有する回路要素の集合を示す。最初に、コンポーネント・システム３６（図１）を用いて、回路要素の位置および領域特徴を比較して、同じタイプの（すなわちピン／ピン、ワイヤ／ワイヤ等）または接続タイプの（すなわちワイヤ／ピン、ワイヤ／ポート等）回路要素と重なりがあるか判定する。重なりが生じるのは、例えば、１つの回路要素が２つの画像間に継続する場合、同じタイプの２つの要素の端部が隣接する場合（すなわち隣接する画像で重なるデータがない）、または２つの回路要素が同じ２次元空間を共有する場合（すなわちワイヤがピンに接続される）である。重なりが見出されると、２つの回路要素は、一意のネット識別子によって識別されるネット・グループと関連付けられる。どの回路要素もネット・グループに属さない場合、新たなネット・グループを作成する。１つの要素がすでにネット・グループに関連付けられている場合、第２の要素をネット・グループに追加する。双方の要素が別個のネット・グループに属する場合、２つのネット・グループを組み合わせて単一ネット・グループにする。中間の層情報を同じように縮小する。
【００３４】
領域の定義および各回路要素の座標割り当てにおける潜在的なエラーのため、分散を用いて、重なりが存在するか否かを判定することができる。「分散」は、潜在的なエラーを明らかにするため、画定した領域に追加されるエリアである。例えば、ある領域が１つ以上の他の領域と重なるか否かを判定する前に、この領域に、回路レベルの基本原則ピッチの半分以下の分散を追加することができる。０．５ミクロンの最小線幅を有する集積回路では、０．２５ミクロン以下の分散を用いることができる。特定の測定ユニットにおいて、基本原則ピッチ（すなわちミクロン）をユーザによって特定し、回路層を撮像するために用いる画像解像度に基づいて、座標（すなわち画素）に変換する。
【００３５】
ステップＳ３１４では、手動でまたはソフトウエアを用いて、中間の層情報を用いて、隣接層の層情報を組み合わせる。層情報について用いたものと同様の方法を組み込んで、層間の重複する要素を判定することができる（すなわち、分散を加え、領域を比較する）。しかしながら、特定の回路要素のみについて重なりを検索する。この場合、一致が見出されると、２つのネット・グループを組み合わせて単一ネット・グループにする。このプロセスは、全ての層を処理するまで継続する。例えば、層１および層２についての情報を組み合わせるため、２つの層から得た中間の層情報を順次選択して分析することができる。上述のように、バイアを、中間回路要素として保存して分析のため選択すれば良い。バイアの画定した形状に、分散を追加することができる。変更した形状を、層１の層情報と、次いで層２の層情報と比較する。バイアに接続した層１上のワイヤ位置は、変更した形状と少なくとも部分的に重なる。このため、層１上のワイヤのためのネット・グループにバイアを追加する。層２上で同様のワイヤを検出することができる。この場合、層２のワイヤおよび層１のワイヤのためのネット・グループを組み合わせて、単一ネット・グループとして保存する。
【００３６】
縮小および組み合わせステップの後、各ネット・グループは、完全な配線組み合わせを表す。換言すると、各ネット・グループは、コンポーネント・ピン、ポート、もしくは電力レールまたはそれら全てから、少なくとも１つの他のコンポーネント・ピン、ポート、もしくは電力レールまたはそれら全てまでの接続を含まなければならない。この結果、ステップＳ３１５では、ネット・グループを用いて、手動でまたはソフトウエアを用いて、コンポーネント・ネットリストを作成することができる。各ネット・グループを選択し、ネット・グループによって定義された配線接続の全てをコンポーネント・ネットリストに追加する。いったん全てのネット・グループを処理すると、完全なコンポーネント・ネットリストが作成されている。
【００３７】
５．論理ネットリストの作成
図２に戻ると、ステップＳ４は、論理システム３８（図１）を用いてコンポーネント・ネットリストに基づいて論理ネットリストを作成することを含む。１つの実施形態では、コンポーネント・ネットリストに階層的合成ルールを適用して、１つ以上の回路要素を等価な論理コンポーネントによって置換する。「階層的合成ルール」は、１つ以上の回路コンポーネントおよびそれらの接続に基づいて論理コンポーネントを規定する。ポートおよび電力情報を含ませることによって、階層的合成ルールは、コンポーネント・ネットリストに含まれる様々なコンポーネント・ピンのコンポーネント機能およびネット接続を用いて、回路の部分の機能を決定することができる。例えば、２つのトランジスタを接続して、入力ポートの論理ＮＯＴを実施することができる。典型的に、１つのトランジスタのピンはＶddに結合され、他のトランジスタのピンはＶssに結合されている。論理等価を求めるため、階層的合成ルールを適用して、各トランジスタの機能および各トランジスタの様々なピンの接続を認識する。コンポーネント・ネットリストに電力情報が組み入れられているので、適切なピン接続を求めることができる。入力ポートを選択し、コンポーネント・ピンに対する様々な接続をトレースすれば良い。いったん論理ＮＯＴを実施する回路を検出すると、２つのトランジスタはＮＯＴゲートによって置換される。いくつかの論理回路は、回路内に１つ以上のもっと単純な論理コンポーネントを含む場合があるので、最も複雑な論理コンポーネントを選択してコンポーネント・ネットリストの部分を置換するまで、このプロセスは継続することができる。
【００３８】
様々な論理コンポーネントのための共通コンポーネント・ネットリスト情報を含むデータベースを用いて、回路内で論理コンポーネントを実施する要素を決定することができる。あるいは、ピン状態を動的に分析して、回路内で実施される論理コンポーネントを決定することができる。いくつかの実行可能なパスにおいて、基本的な論理コンポーネントの組み合わせを結合して、１つのもっと複雑な論理コンポーネントにする（すなわち、１つの加算器がいくつかの論理コンポーネントを置換することができる）。
【００３９】
６．ネットリストの用途
コンポーネント・ネットリストもしくは論理ネットリストまたはその双方を用いて集積回路を診断することには、多くの用途が可能である。本発明は、任意選択として、これらの用途のいくつかに１つ以上の特有の機能を与える。これについて以下で論じる。
【００４０】
Ａ．ネットリストの比較
コンポーネント・ネットリストまたは論理ネットリストは、比較システム４０（図１）によって、参照回路に基づいて１つ以上の参照ネットリストと比較して、集積回路と参照回路との間の類似点／相違点を求めることができる。これが望ましい１つの例は、集積回路が予想どおりに機能しない場合である。集積回路からコンポーネント・ネットリストを作成し、参照コンポーネント・ネットリスト（すなわち集積回路を作成するために用いたコンポーネント・ネットリスト）と比較すれば良い。２つの回路間に差があれば、これは潜在的に、集積回路を製造する際のエラーを示す。
【００４１】
あるいは、論理ネットリストを１つ以上の参照論理ネットリストと比較して、２つの回路が同様であるか否かを判定することができる。これが有用であり得るのは、例えば、集積回路の少なくとも一部において保持される知的財産が侵害されたか否かを判定する場合である。参照論理ネットリスト（複数のネットリスト）を、特許保護が得られている参照回路に基づくものとすれば良い。論理ネットリストを参照論理ネットリストと比較して、参照回路（複数の回路）と集積回路との間に何らかの類似点があるか否かを判定することができる。例えば、論理ネットリストを参照論理ネットリストと比較するには、共通の入力／出力ポートを選択し、回路経路を追跡すれば良い。閾値の類似点を特定し、その後に一致を検出する。ネットリスト・エントリを表示することによって、もしくは一致した回路に基づいて回路図を表示することによって、またはその双方によって、一致する回路の部分を、参照論理ネットリストに与えられた名前によって表示することができる。
【００４２】
Ｂ．回路図の作成
多くの場合、コンポーネント・ネットリストもしくは論理ネットリストまたはその双方に基づいた回路図が求められる。集積回路から回路図を作成することに伴う問題は、コンポーネント接続によってほぼ理解不可能な絡み合った交差線が生じるようなコンポーネント配置となっていることである。この結果、集積回路のための位置情報は用途が限定される場合があり、ユーザは大量の手作業による編集を行って、回路コンポーネントを再配置し、集積回路を表す意味のある回路図とする必要がある。
【００４３】
ユーザを支援するため、ポート情報、電力情報、もしくはコンポーネント・ピン接続情報またはそれら全てに基づいて、回路コンポーネントを配置することができる。この情報は、編集したレイアウトまたはレイアウト情報から作成したコンポーネント／論理ネットリストに含まれる。コンポーネントを回路図に配置すると、ポート、電力、もしくはコンポーネント・ピン接続情報またはそれら全ては、系統的に参照される。例えば、入力ポートに結合されたコンポーネントは回路図の左側に配置することができ、電力レールに結合されたコンポーネントは回路図の上部に配置する等である。更に、先に配置したコンポーネントからコンポーネント・ピン接続を追っていくにつれて、コンポーネントを、上から下または左から右に、徐々に配置することができる。例えば、コンポーネント・ピンの相対電圧電位を動的に求め、相対電位に基づいて回路図上にコンポーネントを配置する。これは、更に、交差線を減らし、少ないユーザ・インタフェースで従来の回路図を作成するのに役立つ。
【００４４】
Ｃ．回路図の表示
上述のように、回路図を最初に表示する場合、回路コンポーネント間の接続を表す線は互いに交差し、表示される回路を不明瞭にする場合がある。ユーザが接続経路を見分けるのに役立てるため、接続ワイヤなしで回路図を表示することができる。次いで、ユーザは、コンポーネントを特定することによって（この上にそのコンポーネントのための全ての配線接続が表示される）、またはコンポーネント上のピンを特定することによって（この上にその選択したピンのための配線接続が表示される）、配線情報を選択的に表示することができる。例えば、各コンポーネント・ピン／ポートの端部にスタブを表示することができる。ユーザはスタブを選択し、選択したスタブについての配線を表示することができる。このように、ユーザは、所望の配置が得られるまで、表示されている限られた配線情報に基づいて、回路コンポーネントを再配置することができる。トグル設定によって、配線接続全てまたは配線接続なし／一部を交互に表示して、容易に進行を決定するようにすることができる。
【００４５】
図５は、本発明の１実施形態に従った例示的な回路図表示５０を示す。回路図表示５０は制御７０を含み、これによってユーザはどのように回路の配線情報を表示するかを選択することができる。例えば、ユーザは制御７２を選択して全ての配線情報を表示させ、制御７４を選択して、選択したコンポーネントの配線情報のみを表示させ、または制御７６を選択して、選択したピンの配線情報のみを表示させることができる。制御７４は、太字で表示されて、これが現在選択されているオプションであることを示す。
【００４６】
回路は、１対の入力ポート５２、５４および出力ポート５６を含む。トランジスタ対５８、６０は、入力ポート５２に供給される信号を反転させるように構成されている（論理ＮＯＴを実行する）。様々な回路要素が、それらの論理等価すなわちＮＯＲコンポーネント６２によって置換されている。ＮＯＲコンポーネント６２は、トランジスタ対５８、６０および入力ポート５４の出力上で論理ＮＯＲ動作を実行する。ＮＯＲコンポーネント６２の出力は、出力ポート５６に供給される。トランジスタ５８は、太い線で示して、これが選択されているコンポーネントであることを示す。このため、そのピンのための配線情報のみが表示されている。残りの配線情報は点線で示すが、現在の選択に基づいて表示されない。各ピンはスタブ６８として示す。この結果、ユーザがピンのための配線情報を表示したい場合、ユーザはそのピンを表すスタブ６８を選択する。
【００４７】
先の項で述べたように、回路図を作成した場合、ポートおよび電力情報に従って様々なコンポーネントが配置されている。例えば、Ｖss６４は回路図の上部に図示され、Ｖdd６６は下部に位置付けられ、一方、入力ポート５２、５４は左側に位置付けられ、出力ポート５６は右側に位置付けられている。更に、トラジスタ５８、６０は、それらの各接続Ｖss６４およびＶdd６６に従って、上から下に位置付けられている。更に、トランジスタ５８、６０およびＮＯＲコンポーネント６２は、入力ポート５２、５４および出力ポート５６に対するそれらの接続に従って、左から右に位置付けられている。
【００４８】
回路図表示５０は、本明細書において説明した機能を単に例示していることは理解されよう。回路図表示５０は、回路図表示またはユーザが実行可能な全ての動作を完全に表現することは意図していない。更に、選択を指示し選択を行うための様々な代替的なユーザ・インタフェースが可能であり、本発明によって包含されることは理解されよう。
【００４９】
７．代替案
様々な方法を、特定のシーケンスで行われるものとして記載したが、本明細書中に記載したものと同時にまたは異なる方法で独立ステップを実行可能であることは理解されよう。更に、結果として得られるネットリスト／回路図の情報を洗練させ、精度を高めるため、ステップの１つ以上を多数回繰り返すことが必要な場合があることは理解されよう。加えて、この考察では、集積回路の全ての層上の全てのコンポーネントを識別し診断することを説明するが、必要に応じて、コンポーネントもしくは層またはその双方のサブセットを選択し分析することが可能であることは理解されよう。
【００５０】
本発明は、ハードウエア、ソフトウエア、またはハードウエアおよびソフトウエアの組み合わせにおいて実現可能であることは理解されよう。本明細書中で記載した方法を実行するために適用される、いかなる種類のコンピュータ／サーバ・システム（複数のシステム）、または他の装置も適切である。ハードウエアおよびソフトウエアの典型的な組み合わせは、コンピュータ・プログラムを有する汎用コンピュータ・システムであり、このプログラムがロードされて実行されると、システム１２もしくはユーザ３０またはその双方を制御して、本明細書中に記載した各方法を実行することができる。あるいは、本発明の機能タスクの１つ以上を実行するための専用ハードウエアを含む特定用途コンピュータも利用可能である。また、本発明は、コンピュータ・プログラム・プロダクトにおいて具現化することができ、このプログラム・プロダクトは、本明細書中に説明した方法の実施を可能とする全ての各機構を含み、コンピュータ・システムにロードされると、これらの方法を実行可能である。この文脈において、コンピュータ・プログラム、ソフトウエア・プログラム、プログラム、またはソフトウエアは、いずれかの言語におけるいずれかの表現、１組の命令のコードまたは表記を意味し、これは、情報処理機能を有するシステムに、直接、または（ａ）別の言語、コード、または表記への変換、もしくは（ｂ）異なるマテリアル形態での再生、またはその双方のいずれかまたは双方の後に、特定の機能を実行させるように意図されている。
【００５１】
本発明の様々な実施形態の前述の記載は、例示および説明の目的のため提示した。網羅的であることも、開示した通りの形態に本発明を限定することも意図しておらず、明らかに、多くの変更および変形が可能である。当業者に明らかであり得るかかる変更および変形は、添付図面によって明らかにされる本発明の範囲内に含まれることが意図される。
【産業上の利用可能性】
【００５２】
本発明は、集積回路を診断するために有用であり、更に具体的には、集積回路に基づいてネットリストもしくは回路図またはその双方を作成するために有用である。
【図面の簡単な説明】
【００５３】
【図１】本発明の様々な実施形態を実施するための例示的なシステムを示す。
【図２】本発明の１実施形態による方法を示す。
【図３】本発明の別の実施形態によるネットリストを作成する例示的な方法を示す。
【図４】本発明の更に別の実施形態によるネットリストを作成する代替的な方法を示す。
【図５】例示的な回路図表示を示す。
【図１】
0004528134.tif 000002
【図２】
0004528134.tif 000003
【図３】
0004528134.tif 000004
【図４】
0004528134.tif 000005
【図５】
0004528134.tif 000006