(57)【特許請求の範囲】
【請求項１】
論理回路を構成するデバイスおよび配線を含む回路全体に対して、特定の機能を実現させるために作成されたテストパターンを用いて、該特定の機能の実現によって活性信号が伝搬される配線に繋がるデバイスからのアナログの出力信号に波形変化が生じるように機能シミュレーションを実行する第１シミュレーション手段と、
該第１シミュレーション手段による前記機能シミュレーションの開始時点からの前記アナログの出力信号が、前記特定の機能の実現による前記波形変化を検出できるように予め設定された値以上になっている場合に、該波形変化のある信号を活性化信号として抽出して、該活性化信号が伝搬する配線に繋がるデバイスを抽出する抽出手段と、
該抽出手段によって抽出された前記デバイスが、前記特定の機能を実現するように動作していることを確認するために、抽出された前記デバイス以外のデバイスを削除して、削除されたデバイスに繋がる配線に固定電位を与えて、前記機能シミュレーションよりも高精度のシミュレーションを実行する第２シミュレーション手段と、
を備える回路シミュレーション装置。
【請求項２】
請求項１に記載の回路シミュレーション装置によって実施されるシミュレーション方法であって、
前記第１シミュレーション手段によって、論理回路を構成するデバイスおよび配線を含む回路全体に対して、特定の機能を実現させるために作成されたテストパターンを用いて、該特定の機能の実現によって活性信号が伝搬される配線に繋がるデバイスからのアナログの出力信号に波形変化が生じるように機能シミュレーションを実行する第１シミュレーションステップと、
前記抽出手段によって、前記第１シミュレーションステップにおける前記機能シミュレーションの開始時点からの前記アナログの出力信号が、前記特定の機能の実現による前記波形変化を検出できるように予め設定された値以上になっている場合に、該波形変化のある信号を活性化信号として抽出して、該活性化信号が伝搬する配線に繋がるデバイスを抽出する抽出ステップと、
前記第２シミュレーション手段によって、前記抽出ステップにて抽出された前記デバイスが、前記特定の機能を実現するように動作していることを確認するために、抽出された前記デバイス以外のデバイスを削除して、削除されたデバイスに繋がる配線に固定電位を与えて、前記機能シミュレーションよりも高精度のシミュレーションを実行する第２シミュレーションステップと、
を包含する回路シミュレーション方法。
【請求項３】
前記第１シミュレーションステップの前記機能シミュレーションおよび前記第２シミュレーションステップの前記高精度のシミュレーションがネットリストによって実行される請求項２に記載のシミュレーション方法。
【請求項４】
前記第１シミュレーションステップの前記機能シミュレーションは、回路図から作成されるシミュレート用ネットリストによって実行される請求項３に記載のシミュレーション方法。
【請求項５】
前記第１シミュレーションステップの前記機能シミュレーションは、レイアウト図から作成されるシミュレート用ネットリストによって実行される請求項３に記載のシミュレーション方法。
【請求項６】
前記第１シミュレーションステップの前記機能シミュレーションは、回路図およびレイアウト図から作成されるレイアウト検証用ネットリストによって実行される請求項３に記載のシミュレーション方法。
【請求項７】
前記レイアウト検証用ネットリストは、前記レイアウト図の配線の信号名と前記回路図の配線の信号名とが１対１に対応している、請求項６に記載のシミュレーション方法。
【請求項８】
前記第２シミュレーションステップにおいて、前記抽出ステップによって抽出された前記デバイスがＭＯＳトランジスタであってトランジスタとして機能しないものを容量素子に置き換える、請求項２に記載の回路シミュレーション方法。
【請求項９】
前記抽出ステップにおいて、前記活性化信号が伝搬する配線に寄生する抵抗および容量を抽出する、請求項２に記載の回路シミュレーション方法。
【請求項１０】
前記抽出ステップにおいて、前記活性化信号が伝搬する配線と、前記活性化信号が伝搬しない配線との間に発生する容量を寄生容量として抽出する、請求項９に記載の回路シミュレーション方法。
【請求項１１】
請求項２に記載の回路シミュレーション方法の前記各ステップをコンピュータに実行させるためのプログラムが記憶されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大規模集積回路をトランジスタレベルで高精度にシミュレーションすることができる回路シミュレーション方法およびその手順を記憶させた記憶媒体に関する。
【０００２】
【従来の技術】
大規模集積回路に対してトランジスタレベルで回路シミュレーションを行う場合には、通常、設計された全回路図を読み込んで行う。各トランジスタでは、ＩＶ特性に起因してトランジスタに与えられる電圧によって電流値が異なるため、電圧の微妙な違いも検出しながらシミュレーションを行っていく。そのために必要なコンピュータの演算負荷は多大なものになり、大量の時間を費やすことになる。
【０００３】
デジタル回路のみの場合、回路シミュレーション（論理シミュレーション）では電圧値が０または１の２種類のレベルのみを検出すればよいので、データ量が少なく、非常に高速にシミュレーションを行うことが可能である。よって、回路動作の全てのパターンをシミュレーションにより確認することができる。
【０００４】
しかしながら、アナログ回路を含む回路シミュレーションでは、例えば電圧値が０から１へ推移するまでの中間の値を細かく分けて検出する必要があり、その分け方によってシミュレーションの精度が左右される。分け方を細かくすればするほどデータ量は増し、シミュレーション実行時間も増大する。１つの動作を確認するだけでも、論理シミュレーションの最低１０倍の時間が必要であるため、全動作を確認することは困難である。よって、数パターンの動作に絞って抜き取り確認を行っている。
【０００５】
限られた動作をシミュレーションするためには、回路全体は必要無い。このため、最終的に作成される回路図は、レイアウト図と同様の階層構造を有し、全回路素子を含んだレイアウト検証用回路図と、限られたシミュレーションのために必要な素子だけを残したシミュレーション用回路図の２通りが作成される。
【０００６】
このシミュレーション用回路図を可能な限り速く作成するための方法としては、設計者が手動で必要な回路を選ぶ方法（特開平１１−１８６３９８号公報）や、任意の２点信号の最短経路を手動で指定してシミュレーション用回路図を自動抽出する方法等が挙げられる。
【０００７】
【発明が解決しようとする課題】
現段階のアナログ回路を含む回路では、レイアウト検証用回路図からシミュレーション用回路図を作成することが必要である。このシミュレーション用回路図は、回路シミュレーションの制約により全回路のシミュレーションが非常に困難であるため、回路シミュレーションの制約に合うように作成する必要がある。その際には、以下のような問題がある。
【０００８】
レイアウト検証用とシミュレーション用の２つのデータが作成されるため、レイアウト検証用回路とシミュレーション用回路の２つの回路の更新具合を常に管理する必要があり、データの作成中に設計者のミスが発生する可能性が高い。また、データを作成するために多大な時間と労力と費用がかかる。さらに、２つの回路が完全に一致していないと、シミュレーション用回路で動作が正常でも最終データに反映されないことがあり、実デバイスの試作回数を増やすことになる。
【０００９】
また、シミュレーション用データを作成する際に、入力ミスが発生する可能性が高い。例えば、不要な部分を削除し間違えた場合には、回路動作自体に異常をきたすことになり、すぐに修正することができる。しかし、配線の寄生効果の入力を間違えた場合等には、その程度の間違いでは一見すると正常動作に見えることがある。このような場合には、回路動作に異常が生じても原因を発見するのに多大な時間がかかる。
【００１０】
さらに、クリティカルパス（不具合の原因となっている信号経路）の抽出、不要部分の削除、不要部分を削除したときに切断された部分の後処理等を手動で行うことは非効率的であるため、多大な時間と労力と費用がかかる。
【００１１】
本発明は、このような従来技術の課題を解決するためになされたものであり、ツールに依存せずにネットリストベースの検証用回路データを用いて一元的、かつ、効率的にシミュレーション用データを作成することができる回路シミュレーション方法およびその手順を記憶させた記憶媒体を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明の回路シミュレーション装置は、論理回路を構成するデバイスおよび配線を含む回路全体に対して、特定の機能を実現させるために作成されたテストパターンを用いて、該特定の機能の実現によって活性信号が伝搬される配線に繋がるデバイスからのアナログの出力信号に波形変化が生じるように機能シミュレーションを実行する第１シミュレーション手段と、該第１シミュレーション手段による前記機能シミュレーションの開始時点からの前記アナログの出力信号が、前記特定の機能の実現による前記波形変化を検出できるように予め設定された値以上になっている場合に、該波形変化のある信号を活性化信号として抽出して、該活性化信号が伝搬する配線に繋がるデバイスを抽出する抽出手段と、該抽出手段によって抽出された前記デバイスが、前記特定の機能を実現するように動作していることを確認するために、抽出された前記デバイス以外のデバイスを削除して、削除されたデバイスに繋がる配線に固定電位を与えて、前記機能シミュレーションよりも高精度のシミュレーションを実行する第２シミュレーション手段と、を備える。
【００１３】
本発明の回路シミュレーション方法は、前記回路シミュレーション装置によって実施されるシミュレーション方法であって、前記第１シミュレーション手段によって、論理回路を構成するデバイスおよび配線を含む回路全体に対して、特定の機能を実現させるために作成されたテストパターンを用いて、該特定の機能の実現によって活性信号が伝搬される配線に繋がるデバイスからのアナログの出力信号に波形変化が生じるように機能シミュレーションを実行する第１シミュレーションステップと、前記抽出手段によって、前記第１シミュレーションステップにおける前記機能シミュレーションの開始時点からの前記アナログの出力信号が、前記特定の機能の実現による前記波形変化を検出できるように予め設定された値以上になっている場合に、該波形変化のある信号を活性化信号として抽出して、該活性化信号が伝搬する配線に繋がるデバイスを抽出する抽出ステップと、前記第２シミュレーション手段によって、前記抽出ステップにて抽出された前記デバイスが、前記特定の機能を実現するように動作していることを確認するために、抽出された前記デバイス以外のデバイスを削除して、削除されたデバイスに繋がる配線に固定電位を与えて、前記機能シミュレーションよりも高精度のシミュレーションを実行する第２シミュレーションステップと、を包含する。
【００１４】
好ましくは、前記第１シミュレーションステップの前記機能シミュレーションおよび前記第２シミュレーションステップの前記高精度のシミュレーションがネットリストによって実行される。
【００１５】
好ましくは、前記第１シミュレーションステップの前記機能シミュレーションは、回路図から作成されるシミュレート用ネットリストによって実行される。
【００１６】
好ましくは、前記第１シミュレーションステップの前記機能シミュレーションは、レイアウト図から作成されるシミュレート用ネットリストによって実行される。
【００１７】
好ましくは、前記第１シミュレーションステップの前記機能シミュレーションは、回路図およびレイアウト図から作成されるレイアウト検証用ネットリストによって実行される。
【００１８】
好ましくは、前記レイアウト検証用ネットリストは、前記レイアウト図の配線の信号名と前記回路図の配線の信号名とが１対１に対応している。
【００２０】
好ましくは、前記第２シミュレーションステップにおいて、前記抽出ステップによって抽出された前記デバイスがＭＯＳトランジスタであってトランジスタとして機能しないものを容量素子に置き換える。
【００２１】
好ましくは、前記抽出ステップにおいて、前記活性化信号が伝搬する配線に寄生する抵抗および容量を抽出する。
【００２２】
好ましくは、前記抽出ステップにおいて、前記活性化信号が伝搬する配線と、前記活性化信号が伝搬しない配線との間に発生する容量を寄生容量として抽出する。
【００２３】
本発明の記録媒体は、コンピュータ読み取り可能であって、前記回路シミュレーション方法の前記各ステップをコンピュータに実行させるためのプログラムが記憶されている。
【００２４】
以下、本発明の作用について説明する。
【００２５】
本発明は、速度を重視した低精度のシミュレーションを行って、本当に必要な部分を漏れなく抽出し、これを用いて時間はかかるが高精度なシミュレーションを行うためのものである。レイアウト検証等で使用する回路データ（回路全体）とレイアウトデータ（レイアウト）を用いて、ある特定の機能の動作をシミュレーションによって確認する際に、その機能に応じて動作させるために必要な入力信号（テストパターン）を作成して低精度のシミュレーションを行う。これにより、その入力信号に応じて各機能毎にブロック分けした回路が動きだし、各回路ブロックから各回路ブロックに信号が送られる。シミュレーションの開始時点から各信号の波形に、ある一定以上の変化があるものを選択して抽出する。この変化の度合いは、シミュレーション時に指定することができる。波形に変化のある信号のみを選び出すことにより、回路シミュレーションに必要な部分の信号が選び出される。このときのシミュレーションは、精度が低くても機能的に正しければ問題ないので、活性化信号（波形に変化がある信号）の抽出ができるものであれば、速度を重視したシミュレーションとすることができる。そして、抽出した活性化信号を対象として高精度のシミュレーションを実行することにより、短時間で精度良くシミュレーションを行うことができる。
【００２６】
このシミュレーションは、回路図からシミュレーション用ネットリストを作成してシミュレーションを行う段階、レイアウト図からネットリストを作成してシミュレーションを行う段階、および回路図からレイアウト検証用ネットリストを作成してシミュレーションを行う段階等、いずれの段階に対しても行うことができる。
【００２７】
高精度のシミュレーションの際に、実デバイスに近いシミュレーションを行うためには、回路データよりもレイアウトデータから抽出したネットリスト（実配線シミュレーション用データ）を用いてシミュレーションを実行するのが好ましい。しかし、レイアウトデータから抽出したネットリストは全ての配線に信号名が明記されているわけではなく、選び出された信号は適当な信号名が機械的に割り振られることになり、シミュレーションの結果を確認するのが困難である。一方、回路データの信号名を用いれば、結果の解析が容易である。そこで、ネットリストをレイアウトデータから抽出して、信号名は回路データのものを用いるのが好ましい。このためには、レイアウトデータの配線の信号名と、回路データの配線の信号名を、配線の接続情報を照合しながら１対１に対応させて、レイアウトデータの配線に回路データの信号名の情報を持たせるようにする。そして、レイアウトデータからネットリストを抽出すると、回路データの信号名を用いたネットリストが作成される。
【００２８】
低精度のシミュレーションにおいて、波形に変化がある信号（活性化信号）として抽出された信号につながるデバイス（ＭＯＳデバイス、抵抗、容量等）を抽出してネットリストを作成すれば、高精度のシミュレーションに不要な回路が削除され、アクティブパスが漏れなく選び出されたシミュレーション用ネットリスト（シミュレーション用データ）を作成することができる。
【００２９】
このネットリストを用いて高精度のシミュレーションを行う際に、削除された部分は何も接続されていない端子（オープンな端子）になってしまうので、正常なシミュレーションを行うことができない。よって、この部分に対しては、低精度のシミュレーションの際に各信号の初期電位を求めておき、削除された部分を探し出して、その信号に独立電源として初期電位（固定電位）を与える。この信号は、変化の無いものであるので、固定電位を与えても問題は生じない。さらに、それ以外の信号にも、低精度のシミュレーションで求めた初期電位を与えておくことにより、高精度のシミュレーションの際に初期電位の計算を省いて効率化を図ることができる。
【００３０】
作成したネットリストにおいて、ＭＯＳデバイスのうち、トランジスタとして機能しないものは、それと等価の容量素子に置き換えることにより、トランジスタの数を減らしてシミュレーションの時間を短縮することができる。トランジスタとして機能しないものとは、
１．ｎ型トランジスタのゲート部分にシミュレーション中、常に固定の閾値以下のローレベル電位が与えられている場合、
２．ｐ型トランジスタのゲート部分にシミュレーション中、常に固定の閾値以上のハイレベル電位が与えられている場合、
３．ソースとドレインが同電位である場合が挙げられる。ゲートに変化のある信号が与えられている場合には、シミュレーションに必要なトランジスタとして抽出されるが、シミュレーション中、常にソースとドレインが同電位であれば、ゲート容量に等価な容量素子に置き換える。
【００３１】
さらに、実デバイスに近いネットリストを得るためには、レイアウトデータから配線に寄生する抵抗や容量を抽出する。このとき、波形に変化がある信号（活性化信号）の各信号に対してのみ抽出する。また、信号によっては、レイアウト上、並行に配線されている隣接する非活性化信号（波形に変化が無い信号）の配線の影響を受けるものもあるので、このような場合には、それらも考慮して抽出し、高精度のシミュレーションを行うためのシミュレーション用データ（ネットリスト）に加える。
【００３２】
このようなフローを、全てネットリストを介して行うことにより、いずれの段階からもシミュレーションを行うことができるアクティブパスシミュレーションシステムを得ることができる。各ＥＤＡ−ＣＡＤベンダーが作製したツールに特化したシステムにすると、操作面ではより効率的なシステムになるが、他のツールに適用できなくなる。回路カテゴリーによって使用されるツールが異なるので、この手順を記憶媒体に記憶させておき、ネットリストベースでシミュレーションを行うことにより、どんな回路にも使用可能なシステムに仕上げることが可能である。
【００３３】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【００３４】
図１〜図４は、本発明の一実施形態である回路シミュレーション方法のフローを説明するための図である。
【００３５】
まず、図１に示すように、回路図からシミュレーション用ネットリストを作成してシミュレーションを実施する。ここでは、全体回路図だけではなく、個々の部分回路図（個別回路図）ついてもシミュレーションを行う。
【００３６】
回路中には、シミュレーション対象とする機能に応じて作成されるテストパターンによって、動作する回路と動作しない回路の両方が含まれる。しかし、動作しない回路を含めてシミュレーションするのは、時間がかかるため好ましくない。
【００３７】
そこで、メモリセル手動縮退を行い、テストパターンにより機能シミュレーション（機能を実現できる程度の低精度のシミュレーション）を行って活性化信号（波形に変化がある信号）を自動的に抽出する（機能シミュレーション）。なお、メモリセルの手動縮退は、特定機能の動作を確認するのに必要が無いメモリセル（メモリセルとしての動作を行わない配線につながっているメモリセル）を負荷に置き換えるためのものである。これにより、これらのメモリセルを回路図に含まないようにしてデータ量を減らすことができる。このような手動縮退方法によれば、自動縮退するよりも効率的である。また、活性化信号の抽出は、機能シミュレーション時に随時電位のチェックを行って、一度でも変化があるものをファイルに書き込んで残していくことにより自動的に行うことができる。
【００３８】
そして、Ａｃｔｉｖｅ  Ｎｏｄｅ  Ｌｉｓｔ（活性化信号のリスト）、Ａｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔ（活性化信号につながるデバイスのネットリスト）、Ｉｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔ（各信号の初期電位のリスト）の各リストを作成して、これらからアクティブパスネットリストを作成する。そして、このアクティブパスネットリストを用いて精度を重視したシミュレーションを行う。さらに、この回路シミュレーション結果と、実デバイスでの結果とを比較検討する。なお、各シミュレーションは、作成されたネットリストを用いて、ＣＡＤシミュレータ等により行うことができる。
【００３９】
次に、図２に示すように、回路図に基づいてレイアウト図を作成し、レイアウト図からネットリストを作成してシミュレーションを実施する。このシミュレーションは、全体レイアウト図だけではなく、個々の部分レイアウト図に（個別レイアウト図）ついても行う。
【００４０】
ここでも、シミュレーション対象とする機能に応じて作成されるテストパターンによって、動作する回路と動作しない回路の両方が含まれる。しかし、動作しない回路を含めてシミュレーションするのは、時間がかかるため好ましくない。
【００４１】
そこで、テストパターンにより機能シミュレーション（機能を実現できる低精度のシミュレーション）を行って活性化信号（波形に変化がある信号）を自動的に抽出する。
【００４２】
そして、Ａｃｔｉｖｅ  Ｎｏｄｅ  Ｌｉｓｔ（活性化信号のリスト）、Ａｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔ（活性化信号につながるデバイスのネットリスト）、Ｉｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔ（各信号の初期電位のリスト）の各リストを作成し、これを用いて精度を重視したシミュレーションを行う。さらに、この回路シミュレーション結果と、実デバイスでの結果とを比較検討する。
【００４３】
次に、図３に示すように、図１のフローで作成した回路図と図２のフローで作成したレイアウト図を合成し、レイアウト検証用ネットリストを作成してシミュレーションを実施する。
【００４４】
ここでは、図１で作成した回路図とレイアウト図を比較して、レイアウトデータから抽出するネットリスト（シミュレーション用データ）に回路図の情報を組み込み（図３の▲１▼）、テストパターンにより機能シミュレーション（機能を実現できる低精度のシミュレーション）を行って活性化信号（波形に変化がある信号）を自動的に抽出する。
【００４５】
そして、Ａｃｔｉｖｅ  Ｎｏｄｅ  Ｌｉｓｔ（活性化信号のリスト）、Ａｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔ（活性化信号につながるデバイスのネットリスト、図３の▲２▼）、Ｉｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔ（各信号の初期電位のリスト、図３の▲３▼）の各リストを作成する。さらに、必要部分だけ寄生抵抗や寄生容量を抽出し（図３の▲５▼）、シミュレーション中にトランジスタとして機能しないＭＯＳデバイスを等価な容量素子に置き換えてＳｅｌｅｃｔＡｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔ（シミュレーション用の活性化デバイスのネットリスト、図３の▲４▼））を作成する。これを用いて精度を重視したシミュレーションを行う。さらに、この回路シミュレーション結果と、実デバイスでの結果とを比較検討する。
【００４６】
次に、図４（ｂ）に示すように、図３のフローでレイアウト検証（図４（ｂ）の▲１▼）を行って抽出したネットリストに対して、図３の▲２▼〜▲５▼と同様な手順でＳｅｌｅｃｔ  Ａｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔを作成し（図４の▲２▼〜▲５▼）、機能シミュレーション（図４（ｂ）の▲６▼）を実行して正常動作が得られることを確認してから、精度を重視したシミュレーションを行う。このとき、機能シミュレーションで抽出した各ノードの初期電位（Ｉｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔ）を用いると、シミュレーションの効率を向上させることができる。さらに、この回路シミュレーション結果と、実デバイスでの結果とを比較検討する。
【００４７】
なお、機能シミュレーションと精度重視シミュレーションの実行時間差は、通常、１０倍から１００倍の違いがあるので、この方法によればシミュレーションの時間を少なくすることができる。また、必要部分の回路の中にトランジスタとして動作しないものがあるので、これを容量素子に置き換えることにより、さらに効率を向上させることができる。これらのフローを全てネットリストベースで行っているため、あらゆるツールやカテゴリにも対応することができる。
【００４８】
以下に、図４（ａ）に示す一般的な回路設計フローと図４（ｂ）に示す本実施形態のシミュレーションシステムにおけるフローとを用いて、回路シミュレーションの流れと仕組み、および実際の動作についてさらに詳しく説明する。
【００４９】
図４（ａ）に示すように、回路の仕様検討、機能および論理の設計、機能および論理の検証を行った後、回路設計を行って図１に示したようなフローにより回路図の検証（シミュレーション）を行う。これを元にして図２に示したフローによりレイアウト設計（図２）を行う。なお、実際の設計では、期間の短縮化のために、回路図とレイアウト図が並行して作成されることもある。
【００５０】
そして、図３に示すようにレイアウト検証を行って、レイアウト図と回路図を比較して電気的接続関係が正しいか否かをチェックする。これと同時に両図のネット名（配線の信号名）の対応関係を取る。この情報を元にして、可能な限り回路図のネット名を用いてレイアウトデータからネットリストを抽出する（図４（ｂ）の▲１▼）。
【００５１】
次に、このネットリストを用いて所望の機能が確認できるようなシミュレーション用のテストパターン（入力信号）を作成し、これを用いて初回のシミュレーション（低精度のシミュレーション＝機能シミュレーション）を行う。そして、活性化信号だけを抽出してＡｃｔｉｖｅ  Ｎｏｄｅ  Ｌｉｓｔを作成し、その信号につながるデバイスを選び出して回路シミュレーションに必要な回路のネットリストであるＡｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔを作成する（図４（ｂ）の▲２▼）。
【００５２】
このネットリストは、シミュレーションに不要なトランジスタ（非活性信号にのみつなる）が削除されているので、どこにも接続されない端子（オープンな端子）が存在する。そこで、上記低精度のシミュレーションによって作成した各信号の初期電位を記憶しておき（Ｉｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔ）、これをその端子に固定電位（独立電源）としてリスト（Ｉｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔ）から与える。さらに、それ以外の信号にも初期電位を与える。これにより、全てのトランジスタの端子に与えられる初期電位が分かるので、高性能シミュレーション時に初期電位を計算する必要が無くなり、回路シミュレーションの効率を向上させることができる（図４（ｂ）の▲３▼）。また、シミュレーションを始める前に固定電位を与えることによって、シミュレーション中に動作が決まっているトランジスタが現れるので、ネットリストにおいてこのようなトランジスタを等価な容量素子に置き換える。
【００５３】
さらに、Ａｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔを用いて、シミュレーションに必要とされる信号（活性化信号）に対してのみ、寄生抵抗および寄生容量を抽出する。このとき、活性化信号の配線と隣接している非活性化信号の配線から影響を受ける場合には、それらも抽出する（図４（ｂ）の▲５▼）。
【００５４】
そして、上記容量素子、寄生抵抗や寄生容量、各信号の初期電位とＡｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔとを合わせて、シミュレーション用ネットリスト（Ｓｅｌｅｃｔ  Ａｃｔｉｖｅ  Ｄｅｖｉｃｅ  ｎｅｔｌｉｓｔ）を作成する（バックアノテーション、図４（ｂ）の▲４▼）。
【００５５】
次に、このシミュレーション用ネットリストを用いて機能シミュレーション（図４（ｂ）の▲６▼）を行い、次に、精度を重視したシミュレーションを行う。そして、この回路シミュレーション結果と、実デバイスでの結果とを比較検討する。
【００５６】
ここで、機能シミュレーションは、低精度ではあるが、高速のシミュレータにより行うことができる。この高速シミュレータによりＩｎｉｔｉａｌ  Ｃｏｎｄｉｔｉｏｎ  Ｌｉｓｔを高速に作成することができ、これを使用するだけでも、高精度（低速）のシミュレータで全ての処理を行うよりも効率的である。
【００５７】
次に、本発明の回路シミュレーション方法について、図５（ａ）に示すような構成で図５（ｂ）に示すような入力信号が与えられる論理回路を例に挙げて具体的に説明する。
【００５８】
この論理回路では、入力信号ＩＮ１〜ＩＮ７として図５（ｂ）に示すような入力信号が与えられる。次段の回路ＮＡＮＤ１〜ＮＡＮＤ３のうち、これらの信号を受けて活性化するのは、図５（ａ）に示すＮＡＮＤ１の出力ｎｅｔ１９のみであり、これを受けてＮＡＮＤ４の出力ｎｅｔ１２も活性化し、その次のＮＯＲ１およびＩＮＶ１の出力ｎｅｔ１１およびＯＵＴも各々活性化する。従って、活性化する信号は、図５（ａ）の斜線部分になる。なお、ＩＮ４は変化しているが、出力への伝搬が行われていないので、非活性化信号とする。
【００５９】
次に、シミュレーション（高精度のシミュレーション）に必要な回路を抽出する。初めに、活性化した信号につながるデバイスを残し、それ以外の回路（図５（ａ）のドット部分）は削除する。このようにシミュレーションに不要な回路を削除することにより、ＮＡＮＤ４とＮＯＲ１の一方の端子がどこにも接続されなくなる。シミュレーションを行っている間、この端子につながる信号は変化しないので、この端子に初期電位を固定電位として与える。図５（ｃ）では、ｎｅｔ５５にＨＩＧＨレベルに固定した電位（電源）を与え、ｎｅｔ１７にはＬＯＷレベルに固定した電位（電源）を与える。次に、活性化信号に対応するレイアウト配線部分から寄生抵抗や寄生容量を抽出し、シミュレーション用ネットリストに加えて最終的なシミュレーション用ネットリストを作成する。このとき、非活性化信号の影響を受けるものについても考慮する。
【００６０】
次に、本発明の回路シミュレーション方法について、図６に示すような構成のメモリセルを例に挙げて具体的に説明する。
【００６１】
このメモリセルは規模が大きく、全てのメモリセルのデータに高精度のシミュレーションを行うのは困難である。そこで、動作確認の必要なメモリセルのみが動作するように入力パターン（テストパターン）を作成し、機能シミュレーションを行う。機能シミュレーションは、高精度シミュレーションとは異なるシミュレータにより高速に行うことができるので、精度は落ちるが、活性化信号のリストを速く作成することができる。
そして、動作に必要な回路のみを用いて高精度のシミュレーションを行う。このとき、動作させるメモリセルと、そのメモリセルにつながるワード線およびビット線と、そのワード線やビット線につながるメモリセルを残して、それ以外のメモリセルはネットリストから削除する。残したメモリセルは全てまとめた負荷容量とする。
【００６２】
【発明の効果】
以上詳述したように、本発明によれば、従来、ＣＡＤエディター上で手作業により不要な部分の削除を行ったり、レイアウト寄生素子を測定して回路図上に加えたりするために時間がかかっていたシミュレーション用データの作成を、１／１０の時間で行うことができる。また、レイアウト検証用の回路データとレイアウトとを元にして、高精度シミュレーション用データを得ることができるので、データを一元化して作成ミスやデータ入力ミスを大幅に削減することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態である回路シミュレーション方法を説明するためのフロー図である。
【図２】本発明の一実施形態である回路シミュレーション方法を説明するためのフロー図である。
【図３】本発明の一実施形態である回路シミュレーション方法を説明するためのフロー図である。
【図４】（ａ）は一般的な設計手順を説明するためのフロー図であり、（ｂ）は本発明の一実施形態である回路シミュレーション方法を説明するためのフロー図である。
【図５】（ａ）は本発明の一実施形態である回路シミュレーション方法を説明するための回路図であり、（ｂ）は入力信号の波形図であり、（ｃ）は内部信号の波形図である。
【図６】本発明の一実施形態である回路シミュレーション方法を説明するための回路図である。
【符号の説明】
Ｉｎ１〜Ｉｎ７  入力信号
ｎｅｔ１１、ｎｅｔ１２、ｎｅｔ１７、ｎｅｔ１９、ｎｅｔ５５  内部信号
ＯＵＴ  出力信号
【図１】
0004072884.tif 000002
【図２】
0004072884.tif 000003
【図３】
0004072884.tif 000004
【図４】
0004072884.tif 000005
【図５】
0004072884.tif 000006
【図６】
0004072884.tif 000007