(57)【要約】【課題】      活性化経路上にある信号線を積極的に考慮する全く新たな概念である故障活性化率という概念を用いてテストパターンの品質を評価可能な評価方法を提案する。【解決手段】  論理回路に対して生成されたテストパターンの品質を評価する方法であって、論理回路は互いに接続する複数の信号線を有し、演算手段が、複数の信号線のうち所定の故障箇所により故障の影響が伝搬する可能性のある故障到達可能信号線を特定することにより演算されるその本数と、テストパターンにより故障の影響が伝搬する信号線の本数との比率を演算する演算ステップを含む。【選択図】  図７
2006201090.tif 000002
【特許請求の範囲】
【請求項１】
論理回路に対して生成されたテストパターンの品質を評価する方法であって、
前記論理回路は互いに接続する複数の信号線を有し、
演算手段が、前記複数の信号線のうち所定の故障箇所により故障の影響が伝搬する可能性のある故障到達可能信号線を特定することにより演算されるその本数と、テストパターンにより前記故障の影響が伝搬する信号線の本数との比率を演算する演算ステップを含む、テスト品質評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の欠陥検出に関するものであり、特に、論理回路（組合せ論理回路およびスキャン設計された論理回路など）に対して生成されたテストパターンの品質を評価する方法に関するものである。
【背景技術】
【０００２】
通常、製造されたLSIのチップに対しては、製造されたチップが不良品でないか確認する出荷テストが行われる。出荷テストにおいて、良品と判定されたものは市場へ出荷され、不良品と判定されたものは廃棄される。出荷テストで行われるLSIの検査方法として、LSIテスタを用い、LSIの外部入力ピンから与える信号値を制御し、外部入力ピンから印加した値に対して外部出力ピンでの応答値が正しいか否かを判定する方法がある。このとき、外部入力ピンから印加する値のみ、又は外部入力ピンから印加する値と正常回路において外部出力ピンで観測される値を併せてテストパターンと呼ばれる。以下では、前者の意味でテストパターンを用いる。これまで、テストパターンの品質を評価する方法として、故障検出率および故障検出効率というものがあった。通常、これらは故障シミュレーションやテストパターン生成の結果から求めることができる。（従来技術の一例として非特許文献１参照）。
【０００３】
故障検出率および故障検出効率は次の式で表される。
＜故障検出率＞
FC=検出故障数/総仮定故障数
＜故障検出効率＞
FC=検出故障数/(総仮定故障数-検出不能な故障数)
総仮定故障数とは、回路中に仮定した故障の総数であり、検出故障数とは、テストパターンにより検出される故障数であり、検出不能な故障数とは、冗長故障のように故障を検出するためのテストパターンが存在しない、つまり、正常回路と故障回路の外部出力ピンにおいて、差異が出るテストパターンが存在しない故障数である。故障が検出されるとは、仮定した故障に対して、正常回路と故障回路にテストパターンを印加したとき、少なくとも１つの外部出力ピンでの応答値が異なるとき、故障が検出されたという。また、回路中に仮定する故障の種類もいくつか提案されており、これらは故障モデルとよばれる。故障モデルは、実際にLSI中におこる物理的欠陥を反映してモデル化したものであり、これまでテストパターン生成などにおいて、広く使われていた故障モデルは、回路中のひとつの信号線の値が０又は１に固定される単一縮退故障モデルである。
【０００４】
図２０は故障検出の一例を説明するための論理回路図である。
【０００５】
テストパターン(a,b,c,d)=(0,1,Ｘ,1)を印加したときの信号線nの０縮退故障を考える。Ｘは、論理値0でも1でもよいドントケア値を表す。信号線nで正常回路では値1になるところが、故障回路において故障の影響により誤った値0が発生し、その影響が信号線n→r→yを伝搬し、外部出力ピンyで正常回路とは異なる値（故障値）が観測できる。このような場合、信号線nの０縮退故障が検出されたという。
【０００６】
【非特許文献１】「Ｄアルゴリズム」ＩＥＥＥ Ｔｒａｎｓ． Ｅｌｅｃｔｒｏｎｉｃ Ｃｏｍｐｔ．，ＥＣ−１６，５，１９６７
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、ＬＳＩの大規模化・高速化・微細化に伴い、上記した従来のテストパターンの評価方法により、100%に近い高故障検出率および高故障検出効率を達成したテストパターンを用いても、十分なテストが難しくなってきている。つまり、実際のLSIのテスト時に使用するテストパターンの品質の正当な評価ができていないといえる。これは、実際ＬＳＩ中に生じている欠陥が複雑化しており、単一縮退故障モデルでは、実際ＬＳＩ中に生じる欠陥を表しきれていないことに起因する。例えば隣接する信号線が干渉してしまうことが生じ、またタイミングに依存する欠陥がある。他にも、単一縮退故障に対して生成されたテストパターンでも、テストパターン生成アルゴリズムの違いにより、ある外部出力で故障の影響が検出されるように生成されたテストパターンでは欠陥が検出でき、異なる外部出力で故障の影響が検出されるよう生成されたテストパターンでは、欠陥が検出できない場合もある。
【０００８】
テストパターンの品質の正当な評価のためには、単一縮退故障モデルとは異なるブリッジ故障や遅延故障などの他の故障モデルに対して評価を行う、Ｎ回検出した単一縮退故障の評価を行うなどが考えられる。ここで、Ｎ回検出した単一縮退故障の評価方法とは、ある単一縮退故障が異なるテストパターンでＮ回検出されたとき、はじめてその故障を検出したとみなす評価方法であり、従来の評価方法では、ある単一縮退故障が1回検出されたとき、その故障を検出したとみなす点で異なる。
【０００９】
しかし、ブリッジ故障モデルや遅延故障モデルのひとつであるトランジション故障モデルを用いてテストパターンを評価する場合、単一縮退故障と同様に少なくとも１つの外部出力ピンで故障が検出できれば検出したとみなすので、ある特定の外部出力でしか故障が検出されない欠陥に対しての正当な評価ができないと考えられる。
【００１０】
また、Ｎ回検出した単一縮退故障の評価は、ある故障において、前に検出されているテストパターンと重複したようなそれほど意味のないテストパターンも有効であるとみなすときがある。図２０の例において、外部入力cの値がX（ドントケア＝０でも１でもよい値）で残っているが、実際ＬＳＩをテストするときは、Ｘの部分に０か１の値を埋めて、テストする必要がある。Ｎ回検出した単一縮退故障の評価では、この外部入力cの値が０のときも、1のときも、ともに1回検出したとカウントするが、信号線nの0縮退故障の影響が伝搬している経路は、どちらも同じでそれほど違いはないと思われる。
【００１１】
これらの問題は、故障の影響が少なくとも１つの外部出力ピンで検出されたときのみの評価しか行わず、故障が伝搬する経路（以下、「活性化経路」とも呼ぶ。）を考慮していなかったことに起因する。
【００１２】
一方、遅延故障モデルのひとつであるパス遅延故障モデルは、経路のことも考慮した故障モデルであるが、回路中の経路数は膨大な数となることが知られており、さらにテスト不能パスという検出不能な経路も多数存在するため、テストパターンの品質の正当な評価は難しいと考えられる。
【００１３】
ゆえに、本発明の目的は、活性化経路上にある信号線を積極的に考慮する全く新たな概念である活性化率という概念を用いてテストの品質を評価可能な評価方法を提案することである。
【課題を解決するための手段】
【００１４】
請求項１に係る発明は、論理回路に対して生成されたテストパターンの品質を評価する方法であって、論理回路は互いに接続する複数の信号線を有し、演算手段が、複数の信号線のうち所定の故障箇所により故障の影響が伝搬する可能性のある故障到達可能信号線を特定することにより演算されるその本数と、テストパターンにより故障の影響が伝搬する信号線の本数との比率を演算する演算ステップを含むものである。
【００１５】
このような比率を故障活性化率と定義し、この故障活性化率を用いたテストパターンの評価を行うことにより、活性化信号線を積極的に考慮する質の面からというアプローチによるテストパターン生成を行える。
【００１６】
なお、請求項１において、前記演算ステップは、故障箇所が複数の箇所の場合には、全ての故障箇所に対する比率に基づく論理回路全体の比率を演算するステップあってもよい。
【００１７】
また、請求項１に係る発明としてのテスト評価方法をコンピュータに実行させることが可能なプログラムとして捉えてもよく、そのプログラムを記録した記録媒体として捉えてもよい。
【００１８】
さらに、請求項１に係る発明としてのテスト評価方法をテスト評価装置として捉えてもよい。
【００１９】
さらに、請求項１に係る発明ではテスト評価方法としたが、このテスト評価を利用したテストパターン生成方法、その方法をコンピュータに実行させることが可能なプログラム、そのプログラムを記録した記録媒体、又はテストパターン生成装置として捉えてもよい。
【００２０】
さらに、上記故障活性化率を用いることに加えて或いは代えて、Impact  of  Multiple-Detect  Test  Patterns  on  Product  Quality（Mentor  Graphics  Corporation：ITC’03)で提案されている故障観測率を最大化するようなテストパターン生成方法、その方法をコンピュータに実行させることが可能なプログラム、そのプログラムを記録した記録媒体、又はテストパターン生成装置としてもよい。
【発明の効果】
【００２１】
本発明によれば、故障の影響が伝搬している信号線である「活性化信号線」を考慮したテストパターンの品質評価が行えるので、テスト品質の向上を図りながらテスト時間とテストコストを考慮したテストパターン生成が可能になる。また、テスト品質を向上させるために活性化信号線を可能な限り多くするというテストパターンを生成することにより、故障診断の精度があがる可能性が出てくるばかりか、新規の故障モデルも提案できる可能性もある。
【発明を実施するための最良の形態】
【００２２】
＜第１の実施の形態＞
図１は、本発明の実施形態に係わる故障シミュレーション装置の概略を示すブロック図である。
【００２３】
故障シミュレーション装置１は、故障シミュレーションとそれに関わる処理を行う処理部３と、ネットリスト、テストパターンおよびシミュレーション結果などのデータを格納するデータ記憶部５と、故障シミュレーション処理に必要な情報を格納するメモリ部７と、入力装置９と、出力装置１１と、入出力装置９，１１の制御を行う入出力制御部１３とを有している。
【００２４】
処理部３は、故障シミュレーション実行の対象となる回路情報を読み込むネットリスト読込み部１５と、故障シミュレーションに必要な情報を回路情報から集める前処理部１７と、故障シミュレーション時に使用するテストパターンを読み込むテストパターン読込み部１９と、仮定した故障に対して故障シミュレーションを実行する故障シミュレーション部２１と、故障シミュレーション結果を出力する故障シミュレーション結果出力部２３とを備える。
【００２５】
ネットリスト読込み部１５は、回路の接続情報が記述されているネットリストを読み込み、メモリ部７に格納する。前処理部１７は、故障シミュレーションに必要な情報などを収集する前処理を行う。このステップでは、ネットリストの接続情報などをチェックするデザインルールチェック処理、シミュレーション時の計算順序を決定する計算順序決定処理、各信号線から到達可能な信号線の集合を求める活性化可能領域作成処理、故障リストを作成する故障リスト作成処理などが行われる。テストパターン読込み部１９は、故障シミュレーション実行時に外部入力ピンに与えるテストパターンを読み込む。故障シミュレーション部２１は、ネットリスト読込み部１５により読み込まれた回路情報の外部入力ピンにテストパターン読込み部１９により読み込まれたテストパターンを印加して、故障シミュレーションを行う。故障シミュレーション結果出力部２３は、故障シミュレーション部２１により実行された故障シミュレーションの結果を出力する。
【００２６】
図２は故障観測率と故障活性化率との関係を説明するための図である。図２において、PI1，PI2，PI3，PI4は外部入力ピンを、PO1，PO2，PO3は外部出力ピンを、故障fから各外部出力ピンへの経路は活性化経路を、A,B,Cは活性化経路上の分岐点を表しているとする。
【００２７】
まず、故障観測率について説明する。
【００２８】
Impact  of  Multiple-Detect  Test  Patterns  on  Product  Quality（Mentor  Graphics  Corporation：ITC’03)では、故障観測率という評価尺度を次のように定義している。
【００２９】
＜故障fの故障観測率＞
focf=(故障fの影響が観測された相異な外部出力ピン数/故障fが到達可能な外部出力ピン数)×100
＜回路全体の故障観測率＞
FOC=Σfocf/総仮定故障数
但し、故障fが到達可能な外部出力ピンとは、故障fから回路構造上到達可能な外部出力ピンであり、故障fが検出可能な外部出力ピンを意味するものではない。
【００３０】
上記定義の故障観測率では、図２において外部出力ピンＰＯ１、ＰＯ２、ＰＯ３というピンが重要である。しかし、外部出力ピンＰＯ２に注目すると活性化経路は２種類（ｆ→Ａ→Ｂ→ＰＯ２，ｆ→Ａ→Ｃ→ＰＯ２）あり、故障観測率という観点では活性化された信号線までが考慮されておらず、テスト品質の評価においては十分なものとは言えない。
【００３１】
そこで、故障活性化率という新たな評価尺度を次のように定義する。ただし、故障fから到達可能な信号線とは、故障fから回路構造上到達可能な信号線であり、故障fの影響がその信号線まで伝搬可能であることを意味するものではない。
【００３２】
＜故障fの故障活性化率＞
actf=(故障fの検出に影響する活性化された信号線数/故障fから到達可能な信号線数)×100
＜回路全体の故障活性化率＞
ACT = Σactf/総仮定故障数
【００３３】
図２０の例においては、故障信号線nから到達可能な信号線＝｛n，q，r，w，y＊、故障信号線nの0縮退故障の検出に影響する活性化された信号線＝｛n，r，y｝なので、信号線nの0縮退故障の故障活性化率は、3/5×100＝60（%）となる。外部入力に(a,b,c,d)=(0,1,0,1)、(0,1,1,1)の2つのテストパターンを入力した場合、Ｎ回検出の評価では、信号線nの0縮退故障は2回検出としていたが、故障活性化率の評価では、どちらか1つのテストパターンを入力した場合と2つのテストパターンを入力した場合で、信号線nの0縮退故障の故障活性化率は同じになる。
【００３４】
以下、故障活性化率を用いたテストパターン品質評価において、重要な構成である前処理部１７と故障シミュレーション部２１について説明するとともに、動作を説明する。
【００３５】
図３は、図１の前処理部１７の内部構成を示した図である。
【００３６】
前処理部１７は、ネットリストの接続情報などをチェックするデザインルールチェック部２５と、シミュレーション時の計算順序を決定する計算順序決定部２７と、各信号線から到達可能な信号線の集合を求める活性化可能領域作成部２９と、故障リストを作成する故障リスト作成部３１とを備える。これらの内部構成のうち重要な構成は、活性化可能性領域作成部２９と故障リスト作成部３１である。
【００３７】
図４は、図３の活性化可能領域作成部２９の動作を説明するフロー図である。
【００３８】
この処理は、各信号線から回路構造上到達可能な信号線の集合（活性化可能領域）を求める処理である。ステップS2110では、スタックが初期化される。ステップS2120では、全信号線に対してステップS2130からステップS2190までを実行したか否かが判定される。全信号線に対して実行した場合は処理を終了し、実行していない場合はステップS2130へ進む。ステップS2130では、処理をしていない信号線がひとつ選択され、その信号線（元信号線）から回路構造上到達可能な信号線の集合（元信号線活性化可能領域）が初期化される。ステップS2140では、元信号線がスタックに記憶される。ステップS2150では、スタックが空か否かが判定される。スタックが空の場合はステップS2120へ戻り、空でない場合はステップS2160へ進む。ステップS2160では、スタックに記憶されている信号線がひとつ選択される。ステップS2170では、ステップS2160で選択された信号線（選択信号線）が元信号線活性化可能領域に既に登録されているか否かが判定される。既に登録されている場合はステップS2150へ戻り、登録されていない場合はステップS2180へ進む。ステップS2180では、選択信号線が元信号線活性化可能領域に登録される。ステップS2190では、選択信号線の出力信号線がスタックに記憶される。
【００３９】
図２０の場合を用いてさらに具体的に説明する。全信号線に対して活性化可能領域を作成している処理の途中で、次に処理する信号線がnの場合を考える。
【００４０】
ステップS2110において、スタックが初期化される。ステップS2120において、全信号線に対してステップS2130からステップS2190までが実行されていないので、ステップS2130へ進む。ステップS2130において、元信号線nの活性化可能領域が初期化される。ステップS2140において、元信号線nがスタックに記憶される。ステップS2150において、スタックに記憶された信号線nがあるので、スタックが空でないと判定し、ステップS2160へ進む。ステップS2160において、スタックに記憶されている信号線nが選択される。ステップS2170において、選択信号線nは元信号線nの活性化可能領域に登録されていないので、ステップS2180へ進む。ステップS2180において、選択信号線nが元信号線nの活性化可能領域に登録される。ステップS2190において、選択信号線nの出力信号線q,rがスタックに記憶される。ステップS2150において、スタックに記憶された信号線q,rがあるので、スタックが空でないと判定し、ステップS2160へ進む。ステップS2160において、スタックに記憶されている信号線rが選択される。ステップS2170において、選択信号線rは元信号線nの活性化可能領域に登録されていないので、ステップS2180へ進む。ステップS2180において、選択信号線rが元信号線nの活性化可能領域に登録される。ステップS2190において、選択信号線rの出力信号線yがスタックに記憶される。ステップS2150において、スタックに記憶された信号線q,yがあるので、スタックが空でないと判定し、ステップS2160へ進む。ステップS2160において、スタックに記憶されている信号線yが選択される。ステップS2170において、選択信号線yは元信号線nの活性化可能領域に登録されていないので、ステップS2180へ進む。ステップS2180において、選択信号線yが元信号線nの活性化可能領域に登録される。ステップS2190において、選択信号線rの出力信号線はないので処理はしない。上記のような処理をスタックが空になるまで繰り返すことにより、信号線nの活性化可能領域は{n,q,r,w,y}であることがわかる。また、全信号線に対して処理を行うことにより、各信号線の活性化可能領域を作成することができる。
【００４１】
活性化可能領域作成の処理により求まった各信号線の活性化可能領域の情報を元に、故障活性化率用故障リストが作成される。
【００４２】
図５は従来の故障リストの一例と故障活性化率用故障リストの一例を示す図である。図５（Ａ）は従来の故障リストを示し、図５（Ｂ）は故障活性化率用故障リストを示す。
【００４３】
故障シミュレーションやテストパターン生成では、故障リストとよばれる故障に関する情報を更新しながら、処理が行われている。故障検出率や故障検出効率は、この故障リストの情報を元に求めることができる。
【００４４】
図５（Ａ）に示される従来の故障リストでは、故障検出率および故障検出効率を求めるためには、少なくとも故障を仮定する信号線、故障値（または、故障モデル）、検出情報が故障リストに必要である。通常、検出情報の初期状態は、未検出状態であり、故障シミュレーションやテストパターン生成の実行により、故障が検出されると検出状態に、冗長故障であることが判明すると検出不能状態などに更新される。
【００４５】
図５（Ｂ）に示される故障リストは、故障の影響が活性化された信号線を考慮した場合の故障リストの構成例である。故障の影響が活性化された信号線を考慮した場合、従来の故障リストの要素に加えて、活性化可能領域に関する情報が必要である。ここで活性化可能領域とは、故障信号線から到達可能な信号線の集合をさす。活性化可能領域に関する情報としては、活性化可能領域に含まれる信号線とその信号線の活性化情報が必要となる。従来の故障リストを使用した場合、故障シミュレーションやテストパターン生成の処理において、故障が1回検出されれば検出状態とし、その後の処理において、検出された故障に関しては一切考慮しない。一方、故障活性化率用故障リストの場合、故障が検出されれば、活性化可能領域に含まれる信号線のうち、故障の影響が伝搬している信号線の活性化情報を活性化状態に更新し、活性化可能領域に含まれる全信号線の活性化情報が活性化状態になっていれば、検出情報を検出ドロップ状態とし、それ以外は、検出情報を検出状態とする。その後の処理において、各故障の検出情報が検出ドロップ状態であれば、一切考慮しない。
【００４６】
なお、故障リストにおける活性化可能領域の全体数が故障活性化率の分母の値となり、外部出力に関するものの数が故障観測率の分母の値となる。
【００４７】
ところで、図５（Ｂ）では故障観測率の場合も記載しているが（例えば活性化可能領域の信号線のうち外部出力でもあるw,y）、従来の故障観測率が用いられる場合については、下記の問題点があることを付言する。
【００４８】
故障観測率が用いられる場合、図２に示すように故障の影響が伝搬する経路（活性化経路）のことは考慮されていない。通常、ある故障が到達可能なあるひとつの外部出力ピンへの活性化経路は1本とは限らない。図２において、故障fをPO1、PO3で検出できる活性化経路は、それぞれf→A→B→PO1、f→A→C→PO3の1本ずつであるが、PO2で検出できる活性化経路は、f→A→B→PO2、f→A→C→PO2の2本ある。故障fをPO1、PO2、PO3で検出するテストパターンが存在する場合、故障観測率を考慮した評価方法では、活性化経路f→A→B→PO2、f→A→C→PO2のどちらで検出するテストパターンも同じ評価である。しかし、図２において、より多くの信号線を活性化するf→A→B→PO2で検出するテストパターンのほうが、ＬＳＩの欠陥を検出する可能性が高い、つまり、テストパターンの品質が高いと考えられる。
【００４９】
図６は、図１の故障シミュレーション部２１の内部構成を示した図である。
【００５０】
故障シミュレーション部２１は、故障リスト中の故障情報が検出ドロップ状態でない故障（非検出ドロップ故障）を回路中に設定する非検出ドロップ故障設定部３３と、図１のテストパターン読込み部１９で読み込んだテストパターンを用い、シミュレーションを実行するシミュレーション部３５と、シミュレーションの結果から、活性化されている信号線を特定する活性化信号線特定部３７と、シミュレーションにより検出できた故障リストの故障情報および活性化情報を更新する故障リスト更新部３９とを備える。
【００５１】
図７は、図６の故障シミュレーション部２１の動作を説明するためのフロー図である。ここでは、読み込んだネットリストとテストパターンが用いられて故障シミュレーションが実行され、活性化信号線の特定が行われ、故障リストの内容が更新される。
【００５２】
ステップS410では、全テストパターンに対してステップS420からステップS470までが実行されたか否かが判定される。全テストパターンに対して実行された場合は処理を終了し、実行されていない場合はステップS420へ進む。ステップS420では、故障シミュレーションが実行されていないテストパターンが設定される。ステップS430では、全ての非検出ドロップ故障に対してステップS440からステップS470までが実行されたか否かが判定される。全ての非検出ドロップ故障に対して実行された場合はステップ410へ戻り、実行されていない場合はステップS440へ進む。ステップS440では、非検出ドロップ故障設定部３３が非検出ドロップ状態の故障を回路中に設定する。ステップS450では、故障が設定された回路において、シミュレーションが行われる。ステップS460では、ステップS450のシミュレーションを実行した結果から、外部出力ピンでの応答値と回路内部の信号値を元に活性化された信号線が特定される。ステップS470では、ステップS460で求めた活性化された信号線の情報から、故障リストを更新する。
【００５３】
図８は、図７のステップS460の詳細フロー図である。
【００５４】
ステップS4100では、全外部出力に対してステップS4100からS4550までの処理が実行されたか否かが判断される。全外部出力に対して実行された場合は処理を終了し、実行されていない場合はステップS4150へ進む。ステップS4150では、処理が行われていない外部出力がひとつ選択される。ステップS4200では、ステップS4150で選択された外部出力（選択外部出力）まで故障の影響が伝搬している信号線のリスト（選択外部出力活性化信号線リスト）が初期化される。ステップS4250では、選択外部出力に故障の影響が伝搬しているか否かが判断される。故障の影響が伝搬している場合はステップS4300に進み、伝搬していない場合はステップS4100に戻る。ステップS4300では、選択外部出力がスタックに記憶される。ステップS4350では、スタックが空か否かが判断される。空の場合にはステップS4100に戻り、空ではない場合にはステップS4400に進む。ステップS4400では、スタックの信号線がひとつ選択される。ステップS4450では、ステップS4400で選択された信号線（選択信号線）が選択外部出力活性化信号線リストに既に登録されているか否かが判断される。登録されている場合にはステップS4350に戻り、未登録の場合にはステップS4500に進む。ステップS4500では選択外部出力活性化信号線リストに選択信号線が登録され、ステップS4550では選択信号線の入力信号線で故障の影響が伝搬している信号線がスタックに記憶される。ステップS4550の次の処理はステップS4350である。
【００５５】
なお、図５に示した故障リストがシミュレーションの結果、図９のようにして得られ、故障リストの活性化情報から故障活性化率の分子の値が求まり、また活性化情報の外部出力だけに着目すれば故障観測率の分子の値も求まる。
【００５６】
＜第２の実施の形態＞
図１０は、本発明の実施形態に係るテストパターン生成装置の概略を示すブロック図である。
【００５７】
テストパターン生成装置５１は、テストパターン生成処理とそれに関連する処理とを行う処理部５３と、ネットリストおよび生成されたテストパターンなどのデータを格納するデータ記憶部５５と、テストパターン生成処理に必要な情報を格納するメモリ部５７と、入力装置９と、出力装置１１と、入力装置９及び出力装置１１の制御を行う入出力制御部１３とを有している。
【００５８】
処理部５３は、テストパターン生成の対象となる回路情報を読み込むネットリスト読込み部５９と、テストパターン生成に必要な情報を回路情報から集める前処理部６１と、仮定した故障に対してテストパターン生成を実行するテストパターン生成部６３と、生成されたテストパターンで故障シミュレーションを実行する故障シミュレーション部６５と、生成されたテストパターンを出力するテストパターン出力部６７とを備える。
【００５９】
図１１は、図１０の前処理部６１の内部構成を示した図である。
【００６０】
前処理部６１は、ネットリストの接続情報などをチェックするデザインルールチェック部６９と、シミュレーション時の計算順序を決定する計算順序決定部７１と、可制御性・可観測性の計算を行うテスタビリティメジャ計算部７３と、テストパターン生成時の高速化のための情報を作成する静的学習部７５と、各信号線から到達可能な信号線の集合を求める活性化可能領域作成部７７と、故障リストを作成する故障リスト作成部７９とを備える。
【００６１】
図１２は、図１０のテストパターン生成部６３の内部構成を示した図である。
【００６２】
テストパターン生成部６３は、それまで生成されたテストパターンでは故障情報が検出ドロップ状態でない故障（非検出ドロップ故障）を故障リストから選択する非検出ドロップ故障選択部８１と、非検出ドロップ故障選択部８１により選択された非検出ドロップ故障（選択非検出ドロップ故障）に対して、テストパターンを生成する選択非検出ドロップ故障テストパターン生成部８３とを有している。
【００６３】
なお、図１０の故障シミュレーション部６５は、図６の故障シミュレーション部２１と同様の構成をしている。
【００６４】
図１３は、図１０のテストパターン生成装置５１の動作を説明するための図であってテストパターン生成の全体フロー図である。
【００６５】
ステップS10では、回路の接続情報が記述されているネットリストが読み込まれる。ステップS20では、故障シミュレーションに必要な情報などを収集する前処理が行われる。このステップでは、ネットリストの接続情報などをチェックするデザインルールチェック処理、シミュレーション時の計算順序を決定する計算順序決定処理、可制御性・可観測性の計算を行うテスタビリティメジャ計算処理、テストパターン生成時の高速化のための情報を作成する静的学習処理、図４で説明した各信号線から到達可能な信号線の集合を求める活性化可能領域作成処理、図５で説明した故障活性化率用故障リストを作成する故障リスト作成処理などが行われる。ステップS30では、仮定した故障に対して、テストパターン生成が行われる。ステップS40では、ステップS30において生成されたテストパターンが出力される。
【００６６】
図１４は、図１３のステップS30の詳細フロー図である。
【００６７】
ステップS310では、テストパターン生成が終了する条件を満たしているか否かが判定される。条件を満たしている場合は終了し、満たしていない場合はステップS320へ進む。テストパターン生成の終了条件としては、冗長故障などの検出不能故障を除く全仮定故障を検出し、かつ指定された故障活性化率を満たすテストパターンが生成された場合、または、故障検出効率、故障活性化率、テストパターン長、テストパターン生成処理時間などの制約により処理が打ち切られる場合がある。ステップS320では、非検出ドロップ故障が故障リストから選択される。ステップS330では、ステップS320において選択された非検出ドロップ故障に対して、テストパターン生成が行われる。このステップ内の処理は、様々な手法のテストパターン生成アルゴリズムが提案されているが、どのようなテストパターンのアルゴリズムにも特に手を加える必要がない。ステップS340では、ステップS330において生成されたテストパターンが用いられ、故障シミュレーションが実行される。ここで、ステップS330において生成されたテストパターンは、ステップS320において選択された非検出ドロップ故障に対して生成されたテストパターンである。しかし、そのテストパターンで他の非検出ドロップ故障も検出する可能性がある。そこで、ステップS330において生成されたテストパターンを用いて故障シミュレーションが実行され、非検出ドロップ故障がある外部出力において検出された場合、活性化された信号線が特定され、故障リストの故障情報および活性化情報が更新される。
【００６８】
＜第３の実施の形態＞
図１５は、図１２のテストパターン生成部６３と異なるテストパターン生成部８５を示す図である。
【００６９】
テストパターン生成部８５は、それまで生成されたテストパターンでは故障情報が検出ドロップ状態でない故障（非検出ドロップ故障）を故障リストから選択する非検出ドロップ故障選択部８７と、非検出ドロップ故障選択部８７により選択された非検出ドロップ故障（選択非検出ドロップ故障）が未検出である外部出力ピンを選択する選択非検出ドロップ故障未検出外部出力ピン選択部８９と、選択非検出ドロップ故障未検出外部出力ピン選択部８９により選択された外部出力ピンに回路構造上到達可能な信号線の集合を求める未検出外部出力ピン到達可能領域作成部９１と、選択非検出ドロップ故障に対して、未検出外部出力ピン到達可能領域作成部９１で作成された領域内でテストパターンを生成する選択非検出ドロップ故障テストパターン生成部９３とを有している。
【００７０】
図１６は、図１５のテストパターン生成部８５の動作を説明するフロー図である。
【００７１】
ステップS510、S520、S550、S560の処理は、図１４のステップS310、S320、S330、S340と同様であり、説明を省略する。ステップS530では、ステップS520で選択された非検出ドロップ故障に対して、未検出外部出力ピン選択が行われる。この処理を具体的に説明する。図１７に示すように、信号線nの0縮退故障を外部出力ピンyで検出するテストパターンが既に生成されているとする。その場合、信号線nの到達可能な外部出力ピンは、まだ信号線nの0縮退故障が検出されていない外部出力ピンwが選択される。次に、ステップS540では、ステップS530で選択された外部出力ピンに回路構造上到達可能な信号線の集合（選択未検出外部出力ピン到達可能領域）が作成される。そして、ステップS550においてテストパターン生成が行われる。ただし、この処理において、図１４に示す通常のテストパターン生成では回路全体に対してテストパターン生成が行われるのに対し、ここではステップS540で求めた選択未検出外部出力ピン到達領域に対してのみテストパターン生成が行われる。なお、様々な手法のテストパターン生成アルゴリズムが提案されているが、どのようなテストパターンのアルゴリズムにも特に手を加える必要がない。
【００７２】
図１８は、図１６のステップS540の未検出外部出力ピン到達可能領域作成内部フローである。
【００７３】
ステップS3710では、全信号線のフラグがOFF状態となる。ステップS3720では、図１６のステップS530で選択された外部出力（未検出外部出力）がスタックに記憶される。ステップS3730では、スタックが空か否かが判定される。スタックが空の場合は終了し、空でない場合はステップS3740へ進む。ステップS3740では、スタックに記憶されている信号線がひとつ選択される。ステップS3750では、ステップS3740で選択された信号線（選択信号線）のフラグがON状態にされる。ステップS3760では、選択信号線の入力信号線がスタックに記憶される。この処理により、フラグがON状態になっている信号線の集合が未検出外部出力ピン到達可能領域となり、図１６のステップS550のテストパターン生成時にその領域のみを対象として、テストパターンを生成する。また、この処理は、図１３のステップS20の前処理に移行することも可能である。その場合は、全ての外部出力ピンについて、この処理を行い、メモリ部に全外部出力ピンに対する到達可能領域の情報を記憶する必要がある。
【００７４】
以下、図１９の回路を例にさらに具体的に説明する。
【００７５】
未検出外部出力がwの場合を考える。ステップS3710において、全信号線のフラグがOFF状態とされる。ステップS3720において、未検出外部出力信号線wがスタックに記憶される。ステップS3730において、スタックに記憶した信号線wがあるので、スタックが空でないと判定し、ステップS3740へ進む。ステップS3740において、スタックに記憶されている信号線wが選択される。ステップS3750において、選択信号線wのフラグがON状態にされる。ステップS3760において、選択信号線wの入力信号線q,s,uがスタックに記憶される。ステップS3730において、スタックに記憶した信号線q,s,uがあるので、スタックが空でないと判定し、ステップS3740へ進む。ステップS3740において、スタックに記憶されている信号線uが選択される。ステップS3750において、選択信号線uのフラグがON状態にされる。ステップS3760において、選択信号線uの入力信号線pがスタックに記憶される。上記のような処理を繰り返すことにより、未検出外部出力wに対する到達可能領域は、{a,b,c,d,e,h,k,n,o,p,q,s,u,w}であることがわかる。この領域のみを対象にテストパターン生成を行うことにより、外部出力ピンwで故障の影響を検出するテストパターンを生成することができる。
【００７６】
以上のように、図１５のテストパターン生成部８５が図１６及び図１８に示すように処理を実行することにより、故障観測率を最大化するテストパターン生成が実行できる。しかし、ある故障が到達可能な全外部出力ピンにおいて、その故障が検出されるようテストパターンを生成するが、図２に示すように故障の影響が伝搬する経路（活性化経路）のことは考慮されていない。通常、ある故障が到達可能なあるひとつの外部出力ピンへの活性化経路は1本とは限らない。図２において、故障fをPO1、PO3で検出できる活性化経路は、それぞれf→A→B→PO1、f→A→C→PO3の1本ずつであるが、PO2で検出できる活性化経路は、f→A→B→PO2、f→A→C→PO2の2本ある。故障観測率を最大化にするテストパターン生成法では、故障fをPO1、PO3で検出する活性化経路は、一意に決定するが、PO2で検出する活性化経路は、f→A→B→PO2、f→A→C→PO2のどちらが選択されるかは、テストパターン生成のアルゴリズムに依存する。しかし、図２において、故障fをPO2で検出する活性化経路は、より多くの経路を活性化するf→A→B→PO2を選択するほうが、ＬＳＩの欠陥を検出する可能性が高いと考える。
【００７７】
このような観点からすれば、上記した故障観測率を最大化する処理の＜第３の実施の形態＞に比べて、好ましくは故障観測率を最大化した＜第３の実施の形態＞に活性化信号線を考慮した故障活性化率利用によるテストパターン生成が、テスト品質を向上させることになる。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態に係わる故障シミュレーション装置の概略を示すブロック図である。
【図２】故障観測率と故障活性化率との関係を説明するための図である。
【図３】図１の前処理部１７の内部構成を示した図である。
【図４】図３の活性化可能領域作成部２９の動作を説明するフロー図である。
【図５】従来の故障リストの一例と故障活性化率用故障リストの一例を示す図である。
【図６】図１の故障シミュレーション部２１の内部構成を示した図である。
【図７】図６の故障シミュレーション部２１の動作を説明するためのフロー図である。
【図８】図７のステップS460の詳細フロー図である。
【図９】図５の故障リストに対してシミュレーションの結果を反映させた状態を示す図である。
【図１０】本発明の実施形態に係るテストパターン生成装置の概略を示すブロック図である。
【図１１】図１０の前処理部６１の内部構成を示した図である。
【図１２】図１０のテストパターン生成部６３の内部構成を示した図である。
【図１３】図１０のテストパターン生成装置５１の動作を説明するための図であってテストパターン生成の全体フロー図である。
【図１４】図１３のステップS30の詳細フロー図である。
【図１５】図１２のテストパターン生成部６３と異なるテストパターン生成部８５を示す図である。
【図１６】図１５のテストパターン生成部８５の動作を説明するフロー図である。
【図１７】未検出外部出力ピンの選択を説明するための図である。
【図１８】図１６のステップS540の未検出外部出力ピン到達可能領域作成内部フローである。
【図１９】未検出外部出力ピン到達可能領域の一例を示す図である。
【図２０】故障検出の一例を説明するための論理回路図である。
【符号の説明】
【００７９】
１７        前処理部
２１        故障シミュレーション部
【図１】
2006201090.tif 000003
【図２】
2006201090.tif 000004
【図３】
2006201090.tif 000005
【図４】
2006201090.tif 000006
【図５】
2006201090.tif 000007
【図６】
2006201090.tif 000008
【図７】
2006201090.tif 000009
【図８】
2006201090.tif 000010
【図９】
2006201090.tif 000011
【図１０】
2006201090.tif 000012
【図１１】
2006201090.tif 000013
【図１２】
2006201090.tif 000014
【図１３】
2006201090.tif 000015
【図１４】
2006201090.tif 000016
【図１５】
2006201090.tif 000017
【図１６】
2006201090.tif 000018
【図１７】
2006201090.tif 000019
【図１８】
2006201090.tif 000020
【図１９】
2006201090.tif 000021
【図２０】
2006201090.tif 000022