(57)【要約】【課題】特定の素子のばらつきが半導体集積回路の特性に与える影響度合い(感度)を解析する回路シミュレーション装置を提供する。【解決手段】回路図データS1から特定の素子を指定する素子指定部S2と、指定された素子情報を格納するデータベース部S3と、回路図データからシミュレーション用のネットリストS5を作成するネットリスト作成部S4と、データベース内に格納されている素子情報からネットリスト上にある指定した素子のデータを特定する素子特定部S6と、ネットリスト上の特定した素子で使用されているシミュレーション用モデルファイルをコピーして新規に別名で作成し、ネットリスト上のモデルファイル名に書き換えるネットリスト置換部S7と、書き換えたモデルファイル名に対してだけ、ランダムにばらつかせたパラメータが入るばらつき解析を実行するシミュレーション実行部S8により、特定の素子だけをばらつかせる解析を実施する。【選択図】図１
2014137656.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の回路シミュレーションにおいて、素子のプロセスばらつきの影響を見積もる回路シミュレーション装置であって、
半導体集積回路の回路図データから特定の素子を指定する素子指定部と、
指定された素子情報を格納するデータベース部と、
回路図データからシミュレーション用のネットリストを作成するネットリスト作成部と、
データベース内に格納されている素子情報からネットリスト上にある指定した素子のデータを特定する素子特定部と、
ネットリスト上の特定した素子で使用されているシミュレーション用モデルファイルをコピーして新規に別名で作成し、ネットリスト上のモデルファイル名を新規に作成したモデルファイル名に書き換えるネットリスト置換部と、
書き換えたモデルファイル名に対してだけ、ランダムにばらつかせたパラメータが入るばらつき解析を実行するシミュレーション実行部と、
を備えることを特徴とする回路シミュレーション装置。
【請求項２】
前記素子指定部が指定する素子は、BJT、MOSFET、IGBT、抵抗素子、容量素子またはインダクタのいずれかである、請求項１に記載の回路シミュレーション装置。
【請求項３】
前記シミュレーション実行部は、半導体装置の性能情報に基づきモンテカルロ解析シミュレーションにより、素子毎のばらつきを算出することを特徴とする請求項１に記載の回路シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路を模擬するSPICE(Simulation Program with Integrated Circuit Emphasis)などの回路シミュレーションにおいて、素子のプロセスばらつきの影響を見積もる回路シミュレーション装置に関する。
【背景技術】
【０００２】
半導体集積回路の開発過程においては、CAD（Computer Aided Design）を用いた半導体集積回路の設計、及びSPICEに代表されるモンテカルロ解析シミュレータを用いた回路動作の確認を行う。また集積回路の解析方法の１つとして、素子のプロセス変動による影響を調べるばらつき解析がある。
【０００３】
ばらつき解析としては、主に、コーナー解析と、モンテカルロ解析の２種類の解析方法が用いられる。
コーナー解析は、プロセス変動の最大値を反映させたモデルパラメータを用意しておき、用意したばらつき条件に中から１つのばらつき条件を選択してシミュレーションを実施する方法である。コーナー解析を用いれば、回路動作がワーストケースになる場合についての回路シミュレーションを実行でき、回路の性能を把握することが可能である。
【０００４】
モンテカルロ解析は、パラメータのうちのいくつかに特定の確率分布に従って発生させた乱数を用いて変動を加えたモデルパラメータを用意し回路シミュレーションを多数回実行することで、その結果を統計的に解析する方法である。モンテカルロ解析の結果を参考にして、プロセス変動の影響を見積もることができる。
【０００５】
モンテカルロ解析については、解析精度を向上するために、これまで考慮されていなかった素子のレイアウト依存性を考慮する方法（特許文献１参照）や、精度を落とさず解析時間を短縮するために、概略シミュレーションを実行した後に解析に必要な乱数を抽出して詳細シミュレーションを実行する方法（特許文献２参照）が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７-２１３１３４号公報
【特許文献２】特開２００８-１３４８２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
回路シミュレーションでは、構成が同じ素子は同一モデルファイルを使用する。通常のモンテカルロ解析では、そのモデルファイル別に、入力されたパラメータ（MOSFETの場合、ゲート長やゲート幅、位置情報など）に応じたばらつき変数が与えられ、回路シミュレーションに使用されるネットリストにパラメータの変動が反映される。
【０００８】
具体的には図２において、構成が同じPMOS(回路中の３素子＋回路ブロック1,2,3,4内に入っているPMOS素子)は、すべての素子において、そのパラメータに応じて変動を加えられたモデルとなり、回路シミュレーションが実行される。
【０００９】
差動入力段の素子などでは、同じチップ内で隣接している素子（図２の点線で囲った２つのPMOS）の微小なばらつきが、回路特性に大きな影響を与える場合があり、特定の素子の変動が目的の回路特性にどれほどの影響を与えているのかを検証したい場合がある。
【００１０】
しかし通常のモンテカルロ解析は図２で示したPMOSのように、同一モデルファイルを使用しているすべての素子を乱数を用いてランダムにばらつかせるため、回路シミュレーション結果（図３参照）は変動させた素子すべての影響を含み、特定の素子のみのばらつきの影響がわからない。このため、シミュレーション結果から回路特性がばらつくことは分かっても、どこが原因か調査することが困難であった。
【００１１】
そこで本発明は、素子のプロセスばらつきの影響を見積もるシミュレーションにおいて、特定の素子のばらつきが半導体集積回路の特性に与える影響度合い（感度）を解析する回路シミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の請求項１記載の発明は、半導体集積回路の回路シミュレーションにおいて、素子のプロセスばらつきの影響を見積もることのできる回路シミュレーション装置であって、半導体集積回路の回路図データから特定の素子を指定する素子指定部と、指定された素子情報を格納するデータベース部と、回路図データからシミュレーション用のネットリストを作成するネットリスト作成部と、データベース内に格納されている素子情報からネットリスト上にある指定した素子のデータを特定する素子特定部と、ネットリスト上の特定した素子で使用されているシミュレーション用モデルファイルをコピーして新規に別名で作成し、ネットリスト上のモデルファイル名を新規に作成したモデルファイル名に書き換えるネットリスト置換部と、書き換えたモデルファイル名に対してだけ、ランダムにばらつかせたパラメータが入るばらつき解析を実行するシミュレーション実行部とを備えることを特徴としている。
【００１３】
また請求項２記載の発明は、前記素子指定部が指定する素子が、BJT（Bipolar Junction Transistor）、MOSFET（Metal Oxide Semiconductor Field Effect Transistor）、IGBT（Insulated Gate Bipolar Transistor）、抵抗素子、容量素子またはインダクタのいずれかであることを特徴としている。
【００１４】
さらに請求項３記載の発明は、前記シミュレーション実行部が、半導体装置の性能情報に基づきモンテカルロ解析シミュレーションにより、素子毎のばらつきを算出することを特徴としている。
【発明の効果】
【００１５】
本発明によれば、特定の素子だけをばらつかせることにより、その素子が回路特性に与える影響度合い（感度）を解析することができる。これにより、回路特性がばらつく原因となる素子・回路ブロックを特定でき、具体的な対策案を立てることが可能となる。
【００１６】
さらに、回路特性の変動を抑える目的で回路定数の変更または回路構成を変更した場合、特定の素子だけをばらつかせることで、特定部分の変動に対する回路特性の変動度合いの変化が確認でき、回路変更したことによる効果の確認が可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る回路シミュレーション装置の概略構成を示すブロック図である。
【図２】簡略化した半導体集積回路の回路構成を示す図である。
【図３】従来のモンテカルロ解析を行った結果をヒストグラムにより表示した図である。
【図４】本発明の実施形態に係る回路シミュレーション装置のハードウェア構成を示す図である。
【図５】回路図の階層構造を表した図である。
【図６】編集前の半導体集積回路のネットリストの一部を示す図である。
【図７】編集後の半導体集積回路のネットリストの一部を示す図である。
【図８】回路ブロックごとコピーする場合の編集後の半導体集積回路のネットリストの一部を示す図である。
【図９】回路ブロックごとコピーする場合の回路図の階層構造を表した図である。
【図１０】本発明を適用してモンテカルロ解析を行った結果をヒストグラムにより表示した図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、詳細に説明する。
図１は、本発明の実施形態に係る回路シミュレーション装置の概略構成に示すブロック図である。図１において、本発明の実施形態に係る回路シミュレーション装置は、機能ブロック間における動作の流れをも示しており、シミュレーション実行部において半導体集積回路の特定の素子だけをばらつかせるモンテカルロ解析を実施することが可能である。
【００１９】
本発明の実施形態に係る回路シミュレーション装置を具体的に説明するために、例えば図２に示す簡略化した半導体集積回路に適用した場合について説明する。図２に示す半導体集積回路の場合、M1a〜M1e等のシンボル名と呼ばれる各素子個別に持つ名前が付加される。また各素子にはpmos、nmosなどの回路シミュレーションに用いるシミュレーションモデル名やw=4μm、l=2μmなどのデバイスのパラメータ情報が付加される。
【００２０】
なお、本発明の実施形態に係る回路シミュレーション装置のハードウェア構成は、図４に示すように当業者に知られたコンピュータが通常備えるハードウェアでもって構成される。すなわち図４に示すように本発明の実施形態に係る回路シミュレーション装置は、データ記憶装置１、ＣＰＵ(Central Processing Unit)２、メモリ３、入力装置４、および、出力装置５で構成され、これらがバス６によって互いに接続されている。そして本発明の回路シミュレーション装置は、シミュレーションするためのプログラムがメモリ３に格納され、ＣＰＵ２が当該プログラムを実行してシミュレーションを行う。そしてシミュレーションした結果は、ハードディスク装置等のデータ記憶装置１に保存されるとともに出力装置５を用いて出力される。メモリ３は、上記プログラムの外、プログラム実行時のパラメータ、演算結果などを一時的に記憶する。入力装置４は、キーボードやマウスといった、ユーザの操作をＣＰＵ２に伝える。出力装置５は、ＣＰＵ２のプログラム実行後のデータをディスプレイ画面上に表示したり、プリンタを用いて紙に印刷する。
【００２１】
図１を用いて本発明の実施形態に係る回路シミュレーション装置の動作を説明すると、Ｓ１はシミュレーションを実施する回路図データであり、素子指定部Ｓ２で回路図データＳ１上のばらつかせたい素子を指定することで、指定された素子情報データがデータベース部Ｓ３に格納される。
【００２２】
この部分について具体的に説明すると、図２に示す簡略化した半導体集積回路の回路図データの中でばらつかせたい素子、具体的には差動入力段の素子、M1b,M1cを素子指定部Ｓ２が指定すると、指定されたM1b,M1cの素子情報データがデータベース部Ｓ３に格納される。素子情報データには、指定された素子の(1)シンボル名・(2)素子が存在する回路ブロック名が記述される。
【００２３】
素子指定部Ｓ２が指定する素子は、BJT(Bipolar Junction Transistor)、MOSFET(Metal Oxide Semiconductor Field Effect Transistor)、IGBT(Insulated Gate Bipolar Transistor)、抵抗素子、容量素子またはインダクタのいずれかの素子である。
【００２４】
また通常、回路図は図５に示すような階層構造でもって表現されている。例えば指定した素子が斜線を付加したブロックで示したCircuit_Eにある場合、回路ブロック名は/Circuit_A /Circuit_B /Circuit_Eとなる。これにより、回路ブロック名と素子名が決まれば一意に素子が決定される。
【００２５】
次に回路図データＳ１を用いてモンテカルロ解析実行部が通常のモンテカルロ解析を実行すると、ネットリスト作成部Ｓ４でシミュレーションに必要な回路の素子情報や接続情報を示したネットリストＳ５を作成する。さらにデータベース部Ｓ３に保存されている素子情報データを使い、ネットリストＳ５の中で上記で指定した素子に該当する記述を素子特定部Ｓ６で特定する。
【００２６】
これをより具体的に説明すると、図２の半導体集積回路の回路図データから図６に示すネットリストと呼ばれる回路接続情報を生成する。ネットリストには、回路図データ中の(1)回路ブロック名・(2)シンボル名・(3)ネット名・(4)シミュレーションモデル名・(5)パラメータ情報が記述される。素子の種類によってデータの内容や要素が異なる。たとえばP型MOSFETの場合は、(4)シミュレーションモデル名はpmos、(3)ネット名はドレイン端子・ゲート端子・ソース端子に接続しているネット名net1・net2・net3などが順番に格納され、(5)パラメータ情報はw,l,mの値が格納される。このネットリストの中から、素子指定部Ｓ２で指定した素子を特定するため、データベース部Ｓ３で保存した素子情報データを利用する。たとえばシンボル名：M1b、回路ブロック名：/Circuit_A /Circuit_B /Circuit_Eの場合、図６のネットリストの中で回路ブロック名がCircuit_Eの中のシンボルM1bの行（図６のＡの行）を特定する。
【００２７】
続いてネットリスト置換部Ｓ７で、ネットリスト上の素子特定部Ｓ６で特定した素子のデバイスモデル名を読み取り、そのデバイスモデル名のファイルを新規に別名で作成する。さらにネットリスト上の該当モデルファイル名を、作成したモデルファイル名に書き換える。ただし、モデルファイル名を書き換える素子の回路ブロックが、回路の別の場所にも使用されている場合は、回路ブロックごと新規に別名でコピーして、その中のモデルファイル名を書き換える。またその上位の回路ブロックが別の場所で使用されている場合は同じように新規に別名でコピーし、これを繰り返すことで、特定した素子のネットリストだけが編集されるようにする。
【００２８】
次にシミュレーション実行部Ｓ８は上記で作成したネットリストを使用し、新たに書き換えたモデルファイル名のモデルファイルに対してだけ、ランダムにばらつかせたパラメータが入るモンテカルロ解析シミュレーションを実行する。
【００２９】
これを具体的に説明すると、図６のネットリストで上記で特定した行のデバイスモデル名pmosを読み取り、このpmosのデバイスモデル名のファイルをコピーして名前を新規に別名（ネットリスト上で使われていないデバイスモデル名）で作成する。ここではpmos_aとした。さらに図７のＢで示すように、ネットリスト上のpmosの標記を新規に作成したモデルファイル名であるpmos_aに書き換える。ただし、モデルファイル名を書き換えた回路ブロックCircuit_Eが図５で示すように回路の別の場所である/Circuit_A /Circuit_D /Circuit_Eでも使用されている場合、上記ネットリストの変更を実施すると、ネットリスト内のCircuit_Eの回路ブロックの記載は１箇所であるため、/Circuit_A /Circuit_D /Circuit_E内のシンボル名M1bのデバイスモデル名もpmos_aに変更されることになる。/Circuit_A /Circuit_B /Circuit_Eの回路ブロック内のM1bのモデルファイル名だけを書き換えたいため、図８のＣで示すように、Circuit_Eの回路ブロックごとコピーしてCircuit_E_aを作成し、モデルファイル名を書き換える。
【００３０】
さらにネットリストの回路ブロックCircuit_Bの中にある回路ブロックCircuit_Eの標記をCircuit_E_aに書き換えることで、回路図は図９に示す状態となり、目的の素子だけのデバイスモデル名を書き換えることが可能となる。またその上位の回路ブロックCircuit_Bが回路図上の別の場所で使用されている場合は上記と同じように、ネットリスト上のCircuit_Bの回路ブロックの記載をコピーして、新たに別名で作成し、これを繰り返すことで目的の素子だけのデバイスモデル名を書き換えることが可能となる。次に上記で作成したネットリストを使用して、新たに書き換えたpmos_aに対してだけ、ランダムにばらつかせたパラメータが入るモンテカルロ解析シミュレーションを実行する。
【００３１】
以上で指定した素子がばらついた場合の回路動作への影響を統計的に解析することが可能となる。具体的にはランダムにばらつかせたパラメータが入るモンテカルロ解析シミュレーションを実行することによって図１０に示すような結果が得られ、図３と比較するとデータのばらつき加減が変化して、目的の素子だけがばらついた場合の回路動作への影響を統計的に解析することが可能となる。
【符号の説明】
【００３２】
１  データ記憶装置
２  ＣＰＵ
３  メモリ
４  入力装置
５  出力装置
６  バス
S1  回路図データ
S2  素子指定部
S3  データベース部
S4  ネットリスト作成部
S5  ネットリスト
S6  素子特定部
S7  ネットリスト置換部
S8  シミュレーション実行部
【図１】
2014137656.tif 000003
【図２】
2014137656.tif 000004
【図４】
2014137656.tif 000005
【図６】
2014137656.tif 000006
【図７】
2014137656.tif 000007
【図８】
2014137656.tif 000008
【図３】
2014137656.tif 000009
【図５】
2014137656.tif 000010
【図９】
2014137656.tif 000011
【図１０】
2014137656.tif 000012