(57)【特許請求の範囲】
【請求項１】
測定パターン作成部が、測定対象である集積回路の内部論理状態を設定するパターンを複数用意し、静止電源電流試験に使用する複数の測定パターンを作成する測定パターン作成過程と、
シミュレータが、シミュレーションによって前記集積回路に前記測定パターンを印加し、該測定パターンに対応して集積回路が内部に有する複数の測定対象回路であるネットを特定して、該ネットの状態値をネット状態値格納ファイルに格納する内部状態値導出過程と、
デバイス試験装置が、前記複数の測定パターンに対応した集積回路の静止電源電流を測定し、各測定パターンについて静止電源電流の試験結果を得て、試験結果ファイルに格納する試験過程と、
変数生成部が、前記ネット状態値と前記静止電源電流試験結果とに基づき、前記ネット毎に、静止電源電流測定パターンの内部状態値を格納した状態値変数と、静止電源電流毎の試験結果を格納した試験結果変数とを生成する変数生成過程と、
正常パターン比較部が、各ネットの状態値変数と試験結果変数との論理値により各ネットの正常パターンを求め、正常パターンが同じ論理値となっているネットの間にショート箇所が存在すると推定する正常パターン比較過程と、
異常パターン比較部が、前記ショート箇所の存在を推定した複数のネットについて、各ネットの状態値変数と試験結果変数の反転値との論理積により各ネットの第１異常パターンを求めると共に、各ネットの状態値変数の反転値と試験結果変数の反転値との論理積により各ネットの第２異常パターンを求め、２つのネットの第１異常パターンと第２異常パターンとが相互に同じ論理値となっているネット間にショート箇所が存在すると推定する異常パターン比較過程と、を有することを特徴とするショート故障解析方法。
【請求項２】
請求項１記載のショート故障解析方法に於いて、
前記シミュレータが格納した各ネットの状態値に不安定状態や高インピーダンス状態が含まれる場合、前記変数生成過程は、前記各ネット毎の状態値変数の他に、前記状態値変数の確定状態で１、不定状態や高インピーダンス状態で０を格納したマスク変数を生成し、前記判定過程は、各ネット毎の状態値変数、各ネット毎のマスク変数、及び試験結果変数を比較して集積回路内のショート箇所を判定することを特徴とするショート故障解析方法。
【請求項３】
請求項１記載のショート故障解析方法に於いて、前記判定過程で得られたショート故障箇所を更に絞り込む必要がある場合は、前記測定パターン生成過程で、
ショート推定箇所が複数あるときショート候補となっている複数の箇所で正常パターンから候補の２ネット組の反転値となるようなパターンを作成するか異常パターンから候補の２ネット組が同値となるようなパターンを作成することによる方法あるいは配線の位置情報を参照するかのいずれかの方法により絞り込み対象とする故障箇所を分離できる静止電源電流試験の測定パターンを作成し、再度、前記内部状態値導出過程、試験過程及び判定過程を実行してショート故障箇所を特定することを特徴するショート故障解析方法。
【請求項４】
集積回路のショート故障箇所を特定するショート故障解析装置に於いて、
測定パターン作成部が、測定対象である集積回路の内部論理状態を設定するパターンを複数用意し、静止電源電流試験に使用する複数の測定パターンを作成する測定パターン作成部と、
シミュレータが、シミュレーションによって前記集積回路に前記測定パターンを印加し、該測定パターンに対応して集積回路が内部に有する複数の測定対象回路であるネットを特定して、該ネットの状態値をネット状態値格納ファイルに格納する内部状態値導出部と、
デバイス試験装置が、前記複数の測定パターンに対応した集積回路の静止電源電流を測定し、各測定パターンについて静止電源電流の試験結果を得て、試験結果ファイルに格納する試験部と、
前記ネット状態値と前記静止電源電流試験結果とに基づき、前記ネット毎に、静止電源電流測定パターンの内部状態値を格納した状態値変数と、静止電源電流毎の試験結果を格納した試験結果変数とを生成する変数生成部と、
各ネットの状態値変数と試験結果変数との論理値により各ネットの正常パターンを求め、正常パターンが同じ論理値となっているネットの間にショート箇所が存在すると推定する正常パターン比較部と、
前記ショート箇所の存在を推定した複数のネットについて、各ネットの状態値変数と試験結果変数の反転値との論理積により各ネットの第１異常パターンを求めると共に、各ネットの状態値変数の反転値と試験結果変数の反転値との論理積により各ネットの第２異常パターンを求め、２つのネットの第１異常パターンと第２異常パターンとが相互に同じ論理値となっているネット間にショート箇所が存在すると推定する異常パターン比較部とを備えたことを特徴とするショート故障解析装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩやＶＬＳＩ等の集積回路でショート故障を起している箇所を特定するショート故障解析方法及び装置に関し、特に、大規模集積回路であっても故障解析を高速で処理できるショート故障解析方法及び装置に関する。
【０００２】
【従来の技術】
従来、不良デバイスと判断された集積回路の故障解析は、主に、ファンクション試験の結果と故障シミュレーションにより行っている。しかし、従来の故障解析は、０／１固定故障を仮定しているため、配線やトランジスタのショート故障については故障箇所を特定するための故障解析できないケースが多い。
【０００３】
【発明が解決しようとする課題】
一方、ＣＭＯＳ  ＬＳＩでは、内部が動作しない状態で、通常はほとんど電源電流は流れないが、ショート故障が存在すると電源とグランド間に異常な電流が流れる。この性質を利用してショート故障を解析する静止電源電流試験（Ｉｄｄｑ試験）がある。静止電源電流試験による故障解析は、他の手段で故障箇所を数百ゲート以下に絞り込んだ後に解析する。
【０００４】
しかし、静止電源電流試験による故障解析はゲート数が多くなるとネット数も膨大となり、故障解析に長時間必要なうえ、規模が大きくなると解析できなくなる。
【０００５】
本発明は、数百万ゲート以上の大規模集積回路でも解析が可能で、かつ、高速に解析できるショート故障解析方法及び装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
図１は本発明の原理説明図である。
【０００７】
本発明のショート故障解析方法は、図１（Ａ）のように、測定パターン作成過程、内部状態値導出過程と、試験過程、変数生成過程及び判定過程の手順をもつ。図１（Ｂ）は、装置構成である。
【０００８】
測定パターン作成過程は、集積回路の内部論理状態の設定を変えて静止電源電流試験(Iddq 試験）に使用する複数の測定パターンを作成する。内部状態値導出過程は、集積回路のシミュレーションにより測定パターンを印加した際の各ネット毎の内部状態値０／１を導出する。試験過程は、不良デバイスと判断された集積回路に複数の測定パターンを印加して静止電源電流(Iddq)を測定し、各測定パターン毎に正常(pass)又は異常(fail)の試験結果を得る。
【０００９】
変数生成過程は、測定パターン、各ネット毎の内部状態値及び試験結果に基づき、各ネット毎（ネット数ｎ) に全測定パターンの内部状態値を格納した状態値変数(netdata＿n)と、各測定パターン毎に正常又は異常の試験結果を格納した試験結果変数(passdata)を生成する。判定過程は、各ネット毎の状態値変数(netdata＿n)と試験結果変数(passdata)を比較して集積回路内のショートしているネットの組を故障箇所として判定する。
【００１０】
このように本発明は、シミュレーションによる各ネットの全測定パターンにおける論理状態値をネット単位に１つの状態値変数(netdata＿n)に代入し、全測定パターンにおける全ネットの静止電源電流試験の結果を別の１つの試験結果変数(passdata)に代入し、各ネット毎の内部状態値変数(netdata＿n)の組合試験結果変数(passdata)を組合わせて各ネット間で比較することによりショート故障箇所が特定できる。
【００１１】
この組合わせた変数の比較は、全ネット相互の比較で済むため、ネット数をｎとするとリーグ戦方式（総当り戦方式）の比較になり、原理的には（ｎ2−ｎ）／２回の変数比較で済む。このため数百万ゲート以上の大規模集積回路でも解析が可能で、しかも高速に行うことができる。
【００１２】
判定過程は、正常パターン比較過程と異常パターン比較過程を備える。正常パターン比較過程は、変数の組合せとして、各ネット毎の状態値変数(netdata＿n)と試験結果変数(passdata)との論理積により各ネット毎の正常パターン（パスパターン P＿n)を求め、正常パターンが同じ論理値(P＿A ＝ P＿B)となっているネットの間にショート箇所が存在すると推定する。
【００１３】
この正常パターンでは、静止電源電流試験で異常電流が流れていないが、これはショートしている相互のネットが同じ論理値になっているためである。したがって、正常パターンで同じ論理値となっているネット間にショート故障が存在することになる。
【００１４】
異常パターン比較過程は、正常パターン比較過程でショート故障の存在を推定した各ネットについて、ネットの状態値変数(netdata＿n)と試験結果変数の反転値 (￣passdata) の論理積により各ネット毎の第１異常パターン(F＿A)を求めると共に、各ネット毎の状態値変数の反転値 (￣netdata ＿n)と試験結果変数の反転値 (￣passdata) の論理積により各ネット毎の第２異常パターン(F＿B)を求め、２つのネットの１異常パターンと第２異常パターンが相互に同じ論理値(F＿A ＝ F＿B)となっているネット間にショート箇所が存在すると推定して推定結果を出力する。
【００１５】
この異常パターンでは、静止電源電流試験で異常電流が流れているが、これはショートしている相互のネットが相反する論理値になっているためである。したがって、異常パターンで一部又は全体が相反する論理値となっているネット間にショート故障が存在することになる。即ち、第１異常パターンと第２異常パターンが同一になる２つのネット間にショート故障が存在する。
【００１６】
変数生成過程は、同じ値となっている複数ネットの状態値変数を１つにまとめてグループ化し、この場合、判定過程は、グループ化した中から任意の代表ネットの状態値変数を１つ選択してショート故障を判断する。このように同じ状態値変数をグループ化することで、比較に使用する組合せ変数の数をネット数より少なくでき、処理を高速化できる。
【００１７】
また変数生成過程は、各ネットの内部状態に不定状態Ｘや高インピーダンス状態Ｚが含まれる場合、各ネット毎の状態値変数(netdata＿n)の他に、状態値変数の確定状態で１、不定状態Ｘや高インピーダンス状態Ｚで論理値「０」を格納したマスク変数 (maskdata＿n)を生成する。
【００１８】
この場合、判定過程は、各ネット毎の状態値変数(netdata＿n)、各ネット毎のマスク変数 (maskdata＿n)、及び試験結果変数(passdata)の組合せを比較して集積回路内のショート箇所を判定する。
【００１９】
この場合も、比較判定過程は正常パターン比較過程と異常パターン比較過程を備える。正常パターン比較過程は、各ネット毎の状態値変数(netdata＿n)とマスク変数 (maskdata＿n)、及び試験結果変数(passdata)の論理積により各ネット毎の正常パターン（パスパターン P＿n)を求め、正常パターンが同じ論理値(P＿A ＝＿ P＿B)となっているネットの間にショート箇所が存在すると推定する。
【００２０】
また異常パターン比較過程は、正常パターン比較過程で求めたショート故障の存在を推定した複数ネットについて、各ネット毎の状態値変数(netdata＿n)、各ネット毎の自己及び比較先のマスク変数 (maskdata＿n)、及び試験結果変数の反転値 (￣passdata) の論理積により各ネット毎の第１異常パターン(F＿A)を求めると共に、各ネット毎の状態値変数の反転値 (￣netdata ＿n)、各ネット毎の自己及び比較先のマスク変数 (maskdata＿n)、及び試験結果変数の反転値 (￣passdata) の論理積により各ネット毎の第２異常パターン(F＿B)を求め、２つのネットの１異常パターンと第２異常パターンが相互に同じ論理値(F＿A ＝ F＿B)となっているネット間にショート箇所が存在すると推定して推定結果を出力する。
【００２１】
また変数生成過程は、各ネットの内部状態に不定状態Ｘや高インピーダンス状態Ｚが含まれる場合についても、同じ値となっている複数ネットの状態値変数を１つにまとめてグループ化し、判定過程は、グループ化した中から状態値変数を１つ選択してショート故障を判断することで、高速化に行なう。
【００２２】
このように本発明にあっては、各ネットの内部状態に不定状態Ｘや高インピーダンス状態Ｚがあっても、ショート故障を解析できる。
【００２３】
本発明のショート故障解析方法は、判定過程で得られたショート故障箇所を更に絞り込む必要がある場合は、測定パターン生成過程で、絞り込み対象とする故障箇所を分離できる静止電源電流試験の測定パターンを作成し、再度、内部状態値導出過程、試験過程、比較過程及び判定過程を実行してショート故障箇所を特定する。
【００２４】
更に、絞り込んだショート故障箇所に対し、配線の位置情報を参照して、ショート故障箇所がショートするに十分近接しているか否かをチェックすることにより、更にショート故障箇所を絞り込む。このようなショート故障の絞り込みにより、正確にショート箇所を特定できる。
【００２５】
また本発明は、図１（Ｂ）のように、ショート故障解析装置を提供するものであり、論理状態の設定を変えて集積回路の静止電源電流試験に使用する複数の測定パターンを作成する測定パターン作成部１０と、集積回路のシミュレーションにより測定パターンを印加した際の各ネット毎の内部状態値を導出する内部状態値導出部１６と、不良デバイスと判断された集積回路２４に複数の測定パターンを印加して静止電源電流を測定し、各測定パターン毎に正常又は異常の試験結果を得る試験部２２と、測定パターン、各ネット毎の内部状態値、及び試験結果に基づき、各ネット毎に全測定パターンの内部状態値を格納した状態値変数と、各測定パターン毎に正常又は異常の試験結果を格納した試験結果変数を生成する変数生成部２８と、各ネット毎の状態値変数と試験結果変数を比較して集積回路２４内のショートしているネットの組を故障箇所として判定する判定部３２を備えたことを特徴とする。このショート故障解析装置の詳細はショート故障解析方法と基本的に同じになる。
【００２６】
【発明の実施の形態】
図２は、本発明によるショート故障解析装置の機能構成のブロック図である。
【００２７】
図２において、本発明によるショート故障解析装置は、測定パターン作成部１０、内部状態値導出部１６を備えたシミュレータ１４、静止電源電流試験部（Iddq試験部）２２を備えたデバイス試験装置２０を設けている。この測定パターン作成部１０、内部状態値導出部１６及び静止電源電流試験部２２によって、本発明のショート故障解析に必要な次の情報を準備する。
（１）静止電源電流測定パターン（Iddq測定パターン）
（２）内部ネットの状態値
（３）不良デバイスの試験結果
測定パターン作成部１０はIddq測定パターン１２を生成する。即ち不良デバイスと判断されているショート故障解析の対象となっている集積回路２４についての設計データを利用して、Ｉ／Ｏや内部フリップフロップ等の論理状態の設定を変えて、静止電源電流試験のための測定パターンを複数作成する。このようにIddq測定パターンを複数作成することで、ショート故障解析の検出率を向上することが可能となる。
【００２８】
シミュレーション１４に設けた内部状態値導出部１６は、Iddq測定パターン１２を印加した際の集積回路２４の内部ネットの状態値をシミュレーションにより導き出す。このシミュレーションにより導き出す内部状態値は、０または１の確定状態以外に、内部状態が決まらない不定状態Ｘや高インピーダンス状態Ｚを含む。
【００２９】
本発明の基本的なショート故障解析処理にあっては、内部状態値は０，１の確定状態を対象とする。また本発明の変形にあっては、内部状態を確定状態０，１に加え不定状態Ｘや高インピーダンス状態Ｚを含む場合についても対応可能としている。
【００３０】
デバイス試験装置２０に設けた静止電源電流試験部２２は、不良デバイスと判断された集積回路２４を測定対象として、Iddq測定パターンを印加することにより、各測定パターンごとに正常(pass)または異常(fail)の試験結果を得る。
【００３１】
即ち静止電源電流試験部によるIddq試験は、Iddq測定パターンの各々を印加した内部が動作しない静止状態で、電源とグランド間に流れる電流を検出し、ショート故障があれば電源とグランド間に異常電流が流れるので、この異常電流を検出して試験結果を異常(fail)とする。しかし、ショート故障が存在しても内部の論理状態によりショート故障による異常電流が発生しない場合があり、その場合の試験結果は正常(pass)となる。
【００３２】
シミュレータ１４で導出されたネットの状態値は、ネット状態値格納ファイル１８に格納され、また静止電源電流試験部２２のIddq試験の試験結果は試験結果ファイル２６に格納され、それぞれ本発明によるショート故障解析処理に必要な情報として準備される。勿論、測定パターン作成部１０で作成したIddq測定パターンは、Iddq測定パターン格納ファイル１２に格納されている。
【００３３】
各ファイル１８，２６に準備されたネット状態値及びIddq試験の試験結果を使用してショート故障を解析するため、変数生成部２８、判定部３２が設けられる。
【００３４】
変数生成部２８には、変数生成テーブル３０が設けられており、ネット状態値とIddq試験の試験結果に基づき、各ネットごとに全てのIddq測定パターンの内部状態値を格納した状態値変数(netdata＿n)と各Iddq測定パターンごとに正常(pass)または異常(fail)の試験結果を格納した試験結果変数(passdata)を生成する。
【００３５】
判定部３２は、変数生成部２８の変数生成テーブル３０上に生成された各ネットごとの状態値変数(netdata＿n)と試験結果変数(passdata)を組み合わせた論理値を、各ネットごとに作成してネット間で相互に比較することにより、故障デバイスである集積回路２４のショートしているネットの組を故障箇所として判定し、これを解析結果格納ファイル３８に格納する。
【００３６】
このため判定部３２は、正常パターン比較部３４と異常パターン比較部３６を備えている。正常パターン比較部３４は、各ネットごとの状態値変数(netdata＿n)のそれぞれと試験結果変数(passdata)との論理積により各ネットごとのパスパターン（正常パターン P＿n ）を求め、このパスパターンが同じ論理値(P＿A ＝ P＿B)となっている２つのネット間にショート箇所が存在すると推定する。
【００３７】
異常パターン比較部３６は、正常パターン比較部３４でショート故障の存在を推定した複数のネットを対象に、各ネットごとの状態値変数(netdata＿n)のそれぞれと試験結果変数(passdata)の反転値( ￣passdata) の論理積により、各ネットごとの第１異常パターン(F＿A)を求めると共に、各ネットごとの状態値変数(netdata＿n)の反転値 (￣netdata ＿n)のそれぞれと試験結果変数(passdata)の論理積により、各ネットごとの第２異常パターン(F＿B)を求め、２つのネットの第１異常パターンと第２異常パターンが相互に同じ(F＿A ＝ F＿B)となっているネット間にショート故障が存在すると推定して、推定結果となるショートネットの組合せを出力する。
【００３８】
また解析結果格納ファイル３８に格納されたショートネットの組合せについて更に故障箇所を絞り込むため、絞り込み処理部４０が設けられている。この絞り込み処理部４０による故障箇所の絞り込み処理は必要に応じて選択的に行われるものであり、その詳細は後の説明で明らかにする。
【００３９】
図３は、本発明によるショート故障解析方法の基本的な処理手順を示したフローチャートである。まずステップＳ１の測定パターン作成過程で不良デバイスと判断されて故障診断の対象となっている集積回路２４について、図２のようにデバイス試験装置２０で静止電源電流試験を行うために使用する複数の測定パターンを作成する。
【００４０】
次にステップＳ２の内部状態値導出過程で、図２のシミュレータ１４によりIddq測定パターンを印加した際の各ネットごとの内部状態値（０，１または０，１，Ｘ，Ｚ）を導出する。ステップＳ３の静止電源電流試験過程にあっては、図２のデバイス試験装置２０のように、不良デバイスと判断された集積回路２４を測定対象として複数のIddq測定パターンを印加して静止電源電流を測定し、各測定パターンごとに正常(pass)または異常(fail)の試験結果を得る。
【００４１】
このステップＳ１〜Ｓ３の過程で、ショート故障解析のために必要な情報が準備される。次にステップＳ４の変数生成過程で、Iddq測定パターン、内部状態値及び試験結果に基づき、各ネットごとに全測定パターンの内部状態値を格納した状態値変数(netdata＿n)と、各測定パターンごとに正常または異常の試験結果を格納した試験結果変数(passdata)を生成する。
【００４２】
次にステップＳ５の故障箇所判定過程で、生成した各ネットごとの状態値変数(netdata＿n)のそれぞれと試験結果変数(passdata)との組合せをネットごとに比較して、集積回路内のショートしているネットの組を故障箇所として判定する。この判定過程の処理には図２の判定部３２のように、正常パターン比較部３４によるショート故障箇所の推定と、これに続く異常パターン比較部３６によるショート故障箇所の推定が行われる。
【００４３】
次にステップＳ６で、ステップＳ５の故障箇所判定過程によるショート故障箇所につき、多数のショート故障箇所が存在して絞り込みが必要と判断した場合には、ステップＳ７の故障箇所絞り込み過程に進み、故障箇所の絞り込みを行う。この故障箇所の絞り込みは次の２段階の処理を行うことができる。
【００４４】
（１）ステップＳ１のIddq測定パターンの作成過程に戻り、解析結果として残っている故障箇所に対し、これを分離できるようなIddq測定パターンを作成し、再度ステップＳ１〜Ｓ５の処理を繰り返す。
【００４５】
（２）前記のようにして新たなIddq測定パターンによる絞り込みを行って、絞り込まれた故障箇所に対し不良デバイスである解析対象となっている集積回路２４の設計データの配線位置情報を参照し、故障箇所がショートするに十分接近しているか否かをチェックし、ショートするに十分に接近している故障箇所に絞り込みを行う。
【００４６】
次に図２の変数生成部２８及び判定部３２、また図３のフローチャートにおけるステップＳ４，Ｓ５の変数生成過程及び故障箇所判定過程に対応する本発明のショート故障診断処理の詳細を説明する。
【００４７】
図４は、図２の変数生成部２８に設けられた変数生成テーブル３０の具体例である。図４の変数生成テーブル３０は、上部横方向にIddq測定パターンのパターンＰＡＴ＃として＃＝１〜６の６パターンをとり、左縦方向に診断対象とする集積回路のネットを示すネット番号ＮＥＴ＃として＃＝０１〜０８をとっている。
【００４８】
この変数生成テーブル３０にあっては、ネット番号ＮＥＴ０１〜０８ごとに右端縦方向に並べて示すように状態値変数(netdata＿1 〜8)を設定し、この状態値変数(netdata＿1 〜8)の各ビットにシミュレーションで得られた内部状態値である０または１を代入する。
【００４９】
次に変数生成テーブル３０の下欄右端に示すように、試験結果変数(passdata)を設定し、その各ビットに試験結果の正常(pass)または異常(fail)を代入する。この場合、正常は「Ｐ」、異常は「Ｆ」であり、変数のビットとしては正常Ｐを「１」とし異常Ｆを「０」として代入している。
【００５０】
図４のように変数生成テーブル３０が作成できたならば、図５に示すように、変数生成テーブル３０の状態値変数(netdata＿n)と試験結果変数(passdata)の論理値を使用して、集積回路内のショート故障箇所を判定する判定処理を行う。
【００５１】
図５はショート故障箇所の判定処理における図２の正常パターン比較部３４による判定処理の説明図である。正常パターン比較部３４による判定処理は、各ネットＮＥＴ１〜８について正常パターン（passパターン）を求め、ネット相互間で正常パターンを比較して判断する。
【００５２】
例えばネットＡとネットＢの２つを例にとって説明すると次のようになる。
【００５３】
まずネットＡの状態値変数は(netdata＿A)であり、ネットＢの状態値変数は(netdata＿B)であり、更に試験結果変数は(passdat) であったとすると、ネットＡの正常パターン(P＿A)、ネットＢの正常パターン(P＿B)は次式で与えられる。
【００５４】
P＿A ＝ netdata＿A   ＆  passdata              （１）
P＿B ＝ netdata＿B   ＆  passdata              （２）
即ちネットＡ，Ｂの正常パターン(P＿A ， P＿B)は、状態値変数(netdata＿A)，(netdata＿B)のそれぞれと試験結果変数(passdata)との論理積として求めている。そして正常パターン(P＿A)と(P＿B)の間には
P＿A ＝ P＿B                                   （３）
の関係、即ち２つのネットの正常パターンの論理値が等しい場合には、このネットＡとネットＢはショートの可能性があると判定する。
【００５５】
図５について、正常パターンの比較を具体的に説明すると次のようになる。図５の右側には図４のネットＮＥＴ０１〜０８のそれぞれについて状態値変数(netdata＿1)〜(netdata＿8)と試験結果変数(passdata)との論理積の変数演算が示され、その論理積である各正常パターンを左側にネット番号ＮＥＴ＃及びIddq測定パターン番号ＰＡＴ＃をもって表している。
【００５６】
更に図５にあっては、正常パターンが同じ論理値となるネットをまとめてブロック＃１〜＃５に分けて表している。即ちブロック＃１のようにネット番号０１，０６の正常パターンの論理値が同じであり、このためネット番号０１と０６のネット間にショートの可能性があると判断される。またブロック＃３には同じ正常パターンの論理値をもつネットとしてネット番号０２，０３，０８の３つがまとめられており、この３つのネット間でショートの可能性があると判断される。
【００５７】
残りのブロック＃２，＃４，＃５については、それぞれ１つのネット即ちネット番号０４，０５，０７しかないことから、これらについてはショートの可能性はない。
【００５８】
図６は、図５の正常パターン比較処理でショートと判断されたネットに対し行う異常パターン比較処理の説明図である。この異常パターン比較処理の原理をネットＡとネットＢの２つについて説明すると次のようになる。まずネットＡとネットＢの状態変数を(netdata＿A)及び(netdata＿B)とすると、次式によってネットＡ，ネットＢのそれぞれについて第１異常パターン(F＿A)と第２異常パターン(F＿B)を求める。
【００５９】
F＿A ＝  netdata ＿A   ＆  ￣passdata          （４）
F＿B ＝￣netdata ＿B   ＆  ￣passdata          （５）
ここで第１異常パターン(F＿A)は、ネットＡの状態値変数(netdata＿A)と試験結果変数(passdata)の反転値( ￣passdata) の論理積である。また第２異常パターン(F＿B)は、ネットＢの状態値変数(netdata＿B)の反転値( ￣netdata ＿B)と試験結果変数(passdata)の反転値( ￣passdata) との論理積である。そして、このようにして求めた第１及び第２異常パターンについて、
(F＿A)＝(F＿B)                                  （６）
が成立すれば、ネットＡとネットＢはショートしている可能性がある。
【００６０】
この異常パターンの比較によるショート故障箇所の判定を図６について具体的に説明すると次のようになる。
【００６１】
図６にあっては、図５に示した正常パターンの比較処理の場合と同様、ブロック＃１，ブロック＃３のショートと判断されたネット以外についても併せて示している。図６の右側は第１異常パターン及び第２異常パターンの論理積を変数で表しており、ネット番号０１〜０６に対応して第１異常パターンがＡ１〜Ａ８、第２異常パターンがＢ１〜Ｂ８であるが、ブロックに１つのネットしかないブロック＃２，＃４，＃５については故障判断を行わないことから、パターン符号は省略している。
【００６２】
まずブロック＃１について見ると、前記（４）式からネット番号０１，０６の正常パターンＡ１，Ａ６を求め、（５）式からネット番号０１、０６の異常パターンＢ１，Ｂ６を求める。
【００６３】
そして、正常パターンＡ１と異常パターンＢ６を比較しても一致せず、また正常パターンＡ６と異常パターンＢ１を比較しても一致しないことから、ネット番号０１，０６のネット間にはショートの可能性はない。
【００６４】
次にブロック＃３のネット番号０２，０３，０８について、同様にして（４）から正常パターンＡ２，Ａ３，Ａ８を求め、（５）式から異常パターンＢ２，Ｂ３，Ｂ８を求める。
【００６５】
この場合、第１正常パターンＡ２と第２異常パターンＢ８が「０００１００」と同じ論理値であり、同時に第１正常パターンＡ８と第２異常パターンＢ２が「００１０１０」と同じ論理値になっている。このため、ネット番号０２とネット番号０８がショートしている可能性がある。
【００６６】
この図６におけるフェイルパターンによる比較処理は、異常パターンの場合にはネットに異常なIddq電流が流れており、これはショートしている相互のネットが相反する論理値となっているためである。したがって異るパターンで互いに相反する論理値となっているネット間にショート故障が存在する。
【００６７】
具体的には図６に示したように、ブロック＃３の中でＡ２＝Ｂ８、Ａ８＝Ｂ２となっているネット番号０２とネット番号０８のネット間でショート故障が存在する。
【００６８】
図７，図８は、本発明のショート故障診断処理のフローチャートであり、図４の状態値変数の生成、図５の正常パターンの比較による故障判定、図６の異常パターンの比較による故障判定を実現する解析アルゴリズムを表している。
【００６９】
図７において、まずステップＳ１で、解析処理に先立って準備されたネットの状態値、Iddq測定パターンを用いたデバイス試験結果のそれぞれを読み込む。続いてステップＳ２で、各ネットごとの状態値変数「netdata (n,P) 」にネット状態値０又は１を代入し、また試験結果変数「passdata (p)」の各ビットにIddq測定パターンごとの試験結果を代入する。
【００７０】
次にステップＳ３で「 net＿A 」をネット番号１にセットし、「 net＿B 」をネット番号２にセットし、更にIddq測定パターンのパターン番号「pat 」を１にセットする。
【００７１】
これは図４の変数生成テーブル３０における変数値のセット状態、即ち(netdata＿1)＝０、(netdata＿2)＝０、(Passdata)＝１の状態である。続いてステップＳ４で、ステップＳ３で設定した２つのネットＡ，Ｂで、且つ最初の１つの測定パターンについて、パスパターン（正常パターン） P＿A ， P＿B を状態値変数「netdata (net＿A)，netdata (net＿B)」のそれぞれと試験結果変数(passdata)との論理積により求め、ステップＳ５で両者が等しいか否かチェックする。
【００７２】
両者が等しければ、この２つのネットの間にショートの可能性があると判断し、ステップＳ６のフェイルパターン（異常パターン）の比較処理を行う。このフェイルパターンの比較処理について、ステップＳ７で２つのネットの論理値が等しければ、ステップＳ８に進み、ネットＡとネットＢはショートしている可能性があるとし、両者の組合せ  （net ＿A ×net ＿B ）を出力して診断結果格納ファイル３８に格納する。
【００７３】
ステップＳ５またはステップＳ７で、パスパターンの比較結果またはフェイルパターンの比較結果につきパターン不一致であった場合には、図８のステップＳ９に進み、ネットＢを１つインクリメントして次のネットとし、ステップＳ１０で全ネットについての比較が済んでいなければ、再び図７のステップＳ４に戻り、ネットＡと新たにインクリメントしたネットＢについてパスパターンとフェイルパターンの比較によるショート故障の判定を行う。
【００７４】
図８のステップＳ１０でネットＢが全ネット数を越えた場合には、ステップＳ１１に進み、次にネットＡを１つインクリメントし、同時にネットＢを、インクリメントしたネットＡに１を加えたネットに更新する。例えば最初、ネットＡ＝１であった場合には、ここでネットＡはＡ＝１＋１＝２にインクリメントされ、このときネットＢはＢ＝２＋１＝３にインクリメントされる。
【００７５】
次にステップＳ１２に進み、ネットＡが全ネット数に達していなければ、再び図７のステップＳ４に戻り、同様な処理を繰り返す。ステップＳ１２でネットＡが全ネット数に一致すると、このときのIddq測定パターンについて全ネットについての処理が終了したことから、ステップＳ１３で測定パターン(pat) を１つインクリメントし、ステップＳ１４で測定パターン(pat) が全ネット数に達するまで、ステップＳ４からの処理を繰り返す。
【００７６】
この結果、図７，図８のショート故障解析処理のフローチャートに従えば、例えばネット数ｎをｎ＝０１〜０８、測定パターンを pat＝１〜６とした場合、図４，図５，図６に示した変数生成、正常パターン比較及び異常パターン比較によるショート故障の判定処理を、ネット番号、パターン番号をインクリメントしながら順次行うことで、実質的に全体を比較したと同じ処理結果が得られる。
【００７７】
図９は同じ状態値変数をもつネットをグループ化する変数生成処理の説明図である。
【００７８】
図９（Ａ）は、図２の変数生成部２８で生成された変数生成テーブル３０であり、この変数生成テーブル３０にあっては、ネット番号ＮＥＴ０１〜１０とIddq測定パターンＰＡＴ１〜６について状態値変数(netdata＿n)＿１〜１０のそれぞれに内部状態値０，１を代入しており、更に各Iddq測定パターンＰＡＴ１〜６について得られた試験結果を代入した試験結果変数(passdata)を代入している。
【００７９】
ここで、ネット番号０１とネット番号０９の状態値変数(netdata＿1)，(netdata＿9)は「０００１１０」と同じ論理値である。またネット番号０２とネット番号１０の状態値変数(netdata＿2)と(netdata＿10) は「０１０１００」と同じ論理値である。
【００８０】
そこで図９（Ｂ）のように、同じ論理値の状態値変数をもつネットをグループ化する。即ちネット番号０１，０９はグループＧ０１にグループ化され、ネット番号０２，１０はグループＧ０２にグループ化される。このように複数のネットをグループ化した場合には、各グループＧ０１，Ｇ０２の中のいずれか１つの状態値変数を代表値として取り出して、ショート故障を判定するための正常パターン及び異常パターンの比較を行う。
【００８１】
図１０，図１１は、同じ論理値をもつネットをグループ化した場合の本発明によるショート故障解析処理のフローチャートである。このフローチャートにあっては、図１０のステップＳ２でグループ化する。このグループ化に伴い、図９（Ｂ）のようにグループ番号Ｇ０１，０２をセットするが、グループ化しないネット番号０３，０８についても連続したグループ番号Ｇ０３〜０８を割り当てる。
【００８２】
続いてステップＳ３で、状態値変数をグループ番号ｇと測定パターン番号ｐで定義した変数(netdata＿g,p)として扱う。これによって図９（Ａ）の状態値変数がネット数に対応した１０個からグループ化によって８個に減少させることができ、ステップＳ４以降のパスパターンの比較及びフェイルパターンの比較に基づくショート故障の処理を減少させることができ、解析を高速化できる。
【００８３】
ステップＳ４から図１１のステップＳ１５までの処理は、図７，図８のステップＳ３〜Ｓ１４におけるネットＡ，ネットＢをグループ番号（ grp＿A ， grp＿B)とした点が相違し、その他の点は全く同じ処理となる。
【００８４】
図１２は、図２のシミュレータ１４に設けた内部状態値導出部１６によるIddq測定パターンの印加による内部状態値の導出で、不定状態Ｘや高インピーダンス状態Ｚを含む内部状態が導出された場合のショート故障解析処理で使用する変数生成テーブルとマスクテーブルの説明図である。
【００８５】
即ち、シミュレーションによるIddq測定パターンの印加で決まる論理回路の内部状態については、０，１が確定しない不定状態Ｘやドライバ出力の高インピーダンス状態Ｚとなる場合がある。このように不定状態Ｘや高インピーダンス状態Ｚを含んだ各ネットの状態値とIddq試験の試験結果からショート故障を推定する場合には、各ネットごとに不定状態の０，１を代入した状態値変数となる図１２（Ａ）の変数生成テーブル３０に加え、図１２（Ｂ）のようなマスク変数を各ネットごとに代入したマスクテーブル４２を作成する。
【００８６】
マスクテーブル４２は、ネット番号ＮＥＴ０１〜０８とIddq測定パターンＰＡＴ１〜６について、マスク変数(maskdata ＿１〜８）を設定している。まず図１２（Ａ）の変数生成テーブル３０にあっては、パターン番号ＰＡＴ＝５、ネット番号ＮＥＴ＝０２の位置に高インピーダンス状態Ｚ＝０を代入し、またパターン番号ＰＡＴ＝４、ネット番号ＮＥＴ＝０６の位置に不定状態Ｘ＝１を代入している。
【００８７】
一方、図１２（Ｂ）のマスクテーブル４２にあっては、図１２（Ａ）の変数生成テーブルで状態値が確定状態を示す０，１についてはマスク値として１を代入し、不定状態Ｘと高インピーダンス状態Ｚについてはマスク値０を代入している。
【００８８】
このように不定状態Ｘや高インピーダンス状態Ｚを内部状態値に含む場合のショート故障の解析処理にあっては、正常パターン（passパターン）及び異常パターン（failパターン）を求める論理演算に、各ネットワークの状態値変数、マスク変数及び試験結果変数の３つを使用する。
【００８９】
まずネットＡとネットＢで行う場合の正常パターン P＿A ， P＿B については、次の論理演算で求める。
【００９０】
K＿A ＝ netdata＿A ＆  maskdata＿A ＆  maskdata＿B ＆ passdata   （７）
K＿B ＝ netdata＿B ＆  maskdata＿A ＆  maskdata＿B ＆ passdata   （８）
となる。また異常パターンの比較のため、２つのネットＡとネットＢにつき、第１異常パターン K＿A と第２異常パターン K＿B を次のように求める。
【００９１】
K＿A ＝
netdata＿A ＆  maskdata＿A ＆ maskdata ＿B ＆  ￣passdata  （９）
K＿B ＝
￣ netdata＿B ＆  maskdata＿A ＆ maskdata ＿B ＆  ￣passdata  （10）
となる。
【００９２】
図１３，図１４は、図１２のようにネットの状態値に不定状態Ｘや高インピーダンス状態Ｚが存在する場合の本発明によるショート故障解析処理のフローチャートである。この処理にあっては、ステップＳ１で解析に必要な情報を読み込んだ後、ステップＳ２で図１２（Ａ）に示した変数生成テーブル３０に対する確定状態０，１及び不定状態Ｘや高インピーダンス状態Ｚを含む状態値の代入を行い、更に図１２（Ｂ）のマスクテーブル４２におけるマスク変数のためのマスク値の代入を行う。続いてステップＳ３で２つのネットＡ，Ｂについて、ネット番号と測定パターン番号(pat) を初期設定した後、ステップＳ４でパスパターンの比較を行う。
【００９３】
このパスパターン（正常パターン）の比較にあっては、ネットＡ，Ｂのパスパターン(P＿A ， P＿B)に不定状態Ｘや高インピーダンス状態Ｚで０を代入したマスク変数(maskdata ＿n)を組み合わせた（７）（８）式の論理演算が行われている。続いてステップＳ５でネットＡ，Ｂのパスパターンが等しければ、ネットＡ，ネットＢにショート故障の可能性有りとして、ステップＳ６のフェイルパターン（異常パターン）の比較を行う。
【００９４】
このフェイルパターンの比較にあっては、フェイルパターン(F＿A)，(F＿B)の演算にネットのマスク変数(mask ＿n)を組み合わせた（９）（１０）式の論理積演算を行っている。ステップＳ７でフェイルパターンが等しければ、ネットＡとネットＢにショート故障の可能性があるとステップＳ８で判断し、解析結果格納ファイル３８にショートネットの組合せを格納する。
【００９５】
続いて図１４のステップＳ９〜Ｓ１４の処理に進むが、この処理は図７，図８の処理と同じであり、ネットＡ，Ｂの番号及び測定パターンをインクリメントしながら、全ネット数及び全パターン数について処理を繰り返す。
【００９６】
図１５，図１６のフローチャートは、図１３，図１４のネット状態値に不定状態Ｘや高インピーダンス状態Ｚを含む場合について、同じ値をもつネット状態値関数をグループ化して処理するようにしたことを特徴とする。
【００９７】
即ち図１５のステップＳ２において、例えば図１２（Ａ）のようにして生成された変数生成テーブル３０の状態値変数(netdata＿n)の中にもし同じ値があれば、これを図９（Ｂ）に示したようにグループ化し、グループ化していないネット番号を含めてグループ番号Ｇ０１，Ｇ０２，・・・を設定する。
【００９８】
そしてステップＳ３以降の処理は、図１０，図１１におけるネット番号（ net＿A)，ネット番号( net ＿B)の代わりにグループ番号(grp＿A) (grp ＿B)を使用した点で相違し、それ以外の点は同じパスパターンの比較及びフェイルパターンの比較によるショート故障の解析処理となる。
【００９９】
次に図２に示した絞り込み処理部４０の実施形態を説明する。本発明のショート故障解析処理によって、解析結果格納ファイル３８にショートネットの組合せが格納された状態でショートネットの特定箇所が多く故障箇所の特定が不十分な場合には、絞り込み処理部４０による絞り込み処理を実行する。
【０１００】
絞り込み処理部４０は、まず測定パターン作成部１０に対し、現在残っている故障箇所に対しこれを分離できるようなIddq測定パターンを作成し、新たに測定したIddq測定パターンについてシミュレータ１４の内部状態値導出部１６で内部状態値を導出し、またデバイス試験装置２０の静止電源電流試験部２２で試験を行って試験結果を得る。
【０１０１】
そして、新たに得られたネット状態値及び試験結果について、変数生成部２８で各ネットの状態値を新たな測定パターンについて代入し、また試験結果を新たな測定パターンの位置に代入し、判定部３２で正常パターン比較及び異常パターン比較の処理を行ってショートネットの組合せを絞り込む。
【０１０２】
このようにして絞り込み処理部４０が第１段階の絞り込みを行ってもなお、ショートネットが多く故障箇所の特定が不十分な場合には、ネットの状態値と試験結果により絞り込んだ故障箇所を集積回路２４の設計データから得た配線位置情報を参照し、故障箇所がショートするのに十分近接しているネット同士か否かチェックし、十分近接してショートする故障箇所であれば故障箇所としての絞り込みを行う。
【０１０３】
即ち、集積回路内にはネットの状態値がIddq測定パターンの全てで同一となる場合がある。このような場合にはネットの状態値だけでは故障箇所を特定することができない。例えば各ネットの状態値変数を生成する際に同一となるネットをグループ化し、このときグループＧａにＮａ本のネットが含まれ、グループＧｂにＮａ本のネットが含まれ、且つグループＧａとグループＧｂがショートしていると推定された場合、ショート推定箇所は（Ｎａ×Ｎｂ）箇所存在する。
【０１０４】
このような多くのショート推定箇所を故障解析のためには数箇所まで絞り込む必要がある。したがって（Ｎａ×Ｎｂ）箇所のショート推定箇所に含まれる各ネットの配線位置を参照し、ショートするのに十分近接しているネットの組を抽出することで、ネットの状態値だけでは特定できなかった故障箇所を絞り込むことができる。
【０１０５】
尚、本発明は、その目的と利点を損なわない全ての変形を含む。また本発明は上記の実施形態に示した数値による限定は受けない。
【０１０６】
【発明の効果】
以上説明してきたように本発明によれば、シミュレーションによる各ネットの全測定パターン作成部における論理状態値をネット単位に１つの状態値変数に代入し、全測定パターンにおける全ネットの静止電源電流試験の結果を別の１つの試験結果の変数に代入し、試験結果変数と各ネットの内部状態値変数を組み合わせて各ネット間で相互に比較することによりショート故障箇所が特定でき、ネット数分の状態値変数と単一の静止電源電流試験の試験結果の変数との論理演算と比較を繰り返してショート故障箇所が特定できるため、例えば数百万ゲート以上といった大規模集積回路であっても、ショート故障の解析を現実的な処理時間で高速に行うことができる。
【０１０７】
また全ネットの内部状態値の変数に代入した値が同一のネットをグループ化することで、比較処理の論理演算に使用する変数を減少して高速にショート故障の特定処理を行うことができる。
【０１０８】
更に、ネット内部状態として不定状態や高インピーダンス状態が存在しても、不定状態や高インピーダンス状態を示すマスク変数を組み合わせることで、内部論理状態に不定状態や高インピーダンス状態が存在しても、ショート故障箇所を特定する解析が可能である。
【０１０９】
更に、各ネットごとの内部状態値変数と静止電源電流試験の試験結果変数から求められたショート故障箇所につき、必要に応じて新たに静止電源電流試験の測定パターンを生成して再度解析を行ったり、配線位置情報を利用してショート故障箇所を特定する絞り込みを行うことで、ショート故障箇所を数箇所といった箇所に正確に絞り込むことができる。
【０１１０】
尚、特許請求の範囲に記載した以外の本発明の特徴を列挙すると次のようになる。
【０１１１】
（１）請求項２のショート故障解析方法に於いて、前記変数生成過程は、同じ値となっている複数のネットの状態値変数を１つにまとめてグループ化し、前記判定仮定は、前記グループ化した中から任意の代表ネットの状態値変数を選択してショート故障を判断することを特徴とする。
【０１１２】
（２）請求項３記載のショート故障解析方法に於いて、前記判定過程は、各ネット毎の状態値変数、各ネット毎の自己及び比較先のマスク変数、及び試験結果変数の論理積により各ネット毎の正常パターンを求め、正常パターンが同じ論理値となっているネットの間にショート箇所が存在すると推定する正常パターン比較過程と、前記ショート故障の存在を推定した複数のネットについて、各ネット毎の状態値変数、各ネット毎の自己及び比較先のマスク変数、及び試験結果変数の反転値の論理積により各ネット毎の第１異常パターンを求めると共に、各ネット毎の状態値変数の反転値、各ネット毎の自己及び比較先のマスク変数、及び試験結果変数の反転値の論理積により各ネット毎の第２異常パターンを求め、２つのネットの１異常パターンと第２異常パターンが相互に同じ論理値となっているネット間にショート箇所が存在すると推定して推定結果を出力する異常パターン比較過程とを備えたことを特徴とする。
【０１１３】
（３）請求項３及び前記（２）記載のショート箇所診断方法に於いて、前記変数生成過程は、同じ値となっている複数のネットの状態値変数を１つにまとめてグループ化し、前記判定過程は、前記グループ化した中から任意の代表ネットの状態値変数を選択してショート故障を判断することを特徴とする。
【０１１４】
（４）請求項１，３又は４記載のショート故障解析方法に於いて、絞り込んだショート故障箇所に対し、配線の位置情報を参照して、ショート故障箇所がショートするに十分近接しているか否かをチェックすることにより、更にショート故障箇所を絞り込むことを特徴とする。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明によるショート故障解析装置の機能ブロック図
【図３】本発明によるショート故障解析方法の処理手順のフローチャート
【図４】本発明の変数生成処理で使用する変数生成テーブルの説明図
【図５】図４の変数の組合わせた正常パターン比較によるショート故障判定処理の説明図
【図６】図５に続いて行なう図４の変数の組合わせた異常パターン比較によるショート故障判定処理の説明図
【図７】本発明のショート故障解析方法のフローチャート
【図８】図７に続く本発明のショート故障解析方法のフローチャート
【図９】同じ値をグループ化する本発明の変数生成処理の説明図
【図１０】図９でグループ化した場合の本発明のショート故障解析方法のフローチャート
【図１１】図１０に続く本発明のショート故障解析方法のフローチャート
【図１２】不定状態Ｘや高インピーダンス状態Ｚを含む場合の本発明の変数生成処理の説明図
【図１３】図１２で不定状態Ｘや高インピーダンス状態Ｚを含む場合の本発明のショート故障解析方法のフローチャート
【図１４】図１３に続く本発明のショート故障解析方法のフローチャート
【図１５】不定状態Ｘや高インピーダンス状態Ｚを含み且つグループ化した場合の本発明のショート故障解析方法のフローチャート
【図１６】図１５に続く本発明のショート故障解析方法のフローチャート
【符号の説明】
１０：測定パターン作成部
１２：Iddq測定パターン格納ファイル
１４：シミュレータ
１６：内部状態値導出部
１８：ネット状態値格納ファイル
２０：デバイス試験装置
２２：静止電源電流試験部（Iddq試験部）
２４：集積回路
２６：試験結果格納ファイルメ
２８：変数生成部
３０：変数生成テーブル
３２：判定部
３４：正常パターン比較部
３６：異常パターン比較部
３８：診断結果格納ファイル
４０：絞り込み処理部
【図１】
0004057207.tif 000002
【図２】
0004057207.tif 000003
【図３】
0004057207.tif 000004
【図４】
0004057207.tif 000005
【図５】
0004057207.tif 000006
【図６】
0004057207.tif 000007
【図７】
0004057207.tif 000008
【図８】
0004057207.tif 000009
【図９】
0004057207.tif 000010
【図１０】
0004057207.tif 000011
【図１１】
0004057207.tif 000012
【図１２】
0004057207.tif 000013
【図１３】
0004057207.tif 000014
【図１４】
0004057207.tif 000015
【図１５】
0004057207.tif 000016
【図１６】
0004057207.tif 000017