JP3905885B2 - シミュレーション方法、シミュレーションプログラム及び表示処理方法 - Google Patents
シミュレーション方法、シミュレーションプログラム及び表示処理方法 Download PDFInfo
- Publication number
- JP3905885B2 JP3905885B2 JP2003538942A JP2003538942A JP3905885B2 JP 3905885 B2 JP3905885 B2 JP 3905885B2 JP 2003538942 A JP2003538942 A JP 2003538942A JP 2003538942 A JP2003538942 A JP 2003538942A JP 3905885 B2 JP3905885 B2 JP 3905885B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- simulation
- data
- node
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Description
本発明は、回路シミュレーション方法に代表されるデータ処理方法、そしてシミュレーションプログラムに関し、例えば半導体集積回路の開発もしくは設計に用いるシミュレータに適用して有効な技術に関するものである。
背景技術
回路シミュレーション技術は半導体集積回路の回路設計及びレイアウト設計などにおける回路検証技術として利用される。近年のデバイスの微細化に伴う回路の大規模化、高集積化により、回路シミュレーションの実行時間増大、シミュレーション結果のデータ量増大が顕在化されている。実際の回路シミュレーション処理では、設計者が確認したい情報を出力として選択的に指定してシミュレーション処理を行う。指定された情報だけが結果データとして保存される。従って、保存されていない結果データは結果表示できない。任意の結果表示を可能にするにはシミュレーション対象の全ての回路ノードを指定したシミュレーションを行って結果を保持しておかなければならない。大規模回路では全部の結果データを保存するにはデータ量が膨大になり、全てを保存するのは実質的に不可能である。また、結果表示の対象データ量が増大すると、結果データの検索時間が増し、表示速度が遅くなる。更に、大規模回路では、シミュレーション処理時間が増大するため、部分的な回路変更や素子パラメータの変更に対処するための再シミュレーション時間も増大する。
シミュレーション結果を保存する記憶領域の削減に関し、特開平11−96207号公報にはシミュレーション結果を圧縮して保存する技術が記載され、特開平9−259151号公報には信号経路の上流側から下流側に向かって回路を分割し、分割回路の出力の影響を考慮して部分毎にシミュレーションを進める技術が開示される。しかしながら、前者の技術では、圧縮・伸張処理が新たに必要になるから、シミュレーションや結果表示に伴う計算機処理時間が更に増大してしまう。後者の技術では、計算機処理に用いるメモリ量は減ってもその結果を保持する補助記憶手段の記憶容量は依然として減らない。しかも、他のシミュレーション結果に依存しないように分割して回路を直列的にシミュレーション処理しなけらばならないから処理時間は増大する傾向にあると考えられる。
本発明の目的は、大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存しなくても任意の結果出力点のデータを表示可能なシミュレーション技術を提供することにある。
本発明の別の目的は、大規模集積回路のような大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存するのと等価なデータ表示性能を少ない記憶容量で達成可能なシミュレーション方法を提供することにある。
本発明の更に別の目的は、大規模集積回路のような大規模なシミュレーション対象に対しシミュレーション結果データの表示速度を高速化することが容易なシミュレーション方法を提供することにある。
本発明のその他の目的は、大規模回路で部分的な回路変更や素子パラメータの変更時に再シミュレーション時間を短縮することが可能なシミュレーション方法を提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
発明の開示
〔1〕本発明に係るシミュレーション方法は、階層化回路データの上位側階層の回路ノードを結果出力ノードとするシミュレーションを行って結果を保存する第1処理と、それよりも下位側階層の回路ノードに対し、上記処理で保存されているシミュレーション結果を前記下位側階層の回路ノードを含む回路領域の入出力情報に用いて、所定の初期条件でシミュレーションを行う第2処理と、を含む。所定の初期条件は、望ましくは前記第1処理における前記シミュレーションと同等の初期条件であるとよい。前記初期条件は、例えば第1処理でシミュレーション結果と共に保存して、再利用可能にすればよい。
上記より、シミュレーション結果が保存される結果出力ノードは上位側階層に制限されるから、シミュレーションで保存すべき結果データ量を削減することができる。下位側階層の回路ノードについては結果出力ノードとしてシミュレーション結果が保存されていないが、上位側階層の結果出力ノードの結果データが下位側階層の回路ノードへの情報インタフェースを担い、第1処理のシミュレーション条件が下位側階層の内部の回路ノードに対する初期的状態を与える。これにより、第1処理で得られた結果データの表示だけでは足りない表示指令に対して、第2処理で部分再シミュレーションを行った結果を表示すればよい。したがって、大規模集積回路のような大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存するのと等価なデータ表示性能を少ない記憶容量(第1処理による結果データを保存可能な容量)で達成することができる。保存すべき結果データ量の削減により結果データの検索時間を短縮できる。また、第2処理による再シミュレーション時の対象回路規模を小さくできるから、大規模回路で部分的な回路変更や素子パラメータの変更時に再シミュレーション時間を短縮することが可能である。
〔2〕本発明の具体的な形態によるシミュレーション方法は、指定された上位側階層の回路ノードを階層化回路データから抽出する抽出処理と、前記抽出処理で抽出された回路ノードを結果出力ノードとして回路シミュレーションを行うシミュレーション実行処理と、前記シミュレーション実行処理により結果出力ノードに得られた結果データを保存する保存処理と、前記指定階層よりも下位側階層の回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存された結果データから取得して所定の初期条件、望ましくは、前記回路シミュレーションと同等の初期条件で、回路シミュレーションを実行するシミュレーション再実行処理と、を含む。この方法は上記同様に作用する。
更に具体的な態様として、シミュレーション処理結果の表示指令に対し、前記保存処理で保存された結果データの表示又は前記シミュレーション再実行処理で得られたシミュレーション結果の表示を行う表示処理を更に含んでよい。
前記抽出処理は、例えば、階層化回路データにおける下位階層への参照系列を追いながら階層レベルを下位に設定変更する毎に、設定された階層レベルで把握可能な回路ノードを登録する処理を、シミュレーション対象における全ての参照系列に対して行う処理としてよい。シミュレーションの結果出力ノードを階層指定によって抽出することが可能になる。
〔3〕シミュレーション結果の表示処理に着目した本発明の具体的な更に別の形態によるシミュレーション方法は、指定された上位側階層の回路ノードを結果出力ノードとして回路シミュレーションを行うシミュレーション実行処理と、前記シミュレーション実行処理により結果出力ノードに得られた結果データを保存する保存処理と、前記保存処理で保存された結果データの中から検索された結果データを、前記シミュレーション実行処理結果として表示する第1表示処理と、前記保存処理で保存された結果データの中から検索された結果データを、前記指定された上位側階層に対する下位側階層の回路領域における外部入出力情報に用いて所定の初期条件、望ましくは、上記回路シミュレーションと同等の初期条件で、当該下位側階層の回路領域における回路シミュレーションを実行するシミュレーション再実行処理と、前記シミュレーション再実行処理の結果データを表示する第2表示処理と、を含む。
部分的な回路変更やデバイスパラメータの変更への対処に着目した本発明の更に別の形態によるシミュレーション方法は、階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して、回路シミュレーションを実行するシミュレーション再実行処理と、を含む。これにより、全体的にシミュレーションをやり直さなくて済むから、再シミュレーション時間を短縮することができる。また、前記シミュレーション再実行処理において、前記回路領域において信号経路が相互に独立する部分領域を部分領域毎に並列に回路シミュレーションを実行してよい。これにより、シミュレーションの計算機処理時間を更に短縮することができる。
回路シミュレーション以外のデバイスシミュレーションのようなシミュレーションにも着目した態様のシミュレーション方法は、指定された上位側階層の結果出力点をシミュレーション対象から抽出する第1処理と、抽出された結果出力点を出力項目としてシミュレーションを行う第2処理と、前記第2処理で結果出力点に得られた結果データを保存する第3処理と、前記指定階層よりも下位側階層に係るシミュレーション結果の表示指令に対し、前記下位側階層の結果出力点を含む領域の境界情報を前記第3処理で保存された結果データから取得して、所定の初期条件、望ましくは前記第2処理のシミュレーションと同等の初期条件で、当該下位側階層で結果出力を得る為のシミュレーションを行う第4処理と、を含む。
〔4〕本発明に係るシミュレーションプログラムは、階層化回路データの上位側階層の回路ノードを結果出力ノードとするシミュレーションを行って結果を保存する第1機能と、それよりも下位側階層の回路ノードに対し、上記第1処理で保存されているシミュレーション結果を前記下位側階層の回路ノードを含む回路領域の入出力情報に用いて、所定の初期条件、望ましくは上記シミュレーションと同等の初期条件で、シミュレーションを行う第2機能と、をコンピュータに実現させるものである。このプログラムにより上記シミュレーション方法を容易に実施させることがことができる。
更に別の態様のシミュレーションプログラムは、指定された上位側階層の回路ノードを階層化回路データから抽出する抽出機能と、前記抽出機能で抽出された回路ノードを結果出力ノードとして回路シミュレーションを行うシミュレーション実行機能と、前記シミュレーション実行機能により結果出力ノードに得られた結果データを保存する保存機能と、前記指定階層よりも下位側階層の回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存された結果データから取得して、所定の初期条件、望ましくは前記回路シミュレーションと同等の初期条件で、回路シミュレーションを実行するシミュレーション再実行機能と、をコンピュータに実現させるものである。
更に別の態様のシミュレーションプログラムは、指定された上位側階層の結果出力点をシミュレーション対象から抽出する第1機能と、抽出された結果出力点を出力項目としてシミュレーションを行う第2機能と、第2機能で結果出力点に得られた結果データを保存する第3機能と、第3機能で保存された結果データでは不足する表示指令に対し、前記第3機能で保存された前記結果データを用いて所定の初期条件、望ましくは、前記シミュレーションと同等の初期条件で、前記指定階層より下位側階層に関するシミュレーションを行う第4機能と、をコンピュータに実現させるプログラムである。このプログラムは、デバイス断面領域をメッシュ状のブロックに分けして階層的に把握しながらシミュレーションを行うデバイスシミュレーションへの適用も想定する。この場合、前記結果出力点は、例えばデバイス断面上の電流又は電圧着目点になる。例えば、前記上位側階層のシミュレーションでは結果出力点は前記メッシュ境界部分に存在され、下位側階層のシミュレーションでは結果出力点は前記メッシュ内に存在されることになる。
〔5〕表示処理方法の観点に立った発明は、指定された上位側階層で結果出力を得る為のデータ処理を行う第1処理と、前記第1処理で得られた結果データを保存する第2処理と、前記第2処理で保存された結果データを表示する第3処理と、前記第2処理で保存されていない結果データの表示指令を受付けてその表示を行う第4処理と、を含む。前記第4処理は、前記第1処理におけるデータ処理の初期条件と、前記第2処理で保存された結果データとを利用してデータ処理を再実行した結果を表示する処理である。
発明を実施するための最良の形態
第1図には本発明に係るシミュレーション方法の概念を結果出力区分の一例と共に示す。同図において1は、設計データで特定されるシミュレーション対象回路である。回路シミュレーションを行なうとき、特定される信号端子もしくは回路ノードに入力波形情報が与えられ、この初期情報を基に非線形方程式及び回路行列を解くことで初期の回路状態を決定する。この時、全ての回路ノードの初期値が決定する。初期の回路状態を基に入力波形情報を遷移して非線形方程式及び回路行列を解くことでその回路状態を決定しながら、回路ノードの遷移データを求めていく。この内、結果出力ノードとして指定された回路ノードの結果データが保存される。結果データを保存する回路ノードは、階層化された設計データにおける上位側階層領域の回路ノードに限定される。第1図ではハッチングされた回路領域(データ保存領域)2に含まれる回路ノードN1〜N14を結果出力ノードとして、その結果データが保存される。ハッチングされていない回路領域(データ非保存領域)3a〜3h内の回路ノード(3aを代表として示されるノードN15〜N17)に関する遷移データは結果データとして保存されない。結果データの保存に際して、結果出力ノードとして指定された回路ノードの遷移データ以外にシミュレーション対象回路1の全ての回路ノードの初期値も保存する。尚、データ保存領域内の回路ノードに関する初期値は遷移データに含まれていてもよい。例えば、回路領域3aの回路ノードN15〜N17に関するシミュレーション結果が欲しい場合には、回路領域3aの内部の回路ノードN15〜N17に対する初期状態を、前記保存されている初期値によって決定し、回路領域3aと外部で接続する回路ノードN5〜N8の状態は、前記保存された結果データから決める。これにより、部分的な回路領域3aのシミュレーションを、対象回路1の全体に対して行ったシミュレーションと同等の初期条件で実行でき、それによって当該領域3a内の回路ノードN15〜N17に得られた結果データを表示すればよい。その他の回路領域3b〜3hの内部回路ノードに対しても必要に応じて部分的なシミュレーションを再実行して、その結果を表示すればよい。そのようなシミュレーションは、結果を表示したいときにその場ですぐに表示すべき情報を復元するというようなシミュレーションを行う、という意味で、オン・ザ・フライ・シミュレーション(on−the−fly simulation)とも称することにする。
第2図には本発明に係るシミュレーション方法の概念を更に原理的に示してある。データ非保存領域は3で総称されている。データ保存領域2とデータ非保存領域3とを分ける指標は階層化回路データの階層構造に依存する。
第3図には本発明に係るシミュレーション方法の原理が階層化回路データの階層構造に着目して示される。シミュレーション対象回路1は階層化された回路ブロックにより定義される。最上位ブロックから最下層の回路ブロックまで階層化されている。前記データ保存領域2は最上位階層のブロックから任意階層の回路ブロックまでの階層データにより特定される上位側階層の回路として規定される。前記データ非保存領域3は、前記データ保存領域2を規定する階層よりも下位側階層の回路ブロックで特定される回路として規定される。データ保存領域2の回路ノードが結果出力ノードとされ、当該ノードの結果データが保存結果データ4として保存される。シミュレーションで保存されなかったデータ非保存領域3の回路ノードに関する表示要求に対しては前記オン・ザ・フライ・シミュレーションによる得られた結果データ5を表示すればよい。
第3図より明らかなように、下位側階層の非保存領域3の回路ノードも結果出力ノードとしてそのシミュレーション結果も保存する場合には、保存すべきデータとして非保存結果データ9も保存対象にしなければならなくなる。したがって、データ非保存領域3の回路ノードに対して必要なときその都度、前記オン・ザ・フライ・シミュレーションで取得した結果データ5を表示するシミュレーション方法を採用すれば、大規模集積回路のような大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存するのと等価なデータ表示性能を少ない記憶容量で達成することができる。保存すべき結果データ量の削減により結果データの検索時間を短縮できる。
次に、保存結果データ4を取得した後、シミュレーション対象回路1における部分的な回路変更や素子パラメータの変更があたとき、その変更を反映したシミュレーション結果を得る方法について説明する。
第4図にはシミュレーション対象回路における部分的な回路変更や素子パラメータの変更があったときの状態が例示される。第4図では例えば前記回路領域3aが変更されている。この変更前に、シミュレーション対象回路のシミュレーションにより前記データ保存領域2内の回路ノードN1〜N14の結果データは既に保存されているものとする。回路領域3aの変更は、当該回路領域3aの出力を信号伝播の上流側から受ける回路ノードN7,N8、N12,N13及び回路領域3d,3e内部の回路ノードに影響を与える。第4図において影響される回路ノードと回路領域には文字iが付されている。
第5図には部分的な回路変更や素子パラメータの変更があったとき、その変更を反映したシミュレーション結果を得る方法が例示される。前記保存結果データ4を取得したときの回路領域3aの変更は、当該回路領域3aの出力を信号伝播の上流側から受ける回路ノードN7,N8、N12,N13及び回路領域3d,3e内部の回路ノードに影響を与える。そのような変更とそれによる影響を受ける回路領域6に対して、前記オン・ザ・フライ・シミュレーションに類似の手法でシミュレーションを行う。前記変更の影響を受けない回路ノードすなわち、回路領域6と外部で接続する回路ノードN5,N6,N9の状態は、前記保存された結果データから決める。変更された回路領域3a内部の回路ノードは変更内容に応じてその初期値が決定される。また、回路領域3aの出力を信号伝播の上流側から受ける回路ノードN7,N8、N12,N13及び回路領域3d,3e内部の回路ノードも回路領域3aの変更に応じてその初期値が決定される。これにより、部分的な回路領域6のシミュレーションを、部分的に変更された対象回路1の全体に対して行ったシミュレーションと同等の初期条件で実行でき、それによって当該領域6の回路ノードN7、N8,N12,N13に得られた結果データを、変更前の回路ノードの結果データと置き換えればよい。第5図において、変更された結果データが得られる結果出力ノードとしての回路ノードN7、N8,N12,N13には文字“m”が付されている。
第6図には第5図の部分的な変更に対処するシミュレーション方法の原理が階層化回路データの階層構造に着目して示される。第6図の2pは第5図の領域中における保存領域を意味する。非保存領域である領域3a,3d,3eは下位階層の回路ブロックのデータを有する。領域6のネットリスト7を前記保存結果データ4の一部を用いて回路シミュレーションを行うことにより、回路領域6に関する新規の保存結果データ8が生成される。
上記より、部分的な回路変更等の影響を受ける回路領域6に対して、前記オン・ザ・フライ・シミュレーションに類似の手法でシミュレーションを行うことができるから、シミュレーション時の対象回路規模を小さくでき、大規模回路で部分的な回路変更や素子パラメータの変更時に再シミュレーション時間を短縮することが可能になる。
第7図には前記オン・ザ・フライ・シミュレーションの並列処理が例示される。第1図で説明したオン・ザ・フライ・シミュレーションを複数の回路領域で行うとき、複数のプロセッサCPU1〜CPU5を用いて並列演算処理を行ってよい。これにより、複数の回路領域に対する表示指令に応答する演算処理及び表示動作の高速化を実現することができる。
第8図には回路変更等に起因する部分領域に対するオン・ザ・フライ・シミュレーション類似のシミュレーションを並列処理する例が示される。部分的な回路変更によって影響される部分領域として、図示の6,6Aの複数個所が存在する場合に、それら部分領域6,6Aに対し、複数のプロセッサCPU1、CPU2を用いて並列演算処理を行ってよい。これにより、複数の回路変更個所が信号経路を共有しない複数の部分領域6,6Aに及ぶ場合にもそれらに対する再シミュレーション処理を高速化することができる。
次に第1図で説明したしシミュレーション方法を更に具体的に説明する。
第9図には本発明に係るシミュレーション方法を実現する為のデータ処理システムが例示される。ネットリスト13はシミュレーション対象回路を特定する階層化回路データである。データ保存領域情報11は階層化回路データにおいて結果出力ノードとして抽出すべき回路ノードを決める為の情報、例えば階層化回路データの所望の階層レベルなどを指定する情報である。指定された階層レベルを指定階層レベルと称する。入力波形情報12は階層化回路データで特定される信号端子もしくは回路ノードに与えられる信号波形を規定する情報であり、シミュレーション対象回路の回路ノードの初期値は前記入力波形情報12等で決まる。デバイス特性情報15は階層化回路データで特定される回路素子の回路特性を規定する為のデバイスモデルパラメータなどを意味する。制御情報14はシミュレーションを行う回路シミュレータ10の動作を制御するその他の制御情報を意味する。回路シミュレータ10は、データ保存領域情報11、入力波形情報12、ネットリスト13、制御情報14、及びデバイス特性情報15を入力し、第1図で説明したように、階層化回路データの指定された上位側階層の回路ノードを結果出力ノードとする回路シミュレーションを行い、その結果を保存結果データ4として保存する。
シミュレーション結果の表示制御手段17は、表示ノードの指定情報16が入力されると、その情報で指定された回路ノードが保存結果データ4に含まれているかを検索する。含まれていれば、検索した回路ノードのデータを結果波形情報18としてディスプレイ19に表示制御する。
表示ノードの指定情報16で指定された回路ノードのデータが保存結果データ4に含まれていない場合、オン・ザ・フライ・シミュレーションを経て必要な回路ノードの波形情報をディスプレイ19に表示する。この処理はオン・ザ・フライ・シミュレーション制御等を行う部分回路シミュレーション制御手段20で制御する。すなわち、再実行制御部24は、所要の回路ノードのデータが保存結果データ4に含まれていないとき、その回路ノードを結果出力ノードとする回路シミュレーションに必要な情報を、前記ネットリスト13、制御情報14、デバイス特性情報15を参照して、部分再実行用データ生成手段21で生成する。生成された部分再実行用データ22は、例えば第1図の回路領域3aを部分シミュレーションする為のノードN5〜N8の保存情報、領域3a内部の回路ノードN15〜N17の初期値情報、論理構成情報、論理を構成するデバイスの特性情報等が、シミュレータで処理可能なフォーマットに変換されたデータとされる。回路シミュレータ23はその部分再実行用データ22を用いてシミュレーションを実行し、所要の結果出力ノードの波形データを生成する。生成された波形データは結果表示制御手段17を介してディスプレイ19に表示される。特に図示はしないが、従来のシミュレーション処理システムでは対象回路全体の回路ノードを結果出力ノードとしてシミュレーションを行い、第9図の保存結果データ4と非保存結果データを区別なく合わせた量のデータが取得される。従来のシミュレーション処理システムでは第9図のようなオン・ザ・フライ・シミュレーション制御による部分回路シミュレーション制御を行う手段は存在しない。表示指令で指定された回路ノードの波形情報がなければその指令に対してエラー応答を返すだけである。
第10図には第9図の回路シミュレータ10による回路シミュレーション処理フローが例示される。前記ネットリスト13などの必要な情報を入力する(S1)。それら入力情報に基づいて、シミュレーション対象の回路ノードから指定階層の回路ノードを抽出し、結果出力ノードとして設定する(S2)。前記入力情報に基づいてシミュレーションの為の行列式が生成され(S3)、デバイスのモデル計算(S4)、行列計算(S5)を経て、ニュートンラプソン法による解の収束が得られたかを判定し(S6)、所定の誤差範囲内で収束が得られるまで上記処理を繰返す。それによる収束値は、その時の結果出力ノードにおける遷移状態の一つの値とされ、全ての結果出力ノードに対する解析が終了するまで、前記モデル計算、行列計算、収束判定を繰り返す(S7,S8)。それら処理で各結果出力ノードに得られた結果データが出力されて(S9)、保存される。
第11図には第9図の結果表示制御手段17及び部分回路シミュレーション制御手段20によるシミュレーション結果の表示制御フローが例示される。表示ノード情報16で指定された回路ノードを示す表示変数が与えられると(S11)、その表示変数データを検索し(S12)、対応する結果データの有無が判定される(S13)。対応する結果データがある場合にはデータ表示を行う(S14)。対応する結果データがない場合には、部分回路シミュレーション制御手段20による部分回路シミュレーション処理が行われ(S15)、それによって得られた結果データが表示される(S14)。結果表示の終了が指示されるまで、上記処理ステップを繰返して、結果表示の制御が行われる(S16)。
第12図には第9図の部分回路シミュレーション制御手段20と結果表示制御手段17によって構成されるオン・ザ・フライ・シミュレーション機能付きの結果表示制御手段26の詳細な一例が示される。部分再実行用データ生成手段21で生成される部分再実行用データ22は、部分再実行用入力波形情報22A、部分再実行用ネットリスト22B、部分再実行用初期値情報22Cを含む。オン・ザ・フライ・シミュレーションによるシミュレーションの再実行対象を第1図の回路領域3aとすると、部分再実行用入力波形情報22Aは例えば保存結果データに含まれる第1図の回路ノードN5〜N8の情報とされる。部分実行用ネットリスト22Bは例えば第1図の回路領域3aの回路構成を規定するネットリストとされる。前記部分再実行用初期値情報22Cは、例えば保存結果データ4と共に保存された回路領域3a内部の回路ノードN15〜N17の初期値情報とされる。前記部分再実行用データを用いた回路シミュレーションにより、非保存結果データとされた回路ノードの内の所要の回路ノードの情報が結果データ23Aとして得られる。
次に、上位側回路領域の回路ノードを結果出力ノードとして抽出する処理について説明する。この処理は第10図のステップS2における結果出力ノード抽出処理に対応される。
第13図には階層構造を持った回路データ(階層化回路データ)による階層構造が例示される。●は回路ブロック(以下単にブロックとも記す)が有する回路ノードの内の内部接続ノードを意味し、◆はブロックが有する回路ノードの内の外部接続ノードを意味する。第14図には第13図の回路ブロックの階層構造と階層レベルとの関係が示される。第13図及び第14図より、最上位ブロックは下位のブロックS1,S2を参照し、階層レベル2のブロックS1はブロックS2を参照する。回路レベル3のブロックS2は下位のブロック参照を有していない。
第15図には第3図などで説明した階層化回路データにおける各階層の回路ブロックが保有する情報を例示する。回路ブロックは、ブロック名、下位ブロックの階層間対応情報、素子情報、外部接続ノード情報、及び内部接続ノード情報を有する。下位ブロックの階層間対応情報及び素子情報については不要な場合もある。前記下位ブロックの階層間対応情報は、下位ブロック参照名、接続ノード情報、外部接続ノード情報、及び下位ブロック名を有する。第13図の最上位ブロックを一例とすれば、下位ブロック参照名は参照を定義する定義側のX1,X2であり、下位ブロック名はX1に対応して参照される側のS1であり、X2に対応して参照される側のS2である。
前記回路ブロックの態様を説明する。回路ブロックの態様は第16図に例示されるところの下位ブロックのみで構成される態様、第17図に例示されるところの下位ブロックと素子で構成される態様、第18図に例示されるところの素子のみで構成される態様に大別される。素子とは、最下位概念の回路要素を意味し、トランジスタ、抵抗、容量、伝達関数などで表現される数学的要素を意味する。ブロックとは複数の回路素子の集合として位置付けられる。第16図の回路ブロックの回路情報は素子情報を持たない。第18図の回路ブロックは下位ブロックの階層間対応情報を持たない。
シミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの一般的なデータ形態は第19図に例示される。階層レベル間における回路ブロック情報のリンクは前記下位ブロックの階層間対応情報で行われる。第19図に例示されるデータ形態の回路ブロック情報から外部接続ノードや内部接続ノードのノード情報を抽出したときの情報フォーマットは、特に制限されないが、第20図に例示されるように、階層レベル毎に最上位側より下位ブロック参照名が区切り文字で区切られて付加され、最後に外部接続ノード名又は内部接続ノード名を有する、階層情報付きノード名としての情報フォーマットを有する。
第21図には第13図に例示された階層構造を持つシミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの具体例が示される。第22図には第21図の回路ブロック情報から抽出された外部接続ノード及び内部接続ノードの全てのノード情報が階層情報付きノード名として与えられている。
第23図には前記結果出力ノード抽出処理の制御フローチャートが例示される。先ず、最上位ブロックを選択し階層レベルを1に設定する(S20)。設定された階層レベルの階層情報と内部ノードを階層情報付きノード名として結果出力ノードに登録する(S21)。次に、前記第9図のデータ保存領域情報11として指定された階層レベルの指定値(指定階層レベル)が前記ステップS20の設定値(設定階層レベル)に等しいかが判定される(S22)。一致していないときは、回路ブック情報から下位ブロック参照情報を検索し(S23)、下位ブロック参照の有無を判別する(S24)。下位ブロック参照があるときは、当該参照に係る下位ブロックへ移動し、設定階層レベルを1上げる(S25)。移動した下位ブロックにおいて前記ステップS21〜S24の処理を行う。上記処理は、設定階層レベルが指定階層レベルに到達するまで、或は下位ブロックの参照がなくなるまで繰返される。
下位ブロックの参照がなくなったとき、或は、設定階層レベルが指定階層レベルに到達したとき、設定階層レベルが“1”であるかを判別し(S26)、そうでなければ、設定階層レベルから一つ上位のブロックに戻り、設定階層レベルを1下げる(S27)。この設定階層レベルのブロックにおいて全ての下位ブロック参照が終了したかを判定する(S28)。即ち、そこから下位にリンクする更に別の下位ブロック参照があるか否かを判別する。判別の結果、更に別の下位ブロック参照がある場合には、次の下位ブロック参照に対応する下位ブロックへ移動し、設定階層レベルを1上げて(S29)ステップS21に戻り、上記同様の処理を繰返す。前記ステップS28の判別により、その設定階層レベルから下位にリンクする更に別の下位ブロック参照がないと判断されたときは、設定階層レベルが“1”であるかが判別され(S30)、そうでなけれステップS27に戻り、前記ステップS26又はS30において設定階層レベルが“1”である、と判別されるまで上記処理を繰返す。
第24図には第21図の階層化された回路ブロック情報に対して、指定階層レベルを2とし第23図の抽出処理を行ったときに抽出されるノード情報の所在が例示される。抽出されるノード情報は太枠矩形で覆われている。第25図にはそのようにして抽出されて登録された階層情報付きノード名が太枠矩形に覆われて示されている。当該抽出された回路ノードが第9図の回路シミュレータ10によるシミュレーション結果の出力ノードとされる。第25図の階層レベル3の回路ノードはオン・ザ・フライ・シミュレーションによる任意の結果出力ノードとされる。この例に則して説明すると、第25図の階層レベル3におけるノード名N1、即ち、第13図の最上位ブロックで参照されている回路ブロックX1内で参照されている回路ブロックX1及びX2における回路ノードN1のシミュレーション波形は、前記オン・ザ・フライ・シミュレーションにより演算されて、表示可能にされる。第26図には、そのオン・ザ・フライ・シミュレーションで第13図の回路における階層情報付きノードX1.X1.N1についてシミュレーション結果を生成するときの概念図が例示される。▲1▼、▲2▼、▲3▼、▲4▼は第13図の対応ノードを意味する。
上記説明では、結果出力ノードの抽出処理機能は第9図の回路シミュレータ10がその機能の一部として有するものとしたが、第27図に例示されるように結果出力ノード抽出処理手段10Aを回路シミュレータ10から分離させてもよい。要するに、回路シミュレータとは別に提供される結果出力ノード抽出プログラムを利用してよい。第27図にはオン・ザ・フライ・シミュレーションのための手段は図示を省略してある。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
例えば、シミュレーション対象回路の規模は、数十万乃至数百万ゲートの規模であってよい。第19図等に基づく説明ではシミュレーション結果の表示機能の拡張としてオン・ザ・フライ・シミュレーションを位置付けているが、表示とは切り離して、部分シミュレーションとして発明を把握することは当然可能である。更に表示機能拡張の場合にも、シミュレーション結果の表示に限定されず、階層情報に対するデータ処理結果の表示というスタンスで発明を把握することが可能である。
更に、上記シミュレーション方法は前述のフローチャートで示した機能若しくは処理手順をコンピュータを用いて実現する為のシミュレーションプログラムとして把握可能であることは言うまでも無い。そのようなシミュレーションプログラムが提供されることにより、前記シミュレーション方法を容易に実施に移すことが可能になる。
また、本発明のシミュレーション方法は回路シミュレーションに限定されず、デバイスシミュレーションにも適用可能である。例えば、MOSトランジスタなどのデバイス断面領域をメッシュ状のブロックに分けて階層的に把握しながらシミュレーションを行うデバイスシミュレーションの場合、前記結果出力点は、例えばデバイス断面上の電流又は電圧着目点になる。前記上位側階層のシミュレーションでは結果出力点は前記メッシュ境界部分に存在され、下位側階層のシミュレーションでは結果出力点は前記メッシュ内に存在されることになる。メッシュ内の結果出力点をシミュレーション結果として得る場合には、メッシュ境界部分の既存結果出力点の既存シミュレーション結果と、その既存結果を得る時と同じシミュレーション初期条件とを用いて部分的なデバイスシミュレーションを行えばよい。
産業上の利用可能性
本発明は、半導体集積回路の回路シミュレーション、半導体デバイスのデバイスシミュレーション等に広く適用することができる。
【図面の簡単な説明】
第1図は本発明に係るシミュレーション方法の概念を結果出力区分の一例と共に示す説明図である。
第2図は本発明に係るシミュレーション方法の概念を更に原理的に示した説明図である。
第3図は本発明に係るシミュレーション方法の原理を階層化回路データの階層構造に着目して示した説明図である。
第4図はシミュレーション対象回路における部分的な回路変更や素子パラメータの変更があったときの状態を例示する説明図である。
第5図は部分的な回路変更や素子パラメータの変更があたとき当該変更を反映したシミュレーション結果を得る方法を例示する説明図である。
第6図は第5図の部分的な変更に対処するシミュレーション方法の原理を階層化回路データの階層構造に着目して示した説明図である。
第7図はオン・ザ・フライ・シミュレーションの並列処理を例示する説明図である。
第8図は回路変更等に起因する部分領域に対するオン・ザ・フライ・シミュレーション類似のシミュレーションの並列処理を例示する説明図である。
第9図は本発明に係るシミュレーション方法を実現する為のデータ処理システムを例示するブロック図である。
第10図は第9図の回路シミュレータ10による回路シミュレーション処理を例示するフローチャートである。
第11図は第9図の結果表示制御手段及び部分回路シミュレーション制御手段によるシミュレーション結果の表示制御を例示するフローチャートである。
第12図は第9図の部分回路シミュレーション制御手段と結果表示制御手段によって構成されるオン・ザ・フライ・シミュレーション機能付きの結果表示制御手段の詳細な一例を示すブロック図である。
第13図は階層構造を持った回路データによる階層構造を例示する説明図である。
第14図は第13図の回路ブロックの階層構造と階層レベルとの関係を示す概念図である。
第15図は第3図などで説明した階層化回路データにおける各階層の回路ブロックが保有する情報を例示する情報フォーマット図である。
第16図は下位ブロックのみで構成される回路ブロックの態様とその情報を例示する説明図である。
第17図は下位ブロックと素子で構成される回路ブロックの態様とその情報を例示する説明図である。
第18図は素子のみで構成される回路ブロックの態様とその情報を例示する説明図である。
第19図はシミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの一般的なデータフォーマットを例示するフォーマット図である。
第20は第19図に例示されるデータ形態の回路ブロック情報から外部接続ノードや内部接続ノードのノード情報を抽出したときの情報フォーマット図である。
第21図は第13図に例示された階層構造を持つシミュレーション対象回路全体の階層化された回路ブロック情報と階層レベルの具体例を例示する説明図である。
第22図は第21図の回路ブロック情報から抽出可能な全ての階層情報付きノード名を有するノード情報の説明図である。
第23図は結果出力ノード抽出処理の制御を例示するフローチャートである。
第24図は第21図の階層化された回路ブロック情報に対して指定階層レベルを2とし第23図の抽出処理を行ったときに抽出されるノード情報の所在を例示する説明図である。
第25図は第22図の階層情報付きノード名に対して、第23図の抽出処理で抽出されるノード情報を太枠矩形で例示する説明図である。
第26図は第13図の回路における階層情報付きノードX1.X1.N1について、オン・ザ・フライ・シミュレーションでシミュレーション結果を生成するときの概念図である。
第27図は結果出力ノード抽出処理手段を回路シミュレータ10から分離させてた例を示す説明図である。
Claims (4)
- コンピュータを用いたシミュレーション方法であって、
指定された上位階層の回路ノードを前記コンピュータにより階層化回路データから抽出する抽出処理と、
入力波形情報の初期情報に基づいて非線形方程式及び回路行列を前記コンピュータにより解析して初期の回路状態を決定する計算処理と、
前記コンピュータにより、前記初期の回路状態及び前記入力波形情報の遷移に基づいて非線形方程式及び回路行列を計算し、すべての回路ノードの遷移データを取得し、前記初期の回路状態と前記遷移データのうち前記上位階層の回路ノードのデータを保存するシミュレーション処理と、
前記コンピュータにより、前記上位階層よりも下位階層の回路ノードについて、その回路ノードを含む回路領域の外部状態を前記保存された前記上位階層の回路ノードのデータから取得して回路シミュレーションを実行するシミュレーション再実行処理と、
シミュレーション処理結果の表示指令に対応して前記コンピュータにより、前記シミュレーション処理で保存された結果データの表示又は前記シミュレーション再実行処理で得られたシミュレーション結果の表示制御を行うための表示処理と、を含み、
前記抽出処理は、階層化回路データにおける下位階層への参照系列を追いながら階層レベルを下位に設定変更する毎に、設定された階層レベルで把握可能な回路ノードを登録する処理を、シミュレーション対象における全ての参照系列に対して行う処理であることを特徴とするシミュレーション方法。 - 前記シミュレーション再実行処理におけるシミュレーションは、前記シミュレーション実行処理におけるシミュレーションと同等の初期条件で行われることを特徴とする請求項1記載のシミュレーション方法。
- 指定された上位階層の回路ノードを階層化回路データから抽出する抽出機能と、
入力波形情報の初期情報に基づいて非線形方程式及び回路行列を解析して初期の回路状態を決定する計算処理と、前記初期の回路状態を基に前記入力波形情報の遷移に基づいて非線形方程式及び回路行列を計算し、すべての回路ノードの遷移データを取得し、前記初期の回路状態と前記遷移データのうち前記上位階層の回路ノードのデータを保存するシミュレーション実行機能と、
前記上位階層よりも下位階層の回路ノードについて、その回路ノードを含む回路領域の外部状態を前記保存された前記上位階層の回路ノードのデータから取得して、回路シミュレーションを実行するシミュレーション再実行機能と、をコンピュータに実現させるシミュレーションプログラムであって、
前記抽出機能は、階層化回路データにおける下位階層への参照系列を追いながら階層レベルを下位に設定変更する毎に、設定された階層レベルで把握可能な回路ノードを登録する処理を、シミュレーション対象における全ての参照系列に対して行う処理であることを特徴とするシミュレーションプログラム。 - 前記シミュレーション再実行機能における解析は、前記シミュレーション実行機能における解析と同等の初期条件で行われることを特徴とする請求項3記載のシミュレーションプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2001/009321 WO2003036523A1 (fr) | 2001-10-24 | 2001-10-24 | Procede et programme de simulation et procede d'affichage |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006214146A Division JP2006323873A (ja) | 2006-08-07 | 2006-08-07 | シミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2003036523A1 JPWO2003036523A1 (ja) | 2005-02-17 |
JP3905885B2 true JP3905885B2 (ja) | 2007-04-18 |
Family
ID=11737861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003538942A Expired - Fee Related JP3905885B2 (ja) | 2001-10-24 | 2001-10-24 | シミュレーション方法、シミュレーションプログラム及び表示処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3905885B2 (ja) |
WO (1) | WO2003036523A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007528553A (ja) * | 2004-03-09 | 2007-10-11 | セヤン ヤン | 検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論 |
JP4554464B2 (ja) * | 2005-08-03 | 2010-09-29 | ルネサスエレクトロニクス株式会社 | シミュレーション装置 |
JP5057421B2 (ja) * | 2006-02-09 | 2012-10-24 | ルネサスエレクトロニクス株式会社 | シミュレーション方法 |
JP6260445B2 (ja) * | 2014-05-09 | 2018-01-17 | トヨタ自動車株式会社 | シミュレーション装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561933A (ja) * | 1991-09-04 | 1993-03-12 | Hokuriku Nippon Denki Software Kk | 論理検証装置 |
JP3128195B2 (ja) * | 1995-12-14 | 2001-01-29 | 川崎製鉄株式会社 | 半導体集積回路の論理シミュレーション結果表示方法及び装置 |
JPH09265489A (ja) * | 1996-03-29 | 1997-10-07 | Fujitsu Ltd | シミュレーション処理方法 |
JPH10254914A (ja) * | 1997-03-07 | 1998-09-25 | Mitsubishi Electric Corp | 論理シミュレーション結果解析装置 |
JPH10293772A (ja) * | 1997-04-18 | 1998-11-04 | Hitachi Ltd | 論理シミュレーション装置 |
-
2001
- 2001-10-24 JP JP2003538942A patent/JP3905885B2/ja not_active Expired - Fee Related
- 2001-10-24 WO PCT/JP2001/009321 patent/WO2003036523A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2003036523A1 (ja) | 2005-02-17 |
WO2003036523A1 (fr) | 2003-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100186869B1 (ko) | 회로와 시스템들의 고레벨의 의미론적 명세들과 기술들로부터 회로와 시스템들의 실행가능한 저레벨의 구조적 기술과 정당한물리적구현들을추론하는방법론 | |
WO2018171717A1 (zh) | 面向神经网络处理器的自动化设计方法和系统 | |
US10755026B1 (en) | Circuit design including design rule violation correction utilizing patches based on deep reinforcement learning | |
US8719742B2 (en) | Conversion of circuit description to an abstract model of the circuit | |
JP2954894B2 (ja) | 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置 | |
US8117576B2 (en) | Method for using an equivalence checker to reduce verification effort in a system having analog blocks | |
JP2004502259A (ja) | 階層型金属末端、包囲、および曝露をチェックする方法およびシステム | |
US20040111688A1 (en) | Methods, apparatus and computer program products for generating selective netlists that include interconnection influences at pre-layout and post-layout design stages | |
JPH07160744A (ja) | 自律進化型ハードウェア設計システム | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
JP3905885B2 (ja) | シミュレーション方法、シミュレーションプログラム及び表示処理方法 | |
US7086019B2 (en) | Systems and methods for determining activity factors of a circuit design | |
JP5057421B2 (ja) | シミュレーション方法 | |
JP2006323873A (ja) | シミュレーション方法 | |
JP4554464B2 (ja) | シミュレーション装置 | |
JPH10240796A (ja) | 回路シミュレーション方法、回路シミュレーションプログラムを記録した記録媒体、および回路シミュレーション装置 | |
US9183330B2 (en) | Estimation of power and thermal profiles | |
JP5059657B2 (ja) | マクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法、及び、プログラム | |
JP3476688B2 (ja) | ネットリスト生成方法及びネットリスト生成装置 | |
US10783312B1 (en) | Methods, systems, and computer program product for determining layout equivalence for a multi-fabric electronic design | |
JP6692510B1 (ja) | 解析装置、方法、及びプログラム | |
JP2845154B2 (ja) | 論理シミュレーション用モデルの作成方法 | |
JP3037263B2 (ja) | ブールの充足可能性を実現する構成可能ハードウェアシステム及びそのための方法 | |
TW202333081A (zh) | 將邏輯網表轉換為分層寄生網表 | |
JPH09282341A (ja) | Lsiのレイアウト設計方法および設計装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060606 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060807 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060912 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061109 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20061205 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070112 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |