ATPG(Automatic Test Pattern Generation:自動テストパターン生成)とは、回路のネットリストと故障モデルを入力として、製造欠陥を検出できるテストパターンをEDAツールが自動生成する技術です。数億トランジスタ規模のチップに対して人手でテストパターンを書くことは不可能であり、現代のデジタル回路のテストはATPGを前提に成立しています。
生成の考え方は、想定する故障を1つずつ「活性化」して「観測点まで伝搬」させる入力値を探索するというものです。たとえばある配線が1に固定される故障を検出するには、その配線を0にする入力を与え(活性化)、その値の違いが出力またはスキャンフリップフロップまで伝わる経路を確保(伝搬)する必要があります。この探索をD-アルゴリズムやPODEMといった手法で解きます。
ATPGはスキャンテストと不可分です。組合せ回路だけなら探索は比較的容易ですが、順序回路では内部状態を作り込むために長い入力系列が必要になります。スキャンチェーンによって全フリップフロップを外部から直接設定・観測できるようにすれば、問題を組合せ回路のテスト生成に還元でき、現実的な時間でパターンを生成できます。DFTがATPGを可能にしている、という関係です。
生成結果の評価軸は、故障カバレッジとパターン数の2つです。カバレッジは高いほど良品保証が確かになりますが、パターン数が増えればテスト時間とテスタのメモリ消費が増え、コストに跳ね返ります。そのため、圧縮技術(テストコンプレッション)でスキャンチェーンを内部展開し、外部から与えるデータ量を1桁以上削減する手法が標準的に使われます。
対象とする故障モデルも複数あります。最も基本的な縮退故障に加え、配線間の短絡を想定するブリッジ故障、実速度でしか現れないタイミング不良を狙う遷移故障・パスディレイ故障などがあり、微細化に伴って後者の重要性が増しています。ツールはSynopsys・Cadence・Siemens EDAが提供しています。