(57)【要約】【課題】テストパターンに対する出力応答に適用されるマスク情報の反転回数を削減すること。【解決手段】半導体集積回路は、テストパターンが入力される複数のシフトレジスタと、前記テストパターンに応じた前記複数のシフトレジスタの出力応答に対するマスク情報として適用される擬似乱数を生成する生成部と、第一の制御信号の入力に応じ、該第一の制御信号が示す前記シフトレジスタに関して前記マスク情報を反転させる反転部と、前記擬似乱数の初期値を記憶する記憶部とを有し、前記生成部が生成する前記擬似乱数は、第二の制御信号の入力に応じて前記記憶部が記憶する前記初期値によって初期化される。【選択図】図６
2012198065.tif 000002
【特許請求の範囲】
【請求項１】
テストパターンが入力される複数のシフトレジスタと、
前記テストパターンに応じた前記複数のシフトレジスタの出力応答に対するマスク情報として適用される擬似乱数を生成する生成部と、
第一の制御信号の入力に応じ、該第一の制御信号が示す前記シフトレジスタに関して前記マスク情報を反転させる反転部と、
前記擬似乱数の初期値を記憶する記憶部とを有し、
前記生成部が生成する前記擬似乱数は、第二の制御信号の入力に応じて前記記憶部が記憶する前記初期値によって初期化される半導体集積回路。
【請求項２】
前記記憶部は、前記シフトレジスタに含まれるフリップフロップのうち、前記テストパターンに応じて不定値が出力されるフリップフロップの一部又は全部に係る出力応答をマスクする前記擬似乱数を前記生成部に生成させる前記初期値を記憶する請求項１記載の半導体集積回路。
【請求項３】
請求項１又は２記載の半導体集積回路の試験装置が、
テストデータに基づいて、前記第一の制御信号を前記半導体集積回路に入力し、
前記テストパターンごとに前記第二の制御信号を前記半導体集積回路に入力して、前記擬似乱数を初期化させる試験方法。
【請求項４】
請求項１又は２記載のシフトレジスタに含まれるフリップフロップの中で、不定値が出力されるフリップフロップの一部又は全部の出力応答をマスク可能な前記擬似乱数の初期値を探索する探索部を有する情報処理装置。
【請求項５】
前記探索部は、不定値が出力される前記フリップフロップの全部又は該フリップフロップの中で不定値の出力回数が上位である一部の出力応答をマスク可能な前記擬似乱数の初期値を探索する請求項４記載の情報処理装置。
【請求項６】
請求項１又は２記載のシフトレジスタに含まれるフリップフロップの中で、不定値が出力されるフリップフロップの一部又は全部の出力応答をマスク可能な前記擬似乱数の初期値を探索する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、試験方法、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、半導体集積回路（以下、「ＬＳＩ（Large Scale Integration）」という。）の製造不良の検出のための試験方法として、組込み自己試験（ＢＩＳＴ；Ｂｕｉｌｔ−Ｉｎ
Ｓｅｌｆ−Ｔｅｓｔ）が利用されている。
【０００３】
図１は、ＢＩＳＴを説明するための図である。同図において、ＬＳＩ１０３０は、試験対象のＬＳＩである。ＬＳＩ１０３０は、複数のスキャンパスＳＰ、擬似乱数生成回路１０３１、及び出力検証回路１０３２等を含む。擬似乱数生成回路１０３１及び出力検証回路１０３２は、試験用に追加された回路である。各スキャンパスＳＰは、複数のフリップフロップ（ＦＦ）を含む。斯かるＬＳＩ１０３０に関して、予め生成されるテストデータに基づくＬＳＩテスタ１０２０の制御によって、以下の手順で試験が行われる。
（１）擬似乱数生成回路１０３１によって生成されたテストパターンが、スキャンパスＳＰを通じて各フリップフロップにセットされる。
（２）続いて、テストパターンに対するＬＳＩ１０３０からの出力応答が各フリップフロップに格納される。
（３）続いて、各フリップフロップに格納された出力応答がスキャンパスＳＰを通じて出力検証回路１０３２に入力される。出力検証回路１０３２は、入力された出力応答を圧縮する。
（４）（１）〜（３）までが、予定されている全てのテストパターンに関して実行されると、圧縮された出力応答がＬＳＩテスタ１０２０に出力される。
（５）ＬＳＩテスタ１０２０は、出力された出力応答を、予め回路シミュレーションにより生成しておいた期待値と比較して、試験結果を判定する。
【０００４】
ＢＩＳＴでは、擬似乱数生成回路１０３１によって入力パターンが生成されるため、ＬＳＩテスタ１０２０には入力パターンを格納する必要はなく、擬似乱数生成回路１０３１の初期値を格納すればよい。したがって、ＬＳＩテスタ１０２０において限られたメモリ資源にロードされるテストデータ量を削減することができる。
【０００５】
但し、ＢＩＳＴには、出力検証回路１０３２に対して不定値は入力されてはならないという制約がある。すなわち、出力応答に不定値は含まれてはならないという制約がある。不定値を含む出力応答が出力検証回路１０３２に入力されると、当該出力応答の圧縮内容は破壊されてしまい、試験不能となってしまうからである。なお、不定値とは、試験時に０又は１のいずれの値になるか分からない出力応答をいう。一般的に、ＬＳＩ内部のＲＡＭを含む順序回路素子は電源投入時には不定状態である。したがって、このような順序回路素子からの出力応答は、不定値となる。
【０００６】
そこで、不定値への対処方法の一つとして、不定値をマスクするための回路が設けられる場合がある。
【０００７】
図２は、不定マスク回路を含むＬＳＩの例を示す図である。図２中、図１と同一部分には同一符号を付し、その説明は省略する。
【０００８】
同図において、ＬＳＩ１０３０ａは、出力検証回路１０３２の入力側に、不定マスク回路１０３３を含む。
【０００９】
不定マスク回路１０３３は、出力応答に含まれる不定値を０又は１の固定値に修正することのよって不定値をマスクする。不定マスク回路１０３３によって不定値がマスクされることにより、出力検証回路１０３２への不定値の入力が回避される。
【００１０】
ここで、いずれの出力応答をマスクすべきかに関しては、テストデータに基づいてＬＳＩテスタ１０２０によって制御される。すなわち、いずれの出力応答をマスクすべきかを示す情報（以下、「マスク情報」という。）は、テストデータに格納される。したがって、マスク情報の増加は、テストデータのデータ量の増加を招く。そこで、マスク情報の情報量を削減も検討されている。例えば、特許文献１では、マスク情報は、擬似乱数生成回路によって試験実行時に生成される。したがって、テストデータに予めマスク情報が格納される必要はない。また、擬似乱数生成回路によって生成されるマスク情報に問題がなければ、マスク情報の情報量の分だけ、テストデータを削減することができる。
【００１１】
但し、マスク情報に擬似乱数が用いられる場合、必ずしも不定値となる出力応答がマスクされるとは限らない。また、故障値がマスクされてしまう可能性もある。故障値とは、ＬＳＩ１０３０の正常時と不良時とにおいて値が異なる出力応答をいう。故障値は、ＬＳＩ１０３０が正常であるのか又は不良であるのかを判定するために必要であるため、マスクされてはならない。
【００１２】
そこで、特許文献１では、擬似乱数に基づくマスク情報を補正するため、マスク情報の一部を反転させる回路（以下、「マスク情報の反転回路」という。）が用いられている。マスク情報の反転回路は、マスク情報において、不定値をマスクしていないビット、又は故障値をマスクしてしまうビットを反転させる。その結果、不定値のマスク漏れや、故障値のマスク等が回避される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−３２２４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
マスク情報の反転回路に対するマスク情報の反転命令は、テストデータに格納される。したがって、マスク情報の反転回数が多くなれば、テストデータ量を増加させてしまう。
【００１５】
そこで、一つの側面では、テストパターンに対する出力応答に適用されるマスク情報の反転回数を削減することのできる半導体集積回路、試験方法、情報処理装置、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【００１６】
一つの案では、半導体集積回路は、テストパターンが入力される複数のシフトレジスタと、前記テストパターンに応じた前記複数のシフトレジスタの出力応答に対するマスク情報として適用される擬似乱数を生成する生成部と、第一の制御信号の入力に応じ、該第一の制御信号が示す前記シフトレジスタに関して前記マスク情報を反転させる反転部と、前記擬似乱数の初期値を記憶する記憶部とを有し、前記生成部が生成する前記擬似乱数は、第二の制御信号の入力に応じて前記記憶部が記憶する前記初期値によって初期化される。
【発明の効果】
【００１７】
テストパターンに対する出力応答に適用されるマスク情報の反転回数を削減することができる。
【図面の簡単な説明】
【００１８】
【図１】ＢＩＳＴを説明するための図である。
【図２】不定マスク回路を含む集積回路の例を示す図である。
【図３】本発明の実施の形態におけるＬＳＩ試験の概要を説明するための図である。
【図４】本実施の形態におけるＬＳＩの構成例を示す図である。
【図５】不定マスク部の構成例を示す図である。
【図６】初期値記憶部及びマスク情報生成部の構成例を示す図である。
【図７】本発明の実施の形態におけるテストデータ生成装置のハードウェア構成例を示す図である。
【図８】本発明の実施の形態におけるテストデータ生成装置の機能構成例を示す図である。
【図９】テストデータの生成処理の処理手順の一例を説明するためのフローチャートである。
【図１０】シフト又はマスク情報の反転のための制御信号を示すデータ例を説明するための図である。
【図１１】マスク情報の反転の要否の判定を説明するための具体例を示す図である。
【図１２】マスク情報の反転のための制御データの具体例を示す図である。
【図１３】本実施の形態におけるＬＳＩテスタの機能構成例を示す図である。
【図１４】実際の試験時におけるマスク情報の反転の例を説明するための図である。
【図１５】マスク情報の初期値の生成処理の処理手順の一例を説明するためのフローチャートである。
【図１６】特定のフリップフロップ群の全てをマスク可能な初期値の探索方法の一例を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて本発明の実施の形態を説明する。図３は、本発明の実施の形態におけるＬＳＩ試験の概要を説明するための図である。
【００２０】
まず、テストデータ生成装置１０は、テストデータ５０を生成する（Ｓ１）。テストデータ５０は、試験対象の半導体集積回路（ＬＳＩ３０）に対して試験用に入力される制御信号を示す情報が入力順に配列されたデータである。また、テストデータ５０には、試験の実行によってＬＳＩ３０より出力される値に対する期待値等も含まれる。
【００２１】
生成されたテストデータ５０は、ＬＳＩテスタ２０に設定される（Ｓ２）。ＬＳＩテスタ２０は、設定されたテストデータ５０に基づいて、ＬＳＩ３０に対して制御信号を入力する（Ｓ３）。ＬＳＩテスタ２０は、制御信号の入力に応じてＬＳＩ３０より出力される値を、テストデータ５０に含まれている期待値と比較し、ＬＳＩ３０の製造不良を検出する（Ｓ４）。すなわち、出力される値が期待値と一致しない場合、ＬＳＩ３０は不良であると判定される。
【００２２】
なお、ＬＳＩテスタ２０は、例えば、一般的に市販されているＬＳＩテスタである。但し、コンピュータをＬＳＩテスタとして機能させるプログラムがインストールされた情報処理装置が、ＬＳＩテスタ２０として用いられてもよい。
【００２３】
図４は、本実施の形態におけるＬＳＩの構成例を示す図である。同図において、ＬＳＩ３０は、テストパターン生成部３１、複数のシフトレジスタのスキャンパスＳＰ、出力検証部３２、不定マスク部３３、及び初期値記憶部３４等を有する。
【００２４】
テストパターン生成部３１は、試験実行時において、スキャンパスＳＰに入力されるテストパターンとして、擬似乱数を生成（又は出力）する回路である。テストパターン生成部３１は、ＰＲＰＧ（Pseudo Random Pattern Generator）とも呼ばれる。テストパターンの入力により、各スキャンパスＳＰ（ソフトレジスタ）に含まれる各フリップフロップ（ＦＦ）には、テストパターンに応じた値が記録される。
【００２５】
各スキャンパスＳＰは、試験対象の回路の一部を構成する回路である。テストパターンが入力された後、クロック信号がＬＳＩ３０に印加されると、非図示の論理回路からのテストパターンに対する出力応答（出力値）が各フリップフロップに出力（記録）される。
【００２６】
不定マスク部３３は、各スキャンパスＳＰより出力される出力応答のうち、テストデータ５０においてマスク対象に指定されたスキャンパスＳＰの出力応答をマスクする回路である。マスクとは、出力応答を「０」又は「１」の固定値に修正することをいう。すなわち、不定マスク部３３によって、出力応答より不定値が除去される。マスク対象を示す情報（マスク情報）は、擬似乱数に基づいて生成される。不定マスク部３３は、擬似乱数に基づくマスク情報を補正するため、マスク情報の一部のビットを必要に応じて反転させる。マスク情報のビット反転（マスク情報の反転）は、テストデータ５０に基づいてＬＳＩテスタ２０より入力される制御信号に応じて実行される。すなわち、マスク情報の反転命令はテストデータ５０に含まれている。
【００２７】
出力検証部３２は、スキャンパスＳＰより出力され、不定マスク部３３によってマスクが施された（不定値が除去された）出力応答を圧縮する。圧縮された出力応答は、ＬＳＩテスタ２０に出力され、テストパターンに対する期待値と比較される。期待値は、予めテストデータ生成装置１０によって回路シミュレーションに基づいて生成され、テストデータ５０に格納される。当該回路シミュレーションでは、テストパターン生成部３１によって生成されるテストパターンと同じテストパターンが用いられる。すなわち、テストパターン生成部３１によって生成されるテストパターンは擬似乱数であるから、値の発生順に再現性が有る。したがって、回路シミュレーションにおいても、テストパターン生成部３１によって生成されるテストパターンと同じテストパターンを再現させることができる。当該テストパターンに応じた回路シミュレーションの出力応答が、期待値としてテストデータ５０に格納される。
【００２８】
初期値記憶部３４は、不定マスク部３３が生成する擬似乱数の初期値として、マスク情報の反転の回数が少なくなるような値を記憶する。当該初期値は、テストデータ生成装置１０によって探索（又は算出）され、テストデータ５０に格納される。マスク情報の反転の回数が少なくなるということは、テストデータ５０において、当該反転に関する命令が削減されることを意味する。すなわち、初期値記憶部３４が記憶する初期値によって、テストデータ５０の削減が可能となる。
【００２９】
不定マスク部３３について更に詳しく説明する。図５は、不定マスク部の構成例を示す図である。同図において、不定マスク部３３は、マスク情報生成部３３１、マスク反転部３３２、及びスキャンパスＳＰごとのＯＲ回路３３３等を含む。
【００３０】
マスク情報生成部３３１は、擬似乱数を生成する回路（ＰＲＰＧ）である。当該擬似乱数が、マスク情報である。マスク情報は、スキャンパスＳＰがＮ本であるとすると、Ｎビットの情報である。各ビットは、それぞれ一つのスキャンパスＳＰに対応する。マスク情報生成部３３１は、初期値記憶部３４が記憶する値を擬似乱数（マスク情報）の初期値とする。
【００３１】
各ＯＲ回路３３３は、それぞれが対応するスキャンパスＳＰからの出力応答（出力値）と、マスク反転部３３２からの出力値との論理和を出力する。したがって、マスク反転部３３２からの出力値が、「１」である場合、スキャンパスＳＰからの出力応答がいかなる値であっても、当該スキャンパスＳＰに関して出力検証部３２に入力される値は「１」となる（すなわち、マスクされる。）。
【００３２】
マスク反転部３３２は、スキャンパスＳＰごとに、フリップフロップ（ＦＦ）３３２１及びＥＸＯＲ回路３３２２等を含む。フリップフロップ３３２１３３２１には、「０」又は「１」が格納される。フリップフロップ３３２１に「０」が格納されているスキャンパスＳＰに関して、マスク情報生成部３３１から「０」が入力された場合、ＥＸＯＲ回路３３２２からは「０」が出力される。また、フリップフロップ３３２１に「０」が格納されているスキャンパスＳＰに関して、マスク情報生成部３３１から「１」が入力された場合、ＥＸＯＲ回路３３２２からは「１」が出力される。すなわち、フリップフロップ３３２１に「０」が記録されている状態では、マスク情報通りの値がマスク反転部３３２より出力される。
【００３３】
一方、フリップフロップ３３２１に「１」が格納されているスキャンパスＳＰに関して、マスク情報生成部３３１から「０」が入力された場合、ＥＸＯＲ回路３３２２からは「１」が出力される。また、フリップフロップ３３２１に「１」が格納されているスキャンパスＳＰに関して、マスク情報生成部３３１から「１」が入力された場合、ＥＸＯＲ回路３３２２からは「０」が出力される。すなわち、フリップフロップ３３２１に「１」が記録された状態では、マスク情報が反転された値が出力される。したがって、ＬＳＩテスタ２０は、テストデータ５０に基づいて、マスク情報を反転させたいスキャンパスＳＰのフリップフロップ３３２１に「１」を記憶させる。
【００３４】
続いて、初期値記憶部３４及びマスク情報生成部３３１の構成例について説明する。図６は、初期値記憶部及びマスク情報生成部の構成例を示す図である。同図には、ＬＳＩ３０のスキャンパスＳＰが４本である場合の構成例が示されている。
【００３５】
同図において、マスク情報生成部３３１は、スキャンパスＳＰの本数分のフリップフロップ（ＦＦ）３３１１ａ〜３３１１ｄ（以下、それぞれを区別しない場合「フリップフロプ３３１１」という。）を含む。したがって、同図のマスク情報生成部３３１によって生成されるマスク情報（擬似乱数）は、４ビットの情報となる。４個のフリップフロップ３３１１ａ〜３３１１ｄは、シフトレジスタを構成している。すなわち、各フリップフロップに記憶されている値が、シフトしていくようにカスケード接続されている。当該シフトレジスタにおいて、前段（入力側）のフリップフロップ３３１１と、後段（出力側）のフリップフロップ３３１１との間には、マルチプレクサ３３１２が接続されている。マルチプレクサ３３１２は、前段のフリップフロップ３３１１からの出力値、又は初期値記憶部３４のフリップフロップ３４１ａ〜３４１ｄからの出力値を選択的に出力する。いずれの出力値がマルチプレクサ３３１２より出力されるかは、マルチプレクサ３３１２に入力される選択信号に応じて選択される。
【００３６】
マスク情報生成部３３１は、また、ＥＸＯＲ回路３３１３を含む。ＥＸＯＲ回路３３１３は、フリップフロップ３３１１ａの出力値と、フリップフロップ３３１１ｄの出力値との排他的論理和を出力する。ＥＸＯＲ回路３３３の出力値は、フリップフロップ３３１１ａに入力される。
【００３７】
一方、初期値記憶部３４は、スキャンパスＳＰの本数分（４個）のフリップフロップ（ＦＦ）３４１ａ〜３４１ｄ（以下、それぞれを区別しない場合「フリップフロップ３４１」という。）を含む。フリップフロップ３４１ａ〜３４１ｄのそれぞれは、マスク情報生成部３３１の各マルチプレクサ３３１２に接続される。
【００３８】
図６を参照しつつ、初期値記憶部３４とマスク情報生成部３３１との動作について説明する。
【００３９】
初期値記憶部３４の各フリップフロップ３４１には、試験開始時にＬＳＩテスタ２０からの制御信号によって値が記録される。記録される値は、テストデータ５０に格納されている初期値である。同図の例において、当該初期値は、４ビットの情報である。その後、各フリップフロップ３４１の値は、変更されない。
【００４０】
各フリップフロップ３４１に対して初期値が記録された後、所定の時期に、ＬＳＩテスタ２０は、テストデータ５０に基づく制御信号をマスク情報記憶部３３１に入力する。すなわち、各フリップフロップ３４１の値をそれぞれに対応するフリップフロップ３３１１に入力させるための選択信号がマスク情報生成部３３１に入力される。当該選択信号に応じ、各マルチプレクサ３３１２は、それぞれの入力側のフリップフロップ３４１からの出力値を、それぞれの出力側のフリップフロップ３３１１に出力する。その結果、各フリップフロップ３４１の値は、マスク情報生成部３３１の各フリップフロップ３３１１に記録される。
【００４１】
マスク情報（擬似乱数）を変更する場合、ＬＳＩテスタ２０は、テストデータ５０に基づいて、マスク情報生成部３３１の各フリップフロップ３３１１の値をシフトさせるための選択信号をマスク情報生成部３３１に入力する。当該選択信号に応じ、各マルチプレクサ３３１２は、マスク情報生成部３３１において、前段のフリップフロップ３３１１からの出力値を後段のフリップフロップ３３１１に出力する。その結果、マスク情報生成部３３１に含まれる各フリップフロップ３３１１が示すマスク情報が更新される。
【００４２】
一つのテストパターンを利用した試験が完了すると、マスク情報生成部３３１の各フリップフロップ３３１１の値は、初期値記憶部３４の各フリップフロップ３４１の値によって再び初期化される。例えば、新たなテストパターンが各スキャンパスＳＰに入力された後、又は各スキャンパスＳＰのフリップフロップに記録された出力応答が出力される前に当該初期化が行われる。
【００４３】
したがって、各テストパターンの開始時において、マスク情報生成部３３１の各フリップフロップ３３１１の値（すなわち、マスク情報）は同じとなる。上記したように、初期値記憶部３４が記憶する初期値は、マスク情報の反転回数が少なくなるような値である。換言すれば、当該初期値は、マスク情報の反転回数が少なくなるようなマスク情報をマスク情報生成部３３１に生成させる値である。したがって、斯かる初期値によってマスク情報生成部３３１の各フリップフロップ３３１１の値がテストパターンごとに初期化されることにより、各テストパターンに関して、マスク情報の反転回数が少なくなるようなマスク情報が生成されるようになる。
【００４４】
続いて、テストデータ生成装置１０について説明する。図７は、本発明の実施の形態におけるテストデータ生成装置のハードウェア構成例を示す図である。図７のテストデータ生成装置１０は、それぞれバスBで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、及びＣＰＵ１０４等を有する。
【００４５】
テストデータ生成装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００４６】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってテストデータ生成装置１０に係る機能を実行する。
【００４７】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００４８】
また、テストデータ生成装置１０には、液晶ディスプレイ等の表示装置や、キーボード及びマウス等の入力装置が接続されてもよい。
【００４９】
図８は、本発明の実施の形態におけるテストデータ生成装置の機能構成例を示す図である。同図において、テストデータ生成装置１０は、設計データ記憶部１１、初期値探索部１２、初期値データ記憶部１３、及びテストデータ生成部１４等を有する。初期値探索部１２及びテストデータ生成部１４は、テストデータ生成装置１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理により実現される。設計データ記憶部１１及び初期値データ記憶部１３は、例えば、補助記憶装置１０２を用いて実現可能である。
【００５０】
設計データ記憶部１１は、ＬＳＩ３０の設計データを記憶する。設計データとは、ＬＳＩ３０を製造するためのデータである。本実施の形態の設計データには、回路シミュレーションを実行するために必要な情報が含まれていればよい。
【００５１】
初期値探索部１２は、マスク情報について、スキャンパスＳＰに含まれるフリップフロップの中で不定値が出力されるフリップフロップの一部又は全部の出力応答をマスク可能な初期値を探索（又は算出）する。初期値データ記憶部１３は、初期値探索部１２によって探索された初期値を記憶する。
【００５２】
テストデータ生成部１４は、設計データ及び初期値データ記憶部１３が記憶する初期値等を用いてテストデータ５０を生成する。
【００５３】
以下、テストデータ生成装置１０が実行する処理手順について説明する。図９は、テストデータの生成処理の処理手順の一例を説明するためのフローチャートである。
【００５４】
テストデータ生成部１４は、設計データに基づいて、仮想的なＬＳＩ３０をテストデータ生成装置１０の仮想空間に構築（又は生成）する。テストデータ生成部１４等は、仮想的なＬＳＩ３０を利用した回路シミュレーションにおいて、図９の処理手順を実行する。なお、同図の説明におけるＬＳＩ３０の構成要素は、回路シミュレーションによって構築される仮想的なものである。
【００５５】
ステップＳ１０１において、テストデータ生成部１４は、初期値データ記憶部１３に記録されている初期値を、初期値記憶部３４に設定する。すなわち、初期値記憶部３４の各フリップフロップに値が記録される。テストデータ生成部１４は、当該初期値を初期値記憶部３４に記録するための制御信号を示すデータをテストデータ５０に記録する。当該初期値の生成方法については、後述される。
【００５６】
続いて、テストデータ生成部１４は、初期値記憶部３４に記録されている初期値を、マスク情報生成部３３１の各フリップフロップ３３１１に転記（記録）する（Ｓ１０２）。テストデータ生成部１４は、当該初期値の転記を実行させるための制御信号を示すデータをテストデータ５０に記録する。
【００５７】
続いて、テストデータ生成部１４は、テストパターンの生成をテストパターン生成部３１に実行させ、当該テストパターンを各スキャンパスＳＰに入力する（Ｓ１０３）。当該ステップの実行によって、各スキャンパスＳＰに含まれる各フリップフロップに、テストパターンを構成する値（「１」又は「０」）が記録される。すなわち、当該ステップは、一つのテストパターンに関して、１列分（スキャンパスＳＰの本数分のビット数分）ずつ生成される擬似乱数が、各スキャンパスＳＰをシフトし、各スキャンパスＳＰに含まれる全てのフリップフロップに値が記録されるまでの処理が含まれる。なお、テストデータ生成部１４は、テストパターン生成部３１に擬似乱数を生成させると共にスキャンパスＳＰのシフトを示す制御信号等を示すデータを、それぞれの制御信号の発生順にテストデータ５０に記録する。
【００５８】
テストデータ生成部１４は、一つのテストパターンの入力が完了した状態で、クロック信号をＬＳＩ３０に印加する。その結果、スキャンパスＳＰの各フリップフロップには、テストパターンに対する出力応答（出力値）が出力（記録）される（Ｓ１０４）。
【００５９】
続いて、テストデータ生成部１４は、出力応答をシフトさせる（Ｓ１０５）。続いて、テストデータ生成部１４は、マスク情報の生成をマスク情報生成部３３１に実行させ、当該マスク情報を用いた出力応答のマスクを不定マスク部３３に実行させる（Ｓ１０６）。テストデータ生成部１４は、出力応答のシフト及びマスク情報生成部３３１に対するマスク情報の生成命令等を示す制御信号をテストデータ５０に記録する。なお、テストデータ５０の生成時の回路シミュレーションにおいては、マスク反転部３３２の各フリップフロップには「０」が記録されている。したがって、ここでは、マスク情報の反転は行われない。
【００６０】
続いて、テストデータ生成部１４は、不定マスク部３３から不定値が出力されているスキャンパスＳＰの有無を判定する（Ｓ１０７）。不定値が出力されているスキャンパスＳＰが有る場合（Ｓ１０７でＹｅｓ）、テストデータ生成部１４は、不定値が出力されているスキャンパスＳＰをマスクするための制御信号を示すデータを生成する（Ｓ１０８）。当該スキャンパスＳＰをマスクするための制御信号とは、マスク情報において当該スキャンパスＳＰに対応する部分を反転させる制御信号である。
【００６１】
不定値が出力されているスキャンパスＳＰが無い場合（Ｓ１０７でＮｏ）、又はステップＳ１０８に続いて、テストデータ生成部１４は、マスク前の出力応答とマスク情報とを比較し、故障値がマスクされているスキャンパスＳＰの有無を判定する（Ｓ１０９）。故障値とは、ＬＳＩ３０の正常時と不良時とにおいて値が異なる可能性の有る出力応答をいう。すなわち、故障値は、ＬＳＩ３０の不良を検出可能な出力応答であるといえる。
【００６２】
故障値がマスクされているスキャンパスＳＰが有る場合（Ｓ１０９でＹｅｓ）、テストデータ生成部１４は、故障値が出力されているスキャンパスＳＰのマスクを解除するための制御信号を示すデータを生成する（Ｓ１１０）。当該スキャンパスＳＰのマスクを解除するための制御信号とは、マスク情報において当該スキャンパスＳＰに対応する部分を反転させる制御信号である。
【００６３】
続いて、テストデータ生成部１４は、ステップＳ１０８又はＳ１１０において生成された、マスクを反転させるための制御信号を示すデータを、出力応答のシフトのタイミングに関連付けてテストデータ５０に記録する（Ｓ１１１）。なお、ステップＳ１０２以降は、予定されているテストパターンの数だけ繰り返される。この際、ステップＳ１０１は実行されないため、初期値記憶部３４の各フリップフロップ３４１の値は書き換えられない。一方、マスク情報生成部３３１の各フリップフロップ３３１１の値は、初期値記憶部３４の各フリップフロップ３４１の値によって初期化される（Ｓ１０２）。すなわち、複数のテストパターンにおいて、マスク情報生成部３３１の各フリップフロップ３３１１の初期値は同じとなる。
【００６４】
続いて、図９の処理によってテストデータ５０に記録される制御信号を示すデータのうち、スキャンパスＳＰ等のシフト又はマスク情報の反転のための制御信号を示すデータ例について説明する。
【００６５】
図１０は、シフト又はマスク情報の反転のための制御信号を示すデータ例を説明するための図である。同図のデータ例は、ＬＳＩ３０のスキャンパスＳＰが、１２８本である場合に対応する。
【００６６】
同図において、一つの行は、一つの制御信号を示すデータ（以下、「制御データ」という。）である。一つの制御データは、ＣＴＬ０とＣＴＬ１〜７とを含む８ビットの情報である。
【００６７】
ＣＴＬ０は、シフト用の項目である。すなわち、ＣＴＬ０の値が「０」の制御データは、ＣＴＬ１〜７の値に拘わらず、スキャンパスＳＰ、テストパターン生成部３１、マスク情報生成部３３１、及び出力検証部３２等のシフト命令を示す。ここで、テストパターン生成部３１又はマスク情報生成部３３１のシフトとは、擬似乱数（テストパターン又はマスク情報）の生成及び出力に相当する。
【００６８】
一方、ＣＴＬ０が「１」である場合において、ＣＴＬ１〜７は、マスク情報の反転用の項目であり、ＣＴＬ１〜７の７ビットによって、マスクを反転させるスキャンパスＳＰが示される。したがって、例えば、「１０００００００」は、マスク反転部３３２において１番目のスキャンパスＳＰに対応するフリップフロップ３３２１に「１」を記録することを示す。当該フリップフロップ３３２１に「１」が記録されることで、当該スキャンパスＳＰのマスク情報は反転する。すなわち、マスク情報において、当該スキャンパスＳＰがマスク対象となっていればマスクは解除され、マスク対象となっていなければ、マスクされる。
【００６９】
なお、図１０は、シフト又はマスク情報の反転のための制御データの一覧を示すものであり、必ずしも、図１０に示される全ての制御データがテストデータ５０に記録されるわけではない。
【００７０】
また、図１０では、スキャンパスＳＰが１２８本である場合の例を示したが、スキャンパスＳＰがＮ本である場合、シフト又はマスク情報の反転のための制御信号を示すデータのビット数は、１＋［ｌｏｇ2Ｎ］となる。
【００７１】
図９のステップＳ１０５以降について、具体例に基づいて説明する。図１１は、マスク情報の反転の要否の判定を説明するための具体例を示す図である。図１１中、図４、図５、又は図６と同一部分には同一符号を付している。なお、同図において、マスク情報生成部３３１については、便宜上、フリップフロップのみが示されている。また、初期値記憶部３４は、便宜上省略されている。
【００７２】
同図は、各スキャンパスＳＰの各フリップフロップに、テストパターンに応じた出力応答が出力された後（ステップＳ１０５実行後）の状態を示す。この状態において、スキャンパスＳＰ０からの出力は、不定値「Ｘ」であるとする。また、スキャンパスＳＰ１からの出力は、故障値「０／１」であるとする。更に、スキャンパスＳＰ２及びＳＰ３からの出力は、それぞれ固定値「１」であるとする。そして、マスク情報生成部３３１によって生成されたマスク情報は、スキャンパスＳＰ０、ＳＰ１、ＳＰ２、及びＳＰ３のそれぞれに関して、「０」、「１」、「０」、「１」であるとする。すなわち、スキャンパスＳＰ１及びＳＰ３からの出力がマスク対象とされている。
【００７３】
ここで、スキャンパスＳＰ０からの出力に関しては、不定値「Ｘ」であるにも拘わらずマスクされていない。また、スキャンパスＳＰ１からの出力は、故障値であり、マスクされてしまうと不良の検出が出来なくなくなってしまう。なお、スキャンパスＳＰ３からの出力に関しては、固定値である。固定値とは、不良の有無に拘わらず固定的な出力応答をいう。したがって、固定値の出力は、不良検出とは無関係なため、マスクされても問題は無い。なお、上記したように、テストデータ５０の生成時の回路シミュレーションにおいては、マスク反転部３３２の各フリップフロップ３３２１には「０」が記録されている。すなわち、いずれのスキャンパスＳＰに関しても、マスク情報の反転対象とされていない。
【００７４】
上記より明らかなように、図１１の状態では、スキャンパスＳＰ０の出力がマスクされ、スキャンパスＳＰ１の出力に対するマスクが解除される必要がある。すなわち、スキャンパスＳＰ０及びＳＰ３に関してマスク情報が反転される必要がある。
【００７５】
そこで、テストデータ生成部１４は、同図のシフト時に関して、スキャンパスＳＰ０及びＳＰ１のマスクを反転させる制御データをテストデータ５０に記録する。ここでテストデータ５０に記録される制御データは、例えば、図１２に示される通りとなる。
【００７６】
図１２は、テストデータ５０に記録されるマスク情報の反転のための制御データの具体例を示す図である。
【００７７】
同図において１行目の制御データの値（ＣＴＬ０〜７）は「１０００００００」である。したがって、１行目の制御データは、マスク反転部３３２においてスキャンパスＳＰ０に対応するフリップフロップに「１」を記録することを示す。また、２行目の制御データの値は、「１０００００１」である。したがって、２行目の制御データは、マスク反転部３３２においてスキャンパスＳＰ１に対応するフリップフロップに「１」を記録することを示す。
【００７８】
上記のように生成されるテストデータ５０を用いて、ＬＳＩテスタ２０が行う実際のＬＳＩ３０の試験について説明する。
【００７９】
図１３は、本実施の形態におけるＬＳＩテスタの機能構成例を示す図である。同図において、ＬＳＩテスタ２０は、テストデータ記憶部２１、及び試験実行部２２等を有する。
【００８０】
テストデータ記憶部２１は、テストデータ生成装置１０によって生成されるテストデータ５０を記憶する記憶装置である。試験実行部２２は、テストデータ記憶部２１が記憶するテストデータ５０を解釈して、ＬＳＩ３０に制御信号等の信号を入力することにより、ＬＳＩ３０の不良検出のための試験を行う。試験実行部２２は、また、出力検証部３２より出力される、圧縮された出力応答を期待値と比較することにより、ＬＳＩ３０の不良を検出する。
【００８１】
基本的に、試験実行部２２が実行する処理は、テストデータ生成部１４が生成したテストデータ５０に従ったものとなる。したがって、試験実行部２２が実行する処理手順は、図９においてテストデータ生成部１４が実行した処理手順と同様である。但し、実際の試験実行時にはマスク情報の反転が行われる点がテストデータ５０の生成時と異なる。
【００８２】
そこで、ここでは、マスク情報の反転について説明する。図１４は、実際の試験時におけるマスク情報の反転の例を説明するための図である。図１４中、図１１と同一部分には同一符号を付している。図１４は、図１２に示される制御データを含むテストデータ５０を用いた実際の試験時において、図１１において示したタイミングで実行される、マスク情報の反転の例を示す。
【００８３】
図１４において、マスク情報生成部３３１によって生成されたマスク情報は、スキャンパスＳＰ０、ＳＰ１、ＳＰ２、及びＳＰ３のそれぞれに関して、「０」、「１」、「０」、「１」であり、図１１と同じである。マスク情報生成部３３１によって生成される擬似乱数（マスク情報）の発生順（生成順）は、再現性が有るため、回路シミュレーション時と実際の試験時とにおいて、同じタイミングのマスク情報は一致するからである。
【００８４】
但し、図１４では、テストデータ５０に含まれる制御データ（図１２）に基づく制御信号が、ＬＳＩテスタ２０よりＬＳＩ３０に入力される。すなわち、マスク反転部３３２においてスキャンパスＳＰ０に対応するフリップフロップ３３２１と、スキャンパスＳＰ１に対応するフリップフロップとに「１」が記録される。したがって、スキャンパスＳＰ０及びＳＰ２に係るマスク情報は反転する。よって、スキャンパスＳＰ０からの出力は「１」となる。また、スキャンパスＳＰ１からの出力は故障値となる。その結果、出力検証部３２への不定値の入力は回避される。また、出力検証部３２に故障値を入力することができる。
【００８５】
図１２及び図１４等より明らかなように、マスク情報の反転のための制御データは、マスク情報の反転の回数に応じて増減する。すなわち、マスク情報の反転の回数が多ければ、当該制御データは増加し、マスク情報の反転の回数が少なければ、当該制御データは減少する。そして、当該制御データは、テストデータ５０に格納されるものである。したがって、当該制御データの増減は、テストデータ５０の増減に影響する。
【００８６】
他方において、スキャンパスＳＰに含まれる各フリップフロップに関して、不定値が出力される回数（不定値の出現頻度）は、一様ではなく、偏りがある。これは、不定値を出力する順序回路素子に偏りが有るからである。
【００８７】
そこで、テストデータ生成装置１０の初期値探索部１２は、不定値の出力箇所の遍在化という性質を利用し、マスク情報生成部３３１の初期値について、マスク情報の反転の回数が少なくなるような値を、例えば、図１５に示される処理手順によって生成する。
【００８８】
図１５は、マスク情報の初期値の生成処理の処理手順の一例を説明するためのフローチャートである。図１５の処理手順は、テストデータ５０の生成処理（図９）の実行前に実行されていればよい。
【００８９】
ステップＳ２０１において、初期値探索部１２は、ＬＳＩ３０の回路シミュレーションにおいて、各スキャンパスＳＰに含まれる各フリップフロップの中から、不定値が１回以上出力されるフリップフロップを抽出する。当該各フリップフロップに関して、不定値の出力回数は、ステップＳ２０１の前に実行される回路シミュレーションにおいて計数（カウント）されればよい。係数された回数は、各フリップフロップの識別子に関連付けてメモリ装置１０３又は補助記憶装置１０２に記録されていればよい。なお、ステップＳ２０１において抽出されたフリップフロップ群を、以下「フリップフロップ群ｇ１」という。
【００９０】
続いて、初期値探索部１２は、フリップフロップ群ｇ１の中から、不定値の出力回数の多い順に所定数のフリップフロップを抽出する（Ｓ２０２）。すなわち、不定値の出力回数が上位Ｎ（Ｎは０より大きい整数）番目までのフリップフロップが抽出される。ステップＳ２０２において抽出されたフリップフロップ群を、以下「フリップフロップ群ｇ２」という。
【００９１】
続いて、初期値探索部１２は、フリップフロップ群ｇ２に含まれる全てのフリップフロップをマスク可能な、マスク情報生成部３３１の初期値を算出する（Ｓ２０３）。斯かる初期値は、例えば、連立方程式を解くことで求める（又は探索する）ことができる。
【００９２】
図１６は、特定のフリップフロップ群の全てをマスク可能な初期値の探索方法の一例を説明するための図である。同図では、スキャンパスＳＰは４本であり、一つのスキャンパスＳＰは、４つのフリップフロップを含む例が示されている。ここでは、各スキャンパスＳＰの方向を行方向と呼び、スキャンパスＳＰと直行する方向を列方向と呼ぶ。したがって、同図には４行４列のフリップフロップが示されているといえる。行番号は、図面上側から順に１、２、３、４とする。列番号は、図面右側（出力検証部３２側）から順に、１、２、３、４とする。
【００９３】
まず、マスク情報生成部３３１の各フリップフロップ３３１１に対して初期値を示す変数が割り当てられる。スキャンパスＳＰは４本であるから、同図のマスク情報生成部３３１のフリップフロップ３３１１は４個である。同図では、フリップフロップ３３１１ａ、３３１１ｂ、３３１１ｃ、３３１１ｄの順に、「ａ」、「ｂ」、「ｃ」、「ｄ」が、初期値を示す変数として割り当てられている。
【００９４】
続いて、現在のマスク情報生成部３３１の各フリップフロップ３３１１の値が、当該フリップフロップ３３１１に対応するスキャンパスＳＰにおいて１列目のフリップフロップに割り当てられる。したがって、１列目のフリップフロップに関して、１行目から順に、「ａ」、「ｂ」、「ｃ」、「ｄ」が割り当てられる。
【００９５】
続いて、マスク情報生成部３３１のフリップフロップ３３１１に関してシフトが行われる。すなわち、初期値の次の擬似乱数が生成される。同図では、時計回りに各フリップフロップ３３１１の値がシフトされる。但し、フリップフロップ３３１１ａには、フリップフロップ３３１１ａとフリップフロップ３３１１ｄとの排他的論理和がＥＸＯＲ回路３３１３より出力される。その結果、マスク情報生成部３３１の各フリップフロップ３３１１の値は、フリップフロップ３３１１ａ、３３１１ｂ、３３１１ｃ、３３１１ｄの順に、「ａ＋ｄ」、「ａ」、「ｂ」、「ｄ」となる。なお、図１６において、排他的論理は、便宜上「＋」によって表現されている。例えば、「ａ＋ｄ」は、「ａ」と「ｄ」との排他的論理和を示す。
【００９６】
続いて、現在のマスク情報生成部３３１の各フリップフロップ３３１１の値が、当該フリップフロップ３３１１に対応するスキャンパスＳＰにおいて２列目のフリップフロップに割り当てられる。したがって、２列目のフリップフロップに関して、１行目から順に、「ａ＋ｄ」、「ｂ」、「ｃ」、「ｄ」が割り当てられる。
【００９７】
続いて、マスク情報生成部３３１のフリップフロップに関してシフトが行われる。その結果、マスク情報生成部３３１の各フリップフロップ３３１１の値は、フリップフロップ３３１１ａ、３３１１ｂ、３３１１ｃ、３３１１ｄの順に、「（ａ＋ｄ）＋ｃ」、「ａ＋ｄ」、「ａ」、「ｂ」となる。
【００９８】
続いて、現在のマスク情報生成部３３１の各フリップフロップ３３１１の値が、当該フリップフロップに対応するスキャンパスＳＰにおいて３列目のフリップフロップに割り当てられる。したがって、３列目のフリップフロップに関して、１行目から順に、「（ａ＋ｄ）＋ｃ」、「ａ＋ｄ」、「ａ」、「ｂ」が割り当てられる。
【００９９】
続いて、マスク情報生成部３３１のフリップフロップに関してシフトが行われる。その結果、マスク情報生成部３３１の各フリップフロップ３３１１の値は、フリップフロップ３３１１ａ、３３１１ｂ、３３１１ｃ、３３１１ｄの順に、「（（ａ＋ｄ）＋ｃ）＋ｂ」、「（ａ＋ｄ）＋ｃ」、「ａ＋ｄ」、「ａ」となる。
【０１００】
続いて、現在のマスク情報生成部３３１の各フリップフロップ３３１１の値が、当該フリップフロップに対応するスキャンパスＳＰにおいて４列目のフリップフロップに割り当てられる。したがって、４列目のフリップフロップに関して、１行目から順に、「（（ａ＋ｄ）＋ｃ）＋ｂ」、「（ａ＋ｄ）＋ｃ」、「ａ＋ｄ」、「ａ」が割り当てられる。
【０１０１】
各スキャンパスＳＰに含まれる全てのフリップフロップに対する値の割り当てが完了すると、フリップフロップ群ｇ２に含まれている各フリップフロップに割り当てられている値に関して連立方程式が解かれる。図１６では、フリップフロップ５１、フリップフロップ５２、フリップフロップ５３、及びフリップフロップ５４が、フリップフロップ群ｇ２に含まれるとする。この場合、フリップフロップ群ｇ２に含まれる全てのフリップフロプをマスク可能な初期値の条件は、以下の連立方程式によって表現される。
（（ａ＋ｄ）＋ｃ）＋ｂ＝１
ａ＋ｄ＝１
ｃ＝１
ａ＝１
当該連立方程式が解かれると、以下の解が得られる。
ａ＝１
ｂ＝１
ｃ＝１
ｄ＝０
図９のステップＳ２０３では、このようにして、フリップフロップ群ｇ２に含まれる全てのフリップフロップをマスク可能な初期値が算出される。すなわち、上記に示される解が、フリップフロップ群ｇ２に含まれる全てのフリップフロップをマスク可能な初期値である。なお、スキャンパスＳＰの本数が５本以上である場合、又はスキャンパスＳＰが５列以上のフリップフロップを含む場合も同様の方法で、初期値を探索することができる。
【０１０２】
ステップＳ２０３に続いて、初期値探索部１２は、フリップフロップ群ｇ２に含まれる全てのフリップフロップをマスク可能な初期値は存在するか否かを判定する。当該判定は、上記連立方程式の解の有無の判定に相当する。図１６の例では、連立方程式の解は得られた。したがって、ステップＳ２０５に進む。
【０１０３】
ステップＳ２０５において、初期値探索部１２は、得られた解を初期値候補としてメモリ装置１０３又は補助記憶装置１０２に記録する。後述より明らかなように、ステップＳ２０３以降は繰り返される。したがって、既に初期値候補が記録されている場合は、新たに得られた解によって初期値候補が更新（置換）される。なお、ここで、初期値が確定されないのは、フリップフロップ群ｇ２に含まれるフリップフロップよりも更に多くのフリップフロップのマスクが可能な初期値が存在する可能性があるからである。
【０１０４】
続いて、初期値探索部１２は、フリップフロップ群ｇ１に含まれるがフリップフロップ群ｇ２には含まれないフリップフロップの有無を判定する（Ｓ２０６）。すなわち、フリップフロップ群ｇ１の方がフリップフロップ群ｇ２に対してより多くのフリップフロップを含むか否かが判定される。
【０１０５】
該当するフリップフロップが有る場合（Ｓ２０６でＹｅｓ）、初期値探索部１２は、当該フリップフロップのうち、不定値が出力される回数が最多のフリップフロップをフリップフロップ群ｇ２に追加する（Ｓ２０７）。続いて、初期値探索部１２は、ステップＳ２０３以降を繰り返す。すなわち、新たに追加されたフリップフロップをも含むフリップフロップ群ｇ２の全てをマスク可能な初期値が探索される。
【０１０６】
フリップフロップ群ｇ１に含まれるがフリップフロップ群ｇ２には含まれないフリップフロップが無い場合（Ｓ２０６でＮｏ）、初期値探索部１２は、現在の初期値候補を初期値として初期値データ記憶部１３に記録する（Ｓ２０９）。
【０１０７】
一方、ステップＳ２０３において連立方程式の解が得られなかった場合（Ｓ２０４でＮｏ）、初期値探索部１２は、初期値候補がメモリ装置１０３又は補助記憶装置１０２に記録されているか否かを判定する（Ｓ２０８）。初期値候補が記録されている場合（Ｓ２０８でＹｅｓ）、初期値探索部１２は、現在の初期値候補を初期値として初期値データ記憶部１３に記録する（Ｓ２０９）。
【０１０８】
一方、初期値候補が記録されていない場合（Ｓ２０８でＮｏ）、初期値探索部１２は、フリップフロップ群ｇ２に２以上のフリップフロップが含まれているか否かを判定する（Ｓ２１０）。フリップフロップ群ｇ２に２以上のフリップフロップが含まれている場合（Ｓ２１０でＹｅｓ）、初期値探索部１２は、フリップフロップ群ｇ２より、不定値が得られる回数が最少のフリップフロップを除外して（Ｓ２１１）、ステップＳ２０３以降を繰り返す。すなわち、連立方程式の対象とされるフリップフロップが削減されて、連立方程式が解かれる。
【０１０９】
フリップフロップ群ｇ２に一つのフリップフロップしか含まれていない場合（Ｓ２１０でＮｏ）、初期値探索部１２は、初期値は記録せずに、初期値の探索を終了する。
【０１１０】
以上のように探索（又は算出）された初期値は、不定値が少なくとも一回は出力されるフリップフロップの中で可能な限り多数のフリップフロップを常にマスク可能なマスク情報（擬似乱数）を生成させる初期値である。したがって、本実施の形態によれば、不定値が少なくとも一回は出力されるフリップフロップの一部又は全部を常にマスク可能なマスク情報を生成させる初期値が、テストパターンごとにマスク情報生成部３３１に設定される。その結果、当該フリップフロップの不定値に関してマスク情報を反転させるための制御データは不要となる。よって、不定値に関してマスク情報を反転させるための制御データを削減することができ、ひいては、テストデータ５０のデータ量を削減することができる。
【０１１１】
なお、不定値が出力される割合が５割以下のフリップフロップがマスクされても制御データの削減に寄与できるのは、故障値でない限りマスクが行われても試験結果に対して不都合は無いからである。例えば、１０通りのテストパターンにおいて、不定値の出力回数が１回であり、残りの９回は固定値が出力されるフリップフロップの出力応答に関して常にマスクされたとしても、固定値の９回分についても、マスク情報は反転される必要はない。したがって、この場合、不定値が出力される１回分について、マスク情報の反転回数を削減することができる。
【０１１２】
なお、本実施の形態において、ＬＳＩ３０のマスク情報生成部３３１は、生成部の一例である。また、マスク反転部３３２は、反転部の一例である。また、初期値記憶部３４は、記憶部の一例である。また、テストデータ生成装置１０の初期値探索部１２は、探索部の一例である。
【０１１３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１１４】
以上の説明に関し、更に以下の項を開示する。
（付記１）
テストパターンが入力される複数のシフトレジスタと、
前記テストパターンに応じた前記複数のシフトレジスタの出力応答に対するマスク情報として適用される擬似乱数を生成する生成部と、
第一の制御信号の入力に応じ、該第一の制御信号が示す前記シフトレジスタに関して前記マスク情報を反転させる反転部と、
前記擬似乱数の初期値を記憶する記憶部とを有し、
前記生成部が生成する前記擬似乱数は、第二の制御信号の入力に応じて前記記憶部が記憶する前記初期値によって初期化される半導体集積回路。
（付記２）
前記記憶部は、前記シフトレジスタに含まれるフリップフロップのうち、前記テストパターンに応じて不定値が出力されるフリップフロップの一部又は全部に係る出力応答をマスクする前記擬似乱数を前記生成部に生成させる前記初期値を記憶する付記１記載の半導体集積回路。
（付記３）
付記１又は２記載の半導体集積回路の試験装置が、
テストデータに基づいて、前記第一の制御信号を前記半導体集積回路に入力し、
前記テストパターンごとに前記第二の制御信号を前記半導体集積回路に入力して、前記擬似乱数を初期化させる試験方法。
（付記４）
付記１又は２記載のシフトレジスタに含まれるフリップフロップの中で、不定値が出力されるフリップフロップの一部又は全部の出力応答をマスク可能な前記擬似乱数の初期値を探索する探索部を有する情報処理装置。
（付記５）
前記探索部は、不定値が出力される前記フリップフロップの全部又は該フリップフロップの中で不定値の出力回数が上位である一部の出力応答をマスク可能な前記擬似乱数の初期値を探索する付記４記載の情報処理装置。
（付記６）
付記１又は２記載のシフトレジスタに含まれるフリップフロップの中で、不定値が出力されるフリップフロップの一部又は全部の出力応答をマスク可能な前記擬似乱数の初期値を探索する処理をコンピュータに実行させるプログラム。
（付記７）
前記探索する処理は、不定値が出力される前記フリップフロップの全部又は該フリップフロップの中で不定値の出力回数が上位である一部の出力応答をマスク可能な前記擬似乱数の初期値を探索する付記７記載のプログラム。
【符号の説明】
【０１１５】
１０          テストデータ生成装置
１１          設計データ記憶部
１２          初期値探索部
１３          初期値データ記憶部
１４          テストデータ生成部
２０          ＬＳＩテスタ
２１          テストデータ記憶部
２２          試験実行部
３０          ＬＳＩ
３１          テストパターン生成部
３２          出力検証部
３３          不定マスク部
３４          初期値記憶部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
３３１        マスク情報生成部
３３２        マスク反転部
３３３        ＯＲ回路
３３１２        マルチプレクサ
３３１３        ＥＸＯＲ回路
３３２２        ＥＸＯＲ回路
Ｂ            バス
【図１】
2012198065.tif 000003
【図２】
2012198065.tif 000004
【図３】
2012198065.tif 000005
【図４】
2012198065.tif 000006
【図５】
2012198065.tif 000007
【図６】
2012198065.tif 000008
【図７】
2012198065.tif 000009
【図８】
2012198065.tif 000010
【図９】
2012198065.tif 000011
【図１０】
2012198065.tif 000012
【図１１】
2012198065.tif 000013
【図１２】
2012198065.tif 000014
【図１３】
2012198065.tif 000015
【図１４】
2012198065.tif 000016
【図１５】
2012198065.tif 000017
【図１６】
2012198065.tif 000018