(57)【要約】  論理回路は、少なくとも１つの入力と１つの出力と遅延故障回路とを有する。遅延故障回路は、第１の標準スキャンセルと、スキャンチェーン内で第１の標準スキャンセルの直後に位置付けられている組み合わせテスト点と、スキャンチェーン内で組み合わせテスト点の直後に位置付けられている第２の標準スキャンセルとを有する。【特許請求の範囲】
【請求項１】
少なくとも１つの入力と１つの出力と遅延故障回路とを有する論理回路であって、
前記遅延故障回路は、
第１の標準スキャンセルと、
スキャンチェーン内で前記第１の標準スキャンセルの直後に位置付けられている組み合わせ(combinational)テスト点と、
前記スキャンチェーン内で前記組み合わせテスト点の直後に位置付けられている第２の標準スキャンセルと、
を有する、論理回路。
【請求項２】
前記組み合わせテスト点は、第１の標準スキャンセルと第２の標準スキャンセルとの間のシフト依存性を防止するように位置付けられている、請求項１に記載の論理回路。
【請求項３】
前記第１及び第２の標準スキャンセルはフリップフロップである、請求項１に記載の論理回路。
【請求項４】
前記組み合わせテスト点はＡＮＤ（アンド）ゲートを有する、請求項１に記載の論理回路。
【請求項５】
前記組み合わせテスト点はＯＲ（オア）ゲートを有する、請求項１に記載の論理回路。
【請求項６】
前記組み合わせテスト点はＡＮＤ−ＯＲ（アンド−オア）ゲートを有する、請求項１に記載の論理回路。
【請求項７】
前記論理回路は完全な標準スキャン環境のもとでテスト可能である、請求項１に記載の論理回路。
【請求項８】
前記論理回路は部分的な標準スキャン環境のもとでテスト可能である、請求項１に記載の論理回路。
【請求項９】
前記論理回路は少なくとも１つの機能拡張されたスキャンセルを含んでいる、請求項１に記載の論理回路。
【請求項１０】
前記回路は、該回路内の少なくとも１つの縮退故障(stuck-at fault)をテストすることができるように構成されている、請求項１に記載の論理回路。
【請求項１１】
前記回路は、該回路内の少なくとも１つの遅延故障(delay fault)をテストすることができるように構成されている、請求項１に記載の論理回路。
【請求項１２】
少なくとも１つの入力と１つの出力と遅延故障回路とを有する論理回路であって、前記遅延故障回路は、
第１の標準スキャンセルと、
スキャンチェーン内で前記第１の標準スキャンセルの直後に位置付けられているテスト点と、
前記スキャンチェーン内で前記テスト点の直後に位置付けられている第２の標準スキャンセルと、
を有し、前記テスト点は、前記遅延故障回路内の前記第１の標準スキャンセルと前記第２の標準スキャンセルとの間で発生することが識別されるシフト依存性を防止するように位置付けられている、論理回路。
【請求項１３】
前記テスト点の位置は回路の機能解析に基づいて定められる、請求項１２に記載の論理回路。
【請求項１４】
前記テスト点は、前記論理回路のどのプライマリ入力にも入力を与えない、スキャンチェーン内のダミースキャンフリップフロップである、請求項１２に記載の論理回路。
【請求項１５】
前記テスト点は組み合わせテスト点である、請求項１２に記載の論理回路。
【請求項１６】
前記テスト点の位置は、
依存性テスト不可能な遷移遅延故障(dependency untestable transition delay fault)を識別し、
そのような故障ごとに、もし前記故障が最小テスト生成コストをもつならば当該故障を対象とするテストキューブ対を生成し、もし、現在のテストキューブ対の組内の、他のどのテストキューブ対とも矛盾しないならば、当該テストキューブ対を前記現在のテストキューブ対の組に追加して前記現在のテストキューブ対の組に基づいて現在のテスト点ベクトルを更新し、
前記現在のテスト点ベクトルに基づいてグローバルテスト点ベクトルを生成する
ことによって決定され、ここで、前記グローバルテスト点ベクトルは、前記テスト点が挿入されるべき位置を特定する、請求項１２に記載の論理回路。
【請求項１７】
前記グローバルテスト点ベクトルは、どのタイプのテスト点が挿入されるべきかも特定する、請求項１６に記載の論理回路。
【請求項１８】
第１のテストパターンを、スキャンチェーン内の第１の標準スキャンセルにロードすることと、
前記第１の標準スキャンセルの出力を、前記スキャンチェーン内の組み合わせテスト点にロードすることと、
前記組み合わせテスト点の出力を前記スキャンチェーン内の第２の標準スキャンセルにロードすることと、
を有する、論理回路をテストする方法。
【請求項１９】
前記組み合わせテスト点は、前記第１の標準スキャンセルと前記第２の標準スキャンセルとの間のシフト依存性を防止する、請求項１８に記載の論理回路をテストする方法。
【請求項２０】
前記論理回路は、完全な標準スキャン環境のもとでテスト可能である、請求項１８に記載の方法。
【請求項２１】
前記論理回路は、部分的な標準スキャン環境のもとでテスト可能である、請求項１８に記載の方法。
【請求項２２】
前記論理回路は少なくとも１つの機能拡張スキャンセルを含んでいる、請求項１８に記載の方法。
【請求項２３】
前記論理回路中の少なくとも１つの縮退故障がテストされる、請求項１８に記載の方法。
【請求項２４】
前記論理回路中の少なくとも１つの遅延故障がテストされる、請求項１８に記載の方法。
【請求項２５】
前記組み合わせテスト点はＡＮＤ（アンド）ゲートを有する、請求項１８に記載の方法。
【請求項２６】
前記組み合わせテスト点はＯＲ（オア）ゲートを有する、請求項１８に記載の方法。
【請求項２７】
前記組み合わせテスト点はＡＮＤ−ＯＲ（アンド−オア）ゲートを有する、請求項１８に記載の方法。
【請求項２８】
少なくとも１つの論理回路と少なくとも１つの遅延故障回路とを有し、前記遅延故障回路は、
スキャンチェーン内の第１の標準スキャンセルと、
前記スキャンチェーン内で前記第１の標準スキャンセルの直後に位置付けられた組み合わせテスト点と、
前記スキャンチェーン内で前記組み合わせテスト点の直後に位置付けられた第２の標準スキャンセルと、
を有する、集積回路。
【請求項２９】
前記第１及び第２のスキャンセルはフリップフロップである、請求項２８の集積回路。
【請求項３０】
前記組み合わせテスト点は、前記第１の標準スキャンセルと前記第２の標準スキャンセルとの間のシフト依存性を防止するように位置づけられている、請求項２８に記載の集積回路。
【請求項３１】
前記組み合わせテスト点は、さらに、ＡＮＤ（アンド）ゲート、ＯＲ（オア）ゲート、または、ＡＮＤ−ＯＲ（アンド−オア）ゲートを有する、請求項２８に記載の集積回路。
【請求項３２】
スキャンベースの技術を用いてテスト可能な回路を設計する方法であって、
前記回路の機能解析に基づいて、シフト依存性が生じる前記回路中の少なくとも１対の標準スキャンセルを正確に識別することと
前記回路中の前記識別された点にテスト点を挿入することと、
を有する、方法。
【請求項３３】
前記挿入されるテスト点はダミースキャンメモリである、請求項３２に記載の方法。
【請求項３４】
前記スキャンメモリはフリップフロップである、請求項３３に記載の方法。
【請求項３５】
前記挿入されるテスト点は組み合わせゲートである、請求項３２に記載の方法。
【請求項３６】
前記回路中の、シフト依存性が生じる点が、自動テストプログラム生成器（ＡＴＰＧ）を用いて識別される、請求項３２に記載の方法。
【請求項３７】
前記ＡＴＰＧは、挿入されたテスト点を挟んで配置されているスキャンメモリを識別する、請求項３６に記載の方法。
【請求項３８】
前記スキャンメモリはフリップフロップである、請求項３７に記載の方法。
【請求項３９】
回路をテストする方法であって、
ａ）標準スキャン環境のもとでスキュード・ロード方法(skewed-load approach)を用いて２パターンテストの第１の組を適用することと、
ｂ）標準スキャン環境のもとでブロードサイド・ロード方法(broadside-load approach)を用いて、ステップａ）で検出されない故障を対象として２パターンテストの第２の組を適用することと、
ｃ）残りの故障のために必要なテスト努力を複数の部分フェーズに分割し、各部分フェーズのもとで、起動・伝搬テストサイクルごとに、異なるテスト点の組を、当該異なるテスト点の組以外のテスト点をディセイブルに維持しながら、イネーブルにすることと、
を有する方法。
【請求項４０】
標準スキャン環境は、テストパターン対の可能な全組み合わせのサブセットのみが前記回路をテストするために適用されるテスト環境を含んでいる、請求項３９に記載の方法。
【請求項４１】
前記回路は、標準スキャン環境でシフト依存性が生じる回路内の点にテスト点を有する、請求項３９に記載の方法。
【請求項４２】
前記スキュード・ロード方法の実施の間、前記２つのパターンの第１の組から得られる第２のパターンは、前記２つのパターンから得られる第１のパターンを１スキャンメモリ素子分だけシフトさせることによって得られる、請求項３９に記載の方法。
【請求項４３】
前記ブロードサイド・ロード方法の実施の間、前記２つのパターンの第２の組から得られる第２のパターンは、当該回路の、第１のパターンに対する応答によって得られる、請求項３９に記載の方法。
【請求項４４】
スキャンチェーン中において隣接している第１のフリップフロップ及び第２のフリップフロップの各々に対してテスト点がディセイブルにされているとき、あるテストサイクルにおける前記第２のフリップフロップの値は、前のテストサイクルにおける前記第２のフリップフロップの値と同一であるように維持される、請求項３９に記載の方法。
【請求項４５】
スキャンチェーン中において隣接している第１のフリップフロップ及び第２のフリップフロップの各々に対して、テスト点がイネーブルにされているとき、あるテストサイクルにおける前記第２のフリップフロップの値は、前記第１及び第２のフリップフロップ間のテスト点によって変更される、請求項３９に記載の方法。
【請求項４６】
少なくとも２つの両立するテスト点信号が共通の制御信号によって駆動されるようにグループ化される、請求項３９に記載の方法。
【請求項４７】
少なくとも２つの反転両立するテスト点信号が、少なくとも、共通の制御信号によって駆動されるようにグループ化される、請求項３９に記載の方法。
【請求項４８】
回路をテストし、該テストの各部分フェーズの間にイネーブルにされるべきテスト点を識別する、テスト点を設計する方法であって、
ａ）依存性テスト不可能な遷移遅延故障を識別することと、
ｂ）グローバル変数を初期化することと、
ｃ）現在のテストキューブ対の組と現在のテスト点ベクトルとを初期化することと、
ｄ）テストされていない故障が故障リスト中にもはや存在しないならば、処理を中止することと、
ｅ）前記故障リスト中において、最小のテスト生成コストを有する、マークされていない故障を選択してマーク付けすることと、
ｆ）前記マークされていない故障を対象とするテストキューブ対を生成することと、
ｇ）もし、ステップｆ）において生成されたテストキューブ対が、前記現在のテストキューブ対の組内のいずれか他のテストキューブ対と矛盾することに起因して、当該テストキューブ対を前記現在のテストキューブ対の組に追加することができないならば、当該生成されたテストキューブ対を廃棄してステップｅ）に進むことと、
ｈ）前記生成されたテストキューブ対を前記現在のテストキューブ対の組に追加して、それに応じて前記現在のテスト点ベクトルを更新することと、
ｉ）もし、前記現在のテストキューブ対の組内の他のテストキューブ対と矛盾しないで前記テストキューブ対の組に追加することができるテストキューブ対がもはや存在しないならば、グローバルテスト点ベクトルを更新して、ステップｃ）に進むことと、
を有する方法。
【請求項４９】
依存性テスト不可能な故障が、標準スキャン環境のもとではテスト可能ではないが、完全な機能拡張スキャン環境のもとではテスト可能である故障を含んでいる、請求項４８に記載の方法。
【請求項５０】
完全な機能拡張スキャン環境は、テストパターン対の総ての可能な組み合わせが前記回路をテストするために適用されるテスト環境を含んでいる、請求項４９に記載の方法。
【請求項５１】
標準スキャン環境は、テストパターン対の総ての可能な組み合わせのサブセットのみが前記回路をテストするために適用されるテスト環境を含んでいる、請求項４９に記載の方法。
【請求項５２】
ステップｆ）において、前記現在のテスト点ベクトルと前記グローバルテスト点ベクトルとを考慮して最小数のテスト点が生成されるように、テストキューブ対が生成される、請求項４８に記載の方法。
【請求項５３】
前記テストキューブ対は、２つの異なる時間フレームに対して生成され、前記２つの異なる時間フレームの一方は、初期化パターンのための時間フレームであり、他方は、伝搬パターンのための時間フレームである、請求項５２に記載の方法。
【請求項５４】
２以上のバックトレースが可能のときには、最小可制御性コストを生成するバックトレースパスが用いられる、請求項４８に記載の方法。
【請求項５５】
可制御性コストは、第１の時間フレームの可制御性コストと第２の時間フレームの可制御性コストとを含んでいる、請求項５４に記載の方法。
【請求項５６】
可制御性コストは、前記回路中の線路がある２進値に設定されたときに負担されるべきハードウエアコストを含んでいる、請求項５４に記載の方法。
【請求項５７】
テスト対が、初期化に対する可制御性コスト、起動に対する可制御性コスト、及び、伝搬された故障の出力を前記回路のプライマリ出力に転送するための最小コストである可観測性コストの和であるテスト生成コストを考慮して生成される、請求項４８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願：
本出願は、同時係属中の２００３年２月１４日出願、米国仮出願シリアル番号６０／４４７，２７２に基づく優先権を主張する。同出願の内容は、引用によって本書に組み込まれている。
【０００２】
技術分野：
本発明は、回路をテストするためのスキャンデザインにおける遅延障害(delay fault)の検出率(coverage)の増加に関する技術を教示する。
【背景技術】
【０００３】
参考文献：
以下の論文は、有用な背景情報を提供する。その背景情報として、これらの論文は、引用によってその全部が本書に盛り込まれたものとし、さらに、この開示の残りの部分において角括弧内の付随する参照番号（例えば、J. Monteiro and S. Devdasによる３という番号がつけられた論文に対しては、[3]）によって、選択的に引用されている。
【０００４】
[1] D. Belete, A. Razdan, W. Schwarz, R. Raina, C. Hawkins, and J. Morehead; "Use of DFT Techniques In Speed Grading a 1GHz+ Microprocessor （１ＧＨｚ＋マイクロプロセッサをスピード格付けする際のＤＦＴ技術の使用）," Proceedings IEEE International Test Conference, pp. 1111-1119, 2002.
[2] K.-T. Cheng, S. Devadas, and K. Keutzer; "A Partial Enhanced-Scan Approach to Robust Delay - Generation for Sequential Circuit（シーケンシャル回路のための強固な遅延生成を目的とする部分的機能拡大スキャン方法）," Proceedings IEEE International Test Conference, pages 403-410, 1991.
[3] V. Dabholkar, S. Chakravarty, I. Pomeranz, and S. Reddy; "Techniques for Minimizing Power Dissipation in Scan and Combinational Circuits During Test Application（テスト実施中のスキャン及び組み合わせ回路におけるエネルギー消散を最小にする技術）," IEEE Trans. on Computer-Aided Design of Integrated Circuit and System, Vol. 17(12), December 1998.
[4] B. Dervisoglu and G. Stong; "Design for Testability: Using Scanpath Techniques for Path-Delay Test and Measurement（テスト容易性のための設計：パス遅延テスト及び測定のためのスキャンパス技術の使用）," Proceedings IEEE International Test Conference, pages 365-374, 1991.
[5] S. Gerstendorfer and H.-J. Wunderlich; "Minimized Power Consumption for Scan-Based BIST（スキャンベースＢＩＳＴのための最小化されたエネルギー消費）," Proceedings IEEE International Test Conference, pages 77-84, 1999.
[6] M. J. Geuzebroek, J. T. van der Linden, and A. J. van de Goor; "Test Point Insertion for Compact Test Set（稠密テスト集合のためのテスト点挿入）," Proceedings IEEE International Test Conference, pages 292-301, 2000.
[7] P. Goel; "An Implicit Enumeration Algorithm to Generate Tests for Combinational Logic Cirsuits（組み合わせ論理回路のためのテストを生成する間接列挙アルゴリズム）," IEEE Trans. on Computers, Vol. C-30(3), March 1981.
[8] L. H. Goldstein and E. L. Thigpen; "SCOAP: Sandia Controllability/Observability Analysis Program（ＳＣＯＡＰ：Ｓａｎｄｉａ可制御性／可観測性解析プログラム）," Proceedings IEEE-ACM Design Automation Conference, pages 190-196, 1980.
[9] W. Mao and M. D. Ciletti; "Reducing Correlation to Improve Coverage of Delay Faults in Scan-Path Design（スキャンパス設計における遅延故障の検出率を向上させるための相関の低減）," IEEE Trans. on Computer-Aided Design of Integrated Circuit and System, Vol. 13(5), May 1994.
[10] I. Pomeranz and S. M. Reddy; "On Achieving Complete Coverage of Delay Faults in Full Scan Circuits using Locally Available Lines（局所的に使用可能な線路を使用しする完全スキャン回路における遅延故障の完全な検出率の達成）," Proceedings IEEE International Test Conference, pages 923-931, 1999.
[11] J. Savir and R. Berry; "At-Speed Test is not Necessarily an AC TEST（実速度(at-speed test)テストは必ずしもＡＣテストではない）," Proceedings IEEE International Test Conference, pages 722-728, 1991.
[12] J. Savir and S. Patil; "Scan-Based Transition Test（スキャンベース遷移テスト）," IEEE Trans. on Computer-Aided Design of Integrated Circuit and System, Vol. 12(8), August 1993.
[13] J. Savir and S. Patil; "Broad-Side Delay Test（ブロードサイド遅延テスト）," Transactions on Computer-Aided Design of Integrated Circuit and System, Vol. 13(8), August 1994.
[14] J. Saxena, K. M. Butler, J. Gatt, R. R, S. P. Kumar, S. Basu, D. J. Campbell, and J. Berech; "Scan-Based Transition Fault Testing - Implementation and Low Cost Test Challenges（スキャンベース遷移遅延故障テスト−実装及び低コストテストの課題）," Proceedings IEEE International Test Conference, pages 1120-1129, 2002.
[15] G. L. Smith; "Model for Delay Faults Based Upon Paths（パスに基づく遅延故障のためのモデル）," Proceedings IEEE International Test Conference, pages 342-349, 1985.
[16] IEEE standard 1149.1-2001; IEEE Standard Test Access Port and Boundary-Scan Architecture（ＩＥＥＥ標準テストアクセスポート及びバウンダリスキャンアーキテクチャ）, IEEE standard board, New York, N.Y., 1990.
[17] N. Tamarapalli and J. Rajski; "Constructive Multi-Phase Test Point Insertion for Scan-Based BIST（スキャンベースＢＩＳＴのための構築的多重フェーズテスト点挿入）," Proceedings IEEE International Test Conference, pages 649-658, 1996.
[18] J. A. Waicukauski, E. Lindbloom, B. K. Rosen, and V. S. Iyengar; "Transition fault Simulation（遷移故障シミュレーション）," IEEE Design & Test of Computers, pages 32-38, April 1987.
[19] S. Wang and S. K. Gupta; "DS-LFSR: A BIST TPG for Low Switching Activity（ＤＳ−ＬＦＳＲ：低スイッチング機能のためのＢＩＳＴ  ＴＰＧ）," IEEE Trans. on Computer-Aided Design of Integrated Circuit and System, Vol. 21(7), July 2002.
【０００５】
関連技術：
所望の速さでデジタル回路の正確な動作を確かめることが、益々重要になってきている。従来、アットスピード（実動作速度）テストは、通常は、機能テストパターン(functional test pattern)を用いて成し遂げられていた。しかし、十分な故障検出率(fault coverage)を達成する機能テストパターンを発展させることは、法外な開発コストのために、大規模デザインには受け入れ難い。たとえ、高い故障検出率を達成することができる機能テストパターンを使用することができても、高速チップに対してアットスピードでこれらのテストパターンを適用するには、非常に厳格なタイミング精度が必要で、これは、非常に高価な自動テスト装置（ＡＴＥ）によってでなければ実現されない。
【０００６】
スキャンベース(scan-based)遅延テスト方法は、スキャンチェーンを含むデザインに基づいて自動テストパターン生成器（ＡＴＰＧ）によってテストパターンが生成される方法である。この方法は、大規模チップの、性能に関連する故障(performance-related failures)をテストするためのアットスピード機能パターン方法を経済的に代替する方法としてますます使用されている[1, 14]。
【０００７】
遷移遅延故障モデル[18]は、その簡単さのために、産業に広く使用されている。縮退故障 (stuck-at fault)モデルとの類似性のために、ＡＴＰＧと、縮退故障のために開発された故障シミュレータは、わずかな変更を加えただけで遷移遅延故障のために再使用することができる。対象とする故障数が、回路の線路数に対して、多くの場合に指数関数的であるパス遅延故障モデル[15]とは異なり、遷移遅延故障の数は、回路の線路数に対して線形である。このことによって、パス遅延故障モデルにおいては必要なクリティカルパス分析手続と同定手続の必要性が取り除かれる。
【０００８】
遅延故障の検出には、２パターンテストの適用が必要である。その２つのパターンは、対象とする故障回路線路を所望の値に初期化する第１のパターンと、その回路線路において遷移を開始させ、故障効果(false effect)を１つまたは複数のプライマリ出力またはスキャンフリップフロップに伝達する第２のパターンとである。標準スキャン環境で２パターンテストを適用するために２つの異なる方法がある。その２つの方法のどちらにおいても、テストパターン対の第１のパターンは、縮退故障のテストパターンがスキャン入力されるのと同じ仕方で、スキャンチェーンを通ってスキャン入力される。第２のパターンは第１のパターンから導き出される。
【０００９】
その第１の方法は、スキュードロード（位相ずれ読み込み；skewed load）[12]または、シフト付き開始（launch-by-shift）と呼ばれていて、この第１の方法においては、第２のパターンは、第１のパターンにさらにスキャンフリップフロップ１個分だけシフトを与えることによって得られる。したがって、第１のパターンが与えられると、第２のパターンとして、スキャンチェーンの入力にスキャン入力が接続されている最初のスキャンフリップフロップに与えられる値だけが異なる２つのパターンだけが可能である。このシフト依存性は、標準スキャン環境においてテストパターン対の組み合わせ数を２ｎ×２個[11]に制限する。ここでｎはスキャンチェーンにおけるスキャンフリップフロップの個数である。
【００１０】
第２の方法は、ブロードサイド・ロード（片舷読み込み；broadside load）[12, 13]またはランチ・フロム・キャプチャ（キャプチャからの開始；launch-from-capture）と呼ばれている。この第２の方法においては、第２のパターンは、第１のパターンに対する回路応答から得られる。したがって、第２のパターンは、第１のパターンに対する回路応答によって与えられる。両方の方法における第２のパターンを適用するための制限のために、遷移遅延故障の検出率は、標準スキャン環境において、時に、縮退故障の検出率よりもかなり低くなることがある[12]。
【００１１】
標準スキャン環境における遅延故障の検出率を向上させるために、いままで、いくつかの従来技術が提案されている。[6, 10]に記載されている技術においては、エキストラの論理回路が、標準スキャン環境において遅延故障の検出率を向上させるために、機能パス中に挿入されている。この方法の欠点は、機能パスに挿入される付加的な論理回路に起因して引き起こされる性能の劣化である。機能拡張スキャンテスト(enhanced scan testing)[4]は、パターン対の２ｎ×（２ｎ−１）個の総ての可能な組み合わせを回路に適用することを可能にする強力なスキャン技術である。標準スキャン環境のもとではテスト不可能であるが完全な機能拡張されたスキャン環境のもとではテスト可能である故障を、本明細書では、依存性テスト不可能な故障(dependency untestable faults)と呼ぶことにする。この技術は、総ての標準スキャンセルを、２ビットを保持することができる機能拡張スキャンセルに置き換えることを必要とするので、機能拡張スキャンテストの欠点は、機能拡張スキャンセルの高い面積オーバーヘッドである。
【００１２】
面積オーバーヘッドを低減するために、選択されたスキャンフリップフロップのみが機能拡張フリップフロップに置き換えられている部分的機能拡張スキャン技術が[2]によって提案されている。部分的機能拡張スキャン技術に類似の方法として、[12]においては、スキャンチェーン内の選択された隣接スキャンフリップフロップ対間のシフト依存性を絶つために、ダミーのフリップフロップが挿入される。[9, 11]においては、同一のファンアウト・コーン(fanout cone)を駆動する隣接スキャンフリップフロップ対の数を最小にするために、スキャンフリップフロップが再配置されている。これによって、スキャンフリップフロップ間のシフト依存性に起因してテスト不可能である遷移遅延故障が低減される。しかし、故障検出率を増加させるためにスキャンチェーンを再配置することによって、スキャンパスのルーティングオーバーヘッドが増加することがある。そのうえ、大部分の状態入力がトポロジー的に相関している回路に対して、スキャンフリップフロップがどのような順序であっても、遷移遅延故障の満足できる検出率は達成されないであろう。
【００１３】
簡単な例によって、従来の方法に関するいくつかの問題がわかる。図１には、テスト実施時にスキャンフリップフロップＤ1，Ｄ2，Ｄ3によってそれぞれ駆動される３つの状態入力ｓ1，ｓ2，ｓ3を有する回路が示されている。線路ｌにおける立ち上がり遅延（ＳＴＲ；slow-to-rise）故障に対するテストパターン対Ｖ＝｛Ｖ1，Ｖ2｝を生成することを考えよう。このテストパターン対Ｖは従来技術のスキュード・ロード方法を使用することによって回路に印加されるものとする。線路ｌを０に初期化するためには、初期化テストサイクルＴ1において、ｓ1またはｓ2を０に指定することが必要である。一方、線路ｌにおけるＳＴＲ故障を開始させて伝搬させるためには、起動・伝搬テストサイクル(activation and propagation test cycle)Ｔ2において、総ての状態入力ｓ1，ｓ2，ｓ3に１を付与する必要がある。しかし、もし、時刻Ｔ1において線路ｌを初期化するためにＤ1（Ｄ2）に０がロードされるならば、Ｄ1（Ｄ2）における０が次のサイクルＴ2においてはＤ2（Ｄ3）にシフトし、ｓ2（ｓ3）に０が付与される。このことは、故障効果を活性化して伝搬するためにｓ2（ｓ3）に要求される値１に矛盾する。したがって、線路ｌにおけるＳＴＲ故障は、標準スキャン環境においては、スキュード・ロード方法によってはテスト不可能である。
【００１４】
定義及び表記法：
ここで、この開示をさらによく理解するために、いくつかの定義と表記法を記す。なお、これらの定義と表記法は、単に説明のためのものであり、特許請求されている発明の範囲を限定するものと解釈されるべきではない。この開示においては、次の仮定をする。テストを受けるシーケンシャル回路（ＣＵＴ）は、ｍ個のプライマリ入力ｐ1，ｐ2，…，ｐmとｎ個の状態入力ｓ1，ｓ2，…，ｓnを有し、完全なスキャンを用いる。状態入力ｓi（ｉ＝１，２，…，ｎ）は、テスト実施中には、対応するスキャンフリップフロップＤiによって駆動される。さらに、次のことが仮定される。ｎをスキャンチェーン中のスキャンフリップフロップの数（状態入力の数）とするとき、一般性を失うことなく、ＣＵＴ内の総てのスキャンフリップフロップＤ1，Ｄ2，…，Ｄnは、１つのスキャンチェーンを含むように接続される。スキャンチェーンのチェーン入力はスキャンフリップフロップＤ1のスキャン入力に接続され、Ｄ1のスキャン出力はＤ2のスキャン入力に接続され、次段以降も同様に接続され、最後に、Ｄnのスキャン出力はスキャンチェーン出力に接続される。さらに、次の仮定をする。スキャンパスは、スキャンフリップフロップの非反転出力のみによって構成され、このスキャンフリップフロップは、機能パスを駆動するためにも用いられる。この仮定のもとで、スキャンシフトサイクルの間に、時刻ｔにおいてスキャンフリップフロップＤi中にロードされた値は、常に、直前のサイクルタイムｔ−１においてＤiのすぐ前に先行するスキャンフリップフロップ、すなわちＤi-1における直前のサイクルタイムｔ−１での値と同一である。上記の２つの仮定は、説明の便宜のみのために設けられたもので、ここに開示される技術は、多重のスキャンチェーンを有し、スキャンフリップフロップの反転出力によってスキャンパスの全部または一部が構成されているＣＵＴに用いることができる。
【００１５】
いま、Ｖj＝｛Ｖ1j，Ｖ2j｝を２パターンテスト（すなわち、テストキューブ対）とし、このパターンテストは、完全に特定されてもよいし、部分的に特定されてもよい。ここで、Ｖ1jはＶjの「初期化パターン」であり、Ｖ2jはＶjの「起動・伝搬パターン」である。各パターンＶjf（ｆ＝１または２）は２つの部分、すなわち、プライマリ入力に適用されるプライマリ入力部とスキャン入力に適用されるスキャン入力部からなっている。
【００１６】
初期化パターンＶj1のスキャン入力部は、「初期化テストサイクル」Ｔj1においてスキャンチェーンを介してＣＵＴに対して適用され、対応する起動・伝搬パターンＶj2は、起動・伝搬テストサイクルＴj2において、機能的ジャスティフィケーションによって（ブロードサイド・ロード方法が用いられるとき）、または、シフト動作によって（スキュード・ロード方法が用いられるとき）、ＣＵＴに適用される。
【００１７】
もし、２パターンテストが、標準スキャンチェーンを介してスキュード・ロード方法を用いることによって動作されるならば、検出されるために初期化テストサイクルにおいて状態入力ｓi-1で１（０）を必要とし、起動・伝搬テストサイクルにおいて状態入力ｓiで０（１）を必要とする遷移遅延故障は、たとえ、それが機能拡張スキャン環境においてテスト可能であっても、テスト不可能である。したがって、Ｖj1においてｓi-1に付与される値と、Ｖj2においてｓiに付与される値との１対の値は、スキュード・ロード方法が用いられるときには、遷移遅延故障のテスト可能性を定めるために重要である。上記の１対の値、すなわちＶj1においてｓi-1に付与される値とＶj2においてｓiに付与される値とを示すためにｄjiを導入する。もし、スキュード・ロード方法を用いることによって標準スキャンチェーンを介して２パターンテストＶjが作動され、Ｖjが総て特定されるならば、ｄjiは常に００または１１である。
【００１８】
状態入力とは異なり、プライマリ入力は完全に制御可能であると想定される。すなわち、完全に独立なパターンが、任意の２つの継続したテストサイクルにおいてプライマリ入力に印加されることができる。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上記の問題を克服して標準スキャンデザインに対する故障検出率を向上させることは、非常に有利なことであろう。
【課題を解決するための手段】
【００２０】
以上議論された問題のいくつかを克服するために、少なくとも１つの入力と１つの出力と遅延故障回路とを有する論理回路が設けられる。遅延故障回路は、第１の標準スキャンセルと、スキャンチェーン内で第１の標準スキャンセルの直後に位置付けらている組み合わせ(combinational)テスト点と、スキャンチェーン内で組み合わせテスト点の直後に位置付けられている第２の標準スキャンセルとを含む。
【００２１】
ある特定の向上例では、組み合わせテスト点は、第１の標準スキャンセルと第２の標準スキャンセルとの間のシフト依存性を防止するように位置付けられている。
【００２２】
他の特定の向上例では、第１及び第２の標準スキャンセルはフリップフロップである。
【００２３】
他の特定の向上例では、組み合わせテスト点はＡＮＤ（アンド）ゲートを有する。
【００２４】
他の特定の向上例では、組み合わせテスト点はＯＲ（オア）ゲートを有する。
【００２５】
他の特定の向上例では、組み合わせテスト点はＡＮＤ−ＯＲ（アンド−オア）ゲートを有する。
【００２６】
他の特定の向上例では、論理回路は完全な標準スキャン環境のもとでテスト可能である。
【００２７】
他の特定の向上例では、論理回路は部分的な標準スキャン環境のもとでテスト可能である。
【００２８】
他の特定の向上例では、論理回路は少なくとも１つの機能拡張されたスキャンセルを含んでいる。
【００２９】
他の特定の向上例では、回路は、回路内の少なくとも１つの縮退故障(stuck-at fault)をテストすることができるように構成されている。
【００３０】
他の特定の向上例では、回路は、回路内の少なくとも１つの遅延故障(delay fault)をテストすることができるように構成されている。
【００３１】
開示されている教示のもう１つの態様は、少なくとも１つの入力と１つの出力と遅延故障回路とを有する論理回路である。遅延故障回路は、第１の標準スキャンセルと、スキャンチェーン内で第１の標準スキャンセルの直後に位置付けられているテスト点と、スキャンチェーン内でテスト点の直後に位置付けられている第２の標準スキャンセルとを含む。テスト点は、遅延故障回路の第１の標準スキャンセルと第２の標準スキャンセルとの間で発生することが識別されるシフト依存性を防止するように位置付けられている。
【００３２】
ある特定の向上例では、テスト点の位置は回路の機能解析に基づいて定められる。
【００３３】
他の特定の向上例では、テスト点は、論理回路のどのプライマリ入力にも入力を与えない、スキャンチェーン内のダミースキャンフリップフロップである。
【００３４】
他の特定の向上例では、テスト点は組み合わせテスト点である。
【００３５】
他の特定の向上例においては、テスト点の位置は、依存性テスト不可能な遷移遅延故障(dependency untestable transition delay fault)を識別することによって定められる。そのような故障ごとに、もしその故障が最小テスト生成コストをもつならばその故障を対象とするテストキューブ対を生成し、もし、現在のテストキューブ対の組内の、他のどのテストキューブ対とも矛盾しないならば、そのテストキューブ対を現在のテストキューブ対の組に追加して現在のテストキューブ対の組に基づいて現在のテスト点ベクトルを更新し、現在のテスト点ベクトルに基づいてグローバルテスト点ベクトルを生成し、その場合、グローバルテスト点ベクトルは、テスト点が挿入されるべき位置を特定する。
【００３６】
他の特定の向上例では、グローバルテスト点ベクトルは、どのタイプのテスト点が挿入されるべきかも特定する。
【００３７】
開示される教示のもう１つの態様は、第１のテストパターンを、スキャンチェーン内の第１の標準スキャンセルにロードすることと、第１の標準スキャンセルの出力を、スキャンチェーン内の組み合わせテスト点にロードすることと、組み合わせテスト点の出力をスキャンチェーン内の第２の標準スキャンセルにロードすることと、を有する、論理回路をテストする技術である。
【００３８】
他の特定の向上例では、組み合わせテスト点は、第１の標準スキャンセルと第２の標準スキャンセルとの間のシフト依存性を防止する。
【００３９】
他の特定の向上例では、論理回路中の少なくとも１つの縮退故障がテストされる。
【００４０】
他の特定の向上例では、論理回路中の少なくとも１つの遅延故障がテストされる。
【００４１】
開示される教示のもう１つの態様は、少なくとも１つの論理回路と少なくとも１つの遅延故障回路とを有する集積回路である。遅延故障回路は、スキャンチェーン内の第１の標準スキャンセルと、スキャンチェーン内で第１の標準スキャンセルの直後に位置付けられた組み合わせテスト点と、スキャンチェーン内で組み合わせテスト点の直後に位置付けられた第２の標準スキャンセルとを含む。
【００４２】
他の特定の向上例では、第１及び第２のスキャンセルはフリップフロップである。
【００４３】
他の特定の向上例では、組み合わせテスト点は、第１の標準スキャンセルと第２の標準スキャンセルとの間のシフト依存性を防止するように位置付けられている。
【００４４】
他の特定の向上例では、組み合わせてテスト点は、さらに、ＡＮＤ（アンド）ゲート、ＯＲ（オア）ゲート、または、ＡＮＤ−ＯＲ（アンド−オア）ゲートを有する。
【００４５】
開示される教示のさらにもう１つの態様は、スキャンベース技術を用いてテスト可能な回路を設計する方法であって、回路の機能解析に基づいて、シフト依存性が生じる回路中の少なくとも１対の標準スキャンセルを正確に識別することと、回路中の識別された点にテスト点を挿入することと、を有する方法である。
【００４６】
ある特定の向上例では、挿入されるテスト点はダミースキャンメモリである。
【００４７】
他の特定の向上例では、回路中の、シフト依存性が生じる点が自動テストプログラム生成器（ＡＴＰＧ）を用いて識別される。
【００４８】
さらに具体的には、ＡＴＰＧは、挿入されたテスト点を挟んで配置されているスキャンメモリを識別する。
【００４９】
開示される教示のさらにもう１つの態様は、標準スキャン環境のもとでスキュード・ロード方法を用いて２つパターンテストの第１の組を適用することを有する、回路をテストする方法である。標準スキャン環境のもとでブロードサイド・ロード方法を用いて、ステップａで検出されない故障を対象として２パターンテストの第２の組が適用される。残りの故障のために必要なテスト努力は、複数の部分フェーズに分割され、各部分フェーズのもとで、起動・伝搬テストサイクルごとに、異なるテスト点の組を、その異なるテスト点の組以外のテスト点をディセイブルに維持しながら、イネーブルにする。
【００５０】
ある特定の向上例では、標準スキャン環境は、テストパターン対の可能な全組み合わせのサブセットのみが回路をテストするために適用されるテスト環境を含んでいる。
【００５１】
他の特定の向上例では、回路は、標準スキャン環境でシフト依存性が生じる回路内の点にテスト点を含む。
【００５２】
他の特定の向上例では、スキュード・ロード方法の実施の間、２つのパターンの第１の組から得られる第２のパターンは、その２つのパターンから得られる第１のパターンを１スキャンメモリ素子分だけシフトさせることによって得られる。
【００５３】
他の特定の向上例では、ブロードサイド・ロード方法の実施の間、２つのパターンの第２の組から得られる第２のパターンは、その回路の、第１のパターンに対する応答によって得られる。
【００５４】
他の特定の向上例では、スキャンチェーン中において隣接している第１のフリップフロップ及び第２のフリップフロップの各々に対してテスト点がディセイブルにされているとき、あるテストサイクルにおける第２のフリップフロップの値は、前のテストサイクルにおける第２のフリップフロップの値と同一であるように維持される。
【００５５】
他の特定の向上例では、スキャンチェーン中において隣接している第１のフリップフロップ及び第２のフリップフロップの各々に対して、テスト点がイネーブルにされているとき、あるテストサイクルにおける第２のフリップフロップの値は、第１及び第２のフリップフロップ間のテスト点によって変更される。
【００５６】
さらに具体的には、少なくとも２つの両立するテスト点信号が共通の制御信号によって駆動されるようにグループ化される。
【００５７】
さらに具体的には、少なくとも２つの反転両立するテスト点信号が、少なくとも、共通の制御信号によって駆動されるようにグループ化される。
【００５８】
開示される教示のさらにもう１つの態様は、回路をテストし、テストの各部分フェーズの間にイネーブルにされるべきテスト点を識別する、テスト点を設計する方法であって、この方法は、ａ）依存性テスト不可能な遷移遅延故障を識別することと、ｂ）グローバル変数を初期化することと、ｃ）現在のテストキューブ対の組と現在のテスト点ベクトルとを初期化することと、ｄ）テストされていない故障が故障リスト中にもはや存在しないならば、処理を中止することと、ｅ）故障リスト中において、最小のテスト生成コストを有する、マークされていない故障を選択してマーク付けすることと、ｆ）マークされていない故障を対象とするテストキューブ対を生成することと、ｇ）もし、ステップｆ）において生成されたテストキューブ対が、現在のテストキューブ対の組内のいずれか他のテストキューブ対と矛盾することに起因して、そのテストキューブ対が現在のテストキューブ対の組に追加することができないならば、その生成されたテストキューブ対を廃棄してステップｅ）に進むことと、ｈ）生成されたテストキューブ対を現在のテストキューブ対の組に追加して、それに応じて現在のテスト点ベクトルを更新することと、ｉ）もし、現在のテストキューブ対の組内の他のテストキューブ対と矛盾しないでテストキューブ対の組に追加することができるテストキューブ対がもはや存在しないならば、グローバルテスト点ベクトルを更新して、ステップｃ）に進むことと、を有する。
【００５９】
ある特定の向上例では、依存性テスト不可能な故障が、標準スキャン環境のもとではテスト可能ではないが、完全な機能拡張スキャン環境のもとではテスト可能である故障を含んでいる。
【００６０】
他の特定の向上例では、完全な機能拡張スキャン環境は、テストパターン対の総ての可能な組み合わせが回路をテストするために適用されるテスト環境を含んでいる。
【００６１】
他の特定の向上例では、標準スキャン環境は、テストパターン対の総ての可能な組み合わせのサブセットのみが回路をテストするために適用されるテスト環境を含んでいる。
【００６２】
他の特定の向上例では、ステップｆ）において、現在のテスト点ベクトルとグローバルテスト点ベクトルとを考慮して最小数のテスト点が生成されるように、テストキューブ対が生成される。
【００６３】
他の特定の向上例では、テストキューブ対は、２つの異なる時間フレームに対して生成され、２つ異なる時間フレームの一方は、初期化パターンのための時間フレームであり、他方は、伝搬パターンのための時間フレームである。
【００６４】
他の特定の向上例では、２以上のバックトレースが可能のときには、最小の可制御性コストを生成するバックトレースパスが用いられる。
【００６５】
他の特定の向上例では、可制御性コストは、第１の時間フレームの可制御性コストと第２の時間フレームの可制御性コストとを含んでいる。
【００６６】
他の特定の向上例では、可制御性コストは、回路中の線路がある２進値に設定されたときに負担されるべきハードウエアコストを含んでいる。
【００６７】
他の特定の向上例では、テスト対が、初期化に対する可制御性コスト、起動に対する可制御性コスト、及び、伝搬された故障の出力を回路のプライマリ出力に転送するための最小コストである可観測性コストの和であるテスト生成コストを考慮して生成される。
【００６８】
開示される教示の他の態様は、命令を有するコンピュータ読み取り可能な媒体を含むコンピュータプログラム製品であって、前記命令は、前掲の手続を用いるスキャンベース技術を使用する、回路のためのテストをコンピュータが実施することを可能にする命令を含んでいる。
【発明を実施するための最良の形態】
【００６９】
開示される教示は、次の添付図面を参照してその例と実施例とを詳細に記述することによって、さらに明らかになるであろう。
【００７０】
Ａ．  概要と利点：
この開示は、標準スキャンデザインを対象として遅延故障の検出率を向上させるための、ＡＴＰＧベースの技術を教示する。必要なテスト点は、回路トポロジーではなく特別なＡＴＰＧによって生成される、対象とする故障にふさわしいテストキューブ対から特定されるので、それは回路トポロジーベースの技術に比べてハードウエアのオーバーヘッドを大幅に低減することができる。隣接するスキャンフリップフロップ間のシフト依存性を絶つためにフリップフロップのみを用いる[12]に記載されている従来技術と異なり、ここに開示された技術は、フリップフロップばかりでなく、組み合わせ(combinational)ゲートを挿入する。このことによって、スキャンテストにおけるテスト実施時間を決定するスキャンチェーン長の、スキャンチェーンにエキストラのフリップフロップを追加することに起因する増加を最小にすることができる。組み合わせゲートは比較的に少ないシリコン面積で実装することができるので、このこともまた、ハードウエアのオーバーヘッドを低減させる。
【００７１】
注意すべきことは、実施例と説明はスキャンフリップフロップを示しているけれど、本発明の技術は、フリップフロップの代わりに使用される任意のタイプのメモリに拡張することができる。
【００７２】
Ｂ．  動機付け：
図１の限定されない例とは異なり、Ｄ1とＤ2との間にダミースキャンフリップフロップを挿入することを考えよう（図２（ａ）参照）。再度言うが、もしＴ1においてＤ1が０に指定されるならば、Ｔ1において線路ｌを初期化するために印加されたＤ1における０は、次のサイクルＴ2でダミーフリップフロップにシフトする。もし、ダミーフリップフロップに１がロードされ、Ｔ1においてＤ2にも１がロードされているならば、これらの１は、Ｔ2にはそれぞれＤ2及びＤ3にシフトする。したがって、もしＴ2においてスキャンチェーン入力から１がＤ1にスキャン入力されるならば、総ての状態入力ｓ1，ｓ2，ｓ3は１に指定され、線路ｌにおける故障効果は、Ｔ2において起動されて回路出力に伝搬される。
【００７３】
Ｃ．  開示された教示の根底にある概念を説明する例：
図２（ｂ）は、Ｄ1とＤ2との間に２入力ＯＲゲートを挿入することによって、線路ｌにおけるＳＴＲ故障も検出することができることを示している。Ｔ1においてＤ1に０を与えＤ2及びＤ3に１を与えると仮定する。もし、ＯＲゲートの１つの入力を駆動する信号ＥOに、Ｔ2において１が与えられるならば、Ｄ2には、Ｄ1からシフトされる０ではなく、１がロードされる。したがって、Ｔ2において、スキャンフリップフロップＤ2，Ｄ3には、線路ｌにおけるＳＴＲを起動し伝搬させるために必要な１が付与される（Ｄ1には、Ｔ2においてスキャンチェーン入力に１をスキャン入力することによって、１を付与することができる）。ここに開示された技術においては、テスト点がスキャンパスに挿入される。スキャンパスにテスト点を挿入するので、テスト点の挿入によって性能の低下を伴うことはない。
【００７４】
ダミーフリップフロップもテスト点の特定のタイプと考えることができるが、そのダミーフリップフロップに比較して、組み合わせゲートをテスト点として挿入することの利点は、２入力ＡＮＤゲート及び２入力ＯＲゲートのような組み合わせゲートは、フリップフロップよりも少ないシリコン面積を用いて実装することができる点である。第２に、スキャンテストのテスト実施時間は、通常、テストパターンの数とスキャンチェーンの長さによって定まる。スキャンチェーンの長さは、最長のスキャンチェーンに含まれているスキャンフリップフロップの数によって定まる。したがって、ダミースキャンフリップフロップを挿入することによってスキャンチェーンの長さが増加して、テスト実施時間が増加する。
【００７５】
それとは対照的に、組み合わせゲートの挿入は、スキャンチェーンの長さを増加させない。もう１つの利点は、テストデータ量が減少することである。テストデータは正規のスキャンフリップフロップだけでなく挿入されたダミーフリップフロップにも用意されなければならないので、挿入されたダミーフリップフロップは、テストコストを決定する主要な要因の１つであるテストデータ量を増加させる。テスト点を制御するテストデータもまた、外部のＡＴＥから組み合わせテスト点に供給されなければならない。したがって、テストデータ量をできるだけ少なくするために、テスト点の数を最小にすることが重要である。テスト点の数を最小にするアルゴリズムは、引き続く節に記述されている。テスト点を制御するテストデータは、さらに、複数のテスト点のための制御信号を単一の制御信号に併合（マージ）し、これらの併合された制御信号を外部入力ピンではなく制御レジスタによって駆動することによって、低減される（Ｇ節参照）。
【００７６】
図３は、標準スキャンデザインとその可能なｄji値に対する遷移遅延故障の検出率を向上させるために挿入することができるテスト点の４つの異なるタイプの、説明のための非限定的な例を示している。上記のｄji値とは、異なるタイプのテスト点のそれぞれがＤi-1とＤiとの間に挿入されるとき、隣接する１対の状態入力ｓi-1とｓiに印加されることができる、Ｖj1においては状態入力ｓi-1に付与される値と、Ｖj2においては状態入力ｓiに付与される値である。なお、標準スキャン環境においては、ｄji＝０１または１０を適用することができない（なおこの例では、スキャンパスは、スキャンフリップフロップの非反転出力のみによって構成されていると仮定されている）。
【００７７】
もし、ＡＮＤ（アンド）ゲートがスキャンフリップフロップＤi-1とＤiとの間に挿入されるならば、ｓi-1とｓiに作用させることができるｄji値は００と１０である。したがって、もし、検出されるためにｄji＝０１を必要とする依存性テスト不可能な遷移遅延故障が存在するならば、Ｄi-1とＤiとの間にＯＲ（オア）ゲートを挿入することによって、その故障を検出することができる。
【００７８】
同様に、もし、ＯＲゲートがスキャンフリップフロップＤi-1とＤiとの間に挿入されるならば、ｓi-1とｓiに作用させることができるｄji値は１１と０１である。したがって、もし、検出されるためにｄji＝１０を必要とする依存性テスト不可能な遷移遅延故障が存在するならば、Ｄi-1とＤiとの間にＡＮＤ（アンド）ゲートを挿入することによってその故障は検出される。
【００７９】
もし、検出されるためにｄji＝０１を必要とする遷移遅延故障の組と、検出されるためにｄji＝１０を必要とする故障の別の組が存在するならば、それらの故障の総てを検出するために、Ｄi-1とＤiとの間にＡＮＤ−ＯＲ（または、ＯＲ−ＡＮＤ）複合ゲート、またはダミーフリップフロップを挿入することができる。検出されるためにｄji＝０１を必要とする遷移遅延故障の組のためのテストパターンがＣＵＴに作用されている間には、ＯＲテスト点に対するテスト点イネーブル信号ＥOは、起動・伝搬テストサイクルごとにＯＲテスト点をイネーブルにするために、１に設定される。一方、検出されるためにｄji＝１０を必要とする遷移遅延故障の他の組のための２パターンテストがＣＵＴに作動されている間には、ＡＮＤテスト点に対するテスト点イネーブル信号ＥAは、ＡＮＤ型テスト点をイネーブルにするために１に設定され、かつ、ＡＮＤゲートの出力における０をＤiのスキャン入力に伝搬するために、ＥOは０に設定される。
【００８０】
また、ＡＮＤテスト点が挿入されるときには、検出されるためにｄji＝１１、すなわちＶj1においてｓi-1＝１（０）及びＶj2においてｓi＝１必要とする故障に対するテストパターンが作動される間には、そのテスト点はディセイブルにされる必要がある。同様に、ＯＲテスト点が挿入されるときには、検出されるためにｄji＝００、すなわちＶj1においてｓi-1＝０及びＶj2においてｓi＝０を必要とする故障に対するテストパターンが作動される間には、そのテスト点はディセイブルにされる必要がある。
【００８１】
ここに開示された教示におけるテストの実施には、３つのフェーズが含まれる。第１のテスト実施フェーズでは、２パターンテストが、スキュード・ロード方法によって標準スキャン環境下で適用される。第２のテスト実施フェーズでは、テストパターンは、第１のテスト実施フェーズの間に検出されない故障を対象とし、同様に標準スキャン環境下で、ブロードサイド・ロード方法によって適用される。第１及び第２のフェーズは、テスト結果の品質に影響を与えないで、取り替えることができる。第３のテスト実施フェーズは、さらに、いくつかの部分フェーズ(sub-phase)に分割される。
【００８２】
第３のフェーズの各部分フェーズには、異なるテスト点の組が、起動・伝搬テストサイクルごとにイネーブルにされ、テスト点の残りは、常にディセイブルにされる。ディセイブルにされたテスト点を有する隣接スキャンフリップフロップＤi-1及びＤiの総ての対に対して、テストサイクルｔにおけるフリップフロップＤiの値は、直前のテストサイクルｔ−１における、すぐ前に先行して配置されているフリップフロップＤi-1の保持値に等しい。
【００８３】
Ｄ．  従来技術との比較：
ＡＮＤゲートやＯＲゲートのような組み合わせテスト点とは異なり、ダミーフリップフロップは、追加的のルーティングオーバーヘッドを伴うテスト点イネーブル信号を必要としない。しかし、ダミーフリップフロップは、通常動作時においても余分な電力消費の原因になる（スキャンチェーンは通常動作時には使用されないので、組み合わせテスト点は電力消費に寄与しないことに注意されたい）。したがって、もし、多数のダミースキャンフリップフロップが挿入されるならば、ダミーフリップフロップを駆動するクロック信号は、回路の正常動作時には、携帯機器用チップのように電力を気にするチップでの電力を節約するために、シャットダウンされなければならない。このために、分離したクロックツリーによって、または個別のクロックゲート論理回路を介して、ダミーフリップフロップを駆動することが必要である。したがって、ダミーフリップフロップのために追加されるクロックツリーまたはクロックゲート論理回路は、組み合わせテスト点のテスト点イネーブル信号よりも、なお一層高い面積オーバーヘッドとルーティングオーバーヘッドとを費やすことになるであろう。周知のように、テスト実施中の電力消費は、過度のスイッチ動作のために、しばしば、通常動作時の電力消費よりもかなり高い[3, 19, 5]。ダミーフリップフロップは、スキャンシフトサイクルの全体にわたってに電力消費に寄与する遷移をすることができるので、ダミーフリップフロップの挿入は、この問題を悪化させるであろう。それとは対照的に、組み合わせテスト点は、ｎ＋１テストサイクル（ｎは最長のスキャンチェーン内のスキャンフリップフロップの数）ごとに起こる起動・伝搬サイクルにおいてのみ遷移をすることができるので、組み合わせテスト点はテスト実施中でも非常にわずかにしか電力の消費に寄与しない。
【００８４】
以前の段落で述べたように、[9, 12]は、スキャンフリップフロップのどの対の間にダミーフリップフロップを挿入すべきかということ、及びシフト依存性に起因する故障検出率の減少を最小にするスキャンフリップフロップの順序を決定するために、トポロジー的相関手法を用いている。隣接スキャンフリップフロップの総ての対間のシフト依存性を絶つためには、回路によっては膨大な数のダミーフリップフロップを挿入することが必要である[12]。もし、スキュード・ロード方法とブロードサイド・ロード方法との両者が用いられるならば、隣接フリップフロップの間のシフト依存性に起因してスキュード・ロード方法によって検出することができないいくつかの故障はブロードサイド・ロード方法によって検出できるから、トポロジー的相関を有する（同じファンアウト・コーンを駆動する）隣接フリップフロップの多数の対は、依存性テスト不可能な故障を生じることはないであろう。したがって、ダミーフリップフロップを挿入したり、スキャンフリップフロップを機能拡張スキャンフリップフロップに置き換えたり、トポロジー的相関手法のみに基づいてスキャンフリップフロップを順序変更することは、結果として、不必要に高い面積オーバーヘッドとルーティングオーバーヘッドを生じ得る。
【００８５】
[9, 12]とは異なり、[2]は、機能拡張スキャンフリップフロップに置き換えられるスキャンフリップフロップを選択するために、予め計算されたテストパターンを用いている。もし、予め計算されたテストパターンの組の２パターンテストＶjにおいて、ｄjiが０１または１０である１対の隣接する状態入力ｓi-1及びｓiが存在するならば（そのスキャンパスはスキャンフリップフロップの非反転出力のみによって構成されていると仮定して）、スキャンフリップフロップＤiは、機能拡張されたスキャンフリップフロップに置き換えられる。通常、依存性テスト不可能な遷移遅延故障ごとに多数の２パターンテストが存在し得る。したがって、どのテストパターンが考察の対象として使用されるかに応じて、ハードウエアオーバーヘッドに換算してかなり異なる結果が得られる。テストパターンが予め生成される[2]とは対照的に、ここに開示された技術では、結果的にテスト点の数が最小になるような適切なテストキューブ対のみが特定のＡＴＰＧによって生成される。
【００８６】
Ｅ．  スキャンパステスト点の挿入：
ハードウエアのオーバーヘッドとテストデータとを最小にするために、テスト点の数をできるだけ少なくすることが重要である。ここ開示される技術において、挿入されるべきテスト点を決定する１つの方法は、標準スキャン環境においてはテスト不可能な遷移遅延故障のためのテストキューブ対から動的に計算することである。このようにして生成されたテストキューブ対は、「現在のテストキューブ対の組」と呼ばれるテストキューブ対の組に追加される。例えば、もし、現在のテストキューブ対の組中にテストキューブ対Ｖaが現在存在し、そのテストキューブ対Ｖaにおいて隣接する状態入力の対ｓi-1及びｓiに、Ｖa1においては０が、Ｖa2においては１がそれぞれ与えられるならば、すなわちｄai＝０１であるならば、ＶaをＣＵＴに適用するために、スキャンフリップフロップＤi-1及びＤiとの間にＯＲゲートを挿入しイネーブルにすることが必要である（図３参照）。もし、新たに生成されたテストキューブ対Ｖbにおいてｄbi＝００ならば、ＶbはＤi-1とＤiとの間にイネーブルにされたＯＲゲートを有するＣＵＴに適用できないので、ＶbはｓiにおいてＶaと矛盾する。生成されたテストキューブ対は、既にテストキューブ対の組中に存在しているテストキューブ対と矛盾することなく追加することができるテストキューブ対がもはやなくなるまで、現在のテストキューブ対の組の中へ入れられる。
【００８７】
Ｅ．１．  テスト点ベクトル：
どのテスト点が、対応するテスト実施の部分フェーズでイネーブルにされるかということに関する情報を伝達する「テスト点ベクトル」は、テストキューブ対の組から計算される。ｋ番目のテストキューブ対の組に対するテスト点ベクトルＴＰk＝｛ｔｐk1，ｔｐk2，…，ｔｐkn｝は、ｎビットタプル（ｎビット１組）であり、ｔｐki∈｛Ｗ，Ｏ，Ａ｝，（ｉ＝１，２，３，…，ｎ、ただし、ｎは状態入力の数である）は、次のように、テストキューブ対の組Ｃkから計算される。もし、組Ｃkに少なくとも１つの２パターンテストキューブ対Ｖjが存在し、そのＶjにおいてｄji＝０１、すなわちＶj1においてｓi-1＝０、Ｖj2においてｓi＝１であるならば、ｔｐkiにはＯが付与され、それ以外であればｔｐkiにはＷが付与される。同様に、もし、組Ｃkに少なくとも１つの２パターンテストキューブ対Ｖjが存在し、そのＶjにおいてｄji＝１０、すなわちＶj1においてｓi-1＝１、Ｖj2においてｓi＝１であるならば、ｔｐkiにはＡが付与され、それ以外であればｔｐkiにはＷが付与される。もし、ｔｐki＝Ｗならば、Ｄi-1とＤiとの間のテスト点は、もし存在するとしても、テスト実施のｋ番目の部分フェーズの間にはイネーブルにされない。したがって、もし、ｔｐki＝Ｗならば、起動・伝搬テストサイクルＴr2（ｒ＝１，２，…，ｙｋ、ただし、ｙｋはテスト実施のｋ番目の部分フェーズの期間に実施される２パターンテストの数である）ごとにｓiに付与される値は、常に、テスト実施のｋ番目の部分フェーズの全体の期間において対応する初期化テストサイクルＴr1でｓi-1に付与される値と同一である。一方、もし、ｔｐki＝Ｏならば、２入力ＯＲゲートがＤi-1とＤiとの間に挿入され、イネーブルにされる。ｓiは、テスト実施のｋ番目の部分フェーズの全体の期間で初期化テストサイクルＴr1においてｓi-1に付与される値に関係なく、起動・伝搬テストサイクルＴr2ごとに、常に、１が付与される。同様に、もし、ｔｐki＝Ａならば、２入力ＡＮＤゲートがＤi-1とＤiとの間に挿入され、イネーブルにされる。ｓiは、テスト実施のｋ番目の部分フェーズの全体の期間で初期化テストサイクルＴr1においてｓi-1に付与される値に関係なく、起動・伝搬テストサイクルＴr2ごとに、常に、０が付与される。
【００８８】
新しいテストキューブ対が現在のテストキューブ対の組に付加されるとき、テスト点ベクトルは、その新しいテストキューブ対中で付与されている値に従って、増加的に更新される。記号Ｗ、Ｏ及びＡに加えて、テスト点計算過程の間の中間記号として、記号Ｒ、Ｗ０及びＷ１が使用される。これらの３つの中間記号は、テストキューブ対の組に対する最終的なテスト点ベクトルを計算するために用いられ、各々のテスト実施部分フェーズの期間にイネーブルにされるべきテスト点を定めるために用いられる最終的なテスト点ベクトルには現れない。テスト点ベクトルの計算が終了し次第、テスト点ベクトル中の総ての中間記号はＷに置換され、最終的なテスト点ベクトルが生成される。図４に示されている有限状態機械は、非限定的な、説明のための、テスト点を計算する手続を示している。
【００８９】
この例において、それぞれのテスト点ベクトルＴＰk（ｋ＝１，２，…，ｋmax、ただし、ｋmaxはテスト点ベクトルの数である）に対して、最初に、そのすぐ前に位置する状態入力とトポロジー的相関を持たない状態入力を除いて、総ての状態入力は、初期値Ｒ（図４に示されている有限状態機械の状態Ｒ）を付与される。この開示の以下の記述においては、トポロジー的に相関している隣接したスキャンフリップフロップの対と、同一のファンアウト・コーンを駆動する隣接したスキャンフリップフロップの対とは、どちらを用いても変わりはないものとする。そのすぐ前にある状態入力によって駆動されるどのファンアウト・コーンをも駆動しない状態入力には、それぞれのテスト点ベクトルにおいてＷが付与される。テストキューブ対の組に追加されるテストキューブ対中で付与される値にしたがって、テスト点ベクトル計算処理中で、後に他の記号に更新され得る初期値の記号Ｒと異なり、初期値のＷ記号は固定され、最終的なテスト点ベクトルが得られるまで変化しない。すぐ前にある状態入力とトポロジー的な相関を持たない状態入力は、依存性テスト不可能な遷移遅延故障を生じないので、それらの前にはテスト点を挿入する必要はない。どのテスト点ベクトルにおいても、スキャンチェーンの最初に位置するスキャンフリップフロップＤ1には、常にＷが付与される。
【００９０】
第１のテストキューブ対Ｖjを現在のテストキューブ対の組Ｃkに付加することを考える。もし、Ｖjにおいてｔｐki＝Ｒでｄji＝１０ならば、ｔｐkiはＡに更新される（図４での状態ＲからＯ（Ａ）への状態遷移）。同様に、もし、Ｖjにおいてｔｐki＝Ｒでｄji＝０１ならば、ｔｐkiはＯに更新される。そうではなく、もし、初期テスト点ベクトルにおいて状態入力ｓiにＲが付与され、Ｖjにおいてｄji＝００ならば、ｔｐkiはＷ０に更新される（図４での状態Ｒから状態Ｗ０への遷移）。注意すべきことに、Ｄi-1とＤiとの間にＡＮＤテスト点を用いても、用いなくても、ｄji＝００を作用させることができる（図３（ｂ）参照）。したがって、この場合には、Ｄi-1とＤiとの間においてイネーブルにされるべきテスト点のタイプについての最終的決定は延期され、中間記号Ｗ０がｔｐkiに付与される。もし、ｄai＝１０が成立するテストキューブ対Ｖaが、後にプロセスに追加されるならば、ｔｐkiはＡに更新される（有限状態機械中のＷ０からＡへの状態遷移）。そうではなく、もし、ｄbi＝１１が成り立つテストキューブ対Ｖbが付加されたならば、ｔｐkiはＷに更新される（もし、ＡＮＤテスト点がＤi-1とＤiとの間においてイネーブルにされるならば、ｄbi＝１１が成り立つことはできないことに注意されたい）。その他の場合として、ｄciが１０か１１であるテストキューブ対Ｖcは、テストキューブ対がもはや矛盾なくテストキューブ対の組に追加されなくなるまで、追加されない。中間記号Ｗ０は、最終テスト点ベクトルにおいては、Ｗに置換される。
【００９１】
ｄji＝０ＸまたはＸ０として、どのような２進値がＸに付与されるかに関係なく、Ｖjが対象としている故障を検出することができる。もし、Ｘに１が付与され、すなわちｄji＝０１または１０ならば、ｔｐkiは、それぞれＯまたはＡに更新され、そして、もし、現在、ＯＲテスト点がＤi-1とＤiとの間に挿入されていないならば、ＯＲテスト点がＤi-1とＤiとの間に挿入されなければならない。それとは対照的に、もしＸに０が付与されるならば、ｔｐkiには、テスト点を不要とするＷ０が付与されるであろう。したがって、Ｘに０を付与することはさらに適切である。
【００９２】
したがって、ｄji＝０ＸまたはＸ０のとき、ｔｐkiはＷ０に更新される（もし、ｄji＝０ＸまたはＸ０ならば、図４に示されている有限状態機械において、状態Ｒは状態Ｗ０に遷移する）。状態Ｒから状態Ｗ１への遷移は、状態Ｒから状態Ｗ０への遷移と同様である。
【００９３】
ひとたびｔｐkiにＡが付与されると、ｄji＝１１，０１またはＸ１を成立させるテストキューブ対は、現在のテストキューブ対の組中に既に存在しているテストキューブ対と矛盾を生じないでそのテストキューブ対の組に追加することができない。同様に、ｔｐkiにＯが付与されると、ｄji＝００，１０またはＸ０を成立させるテストキューブ対は、現在のテストキューブ対の組中に既に存在しているテストキューブ対と矛盾を生じないでそのテストキューブ対の組に追加することができない。ここで思い出すべきことは、もし、ｔｐki＝Ａならば、テスト実施のｋ番目の部分フェーズの全体の期間において、どの起動・伝搬テストサイクルにおいてもｓiには常に０が付与されることである。同様に思い出すべきことは、もし、ｔｐki＝Ｏならば、テスト実施のｋ番目の部分フェーズの全体の期間において、どの起動・伝搬テストサイクルにおいてもｓiには常に１が付与されることである。このことは、図４において状態Ｏから状態ＦＡＩＬ（失敗）への遷移として記述されている。
【００９４】
例：
図５は、テストキューブ対の２つの例示的な組Ｃ1とＣ2に対応して計算されたテスト点ベクトルを示している。状態入力の隣接する対、ｓ2とｓ3、ｓ4とｓ5、及びｓ5とｓ6が、異なるファンアウト・コーンを駆動すると仮定する。したがって、どのテスト点ベクトルにおいても、ｋ＝１，２として、ｔｐk3、ｔｐk5及びｔｐk6には常にＷが付与される。テストキューブ対Ｖ1がＣ1に追加されるときには、Ｖ11においてはｓ1に０が付与され、Ｖ12においてはｓ2に１が付与され、すなわちｄ12＝０１が成り立つから、ｔｐ12はＯに更新される。また、Ｖ1においてはｄ14＝ｄ17＝Ｘ０であるから、ｔｐ14及びｔｐ17はＷ０に更新される。テストキューブ対Ｖ2がＣ1に追加されるときには、ｄ24＝１０であるから、ｔｐ14はＡに更新される。一方、ｄ27＝００であるので、ｔｐ17は以前の値Ｗ０を維持する。Ｖ2が追加された後、テストキューブ対が矛盾なしにはＣ1に追加することができないと仮定する。そこで、総ての中間記号Ｒ、Ｗ０、及びＷ１をＷに置き換える。本例では、ｔｐ17に付与されたＷ０をＷに置き換えて、最終的なテスト点ベクトルＴＰ1＝｛Ｗ，Ｏ，Ｗ，Ａ，Ｗ，Ｗ，Ｗ｝を作成する。
【００９５】
テストキューブ対の組Ｃ2に対するテスト点ベクトルＴＰ2も、初期ベクトルＴＰ1と同じ初期ベクトルＴＰ2＝｛Ｗ，Ｒ，Ｗ，Ｒ，Ｗ，Ｗ，Ｒ｝から出発する。Ｖ3においては、ｄ32，ｄ34，ｄ37にはそれぞれＸ０，１０，１１が付与されているので、Ｖ3がＣ2に追加されるときには、ＴＰ2は｛Ｗ，Ｗ０，Ｗ，Ａ，Ｗ，Ｗ，Ｗ１｝に更新される。Ｖ4においてはｄ42＝１０及びｄ47＝０１であるので、Ｖ4がＣ2に追加されるときには、この場合も、ｔｐ22及びｔｐ27は、それぞれＡ及びＯに更新される。
【００９６】
Ｅ．２．  グローバルテスト点ベクトル：
開示された技術を実現するためのハードウエア・オーバーヘッドは、挿入されるテスト点の数によって決まる。隣接するスキャンフリップフロップの各対の間に挿入されるであろうテスト点のタイプは、グローバルテスト点ベクトルＧＴＰ＝ｇｔｐ1，ｇｔｐ2，…で表される。ここで、ｎはスキャンチェーンのフリップフロップの数で、ｇｔｐi∈｛Ｗ，Ａ，Ｏ，ＡＯ｝（ｉ＝１，２，…，ｎ）である。グローバルテスト点ベクトルＧＴＰは、テスト点ベクトルから次のようにして求められる。いま、ｋmaxをテスト点ベクトル（テストキューブ対の組）の数とし、ｋ＝１，２，…，ｋmaxとして、もし、ｔｐkiにＷまたはＯのみが付与され、かつ、少なくとも１つのテスト点ベクトルにおいてｔｐkiにＯが付与されているならば、ｔｐkiにはＯが付与される。同様に、もし、ｔｐkiにＷまたはＡのみが付与され、かつ、少なくとも１つのテスト点ベクトルにおいてｔｐkiにＡが付与されているならば、ｔｐkiにはＡが付与される。それとは異なり、どのテスト点ベクトルにおいてもｔｐkiには常にＷが付与されているならば、Ｄi-1とＤiとの間にはテスト点は必要でなく、ｇｔｐiにはＷが付与される。最後に、少なくとも１つのテスト点ベクトルにおいてｔｐkiにＯが付与され、かつ、少なくとも１つのテスト点ベクトルにおいてｔｐkiにＡが付与されるならば、Ｄi-1とＤiとの間には、ＡＮＤテスト点とＯＡテスト点の両者が挿入されなければならず、ｇｔｐiにはＡＯ、すなわち、ＡＮＤ−ＯＲ複合ゲートが割り当てられる。グローバルテスト点ベクトルは、テスト点ベクトルの計算処理が完了すると更新される。
【００９７】
２入力ＡＮＤゲート及び２入力ＯＲゲート、ならびにＡＮＤ−ＯＲゲートが、この開示に使用された、説明のための非限定的例において、テスト点として使用されている。したがって、記号Ａ，Ｏ及びＡＯのみが、グローバルテスト点ベクトルＧＴＰに関連して定義されている。しかし、開示された技術は、新しいタイプのテスト点を表す適当な記号を追加することによって、例えば、ダミーフリップフロップ及び／またはＸＯＲゲートのような、他のタイプのテスト点を含むように拡張することができる。Ｉ節に、２入力ＡＮＤゲート及び２入力ＯＲゲートならびにダミーフリップフロップをテスト点として用いることによって得られた結果も記述され、その結果が、テスト点として２入力ＡＮＤゲート及び２入力ＯＲゲートならびにＡＮＤ−ＯＲゲートを用いることによって得られた結果と比較されている。
【００９８】
テスト点イネーブル信号は、グローバルテスト点ベクトルから、次のようにして生成される。もし、グローバル生成器において、状態入力ｓiにＡＯが付与されると、２つのテスト点イネーブル信号Ｅi,O及びＥi,Aが、Ｄi-1とＤiとの間に挿入されたＡＮＤ−ＯＲゲートを制御するために生成される。もし、状態入力ｓiにＯが付与されると、１つのテスト点イネーブル信号Ｅi,Oが、ＯＲゲートを制御するために割り当てられる。同様に、もし、状態入力ｓiにＡが付与されるならば、１つのテスト点イネーブル信号Ｅi,Aが、ＡＮＤゲートを制御するために割り当てられる。注意を要することに、もしダミーフリップフロップがＡＮＤ−ＯＲ複合ゲートの代わりに用いられるならば、テスト点イネーブル信号は必要でない（しかし、ダミーフリップフロップは、追加のクロック信号を必要とする）。図５に示されているテスト点ベクトルのためのテスト点イネーブル信号が、図６に示されている。状態入力ｓ2には、グローバルテスト点ベクトルにおいてＡＯが付与されているので、スキャンフリップフロップＤi-1とＤiとの間に挿入されているＡＮＤ−ＯＲゲートを制御するために、２つのテスト点イネーブル信号Ｅ2,A及びＥ2,Oがｓ2のために割り当てられている。他方において、１つのテスト点イネーブル信号Ｅ4,Aが、グローバルテスト点ベクトルにおいて、Ａが付与されている状態入力ｓ4に対して割り当てられている。同様に、グローバルテスト点ベクトルにおいてＯが付与されている状態入力ｓ7に対して、１つのテスト点イネーブル信号Ｅ7,Oが割り当てられている。
【００９９】
Ｆ．  開示されているＡＴＰＧのコスト関数：
ＰＯＤＥＭ[7]に基づいて発展された、ここで開示されているＡＴＰＧは、現在のテスト点ベクトルＴＰkとグローバルテスト点ベクトルＧＴＰを考慮に入れることによって、テスト点の最小の数に導く適切なテストキューブ対を生成する。１つのテストキューブ対が現在のテストキューブ対の組Ｃkに追加されるとき、新しいテスト点の数を最小にするそのテストキューブ対を生成するように、この提案されているＡＴＰＧを導くために、可制御性(controllability)、可観測性(observability)及びテスト生成コスト(test generation cost)が定義される。
【０１００】
遷移遅延故障のテストには２パターンテストが必要であるので、提案されているＡＴＰＧは、異なる２つの時間フレームに対して対象とする故障ごとに、２パターンテストキューブ対を生成する。その時間フレームは、初期化パターンのための時間フレーム１と起動・伝搬パターンのための時間フレーム２である。したがって、その２つの時間フレームを考慮に入れるために回路の各線路ごとに２つの個別の可制御性コスト関数が定義される。可制御性コスト関数は、線路ジャスティフィケーションための可能なバックトレースパスが２以上ある場合に、ここで提案されているＡＴＰＧを導くために使用される。
【０１０１】
各状態入力の可制御性コストを計算する目的は、線路ｌがある２進値ｖに設定されるときに負担しなければならないハードウエアコストを評価することである。ｆ＝｛１，２｝として時間フレームｆにおいて、線路ｌを２進値ｖに設定するための可制御性コストをＣｆv（ｌ）で表わす。テスト生成過程の任意の時刻において、もし、時間フレーム２において状態入力ｓiに０（１）が付与されるならば、Ｃ２0（ｓi）＝０（Ｃ２1（ｓi）＝０）で、Ｃ２1（ｓi）＝∞（Ｃ２0（ｓi）＝∞）である。ｖ∈｛０，１｝として、Ｃ２v（ｓi）は、次のようにして現在のテスト点ベクトルＴＰkとグローバルテスト点ベクトルＧＴＰを考慮することによって定義される。もし、現在、ｇｔｐi＝ＡＯならば、ＡＮＤ−ＯＲゲートが既にスキャンフリップフロップ対Ｄi-1及びＤiに割り当てられていて、テスト点ベクトルの計算過程において後に付加されるテストキューブ対の中で、ｓi-1とｓiにどのような値が付与されるかに関係なく、そのスキャンフリップフロップ対Ｄi-1及びＤiには、それ以上のテスト点は不必要である。したがって、ｓiにどのような２進値を付与しても、もはやテスト点にコストをかける必要はなく、Ｃ２0（ｓi）＝Ｃ２1（ｓi）＝０である。逆に、もし、現在、ｇｔｐi＝Ａ（Ｏ），ｔｐki＝ＲまたはＷ０（Ｗ１）で、時間フレーム１においてｓi-1に０（１）が付与されているならば、ｓiに１（０）を付与するためには、Ｄi-1とＤiの間に新たにＯＲ（ＡＮＤ）テスト点（図４に示されている有限状態機械の状態Ｒから状態Ｏ（Ａ）への遷移、及び状態Ｗ１から状態Ｏ（Ａ）への遷移）が必要である。したがって、Ｃ２1（ｓi）＝ｈ（Ｃ２0（ｓi）＝ｈ）になる。ただし、ｈは正数、例えば１００である。図４に示されている有限状態機械が状態ＦＡＩＬに遷移する場合には、ｄjiの値の付与についていくつかの場合がある。これらの値の付与は、テストキューブ対の組中に既に存在しているテストキューブ対に矛盾することによって禁止され、無限大コスト関数がこれらの値の付与に与えられる。すなわち、もし、ｔｐki＝Ａ（Ｏ）ならば、Ｃ２1（ｓi）＝∞（Ｃ２0（ｓi）＝∞）、もし、ｔｐki＝Ｗ０（Ｗ１）で、かつｓi-1に０（１）が付与されているならば、Ｃ２1（ｓi）＝∞（Ｃ２0（ｓi）＝∞）である。そして最後に、もし、ｔｐki＝Ｗで、かつ、ｓi-1に０（１）が付与されているならば、Ｃ２1（ｓi）＝∞（Ｃ２0（ｓi）＝∞）である。その他の総ての場合には、Ｃ２v（ｓi）＝０である。時間フレーム１に対する可制御性コストは、時間フレーム２に対する可制御性コストと同様に計算できるので、時間フレーム１に対する可制御性コストに対する式は、この論文のスペース不足の理由で、省略する。プライマリ入力に対してはテスト点は不必要であるので、総てのプライマリ入力に対する可制御性コストは０である。
【０１０２】
ｆ∈｛０，１｝として、回路の内部回路線路ｌに対する可制御性コストＣｆv（ｌ）は、[8]において用いられているテスト可能性法(Testability measures)と同様に計算され、次式によって与えられる。
【０１０３】
【数１】
2007516423.tif 000002
【０１０４】
ここで、ｌa及びｌはそれぞれ制御値ｃ及び反転ｉをもつゲートの入力及び出力である。状態入力ｓiの可制御性コストは、テスト生成過程の間に、時間フレーム１においてｓi-1に２進値が付与され、または、時間フレーム２においてｓiに２進値が付与されたときに更新される。状態入力ｓiの可制御性コストの変化は、ｓiによって直接にまたは推移的に駆動される内部線路に伝搬され、それに応じて、これらの内部線路の可制御性コストを更新する。
テスト生成中において、出力値が現在は未知である総てのゲートであってそれらのゲート入力の少なくとも１つが故障効果をもつ総てのゲートは、Ｄフロンティア(D-frontier)に属する[7]。ここで開示されているＡＴＰＧにおいては、その入力における故障効果を伝搬するために最小量の付加的ハードウエアを負担する可能性のあるゲートが、故障効果が１つまたは２以上のプライマリ及び状態出力に到達するまで、繰り返しＤフロンティアから選択される。以下に記述される可観測性コスト関数は、この目的を達成するための選択基準として働く。可観測性コスト関数は、プライマリ及び状態出力からプライマリ及び状態入力に再帰的に計算される。線路ｌの可観測性コストは次式で与えられる。
【０１０５】
【数２】
2007516423.tif 000003
【０１０６】
ここで、後者の場合において、ｌoは、入力ｌのゲートの出力であり、ｌaは、ｌoの、ｌ以外の全入力である。
【０１０７】
線路ｌの可観測性コストも、線路ｌにおける値を１または２以上のプライマリまたは状態出力に伝搬するための最小コストである。注意すべきことに、２パターンテストの初期化パターンの目的は、線路ｌを所望の値に設定することであるから、初期化パターンには、故障伝搬過程は不必要である。したがって、可観測性コストは、時間フレーム１には定義されない。
【０１０８】
線路ｌにおけるＳＴＲ（ＳＴＦ）故障を検出するためにテストキューブ対を発生するために、故障は、初期パターンによって０（１）に初期化され、そして線路ｌを１（０）に設定することによって起動され、起動・伝搬パターンによって伝搬させられなければならない。線路ｌを０（１）に初期化するためのコストは、Ｃ１0（ｌ）（Ｃ１1（ｌ））である。故障を起動するために線路ｌを１（０）に設定するためのコストは、Ｃ２1（ｌ）（Ｃ２0（ｌ））である。次に、起動された故障効果が１または２以上のプライマリまたは状態出力に伝搬されなければならない。線路ｌで起動された故障効果を伝搬するコストはＯ（ｌ）である。したがって、線路ｌにおけるＳＴＲ故障のためのテストキューブ対を生成するためのテスト生成コストは、３つのコスト関数の和として定義される：
ＴSTR（ｌ）＝Ｃ１0（ｌ）＋Ｃ２1（ｌ）＋Ｏ（ｌ）
【０１０９】
同様に、線路ｌにおけるＳＴＦ故障のためのテストキューブ対を生成するためのテスト生成コストは、次式で表される：
ＴSTF（ｌ）＝Ｃ１1（ｌ）＋Ｃ２0（ｌ）＋Ｏ（ｌ）
【０１１０】
Ｇ．  テスト点イネーブル信号のクラスター化：
依存性テスト不可能な故障は、２パターンテストの組が標準スキャン環境で実施された後にも検出されないで残る故障であり、この依存性テスト不可能故障用のテストキューブ対が生成された後、テスト点が、グローバルテスト点ベクトルＧＴＰにおいて割り当てられている値に応じて、スキャンパス中に挿入される。
【０１１１】
Ｅ節において述べたように、テスト実施の各部分フェーズにおいて異なるテスト点がイネーブル状態にされる。しかし、多くのテスト点イネーブル信号には、テスト実施のそれぞれの部分フェーズにおいて、等価な値が割り当てられる（Ｘは、任意の２進値に対して、等価で、かつ、反転している）。どのような生成器でも、もし、Ｅａ，ｙ＝ｖ、かつ、
【０１１２】
【数３】
2007516423.tif 000004
【０１１３】
であれば、任意の２つのテスト点イネーブル信号Ｅａ，ｙ及びＥｂ，ｚ（ｙ，ｚ∈｛Ｏ，Ａ｝）は、両立できない。その他の場合には、Ｅａ，ｙ及びＥｂ，ｚは、両立可能である。両立する入力の定義は、反転関係、すなわち常に反転値が付与されるテスト点イネーブル信号を考慮することによって、拡張することができる。両立する（コンパチブル(compatible)）または反転両立する(inversely compatible)複数のテスト点イネーブル信号は、グループ化され、共通の制御信号によって駆動される。
【０１１４】
例えば、図６に示されている２つのテスト点ベクトルにおいて、Ｅ2,AとＥ4,Aには等価な値が付与され（ＴＰ1においては、Ｅ2,Aはドントケア量（(don't-care)どうでもよい量）（Ｅ2,A＝Ｘ）であり、Ｅ4,Aはイネーブルにされ（Ｅ4,A＝１）、ＴＰ2においては、Ｅ2,A＝Ｅ4,A＝１）、ＴＰ1とＴＰ2の両方において、Ｅ2,OとＥ7,Oには、反転値が付与される（ＴＰ1において、Ｅ2,O＝１かつＥ7,O＝０、ＴＰ2において、Ｅ2,A＝０かつＥ4,A＝１）。したがって、常に反転した値が付与されるＥ2,O及びＥ7,Oは、インバータを介して接続されてクラスター・テスト点イネーブル信号ＣＥ1によって駆動される。常に等価な値が付与されるＥ2,A及びＥ4,Aは、直接、接続されてクラスター・テスト点イネーブル信号ＣＥ2によって駆動される。注意すべきことに、テスト点ベクトルは４つのテスト点イネーブル信号Ｅ2,A，Ｅ2,O，Ｅ4,A，Ｅ7,Oを必要とするが、総てのテスト点イネーブル信号は、わずか２つのクラスター・テスト点イネーブル信号ＣＥ1及びＣＥ2によって制御される（図６の底部の回路参照）。
【０１１５】
この例では、ルーティングオーバーヘッドを最小にするために、最小数のクラスター・テスト点イネーブル信号を見つけ出すための欲張ったやり方が用いられているので、最初の少数のクラスターは、多数のコンパチブルなテスト点イネーブル信号を含み、残りのクラスターは、非常にわずかなコンパチブルなテスト点イネーブル信号しか含まない。通常は、最後のいくつかのクラスターはわずか１つのコンパチブル・テスト点イネーブル信号しか含まない。したがって、ルーティングオーバーヘッドを減らすために、ルーティングが過密した区域を有する回路に対しては、わずか１個のテスト点イネーブル信号を駆動するに過ぎないクラスター・テストイネーブル信号によって制御されるＡＮＤ−ＯＲテスト点を、ダミースキャンフリップフロップと置き換える方が良い（ＡＮＤ−ＯＲテスト点は２つのテスト点イネーブル信号を必要とするが、ダミーフリップフロップは、追加のルーティングオーバーヘッドとして１つのクロック信号を必要とする）。
【０１１６】
クラスター・テスト点イネーブル信号は、チップ入力ピン（図７（ａ）参照）または内部テストフリップフロップ（図７（ｂ）参照）から駆動される。クラスター・テスト点イネーブル信号が外部ピンから駆動されるとき、対応するテスト点ベクトルにおいて付与されている値に応じてクラスター・テスト点イネーブル信号を制御するデータは、外部ＡＴＥからプライマリ及びスキャン入力に印加されるべきテストパターンとともに、クラスター・テスト点イネーブル信号を駆動する外部チップ入力ピンへ与えられなければならない。したがって、クラスター・テスト点イネーブル信号の数をできるだけ少なくすることは、また、テストデータ量を少なくすることでもある。注意を要することに、テスト点イネーブル信号はスキャンシフトサイクルの期間のみ制御され、その期間には、総ての正規のチップ入力ピンにおける値（プライマリ入力）はドントケア量であるから、テスト点イネーブル信号は正規のチップ入力ピンと共有されることができる。したがって、テスト点イネーブル信号を駆動するために、追加のチップ入力ピンは不必要である。テスト点イネーブル信号を正規のチップ入力ピンと共有することによって、共有している入力ピンにおける負荷容量が増大するので、それは性能上の不利を招く結果になる。しかし、この性能上の不利は、図７（ａ）に示されているように、テスト点イネーブル信号を駆動するための専用のバッファを挿入することによって、除去または最小にすることができる。
【０１１７】
テストデータ量は、クラスター・テスト点イネーブル信号を、図７（ｂ）に示されているような内部テストフリップフロップによって駆動することによって、さらに、低減することができる。テストフリップフロップがクラスター・テスト点イネーブル信号を制御するために用いられるとき、クラスター・テスト点イネーブル信号を制御するためのテストデータは、テスト実施の新しい部分フェーズが開始するときにのみ、テストフリップフロップの値を更新するために与えられることが必要である。例えば、図６に示されている例示回路に関して、テスト実施の最初の部分フェーズが開始する前に、テスト点フリップフロップＴＦ1は０を、ＴＦ2は１をロードされなければならない。そして、ＴＦ1及びＴＦ2は、テスト実施の２番目の部分フェーズが開始するまでそのロードされた値を保持するであろう。ＴＦ1及びＴＦ2の両者は、テスト実施の２番目の部分フェーズが開始する前に、１をロードされなければならない。テストフリップフロップから、対応するテストフリップフロップによって制御されるテスト点までのルーティングを最小にするように、注意深くテストフリップフロップを配置することによって、テスト点イネーブル信号のためのルーティングオーバーヘッドも低減することができる。もし、ＣＵＴがバウンダリスキャンをサポートしているならば、テストフリップフロップの機能は、テストアクセスポート（ＴＡＰ）コントローラの命令レジスタによって与えられる[16]。
【０１１８】
Ｈ．  テスト点デザインのための全体としてのアルゴリズム：
テスト点デザインのための全体としてのアルゴリズムを以下に概説する。
【０１１９】
１．標準スキャン環境のもとで、正規の遷移遅延ＡＴＰＧを実行することによって、依存性テスト不可能な遷移遅延故障を特定する；
２．グローバル変数を初期化する。ｋ←０，ｊ←０，ＧＴＰ←｛Ｗ１，Ｗ２，…，Ｗ｝；
３．現在のテストキューブ対の組をＣk←Φと初期化し、現在のテスト点ベクトルをＴＰk＝｛Ｗ，Ｉ，…，Ｉ｝と初期化する。ただし、もし、対応する状態入力ｓiが、そのすぐ前にある状態入力ｓi-1が駆動するファンアウト・コーンを駆動しないならば、Ｉ＝Ｗ、もし、そうでなければ、Ｉ＝Ｒである。そして、故障リスト中の総ての故障のマークを解除する（Ｅ．１節を参照）；
４．もし、故障リスト中にもはや故障がないならば、ステップ７に行く。故障リストにおいて最小のテスト生成コストを有する、マークのない故障を選択し、その故障にマークを付け、そして、ここで提案されたＡＴＰＧによって、その故障に対するテストキューブ対Ｖjを生成する（Ｆ節を参照）；
５．もし、生成されたテストキューブ対Ｖjが、Ｃk内にあるいずれかのテストキューブ対と矛盾するためにＣkへ付加することができないならば、その生成されたテストキューブ対を廃棄してステップ４へ行く（Ｅ．１節を参照）；
６．もし、Ｃk内に既に存在しているテストキューブ対に矛盾せずに生成することができるテストキューブ対が対象とする、マークのない故障が故障リストの中にもはや存在しなければ、現在のテスト点ベクトルＴＰk内の総ての中間記号Ｒ，Ｗ０，Ｗ１をＷに置き換えて、ＴＰkにしたがってテスト点をイネーブルにして、Ｃk中に追加されるテストキューブ対が対象としている総ての故障のための２パターンテストを生成し、生成された２パターンテストを用いて故障シミュレーションを実行して検出された故障をドロップし、最終的なテスト点ベクトルＴＰkにしたがってグローバルテスト点ベクトルを更新し、ｋを１だけ増加させてステップ３へ行く。その他の場合には、テストキューブ対ＶjをＣkに追加し、ｊを１だけ増加させて、それに応じてＴＰkを更新し、ステップ４に行く（Ｅ．１節を参照）；
７．グローバルテスト点ベクトルにしたがって、テスト点を挿入し、テスト点イネーブル信号を生成する（Ｅ．２節を参照）；
８．コンパチブルなテスト点イネーブル信号を見出し、クラスター・テストイネーブル信号を生成する（Ｇ節を参照）。
【０１２０】
Ｉ．  実験結果：
テーブル１（図８に示されている）は、ＩＳＣＡＳ８９ベンチマーク回路のフルスキャン版に対する実験結果を示している。
【０１２１】
実験は、１ギガバイトのメモリを有するＳＵＮ（登録商標）  Ｍｉｃｒｏｓｙｓｔｅｍ（サン・マイクロシステム社）  Ｕｌｔｒａ  １（登録商標）上でおこなわれた。列＃ＦＦは、各ベンチマーク回路内のスキャンフリップフロップ数を示している。実験は、スキャンフリップフロップが異なる順序で配列されている２つの異なるバージョンの回路に対して行われた。
【０１２２】
「デフォルトのスキャンチェーン順序」という表示の下の列は、スキャンフリップフロップがネットリスト中に表わされている順序でスキャンチェーンに順序付けられている回路のバージョンに対する結果であり、「最適スキャンチェーン順序」という表示の下の列は、同一のファンアウト・コーンを駆動する隣接スキャンフリップフロップ対の数を最小にするようにスキャンフリップフロップが順序付けられている回路のバージョンに対する結果である。実験結果は、その「デフォルトのスキャンチェーン順序」バージョンが少なくとも１つの依存性テスト不可能型な遷移遅延故障をもつような回路に対して示されている。列＃ｄｅｐ．  ｆｉｔｓは、標準スキャンチェーン環境のもとでスキュード・ロード方法及びブロードサイド・ロード方法によって検出される総ての遷移遅延故障がドロップされた後に検出されないで残っているスキャンパステスト点の挿入に対して考えられる、依存性テスト不可能型な遷移遅延故障の数である。列＃ｄｅｐ．  ＦＦは、同一のファンアウト・コーンを駆動する隣接スキャンフリップフロップ対の数を示す。見出しＡ，Ｏ，ＡＯの下の列は、２入力のＡＮＤゲート及び２入力のＯＲゲートならびにＡＮＤ−ＯＲ複合ゲートがテスト点として用いられたときの結果であり、見出しＡ，Ｏ，ＤＦＦの下の列は、２入力のＡＮＤゲート及び２入力のＯＲゲートならびにダミーフリップフロップがテスト点として用いられたときの結果である。列ｔｉｍｅ  ｓｅｃ．は、ここで提案されている技術のための全プロセスに関するＣＰＵ時間を秒単位で示してる。その提案されている技術には、依存性テスト不可能型故障の識別、テスト点ベクトルの計算、挿入されたテスト点を使用しコンパチブルなテスト点イネーブル信号をクラスター化して行うテストパターン生成及び故障シミュレーションが含まれている。提案されている技術を用いることによって得られた結果は、ダミーフリップフロップが、トポロジー的相関を有するそれぞれの隣接フリップフロップ対中に挿入される、トポロジーに基づく方法[12]によって得られた結果と比較される。列ＴＬ％は、[12]及び提案されている方法を用いることによって同じ数のテストパターンが適用されるとき、期待されるテスト実施時間の減少をパーセントで示している。クラスター・テスト点イネーブル信号の数（列＃ＣＥ）と、組み合わせゲートとダミーフリップフロップの両方を含むテスト点のテスト点イネーブル信号の数（列＃ＴＰ）が、「デフォルトのスキャンチェーン順序」バージョン及び「最適スキャンチェーン順序」バージョンに対して報告されている（列＃ＴＰの括弧内に示されている数はダミーフリップフロップの数を表わす）。列ＨＯ％は、提案されている技術によって得られる面積オーバーヘッドの、[12]に対する減少をパーセントで表している。面積オーバーヘッドは、フリップフロップ及びＡＮＤ−ＯＲゲートのサイズが、それぞれ、ＡＮＤゲートのサイズよりも４倍及び２倍大きく、かつ、ＯＲゲートのサイズは、ＡＮＤゲートのサイズと同じであるという仮定のもとで、ルーティングオーバーヘッドを考慮しないで計算された。
【０１２３】
バックトラックのリミットを２０，０００としたときに、７つの故障に対して、提案されているＡＴＰＧがテストの発生を打ち切ったｓ３８４１７を除いて、総ての回路に対して１００％の遷移遅延故障の検出率が達成された。このことは、同一のファンアウト・コーンを駆動する隣接フリップフロップ対の数よりもかなり少ない少数のテスト点を用いて達成されている。トポロジー的相関をもつ隣接フリップフロップ対の数（列＃ｄｅｐ．  ＦＦ）に対するテスト点の数（列＃ＴＰ）の比は、大きなベンチマーク回路に対しては、なお一層低くなる。総てのベンチマーク回路に対して、「最適スキャンチェーン順序」バージョンに対して挿入されたテスト点の数は、「デフォルトのスキャンチェーン順序」バージョンに対して挿入されたテスト点の数よりも小さいか、それに等しい。トポロジー的に相関している隣接スキャンフリップフロップ対の数を最小にするようにスキャンチェーンが順序付けられているとき、大きな回路にさえも非常に少ないテスト点が挿入される。
【０１２４】
総ての遷移遅延故障が、標準スキャン環境でｓ９５３及びｓ１４２３の「最適スキャンチェーン順序」バージョンに対して検出された。したがって、これらの回路にテスト点は挿入されなかった。注意すべきことは、ｓ１４２３の「最適スキャンチェーン順序」バージョンは、５８個のトポロジー的に相関する隣接フリップフロップ対を含んでいるということである。しかし、総ての遷移遅延故障がテスト点なしに検出された。このことは、もし、スキュード・ロード方法及びブロードサイド・ロード 方法の両者が用いられるならば、隣接フリップフロップ間のシフト依存性を絶つためにトポロジー的解析のみを用いることは、不必要に高いハードウエアオーバーヘッドを生じるであろうことを実例で表している。
【０１２５】
列ＴＬ％は、組み合わせゲートのみがテスト点として用いられるとき、デフォルト順序の回路バージョンに対してスキャンチェーン長が１４〜４８％だけ減少することを示している。ダミーフリップフロップがテスト点として用いられるときでさえ、大きなベンチマーク回路の「デフォルトのスキャンチェーン順序」バージョンに対して約４０％のスキャンチェーン長の減少が得られている。注意すべきことは、テスト点として組み合わせゲートの他に、ダミーフリップフロップが用いられるとき、総てのベンチマーク回路の「デフォルトのスキャンチェーン順序」バージョンに対して、挿入されるテスト点の大多数が、スキャンチェーン長を増加させない組み合わせゲートであるということである。このことは、たとえダミーフリップフロップがテスト点として使用されても、テスト実施時間は著しくは増加しないであろうことを意味する。いくつかの大きな回路、例えば、ｓ３８４１７やｓ３８５８４の「最適スキャンチェーン順序」バージョンに対して、スキャンチェーン長は、見応えのあるものではない。しかし、最適スキャンチェーン順序付け(optimal scan chain ordering)は、法外に高いルーティングオーバーヘッドを費やすので、しばしば、実際的でない。これらの回路に対してさえも、提案されている方法は、かなりの数のテスト点を低減した（それぞれ、７４及び５８のテスト点数の減少）。
【０１２６】
実験結果は、開示された技術によって面積オーバーヘッドを大幅に減少させることができることを示している。同様な、またはさらに高度の減少が、回路の「最適スキャンチェーン順序」バージョンに対してさえも得られる。面積オーバーヘッドのさらに大きな減少が、大きな回路に対して得られている（総ての最大のベンチマーク回路に対して、組み合わせテスト点のみが用いられるとき、面積オーバーヘッドの９０％より高い減少が達成される）。ｓ３８４１７に対して、提案されている技術は[12]の面積オーバーヘッドのわずか１％を必要とするに過ぎないことは、注目に値することである。
【０１２７】
クラスター・テストイネーブル信号は、ルーティングオーバーヘッドに寄与する。ダミーフリップフロップは、わずか１つのエキストラの信号（クロック信号）が送信されることが必要であるが、ＡＮＤ−ＯＲテスト点は２つのテスト点イネーブル信号が送信されることが必要である。したがって、ルーティングが過密な回路に対しては、ＡＮＤ−ＯＲ複合ゲートの代わりにダミーフリップフロップを使用することが望ましい。他方、もし、チップが面積制限され、または、テスト実施時間を低減することが主要な関心事であるならば、ＡＮＤ−ＯＲゲートは、よりよい選択である。
【０１２８】
この柔軟性は、他の技術のうちでも先行文献[2, 4, 12]に優る、提案された技術の強い利点の１つである。本提案のプログラムの記載されている実行時間は、正規のＡＴＰＧ及び故障シミュレータのそれらに同等である。このことは、提案されている技術の実行可能性を示している。「デフォルトのスキャンチェーン順序」バージョン及び「最適スキャンチェーン順序」バージョンの両者に対する本提案のプログラムの実行時間は同様である。
【０１２９】
この開示においては、遷移遅延モデルだけが議論されている。しかし、この提案されている方法は、パス遅延故障モデルやスタック・オープン故障(stuck-open fault)モデルのような２パターンテストを必要とする他の故障モデルに対する故障検出率を改良するように拡張することができる。提案された方法のフレームワークは、決定論的テストばかりでなく、ランダムパターンテストにも使用することができる。ランダムパターンテストにおいては、クラスターテスト点イネーブル信号は、ランダムパターン生成器によって駆動されなければならない。
【０１３０】
本発明に対する、他の変更と変化は前掲の開示と教示から当業者に明らかであろう。したがって、本書には、本発明の若干の実施例のみが具体的に記述されたが、本発明の技術思想と範囲を逸脱することなく、本発明に対して多くの変更をすることができることは明らかであろう。
【図面の簡単な説明】
【０１３１】
【図１】シフト依存性の例を示す図である。
【図２】どのようにシフト依存性が壊されるかを説明する例を示す図であって、（ａ）はダミーフリップフロップを挿入することによってシフト依存性が壊され、（ｂ）はＯＲゲートを挿入することによってシフト依存性が壊されることを示している。
【図３】（ａ）〜（ｄ）は、遷移を機能拡張するために挿入することができる４つの異なるタイプのテスト点の例示的実現例を示す図である。
【図４】説明のためのテスト点ベクトル計算・有限状態機械を示す図である。
【図５】例示的なテストキューブの組とテスト点ベクトルを示す図である。
【図６】テスト点イネーブル信号をクラスター化することの例を示す図である。
【図７】（ａ），（ｂ）は、それぞれ、テスト入力ピンとテストフリップフロップとを用いてクラスター・テスト点イネーブル信号を制御することを示す図である。
【図８】実験結果を示すテーブルを示している。
【図１】
2007516423.tif 000005
【図２】
2007516423.tif 000006
【図３】
2007516423.tif 000007
【図４】
2007516423.tif 000008
【図５】
2007516423.tif 000009
【図６】
2007516423.tif 000010
【図７】
2007516423.tif 000011
【図８】
2007516423.tif 000012