(57)【要約】【課題】回路設計の際に集積回路の性能を評価するために用いる回路シミュレーションにおいて、回路性能の見積もり精度を落とすことなく、統計的な回路シミュレーションを高速に行う回路シミュレーション方法を実現できるようにする。【解決手段】回路シミュレーション方法は、回路素子のばらつき情報及び乱数を回路モデルに対して適用して、モンテカルロ法により前記集積回路の動作に関する概略シミュレーションを実行する。概略シミュレーションの結果のうち、回路シミュレーションを行うデータ点を含む連続したデータ範囲の計算に用いた乱数を抽出し、集積回路の回路情報に対して抽出した乱数を適用して、詳細シミュレーションを行う。【選択図】図４
2008134826.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路素子を含む集積回路の動作を回路シミュレータを用いてシミュレートする回路シミュレーション方法であって、
前記複数の回路素子のばらつき情報を前記集積回路の回路性能を評価するための回路モデルに対して適用して、乱数を用いたモンテカルロ法により前記集積回路の動作に関する概略シミュレーションを実行する工程（ａ）と、
前記概略シミュレーションに用いた乱数のうち、前記集積回路の動作に関するシミュレーションを行うのに必要なデータ点を含む、連続したデータ範囲の計算に用いた乱数を抽出する工程（ｂ）と、
前記集積回路の回路情報に対して前記抽出した乱数を適用して、前記集積回路の動作に関する詳細シミュレーションを行う工程（ｃ）とを備えていることを特徴とする回路シミュレーション方法。
【請求項２】
前記回路素子のばらつき情報は、トランジスタのばらつき情報及び配線のばらつき情報を含み、
前記工程（ａ）において、前記トランジスタのばらつき情報と、前記配線のばらつき情報とを選択的に適用することを特徴とする請求項１に記載の回路シミュレーション方法。
【請求項３】
前記回路性能は、遅延時間又は消費電力であることを特徴とする請求項１又は２に記載の回路シミュレーション方法。
【請求項４】
前記回路モデルは、前記回路素子を変数化して表現したモデル式であることを特徴とする請求項１から３のいずれか１項に記載の回路シミュレーション方法。
【請求項５】
前記回路モデルは、１つのセルから構成されるネットリストであることを特徴とする請求項１から３のいずれか１項に記載の回路シミュレーション方法。
【請求項６】
前記回路モデルは、複数のインバータ回路を直列接続したチェインのネットリストであることを特徴とする請求項１から３のいずれか１項に記載の回路シミュレーション方法。
【請求項７】
前記回路モデルは、互いに異なる複数のセルを含むチェインのネットリストであることを特徴とする請求項１から３のいずれか１項に記載の回路シミュレーション方法。
【請求項８】
前記工程（ｂ）において、前記データ点は前記概略シミュレーションの結果の最大値又は最小値であることを特徴とする請求項１から７のいずれか１項に記載の回路シミュレーション方法。
【請求項９】
前記工程（ａ）において、前記概略シミュレーションに用いる乱数は、正規乱数であることを特徴とする請求項１から８のいずれか１項に記載の回路シミュレーション方法。
【請求項１０】
前記工程（ａ）において、前記概略シミュレーションに用いる乱数は、一様乱数であることを特徴とする請求項１から８のいずれか１項に記載の回路シミュレーション方法。
【請求項１１】
前記詳細シミュレーションの結果を昇順又は降順に並べ替えて整理し、前記データ点に対応する値を算出する工程（ｄ）をさらに備えていることを特徴とする請求項１から１０のいずれか１項に記載の回路シミュレーション方法。
【請求項１２】
複数の回路素子を含む集積回路の動作をシミュレーションする回路シミュレーション装置であって、
前記集積回路の回路情報、前記集積回路の回路性能を評価するための回路モデル及び前記回路素子のばらつき情報が記憶された記憶部と、
乱数を発生させる乱数発生部と、
前記回路モデルに対して前記ばらつき情報を適用して、乱数を用いたモンテカルロ法により前記集積回路の動作に関する概略のシミュレーションを行う概略シミュレーション実行部と、
前記概略シミュレーションに用いた乱数のうち、前記集積回路の動作に関するシミュレーションを行うのに必要なデータ点を含む、連続したデータ範囲の計算に用いた乱数を抽出する乱数抽出部と、
前記回路情報に対して前記乱数抽出部において抽出した乱数を適用して前記集積回路の動作に関する詳細シミュレーションを行う詳細シミュレーション実行部とを備えていることを特徴とする回路シミュレーション装置。
【請求項１３】
前記詳細シミュレーションの結果を昇順又は降順に並べ替える結果整理部をさらに備えていることを特徴とする請求項１２に記載の回路シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のシミュレーション方法及びシミュレーション装置に関し、特に回路素子の変動を統計的に考慮した回路シミュレーション方法及び回路シミュレーション装置に関する。
【背景技術】
【０００２】
集積回路の性能の向上を目的とした微細化の進展により、集積回路のさまざまな特性に生じるばらつきが顕在化している。ばらつきの要因には、製造ばらつき及び環境変化によるばらつき等がある。
【０００３】
製造ばらつきは、ウェハ上に集積回路を作りこむ前工程において、トランジスタの電気的特性がばらつくことによって生じる。また、前工程において作られた集積回路のチップを各種パッケージに封入し、検査を行う後工程においてもばらつきが生じる。
【０００４】
集積回路の製造工程においては、製造条件にゆらぎが発生し、このゆらぎが回路素子の形状や物理的な条件に影響を与えるため、集積回路の特性がばらつくことを避けることはできない。従って、トランジスタのゲート長、ゲート幅及び酸化膜厚等の物理量のばらつきを、製造工程において完全に制御することはできない。また、集積回路の微細化の進展により半導体素子の物理的寸法が小さくなるのに比例して、ばらつきの度合いは増加する。さらに、金属層及び層間絶縁膜の厚さのばらつきは、配線に影響を及ぼすため、配線における遅延をばらつかせる原因となる。その結果、ゲート遅延をもばらつかせることになる。
【０００５】
環境変化によるばらつきは、温度及び電源電圧等の環境要因によって生じる。このような環境変化によるばらつきも必ず生じるものであり、避けることができない。
【０００６】
このようなさまざまなばらつきは、回路の遅延時間及び消費電力等の性能に影響を与える。そこで、回路シミュレーションは、製造ばらつき及び環境変化によるばらつきの影響を受けた回路に対して行う必要がある。集積回路を製造するとき、許容範囲内のばらつきが生じたとしても回路の正常動作を保証する設計を行うためである。回路シミュレーションは、回路の動作をコンピュータ上でソフトウェアを用いて仮想的に再現する技術であり、回路設計時に、回路の最適化、動作確認などの目的で幅広く用いられている。
【０００７】
回路シミュレーションのためのソフトウェアにはさまざまな種類があるが、それらの中でも代表的な回路シミュレーションソフトウェアとして、Synopsys社のHSPICE（登録商標）が知られている。これらのソフトウエアを用いて、ばらつきの影響を考慮した回路性能の検証を行う場合には、回路の動作がワーストケースになる場合について回路シミュレーションを実行し、回路性能を決定することが従来行われている。これは、独立したばらつき要因のいくつかを最悪条件に設定するため、回路性能を実際よりもはるかに悲観的に見積もってしまうこととなる。
【０００８】
回路性能の悲観的な見積もりを回避するためには、製造ばらつきを統計的に考慮して回路シミュレーションを行う必要がある。製造ばらつきを統計的に考慮して回路シミュレーションを行う方法として、タイミングを統計的に解析する統計的静的タイミング解析（ＳＳＴＡ）法がある（例えば、特許文献１及び特許文献２を参照。）。ＳＳＴＡ法においては、遅延、到達時間及びスラック（Ｓｌａｃｋ）等のタイミング量を、定数ではなく確率分布として扱う。このため、ばらつきの影響を受ける回路性能の完全な確率分布を、タイミング解析によって予測することができる。
【０００９】
しかし、ＳＳＴＡ法においては、ばらつき要因をすべて正確に考慮しなければ、得られる結果は意味をなさないものとなる。ばらつき要因をすべて正確に考慮するためには、タイミング解析の複雑度が指数関数的に増加するため、統計的なタイミング解析には膨大な時間がかかる。
【００１０】
ＳＳＴＡ法以外の製造ばらつきを統計的に考慮して行う回路シミュレーション方法として、モンテカルロ法が知られている。モンテカルロ法は、入力する変数に対して特定の確率分布に従って発生させた乱数を用い、その乱数を用いたシミュレーションを何度も行うことにより近似解を求める計算法である。このため、解析的に解くことができない場合でも、近似的に解を求めることができるが、シミュレーション回数が少なければ近似解は荒く、良い近似解を得るためには、シミュレーション回数を増やす必要がある。
【特許文献１】米国特許出願公開２００４／０２４３９５４号明細書
【特許文献２】米国特許出願公開２００５／００６６２９８号明細書
【特許文献３】特開２００３−６２６３号公報
【非特許文献１】T. Sakurai, 他., "IEEE, JSC", 1990年, 25巻, 2号, p.584-594
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、集積回路の微細化により解析の対象となるパスの数が指数関数的に増加するため、前記従来のモンテカルロ法を用いた回路シミュレーションにおいては膨大な数のパスについて解析を行わなければならない。このため、１回のシミュレーションに膨大な時間が必要となる。モンテカルロシミュレーションにおいて精度を上げるためには、一定のレベル以上のシミュレーション回数を確保しなければならないため、シミュレーション時間はさらに膨大なものとなるという問題がある。
【００１２】
モンテカルロシミュレーションにかかる時間を短くする方法としては、例えば、特許文献３に記載されている方法がある。しかし、特許文献３に記載されている方法は、シミュレーションにかかる時間を短くすることができるが、特定のばらつき分布の場合においてシミュレーション回数を削減するための手法にすぎない。
【００１３】
本発明は、前記従来の問題を解決し、回路設計の際に集積回路の性能を評価するために用いる回路シミュレーションにおいて、回路性能の見積もり精度を落とすことなく、統計的な回路シミュレーションを高速に行う回路シミュレーション方法を実現できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
前記の目的を達成するため、本発明は回路シミュレーション方法を、回路モデルに対して概略のモンテカルロシミュレーションを実行し、概略のシミュレーションに用いた乱数のうちから必要な乱数を抽出して、抽出した乱数を用いて詳細な回路シミュレーションを実行する構成とする。
【００１５】
具体的に、本発明に係る回路シミュレーション方法は、複数の回路素子を含む集積回路の動作を回路シミュレータを用いてシミュレートする回路シミュレーション方法を対象とし、複数の回路素子のばらつき情報を集積回路の回路性能を評価するための回路モデルに対して適用して、乱数を用いたモンテカルロ法により集積回路の動作に関する概略シミュレーションを実行する工程（ａ）と、概略シミュレーションに用いた乱数のうち、集積回路の動作に関するシミュレーションを行うのに必要なデータ点を含む、連続したデータ範囲の計算に用いた乱数を抽出する工程（ｂ）と、集積回路の回路情報に対して抽出した乱数を適用して、集積回路の動作に関する詳細シミュレーションを行う工程（ｃ）とを備えていることを特徴とする。
【００１６】
本発明の回路シミュレーション方法によれば、回路モデルに対して、モンテカルロ法により集積回路の動作に関する概略シミュレーションを実行するため、極めて高速に概略のモンテカルロシミュレーションを行うことができる。また、集積回路の回路情報に対して抽出した乱数を適用して、集積回路の動作に関する詳細シミュレーションを行うため、集積回路の性能を評価するために必要なデータ点については、正確なシミュレーション結果が得られる。従って、回路性能の見積もり精度を落とすことなく、統計的な回路シミュレーションを高速に行うことが可能となる。その結果、回路設計の効率を向上させることができる。
【００１７】
本発明の回路シミュレーション方法において、回路素子のばらつき情報は、トランジスタのばらつき情報及び配線のばらつき情報を含み、工程（ａ）において、トランジスタのばらつき情報と、配線のばらつき情報とを選択的に適用することが好ましい。
【００１８】
本発明の回路シミュレーション方法において回路性能は、遅延時間又は消費電力であることが好ましい。
【００１９】
本発明の回路シミュレーション方法において回路モデルは、回路素子を変数化して表現したモデル式であることが好ましい。
【００２０】
本発明の回路シミュレーション方法において回路モデルは、１つのセルから構成されるネットリストであることが好ましい。このような構成とすることにより、実際の設計に用いられるセルに対してモンテカルロシミュレーションを行うため、回路素子のばらつきがセルに与える影響を正確に反映した回路シミュレーションが可能となる。
【００２１】
本発明の回路シミュレーション方法において回路モデルは、複数のインバータ回路を直列接続したチェインのネットリストであることが好ましい。このような構成とすることにより、ゲート段数による回路素子のばらつきの平均化効果を反映した回路シミュレーションが可能となる。
【００２２】
本発明の回路シミュレーション方法において回路モデルは、互いに異なる複数のセルを含むチェインのネットリストであることが好ましい。このような構成とすることにより、セルサイズによるばらつきの影響の差異及びセル内の回路素子のばらつきの平均化効果を反映した回路シミュレーションが可能となる。
【００２３】
本発明の回路シミュレーション方法では工程（ｂ）において、データ点は概略シミュレーションの結果の最大値又は最小値であることが好ましい。
【００２４】
本発明の回路シミュレーション方法では工程（ａ）において、概略シミュレーションに用いる乱数は、正規乱数であっても、一様乱数であってもよい。
【００２５】
本発明に係る回路シミュレーション方法は、集積回路の動作をシミュレーションした結果を昇順又は降順に並べ替えて整理し、データ点に対応する値を算出する工程（ｄ）をさらに備えていることが好ましい。このような構成とすることにより、回路モデルの近似度が低い場合にも、高精度の回路シミュレーション結果が得られる。従って、さらにシミュレーションを高速化できる。
【００２６】
本発明に係る回路シミュレーション装置は、複数の回路素子を含む集積回路の動作をシミュレーションする回路シミュレーション装置を対象とし、集積回路の回路情報、集積回路の回路性能を評価するための回路モデル及び回路素子のばらつき情報が記憶された記憶部と、乱数を発生させる乱数発生部と、回路モデルに対してばらつき情報を適用して乱数を用いたモンテカルロ法により集積回路の動作に関する概略のシミュレーションを行う概略シミュレーション実行部と、概略シミュレーションに用いた乱数のうち、集積回路の動作に関するシミュレーションを行うのに必要なデータ点を含む、連続したデータ範囲の計算に用いた乱数を抽出する乱数抽出部と、回路情報に対して乱数抽出部において抽出した乱数を適用して集積回路の動作に関する詳細シミュレーションを行う詳細シミュレーション実行部とを備えていることを特徴とする。
【００２７】
本発明の回路シミュレーション装置によれば、回路モデルに対してばらつき情報を適用してモンテカルロ法により集積回路の動作に関する概略のシミュレーションを行う概略シミュレーション実行部と、概略シミュレーションに用いた乱数のうち、集積回路の動作に関するシミュレーションを行うデータ点を含む連続したデータ範囲の計算に用いた乱数を抽出する乱数抽出部と、回路情報に対して乱数抽出部において抽出した乱数を適用して集積回路の動作に関する詳細シミュレーションを行う詳細シミュレーション実行部とを備えているため、集積回路に対してモンテカルロシミュレーションを行う場合よりもはるかに早くシミュレーションを行うことができるだけでなく、シミュレーションの精度も同等か又はそれ以上とすることができる。従って、回路性能の見積もり精度を落とすことなく、統計的な回路シミュレーションを高速に行うことが可能となる。その結果、回路設計の効率を向上させることができる。
【００２８】
本発明に係る回路シミュレーション装置は、詳細シミュレーションの結果を昇順又は降順に並べ替える結果整理部をさらに備えていることが好ましい。
【発明の効果】
【００２９】
本発明の回路シミュレーション方法及び回路シミュレーション装置によれば、回路設計の際に集積回路の性能を評価するために用いる回路シミュレーションにおいて、回路性能の見積もり精度を落とすことなく、統計的な回路シミュレーションを高速に行う回路シミュレーション方法及び回路シミュレーション装置を実現できる。
【発明を実施するための最良の形態】
【００３０】
（一実施形態）
本発明の一実施形態について図面を参照しながら説明する。まず、本実施形態の回路シミュレーション方法の原理について説明する。なお、本実施形態においては、ＣＭＩＳ（complementary metal insulator semiconductor）トランジスタに分類されるＣＭＯＳ（complementary metal oxide semiconductor）トランジスタから構成される回路のシミュレーション装置及び方法について説明する。以後、トランジスタと言う場合、ＣＭＯＳトランジスタを示すものとする。
【００３１】
本実施形態の回路シミュレーション方法は、まず、解析対象である集積回路の回路性能を近似的に表す回路モデルについてモンテカルロ法によりシミュレーションを行う。次に、回路モデルについて行ったモンテカルロシミュレーションに用いた乱数のうち、正確なシミュレーションを行う必要があるデータ点を含むデータ範囲の計算に用いた乱数を抽出する。次に、抽出した乱数を用いて、解析対象である集積回路について部分的なモンテカルロシミュレーションを行う。
【００３２】
本実施形態に回路シミュレーション方法は、簡略化された回路モデルについてモンテカルロシミュレーションを行い、精度が必要な部分についてのみ、集積回路について部分的なモンテカルロシミュレーションを行うため、回路シミュレーション時間を大幅に短縮することができる。
【００３３】
次に、本実施形態の回路シミュレーション装置について説明する。図１は一実施形態に係る集積回路のシミュレーション装置の概略を示している。シミュレーション装置は、記憶部２１に記憶された情報と、入力部２２から入力された情報と、計算部２３において発生させた乱数とを用いて、処理部２４において回路シミュレーションを行い、出力部２５により回路シミュレーションの結果を出力する。
【００３４】
記憶部２１は、解析対象回路の回路情報を記憶する回路情報記憶部２１Ａと、解析対象回路に含まれる回路素子のばらつきに関する情報を記憶するばらつき情報記憶部２１Ｂと、解析対象回路の回路性能を評価するための回路モデルを記憶する回路モデル記憶部２１Ｃとを有している。
【００３５】
回路情報記憶部２１Ａに記憶する解析対象回路の回路情報とは、解析対称の集積回路の回路構成を示す情報であり、回路シミュレーションの実行に適したネットリスト等の形式で準備すればよい。また、回路図又はレイアウトの形式であってもよい。
【００３６】
ばらつき情報記憶部２１Ｂに記憶する回路素子のばらつき情報は、図２に一例を示すように、回路性能に直接影響のある変数と、変数のばらつき幅とによって表現される。本実施形態においては、回路性能を遅延時間又は消費電力としており、回路性能に直接影響のある変数には、トランジスタのゲート長、ゲート幅、酸化膜厚、抵抗、容量及びインダクタンス等の値が含まれる。
【００３７】
変数のばらつき幅は、変数の最大値又は最小値と変数の中心値との差の絶対値により表現する。平均値がμで、標準偏差がσの正規分布を変数がとる場合、変数の最大値又は最小値として、それぞれ（μ＋３σ）及び（μ−３σ）を用い、変数の中心値として、μを用いてもよい。
【００３８】
回路モデル記憶部２１Ｃに記憶する回路モデルは、解析対象となる集積回路の回路性能を近似的に評価することができるモデルである。例えば、遅延時間を容量値と電流値とにより表した式等とすればよい。
【００３９】
入力部２２は、処理部２４において行う概略シミュレーションの実行回数と、概略シミュレーションの実行結果のうち詳細シミュレーションを行うデータ範囲を入力するデータ範囲とを外部から入力する機能を有している。
【００４０】
概略シミュレーションの実行回数は、いかなる回数に設定してもよいが、計算精度の観点からは、１００００回以上に設定することが好ましい。
【００４１】
データ範囲は、概略シミュレーションの実行後に概略シミュレーションに用いた乱数を抽出する範囲である。データ範囲は、いかなる範囲に設定してもよいが、解析対象となる集積回路の性能を評価するために必要なデータ点を含む連続した範囲であることが条件であり、計算精度と計算速度の観点からは、概略シミュレーションの実行結果の最大値と最小値との差の５％以内に設定することが好ましい。
【００４２】
計算部２３は、図３に一例を示すような処理部２４において行う概略シミュレーションにおいて用いる乱数を発生させる機能を有している。
【００４３】
処理部２４は、概略シミュレーション実行部２４Ａと、乱数抽出部２４Ｂと、詳細シミュレーション実行部２４Ｃと、シミュレーション結果整理部とを有している。概略シミュレーション実行部２４Ａは、解析対象の集積回路の回路性能に関する概略のシミュレーションを行う。具体的には、ばらつき情報記憶部２１Ｂに記憶された回路素子のばらつき情報及び計算部２３において発生した乱数を、回路モデル記憶部２１Ｃに記憶された回路モデルに適用してモンテカルロシミュレーションを行う。モンテカルロシミュレーションは、入力部２２から入力された概略シミュレーション実行回数と一致するまで繰り返される。これにより、回路モデルについての回路性能のばらつきを示す、概略シミュレーションデータが得られる。回路モデルは解析対象の集積回路を近似的に表すため、概略シミュレーションデータは、解析対象の集積回路の回路性能のばらつきを近似的に表している。
【００４４】
乱数抽出部２４Ｂは、概略シミュレーション実行部２４Ａにおいて計算に用いた乱数のうち、入力部２２から入力されたデータ範囲と一致する概略シミュレーションデータの計算に用いられた乱数を抽出する。
【００４５】
詳細シミュレーション実行部２４Ｃは、乱数抽出部２４Ｂにおいて抽出された乱数を回路情報記憶部２１Ａに記憶した回路情報に適用して、解析対象となる集積回路についてのシミュレーションを行う。このシミュレーションは、解析対象となる集積回路について、部分的なモンテカルロシミュレーションを実行することと等しい。従って、これにより解析対象の集積回路の回路性能のばらつきを表すシミュレーションデータが得られる。
【００４６】
シミュレーション結果整理部２４Ｄは、詳細シミュレーション実行部２４Ｃにおいて行った詳細シミュレーションの結果を、降順又は昇順に並べ直し、シミュレーション結果の評価を容易にする。シミュレーション結果の評価が容易な場合にはシミュレーション結果整理部２４Ｄはなくてもよい。
【００４７】
出力部２５は、最終的に得られた、シミュレーション結果を出力する。出力部２５は、必要に応じて適当なものを設ければよい。
【００４８】
以下に、一実施形態に係る集積回路の回路シミュレーション方法について説明する。図４は第１の実施形態に係る集積回路の回路シミュレーション方法をフローチャートとして示している。
【００４９】
本実施形態の回路シミュレーション方法は図４に示すように、まず、解析対称となる集積回路の情報、回路素子のばらつき情報、回路モデル、モンテカルロシミュレーションの実行回数、モンテカルロシミュレーションに用いる乱数及びデータ範囲等の基本データの準備及び設定を行う。
【００５０】
次に、回路モデルに回路素子のばらつき情報を適用して、乱数を用いてモンテカルロシミュレーションを行う。モンテカルロシミュレーションは、あらかじめ入力した概略シミュレーション実行回数に達するまで繰り返し行う。
【００５１】
これにより、図５に一例を示すような回路性能のばらつきを示すシミュレーションデータが得られる。図５において縦軸は頻度を示し、横軸は回路性能である遅延時間を示している。回路モデルは、解析対処となる集積回路を近似的に表しているため、概略シミュレーションの結果は、解析対称となる集積回路の回路性能を近似的に表している。
【００５２】
本実施形態の回路シミュレーション方法においても、モンテカルロシミュレーションは、回路シミュレータの通常の演算ユニット（ＣＰＵ）を用いて行うが、集積回路の回路性能を近似的に評価するための回路モデルに対してモンテカルロシミュレーションを行うため、シミュレーションの実行時間は短時間で済む。
【００５３】
次に、概略シミュレーションに用いた乱数のうち、必要なデータ点を含む連続したデータ範囲を計算するのに用いた乱数を抽出する。必要なデータ点は、集積回路の性能を評価する上で、正確なシミュレーションが必要となるポイントを設定する。一般に、正確なシミュレーションが必要とされる領域は、データの最大値又は最小値付近である。従って、必要なデータ点は、最大値又は最小値付近に設定することが好ましい。データ範囲は、いかなる範囲に設定してもよいが、解析対象となる集積回路の性能を評価するために必要なデータ点を含む連続した範囲であることが必要である。計算精度と計算速度の観点からは、概略シミュレーションの実行結果の最大値又は最小値からの差が５％以内となるように設定することが好ましい。
【００５４】
概略シミュレーションに用いる乱数として正規乱数又は一様乱数を用いた場合には、シミュレーション結果のヒストグラムは図６に一例を示すように正規分布に近くなる。この場合、シミュレーションデータを平均値がμで標準偏差がσの正規分布であるとみなすと、（μ＋３σ）と（μ−３σ）の外側にあるデータは、全体の０．３％未満となる。このため、必要なデータ点を（μ＋３σ）又は（μ−３σ）に設定し、（μ＋３σ）又は（μ−３σ）を含む連続した範囲を抽出範囲として指定すれば、通常は、回路性能の悲観的見積もりを回避しつつ製造ばらつきを統計的に考慮した回路シミュレーションが可能となる。
【００５５】
次に、解析対象となる集積回路の回路情報に対して、乱数抽出部おいて抽出した乱数を適用して集積回路の動作について詳細シミュレーションを実行する。これにより、必要なデータ点についての詳細なシミュレーションデータが得られる。
【００５６】
詳細シミュレーションは、正確なシミュレーションが必要な範囲についてのみ、モンテカルロシミュレーションを部分的に行っていると考えることができる。このため、詳細シミュレーションを実行するためのソフトウェアには、Synopsys社のHSPICE（登録商標）や、Cadence社のSpectre（登録商標）のような市販の回路シミュレーションツールを用いることが可能である。
【００５７】
次に、詳細シミュレーション結果を、評価しやすいように整理する。概略シミュレーションを行う回路モデルの精度が高ければ、詳細シミュレーション実行部により得られる回路シミュレーション結果を、そのまま集積回路の性能を表すデータとして用いることができる。しかし、モンテカルロシミュレーションの実行時間を抑えるためには、回路モデルの精度を抑える必要がある。この場合には、回路シミュレーションの結果は、図７に一例を示すように大きくばらつく。図７において縦軸は回路性能である遅延時間を示し、横軸は乱数抽出部２４Ｂにより抜き出したデータ範囲の順位をそれぞれ示している。このままでは集積回路の回路性能を明確にすることができないため、回路シミュレーションの結果を整理する必要がある。
【００５８】
図８は、図７に示す回路シミュレーション結果を、降べきに並べ替えた後の結果を示している。図８において縦軸は回路性能である遅延時間を示し、横軸は降べきに並べ替えた後の順位をそれぞれ示している。このようなデータ整理を行うことにより、集積回路の回路性能を正確に表すことができる。なお、データの並べ替えは昇べきの順に行ってもよい。
【００５９】
回路性能のばらつきが正規分布となり、回路性能の最大値又は最小値として、それぞれ（μ＋３σ）、（μ−３σ）を用いている場合には、式（１）を用いることにより、整理された回路シミュレーション結果から回路性能の最大値又は最小値に該当するデータの順位を特定することができる。
【００６０】
【数１】
2008134826.tif 000003
【００６１】
ここで、Ｎは１０４で決定したモンテカルロシミュレーションの実行回数、ｘは標準偏差の係数である。例えば、Ｎ＝１０００００、ｘ＝３のとき、式（１）よりｆ（３）≒１３５となるので、１０９の整理された回路シミュレーション結果において、１３５位に相当するデータが必要なデータ点となる。
【００６２】
このようにして得られた本実施形態のシミュレーション結果を、通常のモンテカルロシミュレーションにより得られた結果と比較したところほぼ完全に一致した。
【００６３】
本実施形態の回路シミュレーション方法は、解析対象となる集積回路の回路性能を評価できる回路モデルを用いることにより、短時間に広い範囲にわたってモンテカルロ法による概略シミュレーションを行った後、概略シミュレーションの結果を基に、部分的に詳細なシミュレーションを実行している。従って、解析の精度を落とすことなく、高速に統計的なシミュレーション結果を得ることができる。
【００６４】
なお、回路モデルの近似度が十分に高く、シミュレーション結果を容易に評価できる場合には、結果整理の処理を行わなくてもよい。
【００６５】
（一実施形態の第１変形例）
以下に、本発明の一実施形態の第１変形例について図面を参照しながら説明する。本変形例においては、回路モデルとしてモデル式を用いる。モデル式は、回路素子を変数化して表現した数式である。モデル式において、遅延時間ｔｐｄはトランジスタ遅延と配線遅延とにより表現され、式（２）のように論理電圧ＶL、駆動電流ＩO、容量ＣLの関係で決まる。
【００６６】
【数２】
2008134826.tif 000004
【００６７】
また、トランジスタのドレイン電流Ｉｄｓは、式（３）の桜井のα乗則モデル（非特許文献１を参照）のように、ゲート寸法やゲート容量によって決定される。ゲート寸法やゲート容量のばらつき幅は、回路素子のばらつき情報として準備されている。
【００６８】
【数３】
2008134826.tif 000005
【００６９】
式（２）及び式（３）のように、回路素子を変数化して表現したモデル式を用いてモンテカルロシミュレーションを実行することにより、極めて短時間で多くの回数の解析を行うことができる。モデル式は、解析対象となる集積回路の性能を評価することができるなら、いかなる数式で構成されていてもよい。
【００７０】
（一実施形態の第２変形例）
本発明の一実施形態の第２変形例について図面を参照しながら説明する。本変形例においては、回路モデルとして、１つのセルから構成されるネットリストを用いる。セルのネットリストは、例えば図９のような記述形式をとる。図９において、例えば、ＭＰはＰ型ＭＩＳトランジスタ、ＤＰはＰ型ＭＩＳトランジスタのドレイン、ＧＰはＰ型ＭＩＳトランジスタのゲート、ＳＰはＰ型ＭＩＳトランジスタのソース、ＢＰはＰ型ＭＩＳトランジスタの基板、ＰＣＨはＰチャネル、Ｌ＝６０ｎはゲート長が６０ｎｍ、Ｗ＝１ｕはゲート幅が１μｍであることを意味する。１つのセルから構成されるネットリストを用いてモンテカルロシミュレーションを実行することで、極めて短時間で多くの回数の解析を行うことができる。また、実際の設計に用いるセルに対してモンテカルロシミュレーションを実行するので、回路素子のばらつきがセルに及ぼす影響を反映した回路シミュレーションを実行することができる。
【００７１】
（一実施形態の第３変形例）
本発明の一実施形態の第３変形例について図面を参照しながら説明する。本変形例においては、回路モデルとして図１０に一例を示すような複数の反転回路（インバータ）回路を直列接続したチェインのネットリストを用いる。図１０に示すインバータ回路チェインは、有限のゲート段数からなる。インバータ回路チェインを用いることで、ゲート段数による回路素子のばらつきの平均化効果を反映した回路シミュレーションを実行することができる。ゲート段数は、解析対象となる集積回路と同等の段数に設定しておけば、ゲート段数による回路素子のばらつきの平均化効果をより高精度に反映することができる。なお、複数のインバータ回路を直列接続したチェインのネットリストで、インバータ回路に換えて、否定論理積（ＮＡＮＤ）回路や否定論理和（ＮＯＲ）回路を直列接続したチェインのネットリストで構成されていてもよい。
【００７２】
（一実施形態の第４変形例）
本発明の一実施形態の第４変形例について図面を参照しながら説明する。本変形例においては、回路モデルとして図１１に一例を示すような互いに異なる複数のセルから構成されるチェインのネットリストを用いる。図１１において、左側から３入力論理和（ＯＲ）回路、バッファ回路、２入力論理積（ＡＮＤ）回路、インバータ回路、２入力ＮＯＲ回路を示している。図１１に示す回路チェインのゲート段数は、解析対象となる集積回路のゲート段数より少なく設定する。また、回路チェインは、ゲート間にファンアウトセルを有していてもよい。互いに異なる複数のセルから構成される回路チェインを用いることで、セルサイズの違いによるばらつきの影響やセル内の回路素子のばらつきの平均化効果を反映した回路シミュレーションを実行することができる。なお、必ずしもすべてのセルが互いに異なるセルである必要はなく、チェインの中に同一のセルが２つ以上含まれていてもよい。
【産業上の利用可能性】
【００７３】
本発明の回路シミュレーション方法及び回路シミュレーション装置は、回路設計の際に集積回路の性能を評価するために用いる回路シミュレーションにおいて、回路性能の見積もり精度を落とすことなく、統計的な回路シミュレーションを高速に行う回路シミュレーション方法を実現でき、特に回路素子の変動を統計的に考慮した回路シミュレーション方法及び回路シミュレーション装置として有用である。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施形態に係る回路シミュレーション装置を示すブロック図である。
【図２】本発明の一実施形態に係る回路シミュレーション装置において使用する回路ばらつきのデータの一例を示す表である。
【図３】本発明の一実施形態に係る回路シミュレーション装置において発生させる乱数の一例を示す表である。
【図４】本発明の一実施形態に係る回路シミュレーション方法を示すフローチャートである。
【図５】本発明の一実施形態に係る回路シミュレーション方法における概略シミュレーションの結果の一例を示すグラフである。
【図６】本発明の一実施形態に係る回路シミュレーション方法におけるデータ範囲の一例を示すグラフである。
【図７】本発明の一実施形態に係る回路シミュレーション方法における詳細シミュレーションの結果の一例を示すグラフである。
【図８】本発明の一実施形態に係る回路シミュレーション方法における結果整理
【図９】本発明の一実施形態の第２変形例に係る回路モデルであるネットリストの記述例を示す図である。
【図１０】本発明の一実施形態の第３変形例に係る回路モデルであるインバータチェインを示す回路図である。
【図１１】本発明の一実施形態の第３変形例に係る回路モデルであるセルのチェインを示す回路図である。
【符号の説明】
【００７５】
２１      記憶部
２１Ａ    回路情報記憶部
２１Ｂ    情報記憶部
２１Ｃ    回路モデル記憶部
２２      入力部
２３      計算部
２４      処理部
２４Ａ    概略シミュレーション実行部
２４Ｂ    抽出部
２４Ｂ    乱数抽出部
２４Ｃ    詳細シミュレーション実行部
２４Ｄ    シミュレーション結果整理部
２５      出力部
【図１】
2008134826.tif 000006
【図２】
2008134826.tif 000007
【図３】
2008134826.tif 000008
【図４】
2008134826.tif 000009
【図５】
2008134826.tif 000010
【図６】
2008134826.tif 000011
【図７】
2008134826.tif 000012
【図８】
2008134826.tif 000013
【図９】
2008134826.tif 000014
【図１０】
2008134826.tif 000015
【図１１】
2008134826.tif 000016