(57)【要約】【課題】直流動作点（ＶＩ特性）を精度よく、かつ、短時間で解析するための回路シミュレーションの実行方法を提供する。【解決手段】直流動作点を求める場合の回路シミュレーションの実行方法であって、（ａ）電源電圧が時間の正弦関数として単調増加した後、一定値となるように設定する工程と、（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する工程と、を含む。【選択図】図８
2008299719.tif 000002
【特許請求の範囲】
【請求項１】
直流動作点を求める場合の回路シミュレーションの実行方法であって、
（ａ）電源電圧が時間の正弦関数として単調増加した後、一定値をとるように設定する工程と、
（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する工程と、を含むことを特徴とする回路シミュレーション実行方法。
【請求項２】
直流動作点を求める場合の回路シミュレーションの実行方法であって、
（ａ）電源電圧が時間の関数として単調増加する区分と一定値をとる区分との繰り返しとなるように設定する工程と、
（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する工程と、を含むことを特徴とする回路シミュレーション実行方法。
【請求項３】
前記設定工程（ａ）における前記単調増加区分を正弦関数とすることを特徴とする、請求項２に記載の回路シミュレーション実行方法。
【請求項４】
（ｃ）前記実行工程（ｂ）において回路シミュレーションが中断したか否かを判定する工程を含むとともに、
前記判定工程（ｃ）において、中断したと判定された場合、
（ｄ）前記電源電圧の時間的変化をより緩やかに設定し直す工程と、
（ｅ）前記工程（ｄ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す工程と、を含むことを特徴とする請求項１ないし３のいずれか一に記載の回路シミュレーション実行方法。
【請求項５】
（ｃ）前記実行工程（ｂ）において回路シミュレーションが中断したか否かを判定する工程を含むとともに、
前記判定工程（ｃ）において、中断したと判定された場合、
（ｆ）中断箇所における時刻ｔａ、電源電圧Ｖａおよび電源電圧の傾きＶａ’に対して、リスタート時刻をｔａ−Ｖａ／Ｖａ’、リスタート電源電圧を０とする工程と、
（ｇ）前記工程（ｆ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す工程と、を含むことを特徴とする請求項２または３に記載の回路シミュレーション実行方法。
【請求項６】
（ｃ）前記実行工程（ｂ）において回路シミュレーションが中断したか否かを判定する工程を含むとともに、
前記判定工程（ｃ）において、中断したと判定された場合、
（ｈ）リスタート時刻およびリスタート電源電圧をそれぞれ中断箇所における時刻ｔａおよび電源電圧Ｖａとするとともに、回路中の各接点のリスタート時の電圧を前記時刻ｔａにおける各接点の電圧とする工程と、
（ｉ）前記工程（ｈ）において設定された電源電圧と各接点の電圧とに基づいて前記非定常回路シミュレーションを実行し直す工程と、を含むことを特徴とする請求項２または３に記載の回路シミュレーション実行方法。
【請求項７】
直流動作点を求める場合の回路シミュレーションをコンピュータに実行させるための回路シミュレーション実行プログラムであって、
（ａ）電源電圧が時間の正弦関数として単調増加した後、一定値をとるように設定する処理と、
（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する処理と、をコンピュータに実行させることを特徴とする回路シミュレーション実行プログラム。
【請求項８】
直流動作点を求める場合の回路シミュレーションをコンピュータに実行させるための回路シミュレーション実行プログラムであって、
（ａ）電源電圧が時間の関数として単調増加する区分と一定値をとる区分との繰り返しとなるように設定する処理と、
（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する処理と、をコンピュータに実行させることを特徴とする回路シミュレーション実行プログラム。
【請求項９】
前記設定処理（ａ）における前記単調増加区分を正弦関数とする処理をコンピュータに実行させることを特徴とする、請求項８に記載の回路シミュレーション実行プログラム。
【請求項１０】
（ｃ）前記実行処理（ｂ）において回路シミュレーションが中断したか否かを判定する処理をコンピュータに実行させるとともに、
前記判定処理（ｃ）において、中断したと判定された場合、
（ｄ）前記電源電圧の時間的変化をより緩やかに設定し直す処理と、
（ｅ）前記処理（ｄ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す処理と、をコンピュータに実行させることを特徴とする請求項７ないし９のいずれか一に記載の回路シミュレーション実行プログラム。
【請求項１１】
（ｃ）前記実行処理（ｂ）において回路シミュレーションが中断したか否かを判定する処理をコンピュータに実行させるとともに、
前記判定処理（ｃ）において、中断したと判定された場合、
（ｆ）中断箇所における時刻ｔａ、電源電圧Ｖａおよび電源電圧の傾きＶａ’に対して、リスタート時刻をｔａ−Ｖａ／Ｖａ’、リスタート電源電圧を０とする処理と、
（ｇ）前記処理（ｆ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す処理と、をコンピュータに実行させることを特徴とする請求項８または９に記載の回路シミュレーション実行プログラム。
【請求項１２】
（ｃ）前記実行処理（ｂ）において回路シミュレーションが中断したか否かを判定する処理をコンピュータに実行させるとともに、
前記判定処理（ｃ）において、中断したと判定された場合、
（ｈ）リスタート時刻およびリスタート電源電圧をそれぞれ中断箇所における時刻ｔａおよび電源電圧Ｖａとするとともに、回路中の各接点のリスタート時の電圧を前記時刻ｔａにおける各接点の電圧とする処理と、
（ｉ）前記処理（ｈ）において設定された電源電圧と各接点の電圧とに基づいて前記非定常回路シミュレーションを実行し直す処理と、をコンピュータに実行させることを特徴とする請求項８または９に記載の回路シミュレーション実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路シミュレーション実行方法および回路シミュレーション実行プログラムに関し、特に、中断した回路シミュレーションをリスタートする場合の回路シミュレーション実行方法および回路シミュレーション実行プログラムに関する。
【背景技術】
【０００２】
ＩＢＩＳ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｂｕｆｆｅｒ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）モデルは、ＶＩ特性カーブやパッケージＬ／Ｃ／Ｒ値等を格納する標準フォーマットである。また、ＩＢＩＳモデルは、ＰＣＢ（プリント基板）ボード設計シミュレーションに用いられる業界標準のＬＳＩのＩ／Ｏ  Ｂｕｆｆｅｒモデルでもある。
【０００３】
ＩＢＩＳモデルは、ＳＰＩＣＥによる解析に基づいてキャラクタライズされる。ＳＰＩＣＥは、業界において標準的に利用されている回路シミュレータであり、回路接続情報（ネット配列）および入力信号を与えることによって、回路の各接続ポイントにおける電気信号をシミュレート（模擬）することができる。キャラクタライズとは、ＳＰＩＣＥで求めたＶＩ特性をＩＢＩＳモデルのフォーマットに従ってテーブル化することをいう。
【０００４】
ＩＢＩＳモデルは、ＶＩ特性（電圧と電流との関係を表す静的特性）のテーブルを備える。ＶＩ特性テーブルは、例えば、図１に示すように電圧源を測定対象の回路の入出力バッファ端子に与えて、ＳＰＩＣＥによる直流解析または過渡解析を行い、電圧に対する電流値を求めることによって作成される。直流解析においては、直流電圧および直流電流に対する回路の特性を測定し、過渡解析においては、時間的に変化する電圧および電流に対する回路の特性を測定する。
【０００５】
ところで、ＳＰＩＣＥによる直流解析および過渡解析は、数値計算の収束性が悪い場合には中断することがある。特許文献１において、このような場合に数値計算の収束性を向上させる手法が開示されている。特許文献１に開示された方法では、図１０に示すフローチャートに基づいて回路シミュレーションを実行している。本解析（過渡解析）（ステップＳ４）の初期条件として必要とされる直流動作点を求めるため、予備過渡解析（ステップＳ２）を行う。予備過渡解析（ステップＳ２）では、図１１の曲線Ｗ１に示すように、時刻０からｔ１に亘って電源電圧を接地電位０Ｖから所定の電位Ｖ１までゆっくりと立ち上げる。Ｗ２は回路中において注目している接点の電位であり、この電位に基づいて収束判定を行う。電位Ｗ２が収束した場合、予備過渡解析を終了し、このときの電位情報を回路の直流動作点として設定する（ステップＳ３）。求めた直流動作点によって、本解析（ステップＳ４）を実施する。直流動作点を求める場合、直流解析を行うよりも、過渡解析により所定の電位までゆっくりと立ち上げた方が、回路シミュレーションにおける数値計算の収束性は良いと考えられる。
【０００６】
ＩＢＩＳモデルのキャラクタライズにおいても、直流解析によって、直接ＶＩ特性を求めようとすると、回路シミュレーションの数値計算が収束せず、解析が中断する場合がある。そこで、この場合にも、図３に示すように電圧をゆっくりと立ち上げる過渡解析が行われている。
【０００７】
【特許文献１】特開２００２−１９７１３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
図１１を参照すると、特許文献１に開示された予備過渡解析においては、時刻０からｔ１における電圧０ＶからＶ１までの電圧変化は直線的であり、高周波成分が多く含まれる。直線的な電圧変化には、矩形波と同様、高周波成分が含まれるからである。このため回路シミュレーションの数値解析が収束せず、途中で中断することがある。ＳＰＩＣＥでは、波形の変化に応じて、タイムステップコントロールを用いて時間刻み幅を自動的に短くまたは長くして解析を行う。しかし、非常に高い周波数成分に対し、収束判定に用いられる時間刻み幅の最小値に収まらない場合には、解析が中断してしまう。また、０からＶ１に達するまでの電圧立ち上げ期間を長くすることによって電圧変化を緩やかにして、高周波成分を削減することによって回路シミュレーションの収束性を向上させることもできる。しかし、このような方法では、過渡解析に要する解析時間が増大する問題がある。
【０００９】
また、従来のＩＢＩＳモデルのキャラクタライズにおけるＶＩ特性の測定では、図３を参照すると、電源電圧は時間とともにつねに変化しているため、直流解析で求めた電流値に対する誤差が生じるという問題がある。直流解析においては純抵抗によって電流が決まるものの、電圧がつねに変化し続ける過渡状態においては誘導性リアクタンスおよび容量性リアクタンスによる電流が生じて、誤差が発生するからである。また、図４に示すように電圧の立ち上がりを緩やかにして、直流状態に近づけることで、直流解析で求めた電流値に近づけることも可能であるが、解析時間が増大するという問題がある。例えば、電圧が一定に変化する場合の電流計算式は、ω＝２π／ＴとするとＩ＝Ｖ／（Ｒ＋ｊωＬ＋１／ｊωＣ）となる。ここで、ωは角周波数、Ｔは解析時間、Ｉは電流、Ｖは電圧、Ｒは純抵抗、ｊωＬは誘導性リアクタンス、１／ｊωＣは容量性リアクタンスである。したがって、角速度を１／２（すなわち、解析時間を２倍）としても、直流解析に対する誤差は１／２にしかならない。図５は、解析時間を２．９７μ秒から２，９７０μ秒へと１，０００倍延長したときの、電流誤差の減少する様子を示している。
【００１０】
したがって、直流動作点（ＶＩ特性）を精度よく、かつ、短時間で解析するための回路シミュレーションの実行方法を提供することが課題となる。
【課題を解決するための手段】
【００１１】
本発明の第１の視点に係る回路シミュレーション実行方法は、直流動作点を求める場合の回路シミュレーションの実行方法であって、（ａ）電源電圧が時間の正弦関数として単調増加した後、一定値をとるように設定する工程と、（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する工程と、を含むことを特徴とする。
【００１２】
本発明の第２の視点に係る回路シミュレーション実行方法は、直流動作点を求める場合の回路シミュレーションの実行方法であって、（ａ）電源電圧が時間の関数として単調増加する区分と一定値をとる区分との繰り返しとなるように設定する工程と、（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する工程と、を含むことを特徴とする。
【００１３】
本発明の第３の視点に係る回路シミュレーション実行プログラムは、直流動作点を求める場合の回路シミュレーションをコンピュータに実行させるための回路シミュレーション実行プログラムであって、（ａ）電源電圧が時間の正弦関数として単調増加した後、一定値をとるように設定する処理と、（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する処理と、をコンピュータに実行させることを特徴とする。
【００１４】
本発明の第４の視点に係る回路シミュレーション実行プログラムは、直流動作点を求める場合の回路シミュレーションをコンピュータに実行させるための回路シミュレーション実行プログラムであって、（ａ）電源電圧が時間の関数として単調増加する区分と一定値をとる区分との繰り返しとなるように設定する処理と、（ｂ）前記電源電圧に基づいて非定常回路シミュレーションを実行する処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
本発明に係る回路シミュレーション実行方法により、電圧の立ち上げ箇所を正弦関数とすることで、回路シミュレーションの収束性を向上させ、短時間で精度良く直流動作点を求めることができる。
【００１６】
また、電圧の時間変化を単調増加する区分と一定値をとる区分との繰り返しとすることで、短時間で精度良く複数の直流動作点を求めることができる。
【発明を実施するための最良の形態】
【００１７】
第１の展開形態の回路シミュレーション実行方法は、前記設定工程（ａ）における前記単調増加区分を正弦関数とすることを特徴とする。
【００１８】
第２の展開形態の回路シミュレーション実行方法は、（ｃ）前記実行工程（ｂ）において回路シミュレーションが中断したか否かを判定する工程を含むとともに、前記判定工程（ｃ）において、中断したと判定された場合、（ｄ）前記電源電圧の時間的変化をより緩やかに設定し直す工程と、（ｅ）前記工程（ｄ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す工程と、を含むことを特徴とする。
【００１９】
第３の展開形態の回路シミュレーション実行方法は、（ｃ）前記実行工程（ｂ）において回路シミュレーションが中断したか否かを判定する工程を含むとともに、前記判定工程（ｃ）において、中断したと判定された場合、（ｆ）中断箇所における時刻ｔａ、電源電圧Ｖａおよび電源電圧の傾きＶａ’に対して、リスタート時刻をｔａ−Ｖａ／Ｖａ’、リスタート電源電圧を０とする工程と、（ｇ）前記工程（ｆ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す工程と、を含むことを特徴とする。
【００２０】
第４の展開形態の回路シミュレーション実行方法は、（ｃ）前記実行工程（ｂ）において回路シミュレーションが中断したか否かを判定する工程を含むとともに、前記判定工程（ｃ）において、中断したと判定された場合、（ｈ）リスタート時刻およびリスタート電源電圧をそれぞれ中断箇所における時刻ｔａおよび電源電圧Ｖａとするとともに、回路中の各接点のリスタート時の電圧を前記時刻ｔａにおける各接点の電圧とする工程と、（ｉ）前記工程（ｈ）において設定された電源電圧と各接点の電圧とに基づいて前記非定常回路シミュレーションを実行し直す工程と、を含むことを特徴とする。
【００２１】
第５の展開形態の回路シミュレーション実行プログラムは、前記設定処理（ａ）における前記単調増加区分を正弦関数とする処理をコンピュータに実行させることを特徴とする。
【００２２】
第６の展開形態の回路シミュレーション実行プログラムは、（ｃ）前記実行処理（ｂ）において回路シミュレーションが中断したか否かを判定する処理をコンピュータに実行させるとともに、前記判定処理（ｃ）において、中断したと判定された場合、（ｄ）前記電源電圧の時間的変化をより緩やかに設定し直す処理と、（ｅ）前記処理（ｄ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す処理と、をコンピュータに実行させることを特徴とする。
【００２３】
第７の展開形態の回路シミュレーション実行プログラムは、（ｃ）前記実行処理（ｂ）において回路シミュレーションが中断したか否かを判定する処理をコンピュータに実行させるとともに、前記判定処理（ｃ）において、中断したと判定された場合、（ｆ）中断箇所における時刻ｔａ、電源電圧Ｖａおよび電源電圧の傾きＶａ’に対して、リスタート時刻をｔａ−Ｖａ／Ｖａ’、リスタート電源電圧を０とする処理と、（ｇ）前記処理（ｆ）において設定された電源電圧に基づいて前記非定常回路シミュレーションを実行し直す処理と、をコンピュータに実行させることを特徴とする。
【００２４】
第８の展開形態の回路シミュレーション実行プログラムは、（ｃ）前記実行処理（ｂ）において回路シミュレーションが中断したか否かを判定する処理をコンピュータに実行させるとともに、前記判定処理（ｃ）において、中断したと判定された場合、（ｈ）リスタート時刻およびリスタート電源電圧をそれぞれ中断箇所における時刻ｔａおよび電源電圧Ｖａとするとともに、回路中の各接点のリスタート時の電圧を前記時刻ｔａにおける各接点の電圧とする処理と、（ｉ）前記処理（ｈ）において設定された電源電圧と各接点の電圧とに基づいて前記非定常回路シミュレーションを実行し直す処理と、をコンピュータに実行させることを特徴とする。
【実施例１】
【００２５】
図１２は、本発明の実施例１に係る回路シミュレーション実行方法のフローチャートである。
【００２６】
各工程における処理内容は次の通りである。
【００２７】
まず、初期値として、開始時刻ｔ、開始電圧ｖ、解析段数ｎ、電圧ステップｓ、立ち上げ期間ｒ、保持期間ｈ、電流値取得時刻ｇをコンピュータのメモリに設定する（ステップＳ２０１）。
【００２８】
メモリは、ＣＰＵ内のレジスタやキャッシュ、メモリチップ、ハードディスクのいずれであってもよい（以下同じ）。
【００２９】
ステップＳ２０４はループの開始であり、ステップＳ２０５ないしステップＳ２０８の工程を解析段数分繰り返す。ステップＳ２０５ないしステップＳ２０８では、１段分の立ち上げ電圧波形と１段分の定常電圧波形とをコンピュータのメモリに設定し、コンピュータのメモリにおいて開始時刻ｔと開始電圧ｖを１段分だけ進める。ステップＳ２０９はステップＳ２０４から始まるループの終わりである。
【００３０】
次に、上記ループで求めた電圧の時間変化をコンピュータのメモリから読み出して、過渡解析を実行し、結果をメモリに格納する（ステップＳ２１０）。
【００３１】
さらに、過渡解析が中断したか否かを判定する（ステップＳ２１１）。
【００３２】
解析が中断していた場合は処理を終了し、解析が中断しなかった場合は、解析結果をメモリから読み出して、電圧と電流の組を順次取得して、ＩＢＩＳモデルのＶＩ特性テーブルをメモリに格納する（ステップＳ２１２）。
【００３３】
ＩＢＩＳモデルは、図１に示すようにバッファの入出力端子に電源を接続し、−ＶＤＤから２ＶＤＤの電圧を与えた場合の電圧と電流の組（例えば、５０から１００組程度）をＶＩ特性テーブルとして備えている。
【００３４】
以下では、図１２のフローチャートに基づいて、一例として、５０点のＶＩ特性テーブルを作成する場合について説明する。
【００３５】
初期値として、開始時刻ｔ＝０、開始電圧ｖ＝−ＶＤＤ−ｓ、解析段数ｎ＝５０、電圧ステップｓ＝（２ＶＤＤ−（−ＶＤＤ））／ｎ、立ち上げ期間ｒ＝ｔ２−ｔ１、保持期間ｈ＝ｔ３−ｔ２、電流値取得時刻ｇ＝ｔ４−ｔ１をコンピュータのメモリに設定する（ステップＳ２０１）。ここで、ｔ１、ｔ２、ｔ３、ｔ４は図７、図８に示す時刻である。
【００３６】
ステップＳ２０４はループの開始を表し、ステップＳ２０１で設定した解析段数ｎ回についてステップＳ２０５ないしステップＳ２０８の処理を繰り返す。ここでは、図７のような電圧変化を、５０段分繰り返し生成し、図６のような電圧の時間変化を生成する。
【００３７】
ステップＳ２０４ないしステップＳ２０９において、図７に示す一段分のステップについて、電圧の時刻暦を生成する。
【００３８】
まず、（開始時刻、開始電圧）＝（ｔ、ｖ）、（終了時刻、終了電圧）＝（ｔ＋ｒ、ｖ＋ｓ）の区間について、メモリに立ち上げ電圧波形を設定する（ステップＳ２０５）。図７のｔ１ないしｔ２の立ち上げ期間について、電圧の時刻暦が設定される。この電圧立ち上げ部分を直線的にした場合、高周波成分の影響によって、電流が安定するまでに時間を要し、または、回路シミュレーションが収束せず、中断することもある。このような場合、図８に示すように、電圧立ち上げを正弦関数としてメモリに設定する。
【００３９】
なお、電圧の立ち上げ箇所を正弦関数とする方法は、本実施例のように複数の直流動作点を求める場合に限らず、単一の直流動作点を解析する場合においても、勿論適用することができる。
【００４０】
次に、（開始時刻、開始電圧）＝（ｔ＋ｒ、ｖ＋ｓ）、（終了時刻、終了電圧）＝（ｔ＋ｒ＋ｈ、ｖ＋ｓ）の区間について、メモリに定常電圧波形を設定する（ステップＳ２０６）。図７のｔ２〜ｔ３の保持期間では、時刻ｔ２時における電圧値に保持した値をメモリに設定する。これによって、電圧立ち上げ後において、電流値を直流状態における値へ安定（収束）させることができる。
【００４１】
メモリにおいて開始時刻ｔを、ｔ←ｔ＋ｒ＋ｈのように再設定し、開始時刻を１段分進める（ステップＳ２０７）。ここで、←は代入記号を表す。
【００４２】
メモリにおいて開始電圧ｖも、ｖ←ｖ＋ｓのように再設定して、開始電圧を１段分進める（ステップＳ２０８）。
【００４３】
Ｓ２０９は、ループの終端であるため、ループの先頭、すなわち、ステップＳ２０４へ移動する。
【００４４】
ステップＳ２０４において、解析段数分の繰り返しを終えたと判定した場合は、ループ処理を終了して、ステップＳ２１０の処理に進む。
【００４５】
次に、ステップＳ２０４ないしステップＳ２０９のループ処理によって、メモリに設定された階段状の電圧に基づいて過渡解析を実行し、結果をメモリに記録する（ステップＳ２１０）。
【００４６】
さらに、ステップＳ２１０における過渡解析が中断したか否かを判定し（ステップＳ２１１）、中断していた場合、処理を終了し、正常に終了していた場合はステップＳ２１２へ進む。
【００４７】
ステップＳ２１０の過渡解析の実行によって生成された解析結果をメモリから読み出して、電圧と電流の組を取得する。これを、時刻ｔ＝ｇから５０回、時刻をｔ←ｔ＋ｒ＋ｈのようにシフトしつつ、メモリに設けたＶＩ特性テーブルに格納する（ステップＳ２１２）。
【００４８】
図３に示した従来手法においては、電圧がつねに変化し続けるため、過渡解析で求めた電流値には、直流解析で求めた電流値と比較して大きな誤差が生じていた。電圧の時間変化を図６で示すような階段状とし、図７の保持期間において電圧を一定として電流値を収束させることによって、直流解析に基づく電流値に近い結果を得ることができる。
【００４９】
図３で示した従来手法において、直流解析との電流誤差を小さくする場合、電圧の時間的変化の傾きを小さくして、直流状態に近づける必要がある。しかし、解析時間を２倍にした場合であっても、電流値の誤差は１／２にしか低減しないため、図５のように、膨大な計算時間を必要とする。実際、解析時間を２倍としても、電流値の誤差は１／２にしかならない。一方、本発明に係る図７に示す方法では、電圧立ち上げ後の時刻ｔ２以降において電圧を一定とし、シミュレーションにおいて直流状態を作り出すことにより、数十ｎ秒程度の保持期間で直流解析の電流値に近づけることができる。過渡状態から定常状態に移行することによって、誘導性リアクタンスおよび容量性リアクタンスの成分は減少し、ＲＣの時定数に応じて直流解析の電流、すなわち純抵抗のみが寄与する電流へと収束するからである。したがって、本発明に係る電圧の時刻暦を用いることにより、コンピュータによる解析時間を大幅に削減することができる。
【００５０】
さらに、図７で示した手法における直線状の電圧の立ち上げ箇所を正弦関数に置き換えることによって、保持期間において、電流の収束値を求めるための解析時間をさらに短縮することができる。直線的な電圧変化の場合、高周波成分によって過渡電流に誤差が生じる。しかし、正弦関数ではこのような誤差が少ないため、短時間で安定状態となるからである。したがって、図７に示した手法と比較して、保持期間をさらに短くすることができ、ＶＩ特性を求めるための解析時間も削減することができる。
【００５１】
ところで、ＳＰＩＣＥでは、タイムステップコントロールにより時間刻みが自動的に決定される。しかし、図７のような直線状の電圧変化の場合、非常に高い周波数（すなわち、非常に短い周期）の正弦関数が含まれるため、ＳＰＩＣＥで設定することのできる最短の時間刻みにおいても、回路シミュレーションが収束しないおそれがある。
【００５２】
そこで、図７のような直線的な電圧変化とする代わりに、図８のような正弦関数の電圧変化とし、高周波成分をなくすことにより、回路シミュレーションの収束性を向上させることができる。図８のような、単一の正弦関数であれば、この周期に応じた適当な時間刻みを設定することができる。
【００５３】
なお、実施例１は回路シミュレーションの実行方法として説明したが、かかる実行方法の各ステップ（工程）を、コンピュータに実行させる回路シミュレーション実行プログラムとしてもよい。
【００５４】
また、かかる回路シミュレーション実行プログラムを、コンピュータ読み取り可能な記録媒体に記録してもよい。記録媒体は、半導体メモリ、ＤＶＤ、ＣＤ、ハードディスク（ＨＤ）のいずれであってもよい（以下同じ）。
【実施例２】
【００５５】
実施例１における回路シミュレーションが収束せず、過渡解析が中断した場合、図８に示した正弦関数状の電圧立ち上げ箇所について、以下のように改良することが考えられる。
【００５６】
すなわち、図９のように、立ち上げ期間の候補として、正弦関数の周期を予め複数個メモリに格納しておいて（ｒ１[０]、ｒ１[１]、・・・）、階段状の電圧立ち上げをコンピュータによって自動的に生成し直すと同時に、過渡解析も再度行うようにすることが好ましい。
【００５７】
図１３は、本発明の実施例２に係る回路シミュレーション実行方法のフローチャートである。実施例１に対するフローチャート（図１２）との差異は以下の点である。
【００５８】
初期値として、開始時刻ｔ、開始電圧ｖ、解析段数ｎ、電圧ステップｓ、立ち上げ期間を格納した配列ｒｌ、保持期間ｈ、電流値取得時刻ｇをコンピュータのメモリに設定する（ステップＳ３０１）。配列ｒｌには、複数の立ち上げ期間の候補を設定する（図９参照）。
【００５９】
電圧立ち上げ期間の配列ｒ１をメモリから読み出して、立ち上げ期間を選択して設定する（ステップＳ３０２）。
【００６０】
電圧立ち上げ期間の設定を行うことができたか否かを判定する（ステップＳ３０３）。
【００６１】
解析が中断したと判定した（ステップＳ３１１）場合、処理を終了させる代わりに、再度ステップＳ３０２に戻り、立ち上げ期間を設定し直す。
【００６２】
以下では、図１３のフローチャートに基づいて、電圧立ち上げ箇所の正弦関数の周期を延長する場合について説明する。
【００６３】
初期値として、開始時刻ｔ＝０、開始電圧ｖ＝−ＶＤＤ−ｓ、解析段数ｎ＝５０、電圧ステップｓ＝（２ＶＤＤ−（−ＶＤＤ））／ｎ、立ち上げ期間の配列ｒｌ＝（ｔ２−ｔ１）、（ｔ２’−ｔ１’）、保持期間ｈ＝ｔ３−ｔ２、電流値取得時刻ｇ＝ｔ４−ｔ１をコンピュータのメモリに設定する（ステップＳ３０１）。ここで、ｔ１、ｔ２、ｔ３、ｔ４は、図８に示した時刻である。
【００６４】
電圧立ち上げ期間の配列ｒｌから、電圧立ち上げ期間を１つ選択し、電圧立ち上げ期間ｒに設定する（ステップＳ３０２）。
【００６５】
電圧立ち上げ期間の配列ｒ１から、電圧立ち上げ期間を選択することができたか否かを判定し（ステップＳ３０３）、選択できなかった場合は処理を終了し、選択できた場合はステップＳ３０４の処理へ進む。
【００６６】
ステップＳ３０４ないしステップＳ３１０における処理の内容は、実施例１と同様である。
【００６７】
ステップＳ３１０における過渡解析が中断したか否かを判定し（ステップＳ３１１）、中断した場合はステップＳ３０２の処理に戻り、中断することなく正常終了していた場合はステップＳ３１２の処理に進む。
【００６８】
ステップＳ３１２において、実施例１と同様、コンピュータのメモリに設けたＶＩ特性テーブルへ解析結果を格納する。
【００６９】
図９に示すように電圧立ち上げ期間、すなわち、正弦関数の周期を長くするにつれて、回路シミュレーションの収束性が向上する効果が得られる。
【００７０】
なお、実施例２は回路シミュレーションの実行方法として説明したが、かかる実行方法の各ステップ（工程）を、コンピュータに実行させる回路シミュレーション実行プログラムとしてもよい。
【００７１】
また、かかる回路シミュレーション実行プログラムを、コンピュータ読み取り可能な記録媒体に記録してもよい。
【実施例３】
【００７２】
実施例２では、図６に示す階段状の電圧の時間変化に基づいて過渡解析が行われる。しかし、回路シミュレーションが収束せず、過渡解析が中断し、再び解析処理が発生することによって、解析時間が増大するという問題がある。実施例２では、図９に示すように、階段状の電圧立ち上げの期間または正弦関数の周期を延長し、電圧立ち上がりの傾きを緩やかにし、前回の解析よりも収束性を向上させる際に、既に求まっているＶＩ特性の結果を破棄して過渡解析をはじめからやり直しているからである。
【００７３】
そこで、回路シミュレーションが収束せず、解析が中断した場合、時刻０からの解析をやり直すのではなく、ＶＩ特性が求まらなかったステップの立ち上がり部分から、電圧を再度立ち上げるようにする（実施例３）。これによって、回路シミュレーションが収束し、既に取得されたＶＩ特性について、重複して解析が行われることがなくなり、全解析に必要な時間をさらに短縮することができる。
【００７４】
また、再解析において、電圧立ち上げの開始電圧を０Ｖとすることが好ましい。これによって、回路シミュレーションの収束性が向上し、直流動作点を求めやすくする。
【００７５】
再解析を行う場合、最終動作点の電圧を初期動作点の電圧として与え電圧を立ち上げ直す。これにより、初期動作点を求める直流解析を省略することができ、０Ｖから立ち上げる場合より立ち上がりに必要な解析時間が短縮される。
【００７６】
図１５は、実施例３に係る回路シミュレーション実行方法のフローチャートである。
【００７７】
各ステップにおける処理の内容は以下の通りである。
【００７８】
まず、初期値として、開始時刻ｔ（ｓｔ）、開始電圧ｖ（ｓｖ）、解析段数ｎ、電圧ステップｓ、立ち上げ期間ｒ、保持期間ｈ、電流値取得時刻ｇをコンピュータのメモリに設定する（ステップＳ５０１）。
【００７９】
開始時刻が０であるか否かを判定する（ステップＳ５０２）。
【００８０】
開始時刻が０である場合、立ち上げ電圧波形を設定する（ステップＳ５１６）。
【００８１】
開始時刻が０でない場合、すなわち、再解析の場合、電圧を０Ｖから立ち上げた場合の時刻ｔ０を算出する（ステップＳ５０３）。
【００８２】
電圧を０Ｖから立ち上げる箇所をメモリに設定する（ステップＳ５０４）。
【００８３】
ステップＳ５０５は、解析段数分に相当する繰り返し処理のループの先頭を表す。
【００８４】
繰り返し処理の１回目であるか否かを判定し（ステップＳ５０６）、１回目でない場合に限り、コンピュータのメモリにおいて、１段分の電圧立ち上げを設定し（ステップＳ５０７）、１段分の定常電圧を設定し（ステップＳ５０８）、開始時刻ｔを１段分だけ進め（ステップＳ５０９）、開始電圧ｖも１段分だけ進める（ステップＳ５１０）。
【００８５】
ステップＳ５１１はステップＳ５０５から始まるループの終端である。
【００８６】
ステップＳ５０５ないしステップＳ５１１のループで求めた電圧の時刻暦に基づいて、過渡解析を実行する（ステップＳ５１２）。
【００８７】
解析結果から電圧と電流の組を抽出し、ＩＢＩＳモデルのＶＩテーブルを生成し、メモリに格納する（ステップＳ５１３）。
【００８８】
解析が中断したか否かを判定し（ステップＳ５１４）、解析が中断していた場合は、中断した時刻ａｔを取得し（ステップＳ５１５）、ステップＳ５０２の処理に戻る。
【００８９】
ＩＢＩＳモデルをキャラクタライズする場合、図１に示すようにバッファの入出力端子に電源を接続し、−ＶＤＤ〜２ＶＤＤの電圧を与えて、５０〜１００点の電流値をＶＩ特性テーブルとしてメモリに格納する。
【００９０】
以下では、一例として、５０点のＶＩ特性テーブルを作成する場合について、図１５のフローチャートに基づいて説明する。
【００９１】
初期値として、開始時刻ｓｔ＝ｔ＝０、開始電圧ｓｖ＝ｖ＝−ＶＤＤ−ｓ、解析段数ｎ＝５０、電圧ステップｓ＝（２ＶＤＤ−（−ＶＤＤ））／ｎ、立ち上げ期間ｒ＝ｔ２−ｔ１、保持期間ｈ＝ｔ３−ｔ２、電流値取得時刻ｇ＝ｔ４−ｔ１をメモリに設定する（ステップＳ５０１）。ここで、ｔ１、ｔ２、ｔ３、ｔ４、ｓｔおよびｓｖは、図１６に示した時刻および電圧である。
【００９２】
開始時刻が０（すなわち、１回目の解析）であるか否かを判定し（ステップＳ５０２）、１回目の解析の場合は電圧の立ち上げをメモリに設定し（ステップＳ５１６）、再解析の場合はステップＳ５０３の処理に進む。
【００９３】
図１６を参照して、電圧を０Ｖから立ち上げる場合の立ち上げ開始時刻ｔ０を算出する（ステップＳ５０３）。
【００９４】
電圧０Ｖにおける開始時刻ｔ０は、ステップＳ５０５から始まるループで求めた電圧の立ち上げ箇所の傾きに基づいて、線形補完等を用いて算出する。
【００９５】
線形補完の場合、開始時刻はｔ０＝（ｒ＊（ｅｖ−０Ｖ））／ｈ＋ｅｔとする。また、電流値取得済みのポイント数ｉ、立ち上げ開始時刻ｓｔ、立ち上がり終了時刻ｅｔ、最後に電流を取得した定常電圧ｓｖ、解析中断時刻の直後において、電流を取得する予定であった定常電圧ｅｖは、それぞれ、ｉ＝ｉｎｔ（ａｔ／（ｒ＋ｈ））、ｓｔ＝（ｒ＋ｈ）＊ｉ、ｅｔ＝ｓｔ＋ｒ、ｓｖ＝ｖ＋ｈ＊ｉ、ｅｖ＝ｓｖ＋ｈと表される。
【００９６】
次に、（開始時刻、開始電圧）＝（ｔ０、０）、（終了時刻、終了電圧）＝（ｅｔ、ｅｖ）の区間において、再解析時における０Ｖからの電圧の立ち上げをメモリに設定する（ステップＳ５０４）。回路シミュレーションの収束性を向上させるため、立ち上げ箇所を正弦関数とし、または、開始時刻ｔ０をより早めの時刻に設定して電圧の立ち上げを緩やかにしてもよい。
【００９７】
ステップＳ５０５は、階段状の電圧の時刻暦を求めるための繰り返し処理（ループ）の始点である。繰り返しのインデックスｉについて、ｉ＝１ないし５０の間、繰り返し実行を行う。また、初期値として、時刻ｔ＝ｓｔおよび電圧ｖ＝ｓｖをメモリに設定する。
【００９８】
階段状の電圧波形設定の１段目の繰り返し処理であるか否かを判定し（ステップＳ５０６）。１回目の場合に限り、ステップＳ５０８へ進み、２回目以降の場合はステップＳ５０７へ進む。
【００９９】
（開始時刻、開始電圧）＝（ｔ、ｖ）、（終了時刻、終了電圧）＝（ｔ＋ｒ、ｖ＋ｓ）の区間に対する電圧の立ち上げをメモリに設定する（ステップＳ５０７）。図１６を参照すると、時刻ｔ１ないしｔ２の期間において、電圧ステップが１段分立ち上がる。この電圧立ち上げ箇所は、直線とする代わりに、収束性を向上させるために、正弦関数としてもよい。
【０１００】
（開始時刻、開始電圧）＝（ｔ＋ｒ、ｖ＋ｓ）、（終了時刻、終了電圧）＝（ｔ＋ｒ＋ｈ、ｖ＋ｓ）の区間において、定常電圧をメモリに設定する（ステップＳ５０８）。図１６を参照して、時刻ｔ２ないしｔ３の保持期間では、時刻ｔ２における電圧ｖ２を一定に保つ。
【０１０１】
開始時刻ｔを、ｔ←ｔ＋ｒ＋ｈのように再設定し、メモリにおける開始時刻を１段分進める（ステップＳ５０９）。
【０１０２】
開始電圧ｖも、ｖ←ｖ＋ｓのように再設定し、メモリにおける開始電圧を１段分進める（ステップＳ５１０）。
【０１０３】
１段分の電圧波形の設定を完了し、ステップＳ５０５に戻り、次の段の電圧波形のメモリへの設定を開始する。５０段分の電圧波形の設定が完了している場合はステップＳ５１２の処理に進む。
【０１０４】
次に、ステップＳ５０３ないしステップＳ５１１の処理によってメモリに設定した階段状の電圧の時刻暦に基づいて過渡解析を実行する（ステップＳ５１２）。
【０１０５】
ステップＳ５１２の過渡解析の実行によって、生成された解析結果をメモリから読み出して、電圧と電流の組を抽出する（ステップＳ５１３）。具体的には、時刻ｔ＝ｓｔ＋ｇから開始して、ｎ−ｉ回に亘って、時刻ｔをｔ←ｔ＋ｒ＋ｈのようにシフトしながら、電圧と電流の組みをメモリから抽出して、ＩＢＩＳモデルのＶＩ特性テーブルとしてメモリに格納する。再解析における解析結果は、メモリに既に格納済みのＶＩ特性テーブルにマージすればよい。
【０１０６】
ステップＳ５１２の過渡解析が中断したか否かを判定し（ステップＳ５１４）、中断していた場合は、解析中断時の時刻ａｔを取得し（ステップＳ５１５）、ステップＳ５０２の処理に戻る。過渡解析が中断することなく、正常に終了していた場合は、処理を終了する。
【０１０７】
実施例２では、例えばＳＰＩＣＥを用いた解析において回路シミュレーションが収束せず、解析が途中で中断した場合、図９に示すように立ち上がり期間を延長して、時刻０から解析を再実行することで全てのＶＩ特性を求め直していた。このため、既に取得済みであるＶＩ特性を再度解析することになり、重複して解析される箇所に対して費やされる時間が無駄になっていた。特に、収束性の悪い回路の場合、ＶＩ特性を求める際に頻繁に解析が中断する場合があるため、処理時間が増大するおそれがある。これを、図１５に示した、実施例３に係るフローチャートに変更し、図１４および図１６に示すような時刻ｔ０、電圧０Ｖからの立ち上げとすることで、時刻０ないしｔ０の期間に相当する、解析時間を削減することができる。また、電圧を０Ｖから立ち上げて、過渡解析を実行することによって、回路シミュレーションの収束性も改善する。
【０１０８】
なお、実施例３は回路シミュレーションの実行方法として説明したが、かかる実行方法の各ステップ（工程）を、コンピュータに実行させる回路シミュレーション実行プログラムとしてもよい。
【０１０９】
また、かかる回路シミュレーション実行プログラムを、コンピュータ読み取り可能な記録媒体に記録してもよい。
【実施例４】
【０１１０】
図１７および図１９に示すように、ＩＢＩＳモデルをキャラクタライズする場合において、ＳＰＩＣＥを用いたとき、回路シミュレーションの収束性の悪い回路に対しては、解析が中断することによって、必要なＶＩ特性が求まらないことがある。このとき、実施例３において、電圧０Ｖからの立ち上げを設定していた箇所に対し、解析中断時における最終動作点電圧を初期動作点電圧としてメモリに設定して、解析が中断した電圧から電圧を立ち上げることもできる（実施例４）。
【０１１１】
図１８は、実施例４に係る回路シミュレーションのフローチャートである。実施例４と実施例３との相違点は以下の通りである。
【０１１２】
最終動作点電圧を初期動作点電圧として全ての接点に対して設定する（ステップＳ８０３）。
【０１１３】
中断した電圧から、電圧の立ち上げをメモリに設定する（ステップＳ８０４）。
【０１１４】
解析が中断した時刻および電圧を取得する（ステップＳ８１５）。
【０１１５】
解析中断直前の最終動作点電圧を取得する（ステップＳ８１６）。
【０１１６】
図１６を参照すると、時刻ｔ０ないしｔ１の区間についての過渡解析処理を削減することができる。また、初期動作点電圧をメモリに設定することによって、直流解析を省略することができるため、解析時間を短縮することができる。
【０１１７】
以下、図１８のフローチャートに基づいて、解析が中断した時刻および電圧から、電圧を立ち上げる場合について説明する。但し、実施例３と重複する処理については、説明を省略する。
【０１１８】
ステップＳ８１６において取得した最終動作点電圧を、すべての接点に対して初期動作点電圧として設定する（ステップＳ８０３）。これによって、初期動作点電圧を求めるための直流解析を省略することができる。
【０１１９】
図１９を参照して、（開始時刻、開始電圧）＝（ｓｔ、ａｖ）、（終了時刻、終了電圧）＝（ｅｔ、ｅｖ）の区間に解析が中断した電圧からの立ち上げ電圧波形をメモリに設定する（ステップＳ８０４）。ここで、回路シミュレーションの収束性を向上させるために、電圧の立ち上げ部分を正弦関数としてもよい。
【０１２０】
解析が中断した時刻ａｔおよび電圧ａｖを取得する（ステップＳ８１５）。
【０１２１】
解析中断直前の最終動作点電圧を全ての接点について取得し（ステップＳ８１６）、ステップＳ８０２の処理に進む。
【０１２２】
なお、実施例４は回路シミュレーションの実行方法として説明したが、かかる実行方法の各ステップ（工程）を、コンピュータに実行させる回路シミュレーション実行プログラムとしてもよい。
【０１２３】
また、かかる回路シミュレーション実行プログラムを、コンピュータ読み取り可能な記録媒体に記録してもよい。
【図面の簡単な説明】
【０１２４】
【図１】ＩＢＩＳモデルのＶＩ特性測定方法を説明するための図である。
【図２】直流解析によるＶＩ特性測定方法を説明するための図である。
【図３】電圧を一定の傾きで立ち上げて行われた過渡解析について説明するための図である。
【図４】電圧の立ち上げの傾きを緩やかにした過渡的解析について説明するための図である。
【図５】図４の電圧の立ち上げそれぞれについて行った過渡解析に対する回路シミュレーションの処理時間と、得られた電流の直流解析に対する誤差との関係を示す図である。
【図６】本発明の実施例１に係る回路シミュレーション実行方法における電圧の時刻暦である。
【図７】本発明の実施例１に係る回路シミュレーション実行方法における電圧の時刻暦である（図６の一部を拡大したもの）。
【図８】本発明の実施例１に係る回路シミュレーション実行方法における電圧の時刻暦である（図７における電圧の立ち上がり部分を正弦関数状の波形としたもの）。
【図９】本発明の実施例２に係る回路シミュレーション実行方法における電圧の時刻暦である（図８の正弦関数の周期を変更したもの）。
【図１０】従来の回路シミュレーション実行方法のフローチャートである。
【図１１】従来の回路シミュレーション実行方法における電圧の時刻暦を示す図である。
【図１２】本発明の実施例１に係る回路シミュレーション実行方法のフローチャートである。
【図１３】本発明の実施例２に係る回路シミュレーション実行方法のフローチャートである。
【図１４】本発明の実施例３に係る回路シミュレーション実行方法における電圧の時刻暦を示す図である。
【図１５】本発明の実施例３に係る回路シミュレーション実行方法のフローチャートである。
【図１６】本発明の実施例３に係る回路シミュレーション実行方法における電圧の時刻暦を示す図である（図１４の０Ｖからの電圧の立ち上げ箇所を拡大したもの）。
【図１７】本発明の実施例４に係る回路シミュレーション実行方法における電圧の時刻暦である。
【図１８】本発明の実施例４に係る回路シミュレーション実行方法のフローチャートである。
【図１９】本発明の実施例４に係る回路シミュレーション実行方法における電圧の時刻暦である（図１７の解析中断箇所の近傍を拡大したもの）。
【図１】
2008299719.tif 000003
【図２】
2008299719.tif 000004
【図３】
2008299719.tif 000005
【図４】
2008299719.tif 000006
【図５】
2008299719.tif 000007
【図６】
2008299719.tif 000008
【図７】
2008299719.tif 000009
【図８】
2008299719.tif 000010
【図９】
2008299719.tif 000011
【図１０】
2008299719.tif 000012
【図１１】
2008299719.tif 000013
【図１２】
2008299719.tif 000014
【図１３】
2008299719.tif 000015
【図１４】
2008299719.tif 000016
【図１５】
2008299719.tif 000017
【図１６】
2008299719.tif 000018
【図１７】
2008299719.tif 000019
【図１８】
2008299719.tif 000020
【図１９】
2008299719.tif 000021