結論:ATPG(外部パターン)とBIST(自己テスト)の違いは?
違いは「テストパターンを誰が作り、結果を誰が判定するか」です。ATPGはEDAツールが事前に生成したパターンをテスタから流し込み、期待値との比較もテスタ側で行います。BISTはパターン生成回路と判定回路をチップ内部に作り込み、チップ自身がテストを実行して合否だけを返します。ATPGは高いカバレッジと詳細な故障診断に優れ、BISTはテスタ依存度の低さと実速度動作、そして出荷後の自己診断に優れます。
比較表
| 観点 | ATPG(外部パターン) | BIST(自己テスト) |
|---|---|---|
| パターン生成 | EDAツールが事前に生成 | チップ内部の回路がその場で生成(LFSRなど) |
| 合否判定 | テスタが期待値と比較 | チップ内部で圧縮・比較(シグネチャ照合) |
| テスタへの要求 | 大容量メモリと多ピンが必要 | 起動と結果読み出しのみ(低コストテスタで可) |
| テストデータ量 | 多い(圧縮技術で削減) | 極めて少ない |
| 故障カバレッジ | 高い(狙った故障を確実に検出) | ランダムパターン依存で取りこぼしが出やすい |
| 故障診断 | 得意(スキャンダイアグノーシスで箇所を特定) | 苦手(合否のみで位置情報が乏しい) |
| 面積オーバーヘッド | スキャンチェーン分(比較的小さい) | 生成・判定回路の分だけ大きい |
| 出荷後の利用 | 不可(テスタが必要) | 可能(起動時の自己診断に使える) |
メモリはBIST、ロジックはATPGという住み分け
メモリは構造が規則的で、マーチングパターンのようなアルゴリズムで網羅的にテストできます。パターンを内部で生成するのが容易なうえ、ビット数が膨大で外部から全データを流し込むのは非現実的なため、メモリBIST(MBIST)が事実上の標準です。一方ランダムロジックは構造が不規則で、ランダムパターンでは検出しにくい故障が残るため、狙った故障を確実に叩くATPGパターンとスキャンチェーンの組合せが使われます。この住み分けが現代SoCのDFT構成の基本形です。
テストコストの構造が違う
ATPGはパターン数が増えるほどテスタのメモリ消費とテスト時間が増え、高機能なテスタを長時間占有します。これを緩和するのがテストコンプレッションで、外部データを圧縮して内部で展開することでデータ量を1桁以上削減します。対してBISTは、テスタは起動信号を送って結果を読むだけで済むため、安価なテスタでも実行でき、テスト時間も短くなります。ただし面積オーバーヘッドという形でシリコンコストを前払いしています。
出荷後に使えるかどうか
BISTの見逃せない利点が、製造時だけでなく現場でも動かせることです。電源投入時の自己診断として組み込めば、車載や産業機器で求められる稼働中の故障検出(ISO 26262のような機能安全要求)に応えられます。ATPGパターンはテスタがなければ実行できないため、この用途には使えません。安全関連システムでBISTが重視されるのはこのためです。