以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明は以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能であろう。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明が省略される。
本発明の一実施例による故障検出シミュレーションシステムの構成を図1に示す。本実施例の故障検出シミュレーションシステム10は、ネットリスト20、ネットリスト簡略部25、モデルパラメータ30、シミュレーション回路生成部40、テスト条件設定部50、シミュレーション実行部60、シミュレーション結果出力部70及びシミュレーション制御部80を備えている。故障検出シミュレーションシステム10は外部端末装置100と接続される。
この故障検出シミュレーションシステム10は、専用のハードウェアによって構成することは勿論として、プログラム制御可能なコンピュータ装置(CPU)上で実行されるソフトウェア(故障検出シミュレーションプログラム)によって実現することも可能である。この故障検出シミュレーションプログラムは、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ装置にロードされ、コンピュータ装置の動作を制御することにより、以下に述べる処理を実行する。
以下、アナログ回路に対する故障検出シミュレーションについて説明する。
ネットリスト20は、故障の検出を行う対象であるアナログ回路(集積回路)の構成(回路の仕様)を表すリストである。ネットリスト20にはアナログ回路を構成する全素子が表されている。ネットリスト20には各素子がパラレル接続されているか、あるいはシリアル接続されているかの情報が含まれている。さらには、各素子の間に分岐点があるかないかの情報も含まれている。
ネットリスト簡略部25は、上記のネットリスト20に含まれている2つ以上の素子を1つにまとめる。1つにまとめられる素子の数は1つでもよいし、複数でもよい。これにより、シミュレーションの対象となる素子数を減少することができる。ネットリスト簡略部25によるネットリストの簡略化については後述する。なお、ネットリスト簡略部25によって簡略化されたネットリストを簡略化ネットリストとする。また、ネットリスト簡略部25は1つの簡略化ネットリストのみを生成して下記のシミュレーションを行ってもよく、素子毎に異なる簡略化ネットリストを生成して下記のシミュレーションをおこなってもよい。
モデルパラメータ30は、ネットリスト20で表されるアナログ回路に含まれるトランジスタや抵抗、コンデンサ等の各素子の特性を示すパラメータであり、本実施例においては、上記モデルパラメータ30として、素子の標準的な特性を満たす標準モデル(正常品としての特性を有するモデル)を表す標準モデルパラメータと、故障モデル(特性において故障した状態を有するモデル)を表す故障モデルパラメータを用意して格納している。
アナログ回路に含まれる素子の種類に応じて、それぞれ異なる標準モデルパラメータ及び故障モデルパラメータが格納されている。すなわち、トランジスタ、抵抗、コンデンサでは異なるモデルパラメータが用意されている。さらに、1つの種類の素子において、特性が異なる素子がある場合、その特性に応じて異なるモデルパラメータが用意される。例えば、回路に設けられている抵抗が、10kΩの抵抗と5kΩの抵抗である場合、それぞれの抵抗値に対応して2種類のモデルパラメータが用意される。すなわち、10kΩ用の標準モデルパラメータ及び故障モデルパラメータ、並びに5kΩ用の標準モデルパラメータ及び故障モデルパラメータが格納される。換言すれば、同じ種類かつ、同じ特性の素子では共通のモデルパラメータが利用される。トランジスタやコンデンサ等の他の素子についても、その特性ごとに異なるモデルパラメータが用意されている。
シミュレーション回路生成部40は、簡略化ネットリストに表される回路に、モデルパラメータ30に含まれる各素子のパラメータを適用する。これにより、シミュレーション回路生成部40は回路シミュレーションを行うためのシミュレーション回路を生成する。
テスト条件設定部50は、故障の検出を行う素子に対する入出力の期待値(電圧、電流値)を含むテスト条件を設定する。これらテスト条件としては、各素子ごとに値を変えた入出力の期待値(ある入力値に対してどのような出力値が得られるだろうといった期待値:以下、テスト項目と称する)が設定される。例えば、テスト条件設定部50は、回路内において故障の検出を行なう対象素子を含むブロックに対する入力の期待値と出力の期待値を設定する。この入出力の期待値は、ICの複数の出荷検査に対応して複数設定されるものを利用する。すなわち、実際の出荷検査における入力信号が入力された場合、対象素子を含むブロックに入力されるであろう入力の期待値と、その入力の期待値によって出力されるであろう出力の期待値が設定される。入出力の期待値は、各素子毎にされる。なお、同じブロックに含まれる素子については、同じ入出力の期待値となってもよい。また、テスト条件には、実際の回路の検出に用いられるテスト治具(例えば、IC検査装置(テスタ))の回路情報が含められる。
シミュレーション実行部60は、上記シミュレーション回路の各素子について、テスト条件(複数のテスト項目)に基づいて集積回路(IC)の出荷検査に相当する内容の回路シミュレーションを実行する。すなわち、出荷検査に用いられる入力信号をアナログ回路に入力し、そのときに出力される出力信号をシミュレーションにより算出する。シミュレーション実行部60は、専用のハードウェアによって構成することも可能あるが、コンピュータ装置上で実行され、実際のテスト治具であるテスタ等を使用したテストをシミュレートするソフトウェア(故障検出シミュレーションプログラム)によって実現することが可能である。
このシミュレーション実行部60の構成及び機能については、従来から提供されている、例えば、前述した特許文献2(特開2003−121511号公報)に開示される回路シミュレータと同じであり、その詳細については省略する。
シミュレーション結果出力部70は、シミュレーション回路の各素子に対する検査の結果として、各素子の故障検出率等を含む情報をシミュレーション結果として出力する。このシミュレーション結果は、外部端末装置100に送られる。例えば、シミュレーション結果がテスト条件設定部で設定された出力の期待値から外れた場合に、その素子が故障であるとして判定される。
シミュレーション制御部80は、検査対象の素子に対する全ての故障モデルパラメータにおける回路シミュレーションが終了したかどうかを判別する。さらに、シミュレーション制御部80は、シミュレーション実行部60を制御して、下記の処理を行う。シミュレーション制御部80は、検査対象の素子に用意された他の故障モデルパラメータに切り替える。このとき、ネットリスト簡略部25は切り換えられた故障モデルパラメータに対応して、ネットリストを簡略化する。故障モードが切り換えられると、ネットリストは別の構成となるよう簡略化される。すなわち、故障モデルパラメータに応じて簡略化ネットリストの構成が異なる。そして、シミュレーション回路生成部は別の構成となった簡略化ネットリストに対応するシミュレーション回路を生成する。シミュレーション制御部80は、新たに簡略化された簡略化ネットリストに対応するシミュレーション回路及び切り換えられた故障モデルパラメータによる故障モデルでの回路シミュレーションを実行する。なお、シミュレーション制御部80は、故障検出の対象となる素子を選択することもできる。従って、シミュレーション制御部80は、全素子に対して故障検出対象としたか、一部の素子のみを故障検出対象としたかを判別することができる。例えば、設計者によって故障検出の対象となる素子が全素子の中から選択された場合は、シミュレーション制御部80は、選択された素子に対してシミュレーションが行なわれるよう制御する。
次いで、上記のように構成される本実施例による故障検出シミュレーションシステム10の動作について説明する
まず、故障検出シミュレーションに先立ち、各素子について標準モデルパラメータと故障モデルパラメータを含むモデルパラメータを用意し、モデルパラメータ30として格納する。
図1の実施例では、NPNトランジスタのモデルパラメータ31と、PNPトランジスタのモデルパラメータ32、抵抗のモデルパラメータ33、コンデンサのモデルパラメータ34を、モデルパラメータ30として格納している。
ここで、NPNトランジスタと抵抗のモデルパラメータの例を、図2、図3に示す。
図2は、NPNトランジスタのモデルパラメータ31を示している。NPNトランジスタのモデルパラメータは標準モデルパラメータと、オープン状態の故障を表す故障モデルパラメータ及びNPNトランジスタのショート状態の故障を表す故障モデルパラメータを含んでいる。また、図3は抵抗のモデルパラメータ33を示している。抵抗のモデルパラメータ33は、標準モデルパラメータと、オープン状態の故障を表す故障モデルパラメータ及び抵抗のショート状態の故障を表す故障モデルパラメータを含んでいる。このように、各モデルパラメータは標準モデルパラメータとオープン状態の故障を表す故障モデルパラメータと抵抗のショート状態の故障を表す故障モデルパラメータとの3種類のモデルパラメータを備えている。なお、オープン状態の故障モデルパラメータをオープンモデルパラメータとし、ショート状態の故障モデルパラメータをショートモデルパラメータとする。
各素子の故障モデルパラメータについては、各素子ごとに少なくとも1種類以上設定する。また、故障モデルパラメータとしては、素子の製造過程において発生する特性のバラツキの範囲を大きく超えた値(オープン状態やショート状態を示す値)が設定される。
また、図4と図5に、上述したNPNトランジスタの、故障モデル(オープンとショート)と標準モデルにおける静特性である、Ic−Vce特性とVbe−Ic特性を示す。図2に示す故障モデルパラメータと標準モデルパラメータによる各モデルにおける静特性が示されている。
上記においては、トランジスタと抵抗についてのモデルパラメータの内容例を示したが、PNPトランジスタのモデルパラメータ32及びコンデンサのモデルパラメータ34についても、上記と同様に、標準モデルパラメータと2種類の故障モデルパラメータを含むものとする。
故障検出シミュレーションシステム10の処理内容を、図6のフローチャートに従って
説明する。
ネットリスト20で示される回路から故障モードにする素子を選択する(ステップ101)。ここでは、ネットリスト20に含まれるNPNトランジスタ、抵抗等の素子から特定の素子が選択される。ここで、故障モードにすると選択された素子を対象素子とする。すなわち、この対象素子が故障モードとされて、下記の説明のようにシミュレーションが実行される。すなわち、対象素子について故障を検出できるか否かがシミュレーションで判定される。通常、ネットリスト20に含まれる複数の素子から1つの素子が対象素子となる。なお、同時に2つ以上の素子を対象素子としてもよい。
故障検出を行なうためのテスト条件を設定する(ステップ102)。ここでは、各素子ごとに用意された複数のテスト項目(入出力の期待値)を含むテスト条件が設定される。テスト項目については、複数の入力値と出力値の組み合わせが用意される。テスト条件としては、例えば100項目といった数のテスト項目が設定される。以下、例として100項目のテスト項目が設定されたとして説明する。
テスト条件が設定されたら、ネットリスト簡略部25でネットリストを簡略化する(ステップ103)。まず、ステップ101で選択された対象素子をオープンモデルとするか、ショートモデルとするかを選択する。ここでは、対象素子をオープンモデルとする場合について説明する。選択された故障モデル(ここでは、オープンモデル)で、対象素子について他の素子とまとめられるかどうかを判定する。まとめられる場合は、他の素子とまとめられ、1つの素子となる。すなわち、故障モードにすると選択された対象素子を含む2つ以上の素子を合成して、1つの素子とする。さらに、選択された素子以外の素子でまとめられるものをまとめる。これによりシミュレーションでパラメータが適用される素子数を減少させることができ、ネットリストを簡略化することができる。よって、計算時間を短縮することができる。
次に、簡略化ネットリストの各素子にモデルパラメータを適用する(ステップ104)。例えば、シミュレーション回路生成部40で、ステップ101で選択された対象素子に対してモデルパラメータ30の中から当該素子の選択された故障モデルパラメータを適用する。ここでは、対象素子に対してオープンモデルパラメータが適用される。さらに、対象素子が他の素子とまとめられた場合、そのまとめられた素子にまとめられる前の対象素子の故障モデルパラメータを適用する。対象素子と異なる素子のうち、2つ以上の素子がまとめられた素子については、まとめられる前の素子のうち1つの素子の標準モデルパラメータが適用される。他の素子とまとめられなかった素子については、その素子のモデルパラメータが適用される。これにより、当該素子の故障モードを示すシミュレーション回路が生成される。
例えば、図8に示す標準モデルで表される回路の抵抗に対して、オープンモデルパラメータを適用することにより、図9に示すような故障モデルのシミュレーション回路が生成される。
上記故障モデルのシミュレーション回路に対して、設定されたテスト条件に従って集積回路(IC)の出荷検査に相当する内容の回路シミュレーションを実行する(ステップ105)。
このテスト条件に基づく回路シミュレーションは、図7に示すフローチャートに従って実行される。
まず、テスト条件に含まれる1つ目のテスト項目について期待値に適合した結果が得られるかどうかのテストが実行される(ステップ201)。すなわち、テスト項目に含まれる入力値をシミュレーション回路に入力し、その回路からの出力を算出する。
テストの結果、当該テスト項目において故障が検出されたか(テスト項目の期待値に適合しない結果となったか)、未検出(テスト項目の期待値に適合した結果となったか)かが判定され記録される(ステップ202)。回路シミュレーションに際しては、テスト条件として設定されたテスト項目(期待値)に対して、期待値に適合しない結果(期待値で示される許容範囲以外の結果)が得られた場合には故障検出となり、期待値に適合した結果(期待値で示される許容範囲内の結果)が得られた場合には故障未検出との判定がなされる。すなわち、シミュレーション結果が期待値で示される許容範囲以外になる場合、そのテスト項目の入力値に対応する実検査で故障を検出することができると判定され、期待値で示される許容範囲内になる場合、そのテスト項目の入力値に対応する実検査で故障を検出することができないと判定される。
その後、テスト条件として設定されている全てのテスト項目についてテスト実行されたかを判定する。(ステップ203)。全テスト項目についてシミュレーションが終了していなければ、次のテスト項目に切り替えて(ステップ204)、ステップ201のテストを実行する。
例えば、テスト項目が100項目ある場合には、100項目に対するテストを繰り返し実行し、ステップ203で全てのテスト項目についてテストが終了した場合に当該故障モデルに対するテスト実行が終了する。これにより、テスト対象の故障モデルに対する全てのテスト項目について、故障検出か未検出かのテスト結果が記録される。
ステップ104で適用されたモデルパラメータに対するステップ105の回路シミュレーションが終了した場合、対象素子の全ての故障モデル(故障モデルパラメータ)に対する回路シミュレーションが終了したかどうかを判定する(ステップ106)。全故障モデルに対する回路シミュレーションが終了していない場合には、検査対象の素子に用意された他の故障モデルパラメータに切り替える(ステップ107)。
具体的には、オープンモデルパラメータからショートモデルパラメータに切り換えれる。そして、ショートモデルパラメータに対してネットリストの簡略化(ステップ103)、モデルパラメータの適用(ステップ104)及び故障検査シミュレーションの実行(ステップ105)の処理を行なう。例えば、図9に示すような抵抗の故障モデル(オープンモデル)のシミュレーション回路についてシミュレーションが終了した場合には、当該抵抗について他の故障モデルパラメータ(ショートモデル)に切り替えることにより、図10に示すような故障モデル(ショートモデル)のシミュレーション回路を生成し、故障検査ための回路シミュレーションを実行する。
対象素子に対する全ての故障モデルパラメータにおける回路シミュレーションが終了するまで、回路シミュレーションを繰り返し実行する。故障モデルパラメータにオープンモデルパラメータ及びショートモデルパラメータが用意されている場合、オープン状態及びショート状態について故障モデルの回路シミュレーションを行なう。
検査対象の素子に対する全て(オープンモデル及びショートモデル)の故障モデルパラメータにおける回路シミュレーション(故障検査)がすれば、ネットリスト20の集積回路に含まれる全ての素子に対する回路シミュレーションが終了したかを判別する(ステップ108)する。
図11に、検査対象の素子(NPNトランジスタ)の故障モデルであるオープンモデルとショートモデルに対して、テスト1〜テスト100のテスト項目について回路シミュレーションを実行した場合のテスト結果の例を示す。ここでは、シミュレーションで故障が検出された場合に○印を、故障が未検出の場合に×印を付けている。
図11において、オープンモデルについてテスト3のテスト項目で故障未検出、ショートモデルについてテスト1のテスト項目で故障未検出であることを示している。また、テスト項目毎に、全ての故障モデルで故障が検出されたかどうかを示す評価が総合評価として示されている。
また、それぞれの故障モデルについての故障検出率と、総合評価における故障検出率が示されている。ここでの故障検出率(%)は、(故障が検出されたテスト項目数/全テスト項目数)×100で示される。
両故障モデルについてテスト3とテスト1のテスト項目だけで故障未検出である場合、オープンモデルとショートモデルに対する故障検出率(=(故障が検出されたテスト項目数/全テスト項目数)×100)はそれぞれ99/100で、99%となる。例えば、100項目のうち10項目で故障未検出であれば、故障検出率は90%となる。
オープンモデルとショートモデルを含む総合評価での素子(NPNトランジスタ)の故障検出率は、98/100で98%となる。この素子の故障検出率が100%となれば、全て有効なテスト項目であることが検証される。
図11に示すテスト結果において、総合評価として×印(故障未検出)で示されるテスト項目は、何れかの故障モデルについて故障を検出できない項目であるため、有効なテスト項目ではないと判断される。従って、図11に示すテスト結果に基づいて、テスト条件に含まれる複数のテスト項目から有効でないテスト項目(図11の場合、テスト1とテスト3)を排除して98項目の有効なテスト項目を新たなテスト条件として設定して回路シミュレーションを行えば、図12に示すようなテスト結果が得られることになる。
以上のテスト結果より、出荷テストの効率化とテスト品質の向上を実現できるテスト条件の検証が可能となる。また、テスト結果は、テスト条件として設定する有効なテスト項目の範囲を探るうえで極めて役に立つ。すなわち、有効でないテスト項目に対応する実検査を実行する必要がなくなるため、検査を簡略化することができる。このように、シミュレーションによって、有効なテスト項目か否かを判定することにより、実検査を簡略化することができる。
ステップ108で、全ての素子に対する回路シミュレーションが終了していない場合には、新たな素子を選択し(ステップ101)、さらに当該素子について設定されている他のテスト条件を設定する(ステップ102)ことで、ステップ103からステップ107
の処理を繰り返す。
ステップ108で、ネットリスト20の集積回路に含まれる全ての素子に対する回路シミュレーションが終了した場合、素子ごとに図11に示すようなテスト結果がシミュレーション結果として出力される(ステップ109)。これにより、アナログ回路に対する故障検出シミュレーションが終了する。
次にネットリストの簡略化について図13を用いて詳細に説明する。図13(a)は簡略化を行なう前のネットリストに対応する回路構成を示す図であり、図13(b)は図3(a)に示すネットリストを簡略化した簡略化ネットリストに対応する回路構成を示す図である。図13(a)に示すように13個の素子からなる回路を図13(b)に示すように8素子からなる回路に簡略化することができる。
図13(a)に示すように2つの5kΩの抵抗が並列(パラレル)に接続されている箇所Aは、図13(b)に示すように1つの2.5kΩの抵抗23として表すことができる。また、2つの5kΩの抵抗が直列(シリアル)に接続されている箇所Bは、図13(b)に示すように1つの10kΩの抵抗24として表すことができる。電流増幅率が1倍のトランジスタが並列に接続されている箇所Cは、図13(b)に示すように電流増幅率が2倍のトランジスタとして表すことができる。このようにパラレル接続されている素子及びシリアル接続されている素子をそれぞれ1つにまとめることによって、ネットリストに含まれる素子数を13から8に減少させることができる。これにより、シミュレーション時間を短縮することができる。
ここでは、同じ種類の素子を一つにまとめる。すなわち、複数の抵抗がシリアル接続又はパラレル接続されている場合、その複数の抵抗を一つにまとめる。抵抗がコンデンサー又はトランジスタと接続されている場合、それについては素子をまとめない。コンデンサー及びトランジスタについても、同じ種類の素子を一つにまとめる。2つ以上の素子を一つにまとめた場合、まとめられた素子のモデルパラメータについてはまとめられる前のものを用いることができる。すなわち、2つ以上の素子のうちの一つの素子のモデルパラメータがまとめられた素子のモデルパラメータとして用いられる。具体的には、まとめられる前の素子のうち、大きなパラメータを有する素子のモデルパラメータを用いる。例えば、5kΩと10kΩの抵抗をまとめた場合、10kΩの抵抗のモデルパラメータを用いる。コンデンサーについても同様に容量の大きい素子のモデルパラメータを用いる。トランジスタについても同様に、電流増幅率(hFE)又はコレクタ電流が大きいトランジスタのモデルパラメータを用いる。対象素子をまとめた場合、まとめられた素子にはまとめられる前の対象素子の故障モデルパラメータが用いられる。これにより、モデルパラメータを増やすことなくシミュレーションを行なうことができる。
ただし、上記の簡略化では、シミュレーション結果が変わってしてしまうことがある。これについて、以下に説明する。例えば、図13(a)の箇所Aに示す抵抗のうちの1つの抵抗21がショート状態となった場合について考える。抵抗21がショート状態となった場合、パラレル接続された箇所Aについてはシミュレーション結果は変わらないはずである。すなわち、パラレル接続された5kΩの抵抗のうちの1つがショートした場合、箇所A全体が導通する。一方、図13(b)に示した、まとめられた2.5kΩの抵抗23がショートすれば、箇所A'全体が導通する。よって、同じシミュレーション結果が得られる。
一方、シリアル接続された箇所Bについては、抵抗22がショート状態となると、シミュレーション結果が変わってしまう。すなわち、図13(a)の箇所Bの抵抗22がショートすると、シリアル接続されたもう一方の抵抗により箇所B全体の抵抗は5kΩとなる。しかしながら、図13(b)に示す簡略化されたネットリストでは、10kΩの抵抗がショートしてしまうと、箇所B'全体が導通する。このように、シリアル接続では、ショート状態のシミュレーション結果が異なってしまう。
したがって、シリアル接続された素子をショート状態とするシミュレーションを行なう場合、その素子については他の素子とまとめないようにする。これにより、シミュレーション結果が変わるのを防ぐことができるため、精度良くシミュレーションすることができる。具体的には、図13(a)に示す抵抗21に対してショートモデルパラメータが適用される場合、パラレルに接続されている2つの10kΩの抵抗をまとめて抵抗23とする。一方、図13(a)に示す抵抗22に対してショートモデルパラメータが適用される場合、シリアルに接続されている2つの抵抗をまとめないようにする。これにより、精度の高いシミュレーションを実行することができる。
なお、故障の対象とならない素子については、シリアル接続された素子及びパラレル接続された素子をそれぞれまとめる。すなわち、箇所Aの素子を対象素子とする場合、箇所A以外の素子でまとめられる素子をまとめる。対象素子以外をまとめることにより、短時間でシミュレーションを実行することができる。
まとめられる素子は2つに限らず、3つ以上の素子をまとめることができる。すなわち、パラレル接続される素子が3つ以上ある場合、それらの3つの素子をまとめて1つの素子としてもよい。また、シリアル接続される素子が3つ以上ある場合、シリアル接続される素子とパラレル素子が複合している場合についても、1つにまとめることができる。このとき、ショートモデルパラメータが適用される対象素子とシリアル接続されている素子については、対象素子とまとめないようにする。
次にオープンモデルパラメータが素子に適用される場合について考える。抵抗21がオープン状態となると、パラレル接続されている抵抗があるため、箇所A全体の抵抗は5kΩとなる。一方、簡略化されたネットリストにおいて、抵抗23がオープン状態となると箇所A'全体が絶縁状態となる。つまり、パラレル接続された素子にオープンモデルパラメータを適用するとシミュレーション結果が異なってしまう。一方、シリアル接続された抵抗22がオープン状態となると、箇所B全体は絶縁状態となる。簡略化されたネットリストにおいて、抵抗24がオープン状態となると箇所B'全体が絶縁状態となる。したがって、同じシミュレーション結果が得られる。
従って、パラレル接続された素子をオープン状態とするシミュレーションを行なう場合、その素子については他の素子とまとめないようにする。すなわち、箇所Bの素子を対象素子とする場合、箇所B以外の素子でまとめられる素子をまとめる。これにより、シミュレーション結果が変わるのを防ぐことができるため、精度良くシミュレーションすることができる。
このように、対象素子に適用する故障モデルパラメータをオープンモデルパラメータ又はショートモデルパラメータのどちらにするかによって、素子のまとめた方を変える。具体的にはオープンモデルパラメータを適用するとき、対象素子とパラレル接続された素子とをまとめず、それ以外の素子をまとめる。一方、ショートモデルパラメータを適用するとき、対象素子とシリアル接続された素子とをまとめず、それ以外の素子をまとめる。これにより、精度の高いシミュレーションを短時間で行なうことができる。
なお、参考のため、パラレル接続のまとめ方及びシリアル接続のまとめ方を紹介する。図14(a)はパラレル接続の素子をまとめる前及びまとめた後の素子を示す図であり、図14(b)は図14(a)に示す素子をショート状態としたものを示す図である。図15(a)はシリアル素子をまとめる前及びまとめた後の素子を示す図であり、図15(b)は図15(a)に示す素子をオープン状態としたものを示す図である。図14には抵抗、トランジスタ及びコンデンサがそれぞれ示されている。図15には抵抗及びコンデンサがそれぞれ示されている。図14に示すように素子をまとめた後にショート状態としても、ショート状態とした後に素子をまとめたものと回路的な動作は変わらない。図15に示すよう、素子をまとめた後にオープン状態としても、素子をオープン状態としてからまとめたものと回路的な動作は変わらない。したがって、シミュレーション時間を短縮するため素子をまとめた場合でも、精度よくシミュレーションを行なうことができる。
このように、パラレル接続されている素子はまとめてから素子にショートモードパラメータを適用しても、素子にショートモデルパラメータを適用してから素子をまとめても結果が同じとなる。したがって、図13(a)に示す抵抗21にショートモデルパラメータと適用しようとした場合、その回路を図16に示すようにまとめることができる。図16では、図13(a)の箇所Aに対応する抵抗がショート状態となる。対象素子とまとめられた素子についての故障モデルパラメータはまとめられる前の対象素子の故障モデルパラメータと同一の故障モデルパラメータを用いることができる。
また、シリアル接続されている素子をまとめてから素子にオープンモデルパラメータを適用しても、素子にオープンモデルパラメータを適用してから素子をまとめても結果が同じとなる。したがって、図13(a)に示す抵抗22にオープンモデルパラメータと適用しようとした場合、その回路は図17に示すようにまとめることができる。図17では、点線で示された抵抗がオープン状態となっている。対象素子とまとめられた素子についての故障モデルパラメータはまとめられる前の対象素子の故障モデルパラメータと同一の故障モデルパラメータを用いることができる。このように、素子をまとめることにより、故障検出率の精度を劣化させることなく、シミュレーションが収束するまでの時間を短縮することができる。
次に、素子をまとめてネットリストを簡略化する手順について図18を用いて説明する図18はネットリストを簡略化するステップ103の手順を示すフローチャートである。ステップ101で故障モードにすると選択された素子についてのテスト条件をステップ102で設定する。そして、その対象素子をオープン故障とするか又はショート故障とするかを選択する(ステップ301)。対象素子をショート故障とする場合、対象素子とパラレル接続されている素子とを一つにまとめる(ステップ302)。なお、対象素子とパラレル接続されている素子がない場合、すなわち、対象素子がシリアル接続しかされていない場合及び対象素子と接続されている素子がない場合、対象素子はそのままとなる。対象素子をオープン故障とする場合、対象素子とシリアル接続されている素子とを一つにまとめる(ステップ303)。なお、対象素子とシリアル接続されている素子がない場合、すなわち、対象素子がパラレル接続しかされていない場合及び対象素子と接続されている素子がない場合、対象素子はそのままとなる。ネットリストには各素子に対して、パラレル接続されているかシリアル接続されているかの情報が含まれているため、対象素子を適切にまとめることができる。
次に、対象素子以外の素子をまとめるため、その他の素子をネットリスト検索する(ステップ304)。ネットリストには各素子に対して、パラレル接続されているかシリアル接続されているかの情報が含まれているため検索することができる。そして、ステップ304の検索結果に基づいて、パラレル接続があるか否かを判定する(ステップ305)。同じ種類の素子がパラレル接続されている場合、その複数の素子を一つにまとめる(ステップ306)。パラレル接続された素子がない場合、又はパラレル接続された素子をまとめると、ステップ304の検索結果に基づきシリアル接続があるか否かを判定する(ステップ307)。同じ種類の素子がシリアル接続されている場合、それらを一つにまとめる(ステップ308)。その後、一つでもシリアル接続された素子があったか及び一つでもパラレル接続があったか否かを判定する(ステップ309)。対象素子以外で一つでもシリアル接続又はパラレル接続された素子があり、その素子がまとめられた場合、ステップ304からの処理を繰り返し行なう。まとめることができる素子を全てまとめ終わったらネットリストの簡略化を終了する。なお、シリアル接続されている素子とパラレル接続されている素子とで、まとめられる順番は反対でもよい。このようにして、ネットリストの簡略化を行なうことで、よりシミュレーションを実行する際の素子数を減少することができ、計算時間を短縮することが可能になる。
このような手順で簡略化されたネットリストに対応する回路構成について図19を用いて説明する。図19(a)は簡略化する前のネットリストに対応する回路構成を示す図であり、図19(b)〜図19(d)は図19(a)に示すネットリストに対応する回路構成を図19に示すフローチャートにしたがって簡略化しているときの回路構成を示している。図19では説明の簡略化のため、回路を構成する素子として抵抗のみを示している。
図19(a)に示す抵抗26をショートモードとする場合について説明する。ステップ101で選択された抵抗26をステップ301でショート故障にすると選択する。抵抗26はシリアル接続されているため、ここでのステップ302では素子を一つにまとめることができない。その他の素子をネットリスト検索する(ステップ304)。検索結果により、シリアル接続されている箇所C及び箇所Dの抵抗をそれぞれ一つにまとめる(ステップ307及びステップ308)。これにより、図19(b)に示す回路構成となる。シリアル接続されている箇所C,Dがあったため(ステップ309)、ステップ304〜ステップ308の処理を実行する。すなわち、再度検索を行ない(ステップ304)、図19(b)においてパラレル接続箇所Eを一つにまとめる(ステップ305及びステップ306)。これにより、図19(c)に示す回路構成となる。さらに、シリアル接続されている箇所Fの2つの抵抗を一つにまとめる(ステップ307及びステップ308)。これにより、図19(d)に示す回路構成となる。このようにして、7素子から構成される回路構成のネットリストを3素子から構成される回路構成の簡略化ネットリストにすることができる。よって、計算時間を短縮することができる。
なお、シリアル接続されている素子の途中でノードが分かれている場合、そのノードまでで素子をまとめるようにする。すなわち、図20(a)に示すように抵抗と抵抗の間に分岐点がある場合、その分岐点までの素子を一つの素子としてまとめる。例えば、図20(a)に示す回路構成のネットリストは図20(b)に示すように簡略化される。ここでは、抵抗27をショート故障とする場合について示している。なお、図19及び図20では、抵抗のみについて示したが、コンデンサーやトランジスタについても同様にまとめることができる。
同じ機能の回路を同じネットリストに変換することで、ネットリストの違いによる故障シミュレーション結果に違いをなくすことができる。アレイ状に配置された素子を用いて回路設計する場合に、同じ機能の回路でも使う素子や回路図の記述の仕方によってネットリストが異なる。したがって、同じ機能の回路でも故障検出率が異なる場合がある。そこで、アレイ上に配置された素子を用いる場合は、パラレル接続された素子及びシリアル接続された素子をそれぞれまとめることで、ネットリストを同じにする。これにより、同じ機能の回路は同じ故障検出率となるよう、回路を同じネットリストに変換する。アレイ上に配置された素子が用いられているか否かは、たとえば、素子名から判断することができる。したがって、ネットリスト簡略部で故障対象素子がアレイ上に配置された素子か否かを判断し、それに応じてネットリストを簡略化すればよい。
例えば、図21(a)に示す回路と図21(b)に示す回路は同じ機能を示す。この2つの回路を図19に示す手順でまとめていくと、図21(c)に示す回路構成のネットリストとなる。したがって、図21(a)〜図21(c)の回路は同じ機能を有している。このように、異なる構成で同じ機能の回路を同じネットリストにすることで、故障検出率を同じにすることができる。よって、精度よくシミュレーションを行なうことができる。
さらに、アレイ状に配置された素子をを用いているため、図21(c)の回路構成を図21(a)や図21(b)に示す回路図でしか描くことができない場合がある。この場合、素子をまとめて簡略化する前にシミュレーションを行なうと、故障を検出することができないと判定する場合がある。例えば、図21(a)では1kΩの抵抗のショート故障を検出することができないと判定し、図21(b)では10kΩのオープン故障を検出することができないと判定してしまう。この場合、図21(c)に示すように素子をまとめて同じ回路構成のネットリストとすることで、オープン故障及びショート故障を検出することができると判定することができる。これにより、回路図の描き方による故障検出率の違いを防ぐことができる。
シミュレーション結果として得られる他のテスト結果の例について、以下に説明する。
図22に示すシミュレーション結果の例においては、図11のように、各素子のテスト項目毎の結果ではなく、No.1〜No.10の10個のNPNトランジスタについて、故障モードパラメータA(例えば、オープンモデル)と故障モードパラメータB(例えば、ショートモデル)毎に故障が検出されたかどうかを示している。
このシミュレーション結果では、それぞれのNPNトランジスタ(素子)について、テスト条件として設定された全てのテスト項目に対して、1つでもテスト項目に適合しない結果(期待値で示される許容範囲以外の結果)が得られた場合には、故障検出とし、全てのテスト項目に適合した結果(期待値で示される許容範囲内の結果)が得られた場合には故障未検出としている。
ここで、○印は故障検出、×印は故障未検出を示しており、No.1のトランジスタでは、故障モデルパラメータAについては故障検出とされたが、故障モデルパラメータBについては故障未検出であることを示している。
また、各トランジスタ毎の総合評価として、全ての故障モデルパラメータで故障が検出されたかどうかが示されている。例えば、No.1のトランジスタでは、故障モデルパラメータAについては故障が検出されたが、故障モデルパラメータBについては故障が未検出であるので、故障未検出との総合評価がなされている。
このシミュレーション結果において、No.1〜No.10の10個のNPNトランジ
スタについて、故障モデルパラメータAに対する故障検出率は、No.3のトランジスタ
で故障未検出であるため、9/10(90%)となり、故障モデルパラメータBに対する
故障検出率は、No.1のトランジスタで故障未検出であるため、9/10(90%)と
なる。
また、各トランジスタの総合評価における故障検出率は、8/10(80%)となる。
なお、素子ごとに図22に示すようなシミュレーション結果が出力されると共に、検査対象の回路全体としての故障検出率を出力するようにしてもよい。回路全体の故障検出率は、総合評価として故障検出された素子数/全素子数で算出される。
例えば、集積回路が10個のトランジスタと20個の抵抗からなる場合、トランジスタの総合評価として故障検出された数が10個中8で、抵抗の総合評価として故障検出された数が20個中13であるなら、回路全体としての故障検出率は、8/10と13/20の分母と分子を足した21/30(70%)となる。
上述した故障検出の回路シミュレーションにおいて、設定したテスト条件(に含まれるテスト項目)が適切(有効なテスト項目)であれば、故障モデルでの故障検出率は100パーセントとなるはずである。故障検出率が100パーセントに達しない場合には、設定したテスト条件に不適切な値(情報)が含まれていることを意味する。従って、アナログ回路(集積回路)の出荷テストに先立って、本実施例の故障検出シミュレーションシステムによる故障検出を実行すれば、故障検出率を100パーセントに近づけるためのテスト条件の検証が可能となり、その結果得られたテスト条件によって実際のアナログ回路のテスト(出荷検査)を行うことで、実際の不良除去率を向上させることができるようになる。
以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも上記実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することがで
きる。例えば、上述した実施の形態では、アナログ回路の故障検出シミュレーションの例を示しているが、ネットリストが素子レベルで表されていればデジタル回路の故障検出シミュレーションに対しても適用することが可能である。