(57)【要約】【課題】回路シミュレータが、素子レベルの回路図からハイインピーダンスが発生するノードを検出できるようになる異常状態発生ノード検出方法を提供する。【解決手段】回路シミュレータに、素子本来の動作モデルとは異なる異常検出用の動作モデルを用意する。異常検出用の動作モデルは、ハイインピーダンスが発生すると該素子の端子に通常の動作モデルを設定したときとは異なる電圧または電流が発生する動作モデルである。素子本来の動作モデルを設定した回路の動作解析により得た各ノード電圧（ステップＳ２０２）と異常検出用の動作モデルを設定した回路の動作解析により得た各ノード電圧（ステップＳ２０７）を比較し（ステップＳ２０８）、その差が閾値以上のノードを、ハイインピーダンスが発生するノードと判断する。【選択図】図２
2006171919.tif 000002
【特許請求の範囲】
【請求項１】
回路シミュレータが、
解析対象回路に含まれる全ての素子または指定された素子に、異常状態が発生すると該素子の端子に通常の動作モデルを設定したときとは異なる電圧または電流が発生する異常検出用の動作モデルを設定して、解析対象回路の動作解析を行い、
該異常検出用の動作モデルを設定した解析対象回路の動作解析の結果を用いて、通常の動作モデルを設定したときとは異なる電圧または電流が発生する異常状態発生ノードの検出を行う、
ことを特徴とする異常状態発生ノード検出方法。
【請求項２】
請求項１記載の異常状態発生ノード検出方法であって、
回路シミュレータが、通常の動作モデルを設定した解析対象回路の回路シミュレーション中に、素子の動作モデルを通常の動作モデルから異常検出用の動作モデルへと切り替えて設定し、該異常検出用の動作モデルを設定した解析対象回路の動作解析を行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項３】
請求項１記載の異常状態発生ノード検出方法であって、
異常状態発生ノードの検出は、異常検出用の動作モデルを設定した解析対象回路の動作解析の結果と予め決められた規定値とを比較することで行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項４】
請求項２記載の異常状態発生ノード検出方法であって、
異常状態発生ノードの検出は、異常検出用の動作モデルを設定した解析対象回路の動作解析の結果と予め決められた規定値とを比較することで行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項５】
請求項４記載の異常状態発生ノード検出方法であって、
解析対象回路に含まれる素子の動作モデルの切り替え、通常の動作モデルを設定した解析対象回路の動作解析、異常検出用の動作モデルを設定した解析対象回路の動作解析、および異常検出用の動作モデルを設定した解析対象回路の動作解析の結果と予め決められた規定値との比較をタイムステップ毎に順次行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項６】
請求項５記載の異常状態発生ノード検出方法であって、
解析対象回路に含まれる素子の動作モデルを切り替えるに際し、通常の動作モデルを設定した解析対象回路の動作解析の結果から、素子の端子に発生する電流または電圧が変化したか否かをタイムステップ単位で判断し、変化があった素子についてのみ異常検出用の動作モデルへ切り替える
ことを特徴とする異常状態発生ノード検出方法。
【請求項７】
請求項４ないし６のいずれかに記載の異常状態発生ノード検出方法であって、
異常状態発生ノードの検出は、ノード電圧と規定値とを比較することで行うことを特徴とする異常状態発生ノード検出方法。
【請求項８】
請求項２記載の異常状態発生ノード検出方法であって、
異常状態発生ノードの検出は、通常の動作モデルを設定した解析対象回路の動作解析の結果と異常検出用の動作モデルを設定した解析対象回路の動作解析の結果とを比較することで行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項９】
請求項８記載の異常状態発生ノード検出方法であって、
解析対象回路に含まれる素子の動作モデルの切り替え、通常の動作モデルを設定した解析対象回路の動作解析、異常検出用の動作モデルを設定した解析対象回路の動作解析、および通常の動作モデルを設定した解析対象回路の動作解析の結果と異常検出用の動作モデルを設定した解析対象回路の動作解析の結果との比較をタイムステップ毎に順次行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項１０】
請求項９記載の異常状態発生ノード検出方法であって、
解析対象回路に含まれる素子の動作モデルを切り替えるに際し、通常の動作モデルを設定した解析対象回路の動作解析の結果から、素子の端子に発生する電流または電圧が変化したか否かをタイムステップ単位で判断し、変化があった素子についてのみ異常検出用の動作モデルへ切り替える
ことを特徴とする異常状態発生ノード検出方法。
【請求項１１】
請求項９ないし１０のいずれかに記載の異常状態発生ノード検出方法であって、
異常状態発生ノードの検出は、通常の動作モデルを設定した解析対象回路のノード電圧と異常検出用の動作モデルを設定した解析対象回路のノード電圧を比較することで行うことを特徴とする異常状態発生ノード検出方法。
【請求項１２】
請求項１１記載の異常状態発生ノード検出方法であって、
異常状態発生ノードの検出は、通常の動作モデルを設定した解析対象回路のノード電圧と異常検出用の動作モデルを設定した解析対象回路のノード電圧の差が一定値以上であるか否かを判断して行う
ことを特徴とする異常状態発生ノード検出方法。
【請求項１３】
請求項１ないし１２のいずれかに記載の異常状態発生ノード検出方法であって、
異常検出用の動作モデルを設定する素子はトランジスタ素子であり、異常検出用の動作モデルは、トランジスタ素子とそのゲート端子またはベース端子を内部電源電圧よりも高い電圧にプルアップする回路を含む動作モデルである、
ことを特徴とする異常状態発生ノード検出方法。
【請求項１４】
請求項１ないし１２のいずれかに記載の異常状態発生ノード検出方法であって、
異常検出用の動作モデルを設定する素子はトランジスタ素子であり、異常検出用の動作モデルは、トランジスタ素子とそのゲート端子またはベース端子をグランド電圧よりも低い電圧にプルダウンする回路を含む動作モデルである、
ことを特徴とする異常状態発生ノード検出方法。
【請求項１５】
請求項１ないし１２のいずれかに記載の異常状態発生ノード検出方法であって、
異常検出用の動作モデルを複数種類用意しておき、異常検出用の動作モデルを設定する素子に対して順次設定して、それぞれ動作解析することを特徴とする異常状態発生ノード検出方法。
【請求項１６】
請求項１５記載の異常状態発生ノード検出方法であって、
異常検出用の動作モデルを設定する素子はトランジスタ素子であり、異常検出用の動作モデルは２種類であって、一方はトランジスタ素子とそのゲート端子またはベース端子を内部電源電圧よりも高い電圧にプルアップする回路を含む動作モデルであり、他方はトランジスタ素子とそのゲート端子またはベース端子をグランド電圧よりも低い電圧にプルダウンする回路を含む動作モデルである、
ことを特徴とする異常状態発生ノード検出方法。
【請求項１７】
前記異常状態発生ノードを検出するとそのノード名を出力することを特徴とする請求項１ないし１６のいずれかに記載の異常状態発生ノード検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路シミュレータが、異常状態が発生するノードを回路図から検出するための異常状態発生ノード検出方法に関する。
【背景技術】
【０００２】
設計された回路の動作検証は、通常「Ｓｐｉｃｅ」などの回路シミュレータを用いて行われる。しかし、回路シミュレータで使用される素子の特性は実際の特性よりも理想状態に近いため、シミュレーション上では、ハイインピーダンスが発生しても回路が正常に動作することがある。
【０００３】
ところが、実際の回路でハイインピーダンスが発生すると、そのハイインピーダンスが発生したノードに接続するトランジスタ素子に貫通電流が流れたり、回路動作が不安定になるなどの問題が発生する。そのため、ハイインピーダンスが発生するノードを回路の設計段階で検出しないと、実際の回路の品質が大きく低下してしまうという問題があった。そこで、ハイインピーダンスが発生するノードを回路の設計段階で検出するための手法が従来より提案されている。
【０００４】
例えば、ロジック回路においてハイインピーダンスの発生や貫通電流の発生を検出する手法として、回路図においてトライステートセルのコントロール端子の接続関係を調べることでハイインピーダンスや貫通電流が発生するノードを検出する手法が提案されている（例えば、特許文献１参照。）。
【０００５】
また、相補型ＭＯＳ（ＣＭＯＳ）により構成される回路の素子レベルの回路図を対象にハイインピーダンスが発生するノードを検出する手法も提案されている（例えば、特許文献２参照。）。この手法は、１）回路中に含まれるＮチャネル型ＦＥＴ素子（以下、ＮＦＥＴと称す。）に対して、そのゲート端子がクロック線に接続し、かつドレイン端子またはソース端子がグランドに接続しているか否かを調べ、２）また、同様に、Ｐチャネル型ＦＥＴ素子（以下、ＰＦＥＴと称す。）に対して、そのゲート端子がクロック線に接続し、かつドレイン端子またはソース端子が電源に接続しているか否かを調べ、３）ゲート端子がクロック線に接続していない場合は、ＮＦＥＴとＰＦＥＴの接続が相補型になっているか否かを確認し、４）相補型になっていない場合は、ＦＥＴ素子に接続するノードにハイインピーダンスが発生する可能性があると判断する、というものである。
【０００６】
図７に、この従来のハイインピーダンス発生ノード検出手法を説明するためのフローチャートを示す。
図７において、ステップＳ７０１では、回路図中に含まれる素子を１つ選択する。
【０００７】
ステップＳ７０２では、ステップＳ７０１にて選択した素子がＮＦＥＴか否かの判定を行う。その判定の結果、ＮＦＥＴであればステップＳ７０３に進み、ＮＦＥＴでなければステップＳ７０６に進む。
【０００８】
ステップＳ７０３では、ＮＦＥＴのゲート端子がクロック線に接続しており、且つソース端子がＧＮＤ線に接続しているか否かの判定を行う。その判定の結果、接続していればハイインピーダンスになる可能性はないためステップＳ７０９に進む。接続していなければステップＳ７０４に進む。
【０００９】
ステップＳ７０４では、ＮＦＥＴの各端子がＰＦＥＴと相補的に接続しているか否かの判定を行う。その判定の結果、相補的に接続していればハイインピーダンスになる可能性はないためステップＳ７０９に進む。相補的に接続していなければハイインピーダンスになる可能性があるため、エラー表示をするステップＳ７０５に進む。
【００１０】
ステップＳ７０６では、ステップＳ７０１にて選択した素子がＰＦＥＴか否かの判定を行う。その判定の結果、ＰＦＥＴであればステップＳ７０７に進み、ＰＦＥＴでなければステップＳ７０９に進む。
【００１１】
ステップＳ７０７では、ＰＦＥＴの各端子がＮＦＥＴと相補的に接続しているか否かの判定を行う。その判定の結果、相補的に接続していればハイインピーダンスになる可能性はないためステップＳ７０９に進む。相補的に接続していなければステップＳ７０８に進む。
【００１２】
ステップＳ７０８では、ＰＦＥＴのゲート端子がクロック線に接続しており、且つドレイン端子がＶＤＤ線に接続しているか否かの判定を行う。その判定の結果、接続していればハイインピーダンスになる可能性はないためステップＳ７０９に進む。接続していなければハイインピーダンスになる可能性があるため、エラー表示をするステップ７０５に進む。
【００１３】
ステップＳ７０９では、全ての素子に対して上記の判定処理が行われたか否かの判定を行う。その判定の結果、全ての素子に対する上記の判定処理が完了していない場合はステップＳ７０１に戻る。全ての素子に対する上記の判定処理が完了している場合、または、ステップＳ７０５にてエラー表示を行った場合は、処理を終了する。
【００１４】
市販されている回路シミュレーションツールにも同様の機能を持つものがある。米国「Ｓａｎｄｗｏｒｋ社」の「ＳｐｉｃｅＬｉｎｔ」は、回路の中から、ＰＦＥＴのゲート端子が電源に接続されている箇所や、ＮＦＥＴのゲート端子がグランドに接続されている箇所、ＮＦＥＴとＰＦＥＴのゲート端子同士が接続され他との接続がない箇所を検出することにより、ハイインピーダンスになる可能性があるノードを検出する。
【００１５】
しかしながら、この従来のハイインピーダンス発生ノード検出手法は、回路の接続関係のみに基づいてハイインピーダンスが発生する可能性のあるノードを検出するため、アナログ回路に対しては、実際にはハイインピーダンスにならないノードをハイインピーダンスになる可能性があると判断してエラー出力するという問題があった。
【００１６】
つまり、アナログ回路は、ＮＦＥＴとＰＦＥＴが常に相補型で使用されているわけではない。また、ＦＥＴ素子のゲート端子も常にクロック信号に接続されているとは限らず、ＦＥＴ素子のドレイン端子やソース端子も電源ネットやグランドネットに直接接続せずに、抵抗や容量などの他の受動素子や別のＦＥＴ素子を経由して複雑な経路によって電源ネットやグランドネットに接続する場合がある。このように隣接するＮＦＥＴとＰＦＥＴのゲート端子が同じ信号に接続していない場合や、ドレイン端子やソース端子が複雑な経路により電源ネットやグランドネットと接続している場合、従来のハイインピーダンス発生ノード検出手法では、このＦＥＴ素子に接続するノードにハイインピーダンスが発生する可能性があると判断してエラー出力する。しかし、アナログ回路では、このような構成の場合であっても必ずＦＥＴ素子に接続するノードがハイインピーダンスになるとは限らない。
【００１７】
また、一般的なハイインピーダンスの検出手法として、実際の回路において、ハイインピーダンスになる可能性のあるノードに数Ｇ（ギガ）オームの高抵抗を介して電源やグランドを接続し、この抵抗を流れる電流をモニタすることによってハイインピーダンスの発生を検出する手法もある。つまり、高抵抗を接続したノードがハイインピーダンスになればその抵抗にはほとんど電流が流れないが、ハイインピーダンスにならなければ高抵抗には電位差に応じた電流が流れることを利用して、ハイインピーダンスの発生を検出する。
【００１８】
しかしながら、実際の回路に高抵抗を接続し、その抵抗を流れる電流をモニタする従来の手法では、ハイインピーダンスになる可能性がある全てのノードに対して余分な素子を追加する作業が必要となり、手間と時間がかかるという問題があった。また、高抵抗の追加により回路に余分な電流が流れてしまうため、本来の動作とは異なる結果が得られる場合があり、検出精度を下げてしまうおそれがあった。
【特許文献１】特開２００３−１８６９３５号公報
【特許文献２】米国特許６，７２５，９７０Ｂ１
【発明の開示】
【発明が解決しようとする課題】
【００１９】
本発明は、上記問題点に鑑み、回路シミュレータに、素子本来の動作モデルとは異なる異常検出用の動作モデルを用意する。この異常検出用の動作モデルは、ハイインピーダンスなどの異常状態が発生すると該素子の端子に通常の動作モデルを設定したときとは異なる電圧または電流が発生する動作モデルである。この異常検出用の動作モデルを設定した解析対象回路の動作解析を行い、通常の動作モデルを設定したときとは異なる電圧または電流が発生する異常状態発生ノードの検出を行うことにより、回路シミュレータが、相補型ＭＯＳ（ＣＭＯＳ）により構成される回路やアナログ回路の素子レベルの回路図からハイインピーダンスなどの異常状態が発生するノードを検出できるようになる異常状態発生ノード検出方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明の請求項１記載の異常状態発生ノード検出方法は、回路シミュレータが、解析対象回路に含まれる全ての素子または指定された素子に、異常状態が発生すると該素子の端子に通常の動作モデルを設定したときとは異なる電圧または電流が発生する異常検出用の動作モデルを設定して、解析対象回路の動作解析を行い、該異常検出用の動作モデルを設定した解析対象回路の動作解析の結果を用いて、通常の動作モデルを設定したときとは異なる電圧または電流が発生する異常状態発生ノードの検出を行う、ことを特徴とする。
【００２１】
また、本発明の請求項２記載の異常状態発生ノード検出方法は、請求項１記載の異常状態発生ノード検出方法であって、回路シミュレータが、通常の動作モデルを設定した解析対象回路の回路シミュレーション中に、素子の動作モデルを通常の動作モデルから異常検出用の動作モデルへと切り替えて設定し、該異常検出用の動作モデルを設定した解析対象回路の動作解析を行うことを特徴とする。
【００２２】
また、本発明の請求項３記載の異常状態発生ノード検出方法は、請求項１記載の異常状態発生ノード検出方法であって、異常状態発生ノードの検出は、異常検出用の動作モデルを設定した解析対象回路の動作解析の結果と予め決められた規定値とを比較することで行うことを特徴とする。
【００２３】
また、本発明の請求項４記載の異常状態発生ノード検出方法は、請求項２記載の異常状態発生ノード検出方法であって、異常状態発生ノードの検出は、異常検出用の動作モデルを設定した解析対象回路の動作解析の結果と予め決められた規定値とを比較することで行うことを特徴とする。
【００２４】
また、本発明の請求項５記載の異常状態発生ノード検出方法は、請求項４記載の異常状態発生ノード検出方法であって、解析対象回路に含まれる素子の動作モデルの切り替え、通常の動作モデルを設定した解析対象回路の動作解析、異常検出用の動作モデルを設定した解析対象回路の動作解析、および異常検出用の動作モデルを設定した解析対象回路の動作解析の結果と予め決められた規定値との比較をタイムステップ毎に順次行うことを特徴とする。
【００２５】
また、本発明の請求項６記載の異常状態発生ノード検出方法は、請求項５記載の異常状態発生ノード検出方法であって、解析対象回路に含まれる素子の動作モデルを切り替えるに際し、通常の動作モデルを設定した解析対象回路の動作解析の結果から、素子の端子に発生する電流または電圧が変化したか否かをタイムステップ単位で判断し、変化があった素子についてのみ異常検出用の動作モデルへ切り替えることを特徴とする。
【００２６】
また、本発明の請求項７記載の異常状態発生ノード検出方法は、請求項４ないし６のいずれかに記載の異常状態発生ノード検出方法であって、異常状態発生ノードの検出は、ノード電圧と規定値とを比較することで行うことを特徴とする。
【００２７】
また、本発明の請求項８記載の異常状態発生ノード検出方法は、請求項２記載の異常状態発生ノード検出方法であって、異常状態発生ノードの検出は、通常の動作モデルを設定した解析対象回路の動作解析の結果と異常検出用の動作モデルを設定した解析対象回路の動作解析の結果とを比較することで行うことを特徴とする。
【００２８】
また、本発明の請求項９記載の異常状態発生ノード検出方法は、請求項８記載の異常状態発生ノード検出方法であって、解析対象回路に含まれる素子の動作モデルの切り替え、通常の動作モデルを設定した解析対象回路の動作解析、異常検出用の動作モデルを設定した解析対象回路の動作解析、および通常の動作モデルを設定した解析対象回路の動作解析の結果と異常検出用の動作モデルを設定した解析対象回路の動作解析の結果との比較をタイムステップ毎に順次行うことを特徴とする。
【００２９】
また、本発明の請求項１０記載の異常状態発生ノード検出方法は、請求項９記載の異常状態発生ノード検出方法であって、解析対象回路に含まれる素子の動作モデルを切り替えるに際し、通常の動作モデルを設定した解析対象回路の動作解析の結果から、素子の端子に発生する電流または電圧が変化したか否かをタイムステップ単位で判断し、変化があった素子についてのみ異常検出用の動作モデルへ切り替えることを特徴とする。
【００３０】
また、本発明の請求項１１記載の異常状態発生ノード検出方法は、請求項９ないし１０のいずれかに記載の異常状態発生ノード検出方法であって、異常状態発生ノードの検出は、通常の動作モデルを設定した解析対象回路のノード電圧と異常検出用の動作モデルを設定した解析対象回路のノード電圧を比較することで行うことを特徴とする。
【００３１】
また、本発明の請求項１２記載の異常状態発生ノード検出方法は、請求項１１記載の異常状態発生ノード検出方法であって、異常状態発生ノードの検出は、通常の動作モデルを設定した解析対象回路のノード電圧と異常検出用の動作モデルを設定した解析対象回路のノード電圧の差が一定値以上であるか否かを判断して行うことを特徴とする。
【００３２】
また、本発明の請求項１３記載の異常状態発生ノード検出方法は、請求項１ないし１２のいずれかに記載の異常状態発生ノード検出方法であって、異常検出用の動作モデルを設定する素子はトランジスタ素子であり、異常検出用の動作モデルは、トランジスタ素子とそのゲート端子またはベース端子を内部電源電圧よりも高い電圧にプルアップする回路を含む動作モデルである、ことを特徴とする。
【００３３】
また、本発明の請求項１４記載の異常状態発生ノード検出方法は、請求項１ないし１２のいずれかに記載の異常状態発生ノード検出方法であって、異常検出用の動作モデルを設定する素子はトランジスタ素子であり、異常検出用の動作モデルは、トランジスタ素子とそのゲート端子またはベース端子をグランド電圧よりも低い電圧にプルダウンする回路を含む動作モデルである、ことを特徴とする。
【００３４】
また、本発明の請求項１５記載の異常状態発生ノード検出方法は、請求項１ないし１２のいずれかに記載の異常状態発生ノード検出方法であって、異常検出用の動作モデルを複数種類用意しておき、異常検出用の動作モデルを設定する素子に対して順次設定して、それぞれ動作解析することを特徴とする。
【００３５】
また、本発明の請求項１６記載の異常状態発生ノード検出方法は、請求項１５記載の異常状態発生ノード検出方法であって、異常検出用の動作モデルを設定する素子はトランジスタ素子であり、異常検出用の動作モデルは２種類であって、一方はトランジスタ素子とそのゲート端子またはベース端子を内部電源電圧よりも高い電圧にプルアップする回路を含む動作モデルであり、他方はトランジスタ素子とそのゲート端子またはベース端子をグランド電圧よりも低い電圧にプルダウンする回路を含む動作モデルである、ことを特徴とする。
【００３６】
また、本発明の請求項１７記載の異常状態発生ノード検出方法は、請求項１ないし１６のいずれかに記載の異常状態発生ノード検出方法であって、前記異常状態発生ノードを検出するとそのノード名を出力することを特徴とする。
【発明の効果】
【００３７】
本発明によれば、回路シミュレータが、相補型ＭＯＳ（ＣＭＯＳ）により構成される回路やアナログ回路の素子レベルの回路図からハイインピーダンスなどの異常状態が発生するノードを検出できるようになる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態における異常状態発生ノード検出方法について、図面を交えて説明する。
本実施の形態では、素子本来の動作モデル（通常の動作モデル。以下、通常モデルと称す。）を設定した解析対象回路（以下、本来の回路と称す。）の回路シミュレーション中に、素子の動作モデルを通常モデルから予め用意した異常検出用の動作モデル（以下、検出モデルと称す。）へ切り替えて設定し、この検出モデルを設定した解析対象回路（以下、異常検出用の回路と称す。）の動作解析を行い、その異常検出用の回路の動作解析結果を用いて異常状態が発生したノード（異常状態発生ノード）の検出を行う。
【００３９】
本実施の形態では、本来の回路の動作解析結果と異常検出用の回路の動作解析結果を比較することで異常状態発生ノードを検出する。なお、異常状態発生ノードを検出するために用いる動作解析結果は、検出したい異常状態によって異なり、ノード電流やノード電圧や周波数スペクトラム等やこれらの組み合わせの中から予め決定する。
【００４０】
ここで、予め用意しておく検出モデルは、異常状態が発生すると、動作モデルを切り替えた素子の端子に通常モデルを設定したときとは異なる電圧または電流が発生する動作モデルである。また、検出モデルを設定する素子は、解析対象回路に含まれる全素子であってもよいし、指定された素子でもよい。
【００４１】
回路シミュレーションは、過渡解析により行う。つまり、タイムステップ毎に回路方程式を解いてノード電圧やノード電流等を求める。本実施の形態では、回路シミュレーションの実行中に、タイムステップ毎に動作モデルを切り替え、それぞれ回路方程式を解く。
【００４２】
素子の動作モデル名は、例えば、回路図中の素子に付加されるプロパティなどの情報として登録する。動作モデルを設定する方法としては、回路図中の素子の動作モデル名を指定する方法もあるが、ここでは、本来の回路の動作解析を行うためのモデルパラメータファイル（以下、本来のモデルパラメータファイルと称す。）と異常検出用の回路の動作解析を行うためのモデルパラメータファイル（以下、異常検出用のモデルパラメータファイルと称す。）を指定することで、動作モデルを切り替えて設定する。
【００４３】
モデルパラメータファイルとは、回路図中の各素子の動作モデル名とそれに対応する動作モデル（Ｓｐｉｃｅパラメータや等価回路のネットリスト）が記載されたファイルである。本来のモデルパラメータファイルには、回路図中の各素子の動作モデル名とそれに対応する通常モデル（本来のＳｐｉｃｅパラメータや等価回路のネットリスト）が記載されている。一方、異常検出用のモデルパラメータファイルには、動作モデルを切り替える素子の動作モデル名とそれに対応する検出モデル（異常検出用のＳｐｉｃｅパラメータや等価回路のネットリスト）が記載されている。したがって、タイムステップ毎に、例えば、まず本来のモデルパラメータファイルを指定して動作解析を行った後、異常検出用のモデルパラメータファイルを指定して動作モデルを切り替えて動作解析を行うようにする。
【００４４】
図１に、回路シミュレーションを実行する回路シミュレータに対する入出力データの関係を示す。図１において、回路図１０１は回路シミュレーションを行う回路（解析対象回路）であり、ネットリストなどの形式で回路シミュレータ１１１へ入力される。
【００４５】
第１のモデルパラメータファイル１０２は本来の回路の動作解析を行うためのもの（本来のモデルパラメータファイル）であり、通常モデルが記載されている。一方、第２と第３のモデルパラメータファイル１０３、１０４は異常検出用の回路の動作解析を行うためのもの（異常検出用のモデルパラメータファイル）であり、それぞれ異なる検出モデルが記載されている。なお、本実施の形態では、異常検出用のモデルパラメータファイルを２つ用いるが、１つであってもよいし、３つ以上であってもよい。つまり、異常状態発生ノードの検出に必要な検出モデルの種類の数の分だけモデルパラメータファイルを用意すればよい。
【００４６】
異常状態判定条件ファイル１０５には、異常状態であるか否かを判定するための異常状態判定条件が記載されている。本実施の形態では、本来の回路の動作解析により得た回路中の各ノード電圧と異常検出用の回路の動作解析により得た回路中の各ノード電圧の差（ノード電圧差）の閾値（一定値）が記載されている。
【００４７】
回路シミュレータ１１１は、本来の回路の動作解析結果を波形データファイル１２１へ出力し、波形データファイル１２１へ回路シミュレーション結果を保存する。したがって、波形データファイル１２１には、各ノードの電圧波形や電流波形等（回路シミュレーション結果波形）が保存される。
【００４８】
また、回路シミュレータ１１１は、本来の回路の動作解析の結果と異常検出用の回路の動作解析の結果から、ノード電圧差がファイル１０５に記載された閾値以上となるノードを検出すると、異常状態発生ノードが検出されたものとして、ログファイル１２２にそのノード名を出力する。
【００４９】
以下、この回路シミュレータ１１１による回路シミュレーションについて図２を用いて説明する。図２は、当該回路シミュレーションのフローチャートを示す図である。回路シミュレータ１１１は、回路シミュレーションを開始すると、まずステップＳ２０１において、解析時刻ｔに初期値を設定する。ここでは「ｔ＝０」を設定する。
【００５０】
次に、回路シミュレータ１１１は、ステップＳ２０２において、回路図１０１と第１のモデルパラメータファイル１０２より回路方程式を解き、解析時刻「ｔ＝０」における本来の回路中の全ノードの電圧や電流等を求める。このステップＳ２０２では、通常モデルを用いた動作解析が行われる。電圧や電流等の計算方法については、「Ｓｐｉｃｅ」などの通常の回路シミュレータで採用されている計算方法をそのまま適用することができる。
【００５１】
次に、回路シミュレータ１１１は、ステップＳ２０３において、ステップＳ２０２で計算された全ノードの電圧や電流等のデータｄ（０）を波形データファイル１２１に保存しておく。この保存データは、最終的には回路シミュレーション結果波形として使用される。
【００５２】
次に、回路シミュレータ１１１は、ステップＳ２０４において、異常検出用の回路の動作解析を行うための第２と第３のモデルパラメータファイル１０３、１０４の中からまだ指定していないファイルを選択して指定する。
【００５３】
次に、回路シミュレータ１１１は、ステップＳ２０５において、解析対象回路中に含まれる素子の通常モデルを、指定したモデルパラメータファイルに記載されている検出モデルへ順次切り替えていく。ここでは全ての素子の動作モデルを切り替えるのではなく、切り替えが必要な素子に限って動作モデルの切り替えを行う。
【００５４】
次に、回路シミュレータ１１１は、ステップＳ２０６において、ステップＳ２０５で動作モデルが切り替えられた素子があるか否かを判断する。動作モデルが切り替えられた素子が１つでもあれば、ステップＳ２０７に進む。動作モデルが切り替えられた素子が全くなければ、その後の解析は必要ないため、ステップＳ２０９に進む。
【００５５】
次に、回路シミュレータ１１１は、ステップＳ２０７において、異常検出用の回路に対してステップＳ２０２と同様に回路方程式を解き、解析時刻「ｔ＝０」における回路中の全ノードの電圧や電流等を求める。このとき、回路方式を解く際の初期値としてステップＳ２０２で求めた結果を利用すれば、計算の高速化を行うことができる。なお、ここでは、ノード電圧を用いて異常状態発生ノードの検出を行うので、このステップＳ２０７ではノード電圧のみを計算するようにしてもよい。
【００５６】
次に、回路シミュレータ１１１は、ステップＳ２０８において、ステップＳ２０７で求めた結果とステップＳ２０３で保存した結果ｄ（０）を全ノードについて比較し、電圧差がファイル１０５に記載されている閾値以上となるノードを検出すると、異常状態発生ノードであると判断して、そのノード名をログファイル１２２に出力する。
【００５７】
次に、回路シミュレータ１１１は、ステップＳ２０９において、異常検出用のモデルパラメータファイルが複数ある場合に全てのファイルを選択（指定）したか否かの判断を行う。まだ指定していないモデルパラメータファイルがある場合には、ステップＳ２０４へ戻る。全てのモデルパラメータファイルを指定した場合には、ステップＳ２１０へ進む。このように、ここでは、検出モデルを複数種類用意しておき、順次切り替えて設定して、それぞれ動作解析する。
【００５８】
ステップＳ２１０へ進むと、回路シミュレータ１１１は、解析時刻「ｔ＝０」における回路中の全ノードの電圧・電流等をステップＳ２０２で計算された値に戻す。ステップ２０２で計算された値は波形データファイル１２１に保存されているためこの値を読み込み、各ノードの電圧・電流等として設定する。これにより、検出モデルを使用して計算された電圧・電流等は消去されるため、検出モデルに含まれる余分な素子の影響により解析結果の精度が悪化することを防ぐことができる。
【００５９】
次に、回路シミュレータ１１１は、ステップＳ２１１において、解析時刻をタイムステップΔｔだけ進める。進める時刻についても「Ｓｐｉｃｅ」などの通常の回路シミュレータで採用されている方法をそのまま適用することができる。
【００６０】
次に、回路シミュレータ１１１は、ステップＳ２１２において、解析時刻ｔが回路シミュレーションの終了時刻ｔｓを超えているか否かの判断を行う。「ｔ」が「ｔｓ」よりも大きければ回路シミュレーションを終了し、そうでなければ、ステップＳ２０２に戻る。
【００６１】
このように、ここでは、解析対象回路に含まれる素子の動作モデルの切り替え、本来の回路の動作解析、異常検出用の回路の動作解析、および本来の回路の動作解析結果と異常検出用の回路の動作解析結果の比較をタイムステップ毎に順次行う。
【００６２】
以降、この処理を解析時刻ｔが終了時刻ｔｓを超えるまでタイムステップ毎に繰り返す。
回路シミュレーションが終了したとき、波形データファイル１２１には各タイムステップにおける回路中の各ノードの電圧や電流等のデータｄ（０）〜ｄ（ｔｓ）、つまり電圧波形や電流波形等（回路シミュレーション結果波形）が保存される。この波形は本来の回路の動作解析結果と完全に一致している。また、異常状態の発生が検出されたノードについては、ステップＳ２０８でログファイル１２２に出力されているため、異常状態が発生したノードが存在するか否かについて確認することが可能となる。
【００６３】
続いて、ステップＳ２０５における素子の動作モデルの切り替えについて詳述する。図３は、素子の動作モデルの切り替えについてのフローチャートを示す。ここでは、全ての素子の動作モデルを切り替えるのではなく、各素子の端子の電圧や電流等の変化をタイムステップ単位で調べ、変化している素子についてのみ動作モデルを切り替える。これにより、回路シミュレーションの速度低下を抑えることができる。
【００６４】
また、回路が定常状態となった場合には、動作モデルを切り替える必要がないことがわかるため、検出モデルを使用したシミュレーションのステップを省略することが可能となり、回路シミュレーションの速度を向上させることができる。
【００６５】
まず、回路シミュレータ１１１は、ステップＳ３０１において、回路中の素子を１つ選択する。
次に、回路シミュレータ１１１は、ステップＳ３０２において、その選択した素子に動作モデル名が登録されているか否かを調べる。一般的には、トランジスタ素子などの能動素子には動作モデル名が登録されているが、抵抗や容量などの受動素子には登録されていない場合が多い。動作モデル名が登録されていないものについては、動作モデルを切り替える必要がないため、動作モデル切り替えの処理を省略し、ステップＳ３０５に進む。さらに、図２のステップＳ２０４で選択されたモデルパラメータファイルの中に、ステップＳ３０１で選択した素子に該当する動作モデル名が含まれているか否かを調べる。選択した素子に動作モデル名が登録されていても、モデルパラメータファイルの中に該当する動作モデル名が含まれていない場合には、動作モデルの切り替えは必要ないため、ステップＳ３０５に進む。
【００６６】
次に、回路シミュレータ１１１は、ステップＳ３０３において、ステップＳ３０２で選択した素子の端子に発生する電流や電圧等が変化したか否かを調べる。変化がない場合はステップＳ３０５へ進む。ここでは、変化しているか否かについて、素子の各端子の電圧変化を調べることで判断する。直前の解析時刻から現在の解析時刻における各端子電圧の変化は波形データファイル１２１に保存されているデータｄ（ｔ−Δｔ）およびデータｄ（ｔ）より得ることができ、この値が一致していない場合は変化したものとする。
【００６７】
次に、回路シミュレータ１１１は、ステップＳ３０４において、素子の動作モデルをステップＳ２０４で選択したモデルパラメータファイルに含まれる検出モデルに切り替える。
【００６８】
このように、解析対象回路に含まれる素子の動作モデルを切り替えるに際し、本来の回路の動作解析結果から、素子の端子に発生する電流や電圧等が変化したか否かをタイムステップ単位で判断し、変化があった素子についてのみ検出モデルへ切り替える。
【００６９】
次に、回路シミュレータ１１１は、ステップＳ３０５において、回路中の全ての素子について上記のステップＳ３０２〜Ｓ３０４の処理を行ったか否かの判定を行う。全ての素子について上記の処理が終わっていれば終了し、そうでなければステップＳ３０１に戻る。
【００７０】
続いて、ハイインピーダンスが発生する異常状態発生ノードの検出を行うための検出モデルの一例について説明する。ハイインピーダンスによる異常動作は一般的にトランジスタ素子に起こる。つまり、バイポーラ型トランジスタ素子のベース端子やＦＥＴ素子のゲート端子に接続されるノードがハイインピーダンスになると、トランジスタ素子に貫通電流が流れたり、トランジスタ素子の動作が不安定になったりする。そこで、ハイインピーダンスが発生する異常状態発生ノードを検出する場合には、トランジスタ素子だけに検出モデルを用意しておけばよい。
【００７１】
以下、ＦＥＴ素子を用いて説明する。図４に、検出モデルの一例を示す。図４において、モデル４１０は通常モデルである。通常モデル４１０の回路は通常のＦＥＴ素子４１１のみで構成されており、通常モデル４１０にはこのＦＥＴ素子４１１の動作に必要なパラメータが含まれる。
【００７２】
この通常モデル４１０のゲート端子（ＦＥＴ素子４１１のゲート端子）に接続されるノードがハイインピーダンスになると、通常モデル４１０のゲート電圧は、前段の出力端子の寄生容量などにより、ハイインピーダンスになる前の電圧から少し変化した値になる。一方、そのノードにハイインピーダンスが発生しなければゲート電圧は変化しない。したがって、図３に示すステップＳ３０３において、この変化した値を捉えて、動作モデルを変更するか否かを判断する。
【００７３】
これに対して、モデル４２０は検出モデルである。この検出モデル４２０の回路は、通常のＦＥＴ素子４２１のゲート端子に抵抗４２２を介して電圧源４２３が接続される構成となっており、検出モデル４２０にはＦＥＴ素子４２１の動作に必要なパラメータが含まれる。
【００７４】
抵抗４２２は数Ｇ（ギガ）オーム程度の高い抵抗値を持つ高抵抗であり、電圧源４２３は内部電源電圧よりも高い電圧を持つ高電圧源である。つまり、高抵抗４２２と高電圧源４２３は、ＦＥＴ素子４２１のゲート端子を内部電源電圧よりも高い電圧にプルアップする回路である。なお、ＦＥＴ素子４２１とＦＥＴ素子４１１は同じものである。
【００７５】
検出モデル４２０のゲート端子（ＦＥＴ素子４２１のゲート端子）に接続されるノードがハイインピーダンスにならない場合には、高電圧源４２３の影響はほとんどなく、ゲート電圧は変化しない。一方、ハイインピーダンスになると、高抵抗４２２と高電圧源４２３によりゲート電圧はプルアップされて強制的に高電圧源４２３の電圧となる。この検出モデル４２０を用いることで、ハイインピーダンスが発生したときに通常モデル４１０とは異なる電圧がＦＥＴ素子のゲート端子に発生する。
【００７６】
したがって、通常モデル４１０を設定した場合と検出モデル４２０を設定した場合のゲート電圧を比較することで、ゲート端子に接続されるノードにハイインピーダンスが発生するか否かを検出できる。例えば、高電圧源４２３の電圧を内部電源電圧の２倍にする場合には、通常モデル４１０と検出モデル４２０のゲート電圧差は内部電源電圧程度となるので、異常状態判定条件として内部電源電圧の０．８倍程度の閾値を図１に示す異常状態判定条件ファイル１０５に記載しおけばよい。
【００７７】
なお、ゲート電圧が大きく変化するとＦＥＴ素子の他の端子電圧も大きく変化するので、他の端子電圧を比較することでも検出可能である。また、各端子を流れる電流も大きく変化するので、電流を比較することでも検出可能である。また、ハイインピーダンスが発生するとゲート電圧は強制的に高電圧源４２３の電圧となるので、この電圧を検知することによっても検出可能である。例えば、規定電圧を高電圧源４２３の電圧の０．８倍程度に予め決めておき、ゲート電圧と規定電圧を比較することで、ゲート電圧が高電圧源４２３の電圧となったか否かを判断するようにしてもよい。
【００７８】
ただし、動作モデルが切り替えられるＦＥＴ素子のゲート端子がＰＦＥＴのドレイン端子と接続され、かつ該ＰＦＥＴのソース端子・ドレイン端子を介して内部電源と接続される構成の回路においては、次の問題が発生する。すなわち、ＰＦＥＴがオン状態からオフ状態へ変化して当該ＦＥＴ素子のゲート端子がハイインピーダンスとなったとき、通常モデル４１０のゲート電圧は内部電源電圧からほぼ変化しない。一方、検出モデル４２０を設定して動作解析を行った場合、ＰＦＥＴのドレイン端子に内部電源電圧より高い電圧が印加され、該ＰＦＥＴの各端子電圧の関係より該ＰＦＥＴはオン状態となるため、検出モデル４２０のゲート電圧は内部電源電圧となる。したがって、このような回路構成の場合には通常モデル４１０と検出モデル４２０のゲート電圧差が閾値以上とならず、ハイインピーダンスの発生を検出できない。
【００７９】
そのため、このような構成の回路においてハイインピーダンスの発生を検出するには、検出モデルとして、ＦＥＴ素子のゲート端子をグランド電圧よりも低い電圧にプルダウンする動作モデルを用意する必要がある。つまり、ＦＥＴ素子のゲート端子とグランド間に高抵抗を介してグランド電圧よりも低い電圧の低電圧源を設けた検出モデル（以下、第２の検出モデルと称す。）を用意すればよい。この第２の検出モデルによれば、ハイインピーダンスになっても当該ＦＥＴ素子のゲート端子に接続されるＰＦＥＴはオフ状態を維持するので、当該ＦＥＴ素子のゲート電圧は強制的に低電圧源の電圧となる。したがって、通常モデルのゲート電圧（内部電源電圧）と第２の検出モデルのゲート電圧（低電圧源の電圧）の差が異常状態判定条件ファイル１０５に記載された閾値以上となるように低電圧源の電圧を設定すれば、ハイインピーダンスの発生を検出できるようになる。
【００８０】
しかし、上記の第２の検出モデルを用いる場合には、動作モデルが切り替えられるＦＥＴ素子のゲート端子がＮＦＥＴのドレイン端子と接続され、かつ該ＮＦＥＴのソース端子・ドレイン端子を介してグランドと接続される構成の回路において、次の問題が発生する。すなわち、ＮＦＥＴがオン状態からオフ状態へ変化して当該ＦＥＴ素子のゲート端子がハイインピーダンスとなったとき、通常モデルのゲート電圧はグランド電圧からほぼ変化しない。一方、第２の検出モデルを設定して動作解析を行った場合、ＮＦＥＴのドレイン端子にグランド電圧より低い電圧が印加され、該ＮＦＥＴの各端子電圧の関係より該ＮＦＥＴはオン状態となるため、第２の検出モデルのゲート電圧はグランド電圧となる。したがって、このような回路構成の場合には通常モデルと第２の検出モデルのゲート電圧差が閾値以上とならず、ハイインピーダンスの発生を検出できない。そのため、このような構成の回路においてハイインピーダンスの発生を検出するには、検出モデルとして、図４に示す検出モデル４２０を用意する必要がある。
【００８１】
以上のことから、ＦＥＴ素子に対する検出モデルには、ゲート端子に接続される素子がＰＦＥＴ、ＮＦＥＴである場合に対応するために、上記した２種類の検出モデルが必要となる。特に相補型ＭＯＳ（ＣＭＯＳ）により構成される回路の場合には、上記した２種類の検出モデルを用いることが有益である。なお、ＦＥＴ素子のゲート端子に接続する回路は、高抵抗と電圧源に限らず、微小電流の電流源であってもよい。
【００８２】
続いて、具体的な回路を用いて本実施の形態における異常状態発生ノード検出方法を説明する。図５は、解析対象回路の一例であり、ここではＣＭＯＳにより構成される回路の場合について説明する。また、図６（ａ）、（ｂ）、（ｃ）はそれぞれ図５におけるｎｅｔ２、ｎｅｔ３、ｎｅｔ４の電圧の時間変化を示す。
【００８３】
図５に示す例では、ＰＦＥＴ“Ｍ３”とＮＦＥＴ“Ｍ４”からなるＣＭＯＳインバータ回路のゲート端子に、ＰＦＥＴ“Ｍ１”のドレイン端子およびＮＦＥＴ“Ｍ２”のドレイン端子が接続されており、ＰＦＥＴ“Ｍ１”がオン状態となると当該ＣＭＯＳインバータ回路のゲート端子が内部電源電圧Ｖ１に接続され、ＮＦＥＴ“Ｍ２”がオン状態になると当該ＣＭＯＳインバータ回路のゲート端子がグランドに接続される構成となっている。
【００８４】
また、図６に示すように、解析時間０［μｓ］〜２０［μｓ］の期間（以下、第１の期間と称す。）では、ＰＦＥＴ“Ｍ１”がオン状態、ＮＦＥＴ“Ｍ２”がオフ状態となるので、通常モデルを設定した本来の回路のｎｅｔ４の電圧は内部電源電圧Ｖ１となる。次の解析時間２０［μｓ］〜３０［μｓ］の期間（以下、第２の期間と称す。）では、ＰＦＥＴ“Ｍ１”とＮＦＥＴ“Ｍ２”が共にオフ状態となるので、本来の回路のｎｅｔ４（当該ＣＭＯＳインバータ回路のゲート端子）はハイインピーダンスとなる。そのため、実際の回路では、この第２の期間において、当該ＣＭＯＳインバータ回路に貫通電流が流れる等の異常動作が起こる。
【００８５】
図６に示す例では、ハイインピーダンスになる直前（第１の期間）のｎｅｔ４の電圧は内部電源電圧Ｖ１であるので、第２の期間における本来の回路のｎｅｔ４の電圧も図６（ｃ）に示すように内部電源電圧Ｖ１からほとんど変化しない。一方、ＰＦＥＴ“Ｍ３”、ＮＦＥＴ“Ｍ４”に上記の第２の検出モデルを設定した場合、図６（ｄ）に示すように、異常検出用の回路のｎｅｔ４の電圧はグランド電圧となる。したがって、通常モデルと第２の検出モデルのゲート電圧差が内部電源電圧程度となり、ハイインピーダンスの発生を検出できる。これは、第２の検出モデルを設定した場合、ＰＦＥＴ“Ｍ１”はオフ状態を維持し、ＮＦＥＴ“Ｍ２”はオン状態へ変化し、ＣＭＯＳインバータ回路のゲート端子がグランドと接続されるためである。
【００８６】
同様に、ＰＦＥＴ“Ｍ１”がオフ状態、ＮＦＥＴ“Ｍ２”がオン状態で、本来の回路のｎｅｔ４の電圧がグランド電圧の状態から、ＰＦＥＴ“Ｍ１”、ＮＦＥＴ“Ｍ２”が共にオフ状態へ変化した場合には、第１の検出モデル（図４に示す検出モデル４２０）を設定した異常検出用の回路の動作解析結果から、ハイインピーダンスの発生を検出することができる。
【００８７】
なお、本実施の形態では、本来の回路の動作解析結果と異常検出用の回路の動作解析結果を比較することで異常状態発生ノードを検出したが、異常検出用の回路の動作解析結果と予め決められた規定値を比較することで異常状態発生ノードを検出するようにしてもよい。
【００８８】
本実施の形態によれば、回路シミュレータが、相補型ＭＯＳ（ＣＭＯＳ）により構成される回路やアナログ回路の素子レベルの回路図を対象にして回路の動作検証を行う際にハイインピーダンスなどの異常状態の発生を正確に検出することが可能になる。
【産業上の利用可能性】
【００８９】
本発明にかかる異常状態発生ノード検出方法は、回路シミュレータが、相補型ＭＯＳ（ＣＭＯＳ）により構成される回路やアナログ回路の素子レベルの回路図からハイインピーダンスなどの異常状態が発生するノードを検出できるようになり、アナログ回路の設計段階における回路動作の問題点を検出する手段として有用である。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施の形態における回路シミュレーションを実行する回路シミュレータに対する入出力データの関係を示す図
【図２】本発明の実施の形態における回路シミュレーションのフローチャートを示す図
【図３】本発明の実施の形態における素子の動作モデルの切り替えについてのフローチャートを示す図
【図４】本発明の実施の形態における検出モデルの一例を示す図
【図５】本発明の実施の形態における解析対象回路の一例を示す図
【図６】本発明の実施の形態における解析対象回路の動作を説明するための波形図
【図７】従来のハイインピーダンス発生ノード検出手法を説明するためのフローチャートを示す図
【符号の説明】
【００９１】
１０１    回路図
１０２    通常モデルを含むモデルパラメータファイル
１０３    検出モデルを含むモデルパラメータファイル
１０４    検出モデルを含むモデルパラメータファイル
１０５    異常状態判定条件ファイル
１１１    回路シミュレータ
１２１    波形データファイル
１２２    ログファイル
４１０    通常モデル
４１１    通常のＦＥＴ素子
４２０    検出モデル
４２１    通常のＦＥＴ素子
４２２    高抵抗
４２３    高電圧源
【図１】
2006171919.tif 000003
【図２】
2006171919.tif 000004
【図３】
2006171919.tif 000005
【図４】
2006171919.tif 000006
【図５】
2006171919.tif 000007
【図６】
2006171919.tif 000008
【図７】
2006171919.tif 000009