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

 ATPG(automatic test pattern generator)は,論理LSIテスターで使うテスト・パターンを自動生成するEDAツール。現在のATPGが主に対象にするのは,機能テスト(ファンクション・テスト)を代替する構造テスト用のテスト・パターンである。

論理合成の登場で注目率が上昇

 ATPGに,対象となる論理回路のゲート・レベル・ネットリストと,検出したい故障のリストを入力すると,その故障を検出するためのテスト・パターンを自動的に生成する。ATPGを使うと,評判の悪いテスト・パターン作成作業から,設計者は解放される。しかも設計者が人手で作成するよりも,高い故障検出率のテスト・パターンを短時間に生成できる場合が多い。

 特に,論理合成ツールを利用した設計スタイルでは,ゲート・レベル回路は,設計者からみればブラック・ボックスとなる。このような状況では,高い故障検出率のテスト・パターンを生成することは事実上できない。ATPGの利用には大きな意味がある。

 ただし,現在のATPGの技術レベルではすべての回路に対してうまく働くわけではない。このため,ATPGを適用するには,たとえば,スキャン・テストと呼ばれるテスト容易化手法を併用することが望ましい。スキャン・テスト法とは,回路中のフリップフロップ(レジスタ)の値を外部から書き込んだり,読み出したりできるようにすることをいう。このようなフリップフロップをスキャン・フリップフロップと呼ぶ。回路中のフリップフロップをすべてスキャン・フリップフロップで設計する方法をフル・スキャン,一部だけスキャン・フリップフロップにする方法をパーシャル・スキャンという。

研究の歴史は古い

 古くは真空管の時代から,ATPGのアルゴリズムの開発には多くの研究者が取り組んできた。これまでにさまざまな手法が提案された。そのなかで大規模な回路に適用できる「経路活性化法」の流れをくむ手法が,実用化されている。経路活性化法とは,信号伝搬経路をたどりながら,テスト・パターンを生成する方法である。

 経路活性化法で最初に提案された完全なテスト生成アルゴリズムは「Dアルゴリズム」と呼ばれる。その後,「PODEM(Path Oriented DEcision Making)アルゴリズム」,「FAN (FAN-out-oriented test generation algorithm)」,「SOCRATES(Structure-Oriented Cost-Reducing Automatic TESt pattern generation system)」などが実用化された。ここで,完全なテスト生成アルゴリズムとは,対象とする故障が冗長(いかなる入力に対しても出力が正常な回路と同じ故障)であるか否かを判定し,冗長でなければテスト・パターンを必ず生成できるアルゴリズムを言う。

 ATPGの基本的な動作は,次の通りである。
(1)対象とする一つの故障を活性化させるテスト・パターンを作成する。故障を活性化させるとは,対象とする故障のあるときとないときで,その故障が存在する信号線の値(故障障信号)が異なる値になるようにさせることをいう。
(2)故障信号を外部出力端子に伝搬させるパターンを作成する。
(3)(1)と(2)で得たテスト・パターンを入力とした故障シミュレーションを実行する。これで,作成したパターンで対象の故障が検出できるどうかを確かめる。この時,故障シミュレーションによって,同時にこのパターンで検出できる他の故障を見つける。
(4)(1)~(3)を対象とするすべての故障が検出可能になるまで繰り返す。

まずは,ランダムに発生させる

 実際のATPGでは,このアルゴリズムによるパターン生成の前段処理として,ランダムにパターンを発生することが一般的である。すなわち,対象の回路にランダムに発生したパターンを入力する故障シミュレーションを実行する。多くの故障はランダムに発生したパターンで検出することができる。残った故障に対してだけ,上述のアルゴリズムでパターンを生成する。

 現在,組み合わせ回路(内部にレジスタ/フリップフロップを含まない回路)に対しては,十分実用化が進んでいる。

 一方,順序回路(内部にレジスタ/フリップフロップを含む回路)の場合,扱える回路規模や回路の種類に制限がある。順序回路の場合には,単位時間ごとに組み合わせ回路として展開する。これらの組み合わせ回路の集合に対して,テスト・パターンを生成するため,膨大な処理時間がかる。このため,実際には適用できない場合が多い。パーシャル・スキャン法などと併用すれば,順序回路でもATPGが使えることがある。

