(57)【特許請求の範囲】
【請求項１】
論理回路にテストパターンを印加し、前記テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置であって、
第１の目的を達成する初期テストキューブが与えられ、
前記初期テストキューブは、前記第１の目的を達成するために決められた論理値をもつ初期論理値ビットと値が未定である初期未定値ビットとを有し、
前記初期未定値ビットに論理値をそれぞれ割り当てることにより、第２の目的を達成する中間テストパターンを生成する中間テストパターン生成手段と、
前記中間テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという中間テストパターン安全性を判定する中間テストパターン安全性判定手段と、
前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記中間テストパターンと前記論理回路との関係に基づき第３の目的を達成することに寄与しうる入力ビットである候補ビットを特定する候補ビット特定手段と、
前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記初期未定値ビットにも前記候補ビットにも対応した前記中間テストパターンの入力ビットを新規未定値ビットにすることによって前記中間テストパターンから新規テストキューブを生成する新規テストキューブ生成手段と、
前記新規テストキューブが有する前記新規未定値ビットに前記第３の目的を達成することに寄与する論理値をそれぞれ割り当てて最終テストパターンを生成する最終テストパターン生成手段と、
前記最終テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという最終テストパターン安全性を判定する最終テストパターン安全性判定手段と、
前記最終テストパターン安全性判定手段が前記最終テストパターン安全性がないと判定した場合に、前記論理回路に故障がなくても期待出力値と実測出力値が異なる可能性がある出力ビットである危険ビットを特定して前記論理回路テストにおいて前記危険ビットにおける期待出力値と実測出力値を比較しないこととするマスク手段とを備え、
前記第３の目的は、前記論理回路に前記中間テストパターンを印加することにより活性化されるパスの近傍における状態遷移量を減少させることである、テスト装置。
【請求項２】
論理回路にテストパターンを印加し、前記テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置におけるテスト方法であって、
第１の目的を達成するために決められた論理値をもつ初期論理値ビットと値が未定である初期未定値ビットとを有する初期テストキューブが生成されるステップと、
中間テストパターン生成手段が、前記初期未定値ビットに論理値をそれぞれ割り当てることにより中間テストパターンを生成する中間テストパターン生成ステップと、
中間テストパターン安全性判定手段が、前記中間テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという中間テストパターン安全性を判定する中間テストパターン安全性判定ステップと、
候補ビット特定手段が、前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記中間テストパターンと前記論理回路との関係に基づき第３の目的を達成することに寄与しうる入力ビットである候補ビットを特定するステップと、
新規テストキューブ生成手段が、前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記初期未定値ビットにも前記候補ビットにも対応した前記中間テストパターンの入力ビットを新規未定値ビットにすることによって前記中間テストパターンから新規テストキューブを生成する新規テストキューブ生成ステップと、
最終テストパターン生成手段が、前記新規テストキューブが有する前記新規未定値ビットに前記第３の目的を達成することに寄与する論理値をそれぞれ割り当てて最終テストパターンを生成するステップと、
最終テストパターン安全性判定手段が、前記最終テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという最終テストパターン安全性を判定するステップと、
マスク手段が、前記最終テストパターン安全性判定手段が前記最終テストパターン安全性がないと判定した場合に、前記論理回路に故障がなくても期待出力値と実測出力値が異なる可能性がある出力ビットである危険ビットを特定して前記論理回路テストにおいて前記危険ビットにおける期待出力値と実測出力値を比較しないこととするマスクステップとを含み、
前記第３の目的は、前記論理回路に前記中間テストパターンを印加することにより活性化されるパスの近傍における状態遷移量を減少させることである、テスト方法。
【請求項３】
コンピュータに請求項２記載のテスト方法を実行させるためのプログラム。
【請求項４】
請求項３に記載されたプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト装置、テスト方法、プログラム及び記録媒体に関し、特に、論理回路にテストパターンを印加し、そのテストパターンに対する論理回路の期待出力値と実測出力値とを比較することによって、論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置等に関する。
【背景技術】
【０００２】
半導体論理回路は、設計、製造、テストの三段階を経て出荷される。ここで、テストとは、製造された集積論理回路に対してテストパターンを印加し、集積論理回路からのテスト応答を実測し、それを期待テスト応答と比較して良品、不良品の判別を行う。その良品率は、歩留りと呼ばれる。歩留りは、半導体論理回路の品質、信頼性及び製造コストを大きく左右する。
【０００３】
微細化とクロック周波数の増加により、タイミング関連の故障が集積論理回路のフェイルの要因となっている。そこで、実速度スキャンテスティングを用いて十分な品質を達成することが求められている。実速度スキャンテストパターンは、通常、遷移遅延故障モデル及び／又はパス遅延故障モデルに基づく自動テストパターン生成（ATPG）により生成される。
【０００４】
低速スキャンテスティングと比較して、実速度スキャンテスティングは、テストの品質及びコストの観点からさらに厳しい課題が課せられている。これらの課題をこれまでにある程度解決したアプローチとして、テストの品質が改善されたタイミング考慮型のATPGや、コスト削減を行うテストコンプレッションが挙げられる。しかし、近年、実速度スキャンテスティングにはさらに大きな新しい課題が突きつけられている。すなわち、テストパワーの問題である。ここで、テストパワーとは、論理回路テストを行う際に論理回路内で消費される電力をいう。
【０００５】
テストパワー問題は、ファンクショナルパワー（低電力）とテストパワー（高電力）の間で広がり続ける格差によって引き起こされている。この格差は現在では2倍〜5倍となっている。これは、ファンクショナルパワーが縮小されていく一方である（パワーゲーティングやクロックゲーティングのような省電力デザインが盛んに行われているため）のに対し、テストモードの遷移は増加する一方である（故障やブロックの並列性、及び、ファンクショナル回路やファンクショナルクロックの制約を無視してテスト効率が優先されているため）ことによる。そのため、ファンクションモード指向のウエハー／パッケージレベルの熱管理や電力供給ネットワーク（ＰＳＮ）デザインがテストパワーと比べてどんどん非力になっている。テストパワーが増加しすぎた結果、熱関連のテスト安全性（加熱により回路がダメージを受け得る）及び電力供給ノイズ関連のテスト安全性（電力供給ノイズによりテスト応答が不適切となり得る）が実速度スキャンテスティングにおいて深刻な問題となっている。
【０００６】
一般に、熱関連のテスト安全性は、平均的なシフトパワーに依存している。シフトパワーは、安全なレベルまで効果的かつ予想通りに低減することが可能であり、例えばスキャンチェーンのセグメント化のような実用技術がある。これに対し、電力供給ノイズ関連のテスト安全性は、実速度テストサイクルの最初にラウンチするテスト入力によって引き起こされるラウンチ遷移（ＬＳＡ）に主に依存している。ラウンチオンキャプチャ（ＬＯＣ）方式に基づく図９に示すように、最初のキャプチャＴ１は、過度のＬＳＡを引き起こすかもしれず、その結果としてＩＲドロップとセルへの実効電力供給を減少させるLdi/dtを生じ、さらにはパス遅延を増加し、ひいては次のキャプチャＴ２におけるタイミング欠陥となる。本願発明で焦点を当てるのは、電力供給ノイズ関連のテスト安全性であり、今後は「テストパターン安全性」又は「ラウンチ安全性」と呼ぶ。というのも、論理回路へのテストパターンの印加が引き起こすラウンチ遷移が支配的な要因だからである。明らかに、ラウンチセーフであるテストパターンは、過度のＬＳＡが誘発するタイミング欠陥を引き起こさないテストパターンである。
【０００７】
図１０に示すように、本願発明の発明者らは、テストパターン７３内のビットのうち他の目的を達成することに寄与しうる候補ビット７５を特定し、故障検出率を維持しつつ候補ビットに未定値ビット（Ｘビット）をできるだけ多数特定してテストキューブ７７を生成し、未定値ビットに異なる目的を達成することに寄与する論理値を割り当てて最終テストパターン７９に変換する変換装置７１等を開発してきた（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１５５３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ラウンチ安全性を達成するためには、過度のＬＳＡを十分に削減する必要がある。しかし、従来の低ＬＳＡテスト生成技術（ATPG、テストコンパクション、Ｘ割当）は、ＬＳＡをある程度削減するものの、ラウンチ安全性を保証するものではない。これは以下のような課題による。
【００１０】
課題１（効果が集中されない）：従来技術は、回路全体のＬＳＡの総数を削減するにすぎず、集中的に削減するわけではない。しかし、タイミング欠陥の真の原因（すなわち、長い活性化パス周辺の近傍エリアにおける過度のＬＳＡ）は、残ったままであることが多い。加えて、ＬＳＡ削減を集中的に行わない結果、テストパターン内のあまりに多くの論理値が制約を受けることとなり、テストの品質を低下させると共にテストデータ量のインフレーションを引き起こしてしまう。
【００１１】
課題２（十分さが保障されない）：従来の低ＬＳＡ技術は、ＬＳＡをある程度は削減できていた。しかしながら、全てのテストパターンについて常に十分にＬＳＡが削減されたことを保証する技術は一切なかった。これは産業上、許容できるものではない。なぜなら、低ＬＳＡテスト生成により得られたテストパターンが一つでもラウンチ安全なものでなければ、歩留り損失リスクが残るためである。
【００１２】
ゆえに、本発明は、テストパワー考慮型のテスト生成において、テストの品質とコストへの影響を最小限としつつテストパターン安全性を保証することを達成するテスト装置等を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の観点は、論理回路にテストパターンを印加し、前記テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置であって、第１の目的を達成する初期テストキューブが与えられ、前記初期テストキューブは、前記第１の目的を達成するために決められた論理値をもつ初期論理値ビットと値が未定である初期未定値ビットとを有し、前記初期未定値ビットに論理値をそれぞれ割り当てることにより、第２の目的を達成する中間テストパターンを生成する中間テストパターン生成手段と、前記中間テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという中間テストパターン安全性を判定する中間テストパターン安全性判定手段と、前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記中間テストパターンと前記論理回路との関係に基づき第３の目的を達成することに寄与しうる入力ビットである候補ビットを特定する候補ビット特定手段と、前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記初期未定値ビットにも前記候補ビットにも対応した前記中間テストパターンの入力ビットを新規未定値ビットにすることによって前記中間テストパターンから新規テストキューブを生成する新規テストキューブ生成手段と、前記新規テストキューブが有する前記新規未定値ビットに前記第３の目的を達成することに寄与する論理値をそれぞれ割り当てて最終テストパターンを生成する最終テストパターン生成手段と、前記最終テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという最終テストパターン安全性を判定する最終テストパターン安全性判定手段と、
前記最終テストパターン安全性判定手段が前記最終テストパターン安全性がないと判定した場合に、前記論理回路に故障がなくても期待出力値と実測出力値が異なる可能性がある出力ビットである危険ビットを特定して前記論理回路テストにおいて前記危険ビットにおける期待出力値と実測出力値を比較しないこととするマスク手段とを備えるテスト装置である。
【００１４】
本発明の第２の観点は、論理回路にテストパターンを印加し、前記テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置であって、初期テストキューブ及び中間テストパターンが与えられ、前記初期テストキューブは、第１の目的を達成するものであり、前記第１の目的を達成するために決められた論理値をもつ初期論理値ビットと値が未定である初期未定値ビットとを有し、前記中間テストパターンは、前記初期未定値ビットに論理値がそれぞれ割り当てられて生成されたものであって、第２の目的を達成するものであり、前記中間テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという中間テストパターン安全性を判定する中間テストパターン安全性判定手段と、前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記中間テストパターンと前記論理回路との関係に基づき第３の目的を達成することに寄与しうる入力ビットである候補ビットを特定する候補ビット特定手段と、前記中間テストパターン安全性判定手段が前記中間テストパターン安全性がないと判定した場合に、前記初期未定値ビットにも前記候補ビットにも対応した前記中間テストパターンの入力ビットを新規未定値ビットにすることによって前記中間テストパターンから新規テストキューブを生成する新規テストキューブ生成手段とを備えるテスト装置である。
【００１５】
本発明の第３の観点は、第２の観点に係るテスト装置であって、前記中間テストパターン安全性判定手段は、前記論理回路に前記中間テストパターンを印加することにより活性化されるパスの近傍における状態遷移量に基づいて前記中間テストパターン安全性の有無を判定するものである。
【００１６】
本発明の第４の観点は、第２又は第３の観点に係るテスト装置であって、前記新規テストキューブが有する前記新規未定値ビットに前記第３の目的を達成することに寄与する論理値をそれぞれ割り当てて最終テストパターンを生成する最終テストパターン生成手段と、前記最終テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト手段とをさらに備えるものである。
【００１７】
本発明の第５の観点は、第４の観点に係るテスト装置であって、前記最終テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという最終テストパターン安全性を判定する最終テストパターン安全性判定手段と、前記最終テストパターン安全性判定手段が前記最終テストパターン安全性がないと判定した場合に、前記論理回路に故障がなくても期待出力値と実測出力値が異なる可能性がある出力ビットである危険ビットを特定して、前記テスト手段が行う前記論理回路テストにおいて前記危険ビットにおける期待出力値と実測出力値を比較しないこととするというマスク手段とをさらに備え、前記テスト手段は、前記危険ビット以外の出力ビットのみの期待出力値と実測出力値とを用いて前記論理回路に故障があるか否かを判定するものである。
【００１８】
本発明の第６の観点は、第５の観点に係るテスト装置であって、前記最終テストパターン安全性判定手段は、前記論理回路に前記最終テストパターンを印加することにより活性化されるパスの近傍における状態遷移量に基づいて期待出力値と異なる実測出力値を出力しうる危険パスを特定する危険パス特定手段を有し、前記マスク手段は、前記危険パスの終点に対応する出力ビットを前記危険ビットとして特定する危険ビット特定手段を有するものである。
【００１９】
本発明の第７の観点は、第１から第６のいずれかの観点に係るテスト装置であって、前記新規テストキューブ生成手段は、式（eq1）に基づいて前記新規未定値ビットを特定するものである。
【００２０】
本発明の第８の観点は、第１から第７のいずれかの観点に係るテスト装置であって、前記第１の目的は、前記論理回路テストにおいて指定故障モデルのもとで与えられた対象故障を検出することであり、前記第２の目的は、前記対象故障以外の故障を検出すること、前記指定故障モデルでモデル化されない欠陥を検出すること、前記中間テストパターンを前記論理回路に印加した際の消費電力を削減すること、のいずれかであり、前記第３の目的は、前記論理回路に前記中間テストパターンを印加することにより活性化されるパスの近傍における状態遷移量を減少させることであるものである。
【００２１】
本発明の第９の観点は、論理回路にテストパターンを印加し、前記テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置におけるテスト方法であって、中間テストパターン生成手段が、初期テストキューブに含まれる複数の初期未定値ビットに論理値をそれぞれ割り当てることにより中間テストパターンを生成する中間テストパターン生成ステップと、初期未定値ビット選択手段が、前記初期未定値ビットの一部を選択する初期未定値ビット選択ステップと、新規テストキューブ生成手段が、前記初期未定値ビット選択手段が選択した前記初期未定値ビットに対応する前記中間テストパターンの入力ビットを新規未定値ビットとすることにより前記中間テストパターンから新規テストキューブを生成する新規テストキューブ生成ステップとを含むテスト方法である。
【００２２】
本発明の第１０の観点は、第９の観点に係るテスト方法であって、中間テストパターン安全性判定手段が、前記中間テストパターン生成ステップと前記初期未定値ビット選択ステップの間に、前記中間テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないという中間テストパターン安全性を判定する中間テストパターン安全性判定ステップをさらに含み、前記中間テストパターン安全性判定ステップにおいて前記中間テストパターン安全性がないと判定された場合に、前記初期未定値ビット選択ステップ及び前記新規テストキューブ生成ステップが実行されるものである。
【００２３】
本発明の第１１の観点は、論理回路にテストパターンを印加し、前記テストパターンに対する前記論理回路の期待出力値と前記論理回路の実測出力値とを比較することによって、前記論理回路に故障があるか否かを判定するという論理回路テストを行うテスト装置におけるテスト方法であって、マスク手段が、前記テストパターンが印加された前記論理回路に故障がなくても期待出力値と実測出力値が異なる可能性がある出力ビットである危険ビットを特定して、前記論理回路テストにおいて前記危険ビットにおける期待出力値と実測出力値を比較しないこととするマスクステップを含む、テスト方法である。
【００２４】
本発明の第１２の観点は、第１１の観点に係るテスト方法であって、前記マスクステップの前に、テストパターン安全性判定手段が、前記テストパターンが印加された前記論理回路に故障がなければ期待出力値と実測出力値が異なる可能性がある出力ビットが存在しないというテストパターン安全性を判定するテストパターン安全性判定ステップをさらに含み、前記テストパターン安全性判定ステップにおいて前記テストパターン安全性がないと判定された場合に、前記マスクステップが実行されるものである。
【００２５】
本発明の第１３の観点は、第１２の観点に係るテスト方法であって、前記テストパターン安全性判定ステップは、危険パス特定手段が、前記論理回路に前記テストパターンを印加することにより活性化されるパスの近傍における状態遷移量に基づいて期待出力値と異なる実測出力値を出力しうる危険パスを特定する危険パス特定ステップを含み、前記マスクステップは、危険ビット特定手段が、前記危険パスの終点に対応する出力ビットを前記危険ビットとして特定する危険ビット特定ステップを含むものである。
【００２６】
本発明の第１４の観点は、コンピュータに第９から第１３のいずれかの観点に係るテスト方法を実行させるためのプログラムである。
【００２７】
本発明の第１５の観点は、第１４の観点に係るプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００２８】
以上に記載した本発明の観点において、式（eq1）とは、次の式をいう。
【００２９】
【数１】
0005829420.tif 000002
【００３０】
ここで、Ｃ１（ｉ）は、前記初期テストキューブが有するｉ番目の論理値ビット又は未定値ビットを表し、Ｖ１（ｉ）は、前記中間テストパターンが有するｉ番目の論理値ビットを表し、Ｃ２（ｉ）は、前記新規テストキューブが有するｉ番目の論理値ビット又は未定値ビットを表す。
【発明の効果】
【００３１】
本発明によれば、与えられた初期テストキューブが達成する第１の目的を確実に達成すると共に第２の目的を極力達成しつつ第３の目的を確実に達成する最終テストパターンを用いて出力ビットを得られる。また、期待出力値とは異なる実測出力値を与えうる危険ビット以外の出力ビットのみの期待出力値と実測出力値とをテストに使用することが可能となる。結果として、初期テストキューブを参照してテストの品質を維持し、さらに、中間テストパターンをも参照したテストパターンを用いてコストへの影響を最小限としつつ、テストパターン安全性が保証された論理回路テストを行うことが可能となる。
【００３２】
具体的には、第１の目的として論理回路テストにおいて指定故障モデルの下で与えられた対象故障としてリスト化された故障の検出、第２の目的として対象故障以外の故障や指定故障モデルでモデル化されていない欠陥の検出、第３の目的としてＬＳＡが過剰である危険パスの近傍におけるＬＳＡを削減することとしてもよい。この場合、中間テストパターンが有する第１及び第２の目的である故障検出というテストの品質を極力低下させることなく、かつ、テストパターン数等のコストを増加させることなく、新規未定値ビットを用いてＬＳＡの削減効果を危険パスの近傍に集中させることが可能となる。
【００３３】
さらに、マスク手段が、出力ビットにおける危険ビットを論理回路の故障判定に使用しないこととすることが可能となる。したがって、仮に最終テストパターンに至るまでにＬＳＡの削減が十分に行われなかったとしても、その最終テストパターンを論理回路に印加した場合に論理回路の故障がないにも関わらず期待出力値と異なる実測出力値を与えうる出力ビットは、論理回路テストに使用されない。
【００３４】
すなわち、テスト品質（テストパターンの故障検出能力等）やコスト（テストパターン数等）への影響を最小限としつつ、完全にテストパターン安全性が保証されたテスト（歩留り損失が全くないテスト）を実行することが可能となる。
【図面の簡単な説明】
【００３５】
【図１】本願発明の実施例に係るテスト装置１の概要を示すブロック図である。
【図２】テスト装置１を用いたテスト方法の基本的な考え方を示す図である。
【図３】ラウンチ安全性が保証されたテスト方法の一例を示すフロー図である。
【図４】ゲートのアグレッサー領域の一例を示す図である。
【図５】パスのインパクトエリアの一例を示す図である。
【図６】インパクトＸビットの復元の一例を示す図である。
【図７】不確実なテスト応答のマスク処理の一例を示す図である。
【図８】テスト装置１を用いたテスト方法の実験結果の一例を示す図である。
【図９】ＬＯＣ方式の実速度スキャンテストにおけるテストサイクルを示す図である。
【図１０】従来技術である変換装置７１の概要を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下、図面を参照して、本願発明の実施例について述べる。なお、本願発明は、以下の実施例に限定されるものではない。
【実施例】
【００３７】
以下では、「テストベクトル」を論理値が定まった入力ビットのみからなるベクトルとし、「テストパターン」をテストベクトルを１つ又は複数有する集合体の意味で用いる。また、「テストキューブ」を少なくとも１つの未定値ビットを含むベクトル又はそのようなベクトルを１つ又は複数有する集合体の意味で用いる。さらに、以下では、本願請求項中の「テストパターン安全性」の一例として、ラウンチ安全性について述べる。
【００３８】
まず、本実施例に係るテスト方法において重要な技術である、ラウンチ安全性チェック及び低ＬＳＡテスト生成について述べる。
【００３９】
Ａ．ラウンチ安全性チェック
理想的なラウンチ安全性チェックには（i）正確なタイミングの論理シミュレーション、（ii）ＩＲドロップ解析、（iii）遅延計算が必要となり、大量の時間と記憶容量を要するため、簡易化された測定基準が必要となる。一般には、ＬＳＡを見積もる基準として、ＦＦや回路全体や領域に対して、ラウンチサイクル全体の時間もしくは瞬間的なトグルカウント（ＴＣ）や重み付けした遷移（ＷＳＡ）がよく用いられている。しかし、これらの基準は、ＬＳＡの影響を最も受けやすい活性化された長いパスに狙いを定めた基準ではない。この問題点に対処するものとして、クリティカルキャプチャ遷移（ＣＣＴ）基準は、クリティカルパス周辺のＬＳＡを評価するものであり、クリティカルエリアを対象とした（ＣＡＴ）基準は、テストベクトルの活性化された長いパス周りのＬＳＡを評価するものである。
【００４０】
以下では、ＣＡＴ基準に基づいて改良した基準をラウンチ安全性チェックに用いる。ＣＡＴ基準を拡張することにより、さらに高い精度で全ての活性化された長いパスに対してチェックを行う。詳細は、後に述べる。
【００４１】
Ｂ．低ＬＳＡテスト生成
低ＬＳＡテスト生成は、得られるテストベクトルにおけるＬＳＡの削減を実現するものである。以下の３つのアプローチが実行可能である。
【００４２】
ATPG：低ＬＳＡのテストベクトルを生成することが可能である。手法としては、キャプチャ遷移をトリガーとして元に戻せるバックトレースの手法や、予め算出された値（例えば初期値やクロックコントロールキューブ等）や動的に算出された値を用いたクロック無効化の手法がある。
【００４３】
低ＬＳＡテストコンパクション：手法としては、2番目以降に対象とされる故障群を適切に選択することによって実行される動的コンパクションや、マージされるテストキューブを選択することによって実行される静的コンパクションがある。いずれもＬＳＡが集中しないようにすることを目的としている。
【００４４】
低ＬＳＡのＸ割当：部分的に論理値が定まったテストキューブに直接残ったＸビットであれ、完全に論理値が定まったテストベクトルからテストリラクゼーションの手法で得られたＸビットであれ、Ｘビットに適切な論理値を割り当てることでＬＳＡを削減可能である。現在、そのような手法として次の３種類の手法がある。（１）ＦＦ指向：ＦＦの出力における遷移を、入出力等値化の手法（例えば、preferred-fill、JP-fill、iFill等）やクロック無効化（例えば、CTX-fill）を用いて削減する。（２）ノード指向：回路内の遷移を直接削減する（例えば、PWT-fill）。（３）クリティカルエリア指向：回路内の特定のエリアの遷移を削減する（例えば、CAT-fill、CCT-fill等）。
【００４５】
しかし、これらの従来技術は、ＬＳＡをある程度削減するものでしかなく、ラウンチ安全性を保証することはできない。つまり、（ｉ）効果が集中されない（すなわち、効果の大半が回路全体のＬＳＡ総数を削減することに費やされてしまい、活性化された長いパス周りの近傍エリアにおける過度のＬＳＡが残ってしまう）という課題と、（ｉｉ）十分さが保障されない（すなわち、全てのテストベクトルについてＬＳＡが十分に削減されたことを保証できない）という課題である。
【００４６】
そこで、ラウンチ安全性の保証を達成する２段階の処理（救済＆マスク）を提案する。
【００４７】
図１は、本願発明の実施例に係るテスト装置１の概要を示すブロック図である。以下、図１のテスト装置１の概要を説明する。
【００４８】
テスト装置１は、論理回路にテストパターンを印加し、そのテストパターンに対する論理回路の期待出力値と論理回路の実測出力値とを比較することによって、論理回路に故障があるか否かを判定するという論理回路テストを行う。図１に示すように、テスト装置１は、中間テストパターン生成部３（本願請求項中の「中間テストパターン生成手段」の一例）、中間テストパターン安全性判定部５（本願請求項中の「中間テストパターン安全性判定手段」の一例）、候補ビット特定部７（本願請求項中の「候補ビット特定手段」の一例）、新規テストキューブ生成部９（本願請求項中の「新規テストキューブ生成手段」の一例）、最終テストパターン生成部１１（本願請求項中の「最終テストパターン生成手段」の一例）、最終テストパターン安全性判定部１３（本願請求項中の「最終テストパターン安全性判定手段」の一例）、テスト部１５（本願請求項中の「テスト手段」の一例）及びマスク部１７（本願請求項中の「マスク手段」の一例）を備える。中間テストパターン安全性判定部５は、危険パス特定部１９１を備える。また、最終テストパターン判定部１３は、危険パス特定部１９２（本願請求項中の「危険パス特定手段」の一例）を備える。マスク部１７は、危険ビット特定部２１（本願請求項中の「危険ビット特定手段」の一例）を備える。
【００４９】
中間テストパターン生成部３は、初期テストキューブ３１（本願請求項中の「初期テストキューブ」の一例）から中間テストパターン３３（本願請求項中の「中間テストパターン」の一例）を生成する。初期テストキューブ３１は、論理回路テストにおいて指定故障モデルの下で与えられた対象故障を検出可能なものである。指定故障モデルの例としては、遷移遅延故障モデル及び／又はパス遅延故障モデル等が挙げられる。本実施例では、指定故障モデルとして遷移遅延故障モデルを想定する。また、初期テストキューブ３１は、対象故障を検出する（本願請求項中の「第１の目的」の一例）ために決められた論理値をもつ初期論理値ビット３０（本願請求項中の「初期論理値ビット」の一例）と、対象故障を検出するためには未定値でよい初期未定値ビット３２（本願請求項中の「初期未定値ビット」の一例）とからなる。中間テストパターン生成部３が、初期テストキューブ３１の初期未定値ビットの全てにそれぞれ値を割り当てることにより、中間テストパターン３３が生成される。
【００５０】
中間テストパターン３３は、初期論理値ビットを全て保持している。そのため、対象故障を検出する能力は、完全に保持されている。さらに、初期未定値ビットに対応する入力ビットに論理値が割り当てられたことにより、別の目的（本願請求項中の「第２の目的」の一例）をも達成することが可能なテストパターンである。
【００５１】
ここで、「別の目的」としては、例えば、対象故障以外の故障を検出すること、指定故障モデルでモデル化されない欠陥を検出すること、中間テストパターン３３を論理回路に印加した場合に消費される電力を初期テストキューブ３１の場合よりも削減すること等が挙げられる。
【００５２】
中間テストパターン安全性判定部５は、中間テストパターン３３のラウンチ安全性が保証されるか否かを判定する。このため、論理回路に中間テストパターン３３を印加することにより活性化されるパスの近傍における状態遷移量に基づいてラウンチ安全性が保証されるか否かを判定する。具体的には、危険パス特定部１９１が、論理回路において中間テストパターン３３によって活性化されたパスであって、危険ビットを出力する危険パスを特定する。危険パス特定部１９１が危険パスがないと判定する場合、中間テストパターン安全性判定部５は、ラウンチ安全性が保証されるものと判定する。ここで、「パスの近傍」とは、パスの周辺領域を指し、特に、消費電力に影響を及ぼす観点から特に関係ある「パスの近傍」の一例として、後に述べるインパクトエリアが挙げられる。
【００５３】
ラウンチ安全性とは、論理回路のゲートやフリップ・フロップ等にハードウェアとしての故障さえなければ、中間テストパターン３３を論理回路に印加して期待出力値と異なる実測出力値を与える出力ビット（誤ビット）が存在しないことをいう。すなわち、ラウンチ安全性が保証されている状態は、中間テストパターン３３由来の誤ビットが実測出力値に存在しないことが保証された状態である。ラウンチ安全性があると判定されれば、その中間テストパターン３３を用いることによるテスト由来の歩留まり低下を完全に避けられる。
【００５４】
候補ビット特定部７は、中間テストパターン安全性判定部５が中間テストパターン３３のラウンチ安全性がないと判定した場合に、中間テストパターンと論理回路との関係に基づくさらに別の目的（本願請求項中の「第３の目的」の一例）を達成することに寄与しうる入力ビットである候補ビット３４（本願請求項中の「候補ビット」の一例）の候補位置が特定された候補パターン３５を生成する。
【００５５】
ここで、「さらに別の目的」としては、例えば、論理回路に中間テストパターン３３を印加することにより活性化される論理回路内のパスの近傍における状態遷移量を減少させること等が挙げられる。
【００５６】
新規テストキューブ生成部９は、中間テストパターン安全性判定部５が中間テストパターン３３のラウンチ安全性がないと判定した場合に、初期テストキューブ３１及び候補パターン３５を参照しつつ、中間テストパターン３３から新規テストキューブ３７（本願請求項中の「新規テストキューブ」の一例）を生成する。具体的には、初期未定値ビットにも候補ビットにも対応した中間テストパターン３３の入力ビットを新規未定値ビット３６（本願請求項中の「新規未定値ビット」の一例）にすることによって中間テストパターン３３から新規テストキューブ３７を生成する。
【００５７】
新規テストキューブ３７は、初期論理値ビットを全て保持している。そのため、対象故障を検出する能力は、完全に保持されている。また、初期未定値ビットに割り当てられた論理値の一部が保持されているため、上記の「別の目的」も部分的に達成することが可能である。
【００５８】
最終テストパターン生成部１１は、新規テストキューブ３７が有する新規未定値ビットに上記の「さらに別の目的」を達成することに寄与する論理値をそれぞれ割り当てて最終テストパターン３９（本願請求項中の「最終テストパターン」の一例）を生成する。最終テストパターン安全性判定部１３は、最終テストパターン３９のラウンチ安全性の有無を判定する。テスト部１５は、論理回路にテストパターンを印加し、そのテストパターンに対する論理回路の期待出力値と論理回路の実測出力値とを比較することによって、論理回路に故障があるか否かを判定するという論理回路テストを行う。期待出力値とは、シミュレーション上でテストパターンを論理回路に印加して得られる出力パターン（期待出力パターン）内の出力ビットの論理値をいう。実測出力値とは、テストパターンを実際の論理回路に印加して得られる出力パターン（実測出力パターン）内の出力ビットの論理値をいう。また、テスト部１５は、マスク部１７が特定する危険ビット以外の出力ビットのみの期待値と実測値とを用いて論理回路に故障があるか否かを判定する。
【００５９】
マスク部１７は、最終テストパターン安全性判定部１３が最終テストパターン３９のラウンチ安全性がないと判定した場合に、論理回路に故障がなくても最終テストパターンを論理回路に印加した場合に期待出力値と異なる実測出力値を与えうる出力ビット（危険ビット）を出力パターン４１において特定して論理回路テストに使用させないためにマスクしてマスクビット４０とする。危険ビット（本願請求項中の「危険ビット」の一例）を特定するために、まず危険パス特定部１９２が、論理回路において最終テストパターン３９によって活性化されたパスであって、危険ビットを出力する危険パス（本願請求項中の「危険パス」の一例）を特定する。さらに、危険ビット特定部２１が、危険パスの終点に位置する危険ビットを特定する。
【００６０】
図２は、テスト装置１を用いたテスト方法の基本的な考え方を示す図である。基本的な考え方は、次の３つの不可欠な部分からなる。
【００６１】
（１）危険パスの特定：テストベクトルＶの危険パスＰとは、Ｖによって活性化されたパスであって、インパクトエリア（ラウンチ遷移がパスＰの遅延に影響を及ぼすことになるセルからなるエリア）に過度のラウンチ遷移を有するパスをいう。少なくとも１つの危険パスを有する場合、Ｖはラウンチリスクがある、という。
【００６２】
（２）危険パスの削減：危険パスのインパクトエリアに対して集中的なＬＳＡ削減を行い、効率的に危険パスを削減する。これにより、ラウンチリスクのあるテストベクトルをラウンチセーフであるテストベクトルとする。仮にラウンチセーフであるテストベクトルにできないとしても、大抵の場合は危険パスの残数を少なくすることができる。
【００６３】
（３）危険パスのマスク処理：危険パスの終点の論理値は、インパクトエリアにおける過度のＬＳＡのために不確実な値である。そのため、その論理値は、故障検出のための使用から排除される。これは、終点に対応するテスト応答ベクトルのビットにＭを付けることで行われる。結果として、歩留り損失を完全に避けることが可能となる。ここで、マスク処理は、データに対するマスク処理であるため、回路の追加は一切必要としない。
【００６４】
明らかに、危険パスのマスク処理が、ラウンチ安全性を保証するための核となる部分である。単純で素直な処理ではあるが、この処理の実行には、次の３つの条件が重要となる。（条件１）危険パスが特定されていること。（条件２）危険パスの数が小さいこと。（条件３）マスク処理によって低下した故障検出能力をカバーするための修正がATPGフローに加えられていること。条件１から条件３の全てが満たされている場合、テストの品質とコストへの影響を最小限としつつラウンチ安全性を保証することが可能となる。本実施例では、上記の３つの条件を満たすために、独特な２段階方式によってATPGを改良する。
【００６５】
従来のＡＴＰＧでは、図２に示すように、故障検出指向のテストキューブＣ１（Ｘを含む）が生成され、故障検出指向のＸ割当（通常、テストを高品質とし、ベクトル数を減らすためにランダム割当が用いられる）によってテストベクトルＶ１（Ｘを含まない）に変換される。新方式ではさらに次の２つの段階の処理を行う。
【００６６】
救済：ＬＳＰに基づくラウンチ安全性チェック（図３のステップＳＴ１）により、テストベクトルＶ１の全ての危険パスを特定する。ここで、テストベクトルＶ１における活性化された長いパス（ＬＳＰ）のそれぞれについてインパクトエリアのＬＳＡをチェックする。ここでは、パスＰａ及びパスＰｂが危険パスとして発見されたものとする。すると、インパクトＸビットの復元（図３のステップＳＴ２）が実行され、元々Ｃ１内では（Ｘ割当前に）ＸビットであったＶ１内のビットであってＰａのインパクトエリア５１とＰｂのインパクトエリア５３の少なくともいずれか一方に到達するビットを特定する。さらに、特定されたビットをＸビット（インパクトＸビット）に戻して新たなテストキューブＣ２を生成する。ここでいう「インパクトＸビット」は、本願請求項中の「新規未定値ビット」の一例である。その後、集中的な低ＬＳＡのＸ割当（図３のステップＳＴ３）を実行し、Ｃ２をインパクトエリア５１及び５３のＬＳＡが削減されたテストベクトルＶ２に変換する。
【００６７】
マスク：ＬＳＰに基づくラウンチ安全性チェック（図３のステップＳＴ４）により、Ｖ２において、インパクトエリア５５のＬＳＡは十分に削減されてＰａは安全パスとなったが、インパクトエリア５７のＬＳＡの削減は不十分でＰｂはなお危険パスであると特定されたものとする。この場合、不確実なテスト応答のマスク処理（図３のステップＳＴ５）が実行され、Ｖ２へのテスト応答内のＰｂの終点（ＦＦへの入力）のところにＭが付される。この処理により、Ｖ２に対するテスト応答においてＦＦで観測される不確実な値を製造テストにおいて無視することとなり、いかなる歩留り損失をも避けることが可能となる。このマスク処理の実行には、回路を追加する必要は一切ない。
【００６８】
提案したATPGフローの利点は、次の通りである。
【００６９】
集中的なＬＳＡの削減：必要なベクトル（ラウンチリスクがあるベクトル）についてのみ、かつ、必要なエリア（インパクトエリア）についてのみ、ＬＳＡが削減される。すなわち、ラウンチセーフであるテストベクトルに対する、又は、低ＬＳＡであるエリア若しくはタイミング欠陥を引き起こさないＬＳＡを有するエリアに対する、不必要となるＬＳＡの削減を一切実行しない。これにより、危険パスの削減効率が飛躍的に向上するのみならず、必要以上にテストの品質を劣化させることを避けることが可能となる。
【００７０】
ラウンチ安全性の保証：全ての不確実なテスト応答に対して最後の手段としてマスク処理を行うことにより、ラウンチ安全性が保証される。これが実行可能であるのは、集中的なＬＳＡの削減を行って危険パスが残るとしてもわずかだからである。
【００７１】
テストの品質及びコストに対する最小限の影響：集中的なＬＳＡの削減において使用するのは、必要最低限の資源（すなわちインパクトＸビット）のみであって、故障検出指向のＸ割当（例えばランダム割当）によって最適化されている他のビットの論理値は保持される。さらに、マスク処理に由来する故障検出能力の低下は、その後のATPGの実行で生成されるテストベクトルによってほぼカバーされる。したがって、元々のテストの品質が保たれると共に、テストデータが膨大となることを避けることが可能となる。
【００７２】
以下、図３を用いてテスト装置１を用いたテスト方法のフローの詳細について述べる。図３は、ラウンチ安全性が保証されたテスト方法のフローである。
【００７３】
図３に示すように、これらの優位な効果は、４つの基本的な技術によって達成される。すなわち、ＬＳＰに基づくラウンチ安全性チェック（ステップＳＴ１／ステップＳＴ４）、インパクトＸビットの復元（ステップＳＴ２）、集中的なＬＳＡの削減（ステップＳＴ３）、不確実なテスト応答のマスク処理（ステップＳＴ５）である。後に述べるように、大規模ＩＴＣ’99回路を用いた評価では、上記の効果が確認されている。
【００７４】
図３に示すように、従来のテスト生成（ステップＳＳＴ１〜ステップＳＳＴ３、ステップＳＳＴ４及びステップＳＳＴ５）は、初期故障リスト生成（ステップＳＳＴ１）に始まる。最優先ATPG対象故障を検出するために部分的に論理値が定まったテストキューブＣ１（テストキューブ３１）が生成され、続いて動的コンパクションが実行される（ステップＳＳＴ２）。ここでは、どの遷移、パス、微小遅延ATPGも用いられる。次に、故障指向のＸ割当が実行されてＣ１が全ての論理値が定まったテストベクトルＶ１（テストベクトル３３）に変換される（ステップＳＳＴ３）。産業上は、ここでランダム割当がよく用いられているが、これはランダム割当の偶発的な故障検出能力によりモデル化されていない故障の検出能力が大きく向上し（したがってテストの品質が向上する）、テストデータ量が削減される（したがってコストが低減する）ためである。続いて、故障シミュレーションが実行されて故障リストが更新される（ステップＳＳＴ４）。その後、終了条件が確認されてテスト生成を続行するか否かが判断される（ステップＳＳＴ５）。
【００７５】
以上の従来のATPGフローが、ラウンチ安全性を保証する新規の方法（ステップＳＴ１〜５）を追加することで改良される。この新規の方法は、次の２段階の処理からなる。
【００７６】
第１段階（救済）：この段階は、ステップＳＴ１〜３からなる。まず、ＬＳＰに基づくラウンチ安全性チェック（ステップＳＴ１）が実行され、Ｖ１における全ての活性化された長いパス（ＬＳＰ）が特定され、各ＬＳＰの近傍エリア（「インパクトエリア」という）におけるラウンチ遷移（ＬＳＡ）がチェックされる。ＬＳＰのインパクトエリアが過度のＬＳＡを有する場合、そのＬＳＰは、「危険パス」という。Ｖ１は、１つでも危険パスが存在する場合、「ラウンチリスクがある」という。この場合、インパクトＸビットの復元（２）が実行され、元々Ｃ１においてＸビットであったＶ１内の論理値ビットであって少なくとも１つの危険パスのインパクトエリアに到達できるビットは、Ｘビット（「インパクトＸビット」という）に戻される。こうして、時間のかかるテストベクトルのリラクゼーションを一切行うことなく、新たなテストキューブＣ２（テストキューブ３７）が効率よく得られる。続いて、インパクトＸビットに対して集中的な低ＬＳＡのＸ割当（ステップＳＴ３）が実行され、危険パスのインパクトエリアにおいて集中的にＬＳＡが削減される。こうして新たなテストベクトルＶ２（テストベクトル３９）を得る。
【００７７】
第２段階（マスク）：この段階は、ステップＳＴ４及び５からなる。まず、ＬＳＰに基づくラウンチ安全性チェック（ステップＳＴ４）がＶ２について実行される。Ｖ２にラウンチリスクがあると判定された場合、誤ったテスト応答が危険パスの終点（回路モデルにおける、ＦＦ入力又は疑似出力線（PPO））に現れて歩留り損失を引き起こしかねない。製造テストにおけるこのリスクの一切を排除するために、不確実なテスト応答のマスク処理（ステップＳＴ５）が実行される。この処理は、Ｖ２について残っている危険パスがあれば、全ての危険パスの終点PPOにおけるテスト応答に対して製造テストデータにおいてＭを付すことで行われる。明らかに、このマスク処理は、回路上のオーバーヘッドを生じさせない。しかも、マスクされたPPOを用いて故障シミュレーションを行って故障リストが更新されるので、PPOがマスクされたことによる故障検出能力の変化が実行中のATPGの結果に適切に反映される。
【００７８】
（ア）  ＬＳＰに基づくラウンチ安全性チェック
図３のフローにおいて、過度のＬＳＡ（ラウンチ遷移）によってタイミング欠陥を引き起こし得るパスを全て特定することが極めて重要である。実質的には、過度のＬＳＡの影響を受け得るのは、活性化された長いパス（ＬＳＰｓ）のみなので、ＬＳＰに基づくラウンチ安全性チェックを以下のように行う。
【００７９】
定義１：ゲートＧの「アグレッサー領域」は、ＡＲ（Ｇ）で表され、遷移が起こるとＧへの供給電力に多大な影響を与えることになるアグレッサーセル（ゲートやＦＦ）からなる。
【００８０】
ここで、図４及び図５を用いてアグレッサー領域及びインパクトエリアについて説明する。図４は、ゲートのアグレッサー領域の一例を示す図である。図５は、パスのインパクトエリアの一例を示す図である。
【００８１】
ＬＳＩチップでは、電流が、交互に積層されたＶＤＤやＧＮＤのメタル配線からなるパワーグリッドを介してＣ４パッドからセルへ流れる。これらのメタル層間はビアで接続されており、セルは下層の（例えばＭ２とＭ４をつなぐ）ビアに接続されている。したがって、対象ゲートＧ１のアグレッサー領域は、次のように特定することができる。まず、対象ゲートＧ１に直接電力を供給している、対象ゲートＧ１の電力供給ビアＶ１を特定する。続いて、対象ゲートＧ１の電力供給ビアＶ１のカレントシンクセルを全て特定すると、これらのセルが対象ゲートＧ１のアグレッサーセルである。図４に簡素化（ＧＮＤ線を省略）した例を示す。図４では、対象ゲートＧ１のアグレッサー領域は、アグレッサーセルＧ２、Ｇ３及びＧ４からなる。ここで、Ｇ２は、遠くにあるＧ３及びＧ４に比べて強力なアグレッサーセルである。
【００８２】
定義２：Ｐの「インパクトエリア」は、ＩＡ（Ｐ）で表され、パスＰ上の全てのゲート（Ｇ１，Ｇ２，．．．Ｇｎ）のアグレッサー領域からなる。すなわち、図５に示すように、IA(P) =AR(G1)∪AR(G2)∪…∪AR(Gn)  である。
【００８３】
図５において、あるＦＦの疑似入力ＦＦｓから疑似出力ＦＦｅに至るパスＰ上のゲートＧのアグレッサー領域ＡＲ（Ｇ）が点線で囲まれた四角で示されている。また、これらのアグレッサー領域ＡＲ（Ｇ）の和としてパスＰのインパクトエリアＩＡ（Ｐ）が実線で囲まれた領域で示されている。
【００８４】
定義３：もし、（１）テストベクトルＶによってパスＰが活性化されており、（２）Ｖの下でＰのインパクトエリアにおけるＬＳＡが（しきい値に対して）過剰である場合、Ｖの下でＰは、「危険パス」であるという。
【００８５】
定義４：テストベクトルＶが危険パスを少なくとも１つ有する場合、Ｖは、「ラウンチリスクがあるテストベクトル」であるという。
【００８６】
上記の定義に基づき、ＬＳＰに基づくラウンチ安全性チェックは、次の手続に従って実行される：
ＬＳＰに基づくラウンチ安全性チェック（）
｛入力：テストベクトルＶ、設計データ（ネットリスト、レイアウト、電力供給ネットワーク）、パス長のしきい値α、ＷＳＡレベルのしきい値β
出力：Ｖの状態、Ｖの危険パス
操作１：全てのＬＳＰを特定する。すなわち、Ｖによって活性化されるパスであって、パス長がαを超えるパスを特定する。
操作２：各ＬＳＰのインパクトエリアを特定する。
操作３：論理シミュレーションを実行し、各ＬＳＰのインパクトエリアにおけるＷＳＡ（重み付けした遷移）を算出する。
操作４：各ＬＳＰのインパクトエリアにおけるＷＳＡがβを超えるか否か判定することにより、Ｖの危険パスを全て特定する。Ｖの全ての危険なＬＳＰを出力する。
操作５：Ｖの状態を出力する。ＶがＬＳＰを１つでも有していれば、Ｖはラウンチリスクがある。そうでなければ、Ｖはラウンチセーフである。｝
【００８７】
この手続において、α及びβは、それぞれパス長のしきい値及びＷＳＡのしきい値である。我々の実験では、αは、構造上の最長パスの７０％の長さに設定され、βは、インパクトエリアの最大ＷＳＡの３０％の値に設定された。テストを実施する上では、これらの値はテスト技術者によって設定可能である。
【００８８】
ＬＳＰに基づくラウンチ安全性チェックが従来技術よりも優れている点は、主に次の点である。
【００８９】
高精度であること：この手続では、パス内で遅延が増加すると図９に示すテストサイクルにおけるタイミング欠陥を引き起こす真の原因となる活性化された長いパス（ＬＳＰ）を対象とする。
【００９０】
高分解能であること：この手続は、テストベクトルがラウンチリスクを有するか否かにとどまらず、全ての危険パスを特定する。この危険パスに関する詳細な情報によって集中的なＬＳＡ削減（第１段階）及びラウンチ安全性の保証（第２段階）を実用的に実行することが可能となる。また、ラウンチ安全性チェックにより、ラウンチリスクがない（危険パスがない）テストベクトルであると特定された場合、第２段階の処理を行う必要がなくなる。そのため、不要な処理を実行せずに済む。
【００９１】
（イ）  インパクトＸビットの復元
図３に示すように、テストベクトルがＬＳＰに基づくラウンチ安全性チェック（ステップＳＴ１）によってラウンチリスクがあると特定された場合、第１段階の救済として各危険パスのインパクトエリアにおける過度のＬＳＡができる限り削減される。この目標は、Ｘビットを得るためのインパクトＸビットの復元（ステップＳＴ２）と、得られたＸビットに適切な論理値を割り当ててＬＳＡを削減するための集中的な低ＬＳＡのＸ割当（ステップＳＴ３）によって達成される。以下では、まずインパクトＸビットの復元について述べる。
【００９２】
低ＬＳＡのＸ割当に用いるＸビットを得るための従来のアプローチには、２つある。１つは、テストキューブの保持であり、ATPGに対して決定論的に生成されたテストキューブにおけるランダム割当や他の故障検出指向のＸ割当処理を停止せることにより強制的にＸビットを残させることで行われる。もう１つは、テストベクトルのリラクゼーションであり、完全に特定されたテストベクトル集合を、故障検出率を維持しつつ部分的に特定されたテストキューブ集合に変換することで行われる。
【００９３】
テストキューブの保持は、テストの品質が著しく低下してしまう上に、テストベクトル数が増加してしまう。なぜなら、ランダム割当による偶発的な故障検出能力が用いられないからである。例えば、６００Ｋゲート数の実用的回路ブロックを用いた我々の実験では、ランダム割当を停止させた場合にテストベクトル数が５１％も増加した。これに対し、テストベクトルのリラクゼーションは、コンパクトなテスト集合に対して実行可能であり、テストのサイズが維持される。しかし、このアプローチは、完全なテスト集合に対して行われる静的なポストATPGの処理であり、各テストベクトルを生成する動的なATPGフローにおいて適用することが難しい。
【００９４】
ランダム割当の偶発的な故障検出能力を最大限活かしつつ、各テストベクトルについて動的にＸビットを得るために、インパクトＸビットの復元という新方式を以下のとおり提案する。
【００９５】
定義５：Ｖ１は、テストキューブＣ１に対して故障検出指向のＸ割当（例えばランダム割当）（図３におけるステップＳＳＴ３）を行って得られたラウンチリスクのあるテストベクトルであるとする。
【００９６】
インパクトＸビットの復元によって、完全に特定されたテストベクトルＶ１内の論理値ビットｂは、もしｂがＶ１のインパクトＸビットに一致する場合、全てＸに変換される。この結果、部分的に特定されたテストキューブＣ２が新たに得られる。
【００９７】
図６は、インパクトＸビットの復元の一例を示す図である。図６において、Ｃ１は、決定論的に生成されたテストキューブであって、対象故障を検出するためにｂ１、ｂ７、ｂ９に論理値を有する。Ｃ１の他の全てのビットには、偶発的な検出が可能となるようにランダム割当で割り当てられ、Ｖ１が得られる。Ｖ１が２つの危険パス（Ｐａ及びＰｂ）を有する場合、Ｖ１のインパクトＸビットは、ｂ２、ｂ３、ｂ４、ｂ８である。これらのインパクトＸビットに対応するＶ１内のビットをＸビットに戻すことにより、新たなテストキューブＣ２が得られる。明らかに、Ｃ２は、Ｃ１が検出する故障を全て検出する。加えて、ランダム割当で割り当てられた論理値ｂ５及びｂ６がそのまま残っているので、ランダム割当の偶発的な検出能力はある程度保持されている。したがって、インパクトＸビットの復元によって、危険パスのインパクトエリアにおけるＬＳＡに直接関係するＸビットを得るだけでなく、テストの品質を保持することに寄与し、テストベクトル数の膨大な増加を避けることが可能となる。
【００９８】
（ウ）  集中的な低ＬＳＡのＸ割当
図３において、インパクトＸビットの復元（ステップＳＴ２）によってＸビットが得られた後、集中的な低ＬＳＡのＸ割当（ステップＳＴ３）が得られたＸビットに対して実行される。「集中的な」というのは、全てのＸビットが危険パスのインパクトエリアに直接関係していることを意味する。
【００９９】
ここでは、低ＬＳＡのＸ割当技術であればどんなものでも使用できる。本実施例では、JP-fillを改良して割当、正当化、マルチパス確率計算を使用した割当方法を採用する。この割当では、候補PPI−PPOビットペア（＜０／１，Ｘ＞、＜Ｘ，０／１＞又は＜Ｘ，Ｘ＞という形式のビットペア）のＸビットにPPIとPPOを等値化するように値を割り当てる。Ｘ割当の効率は、割当の順序に依存するので、候補PPI−PPOビットペアを順位づけるためにJP-fillを改良して新しい重みを以下のように採用した。
【０１００】
定義６：ｂｐ＝＜ｘ，ｙ＞は、PPIビットｘが危険パスＰ１，Ｐ２，．．．Ｐｍに到達可能な候補PPI−PPOビットペアであるとする。ｂｐの重みは、weight(bp)で表され、次式で定義される。
【０１０１】
【数２】
0005829420.tif 000003
【０１０２】
ただし、reached(x, Pi)は、PPIビットｘから到達可能であるＰｉのインパクトエリアにおけるノード数、all(Pi)は、Ｐｉのインパクトエリアにおける全てのノード数である。
【０１０３】
明らかに、weight(bp)は、候補PPI−PPOビットペアｂｐにおける遷移の削減が、危険パスのインパクトエリアにおけるＬＳＡの削減に及ぼす影響を表している。この重みを用いて候補PPI−PPOビットペアを処理する順序を決定することにより、さらに効率よくＬＳＡが削減される。
【０１０４】
（エ）  不確実なテスト応答のマスク処理
図３において、集中的な低ＬＳＡのＸ割当（ステップＳＴ３）が救済の段階（第１段階）で行われてテストベクトルＶ２が得られる。一般的には、Ｖ２が有する危険パスは大抵の場合には少なくなるとはいえ、Ｖ２は、なおラウンチリスクがある可能性がある。その場合、マスクの段階（第２段階）がラウンチ安全性を保証する最後の手段として実行される。
【０１０５】
第２段階では、ＬＳＰに基づくラウンチ安全性チェック（ステップＳＴ４）によってＶ２にラウンチリスクがあると判明した場合、図７に示すように不確実なテスト応答のマスク処理が実行される。
【０１０６】
図７は、不確実なテスト応答のマスク処理の一例を示す図である。図７において、Ｖ２は、活性化された長いパスを２つ有する。１つは、（集中的な低ＬＳＡのＸ割当による）安全パスＰａと、（ＬＳＡ削減が不十分であった）危険パスＰｂである。Ｐｂの終点は、出力ビットｒに対応している。ここで、Ｒ２（論理シミュレーションで得られた、Ｖ２に対する初期テスト応答）は、ｒのところで０を有するものの、Ｐｂのインパクトエリアにおける過度のＬＳＡによってｒのところにタイミングエラーが生じ、テストモードに限ってｒのところに１が現れるかもしれない。歩留り損失のリスクを避けるために、不確実なテスト応答のマスク処理（ステップＳＴ５）が実行され、ｒのところの０をＭで置き換えて最終テスト応答Ｒ’２を得る。こうすることで、テスターにｒのところは製造テスト時に比較しないよう指示し、実速度スキャンテスティングにおいて電力供給ノイズが誘発する歩留り損失のリスクの一切を避けることが可能となる。
【０１０７】
ここで、マスク処理は、空間上の又はパフォーマンス上のオーバーヘッドを全く要しない。というのも、最終テスト応答において単にＭをｒのところに付すだけだからである。マスク処理を行うことにより、Ｖ２のｒのところだけで検出されていた故障は検出されなくなる。しかし、ｒは、Ｖ２においてのみマスクされ、他のテストベクトルによる故障検出には使用される。すなわち、マスクされたPPOの情報をもって故障シミュレーションが行われて故障リストが更新され（図３におけるステップＳＳＴ４）、始めはｒがマスクされていないATPGが続行される。こうして、Ｖ２についてはｒのところの故障検出能力が失われても、その後のATPGの実行によって補われ、必要とするテストベクトルの増加もわずかで済む。
【０１０８】
（オ）  テスト圧縮環境下におけるスキャンテスティングへの拡張
ラウンチ安全性の保証を達成する救済及びマスク方式は、ブロードキャストスキャン又は線形展開器に基づくテストの圧縮環境の場合に容易に拡張される。例えば、ブロードキャストスキャンに基づくテストの圧縮の場合、組合せ展開器が入力に課す制約は、組合せ回路モデルに埋め込むことができる。このモデルには、ＬＳＰに基づくラウンチ安全性チェック、インパクトＸビットの復元、集中的な低ＬＳＡのＸ割当をそのまま適用可能である。主に配慮を要するのは、テスト応答の圧縮に関してであり、不確実なテスト応答のマスク処理で導入したＭが故障検出を阻害するおそれがある。しかし、実験結果に示すように、導入されるＭはまばらであってその数もテストベクトルに対して非常に限られている。このため、テストの品質とコストに及ぼす影響は最小限にとどまる。
【０１０９】
以下に、実験結果について述べる。
【０１１０】
TetraMAX（登録商標）を基礎のATPGとして新規のテストパワー考慮型のテスト生成フローを実装し、提案に係るラウンチ安全性を保証する救済及びマスクの方式をＣ言語でコーディングした。ITC'99ベンチマークの６つの大規模回路を合成して電力供給ネットワークと共にレイアウトを行った。実験は、ワークステーション（Intel Xenon（登録商標）、3.3GHz、メインメモリ64GB）上で行われた。回路の統計データ及び実験結果を図８にまとめて示す。
【０１１１】
図８は、テスト装置１を用いたテスト方法の実験結果の一例を示す図である。本実験においては、テストのコストをテストベクトル数（ベクトル数）で評価した。テストの品質は、遷移故障検出率（ＦＣ）に加えて、より包括的な評価を行うためにブリッジ故障検出評価（ＢＣＥ）及び統計的遅延品質レベル（ＳＤＱＬ）も用いて評価を行った。ＢＣＥは、業界において、モデル化されていない構造上の欠陥（特に、ブリッジ欠陥）の故障検出能力を評価するために用いられている。ＳＤＱＬは、業界において、モデル化されていない微小な遅延欠陥の故障検出能力を評価するために用いられている。
【０１１２】
まず、従来のATPGフローを実行した。得られた結果を基準となる値として表１の「従来フロー」の下に示す。次に、提案に係るATPGフローを実行し、得られた結果を表１の「提案フロー」の下に４つの部分に分けて示す。（１）テストベクトル数の変化及び３つのテスト品質基準（ＦＣ、ＢＣＥ、ＳＤＱＬ）の値を「ATPG結果（％  変化率）」の下に示す。（２）活性化された長いパスのベクトルあたりの平均数（LSP数の平均値 / Vec.）、危険パスのベクトル当たりの平均数（危険パス数の平均値 / Vec.）、リスクのあるベクトルの割合（リスクのあるベクトル  ％.）を「ラウンチ安全性チェック」の下に示す。（３）インパクトＸビットの割合（インパクトＸビット  ％）及び集中的な低ＬＳＡのＸ割当が危険パスを安全パスとした割合（救済率（％））を「救済」の下に示す。（４）マスクされたPPO数（マスクPPO数）及びマスクされたPPO数のベクトル当たりの平均数（マスクPPO数の平均値/ Vec.）を「マスク」の下に示す。
【０１１３】
提案に係るATPGフローの特質により、常にラウンチ安全性が保証されている。表１を見ると、テストベクトル数ＦＣ、ＢＣＥ、ＳＤＱＬがほとんど変化していないので、この新規なATPGフローがテストの品質及びコストに及ぼす影響がごくわずかであることが示されている。この結果は、マスクされたPPOの特質によるものである。すなわち、表１の「マスクPPO数/ Vec.」に示すように、マスクされたPPOがまばらであり、かつ、マスクされたPPO数が極めて小さいことによるものである。
【０１１４】
このマスクされたPPOの特質は、いかなるテスト圧縮環境においても保たれる。なぜなら、この特質は、組合せ回路部にのみ関係するものであって、展開器及び圧縮器には全く無関係だからである。このことから、提案に係る救済及びマスク方式は、圧縮スキャンテスティングにおいてもパフォーマンスが大きく低下することなく機能することが示されている。
【０１１５】
なお、テスト装置１は、初期テストキューブ３１、中間テストパターン３３、候補パターン３５、新規テストキューブ３７、最終テストパターン３９又は出力パターン４１のビットの論理値や位置等の情報を記憶する記憶部を備えるものであってもよい。また、テスト装置１は、対象故障や２番目以降に対象とされる故障群を記憶する故障記憶部を備えるものであってもよい。
【０１１６】
また、中間テストパターン安全性判定部５及び最終テストパターン安全性判定部１３は、１つの判定部により実現されてもよい。
【０１１７】
さらに、新規テストキューブ生成部９は、中間テストパターン３３が有する入力ビットの一部であって初期テストキューブ３１が有する初期未定値ビットに対応する入力ビットの一部から新規未定値ビットとすべき入力ビットを選択する初期未定値ビット選択部を有するものであってもよい。
【０１１８】
さらに、中間テストパターン３３、最終テストパターン３９、期待出力パターン又は実測出力パターンは、未定値ビットを有するものであってもよい。
【０１１９】
さらに、マスク部１７は、テスト部１５が有するものであってもよい。また、マスク部１７は、出力パターン４１の出力ビットの一部を直接マスクする代わりに、マスクすべき出力ビットの位置（マスク位置）を特定したマスクパターンを生成するものであってもよい。
【０１２０】
さらに、第２の目的として、故障検出能力を制御するためにテストパターンを論理回路に印加した際の消費電力を増大又は削減することとしてもよい。また、第３の目的として、故障検出能力を高めるためにテストパターンを論理回路に印加した際の消費電力を増大させることとしてもよい。
【０１２１】
さらに、本実施例における「アグレッサーセル」とは、ゲートやＦＦそのものを指してもよく、ゲートやＦＦの周辺領域まで含めて指すものであってもよい。
【符号の説明】
【０１２２】
１  テスト装置、３  中間テストパターン生成部、５  中間テストパターン安全性判定部、７  候補ビット特定部、９  新規テストキューブ生成部、１１  最終テストパターン生成部、１３  最終テストパターン安全性判定部、１５  テスト部、１７  マスク部、１９  危険パス特定部、２１  危険ビット特定部、３０  初期論理値ビット、３１  初期テストキューブ、３２  初期未定値ビット、３３  中間テストパターン、３４  候補ビット、３５  候補パターン、３６  新規未定ビット、３７  新規テストキューブ、３９  最終テストパターン、４０  マスクビット、４１  出力パターン
【図１】
0005829420.tif 000004
【図１０】
0005829420.tif 000005
【図２】
0005829420.tif 000006
【図３】
0005829420.tif 000007
【図４】
0005829420.tif 000008
【図５】
0005829420.tif 000009
【図６】
0005829420.tif 000010
【図７】
0005829420.tif 000011
【図８】
0005829420.tif 000012
【図９】
0005829420.tif 000013