(57)【要約】【課題】テストパターン格納用メモリのメモリ最大長よりもパターン数の大きなテストパターンに基づく被テスト回路に対する検証処理に要する処理時間の短縮を、テスト装置の負荷増大を伴うことなく行う。【解決手段】テストパターンロード装置３０で、実行すべきテストパターンを、テストパターン格納用メモリ１１に格納可能なサイズに分割してこれをテストパターン格納用メモリ１１の水平方向並列に格納すると共に、その格納位置を表すテストプログラム情報及び分割数等の分割情報を検証処理部１３に通知する。検証処理部１３では、分割情報からテストパターン格納用メモリ１１に格納された分割テストパターン数及びその格納位置を認識し、テストパターン格納用メモリ１１からの読出領域を読出領域切替回路１２によって順次切り替えて各テストベクタを読み出し、これにしたがって被テスト回路２０に対する検証を行う。【選択図】          図１
2005043117.tif 000002
【特許請求の範囲】
【請求項１】
複数のテストベクタで構成されるテストパターンをテストパターン格納領域に格納し、当該テストパターン格納領域に格納されたテストベクタを順次読み出してこのテストベクタにしたがって検証手段により被テスト回路の検証を行うようにしたテスト方法において、
前記テストパターンを、当該テストパターン全体を前記テストパターン格納領域に格納可能なテストベクタ数で構成されるテストパターンに分割して前記テストパターン格納領域に並列に格納し、
分割したテストパターンの前記テストパターン格納領域への格納状況に応じて、前記テストパターン格納領域からの読出領域を切り替えて前記テストパターンの読出を行うようにしたことを特徴とするテスト方法。
【請求項２】
複数のテストベクタで構成されるテストパターンが格納されるテストパターン格納領域と、このテストパターン格納領域から前記テストベクタを順次読み出しこのテストベクタにしたがって被テスト回路の検証を行う検証手段と、を備えたテスト装置において、
前記テストパターンを、当該テストパターン全体を前記テストパターン格納領域に格納可能なテストベクタ数で構成されるテストパターンに分割して前記テストパターン格納領域に並列に格納する分割格納手段と、
当該分割格納手段により分割されたテストパターンの前記テストパターン格納領域への格納状況に応じて前記テストパターン格納領域からの前記テストパターンの読出領域を切り替える読出領域切替手段と、を備えることを特徴とするテスト装置。
【請求項３】
前記分割格納手段は、前記テストパターン格納領域のメモリサイズと、前記テストパターンのパターンサイズとに応じて、前記テストパターンの分割数を特定する分割数特定手段を備え、前記テストパターンを、前記分割数特性手段で特定した分割数に分割するようになっていることを特徴とする請求項２記載のテスト装置。
【請求項４】
前記テストパターンを分割した結果得られた複数の分割テストパターンのうち連続する分割テストパターン間に、これら間で前記検証を継続して行うための調整用のテストベクタを付加する調整用テストベクタ付加手段を備えることを特徴とする請求項２又は３記載のテスト装置。
【請求項５】
前記調整用テストベクタ付加手段は、連続する分割テストパターンのうち、先の分割テストパターンの最終のテストベクタの次に、前記調整用のテストベクタを付加するようになっていることを特徴とする請求項４記載のテスト装置。
【請求項６】
前記調整用テストベクタ付加手段は、連続する分割テストパターンのうち、後続の分割テストパターンの先頭のテストベクタの前にも、前記調整用のテストベクタを付加するようになっていることを特徴とする請求項５記載のテスト装置。
【請求項７】
前記分割テストパターンを構成するテストベクタに、当該テストベクタが、前記分割テストパターンの最終に位置するテストベクタであるかどうかを識別するための識別情報を付加する識別情報付加手段を備え、
前記読出領域切替手段は、前記識別情報に基づき前記分割テストパターンの最終に位置するテストベクタを検出したとき前記テストパターン格納領域の読出領域を切り替えるようになっていることを特徴とする請求項２乃至６の何れかに記載のテスト装置。
【請求項８】
前記読出領域切替手段は、前記テストパターン格納領域の前記読出方向と直交する方向のアドレスのうち、少なくとも前記テストパターン格納領域に格納された分割テストパターンに相当するアドレスのデータを読み込み可能に形成され、前記テストパターン格納領域に格納された分割テストパターンに相当するアドレス単位で、読み込みアドレスを切り替えるようになっていることを特徴とする請求項２乃至７の何れかに記載のテスト装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体デジタル回路等を、スキャンチェーンを用いてテストするようにしたテスト方法及びテスト装置に関する。
【０００２】
【従来の技術】
従来、組み合わせ回路等のテストを行う方法として、スキャンパステスト手法が知られている。
このスキャンパステスト手法は、複雑なデジタル回路の故障検出率を向上させることを目的として考案されたテスト手法である。被テスト回路としてのデジタル回路は、これが内蔵するフリップフロップをスキャンパスと呼ばれるシフトレジスタで構成している。そして、被テスト回路の外部からスキャンパスを構成するフリップフロップ（以下、スキャンパスフリップフロップともいう。）へ特定の値を供給するシフト動作と、被テスト回路を構成する組み合わせ回路からスキャンフリップフロップへ繋がっている値をスキャンフリップフロップに取り込む動作と、さらに、スキャンフリップフロップから、被テスト回路の外部へスキャンフリップフロップの保持していた値を出力するシフト動作と、を繰り返して行うものである。
【０００３】
この結果、内蔵するスキャンフリップフロップへ値を設定する動作と、組み合わせ回路の出力をスキャンフリップフロップに取り込む動作と、スキャンフリップフロップの値を外部へ取り出す動作とが行われ、取り出したスキャンフリップフロップの値と、予め設定されたその期待値とを照合することによって、被テスト回路の検証を行うようになっている。
【０００４】
設計段階において、前記スキャンパスからなるスキャンパス回路を作成する手段としては、テスト合成ツールを適用する方法が最も一般的である。このテスト合成ツールは、スキャンパス回路が組み込まれていない順序回路に含まれるフリップフロップをスキャンパス用のフリップフロップに置き換え、スキャンパス動作を行うことができるようにスキャン動作用の制御信号を組み込む機能を有している。
【０００５】
また、スキャンパステストに使用するテストパターンを生成する手段として、ＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｅｒ）ツールが一般的に利用され、テスト合成ツールによって生成したスキャンパス回路を元に、高故障検出率で且つ少ないパターン数で的確に検証を行うことの可能なテストパターンを自動的に生成するようになっている。
【０００６】
そして、このようにしてＡＴＰＧツールによって生成されたテストパターンを用いて、論理シミュレータによって、設計データの最終的な確認、特にタイミングに関するものの確認を行ったり、或いは、実際にＩＣを製造した後に、自動テスト装置（以後、テスタともいう。）を用いて、その品質チェックを行ったりしている。
【０００７】
ところで、前記テスト装置では、前記ＡＴＰＧツール等によって生成されたテストパターンを、一旦テストパターン格納用のメモリに格納した後、ここから順次読み出してテストを行うようになっている。
近年の、被テスト回路としてのＩＣの高集積化、高機能化が進むにつれて、そのテストパターンもより長大なものになっている。
【０００８】
このため、例えば図１７に示すように、実行すべきテストパターンのパターン数Ｄ１が、前記テストパターン格納用メモリの垂直方向のメモリサイズであるメモリ最大長Ｄ２を超える場合には、前記テストパターン格納用メモリのメモリ最大長Ｄ２を考慮し、実行すべきテストパターンを分割してパターン数の短い複数のテストパターンに分割し、分割したテストパターン（以後、分割テストパターンという。）のうち、まず、分割前のテストパターンの先頭部分に相当する分割テストパターンをテストパターン格納用メモリに格納して、これにしたがって被テスト回路の検証を行い、検証が終了したならば、分割前のテストパターンにおいて、先に検証を行った分割テストパターンに続く部分に相当する分割テストパターンを前記テストパターン格納用メモリに格納してこれにしたがって検証を行う。この処理を繰り返し行い、分割テストパターンをテストパターン格納用メモリに格納し、これにしたがって検証を行うことで、一連のテストパターンに基づいた検証を行うようにしている。
【０００９】
つまり、一連のテストパターンを実行するに当たり、その一部である分割テストパターンを前記テストパターン格納用メモリに格納する処理と、この格納した分割テストパターンにしたがって被テスト回路に対する検証を行う処理とを繰り返し行うことになる。このため、一連のテストパターンを一度にテストパターン格納用メモリへ書き込む場合に比較して、より手間がかかることになり、テスト全体に要する処理時間が増加するという問題がある。また、分割テストパターン単位で検証を行うことは、すなわち、一の検証が終了した時点で、被テスト回路に対する検証が一旦終了する状態となるため、一のテストパターンを実行するためには、複数回テストパターンを実行する場合と同等となり、使い勝手が悪いという問題もある。
【００１０】
そこで、これを回避するために、データの圧縮技術を用い、一連のテストパターンのテストパターン長そのものを短くして、テストパターン全体を一度にテストパターン格納用メモリに格納するようにする方法等も提案されている（例えば、特許文献１）。
【００１１】
【特許文献１】
特開２００２−３１１１１１号公報
【００１２】
【発明が解決しようとする課題】
前述のように、テストパターンを圧縮し、テストパターン長そのものを短くする方法によれば、テストパターン長が、前記テストパターン格納用メモリの垂直方向のメモリサイズよりも大きい場合でも、テストパターン格納用メモリへの一度の書き込みで、一連のテストパターンを全てテストパターン格納用メモリに格納することができる。
【００１３】
しかしながら、このように、テストパターンを圧縮した場合、このテストパターンにしたがって、テストを行う際には、圧縮されたテストパターンを解凍する必要がある。このため、テスト装置でこれを解凍する分、テストに要する所要時間が長くなるという問題があり、また、解凍を行う分、テスト装置の処理負荷が大きくなり、また、圧縮もテスト装置側で行う場合には、さらに処理負荷が大きくなるという問題がある。
そこで、この発明は上記従来の未解決の問題点に着目してなされたものであり、処理負荷の増大を伴うことなく、テストパターンを用いてのデジタル回路の検証作業に要する処理時間の短縮を図ることの可能なテスト方法及びこれを用いたテスト装置を提供することを目的としている。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１に係るテスト方法は、複数のテストベクタで構成されるテストパターンをテストパターン格納領域に格納し、当該テストパターン格納領域に格納されたテストベクタを順次読み出してこのテストベクタにしたがって検証手段により被テスト回路の検証を行うようにしたテスト方法において、前記テストパターンを、当該テストパターン全体を前記テストパターン格納領域に格納可能なテストベクタ数で構成されるテストパターンに分割して前記テストパターン格納領域に並列に格納し、分割したテストパターンの前記テストパターン格納領域への格納状況に応じて、前記テストパターン格納領域からの読出領域を切り替えて前記テストパターンの読出を行うようにしたことを特徴としている。
【００１５】
この請求項１に係る発明では、例えば、テストパターンを構成するテストベクタの数、つまりパターン数が、前記テストパターン格納領域の垂直方向メモリサイズよりも大きい場合には、テストパターンは、前記テストパターン格納領域の垂直方向メモリサイズ内に収まるテストベクタの数で構成されるテストパターンに分割されてテストパターン格納領域に格納され、このとき、水平方向に並列に格納される。ここで、前記テストパターン全体を前記テストパターン格納領域に格納可能なサイズに分割するようにしているから、分割されたテストパターンは、全てテストパターン格納領域に格納されることになる。
【００１６】
したがって、実行すべきテストパターンは全てテストパターン格納領域に格納されているから、分割されたテストパターンが格納されている順に、順次読出領域を水平方向に切り替えてテストパターンを構成するテストベクタを順次読み出すことによって、結果的に、テストパターンを構成するテストベクタを順次読み出したことと同等となる。よって、読み出したテストベクタにしたがって、被テスト回路に対する検証を行うことで、テストパターン格納領域の垂直方向のメモリサイズよりもパターン数が多いテストパターンであっても、テストパターン格納用メモリへの一度の書き込みで、テストパターン全体を実行することが可能となる。したがって、テストパターン格納用メモリへの書き込み回数の削減を図ることができ、その分、被テスト回路に対する検証に要する全体の所要時間の短縮を図ることが可能となる。
【００１７】
また、請求項２に係るテスト装置は、複数のテストベクタで構成されるテストパターンが格納されるテストパターン格納領域と、このテストパターン格納領域から前記テストベクタを順次読み出しこのテストベクタにしたがって被テスト回路の検証を行う検証手段と、を備えたテスト装置において、前記テストパターンを、当該テストパターン全体を前記テストパターン格納領域に格納可能なテストベクタ数で構成されるテストパターンに分割して前記テストパターン格納領域に並列に格納する分割格納手段と、当該分割格納手段により分割されたテストパターンの前記テストパターン格納領域への格納状況に応じて前記テストパターン格納領域からの前記テストパターンの読出領域を切り替える読出領域切替手段と、を備えることを特徴としている。
【００１８】
この請求項２に係る発明では、例えば、テストパターンを構成するテストベクタの数、つまりパターン数が、前記テストパターン格納領域の垂直方向メモリサイズよりも大きい場合には、テストパターンは、分割格納手段によって、前記テストパターン格納領域の垂直方向メモリサイズ内に収まるテストベクタ数のテストパターンに分割されて前記テストパターン格納領域に格納され、このとき、テストパターン格納領域の水平方向に並列に格納される。
ここで、分割格納手段では、前記テストパターンを、このテストパターン全体を前記テストパターン格納領域に格納可能なサイズに分割するようにしているから、分割されたテストパターンは、全てテストパターン格納領域に格納されることになる。
【００１９】
したがって、実行すべきテストパターンは全てテストパターン格納領域に格納されているから、分割されたテストパターンが格納されている順に、読出領域切替手段によって、テストパターン格納領域からの読出領域を順次水平方向に切り替え、切り替えられた読出領域からテストベクタを順に読み出すことによって結果的に、テストパターンを構成するテストベクタが順次読み出された場合と同等となる。よって、読み出したテストパターンにしたがって、被テスト回路に対する検証を行うことで、テストパターン格納領域の垂直方向のメモリサイズよりもパターン数が多いテストパターンであっても、テストパターン格納用メモリへの一度の書き込みで、テストパターン全体を実行することが可能となる。したがって、テストパターン格納用メモリへの書き込み回数の削減を図ることができその分、被テスト回路に対する検証に要する全体の所要時間の短縮を図ることが可能となる。
【００２０】
また、請求項３に係るテスト装置は、前記分割格納手段は、前記テストパターン格納領域のメモリサイズと、前記テストパターンのパターンサイズとに応じて、前記テストパターンの分割数を特定する分割数特定手段を備え、前記テストパターンを、前記分割数特性手段で特定した分割数に分割するようになっていることを特徴としている。
【００２１】
この請求項３に係る発明では、テストパターン格納領域のメモリサイズと、テストパターンのパターンサイズとに応じて、テストパターン全体をテストパターン格納領域に格納可能な分割数を、分割数特性手段によって特定し、テストパターンを、この特定した分割数に分割する。このとき、テストパターン格納領域のメモリサイズと、実行すべきテストパターンのパターンサイズとに基づいて、分割数を特定するようにしているから、テストパターン全体をテストパターンに格納領域に格納することの可能な分割数を容易的確に検出することが可能となる。
【００２２】
また、請求項４に係るテスト装置は、前記テストパターンを分割した結果得られた複数の分割テストパターンのうち連続する分割テストパターン間に、これら間で前記検証を継続して行うための調整用のテストベクタを付加する調整用テストベクタ付加手段を備えることを特徴としている。
また、請求項５に係るテスト装置は、前記調整用テストベクタ付加手段は、連続する分割テストパターンのうち、先の分割テストパターンの最終のテストベクタの次に、前記調整用のテストベクタを付加するようになっていることを特徴としている。
また、請求項６に係るテスト装置は、前記調整用テストベクタ付加手段は、連続する分割テストパターンのうち、後続の分割テストパターンの先頭のテストベクタの前にも、前記調整用のテストベクタを付加するようになっていることを特徴としている。
【００２３】
この請求項４〜６に係る発明では、テストパターンを分割して得られた複数の分割テストパターンのうち、連続する分割テストパターン間に、これら連続する分割テストパターン間でテストベクタにしたがっての検証を継続して行うための調整用のテストベクタが付加されている。ここで、分割テストパターンが切り替わるときには、テストパターン格納領域から読み出す領域を切り替える等といった処理を行う必要があるため、テストベクタに基づく被テスト回路に対する検証タイミングがずれる場合があり、このため、被テスト回路の状態が変化する等によって、分割テストパターンの切り替わり時に継続して検証を行うことができない場合がある。しかしながら、連続する分割テストパターン間に、これら間での検証を継続して行うための制御用のテストベクタを介挿するようにしたから、分割テストパターンの切り替わり時であっても継続して検証を行うことが可能となる。
【００２４】
また、前記調整用のテストベクタを、連続する二つの分割テストパターンのうちの先の分割テストパターンの最終テストベクタの次に付加し、最終のテストベクタに基づくテスト信号を出力したときの被テスト回路の状態を維持させるための調整用のテストベクタを付加することで、連続する分割テストパターンを継続して実行させることが可能となる。
【００２５】
また、さらに、前記調整用のテストベクタを、連続する二つの分割テストパターンのうちの後続の分割テストパターンの先頭のテストベクタの前に付加している。ここで、検証手段によっては、テストベクタの読出方向先頭アドレスのテストベクタについては照合を行わないように構成されている場合もあるが、後続の分割テストパターンの先頭のテストベクタの前に、これ以前の被テスト回路の状態を維持し且つ照合を行わないための調整用のテストベクタを付加することで、テストベクタの読出方向先頭アドレスのテストベクタについては、照合が行われず、また、これ以前の被テスト回路の状態が維持されるから、検証手段のテストベクタの読出方向先頭アドレスのテストベクタに対する扱いに関わらず、連続する分割テストパターンを継続して実行させることが可能となる。
【００２６】
また、請求項７に係るテスト装置は、前記分割テストパターンを構成するテストベクタに、当該テストベクタが、前記分割テストパターンの最終に位置するテストベクタであるかどうかを識別するための識別情報を付加する識別情報付加手段を備え、前記読出領域切替手段は、前記識別情報に基づき前記分割テストパターンの最終に位置するテストベクタを検出したとき前記テストパターン格納領域の読出領域を切り替えるようになっていることを特徴としている。
【００２７】
この請求項７に係る発明では、各テストベクタには、識別情報が付加されているから、テストベクタに付加されている識別情報を参照し、分割テストパターンの最終に位置するテストベクタであるとき、テストパターン格納領域の読出領域を切り替えることで、分割テストパターンの最終に位置するテストベクタの読み出しが終了した時点、つまり、一つの分割テストパターンの読出が終了した時点で、読出領域の切り替えが行われることになる。
【００２８】
さらに、請求項８に係るテスト装置は、前記読出領域切替手段は、前記テストパターン格納領域の前記読出方向と直交する方向のアドレスのうち、少なくとも前記テストパターン格納領域に格納された分割テストパターンに相当するアドレスのデータを読み込み可能に形成され、前記テストパターン格納領域に格納された分割テストパターンに相当するアドレス単位で、読み込みアドレスを切り替えるようになっていることを特徴としている。
【００２９】
この請求項８に係る発明では、読出領域切替手段は、テストパターン格納領域の読出方向と直交する方向のアドレスのうち、少なくともテストパターン格納領域に格納された分割テストパターンに相当するアドレスのデータを読み込み可能に形成されている。そして、テストパターン格納領域に格納された分割テストパターンに相当するアドレス単位で、読み込みアドレスが切り替えられるから、読出対象の分割テストパターン単位で、テストベクタを読み出すことが可能となる。
【００３０】
【発明の実施の形態】
以下に、本発明の実施の形態を説明する。
図１は、本発明におけるテスト装置の一例を示す概略構成図であって、設計段階におけるロジック回路の検証を行う、論理シミュレータに適用したものである。図１において、１０は論理シミュレータとしてのテスト装置、２０はテスト対象としての設計段階の被テスト回路（ＤＵＴ）、３０は、ＡＴＰＧツール等で生成されたテストパターンを所定サイズに分割し、この分割したテストパターン（以後、分割テストパターンという。）を前記テスト装置１０の所定の記憶領域に格納するテストパターンロード装置である。
【００３１】
前記テスト装置１０は、テストパターンを格納するためのテストパターン格納用メモリ１１と、当該テストパターン格納用メモリ１１に格納されたテストパターンを読み出す領域を、分割テストパターン単位で切り替える読出領域切替回路１２と、当該読出領域切替回路１２で選択された領域からテストパターンを順次読み出し、これに基づいて公知の手順で、被テスト回路２０の検証を行う検証処理部１３とを備えている。
【００３２】
前記読出領域切替回路１２は、例えば、マルチプレクサ或いはリレーマトリクス等で構成され、テストパターン格納用メモリ１１の水平方向アドレスに対応して設けられた、複数のチャネルからのデータを入力可能に形成され、前記検証処理部１３から通知される参照パターン情報で特定される、チャネルからのデータを選択し、そのデータを前記検証処理部１３に出力する。
【００３３】
この検証処理部１３は、前記テストパターンロード装置３０から、テストパターン格納用メモリ１１へのテストパターンの書き込み位置に相当するチャネルを特定するテストプログラム情報や、テストパターン格納用メモリ１１に書き込まれた分割テストパターンの数等の分割情報を入力し、この分割情報に基づき、テストパターン格納用メモリ１１における各分割テストパターンの格納位置を認識し、これに基づいて、前記参照パターン情報を生成する。
【００３４】
そして、検証処理部１３では、テストパターンを構成する各テストベクタに付加された制御情報に基づいて、分割テストパターンの最終行を読み出したかどうかを判定し、最終行を読み出したと判定されるとき前記参照パターン情報を更新する。
さらに、検証処理部１３では、読出領域切替回路１２を介して読み出されたテストベクタにしたがって、公知の手順で、被テスト回路２０に対してテスト信号を出力し、これに対する応答として出力された信号と、テストベクタで指定されている出力期待値とを照合することによって被テスト回路２０の検証を行う。
【００３５】
一方、前記テストパターンロード装置３０は、例えば、マイクロコンピュータ等で構成され、前記テスト装置１０のテストパターン格納用メモリ１１の垂直方向及び水平方向のメモリサイズ情報及び最小分割数情報を格納するための入力装置３１と、前記テストパターンに対する分割処理が処理不要或いは処理不可等のために行われなかったこと等のエラー情報を利用者に通知するための表示装置３２とを備えている。なお、前記テストパターン格納用メモリ１１のメモリサイズ情報は、予め所定の記憶領域に格納しておき、ここから読み出すようにしてもよい。
【００３６】
ここで、前記最小分割数情報は、前記テストパターンを分割する際の最小分割数を指定する情報である。この最小分割数は、テスト装置１０の利用者によって設定され、前記テスト装置１０のテストパターン格納用メモリ１１のメモリサイズと、実行すべきテストパターンのサイズ（パターン幅、パターン数）とに基づいて、前記テスト装置１０の処理速度や読出領域切替回路１２のサイズ等に応じて、最適なテストコストとなるように設定される。
【００３７】
そして、テストパターンロード装置３０では、前記テストパターン格納用メモリ１１のメモリサイズ及び最小分割数情報と、実行すべきテストパターンのパターン数及びそのパターン幅に基づいて、前記テストパターンを前記テストパターン格納用メモリ１１に格納可能な大きさに分割し、得られた分割テストパターンを前記テストパターン格納用メモリ１１に格納する。このとき、後述の図６に示すように、例えば、前記テストパターンの先頭に相当する分割テストパターンから順に、前記テストパターン格納用メモリ１１の左側から水平方向に並列に格納する。
【００３８】
図２は、テストパターンロード装置３０の処理手順の一例を示すフローチャートである。
このテストパターンロード装置３０では、まず、ステップＳ１で前記入力装置３１で入力された、テストパターンを格納するテストパターン格納用メモリ１１のメモリサイズ、つまり、水平方向の格納可能なメモリサイズであるメモリ最大幅及び垂直方向の格納可能なメモリサイズであるメモリ最大長と、最小分割数情報とを読み込む。また、実行すべきテストパターン（以後、実行テストパターンという。）のパターン幅及びパターン数を読み込む。
【００３９】
次いで、ステップＳ２に移行し、テストパターン格納用メモリ１１のメモリ最大幅と、実行テストパターンのパターン幅とを比較する。そして、実行テストパターンのパターン幅がテストパターン格納用メモリ１１のメモリ最大幅よりも大きい場合には、分割不可と判断し、後述のステップＳ１０に移行する。
一方、実行テストパターンのパターン幅がテストパターン格納用メモリ１１のメモリ最大幅以下である場合にはステップＳ３に移行し、次に、実行テストパターンのパターン数と、前記テストパターン格納用メモリ１１のメモリ最大長とを比較する。そして、実行テストパターンのパターン数がテストパターン格納用メモリ１１のメモリ最大長以下である場合には、分割不要と判断し、ステップＳ１０に移行する。
【００４０】
一方、実行テストパターンのパターン数がテストパターン格納用メモリ１１のメモリ最大長よりも大きいときにはステップＳ４に移行し、ステップＳ１で読み込んだ各種情報に基づいて前記実行テストパターンを何分割するかを特定し、その実行テストパターンを分割した場合に、その先頭及び末尾となるパターン位置を特定するための、後述のパターン分割処理を実行する。
次いで、ステップＳ６に移行し、ステップＳ４の処理で特定した、分割パターン位置情報に基づいて実行テストパターンを分割し、複数の分割テストパターンを再構築しこれをテストパターン格納用メモリ１１に書き込むための、後述のパターン再構築処理を実行する。そして、ステップＳ１０に移行する。
【００４１】
このステップＳ１０では、実行テストパターンに対する処理状況を表示装置３２に表示する。つまり、実行テストパターンが処理不要又は処理不可であるため、実行テストパターンの分割が行われなかった場合には、これを通知するためのエラー情報を表示装置３２に表示する。また、実行テストパターンの分割が正常に行われ、テストパターン格納用メモリ１１への実行テストパターン、つまり分割テストパターンの書き込みが終了した場合には、実行テストパターンのテストパターン格納用メモリ１１への書き込みが正常に終了したことを表示装置３２に表示する。
【００４２】
図３は、図２のステップＳ４の処理で実行されるパターン分割処理の処理手順の一例を示すフローチャートである。
まず、ステップＳ１１で、分割限界数ｋを初期化し、ｋ＝２に設定する。
次いで、ステップＳ１２に移行し、前記テストパターン格納用メモリ１１のメモリ最大幅を前記分割限界数ｋで分割した際の、分割したメモリ領域一つ当たりのメモリ幅（以下、分割メモリ幅という。）Ｍを算出する。具体的には前記テストパターン格納用メモリ１１のメモリ最大幅を前記分割限界数ｋで割算した余りを切り捨てて整数化する。これを前記分割メモリ幅Ｍとする。
【００４３】
次いで、ステップＳ１３に移行して、前記実行テストパターンのパターン幅に後述の制御ビット相当分“１”を加算した値と、前記分割メモリ幅Ｍとを比較し、パターン幅＋１が、前記分割メモリ幅Ｍよりも大きくない場合には、ステップＳ１４に移行し、分割限界数ｋを“１”だけインクリメントした後、ステップＳ１２に戻る。そして、この処理を繰り返し行い、“実行テストパターンのパターン幅＋１”が、分割メモリ幅Ｍより大きくなったときステップＳ１５に移行し、このときの分割限界数ｋから“１”を減算した値を、分割限界数Ｋとして設定し、これを所定の記憶領域に記憶しておく。つまり、このステップＳ１１〜ステップＳ１５の処理では、分割した実行テストパターンを、テストパターン格納用メモリ１１の水平方向に並列にいくつまで格納することができるかを検出している。
【００４４】
次いで、ステップＳ１６に移行し、図２のステップＳ１の処理で読み込んだ、最小分割数情報で指定される最小分割数を、変数Ｄとして設定する。
次いで、ステップＳ１７に移行し、変数Ｄで実行テストパターンを分割したときの１つ当たりのパターン数（以後、分割パターン数という。）Ｙを算出する。具体的には、実行テストパターンのパターン数を、前記変数Ｄで割算し、その余りを切り上げて整数化する。そして、これを分割パターン数Ｙとする。
【００４５】
次いで、ステップＳ１８に移行し、分割パターン数Ｙと前記テストパターン格納用メモリ１１のメモリ最大長とを比較し、分割パターン数Ｙの方が、メモリ最大長よりも大きい場合にはステップＳ１９に移行し、変数Ｄを“１”だけインクリメントした後、ステップＳ２０に移行する。このステップＳ２０では、変数Ｄと前記ステップＳ１５で設定した分割限界数Ｋとを比較し、変数Ｄが、分割限界数Ｋよりも大きくない場合には、ステップＳ１７に戻る。
【００４６】
一方、前記ステップＳ１８で、分割パターン数Ｙが、メモリ最大長以下である場合にはステップＳ２１に移行し、分割パターン数Ｙに後述の制御パターン相当分“１”を加算した値と、前記メモリ最大長とを比較し、“分割パターン数Ｙ＋１”がメモリ最大長よりも大きいときには、前記ステップＳ１９に移行する。
そして、前記ステップＳ２１で、分割パターン数Ｙ＋１がメモリ最大長以下となったとき、ステップＳ２７に移行する。
【００４７】
一方、前記ステップＳ２０で、変数Ｄが、分割限界数Ｋよりも大きい場合には、ステップＳ２２に移行し、分割不可として、前記表示装置３２に、実行テストパターンの分割が行われなかったことを通知するためのエラー情報を表示する。そして処理を終了する。
つまり、前記ステップＳ１６〜ステップＳ２２の処理では、分割数が、前記分割限界数Ｋ、つまり、テストパターン格納用メモリ１１のメモリ最大幅の点から分割可能な分割数以下であり、且つ、実行テストパターンを分割したときのその一つ当たりのパターン数が、この分割した実行テストパターンを、テストパターン格納用メモリ１１の垂直方向に格納することの可能なパターン数となり得る分割数を算出している。
【００４８】
続いて、前記ステップＳ２７では、ループ変数ｉをｉ＝０に初期化し、次いで、ステップＳ２８で分割開始パターン番号ＳＬ（ｉ）としてＥＬ（ｉ−１）を設定する。なお、ｉ＝０である場合には、分割開始パターン番号ＳＬ（ｉ）＝ＳＬ（０）＝０に設定する。
次いで、ステップＳ２９に移行し、分割終了パターン番号ＥＬ（ｉ）を演算する。具体的には、分割開始パターン番号ＳＬ（ｉ）に、分割パターン数Ｙを加算した値から“１”を減算した値を、分割終了パターン番号ＥＬ（ｉ）として設定する。
【００４９】
次いで、ステップＳ３０に移行し、ループ変数ｉと、変数Ｄから２を減算した値とを比較し、ループ変数ｉと変数Ｄ−２とが一致しない場合には、ステップＳ３１に移行し、変数ｉを“１”だけインクリメントした後、前記ステップＳ２８に戻る。一方、ループ変数ｉと変数Ｄ−２とが一致する場合には、ステップＳ３２に移行し、変数ｉを“１”だけインクリメントした後、ステップＳ３３に移行する。
【００５０】
このステップＳ３３では、最終の分割テストパターンの、先頭のパターン番号である最終開始パターン番号ＳＬ（ｉ）として、ＥＬ（ｉ−１）を設定した後ステップＳ３４に移行し、最終の分割テストパターンの末尾のパターン番号である最終終了パターン番号ＥＬ（ｉ）として、実行テストパターンのパターン数から“１”を減算した値を設定する。これによって、パターン分割処理が終了する。これによって、図４に示すように、ループ変数ｉで特定される、分割された分割テストパターンを識別するためのパターン識別番号と、これに対応する分割開始パターン番号ＳＬ及び分割終了パターン番号ＥＬとが特定される。
【００５１】
図５は、前記図２のステップＳ６におけるパターン再構築処理の処理手順の一例を示すフローチャートである。
このパターン再構築処理では、図６に示すように、分割テストパターンが、パターン分割番号の昇順に、前記テストパターン格納用メモリ１１の左側から順に位置するようにテストパターンの書き込みを行う。このとき、各テストベクタには、制御ビットを付加し、さらに、分割終了パターン番号に相当するテストベクタの次に、制御用のテストベクタＣＬを追加するようになっている。
【００５２】
なお、前記制御ビットは、分割テストパターンの終了を表すためのものであって、前記テスタ装置１０では、制御ビットに基づいて、分割テストパターンの終了を認識し、読出領域切替回路１２の読出領域を切り替えるようになっている。
また、前記制御用テストベクタＣＬは、テストパターン格納用メモリ１１の読出領域を切り替える際に、切替前後の分割テストパターンを継続して実行させるために付加するものであって、先の分割テストパターンの分割終了パターン番号に基づく被テスト回路２０へのテスト信号の出力が行われてから、次の分割テストパターンの分割開始パターン番号に基づくテスト信号が出力されるまでの間、前記テスタ装置１０が、ドライブしている値を継続して出力するようにするためのテストベクタである。
【００５３】
このパターン再構築処理では、まず、ステップＳ４１で、分割テストパターンを特定するパターン番号ＰＮをＰＮ＝０に初期化する。また、ステップＳ４２で、分割テストパターンを構成するテストベクタを特定するためのベクタ番号ＶＮをＶＮ＝０に初期化する。
そして、ステップＳ４３に移行し、分割開始パターン番号ＳＬ（ＰＮ）及び分割終了パターン番号ＥＬ（ＰＮ）を読み込み、ステップＳ４４で、分割開始パターン番号ＳＬ（ＰＮ）＋ＶＮに該当するパターン番号のテストベクタを読み出す。
【００５４】
次いで、ステップＳ４５に移行し、ベクタ番号ＶＮがＶＮ＝０であるかを判定し、ＶＮ＝０の場合には、ステップＳ４６に移行して、読み出したテストベクタの出力期待値として“Ｈ（ＨＩＧＨ）／Ｌ（ＬＯＷ）／Ｚ（ハイインピーダンス）”の何れかが設定されているかどうかを判定し、設定されていればステップＳ４７に移行して、出力期待値を全て“Ｘ（ドンドケア）”に設定する。そして、ステップＳ４８に移行する。
【００５５】
一方、ステップＳ４６で読み出したテストベクタの出力期待値が“Ｈ（ＨＩＧＨ）／Ｌ（ＬＯＷ）／Ｚ（ハイインピーダンス）”の何れかに設定されていない場合、つまり、“Ｘ”に設定されている場合には、そのままステップＳ４８に移行する。
このステップＳ４８では、ステップＳ４４で読み出したテストベクタをテストパターン格納用メモリ１１に書き込み、続いて、ステップＳ４９に移行し、テストパターン格納用メモリ１１に書き込んだテストベクタの次に、制御ビット“０”を追加する。これによって、結果的に、制御ビットが付加されたテストベクタがテストパターン格納用メモリ１１に格納される。
【００５６】
ここで、前記テストベクタは、テストパターン格納用メモリ１１のテストベクタ及び制御ビットを一つのまとまりとして格納される。さらに、ＰＮ値が等しい場合には、水平方向アドレスは同一とし、前記ベクタ番号ＶＮの昇順に、垂直方向アドレスが順次更新されてテストベクタが格納される。そして、パターン番号ＰＮが更新された場合には、水平方向アドレスが、テストパターンのパターン幅及び制御ビットとから特定されるアドレス分ずれた値に更新されて、次に格納すべきテストベクタ及び制御ビットが、先に格納されているテストベクタ及び制御ビットのまとまりと並列となるように格納される。
【００５７】
次いで、ステップＳ５０に移行し、ベクタ番号ＶＮを“１”だけインクリメントした後、ステップＳ５１に移行し、フラグＦがＦ＝１であるかどうかを判定し、Ｆ＝１でないときにはステップＳ４４に戻り、Ｆ＝１である場合には、ステップＳ４５に戻る。
一方、前記ステップＳ４５で、ベクタ番号がＶＮ＝０でない場合には、ステップＳ５６に移行し、ベクタ番号ＶＮと、分割終了パターン番号ＥＬ（ＰＮ）から分割開始パターン番号ＳＬ（ＰＮ）を減算した値とを比較する。そして、これらが一致する場合には、一つの分割テストパターンに相当するテストベクタの読み込みが終了したものと認識し、ステップＳ５７に移行して分割終了パターン番号ＥＬ（ＰＮ）に相当するテストベクタ、つまり、ステップＳ４４で読み出したテストベクタを、内部変数ＶＰとして所定の記憶領域に保存し、さらに、フラグＦをＦ＝１に設定した後、前記ステップＳ４８に移行する。なお、このフラグＦは、起動時には、Ｆ＝０に初期設定されるものとする。
【００５８】
一方、前記ステップＳ５６で、ベクタ番号ＶＮと、“分割終了パターン番号ＥＬ（ＰＮ）から分割開始パターン番号ＳＬ（ＰＮ）を減算した値”とが一致しない場合には、ステップＳ６１に移行し、ベクタ番号ＶＮと、“分割終了パターン番号ＥＬ（ＰＮ）から分割開始パターン番号ＳＬ（ＰＮ）を減算した値に“１”を加算した値”とを比較し、これらが一致しないときには、前記ステップＳ４８に移行し、これらが一致するときには、ステップＳ６２に移行する。
【００５９】
このステップＳ６２では、パターン番号ＰＮと“変数Ｄ−１”とが等しいかどうかを判定し、これらが一致しないときには、最終の分割テストパターンではないと判定し、ステップＳ６３に移行する。そして、所定の記憶領域に保存していた内部変数ＶＰのテストベクタにおいて、その出力期待値を全て“Ｘ（ドントケア）”に変更した後ステップＳ６４に移行し、これを前記ステップＳ４８での処理と同様にしてテストパターン格納用メモリ１１に書き込み、さらに、ステップＳ６５で、制御ビット“１”を付加する。
【００６０】
そして、ステップＳ６６に移行し、パターン番号ＰＮを“１”だけインクリメントし、さらに、フラグＦをＦ＝０に設定した後、前記ステップＳ４２に戻る。
一方、前記ステップＳ６２でパターン番号ＰＮと“変数Ｄ−１”とが一致しない場合には、ステップＳ６２からステップＳ６７に移行し、内部変数ＶＰに格納したテストベクタを全て“Ｘ（ドントケア）”に更新し、さらに、制御ビットを“１”として、テストパターン格納用メモリ１１に書き込む（ステップＳ６７〜ステップＳ６９）。次いでステップＳ７０に移行して、ベクタ番号ＶＮがＶＮ＝Ｙ＋１かどうかを判定し、ＶＮ＝Ｙ＋１であるときには、そのまま処理を終了し、ＶＮ＝Ｙ＋１でないときには、ステップＳ７１に移行して、ベクタ番号ＶＮを“１”だけインクリメントした後、ステップＳ６７に戻る。
【００６１】
つまり、ステップＳ６７からステップＳ７１の処理では、実行テストパターンを分割したときに、各分割テストパターンのパターン数を等しくするために、全ビットＸとして設定されたテストベクタ及び制御ビットを、最終の分割テストパターンのパターン数の不足分だけ追加し、“Ｘ”からなる制御用のテストベクタを追加することで、各分割テストパターンのパターン数を等しくするようにしている。
【００６２】
以上の処理によって、実行テストパターンは、図６に示すように、テストパターン格納用メモリ１１に格納されることになる。つまり、実行テストパターンのうち、分割開始パターン番号ＳＬ及び分割終了パターン番号ＥＬ間に位置するテストベクタを一まとまりとし、これらまとまりが、並列に格納されることになる。
そして、前記検証処理部１３では、図６に示すようにテストパターン格納用メモリ１１に格納されたテストパターンを、順次読み出して実行する。
図７は、検証処理部１３における、テストパターン格納用メモリ１１のテストパターンに基づき検証を行う際の処理手順の一例を示すフローチャートである。
【００６３】
検証処理部１３では、まず、ステップＳ８２で、分割情報を読み込む。この分割情報は、実行テストパターンの分割数及び分割した分割テストパターンが格納された領域、すなわち、この領域のデータをテストパターン格納用メモリ１１から読み出すためのチャネルの番号からなるテストプログラム情報である。この分割情報は、例えば、分割テストパターンをテストパターン格納用メモリ１１に格納する際に、例えばその先頭等に分割情報として付加してテストパターン格納用メモリ１１に格納するか、或いは、検証処理部１３とテストパターンロード装置３０との間で通信を行うことで、検証処理部１３に通知するようにすればよい。
【００６４】
次いで、ステップＳ８４に移行し、分割情報に基づいて、まず、１番目の分割テストパターンの読出領域を特定する。つまり、前記テストパターンロード装置３０で１番目の分割テストパターンを格納した領域を、前記読出領域として特定する。例えば、前記テストプログラム情報で通知される、分割テストパターンが格納された領域に相当するチャネル番号と、分割数とから、一つの分割テストパターン当たりのチャネル数を特定する。そして、例えば、前記テストパターンロード装置３０において、テストパターン格納用メモリ１１をチャネル番号が若い方から順に分割テストパターンを格納し、且つチャネル番号が若い方から順にテストベクタを格納するよう定めておけば、各分割テストパターンに対応するチャネル番号を特定することができる。
【００６５】
次いで、ステップＳ８６に移行し、読出領域切替回路１２を介して、指定されたチャネルに相当する領域のテストベクタを垂直方向に順に読み出し、テストベクタが、テストパターンの終了を表す値、つまり、全ビット“Ｘ”に設定されていない場合には、ステップＳ９０に移行し、次に、テストベクタに付加されている制御ビットが、“１”であるかどうかを判断する（ステップＳ９０）。そして、“１”でない間、つまり、分割テストパターンの最終のテストベクタでない間は、ステップＳ９２に移行して、公知の手順でこのテストベクタに基づいて被テスト回路２０に対する検証処理を行った後、ステップＳ８６に戻り、テストパターン格納用メモリ１１の垂直方向に順にテストベクタを読み出す。
【００６６】
そして、テストベクタに付加された制御ビットが“１”となったとき、ステップＳ９０からステップＳ９４に移行し、読出領域切替回路１２において次の分割テストパターンに相当する領域からのチャネルを選択し、読出領域を切り替える。そして、この処理を順次繰り返し行い、テストベクタが全て“Ｘ（ドントケア）”であるとき、テストパターン格納用メモリ１１に格納されたテストパターンの最終行つまり、実行テストパターンの終了であると認識し、処理を終了する。
【００６７】
次に、上記実施の形態の動作を説明する。
今、図８に示すように、４ビットのテストベクタで構成される、パターン数が“１３”のテストパターンを、テスト装置１０で実行するものする。なお、このテスト装置１０のテストパターン格納用メモリ１１は、テストパターン格納用メモリ１１のメモリ最大長は“８”、メモリ最大幅は“１２”である。また、最小分割数は“２”に設定されている。
【００６８】
利用者は、テストパターンロード装置３０の入力装置３１を操作し、実行テストパターンのメモリサイズ及び最小分割数、テスト装置１０のテストパターン格納用メモリ１１のサイズを入力する。
テストパターンロード装置３０では、入力された情報を読み込み（図２ステップＳ１）、この場合、実行テストパターンのパターン幅（“４”）はテストパターン格納用メモリ１１のメモリ最大幅（“１２”）以下であり、且つ実行テストパターンのパターン数（“１３”）は、テストパターン格納用メモリ１１のメモリ最大長（“８”）よりも大きいから、ステップＳ２からステップＳ３を経てステップＳ４に移行し、パターン分割処理を行う。
【００６９】
まず、実行テストパターンのパターン幅及びテストパターン格納用メモリ１１のメモリ最大幅とに基づいて、分割限界数Ｋの設定が行われる。すなわち、まず、分割限界数ｋ＝２として分割メモリ幅Ｍの算出が行われ、テストパターン格納用メモリ１１のメモリ最大幅は“１２”であるから、Ｍ＝６となる。これは、実行テストパターンのパターン幅“４”＋“１”よりも小さくならないから（図３ステップＳ１１〜ステップＳ１３）、ステップＳ１３からステップＳ１４に移行して分割限界数ｋがインクリメントされ、ｋ＝３に更新される。
【００７０】
ｋ＝３の場合、分割メモリ幅Ｍは“４”となり、これは実行テストパターンのパターン幅“４”＋“１”よりも小さくなるから、ステップＳ１３からＳ１５に移行し、このときのｋ（＝３）−１が、分割限界数Ｋ（＝２）として記憶される。
続いて、実行テストパターンのパターン数及びテストパターン格納用メモリ１１のメモリ最大長に基づいて、分割数の特定が行われる（ステップＳ１６〜ステップＳ２１）。すなわち、まず、変数Ｄとして最小分割数“２”が設定され、分割パターン数Ｙが算出される。この場合、実行テストパターンのパターン数は、“１３”であるから、分割パターン数Ｙは“７”となり（ステップＳ１６、Ｓ１７）、これはテストパターン格納用メモリ１１のメモリ最大長“８”よりも小さいからステップＳ１８からステップＳ２１に移行する。そして、Ｙ（＝７）＋１はメモリ最大長“８”よりも大きくないからステップＳ２７に移行する。
【００７１】
これによって、実行テストパターンを分割しこれをテストパターン格納用メモリ１１に並列に格納した場合に、分割した分割テストパターンを全てテストパターン格納用メモリ１１に格納することの可能な、分割数は“２”として特定される。
続いて、実行テストパターンを分割した際に、分割テストパターンの先頭及び最終となるテストパターン番号の特定が行われる（ステップＳ２７〜ステップＳ３４）。すなわち、まずループ変数ｉの初期化が行われ、第１の分割テストパターンの先頭となるパターン番号の特定が行われるが、このときｉ＝０であるから、ＳＬ（０）＝０として設定される。そして、分割終了パターン番号ＥＬ（０）は、ＳＬ（０）＋Ｙ−１つまり、“０＋７−１＝６”となり、パターン番号“６”が、第１の分割テストパターンの最終となる。
【００７２】
そして、ｉ（＝０）が、Ｄ（＝２）−２を満足するから、ステップＳ３０からステップＳ３２に移行して、ｉがインクリメントされて、第２の分割テストパターンすなわち最終の分割テストパターンの先頭及び終了となるパターン番号が特定される。ここで、ｉ＝１であるから、ＳＬ（１）＝ＥＬ（０）つまり、ＳＬ（１）＝６として設定され、第１の分割テストパターンの分割終了パターン番号が、第２の分割テストパターンの分割先頭パターン番号として設定される。また、分割終了パターン番号ＥＬ（１）として、実行テストパターンのパターン数−１つまり、“１３−１＝１２”が設定される。
【００７３】
これによって、実行テストパターンは２つに分割され、図９に示すように、第１の分割テストパターン及び第２の分割テストパターンについて、それぞれ、分割開始パターン番号ＳＬ（０）、ＳＬ（１）、分割終了パターン番号ＥＬ（０）、ＥＬ（１）が特定される。
続いて、パターン再構築処理（図２ステップＳ６）が行われ、まず、パターン番号ＰＮ及びベクタ番号ＶＮの初期化が行われ（図５（ステップＳ４１、Ｓ４２）、ステップＳ４３で、第１の分割テストパターンの、分割開始パターン番号ＳＬ（０）＝０のテストベクタが読み出される。このとき、ＶＮ＝０であるから、ステップＳ４５からステップＳ４６に移行し、図８に示すように、テストパターンにおいて、パターン番号“０”のテストベクタは、その出力期待値を“Ｘ”に設定されているから、そのままステップＳ４８に移行して、このパターン番号“０”のテストベクタを、テストパターン格納用メモリ１１の左上部の領域に書き込み、さらに、続いて制御ビット“０”を付加する。そして、ベクタ番号ＶＮをインクリメントし、このときフラグＦはＦ＝０であるからステップＳ４４に戻って、次に、パターン番号が、ＳＬ（ＰＮ）＋ＶＮ＝０＋１＝１のテストベクタを読み込む。
【００７４】
そして、ベクタ番号ＶＮは“１”であるからステップＳ４５からステップＳ５６、Ｓ６１を経てステップＳ４８に移行し、パターン番号“１”のテストベクタを、テストパターン格納用メモリ１１に書き込み、さらに制御ビット“０”を付加する。この処理を繰り返し行って、パターン番号“２”から“５”のテストベクタを同様にして書き込む。そしてベクタ番号ＶＮ＝６となったとき、ＶＮ（＝６）と、分割終了パターン番号（“６”）から分割開始パターン番号（“０”）を減算した値とが等しくなるから、ステップＳ５６からステップＳ５７に移行し、分割終了パターン番号“６”のテストベクタを内部変数ＶＰに保存し、フラグＦをＦ＝１に設定した後、パターン番号“６”のテストベクタをテストパターン格納用メモリ１１に書き込み、さらに制御ビット“０”を付加した後、ベクタ番号ＶＮをインクリメント（ＶＮ＝７）する。
【００７５】
そして、フラグＦがＦ＝１であるからステップＳ４５に移行し、このステップＳ４５からステップＳ５６を経てステップＳ６１に移行する。このとき、ベクタ番号ＶＮ（＝７）と、分割終了パターン番号（“６”）から分割開始パターン番号（“０”）を減算した値に“１”を加算した値とが一致するから、ステップＳ６１からステップＳ６２に移行する。そして、パターン番号ＰＮ（“０”）は、変数Ｄ−１（＝１）と一致しないから、全ての分割テストパターンの書き込みが終了していないものとしてステップＳ６３に移行し、内部変数ＶＰに保存していた、パターン番号“６”のテストベクタにおいて、その出力期待値を全て“Ｘ（ドントケア）”に変更したものを、制御用テストベクタＣＬ（０）としてテストパターン格納用メモリ１１に格納し、さらに制御ビットとして“１”を付加する（ステップＳ６４、Ｓ６５）。
【００７６】
これによって、図１０に示すように、テストパターン格納用メモリ１１には、分割開始パターン番号ＳＬ（０）に相当するパターン番号“０”から分割終了パターン番号ＥＬ（０）に相当するパターン番号“６”までのテストベクタがその昇順に垂直方向に格納されると共に、パターン番号“６”のテストベクタに続いて、パターン番号“６”のテストベクタにおいて、その出力期待値を“Ｘ”に変更したテストベクタ“６α”が、制御用テストベクタＣＬ（０）として格納される。これが、第一の分割テストパターンとなる。
【００７７】
次いで、ステップＳ６６に移行し、パターン番号ＰＮをインクリメントし、フラグＦをＦ＝０に設定する。そして、上記と同様にして、今度は、第２の分割テストパターンの分割開始及び分割終了パターン番号ＳＬ（１）、ＥＬ（１）を読み込む。
そして、上記と同様にして書き込みを行い、この場合、ベクタ番号ＶＮ＝０のとき、分割開始パターン番号ＳＬ（１）＝６の出力期待値は、Ｈ及びＬが設定されているからこれを“Ｘ（ドントケア）”に置き換えたもの、つまり“６α”を、テストパターン格納用メモリ１１に書き込み、このとき、図１０に示すように、先に書き込んだ第１の分割テストパターンと並列となる位置に書き込みを行う。
【００７８】
そして、以後上記と同様に、パターン番号“７〜１２”のテストベクタをテストパターン格納用メモリ１１に書き込む。そして、パターン番号“１２”のテストベクタを内部変数ＶＰに格納し、ベクタ変数ＶＮをインクリメントする。これによって、ＶＮ＝７となるからステップＳ４５からステップＳ５６、ステップＳ６１を経てステップＳ６２に移行する。そして、パターン番号ＰＮ＝１、変数Ｄ＝２であって、ＰＮ＝Ｄ−１を満足するから、ステップＳ６２からステップＳ６７に移行して、内部変数ＶＰに格納したテストベクタを全ビット“Ｘ”に更新し、さらに、制御ビットを“１”としてテストパターン格納用メモリ１１に書き込む。そして、このとき、ＶＮ（＝７）＝Ｙ（＝６）＋１であって、これらは一致するから、最終の分割テストパターンのパターン数は、第一の分割テストパターンのパターン数と一致しているものと判定し、処理を終了する。
【００７９】
これによって、図１０に示すように、テストパターン格納用メモリ１１には、実行テストパターンを分割して生成した、二つの分割テストパターン並列に格納されることになる。また、第一の分割テストパターンの最終行には、制御用のテストベクタＣＬが付加され、さらに、第二の分割テストパターンの最終行、つまり、実行テストパターンの最終のテストベクタの次には、実行テストパターンの終了を意味する全ビット“Ｘ”に設定されたマスクビットが付加されることになる。
【００８０】
なお、図１０の各テストベクタには、実際には、その末尾に制御ビットが付加されているため、実際には、テストパターン格納用メモリ１１には、実際には、図１１に示すように、テストベクタと制御ビットとが対となって、格納される。
このように、テストパターン格納用メモリ１１に実行テストパターンを分割して格納した状態で、テスト装置１０を起動すると、テスト装置１０では、まず、分割テストパターンに付加すること、或いは、テストパターンロード装置３０との通信等によって、分割テストパターンの格納状況を表す分割情報を読み込み（図７ステップＳ８２）、そのテストプログラム情報及び分割数情報に基づいて第一の分割テストパターンが格納されている領域に相当するチャネルを選択するよう読出領域切替回路１２を制御し（ステップＳ８４）、テストパターン格納用メモリ１１からのテストベクタの読み出しを開始する（ステップＳ８６）。
【００８１】
例えば、図１１に示すように、分割テストパターンが格納され、その格納領域が図１２に示すように、チャネル番号１〜１０に相当する場合には、テストプログラム情報として“１、２、３、４、５、６、７、８、９、１０”として通知され、さらに分割数は“２”として通知される。
したがって、チャネル数“１０”と分割数“２”とから、分割テストパターン一つ当たりのチャネル数は“５”であることがわかる。このとき、チャネル番号の若い方から順にテストベクタを格納しているものとすると、チャネル番号１〜５が、第一の分割テストパターンに相当し、チャネル番号６〜１０が第二のテストパターンに相当し、チャネル番号１〜４及び６〜９がテストベクタ、チャネル番号５及び１０が制御ビットに相当することがわかる。さらに、チャネル番号１及び３、６及び８が入力値、２及び４、７及び９が出力期待値に相当することがわかる。
【００８２】
したがって、テスト装置１０では、第一の分割テストパターンに相当するチャネル番号１〜５を選択するよう読出領域切替回路１２に指示する。これによって、チャネル番号１〜５からの信号が選択され、これがチャネル番号１〜５の信号としてテスト装置１０に入力される。
そして、テスト装置１０では、チャネル番号１及び３は入力値、２及び４は出力期待値、５は制御ビットとして認識し、この制御ビットが“０”である間は、分割テストパターンの最終のテストベクタではないと判断して、順次チャネル番蝋１〜４に相当するテストベクタにしたがって、公知の手順で被テスト回路２０に対する検証を行う。
【００８３】
このため、読出領域切替回路１２では、第一の分割テストパターンが格納された領域からのテストベクタが読み出されることになり、テスト回路１０において、そのテストパターン格納用メモリ１１を先頭アドレスから垂直方向にそのアドレスを更新することによって、図１３に示すように、第一の分割テストパターンを構成するテストベクタが順次読み出されることになり、これにしたがって、被テスト回路２０に対する検証が行われることになる。
【００８４】
そして、読み出したテストベクタに付加されている制御ビットが“１”となったとき、分割テストパターンの最終であると判断し、ステップＳ９０からステップＳ９４に移行して、テストパターン格納用メモリ１１からの読出領域が、二番目の分割テストパターンが格納された領域となるよう、読出領域切替回路１２を制御し、再度先頭アドレスからの読出を行う。
【００８５】
つまり、読出領域切替回路１２では、チャネルＣＨ１〜ＣＨ５に替えて、今度は、チャネルＣＨ６〜ＣＨ１０の信号を選択し、これをテスト装置１０へのチャネルＣＨ１〜ＣＨ５に出力する。
これによって、図１３に示すように、第一の分割テストパターンの最終のテストベクタ、つまり、制御用テストベクタＣＬ（０）が読み出されたときに、読出領域が切り替えられ、再度テストパターン格納用メモリ１１の先頭アドレスから順にテストベクタを読み出すことによって、第二の分割テストパターンを構成するテストベクタが読み出され、その先頭のテストベクタから順に読み出されることになる。
【００８６】
そして、読み出したテストベクタがすべて“Ｘ”であるとき、実行テストパターンの終了であると判定し（ステップＳ８８）、被テスト回路２０に対する検証を終了する。
これによって、図１３に示すように、テストパターン格納用メモリ１１に格納された２つの分割テストパターンが、その先頭から順に読み出され、第１及び第２の順にそれぞれ実行されたことになる。
【００８７】
図１４は、図１３に示すようにテストパターン格納用メモリ１１に格納されたたテストベクタを、読み出される順に並べたものである。
テスト装置１０では、図１４に示すように、パターン番号“０〜６”、制御用テストベクタＣＬ（０）、パターン番号“６α”、パターン番号“７〜１２”、マスクビットの順に読み出し、これにしたがって、被テスト回路２０に対する検証を行う。
【００８８】
ここで、図１３に示すように、テスト装置１０では、テストパターン格納用メモリ１１に対し、先頭アドレスからの読み出しを、２回繰り返すことで、一つの実行テストパターン全体を実行するようになっている。
このため、第一の分割テストパターンの最終のテストベクタ（制御用テストベクタＣＬ（０））を読み出した後、読出領域切替回路１２での読出領域の切替動作を行う等、分割テストパターンの読み出し処理を繰り返し行うことに伴う所定の動作を行う必要があるため、第一の分割テストパターンの制御用テストベクタＣＬ（０）の読み出しを行ってから、次の分割テストパターンの先頭のテストベクタを読み出すまでに、ある程度時間がかかる。
【００８９】
しかしながら、前記第一の分割テストパターンの最後に付加している制御用テストベクタＣＬとして、第二の分割テストパターンの先頭のテストベクタに基づくテスト信号が入力されるまでの間、テスト装置１０がドライブしている値を継続して出力させるために、その一つ前のテストベクタ（６）と同じテスト信号の入力を指定し、且つ、その出力期待値を“Ｘ”として期待値照合を行わないようにしている。したがって、第一及び第二の分割テストパターンの切り替わり時にテストベクタの読み出しに多少時間がかかるような場合であっても、制御用テストベクタＣＬ（０）によって、テスト装置１０がドライブしている値、つまり、テストベクタ（６）の“入力値”を継続して出力させるようにしているから、第二の分割テストパターンの先頭のテストベクタを実行する際には、テストベクタ（６）に基づき検証を行った状態から継続して検証を行うことができる。
【００９０】
また、テスト装置１０によっては、テストパターン格納用メモリ１１の先頭アドレスに書き込まれるテストベクタは、その出力期待値を“Ｘ”として取り扱うようにしたものもある。したがって、第二の分割テストパターンにおいて、その先頭のテストベクタに出力期待値を設定し、これに基づいて検証を行うようにしたとしても的確に検証が行われない場合がある。
【００９１】
しかしながら、実行テストパターンの先頭部分に相当する第一の分割テストパターンを除いた各分割テストパターンにおいては、その先頭のテストベクタとして、一つ前の分割テストパターンの制御用テストベクタの一つ前のテストベクタ、つまり、図１３の場合には、パターン番号“６”のテストベクタにおいてその出力期待値“Ｘ”としたテストベクタを設定するようにしたから、パターン番号“６”のテストベクタに基づくテスト用信号を被テスト回路１０に出力した後、この状態が、制御用テストベクタＣＬ（０）を実行することにより継続され、さらに、第二の分割テストパターンの先頭のテストベクタを実行することにより継続され、そして、パターン番号“７”のテストベクタに基づく検証が行われることになるから、被テスト回路２０は、パターン番号“６”のテストベクタに基づく検証の次に、パターン番号“７”のテストベクタに基づく検証を行った場合と同等の状態となる。
【００９２】
したがって、テストパターン格納用メモリ１１の先頭アドレスに格納されたテストベクタに対する、テスト装置１０の処理形態に関わらず、的確に検証を行うことができる。
なお、通常、実行テストパターンの先頭テストベクタは、その出力期待値を“Ｘ”として設定するようにしているため、第一の分割テストパターンにおいては、その先頭テストベクタとして、その出力期待値が“Ｘ”であるテストベクタを設定する等といった処理を行う必要はない。
【００９３】
また、上述のように、テストパターン格納用メモリ１１のメモリ最大長よりもパターン数の多い、テストパターンを、テストパターン格納用メモリ１１に分割して並列に格納することによって、テストパターン全体をテストパターン格納用メモリ１１に格納するようにしている。したがって、このテストパターンを実行する際には、例えば図１５（ａ）に示すように、テストパターン格納用メモリ１１へのテストパターンへの書き込みは、一度ですむことになる。そして、テスト装置１０がテストパターン格納用メモリ１１の読出を２回繰り返すことで、一連の実行テストパターンを実行することができる。
【００９４】
これに対し、従来のテスト装置１０の場合には、テストパターン全体をテストパターン格納用メモリ１１に書き込むことができないため、図１５（ｂ）に示すように、テストパターンの一部をテストパターン格納用メモリ１１に書き込んで、これにしたがって検証を行い、検証終了後、テストパターンの続きをテストパターン格納用メモリ１１に書き込んでこれにしたがって検証を行い、というように、実行テストパターンを実行するにあたり、複数回にわたって、テストパターン格納用メモリ１１への書き込みを行う必要がある。
【００９５】
しかしながら、上述のように、テストパターン格納用メモリ１１への書き込みを一度に行い、テスト装置１０側で繰り返し垂直方向からの読出を行うようにしたから、テストパターン格納用メモリ１１へのテストパターンの書き込みに要する処理時間の短縮を図ることができ、その分、被テスト回路２０に対する検証に要する所要時間全体の短縮を図ることができる。
【００９６】
また、前記分割テストパターンを再構築する際に、各テストベクタに制御ビットを付加するようにしているから、テスト装置１０では、制御ビットを参照することによって、容易に、分割テストパターンの終了を認識することができ、的確なタイミングで前記分割テストパターンの切替を行うことができる。
また、このとき、実行テストパターンのサイズと、テストパターン格納用メモリ１１のサイズとに基づいて、実行テストパターン全体とテストパターン格納用メモリ１１に格納可能な分割数を算出し、算出した分割数にしたがって分割を行うようにしているから、適用するテスト装置１０或いは実行するテストパターンが異なる場合であっても適用することができ、汎用性を向上させることができる。
【００９７】
また、上述のように、テストパターン格納用メモリ１１からのデータの読み出しの切替は、マルチプレクサ等で構成される読出領域切替回路１２によって行うようにしている。また、検証処理部１３では、読出領域切替回路１２による読出領域の切替タイミングを検出し、これに応じて読出領域切替回路１２を制御するようにすればよい。したがって、検証処理部１３での処理負荷の増大を伴うこなく、実現することができる。
【００９８】
なお、上記実施の形態においては、図１１に示すように、テストベクタ及び制御ビットを対として、テストパターン格納用メモリ１１に書き込むようにした場合について説明したが、例えば図１６に示すように、さらにテスト装置１０に対する制御用オペランドを付加するようにしてもよく、制御用オペランドに限らず、他の情報を付加することも可能である。このように、テストベクタ及び制御ビットの対に、さらに、制御用オペランド等、他の情報をも付加することによって、テスト装置１０が有する機能を損なうことなく、複雑なテストパターンを構築することができ、且つテストパターン量を削減することができる。
【００９９】
また、上記実施の形態においては、入力装置３１を設け、これによって、実行テストパターンやテストパターン格納用メモリのサイズ情報、また、最小分割数等の各種情報を入力するようにした場合について説明したが、例えば、予めこれら各種情報を所定の記憶領域に格納しておき、必要に応じてこの記憶領域から各種情報を読み出すようにしてもよい。このようにすることによって、パターン数が同一のテストパターンを用いて同一のテスト装置１０を利用して被テスト回路２０に対する検証を行うような場合等には、入力装置３１による入力に要する処理時間を短縮することができ、また、使い勝手を向上させることができる。
【０１００】
また、このように、実行するテストパターンのサイズ及び適用するテスト装置１０が決まっているならば、図２のステップＳ４で実行される分割数を特定するための処理を行う必要はなく、予め分割数を特定しておき、この分割数に基づいて実行テストパターンを分割するようにしてもよい。
また、上記実施の形態においては、テストパターンロード装置３０とテスト装置１０とを別体として構成するようにした場合について説明したが、これに限るものではなく、前記テストパターンロード装置３０を前記テスト装置１０に組み込むようにしてもよいことはいうまでもない。
【０１０１】
また、上記実施の形態においては、各分割テストパターンのパターン数が同等となるように実行テストパターンを分割するようにした場合について説明したが、これに限るものではなく、例えば、テストパターン格納用メモリ１１の最大メモリ長に応じて実行テストパターンをその先頭から順次分割していき、最終の分割テストパターンで、そのパターン数が、他の分割テストパターンのパターン数と同等となるように不足分を付加するようにしてもよい。しかしながら、この場合、最終の分割テストパターンにおいて、パターン数の調整のために多数のテストベクタを付加する必要がある場合があるため、上述のように、分割テストパターンのパターン数が同等となるように実行テストパターンの分割数を決定するようにした方が、より的確に分割することができる。
【０１０２】
また、上記実施の形態においては、テストパターンロード装置３０と検証処理部１３との間で、テストパターン格納用メモリ１１の左側から順に分割テストパターンを格納するように定めておき、これにしたがって、テストパターン格納用メモリ１１への書き込み或いはテストパターン格納用メモリ１１からの読み出し制御を行うようにした場合について説明したが、これに限るものではなく、テストパターンロード装置３０側から検証処理部１３に格納先情報を通知するようにし、これに基づいて検証処理部１３で読出領域切替回路１２による読出領域を制御するようにしてもよい。
【０１０３】
なお、必ずしも、各分割テストパターンのパターン数が同等となるように設定する必要はない。ここでは、テスト装置１０におけるテストパターンのコンパイル時に、パターン数が異なることに起因してエラーが発生する場合があるため、これを回避するために、パターン数が同等となるようにしているため、例えば、コンパイラに対し、パターン数を通知するようにし、コンパイル側でエラーとならない用に対処を施すようにすれば、各分割テストパターンにおいてパターン数を同等とする必要はない。
【０１０４】
また、上記実施の形態においては、本発明におけるテスト装置を、設計段階で被テスト回路２０の検証を行う、論理シミュレータに適用した場合について説明したが、これに限るものではなく、実際にＩＣを製造した後に、品質チェックを行うための自動テスト装置等に適用することも可能であり、また、プリント基板にＩＣやその他電子部品を実装した状態でテストを行うための自動テスト装置（ボードテスタ）、システムが稼動している状態でＩＣ又はシステムの動作チェックを行うためのシステムチェッカ等であっても適用することができる。
【０１０５】
ここで、テストパターン格納用メモリ１１がテストパターン格納領域に対応し、検証処理部１３で実行される図７のステップＳ９２の処理が検証手段に対応し、図２のステップＳ４及びステップＳ６の処理が分割格納手段に対応し、読出領域切替回路１２及び検証処理部１３で実行される図７のステップＳ８２〜ステップＳ９０及びステップＳ９４の処理が読出領域切替手段に対応し、図３のステップＳステップＳ１１〜ステップＳ２２の処理が分割数特定手段に対応し、図５のステップＳ４５からステップＳ４８の処理及びステップＳ６２からステップＳ６４の処理が調整用テストベクタ付加手段に対応し、図５のステップＳ４９の処理及びステップＳ６５の処理が識別情報付加手段に対応している。
【０１０６】
【発明の効果】
以上説明したように、本発明の請求項１に係るテスト方法によれば、テストパターンを、このテストベクタを構成するテストベクタの読出方向で分割し且つこのとき、テストパターン全体をテストパターン格納領域に格納可能なサイズに分割してテストパターン格納領域に並列に格納し、分割したテストパターンのテストパターン格納領域への格納状況に応じて、テストパターン格納領域からの読出領域を切り替えてテストパターンの読出を行うようにしたから、テストパターンを構成するテストベクタの数が、テストパターン格納領域のテストベクタの読出方向のメモリサイズよりも大きい場合であっても、テストパターン全体をテストパターン格納領域に格納することができる。したがって、一度の書き込みで、テストパターンにしたがった検証を行うことができるから、複数回に分けて書き込みを行う必要はなく、その分検証に要する全体の所要時間を短縮することができる。
【０１０７】
また、請求項２に係るテスト装置によれば、分割格納手段によって、テストパターンを、このテストベクタを構成するテストベクタの読出方向で分割し且つこのとき、テストパターン全体をテストパターン格納領域に格納可能なサイズに分割してテストパターン格納領域に並列に格納し、読出領域切替手段によって、分割したテストパターンのテストパターン格納領域への格納状況に応じて、テストパターン格納領域からの読出領域を切り替えてテストパターンの読出を行うようにしたから、テストパターンを構成するテストベクタの数が、テストパターン格納領域のテストベクタの読出方向のメモリサイズよりも大きい場合であっても、テストパターン全体をテストパターン格納領域に格納することができる。したがって、一度の書き込みで、テストパターンにしたがった検証を行うことができるから、複数回に分けて書き込みを行う必要はなく、その分検証に要する全体の所要時間を短縮することができる。
【０１０８】
また、請求項３に係るテスト装置によれば、前記テストパターン格納領域のメモリサイズと、前記テストパターンのパターンサイズとに応じて、分割数特定手段によって、テストパターンの分割数を特定し、分割格納手段では、テストパターンを、前記分割数特性手段で特定した分割数に分割するようにしたから、テストパターン全体をテストパターンに格納領域に格納することの可能な分割数を容易的確に検出することができる。
【０１０９】
また、請求項４乃至６に係るテスト装置によれば、調整用テストベクタ付加手段によって、テストパターンを分割した結果得られた複数の分割テストパターンのうち連続する分割テストパターンの、先の分割テストパターンの最終のテストベクタの次、或いは、後続の分割テストパターンの先頭のテストベクタの前に、連続する分割テストパターン間で前記検証を継続して行うための調整用のテストベクタを付加するようにしたから、分割テストパターンの切り替わり時にテストベクタに基づく検証のタイミングがずれる場合であっても、容易確実に検証を継続して行うことができる。
【０１１０】
また、請求項７に係るテスト装置によれば、識別情報付加手段によって、分割テストパターンを構成するテストベクタに、当該テストベクタが、前記分割テストパターンの最終に位置するテストベクタであるかどうかを識別するための識別情報を付加し、読出領域切替手段は、前記識別情報に基づき前記テストパターン格納領域の読出領域を切り替えるようにしたから、的確なタイミングで読出領域の切り替えを行うことができる。
【０１１１】
さらに、請求項８に係るテスト装置によれば、テストパターン格納領域に格納された分割テストパターンに相当するアドレス単位で、読み込みアドレスを切り替えるようにしたから、読出対象の分割テストパターンに応じて読み込みアドレスを切り替えることによって、読出対象の分割テストパターン単位で、容易に、テストベクタを読み出すことができる。
【図面の簡単な説明】
【図１】本発明の一例を示す概略構成図である。
【図２】図１のテストパターンロード装置の処理手順の一例を示すフローチャートである。
【図３】図２のパターン分割処理の処理手順の一例を示すフローチャートである。
【図４】分割開始パターン番号及び分割終了パターン番号の特定結果の一例である。
【図５】図２のパターン再構築処理の処理手順の一例を示すフローチャートである。
【図６】テストパターン格納用メモリへの分割テストパターンの書き込み方法を説明するための説明図である。
【図７】図１のテスト装置における、検証処理実行時の処理手順の一例を示すフローチャートである。
【図８】テストパターンの一例である。
【図９】図８のテストパターンに対する分割開始パターン番号及び分割終了パターン番号の特定結果の一例である。
【図１０】図８のテストパターンをテストパターン格納用メモリに書き込んだ状態を表す図である。
【図１１】図８のテストパターンをテストパターン格納用メモリに書き込んだ場合の制御ビットを含めた状態を表す図である。
【図１２】読出領域切替回路の動作説明に供する説明図である。
【図１３】テスト装置のテストパターン格納用メモリからの読出順を説明するための説明図である。
【図１４】図１３のテストパターン格納用メモリから読み出されるテストベクタを読出順に並べた図である。
【図１５】テスタ装置の処理動作状態を表す説明図である。
【図１６】テストパターン格納用メモリへの分割テストパターンの書き込み方法のその他の例である。
【図１７】テストパターンとテストパターン格納用メモリとのサイズを比較した図である。
【符号の説明】
１０  テスト装置
１１  テストパターン格納用メモリ
１２  読出領域切替回路
１３  検証処理部
２０  被テスト回路
３０  テストパターンロード装置
【図１】
2005043117.tif 000003
【図２】
2005043117.tif 000004
【図３】
2005043117.tif 000005
【図４】
2005043117.tif 000006
【図５】
2005043117.tif 000007
【図６】
2005043117.tif 000008
【図７】
2005043117.tif 000009
【図８】
2005043117.tif 000010
【図９】
2005043117.tif 000011
【図１０】
2005043117.tif 000012
【図１１】
2005043117.tif 000013
【図１２】
2005043117.tif 000014
【図１３】
2005043117.tif 000015
【図１４】
2005043117.tif 000016
【図１５】
2005043117.tif 000017
【図１６】
2005043117.tif 000018
【図１７】
2005043117.tif 000019