製品は多機能化

 最近の市販ATPGは多機能化が進んでいる。本来のテスト・パターン生成機能に加えて,例えば,テスタビリティ(テストのしやすさ)解析機能,スキャン法に沿った回路への自動変換機能,故障検出率を落とさずに全体のパターン数を削減する機能(パターン圧縮機能)などを備える。

 なお,最近は,圧縮パターン・テスト手法が実用化されたことで,この手法に向けたATPGも登場している。圧縮パターン・テスト手法では,チップ内部に展開回路と出力圧縮回路を搭載することにより,テスト時間とテスト・データ量を削減することを狙う。このチップ内の展開回路で展開されることを前提にした,チップへの入力パターンを生成するATPGが登場してきた。

 また,対象とする故障の種類も増えている。従来は,いわゆる縮退故障(回路内のノードが固定的に論理値“0”あるいは“1”になる故障)だけが対象のATPGがほとんどだった。最近はLSIの微細化に伴って,さまざまな故障への対応が進んできた。正常なCMOS回路では,静止電源電流(IDDQ)がほとんど流れないことを利用した「IDDQテスト」用のテスト・パターン生成機能や,微細化で増加が予想されるノード間のブリッジ故障に対するテスト・パターン生成機能,同じ故障に対してN個の異なる検出パターンを生成するN-detect(N回検出)テスト用のパターン生成機能などが実現されている。

不可欠になった遅延故障対応

 特に,回路の高速化に伴い重要性が増してきた遅延故障に対するテスト(遅延テスト)のパターン生成機能は,必要不可欠になってきている。遅延テストは,スキャン設計(フル・スキャン,パーシャル・スキャン)した回路のフリップフロップ間の組み合わせ回路が対象で,所定の遅延時間内にデータが遷移するかどうかをテストする。

 遅延テストでは,まずスキャン・チェーンを利用して,フリップフロップに必要な値をセットする。次に,テストしたい周波数で高速にクロック信号を二つ印加する。こうすると最初のクロックで前段のフリップフロップに発生した値の変化を2番目のクロックで後段のフリップフロップに取り込むことができる。これで,前段のフリップフロップと後段のフリップフロップ間の遅延故障が検出可能となる。

 遅延故障用のATPGは,このような仕組みでテストするのに必要なテスト・パターンを自動生成する。このATPGは,ユーザーが指定したパスやゲート入出力の遅延故障を検出するためのテスト・パターンを自動的に生成できる。すなわち,STA(static timing analysis)などで抽出したクリチカル・パスに対してパターン生成できるので,製造テストだけではなく,LSIがどのくらいの周波数で動作するかを調べるといった使い方もできる。

 さらに,より微小な遅延故障を精度よく扱うためのモデルとして,半導体理工学研究センター(STARC)が「SDQM(Statistical Delay Quality Model)」1)を提唱した。SDQMは製造プロセスや設計遅延マージン,テスト・パターン,テスト・タイミング精度を考慮して,遅延テストの品質を評価できるようにした故障モデルである。SDQMに基づき,できるだけ長いパスを用いてテストを生成する機能も実用化された。

 また,最近ではテスト時の消費電力が通常動作時よりも多いことにより,良品チップを不良品と判定したり,逆に不良品を良品と判定するという問題がクローズ・アップされてきている。この問題への対応の一つとして,スキャン・シフト時になるべくフリップフロップのデータが反転しないように「ドント・ケア」に割り当てる値を工夫した,テスト・パターン生成機能なども実用化され始めている。テスト時の消費電力の問題は低電力設計ではさらに顕著になると予想され,この問題を緩和すべくATPGの改良が今後さらに活発化すると思われる。

1)Sato, Y., Hamada, S., Maeda, T., Takatori, A. , and Kajihara, S. “Evaluation of the statistical delay quality model,” Proceedings of IEEE Asian and South Pacific Design Automation Conference, pp. 305-310, 2005.