automatic test pattern generator

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

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

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

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

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

研究の歴史は古い

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

 経路活性化法で最初に提案された完全なテスト生成アルゴリズムはDアルゴリズムと呼ばれる。その後,PODEMアルゴリズム,FANアルゴリズム,SOCRATESなどが実用化された。ここで,完全なテスト生成アルゴリズムとは,対象とする故障が冗長(いかなる入力に対しても出力が正常な回路と同じ故障)であるか否かを判定し,冗長でなければテスト・パターンを必ず生成できるアルゴリズムを意味する。

 ATPGの基本的な動作は,次の通りである。

(1)対象とする一つの故障を活性化させるテスト・パターンを作成する。故障を活性化させるとは,対象とする故障のあるときとないときで,その故障が存在する信号線の値(故障障信号)が異なる値になるようにさせることをいう。

(2)故障信号を外部出力端子に伝搬させるパターンを作成する。

(3)前2項の(1)と(2)で得たテスト・パターンを入力にする故障シミュレーションを実行する。これで,作成したパターンで対象の故障が検出できるどうかを確かめる。このとき故障シミュレータは,このパターンで検出できる他の故障を見つける。

(4)この(1)~(3)を対象とするすべての故障が検出可能になるまで繰り返す。

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

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

 現在,組み合わせ回路(内部にレジスタ/フリップフロップをもたない回路)に対しては,十分実用化が進んでいる。100万ゲート近い規模の回路に対してもATPGを適用できるようになった。

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

製品は多機能化

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

 これまではいわゆるStuck-atテスト(回路内のノードが固定的に論理“0”あるいは論理“1”になるという縮退故障を対象としたテスト)用のテスト・パターン生成機能を有するだけであったが,正常なCMOS回路では,静止電源電流(IDDQ)がほとんど流れないことを利用したIDDQテスト用のテスト・パターン生成機能を備える製品も登場してきた。

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

 まずスキャンチェインを利用してフリップフロップに必要な値をセットする。次に,テストしたい周波数で高速にクロック信号を2つ印加する。こうすると最初のクロックで前段のフリップフロップに発生した値の変化を2番目のクロックで後段のフリップフロップに取り込むことができ,前段のフリップフロップと後段のフリップフロップ間の遅延故障が検出できる。ATPGはこのような仕組みでテストするのに必要なテスト・パターンを自動生成する。指定されたパスあるいは指定されたゲート入出力に対して仮定された遅延故障を検出するためのテスト・パターンを自動生成する。STAなどで抽出したクリティカルパスに対してパターン生成できるので,製造テストだけではなくLSIがどのくらいの周波数で動作するかを調べるといった使い方もできる。


(99. 9. 6更新)

このEDA用語辞典は,日経エレクトロニクス,1996年10月14日号,no.673に掲載した「EDAツール辞典(NEC著)」を改訂・増補したものです。