(57)【要約】【課題】カレントミラー回路を構成するMOSFETの抽出、検証、表示を自動化する。【解決手段】回路接続情報（ネットリスト）７に基づいて、まずステップＳ０１の「カレントミラー抽出用データベース作成処理」を行い、続いてステップＳ０２の「コピー元およびコピー先候補のMOSFETのデータベース作成処理」を行い、次にステップＳ０３の「極性の等しいMOSFETのデータベース作成処理」を実行し、更にステップＳ０４の「カレントミラー回路を構成するMOSFETの回路定数の比較検証処理」を実行する。【選択図】図２
2012068767.tif 000002
【特許請求の範囲】
【請求項１】
任意の回路図に係わる回路接続情報を入力するネットリスト入力手段と、
前記回路接続情報を用いて所定の第１の条件に基づいて、カレントミラー回路を構成するMOSFETペアにおけるコピー元MOSFETを抽出するコピー元MOSFET抽出手段と、
前記回路接続情報を用いて所定の第２の条件に基づいて、前記コピー元MOSFETに対応するコピー先MOSFETを抽出することで、前記カレントミラー回路を構成するMOSFETペアを抽出するMOSFETペア抽出手段と、
該MOSFETペア抽出手段によって抽出されたMOSFETペアにおけるコピー元MOSFETとコピー先MOSFETとで、回路定数が同じであるか否かを検証する回路定数検証手段と、
該回路定数検証手段において回路定数が異なると判定された前記MOSFETペアを、回路定数が異なるMOSFETペアとして記憶する修正対象記憶手段と、
を有することを特徴とする半導体集積回路の自動検証装置。
【請求項２】
前記第１の条件は、ゲート端子とドレイン端子が接続されるネット名が同一であり、且つ、ドレイン端子とサブ端子が接続されるネット名が異なり、且つ、ソース端子とサブ端子が接続されるネット名が同一であることを特徴とする請求項１記載の半導体集積回路の自動検証装置。
【請求項３】
前記第２の条件は、ゲート端子が、１以上のネットを介して、前記コピー元MOSFETのゲート端子と接続されること、及び、極性が前記コピー元MOSFETの極性と同じであることを特徴とする請求項１または２記載の半導体集積回路の自動検証装置。
【請求項４】
前記回路図が階層構造となっており、前記回路接続情報が該階層構造に応じた回路接続情報である場合には、
前記コピー元MOSFET抽出手段によって抽出される前記コピー元MOSFETにはその階層を示す階層情報が付加され、
前記MOSFETペア抽出手段は、前記コピー元MOSFETに対応するコピー先MOSFETを、該コピー元MOSFETの階層の上階層、下階層、同一階層のそれぞれの階層において前記第２の条件に基づいて抽出することを特徴とする請求項１記載の半導体集積回路の自動検証装置。
【請求項５】
前記回路図は、それぞれが回路図である複数のセルより成り、該複数のセルが前記階層構造となっており、
前記階層構造に応じた回路接続情報に基づいて、任意のセルにおけるネットと該セルの下層のセルにおけるネットとの接続関係を示すデータベースを生成するデータベース生成手段を更に有し、
前記MOSFETペア抽出手段は、前記データベースを参照して、前記コピー元MOSFETに対応するコピー先MOSFETを抽出することを特徴とする請求項４記載の半導体集積回路の自動検証装置。
【請求項６】
前記回路図を表示すると共に、該回路図上で前記修正対象記憶手段が記憶した前記回路定数が異なるMOSFETペアのMOSFETシンボルをハイライト表示するハイライト表示手段を更に有することを特徴とする請求項１〜５の何れかに記載の半導体集積回路の自動検証装置。
【請求項７】
前記回路図を表示すると共に、該回路図上で前記修正対象記憶手段が記憶した前記回路定数が異なるMOSFETペアのMOSFETシンボルをハイライト表示するハイライト表示手段を更に有し、
前記回路図が前記階層構造となっている場合には、
前記ハイライト表示手段は、前記各セル毎にその回路図を表示すると共に該セルの回路図上に前記修正対象記憶手段が記憶した前記回路定数が異なるMOSFETペアがある場合にはそのMOSFETシンボルをハイライト表示することを特徴とする請求項５記載の半導体集積回路の自動検証装置。
【請求項８】
コンピュータにおける自動検証方法であって、
任意の回路図に係わる回路接続情報を入力するステップと、
該入力した回路接続情報を用いて所定の第１の条件に基づいて、カレントミラー回路を構成するMOSFETペアにおけるコピー元MOSFETを抽出するステップと、
前記入力した回路接続情報を用いて所定の第２の条件に基づいて、前記抽出したコピー元MOSFETに対応するコピー先MOSFETを抽出することで、前記カレントミラー回路を構成するMOSFETペアを抽出するステップと、
該抽出されたカレントミラー回路を構成するMOSFETペアにおけるコピー元MOSFETとコピー先MOSFETとで、回路定数が同じであるか否かを判定するステップと、
回路定数が異なると判定されたMOSFETペアを、回路定数が異なるMOSFETペアとして記憶するステップと、
を有することを特徴とする半導体集積回路の自動検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランジスタ等の半導体素子で構成される半導体集積回路の設計において、カレントミラー回路を構成するMOSFETの回路定数を自動的に検証する方法に関する。
【背景技術】
【０００２】
半導体集積回路はＣＡＤ（Computer Aided Design）を用いて設計されており、半導体集積回路の回路設計では、回路図入力システムを用いて、図１９に示すMOSFET等のシンボル図を配置・配線して設計する。MOSFETは、Ｎチャネル型とＰチャネル型の２つの極性があり（図１９はＰチャネル型）、ドレイン（Ｄ）、ゲート（Ｇ）、ソース（Ｓ）、サブ（ＳＢ）の４端子からなる。MOSFETは概ね図２０のようなレイアウトであり、ゲート長（Ｗ値）・ゲート幅（Ｌ値）・並列数（Ｍ値）のサイズ（以後、回路定数と呼ぶ）によって、Ｓ−Ｄ間の電圧・電流等を調整できる。尚、MOSFETのレイアウトは、図２０に示すように、ソース領域４０１、ゲート領域４０２、ドレイン領域４０３より成る。ゲート領域４０２の横方向の長さ（幅）と縦方向の長さ（高さ）が、上記Ｌ値とＷ値である。
【０００３】
上記MOSFETを使って、図２１のように、２つのMOSFET501、502を用いてカレントミラー回路を構成する。すなわち、一方のMOSFET501はＧ端子とＤ端子をショートしたダイオード接続とし（以後、コピー元MOSFETと呼ぶ）、このコピー元MOSFETと他方のMOSFET502（以後、コピー先MOSFETと呼ぶ）のＧ端子同士を配線して接続する。これらのコピー元とコピー先のMOSFETの回路定数を等しくすると、コピー元MOSFETのＳ−Ｄ間電流と等しい電流が、コピー先MOSFETのＳ−Ｄ間に流れる。このような回路構成をカレントミラー回路と呼ぶ。
【０００４】
このようなカレントミラー回路構成の応用として、コピー先MOSFETの回路定数を変えることで、この回路定数に応じた電流を、コピー先MOSFETのＳ−Ｄ間に流せる。
カレントミラー回路の設計において、この回路を構成するコピー元とコピー先のMOSFETのそれぞれのＷ値およびＬ値が異なると、半導体製造後に電流特性値のばらつきが大きくなることがあるため、Ｍ値の設定だけで設計しなければならない。このばらつきを起こさないためにも、コピー元とコピー先のMOSFETそれぞれのＷ値およびＬ値の回路定数が、等しいことを検証する必要がある。
【０００５】
上記のように、カレントミラー回路は、MOSFETペア（コピー元MOSFETとコピー先MOSFETとのペア）より成り、コピー元MOSFETとコピー先MOSFETとで回路定数（特にＷ値およびＬ値）が同じであることが必要とされている。もし、回路定数が異なるものがあるならば、それを見つけ出して修正する必要がある。その際、まず、回路図上で、カレントミラー回路を構成するMOSFETペア（コピー元とコピー先のペア）を見つけ出す必要がある。
【０００６】
従来、複雑な半導体集積回路図であっても、図２１のようなカレントミラー回路を構成するMOSFETペア（コピー元とコピー先のペア）の抽出と、その回路定数の確認（Ｗ値、Ｌ値がコピー元とコピー先とで等しいこと等）を、目視で行ってきた。この為、非常に手間と時間が掛かることになり、担当者の負担が大きく、またミスが生じていた。
【０００７】
ここで、例えば、特許文献１，２，３等に記載の従来技術が知られている。
特許文献１，２の従来処理の概略図を図２２（ａ）に示す。
特許文献１，２では、回路シミュレーション実行時に半導体集積回路中の半導体素子が電気的、時間的規格を満たすか否かの自動検証方法および検証装置が提案されている。すなわち、図２２（ａ）に示すように、回路シミュレーション実行時に、特定の回路の電圧・電流を監視し、違反があった場合、その情報をファイルへ書き込む（ステップＳ１０１）。この処理をシミュレーションが終了するまで繰り返し、シミュレーション終了したら（ステップＳ１０２，ＹＥＳ）、検証結果の表示を行う（ステップＳ１０３）。
【０００８】
特許文献１，２では、カレントミラー回路を構成するMOSFETペア（コピー元とコピー先のペア）の抽出する機能や、その回路定数を検証する機能（Ｗ値、Ｌ値がコピー元とコピー先とで等しいこと等を検証する機能）は、提案・開示されていない。
【０００９】
特許文献３の従来処理の概略図を図２２（ｂ）に示す。
特許文献３では、図２２（ｂ）に示すように、レイアウト検証処理において、ペア配置素子を特定し（制御カード等を利用）（ステップＳ１１１）、ペア配置素子の検証処理を実行する（ステップＳ１１２）。
【００１０】
このように特許文献３では、制御カード等に基づいてカレントミラー回路等のペア配置の半導体素子を特定し、配置等を修正する。これらを特定するには、制御カードにペア配置の素子を予め入力しておく必要がある。しかし、これらの素子は自動検出されないので、設計者が目視で確認して制御カードへ手入力しなければならない。
【００１１】
この様な方法である為、入力忘れ・間違いの可能性があり、設計のやり直しの発生する危険性がある。
また特許文献３では、上記のような処理をレイアウト検証で行っている。一般的にレイアウト設計は回路設計を基にして行われるため、レイアウト設計段階で修正が起きると回路の再設計・再検証が必要となる。そのため、設計効率が悪い。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００２−１７５３４５号公報
【特許文献２】特開２００２−２６９１６９号公報
【特許文献３】特開２００９−０８６８８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述したように、カレントミラー回路を構成するMOSFETペアの抽出から回路定数の検証までを自動的に効率的に実行できる手法は、従来では何等開示・提案されていない。
本発明の課題は、カレントミラー回路を構成するMOSFETペアの抽出、検証、表示を、コンピュータ処理により自動化することができ、カレントミラー回路の検証速度の向上と検証漏れによる設計のやり直しを防ぐことができ、回路設計の効率向上が可能となる半導体集積回路の自動検証装置、検証方法等を提供することである。
【課題を解決するための手段】
【００１４】
本発明による半導体集積回路の自動検証装置は、任意の回路図に係わる回路接続情報を入力するネットリスト入力手段と、前記回路接続情報を用いて所定の第１の条件に基づいて、カレントミラー回路を構成するMOSFETペアにおけるコピー元MOSFETを抽出するコピー元MOSFET抽出手段と、前記回路接続情報を用いて所定の第２の条件に基づいて、前記コピー元MOSFETに対応するコピー先MOSFETを抽出することで、前記カレントミラー回路を構成するMOSFETペアを抽出するMOSFETペア抽出手段と、該MOSFETペア抽出手段によって抽出されたMOSFETペアにおけるコピー元MOSFETとコピー先MOSFETとで、回路定数が同じであるか否かを検証する回路定数検証手段と、該回路定数検証手段において回路定数が異なると判定された前記MOSFETペアを、回路定数が異なるMOSFETペアとして記憶する修正対象記憶手段とを有する。
【００１５】
上記自動検証装置では、カレントミラー回路を構成するMOSFETペアを自動的に抽出でき、更に、抽出したMOSFETペアのなかに回路定数が異なるMOSFETペア（修正対象）がある場合にはこれを自動的に抽出することができる。
【００１６】
また、上記半導体集積回路の自動検証装置において、例えば、前記回路図が階層構造となっており、前記回路接続情報が該階層構造に応じた回路接続情報である場合には、前記コピー元MOSFET抽出手段によって抽出される前記コピー元MOSFETにはその階層を示す階層情報が付加され、前記MOSFETペア抽出手段は、前記コピー元MOSFETに対応するコピー先MOSFETを、該コピー元MOSFETの階層の上階層、下階層、同一階層のそれぞれの階層において前記第２の条件に基づいて抽出する。
【００１７】
この様に、階層構造となっている回路図の場合でも、カレントミラー回路を構成するMOSFETペアを自動的に抽出でき、更に、抽出したMOSFETペアのなかに回路定数が異なるMOSFETペア（修正対象）がある場合にはこれを自動的に抽出することができる。
【００１８】
また、上記半導体集積回路の自動検証装置において、例えば、前記回路図を表示すると共に、該回路図上で前記修正対象記憶手段が記憶した前記回路定数が異なるMOSFETペアのMOSFETシンボルをハイライト表示するハイライト表示手段を更に有するようにしてもよい。このハイライト表示は、上記階層構造の回路図の場合にも対応可能とすることもできる。
【発明の効果】
【００１９】
本発明の半導体集積回路の自動検証装置、検証方法等によれば、カレントミラー回路を構成するMOSFETペアの抽出、検証、表示を、コンピュータ処理により自動化することができ、カレントミラー回路の検証速度の向上と検証漏れによる設計のやり直しを防ぐことができ、回路設計の効率向上が可能となる。
【図面の簡単な説明】
【００２０】
【図１】本例の自動検証装置のハードウェア構成を示すブロック図である。
【図２】実施例１によるカレントミラーを構成するMOSFETの自動検証処理のフロー図である。
【図３】図２の自動検証処理を詳細に説明する為の図である。
【図４】自動検証対象となる回路図の一例である。
【図５】図４の回路の回路接続情報（ネットリスト）の例である。
【図６】（ａ）〜（ｇ）は、図５の例に応じた図３に示す各種ＤＢの具体例である。
【図７】本例の自動検証処理の結果を表示する表示フォームの一例である。
【図８】実施例２によるカレントミラーを構成するMOSFETの自動検証処理のフロー図である。
【図９】図８の自動検証処理を詳細に説明する為の図である。
【図１０】自動検証対象となる多階層構造の回路図の例である。
【図１１】図１０の回路図のネットリストの例である。
【図１２】（ａ）〜（ｆ）は、図１１の例に応じた図９に示す各種ＤＢの具体例（その１）である。
【図１３】（ｇ）〜（ｌ）は、図１１の例に応じた図９に示す各種ＤＢの具体例（その２）である。
【図１４】回路図のハイライト処理のフロー図である。
【図１５】図１４の処理の一部に関する詳細フロー図である。
【図１６】階層構造の概念図である。
【図１７】図１６のセルＡに配置された各シンボルのＩＤの例である。
【図１８】ハイライト表示の具体例である。
【図１９】MOSFETのシンボル図の例である。
【図２０】１個のMOSFETの簡単なレイアウトの例である。
【図２１】Ｐチャネル型MOSFETを使用したカレントミラー回路の回路構造である。
【図２２】（ａ）、（ｂ）は、従来の処理を示す概略図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例の自動検証方法による処理（自動検証処理）を実施する装置（自動検証装置というものとする）のハードウェアの概略図である。
【００２２】
本例の自動検証装置のハードウェアは、外部記憶装置１（例えばハードディスクや可搬型メモリ等）、メモリ２、ＣＰＵ３、入力装置４、出力装置５で構成され、これらがバス６によって互いに接続されている。
【００２３】
本例の自動検証処理は、コンピュータプログラムで記述されており、ハードディスク装置等の外部記憶装置１に予め記憶される。このプログラムは、実行時に読み出されてＲＡＭ等のメモリ２に一時的に格納され、ＣＰＵ３で実行される。これによって、以下に説明する本例の自動検証処理が実現される。すなわち、例えば図２や図８や図１４、図１５に示すフローチャートの処理（これらの処理に対応する処理機能部）が実現される。
【００２４】
また、外部記憶装置１またはメモリ２には、後述する回路接続情報（ネットリスト）や、本例の自動検証処理で生成される各種データベース２０〜８０、各種データベース１１０〜２４０、データ３００等が記憶されるものであってもよい。
【００２５】
入力装置４は、例えばキーボードやマウス等であり、設計者の操作をＣＰＵ３に伝えるものである。出力装置５は、ＣＰＵ３のプログラム実行後のデータを画面上に表示するディスプレイや、データ等を印刷するプリンタ等である。
【００２６】
尚、本例の自動検証装置は、例えばパソコン等で実現されるものであってもよく、図１はパソコンのハードウェアの概略図であると考えてもよい。
以下、上記自動検証装置によって実行される本例の自動検証処理に係わる各実施例１〜３について説明する。
【００２７】
（実施例１）
図２は、実施例１による「半導体集積回路におけるカレントミラー回路の自動検証処理」の処理フロー図である。以下、実施例１について説明するが、具体例として図４に示す回路図を使用した場合を例にして説明するものとする。
【００２８】
図４に示す回路図例では、回路図中の各MOSFETシンボルには、Ｍ１等のシンボル名の情報が付加される。図示の例では７つのMOSFETシンボルがあり、それぞれ、Ｍ０、Ｍ１，Ｍ２，Ｍ３，Ｍ４，Ｍ５，Ｍ６の各シンボル名が付加されている。また、各端子には、図示のｖｃｃ、inputＡ、out等の端子名が付加される。また、図示していないが各MOSFETシンボルは、上記の通りドレイン（Ｄ）、ゲート（Ｇ）、ソース（Ｓ）、サブ（ＳＢ）の４つの端子を有するものである。
【００２９】
上記ｖｃｃ等の端子やMOSFETシンボルの端子間を結ぶ配線をネットとよび、これら各ネットにはnet03等のネット名の情報が付加される。
更に各MOSFETシンボルには、回路シミュレーションに用いるシミュレーションモデル名（例えば、pmosやnmos）や回路定数（例えば、ゲート長Ｗ、ゲート幅Ｌ、並列数Ｍ等）が付加される。例えば、シンボル名がＭ０のMOSFETシンボルには、回路定数として、Ｗ＝２０μｍ、Ｌ＝４μｍ、Ｍ＝２が付加されている。また、シミュレーションモデルは、MOSFETの極性（Ｐチャネル型／Ｎチャネル型）に対応しており、その名称は極性を示すものとなっている。よって例えばシミュレーションモデル名が“nmos”である場合、そのMOSFETの極性はＮチャネル型であることを意味している。
【００３０】
回路設計では、設計者等が、まず、既存の回路図入力システム（例えばCadence社のVirtuoso等）を用いて、MOSFET等の半導体素子のシンボル図の配置・端子間の配線を任意に行うことで、例えば上記図４のような回路図が作成される。
【００３１】
この回路図を汎用の回路シミュレータ（例えばCadence社のSpectre等）に入力することで、回路接続情報７（以後、ネットリストと呼ぶ）が生成されてファイルに保存される（メモリ２または外部記憶装置１に記憶される）。
【００３２】
図５に、回路接続情報７の具体例を示す。これは、上記図４の回路図に応じた回路接続情報７を示すものである。
図５に示すように、回路接続情報７は、各シンボル（ここではMOSFETシンボル）毎に対応して、シンボル名９、ドレイン端子接続ネット名１０、ゲート端子接続ネット名１１、ソース端子接続ネット名１２、サブ端子接続ネット名１３、シミュレーションモデル名１４、回路定数１５の各種情報より成る。
【００３３】
シンボル名９は、上記Ｍ０〜Ｍ６等の各MOSFETシンボルのシンボル名である。ドレイン端子接続ネット名１０は、ドレイン端子が接続されるネットの上記ネット名である。ゲート端子接続ネット名１１、ソース端子接続ネット名１２、サブ端子接続ネット名１３も同様に、それぞれ、ゲート端子、ソース端子、サブ端子が接続されるネットの上記ネット名である。シミュレーションモデル名１４は、pmos／nmos等であり、上記の通りMOSFETの極性を示すものとなる。回路定数１５は、上記ゲート長Ｗ、ゲート幅Ｌ、並列数Ｍ等である。
【００３４】
図５に示す具体例では、例えば、シンボル名がＭ０のMOSFETシンボルを例にすると、そのドレイン端子及びゲート端子はネット“net03”に接続され、そのソース端子及びサブ端子は、ネット“gnd”に接続されていることになる。また、シミュレーションモデル名はnmosであり、回路定数はＷ＝２０μｍ、Ｌ＝４μｍ、Ｍ＝２である。
【００３５】
尚、以下、ドレイン端子をＤ端子、ゲート端子をＧ端子、ソース端子をＳ端子、サブ端子をＳＢ端子と記す場合もある。
ここで、半導体集積回路において、カレントミラー回路を構成するコピー元MOSFETである条件は、（１）そのMOSFETのＧ端子とＤ端子間を結ぶネット名が等しく、且つ（２）Ｄ端子とＳＢ端子を結ぶネット名が異なり、且つ（３）Ｓ端子とＳＢ端子を結ぶネット名が等しい、ことである（以下、条件１（１）、条件１（２）、条件１（３）と記し、あるいは、まとめて条件１または第１の条件と呼ぶ）。
【００３６】
カレントミラー回路を構成するコピー元MOSFETである条件は、上記条件１を満たすことであり、これは上記条件１（１）、条件１（２）、条件１（３）の全てを満たすことを意味する。尚、条件１（２）に関しては、例えば「Ｇ端子とＳ端子を結ぶネット名が異なり」等に置き換えても構わない。
【００３７】
ここで、以下、例えば“Ｇ端子が接続されるネットのネット名”（上記ゲート端子接続ネット名１１）を“Ｇ端子ネット名”と記すものとする。
これは、他の端子（Ｄ端子、Ｓ端子、ＳＢ端子）についても同様であり、例えばＤ端子を例にすると“Ｄ端子が接続されるネット名”を“Ｄ端子ネット名”と記す場合もあるものとする。この例の場合、上記ドレイン端子接続ネット名１０が“Ｄ端子ネット名”に相当し、上記ゲート端子接続ネット名１１が“Ｇ端子ネット名”に相当し、上記ソース端子接続ネット名１２が“Ｓ端子ネット名”に相当し、上記サブ端子接続ネット名１３が“ＳＢ端子ネット名”に相当することになる。
【００３８】
この様な表記を用いる場合、例えば、上記条件１の（１）は「そのMOSFETのＧ端子ネット名とＤ端子ネット名とが同一である」等を言うこともできる。同様に、上記条件１の（２）は「そのMOSFETのＤ端子ネット名とＳＢ端子ネット名とが異なる」、上記条件１の（３）は「そのMOSFETのＳ端子ネット名とＳＢ端子ネット名とが同一である」等ということもできる。
【００３９】
あるいは、別の言い方をすれば、上記条件１（１）は「そのMOSFETのＧ端子とＤ端子とが同じネットに接続している」、上記条件１（２）は「そのMOSFETのＤ端子とＳＢ端子とは同じネットに接続していない」、上記条件１（３）は「そのMOSFETのＳ端子とＳＢ端子とが同じネットに接続している」等ということもできる。
【００４０】
一方、コピー先MOSFETである条件は、「そのMOSFETのＧ端子ネット名が上記コピー元MOSFETのＧ端子ネット名と等しく（同一であり）」（以下、条件２と呼ぶ）、且つ「そのMOSFETのシミュレーションモデル名が上記コピー元MOSFETのシミュレーションモデル名と一致する」（以下、条件３と呼ぶ）ことである。上記シミュレーションモデル名が一致すれば極性が等しいことになる。よって、条件３は「そのMOSFETの極性が、コピー元MOSFETの極性と同じである」等と表現してもよい。
【００４１】
尚、上記の条件２は「狭義の条件２」である。条件２は、広義で言うならば「そのMOSFETのＧ端子が、任意の１または複数のネットを介して、コピー元MOSFETのＧ端子と接続している」等と言うことができる。この広義の条件２によれば、後述する実施例２における図１０の例のように、セルＡのMOSFET“Ｍ０”がコピー元MOSFETである場合に、セルＢのMOSFET“Ｍ１”等がコピー先MOSFETとなることになる。この例では、セルＡのMOSFET“Ｍ０”のＧ端子は、セルＡ内のネット“out”に接続しており、セルＢのMOSFET“Ｍ１”のＧ端子は、セルＢ内のネット“in”に接続しているので、Ｇ端子ネット名は異なることになる。しかしながら、セルＡ内のネット“out”と、セルＢ内のネット“in”は、両方ともネット“net05”に接続しているので、セルＢのMOSFET“Ｍ１”のＧ端子は、コピー元MOSFETであるセルＡのMOSFET“Ｍ０”のＧ端子と接続していることになる（ネット“in”、ネット“net05”、ネット“out”を介して接続している）。よって、上記の広義の条件２を満たすことになる。
【００４２】
尚、上記条件２と条件３の両方を満たすことがコピー先MOSFETである条件となり、これを第２の条件というものとする。逆の言い方をすれば、第２の条件を満たすことがコピー先MOSFETである条件であり、これは上記条件２と条件３の両方を満たすことを意味する。
【００４３】
実施例１における上記自動検証装置は、上記回路接続情報７を入力して、上記条件１〜条件３に基づいた図２のステップＳ０１〜ステップＳ０４の自動検証処理の動作を実行する。
【００４４】
上記自動検証処理では、まずステップＳ０１の「カレントミラー抽出用データベース作成処理」を行い、続いてステップＳ０２の「コピー元およびコピー先候補のMOSFETのデータベース作成処理」を行い、次にステップＳ０３の「極性の等しいMOSFETのデータベース作成処理」を実行し、更にステップＳ０４の「カレントミラー回路を構成するMOSFETの回路定数の比較検証処理」を実行する。
【００４５】
ここで、図３には、これら各ステップＳ０１〜Ｓ０４の処理を示すと共に、各ステップＳ０１〜Ｓ０４において作成される各種データベースを示しており、以下、主に図３を用いて、上記ステップＳ０１〜ステップＳ０４の自動検証処理の動作について詳しく説明する。
【００４６】
図３に示す自動検証処理部８が、上記ステップＳ０１〜ステップＳ０４の自動検証処理を実行する。自動検証処理部８は、例えば上記ＣＰＵ３が、上記外部記憶装置１に予め記憶されているプログラムを読出し・実行することで実現される処理機能部である。
【００４７】
尚、特に図示しないが、自動検証処理部８は、回路接続情報（ネットリスト）７を入力するネットリスト入力機能部も備えている。
まず、上記ステップＳ０１の「カレントミラー抽出用データベース作成処理」では、カレントミラー回路の抽出に必要な各種データベースを作成する。これら各種データベースは、配列構造であり、１変数に対して一意に他の変数が参照できる。上記ステップＳ０１の処理では以下の配列構造の各データベース（第１のデータベース（ＤＢ）２０〜第４のデータベース（ＤＢ）５０）を作成する。
・第１のデータベース（ＤＢ）２０：コピー元MOSFETシンボル名とＧ端子ネット名(一例；図６(a))
・第２のデータベース（ＤＢ）３０：Ｇ端子ネット名とMOSFETシンボル名(一例：図６(b))
・第３のデータベース（ＤＢ）４０：MOSFETシンボル名とシミュレーションモデル名(一例：図６(c))
・第４のデータベース（ＤＢ）５０：MOSFETシンボル名と回路定数(一例：図６(d))
尚、必要に応じて、その他に必要なデータベースを作成してもよい。あるいは、上記データベース２０〜５０は、必ずしも全てを作成する必要はない。この場合、ステップＳ０２以降の処理では、必要に応じてネットリスト７を参照すればよい。また、尚、以下、例えば第１のデータベース（ＤＢ）２０は、第１のデータベース２０または省略してＤＢ２０等と記す場合もある。他のデータベースも同様である。
【００４８】
図５のネットリストを使用した場合の上記各データベース（ＤＢ２０〜ＤＢ５０）の例を、図６（ａ）〜（ｄ）に示す。
第１のデータベース２０は、例えば図６（ａ）に示すように、“コピー元MOSFETシンボル名”２１とＧ端子ネット名２２の各データ項目より成る。第２のデータベース３０は、例えば図６（ｂ）に示すように、Ｇ端子ネット名３１とMOSFETシンボル名３２の各データ項目より成る。第３のデータベース４０は、例えば図６（ｃ）に示すように、MOSFETシンボル名４１とシミュレーションモデル名４２の各データ項目より成る。第４のデータベース５０は、例えば図６（ｄ）に示すように、MOSFETシンボル名５１と回路定数（Ｗ値５２、Ｌ値５３、Ｍ値５４）の各データ項目より成る。
【００４９】
以下、これら各データベース（ＤＢ２０〜ＤＢ５０）の生成処理について（フローチャート等の図面は示さずに）説明する。
まず、図６（ａ）に示すＤＢ２０に関して、“コピー元MOSFETシンボル名”２１は、上記の条件１を基にして抽出する。すなわち、例えば図５の例では、各MOSFET毎に（シンボル名９＝Ｍ０〜Ｍ６毎に）、（１）ドレイン端子接続ネット名１０がゲート端子接続ネット名１１と同一であること、（２）ドレイン端子接続ネット名１０がサブ端子接続ネット名１３と異なること、及び（３）ソース端子接続ネット名１２がサブ端子接続ネット名１３と同一であること、という３つの条件を全て満たすか否かをチェックする。
【００５０】
そして、上記３つの条件を全て満たすMOSFETをコピー元MOSFETとして抽出して、そのシンボル名９を“コピー元MOSFETシンボル名”２１に格納すると共に、当該抽出したコピー元MOSFETのゲート端子接続ネット名１１を、Ｇ端子ネット名２２に格納する。
【００５１】
尚、図５に示す例では、シンボル名９が“Ｍ０”であるMOSFETのみが、上記３つの条件を全て満たすので、コピー元MOSFETとして抽出される。そして、図５に示す例では“Ｍ０”のゲート端子接続ネット名１１は“net03”である。よって、ＤＢ２０の内容は図６（ａ）に示す通りとなる。
【００５２】
次に、図６（ｂ）に示すデータベース（ＤＢ）３０に関しては、まず図５に示す回路接続情報７から、ゲート端子接続ネット名１１を全て抽出して、ＤＢ３０のＧ端子ネット名３１に格納する。図５の例に応じて、Ｇ端子ネット名３１には図示の通りinputA〜net03の５種類のG端子ネット名が格納されることになる。そして、各Ｇ端子ネット名３１毎に、図５に示す回路接続情報７から対応するシンボル名９を全て抽出して、MOSFETシンボル名３２に格納する。
【００５３】
例えば一例としては、Ｇ端子ネット名３１＝“inputA”に対応するシンボル名９は、図５に示す例では“Ｍ４”と“Ｍ５”であるので、これらが図６（ｂ）に示すようにMOSFETシンボル名３２に格納されることになる。これより、“Ｍ４”と“Ｍ５”のMOSFETは、そのＧ端子が同一のネット（inputA）に接続されている事が分かる。図６（ｂ）に示すように、これ以外にも、“Ｍ１”と“Ｍ０”のMOSFETが、そのＧ端子が同一のネット（net03）に接続されている。
【００５４】
次に、図６（ｃ）に示すデータベース（ＤＢ）４０に関しては、回路接続情報７から各MOSFET毎にシンボル名９とシミュレーションモデル名１４とを抽出して、これらをMOSFETシンボル名４１とシミュレーションモデル名４２に格納する。
【００５５】
最後に、図６（ｄ）に示すデータベース（ＤＢ）５０に関しては、回路接続情報７から各MOSFET毎にシンボル名９と回路定数１５を抽出して、これらをMOSFETシンボル名５１とＷ値５２、Ｌ値５３、Ｍ値５４に格納する。上記の通り回路定数１５はゲート長Ｗ、ゲート幅Ｌ、並列数Ｍより成り、これらを各々Ｗ値５２、Ｌ値５３、Ｍ値５４に格納する。
【００５６】
以上、ステップＳ０１の処理によって上記４つのデータベース（ＤＢ２０〜ＤＢ５０）を生成したら、ステップＳ０２以降ではこれらのデータベースを利用して、後述する各種データベース６０，７０，８０を生成する。
【００５７】
まず、ステップＳ０２の「コピー元およびコピー先候補のMOSFETペアのデータベース作成処理」について説明する。
このステップＳ０２の処理では、上記第１のデータベース２０と第２のデータベース３０とを参照して、カレントミラー回路と成り得るMOSFETの組み合わせ（ペア）の候補を抽出することで、第５のデータベース（ＤＢ）６０を作成する。図６（ｅ）に、図６（ａ）、（ｂ）の例に応じた（換言すれば図５の例に応じた）第５のデータベース６０の一例を示す。
【００５８】
図６（ｅ）に示すように第５のデータベース６０は、“コピー元MOSFETシンボル名”６１、“コピー先候補MOSFETシンボル名”６２、Ｇ端子ネット名６３の各データ項目より成る。
【００５９】
“コピー元MOSFETシンボル名”６１には、上記第１のデータベース２０の“コピー元MOSFETシンボル名”２１が格納される。図示の通り、本例では“Ｍ０”のみとなるが、各“コピー元MOSFETシンボル名”６１毎に、それに対応するコピー先MOSFETの候補を抽出して“コピー先候補MOSFETシンボル名”６２に格納することになる。
【００６０】
ここで、コピー先MOSFETである条件は、上記の条件２と条件３であるが、ステップＳ０２の処理ではまず条件２を満たすものを抽出して“コピー先候補MOSFETシンボル名”６２に格納するものである（未だ条件３を満たすか否か不明なので“候補”としている）。
【００６１】
上記の通り狭義の条件２は「そのＧ端子ネット名がコピー元MOSFETのＧ端子ネット名と等しい」ことであるので、図５に示す回路接続情報７の例ではコピー元MOSFETである“Ｍ０”のＧ端子ネット名は“net03”であり、この“net03”と同じＧ端子ネット名のMOSFETを図６（ｂ）の第２のデータベース３０を検索して求めると、コピー先MOSFETの候補として“Ｍ１”が抽出されることになり、これが“コピー先候補MOSFETシンボル名”６２に格納されることになる。更に、上記コピー元とコピー先とに共通のＧ端子ネット名“net03”を、Ｇ端子ネット名６３に格納する。
【００６２】
次に、ステップＳ０３の「極性の等しいMOSFETペアのデータベース作成処理」について説明する。ステップＳ０３の処理は、上記条件２を満たすもの（候補）のなかで更に条件３を満たすものを抽出して、これをカレントミラー回路を構成するMOSFETペアとして第６のデータベース（ＤＢ）７０に格納するものである。
【００６３】
尚、上記ステップＳ０２、ステップＳ０３の処理をまとめて言うならば、ステップＳ０１で抽出した各コピー元MOSFET毎に、上記第２の条件を満たす（条件２と条件３の両方を満たす）MOSFETをコピー先MOSFETとして抽出するものである。抽出したコピー元とコピー先のMOSFETは、カレントミラー回路を構成するMOSFETペアとして記憶しておき、後述するステップＳ０４の検証対象とする。
【００６４】
ステップＳ０３の処理では、上記の条件３に基づき、上記第３のデータベース４０を参照して、上記ステップＳ０２で生成した第５のデータベース６０の各レコード（コピー元とコピー先候補の組み合わせ；本例では１つのみ）の中から、コピー元とコピー先候補とでシミュレーションモデル名が等しいものを抽出することで、第６のデータベース７０を作成する。
【００６５】
尚、第６のデータベース７０は、図６（ｆ）に示すように、“コピー元MOSFETシンボル名”７１、“コピー先MOSFETシンボル名”７２、Ｇ端子ネット名７３の各データ項目より成る。また、尚、後述するデータベース８０は、そのデータ構造はデータベース７０と同じであり、図６（ｇ）に示すように“コピー元MOSFETシンボル名”８１、“コピー先MOSFETシンボル名”８２、Ｇ端子ネット名８３の各データ項目より成る。
【００６６】
本例では、図６（ｅ）と図６（ｃ）から明らかなように、コピー先候補であるＭ１のシミュレーションモデル名４２は、コピー元であるＭ０のシミュレーションモデル名４２と同じ（nmos）であるので、これらをカレントミラー回路を構成するMOSFETペアとして抽出して、データベース７０に格納することで、データベース７０の内容は図６（ｆ）に示す通りとなる。
【００６７】
以上の処理により、カレントミラー回路を構成するMOSFETペア（コピー元、コピー先）を抽出できるので、最後に、ステップＳ０４の「カレントミラー回路を構成するMOSFETペアの回路定数の比較検証処理」を実行する。
【００６８】
ここで、既に従来技術で述べた通り、カレントミラー回路を構成するコピー元とコピー先とでＷ値、Ｌ値が異なると（両方異なる場合は勿論、どちらか一方でも異なると）、半導体製造後に電流特性値のばらつきが大きくなることがある。このばらつきを起こさないためにも、上記ステップＳ０１〜Ｓ０３の処理で抽出した「カレントミラー回路を構成するMOSFETのペア」に関して、コピー元とコピー先とで回路定数（ここでは特にＷ値およびＬ値）が等しいことを検証する必要がある。ステップＳ０４の処理は、この検証の為の処理である。もし、Ｗ値、Ｌ値のどちらか一方でも異なる場合には、そのMOSFETペアに関しては何らかの修正（例えばＷ値、Ｌ値の修正）を行うことが望ましいので、修正対象MOSFETとして後述する第７のデータベース８０に記録しておく。
【００６９】
ステップＳ０４の処理では、上記第６のデータベース７０を参照してカレントミラー回路を構成するMOSFETペア（コピー元、コピー先）を取得し、当該各MOSFETペア毎に（本例では１つのペアのみ）、上記第４のデータベース５０を参照してコピー元MOSFETとコピー先MOSFETとで回路定数（特にＷ値およびＬ値）が同一か否かを検証する。もし、Ｗ値、Ｌ値のどちらか一方でも異なる場合には、そのペアを“カレントミラー回路を構成する、回路定数が異なるMOSFETペア”（修正対象）として第７のデータベース８０に格納する。
【００７０】
図６（ｆ）に示す通り、本例ではカレントミラー回路を構成するMOSFETのペア（コピー元、コピー先）は、コピー元MOSFET＝“Ｍ０”、コピー先MOSFET＝“Ｍ１”の１組のみであり、このペアについて上記検証を行う。
【００７１】
本例では上記第４のデータベース５０は図６（ｄ）に示す通り、“Ｍ０”に関してはＷ値５２＝‘２０μｍ’、Ｌ値５３＝‘４μｍ’であり、“Ｍ１”に関してはＷ値５２＝‘４０μｍ’、Ｌ値５３＝‘４μｍ’である。従って、Ｌ値は同一であるが、Ｗ値は異なることになる。よって、このコピー元“Ｍ０”、コピー先“Ｍ１”のペアは、“回路定数が異なるカレントミラー回路”（カレントミラー回路を構成する、異なる回路定数のMOSFETペア）として図６（ｇ）に示すように第７のデータベース８０に登録されることになる。
【００７２】
上記図４の回路図において、M0とM1はカレントミラー回路を構成するMOSFETペアであり且つ両者のＷ値が異なっているので、抽出された結果が正しいことは明らかである。
図２に示す例では、上述したステップＳ０１〜Ｓ０４より成る自動検証処理を実行後に、ステップＳ０５の「カレントミラー回路を構成する回路定数の異なるMOSFETの出力処理」を実行する。
【００７３】
このステップＳ０５の処理は、上記自動検証処理の結果を可視化するものである。
このステップＳ０５の処理では、例えば、上記図６（ｇ）に示す第７のデータベース８０の全レコードを読み出す。つまり、上記自動検証処理で検出・記憶された“回路定数が異なるカレントミラー回路”のコピー元MOSFETシンボル名８１、コピー先MOSFETシンボル名８２、Ｇ端子ネット名８３を読出し、これらを例えば図７に示すような表示用フォームで図１における出力装置５等に表示する。この表示フォームは、任意のプログラミング言語で作成される。上記読み出したコピー元MOSFETシンボル名８１、コピー先MOSFETシンボル名８２、Ｇ端子ネット名８３は、例えば図７に示すエラー表示領域１６に表示される。
【００７４】
以上説明した自動検証方法（自動検証処理）によって、カレントミラー回路を構成するMOSFETペアを自動的に抽出でき、更にそのなかで“回路定数が異なるカレントミラー回路”（カレントミラー回路を構成する、回路定数の異なるMOSFETペア）を自動的に抽出できる。
【００７５】
（実施例２）
次に、実施例２について説明する。
実施例２は、半導体集積回路における階層間を考慮したカレントミラー回路の自動検証方法（自動検証処理）を提案するものである。
【００７６】
以下、図８〜図１３を参照して実施例２について説明する。尚、以下に説明する実施例２の手法は、実施例１と同様に階層内のカレントミラー回路の自動検証を行うことも可能である。
【００７７】
図８は、実施例２による半導体集積回路の自動検証処理（カレントミラー回路の自動検証処理）のフローチャート図である。
図８に示すように、自動検証処理としてステップＳ１１，Ｓ１２，Ｓ１３，Ｓ１４，Ｓ１５，Ｓ１６の処理が実行され、更にこの自動検証処理結果を用いてステップＳ１７の処理が実行される。
【００７８】
図９には、これら自動検証処理の各ステップＳ１１〜Ｓ１６の処理を示すと共に、各ステップＳ１１〜Ｓ１６において作成される各種データベースを示しており、後に、主に図９を用いて、上記ステップＳ１１〜ステップＳ１６の自動検証処理の動作について詳しく説明するものとし、その前に、実施例２の処理の説明に用いる具体例について説明しておく。
【００７９】
図１０は、実施例２の自動検証処理で検証対象とする回路図の具体例である。
図１０に示す回路図は階層構造となっており、ネットリストも図１１に示すように階層構造に応じたネットリスト７’となっている。図１０に示す回路図は、それぞれが回路図である複数のセルより成り、これら複数のセルが上記階層構造となっている。図１０の例では、１階層目にセル名“ＴＯＰ”のセルがあり、その下層（２階層目）にセル名“Ａ”、“Ｂ”の各セルがある階層構造となっている。
【００８０】
尚、本説明における“セル”とは、回路図等のデータベースの単位である。セル名“Ａ”、“Ｂ”の各セルは、例えば一例としては、予め用意されている“回路図のパーツ”（回路ブロック；例えば、プログラムにおけるサブルーチンに相当）であると考えても良い。この場合、設計者は、セル名“ＴＯＰ”のセル（回路図）を作成する際に、これら“回路ブロック”を利用することで（セル名“ＴＯＰ”のセル上で、シンボルとして配置する）、設計の手間を軽減することができる。
【００８１】
図１０の回路図では、まず、セル名“ＴＯＰ”のセル内に、シンボル名“Ｉ０”のシンボル、シンボル名“Ｉ１”のシンボル、及びシンボル名“Ｍ１”のシンボルの３つのシンボルが配置されており、更に、ネット名が“vcc”、“net05”、“gnd”の各ネットが配置されている。尚、セル名“ＴＯＰ”のセルを「セル“ＴＯＰ”」、シンボル名“Ｉ０”のシンボルを「シンボル“Ｉ０”」、ネット名が“vcc”のネットを「ネット“vcc”」等と記す場合もある。
【００８２】
上記シンボル名“Ｉ０”、“Ｉ１”の各シンボルには、それぞれセル名“Ａ”、“Ｂ”の各セル（以下、セルＡ、セルＢと呼ぶ）がリンクしている。上記のように“セル”とは回路図等であり、セルＡ、セルＢは図１０において点線が囲まれた部分に示す回路図であり、これが２階層目の構成となっている。
【００８３】
つまり、上記セル“ＴＯＰ”の回路図（１階層目の回路図）には、図１０において点線が囲まれた部分の回路構成は含まれていない。１階層目の回路図においては、例えばシンボル“Ｉ０”に関しては図示の点線上の３つの端子（vcc、out、gnd）と１階層目の各ネット（vcc,net05,gnd）との接続関係等が示されるが、点線内の回路図はセルＡの回路図である。
【００８４】
ここで、上記実施例１の場合と同様に、任意の検証対象の回路図を既存の汎用の回路シミュレータに入力することで、図８や図９に示す回路接続情報７’（ネットリスト）が生成されてファイルに保存される（メモリ２または外部記憶装置１に記憶される）。
【００８５】
図１１に、図１０の回路図の場合の回路接続情報７’（ネットリスト）の具体例を示す。
上記の通り、図１０の回路図が２階層の階層構造となっていることから、その回路接続情報７’（ネットリスト）も図１１に示すように階層構造に応じた内容となっている。
【００８６】
すなわち、図１１に示すように、この例の回路接続情報７’は、セルＡに該当するネットリスト２５１、セルＢに該当するネットリスト２５２、及びセル“ＴＯＰ”（１階層目）に該当するネットリスト”２５３とから成る。
【００８７】
尚、ネットリスト２５１〜２５３には、最初にコメント文（例えばネットリスト２５３では“//セル名ＴＯＰ//”）が記述されているが、これは行数にはカウントしない。よって、コメント文の次の行が１行目となる。尚、後述するセル名１１１等のセル名は、コメント文を参照することで得るものであってもよい。
【００８８】
セル“Ａ”に関する上記ネットリスト２５１に関しては、まず、その１行目のＡはセル名“Ａ”を意味し、１行目における“vcc gnd out”は、当該セルＡの各端子名を意味する。また、２行目に記載の“M0 (out out gnd gnd) nmos W=20μｍ L=4μｍM=2”は、上記図５に示すシンボル名９〜回路定数１５に相当する。つまり、セル“Ａ”の回路図自体の回路接続情報（ネットリスト）である。セル“Ａ”の回路図ではシンボルはシンボル“Ｍ０”のみであるので、上記の通りこのシンボル“Ｍ０”に関するシンボル名９〜回路定数１５が記述されている。
【００８９】
以上、セル“Ａ”の場合について説明したが、セル“Ｂ”に応じた上記ネットリスト２５２についても同様である。
ネットリスト２５３に関しては、上記３つのシンボル（シンボル“Ｉ０”、シンボル“Ｉ１”、シンボル“Ｍ１”）それぞれの情報より成り、３行目にあるシンボル“Ｍ１”に関する情報“M1（vcc net05 gnd gnd） nmos W=40μｍ L=4μｍM=2”は、上記図５に示すシンボル名９〜回路定数１５に相当する。
【００９０】
一方、ネットリスト２５３の１行目は、シンボル“Ｉ０”に関する情報であり、シンボル名“Ｉ０”と、このシンボルの各端子が接続しているネット（１階層目のネット）のネット名“vcc gnd net05”と、このシンボルとリンクするセルのセル名“Ａ”とから成る。
【００９１】
尚、これらネット名“vcc gnd net05”と上記ネットリスト２５１の１行目の端子名“vcc gnd out”とは、並び順によって対応付けられている。つまり、１番目同士、２番目同士、３番目同士が対応付けられる。よって、例えば３番目の端子名“out”とネット名“net05”とが対応付けられる。
【００９２】
２行目のシンボル“Ｉ１”に関する情報も上記シンボル“Ｉ０”と略同様である。よって、シンボル“Ｉ１”はセル“Ｂ”とリンクしており、また例えば３番目の端子名“in”とネット名“net05”とが対応付けられる。
【００９３】
上記のような回路接続情報７’（ネットリスト）を入力とした、階層間も考慮したカレントミラー回路を構成するMOSFETの自動検証処理の動作について、図９を参照して説明する。
【００９４】
図９に示す自動検証処理部１００が、上記ステップＳ１１〜ステップＳ１６の自動検証処理を実行する。自動検証処理部１００は、例えば上記ＣＰＵ３が、上記外部記憶装置１に予め記憶されているプログラムを読出し・実行することで実現される処理機能部である。尚、特に図示しないが、自動検証処理部１００は、回路接続情報（ネットリスト）７’を入力するネットリスト入力機能部も備えている。
【００９５】
図９に示す自動検証処理部１００が、例えば図１１に示すような回路接続情報７’を入力して、ステップＳ１１〜ステップＳ１６の各種処理を実行する。この処理の過程で、図９に示す各種データベース（ＤＢ）１１０〜２４０が作成される。
【００９６】
自動検証処理部１００は、まず、ステップＳ１１の「カレントミラー抽出用データベース作成処理」で、カレントミラー回路抽出に必要な各種データベースを作成する。これらデータベースは配列構造であり、１変数に対して一意に他の変数を参照できる。ステップＳ１１では、例えば、以下の配列構造の各種データベース（第８のデータベース（ＤＢ）１１０〜第１３のデータベース（ＤＢ）１６０）を作成する。
・第８のデータベース（ＤＢ）１１０：セル名と配置された階層情報のついたシンボル名と階層数(例：図12(a))
・第９のデータベース（ＤＢ）１２０：階層間のネット接続情報(例：図12(b))
・第１０のデータベース（ＤＢ）１３０：セル名とコピー元MOSFETシンボル名とＧ端子ネット名(例：図12(c))
・第１１のデータベース（ＤＢ）１４０：セル名とＧ端子ネット名とMOSFETシンボル名(例：図12(d))
・第１２のデータベース（ＤＢ）１５０：セル名とMOSFETシンボル名とシミュレーションモデル名(例：図12(e))
・第１３のデータベース（ＤＢ）１６０：セル名とMOSFETシンボル名と回路定数(例：図12(f))
尚、必要に応じて、その他に必要なデータベースを作成してもよい。あるいは、上記各種データベース１１０〜１６０は、必ずしも全てを作成しなくてもよい（この場合、ステップＳ１２以降の処理を、必要に応じて回路接続情報７’を参照しながら行うことになるが、当然、処理効率は低下する）。これは、上記実施例１に関しても同様である。
【００９７】
図１１に示すネットリストの例の場合の上記各種データベース（ＤＢ１１０〜ＤＢ１６０）の具体例を、図１２（ａ）〜（ｆ）に示す。
尚、これら図１２（ａ）〜（ｆ）や後述する図１３（ｇ）〜（ｌ）に示す“/”は、階層の区切りを示すものであり、例えば“/I0/M0”や“/I0/out”は、１階層目にシンボル名“I0”のシンボルが配置され、この“I0”の下（２階層目）にシンボル“M0”やネット“out”が配置されていることを意味する。
【００９８】
まず、上記第８のデータベース（ＤＢ）１１０は、図１２（ａ）に示す一例では、セル名１１１、“セルが配置された階層情報の付いたシンボル名”１１２、階層数１１３から成る。尚、本説明では名称を簡略化して記す場合がある（例えば上記“セルが配置された階層情報の付いたシンボル名”１１２は、簡略化して例えば「シンボル１１２」等と記す場合がある）。
【００９９】
上記ＤＢ１１０の内容は、例えば上記ネットリスト２５３の１行目や２行目から生成できる。例えば１行目には１階層目に配置されたシンボル“Ｉ０”にリンクした（配下の）セルＡが示されているので、セル名１１１＝Ａ、シンボル名１１２＝“／Ｉ０”、階層数１１３＝‘２’となる。尚、階層数１１３は、例えばシンボル名１１２における“／”の数＋１により求める。
【０１００】
次に、上記第９のデータベース（ＤＢ）１２０は、図１２（ｂ）に示す一例では、セル名１２１、“セル名１２１のセルの１階層下のセルと接続するネット名”１２２、“ネット名１２２のネットと接続する１階層下のセルのネット名”１２３から成る。
【０１０１】
上記ＤＢ１２０は、セル名１２１のセル上に配置される各ネットのうち当該セル上に配置される「セルとリンクするシンボル」と接続するネットのネット名が、上記ネット名１２２に格納される。尚、例えば予め、「セルとリンクするシンボル」のシンボル名はＩで始まり、「セルとリンクしないシンボル」のシンボル名はＭで始まるものと決めておくことで、ネットリスト２５１〜２５３において「セルとリンクするシンボル」を判別できる。
【０１０２】
これより、例えば、ネットリスト２５１、２５２に関しては図１１に示す通りＩで始まるシンボル名の記述が無いので、図１２（ｂ）に示す通り、セル名１２１＝Ａ，Ｂに関しては、ネット名１２２に格納すべきデータはなく、以ってネット名１２３に格納すべきデータもない。一方、ネットリスト２５３に関しては１行目と２行目にシンボル名はＩ０、Ｉ１に関する記述があり、上記の通り、セルＴＯＰにおいてこれらシンボルＩ０、Ｉ１に接続しているネットのネット名の記述（vcc gnd net05）があるので、図１２（ｂ）に示す通りネット名１２２には“/vcc、/gnd、/net05”が格納される。
【０１０３】
そして、上記ネット名１２２のネットが接続するシンボルにリンクするセル内に配置される各ネットのうち、上記ネット名１２２のネットが接続するネットのネット名が、上記ネット名１２３に格納される。
【０１０４】
ここで、上述してあるように、たとえば上記ネットリスト２５３の１行目に記述のネット名“vcc gnd net05”と上記ネットリスト２５１の１行目の端子名“vcc gnd out”とは、並び順によって対応付けられている。よって、例えば端子名“out”とネット名“net05”とが対応付けられる（接続関係にある）。ここで、本例では、任意のシンボルがリンクする（下層の）セル内のネットのネット名は、当該下層のネットが接続している当該下層のセルの上記端子名と同名としている。よって、例えばセルＡ内において上記端子名“vcc gnd out”の各端子に接続しているネットのネット名は、ネット名“vcc gnd out”となる。
【０１０５】
以上のことから、例えばネット名１２２における“/net05”は、セルＡ内のネット“out”に接続していることが分かるので、図１２（ｂ）に示すようにネット名１２３には“/I0/out”が格納される。また、セルＢに関しても上記と同様にして“/net05”に接続されるセルＢ内のネットのネット名は“in”であることが分かるので、ネット名１２３には更に“/I1/in”も格納される。
【０１０６】
この様に、ＤＢ１２０には、階層間でのネットの接続関係を示す情報が格納されるものである。
次に、上記第１０のデータベース（ＤＢ）１３０は、図１２（ｃ）に示す一例では、セル名１３１、“コピー元MOSFETシンボル名”１３２、“Ｇ端子ネット名”１３３から成る。
【０１０７】
ＤＢ１３０は、基本的には上記図６（ａ）のＤＢ２０と略同様であるが（よって、ここでは詳しい説明は省くが）、階層情報やセル名が加わる。図１１に示す例では、ネットリスト２５１の２行目の記述により、セルＡ内のシンボルＭ０がコピー元として抽出され、そのＧ端子の接続ネットとして“out”が抽出されることになる。これら“Ｍ０”、“out”はセルＡ内の構成であるので、ＤＢ１１０に示す階層情報が付加されて“/I0/M0”、“/I0/out”となる。これより、図１２（ｃ）に示すように、セル名１３１＝“Ａ”、“コピー元MOSFETシンボル名”１３２＝“/I0/M0”、“Ｇ端子ネット名”１３３＝“/I0/out”が格納されることになる。
【０１０８】
次に、上記第１１のデータベース（ＤＢ）１４０は、図１２（ｄ）に示す一例では、セル名１４１、“Ｇ端子ネット名”１４２、“MOSFETシンボル名”１４３から成る。
ＤＢ１４０も、上記ＤＢ１３０の場合と略同様に、基本的には上記図６（ｂ）のＤＢ３０と略同様であるが（よって、ここでは詳しい説明は省くが）、例えば、ネットリスト２５１〜２５３に基づいて上記「セルとリンクしないシンボル」を全て抽出して“MOSFETシンボル名”１４３に格納する。また、“MOSFETシンボル名”１４３に格納された各シンボル毎に、そのＧ端子が接続しているネットのネット名を判別して、“Ｇ端子ネット名”１４２に格納する。
【０１０９】
上記抽出／判別したシンボル名／ネット名をＤＢ１４０に格納する際には、上記ＤＢ１２０等の場合と同様に、階層情報を付加して格納する。階層情報の付加については既に説明してある。また、セル名１４１についてもここでは特に説明しない。
【０１１０】
上記第１２のデータベース（ＤＢ）１５０は、図１２（ｅ）に示す一例では、セル名１５１、“MOSFETシンボル名”１５２、シミュレーションモデル名１５３から成る。
ＤＢ１５０も、上記ＤＢ１３０等と略同様に、基本的には上記図６（ｃ）のＤＢ４０と略同様であるが（よって、ここでは詳しい説明は省くが）、階層情報やセル名が加わる。“MOSFETシンボル名”１５２は上記“MOSFETシンボル名”１４３と同じと見做してよい。階層情報の付加等に関しては既に説明してあり、ここでの説明は省略する。
【０１１１】
上記第１３のデータベース（ＤＢ）１６０は、図１２（ｆ）に示す一例では、セル名１６１、“MOSFETシンボル名”１６２、Ｗ値１６３、Ｌ値１６４、Ｍ値１６５から成る。
ＤＢ１６０も、上記ＤＢ１３０等と略同様に、基本的には上記図６（ｄ）のＤＢ５０と略同様であるが（よって、ここでは詳しい説明は省くが）、階層情報やセル名が加わる。“MOSFETシンボル名”１６２は上記“MOSFETシンボル名”１４３と同じと見做してよい。階層情報の付加等に関しては既に説明してあり、ここでの説明は省略する。
【０１１２】
上記のようにステップＳ１１の処理によって上記各種データベース（ＤＢ１１０〜ＤＢ１６０）を生成したら、これらを参照してステップＳ１２〜Ｓ１６の処理を実行することで、最終的にはデータベース（ＤＢ）２４０を生成する。
【０１１３】
まず、ステップＳ１２〜Ｓ１４の処理では、ＤＢ１１０〜ＤＢ１４０を用いて、カレントミラー回路と成り得るMOSFETの組み合わせ（ペア）の候補を抽出し、以ってＤＢ１８０、ＤＢ２００、ＤＢ２２０を作成する。
【０１１４】
本例では、上記コピー元MOSFET“/I0/M0”（セルＡ内に配置）に対応するコピー先MOSFETを、セルＡの上階層のセル、セルＡの下階層のセル、及びセルＡと同一階層で異なるセルのそれぞれから抽出する。尚、ここでは特に説明しないが、上記「セルＡと同一階層で異なるセル」を、「セルＡと同一階層のセル」に置き換えても良い。つまり、更に、セルＡ内において上記コピー元MOSFET“/I0/M0”に対応するコピー先MOSFETを抽出するようにしてもよく、それ故に“異なる”を削除している。
【０１１５】
ここでは、上記抽出処理を、上階層についてはステップＳ１２、下階層についてはステップＳ１３、同一階層で異なるセルについてはステップＳ１４と区別して説明するものとするが、抽出処理の基本は略同様である。
【０１１６】
すなわち、まず、上記ＤＢ１２０とＤＢ１３０とに基づいて、「コピー元MOSFETのＧ端子と接続されるネット名一覧」（DB170、DB190、DB210）を生成し、このネット名一覧と上記ＤＢ１４０とに基づいて「コピー元MOSFETとコピー先候補MOSFETのシンボル名など」（DB180、DB200、DB220）を生成するものである。
【０１１７】
ステップＳ１２、Ｓ１３，Ｓ１４の処理は、上記ステップＳ０２の処理と略同様である。すなわち、上記コピー先MOSFETである条件は、上記の条件２と条件３であるが、まず条件２（但し、上述した広義の条件２）を満たすものを抽出して、これをコピー先MOSFETの候補としてＤＢ１８０，ＤＢ２００，ＤＢ２２０に格納しておくものである。
【０１１８】
ステップＳ１２、Ｓ１３，Ｓ１４の何れの場合でも、まず、ＤＢ１３０を参照して、各コピー元MOSFETのシンボル名１３２と、そのＧ端子が接続されるネットの名称であるＧ端子ネット名１３３を取得する。本例ではコピー元MOSFETは１つ（/I0/M0）のみであり、そのＧ端子ネット名１３３は“/I0/out”となる。
【０１１９】
このＧ端子ネット名１３３（＝/I0/out）は、セルＡ内（２階層目）でのＧ端子接続ネットであることを示しており（例えばＤＢ１１０を参照すれば分かる）、ステップＳ１２ではその上の階層（１階層目；ＴＯＰ）におけるＧ端子接続ネットを求める。つまり、コピー元MOSFETの１階層上のセル上において上記Ｇ端子ネット名１３３（＝/I0/out）のネットと接続されるネットのネット名を、第９のデータベース（ＤＢ）１２０から全て抽出して、以って第１４のデータベース（ＤＢ）１７０を作成する。
【０１２０】
すなわち、まず、取得したＧ端子ネット名１３３＝“/I0/out”を用いてＤＢ１２０のネット名１２３を検索して、該当するレコード（“/I0/out”が格納されているレコード）を全て求める。次に、求めた各レコードのセル名１２１、ネット名１２２を取得する。図１２（ｂ）の例では、1行目と２行目のレコードが該当し、セル名１２１＝ＴＯＰ、ネット名１２２＝“/net05”と、セル名１２１＝ＴＯＰ、ネット名１２２＝“/vcc”とが取得される。これより、例えば図１３（ｇ）に示す第１４のデータベース（ＤＢ）１７０が生成される。
【０１２１】
第１４のデータベース（ＤＢ）１７０は、セル名１７１、ネット名一覧１７２から成る。上記取得したセル名（＝ＴＯＰ）をセル名１７１に格納し、ネット名１２２＝“/net05”と“/vcc”とをネット名一覧１７２に格納することで、図１３（ｇ）に示すＤＢ１７０が作成されることになる。
【０１２２】
ステップＳ１２では、続いて、上記生成したＤＢ１７０と上述したＤＢ１４０とに基づいて、コピー先候補のMOSFETのシンボル名とそのＧ端子ネット名を抽出することで、例えば図１３（ｈ）に示すようなＤＢ１８０を生成する。
【０１２３】
すなわち、ＤＢ１７０のネット名一覧１７２に格納されているネット名を全て取得して、取得した各ネット名毎にＤＢ１４０のＧ端子ネット名１４２を検索することで、該当するレコードを求める。まず、ネット名一覧１７２の“/vcc”を用いてＤＢ１４０を検索すると、該当レコード無しとなる。続いて、ネット名一覧１７２の“/net05”を用いてＤＢ１４０を検索すると、１行目のレコードが該当レコードであるので、そのMOSFETシンボル名１４３＝“／Ｍ１”とセル名１４１＝“ＴＯＰ”を取得する。
【０１２４】
MOSFETシンボル名＝“／Ｍ１”のシンボルは、そのＧ端子ネットが“/net05”であり、この“/net05”はコピー元MOSFET（/I0/M0）のＧ端子ネット“/I0/out”と接続しているので、“／Ｍ１”とコピー元MOSFET（/I0/M0）とはそのＧ端子同士が接続関係にあり、よって“／Ｍ１”は条件２（広義の条件２）を満たすことになる。
【０１２５】
ここで、図１３（ｈ）に示すように、第１５のデータベース（ＤＢ）１８０は、セル名１８１、コピー元MOSFETシンボル名１８２、コピー先候補のMOSFETシンボル名１８３、Ｇ端子ネット名１８４から成る。
【０１２６】
上記取得したMOSFETシンボル名１４３＝“／Ｍ１”とセル名１４１＝“ＴＯＰ”は、それぞれ、ＤＢ１８０の「コピー先候補のMOSFETシンボル名」１８３、セル名１８１に格納する。また、上記検索で該当レコードがあったネット名“/net05”を、Ｇ端子ネット名１８４に格納する。また、上記コピー元MOSFETのシンボル名（＝/I0/M0）をコピー元MOSFETシンボル名１８２に格納する。このようにしてＤＢ１８０が作成される。図１３（ｈ）に示すように、“/M1”がコピー先MOSFETの候補となる（広義の条件２を満たすが、未だ条件３を満たすか否か分からないので、候補としている）。
【０１２７】
上述した通り、他の処理ステップＳ１３，Ｓ１４も、対象となる階層（セル）がステップＳ１２とは異なるだけで、上記ステップＳ１２と略同様の処理を行うが、ステップＳ１３に関しては本例ではセルＡ（２階層目）の下の階層（３階層目）が存在しないので、第１９のデータベース（ＤＢ）１９０、第１７のデータベース（ＤＢ）２００は作成されず、よってこれらのＤＢ１９０、２００の具体例は図示しない。
【０１２８】
すなわち、ステップＳ１３では、コピー元MOSFETの配置されたセルの1階層下のセル内にあるコピー先MOSFETを抽出する。これは、まず、コピー元MOSFETの配置されたセルと1階層下のセルに接続されるネット名をＤＢ１２０から抽出する。本例の場合、セルＡの下階層に接続されるネット名がないので、コピー先MOSFETもない。そのため、ＤＢ１９０、ＤＢ２００には何も登録されないが、データベースの構造自体はＤＢ１７０、ＤＢ１８０と同じである。
【０１２９】
次に、ステップＳ１４では、コピー元MOSFETの配置されたセルと同一階層の他のセルを対象として、当該他のセル内にコピー先MOSFET（広義の条件２を満たすMOSFET）があれば、これを抽出する。この処理にはＤＢ１１０も参照する。
【０１３０】
まず、ＤＢ１３０を参照して、コピー元MOSFETに関して、そのシンボル名１３２及びＧ端子ネット名１３３と、それが配置されたセルのセル名１３１を取得する。そして、まず、セル名１３１（＝セルＡ）と同じ階層の他のセルを、ＤＢ１１０を参照することで抽出する。図１２（ａ）に示す例では、セルＡの階層数は２であり、ほかに階層数が２であるのはセルＢである。また、ＤＢ１１０より、セルＢの階層情報は“/I1”であることも分かる。
【０１３１】
次に、ステップＳ１２の場合と同様にして、コピー元MOSFETのＧ端子ネット名“/I0/out”を用いてＤＢ１２０のネット名１２３を検索して、“/I0/out”が登録されているレコードを全て求めることで、該当するネット名を抽出する。ステップＳ１２の場合、該当レコードのネット名１２２を求めたが、本例では該当レコードのネット名１２３において他の登録ネット名があればそれを抽出する。
【０１３２】
図１２（ｂ）の例の場合、１行目と２行目のレコードが該当レコード（“/I0/out”が登録されている）となり、１行目のレコードからは“/I1/in”が抽出され、２行目のレコードからは“/I1/vcc”が抽出されることになる。尚、上記の通り、セルＢの階層情報は“/I1”であるので、抽出されたネット名がセルＢ内のネット名であることが確認できる。
【０１３３】
また、尚、図１２（ｂ）の例の場合、Ｇ端子ネット名“/I0/out”のネットが上階層の“/net05”を経由して同一階層の“/I1/in”に接続されることが分かり、同様にして、Ｇ端子ネット名“/I0/out”のネットが上階層の“/vcc”を経由して同一階層の“/I1/vcc”に接続されることも分かる。
【０１３４】
上記のように、コピー元MOSFETのＧ端子ネット名のネットと接続されるネットのうち、コピー元MOSFETが配置されたセルと同一階層の他のセルのネット名一覧をＤＢ１２０から抽出してＤＢ２１０を作成する。
【０１３５】
図１３（ｉ）に示すように、第１８のデータベース（ＤＢ）２１０は（上記ＤＢ１７０と同様に）セル名２１１、ネット名一覧２１２から成る。上記のように求めた同一階層の他のセルＢがセル名２１１に格納され、上記のように抽出された全ての該当ネット名（“/I1/in”、“/I1/vcc”）が、ネット名一覧２１２に格納される。
【０１３６】
ステップＳ１４では、続いて、ＤＢ１４０とＤＢ２１０とに基づいて、コピー先候補のMOSFETとそのＧ端子ネット名を抽出してＤＢ２２０を作成する。この作成処理は上述したＤＢ１４０とＤＢ１７０とに基づくＤＢ１８０の作成処理と略同様であるので、ここでは詳細には説明しないが、本例の場合、ＤＢ１４０とＤＢ２１０とで共通するネット名は“/I1/in”であり、このネット“/I1/in”に接続されるMOSFET（MOSFETシンボル名143）は“/I1/M1”であるので、ＤＢ２２０として図１３（ｊ）に示す結果が得られる。
【０１３７】
第１９のデータベース（ＤＢ）２２０は、データ構造自体はＤＢ１８０と同様であり、セル名２２１、コピー元MOSFETシンボル名２２２、コピー先候補のMOSFETシンボル名２２３、Ｇ端子ネット名２２４から成る。上記の通り、コピー先候補のMOSFETは、セルＢにおける“/I1/M1”であり、そのＧ端子はネット“/I1/in”に接続されており、これらの情報が図１３（ｊ）に示す通り格納される。
【０１３８】
コピー元MOSFETのＧ端子が接続されるネット“/I0/out”は、異なるセルで同一階層のセルＢの“/I1/in”と“/net05”を介して接続されるので、“/I1/M1”がコピー先MOSFETの候補となる。尚、同一階層で異なるセルに下階層が存在する場合、上記ステップＳ１３の処理を行えば検証できる。
【０１３９】
上述したステップＳ１２〜Ｓ１４の処理により、上下階層間および同一階層の異なるセルとの間において、コピー元MOSFETとコピー先MOSFET候補のシンボル名を抽出できる。換言すれば、コピー元MOSFETとペアとなるコピー先MOSFETの候補を、コピー元MOSFETが配置されているセルの上の階層、下の階層、及び同一階層の異なるセルにおいて、それぞれ求めることができる。尚、この例に限らず、例えば更に、コピー元MOSFETが配置されているセル内においてコピー先MOSFETの候補を求めるようにしてもよい。
【０１４０】
そして、これらの処理結果を用いて、ステップＳ１５の「極性の等しいMOSFETのデータベース作成処理」を実行する。この処理は、図９に示すように、特にＤＢ１８０、ＤＢ２００、ＤＢ２２０と、ＤＢ１５０とに基づいて、ＤＢ２３０を作成するものである。
【０１４１】
すなわち、ステップＳ１５では、ＤＢ１５０を用いて、ＤＢ１８０、ＤＢ２００、ＤＢ２２０に格納されるデータのうちコピー元MOSFETとコピー先候補のMOSFETとで極性（シミュレーションモデル名１５３）が等しいレコードだけを抽出し、以ってＤＢ２３０を作成する。
【０１４２】
ここで、図１３（ｋ）にＤＢ２３０の具体例を示す。
図１３（ｋ）に示す例では、第２０のデータベース（ＤＢ）２３０は、「コピー元MOSFETのシンボル名」２３１、「コピー先MOSFET候補のシンボル名」２３２、「コピー元MOSFETのＧ端子ネット名」２３３より成る。
【０１４３】
ＤＢ１８０の具体例は図１３（ｈ）に示しており、コピー元、コピー先候補それぞれのMOSFETシンボル名１８２、１８３の極性（シミュレーションモデル名１５３）は、図１２（ｅ）に示すＤＢ１５０を参照すれば分かる。すなわち、コピー先候補（/M1）の極性（シミュレーションモデル名１５３）は、コピー元（/I0/M0）と同じ“nmos”である。
【０１４４】
ＤＢ２２０の具体例は図１３（ｊ）に示しており、これについてもコピー元、コピー先候補それぞれのMOSFETシンボル名２２２、２２３の極性（シミュレーションモデル名１５３）は、ＤＢ１５０を参照すれば分かる。すなわち、コピー先候補（/I1/M1）の極性（シミュレーションモデル名１５３）は、コピー元（/I0/M0）と同じ“nmos”である（極性が等しい）。尚、上記の通り、本例ではＤＢ２００は作成されない。
【０１４５】
このように、コピー先候補である“/M1”と“/I1/M1”は、どちらもコピー元（/I0/M0）と同じ極性なので条件３を満たすことになり、これらはカレントミラー回路を構成するMOSFETのコピー先MOSFETであるものと決定され（条件２、条件３の両方を満たすので）、コピー先MOSFETとしてコピー元と共にＤＢ２３０に登録される。
【０１４６】
すなわち、ＤＢ２３０には「カレントミラー回路を構成するMOSFETペア」が登録されることになる。
上記ＤＢ２３０において、「コピー元MOSFETのシンボル名」２３１には「コピー元MOSFETのシンボル名」１８２、２２２の“/I0/M0”が格納され、「コピー先MOSFETのシンボル名」２３２には「コピー先候補のMOSFETのシンボル名」１８３、２２３の“/M1”及び“/I1/M1”が格納される。また、コピー元である“/I0/M0”に対応するＧ端子ネット名は、ＤＢ１３０を参照することで“/I0/out”であることが分かるので、これを「コピー元MOSFETのＧ端子ネット名」２３３に格納する。
【０１４７】
最後に、ステップＳ１６の「カレントミラー回路を構成するMOSFETの回路定数の比較検証処理」を実行する。
このステップＳ１６の処理では、ＤＢ１６０とＤＢ２３０を参照して、ＤＢ２３０に格納されている上記カレントミラー回路を構成するMOSFETペア毎に、コピー元MOSFET２３１とコピー先MOSFET２３２とでＷ値、Ｌ値が同じであるか否かを、ＤＢ１６０を参照して検証（判定）する。そして、Ｗ値、Ｌ値の何れか一方でも異なるMOSFETペアがある場合には、それを「カレントミラー回路を構成する、異なる回路定数のMOSFETペア」としてＤＢ２４０に記憶する。つまり、回路定数を修正すべき対象となるMOSFETペアを抽出して記憶する。
【０１４８】
ここで、図１３（ｌ）にＤＢ２４０の具体例を示す。
図１３（ｌ）に示す例では、第２１のデータベース（ＤＢ）２４０は、「コピー元MOSFETシンボル名」２４１、「コピー先MOSFETシンボル名」２４２、「コピー元MOSFETのＧ端子ネット名」２４３より成る。
【０１４９】
本例では、図１３（ｋ）に示すように、コピー元MOSFET＝“/I0/M0”とコピー先MOSFET＝“/M1”のペアと、コピー元MOSFET＝“/I0/M0”とコピー先MOSFET＝“/I1/M1”のペアとがあるが、何れのペアでも、図１２（ｆ）に示す通り、コピー元MOSFET＝“/I0/M0”はＷ値が‘２０μｍ’であるのに対して、コピー先MOSFET＝“/M1”、“/I1/M1”はどちらもＷ値が‘４０μｍ’であり、Ｗ値が異なる（Ｌ値は同じである）。
【０１５０】
よって、本例では、上記２つのコピー元・コピー先のペアの両方とも、「カレントミラー回路を構成する、異なる回路定数のMOSFETペア」として抽出され、上記ＤＢ２４０として図１３（ｌ）に示す結果が得られる。すなわち、図示の通り、図１３（ｋ）に示すＤＢ２３０の内容をそのままコピーした形となる。
【０１５１】
図１０の回路図を参照すれば、“/I0/M0”と“/M1”はカレントミラー回路を構成するコピー元・コピー先のMOSFETであり、“/I0/M0”と“/I1/M1”はカレントミラー回路を構成するコピー元・コピー先のMOSFETであり、どちらもコピー元とコピー先とでＷ値が異なっているので、抽出された結果が正しいと判定できる。
【０１５２】
以上、図９に示す自動検証処理部１００による自動検証処理（ステップＳ１１、Ｓ１２，Ｓ１３，Ｓ１４，Ｓ１５，Ｓ１６）について説明した。
図８に示すように、この自動検証処理の後に更に、ステップＳ１７の「カレントミラー回路を構成する回路定数の異なるMOSFETの出力処理」を実行することで、自動検証処理部１００の処理結果を可視化するようにしてもよい。
【０１５３】
ステップＳ１７では、上記自動検証処理部１００で作成したＤＢ２４０から、回路定数の異なるMOSFETシンボル名（コピー元２４１とコピー先２４２）およびコピー元のＧ端子ネット名２４３を読み出し、例えば上記実施例１と同様に上記図７に示すような表示用フォームで図１の出力装置５等に表示する。この表示フォームは、任意のプログラミング言語で作成される。
【０１５４】
上記ステップＳ１１〜Ｓ１５の処理方法により、半導体集積回路の全階層に対してカレントミラー回路の自動検証が可能である。更には、上下階層間および同一階層の異なるセルとの間の検証も可能となる。
【０１５５】
以上、実施例２によれば、多階層構造のカレントミラー回路が検証可能となり、検証漏れを防ぐこと等が可能である。
次に、以下、実施例３について説明する。
【０１５６】
まず、図１４に示す「カレントミラー回路を構成する、回路定数の異なるMOSFETペア」データ３００は、上述した実施例１または実施例２の自動検証処理の処理結果として得られる情報であり、例えば上記ＤＢ８０またはＤＢ２４０等である。
【０１５７】
図１４に示す「回路図表示・ハイライト処理部」３１０は、上記「カレントミラー回路を構成する、回路定数の異なるMOSFETペア」データ３００を用いて、回路図の表示の処理（ステップＳ２１）、ハイライトの処理（ステップＳ２２）を実行する。
【０１５８】
ステップＳ２１は、カレントミラー回路を構成する回路定数の異なるMOSFETペアが配置された回路図を、例えば図１の出力装置５（ディスプレイ等）に表示する処理である。ステップＳ２２は、この回路図表示において、上記「カレントミラー回路を構成する回路定数の異なるMOSFETペア」の全部または一部（例えばコピー元のみ）を、ハイライト表示する処理である。
【０１５９】
図１５は、実施例２に対応する上記「回路図表示・ハイライト処理部」３１０の処理の詳細フローチャート図である。
以下、図１５の処理について説明するが、具体例として、図１６に示す階層構造に対して、上記実施例２の自動検証処理を行った結果、上記ＤＢ２４０として、「カレントミラー回路を構成する、回路定数の異なるMOSFETペア」のシンボル名“/I1/M0”（コピー元）、“/I1/M1”（コピー先）、及びコピー元MOSFETのＧ端子ネット名“/I1/net03”が得られたものとして説明する。
【０１６０】
尚、図１６の図中に示す「ライブラリ」とは、複数のセルをひとまとめにしたデータ群を意味する。つまり、予め各セルはグループ分けされており、「ライブラリ名」はグループ名と考えてよい（あるいは、それぞれが１以上のセル（回路図）ファイルを格納した各フォルダのフォルダ名等と考えても良い）。
【０１６１】
各回路図には、配置したシンボルの情報を持つ構造体データが含まれ、これは配置したシンボルの数だけ存在する。各シンボル（構造体データ）には一意の識別符号（以降、ＩＤと呼ぶ）が割り当てられており、ＩＤを参照すれば各シンボルのライブラリ名やセル名等を特定できる。図１７は、セルＡに配置された各シンボルのＩＤの例である。
【０１６２】
以上の具体例を用いて、以下、図１５の処理について説明する。
まず、ステップＳ３１では、１階層目のセル（本例では図１６のセルＡ）の回路図を開く。回路図の表示には、例えば回路図入力システム標準の機能等を使用する。
【０１６３】
次に、ステップＳ３２では、「カレントミラー回路を構成する、回路定数の異なるMOSFETペア」データ３００が示す“回路定数の異なるMOSFETペア”を“処理対象MOSFET”として、更に当該ペアの一方（例えばコピー元MOSFET）を“処理対象MOSFET”とする（本例ではまず上記“/I1/M0”（コピー元）を、“処理対象MOSFET”とする）。この“処理対象MOSFET”が上記表示された回路図中に存在するか否かを判定する。尚、ステップＳ３２における上記“表示された回路図”とは、ステップＳ３１による１階層目の回路図または後述するステップＳ３６による２階層目以下の回路図である。
【０１６４】
上記“処理対象MOSFET”は、上記の通り最初は“/I1/M0”であるので、これは２階層目に該当するので、ステップＳ３１で表示された１階層目のセルＡの回路図には存在しない。よって、ステップＳ３２の判定はＮＯとなり、ステップＳ３３〜Ｓ３６の処理へ移行する。
【０１６５】
この場合、まず、ステップＳ３３では、表示された回路図に配置された各シンボルのＩＤを取得する。本具体例の場合、図１７に示すように、セルＡに配置された各シンボルのＩＤ（ＩＤ１，ＩＤ２，ＩＤ３）を取得する。
【０１６６】
次に、ステップＳ３４では、ステップＳ３３で取得した各ＩＤの情報から、上記“処理対象MOSFET”が配置されているＩＤを求める。上記の具体例では“/I1/M0”が配置されているＩＤであり、シンボル名”I1”の下階層に配置されているので、シンボル名として“I1”を持つＩＤを求めることになり、図１７に示す例では“ID1”が得られる。
【０１６７】
次に、ステップＳ３５では、ステップＳ３４で取得したＩＤ（＝ID1）からライブラリ名とセル名を取得する。上記具体例の場合、ID1からライブラリ名＝‘1’、セル名＝‘Ｂ’が得られる。
【０１６８】
そしてステップＳ３６では、ステップＳ３５で取得したライブラリ名とセル名の回路図を表示する。本実施例の場合、ライブラリ名１、セル名Ｂの回路図を表示する。そして、ステップＳ３２に戻り、再び上記ステップＳ３２の判定を行う。上記ステップＳ３１で表示された回路図またはステップＳ３６で表示された回路図に関して、ステップＳ３２の判定がＹＥＳとなった場合には、ステップＳ３７の処理へ移行する。
【０１６９】
上記具体例（図１６）の場合、セルＢに目的の“/I1/M0”が存在するので、ステップＳ３７に進む。
以上の手順で、“/I1/M0”が配置されたライブラリ名１、セル名Ｂの回路図を表示できる。
【０１７０】
ステップＳ３７では、表示された回路図上で、“処理対象MOSFET”（修正対象MOSFETということもできる；ここでは“/I1/M0”）のシンボルをハイライト表示する。ハイライト表示には、例えば回路図入力システム標準の機能を使用する。尚、その際、“処理対象MOSFET”のＧ端子が接続されたネットも一緒に、ハイライト表示するようにしてもよい。
【０１７１】
図１８に、上記のように“処理対象MOSFET”が“/I1/M0”である例の場合のハイライト表示の一例を示す。
更に、ステップＳ３８の判定を行う。つまり、処理対象とすべきMOSFET全てについて処理実行したか否かを判定する。そして、未だ未処理のMOSFETが残っている場合には、それを新たな“処理対象MOSFET”としてステップＳ３１に戻り、上述した処理を繰り返すことになる。本例の場合、未だ“/I1/M1”に関する処理が実行されていないので、“/I1/M1”を新たな“処理対象MOSFET”としてステップＳ３１に戻る。処理対象とすべきMOSFET全てについて処理実行するまで、上述のステップＳ３１〜Ｓ３８の処理動作を繰り返す。
【０１７２】
３階層以上の場合も、前記フローを繰り返せば、回路図の表示とMOSFETおよびＧ端子ネットのハイライトができる。
以上、実施例３によれば、階層構造の回路図であっても、各回路図の表示や処理対象MOSFETのハイライトを自動で行うので、手作業で一つ一つ回路図を開くよりも、効率的に目的のMOSFETを検索して回路定数の値の修正ができる。
【０１７３】
以上説明した実施例１、実施例２の自動検証処理や実施例３のハイライト表示処理は、既に述べたように例えば、ＣＰＵ３が、予め外部記憶装置１に記憶されているアプリケーションプログラムを、読出し・実行することにより実現される。これは、ＣＰＵ３が、上記自動検証処理に対応する各種処理機能部（不図示）を有するものと言うことが出来るものである。これより、上記各種処理機能部（不図示）について以下に説明する。
【０１７４】
すなわち、本例の自動検証処理部８または自動検証処理部１００は、例えば、ネットリスト機能部、コピー元MOSFET抽出機能部、MOSFETペア抽出機能部、回路定数検証機能部と、修正対象記憶機能部（何れも不図示）を有するものということもできる。
【０１７５】
ネットリスト機能部は、任意の回路図に係わる回路接続情報を入力する。
コピー元MOSFET抽出機能部は、この回路接続情報を用いて所定の第１の条件に基づいて、カレントミラー回路を構成するMOSFETペアにおけるコピー元MOSFETを抽出する。
【０１７６】
MOSFETペア抽出機能部は、上記回路接続情報を用いて所定の第２の条件に基づいて、コピー元MOSFETに対応するコピー先MOSFETを抽出することで、カレントミラー回路を構成するMOSFETペアを抽出する。
【０１７７】
回路定数検証機能部は、MOSFETペア抽出機能部によって抽出されたMOSFETペアにおけるコピー元MOSFETとコピー先MOSFETとで、回路定数が同じであるか否かを検証（判定）する。
【０１７８】
修正対象記憶機能部は、回路定数検証機能部において回路定数が異なると判定されたMOSFETペアを、回路定数が異なるMOSFETペア（修正対象のMOSFETペア）として記憶する。
上記第１の条件は、例えば、そのゲート端子とドレイン端子が接続されるネット名が同一であり、且つ、そのドレイン端子とサブ端子が接続されるネット名が異なり、且つ、そのソース端子とサブ端子が接続されるネット名が同一であるMOSFETであることである。つまり、上記条件１（１）、条件１（２）、条件１（３）である。
【０１７９】
上記第２の条件は、例えば、そのゲート端子が、１以上のネットを介して、前記コピー元MOSFETのゲート端子と接続されるMOSFETであって、且つ、極性が前記コピー元MOSFETの極性と同じであるMOSFETであることである。つまり、上記条件２と条件３である。
【０１８０】
また、実施例２に関しては、既に説明したように上記回路図が階層構造となっており、上記回路接続情報が該階層構造に応じた回路接続情報となっている。
実施例２の自動検証処理部１００の場合、上記コピー元MOSFET抽出機能部によって抽出されるコピー元MOSFETには、その階層を示す階層情報が付加され、上記MOSFETペア抽出機能部は、コピー元MOSFETに対応するコピー先MOSFETを、該コピー元MOSFETの階層の上階層、下階層、同一階層のそれぞれの階層において上記第２の条件（但し、その条件２は、上述した広義の条件２である）に基づいて抽出する。
【０１８１】
上記実施例２に関する上記回路図は、それぞれが回路図である複数のセルより成り、該複数のセルが前記階層構造となっており、自動検証処理部１００は、上記階層構造に応じた回路接続情報に基づいて、任意のセルにおけるネットと該セルの下層のセルにおけるネットとの接続関係を示すデータベース１２０を生成するデータベース生成機能部を更に有する。そして、上記MOSFETペア抽出機能部は、上記データベース１２０を参照して、コピー元MOSFETに対応するコピー先MOSFETを抽出することになる。
【０１８２】
また、本例の自動検証処理部８または自動検証処理部１００は、更にハイライト表示機能部（不図示）を有しても良い。ハイライト表示機能部は、上記実施例３に係わる機能部であり、上記回路図を表示すると共に、該回路図上で、上記修正対象記憶機能部が記憶した「回路定数が異なるMOSFETペア」のMOSFETシンボルを、ハイライト表示する。
【０１８３】
特に上記回路図が上記階層構造となっている場合には、ハイライト表示機能部は、上記各セル毎にその回路図を表示すると共に該セルの回路図上に上記修正対象記憶機能部が記憶した「回路定数が異なるMOSFETペア」がある場合には、そのMOSFETシンボルをハイライト表示する。
【０１８４】
以上説明したように、本発明を用いれば、従来目視でしかできなかったカレントミラー回路を構成するMOSFETの検証・表示が自動化できるので、検証漏れによる設計のやり直しなどを防ぎ、回路設計の効率向上が可能となる。
【０１８５】
本発明は、例えば半導体集積回路等の開発設計に使用するＣＡＤシステムを使用した検証処理に関するものであり、半導体集積回路の増幅回路やバイアス回路などに多用されるカレントミラー回路のペア性を効率的に検証することでできる装置、処理方法を提案するものである。本発明では、シミュレーションやレイアウトに使用する回路接続情報（ネットリスト）を利用して、カレントミラー回路を構成するMOSFETペアを抽出し、更に回路定数の整合性を検証することにより、カレントミラー回路のペア性を回路設計段階で自動検証可能としている。
【０１８６】
また、階層間も考慮した自動検証方法を用いれば、階層間および同一階層内でのカレントミラー回路の検証が可能となり、検証漏れを防ぐことができる。
また、回路図表示からハイライトまでの自動検証方法を用いれば、前記自動検証方法により抽出した「カレントミラー回路を構成する回路定数の異なるMOSFET」を高速に検索（ユーザが認識）できるので、回路定数の修正が迅速に行える。
【符号の説明】
【０１８７】
１  外部記憶装置
２  メモリ
３  CPU
４  入力装置
５  出力装置
６  バス
７、７’  回路接続情報（ネットリスト）
８  自動検証処理部
９  シンボル名
１０  ドレイン端子接続ネット名
１１  ゲート端子接続ネット名
１２  ソース端子接続ネット名
１３  サブ端子接続ネット名
１４  シミュレーションモデル名
１５  回路定数
１６  抽出結果の出力領域
２０  第１のデータベース（ＤＢ）
２１  コピー元MOSFETシンボル名
２２  Ｇ端子ネット名
３０  第２のデータベース（ＤＢ）
３１  Ｇ端子ネット名
３２  MOSFETシンボル名
４０  第３のデータベース（ＤＢ）
４１  MOSFETシンボル名
４２  シミュレーションモデル名
５０  第４のデータベース（ＤＢ）
５１  MOSFETシンボル名
５２  Ｗ値
５３  Ｌ値
５４  Ｍ値
６０  第５のデータベース（ＤＢ）
６１  コピー元MOSFETシンボル名
６２  コピー先候補MOSFETシンボル名
６３  Ｇ端子ネット名
７０  第６のデータベース（ＤＢ）
７１  コピー元MOSFETシンボル名
７２  コピー先MOSFETシンボル名
７３  Ｇ端子ネット名
８０  第７のデータベース（ＤＢ）
８１  コピー元MOSFETシンボル名
８２  コピー先MOSFETシンボル名
８３  Ｇ端子ネット名
１００  自動検証処理部（階層間も考慮した自動検証処理部）
１１０  第８のデータベース（ＤＢ）
１１１  セル名
１１２  「セルが配置された階層情報の付いたシンボル名」
１１３  階層数
１２０  第９のデータベース（ＤＢ）
１２１  セル名
１２２  「セル名１２１のセルの１階層下のセルと接続するネット名」
１２３  「ネット名１２２のネットと接続する１階層下のセルのネット名」
１３０  第１０のデータベース（ＤＢ）
１３１  セル名
１３２  コピー元MOSFETシンボル名
１３３  Ｇ端子ネット名
１４０  第１１のデータベース（ＤＢ）
１４１  セル名
１４２  Ｇ端子ネット名
１４３  MOSFETシンボル名
１５０  第１２のデータベース（ＤＢ）
１５１  セル名
１５２  MOSFETシンボル名
１５３  シミュレーションモデル名
１６０  第１３のデータベース（ＤＢ）
１６１  セル名
１６２  MOSFETシンボル名
１６３  Ｗ値
１６４  Ｌ値
１６５  Ｍ値
１７０  第１４のデータベース（ＤＢ）（上階層）
１７１  セル名
１７２  ネット名一覧
１８０  第１５のデータベース（ＤＢ）（上階層）
１８１  セル名
１８２  コピー元MOSFETシンボル名
１８３  コピー先候補のMOSFETシンボル名
１８４  Ｇ端子ネット名
１９０  第１６のデータベース（ＤＢ）（下階層）
２００  第１７のデータベース（ＤＢ）（下階層）
２１０  第１８のデータベース（ＤＢ）（同一階層）
２１１  セル名
２１２  ネット名一覧
２２０  第１９のデータベース（ＤＢ）（同一階層）
２２１  セル名
２２２  コピー元MOSFETシンボル名
２２３  コピー先候補のMOSFETシンボル名
２２４  Ｇ端子ネット名
２３０  第２０のデータベース（ＤＢ）
２３１  コピー元MOSFETのシンボル名
２３２  コピー先MOSFET候補のシンボル名
２３３  コピー元MOSFETのＧ端子ネット名
２４０  第２１のデータベース（ＤＢ）
２４１  コピー元MOSFETシンボル名
２４２  コピー先MOSFETシンボル名
２４３  コピー元MOSFETのＧ端子ネット名
２５１  セルＡに該当するネットリスト
２５２  セルＢに該当するネットリスト
２５３  「セル“ＴＯＰ”（１階層目）に該当するネットリスト」
３００  「カレントミラー回路を構成する、回路定数の異なるMOSFET」データ
３１０  回路図表示・ハイライト処理部
【図１】
2012068767.tif 000003
【図２】
2012068767.tif 000004
【図３】
2012068767.tif 000005
【図４】
2012068767.tif 000006
【図５】
2012068767.tif 000007
【図６】
2012068767.tif 000008
【図８】
2012068767.tif 000009
【図９】
2012068767.tif 000010
【図１０】
2012068767.tif 000011
【図１１】
2012068767.tif 000012
【図１２】
2012068767.tif 000013
【図１３】
2012068767.tif 000014
【図１４】
2012068767.tif 000015
【図１５】
2012068767.tif 000016
【図１６】
2012068767.tif 000017
【図１７】
2012068767.tif 000018
【図１８】
2012068767.tif 000019
【図１９】
2012068767.tif 000020
【図２０】
2012068767.tif 000021
【図２１】
2012068767.tif 000022
【図２２】
2012068767.tif 000023
【図７】
2012068767.tif 000024