(57)【要約】【課題】シミュレーション負荷の低減と所望の故障検出率を得るまでのターンアラウンドタイムの短縮と縮退故障における誤差のない故障検出率の算出とを可能にすること。【解決手段】テスト対象論理回路２は複数の組合せ回路ブロックとそれらを接続するフリップフロップとで構成される。シミュレーション部４では、１回のシミュレーションによって各組合せ回路ブロックの入力値を保持するフリップフロップの値をフリップフロップデータ６として収集する。故障検出率算出部７では、その入力値が入力される各組合せ回路ブロックにおける故障検出性を示すデータを求め、その故障検出性データに含まれる故障個所についての外部検出可能性を判断することにより、テスト対象論理回路２に対するテストパターン３の故障検出率５を算出する。【選択図】        図１
2005208741.tif 000002
【特許請求の範囲】
【請求項１】
複数の組合せ回路ブロックがフリップフロップによって接続されている構成として把握したテスト対象論理回路および前記テスト対象論理回路に適用するテストパターンをそれぞれ用意する工程と、
前記テストパターンによる前記テスト対象論理回路のシミュレーションを１回実行して全実行サイクルでの全フリップフロップの値と各実行サイクル時刻とを含むフリップフロップデータを取得する工程と、
前記取得したフリップフロップデータに基づき前記テスト対象論理回路に対する前記テストパターンの故障検出率を算出する工程と、
を含むことを特徴とするＬＳＩの故障検出率測定方法。
【請求項２】
前記故障検出率を算出する工程には、
前記フリップフロップデータから前記テスト対象論理回路における任意の組合せ回路ブロックに入力されるフリップフロップの値を入力フリップフロップデータとして取得し、その取得した当該入力フリップフロップデータに基づき前記任意の組合せ回路ブロックにおける故障検出性を示す組合せ回路の故障検出性データを算出する第１工程と、
前記算出された組合せ回路の故障検出性データに含まれる前記任意の組合せ回路ブロック内で検出可能な故障個所に関係した故障値について当該テスト対象論理回路外からの検出可能性を調べることによって前記任意の組合せ回路ブロック内で検出可能な故障個所の数を計数することを前記フリップフロップデータに含まれる全実行サイクルにおいて実施する第２工程と、
前記第２工程にて得られた当該テスト対象論理回路内の検出可能な故障個所の総数と当該テスト対象論理回路内に想定した故障個所の総数とに基づき前記故障検出率を算出する第３工程と、
が含まれることを特徴とする請求項１に記載のＬＳＩの故障検出率測定方法。
【請求項３】
前記第１工程にて取得される組合せ回路の故障検出性データには、
前記任意の組合せ回路ブロックでの検出可能な故障個所と、そのときの故障によって故障がなかった場合と比べて値に変化が現れる前記任意の組合せ回路ブロックからの出力信号個所と、故障値と、実行サイクル時刻とが含まれることを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項４】
前記第２工程で行われる故障個所の検出可能性判断では、
前記組合せ回路の故障検出性データに前記任意の組合せ回路ブロック内での検出可能な故障個所が存在する場合に、前記組合せ回路の故障検出性データを取得したサイクルの次サイクルにおいて前記任意の組合せ回路ブロックの出力信号が入力される隣の組合せブロックの全入力値を前記フリップフロップデータから取得し、それに基づき前記任意の組合せ回路ブロックの出力信号が前記隣接組合せブロック内でマスクされることなく当該隣接組合せブロックの出力信号に到達するか否かを調べ、到達する場合にはさらに隣接する組合せブロックに関して同様の処理を行うことを繰り返し実行し、最終的に前記出力信号がマスクされることなく当該テスト対象論理回路の境界における出力信号まで到達するとき、前記故障個所は検出可能であると判断される
ことを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項５】
前記第２工程では、
当該テスト対象論理回路内の故障検出不可能とされた故障個所を未検出故障個所データとして外部に出力する工程
が含まれることを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項６】
前記第２工程では、
当該テスト対象論理回路内の故障検出不可能とされた故障個所が論理的に検出可能であるか否かを判定する工程と、
前記判定の結果、検出不可能であるときその故障個所を故障検出率測定の対象から除外する工程と、
が含まれることを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項７】
前記第２工程では、
一旦故障検出不可能と判断された故障個所については、前記組合せ回路の故障検出性データに組合せ回路ブロック内での検出可能な故障個所として存在していてもその故障個所は以後に行われる故障個所の検出可能性判断の対象外とする工程
が含まれることを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項８】
前記第３工程では、
前記第２工程にて複数の故障個所の検出可能性を判断する過程において、検出可能な故障個所の累積値が所定数分だけ増える毎に、その時点でのテスト対象論理回路に対する故障検出率を算出し、それを途中経過故障検出率として外部に出力する工程
が含まれることを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項９】
前記第３工程では、
前記第２工程にて全ての故障個所の検出可能性の判断が終了する以前に外部から処理中断の指示が入力されると、その時点でのテスト対象論理回路に対する故障検出率を算出して外部に出力し、同時に故障検出率算出処理を終了する工程
が含まれることを特徴とする請求項２に記載のＬＳＩの故障検出率測定方法。
【請求項１０】
前記第３工程では、
前記途中経過故障検出率を外部に出力する場合には、その時点での実行サイクル時刻も出力する工程
が含まれることを特徴とする請求項８に記載のＬＳＩの故障検出率測定方法。
【請求項１１】
前記第３工程では、
前記途中経過故障検出率が予め定められた予定故障検出率を上回ったときは、その時点でのテスト対象論理回路に対する故障検出率を算出して外部に出力し、同時に故障検出率算出処理を終了する工程
が含まれることを特徴とする請求項８に記載のＬＳＩの故障検出率測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩ（大規模半導体集積回路）の故障検出率測定方法に関するものである。
【背景技術】
【０００２】
ＬＳＩ内部で発生する故障は、いろいろな原因によって引き起こされるが、ＬＳＩ製造の出荷テストでは、内部の故障をいかに検出するかによって、製造不良品を出荷する確率が減る。現在では、１００％に近づく相当に高い故障検出率（検出できるノードの割合）が求められている。
【０００３】
故障の原因を簡単化したものを故障モデルと言い、その故障モデルの種類には種々あるが、現在、確立している故障の検出方法は、縮退故障モデルを使用した方法である。これは、全てのノードのうち、どこか１ヵ所が電源電圧あるいは接地に固定されていると仮定して故障を検出する方法である。前者の場合を論理値１で表し１の縮退故障といい、後者の場合を論理値０で表し０の縮退故障という。
【０００４】
従来の故障検出率の測定では、テスト対象論理回路とそれをテストするためのテストパターンとを用意し、予め定義した故障個所の数分の故障シミュレーションを繰り返し行う方法が採られている（例えば特許文献１）。以下に、その概要を説明する。
【０００５】
すなわち、従来では、まず、修正が全く行われていないそのままのテスト対象論理回路を論理シミュレータにかけ、テストパターンを用いてシミュレーションを行い、その結果として、テスト対象論理回路からの出力信号についての時系列な出力値データを得る。この結果をグッドマシン（good machine）結果とする。
【０００６】
次に、予め定義した故障個所の１つに着目し、その故障をテスト対象論理回路に加える修正を行う。この修正措置は、通常、論理設計データに修正を加えること、あるいは、論理シミュレータに備わっているデバッグ用の機能を活用することで実現される。この故障付きテスト対象論理回路を論理シミュレータにかけ、テストパターンを用いてシミュレーションを行い、その結果として、テスト対象論理回路からの出力信号についての時系列な出力値データを得る。この結果をフォールトマシン（fault machine）結果とする。
【０００７】
そして、グッドマシン結果とフォールトマシン結果とを比較する。その比較の結果、不一致があれば、そのテストパターンによってその故障個所は検出可能であるとする。以上の処理を予め定義した全ての故障個所に関して繰り返し行い、検出可能な故障個所の総数を取得し、全故障個所に対する検出可能な故障個所の割合、つまり故障検出率を得る。
【０００８】
ここで、故障シミュレーションの負荷を軽減する目的で、テスト対象論理回路を複数のブロックに分割し、この分割された回路ブロック単位で故障シミュレーションを行う手法が提案されている。また、故障シミュレーション結果が真にテスト対象論理回路の外部から検出可能である確率を擬似的に算出し掛け合わせることで、より誤差の少ない故障検出率を得る手法も提案されている。
【０００９】
【特許文献１】特開昭６２−２４７４３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の故障検出率測定方法では、上記したように、故障シミュレーションの負荷を軽減する目的で、テスト対象論理回路を複数のブロックに分割し、この分割された回路ブロック単位で故障シミュレーションを行う手法が提案されているが、故障シミュレーションを複数回実施する点は変わらないので、依然として負荷が高いと言える。
【００１１】
また、求められた故障検出率に含まれる誤差を縮小する試みとして、上記したように、統計的な手法で検出性の確率を算出し掛け合わせる手法が提案されているが、依然として誤差が含まれている可能性がある。
【００１２】
この発明は、上記に鑑みてなされたものであり、シミュレーション負荷の低減と故障検出率を得るまでのターンアラウンドタイムの短縮と縮退故障における誤差のない故障検出率の算出とが可能なＬＳＩの故障検出率測定方法を得ることを目的とする。
【課題を解決するための手段】
【００１３】
上述した目的を達成するために、この発明にかかるＬＳＩの故障検出率測定方法は、複数の組合せ回路ブロックがフリップフロップによって接続されている構成として把握したテスト対象論理回路および前記テスト対象論理回路に適用するテストパターンをそれぞれ用意する工程と、前記テストパターンによる前記テスト対象論理回路のシミュレーションを１回実行して全実行サイクルでの全フリップフロップの値と各実行サイクル時刻とを含むフリップフロップデータを取得する工程と、前記取得したフリップフロップデータに基づき前記テスト対象論理回路に対する前記テストパターンの故障検出率を算出する工程とを含むことを特徴とする。
【００１４】
この発明によれば、故障シミュレーションを複数回行うのではなく、１回の論理シミュレーションを行うだけで済むので、シミュレーション負荷の低減と故障検出率を得るまでのターンアラウンドタイムの短縮とが図れる。また、全組合せ回路ブロック内に想定する故障個所の総数は明確であるので、縮退故障における誤差のない故障検出率の算出が可能となる。
【発明の効果】
【００１５】
この発明によれば、シミュレーション負荷の低減と故障検出率を得るまでのターンアラウンドタイムの短縮と縮退故障における誤差のない故障検出率の算出とが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、この発明にかかるＬＳＩの故障検出率測定方法の好適な実施の形態について、図面を参照して詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１７】
実施の形態．
図１は、この発明の一実施の形態であるＬＳＩの故障検出率測定方法を実施する装置の構成を示すブロック図である。図１に示すＬＳＩの故障検出率測定方法の実施装置は、故障検出率の測定対象となる論理回路であるテスト対象論理回路が格納される記憶部２と、故障検出率の測定用に作成されたテストパターンが格納される記憶部３と、記憶部２に格納されるテスト対象論理回路（以降、単に「テスト対象論理回路２」と記す）に、記憶部３に格納されるテストパターン（以降、単に「テストパターン３」と記す）を適用して論理シミュレーションを実施するシミュレーション部４と、シミュレーション部４にて得られたフリップフロップデータを格納する記憶部６と、記憶部６に格納されるフリップフロップデータ（以降、単に「フリップフロップデータ６」と記す）に基づきテスト対象論理回路２に対するテストパターン３の故障検出率を算出する故障検出率算出部７と、故障検出率算出部７が求めた故障検出率を格納する記憶部５とを備えている。
【００１８】
ここで、図２は、図１に示すテスト対象論理回路の構成例を示す概念図である。テスト対象論理回路２は、例えば図２に示すように、複数の組合せ回路ブロックがクロックに従って動作するフリップフロップによって接続された構成をしている。図２では、テスト対象論理回路２が、隣接する２つの組合せ回路ブロック１０ａ、１０ｂとフリップフロップ１１〜１９とによって構成される場合が示されている。
【００１９】
図２において、フリップフロップ１１〜１３は、図示しない隣接する組合せ回路ブロックからの入力値を保持し、組合せ回路ブロック１０ａに出力する。フリップフロップ１４〜１３は、組合せ回路ブロック１０ａの出力値を保持し、組合せ回路ブロック１０ｂに出力する。フリップフロップ１７〜１９は、組合せ回路ブロック１０ｂの出力値を保持し、図示しない隣接する組合せ回路ブロックに出力するようになっている。
【００２０】
図１に戻って、シミュレーション部４に入力されるテスト対象論理回路２は、故障付きに修正されたものではなく、無修正のものである。これによって、シミュレーション部４は、故障シミュレーションを複数回実施するのではなく、通常の論理シミュレーションを１回実施して、各組合せ回路ブロックの入力値を保持するフリップフロップの値をフリップフロップデータ６として収集するようになっている。
【００２１】
したがって、シミュレーション部４にて得られるフリップフロップデータ６は、テスト対象論理回路２に含まれる全てのフリップフロップ（図２に示す例では、フリップフロップ１１〜１９）に関して、全実行サイクルでの値と各実行サイクルの時刻とからなる時系列的なデータである（図５参照）。
【００２２】
故障検出率算出部７は、具体的には、例えば図３に示すように構成される。記憶部５に格納される故障検出率（以降、単に「故障検出率５」と記す）は、このように構成される故障検出率算出部７にて求められる。以下、図３を参照して、故障検出率算出部７の構成について説明する。
【００２３】
図３に示すように、故障検出率算出部７は、フリップフロップデータ選択部２１、記憶部２１、組合せ回路ブロック選択部２２、記憶部２３、２４、２５、外部検出性判断部２６および記憶部２７を備えている。
【００２４】
組合せ回路ブロック選択２２は、複数の組合せ回路ブロックがフリップフロップによって接続されている構成として把握したテスト対象論理回路２における任意の組合せ回路ブロックの１つを選択し、その選択した１つの組合せ回路ブロックをフリップフロップデータ選択部２１に通知するとともに、その選択した１つの組合せ回路ブロックのデータを記憶部２３に格納する。なお、以降、記憶部２３に代えて、記憶部２３に格納された組合せ回路ブロックのデータを「組合せ回路ブロックデータ２３」と記す。
【００２５】
フリップフロップデータ選択部２１は、組合せ回路ブロック選択部２２から選択した組合せ回路ブロックの通知を受けて、フリップフロップデータ６からその測定対象組合せ回路ブロックへの入力値を保持するフリップフロップのデータを選択し、その選択したフリップフロップのデータを記憶部２１に格納する。なお、以降、記憶部２１に代えて、記憶部２１に格納されたフリップフロップデータを「入力フリップフロップデータ２１」と記す。
【００２６】
組合せ回路の故障検出性算出部２４は、組合せ回路ブロックデータ２３と入力フリップフロップデータ２１とに基づき、測定対象の組合せ回路ブロックに関する故障検出性を算出し、それを記憶部２５に格納する。なお、以降、記憶部２５に代えて、記憶部２５に格納される組合せ回路の故障検出性に関するデータを「組合せ回路の故障検出性データ２５」と記すが、ここで算出される組合せ回路の故障検出性データ２５には、（１）測定対象の組合せ回路ブロック内で検出可能な故障個所と、（２）故障が起きたときの値に故障が無かった場合と比べて変化が現れるその測定対象組合せ回路ブロックの出力信号個所およびその故障値と、（３）その時の実行サイクル時刻とが含まれている。
【００２７】
外部検出性判断部２６は、組合せ回路の故障検出性データ２５に含まれる測定対象組合せ回路ブロック内での検出可能な故障個所に関係した故障値がテスト対象論理回路外部から検出可能であるか否かを判断し、得られた外部検出可能な故障個所の総数を記憶部２７に格納する。故障検出率５は、テスト対象論理回路２において想定した全ての故障個所に対する検出可能な故障個所の割合として求められる。
【００２８】
次に、図４〜図１０を参照して、以上のように構成される故障検出率算出部７の動作について説明する。なお、図４は、図３に示す故障検出率算出部の動作を説明するフローチャートである。図５は、図３に示すフリップフロップデータの一例を示す図である。図６は、図３に示す入力フリップフロップデータの一例を示す図である。図７は、図３に示す組合せ回路ブロック選択部が選択した組合せ回路ブロックの一例を示す概念図である。図８は、図７に示す組合せ回路ブロックにおいて想定される故障個所についての縮退故障を検出する動作を説明する図である。図９は、図７に示す組合せ回路ブロックにおいて想定される故障個所から得られた組合せ回路故障検出性データの一例を示す図である。図１０は、故障値の外部検出可能性判断処理を説明する図である。
【００２９】
図４において、処理Ｓ１では、組合せ回路ブロック選択部２２にて、複数の組合せ回路ブロックがフリップフロップによって接続されている構成として把握したテスト対象論理回路２における任意の組合せ回路ブロックの１つを選択する。
【００３０】
処理Ｓ２では、フリップフロップデータ選択部２０にて、処理Ｓ１にて選択された組合せ回路ブロックへの入力値を保持しているフリップフロップとその保持値とをフリップフロップデータ６から抽出する。このフリップフロップデータ６は、例えば図５に示すようになっている。また、フリップフロップデータ６から抽出される入力フリップフロップデータ２１は、例えば図６に示すようになっている。
【００３１】
図５では、テスト対象論理回路２に含まれるフリップフロップの総数はｍ個であり、シミュレーション時刻はＮ−１までとしている。すなわち、図５では、シミュレーションの時刻０〜時刻Ｎ−１の各時刻において、フリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆｘ（ｘ＝１〜ｍ）の値が、「ｍｏｄａ＿ｍｏｄｂ＿ｆｆｘ＝０」または「ｍｏｄａ＿ｍｏｄｂ＿ｆｆｘ＝１」として示されている。
【００３２】
また、図６では、入力フリップフロップデータ２１として、時刻０〜時刻４の各シミュレーション時刻において、３つのフリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ１、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１３と、その値｛ｍｏｄａ＿ｍｏｄｂ＿ｆｆｘ＝０（ｘ＝１〜３）またはｍｏｄａ＿ｍｏｄｂ＿ｆｆｘ＝１（ｘ＝１〜３）｝とが抽出された場合が示されている。
【００３３】
図４に戻って処理Ｓ３では、組合せ回路の故障検出率算出部２４にて、まず、選択した組合せ回路ブロック内部に故障個所を想定する。なお、想定する故障の種類は、縮退故障である。そして、想定した個々の故障個所に関して、それが入力フリップフロップデータ２１で示される入力データによって検出可能であるか否かをチェックする。その結果、検出可能であれば、（１）その故障個所と、（２）検出可能と判断される要因となった出力信号と、（３）その故障値と、（４）その時のシミュレーション時刻とを含む組合せ回路の故障検出性データ２５が生成される。なお、この処理Ｓ３の詳細については、後述する（図６、図７、図８等）。
【００３４】
処理Ｓ４では、外部検出性判断部２６にて、組合せ回路の故障検出性データ２５に含まれる故障個所に関連した故障値がテスト対象論理回路２の外部から検出可能であるか否かをチェックする。その結果、外部から検出可能であれば、その故障個所は検出可能であるとしてカウントする。すなわち、記憶部２７に外部から検出可能な故障個所の数が蓄積される。この処理Ｓ４の詳細については、後述する（図９、図１０等）が、ここではそれを要約した形で具体的に説明する。
【００３５】
すなわち、外部検出性判断部２６では、組合せ回路の故障検出性データ２５に含まれる故障個所に関連した故障値が入力されている隣の組合せ回路ブロックに着目し、当該組合せ回路ブロックへの全入力値が保持されたサイクルの次サイクルにおけるその隣接組合せ回路ブロックへの全入力値をフリップフロップデータ６から求める。そして、故障値が隣接組合せ回路ブロック内部でマスクされることなくその隣接組合せ回路ブロックの出力信号に到達するか否かを調べる。その結果、その隣接組合せ回路ブロックの出力信号に到達する場合には、さらに隣接する組合せ回路ブロックに関して同様の処理を行う。この操作を繰り返した結果として、その故障値がマスクされることなくテスト対象論理回路２の境界にある出力信号まで到達した場合に、その故障個所は外部から検出可能であるとしてカウントする。
【００３６】
処理Ｓ５では、未処理の組合せ回路ブロックが存在するか否かを調べる。未処理の組合せ回路ブロックが残っていれば（処理Ｓ５：Ｙｅｓ）、処理Ｓ１に戻って上記した処理を繰り返し実行する。そして、未処理の組合せ回路ブロックが無くなければ（処理Ｓ５：Ｎｏ）、得られた外部検出可能な故障個所の総数を分子とし、全組合せ回路ブロック内に想定した故障個所の総数を分母として故障検出率５が算出される（処理６）。
【００３７】
次に、処理Ｓ３の内容を詳細に説明する。ここでは、組合せ回路ブロック選択部２２が選択した組合せ回路ブロックは例えば図７に示すようになっているとする。図７では、組合せ回路ブロック４０が、ＯＲ回路４１とＮＯＲ回路４２とＡＮＤ回路４３とＡＮＤ回路４４との組合せからなるとしている。そして、この組合せ回路ブロック４０の入力値を保持する３つのフリップフロップ３１、３２、３３と、組合せ回路ブロック４０の出力値を保持する３つのフリップフロップ３４、３５、３６とが示されている。
【００３８】
図７において、フリップフロップ３１の保持値はＯＲ回路４１の一方の入力端に与えられている。フリップフロップ３２の保持値はＯＲ回路４１の他方の入力端とＮＯＲ回路４２の一方の入力端とに与えられている。フリップフロップ３３の保持値はＮＯＲ回路４２の他方の入力端とＡＮＤ回路４３の一方の入力端とに与えられている。ＯＲ回路４１の出力値はＡＮＤ回路４３の他方の入力端とフリップフロップ３４の入力端とに与えられている。ＡＮＤ回路４３の出力値はフリップフロップ３５の入力端とＡＮＤ回路４４の一方の入力端とに与えられている。ＮＯＲ回路４２の出力値はＡＮＤ回路４４の他方の入力端に与えられている。ＡＮＤ回路４４の出力値はフリップフロップ３６の入力端に与えられている。３つのフリップフロップ３４、３５、３６の保持値は処理Ｓ４にて着目するとした隣接組合せ回路ブロックの入力値である。
【００３９】
また、この組合せ回路ブロック４０への入力となるフリップフロップデータ６、すなわち、フリップフロップデータ選択部２０にて選択された入力フリップフロップデータ２１として、図６に示した入力フリップフロップデータを使用する。つまり、図７に示すフリップフロップ３１はフリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ１に対応し、フリップフロップ３２はフリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ２に対応し、フリップフロップ３３はフリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ３に対応している。また、図５に示したフリップフロップデータ６の表記に従えば、３つのフリップフロップ３４、３５、３６は、それぞれ、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１２、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１３と表記できる。
【００４０】
図６に示す例では、３つのフリップフロップの値は、シミュレーション時刻０では、「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝０」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝０」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝０」である。シミュレーション時刻１では、「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝１」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝０」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝０」である。シミュレーション時刻２では、「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝１」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝０」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝１」である。シミュレーション時刻３では、「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝０」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝１」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝１」である。シミュレーション時刻４では、「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝１」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝１」「ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝１」であることが示されている。
【００４１】
さて、図７に示した組合せ回路ブロック４０における故障個所を図８に示すように想定する。図８において、フリップフロップ３１の出力端がノードＡであり、フリップフロップ３２の出力端がノードＢであり、フリップフロップ３２の出力端がノードＣであり、ＯＲ回路４１の出力端がノードＤであり、ＡＮＤ回路４３の出力端がノードＥであり、ＮＯＲ回路４２の出力端がノードＦであり、ＡＮＤ回路４４の出力端がノードＧである。以上に示した７つのノードに故障個所×を想定する。一般に、ノードの存在する所には必ず故障個所が想定され、そして、その逆もまた真である。また、図８では、ＯＲ回路４１の出力信号は「０１」であり、ＡＮＤ回路４３の出力信号は「０２」であり、ＡＮＤ回路４４の出力信号は「０３」であるとしている。
【００４２】
以上のように想定した７つの故障個所についての縮退故障を検出する動作は次のようにして行われる。すなわち、まず、７つの故障個所について、図６に示される入力値によって故障個所が検出可能であるか否かをシミュレーション時刻毎に調べる。シミュレーション時刻０での３つの入力値は、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝０、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝０、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝０である。これを図８に示す組合せ回路４０に適用する。
【００４３】
入力値ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝０を適用すると、ノードＡの値は“０”になることが判る。これは、ノードＡの１の縮退故障に対して活性化していることを示す。このときの故障値が組合せ回路４０内でマスクされることなく出力信号０１に到達するか否かを調べる。入力値ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝０であるので、故障値はＯＲ回路４１でマスクされることなくノードＤに到達する。ノードＤの値はそのまま出力信号０１となるので、本シミュレーション時刻０での３つの入力値では、ノードＡの１の縮退故障は、出力信号０１によって故障検出可能となる。
【００４４】
ここで他の出力信号についても調べる。ノードＤの値はＡＮＤ回路４３にも入力される。しかし、入力値ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝０であるので、故障値はＡＮＤ回路４３にてマスクされてしまい、ノードＥまでは到達しない。つまり、本シミュレーション時刻０での３つの入力値では、ノードＡの１の縮退故障は、出力信号０１以外の出力信号０２、０３では故障検出不可能となる。
【００４５】
今度はノードＥに着目して調べる。シミュレーション時刻０での３つの入力値は、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝０、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２＝０、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝０であるので、ノードＥの値は“０”である。これは、ノードＥの１の縮退故障に対して活性化していることを示す。このときの故障値が組合せ回路４０内でマスクされることなく出力信号０２に到達するか否かを調べる。ノードＥの値はそのまま出力信号０２になるので、本シミュレーション時刻０での３つの入力値では、ノードＥでの１の縮退故障は、出力信号０２によって故障検出可能となる。
【００４６】
同様に他の出力信号についても調べる。シミュレーション時刻０での３つの入力値は、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１＝０、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３＝０であるので、ノードＦの値は“１”である。したがって、故障値はＡＮＤ回路４４でマスクされることなくノードＧに到達する。ノードＧの値はそのまま出力信号０３となるので、やはり本シミュレーション時刻０での３つの入力値では、ノードＥの１の縮退故障は出力信号０３によって故障検出可能となる。このようにして、全故障個所に関しての０の縮退故障と１の縮退故障の故障検出可能性を調べる。
【００４７】
そして、故障検出可能となった故障個所について、時刻と、故障個所と、故障値と、その故障値が到達する出力信号と、その出力信号の値を隣の組合せ回路ブロックへの入力値として保持するフリップフロップ名とを含む組合せ回路の故障検出性データ２５をテーブルに記載する。以上の操作を図６に示す時刻０〜時刻４までの全シミュレーション時刻での入力フリップフロップデータについて実施し、選択された組合せ回路ブロック４０に関する全組合せ回路の故障検出性データ２５を得る（図９参照）。なお、全シミュレーション時刻に対する処理の途中で、想定した故障個所全部の「０の縮退故障」と「１の縮退故障」が全て検出可能となった場合には、残りのシミュレーション時刻に関する処理を放棄し、その全て検出可能となった時点で検出可能性判断処理を完了してもよい。
【００４８】
図９は、シミュレーション時刻０にて選択された組合せ回路ブロック４０に関する全組合せ回路の故障検出性データ２５が得られた場合を示している。図９において、組合せ回路の故障検出性データ２５には、故障個所と、故障値と、出力信号（フリップフロップ名）とが含まれている。故障個所として、ノードＡ、Ｂ、Ｄ、Ｅ、Ｆ、Ｇが示されている。故障値として、検出した全ての故障ノードが“１”である（１の縮退故障である）ことが示されている。ノードＡ、Ｂ、Ｄに関する出力信号（フリップフロップ名）は「０１（ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１」である。ノードＥに関する出力信号（フリップフロップ名）は「０２（ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１２」である。ノードＦ、Ｇに関する出力信号（フリップフロップ名）は「０１（ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１３」であることが示されている。
【００４９】
次に、処理Ｓ４の内容を詳細に説明する。図９に示す組合せ回路の故障検出性データの例では、検出可能なノードＡ、Ｂ、Ｄの１の縮退故障に対応した出力信号（フリップフロップ名）は「０１（ｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１」であるので、このフリップフロップの保持値を入力値とする隣接の組合せ回路ブロックに着目する。故障値の外部検出可能性判断処理を説明する図１０では、そのような隣接組合せ回路ブロックの一例が示されている。
【００５０】
図１０において、隣接組合せ回路ブロック５１の入力値を保持するフリップフロップには、フリップフロップ３４の他に、フリップフロップ４７、４８が存在する。また、隣接組合せ回路ブロック５１の出力値を保持するフリップフロップ５２、５３、５４が存在する。そして、フリップフロップ５２、５３、５４の出力端は、途中回路を介して当該ＬＳＩの外部ピンｅｘｔ１、ｅｘｔ２、ｅｘｔ３に接続されることになる。
【００５１】
なお、フリップフロップ３４は上記のようにｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１と表記される。同様にフリップフロップ４７、４８は、それぞれ、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２２、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３３と表記できる。
【００５２】
さて、上記のように組合せ回路ブロック４０に関する組合せ回路の故障検出性データ２５を取得したシミュレーション時刻の次のシミュレーション時刻、つまり、今の例では、シミュレーション時刻１におけるフリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ２２、ｍｏｄａ＿ｍｏｄｂ＿ｆｆ３３の値をフリップフロップデータ６（図５）から探し出す。
【００５３】
隣接組合せ回路ブロック５１内部のゲート接続は明確になっているので、それらのゲート接続の入力値が判れば、例えばフリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１の入力値が隣接組合せ回路ブロック５１内部でマスクされることなく隣接組合せ回路ブロック５１の出力信号まで到達可能であるか否かが判る。その結果、フリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１の入力値が隣接組合せ回路ブロック５１の出力信号まで到達不可能であれば、上記のように組合せ回路ブロック４０に関して取得した組合せ回路の故障検出性データ２５におけるシミュレーション時刻０でのノードＡ、Ｂ、Ｄの１の縮退故障は検出不可能となる。
【００５４】
一方、フリップフロップｍｏｄａ＿ｍｏｄｂ＿ｆｆ１１の入力値が隣接組合せ回路ブロック５１の出力信号まで到達可能であれば、さらに、その出力信号を入力とする隣接組合せ回路ブロックに着目し、同様の処理を繰り返す。その結果、外部（例えばＬＳＩの外部ピンｅｘｔ１、ｅｘｔ２、ｅｘｔ３）から検出可能なノードまで到達すれば、上記のように組合せ回路ブロック４０に関して取得した組合せ回路の故障検出性データ２５におけるシミュレーション時刻０でのノードＡ、Ｂ、Ｄの１の縮退故障は故障検出可能であると判断し、故障検出可能数を３つ増やす。
【００５５】
このとき、以前の処理によって該当するノードの故障が既に検出可能としてカウント済みであれば、故障検出可能数を増やす必要はないことは言うまでもない。また、一旦故障検出不可能と判断された故障個所については、組合せ回路の故障検出性データ２５に組合せ回路ブロック内での検出可能な故障個所として存在していてもその故障個所は以後に行われる故障個所の検出可能性判断の対象外とするようになっている。
【００５６】
これらの処理を組合せ回路故障検出性データ２５における全ての出力信号（フリップフロップ名）に関して行う。以上の処理を行うことによって、検出可能な故障個所の総数が求まる。また、全組合せ回路ブロック内に想定した故障個所の総数は明確であるので、縮退故障における誤差のない故障検出率５の算出が可能となる。
【００５７】
以上のように、この実施の形態では、故障シミュレーションを複数回実施するのではなく、論理シミュレーションを１回実施するだけで、所望の故障検出率の測定が行えるようになっている。したがって、この実施の形態によれば、シミュレーション負荷の低減と所望の故障検出率を得るまでのターンアラウンドタイムの短縮とが図れる。また、全組合せ回路ブロック内に想定する故障個所の総数は明確であるので、縮退故障における誤差のない故障検出率の算出が行えるようになる。
【００５８】
ここで、この発明は、以上説明した実施の形態に限定されるものではなく、種々の変形態様が可能である。例えば、故障検出不可能と判断された故障個所とその故障値を未検出故障個所データとして外部に出力するようにしてもよい。そのようにすれば、故障検出率向上のための新たなテストパターン作成の支援を可能にする。
【００５９】
また、組合せ回路ブロックが冗長な回路構成を持つなど、論理的に故障検出不可能な構造を持つ場合には、その故障個所は対象から除外して故障検出率を算出するようにしてもよい。そのようにすれば、検査作業の効率向上が図れる。
【００６０】
また、故障検出率は、全組合せ回路ブロックの全ての想定した故障個所の検出可能性をチェックしてから算出するのではなく、故障検出可能数が所定数だけ増える度に算出し、その途中経過故障検出率をオペレータに対して表示出力等を行うようにしてもよい。これによれば、オペレータが現在の故障検出率を確認し、処理の継続か中断かを判断可能とすることができ、同様に検査作業の効率向上が図れる。
【００６１】
また、故障検出率を表示出力等を行う場合には、その時点までに処理したフリップフロップデータの時刻もオペレータに対して表示出力等を行うようにしてもよい。そして、オペレータがいわゆるコントロールＣ入力などの処理中断通知手段によって処理中断を指示した場合には、その時点での故障検出率と時刻とを表示出力等を行い、同時に処理を終了するようにしてもよい。そのようにすれば、同様に検査作業の効率向上が図れる。
【００６２】
また、オペレータが予定故障検出率を指示入力する手段を設け、途中経過故障検出率がその指示値を上回った場合には、その時点でのテスト対象論理回路に対する故障検出率を算出してオペレータに通知し、その通知時点で処理を終えるようにすれば、ターンアラウンドタイムの一層の短縮を可能にする。
【産業上の利用可能性】
【００６３】
以上のように、この発明にかかるＬＳＩの故障検出率測定方法は、シミュレーション負荷の低減と所望の故障検出率を得るまでのターンアラウンドタイムの短縮とを図るのに有用であり、特に、縮退故障における誤差のない故障検出率の算出に適している。
【図面の簡単な説明】
【００６４】
【図１】この発明の一実施の形態であるＬＳＩの故障検出率測定方法を実施する装置の構成を示すブロック図である。
【図２】図１に示すテスト対象論理回路の構成例を示す概念図である。
【図３】図１に示す故障検出率算出部の構成例を示すブロック図である。
【図４】図３に示す故障検出率算出部の動作を説明するフローチャートである。
【図５】図３に示すフリップフロップデータの一例を示す図である。
【図６】図３に示す入力フリップフロップデータの一例を示す図である。
【図７】図３に示す組合せ回路ブロック選択部が選択した組合せ回路ブロックの一例を示す概念図である。
【図８】図７に示す組合せ回路ブロックにおいて想定される故障個所についての縮退故障を検出する動作を説明する図である。
【図９】図７に示す組合せ回路ブロックにおいて想定される故障個所から得られた組合せ回路故障検出性データの一例を示す図である。
【図１０】故障値の外部検出可能性判断処理を説明する図である。
【符号の説明】
【００６５】
２、３、５、６、２１、２３、２５、２７  記憶部
４  シミュレーション部
７  故障検出率算出部
１０ａ、１０ｂ  ４０  組合せ回路ブロック
１１〜１７、３１〜３６、４７、４８、５２〜５４  フリップフロップ
２０  フリップフロップデータ選択部
２２  組合せ回路ブロック選択部
２４  組合せ回路の故障検出率算出部
２６  外部検出性判断部
４１  ＯＲ回路
４２  ＮＯＲ回路
４３、４４  ＡＮＤ回路
５１  隣接組合せ回路ブロック
【図１】
2005208741.tif 000003
【図２】
2005208741.tif 000004
【図３】
2005208741.tif 000005
【図４】
2005208741.tif 000006
【図５】
2005208741.tif 000007
【図６】
2005208741.tif 000008
【図７】
2005208741.tif 000009
【図８】
2005208741.tif 000010
【図９】
2005208741.tif 000011
【図１０】
2005208741.tif 000012