(57)【要約】【課題】シミュレーションに要する時間を短縮し得る半導体集積回路のシミュレーション方法を提供する。【解決手段】半導体集積回路の回路計算を所定の時間間隔でもって行いその過渡状態を解析するために、或る時刻の解に基づき所定時間経過後の次の時刻における解を求める際に、第１回目の計算で得られた解が設定された許容範囲内に入らなかった場合に、解が許容範囲内に入るまで、その時間間隔を狭めて計算をし直すようにしたシミュレーション方法であって、或る時刻ｔ（ｉ）に対する次の時刻ｔ（ｉ＋１）での解を求める際に、或る時刻からの時間間隔が異なる複数の時刻ｔ（ｉ＋１，１），・・・・，ｔ（ｉ＋１，ｎ）について、複数の計算機１ｎを用いて並列に求める方法である。【選択図】      図１
2004334605.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路の回路計算を所定の時間間隔でもって行いその過渡状態を解析するために、或る時刻の解に基づき所定時間経過後の次の時刻における解を求める際に、第１回目の計算で得られた解が設定された許容範囲内に入らなかった場合に、解が許容範囲内に入るまで、その時間間隔を狭めて計算をし直すようにしたシミュレーション方法であって、
或る時刻に対する次の時刻での解を求める際に、或る時刻からの時間間隔が異なる複数の時刻について、複数の演算処理装置を用いて並列に求めることを特徴とする半導体集積回路のシミュレーション方法。
【請求項２】
複数の演算処理装置の性能が異なる場合、或る時刻からの時間間隔が長い程、性能が高い演算処理装置を割り当てることを特徴とする請求項１に記載のシミュレーション方法。
【請求項３】
各演算処理装置から他の演算処理装置への解の転送速度と、各演算処理装置での演算速度とから得られた処理速度テーブルに基づき、次の時刻での解を求める演算処理装置を割り当てることを特徴とする請求項１に記載の半導体集積回路のシミュレーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のシミュレーション方法に関する。
【０００２】
【従来の技術】
従来例に係る半導体集積回路の回路計算を所定時間置きに行いその過渡状態を解析（過渡解析）するシミュレーション方法について説明する。
【０００３】
従来のシミュレーション方法では、或る時刻ｔ（ｉ）における解Ｘ（ｉ）を用いて、所定時間経過後の次の時刻ｔ（ｉ＋１）での解Ｘ（ｉ＋１）を求める。以下、この解Ｘ（ｉ＋１）を求める方法について説明する。
【０００４】
まず、シミュレーション条件などにより所定時間に相当する時間間隔（以下、ステップともいう）ｄｔを決定する。また、或る時刻ｔ（ｉ）から上記ステップｄｔだけ進んだ次の時刻をｔ（ｉ＋１，１）とする。
【０００５】
シミュレーションを行う計算機は時刻ｔ（ｉ＋１，１）における解Ｘ（ｉ＋１，１）を計算し、予測された解との誤差を評価してその解が妥当か否かを決定する。具体的には、誤差と許容値とが比較されて、当該誤差が許容値の範囲内に入っていれば、妥当な解であると判断される。
【０００６】
時刻ｔ（ｉ＋１，１）での解Ｘ（ｉ＋１，１）が妥当であると判断された場合は、この解Ｘ（ｉ＋１，１）を時刻ｔ（ｉ＋１）での解Ｘ（ｉ＋１）と決定し、次にこの時刻ｔ（ｉ＋１）に対してステップｄｔだけ進んだ次の時刻ｔ（ｉ＋２）を定義し次の解Ｘ（ｉ＋２）を求め、さらに同様に、ｔ（ｉ＋３），ｔ（ｉ＋４）・・・・と時刻を進めながら、解Ｘ（ｉ＋３），Ｘ（ｉ＋４）・・・・を、順次、求めていく。
【０００７】
ここで、時刻ｔ（ｉ＋１，１）における計算結果、すなわち解が妥当でないと判断された場合について説明する。この場合、時刻ｔ（ｉ＋１，１）と比較してよりｔ（ｉ）に近い時刻ｔ（ｉ＋１，２）を定義し、この時刻ｔ（ｉ＋１，２）における解Ｘ（ｉ＋１，２）を計算して、解の妥当性を判断する。
【０００８】
なお、或る時刻ｔ（ｉ）と、次の時刻ｔ（ｉ＋１）での解を求めるまでの計算回数（ｎ）に係る時刻ｔ（ｉ＋１，ｎ）との間には、下記式に示すような関係がある。
【０００９】
ｔ（ｉ＋１，ｎ）＝ｔ（ｉ）＋ｄｔ／（２ｎ−１）
但し、上記式中、ｄｔ＝ｔ（ｉ＋１，１）−ｔ（ｉ）
すなわち、図５に示すように、解が妥当でなく計算を繰り返す（し直す）度に、時間間隔が１／２倍づつとなり短くされていく。
【００１０】
時刻ｔ（ｉ＋１，２）における解Ｘ（ｉ＋１，２）が妥当であると判断された場合、このＸ（ｉ＋１，２）を時刻ｔ（ｉ＋１）での解として上述の計算を繰り返すことで、ｔ（ｉ＋３），ｔ（ｉ＋４）・・・と順次計算が進められる。
【００１１】
一方、解Ｘ（ｉ＋１，２）が妥当でないと判断された場合には、上記の式にて決定される（ｉ＋１，３）を用いて計算が行われ、そしてこの時刻に対応する解Ｘ（ｉ＋１，３）が妥当であるか否かの判断が行われ、妥当であればｔ（ｉ＋１，３）での解Ｘ（ｉ＋１，３）を時刻ｔ（ｉ＋１）での解とし、妥当でなければ時刻ｔ（ｉ＋１，４）についての計算が引き続いて行われる。
【００１２】
すなわち、時刻ｔ（ｉ）から時刻ｔ（ｉ＋１）までの時間間隔において、許容される解が得られるまで、順次、時間間隔が狭くされて計算が繰り返し行われる（例えば、非特許文献１参照）。
【００１３】
【非特許文献１】
「ケネス  エス．クンタート」著，「デザイナーズ  ツー  スパイス  アンドスペクタ」（書名），クルーワー  アカデミック  パブリッシャー（発行所），１９９５年発行，第２０１頁
（ＫＥＮＮＥＴＨ  Ｓ．ＫＵＮＤＥＲＴ，  ”Ｔｈｅ  Ｄｅｓｉｇｎｅｒ’ｓ  Ｇｕｉｄｅ  ｔｏ  ＳＰＩＣＥ  ＆  ＳＰＥＣＴＲＥ”，  Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ，  ｐ．２０１，１９９５）
【００１４】
【発明が解決しようとする課題】
ところで、シミュレーションを行う際に、急激な変化を伴う時間帯では、最初の時刻ｔ（ｉ＋１，１）における解が許容範囲内に入りにくく、次の時刻ｔ（ｉ＋１，２），ｔ（ｉ＋１，３）・・・と、順次、計算が引き続いて行われる頻度が高くなり、したがって時刻が何度も更新されて計算が行われるため、シミュレーションに要する時間が増大するという問題がある。
【００１５】
そこで、本発明は、シミュレーションに要する時間を短縮し得る半導体集積回路のシミュレーション方法を提供する。
【００１６】
【課題を解決するための手段】
上記課題を解決するため、本発明の請求項１に係る半導体集積回路のシミュレーション方法は、半導体集積回路の回路計算を所定の時間間隔でもって行いその過渡状態を解析するために、或る時刻の解に基づき所定時間経過後の次の時刻における解を求める際に、第１回目の計算で得られた解が設定された許容範囲内に入らなかった場合の繰り返しシミュレーションによる時間増加を防ぐために、その時間間隔を狭めて予め並列処理で計算をしておくシミュレーション方法であって、
或る時刻に対する次の時刻での解を求める際に、或る時刻からの時間間隔が異なる複数の時刻について、複数の演算処理装置を用いて並列に求める方法である。
【００１７】
このシミュレーション方法によると、回路の過渡状態を解析するのに、或る時刻における回路計算の結果が許容範囲内でない場合には、許容範囲内に入るまで、時間間隔を変更して回路の再計算を行う際に、複数の計算機により予め異なる時刻についての計算を並列に行うようにしているので、再計算の時間を短縮することができ、したがってシミュレーションの高速化を図ることができる。
【００１８】
また、請求項２に係る半導体集積回路のシミュレーション方法は、請求項１に記載のシミュレーション方法において、複数の演算処理装置の性能が異なる場合、或る時刻からの時間間隔が長い程、性能が高い演算処理装置を割り当てる方法である。
【００１９】
このシミュレーション方法によると、最も解が採用される可能性が高い計算に、性能が高い演算処理装置を割り当てるようにしたので、よりシミュレーションの高速化を図ることができる。
【００２０】
さらに、請求項３に係る半導体集積回路のシミュレーション方法は、請求項１に記載のシミュレーション方法において、各演算処理装置から他の演算処理装置への解の転送速度と、各演算処理装置での演算速度とから得られた処理速度テーブルに基づき、次の時刻での解を求める演算処理装置を割り当てる方法である。
【００２１】
このシミュレーション方法によると、或る時刻での解が得られた後、次の時刻での解を求める際に、解の転送速度と演算性能との両方を考慮して、演算処理装置を割り当てるようにしたので、さらなるシミュレーションの高速化を図ることができる。
【００２２】
【発明の実施の形態】
以下、本発明の第１の実施の形態に係る半導体集積回路のシミュレーション方法を、図１に基づき説明する。
【００２３】
このシミュレーション方法は、半導体集積回路の過渡解析を行うためのものであり、その基本的な回路計算の手順については、従来の技術の項にて説明したものと同一であるため、簡単に説明する。
【００２４】
すなわち、過渡解析を行うに際して、時刻ｔ（ｉ）で求めた解Ｘ（ｉ）に基づき、所定時間置いた（以下、時間間隔ともいう）次の時刻ｔ（ｉ＋１）での解Ｘ（ｉ＋１）を求めるに際し、従来の技術にて説明したように、計算された解が予め設定された許容値（許容範囲）内に入るまで、所定時間の間隔が順次短く（狭く）されて計算が繰り返し行われる。したがって、従来と同様に、計算の繰り返し回数をｎ回とした場合、下記（１）式にて定められる時刻（時間間隔）［ｔ（ｉ＋１，１），ｔ（ｉ＋１，２），・・・・，ｔ（ｉ＋１，ｎ）］について計算が行われる。なお、このｎ回については、演算に要する時間などが勘案されて、適宜決定される。
【００２５】
ｔ（ｉ＋１，ｎ）＝ｔ（ｉ）＋ｄｔ／（２ｎ−１）・・・（１）
但し、（１）式中、ｄｔ＝ｔ（ｉ＋１，１）−ｔ（ｉ）
そして、本実施の形態に係るシミュレーション方法の特徴部分は、各時間間隔、すなわち各時刻での解を、それぞれ独立して設けられたｎ台の計算機（演算処理装置の一例である）を用いて並列に計算することであり、以下、この計算手順であるシミュレーション方法について説明する。
【００２６】
或る時刻ｔ（ｉ）における解Ｘ（ｉ）が求まると、上記の（１）式に基づき次の時刻ｔ（ｉ＋１）として、ｎ個の時刻が求められる。
そして、（１）式より導出したｎ個の各時刻について、例えば時間間隔が１番長いｔ（ｉ＋１，１）における解Ｘ（ｉ＋１，１）を第１の計算機１１で、時間間隔が２番目に長いｔ（ｉ＋１，２）における解Ｘ（ｉ＋１，２）を第２の計算機１２で、以下同様に時間間隔がｎ番目に長いｔ（ｉ＋１，ｎ）における解Ｘ（ｉ＋１，ｎ）が、第ｎの計算機１ｎにてそれぞれ互いに独立してしかも並列に、すなわち同時に求められる。
【００２７】
例えば、時刻ｔ（ｉ＋１，１）における解Ｘ（ｉ＋１，１）が許容範囲内に入っていない場合には、従来では、ｔ（ｉ＋１，１）における解が許容範囲内に入っていないと判断された時点で、時間間隔を短くして時刻ｔ（ｉ＋１，２）にて計算を行っていたが、本実施の形態では、既に第２の計算機１２でｔ（ｉ＋１，２）における計算が着手されているため、時刻ｔ（ｉ＋１，２）における解Ｘ（ｉ＋１，２）が求まるまでの時間が、従来の場合に比べて短縮される（場合によっては、既に、求まっている）。
【００２８】
なお、時刻ｔ（ｉ＋１，２）での解Ｘ（ｉ＋１，２）が許容範囲内に入っている場合には、従来と同様に、解Ｘ（ｉ＋１，２）を時刻ｔ（ｉ＋１）での解Ｘ（ｉ＋１）とした後、次の時刻ｔ（ｉ＋２）についての計算が行われる。
【００２９】
また、解Ｘ（ｉ＋１，２）が許容範囲内に入っていなかった場合でも、上述した解Ｘ（ｉ＋１，１）の場合と同様に、既に、第３の計算機１３により解Ｘ（ｉ＋１，３）の計算が着手されているため、許容範囲に入っていないと判断された時点から計算を開始するよりも、より早く解Ｘ（ｉ＋１，３）が求められる。
【００３０】
したがって、本実施の形態に係るシミュレーション方法では、或る時刻での解に基づき次の時刻の解を求める際に、異なる時間間隔でもって且つこれら異なる時間間隔ごとに対応する計算機でもって並列に計算を行うようにしているので、従来のように、繰り返しの計算が必要と判断されてから計算を行う場合に比べて、計算時間を大幅に短縮することができる。すなわち、シミュレーションの時間を短縮することができる。
【００３１】
なお、上記実施の形態では、繰り返しのための時間間隔を、前回における時間間隔の１／２となるように設定したが、１／２に限定されるものではなく、任意の値、例えば１／３などに設定することもできる。
【００３２】
次に、本発明の第２の実施の形態に係る半導体集積回路のシミュレーション方法を、図２および図３に基づき説明する。
上記第１の実施の形態では、各時刻における半導体集積回路の回路計算をｎ台の計算機で並列に行う際に、各計算機の性能については特に言及しなかったが、本第２の実施の形態では、各計算機の性能が異なる場合に、より効率よく計算を行うようにしたシミュレーション方法である。
【００３３】
すなわち、本第２の実施の形態では、性能が異なるｎ台の計算機２１，２２，２３，・・・・，２ｎを使用するとともに、これらｎ台の計算機に第１の実施の形態にて説明した（１）式にて決定されるｎ個の時刻が割り当てられて、計算が行われる。
【００３４】
そして、この計算機を割り当てる際に、計算機の性能すなわち処理速度、搭載メモリ量などに応じて、回路計算の実行速度に関して順序付けが行われている。例えば、図３に示すように、最も性能の高いものを第１の計算機２１に、２番目に高性能なものを第２の計算機２２に、以下同様に順序付けを行い、一番性能が劣るものを第ｎの計算機２ｎとする。
【００３５】
ところで、シミュレーション時刻ｔ（ｉ）からｔ（ｉ＋１）への計算過程において、第１の実施の形態にて示した（１）式により導出されるｎ個の計算を行う際に必要となる時刻ｔ（ｉ＋１，１），ｔ（ｉ＋１，２），・・・・，ｔ（ｉ＋１，ｎ）については、シミュレーション条件などからあらかじめ適切な所定の時間間隔ｄｔが規定されており、解Ｘ（ｉ＋１，１）が解Ｘ（ｉ＋１）として採用される確率が最も高く、次に解Ｘ（ｉ＋１，２）が採用される確率が高く、さらに時刻ｔ（ｉ＋１，３）における計算を必要とするのは、前記Ｘ（ｉ＋１，１），Ｘ（ｉ＋１，２）が非採択の場合であるといった具合に順に繰り返し回数（時間の分割数）ｋが増大するとともに計算が必要とされる確率が小さくなり、また計算結果が採択される確率も小さくなるようにされている。
【００３６】
したがって、最も計算結果として採択される可能性の高いＸ（ｉ＋１，１）を最も高性能な第１の計算機２１で計算させ、次に計算結果として採択される可能性の高い解Ｘ（ｉ＋１，２）を２番目に高性能な第２の計算機２２で計算させ、以下順に、計算結果として採択される可能性と計算機の性能を対応付けすることで、ｎ台の計算機に計算を割り当てる。
【００３７】
このシミュレーション方法によると、回路の過渡解析においては、その結果が採択されるかされないかは別として、Ｘ（ｉ＋１，１）の計算値がまず第１に必要とされ、このＸ（ｉ＋１，１）が妥当であれば、当該Ｘ（ｉ＋１，１）をそのまま解Ｘ（ｉ＋１）として採択し、妥当でない場合には、シミュレーションとして、Ｘ（ｉ＋１，２）が次に必要とされる。すなわち、シミュレーションとして必要とされる度合いは、上述した計算結果として採択される可能性と同等である。
【００３８】
したがって、計算結果を必要とする時刻ｔ（ｉ＋１，１），ｔ（ｉ＋１，２），・・・，ｔ（ｉ＋１，ｎ）における計算のｎ台の計算機への振り分けを、上述したように、シミュレーションとして必要とされる度合いとｎ台の計算機の性能とを対応させる本実施の形態によれば、繰り返しによる再計算の際に、他の計算機による計算待ちなどの無駄な時間を最小限に抑えて最も効率良く過渡解析を実行することができるため、シミュレーション時間を短縮することができる。
【００３９】
次に、本発明の第３の実施の形態に係る半導体集積回路のシミュレーション方法を、図４に基づき説明する。
第１の実施の形態と同様に、そのシミュレーションにはｎ個の計算機３１，３２，・・・，４ｎを使用するとともに、これらｎ個の計算機を第１の実施の形態にて示した（１）式で与えられるｎ個の時刻に割り当て予め計算を行う。このとき、第２の実施の形態にて説明したように、シミュレーションとして必要とされる度合いとｎ台の計算機の性能とが対応させられて並列計算が行われるが、本第３の実施の形態では、下記のような特徴を有している。
【００４０】
例えば、Ｘ（ｉ＋１）の計算の解として、Ｘ（ｉ＋１，ｋ）（ｋ≠１）が採用されたとする。このとき、次のＸ（ｉ＋２）の計算を行うにあたり、第１の実施の形態にて示した（１）式で規定されるｔ（ｉ＋２，１）における回路計算が第１の計算機３１で行われることになるが、上述したようにＸ（ｉ＋１）として、Ｘ（ｉ＋１，ｋ）が採用された場合には、当然に、第ｋの計算機３ｋがｔ（ｉ＋１）での解を有しているため、第ｋの計算機３ｋから第１の計算機３１へ解の転送が必要となる。したがって、このデータの転送に時間がかかるような場合には、シミュレーションに要する時間が増大してしまう。
【００４１】
そこで、本第３の実施の形態では、各計算機３１，３２，・・・，３ｎ間におけるデータの転送時間をあらかじめ算出しておき、この転送時間と各計算機３１，３２，・・・，３ｎの性能とを考慮することで、ｎ個の計算機を、ｔ（ｉ＋２，１），ｔ（ｉ＋２，２），・・・，ｔ（ｉ＋２，ｎ）の内、いずれの時刻の計算に割り当てるかが決定される。
【００４２】
したがって、本第３の実施の形態においては、予めデータ転送時間とｎ個の計算機の性能とに基づく重み付けが算出され、これが処理性能テーブル４１として具備されている。
【００４３】
例えば、第ｋの計算機３ｋからそれ以外の（ｎ−１）個の計算機への転送時間があらかじめ算出されており、そのなかで最短のものは、当然ながら、第ｋの計算機３ｋ（自分）であることが多い。
【００４４】
すなわち、第ｋの計算機３ｋでｔ（ｉ＋２，１）の計算をした場合と、最も高性能な第１の計算機３１にデータを転送してｔ（ｉ＋２，１）での計算をした場合とで、どちらが先にその計算を終了できるかについては、処理性能テーブル４１から直ちに判断することができる。
【００４５】
なお、上記処理性能テーブル４１について、もう少し説明を加えておく。
計算機において、計算により求められた解は、通常、記憶装置に格納されるため、例えば他の計算機に、解であるデータを受け渡す場合、記憶装置が介在することになり、したがってこのことを考慮して、全ての計算機について、各計算機から他の計算機へのデータの受け渡し時間を算出しておく。例えば、計算機１→記憶装置→計算機２，計算機１→記憶装置→計算機３，・・・，計算機１→記憶装置→計算機ｎ，計算機２→記憶装置→計算機１，計算機２→記憶装置→計算機３，・・・，計算機２→記憶装置→計算機ｎ，・・・・の各パターンについて、受け渡し時間を算出しておく。一方、各計算機の性能を、例えば時間に換算しておき、上記受け渡し時間とともに、時間に換算された性能についても、処理性能テーブル４１に持たせておく。
【００４６】
この処理性能テーブル４１を用いて、次の時刻ｔ（ｉ＋２）の候補群とｎ個の計算機のいずれかとを対応させるかを決定する。勿論、最も、短時間で計算を終了し得る組み合わせが決定される。
【００４７】
これにより、データ転送に要する時間が大きいときでも、繰り返しによる再計算の無駄時間をより少なくでき、したがって効率よく過渡解析を行うことができるので、シミュレーション時間の短縮が可能となる。
【００４８】
なお、上記各実施の形態において、ｎ回の再計算でも許容値内に入らなかった場合には、従来の手法と同様に、その計算は打ち切られる。
ところで、上記各実施の形態では、ｎ台の計算機を用いたが、例えば一台の計算機に複数のＣＰＵ（演算処理装置の一例）が具備されている場合、なんらかの重み付けを付与して、上述した各実施の形態と同様の処理を行わせることにより、同様の効果が得られる。
【００４９】
【発明の効果】
以上のように、本発明の請求項１に係るシミュレーション方法によると、回路の過渡状態を解析するのに、或る時刻における回路計算の結果が許容範囲内でない場合には、許容範囲内に入るまで、時間間隔を変更して回路の再計算を行う際に、複数の計算機により異なる時刻についての計算を並列に行うようにしているので、再計算の時間を短縮することができ、したがってシミュレーションの高速化を図ることができる。
【００５０】
また、請求項２に係るシミュレーション方法によると、再計算を行わせる際に、性能が高い演算処理装置を割り当てるようにしたので、よりシミュレーションの高速化を図ることができる。
【００５１】
さらに、請求項３に係るシミュレーション方法によると、或る時刻での解が得られた後、次の時刻での解を求める際に、解の転送速度と演算性能との両方を考慮して、演算処理装置を割り当てるようにしたので、さらなるシミュレーションの高速化を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のシミュレーション方法における時刻と計算機の割り当て状態を示す図である。
【図２】本発明の第２の実施の形態のシミュレーション方法における時刻と計算機の割り当て状態を示す図である。
【図３】同シミュレーション方法における計算機の性能順を示す図である。
【図４】本発明の第３の実施の形態のシミュレーション方法における時刻と計算機の割り当て状態を示す図である。
【図５】従来例のシミュレーション方法における回路の再計算のための時分割の様子を示す図である。
【符号の説明】
１１，・・・，１ｎ  計算機
２１，・・・，２ｎ  計算機
３１，・・・，３ｎ  計算機
４１  処理性能テーブル
【図１】
2004334605.tif 000003
【図２】
2004334605.tif 000004
【図３】
2004334605.tif 000005
【図４】
2004334605.tif 000006
【図５】
2004334605.tif 000007