(57)【要約】【課題】  大規模なアナログ回路を含む半導体集積回路に対して、フルチップレベルで現実的な実行条件下で駆動能力の検証が実行可能な半導体集積回路の回路設計検証方法を提供する。【解決手段】  全回路を記述するネットリストから内部信号ノードを駆動するドライバ回路を内部信号ノード毎に抽出して、内部信号ノード毎にドライバ回路の駆動経路のオン抵抗を抽出するオン抵抗抽出工程と、ネットリストから内部信号ノード毎に駆動すべき駆動負荷容量を抽出する負荷容量抽出工程と、内部信号ノード毎に、駆動負荷容量とオン抵抗との積を時定数として抽出する時定数抽出工程とを有する。【選択図】  図１
2005115925.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の全回路内に含まれる複数のドライバ回路が夫々駆動する内部信号ノードに対する駆動能力を前記内部信号ノードの全てに対して検証する半導体集積回路の回路設計検証方法であって、
前記全回路を記述するネットリストから前記内部信号ノードを駆動するドライバ回路を前記内部信号ノード毎に抽出して、前記内部信号ノード毎に前記ドライバ回路の駆動経路のオン抵抗を抽出するオン抵抗抽出工程と、
前記ネットリストから前記内部信号ノード毎に駆動すべき駆動負荷容量を抽出する負荷容量抽出工程と、
前記内部信号ノード毎に、前記駆動負荷容量と前記オン抵抗との積を時定数として抽出する時定数抽出工程とを有することを特徴とする半導体集積回路の回路設計検証方法。
【請求項２】
前記オン抵抗抽出工程において、前記ドライバ回路は、特定のゲート回路の中から抽出されることを特徴とする請求項１に記載の半導体集積回路の回路設計検証方法。
【請求項３】
前記オン抵抗抽出工程において、前記内部信号ノード毎に、前記内部信号ノードから１または複数のトランジスタを経由して電源線またはグランド線に至るトランジスタ経路の内、トランジスタのゲート電極を経由しない全てのトランジスタ経路を検索し、検索されたトランジスタ経路に含まれるトランジスタ群を、当該内部信号ノードを駆動するドライバ回路として抽出することを特徴とする請求項１に記載の半導体集積回路の回路設計検証方法。
【請求項４】
前記オン抵抗抽出工程において、前記オン抵抗は、前記ドライバ回路の駆動経路中に存在する回路素子のオン抵抗の合計を前記ネットリストに含まれる前記回路素子の回路定数から算出することにより抽出されることを特徴とする請求項１〜３の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項５】
前記オン抵抗抽出工程において、前記内部信号ノード毎に、前記駆動経路の前記オン抵抗の最大値を最大オン抵抗として抽出し、
前記時定数抽出工程において、前記内部信号ノード毎に、前記最大オン抵抗を用いた最大時定数を抽出することを特徴とする請求項１〜４の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項６】
前記負荷容量抽出工程は、
前記ネットリストから前記内部信号ノードに接続するレシーバ回路を前記内部信号ノード毎に抽出して、前記内部信号ノード毎に前記レシーバ回路の負荷容量を抽出する第１負荷容量抽出工程と、
前記全回路に対応するレイアウトデータまたは前記ネットリストから前記内部信号ノードの配線部分に起因する配線容量を抽出する第２負荷容量抽出工程と、を有し、
前記駆動負荷容量は、前記内部信号ノード毎に前記レシーバ回路の負荷容量と前記配線容量の和として算出されることを特徴とする請求項１〜５の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項７】
前記ネットリスト上の前記内部信号ノードと、前記全回路に対応するレイアウトデータ上の前記内部信号ノードとの間の１対１の対応付けを行うレイアウト照合工程を有し、
前記第２負荷容量抽出工程において、前記レイアウトデータ上の前記内部信号ノードの配線パターン情報に基づいて前記配線容量を計算することを特徴とする請求項６に記載の半導体集積回路の回路設計検証方法。
【請求項８】
前記ネットリストは、前記全回路を記述する階層構造を有する回路図データを階層展開して生成された無階層構造ネットリストであることを特徴とする請求項１〜７の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項９】
前記ネットリストは、前記全回路に対応するレイアウトデータから生成された無階層構造ネットリストであることを特徴とする請求項１〜６の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項１０】
前記時定数抽出工程で抽出された前記時定数の所定値を超えるものを対応する前記内部信号ノードを特定して表示する表示工程を有することを特徴とする請求項１〜９の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項１１】
前記時定数抽出工程で抽出された前記時定数の大小の順に対応する前記内部信号ノードを特定して表示する表示工程を有することを特徴とする請求項１〜１０の何れか１項に記載の半導体集積回路の回路設計検証方法。
【請求項１２】
前記内部信号ノード毎に、前記時定数に所定の遅延係数を乗じて、前記駆動経路の駆動遅延時間を算出する遅延時間算出工程を有し、
前記表示工程において、表示される前記時定数に対応する前記駆動遅延時間を、前記時定数に加えて、或いは、前記時定数に代えて表示することを特徴とする請求項１０または１１に記載の半導体集積回路の回路設計検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の回路設計検証方法に関し、より具体的には、半導体集積回路の全回路内に含まれる複数のドライバ回路が夫々駆動する内部信号ノードに対する駆動能力を前記内部信号ノードの全てに対して検証する半導体集積回路の回路設計検証方法に関する。
【背景技術】
【０００２】
通常、大規模集積回路のトランジスタレベルの回路シミュレーションを行う場合は設計された全回路図を読み込んで行う。この場合、各トランジスタのＩ―Ｖ特性よりトランジスタに与えられた電圧によって各トランジスタに流れる電流が異なるため、電圧の微妙な違いも検出しながらアナログレベルでシミュレーションを行う。従って、トランジスタレベルの回路シミュレーションは、コンピュータに掛かる演算負荷は多大なものとなり、シミュレーションに要する時間も長大である。
【０００３】
デジタル回路のみの論理シミュレーションでは、信号レベル（電圧値）が０か１の２レベルのみの検出なので、シミュレーションに要するデータ量が少なく、トランジスタレベルのシミュレーションに比べ非常に高速なシミュレーションを行うことが可能である。故に、回路動作に係る全ての信号パターンをシミュレーションにより確認できる。一方、アナログ回路を含む回路シミュレーションでは、例えば信号レベルが０から１へ推移するまでの中間の値を細かく分割してアナログ的に検証する必要がある。その分割の仕方によってシミュレーションの精度が左右される。細かく分割すればするほどデータ量は増し、シミュレーション実行時間も増大する。故に、１つの信号パターンの動作を確認するだけでも論理シミュレーションの最低１０倍の時間がかかるため、回路動作に係る全ての信号パターンについて回路動作確認を行うことは非常に困難である。また、１つの配線にどれだけの回路素子が繋がっていて、配線寄生容量がどれだけ動作に影響するか等を検証するために、レイアウトデータ作成前の予測配線容量を用いた駆動能力の検証やレイアウトデータ作成後の実配線容量を用いた駆動能力の検証は、ロジック回路等のスタンダードセルレベルやゲートレベルで行われている。下記の特許文献１には、このようなロジック回路等における回路検証の一例が開示されている。図６に当該回路検証のフローを示す。この回路検証フローでは、全て論理設計の回路データを基にしており、回路の信号線上の信号遅延は、ゲートのファンアウト情報を基に計算されるため、極めて大まかな検証となっている。
【特許文献１】特開平５−１０２３０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
半導体集積回路の集積化が増していく中で、機能に限定した検証やタイミングに特化した検証やドライブチェックという形で配線の負荷も加味したチップ全体の高速検証は行われている。しかし、アナログ回路の場合、連続的な電流や電圧を処理するので、１及び０だけの論理検証のみならず、トランジスタレベルでのシミュレーションが要求される。大規模なアナログ回路を含む半導体集積回路のトランジスタレベルのシミュレーションはコンピュータの能力上の制約や検証ツールの制約により、全回路を含むフルチップレベルで実現することが極めて困難である。仮に実行できたとしても現実的な時間では終了しない可能性が高い。特に、配線寄生容量を加味すると、当該容量要素のために膨大な量の素子数になるため、動的なシミュレーションはほぼ不可能である。
【０００５】
従って、大規模なアナログ回路を含む半導体集積回路においても、フルチップレベルでの駆動能力の検証（ドライブチェック）を現実的な実行条件下で行えるようにすることが望まれる。
【０００６】
本発明は、上述の問題点に鑑みてなされたものであり、その目的は、大規模なアナログ回路を含む半導体集積回路に対して、フルチップレベルで現実的な実行条件下で駆動能力の検証が実行可能な半導体集積回路の回路設計検証方法を提供することにある。
【課題を解決するための手段】
【０００７】
この目的を達成するための本発明に係る半導体集積回路の回路設計検証方法（以下、「本発明方法」という。）は、半導体集積回路の全回路内に含まれる複数のドライバ回路が夫々駆動する内部信号ノードに対する駆動能力を前記内部信号ノードの全てに対して検証する半導体集積回路の回路設計検証方法であって、前記全回路を記述するネットリストから前記内部信号ノードを駆動するドライバ回路を前記内部信号ノード毎に抽出して、前記内部信号ノード毎に前記ドライバ回路の駆動経路のオン抵抗を抽出するオン抵抗抽出工程と、前記ネットリストから前記内部信号ノード毎に駆動すべき駆動負荷容量を抽出する負荷容量抽出工程と、前記内部信号ノード毎に、前記駆動負荷容量と前記オン抵抗との積を時定数として抽出する時定数抽出工程とを有することを第１の特徴とする。
【０００８】
上記特徴構成により、全回路内に含まれる複数のドライバ回路が夫々駆動する内部信号ノードの全てに対して、当該内部信号ノードの負荷容量を駆動するドライバ回路の駆動経路の駆動能力が時定数として網羅的に評価することができる。この結果、全回路に亘って、駆動能力の不足する個所を簡易且つ迅速に検証することができる。特に、上記特徴構成によれば、論理回路設計に使用されるファンアウト等の駆動能力に関する属性情報を持たないアナログ回路についても駆動能力の評価が行えることになり、従来、フルチップレベルでのトランジスタレベルのシミュレーションが困難であったところ、簡易且つ迅速に、全回路に亘る駆動能力の検証が可能となる。尚、第１の特徴構成におけるオン抵抗は、絶対的な値ではなく、相対的な値でも構わない。例えば、標準的なトランジスタのオン抵抗を基準とするオン抵抗比であっても、同様の評価は可能である。
【０００９】
更に、本発明方法は、上記特徴構成に加えて、前記オン抵抗抽出工程において、前記ドライバ回路が、特定のゲート回路の中から抽出されることを第２の特徴とする。かかる特徴構成により、大規模回路であっても、ドライバ回路の抽出が容易且つ迅速に実行できるようになり、検証に供するコンピュータの負荷の軽減、及び、検証時間の短縮化が図れる。
【００１０】
更に、本発明方法は、上記特徴構成に加えて、前記オン抵抗抽出工程において、前記内部信号ノード毎に、前記内部信号ノードから１または複数のトランジスタを経由して電源線またはグランド線に至るトランジスタ経路の内、トランジスタのゲート電極を経由しない全てのトランジスタ経路を検索し、検索されたトランジスタ経路に含まれるトランジスタ群からなる回路を、当該内部信号ノードを駆動するドライバ回路として抽出することを第３の特徴とする。かかる特徴構成により、ゲートレベルの回路に限定せず、全回路内に含まれるドライバ回路が抽出される。更に、ドライバ回路の検索が、階層構造を維持した回路図データ、または、階層構造を有しないデータの何れを用いても行えるため、ゲートとしての属性を持たないアナログ回路設計に好適である。
【００１１】
更に、本発明方法は、上記何れかの特徴構成に加えて、前記オン抵抗抽出工程において、前記オン抵抗が、前記ドライバ回路の駆動経路中に存在する回路素子のオン抵抗の合計を前記ネットリストに含まれる前記回路素子の回路定数から算出することにより抽出されることを第４の特徴とする。かかる特徴構成により、駆動経路のオン抵抗をネットリスト中の回路情報から正確に抽出することができるため、正確な駆動能力評価が簡易且つ迅速に実行できる。
【００１２】
更に、本発明方法は、上記何れかの特徴構成に加えて、前記オン抵抗抽出工程において、前記内部信号ノード毎に、前記駆動経路の前記オン抵抗の最大値を最大オン抵抗として抽出し、前記時定数抽出工程において、前記内部信号ノード毎に、前記最大オン抵抗を用いた最大時定数を抽出することを第５の特徴とする。かかる特徴構成により、内部信号ノード毎に駆動能力の最も弱い駆動経路を１つずつ抽出するため、抽出される時定数の数が内部信号ノード数に限定され、その中から駆動能力の不足する内部信号ノードを効率的に抽出することができる。
【００１３】
更に、本発明方法は、上記何れかの特徴構成に加えて、前記負荷容量抽出工程が、前記ネットリストから前記内部信号ノードに接続するレシーバ回路を前記内部信号ノード毎に抽出して、前記内部信号ノード毎に前記レシーバ回路の負荷容量を抽出する第１負荷容量抽出工程と、前記全回路に対応するレイアウトデータまたは前記ネットリストから前記内部信号ノードの配線部分に起因する配線容量を抽出する第２負荷容量抽出工程とを有し、前記駆動負荷容量が、前記内部信号ノード毎に前記レシーバ回路の負荷容量と前記配線容量の和として算出されることを第６の特徴とする。かかる特徴構成により、駆動負荷容量の抽出が、レシーバ回路側に寄生する負荷容量と配線に寄生する負荷容量に分けて、実デバイスに近い状態で高精度に実行できる。ここで、レシーバ回路側に寄生する負荷容量としては、例えば、レシーバ回路の入力段に存在するトランジスタのゲート容量、ドレイン或いはソースの接合容量等が、ネットリストのトランジスタに係る属性情報から取得或いは計算することができる。また、配線容量は、レイアウトデータ中の配線パターンに関する寸法情報や他の配線との位置関係情報等から算出することができる。或いは、既に、ネットリスト上に容量素子として抽出済みであれば、当該情報を利用しても構わない。
【００１４】
更に、上記第６の特徴構成において、前記ネットリスト上の前記内部信号ノードと、前記全回路に対応するレイアウトデータ上の前記内部信号ノードとの間の１対１の対応付けを行うレイアウト照合工程を有し、前記第２負荷容量抽出工程において、前記レイアウトデータ上の前記内部信号ノードの配線パターン情報に基づいて前記配線容量を計算するのも好ましい。これにより、作成されたレイアウトデータと設計した全回路に対応するネットリスト間の照合が実行できるので、レイアウトデータと設計された回路との対応関係が検証でき、その検証されたレイアウトデータに基づいてネットリストと対応関係の取れた内部信号ノードの配線容量をレイアウトデータの配線パターンに関する寸法情報や他の配線との位置関係情報等から高精度に算出できる。この結果、レイアウト完成後の設計最終段階において、レイアウトの回路図との照合と、完成後のレイアウトデータに基づくより確実な駆動能力検証の両方が同時に実行可能となる。
【００１５】
更に、本発明方法は、上記何れかの特徴構成に加えて、前記ネットリストは、前記全回路を記述する階層構造を有する回路図データを階層展開して生成された無階層構造ネットリストであることを第７の特徴とする。かかる特徴構成により、例えば、アナログ回路設計では、フルチップレベルでの回路図とレイアウトデータが同じ階層構造やセル構造となっていないケースもあるため、夫々が元の階層構造を維持したままでは、内部信号ノードに対応付けや多階層に及ぶ配線容量の抽出が困難となるのを解消することができる。ここで、階層展開してフラットなデータにすることで冗長性が増してデータ量が増大するが、駆動能力評価に必要な情報だけを残して不要なデータを削除することで、データ量の増大を抑制できる。
【００１６】
更に、本発明方法は、上記第１乃至第６の何れかの特徴構成に加えて、前記ネットリストは、前記全回路に対応するレイアウトデータから生成された無階層構造ネットリストであることを第８の特徴とする。かかる特徴構成により、レイアウトデータに基づく実デバイスに近い形態で、ドライバ回路及びそのオン抵抗の抽出や、配線容量やレシーバ回路の負荷容量からなる駆動負荷容量の抽出ができ、高精度の駆動能力検証が可能となる。
【００１７】
更に、本発明方法は、上記何れかの特徴構成に加えて、前記時定数抽出工程で抽出された前記時定数の所定値を超えるものを対応する前記内部信号ノードを特定して表示する表示工程を有することを第９の特徴とする。また、本発明方法は、上記何れかの特徴構成に加えて、前記時定数抽出工程で抽出された前記時定数の大小の順に対応する前記内部信号ノードを特定して表示する表示工程を有することを第１０の特徴とする。かかる特徴構成により、駆動能力不足の内部信号ノードの特定が一層容易となる。
【００１８】
更に、本発明方法は、上記第９または第１０の何れかの特徴構成に加えて、前記内部信号ノード毎に、前記時定数に所定の遅延係数を乗じて、前記駆動経路の駆動遅延時間を算出する遅延時間算出工程を有し、前記表示工程において、表示される前記時定数に対応する前記駆動遅延時間を、前記時定数に加えて、或いは、前記時定数に代えて表示することを特徴とする。かかる特徴構成により、抽出された駆動能力不足の内部信号ノードの駆動能力の不足の程度がより具体的に把握することができる。
【発明を実施するための最良の形態】
【００１９】
本発明に係る半導体集積回路の回路設計検証方法（以下、適宜「本発明方法」という。）の実施の形態につき、図面に基づいて説明する。
【００２０】
通常、ロジック回路では論理シミュレーションやタイミングシミュレーション、ファンアウト等のドライブチェック（駆動能力検証）が行われているが、アナログ回路においても同様の検証を行う必要がある。特に、アナログ回路はシミュレーションに時間がかかるためタイミング検証も回路の隅々まで全てを網羅することは困難である。しかし、全回路上の内部信号ノードに対して、各内部信号ノードに繋がる負荷容量、例えば、トランジスタのゲート、ドレイン、ソース等に寄生する容量等のデバイス容量、及び、内部信号ノードを構成する信号配線に寄生する配線容量等、を全て求めて、その負荷容量を回路動作上満足行くように駆動させるドライバ回路が正当に割り当てられているか否かの検証を、最悪条件下で実行できれば、漏れのない駆動能力検証を実現できる。本発明方法において、かかる漏れのない駆動能力検証をどのように実現するかにつき、以下に説明する。ここで、内部信号ノードの「内部」は半導体集積回路の内部にある信号ノードであることを意味している。従って、本発明方法でのドライバ回路は、外部デバイスを駆動する出力ドライバ等の出力段の駆動能力は本来の検証対象としていない。尚、かかる出力ドライバの駆動能力検証も負荷容量を仮想的に設定することで可能となる。
【００２１】
本発明方法では、駆動能力検証は、可能な限り実デバイスに近い形態でシミュレーションを行うために、レイアウトデータから抽出した第１のネットリストと、全回路を階層的に記述した全回路図を階層展開して無階層化した第２のネットリストを用いて実行する。しかし、レイアウトデータから抽出した第１のネットリストは、全ての信号配線に信号名が付与されているわけではないので、対象となる信号はレイアウトツールにより回路図上の信号名と異なる適当な信号名（ノード名）が割り振られてしまうため、シミュレーションで結果を確認しようとしても、回路図との対応が取れないため、シミュレーション結果の解析が困難となる。回路図データの信号名を用いてシミュレーションを行えば、出力結果の確認も容易になる。
【００２２】
従って、第１のネットリストをレイアウトから抽出し、信号名として回路図データのものを用いるために、レイアウトデータの配線と回路図データの配線の信号名を配線の接続情報を、各配線が電気的に正しく接続しているか照合しながら１対１に対応させてレイアウトデータの配線に回路図データの配線の信号名情報を持たせる。そしてレイアウトデータから第１のネットリストを抽出して、信号名として回路図データの信号名を用いた第１のネットリストを作成する。
【００２３】
更に、信号配線に寄生する容量も同時に抽出するとより実デバイスに近い検証が可能になる。信号配線の寄生容量は、信号配線に対応する内部信号ノードと基板間の容量のみならず、配線間にも寄生しているため、レイアウトデータ及び回路図データの階層を越えて存在する。そのために、ネットリストは元の階層を維持したまま抽出することは好ましくない。従って、ネットリストは階層展開してフラットな状態にする。
【００２４】
駆動能力は、駆動される側の回路（「レシーバ回路」という。）の負荷と、駆動する側の回路（「ドライバ回路」という。）の相対的な関係で表される。ドライバ回路の出力端子とレシーバ回路の入力端子の接続点に内部信号ノードが形成される。１つのドライバ回路が複数のレシーバ回路を駆動する場合もあれば、１つのレシーバ回路が複数のドライバ回路で駆動される場合もあるので、内部信号ノード毎に、レシーバ回路の負荷とドライバ回路の駆動能力の相対関係を調べる。
【００２５】
先ず、レシーバ回路の負荷について説明する。図２に、フラットな状態での各内部信号ノードに接続するレシーバ回路とドライバ回路の一例を示す。図２において、ＤＲ、Ｃ１、ＲＶ、Ｎｄは、夫々ドライバ回路、配線容量、レシーバ回路、内部信号ノードを表している。ドライバ回路ＤＲによって駆動されるレシーバ回路ＲＶの駆動負荷容量Ｃは、下記の数１に示す要領で、内部信号ノードＮｄの配線容量Ｃ１とレシーバ回路ＲＶに寄生する負荷容量Ｃ２の合計として計算される。ここで、レシーバ回路ＲＶの負荷容量Ｃ２は、内部信号ノードＮｄに接続するレシーバ回路ＲＶの入力段のトランジスタのゲート容量Ｃｇとドレイン及びソースの接合容量Ｃｊの合計として計算される。尚、通常、ドライバ回路ＤＲ側にも負荷容量Ｃ２と同種の寄生容量、特に、接合容量Ｃｊが存在するので、これらを負荷容量Ｃ２に追加する。例えば、内部信号ノードＮｄに複数のドライバ回路が接続する場合など、複数のドライバ回路において負荷容量Ｃ２が発生する。
【００２６】
（数１）
Ｃ＝Ｃ１＋Ｃ２＝Ｃ１＋Ｃｇ＋Ｃｊ
【００２７】
尚、駆動負荷容量Ｃの抽出で、絶対値が所定値以下の内部信号ノードは除外する処置、或いは、接合容量ＣｊがＮ型またはＰ型の一方しかない場合は、後のドライバ回路の検索で予め除外する処置などを、追加しても構わない。
【００２８】
次に、ドライバ回路の駆動能力について説明する。レシーバ回路ＲＶを駆動するドライバ回路ＤＲの駆動能力は、内部信号ノードを電源電位に駆動する場合とグランド電位（接地電位）に駆動する場合の両方において、夫々１つまたは複数の駆動経路（内部信号ノードと電源線またはグランド線間の１つの電流経路）との間に存在する抵抗成分を有する回路素子であるトランジスタがオンした時のオン抵抗を当該トランジスタの属性情報（ＭＯＳＦＥＴの場合、チャネル長、チャネル幅等）に基づいて計算し、同じ駆動経路内に複数のトランジスタが存在する場合は、それらのオン抵抗を合計し、その駆動経路の合成オン抵抗として、駆動経路が複数ある場合は、その内の最大のオン抵抗値を有する駆動経路のオン抵抗を、そのドライバ回路のドライブ能力とする。ドライバ回路の駆動能力を求めるために、以下の処理を行う。
【００２９】
先ず、第１または第２のネットリストからドライバ回路を識別して抽出する。ドライバ回路として認識するのはゲートレベルの回路に限定する。ここで、ゲートレベルの検索は、階層構造を維持した回路図データを用いて行う。例えば、最下層の回路セルの同一インスタンスにおいて、特定のノードに例えば２個以上７個以下のトランジスタのドレインまたはソースが接続している場合に、これらのトランジスタの集合体をゲートレベルとして認識する。従って、回路セル内でトランジスタレベルの回路設計が成されていてもゲートレベルの認識が可能となる。つまり、ゲートとしての属性を持たないアナログ回路設計に対応している。ここで、ドライバ回路と認識された回路内の中間的なノードは、以降の検索対象から除外され、検索時間の短縮化が図られている。ここで、インスタンスとは、回路構成要素（回路セル、トランジスタ等の回路素子）が具体的に回路図上に配置されて個性を持った状態のものを言う。よって、同じ、回路構成要素でも、複数あれば、夫々は異なるインスタンスである。
【００３０】
また、第１または第２のネットリストからドライバ回路を識別して抽出する方法として、ドライバ回路をゲートレベルの回路に限定せず、全回路を対象として認識するのも好ましい。全回路を対象とするドライバ回路の検索方法について、具体的に説明する。ネットリストから内部信号ノードを順次読み込み、各内部信号ノードから電源線及びグランド線に至るトランジスタ経路の内、特定のノードからトランジスタのドレイン・ソース間の電流経路のみを通過して直列的に電源線に至るトランジスタ経路を１または複数検索し、同様に、同じノードからトランジスタのドレイン・ソース間の電流経路のみを通過して直列的にグランド線に至るトランジスタ経路を１または複数検索し、検索されたトランジスタ経路に含まれるトランジスタ群からなる回路を、当該内部信号ノードを駆動するドライバ回路と認識する。従って、トランジスタのゲート（ゲート電極）を経由して電源線またはグランド線に至るトランジスタ経路は除外される。ここで、ドライバ回路と認識された回路内の中間的なノードは、以降の検索対象から除外され、検索時間の短縮化が図られている。上述の全回路を対象とするドライバ回路の検索方法によれば、トランジスタの検索を、階層構造を維持した回路図データ、または、階層構造を有しないデータの何れを用いても行える。つまり、ゲートとしての属性を持たないアナログ回路設計に好適である。
【００３１】
次に、抽出されたドライバ回路毎に、各ドライバ回路内の内部信号ノードから電源線またはグランド線までの電流経路を駆動経路として全て抽出し、各駆動経路にオン抵抗を算出する。例えば、図２に例示した２入力ＮＡＮＤゲートのドライブ回路ＤＲの場合、オン抵抗は、下記の数２によって計算される。数２の第１式は、ＮＭＯＳトランジスタＮ１、Ｎ２の直列回路からなる第１の駆動経路のオン抵抗Ｒ１の計算式を、第２式は、ＰＭＯＳトランジスタＰ１から第２の駆動経路のオン抵抗Ｒ２の計算式を、第３式は、ＰＭＯＳトランジスタＰ２から第３の駆動経路のオン抵抗Ｒ３の計算式を、夫々表している。続いて、各駆動経路の中からオン抵抗の最大のものを数３に示す計算式で求め、この最大オン抵抗Ｒｄを抽出されたドライバ回路の駆動能力指標とする。尚、本発明方法では、オン抵抗（具体的には、相対的なオン抵抗）を駆動能力指標としているので、オン抵抗は低い程、駆動能力は相対的に高くなる。
【００３２】
（数２）
Ｒ１＝αＮ×ＬＮ１／ＷＮ１＋αＮ×ＬＮ２／ＷＮ２
Ｒ２＝αＰ×ＬＰ１／ＷＰ１
Ｒ３＝αＰ×ＬＰ２／ＷＰ２
【００３３】
（数３）
Ｒｄ＝ｍａｘ（Ｒ１，Ｒ２，Ｒ３）
【００３４】
数２において、Ｌ，Ｗは各トランジスタのチャネル長及びチャネル幅を表しており、レイアウトデータから抽出された値、或いは、回路図データの設計時のトランジスタ属性値を使用する。αＮ及びαＰは、トランジスタの種類（Ｐ型、Ｎ型の区別）別の抵抗係数を表している。数２の各オン抵抗Ｒ１〜Ｒ３がオン抵抗の絶対値を表している場合は、各抵抗係数αＮ，αＰは、夫々の単位長、単位幅当りのトランジスタのオン抵抗値を表している。駆動経路のオン抵抗を求める際に、同じトランジスタサイズでもトランジスタの種類（Ｐ型、Ｎ型の区別）によってトランジスタのオン抵抗が異なるため、このトランジスタの種類別のオン抵抗の違いを考慮さえすれば、オン抵抗は相対的な値を用いても、一応の評価、例えば、駆動能力不足ノードの候補を抽出することは可能である。本実施形態では、ある種類のトランジスタ（例えば、エンハンスメントタイプのＮＭＯＳトランジスタ）の抵抗係数（αＮ）を１として、他方の種類のトランジスタ（例えば、エンハンスメントタイプのＰＭＯＳトランジスタ）の抵抗係数（αＰ）を、あるトランジスタサイズ（チャネル長Ｌとチャネル幅Ｗ）のＰＭＯＳトランジスタのオン抵抗（絶対値）を同じトランジスタサイズのＮＭＯＳトランジスタのオン抵抗（絶対値）で除して算出し、これらの抵抗係数を用いて相対的なオン抵抗を算出する。尚、ＰＭＯＳトランジスタの抵抗係数（αＰ）算出用の各トランジスタのオン抵抗（絶対値）は回路シミュレーションにより求める。ここで、ＰＭＯＳトランジスタの抵抗係数（αＰ）の算出に用いるトランジスタサイズＬ，Ｗは、図３に示すように、全てのドライバ回路に含まれるＮ型及びＰ型の両トランジスタのチャネル長Ｌ及びチャネル幅Ｗの分布範囲に共通するトランジスタサイズの内の、最小のチャネル長ＬＭＩＮ及び最大のチャネル幅ＷＭＡＸとし、かかるトランジスタサイズのトランジスタのオン抵抗（絶対値）を用いて算出する。例えば、ＮＭＯＳトランジスタの抵抗係数を、αＮ＝１とするのに対して、ＰＭＯＳトランジスタの抵抗係数は、αＰ＝３．４５８２６として与えられる。つまり、同じトランジスタサイズであれば、ＮＭＯＳトランジスタの方が３．４５８２６の駆動能力があることを示している。
【００３５】
例えば、図４に例示するＮＭＯＳトランジスタとＰＭＯＳトランジスタの各インスタンスの場合、トランジスタサイズは、ＬＮ＝０．８（μｍ）、ＷＮ＝２０（μｍ）、及び、ＬＮ＝０．９（μｍ）、ＷＮ＝４０（μｍ）であるので、各トランジスタのインスタンスにおけるオン抵抗ＲＮとＲＰは、下記の数４のようになる。尚、図４の各インスタンスの表記は、インスタンス名、ドレイン端子名、ゲート端子名、ソース端子名、バックゲート端子名、トランジスタ型、チャネル長、チャネル幅、ドレイン面積、ドレイン周囲長、ソース面積、ソース周囲長の順番で属性情報が示されている。
【００３６】
（数４）
ＲＮ＝αＮ×ＬＮ／ＷＮ＝１×０．８／２０＝０．０４
ＲＰ＝αＰ×ＬＰ１／ＷＰ１＝３．４５８２６×０．９／４０＝０．０７７８１７６
【００３７】
次に、駆動能力不足となる箇所（内部信号ノード）を絞り込む方法について説明する。ドライバ回路の駆動経路の最大オン抵抗Ｒｄと駆動負荷容量Ｃの積（時定数）Ｒｄ×Ｃが大きいほどレシーバ回路駆動が阻害される可能性が大きい。上記時定数を始め、最大オン抵抗Ｒｄ、駆動負荷容量Ｃ、配線容量Ｃ１、負荷容量Ｃ２、ゲート容量Ｃｇ、接合容量Ｃｊ、内部信号ノードに接続する回路素子数、トランジスタのゲート面積の合計等の情報を、内部信号ノード別に一覧表示する表形式のファイルを、例えば図５に示すような表形式で、生成する。そして、上記一覧表示を、例えば、時定数の大きい内部信号ノード順にソーティングして表示させることで、回路設計者は回路の設計仕様と比較して、駆動能力を検証できる。
【００３８】
更に、上記時定数から実際の信号遅延時間に換算するための製造プロセスとトランジスタ種別に依存して決まる遅延定数を予めシミュレーションで求めておき、時定数と遅延定数との積を求めることで具体的な信号遅延時間を表すことができる。これにより、駆動能力の検証がより簡易化される。
【００３９】
また、ドライバ回路が認識されなかった内部ノードについては、駆動負荷容量Ｃ、配線容量Ｃ１、負荷容量Ｃ２、ゲート容量Ｃｇ、接合容量Ｃｊの内、存在する情報のみを別ファイルに格納し、駆動負荷容量Ｃの大きい順に一覧表示することで、回路設計者は回路の設計仕様と比較して、当該内部ノードについても検証が可能となる。
【００４０】
以下、本発明方法の処理手順を図１に示すフローチャートを参照して説明する。
【００４１】
〈ステップ１〉
レイアウトデータから第１のネットリストを抽出し、全回路図データから第２のネットリストを抽出する。第１のネットリストの抽出では、トランジスタや抵抗等の回路素子とそれらの接続関係が抽出されるとともに、トランジスタ等の回路素子の属性情報も抽出される。この時点では、第１のネットリストのノード名は抽出時に自動的に付与された状態である。また、第２のネットリストの抽出では、元の回路図データの階層構造を展開処理してフラットな無階層状態としている。この結果、第２のネットリストの中から特定のノードを絞り込むことが容易にでき、解析も容易になる。また、第１のネットリストも階層を展開した状態で抽出されているため、次のステップ２での第１及び第２ネットリスト間でのノードの対応付けが可能となる。
【００４２】
〈ステップ２〉
次に、第１及び第２ネットリスト間の照合を行い、レイアウトデータ上の電気的接続関係が、回路図データ通りになっているかの検証を行う（レイアウト照合工程に相当）。この照合と同時にノード名の対応関係を取る。その対応関係を基に、第１のネットリストのノード名を、可能な限り回路図データ側のノード名に置き換える。ここで、第１のネットリスト上に寄生抵抗や寄生ダイオードが抽出された結果、ノードの対応関係に齟齬が発生した場合には、これらの寄生抵抗や寄生ダイオードは、下記のステップ３及び４に於ける容量計算では無視して、寄生抵抗の両端のノードは同一ノードとして扱う。
【００４３】
〈ステップ３〉
第１のネットリストの各ノードに寄生する配線容量Ｃ１を、レイアウトデータから抽出し、第１のネットリストの各ノードに付与する（負荷容量抽出工程の第２負荷容量抽出工程に相当）。ここでは、対基板容量のみならず、配線間容量も抽出する。この結果、駆動負荷容量の抽出が簡易化される。
【００４４】
〈ステップ４〉
次に、各ノードに接続するトランジスタの負荷容量Ｃ２を網羅的に抽出する（負荷容量抽出工程の第１負荷容量抽出工程に相当）。負荷容量Ｃ２としては、各ノードに接続するトランジスタのゲートのゲート容量Ｃｇとドレイン及びソースの接合容量Ｃｊが各別に算出される。ここで、ゲート容量Ｃｇ及び接合容量Ｃｊの算出には、第１のネットリスト抽出時に取得したトランジスタサイズ等の属性情報を用いる。この結果、より実デバイスに近い状態での負荷容量の算出が可能となる。各ノードに付き、ステップ３で抽出した配線容量Ｃ１とステップ４で抽出した負荷容量Ｃ２を合計して駆動負荷容量Ｃを抽出する（負荷容量抽出工程に相当）。通常は、各ノードに接続するトランジスタ、特にゲートが接続するトランジスタの一部が、ドライバ回路で駆動されるレシーバ回路の入力段の一部を構成する。尚、１つのノードについて、ステップ４を実行すると、次のステップ５〜７に移行する。
【００４５】
〈ステップ５〉
次に、ドライバ回路の抽出を行う。第２のネットリストを階層展開したときに作成する階層展開の履歴が記述されたノード名（ノード名に元の階層構造が記載されている）を参照して、そのノードに接続する一塊の同じ階層レベルの回路素子（トランジスタ、抵抗、ダイオード等）を全て抽出する。そして、同じ階層レベルの一塊の回路素子を調べてドライブ構造になっているかを調べる。ドライブ構造の一例としては、製造プロセスとしてＣＭＯＳプロセスを想定した場合に、抽出された回路素子に、少なくとも１つのＰＭＯＳトランジスタとＮＭＯＳトランジスタが含まれ、それらのドレインまたはソースが当該ノードに接続されている場合にドライバ構造を形成していると判断する。
【００４６】
〈ステップ６〉
処理対象のノードがドライバ回路に接続していると判断された場合は、当該ノードを内部信号ノードとして登録し、ドライバ回路内のノードは、内部信号ノードから除外して、後のステップ５の対象から予め除外して処理時間の短縮を図る。そして、内部信号ノードとして登録された場合、抽出されたドライバ回路の駆動経路を抽出する。駆動経路は、各ドライバ回路内の内部信号ノードから電源線またはグランド線までの電流経路が１つずつ割り当てられる。そして、抽出された各駆動経路に対して、数２に示す計算式と同様の計算式を作成して、相対的なオン抵抗を求める。尚、スッテプ５及び６はオン抵抗抽出工程に相当する。
【００４７】
〈ステップ７〉
次に、抽出された駆動経路の全てに付き、その中で一番オン抵抗の大きい駆動経路を抽出する。その駆動経路のオン抵抗を最大オン抵抗（Ｒｄ）と称し、当該内部信号ノードの駆動能力指標と定義する。
【００４８】
尚、ステップ５でドライバ回路が抽出されなかった場合は、当該ノードは内部信号ノードとして登録されず、ステップ６及びステップ７は実行されないが、当該ノード名とステップ４で抽出された各容量を後の解析に利用し易いように保存しておく。ステップ４〜７は、ノード毎に連続して、全ノードに対して繰り返し実行される。全てのノードについて、ステップ４〜７を繰り返し実行し、全ての内部信号ノードと、対応する駆動負荷容量Ｃと最大オン抵抗Ｒｄの抽出が終了すると、ステップ８に移行する。
【００４９】
〈ステップ８〉
次に、各内部信号ノードに対して、駆動負荷容量Ｃと最大オン抵抗Ｒｄの積で定義される時定数を算出する（時定数抽出工程に相当）。ここで、ドライバ回路の駆動経路におけるオン抵抗が高く、駆動負荷容量が大きいほど、レシーバ回路の駆動において不利な条件となるので、最大オン抵抗Ｒｄを使用した時定数を用いることで、内部信号ノード毎にワーストケースの検証ができる。
【００５０】
算出された時定数は、最大オン抵抗Ｒｄ、駆動負荷容量Ｃ、配線容量Ｃ１、負荷容量Ｃ２、ゲート容量Ｃｇ、接合容量Ｃｊ、内部信号ノードに接続する回路素子数、トランジスタのゲート面積の合計等の情報とともに、所定の表形式のファイルに登録される。また、登録された時定数は、例えば、時定数の大きい内部信号ノード順にソーティングして一覧表示させることで（表示工程に相当）、回路設計者は回路の設計仕様と比較して、駆動能力を検証できる。また、当該一覧表示において、所定の閾値を超える時定数の内部信号ノードだけを選択的に表示させるのも好ましい。
【００５１】
〈ステップ９〉
次に、内部信号ノード毎に、時定数に上述の遅延定数をかけて遅延時間を算出して、この遅延時間を用いて駆動能力不足のドライバ回路の発見及び解析を行う（遅延時間算出工程に相当）。遅延時間についても、時定数の大きい内部信号ノード順にソーティングして一覧表示させることで、回路設計者は回路の設計仕様と比較して、駆動能力を検証できる。
【００５２】
以上、本発明方法によって、回路規模が大きくても、レイアウトデータ或いは回路図データから抽出したネットリストを用いて短時間で駆動能力不足個所を絞り込むことができる。そのため、今まで困難或いは不可能であった設計の最終段階のレイアウト後の静的ドライブチェックが可能となる。
【００５３】
以下、別実施形態について説明する。
【００５４】
〈１〉上記実施形態では、レイアウトデータから抽出した第１のネットリストと、全回路を階層的に記述した全回路図を階層展開して無階層化した第２のネットリストを用いたが、ネットリストは、第１または第２の何れか一方のネットリストだけを使用しても構わない。例えば、レイアウトデータから抽出した第１のネットリストを使用する場合に、ドライバ回路の抽出時に、第２のネットリストを階層展開したときに作成する階層展開の履歴が記述されたノード名を参照せずに、上記実施形態と同様のドライブ構造判定方法及び基準を使用すればよい。
【００５５】
また、レイアウトデータが完成していない設計途中段階でも、全回路図を階層展開した第２のネットリストを用いて、本発明方法を実施しても構わない。この場合、信号配線やトランジスタの属性情報は、仮想的に入力された属性情報や他の属性情報から導出される標準的な値を用いるようにしても構わない。
【００５６】
〈２〉上記実施形態では、図１に示すフローチャートにおいて、ステップ３で全ノードについて配線容量Ｃ１を抽出した後に、ノード毎に、ステップ４で負荷容量Ｃ２と駆動負荷容量Ｃを抽出し、ステップ５でドライバ回路の抽出を行い、内部信号ノードの特定を行い、ステップ６，７でオン抵抗及び最大オン抵抗を順次抽出する処理手順であったが、これに代えて、先にドライバ回路の抽出を行い内部信号ノードを特定してから、内部信号ノードに対して、配線容量Ｃ１、負荷容量Ｃ２、駆動負荷容量Ｃを抽出するようにしても構わない。各工程の実行順序は本発明方法の技術的思想の範囲内で適宜変更可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明に係る半導体集積回路の回路設計検証方法の一実施の形態における処理手順を示すフローチャート。
【図２】本発明に係る半導体集積回路の回路設計検証方法の一実施の形態における内部信号ノードに接続するレシーバ回路とドライバ回路の一例を示す回路図。（Ａ）はゲート表記の回路図、（Ｂ）はトランジスタ表記の回路図。
【図３】本発明に係る半導体集積回路の回路設計検証方法の一実施の形態における抵抗係数の求め方を説明する図。
【図４】本発明に係る半導体集積回路の回路設計検証方法の一実施の形態におけるトランジスタの属性情報の一例を示す図。
【図５】本発明に係る半導体集積回路の回路設計検証方法の一実施の形態における検証結果の表示例を示す図。
【図６】従来のロジック回路の回路検証フローを示すフローチャート。
【符号の説明】
【００５８】
Ｃ：    駆動負荷容量
Ｃ１：  配線容量
Ｃ２：  負荷容量
ＤＲ：  ドライバ回路
ＲＶ：  レシーバ回路
Ｎｄ：  内部信号ノード
Ｎ１，Ｎ２：  ＮＭＯＳトランジスタ
Ｐ１，Ｐ２：  ＰＭＯＳトランジスタ
Ｒ１〜Ｒ３：  オン抵抗
Ｒｄ：  最大オン抵抗
【図１】
2005115925.tif 000003
【図２】
2005115925.tif 000004
【図３】
2005115925.tif 000005
【図４】
2005115925.tif 000006
【図５】
2005115925.tif 000007
【図６】
2005115925.tif 000008