(57)【特許請求の範囲】
【請求項１】
論理回路に対して予め与えられた遷移遅延故障を検出する複数のテストベクトルを有するテストパターンを前記論理回路に印加する前に論理値が異なるビット構成の前記遷移遅延故障を検出する新たなテストパターンに変換する変換装置において、
前記予め与えられたテストパターンの構成要素は連続して前記論理回路に印加されることが予定されたN個（N≧２）のテストベクトルであり、且つ、前記構成要素を構成するN個（N≧２）のテストベクトルは互いのビット間の関係が反転関係に限られず且つそれぞれのビット配列が交互にビット反転するものに限られないテストベクトルであり、
前記構成要素の印加により検出される前記論理回路の遷移遅延故障の検出条件をN時刻展開回路（N≧２）により定め、この検出条件を満たす前記予め与えられたテストパターン中の論理値の組み合わせであってドントケアとできないビットについての論理値の組合せを決定する決定手段を備え、
前記決定手段は前記遷移遅延故障の検出条件である信号値変化前に必要となる初期条件及び変化後の信号値を確認する条件の二つの条件のいずれをも満たすテストパターン中の論理値の組合せを決定する、変換装置。
【請求項２】
前記決定手段により決定された論理値の組合せに含まれないビットの論理値をドントケアとするドントケア決定手段を備えた、請求項１記載の変換装置。
【請求項３】
論理回路に対して予め与えられた所定の故障を検出する複数のテストベクトルを有するテストパターンを前記論理回路に印加する前に論理値が異なるビット構成の前記故障を検出する新たなテストパターンに変換する変換方法において、
前記予め与えられたテストパターンの構成要素は連続して前記論理回路に印加されることが予定されたN個（N≧２）のテストベクトルであり、且つ、前記構成要素を構成するN個（N≧２）のテストベクトルは互いのビット間の関係が反転関係に限られず且つそれぞれのビット配列が交互にビット反転するものに限られないテストベクトルであり、
決定手段が前記構成要素の印加により検出される前記論理回路の故障の検出条件を満たす前記予め与えられたテストパターン中の論理値の組み合わせであってドントケアとできないビットについての論理値の組合せを決定する決定ステップを含み、
前記決定ステップは、前記論理回路の故障の検出条件をN時刻展開回路（N≧２）により定め、この検出条件を満たす前記予め与えられたテストパターン中の論理値の組合せを決定する、変換方法。
【請求項４】
前記決定ステップは前記決定手段が前記故障の検出条件である信号値変化前に必要となる初期条件及び変化後の信号値を確認する条件の二つの条件のいずれをも満たすテストパターン中の論理値の組合せを決定する、請求項３記載の変換方法。
【請求項５】
前記決定ステップにより前記決定手段が決定した論理値の組合せに含まれないビットの論理値をドントケアとするドントケア決定ステップを含む、請求項３又は４記載の変換方法。
【請求項６】
請求項３から５のいずれかに記載の変換方法をコンピュータに実行させることが可能なプログラム。
【請求項７】
請求項６記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換装置、変換方法、変換方法をコンピュータに実行させることが可能なプログラム、及び、このプログラムを記録した記録媒体に関し、特に、論理回路に対して予め与えられたテストパターンを論理値が異なるビット構成のテストパターンに変換する変換装置等に関する。
【背景技術】
【０００２】
以下に、従来から提案されてきた縮退故障検出を前提とした、テストパターン内のドントケアの抽出手法について説明する。【０００３】
図９は、一般的な論理回路におけるフルスキャン順序回路の模式図である。【０００４】
一般に、半導体論理回路は主に順序回路である。順序回路は、アンド（ＡＮＤ）ゲート、ナンド（ＮＡＮＤ）ゲート、オア（ＯＲ）ゲート、ノア（ＮＯＲ）ゲート等の論理素子からなる組合せ回路部１２０１と、回路の内部状態を記憶するフリップフロップ１２０３とを備える。この場合、組合せ回路部１２０１は、外部入力線（ＰＩ）、フリップフロップの出力線である擬似外部入力線（ＰＰＩ）、外部出力線（ＰＯ）、フリップフロップの入力線である擬似外部出力線（ＰＰＯ）を有する。組合せ回路部１２０１への入力は、外部入力線より直接与えられるものと、擬似外部入力線を介して与えられるものがある。また、組合せ回路部１２０１からの出力は、外部出力線に直接現れるものと擬似外部出力線に現れるものがある。【０００５】
しかし、順序回路のフリップフロップ１２０３の出力線（擬似外部入力線）と入力線（擬似外部出力線）は一般に外部より直接アクセスできない。従って、組合せ回路部１２０１をテストするためには、擬似外部入力線の可制御性及び擬似外部出力線の可観測性に問題がある。【０００６】
上述の組合せ回路部１２０１のテストにおける可制御性及び可観測性の問題を解決する主な手法として、フルスキャン設計がある。フルスキャン設計とは、フリップフロップをスキャンフリップフロップに置き換えた上で、それらを用いて１本または複数本のスキャンチェーンを形成することである。スキャンフリップフロップの動作はスキャンインネーブル（ＳＥ）信号線で制御される。例えば、ＳＥ＝０のとき、従来のフリップフロップと同じ動作をし、クロックパルスが与えられると、組合せ回路部１２０１からの値でスキャンフリップフロップの出力値が更新され、また、ＳＥ＝１のとき、同じスキャンチェーンにある他のスキャンフリップフロップと１つのシフトレジスタを形成し、クロックパルスが与えられると、外部から新しい値がスキャンフリップフロップにシフトインされると同時に、スキャンフリップフロップに現存の値が外部へシフトアウトされる。一般に、同じスキャンチェーンにあるスキャンフリップフロップは同じスキャンインネーブル（ＳＥ）信号線を共有するが、異なるスキャンチェーンのスキャンインネーブル（ＳＥ）信号線は同一の場合もあれば異なる場合もある。【０００７】
フルスキャン順序回路の組合せ回路部のテストはスキャンシフトとスキャンキャプチャを繰り返すことによって行われる。スキャンシフトは、スキャンインネーブル（ＳＥ）信号が論理値１にされているシフトモードで行われる。シフトモードにおいては、１つまたは複数のクロックパルスが与えられ、外部から１つまたは複数の新しい値がスキャンチェーン内のスキャンフリップフロップにシフトインされる。また、それと同時に、そのスキャンチェーン内のスキャンフリップフロップに現存の１つまたは複数の値が外部へシフトアウトされる。スキャンキャプチャは、スキャンインネーブル（ＳＥ）信号が論理値０にされているキャプチャモードで行われる。キャプチャモードにおいては、１つのスキャンチェーンにあるすべてのスキャンフリップフロップに同時に１つのクロックパルスが与えられ、組合せ回路部の擬似外部出力線の値がすべてのスキャンフリップフロップに取り込まれる。【０００８】
スキャンシフトは、擬似外部入力線を介して組合せ回路部１２０１へテストベクトルを印加するためと、擬似外部出力線を介して組合せ回路部１２０１からテスト応答を観測するために用いられる。また、スキャンキャプチャは、組合せ回路部１２０１のテスト応答をスキャンフリップフロップに取り込むために用いられる。すべてのテストベクトルに対して、スキャンシフトとスキャンキャプチャを繰り返すことによって、組合せ回路部をテストすることができる。このようなテスト方式はスキャンテスト方式という。【０００９】
スキャンテスト方式では、組合せ回路部１２０１へのテストベクトルの印加は、外部入力から直接行われる部分と、スキャンシフトによって行われる部分とがある。スキャンシフトによって、任意の論理値を任意のスキャンフリップフロップに設定することができるので、擬似外部入力線の可制御性の問題が解決される。組合せ回路部１２０１からのテスト応答の観測は、外部出力から直接行われる部分と、スキャンシフトによって行われる部分とがある。スキャンシフトによって、任意のスキャンフリップフロップの出力値を観測することができるため、擬似外部出力線の可観測性の問題が解決される。このように、スキャンテスト方式においては、自動テストパターン生成（以下、ＡＴＰＧとする）プログラムを用いてテストベクトル及び期待テスト応答を求めるだけで十分である。【００１０】
図１０は、テスト入力とテスト応答との関係を示した模式図である。【００１１】
図１０において、テストベクトルにドントケア（Ｘ）が存在する場合、それによってテスト応答にもドントケアが現れる。ドントケアが存在する原因は、１つまたは複数の縮退故障を検出するために、テスト入力の一部のビットのみに論理値が決まれば十分であることによる。このようなドントケアをもつテストベクトルは、テストキューブとも呼ばれ、ＡＴＰＧまたはドントケア発見手法によって求められる。ドントケアには、自由に論理値０または１を割り当てることができる。【００１２】
ドントケアを抽出する方法についての技術がいくつか開示されている（非特許文献１〜非特許文献７）。ここでは、非特許文献１と非特許文献２の技術について簡単に説明する。【００１３】
非特許文献１では、ビット独立と呼ばれる手法に基づいた方法について述べられている。まず、テストベクトルｖは、ｖのみで検出可能なすべての故障Ｆ（ｖ）を決定するために故障シミュレーションが実行される。次に、ｖの最初のビットを仮にドントケアとし、３値故障シミュレーションでＦ（ｖ）が実際に検出可能かどうかを検証する。検出可能であればそのままドントケアとし、そうでなければ本来の値に戻す。これを全ビットについて繰り返すことにより、ドントケアを抽出する。【００１４】
非特許文献２では、故障シミュレーションとＡＴＰＧの処理手順の一部を用いて、可能な限り多くのドントケアの組合せを求める。ただし、初期テストパターンの故障検出率は維持される。以下に例を用いて簡単に説明する。図１１は、テストパターン中のドントケアを決定する場合の例を示す回路図である。【００１５】
縮退故障に対する初期テストパターンが与えられたとすると、その初期テストパターンの中のビットには反対の論理値に変えても故障検出率を低下させないビットがある。そのようなビットはドントケアとすることができる。例えば、図１１において、テストベクトル＜ａ，ｂ，ｃ，ｄ＞＝＜１，０，０，１＞が与えられ、それは信号線ｅの１縮退故障のみを検出するテストベクトルであるとする。テストベクトル＜ａ，ｂ，ｃ，ｄ＞＝＜１，０，０，１＞は、信号線（ａ，ｂ，ｃ，ｄ）に値（１，０，０，１）がそれぞれ印加されることを表す。テストベクトル＜ａ，ｂ，ｃ，ｄ＞＝＜１，０，０，１＞が信号線ｅの１縮退故障のみを検出できればよいため、信号線ｂまたはｃの論理値０は不必要であり、どちらかの論理値はドントケアとすることができる。縮退故障を検出する条件は、故障の活性化と故障の伝搬を保証することである。【００１６】
まず、図１１の回路を故障の活性化について見てみると、信号線ｅの１縮退故障を検出するには信号線ｅに論理値０を割当てる必要がある。そのため信号線ｂまたはｃのどちらか一方を論理値０にすることが必要であるが、もう一方の信号線は論理値０と１のどちらの値になっても活性化に影響を与えることはない。よって、その信号線の値はドントケアに変えることができる。この例では、信号線ｃに印加する論理値をドントケアとする。【００１７】
次に故障の伝搬について見てみると、図１１の回路図では故障箇所ｅから外部出力（ｈとｉ）まで２つの伝搬経路（ｅ−ｆ−ｈとｅ−ｇ−ｉ）がある。このように複数の伝搬経路がある場合、任意の基準で伝搬経路を選択することができる。この例では、伝搬経路ｅ−ｆ−ｈを選択する。この伝搬経路を活性化するために、信号線ａには論理値１を印加する必要がある。それにより信号線ｅの１縮退故障は外部出力ｈに伝搬でき、検出が可能になる。よって残りの信号線ｄはドントケアとすることができる。結果得られたテストキューブ＜ａ，ｂ，ｃ，ｄ＞＝＜１，０，Ｘ，Ｘ＞はテストベクトル＜ａ，ｂ，ｃ，ｄ＞＝＜１，０，０，１＞と同じように、信号線ｅの１縮退故障を検出することが可能である。この例のようにして、テストパターン中のいくつかのビットは故障検出率を低下させずにドントケアに変えることができる場合がある。この非特許文献２の方法は、テストパターン中の全てのビットについてシミュレーションを行なうわけではないので、実行時間においては非特許文献１で提案された手法よりも格段に高速である。【００１８】
【非特許文献１】R.Sankaralingam,N.A.Touba、“Controlling  peak  power  during  scan  testing”、Proceedings  of  the  IEEE  VLSI  Test  Symposium、pp.153-159、2002.
【非特許文献２】S.Kajihara,K.Miyase、”On  Identifying  Don’t  Care  Inputs  of  Test  Patterns  for  Combinational  Circuits”、ICCAD-2001、pp.364-369、Nov.2001.
【非特許文献３】A.El-Maleh,and,A.Al-Suwaiyan、“An  efficient  test  relaxation  technique  for  combinational  &  full-scan  sequential  circuits.”、Proceedings  of  IEEE  VLSI  Test  Symposium、pp.53-59、April  2002.
【非特許文献４】A.El-Maleh,and,K.Al-Utaibi、“An  efficient  test  relaxation  technique  for  synchronous  sequential  circuits.”、Proceedings  of  IEEE  VLSI  Test  Symposium、pp.179,185、April  2003.
【非特許文献５】Y.Higami,S.Kajihara,S.Kobayashi,Y.Takamatsu,and,I.Pomeranz、“A  method  to  find  don’t  care  values  in  test  sequences  for  sequential  circuits.”、Proceedings  of  IEEE  International  Conference  on  Computer  Design、pp.397-399、Oct.2003.
【非特許文献６】B.Koenemann,et.al.、“A  smartBIST  variant  with  guaranteed  encoding.”、Proceedings  of  10th  Asian  Test  Symposium、pp.325-330、November  2001.
【非特許文献７】H.-G.Liang,S.Hellebrand,and,H.-J.Wunderlich、“Two-dimensional  test  data  compression  for  scan-based  deterministic  BIST.”、Proceedings  of  IEEE  International  Test  Conference、pp.894-901、November  2001.
【発明の開示】
【発明が解決しようとする課題】
【００１９】
近年、半導体回路の大規模微細化に伴い、ＶＬＳＩのタイミングに関する欠陥が増大しつつある。このため、ＶＬＳＩのテストにおいても実動作速度での性能を保証することが重要となってきた。タイミングに関する欠陥は、縮退故障モデルのもとで作成される縮退故障検出用テストパターンでは検出できない。そのため、遷移遅延故障モデルやパス遅延故障モデルを用いた実動作速度でのテストが必要である。しかしながら、遅延故障モデルに対する実動作速度テストでは、上述した従来の縮退故障のテスト以上に、テストパターンのサイズが膨大となり、それに伴いテスト印加時間も増大する。また、テスト時の消費電力が増大する問題もある。【００２０】
１つの縮退故障を検出するためには１つのテストベクトルで検出可能だが、１つの遅延故障を検出するためには２つのテストベクトルが必要である。これが縮退故障検出用のテストパターンのサイズに比べて遅延故障検出用のテストパターンのサイズが増大する理由である。テストパターンのサイズが増大する問題を解決するための有力な手掛りとしてテストパターン内のドントケアを利用したテストパターン圧縮手法が提案されている。【００２１】
しかしながら、非特許文献１の技術は、テストパターン中のビットの数だけ故障シミュレーションを繰り返すので、処理時間が故障数、テストベクトル数、及び、テストベクトルのビット数に比例する。したがって、大規模回路への適用は処理時間の面で実用的でない。【００２２】
また、故障シミュレーションとＡＴＰＧを応用する非特許文献２の手法は、非特許文献１に比べて実行時間が短いのが特徴である。しかし、縮退故障検出を前提とするものであって、遅延故障検出のためにドントケアを抽出する手法はまだ提案されていないのが現状である。【００２３】
上記と同様に非特許文献３〜７についても、いずれも縮退故障検出用のテストパターンを対象とする手法であり、遅延故障検出用テストパターンに対しては適用可能性を保障できない。【００２４】
ゆえに、本発明は、上記問題を解決するため、あらかじめ与えられた初期テストパターンを、その構成要素で検出できる遷移遅延故障の故障検出率を下げずに、論理値が異なるビット構成のテストパターンに変換する変換装置、変換方法、変換方法をコンピュータに実行させることが可能なプログラム、及び、このプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００２５】
請求項１に係る発明は、論理回路に対して予め与えられた遷移遅延故障を検出する複数のテストベクトルを有するテストパターンを前記論理回路に印加する前に論理値が異なるビット構成の前記遷移遅延故障を検出する新たなテストパターンに変換する変換装置において、前記予め与えられたテストパターンの構成要素は連続して前記論理回路に印加されることが予定されたN個（N≧２）のテストベクトルであり、且つ、前記構成要素を構成するN個（N≧２）のテストベクトルは互いのビット間の関係が反転関係に限られず且つそれぞれのビット配列が交互にビット反転するものに限られないテストベクトルであり、前記構成要素の印加により検出される前記論理回路の遷移遅延故障の検出条件をN時刻展開回路（N≧２）により定め、この検出条件を満たす前記予め与えられたテストパターン中の論理値の組み合わせであってドントケアとできないビットについての論理値の組合せを決定する決定手段を備え、前記決定手段は前記遷移遅延故障の検出条件である信号値変化前に必要となる初期条件及び変化後の信号値を確認する条件の二つの条件のいずれをも満たすテストパターン中の論理値の組合せを決定する変換装置である。
【００２７】
請求項２に係る発明は、請求項１記載の変換装置であって、前記決定手段により決定された論理値の組合せに含まれないビットの論理値をドントケアとするドントケア決定手段を備える。
【００２８】
請求項３に係る発明は、論理回路に対して予め与えられた所定の故障を検出する複数のテストベクトルを有するテストパターンを前記論理回路に印加する前に論理値が異なるビット構成の前記故障を検出する新たなテストパターンに変換する変換方法において、前記予め与えられたテストパターンの構成要素は連続して前記論理回路に印加されることが予定されたN個（N≧２）のテストベクトルであり、且つ、前記構成要素を構成するN個（N≧２）のテストベクトルは互いのビット間の関係が反転関係に限られず且つそれぞれのビット配列が交互にビット反転するものに限られないテストベクトルであり、決定手段が前記構成要素の印加により検出される前記論理回路の故障の検出条件を満たす前記予め与えられたテストパターン中の論理値の組み合わせであってドントケアとできないビットについての論理値の組合せを決定する決定ステップを含み、前記決定ステップは、前記論理回路の故障の検出条件をN時刻展開回路（N≧２）により定め、この検出条件を満たす前記予め与えられたテストパターン中の論理値の組合せを決定する変換方法である。
【００２９】
請求項４に係る発明は、請求項３記載の変換方法であって、前記決定ステップは前記決定手段が前記故障の検出条件である信号値変化前に必要となる初期条件及び変化後の信号値を確認する条件の二つの条件のいずれをも満たすテストパターン中の論理値の組合せを決定する。
【００３０】
請求項５に係る発明は、請求項３又は４記載の変換方法であって、前記決定ステップにより前記決定手段が決定した論理値の組合せに含まれないビットの論理値をドントケアとするドントケア決定ステップを含む。
【００３１】
請求項６に係る発明は、請求項３から５のいずれかに記載の変換方法をコンピュータに実行させることが可能なプログラムである。
【００３２】
請求項７に係る発明は、請求項６記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
【発明の効果】
【００３３】
本発明によれば、遷移遅延故障検出用のテストパターンを圧縮により削減する有効な手段を実現しているため、遷移遅延故障検出用のテストパターンのサイズが膨大になるという問題が改善され、遷移遅延故障のテスト印加時間を短縮することができる。【００３４】
また、本発明によれば、テスト時の消費電力量が削減されるようなテストパターンに変換することで、テスト時の消費電力量を削減できる。したがって、歩留まりの低下を防ぐのに役立つ。【００３５】
さらに、本発明によれば、予め与えられた初期テストパターンの故障検出率を低下させずに、テストパターンを圧縮する等の新しい特徴を持たせることができる。【００３６】
さらに、本発明によれば、遅延故障検出用のテストパターンのサイズが小さくなるため、従来はテストパターンのサイズが膨大なためにテスト印加時間が増大し、充分にテストできなかった遅延故障に対するテストが可能となる。従って、これまでテストが不十分のため本来不良品なのに良品として出荷していた半導体装置のテストが可能となるため、半導体装置の品質が向上する。【００３７】
さらに、本発明の手法は、スキャン回路の方式及びクロックの種類、クロックの数に依存しないため、フルスキャン設計を適用した半導体装置全般に対して適用できる。すなわち、複数本のスキャンチェーンが存在する半導体装置、スキャン回路を駆動するクロックが複数個存在する半導体装置、または、スキャン回路に組合せ回路部分からフリップフロップに値を取り込むタイミングが異なる半導体装置に対しても適用可能である。
【図面の簡単な説明】
【００３８】
【図１】本発明の概要を示す図である。
【図２】被検査対象回路を２時刻展開した場合の回路構造を示す図である。
【図３】本発明の実施の形態に係る変換装置及び圧縮装置の構成の一例を示したブロック図である。
【図４】本発明の実施の形態に係る変換装置及び圧縮装置の処理の一例を示したフロー図である。
【図５】テストパターンの論理値の組合せの決定方法及びドントケアの決定方法の一例を説明するための簡単な回路図である。
【図６】テスト圧縮の処理の例を示す図である。
【図７】初期テストパターンに対してドントケアの決定を行った実験結果を示す表である。
【図８】図７に示す実験でドントケアが決定されたテストパターンに対して、テスト圧縮を行った場合の実験結果を示す表である。
【図９】一般的な論理回路におけるフルスキャン順序回路の模式図である。
【図１０】テスト入力とテスト応答との関係を示した模式図である。
【図１１】テストパターン中のドントケアを決定する場合の例を示す回路図である。
【符号の説明】
【００３９】
１００ａ  初期テストパターン
１００ｂ  中間テストパターン
【発明を実施するための最良の形態】
【００４０】
本発明についての概要を説明する。本発明は、ＶＬＳＩのテストにおいて実動作速度での性能を保証するためのテスト手法であり、本質的には予め与えられた初期テストパターンの各テストベクトルで検出できる遷移遅延故障の情報をもとにしてテストパターン内にドントケアを決定する手法であり、故障検出率を下げずに各テストベクトルをマージし、与えられたテストパターンを圧縮する等の応用が可能である。また、テストパターンを圧縮することに使用されるだけでなく、スキャンフリップフロップのキャプチャ動作時の消費電力の増大に伴う電源電圧降下に起因する誤テスト回避のためのテストパターンの変換など様々な目的に使用可能である。【００４１】
図１は、本発明の概要を示す図である。【００４２】
図１において、初期テストパターン１００ａは、予め与えられたＡＴＰＧ等の手法により生成されたテストデータである。初期テストパターン１００ａは、複数の構成要素を備え、各構成要素は少なくとも２つのテストベクトルを備える。図１においては、２つのテストベクトルを備える。１つの遷移遅延故障を検出するには、このように連続する２つのテストベクトルが必要である。初期テストパターン１００ａは、変換装置１００により、図に示すように、故障の検出条件を満たす論理値の組合せ（図中に○で示す）が決定され、同時にドントケア（図に□で示す）が決定される。【００４３】
変換装置１００は、中間テストパターン１００ｂを生成する。中間テストパターン１００ｂは、複数の構成要素を備え、各構成要素は２つのテストキューブを備える。【００４４】
論理値割当装置１０１は、生成された中間テストパターン１００ｂのドントケアに対して論理値を割り当てる。論理値割当装置１０１は、具体的にはテストデータを圧縮する装置や、テスト時の消費電力を削減するための装置である。それぞれの目的に応じて適した論理値をドントケアに割り当てる。【００４５】
全てのドントケアに論理値が割り当てられたテストデータは、最終テストパターン１００ｃとして変換される。最終テストパターン１００ｃは、初期テストパターン１００ａと同様に、複数の構成要素を備え、各構成要素は２つのテストベクトルを備える。しかし、データの内容は初期テストパターン１００ａとは異なるものとなっている。この最終テストパターン１００ｃは、初期テストパターン１００ａと故障検出率は同じであるが、圧縮によりデータ量が削減されていたり、テスト時の消費電力が削減できるようなテストパターンに変換されている。【００４６】
次に、本発明の実施の形態について説明する。【００４７】
本発明では、遷移遅延故障を検出するテストパターンの変換を行うが、遷移遅延故障を検出する方法として、２つの方法が広く知られている。一方はｌａｕｎｃｈ−ｏｆｆ−ｓｈｉｆｔ方式であり、もう一方は、ブロードサイドテスト（ｌａｕｎｃｈ−ｏｆｆ−ｃａｐｔｕｒｅ方式）である。本発明では、遷移遅延故障を検出するためにブロードサイドテスト（ｌａｕｎｃｈ−ｏｆｆ−ｃａｐｔｕｒｅ方式）を用いる場合を想定する。遷移遅延故障モデルに対する実動作速度テストに広く使われ始めたブロードサイドテストについて概説する。実動作速度テストでは、クロックのタイミングの制御が容易であるためブロードサイドテストが使用される。遅延テストは通常２パターンテストを必要とする。始めのパターンはｉｎｉｔｉａｌｉｚａｔｉｏｎパターンと呼ばれ、次のパターンはｌａｕｎｃｈパターンと呼ばれる。ブロードサイドテストを用いた場合、ｌａｕｎｃｈパターンはｉｎｉｔｉａｌｉｚａｔｉｏｎパターンに対するテスト応答から導出する。つまり、ｌａｕｎｃｈパターンはｉｎｉｔｉａｌｉｚａｔｉｏｎパターンに大きく依存していることになる。それゆえ、必要なｌａｕｎｃｈパターンが導出できない場合が起こり得る。しかし、ブロードサイドテストはクロックタイミングの制御がｌａｕｎｃｈ−ｏｆｆ−ｓｈｉｆｔ方式のテストよりも容易であるので、遅延故障を検出するためにブロードサイドテストのほうが一般に用いられている。ブロードサイドテストを用いた遷移遅延故障を、背景技術に示す縮退故障の検出の技術と同様の方式で取扱うために２時刻展開回路が用いられる。【００４８】
本発明では、ブロードサイドテストに基づいた遷移遅延故障用の初期テストパターンに対して、ドントケアを決定する。まず、遷移遅延故障を背景技術に示す縮退故障の検出の技術と同様に取扱うための２時刻展開について説明する。これにより縮退故障検出用のテストパターンに対するドントケアの決定を遷移遅延故障検出用のテストパターンに対するドントケアの決定に拡張することができる。【００４９】
ブロードサイドテストを用いた場合にドントケアの決定を行うために、被検査対象回路を２時刻に展開する。図２に２時刻展開した場合の回路構造を示す。２時刻展開回路は、一つの回路の各時刻の論理動作を空間的に展開したものである。展開した回路ではクロックの概念がなくなり、一つの大きな組合せ回路のように表される。１時刻目はｉｎｉｔｉａｌｉｚａｔｉｏｎ段階として取扱うことができ、２時刻目はｌａｕｎｃｈ段階として取扱うことができる。ｌａｕｎｃｈパターンはｉｎｉｔｉａｌｉｚａｔｉｏｎパターンから導出される。
【００５０】
次に２時刻展開回路を用いた場合、遅延故障の検出が可能となるための条件を定義する。この遅延故障の検出の条件は明確に定式化できる。この定式を用いると、遷移遅延故障用の初期テストパターンに対してもドントケアを決定することができる。【００５１】
遷移遅延故障の検出条件について説明する。信号線ａの遷移遅延故障ｆを検出するためには、信号線ａの２時刻目に相当する信号線ａ２で縮退故障の検出が必要である。２時刻目の回路で故障の活性化を保証するため、信号線ａの値は１時刻目と２時刻目で反対の論理値でなければならない。そのため１時刻目の信号線ａ１には、ａ２とは反対の論理値を割当てる。ａ２に１縮退故障を仮定した場合の故障の検出は、立上り遷移遅延故障の検出と見なせる。ａ２に０縮退故障を仮定した場合の故障の検出は、立下り遷移遅延故障の検出と見なせる。それゆえ、遷移遅延故障の検出条件は以下のように定式化することができる。【００５２】
信号線ａの立上り故障ｆの検出条件
（１）信号線ａ２の０縮退故障を検出する。
（２）信号線ａ１にａ２と反対の論理値割り当てをする。【００５３】
信号線ａの立下り故障ｆの検出条件
（１）信号線ａ２の１縮退故障を検出する。
（２）信号線ａ１にａ２と反対の論理値割り当てをする。【００５４】
上記背景技術で示した縮退故障検出の手法に、上記の検出条件を加えることで、遷移遅延故障用の初期テストパターンに対して、その故障検出率を維持したままドントケアの決定が行えるようなる。【００５５】
なお、上記条件とは、上記（１）、（２）の条件を満たしさえすれば、対象となる遷移遅延故障の検出ができる条件である。【００５６】
次に、２時刻展開回路中には構造的に検出が不可能であると分かる故障が存在するため、それらはあらかじめ対象故障から除外する。この対象故障の削減は本発明において処理時間の短縮に直接つながる。【００５７】
実速度テストの場合、ｌａｕｎｃｈパターンの導出に制約が存在する場合がある。たとえば、１時刻目と２時刻目で外部入力に印加する論理値を変化させないことである。これにより、１時刻目と２時刻目の値が常に同じになる信号線がある。これは外部入力に印加される論理値によってのみ値が導出される信号線が存在することにより起こる。それゆえ、少なくとも１つ以上の擬似外部入力に印加される論理値により信号線値が導出される場合のみ、その信号線の遷移遅延故障が検出される可能性があると考えられる。その他の故障はこの制約のもとで検出されることは不可能である。そのため、本発明においては、構造的に検出不可能な故障があるため、そのような故障は対象故障からは除外する。これにより本発明での検出対象故障は、前提とする実速度テスト環境下で検出される可能性のある故障のみとなる。【００５８】
以下に、本発明の実施の形態に係る変換装置及び圧縮装置について説明する。【００５９】
図３は、本発明の実施の形態に係る変換装置及び圧縮装置の構成の一例を示したブロック図である。【００６０】
変換装置２００は、メモリ部２１０と処理部２２０と入出力インターフェース２４０とデータ記憶部２５０とを備える。メモリ部２１０は、故障リスト部２１２とテストパターン部２１６とを備える。処理部２２０は、故障抽出部２２２とテストパターン変換部２２５とを備える。テストパターン変換部２２５は、テストパターン論理値組合せ決定部２２６とドントケア決定部２３２と分布調整部２３０とを備える。データ記憶部２５０は、初期パターン２５２と中間テストパターン２５４を備える。【００６１】
圧縮装置２０１は、変換装置２００と同様に、メモリ部２６０と処理部２７０と入出力インターフェース２８０とデータ記憶部２９０とを備える。メモリ部２６０は、マージ情報部２６２を備える。処理部２７０は、マージ処理部２７２と論理値割当部２７４とを備える。データ記憶部２９０は、最終テストベクトル集合２９２を備える。【００６２】
変換装置２００と圧縮装置２０１の処理の概要を簡潔に説明する。ＡＴＰＧ等の手法により生成された初期テストパターン２５２は、変換装置２００の入出力インターフェース２４０を介して故障抽出部２２２に入力される。故障抽出部２２２は、入力された初期テストパターン２５２の故障リストを抽出し、メモリ部２１０の故障リスト部２１２に保持する。テストパターン変換部２２５は、故障リスト部２１２に保持された情報を基に、ドントケアの分布を調整しながらテストパターンの論理値の組合せを決定する。その決定されたテストパターンはテストパターン部２１６に保持される。そして、テストパターン部２１６に保持された情報を基に、ドントケア決定部２３２によりドントケアが決定され、ドントケアを含む中間テストパターン２５４がデータ記憶部２５０に保持される。【００６３】
圧縮装置２０１は、変換装置２００により生成された中間テストパターン２５４のデータをデータ記憶部２９０に記憶しており、入出力インターフェース２８０を介して処理部２７０のマージ処理部２７２に入力される。マージ処理部２７２は、入力されたデータを基にテストベクトルをマージし、そのマージされたデータは、メモリ部２６０のマージ情報部２６２に保持される。論理値割当部２７４は、マージ情報部２６２が保持する情報のうちドントケアに論理値を割り当てて、最終テストパターン２９２が生成される。【００６４】
図４は、本発明の実施の形態に係る変換装置及び圧縮装置の処理の一例を示したフロー図である。【００６５】
まず、ステップＳＴ３０１で、図３の初期テストパターン２５２のデータを用いて故障抽出部２２２により検出の対象となる対象故障が抽出される。抽出された対象故障のリストは故障リスト部２１２に保持される。ステップＳＴ３０２では、故障リスト部２１２に保持された情報に基づいて、テストパターン論理値組合せ決定部２２６により、テストパターンの論理値の組合せが決定される。同時に、分布調整部２３０により対象故障の分布の調整が行われる。ステップＳＴ３０３では、ドントケア決定部２３２が、ステップＳＴ３０２で決定された論理値の組合せに含まれないビットの論理値をドントケアとして決定する。【００６６】
ここで、テストパターンの論理値の組合せの決定及びドントケアの決定について詳細に説明する。【００６７】
図５は、テストパターンの論理値の組合せの決定方法及びドントケアの決定方法の一例を説明するための簡単な回路図である。図５（ａ）の回路に対して、図５（ｂ）は２時刻展開した場合の回路である。この図５の回路を用いて、テストパターンに対してどのようにドントケアを決定するかを示す。【００６８】
まずテストベクトル＜ａ１，ｂ１，ｃ１，ｄ１＞＝＜１，１，０，０＞が、外部入力（ａ，ｃ，ｄ）と疑似外部入力（ｂ）に対して印加される場合を考える。このテストベクトル＜ａ１，ｂ１，ｃ１，ｄ１＞＝＜１，１，０，０＞の検出対象故障は、信号線ｂの立下り遷移遅延故障のみとする。立下り遷移遅延故障を検出するために、１時刻目の信号線ｂ１には論理値１を割当てなければならず、信号線ｂ２で１縮退故障の活性化とその伝搬を保証しなければならない。故障の影響を外部出力まで伝搬するために、信号線ａ２には論理値１を割当てなければならない。また信号線ｂ２の１縮退故障の活性化には信号線ｂ２を論理値０にしなければならないので、信号線ｃ１かｄ１に論理値０を割当てる必要がある。そして残りの信号線に印加される論理値はドントケアとすることができる。この例では、信号線ｃ１に論理値０を割当てている。信号線ｄ１の値はドントケアに変えることができる。テストキューブ＜ａ１，ｂ１，ｃ１，ｄ１＞＝＜１，１，０，Ｘ＞はテストベクトル＜ａ１，ｂ１，ｃ１，ｄ１＞＝＜１，１，０，０＞から導出でき、かつ同じ故障を検出する。もし信号線ｂの立上り遷移遅延故障を検出するテストベクトル＜ａ１，ｂ１，ｃ１，ｄ１＞＝＜１，０，１，１＞に対してドントケアの決定を行ったとすると、それは１つのドントケアも見つけずに終了する。その理由はテストベクトルの全ての論理値が信号線ｂの立上り遷移遅延故障を検出するのに必要であるからである。【００６９】
図４に戻って、ステップＳＴ３０３でドントケアが決定され、ドントケアを含む中間テストパターン２５４が生成されると、ステップＳＴ３０４で、図３の圧縮装置２０１のマージ処理部２７２によりマージ処理が行われる。このマージ処理により中間テストパターン２５４は圧縮されてマージ情報部２６２に保持される。【００７０】
ここで、テスト圧縮について説明する。【００７１】
中間テストパターン中の決定されたドントケアは様々な用途に用いることができる。その有効な利用法のひとつに、テスト圧縮にドントケアを利用する方法がある。テストパターンを圧縮することはテストパターンのサイズを削減し、それによりテスト印加時間も同様に削減できるため、非常に有効な利用法である。【００７２】
ドントケアを含む中間テストパターンが与えられると、いくつかのテストキューブは故障検出率を低下させることなくマージすることができる。テスト圧縮を行うと、２つかそれ以上のテストキューブがマージされ、１つのテストキューブとして取扱うことができ、それによりテストパターンのサイズが削減できる。ドントケアを含むテストパターンがどのようにマージされるかを、図６を用いて説明する。【００７３】
図６は、テスト圧縮の処理の例を示す図である。【００７４】
テストキューブｔ１＜０，Ｘ，１，Ｘ＞はテストキューブｔ３＜Ｘ，１，１，Ｘ＞とマージすることが可能である。２つのテストキューブをマージしてテストキューブ＜０，１，１，Ｘ＞が導出される。そして、そのテストキューブ＜０，１，１，Ｘ＞はさらにテストキューブｔ６＜０，１，Ｘ，０＞とマージすることができ、テストキューブｔ’１＜０，１，１，０＞が導出される。図６に示されるようにテストキューブｔ’１＜０，１，１，０＞はテストキューブｔ１,ｔ３,ｔ６によって検出される全ての故障を検出できる。よって故障検出率を低下させることなくテストキューブ数を削減することができる。同様の方法で、テストキューブｔ’２＜１，１，０，１＞はテストキューブｔ２＜Ｘ，１，０，１＞とテストキューブｔ４＜１，Ｘ，０，Ｘ＞をマージすることで導出される。テストキューブｔ’３＜１，０，１，Ｘ＞はテストキューブｔ５＜１，０，１，Ｘ＞と同一のものである。なぜならテストキューブｔ５はマージすることができるテストキューブがないため、そのままｔ’３として残されている。そして、最終的にテストパターン（ｔ’１，ｔ’２，ｔ’３）が求まる。このテストパターンの故障検出率は、テストパターン（ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６）と同じである。しかし、テストキューブ数は６から３に削減されているので、テストパターンのサイズは元のテストパターンの半分に削減することができている。【００７５】
他にも、より高い圧縮の効果の得られるテストキューブをマージする組合せが存在するかもしれないが、最も良いマージの組合せを見つけることはＮＰ−完全問題である。そして良い組合せを見つける有効なヒューリスティックなアルゴリズムも存在するが、それでも多くの計算時間を要する。従って、本発明の実施の形態では、テストパターンを単純に上から降順に探索し、マージ可能なものをマージしていく方法で行った。この処理であればＯ（ｎ２）で終了し、比較的短い時間で良い圧縮の効果を得ることができる。【００７６】
図４に戻って、ステップＳＴ３０５で、ドントケアに論理値が割り当てられて最終テストパターン２９２が生成されて処理を終了する。【００７７】
以下に、本発明の実験結果を説明する。【００７８】
本実験では、ＰＣ（ＯＳ：ＦｒｅｅＢＳＤ  ４．１１  Ｒｅｌｅａｓｅ，ＣＰＵ：Ａｔｈｌｏｎ  ＸＰ  １８００＋  １．５３ＧＨｚ，  ｍｅｍｏｒｙ：７６８ＭＢ）上にＣプログラミング言語を用いて実装し、ＩＳＣＡＳ’８９ベンチマーク回路に対して行った。実験で使用したテストパターンは、ブロードサイドテストを用いて遷移遅延故障に対して生成されたテストパターンを使用する。そのテストパターンは以下の方法で導出している。なお、１時刻目と２時刻目で外部入力に印加する論理値を変化させなることはできないとし、また、故障検出は疑似外部出力でのみ可能で外部出力ではできないとする。【００７９】
まず１つの対象故障を選択し、その故障に対してテストパターンの生成を行い、生成したテストパターンで故障シミュレーションを実行する。これにより、そのテストパターンで検出される故障はテスト生成を行う必要はなくなり、テスト生成を行う回数を少なくする。この処理をテスト生成する必要があり、且つ、未処理の対象故障がなくなるまで実行することにより、テストパターンを導出している。また、対象故障集合は、ｉｎｉｔｉａｌｉｚａｔｉｏｎ段階とｌａｕｎｃｈ段階で値が変わる可能性のある信号線上の故障のみで構成される。その他の故障はブロードサイドテストを用いる限り、常に検出不可能な故障として対象故障集合からは除外する。【００８０】
図７は、初期テストパターンに対してドントケアの決定を行った実験結果の表を示す。図７の表中の最初の列は回路名を示す。それに続く３列は、外部入力数、擬似外部入力数、与えられたテストパターンのテストベクトル数をそれぞれ示す。次の３列はそれぞれのテストパターン中で決定されたドントケアの平均の割合、最も多くのドントケアを含むテストベクトル中のドントケアの割合、最も少ないドントケアを含むテストベクトル中のドントケアの割合を、それぞれ％で示す。続く２列は、対象故障数と与えられたテストパターンで検出された故障数をそれぞれ示す。最後の列は、ＣＰＵの処理時間を秒で示す。【００８１】
与えられたテストパターンに対して、本発明ではテストパターン中に７４％以上のドントケアを決定している。また、列“％Ｘ−ｍａｘ”はドントケア決定後、全てドントケアで構成されたテストキューブを含んでいることを示す。そのようなテストキューブは削除するか、または、テスト品質を高めるために用いることが可能である。また、列“％Ｘ−ｍｉｎ”は、いくつかの回路のテストパターンが全くドントケアを含まないテストベクトルを含んでいることと示す。このようなテストベクトルでは、全ての入力値が遷移遅延故障を検出するために用いられていることを意味する。ＣＰＵ処理時間は、与えられたテストパターンのテストベクトル数と回路規模に依存する。それは本発明の方法がテストベクトルをシリアルに処理しているからである。【００８２】
図８は、図７に示す実験でドントケアが決定されたテストパターンに対して、テスト圧縮を行った場合の実験結果の表を示す。この実験で、テスト圧縮には上記で示したように単純に上から降順に探索する方法を用いている。図８の表の最初の列は回路名を示す。次の列“＃ｔｅｓｔｓ”は、圧縮前と圧縮後のテストパターン中のテストベクトル数を示す。列“％（圧縮率）”は与えられたテストパターンに対するテスト圧縮後のテストベクトル数の割合を％で示す。この結果は与えられたテストパターンを６７％まで圧縮することができたことを示す。ＣＰＵ処理時間については、図８に示される大規模回路に対しても数秒の計算時間で終了する。【００８３】
上記実験結果から、本発明の方法がテストパターン中に平均して７４％以上のドントケアを決定できたことを示した。また、実験結果はドントケアが決定されたテストパターンに対して良いテスト圧縮の効果を示せた。それはテストパターン中にドントケアを決定することの有効性を示している。【００８４】
なお、上記では２時刻展開回路を用いて、２つの連続して印加されるテストベクトルにより遅延故障を検出しているが、２時刻展開に限らずＮ時刻展開回路を用いてもよい。また、Ｎ個の連続して印加されるテストベクトルにより故障を検出してもよい。その場合の故障は、遅延故障に限定されない。【００８５】
また、本発明の実施の形態では、遷移遅延故障の検出を行っているが、パス遅延故障の他、クロストーク、スタックオープン、ブリッジ等、複数テストパターンで検出できる故障であれば応用可能である。【００８６】
さらに、上記条件を満たすテストパターンの論理値の組合せは、そのテストパターンの全てであっても、一部であってもよい。【００８７】
さらに、変換装置と圧縮装置を分けて示しているが、変換装置と圧縮装置を１つの装置と捉えてもよい。【００８８】
さらに、上記実施の形態における圧縮装置は、テスト時の最大電力を削減するようにドントケアに論理値を割り当てるための装置やテスト時の平均電力を削減するようにドントケアに論理値を割り当てるための装置や対象故障をＮ回検出するようにドントケアに論理値を割り当てる装置等であってもよい。この場合、これらの装置と変換装置を１つの装置と捉えてもよい。
【図１】
0004482622.tif 000002
【図２】
0004482622.tif 000003
【図３】
0004482622.tif 000004
【図４】
0004482622.tif 000005
【図５】
0004482622.tif 000006
【図６】
0004482622.tif 000007
【図７】
0004482622.tif 000008
【図８】
0004482622.tif 000009
【図９】
0004482622.tif 000010
【図１０】
0004482622.tif 000011
【図１１】
0004482622.tif 000012