ATPG(自動テストパターン生成と自動テストパターン発生器の頭字語)は、入力(またはテスト)シーケンスを見つけるために使用される電子設計自動化方法または技術であり、デジタル回路に適用すると、自動テスト機器が正しい回路動作と欠陥によって引き起こされる故障した回路動作を区別できるようにする。生成されたパターンは、製造後の半導体デバイスをテストするため、または故障の原因の特定(故障解析[1] )に役立てられる。ATPGの有効性は、検出可能なモデル化された欠陥または故障モデルの数と、生成されたパターンの数によって測定される。これらの指標は通常、テスト品質(故障検出が多いほど高い)とテスト適用時間(パターンが多いほど高い)を示す。ATPGの効率は、検討中の故障モデル、テスト対象回路のタイプ(フルスキャン、同期シーケンシャル、または非同期シーケンシャル)、テスト対象回路を表すために使用される抽象化レベル(ゲート、レジスタ転送、スイッチ)、および必要なテスト品質によって影響を受けるもう1つの重要な考慮事項である。
欠陥とは、製造工程中にデバイスに発生するエラーのことです。故障モデルとは、欠陥が設計動作をどのように変化させるかを数学的に記述したものです。テスト対象デバイス (DUT) にテストパターンを適用した際にデバイスのプライマリ出力で観測される論理値は、そのテストパターンの出力と呼ばれます。設計どおりに動作する故障のないデバイスをテストする際のテストパターンの出力は、そのテストパターンの期待出力と呼ばれます。故障が1 つだけ存在するデバイスをテストする際に、そのテストパターンの出力が期待出力と異なる場合、その故障はテストパターンによって検出されたとされます。特定の故障に対する ATPG プロセスは、故障のアクティブ化と故障の伝播という 2 つのフェーズで構成されます。故障のアクティブ化では、故障モデルによって生成された値とは反対の信号値が故障モデル サイトに確立されます。故障の伝播では、故障サイトからプライマリ出力へのパスを感作することで、結果として生じる信号値、つまり故障の影響が前方に移動します。
ATPGは、少なくとも2つのケースにおいて、特定の故障に対するテストを見つけられない可能性があります。まず、故障が本質的に検出不可能な場合、つまり、その特定の故障を検出できるパターンが存在しない場合があります。この典型的な例は、単一の故障では出力が変化しないように設計された冗長回路です。このような回路では、単一の故障は本質的に検出不可能です。
第二に、検出パターンが存在するものの、アルゴリズムがそれを見つけられないというケースがあります。ATPG問題はNP完全(ブール充足可能性問題からの帰着)であるため、パターンが存在するものの、ATPGがそれを見つけるのに時間がかかりすぎるため諦めてしまうケースも存在します(もちろん、 P≠NPを仮定)。
等価故障は、あらゆる入力パターンに対して同一の故障動作を引き起こします。等価故障集合の任意の1つの故障が、集合全体を代表する可能性があります。この場合、n本の信号線を持つ回路では、k×n回よりもはるかに少ない故障テストが必要です。故障集合全体から等価故障を除去することを故障コラプシングと呼びます。
過去数十年にわたり、実用化されている最も一般的な故障モデルは、単一縮退故障モデルです。このモデルでは、回路にどのような入力が供給されているかにかかわらず、回路内の信号線の1本が固定の論理値で縮退していると仮定されます。したがって、回路にn本の信号線がある場合、回路には潜在的に2n個の縮退故障が定義され、そのうちのいくつかは他のものと等価であると見なすことができます。縮退故障モデルは、故障定義に遅延情報が関連付けられていないため、論理故障モデルです。また、故障の影響が永続的であると仮定されるため、永続故障モデルとも呼ばれます。これは、(一見)ランダムに発生する間欠故障や、動作条件(温度、電源電圧など)や周囲の信号線のデータ値(高電圧状態または低電圧状態)に依存して散発的に発生する過渡故障とは対照的です。単一縮退故障モデルは、構造的なゲートレベル回路モデルに基づいて定義されているため、構造的です。
100% のスタック アット故障カバレッジを持つパターン セットは、回路内のあらゆる可能性のあるスタック アット故障を検出するテストで構成されます。100% のスタック アット故障カバレッジは、他の多くの種類の故障 (ブリッジ故障、オープン故障、遅延故障など) が頻繁に発生するため、必ずしも高品質を保証するものではありません。
このモデルは、CMOS論理ゲートの故障を記述するために使用されます。トランジスタレベルでは、トランジスタはスタックショートまたはスタックオープンの状態になります。スタックショートの場合、トランジスタは常に導通状態(またはスタックオン)で動作します。一方、スタックオープンの場合、トランジスタは電流を全く導通しません(またはスタックオフ)。スタックショートは、VDDとVSS間の短絡を引き起こします。
2本の信号線間の短絡はブリッジ故障と呼ばれます。VDDまたはVssへのブリッジは、スタック故障モデルに相当します。従来、ブリッジ後の両方の信号は、両信号の論理積または論理和でモデル化されていました。ブリッジ状況において、一方のドライバが他方のドライバを支配している場合、支配的なドライバは論理を他方のドライバに強制的に割り当てます。このような場合には、ドミナントブリッジ故障が使用されます。CMOS VLSIデバイスの現実をより適切に反映するために、ドミナントANDまたはドミナントORブリッジ故障モデルが使用されます。後者の場合、支配的なドライバは自身の値を維持し、もう一方のドライバは自身の値と支配的なドライバのANDまたはOR値を取得します。
遅延障害は次のように分類できます。
組み合わせATPG法は、回路全体の動作を考慮せずに、論理回路の個々のノード(またはフリップフロップ)をテストすることを可能にします。テスト中は、いわゆるスキャンモードが有効になり、すべてのフリップフロップ(FF)が簡素化された方法で接続されます。これにより、通常動作時には意図された相互接続が実質的にバイパスされます。これにより、比較的単純なベクトル行列を使用して、構成するすべてのFFを迅速にテストし、特定のFFの故障箇所をトレースすることが可能になります。
順序回路ATPGは、すべての可能なテストベクトルシーケンス空間からテストベクトルシーケンスを探索し、特定の故障を検出します。より短いシーケンスを見つけるため、またはより速くシーケンスを見つけるために、様々な探索戦略とヒューリスティックが考案されてきました。しかし、報告されている結果によると、すべてのアプリケーションや回路において、他の戦略やヒューリスティックよりも優れた性能を発揮する戦略やヒューリスティックは存在しません。この観察結果は、テストジェネレータには包括的なヒューリスティックセットが組み込まれている必要があることを示唆しています。
順序回路では、単純な縮退故障でさえ、検出のためにベクトルのシーケンスを必要とします。また、メモリ要素が存在するため、順序回路における内部信号の制御性と観測性は、一般的に組み合わせ論理回路よりもはるかに困難です。これらの要因により、順序回路ATPGの複雑性は、スキャンチェーン(つまり、切り替え可能なテスト専用の信号チェーン)を追加して個々のノードへの容易なアクセスを可能にする組み合わせATPGよりもはるかに高くなります。
シーケンシャルATPGは非常に複雑であるため、テスト容易化設計(DFT)スキームを組み込んでいない大規模で高度なシーケンシャル回路では、依然として困難な作業となっています。しかしながら、これらのテストジェネレーターは、部分スキャンなどの低オーバーヘッドのDFT技術と組み合わせることで、大規模設計のテストにおいて一定の成功を収めています。面積や性能のオーバーヘッドが重要な設計の場合、シーケンシャル回路ATPGと部分スキャンを組み合わせたソリューションは、組み合わせ回路ATPGに基づく一般的なフルスキャンソリューションに代わる魅力的な選択肢となります。
歴史的に、ATPGはゲートレベルの故障モデルから導出される一連の故障に焦点を当ててきました。設計トレンドがナノメートルテクノロジへと移行するにつれ、製造テストにおける新たな問題が浮上しています。設計検証において、エンジニアはクロストークや電源ノイズが信頼性と性能に及ぼす影響を無視できなくなっています。現在の故障モデリングおよびベクトル生成技術は、テスト生成時にタイミング情報を考慮し、より大規模な設計にも対応可能で、極端な設計条件にも対応できる新しいモデルと技術に取って代わられつつあります。ナノメートルテクノロジにおいては、現在の設計検証の問題の多くが製造テストの問題にもなりつつあるため、新たな故障モデリングおよびATPG技術が必要となるでしょう。
高い故障検出率を持つ超大規模集積回路(VLSI)のテストは、その複雑さゆえに困難な作業です。そのため、組み合わせ回路や順序回路に対応するために、様々なATPG手法が開発されてきました。
ATPGは、年間を通して複数のカンファレンスで取り上げられるトピックです。米国では主にInternational Test Conference(ITC)とThe VLSI Test Symposium(VLSIテストシンポジウム)が、ヨーロッパではDATEとETSがATPGを扱っています。