(57)【要約】【課題】大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存しなくても任意の結果出力点のデータを表示可能なシミュレーション技術を提供する。【解決手段】シミュレーション方法において、階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して回路シミュレーションを実行するシミュレーション再実行処理とを含める。【選択図】図１
2006323873.tif 000002
【特許請求の範囲】
【請求項１】
階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、
前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、
前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して回路シミュレーションを実行するシミュレーション再実行処理と、を含むことを特徴とするシミュレーション方法。
【請求項２】
前記シミュレーション再実行処理において、前記回路領域で信号経路が相互に独立する部分領域を部分領域毎に並列に回路シミュレーションを実行する請求項１記載のシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の回路シミュレーション、半導体デバイスのデバイスシミュレーション等に広く適用することができる。
【背景技術】
【０００２】
回路シミュレーション技術は半導体集積回路の回路設計及びレイアウト設計などにおける回路検証技術として利用される。近年のデバイスの微細化に伴う回路の大規模化、高集積化により、回路シミュレーションの実行時間増大、シミュレーション結果のデータ量増大が顕在化されている。実際の回路シミュレーション処理では、設計者が確認したい情報を出力として選択的に指定してシミュレーション処理を行う。指定された情報だけが結果データとして保存される。従って、保存されていない結果データは結果表示できない。任意の結果表示を可能にするにはシミュレーション対象の全ての回路ノードを指定したシミュレーションを行って結果を保持しておかなければならない。大規模回路では全部の結果データを保存するにはデータ量が膨大になり、全てを保存するのは実質的に不可能である。また、結果表示の対象データ量が増大すると、結果データの検索時間が増し、表示速度が遅くなる。更に、大規模回路では、シミュレーション処理時間が増大するため、部分的な回路変更や素子パラメータの変更に対処するための再シミュレーション時間も増大する。
【０００３】
シミュレーション結果を保存する記憶領域の削減に関し、特開平１１−９６２０７号公報にはシミュレーション結果を圧縮して保存する技術が記載され、特開平９−２５９１５１号公報には信号経路の上流側から下流側に向かって回路を分割し、分割回路の出力の影響を考慮して部分毎にシミュレーションを進める技術が開示される。
【０００４】
【特許文献１】特開平１１−９６２０７号公報
【特許文献２】特開平９−２５９１５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前者の技術では、圧縮・伸張処理が新たに必要になるから、シミュレーションや結果表示に伴う計算機処理時間が更に増大してしまう。後者の技術では、計算機処理に用いるメモリ量は減ってもその結果を保持する補助記憶手段の記憶容量は依然として減らない。しかも、他のシミュレーション結果に依存しないように分割して回路を直列的にシミュレーション処理しなければならないから処理時間は増大する傾向にあると考えられる。
【０００６】
本発明の目的は、大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存しなくても任意の結果出力点のデータを表示可能なシミュレーション技術を提供することにある。
【０００７】
本発明の別の目的は、大規模集積回路のような大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存するのと等価なデータ表示性能を少ない記憶容量で達成可能なシミュレーション方法を提供することにある。
【０００８】
本発明の更に別の目的は、大規模集積回路のような大規模なシミュレーション対象に対しシミュレーション結果データの表示速度を高速化することが容易なシミュレーション方法を提供することにある。
【０００９】
本発明のその他の目的は、大規模回路で部分的な回路変更や素子パラメータの変更時に再シミュレーション時間を短縮することが可能なシミュレーション方法を提供することにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１２】
〔１〕本発明に係るシミュレーション方法は、階層化回路データの上位側階層の回路ノードを結果出力ノードとするシミュレーションを行って結果を保存する第１処理と、それよりも下位側階層の回路ノードに対し、上記処理で保存されているシミュレーション結果を前記下位側階層の回路ノードを含む回路領域の入出力情報に用いて、所定の初期条件でシミュレーションを行う第２処理と、を含む。所定の初期条件は、望ましくは前記第１処理における前記シミュレーションと同等の初期条件であるとよい。前記初期条件は、例えば第１処理でシミュレーション結果と共に保存して、再利用可能にすればよい。
【００１３】
上記より、シミュレーション結果が保存される結果出力ノードは上位側階層に制限されるから、シミュレーションで保存すべき結果データ量を削減することができる。下位側階層の回路ノードについては結果出力ノードとしてシミュレーション結果が保存されていないが、上位側階層の結果出力ノードの結果データが下位側階層の回路ノードへの情報インタフェースを担い、第１処理のシミュレーション条件が下位側階層の内部の回路ノードに対する初期的状態を与える。これにより、第1処理で得られた結果データの表示だけでは足りない表示指令に対して、第２処理で部分再シミュレーションを行った結果を表示すればよい。したがって、大規模集積回路のような大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存するのと等価なデータ表示性能を少ない記憶容量(第１処理による結果データを保存可能な容量)で達成することができる。保存すべき結果データ量の削減により結果データの検索時間を短縮できる。また、第２処理による再シミュレーション時の対象回路規模を小さくできるから、大規模回路で部分的な回路変更や素子パラメータの変更時に再シミュレーション時間を短縮することが可能である。
【００１４】
〔２〕本発明の具体的な形態によるシミュレーション方法は、指定された上位側階層の回路ノードを階層化回路データから抽出する抽出処理と、前記抽出処理で抽出された回路ノードを結果出力ノードとして回路シミュレーションを行うシミュレーション実行処理と、前記シミュレーション実行処理により結果出力ノードに得られた結果データを保存する保存処理と、前記指定階層よりも下位側階層の回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存された結果データから取得して所定の初期条件、望ましくは、前記回路シミュレーションと同等の初期条件で、回路シミュレーションを実行するシミュレーション再実行処理と、を含む。この方法は上記同様に作用する。
【００１５】
更に具体的な態様として、シミュレーション処理結果の表示指令に対し、前記保存処理で保存された結果データの表示又は前記シミュレーション再実行処理で得られたシミュレーション結果の表示を行う表示処理を更に含んでよい。
【００１６】
前記抽出処理は、例えば、階層化回路データにおける下位階層への参照系列を追いながら階層レベルを下位に設定変更する毎に、設定された階層レベルで把握可能な回路ノードを登録する処理を、シミュレーション対象における全ての参照系列に対して行う処理としてよい。シミュレーションの結果出力ノードを階層指定によって抽出することが可能になる。
【００１７】
〔３〕シミュレーション結果の表示処理に着目した本発明の具体的な更に別の形態によるシミュレーション方法は、指定された上位側階層の回路ノードを結果出力ノードとして回路シミュレーションを行うシミュレーション実行処理と、前記シミュレーション実行処理により結果出力ノードに得られた結果データを保存する保存処理と、前記保存処理で保存された結果データの中から検索された結果データを、前記シミュレーション実行処理結果として表示する第１表示処理と、前記保存処理で保存された結果データの中から検索された結果データを、前記指定された上位側階層に対する下位側階層の回路領域における外部入出力情報に用いて所定の初期条件、望ましくは、上記回路シミュレーションと同等の初期条件で、当該下位側階層の回路領域における回路シミュレーションを実行するシミュレーション再実行処理と、前記シミュレーション再実行処理の結果データを表示する第２表示処理と、を含む。
【００１８】
部分的な回路変更やデバイスパラメータの変更への対処に着目した本発明の更に別の形態によるシミュレーション方法は、階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して、回路シミュレーションを実行するシミュレーション再実行処理と、を含む。これにより、全体的にシミュレーションをやり直さなくて済むから、再シミュレーション時間を短縮することができる。また、前記シミュレーション再実行処理において、前記回路領域において信号経路が相互に独立する部分領域を部分領域毎に並列に回路シミュレーションを実行してよい。これにより、シミュレーションの計算機処理時間を更に短縮することができる。
【００１９】
回路シミュレーション以外のデバイスシミュレーションのようなシミュレーションにも着目した態様のシミュレーション方法は、指定された上位側階層の結果出力点をシミュレーション対象から抽出する第１処理と、抽出された結果出力点を出力項目としてシミュレーションを行う第２処理と、前記第２処理で結果出力点に得られた結果データを保存する第３処理と、前記指定階層よりも下位側階層に係るシミュレーション結果の表示指令に対し、前記下位側階層の結果出力点を含む領域の境界情報を前記第３処理で保存された結果データから取得して、所定の初期条件、望ましくは前記第２処理のシミュレーションと同等の初期条件で、当該下位側階層で結果出力を得る為のシミュレーションを行う第４処理と、を含む。
【００２０】
〔４〕本発明に係るシミュレーションプログラムは、階層化回路データの上位側階層の回路ノードを結果出力ノードとするシミュレーションを行って結果を保存する第１機能と、それよりも下位側階層の回路ノードに対し、上記第１処理で保存されているシミュレーション結果を前記下位側階層の回路ノードを含む回路領域の入出力情報に用いて、所定の初期条件、望ましくは上記シミュレーションと同等の初期条件で、シミュレーションを行う第２機能と、をコンピュータに実現させるものである。このプログラムにより上記シミュレーション方法を容易に実施させることがことができる。
【００２１】
更に別の態様のシミュレーションプログラムは、指定された上位側階層の回路ノードを階層化回路データから抽出する抽出機能と、前記抽出機能で抽出された回路ノードを結果出力ノードとして回路シミュレーションを行うシミュレーション実行機能と、前記シミュレーション実行機能により結果出力ノードに得られた結果データを保存する保存機能と、前記指定階層よりも下位側階層の回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存された結果データから取得して、所定の初期条件、望ましくは前記回路シミュレーションと同等の初期条件で、回路シミュレーションを実行するシミュレーション再実行機能と、をコンピュータに実現させるものである。
【００２２】
更に別の態様のシミュレーションプログラムは、指定された上位側階層の結果出力点をシミュレーション対象から抽出する第１機能と、抽出された結果出力点を出力項目としてシミュレーションを行う第２機能と、第２機能で結果出力点に得られた結果データを保存する第３機能と、第３機能で保存された結果データでは不足する表示指令に対し、前記第３機能で保存された前記結果データを用いて所定の初期条件、望ましくは、前記シミュレーションと同等の初期条件で、前記指定階層より下位側階層に関するシミュレーションを行う第４機能と、をコンピュータに実現させるプログラムである。このプログラムは、デバイス断面領域をメッシュ状のブロックに分けして階層的に把握しながらシミュレーションを行うデバイスシミュレーションへの適用も想定する。この場合、前記結果出力点は、例えばデバイス断面上の電流又は電圧着目点になる。例えば、前記上位側階層のシミュレーションでは結果出力点は前記メッシュ境界部分に存在され、下位側階層のシミュレーションでは結果出力点は前記メッシュ内に存在されることになる。
【００２３】
〔５〕表示処理方法の観点に立った発明は、指定された上位側階層で結果出力を得る為のデータ処理を行う第１処理と、前記第１処理で得られた結果データを保存する第２処理と、前記第２処理で保存された結果データを表示する第３処理と、前記第２処理で保存されていない結果データの表示指令を受付けてその表示を行う第４処理と、を含む。前記第４処理は、前記第１処理におけるデータ処理の初期条件と、前記第２処理で保存された結果データとを利用してデータ処理を再実行した結果を表示する処理である。
【発明の効果】
【００２４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２５】
すなわち、大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存しなくても任意の結果出力点のデータを表示可能なシミュレーション技術を提供することができる。
【発明を実施するための最良の形態】
【００２６】
図１には本発明に係るシミュレーション方法の概念を結果出力区分の一例と共に示す。同図において１は、設計データで特定されるシミュレーション対象回路である。回路シミュレーションを行なうとき、特定される信号端子もしくは回路ノードに入力波形情報が与えられ、この初期情報を基に非線形方程式及び回路行列を解くことで初期の回路状態を決定する。この時、全ての回路ノードの初期値が決定する。初期の回路状態を基に入力波形情報を遷移して非線形方程式及び回路行列を解くことでその回路状態を決定しながら、回路ノードの遷移データを求めていく。この内、結果出力ノードとして指定された回路ノードの結果データが保存される。結果データを保存する回路ノードは、階層化された設計データにおける上位側階層領域の回路ノードに限定される。図１ではハッチングされた回路領域（データ保存領域）２に含まれる回路ノードＮ１〜Ｎ１４を結果出力ノードとして、その結果データが保存される。ハッチングされていない回路領域（データ非保存領域）３ａ〜３ｈ内の回路ノード（３ａを代表として示されるノードＮ１５〜Ｎ１７）に関する遷移データは結果データとして保存されない。結果データの保存に際して、結果出力ノードとして指定された回路ノードの遷移データ以外にシミュレーション対象回路１の全ての回路ノードの初期値も保存する。尚、データ保存領域内の回路ノードに関する初期値は遷移データに含まれていてもよい。例えば、回路領域３ａの回路ノードＮ１５〜Ｎ１７に関するシミュレーション結果が欲しい場合には、回路領域３ａの内部の回路ノードＮ１５〜Ｎ１７に対する初期状態を、前記保存されている初期値によって決定し、回路領域３ａと外部で接続する回路ノードＮ５〜Ｎ８の状態は、前記保存された結果データから決める。これにより、部分的な回路領域３ａのシミュレーションを、対象回路１の全体に対して行ったシミュレーションと同等の初期条件で実行でき、それによって当該領域３ａ内の回路ノードＮ１５〜Ｎ１７に得られた結果データを表示すればよい。その他の回路領域３ｂ〜３ｈの内部回路ノードに対しても必要に応じて部分的なシミュレーションを再実行して、その結果を表示すればよい。そのようなシミュレーションは、結果を表示したいときにその場ですぐに表示すべき情報を復元するというようなシミュレーションを行う、という意味で、オン・ザ・フライ・シミュレーション（on-the-fly simulation）とも称することにする。
【００２７】
図２には本発明に係るシミュレーション方法の概念を更に原理的に示してある。データ非保存領域は３で総称されている。データ保存領域２とデータ非保存領域３とを分ける指標は階層化回路データの階層構造に依存する。
【００２８】
図３には本発明に係るシミュレーション方法の原理が階層化回路データの階層構造に着目して示される。シミュレーション対象回路１は階層化された回路ブロックにより定義される。最上位ブロックから最下層の回路ブロックまで階層化されている。前記データ保存領域２は最上位階層のブロックから任意階層の回路ブロックまでの階層データにより特定される上位側階層の回路として規定される。前記データ非保存領域３は、前記データ保存領域２を規定する階層よりも下位側階層の回路ブロックで特定される回路として規定される。データ保存領域２の回路ノードが結果出力ノードとされ、当該ノードの結果データが保存結果データ４として保存される。シミュレーションで保存されなかったデータ非保存領域３の回路ノードに関する表示要求に対しては前記オン・ザ・フライ・シミュレーションによる得られた結果データ５を表示すればよい。
【００２９】
図３より明らかなように、下位側階層の非保存領域３の回路ノードも結果出力ノードとしてそのシミュレーション結果も保存する場合には、保存すべきデータとして非保存結果データ９も保存対象にしなければならなくなる。したがって、データ非保存領域３の回路ノードに対して必要なときその都度、前記オン・ザ・フライ・シミュレーションで取得した結果データ５を表示するシミュレーション方法を採用すれば、大規模集積回路のような大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存するのと等価なデータ表示性能を少ない記憶容量で達成することができる。保存すべき結果データ量の削減により結果データの検索時間を短縮できる。
【００３０】
次に、保存結果データ４を取得した後、シミュレーション対象回路１における部分的な回路変更や素子パラメータの変更があたとき、その変更を反映したシミュレーション結果を得る方法について説明する。
【００３１】
図４にはシミュレーション対象回路における部分的な回路変更や素子パラメータの変更があったときの状態が例示される。図４では例えば前記回路領域３ａが変更されている。この変更前に、シミュレーション対象回路のシミュレーションにより前記データ保存領域２内の回路ノードＮ１〜Ｎ１４の結果データは既に保存されているものとする。回路領域３ａの変更は、当該回路領域３ａの出力を信号伝播の上流側から受ける回路ノードＮ７，Ｎ８、Ｎ１２，Ｎ１３及び回路領域３ｄ，３ｅ内部の回路ノードに影響を与える。図４において影響される回路ノードと回路領域には文字ｉが付されている。
【００３２】
図５には部分的な回路変更や素子パラメータの変更があったとき、その変更を反映したシミュレーション結果を得る方法が例示される。前記保存結果データ４を取得したときの回路領域３ａの変更は、当該回路領域３ａの出力を信号伝播の上流側から受ける回路ノードＮ７，Ｎ８、Ｎ１２，Ｎ１３及び回路領域３ｄ，３ｅ内部の回路ノードに影響を与える。そのような変更とそれによる影響を受ける回路領域６に対して、前記オン・ザ・フライ・シミュレーションに類似の手法でシミュレーションを行う。前記変更の影響を受けない回路ノードすなわち、回路領域６と外部で接続する回路ノードＮ５，Ｎ６，Ｎ９の状態は、前記保存された結果データから決める。変更された回路領域３ａ内部の回路ノードは変更内容に応じてその初期値が決定される。また、回路領域３ａの出力を信号伝播の上流側から受ける回路ノードＮ７，Ｎ８、Ｎ１２，Ｎ１３及び回路領域３ｄ，３ｅ内部の回路ノードも回路領域３ａの変更に応じてその初期値が決定される。これにより、部分的な回路領域６のシミュレーションを、部分的に変更された対象回路１の全体に対して行ったシミュレーションと同等の初期条件で実行でき、それによって当該領域６の回路ノードＮ７、Ｎ８，Ｎ１２，Ｎ１３に得られた結果データを、変更前の回路ノードの結果データと置き換えればよい。図５において、変更された結果データが得られる結果出力ノードとしての回路ノードＮ７、Ｎ８，Ｎ１２，Ｎ１３には文字“ｍ”が付されている。
【００３３】
図６には図５の部分的な変更に対処するシミュレーション方法の原理が階層化回路データの階層構造に着目して示される。図６の２ｐは図５の領域中における保存領域を意味する。非保存領域である領域３ａ，３ｄ，３ｅは下位階層の回路ブロックのデータを有する。領域６のネットリスト７を前記保存結果データ４の一部を用いて回路シミュレーションを行うことにより、回路領域６に関する新規の保存結果データ８が生成される。
【００３４】
上記より、部分的な回路変更等の影響を受ける回路領域６に対して、前記オン・ザ・フライ・シミュレーションに類似の手法でシミュレーションを行うことができるから、シミュレーション時の対象回路規模を小さくでき、大規模回路で部分的な回路変更や素子パラメータの変更時に再シミュレーション時間を短縮することが可能になる。
【００３５】
図７には前記オン・ザ・フライ・シミュレーションの並列処理が例示される。図１で説明したオン・ザ・フライ・シミュレーションを複数の回路領域で行うとき、複数のプロセッサＣＰＵ１〜ＣＰＵ５を用いて並列演算処理を行ってよい。これにより、複数の回路領域に対する表示指令に応答する演算処理及び表示動作の高速化を実現することができる。
【００３６】
図８には回路変更等に起因する部分領域に対するオン・ザ・フライ・シミュレーション類似のシミュレーションを並列処理する例が示される。部分的な回路変更によって影響される部分領域として、図示の６，６Ａの複数個所が存在する場合に、それら部分領域６，６Ａに対し、複数のプロセッサＣＰＵ１、ＣＰＵ２を用いて並列演算処理を行ってよい。これにより、複数の回路変更個所が信号経路を共有しない複数の部分領域６，６Ａに及ぶ場合にもそれらに対する再シミュレーション処理を高速化することができる。
【００３７】
次に図１で説明したしシミュレーション方法を更に具体的に説明する。
【００３８】
図９には本発明に係るシミュレーション方法を実現する為のデータ処理システムが例示される。ネットリスト１３はシミュレーション対象回路を特定する階層化回路データである。データ保存領域情報１１は階層化回路データにおいて結果出力ノードとして抽出すべき回路ノードを決める為の情報、例えば階層化回路データの所望の階層レベルなどを指定する情報である。指定された階層レベルを指定階層レベルと称する。入力波形情報１２は階層化回路データで特定される信号端子もしくは回路ノードに与えられる信号波形を規定する情報であり、シミュレーション対象回路の回路ノードの初期値は前記入力波形情報１２等で決まる。デバイス特性情報１５は階層化回路データで特定される回路素子の回路特性を規定する為のデバイスモデルパラメータなどを意味する。制御情報１４はシミュレーションを行う回路シミュレータ１０の動作を制御するその他の制御情報を意味する。回路シミュレータ１０は、データ保存領域情報１１、入力波形情報１２、ネットリスト１３、制御情報１４、及びデバイス特性情報１５を入力し、図１で説明したように、階層化回路データの指定された上位側階層の回路ノードを結果出力ノードとする回路シミュレーションを行い、その結果を保存結果データ４として保存する。
【００３９】
シミュレーション結果の表示制御手段１７は、表示ノードの指定情報１６が入力されると、その情報で指定された回路ノードが保存結果データ４に含まれているかを検索する。含まれていれば、検索した回路ノードのデータを結果波形情報１８としてディスプレイ１９に表示制御する。
【００４０】
表示ノードの指定情報１６で指定された回路ノードのデータが保存結果データ４に含まれていない場合、オン・ザ・フライ・シミュレーションを経て必要な回路ノードの波形情報をディスプレイ１９に表示する。この処理はオン・ザ・フライ・シミュレーション制御等を行う部分回路シミュレーション制御手段２０で制御する。すなわち、再実行制御部２４は、所要の回路ノードのデータが保存結果データ４に含まれていないとき、その回路ノードを結果出力ノードとする回路シミュレーションに必要な情報を、前記ネットリスト１３、制御情報１４、デバイス特性情報１５を参照して、部分再実行用データ生成手段２１で生成する。生成された部分再実行用データ２２は、例えば図１の回路領域３ａを部分シミュレーションする為のノードＮ５〜Ｎ８の保存情報、領域３ａ内部の回路ノードＮ１５〜Ｎ１７の初期値情報、論理構成情報、論理を構成するデバイスの特性情報等が、シミュレータで処理可能なフォーマットに変換されたデータとされる。回路シミュレータ２３はその部分再実行用データ２２を用いてシミュレーションを実行し、所要の結果出力ノードの波形データを生成する。生成された波形データは結果表示制御手段１７を介してディスプレイ１９に表示される。特に図示はしないが、従来のシミュレーション処理システムでは対象回路全体の回路ノードを結果出力ノードとしてシミュレーションを行い、図９の保存結果データ４と非保存結果データを区別なく合わせた量のデータが取得される。従来のシミュレーション処理システムでは図９のようなオン・ザ・フライ・シミュレーション制御による部分回路シミュレーション制御を行う手段は存在しない。表示指令で指定された回路ノードの波形情報がなければその指令に対してエラー応答を返すだけである。
【００４１】
図１０には図９の回路シミュレータ１０による回路シミュレーション処理フローが例示される。前記ネットリスト１３などの必要な情報を入力する（Ｓ１）。それら入力情報に基づいて、シミュレーション対象の回路ノードから指定階層の回路ノードを抽出し、結果出力ノードとして設定する（Ｓ２）。前記入力情報に基づいてシミュレーションの為の行列式が生成され（Ｓ３）、デバイスのモデル計算（Ｓ４）、行列計算（Ｓ５）を経て、ニュートンラプソン法による解の収束が得られたかを判定し（Ｓ６）、所定の誤差範囲内で収束が得られるまで上記処理を繰返す。それによる収束値は、その時の結果出力ノードにおける遷移状態の一つの値とされ、全ての結果出力ノードに対する解析が終了するまで、前記モデル計算、行列計算、収束判定を繰り返す（Ｓ７，Ｓ８）。それら処理で各結果出力ノードに得られた結果データが出力されて（Ｓ９）、保存される。
【００４２】
図１１には図９の結果表示制御手段１７及び部分回路シミュレーション制御手段２０によるシミュレーション結果の表示制御フローが例示される。表示ノード情報１６で指定された回路ノードを示す表示変数が与えられると（Ｓ１１）、その表示変数データを検索し（Ｓ１２）、対応する結果データの有無が判定される（Ｓ１３）。対応する結果データがある場合にはデータ表示を行う（Ｓ１４）。対応する結果データがない場合には、部分回路シミュレーション制御手段２０による部分回路シミュレーション処理が行われ（Ｓ１５）、それによって得られた結果データが表示される（Ｓ１４）。結果表示の終了が指示されるまで、上記処理ステップを繰返して、結果表示の制御が行われる（Ｓ１６）。
【００４３】
図１２には図９の部分回路シミュレーション制御手段２０と結果表示制御手段１７によって構成されるオン・ザ・フライ・シミュレーション機能付きの結果表示制御手段２６の詳細な一例が示される。部分再実行用データ生成手段２１で生成される部分再実行用データ２２は、部分再実行用入力波形情報２２Ａ、部分再実行用ネットリスト２２Ｂ、部分再実行用初期値情報２２Ｃを含む。オン・ザ・フライ・シミュレーションによるシミュレーションの再実行対象を図１の回路領域３ａとすると、部分再実行用入力波形情報２２Ａは例えば保存結果データに含まれる図１の回路ノードＮ５〜Ｎ８の情報とされる。部分実行用ネットリスト２２Ｂは例えば図１の回路領域３ａの回路構成を規定するネットリストとされる。前記部分再実行用初期値情報２２Ｃは、例えば保存結果データ４と共に保存された回路領域３ａ内部の回路ノードＮ１５〜Ｎ１７の初期値情報とされる。前記部分再実行用データを用いた回路シミュレーションにより、非保存結果データとされた回路ノードの内の所要の回路ノードの情報が結果データ２３Ａとして得られる。
【００４４】
次に、上位側回路領域の回路ノードを結果出力ノードとして抽出する処理について説明する。この処理は図１０のステップＳ２における結果出力ノード抽出処理に対応される。
【００４５】
図１３には階層構造を持った回路データ（階層化回路データ）による階層構造が例示される。●は回路ブロック（以下単にブロックとも記す）が有する回路ノードの内の内部接続ノードを意味し、◆はブロックが有する回路ノードの内の外部接続ノードを意味する。図１４には図１３の回路ブロックの階層構造と階層レベルとの関係が示される。図１３及び図１４より、最上位ブロックは下位のブロックＳ１，Ｓ２を参照し、階層レベル２のブロックＳ１はブロックＳ２を参照する。回路レベル３のブロックＳ２は下位のブロック参照を有していない。
【００４６】
図１５には図３などで説明した階層化回路データにおける各階層の回路ブロックが保有する情報を例示する。回路ブロックは、ブロック名、下位ブロックの階層間対応情報、素子情報、外部接続ノード情報、及び内部接続ノード情報を有する。下位ブロックの階層間対応情報及び素子情報については不要な場合もある。前記下位ブロックの階層間対応情報は、下位ブロック参照名、接続ノード情報、外部接続ノード情報、及び下位ブロック名を有する。図１３の最上位ブロックを一例とすれば、下位ブロック参照名は参照を定義する定義側のＸ１，Ｘ２であり、下位ブロック名はＸ1に対応して参照される側のＳ１であり、Ｘ２に対応して参照される側のＳ２である。
【００４７】
前記回路ブロックの態様を説明する。回路ブロックの態様は図１６に例示されるところの下位ブロックのみで構成される態様、図１７に例示されるところの下位ブロックと素子で構成される態様、図１８に例示されるところの素子のみで構成される態様に大別される。素子とは、最下位概念の回路要素を意味し、トランジスタ、抵抗、容量、伝達関数などで表現される数学的要素を意味する。ブロックとは複数の回路素子の集合として位置付けられる。図１６の回路ブロックの回路情報は素子情報を持たない。図１８の回路ブロックは下位ブロックの階層間対応情報を持たない。
【００４８】
シミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの一般的なデータ形態は図１９に例示される。階層レベル間における回路ブロック情報のリンクは前記下位ブロックの階層間対応情報で行われる。図１９に例示されるデータ形態の回路ブロック情報から外部接続ノードや内部接続ノードのノード情報を抽出したときの情報フォーマットは、特に制限されないが、図２０に例示されるように、階層レベル毎に最上位側より下位ブロック参照名が区切り文字で区切られて付加され、最後に外部接続ノード名又は内部接続ノード名を有する、階層情報付きノード名としての情報フォーマットを有する。
【００４９】
図２１には図１３に例示された階層構造を持つシミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの具体例が示される。図２２には図２１の回路ブロック情報から抽出された外部接続ノード及び内部接続ノードの全てのノード情報が階層情報付きノード名として与えられている。
【００５０】
図２３には前記結果出力ノード抽出処理の制御フローチャートが例示される。先ず、最上位ブロックを選択し階層レベルを1に設定する（Ｓ２０）。設定された階層レベルの階層情報と内部ノードを階層情報付きノード名として結果出力ノードに登録する（Ｓ２１）。次に、前記図９のデータ保存領域情報１１として指定された階層レベルの指定値（指定階層レベル）が前記ステップＳ２０の設定値（設定階層レベル）に等しいかが判定される（Ｓ２２）。一致していないときは、回路ブック情報から下位ブロック参照情報を検索し（Ｓ２３）、下位ブロック参照の有無を判別する（Ｓ２４）。下位ブロック参照があるときは、当該参照に係る下位ブロックへ移動し、設定階層レベルを１上げる（Ｓ２５）。移動した下位ブロックにおいて前記ステップＳ２１〜Ｓ２４の処理を行う。上記処理は、設定階層レベルが指定階層レベルに到達するまで、或は下位ブロックの参照がなくなるまで繰返される。
【００５１】
下位ブロックの参照がなくなったとき、或は、設定階層レベルが指定階層レベルに到達したとき、設定階層レベルが“１”であるかを判別し（Ｓ２６）、そうでなければ、設定階層レベルから一つ上位のブロックに戻り、設定階層レベルを１下げる（Ｓ２７）。この設定階層レベルのブロックにおいて全ての下位ブロック参照が終了したかを判定する（Ｓ２８）。即ち、そこから下位にリンクする更に別の下位ブロック参照があるか否かを判別する。判別の結果、更に別の下位ブロック参照がある場合には、次の下位ブロック参照に対応する下位ブロックへ移動し、設定階層レベルを1上げて（Ｓ２９）ステップＳ２１に戻り、上記同様の処理を繰返す。前記ステップＳ２８の判別により、その設定階層レベルから下位にリンクする更に別の下位ブロック参照がないと判断されたときは、設定階層レベルが“１”であるかが判別され（Ｓ３０）、そうでなけれステップＳ２７に戻り、前記ステップＳ２６又はＳ３０において設定階層レベルが“１”である、と判別されるまで上記処理を繰返す。
【００５２】
図２４には図２１の階層化された回路ブロック情報に対して、指定階層レベルを２とし図２３の抽出処理を行ったときに抽出されるノード情報の所在が例示される。抽出されるノード情報は太枠矩形で覆われている。図２５にはそのようにして抽出されて登録された階層情報付きノード名が太枠矩形に覆われて示されている。当該抽出された回路ノードが図９の回路シミュレータ１０によるシミュレーション結果の出力ノードとされる。図２５の階層レベル３の回路ノードはオン・ザ・フライ・シミュレーションによる任意の結果出力ノードとされる。この例に則して説明すると、図２５の階層レベル３におけるノード名Ｎ１、即ち、図１３の最上位ブロックで参照されている回路ブロックＸ１内で参照されている回路ブロックＸ１及びＸ２における回路ノードＮ１のシミュレーション波形は、前記オン・ザ・フライ・シミュレーションにより演算されて、表示可能にされる。図２６には、そのオン・ザ・フライ・シミュレーションで図１３の回路における階層情報付きノードＸ１．Ｘ１．Ｎ１についてシミュレーション結果を生成するときの概念図が例示される。「１」、「２」、「３」、「４」は図１３の対応ノードを意味する。
【００５３】
上記説明では、結果出力ノードの抽出処理機能は図９の回路シミュレータ１０がその機能の一部として有するものとしたが、図２７に例示されるように結果出力ノード抽出処理手段１０Ａを回路シミュレータ１０から分離させてもよい。要するに、回路シミュレータとは別に提供される結果出力ノード抽出プログラムを利用してよい。図２７にはオン・ザ・フライ・シミュレーションのための手段は図示を省略してある。
【００５４】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【００５５】
例えば、シミュレーション対象回路の規模は、数十万乃至数百万ゲートの規模であってよい。図１９等に基づく説明ではシミュレーション結果の表示機能の拡張としてオン・ザ・フライ・シミュレーションを位置付けているが、表示とは切り離して、部分シミュレーションとして発明を把握することは当然可能である。更に表示機能拡張の場合にも、シミュレーション結果の表示に限定されず、階層情報に対するデータ処理結果の表示というスタンスで発明を把握することが可能である。
【００５６】
更に、上記シミュレーション方法は前述のフローチャートで示した機能若しくは処理手順をコンピュータを用いて実現する為のシミュレーションプログラムとして把握可能であることは言うまでも無い。そのようなシミュレーションプログラムが提供されることにより、前記シミュレーション方法を容易に実施に移すことが可能になる。
【００５７】
また、本発明のシミュレーション方法は回路シミュレーションに限定されず、デバイスシミュレーションにも適用可能である。例えば、ＭＯＳトランジスタなどのデバイス断面領域をメッシュ状のブロックに分けて階層的に把握しながらシミュレーションを行うデバイスシミュレーションの場合、前記結果出力点は、例えばデバイス断面上の電流又は電圧着目点になる。前記上位側階層のシミュレーションでは結果出力点は前記メッシュ境界部分に存在され、下位側階層のシミュレーションでは結果出力点は前記メッシュ内に存在されることになる。メッシュ内の結果出力点をシミュレーション結果として得る場合には、メッシュ境界部分の既存結果出力点の既存シミュレーション結果と、その既存結果を得る時と同じシミュレーション初期条件とを用いて部分的なデバイスシミュレーションを行えばよい。
【００５８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【図面の簡単な説明】
【００５９】
【図１】本発明に係るシミュレーション方法の概念を結果出力区分の一例と共に示す説明図である。
【図２】本発明に係るシミュレーション方法の概念を更に原理的に示した説明図である。
【図３】本発明に係るシミュレーション方法の原理を階層化回路データの階層構造に着目して示した説明図である。
【図４】シミュレーション対象回路における部分的な回路変更や素子パラメータの変更があったときの状態を例示する説明図である。
【図５】部分的な回路変更や素子パラメータの変更があたとき当該変更を反映したシミュレーション結果を得る方法を例示する説明図である。
【図６】図５の部分的な変更に対処するシミュレーション方法の原理を階層化回路データの階層構造に着目して示した説明図である。
【図７】オン・ザ・フライ・シミュレーションの並列処理を例示する説明図である。
【図８】回路変更等に起因する部分領域に対するオン・ザ・フライ・シミュレーション類似のシミュレーションの並列処理を例示する説明図である。
【図９】本発明に係るシミュレーション方法を実現する為のデータ処理システムを例示するブロック図である。
【図１０】図９の回路シミュレータ１０による回路シミュレーション処理を例示するフローチャートである。
【図１１】図９の結果表示制御手段及び部分回路シミュレーション制御手段によるシミュレーション結果の表示制御を例示するフローチャートである。
【図１２】図９の部分回路シミュレーション制御手段と結果表示制御手段によって構成されるオン・ザ・フライ・シミュレーション機能付きの結果表示制御手段の詳細な一例を示すブロック図である。
【図１３】階層構造を持った回路データによる階層構造を例示する説明図である。
【図１４】図１３の回路ブロックの階層構造と階層レベルとの関係を示す概念図である。
【図１５】図３などで説明した階層化回路データにおける各階層の回路ブロックが保有する情報を例示する情報フォーマット図である。
【図１６】下位ブロックのみで構成される回路ブロックの態様とその情報を例示する説明図である。
【図１７】下位ブロックと素子で構成される回路ブロックの態様とその情報を例示する説明図である。
【図１８】素子のみで構成される回路ブロックの態様とその情報を例示する説明図である。
【図１９】シミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの一般的なデータフォーマットを例示するフォーマット図である。
【図２０】図１９に例示されるデータ形態の回路ブロック情報から外部接続ノードや内部接続ノードのノード情報を抽出したときの情報フォーマット図である。
【図２１】図１３に例示された階層構造を持つシミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの具体例を例示する説明図である。
【図２２】図２１の回路ブロック情報から抽出可能な全ての階層情報付きノード名を有するノード情報の説明図である。
【図２３】結果出力ノード抽出処理の制御を例示するフローチャートである。
【図２４】図２１の階層化された回路ブロック情報に対して指定階層レベルを２とし図２３の抽出処理を行ったときに抽出されるノード情報の所在を例示する説明図である。
【図２５】図２２の階層情報付きノード名に対して、図２３の抽出処理で抽出されるノード情報を太枠矩形で例示する説明図である。
【図２６】図１３の回路における階層情報付きノードＸ１．Ｘ１．Ｎ１について、オン・ザ・フライ・シミュレーションでシミュレーション結果を生成するときの概念図である。
【図２７】結果出力ノード抽出処理手段を回路シミュレータ１０から分離させてた例を示す説明図である。
【符号の説明】
【００６０】
１  シミュレーション対象回路
２  データ保存領域
３ａ〜３ｈ  データ非保存領域
【図１】
2006323873.tif 000003
【図２】
2006323873.tif 000004
【図３】
2006323873.tif 000005
【図４】
2006323873.tif 000006
【図５】
2006323873.tif 000007
【図６】
2006323873.tif 000008
【図７】
2006323873.tif 000009
【図８】
2006323873.tif 000010
【図９】
2006323873.tif 000011
【図１０】
2006323873.tif 000012
【図１１】
2006323873.tif 000013
【図１２】
2006323873.tif 000014
【図１３】
2006323873.tif 000015
【図１４】
2006323873.tif 000016
【図１５】
2006323873.tif 000017
【図１６】
2006323873.tif 000018
【図１７】
2006323873.tif 000019
【図１８】
2006323873.tif 000020
【図１９】
2006323873.tif 000021
【図２０】
2006323873.tif 000022
【図２１】
2006323873.tif 000023
【図２２】
2006323873.tif 000024
【図２３】
2006323873.tif 000025
【図２４】
2006323873.tif 000026
【図２５】
2006323873.tif 000027
【図２６】
2006323873.tif 000028
【図２７】
2006323873.tif 000029