JP2006323873A - シミュレーション方法 - Google Patents
シミュレーション方法 Download PDFInfo
- Publication number
- JP2006323873A JP2006323873A JP2006214146A JP2006214146A JP2006323873A JP 2006323873 A JP2006323873 A JP 2006323873A JP 2006214146 A JP2006214146 A JP 2006214146A JP 2006214146 A JP2006214146 A JP 2006214146A JP 2006323873 A JP2006323873 A JP 2006323873A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- simulation
- data
- result
- node
- 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.)
- Pending
Links
Images
Abstract
【課題】大規模なシミュレーション対象に対して全てのシミュレーション結果データを保存しなくても任意の結果出力点のデータを表示可能なシミュレーション技術を提供する。
【解決手段】シミュレーション方法において、階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して回路シミュレーションを実行するシミュレーション再実行処理とを含める。
【選択図】図1
【解決手段】シミュレーション方法において、階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して回路シミュレーションを実行するシミュレーション再実行処理とを含める。
【選択図】図1
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 データ保存領域
3a〜3h データ非保存領域
2 データ保存領域
3a〜3h データ非保存領域
Claims (2)
- 階層化回路データを用いて回路シミュレーション処理を行うシミュレーション実行処理と、
前記シミュレーション実行処理により所定の回路ノードに得られた結果データを保存する保存処理と、
前記階層化回路データが修正されたとき、その修正により状態が変化される回路ノードについて、その回路ノードを含む回路領域の外部入出力情報を前記保存処理で保存された結果データから取得して回路シミュレーションを実行するシミュレーション再実行処理と、を含むことを特徴とするシミュレーション方法。 - 前記シミュレーション再実行処理において、前記回路領域で信号経路が相互に独立する部分領域を部分領域毎に並列に回路シミュレーションを実行する請求項1記載のシミュレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006214146A JP2006323873A (ja) | 2006-08-07 | 2006-08-07 | シミュレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006214146A JP2006323873A (ja) | 2006-08-07 | 2006-08-07 | シミュレーション方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003538942A Division JP3905885B2 (ja) | 2001-10-24 | 2001-10-24 | シミュレーション方法、シミュレーションプログラム及び表示処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006323873A true JP2006323873A (ja) | 2006-11-30 |
Family
ID=37543446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006214146A Pending JP2006323873A (ja) | 2006-08-07 | 2006-08-07 | シミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006323873A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353910A (zh) * | 2013-06-26 | 2013-10-16 | 福州大学 | 一种用于并行电路仿真的电路划分方法 |
JP2015026184A (ja) * | 2013-07-25 | 2015-02-05 | 日立オートモティブシステムズ株式会社 | 故障シミュレーション方法およびその装置 |
CN104636509A (zh) * | 2013-11-08 | 2015-05-20 | 飞思卡尔半导体公司 | 门级仿真中验证时序问题的方法 |
-
2006
- 2006-08-07 JP JP2006214146A patent/JP2006323873A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103353910A (zh) * | 2013-06-26 | 2013-10-16 | 福州大学 | 一种用于并行电路仿真的电路划分方法 |
JP2015026184A (ja) * | 2013-07-25 | 2015-02-05 | 日立オートモティブシステムズ株式会社 | 故障シミュレーション方法およびその装置 |
CN104636509A (zh) * | 2013-11-08 | 2015-05-20 | 飞思卡尔半导体公司 | 门级仿真中验证时序问题的方法 |
CN104636509B (zh) * | 2013-11-08 | 2019-05-28 | 恩智浦美国有限公司 | 门级仿真中验证时序问题的系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018171717A1 (zh) | 面向神经网络处理器的自动化设计方法和系统 | |
JP5769900B2 (ja) | シーケンスプログラム部品作成プログラムおよびシーケンスプログラム部品作成装置 | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
JPH07160744A (ja) | 自律進化型ハードウェア設計システム | |
US8656337B2 (en) | Optimization method and device for netlist used in logic circuit design for semiconductor integrated circuit | |
JP5699768B2 (ja) | 回路シミュレーション方法および回路シミュレーション装置 | |
JP2008041097A (ja) | ゲートレベルでの動的シミュレーション方法及び装置 | |
US7266791B2 (en) | High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium | |
JP5057421B2 (ja) | シミュレーション方法 | |
US20150033196A1 (en) | Clustering For Processing Of Circuit Design Data | |
JP2006323873A (ja) | シミュレーション方法 | |
JP2008242713A (ja) | 消費電力解析プログラム及び方法 | |
JP4554464B2 (ja) | シミュレーション装置 | |
JP3905885B2 (ja) | シミュレーション方法、シミュレーションプログラム及び表示処理方法 | |
US20150169818A1 (en) | Pattern-based via redundancy insertion | |
US8818784B1 (en) | Hardware description language (HDL) incorporating statistically derived data and related methods | |
US9355207B2 (en) | Performing static timing analysis in the presence of instance-based systematic variations | |
JP6649731B2 (ja) | Fpgaからリードバックするための信号の特定 | |
JP5262435B2 (ja) | 回路設計装置及び回路設計方法 | |
JP4080464B2 (ja) | 検証ベクタ生成方法およびこれを用いた電子回路の検証方法 | |
JP2009205449A (ja) | マクロ内端子配線を考慮したネットリストによって信号の遅延時間を予測する設計方法、及び、プログラム | |
JP2008187010A (ja) | 電流密度制限チェック方法及び電流密度制限チェック装置 | |
US10783312B1 (en) | Methods, systems, and computer program product for determining layout equivalence for a multi-fabric electronic design | |
JP6398729B2 (ja) | 設計支援装置、および設計支援方法 | |
US9881117B1 (en) | Predictive circuit design for integrated circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070313 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070703 |