改訂版EDA用語辞典とは・著者一覧

 スキャン・テストは,テストを容易にする設計手法であるDFT(design for testability)技術の一つで,ランダム・ロジックを対象にする。スキャン・テストでは,回路内のフリップフロップ(FF)をスキャンFFに置き換える(図1(a))。テスト・モード時には回路内のスキャンFFをシリアルに接続することでシフト・レジスタを形成し,LSIの外部I/O端子からスキャンFFを制御・観測できるような経路(スキャン・チェーン)を設ける(図1(b))。

 このような構成を採ると,スキャンFFがLSIの外部I/O端子と等価と見なせるため,テストの対象は組み合わせ回路のみとなる。組み合わせ回路に対してのテスト・パターン生成技術はATPG(automatic test pattern generation)として確立しており,効率良くテスト・パターンを自動生成できることになる。

【図1 スキャン・テスト回路の構成】マルチプレクサ方式のスキャン・フリップフロップは,マルチプレクサと通常のフリップフロップで構成される(a)。スキャン・イネーブルで通常動作とテスト・モード動作を切り替える。テスト・モード時には,スキャン・フリップフロップをシリアルに接続し,シフト・レジスタを構成する(b)。チップの外部スキャン・イン端子より,このシフト・レジスタの値を設定し,スキャン・アウト端子より値を読み出す。出典はOKIセミコンダクタ。
【図1 スキャン・テスト回路の構成】マルチプレクサ方式のスキャン・フリップフロップは,マルチプレクサと通常のフリップフロップで構成される(a)。スキャン・イネーブルで通常動作とテスト・モード動作を切り替える。テスト・モード時には,スキャン・フリップフロップをシリアルに接続し,シフト・レジスタを構成する(b)。チップの外部スキャン・イン端子より,このシフト・レジスタの値を設定し,スキャン・アウト端子より値を読み出す。出典はOKIセミコンダクタ。 (画像のクリックで拡大)

スキャン・テストの方式

 スキャン・テストには,「フル・スキャン方式」と「パーシャル・スキャン方式」の2種類がある。フル・スキャンは回路中の全FFをスキャンFFに置き換える方式で,すべてのFFを外部から直接制御・観測できる。一方,パーシャル・スキャンでは,一部のFFのみをスキャンFFに置き換える。スキャンFFがフル・スキャンに比べて少ないため,面積のオーバヘッドも小さい。半面,置き換えなかった部分に対して,人手でテスト・パターンを追加するなどの作業が必要になる。

 スキャンFFに置き換えなかった部分も自動でテスト・パターンを追加する際には,順序回路用のATPGが必要になる。ただし順序回路用のATPGは処理時間が長い上,生成されたテスト・パターン数が長大で,テスト時間も長い。このため,大規模なLSIでは,基本的にはフル・スキャン方式が採用されている。

スキャン・テストの基本動作

 スキャン・テストは,「スキャン・イン」→「キャプチャ」→「スキャン・アウト」という一連の動作を繰り返して進められる(図2)。

【図2 スキャン・テストの手順】まず,スキャン・モードに設定し,スキャン・イン端子からスキャン・フリップフロップに対してテスト・パターンを設定する(a)。次に,通常動作モードに設定し,スキャン・フリップフロップ間の組み合わせ回路を動作させる。そして,テスト・クロックを動作させて,組み合わせ回路の出力をスキャン・フリップフロップに取り込む(b)。その次に,再びスキャン・モードに設定し,スキャン・フリップフロップに取り込んだ値をスキャン・アウト端子で観測する(c)。なお,この図では,簡単化のために,クロックの接続は省略してある。出典はOKIセミコンダクタ。
【図2 スキャン・テストの手順】まず,スキャン・モードに設定し,スキャン・イン端子からスキャン・フリップフロップに対してテスト・パターンを設定する(a)。次に,通常動作モードに設定し,スキャン・フリップフロップ間の組み合わせ回路を動作させる。そして,テスト・クロックを動作させて,組み合わせ回路の出力をスキャン・フリップフロップに取り込む(b)。その次に,再びスキャン・モードに設定し,スキャン・フリップフロップに取り込んだ値をスキャン・アウト端子で観測する(c)。なお,この図では,簡単化のために,クロックの接続は省略してある。出典はOKIセミコンダクタ。 (画像のクリックで拡大)

 最初の「スキャン・イン」ではスキャン・モードになり,スキャン・イン端子からスキャン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でもよい入力ドント・ケアである」という性質を使う。圧縮スキャンでは,スキャン・イン端子側に展開回路を設けてケア・ビットの論理値を再現し,スキャン・アウト側に設けた圧縮回路で出力応答を圧縮して出力する。

【図3 マルチ・スキャン・チェーン】スキャン・チェーン(a)をn分割すると,チェーン当たりのフリップフロップ数が1/nとなる。テスト・パターンの入出力時間は1/nとなる(b)。ただし,分割に伴い,スキャン・イン/スキャン・アウト端子も複数必要となる。それを一つにするのが,圧縮スキャンである(c)。出典はOKIセミコンダクタ。
【図3 マルチ・スキャン・チェーン】スキャン・チェーン(a)をn分割すると,チェーン当たりのフリップフロップ数が1/nとなる。テスト・パターンの入出力時間は1/nとなる(b)。ただし,分割に伴い,スキャン・イン/スキャン・アウト端子も複数必要となる。それを一つにするのが,圧縮スキャンである(c)。出典はOKIセミコンダクタ。 (画像のクリックで拡大)

 通常のマルチ・スキャン・チェーンではスキャン・チェーン数の上限がテスタのスキャン・チャネル数で決まってしまうが,圧縮パターン・テストではその制約がなくなり,チェーン数を増やすことで,テスト時間とテスト・データ量の大幅な削減が可能になる。