スキャン・テストは,テストを容易にする設計手法であるDFT(design for testability)技術の一つで,ランダム・ロジックを対象にする。スキャン・テストでは,回路内のフリップフロップ(FF)をスキャンFFに置き換える(図1(a))。テスト・モード時には回路内のスキャンFFをシリアルに接続することでシフト・レジスタを形成し,LSIの外部I/O端子からスキャンFFを制御・観測できるような経路(スキャン・チェーン)を設ける(図1(b))。
このような構成を採ると,スキャンFFがLSIの外部I/O端子と等価と見なせるため,テストの対象は組み合わせ回路のみとなる。組み合わせ回路に対してのテスト・パターン生成技術はATPG(automatic test pattern generation)として確立しており,効率良くテスト・パターンを自動生成できることになる。
スキャン・テストの方式
スキャン・テストには,「フル・スキャン方式」と「パーシャル・スキャン方式」の2種類がある。フル・スキャンは回路中の全FFをスキャンFFに置き換える方式で,すべてのFFを外部から直接制御・観測できる。一方,パーシャル・スキャンでは,一部のFFのみをスキャンFFに置き換える。スキャンFFがフル・スキャンに比べて少ないため,面積のオーバヘッドも小さい。半面,置き換えなかった部分に対して,人手でテスト・パターンを追加するなどの作業が必要になる。
スキャンFFに置き換えなかった部分も自動でテスト・パターンを追加する際には,順序回路用のATPGが必要になる。ただし順序回路用のATPGは処理時間が長い上,生成されたテスト・パターン数が長大で,テスト時間も長い。このため,大規模なLSIでは,基本的にはフル・スキャン方式が採用されている。
スキャン・テストの基本動作
スキャン・テストは,「スキャン・イン」→「キャプチャ」→「スキャン・アウト」という一連の動作を繰り返して進められる(図2)。
最初の「スキャン・イン」ではスキャン・モードになり,スキャン・イン端子からスキャンFFにテスト・パターンを送り込む。シリアルに入力するため,全FFへの設定はFF数回のシフト動作(FF数クロック)が必要である。
次の「キャプチャ」では通常動作モードになり,スキャンFF間の組み合わせ回路を動作させる。そして,組み合わせ回路の出力をスキャンFFに取り込む。
3番目の「スキャン・アウト」では,再びスキャン・モードになる。スキャンFFに格納してある値をスキャン・アウト端子で観測する。この観測した値を,あらかじめ求めてある期待値(故障がない場合の値)と比較し,故障の有無を判定する。なおスキャン・アウトもシリアルな出力のため,全FFからの値の読みだしにはFF数回のシフト動作(FF数クロック)が必要となる。
スキャン・テストの留意点
スキャン・テスト方式を採用するには,守るべき設計制約がある。主に,FFのクロックの可制御性に関する制約と,組み合わせ回路のフィードバック・ループに関する制約の二つがある。
前者の可制御性に関する制約の内容は次の通り。スキャン・テストでは,スキャン動作中(スキャン・イン/スキャン・アウト)にシステム・クロックが動作した場合,スキャンしようとしていたデータを破壊する恐れがある。非同期セットやリセットが発生した場合も同様な恐れがある。このためFFのクロックとリセットは,チップの外部入力端子から直接制御できる必要がある。
後者のフィードバック・ループに関する制約は以下の通り。組み合わせ回路にフィードバック・ループがあると,内部記憶を持ってしまうため,この回路の値が一意に決まらなくなる。ATPGでは当該部分を不定として扱うことになり,テスト・パターンが生成できない。これは故障検出率の低下につながる。
スキャン・テストの課題と改良
上述したようにスキャン・テストでは回路中のFF数が増えると,テスト時間やテスト・データが増加してしまう。そこで,増大を抑えるために,複数の技術が開発された。
その1例が「マルチ・スキャン・チェーン」の技術である(図3)。スキャン・チェーンを均等にn分割すると,一つのチェーンのFF段数が減って,テスト印加時間を1/nに短縮できる。しかし,分割に伴って,スキャン・イン端子とスキャン・アウト端子がn個必要となってしまうという副作用がある。
そこで,スキャン・イン端子とスキャン・アウト端子数を減らし,かつATPGによりテスト・パターンを圧縮する「圧縮パターン・テスト(圧縮スキャンとも呼ぶ)」技術が用いられるようになった(図3(c))。この技術は,「テスト・パターンを作成する場合,ATPGが1/0を確定させるFFのケア・ビットは全FFの数%程度であり,残りのFFは0でも1でもよい入力ドント・ケアである」という性質を使う。圧縮スキャンでは,スキャン・イン端子側に展開回路を設けてケア・ビットの論理値を再現し,スキャン・アウト側に設けた圧縮回路で出力応答を圧縮して出力する。
通常のマルチ・スキャン・チェーンではスキャン・チェーン数の上限がテスタのスキャン・チャネル数で決まってしまうが,圧縮パターン・テストではその制約がなくなり,チェーン数を増やすことで,テスト時間とテスト・データ量の大幅な削減が可能になる。