(57)【特許請求の範囲】
【請求項１】
複数のテストパターンの中から任意のテストパターンを選別テストパターンとして選別する第一のテストパターン選別手段と、
前記選別テストパターンを用いて累積的な故障シミュレーションを実行し、第一の未検出故障リストを抽出する第一の故障検出情報抽出手段と、
前記第一の未検出故障リスト内の未検出故障の一部を無作為抽出し、第二の未検出故障リストを生成する無作為抽出処理手段と、
第二の未検出故障リストと前記選別テストパターン以外の任意のテストパターンを非選別テストパターンとして用いて故障シミュレーションを実行し、非選別テストパターン毎の検出故障リストを生成する第二の故障検出情報抽出手段と、
前記第二の未検出故障リストと検出故障リストを比較することにより、非選別テストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別し、選別されたテストパターンを前記選別テストパターンに加える第二のテストパターン選別手段と
を具備することを特徴とするテストパターン選別装置。
【請求項２】
前記第一のテストパターン選別手段は、
前記複数のテストパターン毎に機能検証カバレジを抽出する機能検証カバレジ評価手段と、
前記機能検証カバレジ評価手段により抽出された複数のテストパターン毎の機能検証カバレジを参照して、複数のテストパターンの中から機能検証カバレジが高いテストパターンを選択し、全てのテストパターンと同等の機能検証カバレジを達成する最小本数のテストパターンを前記選別テストパターンとして選別するテストパターン選別手段と
を具備することを特徴とする請求項１に記載のテストパターン選別装置。
【請求項３】
前記第二のテストパターン選別手段は、
前記第二の未検出故障リストと前記検出故障リストを比較することにより、未検出故障をいくつ検出したかを示す追加検出故障数を前記非選別テストパターン毎に算出する追加検出故障数抽出手段と、
前記追加検出故障数とテストパターン長を入力とした所定の評価式にしたがって、非選別テストパターン毎の評価値を計算し、当該非選別テストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する評価値計算・選別手段と
を備えることを特徴とする請求項１又は請求項２に記載のテストパターン選別装置。
【請求項４】
前記選別テストパターンの中で所定の故障検出の向上率に満たないテストパターンを前記非選別テストパターンに加え、所定の故障検出の向上率に満たないテストパターンにより検出された故障を第１の未検出故障リスト内に戻す低寄与パターン抽出手段を具備することを特徴とする請求項１又は請求項２又は請求項３に記載のテストパターン選別装置。
【請求項５】
前記評価値計算・選別手段は、故障検出率の向上への寄与が大きい非選別テストパターンを一回の処理で複数選別することを特徴とする請求項３に記載のテストパターン選別装置。
【請求項６】
前記第一のテストパターン選別手段は、前記故障検出向上への寄与の低いテストパターンの次のテストパターンを用いた故障シミュレーションの際に利用する未検出故障リストとして、故障検出率向上への寄与の低いテストパターンの前のテストパターンを用いた故障シミュレーションの結果得られる未検出故障リストを用いることを特徴とする請求項４に記載のテストパターン選別装置。
【請求項７】
複数のテストパターンの中から任意のテストパターンを選別テストパターンとして選別する第一のテストパターン選別ステップと、
前記選別テストパターンを用いて累積的な故障シミュレーションを実行し、第一の未検出故障リストを抽出する第一の故障検出情報抽出ステップと、
前記第一の未検出故障リスト内の未検出故障の一部を無作為抽出し、第二の未検出故障リストを生成する無作為抽出処理ステップと、
第二の未検出故障リストと第一のテストパターン選別ステップにおいて選別されなかった任意のテストパターンを非選別テストパターンとして用いて故障シミュレーションを実行し、非選別テストパターン毎の検出故障リストを生成する第二の故障検出情報抽出ステップと、
前記第二の未検出故障リストと検出故障リストを比較することにより、非選別テストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別し、選別されたテストパターンを前記選別テストパターンに加える第二のテストパターン選別ステップと
を有することを特徴とするテストパターン選別方法。
【請求項８】
前記第一のテストパターン選別ステップは、
前記複数のテストパターン毎に機能検証カバレジを抽出する機能検証カバレジ評価ステップと、
抽出された複数のテストパターン毎の機能検証カバレジを参照して、複数のテストパターンの中から機能検証カバレジが高いテストパターンを選択し、全てのテストパターンと同等の機能検証カバレジを達成する最小本数のテストパターンを前記選別テストパターンとして選別する選別ステップ
から成ることを特徴とする請求項７に記載のテストパターン選別方法。
【請求項９】
前記第二のテストパターン選別ステップは、
前記第二の未検出故障リストと前記検出故障リストを比較することにより、第二の未検出故障リスト内の未検出故障をいくつ検出したかを示す追加検出故障数を前記非選別テストパターン毎に算出する追加検出故障数抽出ステップと、
前記追加検出故障数とテストパターン長を入力とした所定の評価式にしたがって、非選別テストパターン毎の評価値を計算する評価値計算ステップと、
計算された評価値にしたがって、非選別テストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する選別ステップと
を有することを特徴とする請求項７又は請求項８に記載のテストパターン選別方法。
【請求項１０】
前記故障検出率の向上への寄与が大きいテストパターンと第一の未検出故障リストを用いて累積的な故障シミュレーションを実行する第三の故障検出情報抽出ステップを有することを特徴とする請求項７、請求項８又は請求項９に記載のテストパターン選別方法。
【請求項１１】
前記選別テストパターンの中で所定の故障検出の向上率に満たないテストパターンを前記非選別テストパターンに加え、所定の故障検出の向上率に満たないテストパターンにより追加検出された故障を第１の未検出故障リスト内に戻す低寄与パターン抽出ステップを有することを特徴とする請求項７、請求項８、請求項９又は請求項１０に記載のテストパターン選別方法。
【請求項１２】
前記故障検出向上への寄与の低いテストパターンの次のテストパターンを用いた故障シミュレーションの際に利用する未検出故障リストとして、故障検出率向上への寄与の低いテストパターンの前のテストパターンを用いた故障シミュレーションの結果得られる未検出故障リストを用いることを特徴とする請求項１１に記載のテストパターン選別方法。
【請求項１３】
前記第二のテストパターン選別ステップにおいて、一回の処理で複数のテストパターンを選別することを特徴とする請求項７、請求項８、請求項９、請求項１０、請求項１１又は請求項１２に記載のテストパターン選別方法。
【請求項１４】
複数のテストパターンの中から任意のテストパターンを選別テストパターンとして選別する第一のテストパターン選別処理と、
前記選別テストパターンを用いて累積的な故障シミュレーションを実行し、第一の未検出故障リストを抽出する第一の故障検出情報抽出処理と、
前記第一の未検出故障リスト内の未検出故障の一部を無作為抽出し、第二の未検出故障リストを生成する無作為抽出処理処理と、
第二の未検出故障リストと第一のテストパターン選別ステップにおいて選別されなかった任意のテストパターンを非選別テストパターンとして用いて故障シミュレーションを実行し、非選別テストパターン毎の検出故障リストを生成する第二の故障検出情報抽出処理と、
前記第二の未検出故障リストと検出故障リストを比較することにより、非選別テストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別し、選別されたテストパターンを前記選別テストパターンに加える第二のテストパターン選別処理と
を含み、これらの処理をコンピュータに実行させることを特徴とするテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項１５】
前記第一のテストパターン選別処理は、
前記複数のテストパターン毎に機能検証カバレジを抽出する機能検証カバレジ評価処理と、
抽出された複数のテストパターン毎の機能検証カバレジを参照して、複数のテストパターンの中から機能検証カバレジが高いテストパターンを選択し、全てのテストパターンと同等の機能検証カバレジを達成する最小本数のテストパターンを前記選別テストパターンとして選別する選別処理
を含み、これらの処理をコンピュータに実行させることを特徴とする請求項１４記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項１６】
前記第一のテストパターン選別処理又は前記故障検出情報抽出処理を実行するプログラムは別のコンピュータ読取り可能な記録媒体に格納され、これらの処理の実行管理を行うプログラムを含むことを特徴とする請求項１４又は請求項１５に記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項１７】
前記第二のテストパターン選別処理は、
前記検出故障リストと前記第二の未検出故障リストとを比較することにより、第二の未検出故障リスト内の未検出故障をいくつ検出したかを示す追加検出故障数を前記非選別テストパターン毎に算出する追加検出故障数抽出処理と、
前記追加検出故障数とテストパターン長を入力とした所定の評価式にしたがって、非選別テストパターン毎の評価値を計算する評価値計算処理と、
計算された評価値にしたがって、非選別テストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する選別処理と
を含み、これらの処理をコンピュータに実行させることを特徴とする請求項１４、請求項１５又は請求項１６に記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項１８】
前記故障検出率の向上への寄与が大きいテストパターンと第一の未検出故障リストを用いて累積的な故障シミュレーションを実行する第三の故障検出情報抽出処理を含み、この処理をコンピュータに実行させることを特徴とする請求項１４、請求項１５、請求項１６又は請求項１７に記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項１９】
前記選別テストパターンの中で所定の故障検出の向上率に満たないテストパターンを前記非選別テストパターンに加え、所定の故障検出の向上率に満たないテストパターンにより追加検出された故障を第１の未検出故障リスト内に戻す低寄与パターン抽出する処理を含み、この処理をコンピュータに実行させることを特徴とする請求項１４、請求項１５、請求項１６、請求項１７又は請求項１８に記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項２０】
前記故障検出向上への寄与の低いテストパターンの次のテストパターンを用いた故障シミュレーションの際に利用する未検出故障リストとして、故障検出率向上への寄与の低いテストパターンの前のテストパターンを用いた故障シミュレーションの結果得られる未検出故障リストを用いることを特徴とする請求項１９に記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【請求項２１】
前記第二のテストパターン選別ス処理において、一回の処理で複数のテストパターンを選別することを特徴とする請求項１４、請求項１５、請求項１６、請求項１７、請求項１８、請求項１９又は請求項２０に記載のテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩやＬＳＩ内部の機能ブロックに対する複数の検証パターンの中から故障シミュレーションを用いて得られる故障検出情報に基づいてテストパターンを選択するテストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体に関し、特に、全検証パターンで期待できる値とほぼ同じ故障検出率を全検証パターンより大幅に少ない検証パターンで達成することを可能にする技術に係る。
【０００２】
【従来の技術】
通常、製造されたＬＳＩの各チップに対しては、開発時の機能検証に使用した複数の検証パターンを適宜流用、編集したテストパターンを用いてＬＳＩが不良品ではないことを出荷前に確認する（良品だけを選別する）出荷テスト（品質テスト）が行われる。このような出荷テストにおいては、使用したテストパターンによってＬＳＩチップ内の故障をできるだけ確実に検出できることが要求される。このため、故障シミュレーションを主な手段とする故障検出情報抽出処理により求められ、その値が経験的にも製品品質との強い相関が認められている故障検出率が、テストパターンが故障を確実に検出できるかどうかの判断基準として用いられている。なお、ここでいう「故障検出率」とは、例えば、組合せ論理ゲート（簡単な素子も含む）、それをベースとするフリップフロップ等の基本セルおよび基本セル間の接続（配線）によって記述される、ゲートレベルのＬＳＩ内部の任意の１個の接続ノードの値が０又は１に固定されたと仮定する単一縮退故障（全部で２×接続ノード数）を故障モデルとして、その検証パターンでどの程度故障を検出することができるかを示す値である。
【０００３】
ところで、この故障検出率は、直接的には、検証パターンを用いた故障シミュレーションによって求めることができるのであるが、一般に検証パターンを用いた故障シミュレーションには非常に多くのＣＰＵリソースが必要とされる上に、近年のＬＳＩの大規模化、複雑化に伴って検証パターンのサイズ（ステップ数）が急激に増大し、さらに、ＬＳＩテスタに格納できるテストパターンのサイズを制限することが現実的なコストで出荷テストを実施するために必要不可欠となってきているために、検証パターンをそのままテストパターンに流用することは困難となり、いまや、テストパターンとして利用する検証パターンを大幅に削減することが必須の条件となってきている。
【０００４】
このような背景から、従来、ＬＳＩの開発者又は機能検証者が、全検証パターンの中から検証パターンの内容を考慮しつつ、故障検出率が高くなりそうな検証パターンを選び出したり、全検証パターンを用いて低い率で無作為抽出した故障に対するパターン毎の故障検出率を調べ、これが高くなる検証パターンを選択する、といった手法が用いられていたが、効率が悪く、確実性も乏しいという問題があった。これらに対し、最近、より効率的且つ確実な方法として、ＬＳＩのＲＴＬ（Register Transfer Level）記述に対して、一般に多数本の個別検証パターンで構成される検証パターンがどの程度の機能検証カバレジ（コードカバレジ）を達成しているのかを解析する機能検証カバレジ評価装置や、さらには、各検証パターン毎に得られる結果を利用して、全ての検証パターンと同じ機能検証カバレジを達成する最小本数の検証パターンセットを選別する機能検証パターン選別装置が市販されるようになってきているが、その選別結果を出荷テストパターンの選別に活用することも行われるようになってきた。
【０００５】
ここで、図４を参照して、このような機能検証カバレジ評価装置および機能検証パターン選別装置を用いたテストパターン選別処理について簡単に説明する。
【０００６】
従来までのテストパターン選別処理においては、始めに、対象とするＬＳＩ又はＬＳＩ内の機能ブロックのＲＴＬネット５０と検証パターン（通常多数の検証パターンの集合）５１をテストパターン選別装置４０に入力すると、ＲＴＬコードカバレジ評価ツール４１が検証パターン毎の機能検証カバレジを抽出、出力する。その後、検証パターン選別ツール４２が、選別の対象としたい機能検証項目についてのカバレジが高い検証パターンから順に選別を行い、テストパターンの集合の中から、全てのテストパターンと同等の機能検証カバレジを達成する最小本数のテストパターンを選別する。そして、最後に、選別された検証パターン５２と、対象とするＬＳＩのＲＴＬネット５０に対応するゲートレベルのネット５３、ネット５３で用いている基本セルのライブラリ５４およびネット５３に対して仮定される故障検証情報抽出前の未検出故障リスト５５（通常は故障シミュレータが自動的に作成）を故障シミュレータ４３に入力して故障検出情報抽出（故障シミュレーション）を実施すると、その検証パターン（の集合）でどの程度故障を検出することができるかを示す故障検出率および（未検出）故障リスト５６が出力される。この場合、個々の検証パターンを用いた故障シミュレーションは、その前までの検証パターンを用いた故障シミュレーションの結果の（未検出）故障リストに対して実行されるため、以下では特に区別して、「累積的な」故障シミュレーション（故障検出情報抽出処理）と呼ぶ。
【０００７】
このようなテストパターン選別処理によれば、全検証パターンと比較して大幅に小さい検証パターンの集合にも係らず、全検証パターンを用いた場合に期待される故障検出率に比較的近い故障検出率を得ることができるので、ゲートレベル以下のＬＳＩに対する故障検出情報の抽出に要するＣＰＵ時間や出荷テスト時におけるテストパターン長を大幅に削減することが可能となる。
【０００８】
【発明が解決しようとする課題】
しかしながら、このような従来までのテストパターン選別処理には以下に示すような解決すべき技術的課題がある。
【０００９】
すなわち、従来までのテストパターン選別処理により抽出される機能検証カバレジは、厳密な意味では、対象とするＬＳＩのＲＴＬ記述レベルの機能検証項目を活性化したということであり、ゲートレベルの記述の記述において如何に確実に出荷テストができるかという尺度であるテスト容易性（testability）の内、テスト制御性(controllability）のカバレジに対しては良い指標となるのであるが、テスト観測性（observability）については確実に反映しているという訳ではなく、検証パターンを大幅に削減することができても、全検証パターンと同程度の故障検出率を確保したい場合には、第１次の解としては有効なものの、全検証パターンで本来得られるであろう故障検出率よりも幾分（数％程度）低くなってしまう。
【００１０】
一般に、未検出故障率の調査と検証パターンの作成は、技術者リソースを多く必要とする困難な作業であるため、多少の故障検出率の低下も極めて大きな問題であり、このため、全検証パターンとほぼ同等の故障検出率を少ないテストパターンで確実に達成できる、有効性の高いテストパターン選別技術が待望されている。
【００１１】
本発明は、上記の技術的課題を鑑みてなされたものであり、その目的は、従来に比べ大幅に有効性の高いテストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体を提供することにある。
【００１２】
【課題を解決するための手段】
上記の技術的課題に関して、発明者は、以下の特徴を有する技術的思想を発案するに至った。
【００１３】
本発明の第１の特徴は、予め選別と非選別に区別されたテストパターンの集合の内、選別されたテストパターンを用いて累積的な故障シミュレーションを実行し、選別されなかった任意のテストパターンを用いて故障シミュレーションを実行し、故障検出率および検出・未検出故障リストを抽出する故障検出情報抽出部と、未検出故障リスト内の故障の一部を無作為抽出する無作為抽出処理部と、検出・未検出故障リストを参照して、前記選別されなかったテストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する選別部とを具備するテストパターン選別装置であることにある。
【００１４】
これにより、全検証パターンより大幅に少ない検証パターン（テストパターン）で、全検証パターンで得られる値とほぼ同等の故障検出率を達成できる。
【００１５】
本発明の第２の特徴は、テストパターンを選別する第一のテストパターン選別ステップと、選別されたテストパターンを用いて累積的な故障シミュレーションを実行し、第一の未検出故障リストを抽出する第一の故障検出情報抽出ステップと、第一の未検出故障リスト内の未検出故障の一部を無作為抽出し、第二の未検出故障リストを生成する無作為抽出処理ステップと、第二の未検出故障リストと第一のテストパターン選別ステップにおいて選別されなかった任意のテストパターンを用いて故障シミュレーションを実行し、選別されなかったテストパターン毎の検出・未検出故障リストを生成する第二の故障検出情報抽出ステップと、第二の未検出故障リストと選別されなかったテストパターン毎の検出・未検出故障リストを参照して、選別されなかったテストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する第二のテストパターン選別ステップとを有するテストパターン選別方法であることにある。
【００１６】
これにより、全検証パターンより大幅に少ない検証パターン（テストパターン）で、全検証パターンで得られる値とほぼ同等の故障検出率を達成できる。
【００１７】
本発明の第３の特徴は、テストパターンを選別する第一のテストパターン選別処理と、選別されたテストパターンを用いて累積的な故障シミュレーションを実行し、第一の未検出故障リストを抽出する第一の故障検出情報抽出処理と、前記第一の未検出故障リスト内の未検出故障の一部を無作為抽出し、第二の未検出故障リストを生成する無作為抽出処理と、第二の未検出故障リストと第一のテストパターン選別ステップにおいて選別されなかった任意のテストパターンを用いて故障シミュレーションを実行し、選別されなかったテストパターン毎の検出・未検出故障リストを生成する第二の故障検出情報抽出処理と、前記第二の未検出故障リストと選別されなかったテストパターン毎の検出・未検出故障リストを参照して、選別されなかったテストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する第二のテストパターン選別処理とを含み、これらの処理をコンピュータに実行させるテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体であることにある。
【００１８】
ただし、機能検証カバレジ評価処理、第一の検証パターン選別処理、無作為抽出処理又は故障検出情報抽出処理については、それぞれの目的に沿った処理の主要部分は別のプログラムとして別のコンピュータ読取り可能な記録媒体に格納されており、テストパターン選別プログラムはそれらの処理の実行制御（必要なデータの入出力、各プログラムの起動等）を受け持つという場合もある。
【００１９】
これにより、全検証パターンより大幅に少ないテストパターンで、全テストパターンで得られる値とほぼ同等の故障検出率を達成できる。
【００２０】
ここで、記録媒体とは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラムを記録することができるようなコンピュータ読み取り可能な媒体などが含まれる。
【００２１】
なお、機能検証カバレジ評価処理と第一のテストパターン選別処理については、従来のように、人手で故障検出率向上に寄与の高そうなテストパターンを適当な手段により予め選別しておくという方法で代替することもできる。この場合、効率はあまり良くないが、第一の故障検出情報抽出の結果を見て、故障検出率がテストパターン選別装置の処理能力から見て低すぎる場合は、さらにテストパターンを追加して故障検出率を若干向上させてから無作為抽出以後の処理に入るようにする必要が出てくる可能性がある。
【００２２】
また、第二のテストパターン選別処理は、第二の未検出故障リストと選別されなかったテストパターン毎の検出・未検出故障リストを参照して、第一の検証パターン選別処理において選別されなかったテストパターン毎に、第二の未検出故障リスト内の未検出故障をいくつ検出したかを示す追加検出故障数を算出する追加検出故障数抽出処理と、追加検出故障数とテストパターン長を入力とした所定の評価式にしたがって選別されなかったテストパターン毎の評価値を計算する評価値計算処理と、計算された評価値にしたがって、選別されなかったテストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する選別処理とから成ることが望ましい。
【００２３】
また、故障検出率の向上への寄与が大きいテストパターンと第一の未検出故障リストを用いて最終確認の意味での累積的な故障シミュレーション（故障検出情報抽出処理）を実行しても良い。
【００２４】
この構成によれば、無作為抽出処理により評価されなかった未検出故障についても、ベストパターンによる検出・未検出が明確となるので、対象とするＬＳＩの未検出故障の解析および追加テストパターンの作成を容易にすることができる。
【００２５】
さらに、第一の故障検出情報抽出処理において、テストパターン選別処理により選別されたテストパターンの中で所定の故障検出の向上率に満たないテストパターンをテストパターン選別部により選別されなかった検証パターンに加え、所定の故障検出の向上率に満たないテストパターンにより検出された故障を未検出故障リスト内に戻しても良い。または、未検出故障のリストについては、あるテストパターンを用いた累積的な故障シミュレーションの結果、所定の故障検出率の向上が見られなかった場合は、そのテストパターンの一つ前のテストパターンでの実行の結果の未検出故障リストを次の検証パターンと共に用いて累積的な故障シミュレーションを行うようにしても良い。
【００２６】
この構成によれば、ＲＴＬのレベルでは機能検証カバレジ向上に寄与があっても、ゲートレベルにおいては故障検出率向上への寄与が小さいテストパターンが削除される可能性が生じることとなり、一層小さいテストパターンサイズで全テストパターンとほぼ同様の故障検出率を得ることができる。
【００２７】
さらに又、第二のテストパターン選別処理において、一回の処理で複数のテストパターンを選別するようにしても良い。
【００２８】
この構成によれば、若干選択されるテストパターンが増加するデメリットもあるが、計算量の多い追加検出故障数算出処理の実行回数を大幅に削減することができるので、全テストパターンとほぼ同等の故障検出率をより効率的に達成するテストパターン選別が可能になる。
【００２９】
【発明の実施の形態】
以下、図１乃至図４を参照して、本発明の実施形態に係るテストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体について詳しく説明する。なお、以下の説明においては、検証パターンは、製品品質のテストに用いるという意味で、テストパターンと呼ぶことにする。
【００３０】
（テストパターン選別装置）
図１は、本発明の実施形態に係るテストパターン選別装置の構成を示すブロック図である。
【００３１】
本発明の実施形態に係るテストパターン選別装置１０は、図１に示すように、各テストパターンの機能検証カバレジを抽出する機能検証カバレジ評価部１１、機能検証カバレジ評価部１１が抽出した機能検証カバレジ情報と選別の対象とする機能検証項目（説明は後述）とを用いて、複数のテストパターンの中から、全てのテストパターンを用いた場合と同等の機能検証カバレジを達成する最小本数のテストパターンを選別する検証パターン選別部１２、テストパターンを用いて累積的な故障シミュレーション（故障検出情報抽出）又は単なる故障シミュレーション処理を実行し、故障検出率と未検出故障リストを出力する故障検出情報抽出部１３、故障シミュレーションの結果得られる未検出故障リストの中から未検出故障の一部を無作為抽出して新たな未検出故障リストを作成する無作為抽出部１４、無作為抽出された未検出故障に対して、検証パターン選別部１２の選別から外れた任意のテストパターンを用いて、故障検出情報抽出部１３において故障シミュレーションを実行し、出力された故障検出率と未検出故障リストを用いて、選別から外れたテストパターン毎の追加検出故障数を算出する追加検出故障数算出部１５、追加検出故障数と検証パターン長を入力とした所定の評価式にしたがって選別されなかった検証パターン毎の評価値を計算し、選別されなかったテストパターンの中で故障検出率の向上への寄与が大きいテストパターンを選別する評価値計算・選別部１６を備える。
【００３２】
なお、テストパターン選別装置１０は、装置１０に係る各種制御情報や対象とするＬＳＩについてテストパターン選別で必要とする種々の情報を入力する入力部２０、装置１０の抽出結果やエラー情報等の情報を出力する出力部２１に接続されている。なお、入力部２０としてはキーボード、マウスポインタおよびライトペン等、また、出力部２１としては、プリンタやディスプレイ装置等を用いると良い。
【００３３】
（テストパターン選別方法）
図２は、本発明の実施形態に係るテストパターン選別方法を示すフローチャート図である。
【００３４】
本発明の実施形態に係るテストパターン選別方法は以下のステップを実行する。
【００３５】
（１）機能検証カバレジ評価部１１が、対象とするＬＳＩ又はＬＳＩ内部の機能ブロックのＲＴＬネットとテストパターンの集合とを用いて、集合内のテストパターン毎に機能検証カバレジを抽出する（機能検証カバレジ評価ステップ、Ｓ２０１）。
【００３６】
（２）検証パターン選別部１２が、機能検証カバレジ情報と選別の対象とする機能検証項目とを用いて、テストパターンの集合の中から、全てのテストパターンを用いた場合と同等の機能検証カバレジを達成する最小本数のテストパターンを選別する（検証パターン選別ステップ、Ｓ２０２）。
【００３７】
ここで、「機能検証項目」としては、ＬＳＩ又はＬＳＩ内の機能動作を記述したＲＴＬ記述内に存在する、実行可能なステートメントを実行した割合を示すステートメント・カバレジ、分岐の真偽を実行した割合を示すブランチ・カバレジ、分岐条件の論理式をどの程度活性化したかを示すコンディション・カバレジ、ＲＴＬ記述上のwire（接続線）がどの程度０、１の値になったかを示すトグル・カバレジといったものがある。
【００３８】
（３）故障検出情報抽出部１３が、選別されたテストパターン、対象とするＬＳＩのＲＴＬネットに対応するゲートレベルのネット、ゲートレベルのネットにおいて用いている基本セルのライブラリおよびゲートレベルのネットに対して仮定される累積的な故障シミュレーション実施前の未検出故障リスト（通常は故障シミュレータが自動的に作成）とを用いて、故障検出率および未検出故障リストを出力する（故障検出情報抽出ステップ、Ｓ２０３）。
【００３９】
ここで、未検出故障リストには、未検出故障と共に、故障シミュレーションの結果確実に検出された故障も含まれ、ポテンシャル検出（potentially detected）故障という、例えば、正常な場合には０又は１の確定出力であるものが、その故障が存在する結果、不定値ｘとなる、といった範疇の故障や、特定のテストパターンでの故障解析において、ＣＰＵ時間の無意味な増加を招く恐れがあるために、計算を中断したハイパーアクティブ（hyperactive）故障、冗長な故障も含まれるが、本発明のテストパターン選別装置およびその方法においては、故障リスト内の「未検出故障」が重要であり、基本的には、完全な未検出（およびハイパーアクティブ）だけを言うものとするが、ポテンシャル検出までを含んでも良い。なお、ポテンシャル検出故障については、ポテンシャル検出が所定の回数を超えた場合に、ほぼ確実に検出された見なすプロバブル検出（probably detected）に分類し、プロバブル検出は「検出」、ポテンシャル検出は「未検出」として扱うこともある。
【００４０】
（４）無作為抽出部１４が、故障検出情報抽出部１３が出力した未検出故障リスト内の未検出故障を無作為抽出（random sampling）し、新たな未検出故障リストを生成する（無作為抽出処理ステップ、Ｓ２０４）。
【００４１】
ここで、無作為抽出処理は、故障検出情報抽出処理（故障シミュレーション）の実行に必要なＣＰＵ時間を減少させることを目的としている。一般に、故障検出情報抽出処理の実行時間は、無作為抽出の割合にほぼ比例するが、無作為抽出の割合を低くすると、故障検出情報抽出の信頼性は低下する。ところが、本発明のテストパターン選別装置およびその方法においては、検証パターン選別部１２を用いて選別した、故障検出率も全テストパターンによるものに相当近くなると考えられるテストパターンセットを用いて予め故障検出情報抽出を実行するようにしているので、無作為抽出の割合をある程度低くしても、故障検出率の結果に大きな食い違いが出る恐れを小さくすることができるのである。
【００４２】
（５）故障検出情報抽出部１３が、無作為抽出部１４が生成した未検出故障リスト、対象となるＬＳＩのゲートレベルのネット、ネットが使用するライブラリ、検証パターン選別部１２によって選別されなかったテストパターンの任意の１本を用いて、故障シミュレーションを実行し、全てのテストパターン毎の故障リスト（検出、未検出の双方の故障を含む）を生成する（故障検出情報抽出ステップ、Ｓ２０５）。
【００４３】
（６）追加検出故障数算出部１５が、選別されなかったテストパターン、各テストパターン毎の故障リストを用いて、未検出故障リスト内の未検出故障をどの程度検出したかを比較算出する（追加検出故障数抽出ステップ、Ｓ２０６）。
【００４４】
ここで、追加検出故障数抽出ステップの最初の実行時は、未検出故障リストは無作為抽出部１４が抽出したものと同じである。
【００４５】
（７）比較算出の結果、追加検出故障数が０であるテストパターンがあるか否かを判別し（追加検出故障数判別ステップ、Ｓ２０７）、追加検出故障数が０であるテストパターンは以後の処理から除外し（パターン除外処理ステップ、Ｓ２０８）、追加検出故障数が１以上であるものについては、（評価値計算ステップ、Ｓ２０９）以後の処理を実行する。なお、（７）については、（８）の処理において一括実施することもできる。
【００４６】
（８）評価値計算・選別部１６が、テストパターン毎の追加検出故障数と選別情報とを参照して、以下に示す所定の評価式にしたがって各テストパターンの評価値を計算し（評価値計算ステップ、Ｓ２０９）、評価値が最大となるテストパターンをベストパターンとして選択する（ベストパターン選別ステップ、Ｓ２１０）。
【００４７】
ここで、「評価式」とは、追加故障検出数とテストパラメータを変数とした、例えば以下のような形態のものが考えられる。
【００４８】
〜評価式〜
ｒ×（追加故障検出数）＋（１−ｒ）／（テストパターン長（ステップ数））
ここで、「ｒ」は追加故障検出数とテストパターンサイズの重み付けを調整するためのパラメータであり、０＜ｒ＜１の範囲で設定する。ｒの値が大きいと、追加検出故障数の大きいテストパターンが選択されるが、テストパターン長が長いものも選択される可能性が高くなる。一方、ｒの値を小さくすると、パターン長の短いテストパターンが優先的に選択されるが、選択したテストパターンの本数に比して追加検出される故障数が速やかに増加しないために、所定の故障検出率に到達するまでに計算量の多い追加検出故障数算出処理を多くの回数実行させる必要があり、ＣＰＵ時間が増加するというデメリットが生じる。したがって、実際の処理では、妥当な値をユーザ側で選別情報において設定する必要がある。
【００４９】
なお、ここでいう「選別情報」とは、ｒの値や評価値が上位いくつまで（ないしは上位いくつの値以上等）のテストパターンをベストパターンとして選択するか等の、ユーザ側で設定する選別処理に必要な情報を意味する。
【００５０】
また、上記評価式において、追加故障検出数の代わりに、追加検出故障数を追加検出故障数抽出ステップで得られた最大の追加故障検出数で除した「規格化さらた」追加故障検出数、テストパターン長の代わりに、テストパターン長を（９）の評価値の対象となっているテストパターンの中での最大のテストパターン長で除した「規格化された」テストパターン長を用いることもできる。こうすると、「ｒ」をより一般的な意味で用いることができ、見通しが良くなるという利点がある。
【００５１】
（９）ベストパターンの選別処理を継続するか否かを判別し（選別継続判別ステップ、Ｓ２１１）、継続する場合には（故障リスト抽出ステップ、Ｓ２１２）へ、一方、継続しない場合には（故障検出情報抽出ステップ、Ｓ２１３）へ移行する。
【００５２】
（１０）評価値計算・選別部１６が、未検出故障リストとベストパターンの故障リストとを比較し、未検出故障リストに対して具体的にどの故障が検出され、また、どの故障か未検出のままであるのかを求め、それぞれ故障検出リストおよび未検出故障リストに格納する（故障リスト抽出ステップ、Ｓ２１２）。このステップは、コンピュータシステムのメモリに十分な余裕があれば、追加検出故障数算出ステップで副次的に得られる故障リストを一旦記憶しておき、ベストパターンに対応するものを引き出すだけ、という形でも実現できる。これにより、新規の未検出故障リストおよびテストパターンの集合から追加検出故障数が０のテストパターンとベストパターンを除いたテストパターンの集合が得られるが、次には、これらのそれぞれ、未検出故障リストおよびテストパターンの集合として、再び（追加検出故障数抽出ステップ、Ｓ２０６）に移行する。
【００５３】
（１１）故障検出情報抽出部１３が、故障検出情報抽出ステップＳ２０３において生成された未検出故障リストに対して、ベストパターンを用いて累積的な故障シミュレーション処理を実行する（故障検出情報抽出ステップ、Ｓ２１３）。なお、この（故障検出情報抽出ステップ、Ｓ２１３）は省略しても良いが、この処理ステップによれば、無作為抽出処理により評価されなかった未検出故障についても、ベストパターンによる検出・未検出が明確となるので、対象とするＬＳＩの未検出故障の解析および追加テストパターンの作成を容易にすることができる。
【００５４】
このように、本発明の実施形態に係るテストパターン選別装置およびその方法によれば、故障検出率の向上への寄与が大きいテストパターンが効率的に選別され、最終的に、検証パターン選別部１２において選別されなかったテストパターンよりも実質的に小さいサイズのテストパターンで全検証パターンによるものとほぼ同等の故障検出率を達成することができる。
【００５５】
なお、本発明の実施形態に係るテストパターン選別方法においては、パターン選別を終了するまでの条件を予め設定しても良い。この際、全てのテストパターンにおいて追加検出故障数が０となれば処理は勿論終了するが、それまでに相当数のテストパターンが選択されてしまう可能性があるので、それよりも、例えば、全てのテストパターンでの追加検出故障数の和が、対象とするＬＳＩにおいて故障検出率を所定の値（例えば、０．１％）未満しか向上できる目処がなくなった場合に処理を終了するようにすることが望ましい。
【００５６】
また、本発明の実施形態に係るテストパターン選別方法においては、説明の都合上、故障リストの抽出処理と追加検出故障数抽出処理とを分けているが、これらの処理内容は類似しているので、追加検出故障数の計算時に、各テストパターンによる検出故障の抽出、すなわち、未検出故障リストから除外すべき故障の抽出処理を並行して実施し、既に得られた追加検出故障数よりも大きい追加検出故障数のテストパターンが見つかる度に、未検出故障リストと検出故障リストに上書きするようにするか、前述のように、全てないし大部分の結果をコンピュータシステムのメモリ内に一旦保存するようにしても良い。
【００５７】
（応用例１）
一般に、検証パターン選別部１２により選別されたテストパターンを用いて累積的な故障検出情報抽出を実施すると、対象とするＬＳＩの故障検出率向上への寄与が相対的に小さいものがあることがわかる。そこで、本発明の実施形態に係るテストパターン選別装置およびその方法の応用例１として、所定の故障検出率向上率を予め設定し（例えば、０．０１〜０．０２％）、設定した向上率に満たないテストパターンを低寄与のテストパターンリストとして記録し、これらのテストパターンにより追加検出された故障を低寄与のテストパターンの追加検出故障リストとして、次のテストパターンで使用する故障リストに対しては未検出故障となるように処理する低寄与パターン抽出部１７を設けることが望ましい。なお、この応用例１においては、低寄与のテストパターンリストが選別されなかったテストパターンに加えられ、以後は、同様の処理が施される。
【００５８】
なお、低寄与パターンに関する未検出故障リストの扱いについては、前述のように、その低寄与パターンの一つ前のテストパターンでの累積的な故障シミュレーション実行結果としての未検出故障リストを次のテストパターンで累積的な故障シミュレーションに用いるようにしても良い。
【００５９】
この応用例１によれば、ＲＴＬのレベルでは機能検証カバレジ向上に寄与があっても、ゲートレベルにおいては故障検出率向上への寄与が小さいテストパターンが削除される可能性が生じることとなり、一層小さいテストパターンサイズで全テストパターンとほぼ同様の故障検出率を得ることができる。
【００６０】
（応用例２）
本発明の実施形態に係るテストパターン選別装置およびその方法は、ベストパターンを選択する構成となっているが、応用例として、以下の式を満たすテストパターンをベストなテストパターンのグループとして扱い、これらテストパターンを連続的に故障リスト抽出処理ステップに入力し、これらテストパターンを加えた未検出故障リストを生成するようにしても良い。
【００６１】
（式）評価値≧ａ×（最高の評価値−可能な最低の評価値（０））
（０＜ａ＜１）
この処理過程の中で、追加検出故障数が０のテストパターンがあった場合には、勿論、そのパターンはベストなテストパターンのグループから除外できるものとする。さらには、処理を評価値の高いテストパターンから順に実行していくようにして、連続的実行の結果、評価値がベストな値よりある比率以下になったテストパターンは除外するようにしても良い。
【００６２】
この応用例２によれば、選択されるテストパターンが若干増加することもあるが、計算量の多い追加検出故障数算出処理の実行回数を大幅に削減することができるので、全検証パターンとほぼ同等の故障検出率をより効率的に達成し、より有効性の高いテストパターン選別処理が可能になる。
【００６３】
なお、本発明の実施形態に係るテストパターン選別装置は、例えば、図３に示す構成のような概観を有する。つまり、本発明の実施形態に係わるテストパターン選別装置は、コンピュータシステム３０内にテストパターン選別装置１０の各要素を内蔵することにより構成される。コンピュータシステム３０は、フロッピーディスクドライブ３２および光ディスクドライブ３４を備えている。そして、フロッピーディスクドライブ３２に対してはフロッピーディスク３３、光ディスクドライブ３４に対しては光ディスク３６を挿入し、所定の読み出し操作を行うことにより、これらの記録媒体に格納されたテストパターン選別プログラムをシステム内にインストールすることができる。また、所定のドライブ装置を接続することにより、例えば、メモリ装置の役割を担うＲＯＭ３７や、磁気テープ装置の役割を担うカートリッジ３８を用いて、インストールやデータの読み書きを実行することもできる。さらに、ユーザはキーボード３５を介してテストパターン選別処理に係る各種データを入力することができ、各種の計算結果等をディスプレイ３１を介して知ることが可能である。
【００６４】
また、本発明の実施形態に係るテストパターン選別方法は、プログラム化しコンピュータ読み取り可能な記録媒体に保存しても良い。そして、テストパターン選別を行う際は、この記録媒体をコンピュータシステムに読み込ませ、コンピュータシステム内のメモリ等の記憶部にプログラムを格納し、テストパターン選別プログラムを演算装置で実行することにより、本発明のテストパターン選別方法を実現することができる。ここで、記録媒体とは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラムを記録することができるようなコンピュータ読み取り可能な媒体などが含まれる。この場合、前述のように、機能検証カバレジ評価プログラム、検証パターン選別プログラム、故障シミュレーションプログラムは別の記憶媒体によりコンピュータシステムに読み込まれることもある。
【００６５】
このように、本発明はここでは記載していない様々実施の形態等を包含するということは十分に理解すべきである。したがって、本発明はこの開示から妥当な特許請求の範囲に係わる発明特定事項によってのみ限定されるものでなければならない。
【００６６】
【発明の効果】
以上述べてきたように、本発明のテストパターン選別装置、テストパターン選別解析方法、テストパターン選別解析プログラムを格納したコンピュータ読取り可能な記録媒体によれば、従来までのテストパターン選別処理において選別されなかった検証パターンの中で故障検出率を向上できるものを選別することができるので、最小に近い検証パターンの追加で全検証パターンで得られる値とほぼ同じ故障検出率を達成し、有効性の高いテストパターン選別処理を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るテストパターン選別装置の構成を示すブロック図である。
【図２】本発明の実施形態に係るテストパターン選別方法を示すフローチャート図である。
【図３】本発明の実施形態に係るテストパターン選別装置の構成を示す概観図である。
【図４】従来までのテストパターン選別処理を説明するための模式図である。
【符号の説明】
１０  テストパターン選別装置
１１  機能検証カバレジ評価部
１２  検証パターン選別部
１３  故障検出情報抽出部
１４  無作為抽出部
１５  追加検出故障数算出部
１６  評価値計算・選別部
１７  低寄与パターン抽出部
２０  入力部
２１  出力部
３０  コンピュータシステム
３１  ディスプレイ
３２  フロッピードライブ
３３  フロッピーディスク
３４  光ディスクドライブ
３５  キーボード
３６  光ディスク
３７  ＲＯＭ
３８  カートリッジ
【図１】
0003732708.tif 000002
【図２】
0003732708.tif 000003
【図３】
0003732708.tif 000004
【図４】
0003732708.tif 000005