(57)【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、前記方法が、
ユーザ入力に基づいて、複数の構成要素の定義を生成するステップを含み、構成要素の定義が、電子回路で使用するためのディスクリート回路の構成要素を定義し、かつ構成要素メタデータを含み、前記構成要素メタデータが、
前記構成要素の定義によって定義される前記ディスクリート回路の構成要素の構成要素の種類と、
電子回路の1つまたは複数のレイヤにおける、前記ディスクリート回路の構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データと、
前記構成要素の定義によって記述される前記ディスクリート回路の構成要素のバージョンレベルとを記述し、
同一のディスクリート回路の構成要素についての構成要素の定義について少なくとも2つのバージョンレベルが、それぞれのジオメトリックなパラメータ化データによって定義される物理的な寸法で異なっており、
前記方法が、
構成要素の定義ライブラリに前記構成要素の定義を記憶するステップと、
デバイス設計を生成するステップとを含み、前記デバイス設計が、ユーザ入力によって定義され、かつデバイスメタデータを含み、前記デバイスメタデータが、
前記構成要素の定義ライブラリに記憶される前記構成要素の定義から選択されるディスクリート回路の構成要素のセットであって、デバイスに含まれるディスクリート回路の構成要素のセットと、
ディスクリート回路の構成要素についての前記構成要素のバージョンレベルと、
前記デバイスに含まれる前記ディスクリート回路の構成要素のセットの回路接続を記述するネットワークリストと、
前記デバイス設計についてのバージョンレベルとを記述し、前記デバイス設計についての前記バージョンレベルが、ネットワークリスト、ディスクリート回路の構成要素のセット、および前記ディスクリート回路の構成要素のバージョンレベルの一意な組み合わせを定義し、
前記方法が、
前記デバイス設計から、前記デバイスに含まれる前記ディスクリート回路の構成要素のセットおよび前記ディスクリート回路の構成要素の回路接続に基づいて、回路レイアウトを生成するステップを含み、前記回路レイアウトを生成するステップが、バージョンレベルについて前記回路レイアウトを検証するステップを含む、
方法。
【請求項２】
前記ディスクリート回路の構成要素の物理的な実現のための新しい物理的な寸法を定義する新しいジオメトリックなパラメータ化データを生成するために、前記ディスクリート回路の構成要素の前記物理的な実現のための物理的な寸法を定義する前記ジオメトリックなパラメータ化データを変更するとともに、変更されたジオメトリックなパラメータ化データに基づいて、前記ディスクリート回路の構成要素についての新しいバージョンレベルを生成することによって、前記デバイス設計における前記ディスクリート回路の構成要素の前記構成要素の定義のうちの1つについての前記構成要素メタデータを、ユーザ入力に応じて、修正するステップと、
新しい構成要素の定義として、前記修正された構成要素メタデータを記憶するステップと、
前記デバイス設計における前記構成要素の前記ディスクリート回路の構成要素の定義のうちの1つについての前記構成要素メタデータを修正したことに応じて、前記デバイス設計について新しいバージョンレベルを生成するステップと、
前記新しいバージョンレベルについて前記回路レイアウトを検証するステップとをさらに含む、
請求項1に記載の方法。
【請求項３】
前記パラメータ化データが、1つまたは複数のレイヤのレイヤについて、ディスクリート回路の構成要素のそれぞれの回路素子についての素子ジオメトリを定義する、
請求項1に記載の方法。
【請求項４】
前記回路素子が、導電性のトレースと、トレース間の非導電性のギャップとを含む、
請求項3に記載の方法。
【請求項５】
1つまたは複数のプロセッサを含むデータ処理装置と、
前記データ処理装置とデータ通信するとともに、命令を記憶しているコンピュータ可読記憶媒体とを備えたシステムであって、前記命令が、
設計モジュールを定義し、前記設計モジュールが、前記データ処理装置によって実行されると、前記データ処理装置に以下の動作を実行させ、前記動作が、
ユーザ入力に基づいて、複数の構成要素の定義を生成するステップを含み、各構成要素の定義が、電子回路で使用するための構成要素を定義し、かつ構成要素メタデータを含み、前記構成要素メタデータが、
前記構成要素の定義によって定義される前記構成要素の構成要素の種類と、
電子回路の1つまたは複数のレイヤにおける、前記構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データと、
前記構成要素の定義によって記述される前記構成要素のバージョンレベルとを記述し、
同一の構成要素について定義する構成要素について少なくとも2つのバージョンレベルが、それぞれのジオメトリックなパラメータ化データによって定義される物理的な寸法で異なっており、
前記命令が、
開発モジュールを定義し、前記開発モジュールが、前記データ処理装置によって実行されると、前記データ処理装置に以下の動作を実行させ、前記動作が、
デバイス設計を生成するステップを含み、前記デバイス設計が、ユーザ入力によって定義され、かつデバイスメタデータを含み、前記デバイスメタデータが、
デバイスに含まれる構成要素のセットと、
各構成要素についての前記構成要素のバージョンレベルと、
前記構成要素のそれぞれについての、前記デバイスに含まれる前記構成要素のセットの回路接続を記述するネットワークリストと、
前記デバイス設計についてのバージョンレベルとを記述し、前記デバイス設計についての各バージョンレベルが、ネットワークリスト、構成要素のセット、および前記構成要素のバージョンレベルの一意な組み合わせを定義し、
前記動作が、
前記デバイス設計から、前記デバイスに含まれる前記構成要素のセットおよび前記構成要素の回路接続に基づいて、回路レイアウトを生成するステップを含み、前記回路レイアウトを生成するステップが、バージョンレベルについて前記回路レイアウトを物理的に検証するステップを含む、
システム。
【請求項６】
前記設計モジュールが、以下のさらなる動作を実行し、前記さらなる動作が、
前記デバイス設計において前記構成要素のうちの1つを選択するステップと、
前記構成要素の物理的な実現のための新しい物理的な寸法を定義する新しいジオメトリックなパラメータ化データを生成するために、前記構成要素の前記物理的な実現のための物理的な寸法を定義する前記ジオメトリックなパラメータ化データを変更するとともに、変更されたジオメトリックなパラメータ化データに基づいて、前記構成要素についての新しいバージョンレベルを生成することによって、前記構成要素メタデータを、ユーザ入力に応じて、修正するステップと、
新しい構成要素の定義として、修正された構成要素メタデータを生成するステップとを含み、
前記開発モジュールが、以下のさらなる動作を実行し、前記さらなる動作が、
前記デバイス設計における前記構成要素のうちの1つについての選択、および前記新しい構成要素の定義の生成に応じて、前記デバイス設計について新しいバージョンレベルを生成するステップと、
前記新しいバージョンレベルについて前記回路レイアウトを物理的に検証するステップとを含む、
請求項5に記載のシステム。
【請求項７】
前記パラメータ化データが、1つまたは複数のレイヤのそれぞれの、それぞれのレイヤについて、構成要素のそれぞれの回路素子についての素子ジオメトリを定義する、
請求項5に記載のシステム。
【請求項８】
前記回路素子が、導電性のトレースと、トレース間の非導電性のギャップとを含む、
請求項7に記載のシステム。
【請求項９】
前記パラメータ化データが、1つまたは複数のレイヤのそれぞれの、それぞれのレイヤについて、構成要素のそれぞれの回路素子における素子ジオメトリの互いの配置をさらに定義する、
請求項7に記載のシステム。
【請求項１０】
コンピュータプログラムを記憶するコンピュータ可読記憶媒体であって、前記コンピュータプログラムが、データ処理装置によって実行されると、前記データ処理装置に以下の動作を実行させる命令を含み、前記動作が、
ユーザ入力に基づいて、複数の構成要素の定義を生成するステップを含み、各構成要素の定義が、電子回路で使用するためのディスクリート回路の構成要素を定義し、かつ構成要素メタデータを含み、前記構成要素メタデータが、
前記構成要素の定義によって定義される前記ディスクリート回路の構成要素の構成要素の種類と、
電子回路の1つまたは複数のレイヤにおける、前記ディスクリート回路の構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データと、
前記構成要素の定義によって記述される前記ディスクリート回路の構成要素のバージョンレベルとを記述し、
同一のディスクリート回路の構成要素についての構成要素の定義について少なくとも2つのバージョンレベルが、それぞれのジオメトリックなパラメータ化データによって定義される物理的な寸法で異なっており、
前記動作が、
構成要素の定義ライブラリに前記構成要素の定義を記憶するステップと、
デバイス設計を生成するステップとを含み、前記デバイス設計が、ユーザ入力によって定義され、かつデバイスメタデータを含み、前記デバイスメタデータが、
前記構成要素の定義ライブラリに記憶される前記構成要素の定義から選択されるディスクリート回路の構成要素のセットであって、デバイスに含まれるディスクリート回路の構成要素のセットと、
ディスクリート回路の構成要素についての前記構成要素のバージョンレベルと、
前記デバイスに含まれる前記ディスクリート回路の構成要素のセットの回路接続を記述するネットワークリストと、
前記デバイス設計についてのバージョンレベルとを記述し、前記デバイス設計についての前記バージョンレベルが、ネットワークリスト、ディスクリート回路の構成要素のセット、および前記ディスクリート回路の構成要素のバージョンレベルの一意な組み合わせを定義し、
前記動作が、
前記デバイス設計から、前記ディスクリート回路の構成要素のセットおよび前記デバイスに含まれる前記ディスクリート回路の構成要素の回路接続に基づいて、回路レイアウトを生成するステップを含み、前記回路レイアウトを生成するステップが、バージョンレベルについて前記回路レイアウトを検証するステップを含む、
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、特定のディスクリート回路素子をそれぞれ定義する編集可能な構成要素の定義を使用して集積回路の設計に関する。
【背景技術】
【０００２】
システム、デバイス、およびソフトウェアの設計者はバージョン制御システムをしばしば利用する。バージョン制御システムは、文書、コードなどの設計情報への変更を、レビューおよび最終的な受理または却下のための改版の提案を促進する論理的かつ組織的なやり方で管理する。バージョン制御システムは変更の影響、これらの変更の編集、および訂正を容易に理解する能力を可能にする。設計される特定のシステムが複雑であればあるほど、複数の設計者がそのシステムに関わって作業する可能性が高くなる。したがって、バージョン制御システムが複数開発者のプロジェクトを管理することを助ける。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書は、特定のディスクリート回路素子をそれぞれ定義する編集可能な構成要素の定義を使用して集積回路の設計に関する技術を説明する。
【０００４】
一般に、本明細書において説明される主題の一革新的な態様は、以下のアクションを含む方法において具現化され、当該アクションが、ユーザ入力によって、複数の構成要素の定義を生成するステップを含み、構成要素の定義が、電子回路で使用するためのディスクリート回路の構成要素を定義し、かつ構成要素メタデータを含み、構成要素メタデータが、構成要素の定義によって定義されるディスクリート回路の構成要素の構成要素の種類と、電子回路の1つまたは複数のレイヤにおける、ディスクリート回路の構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データと、構成要素の定義によって記述されるディスクリート回路の構成要素のバージョンレベルとを記述し、で同一のディスクリート回路の構成要素についての構成要素の定義について少なくとも2つのバージョンレベルが、それらのそれぞれのジオメトリックなパラメータ化データによって定義される物理的な寸法が異なっており、当該アクションが、構成要素の定義ライブラリに構成要素の定義を記憶するステップを含む。本態様の他の実施形態は、方法のアクションを実施するように構成され、コンピュータ記憶デバイスにエンコードされる、対応するシステム、装置、およびコンピュータプログラムを含む。
【０００５】
本明細書において説明される主題の別の態様は、以下のシステムにおいて具現化され得、当該システムは、1つまたは複数のプロセッサを含むデータ処理装置と、データ処理装置とデータ通信するとともに、命令を記憶しているコンピュータ記憶媒体とを備え、当該命令が、設計モジュールを定義し、前記設計モジュールが、データ処理装置によって実行されると、データ処理装置に以下の動作を実行させ、当該動作が、ユーザ入力によって、複数の構成要素の定義を生成するステップを含み、各構成要素の定義は電子回路で使用するための構成要素を定義し、かつ構成要素メタデータを含み、構成要素メタデータが、構成要素の定義によって定義される構成要素の構成要素の種類と、電子回路の1つまたは複数のレイヤにおける、構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データと、構成要素の定義によって記述される構成要素のバージョンレベルとを記述し、同一の構成要素について定義する構成要素について少なくとも2つのバージョンレベルが、それらのそれぞれのジオメトリックなパラメータ化データによって定義される物理的な寸法が異なっており、当該命令が、開発モジュールを定義し、開発モジュールが、データ処理装置によって実行されると、データ処理装置に以下の動作を実行させ、当該動作が、デバイス設計を生成するステップを含み、デバイス設計が、デバイスメタデータを含み、デバイスメタデータが、ユーザ入力によって、デバイスに含まれる構成要素のセットと、各構成要素についてその構成要素のバージョンレベルと、構成要素のそれぞれについての、デバイスに含まれる構成要素のセットの回路接続を記述するネットワークリストと、デバイス設計についてのバージョンレベルとを記述し、デバイス設計についての各バージョンレベルが、ネットワークリスト、構成要素のセット、および構成要素のバージョンレベルの一意な組み合わせを定義し、当該動作が、デバイスに含まれるデバイス設計から構成要素のセットおよび構成要素の回路接続に基づいて回路レイアウトを生成するステップを含み、回路レイアウトを生成するステップが、そのバージョンレベルについて回路レイアウトを物理的に検証するステップを含む。本態様の他の実施形態は、方法のアクションを実施するように構成され、コンピュータ記憶デバイスにエンコードされる、対応するシステム、装置、およびコンピュータプログラムを含む。
【０００６】
本明細書において説明される主題の別の態様は、以下のアクションを含む方法において具現化され得、当該アクションは、データ記憶に記憶されるデバイス設計にアクセスするステップを含み、デバイス設計が、デバイスメタデータを含み、デバイスメタデータが、デバイスに含まれる構成要素のセットと、各構成要素についてその構成要素のバージョンレベルとを記述し、それぞれの構成要素が、構成要素の定義によって定義され、それぞれの構成要素の定義が、電子回路で使用するための構成要素を定義し、かつ構成要素メタデータを含み、構成要素メタデータが、構成要素の定義によって定義される構成要素の構成要素の種類と、電子回路の1つまたは複数のレイヤにおける、構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データと、構成要素の定義によって記述される構成要素のバージョンレベルとを記述し、同一の構成要素を定義する構成要素について少なくとも2つのバージョンレベルが、それらのそれぞれのジオメトリックなパラメータ化データによって定義される物理的な寸法が異なっており、デバイスメタデータが、構成要素のそれぞれについてのデバイスに含まれる構成要素のセットの回路接続を記述するネットワークリストと、デバイス設計についてのバージョンレベルとを記述し、各バージョンレベルが、ネットワークリスト、構成要素のセット、および構成要素のバージョンレベルの一意な組み合わせを定義し、当該アクションは、構成要素の物理的な実現のための新しい物理的な寸法を定義する新しいジオメトリックなパラメータ化データを生成するために、構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データを変更することによって、選択された構成要素を、ユーザ入力によって、修正するステップと、変更されたジオメトリックなパラメータ化データに基づいて、構成要素についての新しいバージョンレベルを生成するステップと、新しい構成要素の定義として、修正された構成要素メタデータを生成するステップと、デバイス設計について新しいバージョンレベルを生成するステップと、新しいバージョンレベルについて回路レイアウトを物理的に検証するステップとを含む。本態様の他の実施形態は、方法のアクションを実施するように構成され、コンピュータ記憶デバイスにエンコードされる、対応するシステム、装置、およびコンピュータプログラムを含む。
【０００７】
本明細書において記載される主題の特定の実施形態は以下の利点の1つまたは複数を実現するように実装され得る。大型システム設計内のディスクリート回路の構成要素設計へのバージョン制御の拡張は、ディスクリート回路の構成要素を組み込むデバイス設計の迅速な評価および分析を可能にする。換言すると、全体的なデバイス設計は使用される個別の構成要素の文脈においてはそれ自身変わらないが、ディスクリート回路の構成要素の物理的なパラメータを変更することによるデバイス設計への影響は、バージョンレベルにしたがって追跡することができる。これは、そうでなければ編集可能な構成要素の定義がない状態でそれぞれの個別の構成要素について実装することが必要となる労働集約的な設計変更の必要なく、特定の構成要素の種類について個別の構成要素レベルで変更を組み込む、バージョンに基づいた回路レイアウトの生成を可能にする。以下に説明するシステムおよび方法は、成分としての構成要素に基づくバージョン制御を実装する技術的な課題に対処するものである。これはまた、非常に小型でそのジオメトリが設計上のファクタとなるメソスコピックなスケールのサイズ(例えば、数ミクロンまたはそれ以下のオーダーの限界的な寸法を有する)に関連付けられる回路素子を実装するデバイスについての設計処理を簡略化する。そのような回路素子の例としては、磁束量子ビット、磁束結合インダクタ、くし型キャパシタ、共平面導波路共振器などが挙げられる。
【０００８】
さらに、システムおよび方法は、文書の同期は自動的であり、特別に設計された構成要素について手動でファイルを取り替えることに頼らないため、デバイス設計についての協力を合理化する。
【０００９】
本明細書で説明される主題の1つまたは複数の実施形態の詳細が添付の図面および以下の発明を実施するための形態において記載される。主題の他の特徴、態様、および利点は、発明を実施するための形態、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】集積回路の設計システムが実装される例示的な環境のブロック図である。
【図２Ａ】構成要素の定義によって定義される例示的な平面キャパシタを描写している。
【図２Ｂ】構成要素の定義によって定義される例示的な平面キャパシタを描写している。
【図３】構成要素の定義、および構成要素の定義を使用してデバイス設計を生成する、例示的な処理の流れ図である。
【発明を実施するための形態】
【００１１】
異なる図面において同様の符号および記号は、同様の要素を指す。
【００１２】
バージョン制御は、構成システムの構成要素がよく理解されよく定義されている、十分確立されたシステムで役立つ。そのような構成システムの構成要素の例としては、先に定義した集積回路素子、例えばMOSFET、抵抗器などが挙げられる。しかしながら、構成システムの構成要素がそれぞれ新しい設計を必要とするいくつかの設計については、バージョン制御システムは、構成システムの構成要素を組み込むデバイスに適切なバージョン制御を容易にしない。これは、構成システムの構成要素のそれぞれ根底にある設計変更は、それ自身デバイスの全体的な設計に影響することがあり、構成システムの構成要素レベルでバージョン制御を実装するための容易に利用可能な能力はないからである。
【００１３】
集積回路の設計システムは集積回路の設計、特にディスクリート回路の構成要素をそれぞれ定義する編集可能な構成要素の定義を使用する集積回路の設計のためのバージョン制御を容易にする。システムは、設計者にユニットとしての回路素子(例えば、キャパシタ板面積、fluxmon量子ビットトレース幅など)のジオメトリを修正することを許可し、回路素子について修正されたジオメトリは、回路素子を成分としての要素として組み込むデバイス設計において影響される回路素子すべてに渡って適用される。
【００１４】
したがって、デバイス設計におけるノードおよび素子の接続を記述するネットリストに加えて、システムはまた個別の素子の寸法ジオメトリのパラメータ化を組み込む。素子についてのパラメータがあるバージョンについて変更されると、システムは回路レイアウトを接続だけではなくジオメトリについても調整し、得られるマスクはそのジオメトリックな変位に基づく設計への全体的な空間的影響を考慮したものとなる。
【００１５】
これらの特徴およびさらなる特徴を以下でより詳細に説明する。
【００１６】
図1は、集積回路の設計システム110が実装される例示的な環境100のブロック図である。ローカルエリアネットワーク(LAN)、広域エリアネットワーク(WAN)、インターネット、またはそれらの組み合わせなどのコンピュータネットワーク102は、ユーザデバイス106を集積回路の設計システム110に接続する。各ユーザデバイス106はネットワーク102を介してリソースを要求および受信することができる電子デバイスであり、ユーザに設計システム110によって提供される機能を使用させるために設計システム110をインターフェースするアプリケーションを実行してもよい。ユーザデバイス106の例としては、パーソナルコンピュータ、パッドコンピュータなどが挙げられる。
【００１７】
設計システム110の例示的な実装形態としては、設計モジュール112および開発モジュール114が挙げられる。しかしモジュール112および114は一つの例示的なシステムアーキテクチャであり、説明されるものと異なるやり方で、以下で説明される処理を分散する他のアーキテクチャを使用することもできる。
【００１８】
設計モジュール112はディスクリート回路の構成要素を記述する構成要素の定義を作成、管理、および改版を可能にするプログラム素子である。構成要素の定義は構成要素の定義ライブラリ120に記憶される。この説明で使用される場合、構成要素は構成要素の定義によって定義されるディスクリート回路の構成要素であり、デバイスにおいては設計素子ユニットとして利用され得る。例えば、fluxmon量子ビット、平面キャパシタ、および導波路はそれぞれ構成要素の定義によって定義されるディスクリート回路の構成要素である。構成要素および構成要素の定義は以下でさらに詳細に説明する。
【００１９】
開発モジュール114はデバイスを設計するために開発者のグループにツールのセットおよびユーザインターフェースを提供するプログラム素子である。開発モジュールはデバイス設計ライブラリ130にデバイス設計を記憶する。デバイス設計は、構成要素の定義ライブラリ120に記憶される構成要素の定義から選択されるディスクリート回路の構成要素のセットであり、ネットワークリストはデバイス設計によって記述されるデバイスに含まれるディスクリート回路の構成要素のセットの回路接続を記述している。
【００２０】
デバイス設計において使用されるディスクリート回路の構成要素の修正は、その構成要素の定義を修正することによってなされ得る。例えば、特定のディスクリート回路の構成要素はデバイス設計の多くのセクションおよび多くの他のデバイス設計において共通に使用される特別に形状付けられた配線であってもよい。構成要素への変更、例えば、固定、強化は、変更が自動的にすべての設計に伝搬されるように構成要素の定義に記憶され、これらの共有される構成要素から導出される設計の信頼性を向上する。
【００２１】
開発モジュール114は、特徴を自動生成およびすべての設計に共通する検証のためのソフトウェアツールも含む。そのような検証としては、デザインルールチェック(DRC)、layout versus schematic チェック(LVS)、電気的ルールチェック(ERC)、アンテナチェック、および他の適当な物理的チェックが挙げられる。
【００２２】
動作させる際、ユーザは設計モジュール112に入力を与え、構成要素の定義を生成または修正する。それぞれの構成要素の定義は、電子回路で使用するためのディスクリート回路の構成要素を定義する。一実装形態において、構成要素の定義は、それぞれが構成要素の種類、ジオメトリ、およびバージョンを記述する構成要素メタデータを含むファイルとして記憶されてもよい。
【００２３】
特に、構成要素の定義によって定義されるディスクリート回路の構成要素の構成要素の種類は、構成要素が何であるかを記述し、例えば、キャパシタの種類、ゲートの種類、導波路の種類などである。これによって設計者が設計モジュール112の使用により、構成要素の定義ライブラリ120内で構成要素の定義を種類によって分類および組織化することが可能となる。
【００２４】
構成要素の定義はディスクリート回路の構成要素の物理的な実現のための物理的な寸法を定義するジオメトリックなパラメータ化データも含む。物理的な寸法は単一の平面に限定され得、または2つもしくはそれ以上のレイヤを介して分散される電子回路のための複数のレイヤを含み得る。ジオメトリックなパラメータ化データの例を、図2Aおよび図2Bを参照してより詳細に説明する。
【００２５】
ディスクリート回路の構成要素のバージョンレベルは構成要素の定義の設計のバージョンレベルを記述する。同一の構成要素の定義に対するそれぞれ異なるバージョンレベルは、物理的な寸法が異なっている個別の構成要素を記述し得る。例えば、図1に描写されるように、構成要素の定義122および124の2つのセットが示されている。第1のセット122は特定の構成要素C1の4つの異なるバージョンを定義している。第1のバージョンV1はC1_V1でラベル付けされている上段の文書によって表現されている。同様に、第2のセット124は特定の構成要素C2の3つの異なるバージョンを定義している。
【００２６】
構成要素の種類、パラメータ化データ、およびバージョンレベルだけが上の例で記述されているが、他の属性が構成要素の定義に含まれてもよい。そのような属性の例としては、接続点、例えば、パッドレイアウト、物質の仕様、例えば、金属の種類、およびディスクリート回路の構成要素を設計する際に使用され得るあらゆる他の適当な属性が挙げられる。特定の構成要素の定義における、これらの属性のあらゆるものに対する変更は、構成要素の定義の新しいバージョンとなる結果となり得る。
【００２７】
ユーザはまた開発モジュール114に入力を与え、デバイス設計を定義することができる。一実装形態において、デバイス設計は、ディスクリート回路の構成要素のセット、それらの内部接続を記述するネットワークリスト、およびバージョンレベルを記述するデバイスメタデータをそれぞれ含むファイルとして記憶されてもよい。
【００２８】
ディスクリート回路の構成要素のセットは、構成要素の定義ライブラリ120に記憶される構成要素の定義から選択される回路の構成要素を列挙している。ディスクリート回路の構成要素のセットは、デバイス設計によって記述されるデバイスに含まれる構成要素である。デバイス設計はそれぞれの構成要素のバージョンレベルも含む。
【００２９】
ネットワークリストは、デバイスに含まれるディスクリート回路の構成要素のセットの回路接続を記述するリストである。ネットワークリストはデバイス設計の特定の内部接続およびノードを記述する。
【００３０】
デバイス設計についてのバージョンレベルはネットワークリスト、ディスクリート回路の構成要素のセット、およびディスクリート回路の構成要素のバージョンレベルの一意の組み合わせを定義する。例えば、図1に描写されるように、デバイス設計132および134の2つのセットが示されている。第1のセット132は特定の設計D1の4つの異なるバージョンを定義している。第1のバージョンV1はD1_V1でラベル付けされている上段の文書によって表現されている。同様に、第2のセット134 V1は特定の設計D2の3つの異なるバージョンを定義している。
【００３１】
構成要素の定義と同様、他の適当な設計属性もやはりデバイス設計に記憶されてもよい。
【００３２】
動作させる際、開発モジュール114はデバイス設計から、ディスクリート回路の構成要素のセットに基づく回路レイアウト、およびデバイスに含まれるディスクリート回路の構成要素の回路接続を生成することができる。上述のように、回路レイアウトを生成することは、バージョンレベルについて回路レイアウトを物理的に検証することを含む。回路レイアウトは、デバイス設計によって定義される集積回路の構成要素を構成する金属、酸化物、または半導体レイヤの対応するパターンを定義する。集積回路が検証されると仮定すると、得られるデータは工業規格フォーマット、例えばファウンドリ処理のためのGraphic Database System II (GDSII)で記憶され得る。ファウンドリはデータを処理してデバイス製造のためのフォトマスク(または他のファウンドリ処理素子)を生成する。
【００３３】
開発モジュール114の使用によって、ユーザは現在の最良の状態(マスタ)または、デバイス設計ライブラリ130からのデバイス設計の以前の状態のスナップショットをチェックアウトし、その設計を修正することができる。そのようにしながら、デバイス設計の新しいブランチ、またはバージョンが作成される。複数のユーザが同時に特定のバージョンに関して作業することができる。
【００３４】
デバイスで使用される回路構成要素の数、位置、および接続を修正することに応じて、デバイス設計は変化することができる。しかしながら、デバイス設計は特定の回路の構成要素の定義の修正に応じて変化することもある。例えば、ユーザは、ディスクリート回路の構成要素の物理的な寸法を定義するジオメトリックなパラメータ化データを変更することによって、デバイス設計におけるディスクリート回路の構成要素の構成要素の定義のうちの1つについての構成要素メタデータを修正することができる。これは、ディスクリート回路の構成要素についての新しい物理的な寸法および新しいバージョンレベルを定義する、新しいジオメトリックなパラメータ化データの生成をもたらすことになる。構成要素の定義の変更は、単一のデバイス設計に対してローカルに適用されるか、あるいは代替えとして変更によって影響されるディスクリート回路の構成要素を組み込むすべてのデバイス設計に全体的に適用され得る。それぞれの影響されるデバイス設計について、デバイス設計についての新しいバージョンレベルが生成され、開発モジュールは新しいバージョンレベルについての回路レイアウトを物理的に検証することができる。
【００３５】
構成要素の定義に対する改版を、図2Aおよび図2Bを参照して説明するが、それらは構成要素の定義によって定義される例示的な平面キャパシタ200および220を描写している。図2Aはプレート202および204によって定義される平面内のキャパシタを描写している。キャパシタは導電性のトレースおよび非導電性のトレースによって定義される。例示的なジオメトリックなパラメータ化データは以下の形態のものであってもよい。
def inplane_capacitor(width, length, offset, wiring_layer):
draw_box(
-width/2,
-length/2,
width/2,
length/2,
wiring_layer) //draws plate one
draw_box(
-width/2 + offset,
-length/2+ offset,
width/2 + offset,
length/2 + offset,
wiring layer_layer) //draws plate two
【００３６】
参照までに、原点は(original point)各平面電極202および204の左下部の頂点にあるものとして描写される。設計者はキャパシタ200についての定義を使用することができるため、またシミュレーションまたはプロトタイプ試験のいずれかに基づいて、キャパシタンスを向上するために電極202と204の間に導電性のパッドが必要かどうかを判断することができる。得られるジオメトリが図2Bに描写され、対応するジオメトリックなパラメータ化データは以下の形態のものであってもよい。
def inplane_capacitor(width, length, offset, pad_width, pad_length, wiring_layer):
draw_box(
-width/2,
-length/2,
width/2,
length/2,
wiring_layer) //draws plate 1
//draw plate two, with extra pad:
draw_box(
-width/2 + offset,
-length/2+ offset,
width/2 + offset,
length/2 + offset,
wiring_layer)
draw_box(
-pad_width/2,
length/2,
pad_width/2,
length/2 + pad_length,
wiring_layer)
【００３７】
したがって、単純にジオメトリックなパラメータ化データを修正することによって、ユーザは単一または複数のデバイス設計で使用することができる既存の構成要素の定義の新しいバージョンを生成することができる。
【００３８】
図3は構成要素の定義、および構成要素の定義を使用してデバイス設計を生成する、例示的な処理300の流れ図である。処理300は図1の設計システム100で使用し、1つまたは複数のコンピュータに実装することができる。
【００３９】
処理300は構成要素の定義を生成し、それぞれの構成要素の定義は電子回路で使用するための構成要素を定義し、構成要素の種類、ジオメトリックなパラメータ化、およびバージョン番号を記述する構成要素メタデータを含む(302)。それぞれの構成要素はディスクリート回路の構成要素である。電子回路の1つまたは複数のレイヤにおいて、ジオメトリックなパラメータ化データはディスクリート回路の構成要素の物理的な実現のための物理的な寸法を定義する。
【００４０】
処理300は構成要素のセット、それぞれの構成要素についてのバージョンレベル、ネットワークリスト、およびデバイス設計についてのバージョンレベルを記述するメタデータを含むデバイス設計を生成する(304)。ディスクリート回路の構成要素のセットは、構成要素の定義ライブラリ120に記憶される構成要素の定義から選択される。デバイス設計はそれぞれの構成要素についてのバージョンレベルを含む。ネットワークリストは、デバイスに含まれるディスクリート回路の構成要素のセットの回路接続を記述する。デバイス設計のバージョンレベルはネットワークリスト、ディスクリート回路の構成要素のセット、およびディスクリート回路の構成要素のバージョンレベルの一意の組み合わせを定義する。
【００４１】
処理300はデバイス設計から、構成要素のセットに基づく回路レイアウト、およびデバイスに含まれる構成要素の回路接続を生成する(306)。生成はデバイス設計の検証を含む。
【００４２】
処理300はデバイス設計の構成要素のうちの1つを選択する(308)。例えば、ユーザはデバイス設計で使用される構成要素のうちの1つを選択し、構成要素のジオメトリックな形状を変更することができる。
【００４３】
処理300は選択された構成要素の構成要素メタデータを修正し、新しい構成要素の定義を生成する(310)。例えば、図2に示すように、ユーザはジオメトリックなパラメータ化データを修正することにより、導電性のパッドを平面内のキャパシタの電極間に追加することができる。処理300はデバイス設計についての新しいバージョンレベルを生成し、新しいバージョンレベルについての回路レイアウトを物理的に検証することができる(312)。
【００４４】
本明細書において説明される主題の実施形態および動作は、本明細書において開示される構造およびその構造的な等価物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはそれらのうちの1つまたは複数の組み合わせにおいて実装することができる。本明細書において説明される主題の実施形態は1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のため、またはデータ処理装置の動作を制御するために、コンピュータ記憶媒体上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュール、として実装することができる。
【００４５】
コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスのメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組み合わせであってもよいか、あるいはそれに含まれてもよい。さらには、コンピュータ記憶媒体が伝搬される信号ではない一方で、コンピュータ記憶媒体は人工的に生成された伝搬信号にエンコードされるコンピュータプログラム命令の送信元または送信先となり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的な構成要素または媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であってもよく、またはそれに含まれてもよい。
【００４６】
本明細書で説明される動作は、データ処理装置により、1つまたは複数のコンピュータ可読記憶デバイスに記憶されるデータ、または他のソースから受信されるデータに対して実施される動作として実装され得る。
【００４７】
用語「データ処理装置」は、装置、デバイス、およびデータを処理するための機械のすべての種類を包含し、例としてプログラム可能プロセッサ、コンピュータ、システムオンチップ、または前述のうちの複数もしくは前述のものの組み合わせを含む。装置は特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、対象のコンピュータプログラムのための実行環境を作成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームのランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組み合わせを構成するコードを含んでもよい。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００４８】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型またはインタプリタ型言語、宣言型または手続き型言語を含むあらゆる形態のプログラム言語で記述することができ、スタンドアロンプログラムとして、またはモジュールとして、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境での使用に好適な他の単位を含むあらゆる形態として展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することができるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータを保有するファイルの一部(例えば、マークアップ言語文書に記憶された1つまたは複数のスクリプト)に、対象のプログラム専用の単一のファイルに、または複数のコーディネートされたファイル(例えば、1つもしくは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)に記憶することができる。コンピュータプログラムは、一か所に置かれる、または複数の場所にまたがって分散される1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され、通信ネットワークで相互接続することができる。
【００４９】
本明細書に記載される処理および論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実施し、入力データを演算して出力を生成することによってアクションを実施することができる。処理およびロジックの流れはまた、特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施され得、また装置も特殊目的論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装されてもよい。
【００５０】
コンピュータプログラムの実行のために好適なプロセッサは、例として、汎用および特殊目的のマイクロプロセッサの両方、およびあらゆる種類のデジタルコンピュータの1つまたは複数のあらゆるプロセッサを含む。一般的に、プロセッサは読み取り専用メモリもしくはランダムアクセスメモリ、または両方から、命令およびデータを受信する。コンピュータの必須の要素は、命令にしたがってアクションを実施するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータはまたデータを記憶するために、例えば、磁気的、磁気光学的ディスク、または光学ディスクなど、1つもしくは複数の大容量記憶デバイスを含み、または1つもしくは複数の大容量記憶デバイスからデータを受信するため、または1つもしくは複数の大容量記憶デバイスにデータを送信するため、またはその両方のために、動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。
【００５１】
コンピュータプログラム命令およびデータを記憶するために好適なデバイスは、例として半導体メモリデバイス、例えばEPROM、EEPROMおよびフラッシュメモリデバイス、磁気ディスク、例えば内部ハードディスクまたは取り外し可能ディスク、磁気光学的ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、非揮発性のメモリ、媒体、およびメモリデバイスのすべての形態を含む。プロセッサおよびメモリは、特殊目的論理回路によって補うことができ、または特殊目的論理回路に組み込むことができる。
【００５２】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するための、例えばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、キーボード、および例えばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができ、それによってユーザはコンピュータに入力を与えることができる。同様に他の種類のデバイスを、ユーザとの対話を提供するために使用することができる。例えば、ユーザに提供されるフィードバックはあらゆる形態の感覚的なフィードバック、例えば視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバックであってよく、ユーザからの入力は、音響、発話または触覚的な入力を含む、あらゆる形態で受信することができる。加えて、コンピュータは、例えばウェブブラウザから受信した要求に応答して、ユーザのユーザデバイスのウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスに文書を送信すること、およびそのデバイスから文書を受信することによって、ユーザと対話することができる。
【００５３】
本明細書において説明される主題の実施形態は、例えばデータサーバとしてバックエンド構成要素を含むコンピューティングシステム、またはミドルウェア構成要素、例えば、アプリケーションサーバを含むコンピューティングシステム、またはフロントエンド構成要素、例えば、グラフィカルユーザーインターフェース、もしくはそれを通じてユーザが本明細書において説明される主題の実装形態と対話することができるウェブブラウザを有するユーザコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素のあらゆる組み合わせ、に実装することができる。システムの構成要素は、デジタルデータ通信のあらゆる形態または媒体、例えば通信ネットワークによって、内部接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)および広域エリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、およびピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)が挙げられる。
【００５４】
コンピューティングシステムは、ユーザおよびサーバを含むことができる。ユーザおよびサーバは一般的に、互いに離れており、典型的には通信ネットワークを介して対話する。ユーザとサーバの関係は、それぞれのコンピュータ上で実行しており、互いのユーザ-サーバ関係を有しているコンピュータプログラムのおかげで成立する。いくつかの実施形態において、サーバはデータ(例えば、HTMLページ)をユーザデバイスに送信する(例えば、ユーザデバイスと対話しているユーザにデータを表示する目的のため、およびユーザデバイスと対話しているユーザからユーザ入力を受信する目的のため)。ユーザデバイスにおいて生成されたデータ(例えば、ユーザ対話の結果)は、サーバにおいてユーザデバイスから受信することができる。
【００５５】
本明細書は多くの具体的な実装形態の詳細を含む一方で、これらはあらゆる特徴の範囲または特許請求され得る範囲に対する限定と解釈されるべきではなく、特定の実施形態に特異的である特徴の説明と解釈されるべきである。別個の実施形態の文脈において本明細書で説明される特定の特徴は、単一の実施形態において組み合わせとして実装されてもよい。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、別個にまたはあらゆる好適なサブ組み合わせで複数の実施形態に実装されてもよい。さらに、特徴はある組み合わせにおいて振る舞うとして上述され得、また初めにそのようなものとして特許請求されさえもするが、特許請求される組み合わせからの1つまたは複数の特徴は、いくつかの場合、その組み合わせから切り出され得、特許請求される組み合わせはサブ組み合わせまたはサブ組み合わせの変形を対象とすることができる。
【００５６】
同様に、動作は特定の順序で図面に描写されるが、これは所望の結果を達成するために、そのような動作が示される特定の順序もしくは順次に実施されること、またはすべての例示される動作が実施されること、を要求するものとして理解されるべきではない。ある状況においては、マルチタスクおよび並列処理が有利であり得る。さらに、上述の実施形態における様々なシステムの構成要素の分離は、すべての実施形態においてそのような分離を要求するものとして理解されるべきではなく、記載されるプログラム構成要素およびシステムは全体的に単一のソフトウェア製品に一体化すること、または複数のソフトウェア製品にパッケージングすることができることが理解されるべきである。
【００５７】
したがって、主題の特定の実施形態が説明されてきた。他の実施形態が以下の特許請求の範囲の範囲内にある。いくつかの場合、特許請求の範囲に列挙されるアクションを異なる順で実施することができるが、なお所望の結果を達成することができる。加えて、添付の図面において描写される処理は、所望の結果を達成するために、必ずしも示される特定の順序、または順次の順序を要求しない。いくつかの実装形態においては、マルチタスクおよび並列処理が有利であり得る。
【符号の説明】
【００５８】
102  ネットワーク
106  ユーザデバイス
110  集積回路の設計システム
112  設計モジュール
114  開発モジュール
120  構成要素の定義ライブラリ
122  構成要素の定義の第1のセット
124  構成要素の定義の第2のセット
130  デバイス設計ライブラリ
132  デバイス設計の第1のセット
134  デバイス設計の第2のセット
200  平面キャパシタ
202  プレート、平面電極
204  プレート、平面電極
220  平面キャパシタ
【図１】
0006768961.tif 000002
【図２Ａ】
0006768961.tif 000003
【図２Ｂ】
0006768961.tif 000004
【図３】
0006768961.tif 000005