(57)【要約】本発明は、集積回路試験装置及び試験方法に関し、パターン発生器が生成するパターンとの差分が最少となるパターンを作成し、テストコストの削減率が高い試験装置及び試験方法を提供する。本発明は、回路内部で仮定される全故障のリストを作成し、例えば乱数パターンを一つ入力して、当該入力パターンに対する論理シミュレーションにより回路内部の信号値を定めて、制御性、観測性、およびテスタビリティを計算する。テスタビリティが最小となる対象故障をリストから選択し、その対象故障について、入力パターンの制御性および観測性を用いた経路活性化を行い、入力パターンの信号値の反転数が最少となるようにパターンを修正する。また、対象故障について修正パターンを用いて故障シミュレーションを行い、さらに検出される故障があれば故障リストから削除する。
2004027440.tif 000002
【特許請求の範囲】
【請求項１】
テストパターンを自動生成する集積回路試験装置において、
入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線に対してある値を設定するための困難さである制御性を計算する第１のコスト関数計算手段と、
前記制御性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う経路活性化手段とを備える
ことを特徴とする集積回路試験装置。
【請求項２】
テストパターンを自動生成する集積回路試験装置において、
入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線の故障を観測点に伝播するための困難さである観測性を計算する第２のコスト関数計算手段と、
前記観測性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う経路活性化手段とを備える
ことを特徴とする集積回路試験装置。
【請求項３】
テストパターンを自動生成する集積回路試験装置において、
入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線に対してある値を設定するための困難さである制御性を計算する第１のコスト関数計算手段と、
前記パターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線の故障を観測点に伝播するための困難さである観測性を計算する第２のコスト関数計算手段と、
前記制御性および前記観測性にもとづいて前記テストパターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う経路活性化手段とを備える
ことを特徴とする集積回路試験装置。
【請求項４】
テストパターンを自動生成する集積回路試験装置において、
入力されたパターンで検出される故障を選択する場合に、ある信号線の故障を検出するための困難さであるテスタビリティを計算する第３のコスト関数計算手段と、
前記テスタビリティにもとづいて、回路内部に仮定される全ての故障から対象とする故障を選択する対象故障選択手段とを備える
ことを特徴とする集積回路試験装置。
【請求項５】
当該集積回路試験装置は、さらに、
入力されたパターンで検出される故障を選択する場合に、ある信号線の故障を検出するための困難さであるテスタビリティを計算する第３のコスト関数計算手段と、
前記テスタビリティにもとづいて、回路内部に仮定される全ての故障から対象とする故障を選択する対象故障選択手段とを備える
ことを特徴とする請求の範囲第１項ないし第３項のいずれかに記載の集積回路試験装置。
【請求項６】
パターン発生器とそのパターンを外部入力により修正するパターン修正器とを備えて前記修正されたパターンが複数のスキャンパスに入力される集積回路試験装置において、
前記パターン発生器から入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線に対してある値を設定するための困難さである制御性を計算する第１のコスト関数計算手段と、
前記パターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線の故障を観測点に伝播するための困難さである観測性を計算する第２のコスト関数計算手段と、
前記制御性および前記観測性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択する経路活性化を行い、前記選択を行うための制御信号を前記パターン修正器に出力する経路活性化手段とを備える
ことを特徴とする集積回路試験装置。
【請求項７】
当該集積回路試験装置は、さらに
入力されたパターンで検出される故障を選択する場合に、ある信号線の故障を検出するための困難さであるテスタビリティを計算する第３のコスト関数計算手段と、
前記テスタビリティにもとづいて、回路内部に仮定される全ての故障から対象とする故障を選択する対象故障選択手段とを備える
ことを特徴とする請求の範囲第６項記載の集積回路試験装置。
【請求項８】
テストパターンを自動生成する集積回路試験方法において、
入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線に対してある値を設定するための困難さである制御性を計算し、
前記制御性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う
ことを特徴とする集積回路試験方法。
【請求項９】
テストパターンを自動生成する集積回路試験方法において、
入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線の故障を観測点に伝播するための困難さである観測性を計算し、
前記観測性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う
ことを特徴とする集積回路試験方法。
【請求項１０】
テストパターンを自動生成する集積回路試験方法において、
入力されたパターンで検出される故障を選択する場合に、ある信号線の故障を検出するための困難さであるテスタビリティを計算し、
前記テスタビリティにもとづいて、回路内部に仮定される全ての故障から対象とする故障を選択する
ことを特徴とする集積回路試験方法。
【発明の詳細な説明】
【技術分野】  本発明は、集積回路（ＬＳＩ）の製造不良を検出するための集積回路試験装置および試験方法に関する。
【背景技術】  集積回路（ＬＳＩ）の製造不良の検出は、テスタ（ＡＴＥ）を用いてＬＳＩの入力ピンに適当な信号値を印加して、その出力ピンに現れる信号値を期待される結果と比較することで行われる。この入力ピンの信号値と出力ピンの期待値とを合わせてテストパターンと呼ぶ。ＬＳＩの製造不良によりＬＳＩの内部に生じる欠陥は故障と呼ばれ、ＬＳＩ内部に起こりうる全ての故障について検証を行うためには、多くのテストパターンが必要となる。また、あるテストパターンでＬＳＩ内部に仮定される故障のうち検証できる割合を診断率（または検出率）と言い、テストパターンの品質を計るときの尺度として使われている。
テストパターンを作成する方法には、以下のようなものがある。
・Ｒａｎｄｏｍ  Ｔｅｓｔ  Ｇｅｎｅｒａｔｉｏｎ（ＲＴＧ）
・Ｍａｎｕａｌ  Ｔｅｓｔ  Ｇｅｎｅｒａｔｉｏｎ
・Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｉｏｎ（ＡＴＰＧ）
上記方法が必要に応じて組み合わせて用いられるが、高い診断率を得るために広くＡＴＰＧが利用されている。ＡＴＰＧにもいくつかの方法が存在するが、経路活性化アルゴリズム（Ｐａｔｈ−Ｓｅｎｓｉｔｉｚａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）に属するものが現在の主流である。
経路活性化アルゴリズムは、ある故障を検出するための故障励起（ｆａｕｌｔ  ｅｘｃｉｔａｔｉｏｎ）と故障伝播（ｆａｕｌｔ−ｅｆｆｅｃｔ  ｐｒｏｐａｇａｔｉｏｎ）の二つの基本的なステップからなる。
故障励起では、故障仮定点に故障値と反対の値とを設定する。これにより、故障が存在する場合と正常な場合とで故障点の状態値が異なることになる。この状態を故障が励起されたという。
また、故障伝播では、励起された故障の影響を観測点（外部出力）まで伝播させることである。結果として故障点から観測点までの経路（ｐａｔｈ）上の信号値は全て正常時と故障時とで異なるものとなる。この経路を活性化経路（ｓｅｎｓｉｔｉｚｅｄ  ｐａｔｈ）と呼ぶ。第１０図に、活性化経路の例を示す。第１０図の回路上の活性化経路を太い実線で示す。また、この活性化経路では、故障励起のための信号値が信号線ａに設定され、故障伝播のための信号値が信号線ｃおよび信号線ｄに設定されていることを示す。
故障励起と故障伝播とを実現するためには、特定の信号線に所望の信号値を設定する必要がある。回路内部の信号線の値は、最終的にはＬＳＩの制御点である外部入力の信号値に帰着される。すなわち、ＡＴＰＧにより、ある故障を検出するために、その故障の活性化経路を形成するための外部入力の信号値と、その結果故障の影響が伝播される外部出力の期待値（正常時に期待される信号値）とからなるテストパターンが作成される。
ＡＴＰＧがテストパターンを作成する過程において、いくつかの選択が生じる。例えば２入力ＡＮＤゲートの出力を０にして故障を励起する場合には、２本の入力のどちらか一方の値が０であれば良いため、０を設定する入力をどちらかに選択する必要がある。また、故障伝播中に信号線の分岐がある場合にも、どちらか一方の経路が活性化されれば良いため、ここでも選択が必要となる。
一般的なＡＴＰＧでは、いくつかの選択肢が存在する場合には、とりあえずその中の一つを選択して処理を進める必要がある。しかし、その選択の結果、信号値の設定に矛盾が生じたり経路の活性化に失敗したりした場合には、一つ前の選択を行った場面に戻り別の選択肢を選んで処理を進める必要がある。これをバックトラックという。
ＬＳＩが順序回路素子（フリップフロツプ［Ｆ／Ｆ］、ラッチおよびＲＡＭ）を含む場合には、テストパターン作成の複雑さは飛躍的に増大する。そこで、ＬＳＩ内部の主にＦ／Ｆで構成される順序回路素子でシフトレジスタ（スキャンパスと呼ばれる）を形成して試験時に所望の値をシフトインし、クロック印加後にシフトレジスタの値を外部に読み出すスキャン設計が行われている。スキャン設計を施した回路に対して、ＡＴＰＧで作成したテストパターンをテスタに格納して行われるＤｅｔｅｒｍｉｎｉｓｔｉｃ  Ｓｔｏｒｅｄ  Ｐａｔｔｅｒｎ  Ｔｅｓｔ（ＤＳＰＴ）という手法が広く採用されている。第１１図は、ＤＳＰＴの概念図である。ＤＳＰＴでは、ＬＳＩ内部に設けたスキャンパスＳＰにテストパターンＴＰ１をシフトインし、テストパターンＴＰ２をシフトアウトする。
しかし、近年ＬＳＩ集積度の増大に伴い、内部に含まれる順序回路素子が非常に多くなってきたため、スキャンパスを構成する全ての順序回路素子に対して、テストパターン毎に設定および読出しを繰り返すＤＳＰＴを適用することは、試験時間およびテストデータの増大により困難となってきている。特に、テストデータ量の増大によるテスタのメモリ容量の逼迫は、メモリの増強やテスタのアップグレードなどテストコストを大幅に引き上げることになる。
この問題を解決するために、組込み自己試験（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ［ＢＩＳＴ］）が行われるようになってきた。第１２図は、ＢＩＳＴの概念図である。ＢＩＳＴでは、疑似乱数パターン発生器９１で発生されたランダムなパターンがＬＳＩの内部回路９０に印加され、その出力結果が出力検証器９２で検証・格納される。疑似乱数パターン発生器９１と出力検証器９２とには、リニアフイードバックシフトレジスタ（ＬＦＳＲ）が使われることが多く、特に、出力検証器９２は、出力結果をシグネチャとして圧縮格納するためマルチインプットシグネチャレジスタ（ＭＩＳＲ）と呼ばれる。
ＢＩＳＴでは、パターン発生器がＬＳＩの内部に搭載されているため外部テスタに入力テストパターンを格納しておく必要がなく、ＭＩＳＲにより試験結果を圧縮するためテスタにロードするデータ量を圧倒的に削減できる。また、ＢＩＳＴではスキャンパスの数を多くしてスキャンパスへのシフトイン・シフトアウト動作を高速化して、試験時間が短縮できる。
ＢＩＳＴは、前記のＤＳＰＴの問題点を改善できるが、いくつかの欠点も存在する。ＢＩＳＴでは、疑似乱数パターンが用いられるため、試験の品質（診断率）に問題がある。この診断率を高めるためには、追加テストとしてＤＳＰＴを適用するか、ＬＳＩ内部の回路に制御性と観測性を増すようなテストポイントを挿入する必要がある。
また、ＢＩＳＴでは出力データをＭＩＳＲに圧縮格納するので、その構成上不定状態（Ｘ値）を取り込むとＭＩＳＲ内の値が破壊されるため、試験不能となってしまう。一般に、ＬＳＩ内部のＲＡＭを含む順序回路素子は電源投入時には不定状態であるため、これらの順序回路素子を初期化するか、不定状態がＭＩＳＲに伝播しないように回路を工夫する必要がある。
この他にも、バス設計時にランダムパターンによりバスのコンフリクトやフロート状態が起きないような工夫を施す必要があるなど、ＢＩＳＴを実回路に適用するには厳しい設計制約を設計者に強いることになる。これに加え、ＢＩＳＴ用の付加回路とテストポイント挿入による回路のエリアオーバーヘッドと性能低下も問題となる。
このようなＤＳＰＴとＢＩＳＴとの問題点を解決するため、特願平１２−３７２２３１「集積回路試験装置及び試験方法」にて、試験時間の短縮とテストデータ量を削減し、かつ高品質な試験を可能とする試験装置および試験方法を提案した。
第１３図に、前記特許出願にて開示した試験装置の回路のブロック図を示す。前記特許出願で開示した技術は、ＢＩＳＴ回路を基本としたものであって、疑似乱数パターン発生器（ＬＦＳＲ）９３が作り出したパターンをパターン修正器９４によりＡＴＰＧと同等のパターンに修正し、スキャンパスにシフトインする。そして試験クロックを印加した後、スキャンパス出力の中の不定状態値を不定マスク器９５でマスク処理し、出力検証器９６内のＭＩＳＲに圧縮格納する。
一般的に、ＡＴＰＧが作り出すパターンのうち明示的にＦ／Ｆに値を設定する数は全Ｆ／Ｆのうちの極僅か（数％）である。前記特許出願で開示した技術は、明示的に設定するＦ／Ｆの値のみを制御信号９７を通して外部テスタより与えることにより、パターン修正器９４を通して疑似乱数パターンをＡＴＰＧと同等の高品質なパターンに変更することが可能である。また、ＢＩＳＴの設計制約となる不定状態値のＭＩＳＲへの取り込みを不定マスク器９５でブロックすることにより、設計者への負担を大幅に軽減している。
このように、前記特許出願で開示した技術では、どのような種類のＡＴＰＧが作り出す、どのようなテストパターンも利用可能である。しかし、テストデータ量や試験時間などのテストコストを大幅に削減するためには、回路内部に設けられたＬＦＳＲ９３が作り出すランダムパターンとＡＴＰＧが作り出すパターンとの差分が小さいことが必要となる。
ここで、ＡＴＰＧは、いくつかの故障を対象として必要ないくつかのＦ／Ｆの値を決定し、残りの多くのＦ／Ｆには回路内部に設けられたＬＦＳＲ９３が作り出す値を設定する。これにより、ランダムパターンとテストパターンとの差分を小さくすることができる。しかし、対象とする故障が多い場合や活性化が複雑な場合には、ＡＴＰＧが設定する必要のあるＦ／Ｆ数が多くなり、テストコストの削減率が悪くなる。
前記特許出願で開示した技術では、ＡＴＰＧが設定するＦ／Ｆの値とＬＦＳＲが設定するＦ／Ｆの値とに関連がない。ＡＴＰＧが設定するＦ／Ｆの値とＬＦＳＲが設定するＦ／Ｆの値とが等しくなることは半分の確率であるが、平均してＡＴＰＧが設定するＦ／Ｆの半数はテスタからの付加パターンが作成されるため、テストコスト削減率を低下させる。
本発明の目的は、回路内の疑似乱数パターン発生器が生成する乱数パターンとの差分がなるべく少なくなるようなテストパターン作成を行って、テストコストの削減率を大きくする試験装置及び試験方法を提供することである。
【発明の開示】
本発明では、テストパターンを自動作成する集積回路試験装置において、テストパターンの信号値割り当てにおいて選択が必要になった場合に、回路内の疑似乱数パターン発生器が発生した乱数パターンとの差分が少なくなるように信号値割り当てを選択するためのコスト関数（Ｆｌｉｐ−ｂａｓｅｄ  Ｃｏｓｔ  Ｆｕｎｃｔｉｏｎ）を提案する。
ＡＴＰＧでは、テストパターン作成の過程で、さまざまな選択を行う必要があり、その選択は、ある選択基準に従って行われる。この選択基準として、制御性（Ｃｏｎｔｒｏｌｌａｂｉｌｉｔｙ）および観測性（Ｏｂｓｅｒｖａｂｉｌｉｔｙ）の二つのコスト関数が用いられる。制御性（Ｃｏｎｔｒｏｌｌａｂｉｌｉｔｙ）は、ある信号線に対してある値を設定するための困難さを示す。観測性（Ｏｂｓｅｒｖａｂｉｌｉｔｙ）は、ある信号線の故障値を観測点に伝播するための困難さを示す。
本発明では、テストパターンの信号値割り当ての選択において、制御性および観測性をコスト関数として採用し、コスト関数の算出結果にもとづいて乱数パターンとの差分ができるだけ小さくなるように信号値を選択する処理を行う。
また、ＡＴＰＧでは、検出するべき故障のリストを持ち、その故障リストはある基準に従ってソーティングされていて、一般にリスト上位の故障から、その故障を検出するためのテストパターンが作成される。
本発明では、擬似乱数パターン発生器で生成される乱数パターン列が予め与えられているので、それぞれの乱数パターンから差分が少ない故障を選択する。このテストパターンの対象となる故障を選択するためのコスト関数として、テスタビリティ（Ｔｅｓｔａｂｉｌｉｔｙ）を採用する。テスタビリティは、ある信号線の故障を検出するための困難さである。テスタビリティは、予め与えられた乱数パターンについて、前記の二つのコスト関数、制御性および観測性より算出できる。これにより、コスト削減率をさらに高めることが可能となる。
本発明は、テストパターンを自動生成する集積回路試験装置において、入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線に対してある値を設定するための困難さである制御性を計算する第１のコスト関数計算手段と、前記制御性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う経路活性化手段とを備える。
また、本発明は、テストパターンを自動生成する集積回路試験装置において、入力されたパターンに対する信号値割り当てにおいて値の選択が必要な場合に、ある信号線の故障を観測点に伝播するための困難さである観測性を計算する第２のコスト関数計算手段と、前記観測性にもとづいて前記パターンの制御可能な外部入力の反転数が少なくなるように前記信号値割り当てを選択して経路活性化を行う経路活性化手段とを備える。
また、本発明は、テストパターンを自動生成する集積回路試験装置において、入力されたパターンで検出される故障を選択する場合に、ある信号線の故障を検出するための困難さであるテスタビリティを計算する第３のコスト関数計算手段と、前記テスタビリティにもとづいて、回路内部に仮定される全ての故障から対象とする故障を選択する対象故障選択手段とを備える。
本発明にかかる集積回路試験装置は、回路内部に仮定される全ての故障を含む故障リストを作成し、例えば、疑似乱数パターン発生器で作られた乱数パターンを一つ取り出す。そして、当該乱数パターンに対する論理シミュレーションにより回路内部の信号値を定めて、回路全体に対する制御性および観測性を計算し、当該制御性および当該観測性をもとにテスタビリティを計算する。その後、故障リストからテスタビリティが最も低い故障を選択して対象故障とし、当該対象故障について乱数パターンの制御性および観測性を用いた経路活性化を行い、当該乱数パターンの制御可能な外部入力（信号値）の反転数が最小となるように反転を選択し、当該選択に従って乱数パターンを修正する。さらに、当該修正パターンを用いて故障シミュレーションを行い、検出される別の故障があれば故障リストから削除する。
【図面の簡単な説明】  第１図は、本発明にかかる集積回路試験装置のブロック構成図である。
第２図は、テストパターン作成装置の内部構成図である。
第３図は、本発明にかかる試験方法の処理フロー図である。
第４図は、制御性の再計算範囲を示す図である。
第５図は、観測性とテスタビリティの再計算範囲を示す図である。
第６図は、経路活性化の説明図１である。
第７図は、経路活性化の説明図２である。
第８図は、経路活性化の説明図３である。
第９図は、経路活性化の説明図４である。
第１０図は、活性化経路の例を示す図である。
第１１図は、ＤＳＰＴの概念図である。
第１２図は、ＢＩＳＴの概念図である。
第１３図は、特願平１２−３７２２３１「集積回路試験装置及び試験方法」にて開示した試験装置の回路のブロック図である。
【発明を実施するための最良の形態】  第１図に、本発明にかかる集積回路試験装置のブロック構成図を示す。
集積回路試験装置は、テストパターン作成装置（ＡＴＰＧ）１０および回路２０からなる。回路２０は、疑似乱数パターン発生器（ＬＦＳＲ）２１、パターン修正器２２、スキャンパス２３、出力検証器（ＭＩＳＲ）２４を備える。
疑似乱数パターン発生器（ＬＦＳＲ）２１は、疑似乱数により乱数パターン３０を生成する手段である。パターン修正器２２は、テストパターン作成装置（ＡＴＰＧ）１０からの制御信号３２によりＬＦＳＲ２１が生成した乱数パターン３０のいくつかの値を反転させてスキャンパス２３へシフトインする手段である。出力検証器（ＭＩＳＲ）２４は、スキャンパス２３の出力を圧縮・格納する手段である。
第２図に、テストパターン作成装置（ＡＴＰＧ）１０の内部構成図を示す。ＡＴＰＧ１０は、故障リスト作成部１１、乱数パターン入力部１２、論理シミュレーション部１３、コスト関数計算部１４、対象故障選択部１５、経路活性化部１６、故障シミュレーション部１７、および故障リスト変更部１８からなる。
故障リスト作成部１１は、回路内部に仮定される全ての故障を含む故障リスト３１を作成する手段である。乱数パターン入力部１２は、回路２０内に構成されるＬＦＳＲ２１で作られる乱数パターン３０を一つ取り出す手段である。論理シミュレーション部１３は、乱数パターン入力部１２が入力した乱数パターン３０をもとに論理シミュレーションを行い、回路内部の信号値を決定する手段である。
コスト関数計算部１４は、制御性、観測性、およびテスタビリティのコスト関数をそれぞれ計算する手段である。コスト関数計算部１４は、制御性Ｃ（ｘ）を算出する制御性算出部１４１、観測性Ｏ（ｘ）を算出する観測性算出部１４２、および０縮退故障検出のテスタビリティＴ０（ｘ）と１縮退故障検出のテスタビリティＴ１（ｘ）とを算出するテスタビリティ算出部１４３を備える。
対象故障選択部１５は、故障リスト３１中の故障のうち、コスト関数計算部１４で算出したテスタビリティが最も低い故障を対象故障として選択する手段である。
経路活性化部１６は、対象故障選択部１５で選択した対象故障に対して制御性および観測性のコスト関数を用いた経路活性化を行い、乱数パターン３０のいくつかの制御可能な外部入力（信号値）を反転した修正パターンを作成し、乱数パターン３０の値を反転させるための制御信号３２を出力する手段である。
故障シミュレーション部１７は、修正パターンを用いて故障シミュレーションを行い、検出される別の故障を抽出する手段である。故障リスト変更部１８は、故障シミュレーション部１７が抽出した検出される故障を故障リスト３１から削除する手段である。
第３図に、本発明の処理フロー図を示す。
ＡＴＰＧ１０は、故障リスト作成部１１により、回路内部に仮定される全ての故障を含む故障リスト３１を作成する（ステップＳ１）。そして、乱数パターン入力部１２により、ＬＦＳＲ２１から乱数パターン３０を一つ取り出す（ステップＳ２）。そして、論理シミュレーション部１３により、入力した乱数パターン３０をもとに論理シミュレーションを行い回路内部の信号値を決定する（ステップＳ３）。論理シミュレーションは既知の手法により行う。
つぎに、コスト関数計算部１４により、制御性Ｃ（ｘ）、観測性Ｏ（ｘ）、およびテスタビリティＴ０（ｘ）、Ｔ１（ｘ）のコスト関数を、信号値を決定した回路全体に対して計算する（ステップＳ４）。
制御性Ｃ（ｘ）は、ある信号線ｘの信号値を反転させる困難さを表すものと定義する。ｎ本の入力を持つＡＮＤゲートを考えたとき、全ての入力の制御性が分かっていると仮定すると、出力の制御性Ｃ（ｘ）は以下のように計算する。
2004027440.tif 000003
ここで、ｓｔａｔｅ（ｘ）は信号線ｘの信号値を表す。
回路全体の制御性Ｃ（ｘ）の計算は、最初に、外部入力すなわち乱数パターン３０の制御性に１を与え、外部入力から外部出力に向かって上記式（１）に従って再帰的に計算を繰り返すことで行う。結果として、制御性Ｃ（ｘ）は信号線ｘの信号値を反転するために反転が必要な外部入力の数を表す。
同様に観測性Ｏ（ｘ）は、ある信号線ｘの故障を観測点に伝播するための困難さを表すものと定義する。ｎ本の入力を持つＡＮＤゲートを考えたとき、全ての入力の制御性が分かっていて、かつ出力ｘの観測性Ｏ（ｘ）が分かっていると仮定すると、ある入力ｄの観測性Ｏ（ｄ）は以下のように計算する。
2004027440.tif 000004
回路全体の観測性Ｏ（ｘ）の計算は、回路全体の制御性Ｃ（ｘ）を計算した後、最初に外部出力の観測性Ｏ（ｘ）に０を与え、外部出力から外部入力に向かって上記式（２）に従って再帰的に計算を繰り返すことで行う。結果として、Ｏ（ｘ）は信号線ｘの故障を観測点に伝播するために反転が必要な外部入力の数を表す。
テスタビリティＴ０（ｘ）、Ｔ１（ｘ）は、ある信号線ｘのそれぞれ０縮退故障もしくは１縮退故障を検出するテストパターン作成の困難さを表すものと定義する。テスタビリティＴ０（ｘ）、Ｔ１（ｘ）は、以下のように計算する。
2004027440.tif 000005
上記式（３）および式（４）のように、回路全体の制御性Ｃ（ｘ）と観測性Ｏ（ｘ）を用いて、全ての故障のテスタビリティを計算することができる。
ここで注意することは、制御性Ｃ（ｘ）、観測性Ｏ（ｘ）およびテスタビリティＴ０（ｘ）、Ｔ１（ｘ）の計算は、与えられた入力パターンによって異なることであり、入力パターン、ここでは乱数パターン３０の外部入力信号を反転するごとに再計算する必要がある。この場合に、回路全体のコスト関数を再計算する方法以外にも、反転した外部入力の影響範囲のみを再計算して高速化することも可能である。
具体的には制御性の再計算範囲は、反転した外部入力の影響が前方に伝わる範囲に限られる。すなわち、制御性Ｃ（ｘ）の再計算範囲Ｒ１は、第４図に示すように、回路内部の入力側の反転した入力信号から出力側へコーン状に広がる範囲内に限られる。
また、観測性Ｏ（ｘ）およびテスタビリティＴ０（ｘ）、Ｔ１（ｘ）の再計算範囲は、反転した外部入力の影響が到達した外部出力から今度は逆に外部入力方向にバックトレースできる範囲内に限られる。すなわち、観測性Ｏ（ｘ）およびテスタビリティＴ０（ｘ）、Ｔ１（ｘ）の再計算範囲Ｒ２は、第５図に示すように、出力側で反転の影響があった範囲内の出力信号から入力側へコーン状に広がる範囲内に限られる。
つぎに、対象故障選択部１５により、故障リスト３１中の故障のうちテスタビリティＴ０（ｘ）／Ｔ１（ｘ）が最も低い故障を選択して対象故障とする（ステップＳ５）。
そして、経路活性化部１６により、対象故障に対して、前記のコスト関数を用いた経路活性化（ｐａｔｈ−Ｓｅｎｓｉｔｉｚａｔｉｏｎ）を行い、入力した乱数パターン３０のいくつかの制御可能な外部入力（信号値）を反転した修正パターンを作成し、乱数パターン３０の当該外部入力を反転するための制御信号３２を出力する（ステップＳ６）。
コスト関数を用いた経路活性化は、以下のように行う。
対象故障点の故障値と現在の信号値が一致している場合には、０縮退故障または１縮退故障を生じさせるために故障励起を行う。故障励起では制御性Ｃ（ｘ）をガイドとして一つの外部入力まで後方探索を行う。探索した外部入力の信号値を反転させて論理シミュレーションを行い、制御性Ｃ（ｘ）を無限大（∞）にして制御性Ｃ（ｘ）と観測性Ｏ（ｘ）との再計算を行う。制御性Ｃ（ｘ）を無限大（∞）にするのは、この後に生じるバックトレースで同一の外部入力の反転を繰り返さないためである。再び対象故障点の信号値の一致を調べ、一致している間は後方探索を繰り返す。途中、対象故障点の制御性が無限大（∞）になった場合には、バックトラックを行う。
次に故障伝播を行う。入力に故障値を持ち、かつ出力の観測性Ｏ（ｘ）が無限大（∞）ではないゲートをＤフロンティアとすると、故障伝播はＤフロンティアを外部出力まで進めることである。Ｄフロンティアが複数ある場合は、一つのＤフロンティアを選択し、故障値以外の入力にｎｏｎ−Ｃｏｎｔｒｏｌｌｉｎｇ  ｖａｌｕｅ（ＡＮＤゲートでは１、ＯＲゲートでは０）を設定することを目的として、制御性Ｏ（ｘ）をガイドとして一つの外部入力まで後方探索を行う。そして、その外部入力の信号値を反転させて論理シミュレーションを行い、さらに制御性Ｃ（ｘ）を無限大（∞）にして制御性Ｃ（ｘ）および観測性Ｏ（ｘ）の再計算を行う。再びＤフロンティアへの伝播処理を繰り返し、外部出力に到達すれば経路活性化が成功したものとする。途中で、Ｄフロンティアがなくなってしまった場合には、バックトラックを行う。
第６図ないし第９図に示す簡単な例を用いて、具体的にコスト関数を用いた経路活性化の手順を説明する。
第６図に、ある回路および与えられた乱数パターンの例を示す。第６図は、回路に対して行われた論理シミュレーションとコスト関数計算との結果も示している。ここで、乱数パターン３０およびゲートの出力の信号値Ｖに続く括弧内の値は、それぞれ制御性Ｃｉと観測性Ｏｉとを示す。例えば、信号線ｈは、信号値Ｖ（制御性Ｃｉ，観測性Ｏｉ）＝０（１，０）であることを示す。
ここで、対象故障として信号線ｅの１縮退故障Ｆａ１を検出することを考える。対象故障点（ＡＮＤゲートＡの出力側）の信号値Ｖは１であって、故障値と一致しているので、故障励起を行う必要がある。信号線ｅより制御性Ｃ（ｘ）をガイドとして後方探索を行う。第６図に示すように、信号線ａと信号線ｂのどちらかを反転させれば良いことがわかる。ここでは、図中太い矢印線で示すように、反転する入力として信号線ａを選択すると仮定する。
第７図に、信号線ａの信号値を反転した場合の論理シミュレーションとコスト関数再計算の結果を示す。信号線ｅと信号線ｆとが活性化されているが、ともに観測性Ｏｉ＝Ｏ（ｘ）が無限大（∞）となりＤフロンティア（ＤＦ）がないことがわかる。そこでバックトラックを行う。
バックトラックの結果、信号線ａの選択をやめて、故障励起のために信号線ｂの信号値Ｖを反転させる。第８図に、信号線ｂの信号値Ｖを反転させた場合の論理シミュレーションとコスト関数再計算の結果を示す。ここで、ＡＮＤゲートＤに着目すると、ＡＮＤゲートＤは、入力ピンに故障値を持ち、かつ観測性Ｏｉが無限大（∞）でないためＤフロンティア（ＤＦ）であることが分かる。
そこで、ＡＮＤゲートＤに対する故障伝播処理を行う。制御性Ｃｉ＝Ｃ（ｘ）をガイドとして、ＡＮＤゲートＤの１縮退故障Ｆａ１の伝播していない入力（信号線ｇ）から後方探索を行うと信号線ｄを反転させる必要があることが分かる。第９図に、信号線ｄの信号値Ｖを反転させ、論理シミュレーションおよびコスト関数再計算を行った結果を示す。結果として、信号線ｈに至る活性化経路が形成され、信号線ｅの１縮退故障Ｆａ１を検出するテストパターンが作成できている。そこで、乱数パターン３０について信号線ａおよび信号線ｄの信号値Ｖを反転して修正パターンを生成する。
また、乱数パターン３０について信号線ａおよび信号線ｄの信号値Ｖを反転させるための制御信号３２をパターン修正器２２へ送出する。なお、パターン修正器２２は、この制御信号３２にしたがって乱数パターン３０を修正してスキャンパス２３へシフトインする。
故障シミュレーション部１７では、故障点とその修正パターンとを取得して故障シミュレーションを行い、検出される別の故障を抽出し（ステップＳ７）、故障リスト変更部１８により、故障シミュレーション部１７が検出した故障を故障リスト３１から削除する（ステップＳ８）。
その後、故障リスト変更部１８が故障を削除した後の故障リスト３１がまだ空でなく故障が残っていれば（ステップＳ９）、ステップＳ２の処理へ戻り、故障リスト３１が空であれば処理を終了する。
本発明の別の実施の形態として、ＡＴＰＧ１０では、最初の数十パターンについては、ＬＦＳＲ２１の乱数パターン３０をそのまま使用して故障シミュレーションのみを行う処理手順が考えられる。これは、回路内部のほとんど（５０％〜８０％）の故障は乱数パターンで検出可能であり、検出されずに残った故障のみを検出するテストパターンをＡＴＰＧ１０で生成することが処理時間の面で有利なためである。この場合に、ＡＴＰＧ１０は、乱数パターン入力部１２により、ＬＦＳＲ２１が生成した乱数パターン３０のうちの最初の数十の乱数パターン３０についてはそのまま取り出し、故障シミュレーション部１７により、その乱数パターン３０について故障シミュレーションのみを行う。そして、それ以降に取り出した乱数パターン３０については、第３図に示す処理フローに従って処理を行う。
また、本発明の別の実施の形態として、一つのパターンに対して一つの対象故障に対する経路活性化を行うだけでなく、複数の故障に対する経路活性化を試みた後に故障シミュレーションを行う処理手順が考えられる。これは、ダイナミックコンパクションと呼ばれる既知の手法を本発明に応用するものであり、パターン数の削減に非常に効果がある。
この場合には、ＡＴＰＧ１０は、第３図に示す処理フローにおいて、対象故障選択部１５により対象故障を選択する場合に、一つの乱数パターンで検出される複数の対象故障を選択するようにし、この複数の対象故障に対して以降の処理を行う。
以上、本発明をその実施の態様により説明したが、本発明はその主旨の範囲において種々の変形が可能である。
本発明の実施の形態として、制御性および観測性の両方をコスト関数として用いた処理について説明したが、例えばＡＴＰＧ１０は、これらのいずれか一方のコスト関数を用いてテストパターン作成を行うことも可能である。
また、ＡＴＰＧ１０の乱数パターン入力部１２は、ＬＦＳＲ２１からパターンを取り出す代わりに、ＬＦＳＲ２１が生成する乱数パターン３０と同様のパターンを生成してもよい。
また、乱数パターン入力部１２は、ＬＦＳＲ２１から乱数パターン３０を取り出す代わりに、一つ前の処理で作成したテストパターンを用いてもよい。
また、経路活性化部１６は、制御信号３２の代わりに修正パターンを出力するようにしてもよい。
本発明の各手段または機能または要素は、コンピュータにより読み取られ実行される処理プログラムとして実現することができる。また、本発明を実現するプログラムは、コンピュータが読み取り可能な、可搬媒体メモリ、半導体メモリ、ハードディスクなどの適当な記録媒体に格納することができ、これらの記録媒体に記録して提供され、または、通信インタフェースを介して種々の通信網を利用した送受信により提供されるものである。
【産業上の利用可能性】  以上のように、本発明にかかる集積回路試験装置および試験方法は、集積回路の製造不良などの故障を検出するために利用することができる。
本発明は、テストパターンを自動作成する集積回路試験装置において、信号値割り当ての選択が必要な場合に、ＬＦＳＲが生成した乱数パターンをコスト関数に従って外部入力の反転が最少となるように経路活性化する。そして乱数パターンの入力を反転した修正パターンを生成し、この修正パターンを用いて回路の検証を行う。これにより、乱数パターンをもとに差分をなるべく少なくして多くの故障を検出することが可能であるため、テストコストの削減が期待できる。
また、本発明は、特願平１２−３７２２３１「集積回路試験装置及び試験方法」で示した試験装置に適用すると非常に効果的である。前記特許出願で開示した試験装置は回路内部にＬＦＳＲを備えており、ＡＴＰＧが作成したパターンと乱数パターンとの差分が小さいときに劇的にテストデータ量を削減し、試験時間を短縮することが可能となる。
また、本発明は、入力する乱数パターンの代わりに一つ前に作ったテストパターンを用いることで、信号変化の少ないテストパターンの作成が可能となる。信号変化を抑えたテストパターンを用いることで、試験中の集積回路の消費電力を抑えることができる。高集積化で試験時の消費電力抑制が望まれる場合に効果的である。
【図１】
2004027440.tif 000006
【図２】
2004027440.tif 000007
【図３】
2004027440.tif 000008
【図４】
2004027440.tif 000009
【図５】
2004027440.tif 000010
【図６】
2004027440.tif 000011
【図７】
2004027440.tif 000012
【図８】
2004027440.tif 000013
【図９】
2004027440.tif 000014
【図１０】
2004027440.tif 000015
【図１１】
2004027440.tif 000016
【図１２】
2004027440.tif 000017
【図１３】
2004027440.tif 000018
【国際調査報告】
2004027440.tif 000019
2004027440.tif 000020
2004027440.tif 000021
2004027440.tif 000022