(57)【特許請求の範囲】
【請求項１】
集積回路中に組み込まれて試験パターンを発生するパターン発生器と、
該集積回路内部の順序回路素子で形成した複数のシフトレジスタと、
該パターン発生器によって発生された試験パターンを外部入力により修正してから該複数のシフトレジスタに入力するパターン修正器と、
ＡＴＰＧパターンを生成し前記外部入力として該パターン修正器に与える自動テストパターン生成部とをそなえて構成され、
該パターン発生器が、前記試験パターンとして疑似ランダムパターンを発生するとともに、
該パターン修正器が、該自動テストパターン生成部から与えられた該ＡＴＰＧパターンに基づいて、該疑似ランダムパターンを修正することを特徴とする、集積回路の試験装置。
【請求項２】
集積回路中に組み込まれて試験パターンを発生するパターン発生器と、
該集積回路内部の順序回路素子で形成した複数のシフトレジスタと、
該パターン発生器によって発生された試験パターンを外部入力により修正してから該複数のシフトレジスタに入力するパターン修正器と、
該複数のシフトレジスタからの出力中の不定値をマスクする不定マスク器と、
該不定マスク器によってマスクされた出力結果を検証する出力検証器と、
ＡＴＰＧパターンを生成し前記外部入力として該パターン修正器に与える自動テストパターン生成部とをそなえて構成され、
該パターン発生器が、前記試験パターンとして疑似ランダムパターンを発生するとともに、
該パターン修正器が、該自動テストパターン生成部から与えられた該ＡＴＰＧパターンに基づいて、該疑似ランダムパターンを修正することを特徴とする、集積回路の試験装置。
【請求項３】
該出力検証器に、前記マスクされた出力結果を圧縮する圧縮手段をそなえたことを特徴とする、請求項２記載の集積回路の試験装置。
【請求項４】
集積回路中に組み込まれたパターン発生器で試験パターンを発生し、
発生された該試験パターンを、パターン修正器において外部入力により修正してから、
修正された該試験パターンを、該集積回路内部の順序回路素子で形成した複数のシフトレジスタに入力する集積回路の試験方法であって、
自動テストパターン生成部によってＡＴＰＧパターンを生成し前記外部入力として該パターン修正器に与え、
該パターン発生器が、前記試験パターンとして疑似ランダムパターンを発生するとともに、
該パターン修正器が、該自動テストパターン生成部から与えられた該ＡＴＰＧパターンに基づいて、該疑似ランダムパターンを修正することを特徴とする、集積回路の試験方法。
【請求項５】
該パターン修正器が、該パターン発生器によって発生された複数の疑似ランダムパターン、および、前記外部入力としての複数のＡＴＰＧパターンから、該疑似ランダムパターンと該ＡＴＰＧパターンとの適当な組合せを選択し、選択された該ＡＴＰＧパターンに基づいて、選択された該疑似ランダムパターンを修正することを特徴とする、請求項１〜請求項３のいずれか一項に記載の集積回路の試験装置。
【請求項６】
該自動テストパターン生成部が、該パターン発生器によって発生された該疑似ランダムパターンを参照し、当該疑似ランダムパターンに応じた適当な対象故障を選択し、該対象故障を検出しうるＡＴＰＧパターンを、当該疑似ランダムパターンの修正基準として生成することを特徴とする、請求項１〜請求項３のいずれか一項に記載の集積回路の試験装置。
【請求項７】
該パターン発生器によって発生される該疑似ランダムパターンと前記外部入力としての該ＡＴＰＧパターンとを比較し、該ＡＴＰＧパターンに近い疑似ランダムパターンを該パターン発生器に発生させうる、該パターン発生器のシード値、または、該パターン発生器を成すリニアフィードバックシフトレジスタにおけるフィードバック位置を特性情報として決定する特性情報決定部をさらにそなえ、
該パターン発生器が、該特性情報決定部により決定された該特性情報に基づいて、該疑似ランダムパターンを発生することを特徴とする、請求項１〜請求項３のいずれか一項に記載の集積回路の試験装置。
【請求項８】
該自動テストパターン生成部が該ＡＴＰＧパターンに対する圧縮処理を実行する場合に前記圧縮処理の実行制限条件を設定する実行制限条件設定部をさらにそなえ、
該自動テストパターン生成部が、該実行制限条件設定部によって設定された前記実行制限条件を満たした時点で該ＡＴＰＧパターンに対する圧縮処理を終了させることを特徴とする、請求項１〜請求項３のいずれか一項に記載の集積回路の試験装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩ（Large Scale Integration）等の集積回路の製造不良を検出するための試験装置および試験方法に関するものである。
【０００２】
【従来の技術】
集積回路、例えばＬＳＩの製造不良の検出は、テスタを用いてＬＳＩの入力ピンに適当な信号値を印加し、その出力ピンに現れる信号値を期待される結果と比較することで行なわれる。入力ピンに印加される信号値と出力ピンに現れるべき期待値とを合わせてテストパターン（試験パターン）と呼ぶ。
【０００３】
ＬＳＩの製造不良によりＬＳＩの内部に生じる欠陥は故障と呼ばれ、ＬＳＩ内部で起こりうる全ての故障について検証を行なうためには、多くのテストパターンが必要となる。また、ＬＳＩ内部に仮定される全故障数に対する、あるテストパターンによって検証できる故障の数の割合は、診断率（または検出率）と呼ばれ、テストパターンの質を問題にするときの尺度として使われている。ＬＳＩが順序回路素子〔フリップフロップ（Ｆ／Ｆ），ラッチおよびＲＡＭ〕を含む場合、テストパターン作成の複雑さは飛躍的に増大する。
【０００４】
そこで、ＬＳＩでは、スキャン設計が一般的に行なわれている。スキャン設計を施されたＬＳＩでは、ＬＳＩ内部の順序回路素子（主にＦ／Ｆ）を用いてシフトレジスタ〔スキャンパス（Scan Path）と呼ばれる〕が形成され、試験時にそのシフトレジスタに所望の値がシフトインされ、クロック印加後にシフトレジスタの値が外部に読み出される。
【０００５】
このような回路において、ディターミニスティックストアードパターンテスト〔以下、ＤＳＰＴ（Deterministic Stored Pattern Test）という〕が広く採用されている。このＤＳＰＴは、自動テストパターン発生器〔以下、ＡＴＰＧ（Automatic Test Pattern Generator）という〕で作成したテストパターンをテスタ（ＡＴＥ；Automatic Test Equipment）に格納して行なわれる。
【０００６】
図２１は従来のスキャン設計を説明するための図で、この図２１では、スキャン設計の概念がブロック図として示されている。この図２１に示すように、スキャン設計を施されたＬＳＩでは、このＬＳＩをテストするための道筋である複数本のスキャンパス（シフトレジスタ）＃０，＃１，…，＃ｎ−１が形成されている。各スキャンパス＃ｉ（ｉ＝０，１，…，ｎ−１）は、それぞれ記憶素子である複数個のＦ／Ｆを用いて形成されている。そして、各スキャンパス＃ｉの一端側（図２１の左側）からテストパターンがシフトインされ、他端側（図２１の右側）からテスト結果が出力される。
【０００７】
しかし、近年、ＬＳＩの集積度の増大に伴い、内部に含まれる順序回路素子の数が極めて増大してきているため、上述のようなＤＳＰＴにより、スキャンパスを構成する全ての順序回路素子において、テストパターン毎に設定と読出とを繰り返し実行すると、試験時間が増大するだけでなく、テストデータの増大によるテスタのメモリ容量が逼迫するなどの問題が生じている。
【０００８】
なお、ＡＴＰＧのテストパターン発生においては、テストデータ量の削減を目的として、ダイナミックコンパクション（dynamic compaction）と呼ばれる圧縮手法が一般的に用いられている。
このダイナミックコンパクションとは、以下のような、テストデータの圧縮処理のことをいう。つまり、ＡＴＰＧにより生成されたテストパターンによりターゲットの一次故障（primary fault）のテストに成功した場合、その一次故障を検出するために設定されたネット状態（net state）条件で、残存する未検出故障の集合から１つの二次故障（secondary fault）を選択し、まだ不定値であるテストポイントに新たに値を設定することにより上記二次故障に対するテストパターン生成を実行し、以下同様の処理を、他の二次故障が未検出故障の集合から選択されなくなるまで繰り返し実行する。なお、他の二次故障の選択に際し、同一故障を重複して選択することはないものとする。ダイナミックコンパクションとは、上述のようにしてテスト単位で検出される故障の数を増加させることにより、テストデータを減少させるものである。
【０００９】
しかし、ダイナミックコンパクションによりテストデータの圧縮を行なったとしても、近年のＬＳＩの集積度の増大に伴なう順序回路素子の増加の仕方は極めて大きく。上述のような、試験時間の増大や、テスタのメモリ容量の逼迫といった問題を解消することは難しい。
【００１０】
このような問題を解決するために、組込み自己試験〔以下、ＢＩＳＴ（Built In Self Test）という〕が行なわれるようになってきている。ＢＩＳＴでは、疑似ランダムパターン発生器で発生されたパターンがＬＳＩの内部回路に印加され、その内部回路からの出力結果が出力検証器で検証・格納される。疑似ランダムパターン発生器および出力検証器としては、リニアフィードバックシフトレジスタ（以下、ＬＦＳＲという）が使用されることが多く、特に、出力検証器は、出力結果をシグネチャとして圧縮格納するため、マルチインプットシグネチャレジスタ（以下、ＭＩＳＲという）と呼ばれる。
【００１１】
図２２は従来のＢＩＳＴ回路を説明するための図で、この図２２では、ＢＩＳＴ回路の概念がブロック図として示されている。この図２２に示すように、ＢＩＳＴ回路を有するＬＳＩには、上述したスキャンパス＃０，＃１，…，＃ｎ−１がそなえられるほか、ＬＦＳＲ２，フェイズシフタ３，スペースコンパクタ６およびＭＩＳＲ７が組み込まれている。
【００１２】
そして、ＬＦＳＲ２で発生された疑似ランダムパターンは、フェイズシフタ３を通して各スキャンパス＃ｉの先頭Ｆ／Ｆに入力され、各スキャンパス＃ｉからの出力結果が、スペースコンパクタ６によりＭＩＳＲ７のビット数（例えば３２ビット）程度に圧縮されてから、さらにそれらがＭＩＳＲ７により圧縮格納される。
【００１３】
このように、ＢＩＳＴでは、ＬＦＳＲ（疑似ランダムパターン発生器）２がＬＳＩ内部に搭載されているため、極めて多数のテストパターンを短時間で発生することができる。また、ＭＩＳＲ７により試験結果を圧縮して格納するため、テスタにロードするデータ量を圧倒的に削減することができる。
【００１４】
【発明が解決しようとする課題】
現在、ＬＳＩの試験には、スキャン設計に基づくＤＳＰＴと、テスト回路を組み込んだＢＩＳＴとのうちの一方が用いられている。
ＤＳＰＴは、ＡＴＰＧの作り出すテストパターンを利用するために非常に質（診断率）の高い試験が可能であり、テストパターンの追加を容易に行なうことができる。しかし、大規模なＬＳＩに対してはテストパターン数が非常に多くなるため、ＡＴＰＧが作り出すテストパターンをテスタのメモリ上に全て格納することが困難になると同時に、テスタでの試験時間が増大してきている。従って、ＤＳＰＴを実施するには非常に高価なテスタが必要となるという課題があった。
【００１５】
ＢＩＳＴは、上記ＤＳＰＴの問題点を改善することはできるが、いくつかの欠点も有している。ＢＩＳＴでは、疑似ランダムパターンが用いられるため、試験の質に問題がある。故障の検出率を高めるためには、追加テストとしてＤＳＰＴを適用するか、制御性と観測性とを増すようなテストポイントを内部回路に挿入する必要があった。また、ＢＩＳＴでは、データ圧縮にＭＩＳＲが用いられるが、その構成上、一度でも不定状態を取り込むとＭＩＳＲ内の全てのレジスタが不定状態となって、試験不能になってしまうという課題もあった。
【００１６】
一般に、ＬＳＩ内部の、ＲＡＭを含む順序回路素子は、電源投入時には不定状態であるため、これらの順序回路素子を初期化するパターンを予め印加するか、不定状態がＭＩＳＲに伝播しないように回路を工夫する必要があった。この他にも、バス設計時にランダムパターンによりコンフリクトやフロート状態が起きないようにするなど、ＢＩＳＴを実回路に適用するには厳しい設計制約を設計者に強いることになる。これに加え、ＢＩＳＴ回路とテストポイントとの挿入により回路のエリアオーバヘッドも問題となっていた。
【００１７】
本発明は、このような課題に鑑み創案されたもので、上述のようなＤＳＰＴおよびＢＩＳＴの問題点を解決し、これら２種類のテストの利点を生かし高品質なテストを短時間で実行できるようにした、集積回路の試験装置および試験方法を提供することを目的とする。また、その際、設計者に厳しい設計規約を課すことなく、且つ、高価なテスタを必要とすることなく、高品質なテストを行なえるようにした、集積回路の試験装置および試験方法を提供することも目的とする。
【００１８】
【課題を解決するための手段】
図１は本発明の原理ブロック図であり、この図１において、２ａはパターン発生器、４はパターン修正器、５は不定マスク器、７ａは出力検証器、＃０〜＃ｎ−１はシフトレジスタ（スキャンパス）である。
上記目的を達成すべく、本発明は、以下のように構成される。
【００１９】
（１）本発明の集積回路の試験装置は、集積回路中に組み込まれて試験パターンを発生するパターン発生器２ａと、集積回路内部の順序回路素子で形成した複数のシフトレジスタ＃０〜＃ｎ−１と、パターン発生器２ａによって発生された試験パターンを外部入力により修正してから複数のシフトレジスタ＃０〜＃ｎ−１に入力するパターン修正器４とをそなえて構成されている。これにより、シフトレジスタ＃０〜＃ｎ−１であるスキャンパス数を増やしスキャンパス段数を少なくすることで、集積回路（ＬＳＩ等）の試験時間を短縮することができ、その際に意味あるデータ部分（設定が必要なＦ／Ｆの情報等）のみをテスタ（外部入力）から供給して修正するので、テスタに格納されるデータの量を削減することができる。
【００２０】
（２）本発明の集積回路の試験装置は、試験パターンを入力される集積回路内部の順序回路素子で形成した複数のシフトレジスタ＃０〜＃ｎ−１と、これらのシフトレジスタ＃０〜＃ｎ−１からの出力中の不定値をマスクすることにより不定状態を規定の状態に変換する不定マスク器５と、この不定マスク器５によってマスクされた出力結果を検証する出力検証器７ａとをそなえて構成されている。これにより、順序回路素子（内部Ｆ／Ｆ）の結果を圧縮して外部に読み出しても、不定状態（Ｘ状態）が圧縮結果を台無しにしてしまうことがなくなる。
【００２１】
（３）本発明の集積回路の試験装置は、上述したパターン発生器２ａ，複数のシフトレジスタ＃０〜＃ｎ−１，パターン修正器４，不定マスク器５および出力検証器７ａをそなえて構成されている。これにより、スキャンパス数を増やし集積回路（ＬＳＩ等）の試験時間を短縮することができ、意味あるデータ部分のみをテスタ（外部入力）から供給して修正するので、テスタに格納されるデータの削減ができるとともに、内部Ｆ／Ｆの結果を圧縮して外部に読み出しても、不定状態が圧縮結果を台無しにしてしまうことがなくなる。
【００２２】
（４）前記（２）または（３）に記載された集積回路の試験装置において、前記出力検証器７ａに前記マスクした出力結果を圧縮する圧縮手段をそなえてもよい。これにより、内部Ｆ／Ｆの結果を出力検証器７ａに効率よく格納することができる。
【００２３】
（５）前記（１）または（３）に記載された集積回路の試験装置において、ＡＴＰＧパターンを生成し前記外部入力としてパターン修正器４に与える自動テストパターン生成部（図１では図示省略）をさらにそなえ、パターン発生器２ａが、前記試験パターンとして疑似ランダムパターンを発生するとともに、パターン修正器４が、前記自動テストパターン生成部から与えられたＡＴＰＧパターンに基づいて、疑似ランダムパターンを修正してもよい。これにより、ＤＳＰＴおよびＢＩＳＴの問題点を解決し、両者の利点を生かした高品質なテストを短時間で可能とする試験パターンが生成される。
【００２４】
（６）前記（５）に記載された集積回路の試験装置において、パターン修正器４が、パターン発生器２ａによって発生された複数の疑似ランダムパターン、および、前記外部入力としての複数のＡＴＰＧパターンから、疑似ランダムパターンとＡＴＰＧパターンとの適当な組合せを選択し、選択されたＡＴＰＧパターンに基づいて、選択された疑似ランダムパターンを修正してもよい。これにより、パターン修正器４によるパターン修正量を削減して、効率よくパターンの修正を行なうことができる。
【００２５】
（７）前記（５）に記載された集積回路の試験装置において、前記自動テストパターン生成部が、パターン発生器２ａによって発生された疑似ランダムパターンを参照し、当該疑似ランダムパターンに応じた適当な対象故障を選択し、その対象故障を検出しうるＡＴＰＧパターンを、当該疑似ランダムパターンの修正基準として生成してもよい。これにより、パターン修正器４によるパターン修正量を削減して、効率よくパターンの修正を行なうことができる。
【００２６】
（８）前記（５）に記載された集積回路の試験装置において、パターン発生器２ａによって発生される疑似ランダムパターンと前記外部入力としてのＡＴＰＧパターンとを比較し、ＡＴＰＧパターンに近い疑似ランダムパターンをパターン発生器２ａに発生させうる、パターン発生器２ａのシード値、または、パターン発生器２ａを成すリニアフィードバックシフトレジスタにおけるフィードバック位置を特性情報として決定する特性情報決定部（図１では図示省略）をさらにそなえ、パターン発生器２ａが、前記特性情報決定部により決定された特性情報に基づいて、疑似ランダムパターンを発生してもよい。これにより、パターン修正器４によるパターン修正量を削減して、効率よくパターンの修正を行なうことができる。
【００２７】
（９）前記（５）に記載された集積回路の試験装置において、前記自動テストパターン生成部がＡＴＰＧパターンに対する圧縮処理を実行する場合に前記圧縮処理の実行制限条件を設定する実行制限条件設定部（図１では図示省略）をさらにそなえ、前記自動テストパターン生成部が、前記実行制限条件設定部によって設定された前記実行制限条件を満たした時点でＡＴＰＧパターンに対する圧縮処理を終了させてもよい。これにより、ＡＴＰＧパターンにおける要求値（不定値以外の値）の数を抑制することができ、パターン修正器４によるパターン修正量を削減して、効率よくパターンの修正を行なうことができる。
【００２８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
ＬＳＩ等の集積回路に対してより高品質なテストを行なうためには、ＢＩＳＴのごとく、疑似ランダムパターンを用いる手法では限界がある。即ち、ランダムパターンでは検出し難い故障が存在するため、回路の制御性と観測性を改善するためのテストポイントを挿入し、かつ非常に多数のランダムパターンを発生しなければならない。それでも、ＡＴＰＧが発生するディターミニスティックパターンと同じ品質を実現することは不可能である。
【００２９】
一方、ＡＴＰＧによりパターンを発生する場合、基本的には内部回路の１ヶ所の故障を想定し、それを検出するパターンを作成している。このように作成されたパターンを、ＡＴＰＧパターンと呼ぶことにする。このＡＴＰＧパターンは、全ての内部Ｆ／Ｆの設定値と、システムクロック印加後の全てのＦ／Ｆの状態値とで構成される。
【００３０】
図２はＡＴＰＧの設定Ｆ／Ｆ数の分布状態を説明するための図である。この図２において、横軸は、内部回路の故障を検出するＡＴＰＧパターンの数（Pattern #）を表わし、縦軸は、該当故障を検出するために値を設定されるべきＦ／Ｆ（設定Ｆ／Ｆ）の数（Assigned F/F #）を表わしている。ＡＴＰＧは、基本的には一つのパターンで１ヶ所の故障を検出するようにパターンを作成するが、それでは、値を設定されるＦ／Ｆの数が極めて少ない。そこで、１つのＡＴＰＧパターンで数箇所の故障を検出するようにパターンを圧縮すること（前述したダイナミックコンパクション）が主流になっている。図２に示すデータもパターンを圧縮した結果であり、設定Ｆ／Ｆの数が千を超えるようなＡＴＰＧパターンは、複数箇所の故障を検出するように作成・設定されている。なお、図２において、ＡＴＰＧパターンは、設定Ｆ／Ｆ数の多い順にソーティングされている。
【００３１】
通常、ＤＳＰＴでは、
〔ＡＴＰＧパターン数〕×〔全Ｆ／Ｆ数〕
のデータをテスタから試験対象ＬＳＩに供給する必要がある。これは、図２の矩形全体の領域（２１２８１×２７５５）のデータに相当する。これに対し、ＡＴＰＧが設定した意味のあるデータ量は、図２における斜線領域のみである。例えば、１番目のＡＴＰＧパターンでは１２７２個のＦ／Ｆにデータを設定する必要があり、１０００番目のＡＴＰＧパターンでは５０個程度のＦ／Ｆにデータを設定する必要がある。このように、該当故障を検出するためにＡＴＰＧが値を設定する必要のある順序回路素子（Ｆ／Ｆ）の数は、全Ｆ／Ｆの数（２１２８１）と比べるとほんの僅かであることがわかる。
【００３２】
本発明では、ＡＴＰＧによって設定された意味あるデータ部分のみをテスタから供給し、試験対象ＬＳＩに、ディターミニスティックパターンを印加することができる。
スキャン設計を施されたＬＳＩの場合、ＬＳＩ内部のＦ／Ｆが、並列にシフト動作可能な複数のスキャンパスに振り分けられており、１つのＡＴＰＧパターンは、複数のシフトパターンに分割され、テスタから各スキャンパスに印加・入力され、これにより試験時間が短縮される。このとき、スキャン設計を施されたＬＳＩでの試験時間は、
〔ＡＴＰＧパターン数〕×〔スキャンパス段数〕×〔試験サイクル〕
となる。この場合、上式のスキャンパス段数は、最もＦ／Ｆを多く振り分けられたスキャンパスのＦ／Ｆ数となる。また、試験サイクルは、テスタがＬＳＩに供給するクロックサイクルであり、これはテスタの性能に依存する。
【００３３】
ＢＩＳＴでは、内部のパターン発生器を高速で動作させることが可能であるため、クロックサイクル（試験サイクル）を短くすることにより試験時間を短縮できる。さらに、ＢＩＳＴでは、パターン発生器の出力ピン数を増やすことによって容易にスキャンパス数を増やすことも可能であり、結果としてスキャンパス段数を少なくして試験時間を短縮することができる。
【００３４】
これに対し、ＤＳＰＴでは、スキャンパス毎に入力ピンと出力ピンを設け、テスタと接続する必要がある。これらの入出力ピンの数はテスタの性能に依存するため、スキャンパスをテスタ制約以上には増やすことはできなかった。
本発明では、ＢＩＳＴと同様にスキャンパス数を増やしスキャンパス段数を少なくすることにより、ＬＳＩの試験時間を短縮している。その際、テスタから与えるデータを工夫（例えばデコーダ回路等を用いてチェーン情報を圧縮）し、テスタ制約内の少数のピンを用いて意味あるデータ部分（値の設定が必要なＦ／Ｆの情報）のみをテスタから供給している。
【００３５】
また、本発明では、ＤＳＰＴの問題点であるテスト時間の増大や、テスタのメモリ容量の増大をＢＩＳＴにより解決する一方、ＢＩＳＴの問題点である検出率を改善する手法として、擬似ランダムパターンをＡＴＰＧパターンで補完して用いる手法を採用している。
【００３６】
上述したようにＡＴＰＧが値を設定すべきＦ／Ｆの数は僅かであるが、実際にテスタからパターンを供給する際には残りのＦ／Ｆ部分にはランダムパターンが設定される。これは、そのパターンによって該当故障以外の故障も付随的に検証することを期待したものである。本発明でも同様のことを行なうために、テスタから設定情報が供給されるＦ／Ｆ以外の大部分のＦ／Ｆに対し、ＢＩＳＴと同様の回路を用いてランダムパターンが供給される。
【００３７】
ＬＳＩ試験では、テスタからスキャンパスを介して内部Ｆ／Ｆに値を設定し、システムのクロックを叩いた後、内部のＦ／Ｆの値を、スキャンパスを介して外部に読み出して期待値と比較する必要がある。ＢＩＳＴでは、内部を高速で動作させる必要がある場合や、スキャンパス数が多い場合、内部Ｆ／Ｆの結果を圧縮して格納し、後でゆっくりとテスタで外部に読み出して期待値と比較する手法が採られている。このために、ＬＦＳＲとＥＯＲ（排他的論理和）ゲートとから構成されるＭＩＳＲが用いられている。
【００３８】
本発明でも、スキャンパス数を多くするためにＢＩＳＴと同様に内部Ｆ／Ｆの値を圧縮して外部に読み出す必要がある。この際、ＢＩＳＴの問題点で説明したようにＲＡＭなどの不定状態（Ｘ状態）がＭＩＳＲの圧縮結果を台無しにしてしまう場合がある。ＭＩＳＲの入り口にはＥＯＲゲートが使われており、ＭＩＳＲのフィードバックループ部分にも同様にＥＯＲゲートが使われている。ＥＯＲゲートの入力の１つにでも不定状態があるとＥＯＲゲートの出力も不定状態になってしまうため、フィードバックループにＥＯＲゲートを介装されているＭＩＳＲの全てのレジスタは不定状態に縮退してしまう。そこで、本発明ではスキャンパスの出力側において、不定状態の出力をマスクしている。
【００３９】
〔１〕第１実施形態の説明
図３は本発明の第１実施形態としての集積回路の試験装置の構成を示すブロック図である。この図３に示すように、第１実施形態の試験装置には、リニアフィードバックシフトレジスタ（ＬＦＳＲ）２，フェイズシフタ３，パターン修正器（Pattern Modifying Part）４，スキャンパス＃０，＃１，…，＃ｎ−１，不定マスク器５，スペースコンパクタ６，マルチインプットシグネチャレジスタ（ＭＩＳＲ）７がそなえられている。この試験装置は、試験対象の集積回路であるＬＳＩに組み込まれている。
【００４０】
ＬＦＳＲ２で発生された疑似ランダムパターンがフェイズシフタ３を通してパターン修正器４に入力される。パターン修正器４には、テスタ（図示省略）からの制御信号（Control Signals）が制御入力ピン等を通じて入力され、このパターン修正器４が、上記制御信号に従って、値を設定する必要のあるＦ／Ｆのための値のみを修正し、その値を各スキャンパス＃ｉ（ｉ＝０，１，…，ｎ−１）の先頭Ｆ／Ｆに入力・設定する。
【００４１】
不定マスク器５は、制御入力ピン等から入力される制御信号に従って、各スキャンパス＃ｉの最終Ｆ／Ｆの値のうち不定値（Ｘ状態）のものをマスクすることにより不定状態を規定の状態に変換してから、各スキャンパス＃ｉの最終Ｆ／Ｆの値をスペースコンパクタ６に入力する。スペースコンパクタ６は、各スキャンパス＃ｉの最終Ｆ／Ｆの値を、ＭＩＳＲ７のビット数（例えば３２ビット）程度に圧縮してＭＩＳＲに入力する。さらに、ＭＩＳＲ７は、スペースコンパクタ６からの圧縮データをさらに圧縮して格納するものである。
【００４２】
図４は第１実施形態の試験装置におけるパターン発生部分の構成を詳細に示すブロック図である。この図４に示す例では、パターン発生器としてのＬＦＳＲ２は、１２８本のスキャンパス（ｎ＝１２８）を想定したものである。そして、図４に示すように、本実施形態のパターン発生部は、ＬＦＳＲ２とフェイズシフタ３とから構成され、ＬＦＳＲ２が疑似ランダムパターンを発生し、フェイズシフタ３を通して１２８本分のランダムビット列がパターン修正器４に入力される。
【００４３】
これ以外に、パターン修正器４には、テスタ（図示省略）から制御入力ピン８本（ａ１〜ａ８）を通じて制御信号が入力される。また、パターン修正器４には、１２８本のスキャンパス＃０，＃１，…，＃１２７が接続されており、このパターン修正器４による修正結果（出力）が各スキャンパス＃ｉ（ｉ＝０，１，…，１２７）の先頭Ｆ／Ｆに入力されるようになっている。さらに、パターン修正器４において、各スキャンパス＃ｉの先頭Ｆ／Ｆの出力は、その先頭Ｆ／Ｆの入力側へフィードバックされるようになっている。
【００４４】
また、パターン修正器４は、ＬＦＳＲ２（およびＭＩＳＲ７）へのシフトクロックや、スキャンパス＃０，＃１，…，＃１２７上のＦ／Ｆへのシフトクロックも制御するもので、各スキャンパス＃ｉの先頭Ｆ／Ｆに対するシフトクロックを独立に印加できるようになっている。
【００４５】
パターン修正器４は、制御入力の下位７ビット（ａ２〜ａ８）を入力とするデコーダ回路（Decoder）２１を有しており、このデコーダ回路２１によるデコード結果に応じて、１２８本のスキャンパス＃０，＃１，…，＃１２７のうちの特定の１本に入力される信号値を、ＥＯＲ回路２２によって反転させることができるようになっている。制御入力ピンａ１〜ａ８に制御信号として与えられるコードと、そのコードに対応する動作とを、より具体的に以下に示す。
【００４６】
0004228061.tif 000002
【００４７】
制御入力が全ビット「０」の場合には、ＬＦＳＲ２とスキャンパス上の全Ｆ／Ｆとにシフトクロック（ネガティブクロック；Scan Clock）が入力ピンａ１０を通じて供給され、ＬＦＳＲ２が先のクロックで作り出したランダムビット列がそのままスキャンパスにシフトインされる。
【００４８】
即ち、制御入力の下位７ビット（ａ２〜ａ８）が「０」のためＮＯＲ（否定論理和）回路２４の出力は「１」、制御入力の最上位ビット（ａ１）は「０」のためＮＯＲ回路２５の出力は「０」である。このため、マルチプレクサ（Ｍｕｘ）２３はフェイズシフタ３からの信号をＥＯＲ（排他的論理和）回路２２に送信する。そして、入力ピンａ１０からのシフトクロックは、スキャンパスの先頭Ｆ／Ｆには直接供給され、ＬＦＳＲ２とスキャンパス上の先頭Ｆ／Ｆ以外のＦ／ＦとにはＯＲ（論理和）回路２６を通して供給される。なお、ＡＮＤ（論理積）回路２７は、制御入力の全ビットが「０」の時、ＬＦＳＲ２からスキャンパス＃０への入力の反転を防止するものである。
【００４９】
制御入力が「10000000」から「11111111」の場合は、ＬＦＳＲ２とスキャンパス上の全Ｆ／Ｆとにシフトクロックが供給され、ＬＦＳＲ２が先のクロックで作り出したランダムビット列がスキャンパスにシフトインされるが、その際に制御入力の下位７ビット（ａ２〜ａ８）で指定される１本のスキャンパスの値のみがＥＯＲ回路２２により反転される。
【００５０】
即ち、制御入力の下位７ビット（ａ２〜ａ８）の何れかが「１」のためＮＯＲ回路２４の出力は「０」、制御入力の最上位ビット（ａ１）は「１」のためＮＯＲ回路２５の出力は「０」である。このため、マルチプレクサ２３はフェイズシフタ３からの信号をＥＯＲ回路２２に送信する。そして、入力ピンａ１０からのシフトクロックは、スキャンパスの先頭Ｆ／Ｆには直接供給され、ＬＦＳＲ２とスキャンパス上の先頭Ｆ／Ｆ以外のＦ／ＦとにはＯＲ回路２６を通して供給される。その際に制御入力の下位７ビットで指定された１本のスキャンパスについてのＥＯＲ回路２２に対し、デコーダ回路２１から「１」が入力されるので、マルチプレクサ２３からの信号が、ＥＯＲ回路２２で反転されてから、指定されたスキャンパスの先頭Ｆ／Ｆに出力される。
【００５１】
制御入力が「00000001」から「01111111」の場合は、スキャンパスの先頭Ｆ／Ｆのみにシフトクロックが供給され、ＬＦＳＲ２からの出力ではなく先頭Ｆ／Ｆの出力が有効となり先頭Ｆ／Ｆにフィードバックされるが、その際に制御入力の下位７ビット（ａ２〜ａ８）で指定される１本のスキャンパスの値のみがＥＯＲ回路２２により反転される。この動作により、制御入力の下位７ビットで指定されたスキャンパスの先頭Ｆ／Ｆの値のみが反転されることになる。
【００５２】
即ち、制御入力の下位７ビット（ａ２〜ａ８）の何れかが「１」のためＮＯＲ回路２４の出力は「０」、制御入力の上位ビット（ａ１）は「０」のためＮＯＲ回路２５の出力は「１」である。このため、入力ピンａ１０からのシフトクロックは、スキャンパスの先頭Ｆ／Ｆには供給されるが、ＯＲ回路２６の出力がＮＯＲ回路２５の出力によって「１」となるので、ＬＦＳＲ２とスキャンパス上の先頭Ｆ／Ｆ以外のＦ／Ｆとにはシフトクロックが供給されない。そして、ＮＯＲ回路２５の出力「１」によってマルチプレクサ２３は先頭Ｆ／Ｆからの出力信号をＥＯＲ回路２２に送信する。その際に制御入力の下位７ビットで指定された１本のスキャンパスについてのＥＯＲ回路２２に対し、デコーダ回路２１から「１」が入力されるので、マルチプレクサ２３からの信号が、ＥＯＲ回路２２で反転されてから、指定されたスキャンパスの先頭Ｆ／Ｆに出力される。
【００５３】
図５は第１実施形態における乱数（疑似ランダムパターン）およびＡＴＰＧの設定を説明するための図である。この図５における乱数の表では、ＬＦＳＲ２で生成されたＦ／Ｆに設定すべき乱数（疑似ランダムパターン）が示されている。また、図５におけるＡＴＰＧの表で、「−」は、値を設定する必要のないＦ／Ｆに対応するものであり、「１」と「０」はＡＴＰＧによりＦ／Ｆに設定されるべき値である。ＡＴＰＧでは、ＬＦＳＲ２の動作をシミュレーションすることにより、ＬＦＳＲ２が発生する乱数を把握できるため、乱数表の修正が必要な値を見つけることができる。図５では、ＡＴＰＧの表の点線の四角で囲まれた値が乱数の表の値と相違している。従って、本実施形態では、この相違する部分のみがパターン修正器４によって修正される。
【００５４】
図４に示した回路を用いて任意の値を内部Ｆ／Ｆに設定するための入力パターンの具体例を以下に示す。
0004228061.tif 000003
【００５５】
ここに示す具体例では、７つのパターンがテスタから供給される。第１パターン（パターン番号１）では全ビットが「０」であるため、ランダムパターンシフト動作が行なわれる。第２パターン（パターン番号２）では制御入力ピンａ１，ａ７，ａ８に入力される制御信号が「１」であるため、スキャンパス＃３への入力値のみが反転（「０」が「１」に反転）されるランダムパターンシフト動作が行なわれる。第３パターン（パターン番号３）では再び全ビットが「０」になるため、ランダムパターンシフト動作が行なわれる。
【００５６】
次の第４パターンから第６パターンではスキャンパス１段分のシフトが行なわれ、３ビット分のスキャンパスへの入力値が反転される。具体的には、第４パターン（パターン番号４）では制御入力ピンａ１，ａ８に入力される制御信号が「１」であるため、スキャンパス＃１の値のみが反転（「０」が「１」に反転）されるランダムパターンシフト動作が行なわれ、次の第５パターン（パターン番号５）では制御入力ピンａ６に入力される制御信号のみが「１」であるため、スキャンパス＃４の先頭Ｆ／Ｆの値のみが反転（「１」が「０」に反転）される。さらに第６パターン（パターン番号）では下位７ビットが全て「１」であるため、スキャンパス＃１２７の先頭Ｆ／Ｆの値のみが反転（「１」が「０」に反転）される。ここで、第５パターンと第６パターンではＬＦＳＲ２と先頭以外のスキャンパス上のＦ／Ｆにはシフトクロックは供給されない。最後に第７パターン（パターン番号７）では再び全ビットが「０」になるため、ランダムパターンシフト動作が行なわれる。
【００５７】
以上の７つのパターンがテスタから印加された時点でのスキャンパス上のＦ／Ｆの値を図６に示す。図６は第１実施形態における入力パターン例に対するシフト結果を説明するための図である。この図６において、「−」はＬＦＳＲ２からのランダムパターンが設定されるＦ／Ｆを示し、「Ｆ」は、ＬＦＳＲ２のランダムパターンがＡＴＰＧの要求値と異なるため、ランダムパターンの値を反転して設定されるＦ／Ｆを示す。
【００５８】
以上の方法で、ＡＴＰＧが要求する値を内部のＦ／Ｆに設定することができる。即ち、純粋なランダムパターンシフトおよび１ビットのみの反転を行なう場合には、１パターンで１段のシフトが完結する。２ビット以上の反転の場合には、１段のシフトのために反転ビット数分だけのパターンが必要になる。ここで、図２に示される事実から多ビット反転によるパターンの増加はほとんど起きず、多スキャンパス化による並列度の向上による試験時間の短縮が可能となる。また、テスタに格納するデータ量も同様に並列度に従って減少させることができる。
【００５９】
図７は第１実施形態の試験装置における出力検証部分の構成を詳細に示すブロック図である。この図７に示す例では、出力検証器としてのＭＩＳＲ７は、１２８本のスキャンパス（ｎ＝１２８）を想定したものである。そして、図７に示すように、本実施形態の出力検証部は、ＭＩＳＲ７とスペースコンパクタ６とから構成され、１２８本分のスキャンパス＃０，＃１，…，＃１２７の出力がスペースコンパクタ６によりＭＩＳＲ７のビット数程度に圧縮され、その圧縮データがＭＩＳＲ７によりさらに圧縮されて格納される。
【００６０】
不定マスク器５には、制御入力ピン８本（ｂ１〜ｂ８）を通じて制御信号（Control Signals）が入力されるほか、１２８本のスキャンパス＃０，＃１，…，＃１２７の最終Ｆ／Ｆからの出力と、その最終Ｆ／Ｆの一段前の出力とが入力される。また、不定マスク器５において、各スキャンパス＃ｉの最終Ｆ／Ｆの出力は、その最終Ｆ／Ｆの入力側へフィードバックされるようになっている。
【００６１】
さらに、不定マスク器５は、ＭＩＳＲ７（およびＬＦＳＲ２）へのシフトクロックや、スキャンパス上のＦ／Ｆへのシフトクロックも制御するものである。不定状態をマスクする時には、スキャンパス＃０，＃１，…，＃１２７の最終Ｆ／Ｆのシフトクロックのみ印加され、他のスキャンパス上のＦ／ＦおよびＭＩＳＲ７（およびＬＦＳＲ２）のシフトクロックは抑止される。
【００６２】
不定マスク器５は、制御入力の最上位ビット（ｂ１）でマスク動作を有効にし、制御入力の下位７ビット（ｂ２〜ｂ８）を入力するとデコーダ回路（Decoder）３１を有しており、このデコーダ回路３１によるデコード結果に応じて、１２８本のスキャンパス＃０，＃１，…，＃１２７のうちの特定の１本に入力された不定値（Ｘ状態値）が、ＯＲ回路（またはＡＮＤ回路）によって「１」状態値（または「０」状態値）に変換され、その不定値がマスクされる。
【００６３】
即ち、制御入力ピンｂ１に「１」が入力されるとＯＲ回路３６の出力は「１」となるため、スキャンパス上の最終Ｆ／Ｆ以外のＦ／ＦおよびＭＩＳＲ７（およびＬＦＳＲ２）へのシフトクロック（ネガティブクロック；Scan Clock）は抑止されるとともに、制御入力ピンｂ１の「１」によりマルチプレクサ３３が最終Ｆ／Ｆの出力をフィードバックしてＯＲ回路３２に出力する。このため、デコーダ回路３１から「１」を出力し、１２８本のスキャンパス＃０，＃１，…，＃１２７のうちの特定の１本に入力された不定値（Ｘ状態値）をＯＲ回路３２で「１」状態値に変換し、その不定値をマスクすることができる。なお、同時に他のスキャンパスのＦ／Ｆにも不定値があれば次のシフトクロックでそのＦ／Ｆからの出力（不定値）をマスクする。
パターン発生部分と出力検証部分とは基本的に独立のものであるが、両回路を共に適用する場合には、制御入力の下位７ビット部分を共用することも可能である。
【００６４】
上述のような第１実施形態の試験装置を用いることにより、ＡＴＰＧが発生するディターミニスティックなテストパターンを、集積回路（ＬＳＩ）に短時間で適用することが可能となる。具体的には、内部のスキャンパスの数をｋ倍にすれば、ほぼ試験時間を１／ｋに短縮することが可能となる。
それと同時に、テスタに格納するパターンのデータ量を削減できる。具体的には、内部のスキャンパスの数をｋ倍にすればほぼメモリ量を１／ｋに削減することが可能となる。
【００６５】
第１実施形態では、ＢＩＳＴで用いられるパターン発生器（ＬＦＳＲ２等）を利用しているが、ディターミニスティックなパターンが内部に適用されるので、バス回路の特別な制御回路や診断率向上のためのテストポイントの回路挿入などの、厳しい設計制約を設計者に課すことはない。また、ＢＩＳＴで用いられるパターン圧縮器（ＭＩＳＲ７等）が利用可能であり、不定マスク器５を用いることで、回路内部の不定状態がＭＩＳＲ７に伝播し検証不能になることを防ぐこともできる。
【００６６】
さらに、上記集積回路（ＬＳＩ），ＬＦＳＲ２，フェイズシフタ３，パターン修正器４，スキャンパス＃０，＃１，…，＃ｎ−１，不定マスク器５，スペースコンパクタ６，ＭＩＳＲ７等は、コンピュータ上でシミュレートでき、実際の集積回路の製造前に試験データを作成することもできる。
【００６７】
このように、本発明の第１実施形態としての試験装置や試験方法によれば、集積回路（ＬＳＩ）中に組み込まれたＬＦＳＲ２で発生した試験パターンを、パターン修正器４で修正してｎ本のスキャンパス＃０，＃１，…，＃ｎ−１に入力するため、スキャンパス数を増やしスキャンパス段数を少なくすることにより、集積回路（ＬＳＩ）の試験時間が大幅に短縮される。
【００６８】
また、本実施形態によれば、ＤＳＰＴおよびＢＩＳＴの問題点が解決され、両者の利点を生かした高品質なテストを短時間で可能とする試験パターンが生成される。その際、意味あるデータ部分（値を設定する必要のあるＦ／Ｆの情報）のみをテスタ（外部入力）から供給して修正するので、テスタに格納されるデータ量を大幅に削減することもできる。従って、設計者に厳しい設計規約を課すことなく、且つ、高価なテスタを必要とすることなく、高品質なテストを行なえる。
【００６９】
さらに、集積回路内部のＦ／Ｆにより形成したｎ本のスキャンパス＃０，＃１，…，＃ｎ−１からの出力中の不定値をマスクし、マスクされた出力結果をＭＩＳＲ７で検証するため、Ｆ／Ｆからの出力結果を圧縮して外部に読み出しても、不定状態（Ｘ状態）が圧縮結果を台無しにしてしまうことがなくなる。
さらに、ＭＩＳＲ７に、マスク処理後の出力結果を圧縮する圧縮手段をそなえるため、内部Ｆ／Ｆからの出力結果をＭＩＳＲ７に効率よく格納することができる。
【００７０】
第１実施形態で説明した試験装置のごとく、ＬＦＳＲ２で生成された疑似ランダムパターンを、ＡＴＰＧパターンに基づいて補完する場合、修正ポイント（反転ポイント）の数が多くなると、その修正動作（反転動作）のためにオーバヘッドの増大が予想される。そこで、以下に説明する第２〜第４実施形態では、第１実施形態と同様の試験装置において、修正ポイントの数を抑えることによりパターン修正器４によるパターン修正量を削減し、オーバヘッドの増大を最小限に抑えることができるようにした、パターン生成手法について説明する。
【００７１】
〔２〕第２実施形態の説明
図８〜図１２を参照しながら、第１実施形態と同様の試験装置に適用される、第２実施形態としてのパターン生成手法について説明する。ここで、図８は本発明の第２実施形態としての集積回路の試験装置の動作を説明するためのフローチャート、図９〜図１２はいずれも本発明の第２実施形態におけるパターン修正動作の具体例を説明するための図である。
【００７２】
この第２実施形態における試験装置も第１実施形態と同様に構成されており、ＡＴＰＧ（自動テストパターン生成部；図示省略）からパターン修正器４にＡＴＰＧパターンが与えられ、このパターン修正器４において、ＬＦＳＲ２によって発生された疑似ランダムパターンが、ＡＴＰＧパターンに基づいて補完・修正される。
【００７３】
その際、第２実施形態では、パターン修正器４が、複数の疑似ランダムパターンおよび複数のＡＴＰＧパターンから、疑似ランダムパターンとＡＴＰＧパターンとの適当な組合せを選択し、選択されたＡＴＰＧパターンに基づいて、選択された疑似ランダムパターンを修正している。その手順を、図８に示すフローチャート（ステップＳ１１〜Ｓ２０）に従って説明する。図８に示す手順で行なわれる処理は、パターン修正器４で行なってもよいし、本実施形態の試験装置の動作を管理するＣＰＵ等の制御部（図示省略）で行なってもよい。
【００７４】
まず、４つのテストパターン集合Ａ，Ｂ，Ａ’，Ｂ’を定義して、これらの集合Ａ，Ｂ，Ａ’，Ｂ’を、全て空集合（φ）に初期設定しておく（ステップＳ１１）。
そして、集合Ａが空集合か否かを判定し（ステップＳ１２）、空集合である場合（ステップＳ１２のＹＥＳルート）には、ＡＴＰＧ（自動テストパターン生成部；図示省略）にｉ個のテストパターン（ＡＴＰＧパターン）を発生させ、これらのＡＴＰＧパターンを集合Ａに追加する（ステップＳ１３）。このとき、ｉの数が多い場合には、故障シミュレーションを行なってもよい。対象故障の選択基準は従来のＡＴＰＧの処理に準じる。
【００７５】
集合Ａが空集合でない場合（ステップＳ１２のＮＯルート）、もしくは、ステップＳ１３でＡＴＰＧパターンを集合Ａに追加した後、集合Ｂが空集合か否かを判定し（ステップＳ１４）、空集合である場合（ステップＳ１４のＹＥＳルート）には、ＬＦＳＲ２にｊ個の疑似ランダムパターンを発生させ、これらのパターンを集合Ｂに追加する（ステップＳ１５）。
【００７６】
集合Ｂが空集合でない場合（ステップＳ１４のＮＯルート）、もしくは、ステップＳ１５で疑似ランダムパターンを集合Ｂに追加した後、ＡＴＰＧパターン集合Ａの中から、“don’t care”のビット（不定状態(X)のビット）の数が最も少ないＡＴＰＧパターンａを一つ選択する（ステップＳ１６）。
そして、選択されたＡＴＰＧパターンａと、テストパターン集合Ｂにおける全ての疑似ランダムパターンとを比較し、集合Ｂの中から、ＡＴＰＧパターンａの各ビットの値と異なっている値（入力）の数が最も少ない疑似ランダムパターンｂを一つ選択する（ステップＳ１７）。
【００７７】
上述のごとく選択されたＡＴＰＧパターンａと疑似ランダムパターンｂとを対応付け、これらのパターンａおよびｂを、それぞれ、集合ＡおよびＢから削除するとともに、集合Ａ’およびＢ’に追加する。これら２つのパターンａおよびｂを組み合わせて得られたパターン（パターン修正器４によりＡＴＰＧパターンａに基づいて疑似ランダムパターンｂを修正した結果）による故障シミュレーションを行なう（ステップＳ１８）。
【００７８】
この後、検出可能な故障を全て検出したか否か、つまり故障検出率が１００％か否かを判断し（ステップＳ１９）、故障検出率が１００％でない場合（ステップＳ１９のＮＯルート）、ステップＳ１２に戻り、上述と同様の処理を繰り返し実行する。
【００７９】
一方、故障検出率が１００％になった場合（ステップＳ１９のＹＥＳルート）、集合Ｂに残っている疑似ランダムパターンを集合Ｂ’に追加し、各疑似ランダムパターンに、集合Ａ’のＡＴＰＧパターンを対応させたものを、最終的なテストパターンの組み合わせとする（ステップＳ２０）。ここで、最後に集合Ｂから集合Ｂ’に追加した疑似ランダムパターンには、対応する集合Ａ’のＡＴＰＧパターンが存在していない。また、パターンの並びは、疑似ランダムパターンの発生順序に従うものとする。
【００８０】
さて、図９には、上述のようなＡＴＰＧパターンと疑似ランダムパターンとの組み合わせの変更処理を行なわず、これらのパターンを作成順（出現順）に組み合わせた場合の具体例が示されている。図９に示す例では、３個のＡＴＰＧパターンＤＰ１，ＤＰ２，ＤＰ３と、３個の疑似ランダムパターンＲＰ１，ＲＰ２，ＲＰ３とが順次作成され、作成順に組み合わされている。図９に示すように、これら３組のパターンを作成順に対応付けパターン修正器４によって疑似ランダムパターンの修正を行なった場合、設定値を反転・変更すべきＦ／Ｆの数は６個である。なお、図９において、（）内のｍは各疑似ランダムパターンにおいて反転・変更すべき値の数を示している。
【００８１】
つまり、ＡＴＰＧパターンＤＰ１“１Ｘ０００Ｘ１１Ｘ”と疑似ランダムパターンＲＰ１“０１１０１０１１０”とを組み合わせた場合、疑似ランダムパターンＲＰ１の先頭から１ビット目，３ビット目および５ビット目の３値が異なっているので、パターン修正器４が、これら３個の値を反転させ、修正パターン“１１００００１１０”を出力することになる（ｍ＝３）。同様に、ＡＴＰＧパターンＤＰ２“Ｘ０１ＸＸ１ＸＸＸ”と疑似ランダムパターンＲＰ２“００１０１０１０１”とを組み合わせた場合、疑似ランダムパターンＲＰ２の先頭から６ビット目の１値のみが異なっているので、パターン修正器４が、この１個の値を反転させ、修正パターン“００１０１１１０１”を出力することになる（ｍ＝１）。同様に、ＡＴＰＧパターンＤＰ３“０ＸＸＸ１Ｘ１Ｘ０”と疑似ランダムパターンＲＰ３“１１０１１０１１１”とを組み合わせた場合、疑似ランダムパターンＲＰ３の先頭から１ビット目および９ビット目の２値が異なっているので、パターン修正器４が、これら２個の値を反転させ、修正パターン“０１０１１０１１０”を出力することになる（ｍ＝２）。
【００８２】
図１０には、図９と同じパターンに対し、図８を参照して上述したような、ＡＴＰＧパターンと疑似ランダムパターンとの組み合わせの変更処理を行なった場合の具体例（図８において、ｉ＝ｊ＝３とした場合）が示されている。上述した組み合わせの変更処理を行なった場合、図１０に示すように、３個のＡＴＰＧパターンは、不定値Ｘの少ない順（つまり不定値Ｘでない信号値の多い順）ＤＰ１，ＤＰ３，ＤＰ２に並べ替えられる（図８のステップＳ１６，Ｓ１７参照）。そして、各ＡＴＰＧパターンＤＰ１，ＤＰ３，ＤＰ２に対し、疑似ランダムパターンＲＰ１，ＲＰ２，ＲＰ３のうち、設定値を反転・変更すべきＦ／Ｆの数が最も少ないものが選択されて順に対応付けられる（図８のステップＳ１８参照）。
【００８３】
図１０に示す例では、ＡＴＰＧパターンＤＰ１には、設定値を反転・変更すべきＦ／Ｆ数が最も少ない疑似ランダムパターンＲＰ３が対応付けられ、同様に、ＡＴＰＧパターンＤＰ２には、残り２つの疑似ランダムパターンのうちで、設定値を反転・変更すべきＦ／Ｆ数が最も少ない疑似ランダムパターンＲＰ１が対応付けられ、最後に、残りのＡＴＰＧパターンＤＰ２と疑似ランダムパターンＲＰ２とが対応付けられる。上述のような組み合わせの変更処理（対応付け処理）を行なった上で、パターン修正器４による修正動作が行なわれる。このような処理を行なった場合、設定値を反転・変更すべきＦ／Ｆの数は３個になり、図９で示した手法に比べて修正量を減らすことができる。なお、図１０においても（）内のｍは各疑似ランダムパターンにおいて反転・変更すべき値の数を示している。
【００８４】
図１０に示す例について具体的に説明すると、上述のような組み合わせの変更処理を行なった場合、まず、ＡＴＰＧパターンＤＰ１“１Ｘ０００Ｘ１１Ｘ”と疑似ランダムパターンＲＰ３“１１０１１０１１１”とが組み合わせられる。この組み合わせでは、疑似ランダムパターンＲＰ１の先頭から４ビット目および５ビット目の２値が異なっているので、パターン修正器４が、これら２個の値を反転させ、修正パターン“１１０１１０１１１”を出力することになる（ｍ＝２）。ついで、ＡＴＰＧパターンＤＰ３“０ＸＸＸ１Ｘ１Ｘ０”と疑似ランダムパターンＲＰ１“０１１０１０１１０”とが組み合わせられる。この組み合わせでは、値の異なるビットが無いので、パターン修正器４は、修正動作を行なうことなく、疑似ランダムパターンＲＰ１“０１１０１０１１０”をそのまま出力することになる（ｍ＝０）。そして、最後に、ＡＴＰＧパターンＤＰ２“Ｘ０１ＸＸ１ＸＸＸ”と疑似ランダムパターンＲＰ２“００１０１０１０１”とが組み合わせられる。この組み合わせでは、疑似ランダムパターンＲＰ２の先頭から６ビット目の１値が異なっているので、パターン修正器４が、この１個の値を反転させ、修正パターン“００１０１１１０１”を出力することになる（ｍ＝１）。
【００８５】
一方、図１１には、図９に示した例と同様、上述のようなＡＴＰＧパターンと疑似ランダムパターンとの組み合わせの変更処理を行なわず、これらのパターンを作成順に組み合わせた場合の具体例が示されている。ただし、図１１に示す例では、６個のＡＴＰＧパターンＤＰ１〜ＤＰ６と、６個の疑似ランダムパターンＲＰ１〜ＲＰ６とが順次作成され、作成順（出現順）に組み合わされている。図１１に示すように、これら６組のパターンを作成順に対応付けパターン修正器４によって疑似ランダムパターンの修正を行なった場合、設定値を反転・変更すべきＦ／Ｆの数は１２個になる。なお、図１１においても、（）内のｍは各疑似ランダムパターンにおいて反転・変更すべき値の数を示している。ここでは、図１１に示す例についての具体的な説明は省略する。
【００８６】
図１２には、図１１と同じパターンに対し、図８を参照して上述したような、ＡＴＰＧパターンと疑似ランダムパターンとの組み合わせの変更処理を行なった場合の具体例（図８において、ｉ＝ｊ＝３とした場合）が示されている。この場合、図１２に示すように、６個のＡＴＰＧパターンＤＰ１〜ＤＰ６と、６個の疑似ランダムパターンＲＰ１〜ＲＰ６とは、それぞれ前後２組に分けられ、３個のＡＴＰＧパターンＤＰ１〜ＤＰ３と３個の疑似ランダムパターンＲＰ１〜ＲＰ３との組み合わせの変更処理を行なった後、３個のＡＴＰＧパターンＤＰ４〜ＤＰ６と３個の疑似ランダムパターンＲＰ４〜ＲＰ６との組み合わせの変更処理を行なう。これにより、ＡＴＰＧパターンＤＰ１，ＤＰ２，ＤＰ３がそれぞれ疑似ランダムパターンＲＰ３，ＲＰ２，ＲＰ１に対応付けられるとともに、ＡＴＰＧパターンＤＰ４，ＤＰ５，ＤＰ６がそれぞれ疑似ランダムパターンＲＰ５，ＲＰ４，ＲＰ６に対応付けられる。このような組み合わせの変更処理（対応付け処理）を行なった上で、パターン修正器４による修正動作が行なわれる。このような処理を行なった場合、設定値を反転・変更すべきＦ／Ｆの数は７個になり、図１１で示した手法に比べて修正量を大幅に減らすことができる。なお、図１２においても、（）内のｍは各疑似ランダムパターンにおいて反転・変更すべき値の数を示している。また、図１２に示す例についての具体的な説明は省略する。
【００８７】
このように、本発明の第２実施形態としての試験装置によれば、複数の疑似ランダムパターンおよび複数のＡＴＰＧパターンから疑似ランダムパターンとＡＴＰＧパターンとの適当な組合せを選択し、選択されたＡＴＰＧパターンを修正の基準として用いて疑似ランダムパターンを修正することにより、パターン修正器４によるパターン修正量が大幅に削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験をより効率よく行なえるようになる。
【００８８】
〔３〕第３実施形態の説明
図１３および図１４を参照しながら、第１実施形態と同様の試験装置に適用される、第３実施形態としてのパターン生成手法について説明する。ここで、図１３は本発明の第３実施形態としての集積回路の試験装置の動作を説明するためのフローチャート、図１４は本発明の第３実施形態におけるＡＴＰＧパターン生成動作の具体例を説明するための図である。
【００８９】
この第３実施形態における試験装置も第１実施形態と同様に構成されており、ＡＴＰＧ（自動テストパターン生成部；図示省略）からパターン修正器４にＡＴＰＧパターンが与えられ、このパターン修正器４において、ＬＦＳＲ２によって発生された疑似ランダムパターンがＡＴＰＧパターンに基づいて補完・修正される。
【００９０】
その際、第３実施形態では、ＡＴＰＧが、ＬＦＳＲ２によって発生された疑似ランダムパターンを参照し、その疑似ランダムパターンに応じた適当な対象故障を選択し、その対象故障を検出しうるＡＴＰＧパターンを、当該疑似ランダムパターンの修正基準として生成してパターン修正器４に与えている。その手順を、図１３に示すフローチャート（ステップＳ２１〜Ｓ２７）に従って説明する。図１３に示す手順で行なわれる処理は、ＡＴＰＧで行なってもよいし、本実施形態の試験装置の動作を管理するＣＰＵ等の制御部（図示省略）で行なってもよい。
【００９１】
まず、未検出故障の集合（未検出故障リスト）Ｆを作成しておいてから（ステップＳ２１）、ＬＦＳＲ２により疑似ランダムパターンを一つ生成させ（ステップＳ２２）、生成された疑似ランダムパターンについて、各信号線の反転コストを計算し（ステップＳ２３）、未検出故障リストＦの中から、最も反転コストの少ない信号線上の未検出故障ｆを一つ選択する（ステップＳ２４）。なお、反転コストについては、図１４を参照しながら後述する。
【００９２】
そして、選択された故障ｆをターゲット（検出対象）としたＡＴＰＧパターンを生成し（ステップＳ２５）、生成されたＡＴＰＧパターンと上記疑似ランダムパターンとを組み合わせて得られたパターン（パターン修正器４によりＡＴＰＧパターンに基づいて疑似ランダムパターンを修正した結果）による故障シミュレーションを行なうとともに、検出した故障ｆを未検出故障リストＦから削除する（ステップＳ２６）。この後、未検出故障リストＦに未検出故障があるか否かを判断し（ステップＳ２７）、未検出故障がある場合（ステップＳ２７のＹＥＳルート）、ステップＳ２２に戻り、上述と同様の処理を繰り返し実行する一方、未検出故障が無くなった場合（ステップＳ２７のＮＯルート）、処理を終了する。
【００９３】
さて、次に、図１４を参照しながら、反転コストと、ＡＴＰＧパターンによる検出対象故障（ターゲット）の選択基準とについて具体的に説明する。図１４に示す論理回路においては、ＬＦＳＲ２によって生成された、ある疑似ランダムパターンが与えられた状態で、未検出故障リストに、ＡＮＤゲートＡの出力信号線の０縮退故障とＡＮＤゲートＢの出力信号線の０縮退故障とが未検出故障として残っているものとする。また、図１４に示す論理回路の６本の入力信号線（入力ピン）に対する入力として、ＬＦＳＲ２により、疑似ランダムパターンとして“０００１１１”が生成されたものとする。ここでは、上述した２種類の０縮退故障を検出するためのＡＴＰＧパターンの生成について考える。なお、図１４に示す論理回路は、２入力のＡＮＤゲートＡと、４入力のＡＮＤゲートＢと、これらのＡＮＤゲートＡ，Ｂの論理和を出力するＯＲゲートＣとから構成されている。
【００９４】
まず、それぞれのゲートについて、出力値を反転させるコスト（反転コスト）を計算する。各入力信号線への入力信号を反転させるために必要なコストを１とすると、０値を出力しているＡＮＤゲートの出力値を反転させるために必要なコストは、０値を入力されている入力信号線のコストの合計に等しい。逆に、１値を出力しているＡＮＤゲートの出力値を反転させるために必要なコストは、入力信号線のコストのうち最も低いコストと等しい。図１４の（）中の値はこの計算により得られた反転に必要なコストである。
【００９５】
次に、ＡＴＰＧパターンによる検出対象故障（ターゲット）の選択基準について考える。図１４に示す例において、ＡＮＤゲートＡの出力の０縮退故障を検出するためには、ＡＮＤゲートＡの出力値を“１”とする必要があり、ＡＮＤゲートＢの出力の０縮退故障を検出するためにはＡＮＤゲートＢの出力値を“１”とする必要がある。このとき、出力値を反転させるために必要なコストは、上述した計算手法によれば、ＡＮＤゲートＡについては“２”、ＡＮＤゲートＢについては“１”となり、ＡＮＤゲートＡよりもＡＮＤゲートＢの方が低い。つまり、ＡＮＤゲートＢの０縮退故障をターゲットにした方が、設定値を反転すべきＦ／Ｆの数が少なくなる。
【００９６】
これに対し、通常の可制御性を用いて対象故障を選択する場合、ＡＮＤゲートＡの方がＡＮＤゲートＢよりも１可制御性が小さいため、ＡＮＤゲートＡが選択され、ＡＮＤゲートＡの０縮退故障をターゲットにすることになる。このことから、第３実施形態の手法で生成したＡＴＰＧパターンは、可制御性を用いて作成したＡＴＰＧパターンよりも疑似ランダムパターンの修正量が少ないことがわかる。
【００９７】
上述のごとく対象故障を選択した場合、ＡＴＰＧは、図１４に示す疑似ランダムパターン“０００１１１”に対し、パターン修正器４において先頭から３ビット目の値が“０”から“１”に反転・修正されるようなＡＴＰＧパターン（例えば“ＸＸ１ＸＸＸ”，“００１１１１”など）を生成し、パターン修正器４に与える。
【００９８】
このように、本発明の第２実施形態としての試験装置によれば、ＡＴＰＧが、ＬＦＳＲ２からの疑似ランダムパターンを参照して、Ｆ／Ｆのフリップ数が少なくなるような対象故障（疑似ランダムパターンに応じた適当な対象故障）を選択しその対象故障を検出しうるＡＴＰＧパターンを生成し、そのＡＴＰＧパターンが、パターン修正器４において疑似ランダムパターンの修正基準として用いられるので、パターン修正器４によるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験をより効率よく行なえるようになる。
【００９９】
〔４〕第４実施形態の説明
図１５および図１６を参照しながら、第１実施形態と同様の試験装置に適用される、第４実施形態としてのパターン生成手法について説明する。ここで、図１５は本発明の第４実施形態としての集積回路の試験装置における特性情報決定動作の第１例（シード値決定動作）を説明するためのフローチャート、図１６は本発明の第４実施形態としての集積回路の試験装置における特性情報決定動作の第２例（フィードバック位置決定動作）を説明するためのフローチャートである。
【０１００】
この第４実施形態における試験装置も第１実施形態とほぼ同様に構成されており、ＡＴＰＧ（自動テストパターン生成部；図示省略）からパターン修正器４にＡＴＰＧパターンが与えられ、このパターン修正器４において、ＬＦＳＲ２によって発生された疑似ランダムパターンがＡＴＰＧパターンに基づいて補完・修正される。
【０１０１】
ただし、第４実施形態の試験装置では、第１実施形態の試験装置に、特性情報決定部（図１５の符号１０Ａもしくは図１６の符号１０Ｂ参照）がさらに追加されている。この特性情報決定部は、ＬＦＳＲ２によって発生される疑似ランダムパターンとＡＴＰＧパターンとを比較し、そのＡＴＰＧパターンに近い疑似ランダムパターンをＬＦＳＲ２に発生させうる、ＬＦＳＲ２の特性情報を決定するものである。この特性情報決定部は、ＬＦＳＲ２にそなえてもよいし、本実施形態の試験装置の動作を管理するＣＰＵ等の制御部（図示省略）が上記特性情報決定部としての機能を果たしてもよい。そして、第４実施形態の試験装置では、ＬＦＳＲ２が、上記特性情報決定部により決定された特性情報に基づいて、疑似ランダムパターンを発生するようになっている。
【０１０２】
擬似ランダムパターン発生器として、現在、一般的に使用されるＬＦＳＲは、リニアに接続された複数個のレジスタを有し、これらのレジスタからの複数の出力を、排他的論理和ゲートを介して先頭の入力部にフィードバックするような構成となっている。このような構成を有するＬＦＳＲ２によって生成されるビット列は、フィードバックの位置や初期値（シード値）によって異なる。つまり、ＬＦＳＲ２におけるフィードバックの位置やシード値を変更することにより、異なる性質の乱数系列が生成されることになる。そこで、第４実施形態においては、上記特性情報決定部により、適切なシード（seed）値やフィードバック位置をＬＦＳＲ２の特性情報として決定することにより、ＬＦＳＲ２が、ＡＴＰＧパターンに近い疑似ランダムパターンを生成できるようにして、パターン修正器４での修正量を少なくしている。
【０１０３】
ここで、特性情報決定部を、ＬＦＳＲ２の特性情報としてシード値を決定するシード値決定部１０Ａ（図１５参照）として構成した場合における、そのシード値決定部１０Ａの動作について、図１５に示すフローチャート（ステップＳ３１〜Ｓ３４）に従って説明する。
【０１０４】
ＬＦＳＲ２に設定されるべき複数種類のシード値（シード値セット）を予め準備しておいてから、そのシード値セットの中からシード値を一つ選択してＬＦＳＲ２に設定し、そのシード値に基づいてＬＦＳＲ２を動作させる（ステップＳ３１）。そして、そのシード値に基づいてＬＦＳＲ２から生成された疑似ランダムパターンと、ＡＴＰＧパターンとを比較してから（ステップＳ３２）、シード値セットにおける全てのシード値について選択・比較処理を終了したか否かを判断する（ステップＳ３３）。
【０１０５】
まだ終了していない場合（ステップＳ３３のＮＯルート）、ステップＳ３１に戻り、上述と同様の処理を繰り返し実行する。
一方、全てのシード値について選択・比較処理を終了した場合（ステップＳ３３のＹＥＳルート）、ステップＳ３２での比較結果に基づき、最適なシード値、つまり、ＡＴＰＧパターンに最も近い疑似ランダムパターンをＬＦＳＲ２に発生させうるシード値を決定して出力する（ステップＳ３４）。
【０１０６】
また、特性情報決定部を、ＬＦＳＲ２の特性情報としてフィードバック位置を決定するフィードバック位置決定部１０Ｂ（図１６参照）として構成した場合における、そのフィードバック位置決定部１０Ｂの動作について、図１６に示すフローチャート（ステップＳ４１〜Ｓ４４）に従って説明する。
【０１０７】
フィードバック位置の異なる複数種類のＬＦＳＲ（ＬＦＳＲセット）を予め準備しておいてから、そのＬＦＳＲセットの中からＬＦＳＲを一つ選択してＬＦＳＲ２として用い、そのＬＦＳＲ２を動作させる（ステップＳ４１）。そして、そのＬＦＳＲ２から生成された疑似ランダムパターンと、ＡＴＰＧパターンとを比較してから（ステップＳ４２）、ＬＦＳＲセットにおける全種類のＬＦＳＲについて選択・比較処理を終了したか否かを判断する（ステップＳ４３）。
【０１０８】
まだ終了していない場合（ステップＳ４３のＮＯルート）、ステップＳ４１に戻り、上述と同様の処理を繰り返し実行する。
一方、全てのシード値について選択・比較処理を終了した場合（ステップＳ４３のＹＥＳルート）、ステップＳ４２での比較結果に基づき、ＡＴＰＧパターンに最も近い疑似ランダムパターンをＬＦＳＲ２に発生させうるフィードバック位置を決定する、つまり、最適なフィードバック位置を有するＬＦＳＲを決定する（ステップＳ４４）。
【０１０９】
このように、本発明の第４実施形態としての試験装置によれば、ＡＴＰＧパターンに近い疑似ランダムパターンをＬＦＳＲ２に発生させうる、ＬＦＳＲ２の特性情報が決定され、その特性情報に基づいて、疑似ランダムパターンが発生されるので、パターン修正器４によるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験をより効率よく行なえるようになる。
【０１１０】
〔５〕第５実施形態の説明
ところで、ダイナミックコンパクションによるＡＴＰＧに基づいて補完されたパターンは、パターン発生の初期のものほど、該当故障を検出するための値を設定すべきＦ／Ｆの数が多くなる傾向にある。このことは、試験の初期段階では疑似ランダムパターンに対する修正量が多くオーバーヘッドが大きくなることを意味している。しかし、一方で試験の初期段階では検出容易な故障が多く存在しており、疑似ランダムパターンでも多くの故障が検出されることが期待される。以下に説明する第５実施形態では、このような特性を利用したパターン生成手法およびその手法を適用された、２種類の試験装置について説明する。
【０１１１】
〔５−１〕第１構成例の説明
図１７は本発明の第５実施形態としての集積回路の試験装置の第１構成例を示すブロック図であり、この図１７に示すように、第５実施形態の第１構成例の試験装置は、ターゲット故障数設定部１１Ａ，疑似ランダムパターン発生部１２Ａ，ＡＴＰＧ部１３Ａ，パターン修正部１４Ａ，故障シミュレーション部１５Ａおよび制御部１６Ａをそなえて構成されている。
【０１１２】
ターゲット故障数設定部（実行制限条件設定部）１１Ａは、ＡＴＰＧ部１３ＡがＡＴＰＧパターンに対する圧縮処理（ダイナミックコンパクション）を実行する場合に、その圧縮処理の実行制限条件を設定するもので、ここでは、実行制限条件として、一つのＡＴＰＧパターンによって検出されるべき故障の数の上限値を設定するものであり、ＡＴＰＧパターンの生成の進行に伴って、その上限値を大きくするように動作する。
【０１１３】
より具体的に説明すると、ターゲット故障数設定部１１Ａは、制御部１６Ａから通知される、故障検出率やその故障検出率の変化率や生成テストパターン数や実行時間（疑似ランダムパターン発生部１２Ａの実行時間）等を、テスト進行を示すの指標として取得し、図１８を参照しながら後述するごとく、ターゲット荷重（w_target）を算出し、このターゲット荷重と未検出故障数とに基づいて、ターゲット故障の上限数であるターゲット故障数上限値（target_limit）を算出・設定し、そのターゲット故障数上限値を制御部１６Ａに通知するものである。
【０１１４】
疑似ランダムパターン発生部（パターン発生器）１２Ａは、第１実施形態におけるＬＦＳＲ２に対応するもので、やはりＬＦＳＲにより実現される乱数発生器を用いて疑似ランダムパターンを生成するものである。
ＡＴＰＧ部（自動テストパターン生成部）１３Ａは、ダイナミックコンパクションモードでテストパターン生成を行なうものであり、ＡＴＰＧパターンの圧縮対象となった故障の数が、ターゲット故障数設定部１１Ａによって設定されたターゲット故障数上限値（target_limit）を超過するまで（つまり実行制限条件が満たされるまで）、もしくは、全ての未検出故障がターゲット故障となるまで、二次故障に対するテストパターン生成（圧縮処理）を繰り返し行なうようになっている。
【０１１５】
つまり、ＡＴＰＧ部１３Ａは、ＡＴＰＧパターンの圧縮対象となった故障の数が、ターゲット故障数設定部１１Ａによって設定されたターゲット故障数上限値（target_limit）に達した時点で、ＡＴＰＧパターンに対する圧縮処理を終了させるようになっている。
【０１１６】
パターン修正部（パターン修正器）１４Ａは、第１実施形態におけるパターン修正器４に対応するもので、ＡＴＰＧ部１３Ａにより生成されたＡＴＰＧパターンと、疑似ランダムパターン発生部１２Ａにより生成された疑似ランダムパターンとを受け取り、これらのＡＴＰＧパターンと疑似ランダムパターンとを比較して、疑似ランダムパターンの中で、ＡＴＰＧパターンの値と異なる入力ポイントの値を反転・修正し、修正された疑似ランダムパターンを修正テストパターンとして故障シミュレーション部１５Ａに転送するものである。
【０１１７】
故障シミュレーション部１５Ａは、パターン修正部１４Ａにより修正されたテストパターンを受け取り、そのテストパターンによって検出可能な未検出故障をシミュレート（評価）し、そのシミュレーションによって特定される、故障検出率，その故障検出率の変化率，実行時間，生成テストパターン数等のテスト進行指標を制御部１６Ａに通知するものである。
【０１１８】
制御部１６Ａは、上述したターゲット故障数設定部１１Ａ，疑似ランダムパターン発生部１２Ａ，ＡＴＰＧ部１３Ａ，パターン修正部１４Ａおよび故障シミュレーション部１５Ａの動作を制御するためのもので、具体的には、ターゲット故障数設定部１１Ａへのテスト進行指標の通知や、ターゲット故障数上限値の受信や、ＡＴＰＧ部１３Ａへのターゲット故障数上限値およびＡＴＰＧパターン生成要求の通知や、疑似ランダムパターン発生部１２Ａへのパターン生成要求の通知や、パターン修正部１４Ａへの修正要求の通知や、故障シミュレーション部１５Ａへのシミュレーション実行要求の通知や、テスト進行指標の受信を行なうものである。そして、制御部１６Ａは、全ての故障を検出した場合、または、故障検出率，生成テストパターン数もしくは実行時間のいずれかが指示された値に達した場合に、処理を終了するようになっている。
【０１１９】
次に、図１７を参照しながら上述したごとく構成された試験装置の動作を、図１８に示すフローチャート（ステップＳ５１〜Ｓ５９）に従って説明する。
まず、ターゲット故障数設定部１１Ａにより、ターゲット故障数上限値（target_limit）を、テストパターン生成の初期段階では十分に小さく、テストの進行に伴いその上限値を上昇させるように算出・設定して、制御部１６Aに通知する（ステップＳ５１）。その際、ターゲット故障数設定部１１Ａは、制御部１６Ａから、故障検出率／検出率変化率，生成テストパターン数，実行時間等をテスト進行指標として取得し（ステップＳ５１１）、これらのテスト進行指標を引数としてターゲット荷重（w_target）を算出する（ステップＳ５１２）。故障検出率によってターゲット荷重（w_target）を算出する算出式の一例を下式(1)として示す。
w_target＝(100.0−故障検出率(%))／100.0      (1)
【０１２０】
そして、ターゲット故障数設定部１１Ａは、上式(1)によって算出されたターゲット荷重（w_target）と、未検出故障数とに基づいて、ターゲット故障数上限値（target_limit）を、例えば下式(2)により算出・設定してから、制御部１６Ａに通知する（ステップＳ５１３）。
target_limit＝未検出故障数 * w_target        (2)
【０１２１】
この後、制御部１６Ａは、疑似ランダムパターン発生部１２Ａにパターン生成要求を通知して疑似ランダムパターンを生成さるとともに（ステップＳ５２）、ＡＴＰＧ部１３Ａに、ターゲット故障数上限値（target_limit）およびＡＴＰＧパターン生成要求を通知して、ダイナミックコンパクションを伴うＡＴＰＧパターン生成を実行させる（ステップＳ５３）。
【０１２２】
このとき、ＡＴＰＧ部１３Ａでは、まず、一次故障についてのテストパターンを生成してから（ステップＳ５３１）、二次故障を検出するためのテストパターンをマージする（ステップＳ５３２）。このマージ処理は、ステップＳ６１〜Ｓ６５に従って以下のように実行される。つまり、マージ処理中のＡＴＰＧパターンの対象故障数（ＡＴＰＧパターンの圧縮対象となった故障の数；ターゲット故障数）の初期値として“１”を設定してから（ステップＳ６１）、ターゲット故障数がターゲット故障数上限値（target_limit）に達したか否かを判定する（ステップＳ６２）。上限値に達していない場合（ステップＳ６２のＮＯルート）、二次故障のためのテストパターンを生成・マージし（ステップＳ６３）、ターゲット故障数を１だけインクリメントしてから（ステップＳ６４）、全ての未検出故障がターゲットになったか否かを判断する（ステップＳ６５）。未検出故障が残っている場合（ステップＳ６５のＮＯルート）、ステップＳ６２に戻り上述と同様の処理を行なう一方、未検出故障が残っていない場合（ステップＳ６５のＹＥＳルート）や、ターゲット故障数が上限値に達した場合（ステップＳ６２のＹＥＳルート）、ＡＴＰＧ部１３Ａはダイナミックコンパクションを終了する。
【０１２３】
ついで、制御部１６Ａは、パターン修正部１４Ａに修正要求を通知して疑似ランダムパターンの修正処理を実行させる（ステップＳ５４）。その際、パターン修正部１４Ａでは、ＡＴＰＧ部１３Ａにより生成されたＡＴＰＧパターンと、疑似ランダムパターン発生部１２Ａにより生成された疑似ランダムパターンとが比較され、疑似ランダムパターンの中で、ＡＴＰＧパターンの値と異なる入力ポイントの値が反転・修正される。このようにして修正された疑似ランダムパターンが、修正テストパターンとして故障シミュレーション部１５Ａに送信される。
【０１２４】
そして、制御部１６Ａは、故障シミュレーション部１５Ａにシミュレーション実行要求を通知して、修正テストパターンによるシミュレーションを実行させる（ステップＳ５５）。その際、故障シミュレーション部１５Ａでは、修正テストパターンによって検出可能な未検出故障がシミュレート（評価）され、そのシミュレーションによって特定される、故障検出率／検出率変化率，実行時間，生成テストパターン数等のテスト進行指標が制御部１６Ａに通知される。
【０１２５】
シミュレーション終了後、制御部１６Ａは、全ての故障を検出したか否かの判定（ステップＳ５６）、故障検出率が指示された値に達したか否かの判定（ステップＳ５７）、生成テストパターン数が指示された値（制限値）に達したか否かの判定（ステップＳ５８）、実行時間が指示された値（制限値）に達したか否かの判定（ステップＳ５９）を行なう。これらのステップＳ５６〜Ｓ５９で全てＮＯ判定となった場合には、ステップＳ５１に戻り上述と同様の処理が実行される。これらのステップＳ５６〜Ｓ５９のうちのいずれか一つでもＹＥＳ判定となった場合には、処理を終了する。
【０１２６】
このように、本発明の第５実施形態の第１構成例の試験装置によれば、ＡＴＰＧ部１３Ａがダイナミックコンパクションにより検出対象故障の圧縮を行なう際に、検出対象故障の数に関する上限値を設け、この上限値に到達した時点で圧縮を終了するとともに、その上限値が、テストパターン生成の初期では小さく設定されテストパターン生成の進行に伴い大きく設定される。これにより、ＡＴＰＧパターンにおける要求値（不定値以外の値）の数を抑制することができる。特に、テストパターン生成の初期でのテストパターン修正量が抑制される。従って、パターン修正部１４Ａによるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験をより効率よく行なえるようになる。
【０１２７】
〔５−２〕第２構成例の説明
図１９は本発明の第５実施形態としての集積回路の試験装置の第２構成例を示すブロック図であり、この図１９に示すように、第５実施形態の第２構成例の試験装置は、パターン修正上限値設定部１１Ｂ，疑似ランダムパターン発生部１２Ｂ，ＡＴＰＧ部１３Ｂ，パターン修正部１４Ｂ，故障シミュレーション部１５Ｂおよび制御部１６Ｂをそなえて構成されている。
【０１２８】
パターン修正上限値設定部（実行制限条件設定部）１１Ｂは、ＡＴＰＧ部１３ＢがＡＴＰＧパターンに対する圧縮処理（ダイナミックコンパクション）を実行する場合に、その圧縮処理の実行制限条件を設定するもので、ここでは、実行制限条件として、一つのＡＴＰＧパターンに基づいて後述するパターン修正部１４Ｂが疑似ランダムパターンの修正を行なった場合におけるパターン修正量の上限値を設定するものであり、ＡＴＰＧパターンの生成の進行に伴って、その上限値を大きく変化させるように動作する。
【０１２９】
より具体的に説明すると、パターン修正上限値設定部１１Ｂは、制御部１６Ｂから通知される、故障検出率やその故障検出率の変化率や生成テストパターン数や実行時間（疑似ランダムパターン発生部１２Ｂの実行時間）等を、テスト進行を示すの指標として取得し、図２０を参照しながら後述するごとく、修正数荷重（w_modify）を算出し、この修正数荷重と対象回路内に存在するスキャンＦ／Ｆの数とに基づいて、修正ポイント数の上限（パターン修正量の上限値）である修正数上限値（modify_limit）を算出・設定し、その修正数上限値を制御部１６Ｂに通知するものである。
【０１３０】
疑似ランダムパターン発生部（パターン発生器）１２Ｂは、第１実施形態におけるＬＦＳＲ２に対応するもので、やはりＬＦＳＲにより実現される乱数発生器を用いて疑似ランダムパターンを生成するものである。
ＡＴＰＧ部（自動テストパターン生成部）１３Ｂは、ダイナミックコンパクションモードでテストパターン生成を行なうものであり、疑似ランダムパターン発生部１２Ｂの生成する疑似ランダムパターンと、一次故障もしくは二次故障のためにＡＴＰＧ手法によって生成されたテストパターン（ＡＴＰＧパターン）とを比較し、後述するパターン修正部１４Ｂで見込まれるパターン修正数を逐一評価し、そのパターン修正数の合計値（累積値）がパターン修正上限値設定部１１Ｂによって設定された修正数上限値（modify_limit）を超過するまで（つまり実行制限条件が満たされるまで）、二次故障に対するテストパターン生成（圧縮処理）を繰り返し行なうようになっている。
【０１３１】
つまり、ＡＴＰＧ部１３Ｂは、圧縮中のＡＴＰＧパターンに基づいてパターン修正部１４Ｂが疑似ランダムパターンの修正を行なった場合におけるパターン修正量が、パターン修正上限値設定部１１Ｂによって設定された修正数上限値（modify_limit）に達した時点で、ＡＴＰＧパターンに対する圧縮処理を終了させるようになっている。
【０１３２】
パターン修正部（パターン修正器）１４Ｂは、第１実施形態におけるパターン修正器４に対応するもので、ＡＴＰＧ部１３Ｂにより生成されたＡＴＰＧパターンと、疑似ランダムパターン発生部１２Ｂにより生成された疑似ランダムパターンとを受け取り、これらのＡＴＰＧパターンと疑似ランダムパターンとを比較して、疑似ランダムパターンの中で、ＡＴＰＧパターンの値と異なる入力ポイントの値を反転・修正し、修正された疑似ランダムパターンを修正テストパターンとして故障シミュレーション部１５Ｂに転送するものである。
【０１３３】
故障シミュレーション部１５Ｂは、パターン修正部１４Ｂにより修正されたテストパターンを受け取り、そのテストパターンによって検出可能な未検出故障をシミュレート（評価）し、そのシミュレーションによって特定される、故障検出率，その故障検出率の変化率，実行時間，生成テストパターン数等のテスト進行指標を制御部１６Ｂに通知するものである。
【０１３４】
制御部１６Ｂは、上述したパターン修正上限値設定部１１Ｂ，疑似ランダムパターン発生部１２Ｂ，ＡＴＰＧ部１３Ｂ，パターン修正部１４Ｂおよび故障シミュレーション部１５Ｂの動作を制御するためのもので、具体的には、パターン修正上限値設定部１１Ｂへのテスト進行指標の通知や、修正数上限値の受信や、ＡＴＰＧ部１３Ｂへの修正数上限値およびＡＴＰＧパターン生成要求の通知や、疑似ランダムパターン発生部１２Ｂへのパターン生成要求の通知や、パターン修正部１４Ｂへの修正要求の通知や、故障シミュレーション部１５Ｂへのシミュレーション実行要求の通知や、テスト進行指標の受信を行なうものである。そして、制御部１６Ｂは、制御部１６Ａと同様、全ての故障を検出した場合、または、故障検出率，生成テストパターン数もしくは実行時間のいずれかが指示された値に達した場合に、処理を終了するようになっている。
【０１３５】
次に、図２０を参照しながら上述したごとく構成された試験装置の動作を、図１９に示すフローチャート（ステップＳ７１〜Ｓ７９）に従って説明する。
まず、パターン修正上限値設定部１１Ｂにより、修正数上限値（modify_limit）を、テストパターン生成の初期段階では十分に小さく、テストの進行に伴いその上限値を上昇させるように算出・設定して、制御部１６Ｂに通知する（ステップＳ７１）。その際、パターン修正上限値設定部１１Ｂは、制御部１６Ｂから、故障検出率／検出率変化率，生成テストパターン数，実行時間等をテスト進行指標として取得し（ステップＳ７１１）、これらのテスト進行指標を引数として修正数荷重（w_modify）を算出する（ステップＳ７１２）。故障検出率によって修正数荷重（w_modify）を算出する算出式の一例を下式(3)として示す。
w_modify＝(100.0−故障検出率(%))／100.0      (3)
【０１３６】
そして、パターン修正上限値設定部１１Bは、上式(3)によって算出された修正量荷重（w_modify）と、対象回路内に存在するスキャンＦ／Ｆの数とに基づいて、修正数上限値（modify_limit）を、例えば下式(4)により算出・設定してから、制御部１６Ｂに通知する（ステップＳ７１３）。
target_limit＝スキャンＦ／Ｆ数 * w_modify        (4)
【０１３７】
この後、制御部１６Ｂは、疑似ランダムパターン発生部１２Ｂにパターン生成要求を通知して疑似ランダムパターンを生成さるとともに（ステップＳ７２）、ＡＴＰＧ部１３Ｂに、修正数上限値（modify_limit）およびＡＴＰＧパターン生成要求を通知して、ダイナミックコンパクションを伴うＡＴＰＧパターン生成を実行させる（ステップＳ７３）。
【０１３８】
このとき、ＡＴＰＧ部１３Ｂでは、まず、パターン修正総数の初期値として“０”を設定してから（ステップＳ７３１）、一次故障についてのテストパターンを生成し（ステップＳ７３２）、パターン修正数の評価を行なう（ステップＳ７３３）。その際、一次故障に対するテストパターンと疑似ランダムパターンとを比較し、パターン修正部１４Ｂで見込まれるパターン修正数を評価して求める。そして、そのパターン修正評価数をパターン修正総数に加算してから（ステップＳ７３４）、二次故障を検出するためのテストパターンをマージする（ステップＳ７３５）。
【０１３９】
このマージ処理は、ステップＳ８１〜Ｓ８５に従って以下のように実行される。つまり、まず、現在のパターン修正総数が修正数上限値（modify_limit）に達しているか否かを判定する（ステップＳ８１）。上限値に達していない場合（ステップＳ８１のＮＯルート）、二次故障のためのテストパターンを生成・マージし（ステップＳ８２）、パターン修正数の評価を行なう（ステップＳ８３）。その際、ステップＳ７３３と同様、二次故障に対するテストパターンと疑似ランダムパターンとを比較し、パターン修正部１４Ｂで見込まれるパターン修正数を評価して求める。そして、そのパターン修正評価数をパターン修正総数に加算してから（ステップＳ８４）、全ての未検出故障がターゲットになったか否かを判断する（ステップＳ８５）。未検出故障が残っている場合（ステップＳ８５のＮＯルート）、ステップＳ８１に戻り上述と同様の処理を行なう一方、未検出故障が残っていない場合（ステップＳ８５のＹＥＳルート）や、パターン修正総数が上限値に達した場合（ステップＳ８１のＹＥＳルート）、ＡＴＰＧ部１３Ｂはダイナミックコンパクションを終了する。
【０１４０】
ついで、制御部１６Ｂは、パターン修正部１４Ｂに修正要求を通知して疑似ランダムパターンの修正処理を実行させる（ステップＳ７４）。その際、パターン修正部１４Ｂでは、ＡＴＰＧ部１３Ｂにより生成されたＡＴＰＧパターンと、疑似ランダムパターン発生部１２Ｂにより生成された疑似ランダムパターンとが比較され、疑似ランダムパターンの中で、ＡＴＰＧパターンの値と異なる入力ポイントの値が反転・修正される。このようにして修正された疑似ランダムパターンが、修正テストパターンとして故障シミュレーション部１５Ｂに送信される。
【０１４１】
そして、制御部１６Ｂは、故障シミュレーション部１５Ｂにシミュレーション実行要求を通知して、修正テストパターンによるシミュレーションを実行させる（ステップＳ７５）。その際、故障シミュレーション部１５Ｂでは、修正テストパターンによって検出可能な未検出故障がシミュレート（評価）され、そのシミュレーションによって特定される、故障検出率／検出率変化率，実行時間，生成テストパターン数等のテスト進行指標が制御部１６Ｂに通知される。
【０１４２】
シミュレーション終了後、制御部１６Ｂは、全ての故障を検出したか否かの判定（ステップＳ７６）、故障検出率が指示された値に達したか否かの判定（ステップＳ７７）、生成テストパターン数が指示された値（制限値）に達したか否かの判定（ステップＳ７８）、実行時間が指示された値（制限値）に達したか否かの判定（ステップＳ７９）を行なう。これらのステップＳ７６〜Ｓ７９で全てＮＯ判定となった場合には、ステップＳ７１に戻り上述と同様の処理が実行される。これらのステップＳ７６〜Ｓ７９のうちのいずれか一つでもＹＥＳ判定となった場合には、処理を終了する。
【０１４３】
このように、本発明の第５実施形態の第２構成例の試験装置によれば、ＡＴＰＧ部１３Ｂがダイナミックコンパクションにより検出対象故障の圧縮を行なう際に、パターン修正部１４Ｂでの修正数（擬似ランダムパタン発生部１２Ｂで生成された疑似ランダムパターンをＡＴＰＧ部１３Ｂで生成されたＡＴＰＧパターンに修正する際の修正量）に関する上限値を設け、この上限値に到達した時点で圧縮を終了するとともに、その上限値が、テストパターン生成の初期では小さく設定されテストパターン生成の進行に伴い大きく設定される。これにより、上述した第１構成例と同様、ＡＴＰＧパターンにおける要求値（不定値以外の値）の数を抑制することができる。特に、テストパターン生成の初期でのテストパターン修正量が抑制される。従って、パターン修正部１４Ｂによるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験をより効率よく行なえるようになる。
【０１４４】
〔６〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１４５】
〔７〕付記
（付記１）  集積回路中に組み込まれて試験パターンを発生するパターン発生器と、
該集積回路内部の順序回路素子で形成した複数のシフトレジスタと、
該パターン発生器によって発生された試験パターンを外部入力により修正してから該複数のシフトレジスタに入力するパターン修正器とをそなえて構成されたことを特徴とする、集積回路の試験装置。
【０１４６】
（付記２）  試験パターンを入力される、集積回路内部の順序回路素子で形成した複数のシフトレジスタと、
該複数のシフトレジスタからの出力中の不定値をマスクする不定マスク器と、
該不定マスク器によってマスクされた出力結果を検証する出力検証器とをそなえて構成されたことを特徴とする、集積回路の試験装置。
【０１４７】
（付記３）  集積回路中に組み込まれて試験パターンを発生するパターン発生器と、
該集積回路内部の順序回路素子で形成した複数のシフトレジスタと、
該パターン発生器によって発生された試験パターンを外部入力により修正してから該複数のシフトレジスタに入力するパターン修正器と、
該複数のシフトレジスタからの出力中の不定値をマスクする不定マスク器と、
該不定マスク器によってマスクされた出力結果を検証する出力検証器とをそなえて構成されたことを特徴とする、集積回路の試験装置。
【０１４８】
（付記４）  該出力検証器に、前記マスクされた出力結果を圧縮する圧縮手段をそなえたことを特徴とする、付記２または付記３に記載の集積回路の試験装置。
（付記５）  集積回路中に組み込まれたパターン発生器で試験パターンを発生し、
発生された該試験パターンを外部入力により修正してから、
修正された該試験パターンを、該集積回路内部の順序回路素子で形成した複数のシフトレジスタに入力することを特徴とする、集積回路の試験方法。
【０１４９】
（付記６）  ＡＴＰＧパターンを生成し前記外部入力として該パターン修正器に与える自動テストパターン生成部をさらにそなえ、
該パターン発生器が、前記試験パターンとして疑似ランダムパターンを発生するとともに、
該パターン修正器が、該自動テストパターン生成部から与えられた該ＡＴＰＧパターンに基づいて、該疑似ランダムパターンを修正することを特徴とする、付記１または付記３に記載の集積回路の試験装置。
【０１５０】
（付記７）  該パターン修正器が、該パターン発生器によって発生された複数の疑似ランダムパターン、および、前記外部入力としての複数のＡＴＰＧパターンから、該疑似ランダムパターンと該ＡＴＰＧパターンとの適当な組合せを選択し、選択された該ＡＴＰＧパターンに基づいて、選択された該疑似ランダムパターンを修正することを特徴とする、付記６記載の集積回路の試験装置。
【０１５１】
（付記８）  該自動テストパターン生成部が、該パターン発生器によって発生された該疑似ランダムパターンを参照し、当該疑似ランダムパターンに応じた適当な対象故障を選択し、該対象故障を検出しうるＡＴＰＧパターンを、当該疑似ランダムパターンの修正基準として生成することを特徴とする、付記６記載の集積回路の試験装置。
【０１５２】
（付記９）  該パターン発生器によって発生される該疑似ランダムパターンと前記外部入力としての該ＡＴＰＧパターンとを比較し、該ＡＴＰＧパターンに近い疑似ランダムパターンを該パターン発生器に発生させうる、該パターン発生器の特性情報を決定する特性情報決定部をさらにそなえ、
該パターン発生器が、該特性情報決定部により決定された該特性情報に基づいて、該疑似ランダムパターンを発生することを特徴とする、付記６記載の集積回路の試験装置。
【０１５３】
（付記１０）  前記特性情報が、該パターン発生器に設定されるシード値であることを特徴とする、付記９記載の集積回路の試験装置。
（付記１１）  該パターン発生器がリニアフィードバックシフトレジスタとして構成され、
前記特性情報が、該リニアフィードバックシフトレジスタにおけるフィードバック位置であることを特徴とする、付記９記載の集積回路の試験装置。
【０１５４】
（付記１２）  該自動テストパターン生成部が該ＡＴＰＧパターンに対する圧縮処理を実行する場合に前記圧縮処理の実行制限条件を設定する実行制限条件設定部をさらにそなえ、
該自動テストパターン生成部が、該実行制限条件設定部によって設定された前記実行制限条件を満たした時点で該ＡＴＰＧパターンに対する圧縮処理を終了させることを特徴とする、付記６記載の集積回路の試験装置。
【０１５５】
（付記１３）  該実行制限条件設定部が、前記実行制限条件として、一つのＡＴＰＧパターンによって検出されるべき故障の数の上限値を設定し、
該自動テストパターン生成部が、該ＡＴＰＧパターンの圧縮対象となった故障の数が前記上限値に達した時点で該ＡＴＰＧパターンに対する圧縮処理を終了させることを特徴とする、付記１２記載の集積回路の試験装置。
【０１５６】
（付記１４）  該実行制限条件設定部が、該ＡＴＰＧパターンの生成の進行に伴って、前記上限値を大きくすることを特徴とする、付記１３記載の集積回路の試験装置。
（付記１５）  該実行制限条件設定部が、前記実行制限条件として、一つのＡＴＰＧパターンに基づいて該パターン修正器が該疑似ランダムパターンの修正を行なった場合におけるパターン修正量の上限値を設定し、
該自動テストパターン生成部が、圧縮中の該ＡＴＰＧパターンに基づいて該パターン修正器が該疑似ランダムパターンの修正を行なった場合におけるパターン修正量が前記上限値に達した時点で該ＡＴＰＧパターンに対する圧縮処理を終了させることを特徴とする、付記１２記載の集積回路の試験装置。
【０１５７】
（付記１６）  該実行制限条件設定部が、該ＡＴＰＧパターンの生成の進行に伴って、前記上限値を大きくすることを特徴とする、付記１５記載の集積回路の試験装置。
（付記１７）  順序回路素子を含んで構成される集積回路であって、
該順序回路素子で形成した複数のシフトレジスタをそなえるとともに、
試験パターンを発生するパターン発生器と、
該パターン発生器によって発生された試験パターンを外部入力により修正してから該複数のシフトレジスタに入力するパターン修正器とが組み込まれたことを特徴とする、集積回路。
【０１５８】
（付記１８）  順序回路素子を含んで構成される集積回路であって、
試験パターンを入力される、該順序回路素子で形成した複数のシフトレジスタをそなえるとともに、
該複数のシフトレジスタからの出力中の不定値をマスクする不定マスク器と、
該不定マスク器によってマスクされた出力結果を検証する出力検証器とが組み込まれたことを特徴とする、集積回路。
【０１５９】
（付記１９）  順序回路素子を含んで構成される集積回路であって、
該順序回路素子で形成した複数のシフトレジスタをそなえるとともに、
試験パターンを発生するパターン発生器と、
該パターン発生器によって発生された試験パターンを外部入力により修正してから該複数のシフトレジスタに入力するパターン修正器と、
該複数のシフトレジスタからの出力中の不定値をマスクする不定マスク器と、
該不定マスク器によってマスクされた出力結果を検証する出力検証器とが組み込まれたことを特徴とする、集積回路。
【０１６０】
（付記２０）  該パターン発生器が、前記試験パターンとして疑似ランダムパターンを発生するとともに、
該パターン修正器が、自動テストパターン生成部によって生成され前記外部入力として与えられたＡＴＰＧパターンに基づいて、該疑似ランダムパターンを修正することを特徴とする、付記１７または付記１９に記載の集積回路。
【０１６１】
【発明の効果】
以上詳述したように、本発明の集積回路の試験装置および試験方法によれば、以下のような効果ないし利点を得ることができる。
（１）集積回路中に組み込まれたパターン発生器で発生した試験パターンをパターン修正器で修正して複数のシフトレジスタに入力するため、シフトレジスタであるスキャンパス数を増やしスキャンパス段数を少なくすることにより、集積回路の試験時間が大幅に短縮される。また、ＤＳＰＴおよびＢＩＳＴの問題点が解決され、両者の利点を生かした高品質なテストを短時間で可能とするテストパターンを生成することができる。その際、意味あるデータ部分（値を設定する必要のあるＦ／Ｆの情報）のみをテスタ（外部入力）から供給して修正するので、テスタに格納されるデータの量を大幅に削減することもできる。従って、設計者に厳しい設計規約を課すことなく、且つ、高価なテスタを必要とすることなく、高品質なテストを行なえる（請求項１，３，５，６）。
【０１６２】
（２）集積回路内部の順序回路素子で形成した複数のシフトレジスタからの出力中の不定値をマスクし、マスクされた出力結果を出力検証器で検証するため、順序回路素子からの出力結果を圧縮して外部に読み出しても、不定状態が圧縮結果を台無しにしてしまうことがなくなる（請求項２，３）。
（３）出力検証器にマスク処理後の出力結果を圧縮する圧縮手段をそなえるため、順序回路素子からの出力結果を出力検証器に効率よく格納することができる（請求項４）。
【０１６３】
（４）複数の疑似ランダムパターンおよび複数のＡＴＰＧパターンから疑似ランダムパターンとＡＴＰＧパターンとの適当な組合せを選択し、選択されたＡＴＰＧパターンに基づいて、選択された疑似ランダムパターンを修正することにより、パターン修正器によるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験の効率化にも寄与することになる（請求項７）。
【０１６４】
（５）パターン発生器によって発生された疑似ランダムパターンに応じた適当な対象故障を選択し、その対象故障を検出しうるＡＴＰＧパターンを生成して疑似ランダムパターンの修正基準として用いることにより、パターン修正器によるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験の効率化にも寄与することになる（請求項８）。
【０１６５】
（６）ＡＴＰＧパターンに近い疑似ランダムパターンをパターン発生器に発生させうるパターン発生器の特性情報を決定し、その特性情報に基づいて、疑似ランダムパターンを発生することにより、パターン修正器によるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験の効率化にも寄与することになる（請求項９）。
【０１６６】
（７）ＡＴＰＧパターンに対する圧縮処理を実行する場合に圧縮処理の実行制限条件を設定し、その実行制限条件を満たすまでＡＴＰＧパターンに対する圧縮処理を繰り返し実行することにより、ＡＴＰＧパターンにおける要求値（不定値以外の値）の数を抑制することができ、パターン修正器によるパターン修正量が削減され、効率よくパターンの修正を行なうことができ、ひいては集積回路の試験の効率化にも寄与することになる（請求項１０）。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本実施形態におけるＡＴＰＧの設定Ｆ／Ｆ数の分布状態を説明するための図である。
【図３】本発明の第１実施形態としての集積回路の試験装置の構成を示すブロック図である。
【図４】本発明の第１実施形態の試験装置におけるパターン発生部分の構成を詳細に示すブロック図である。
【図５】本発明の第１実施形態における乱数（疑似ランダムパターン）およびＡＴＰＧの設定を説明するための図である。
【図６】本発明の第１実施形態における入力パターン例に対するシフト結果を説明するための図である。
【図７】本発明の第１実施形態の試験装置における出力検証部分の構成を詳細に示すブロック図である。
【図８】本発明の第２実施形態としての集積回路の試験装置の動作を説明するためのフローチャートである。
【図９】本発明の第２実施形態におけるパターン修正動作の具体例を説明するための図である。
【図１０】本発明の第２実施形態におけるパターン修正動作の具体例を説明するための図である。
【図１１】本発明の第２実施形態におけるパターン修正動作の具体例を説明するための図である。
【図１２】本発明の第２実施形態におけるパターン修正動作の具体例を説明するための図である。
【図１３】本発明の第３実施形態としての集積回路の試験装置の動作を説明するためのフローチャートである。
【図１４】本発明の第３実施形態におけるＡＴＰＧパターン生成動作の具体例を説明するための図である。
【図１５】本発明の第４実施形態としての集積回路の試験装置における特性情報決定動作の第１例（シード値決定動作）を説明するためのフローチャートである。
【図１６】本発明の第４実施形態としての集積回路の試験装置における特性情報決定動作の第２例（フィードバック位置決定動作）を説明するためのフローチャートである。
【図１７】本発明の第５実施形態としての集積回路の試験装置の第１構成例を示すブロック図である。
【図１８】図１７に示す第１構成例の動作を説明するためのフローチャートである。
【図１９】本発明の第５実施形態としての集積回路の試験装置の第２構成例を示すブロック図である。
【図２０】図１８に示す第２構成例の動作を説明するためのフローチャートである。
【図２１】従来のスキャン設計を説明するための図である。
【図２２】従来のＢＩＳＴ回路を説明するための図である。
【符号の説明】
２  ＬＦＳＲ（パターン発生器）
２ａ  パターン発生器
３  フェイズシフタ
４  パターン修正器
５  不定マスク器
６  スペースコンパクタ
７  ＭＩＳＲ（出力検証器，圧縮手段）
７ａ  出力検証器
１０Ａ  シード値決定部（特性情報決定部）
１０Ｂ  フィードバック位置決定部（特性情報決定部）
１１Ａ  ターゲット故障数設定部（実行制限条件設定部）
１１Ｂ  パターン修正上限値設定部（実行制限条件設定部）
１２Ａ，１２Ｂ  疑似ランダムパターン発生部（パターン発生器）
１３Ａ，１３Ｂ  ＡＴＰＧ部（自動テストパターン生成部）
１４Ａ，１４Ｂ  パターン修正部（パターン修正器）
１５Ａ，１５Ｂ  故障シミュレーション部
１６Ａ，１６Ｂ  制御部
＃０，＃１，…，＃ｎ−１  シフトレジスタ（スキャンパス）
Ｆ／Ｆ  フリップフロップ（順序回路素子）
【図１】
0004228061.tif 000004
【図２】
0004228061.tif 000005
【図３】
0004228061.tif 000006
【図４】
0004228061.tif 000007
【図５】
0004228061.tif 000008
【図６】
0004228061.tif 000009
【図７】
0004228061.tif 000010
【図８】
0004228061.tif 000011
【図９】
0004228061.tif 000012
【図１０】
0004228061.tif 000013
【図１１】
0004228061.tif 000014
【図１２】
0004228061.tif 000015
【図１３】
0004228061.tif 000016
【図１４】
0004228061.tif 000017
【図１５】
0004228061.tif 000018
【図１６】
0004228061.tif 000019
【図１７】
0004228061.tif 000020
【図１８】
0004228061.tif 000021
【図１９】
0004228061.tif 000022
【図２０】
0004228061.tif 000023
【図２１】
0004228061.tif 000024
【図２２】
0004228061.tif 000025