(57)【要約】【課題】テストパターンのデバッグ作業に要する処理時間の短縮を図る。【解決手段】パターンリストによる検証を実行する際にバックアップファイルを作成して保存し、また検証エラーが発生したパターン番号をエラー情報として記憶しておく。実行するパターンリストからなるテストファイルと、そのバックアップファイルとを比較し（ステップＳ１１）、その内容が更新されていれば、テストパターンの差異箇所を検索しこれを修正開始テストパターン番号とする（ステップＳ１２、Ｓ１３）。エラー発生番号が修正開始番号以下であるとき、再実行開始パターン番号としてエラー発生番号の一つ前の値を設定し（ステップＳ１４、Ｓ１５）、再実行開始パターン番号からテストを開始する。このとき再実行開始パターン番号における出力期待値を不定値として照合し、被テスト回路１０の出力値が不定であることに起因して検証エラーの発生を回避する（ステップＳ６）。【選択図】          図８
2004272312.tif 000002
【特許請求の範囲】
【請求項１】
テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト装置において、
前記照合によりエラーが発生したときのテストパターン位置を特定する情報を記憶するエラー情報記憶手段と、
当該エラー情報記憶手段に格納されているエラー情報に基づいて特定されるエラー発生位置以前の所定のテストパターン位置を、再実行開始位置として設定する再実行開始位置設定手段と、
前記エラーが発生したパターンリストによる検証を再実行するとき前記再実行開始位置設定手段で設定された再実行開始位置から開始する再実行手段と、
当該再実行手段により前記検証が前記再実行開始位置から再実行されるとき、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値の照合に対しエラーと判定しない状態にする判定無効手段と、を備えることを特徴とするテスト装置。
【請求項２】
テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト装置において、
実行すべきパターンリストによる検証をこれ以前に行ったときのパターンリスト内容が格納されるバックアップ手段と、
前記実行すべきパターンリストの内容と前記バックアップ手段に格納されたパターンリスト内容との相違位置を検索する相違位置検索手段と、
当該相違位置検索手段で検索した相違位置に基づいて、当該相違位置以前の所定のテストパターン位置を、再実行開始位置として設定する再実行開始位置設定手段と、
前記実行すべきパターンリストに対し前記相違位置検索手段で相違位置が検索されたとき、前記パターンリストによる検証を前記再実行開始位置設定手段で設定された再実行開始位置から開始する再実行手段と、
当該再実行手段により前記検証が前記再実行開始位置から再実行されるとき、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値の照合に対しエラーと判定しない状態にする判定無効手段と、を備えることを特徴とするテスト装置。
【請求項３】
テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト装置において、
前記照合によりエラーが発生したときのテストパターン位置を特定するエラー情報を記憶するエラー情報記憶手段と、
実行すべきパターンリストによる検証をこれ以前に行ったときのパターンリスト内容が格納されるバックアップ手段と、
前記実行すべきパターンリストの内容と前記バックアップ手段に格納されたパターンリスト内容との相違位置を検索する相違位置検索手段と、
前記エラー情報記憶手段にエラー情報が格納されているとき又は前記相違位置検索手段で相違位置を検出したときの何れかの場合には、前記エラー情報又は前記相違位置で特定されるテストパターン位置以前の所定のテストパターン位置を再実行開始位置として設定し、前記エラー情報記憶手段にエラー情報が格納され且つ前記相違位置検索手段で相違位置を検出したときには、前記エラー情報に基づいて特定されるエラー発生位置及び前記相違位置検索手段で検出した相違位置のうちの何れか先に実行される方のテストパターン位置以前の所定のテストパターン位置を再実行開始位置として設定する再実行開始位置設定手段と、
前記実行すべきパターンリストが前記エラーが発生したパターンリストであるとき又は前記相違位置検索手段で相違位置が検出されているとき、前記パターンリストを、前記再実行開始位置設定手段で設定された再実行開始位置から開始する再実行手段と、
当該再実行手段により前記検証が前記再実行開始位置から再実行されるとき、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にする判定無効手段と、を備えることを特徴とするテスト装置。
【請求項４】
前記判定無効手段は、前記被テスト回路が初期化されるまでの間、前記テストパターンとして設定された前記出力期待値を不定値に変更するようになっていることを特徴とする請求項１乃至３の何れかに記載のテスト装置。
【請求項５】
前記被テスト回路を初期化するために必要なテスト信号を１テストサイクルとし、当該テストサイクル単位で検証を行うようにしたテスト装置であって、
前記再実行開始位置設定手段は、前記エラー情報に基づいて前記再実行開始位置を設定するときには、エラー発生位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、前記再実行開始位置として設定するようになっていることを特徴とする請求項１、３及び４の何れかに記載のテスト装置。
【請求項６】
前記被テスト回路を初期化するために必要なテスト信号を１テストサイクルとし、当該テストサイクル単位で検証を行うようにしたテスト装置であって、
前記再実行開始位置設定手段は、前記相違位置に基づいて前記再実行開始位置を設定するときには、前記テスト信号が相違する場合には前記相違位置に相当するテストサイクルで特定されるテストパターン位置を前記再実行開始位置として設定し、前記出力期待値が相違する場合には前記相違位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、前記再実行開始位置として設定するようになっていることを特徴とする請求項２乃至４の何れかに記載のテスト装置。
【請求項７】
前記被テスト回路は、スキャンフリップフロップ回路を有する論理回路であって、
前記テストパターンは、前記論理回路に対するスキャンテスト用のテストパターンであることを特徴とする請求項１乃至６の何れかに記載のテスト装置。
【請求項８】
テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト方法において、
前記照合によりエラーが発生したときのテストパターン位置を特定する情報をエラー情報として記憶しておき、
前記エラーが発生したパターンリストによる検証を再実行する場合には、前記エラー情報に基づいて特定されるエラー発生位置以前の所定のテストパターン位置から再実行し且つ再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にするようにしたことを特徴とするテスト方法。
【請求項９】
テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト方法において、
実行すべきパターンリストの内容と、このパターンリストをこれ以前に行ったときのパターンリスト内容との相違位置を検索し、
当該相違位置を検出したときには、この相違位置以前の所定のテストパターン位置から、前記パターンリストによる検証を開始し且つ再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にするようにしたことを特徴とするテスト方法。
【請求項１０】
テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト方法において、
前記照合によりエラーが発生したときのテストパターン位置を特定するエラー情報を記憶しておき、
実行すべきパターンリストに対し、前記エラー情報が記憶されているかを検索すると共に、実行すべきパターンリストの内容と、このパターンリストをこれ以前に行ったときのパターンリスト内容との相違位置を検索し、
前記エラー情報及び前記相違位置の何れかが検出されたときにはこれから特定されるテストパターン位置以前の所定のテストパターン位置を再実行開始位置として設定し、前記エラー情報及び前記相違位置が共に検出されたときには、これらから特定されるテストパターン位置のうちの何れか先に実行される方のテストパターン位置に基づいてこれ以前の所定のテストパターン位置を再実行開始位置として設定し、
前記実行すべきパターンリストを前記再実行開始位置から開始すると共に、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にするようにしたことを特徴とするテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体デジタル回路等を、スキャンチェーンを用いてテストするようにしたテスト装置及びテスト方法に関する。
【０００２】
【従来の技術】
従来、組み合わせ回路等のテストを行う方法として、スキャンパステスト手法が知られている（例えば、特許文献１）。
このスキャンパステスト手法は、複雑なデジタル回路の故障検出率を向上させることを目的として考案されたテスト手法である。被テスト回路としてのデジタル回路では、これが内蔵するフリップフロップはスキャンパスと呼ばれるシフトレジスタを構成している。そして、被テスト回路の外部からスキャンパスを構成するフリップフロップ（以下、スキャンパスフリップフロップともいう。）へ特定の値を供給するシフト動作と、被テスト回路を構成する組み合わせ回路からスキャンフリップフロップへ繋がっている値をスキャンフリップフロップに取り込む動作と、さらに、スキャンフリップフロップから、被テスト回路の外部へスキャンフリップフロップの保持していた値を出力するシフト動作と、を繰り返して行うものである。
【０００３】
設計段階において、前記スキャンパスからなるスキャンパス回路を作成する手段としては、テスト合成ツールを適用する方法が最も一般的である。このテスト合成ツールは、スキャンパス回路が組み込まれていない順序回路に含まれるフリップフロップをスキャンパス用のフリップフロップに置き換え、スキャンパス動作を行うことができるようにスキャン動作用の制御信号を組み込む機能を有している。
【０００４】
また、スキャンパステストに使用するテストパターンを生成する手段として、ＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｅｒ）ツールが一般的に利用され、テスト合成ツールによって生成したスキャンパス回路を元に、高故障検出率で且つ短いテストパターン数を自動的に生成するようになっている。
【０００５】
【特許文献１】
特開２００１−６６３５０号公報
【０００６】
【発明が解決しようとする課題】
ところで、上述のように、スキャンパス回路の作成及びテストパターンの作成は各種設計ツールによって自動的に行うことができる。しかしながら、設計データの最終的な確認、特にタイミングに関するものの確認を行うためには、論理シミュレータ（以後、論理検証装置ともいう。）を利用してシミュレーションを行う必要がある。また、実際にＩＣを製造した後に、その品質チェックを行う方法として、自動テスト装置（以後、テスタともいう。）において、設計データの確認の段階で使用したテストパターンを利用する方法等が用いられている。
【０００７】
しかしながら、昨今の複雑なデジタル回路をテストするために、設計データの確認段階で使用したテストパターンを利用する方法では、このテスト専用のテスト用端子を設ける必要があるため、テスト端子数の増加が必須であることから、このテスト用端子を削減する工夫が必須となってきている。
このように、テスト用端子を削減する工夫を加えると、自動設計ツールを利用したテストパターンを、自動テスト装置でそのまま利用することが困難となり、テストパターンの一部を修正して利用する必要がある。
【０００８】
ここで、テスト用端子を削減する工夫や、これに伴うテストパターンの修正等を行った場合、論理シミュレータを利用した検証における被テスト回路の設計ミスや、テスタを利用した実際のＩＣチップの検証におけるテストボードの作成ミス或いは、被テスト回路を検証するために利用するテストパターンの作成ミス等によって検証エラーが発生した場合、問題のある被テスト回路或いはテストボード、又はテストパターンを修正し、再度検証を行うといった繰り返し作業が発生することになる。
【０００９】
つまり、検証エラーが発生すると、再度、初めから、つまり、１番目のテストパターンから検証を行うことになり、検証エラーが発生する毎に最初からやり直すことになって、検証に時間がかかるため、よりよい、検証方法が望まれていた。
そこで、この発明は上記従来の未解決の問題点に着目してなされたものであり、テストパターンを用いてのデジタル回路の検証作業に要する処理時間をより短縮することの可能なテスト装置及びテスト方法を提供することを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１に係るテスト装置は、テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト装置において、前記照合によりエラーが発生したときのテストパターン位置を特定する情報を記憶するエラー情報記憶手段と、当該エラー情報記憶手段に格納されているエラー情報に基づいて特定されるエラー発生位置以前の所定のテストパターン位置を、再実行開始位置として設定する再実行開始位置設定手段と、前記エラーが発生したパターンリストによる検証を再実行するとき前記再実行開始位置設定手段で設定された再実行開始位置から開始する再実行手段と、当該再実行手段により前記検証が前記再実行開始位置から再実行されるとき、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値の照合に対しエラーと判定しない状態にする判定無効手段と、を備えることを特徴としている。
【００１１】
この請求項１に係る発明では、照合によりエラーが発生したときのテストパターン位置を特定する情報をエラー情報記憶手段に記憶しておき、このエラーが発生したパターンリストによる検証を再実行するときには、再実行開始位置設定手段によって、エラー情報記憶手段のエラー情報に基づいてエラー発生位置以前の所定のテストパターン位置を再実行開始位置として設定し、再実行手段によって、このパターンリストによる検証を再実行開始位置から開始する。すなわち必ずしもパターンリストの先頭から開始するのではなく、場合によってはパターンリストの途中から開始する。したがって、その分、テスト時間の短縮が図られることになり、既に検証がすんだテストパターンを用いた検証は行わないから、不必要な検証が行われることが回避される。
【００１２】
また、このとき、パターンリストの途中から検証を開始する場合、記憶手段の記憶値が不定であるため、再実行開始位置から検証を開始した場合、被テスト回路の出力値と出力期待値とが一致しない場合がある。しかしながら、再実行開始位置から検証を開始する場合、判定無効手段によって、再実行開始後のテスト信号に応じて被テスト回路が初期化されるまでの間、被テスト回路の出力値に対しエラーと判定しない状態とするようにしたから、仮に、被テスト回路の出力値が出力期待値と一致しない場合であってもエラーと判定されることはない。そして、被テスト回路の初期化が完了し、テストパターンで特定されるテスト信号の入力に対し、被テスト回路の出力値として出力期待値が得られる状態となったときには、通常どおり出力値と出力期待値との照合が行われるから、この時点から的確にエラー判定が行われることになる。
【００１３】
また、請求項２に係るテスト装置は、テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト装置において、実行すべきパターンリストによる検証をこれ以前に行ったときのパターンリスト内容が格納されるバックアップ手段と、前記実行すべきパターンリストの内容と前記バックアップ手段に格納されたパターンリスト内容との相違位置を検索する相違位置検索手段と、当該相違位置検索手段で検索した相違位置に基づいて、当該相違位置以前の所定のテストパターン位置を、再実行開始位置として設定する再実行開始位置設定手段と、前記実行すべきパターンリストに対し前記相違位置検索手段で相違位置が検索されたとき、前記パターンリストによる検証を前記再実行開始位置設定手段で設定された再実行開始位置から開始する再実行手段と、当該再実行手段により前記検証が前記再実行開始位置から再実行されるとき、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値の照合に対しエラーと判定しない状態にする判定無効手段と、を備えることを特徴としている。
【００１４】
この請求項２に係る発明では、相違位置検索手段によって実行すべきパターンリストを先に実行したときの内容と今回の内容との相違位置を検索し、再実行開始位置設定手段によって、検出した相違位置以前の所定のテストパターン位置を再実行開始位置として設定する。そして、再実行手段によって、再実行開始位置からこのパターンリストを用いた検証を再実行し、すなわち必ずしもパターンリストの先頭から開始するのではなく、場合によってはパターンリストをその途中から開始する。したがって、その分、テスト時間の短縮が図られることになる。
【００１５】
また、このとき、パターンリストの途中から検証を開始する場合、記憶手段の記憶値が不定であるため、被テスト回路の出力値と出力期待値とが一致しない場合がある。しかしながら、再実行開始位置から検証を開始する場合には、判定無効手段によって、再実行開始後のテスト信号に応じて被テスト回路が初期化されるまでの間、被テスト回路の出力値に対しエラーと判定しない状態とするようにしたから、仮に、被テスト回路の出力値が出力期待値と一致しない場合であってもエラーと判定されることはない。そして、被テスト回路の初期化が完了し、テストパターンで特定されるテスト信号の入力に対し、被テスト回路の出力値として出力期待値が得られる状態となったときには、通常どおり出力値と出力期待値との照合が行われるから、この時点から的確にエラー判定が行われることになる。
【００１６】
また、請求項３に係るテスト装置は、テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト装置において、前記照合によりエラーが発生したときのテストパターン位置を特定するエラー情報を記憶するエラー情報記憶手段と、実行すべきパターンリストによる検証をこれ以前に行ったときのパターンリスト内容が格納されるバックアップ手段と、前記実行すべきパターンリストの内容と前記バックアップ手段に格納されたパターンリスト内容との相違位置を検索する相違位置検索手段と、前記エラー情報記憶手段にエラー情報が格納されているとき又は前記相違位置検索手段で相違位置を検出したときの何れかの場合には、前記エラー情報又は前記相違位置で特定されるテストパターン位置以前の所定のテストパターン位置を再実行開始位置として設定し、前記エラー情報記憶手段にエラー情報が格納され且つ前記相違位置検索手段で相違位置を検出したときには、前記エラー情報に基づいて特定されるエラー発生位置及び前記相違位置検索手段で検出した相違位置のうちの何れか先に実行される方のテストパターン位置以前の所定のテストパターン位置を再実行開始位置として設定する再実行開始位置設定手段と、前記実行すべきパターンリストが前記エラーが発生したパターンリストであるとき又は前記相違位置検索手段で相違位置が検出されているとき、前記パターンリストを、前記再実行開始位置設定手段で設定された再実行開始位置から開始する再実行手段と、当該再実行手段により前記検証が前記再実行開始位置から再実行されるとき、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にする判定無効手段と、を備えることを特徴としている。
【００１７】
この請求項３に係る発明では、照合によりエラーが発生したときのテストパターン位置を特定する情報をエラー情報記憶手段に記憶しておく。そして、実行すべきパターンリストが、これ以前に実行されておりそのときエラーが発生したパターンリストである場合には、再実行開始位置設定手段によって、エラー情報記憶手段のエラー情報に基づいてエラーが発生位置以前の所定のテストパターン位置が再実行開始位置として設定される。また、実行すべきパターンリストに対し、相違位置検索手段で相違位置が検出されているときには、この相違位置以前の所定のテストパターン位置を再実行開始位置として設定する。また、実行すべきパターンリストに対するエラー情報がエラー情報記憶手段に格納されており且つ相違位置検索手段で相違位置が検出されたときには、エラーの発生位置及び信号内容が変更されている相違位置の何れか先に実行される位置以前の所定のテストパターン位置が再実行開始位置として設定される。そして、再実行手段によって、再実行開始位置からパターンリストによる検証が開始され、すなわち必ずしもパターンリストの先頭から開始されるのではなく、場合によってはパターンリストの途中から開始される。したがって、その分、テスト時間の短縮が図られることになる。
【００１８】
また、このとき、パターンリストの途中から検証を開始する場合、記憶手段の記憶値が不定であるため、被テスト回路の出力値と出力期待値とが一致しない場合がある。しかしながら、再実行開始位置から検証を開始する場合には、判定無効手段によって、再実行開始後のテスト信号に応じて被テスト回路が初期化されるまでの間、被テスト回路の出力値に対しエラーと判定しない状態とするようにしたから、仮に、被テスト回路の出力値が出力期待値と一致しない場合であってもエラーと判定されることはない。そして、被テスト回路の初期化が完了し、テストパターンで特定されるテスト信号の入力に対し、被テスト回路の出力値として出力期待値が得られる状態となったときには、通常どおり出力値と出力期待値との照合が行われるから、この時点から的確にエラー判定が行われることになる。
【００１９】
また、請求項４に係るテスト装置は、前記判定無効手段は、前記被テスト回路が初期化されるまでの間、前記テストパターンとして設定された前記出力期待値を不定値に変更するようになっていることを特徴としている。
この請求項４に係る発明では、被テスト回路が初期化されるまでの間、出力期待値が不定値に変更される。したがって、被テスト回路の出力値がどのような値であっても出力期待値は不定値であるから、照合によりエラーと判定されることはない。
【００２０】
また、請求項５に係るテスト装置は、前記被テスト回路を初期化するために必要なテスト信号を１テストサイクルとし、当該テストサイクル単位で検証を行うようにしたテスト装置であって、前記再実行開始位置設定手段は、前記エラー情報に基づいて前記再実行開始位置を設定するときには、エラー発生位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、前記再実行開始位置として設定するようになっていることを特徴としている。
【００２１】
この請求項５に係る発明では、再実行開始位置設定手段は、エラーが発生したテストパターン位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、再実行開始位置として設定する。したがって、再実行開始位置から検証を開始した場合、このテストサイクルにおいては、被テスト回路が初期化されていないため、この時点では、被テスト回路の出力値に対し出力値の照合を行ったとしても被テスト回路を的確に検証を行うことはできない。しかしながら、その次のテストサイクル、つまり、エラーが発生したテストパターン位置に相当するテストサイクルでは、被テスト回路の初期化が完了しているから、この時点以降、的確に検証を行うことが可能となる。
【００２２】
また、請求項６に係るテスト装置は、前記被テスト回路を初期化するために必要なテスト信号を１テストサイクルとし、当該テストサイクル単位で検証を行うようにしたテスト装置であって、前記再実行開始位置設定手段は、前記相違位置に基づいて前記再実行開始位置を設定するときには、前記テスト信号が相違する場合には前記相違位置に相当するテストサイクルで特定されるテストパターン位置を前記再実行開始位置として設定し、前記出力期待値が相違する場合には前記相違位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、前記再実行開始位置として設定するようになっていることを特徴としている。
【００２３】
この請求項６に係る発明では、再実行開始位置設定手段は、相違位置検索手段で検索した相違位置が出力期待値であるときには、相違位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、再実行開始位置として設定する。したがって、再実行開始位置から検証を開始した場合、このテストサイクルにおいては、被テスト回路が初期化されていないため、この時点では、被テスト回路の出力値に対し出力値の照合を行ったとしても被テスト回路を的確に検証することはできない。しかしながら、その次のテストサイクル、つまり、エラーが発生したテストパターン位置に相当するテストサイクルでは、被テスト回路の初期化が完了しているから、この時点以降、的確に検証を行うことが可能となる。
【００２４】
一方、相違位置検索手段で検索した相違位置がテスト信号であるときには、相違位置に相当するテストサイクルで特定されるテストパターン位置を、再実行開始位置として設定する。したがって、再実行開始位置から検証を開始した場合、相違位置として変更されたテスト信号に応じて被テスト回路が初期化された後、その次のテストサイクルでその出力値に対して照合が行われることになるから、テスト信号が変更された位置に相当するテストサイクル、つまり、同じテストサイクルで特定されるテストパターン位置を再実行開始位置として設定することにより、不必要なテストサイクルを実行することなく、的確に被テスト回路の検証を行うことが可能となる。
【００２５】
また、請求項７に係るテスト装置は、前記被テスト回路は、スキャンフリップフロップ回路を有する論理回路であって、前記テストパターンは、前記論理回路に対するスキャンテスト用のテストパターンであることを特徴としている。
この請求項７に係る発明では、被テスト回路としてスキャンフリップフロップ回路を有する論理回路が適用され、スキャンテスト用のテストパターンを用いて検証を行う場合に適用される。ここで、スキャンテスト用のテストパターンからなるパターンリストのデバッグ等を行う場合、テストパターンによる検証の実行及びテストパターンの修正等を順次行いながら、パターンリストを繰り返し実行することになる。しかしながら、パターンリストによる検証を再実行する場合には、必ずしもパターンリストの先頭から開始するのではなく、再実行開始位置として設定されたテストパターン位置から検証が開始されるから、その分、デバッグ時間を短縮することができ、特に、デバッグ時等、繰り返しパターンリストを実行する場合に有効である。
【００２６】
また、請求項８に係るテスト方法によれば、テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト方法において、前記照合によりエラーが発生したときのテストパターン位置を特定する情報をエラー情報として記憶しておき、前記エラーが発生したパターンリストによる検証を再実行する場合には、前記エラー情報に基づいて特定されるエラー発生位置以前の所定のテストパターン位置から再実行し且つ再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にするようにしたことを特徴としている。
【００２７】
この請求項８に係る発明では、照合によりエラーが発生したときのテストパターン位置を特定する情報をエラー情報として記憶しておき、このエラーが発生したパターンリストを再度実行するときには、エラー情報に基づいてエラー発生位置以前の所定のテストパターン位置が再実行開始位置として設定され、この再実行開始位置からこのパターンリストによる検証が開始される。すなわち必ずしもパターンリストの先頭から開始されるのではなく、場合によってはパターンリストの途中から再開される。したがって、その分、テスト時間の短縮が図られることになる。
【００２８】
また、このとき、パターンリストの途中から検証を開始する場合、記憶手段の記憶値が不定であるため、被テスト回路の出力値と出力期待値とが一致しない場合がある。しかしながら、再実行開始位置から検証を開始する場合には、再実行開始後のテスト信号に応じて被テスト回路が初期化されるまでの間、被テスト回路の出力値に対し、エラーと判定しない状態とするようにしたから、仮に、被テスト回路の出力値が出力期待値と一致しない場合であってもエラーと判定されることはない。そして、被テスト回路の初期化が完了し、テストパターンで特定されるテスト信号の入力に対し、被テスト回路の出力値として出力期待値が得られる状態となったときには、通常どおり出力値と出力期待値との照合が行われるから、この時点から的確にエラー判定が行われることになる。
【００２９】
また、請求項９に係るテスト方法は、テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト方法において、実行すべきパターンリストの内容と、このパターンリストをこれ以前に行ったときのパターンリスト内容との相違位置を検索し、当該相違位置を検出したときには、この相違位置以前の所定のテストパターン位置から、前記パターンリストによる検証を開始し且つ再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にするようにしたことを特徴としている。
【００３０】
この請求項９に係るテスト方法では、実行すべきパターンリストを先に実行したときの内容と今回の内容との相違位置を検索し、検出した相違位置以前の所定のテストパターン位置を再実行開始位置としてこの再実行開始位置からこのパターンリストによる検証を開始し、すなわち必ずしもパターンリストの先頭から開始するのではなく、場合によっては、パターンリストの途中から開始する。したがって、その分、テスト時間の短縮が図られることになる。
【００３１】
また、このとき、パターンリストの途中から検証を開始する場合、記憶手段の記憶値が不定であるため、被テスト回路の出力値と出力期待値とが一致しない場合がある。しかしながら、再実行開始位置から検証を開始する場合には、再実行開始後のテスト信号に応じて被テスト回路が初期化されるまでの間、被テスト回路の出力値に対しエラーと判定しない状態とするようにしたから、仮に、被テスト回路の出力値が出力期待値と一致しない場合であってもエラーと判定されることはない。そして、被テスト回路の初期化が完了し、テストパターンで特定されるテスト信号の入力に対し、被テスト回路の出力値として出力期待値が得られる状態となったときには、通常どおり出力値と出力期待値との照合が行われるから、この時点から的確にエラー判定が行われることになる。
【００３２】
さらに、請求項１０に係るテスト方法は、テスト信号の入力に対し、記憶手段に記憶されているこれ以前に入力されたテスト信号に基づく記憶値に応じて一意に特定される値を出力し且つ前記記憶手段の記憶値を前記テスト信号に応じて初期化可能な被テスト回路に対し、前記テスト信号とこのテスト信号の入力に対して期待される出力期待値とを特定する複数のテストパターンからなるパターンリストにしたがって、前記テストパターンの並び順に前記テスト信号を前記被テスト回路に順次入力し、このときの前記被テスト回路の出力値と前記出力期待値とを照合することにより前記被テスト回路の検証を行うようにしたテスト方法において、前記照合によりエラーが発生したときのテストパターン位置を特定するエラー情報を記憶しておき、実行すべきパターンリストに対し、前記エラー情報が記憶されているかを検索すると共に、実行すべきパターンリストの内容と、このパターンリストをこれ以前に行ったときのパターンリスト内容との相違位置を検索し、前記エラー情報及び前記相違位置の何れかが検出されたときにはこれから特定されるテストパターン位置以前の所定のテストパターン位置を再実行開始位置として設定し、前記エラー情報及び前記相違位置が共に検出されたときには、これらから特定されるテストパターン位置のうちの何れか先に実行される方のテストパターン位置に基づいてこれ以前の所定のテストパターン位置を再実行開始位置として設定し、前記実行すべきパターンリストを前記再実行開始位置から開始すると共に、前記再実行開始後の前記テスト信号に応じて前記被テスト回路が初期化されるまでの間、前記被テスト回路の出力値に対しエラーと判定しない状態にするようにしたことを特徴としている。
【００３３】
この請求項１０に係る発明では、照合によりエラーが発生したときのテストパターン位置を特定する情報を記憶しておく。そして、実行すべきパターンリストが、これ以前に実行されそのときエラーが発生したパターンリストである場合には、エラー情報に基づいてエラーが発生した位置以前の所定のテストパターン位置を再実行開始位置とし、また、実行すべきパターンリストに対し、相違位置を検出したときには、この相違位置以前の所定のテストパターン位置を再実行開始位置とする。さらに、実行すべきパターンリストに対するエラー情報が検出され且つ相違位置が検出されたときには、エラーの発生位置及び信号内容が変更されている位置の何れか先に実行される位置以前の所定のテストパターン位置を再実行開始位置とし、この再実行開始位置からこのパターンリストによる検証を開始し、すなわち必ずしもパターンリストの先頭から開始するのではなく、場合によってはパターンリストをその途中から再開する。したがって、その分、テスト時間の短縮が図られることになる。
【００３４】
また、このとき、パターンリストの途中から検証を開始する場合、記憶手段の記憶値が不定であるため、被テスト回路の出力値と出力期待値とが一致しない場合がある。しかしながら、再実行開始位置から検証を開始する場合には、再実行開始後のテスト信号に応じて被テスト回路が初期化されるまでの間、被テスト回路の出力値に対しエラーと判定しない状態とするようにしたから、仮に、被テスト回路の出力値が出力期待値と一致しない場合であってもエラーと判定されることはない。そして、被テスト回路の初期化が完了し、テストパターンで特定されるテスト信号の入力に対し、被テスト回路の出力値として出力期待値が得られる状態となったときには、通常どおり出力値と出力期待値との照合が行われるから、この時点から的確にエラー判定が行われることになる。
【００３５】
【発明の実施の形態】
以下に、本発明の実施の形態を説明する。
図１は、本発明におけるテスト装置の一例を示す概略構成図であって、設計段階におけるロジック回路の検証を行う、論理シミュレータに適用したものである。図１において、１０は論理シミュレータとしてのテスト装置、２０はテスト対象としての設計段階の被テスト回路である。
【００３６】
図２は、前記被テスト回路２０の一例であって、例えば、２ビットのシフトレジスタを構成するスキャンフリップフロップＳＦＦ１、ＳＦＦ２と、組み合わせ回路としてのＡＮＤ回路２２とを含んで構成されている。前記スキャンフリップフロップＳＦＦ１、ＳＦＦ２において、Ｄは、それぞれ通常動作モード時のデータが入力されるデータ入力端子、ＳＩＮはスキャン動作モード時のデータが入力されるスキャン入力端子、ＳＥＮは通常動作モード及びスキャン動作モードとの間でモード切り替えを行うためのスキャンイネーブル端子、ＣＫは通常動作モード及びスキャン動作モードにおいて兼用されるクロック信号を入力するクロック入力端子、ＮＲＳＴは負論理のリセット入力端子、Ｑは出力端子である。
【００３７】
そして、通常動作モード時における入力信号Ｄ１、Ｄ２のうち、入力信号Ｄ１は、１段目のスキャンフリップフロップＳＦＦ１のデータ入力端子Ｄに入力され、入力信号Ｄ２はＡＮＤ回路２２の一方の入力端子に入力される。そして、このＡＮＤ回路２２の他方の入力端子には、スキャンフリップフロップＳＦＦ１の出力端子Ｑからの出力が入力され、ＡＮＤ回路２２の出力が、２段目のスキャンフリップフロップＳＦＦ２のデータ入力端子Ｄに入力される。
【００３８】
また、スキャン動作モード時におけるスキャンデータは１段目のスキャンフリップフロップＳＦＦ１のスキャン入力端子ＳＩＮに入力され、１段目のスキャンフリップフロップＳＦＦ１の出力が２段目のスキャンフリップフロップＳＦＦ２のスキャン入力端子ＳＩＮに入力される。そして、このスキャンフリップフロップＳＦＦ２の出力がスキャンパス出力として出力される。
【００３９】
前記スキャンフリップフロップＳＦＦ１、ＳＦＦ２は、例えば、図３に示すように、公知のマルチプレクサタイプのスキャンフリップフロップであって、マルチプレクサＭＵＸと、フリップフロップ回路ＦＦとから構成されている。
そして、通常動作モード時には、スキャンイネーブル端子ＳＥＮへの入力を“０”固定とすることによって、スキャンフリップフロップＳＦＦ１、ＳＦＦ２の内部のマルチプレクサＭＵＸは、スキャンフリップフロップＳＦＦ１、ＳＦＦ２の通常動作モード時のデータ入力端子Ｄへの入力信号を選択し、これをフリップフロップ回路ＦＦのデータ入力端子Ｄへ入力する。これによって、図４に示すように、１段目のスキャンフリップフロップＳＦＦ１のデータ入力端子Ｄへの入力信号Ｄ１に応じた出力端子Ｑの出力と、入力信号Ｄ２とがＡＮＤ回路２２に入力され、その出力が２段目のスキャンフリップフロップＳＦＦ２のデータ入力端子Ｄへ入力され、その出力が、被テスト回路２０の出力として出力される。
【００４０】
一方、スキャン動作モード時には、スキャンイネーブル端子ＳＥＮへの入力を“１”とする。これによって、スキャンフリップフロップＳＦＦ１、ＳＦＦ２のマルチプレクサＭＵＸが、スキャン入力端子ＳＩＮへの入力信号を選択する。このため、図５に示すように、１段目のスキャンフリップフロップＳＦＦ１のスキャン入力端子ＳＩＮへの入力信号に応じた出力端子Ｑからの出力が、２段目のスキャンフリップフロップＳＦＦ２のスキャン入力端子ＳＩＮに入力され、すなわち、２ビットのシフトレジスタとして動作し、これに応じた出力端子Ｑからの出力が、スキャンパス出力として出力される。
【００４１】
前記テスト装置１０は、前記被テスト回路２０のスキャンパステストを行うための複数のテストパターンからなるパターンリスト及びテスト情報を入力する。そして、これらに基づいて被テスト回路２０にテスト用信号を出力すると共に、被テスト回路２０のスキャンパス出力を入力し、これに基づいて被テスト回路２０のテストを行う。そして、検証エラーを検出した場合には、エラー発生時のテストパターンを特定するためのパターン番号をエラー情報格納部１２に格納する。また、このときのスキャンパステストに用いたパターンリストからなるテストファイルをバックアップファイルとしてバックアップファイル格納部１４に格納しておく。このとき、バックアップファイルのファイル名としては、例えば、テストファイルのファイル名に任意の拡張子を有するファイル名となるように構成し、テスト装置１０において、次にこのパターンリストに基づいて検証を行うときに、このパターンリストからなるテストファイルと、このテストファイルに対応するバックアップファイルとの対応付けが可能となるようにしている。
【００４２】
前記パターンリストは、例えば図６に示すように、異なるパターンに設定された複数のテストパターンから構成され、各テストパターンには、これらを識別するためのパターン番号が実行する順に昇順に付与されている。また、テストパターンは、１スキャンサイクル単位のテストベクタで構成され、図２の場合には、２ビットのスキャンパスを構成するから、例えばパターン番号“１”のテストパターンは、“１Ｘ１Ｌ”として設定される。前記テストパターンは、被テスト回路２０の論理検証を行うための入力信号値（入力ベクタ）及び出力期待値（出力ベクタ）からなるテストベクタで構成され、図６の場合、スキャン入力信号値は“０”又は“１”で表示し、スキャン出力期待値は“Ｌ”（論理値“０”に相当）、“Ｈ”（論理値“１”に相当）、“Ｘ”（不定値）、“Ｚ”（ハイインピーダンス）の何れかで表示している。
【００４３】
なお、２ビットのスキャンパスの場合、２ビットのスキャン信号を入力し終えた時点で、スキャンパスの出力が特定されるから、パターン番号“１”のテストパターンの、初めのスキャン入力“１”に対する出力期待値は、“Ｘ”、つまり不定としている。
そして、図６に示すように、パターン番号の順に各テストパターンにしたがって、パターンリストにしたがって順次検証を行うことによって、被テスト回路２０に対するスキャンテストが行われるようになっている。
【００４４】
図７は、テスト情報の一例を示したものであって、入力信号Ｄ１、Ｄ２、スキャンイネーブル信号、クロック信号及びリセット信号ＮＲＳＴの出力タイミングを特定する情報から構成されている。
そして、テスト装置１０は、前記テスト情報及びパターンリストに基づいて、スキャンテスト用の各信号を出力する。このとき、前記パターン番号の昇順に、テストパターンで特定されるスキャン入力信号値（“１”又は“０”）に基づいて前記スキャンデータＳＩＮを設定する。そして、各スキャンデータＳＩＮを出力したときのスキャン出力がそれぞれテストパターンで特定されるスキャン出力信号値（“Ｌ”、“Ｈ”、“Ｘ”、“Ｚ”の何れか）と一致するかを判断する。
【００４５】
そして、これらが一致するときには次のテストパターンに移行し、同様にしてスキャン出力と出力期待値との照合を行う。なお、一のスキャンサイクルにおける入力ベクタに対するスキャン出力の検証は、この次のスキャンサイクルにおける出力ベクタに基づいて行うようになっている。
一方、スキャン出力と出力期待値とが一致しないときには、検証エラーが発生したときのテストパターンを特定するパターン番号からなるエラー情報ファイルを作成する。例えば、パターン番号“２”において検証エラーが発生した場合には、「ＥＲＲＯＲ  ＰＡＴ＝２」からなるエラー情報ファイルを作成し、これをエラー情報格納部１２に格納する。
【００４６】
また、テスト装置１０は、スキャンテストを行うためのパターンリストからなるテストファイルを読み込んだときに、この時点より前に、このテストファイルを用いてスキャンテストを行っている場合には、このテストファイル及びこのバックアップファイルとを比較することによって、前回及び今回とでテストベクタの変更があったかどうかを検索すると共にエラー情報の有無の検索を行う。そして、テストベクタの変更があればその変更箇所のパターン番号と、エラー情報として格納されたパターン番号とのうち番号の若い方を選択し、これに基づいて再実行開始パターン番号を設定し、この再実行開始パターン番号として設定されたパターン番号位置のテストパターンから順に、スキャンテストを行う。また、このとき、再実行開始パターン番号として設定されたパターン番号位置のテストパターンのスキャン出力の期待値を不定値“Ｘ”に設定する。つまり、２ビットのスキャンパスの場合、２ビットのスキャンデータが入力された時点でスキャン出力は特定される。よって、再実行開始パターン番号に対応するテストパターンにしたがって、スキャンテストを行った場合に、スキャン出力が不定状態であることに起因して、スキャン出力がテストパターンで特定される出力期待値と一致しないために、検証エラーと判定されることを回避するようにしている。
【００４７】
なお、ここでは、再実行開始パターン番号として設定されたパターン番号位置におけるテストパターンのスキャン出力の期待値を共に不定値“Ｘ”にするようにした場合について説明したが、必ずしも共に出力期待値を不定値とする必要はない。つまり、２段目のスキャンフリップフロップＳＦＦ２の出力は、スキャンフリップフロップＳＦＦ１、ＳＦＦ２が各信号を取り込むタイミングと、スキャン出力端子の信号値を期待値照合するタイミングとの関係により、不定となるか又はスキャン入力信号に応じた値となるので、タイミング情報として、１スキャンサイクルで、スキャン入力信号に応じたスキャン出力が得られるように設定されている場合には、テストパターンの最右端の出力期待値を不定値とする必要はなく、テストパターンとして設定された値を用いるようにしてもよい。
【００４８】
次に、上記実施の形態の動作を図８のフローチャートを伴って説明する。なお、図８は、テスト装置１０のスキャンテスト実行時の処理手順の一例を示すフローチャートである。
今、図６に示すパターンリスト、また、図７に示すテスト情報に基づいて、図２に示す被テスト回路２０に対するスキャンテストを行うものとする。
【００４９】
テスト装置１０では、まず、パターンリストからなるテストファイル（ファイル名ＴＥＳＴ．ＰＡＴ）及び、テスト情報を読み込む。
そして、テストファイルのファイル名ＴＥＳＴ．ＰＡＴに基づいて、バックアップファイル格納部１４に、ファイル名ＴＥＳＴ．ＰＡＴに対応するバックアップファイルが存在するかどうかを検索する。また、対応するバックアップファイルが存在する場合には、このスキャンテスト実行時の処理が動作するシステム上のオペレーティングシステムが管理するファイルの更新日時を用いて、テストファイルの更新が行われたかどうかを判断する（ステップＳ２）。
【００５０】
ここで、テストファイル（ファイル名ＴＥＳＴ．ＰＡＴ）に基づくスキャンテストをテスト装置１０において初めて行う場合には、バックアップファイルは存在しない。また、エラー情報としても登録されていない。
したがって、ステップＳ２からステップＳ３を経てステップＳ４に移行し、再実行開始パターン番号として、テストパターンの先頭のテストパターンに付与されているパターン番号を設定する。つまり、図６の場合には、パターン番号“１”を再実行開始パターン番号として設定する。
【００５１】
次いで、ステップＳ５に移行し、ファイル名ＴＥＳＴ．ＰＡＴのテストファイルのバックアップファイルを、例えば、ファイル名ＴＥＳＴ．ＢＡＫとして生成し、これをバックアップファイル格納部１４に格納する。
そして、ステップＳ６に移行し、ファイル名ＴＥＳＴ．ＰＡＴのテストパターンにしたがって、再実行開始パターン番号として指定されたテストベクタから順に、スキャンテストを実行する。また、このとき、再実行開始パターン番号として指定されたテストパターンについて、そのテストベクタの出力期待値を“Ｘ”に更新する。
【００５２】
この場合、再実行開始パターン番号としてパターン番号“１”が設定されているから、パターン番号“１”のテストパターンにしたがって、スキャン入力信号を設定し、テスト情報で特定されるタイミングで出力する。また、スキャン出力として被テスト回路２０から出力されるスキャン出力とテストパターンで特定される出力期待値とを比較し、これらが一致するとき正常と判断し、パターン番号の昇順にしたがって、順次スキャンテストを実行する。一方、スキャン出力とスキャン出力の期待値とが一致しないときには、検証エラーと判断する。
【００５３】
ここで、パターン番号“１”のテストパターンでは、出力期待値は共に“Ｘ”に設定し不定値としているから、検証エラーは発生しない。
なお、通常、パターン番号“１”のテストパターンを実行する際には、１スキャンサイクルが終了するまでスキャン出力は不定であることから期待値の照合は行わないようになっている。したがって、パターン番号“１”の期待値照合を行わないようにしても何ら問題はない。
【００５４】
続いて、パターン番号“２”のテストパターンを実行した際に、検証エラーを検出した場合には、ステップＳ７からステップＳ８に移行し、エラー情報としてパターン番号“２”で検証エラーが発生したという旨のエラー情報ファイルを生成しこれをエラー情報格納部１２に格納する。なお、このとき、先にエラー情報ファイルが格納されている場合にはこれを削除し、今回作成したエラー情報ファイルを新たに更新記憶する。また、例えば、テスト装置１０の図示しない表示装置に検証エラーが発生したことを表示する等を行って、検証エラーが発生したことをオペレータに通知する。そして、処理を終了する。
【００５５】
これによって、オペレータがテストベクタの修正を行い、例えば図９に示すように、パターン番号“１”のテストパターンにおいて、その出力期待値を変更し、このテストパターンに基づき再度スキャンテストを行うものとする。
テスト装置１０では、上記と同様にして更新後のパターンリストからなるテストファイル（ファイル名ＴＥＳＴ．ＰＡＴ）、及びテスト情報を読み込み（ステップＳ１）、テストパターンの更新の有無を判断する（ステップＳ２）。ここで、バックアップファイル格納部１４には、先にこのテストファイルを実行した際のテストファイルのバックアップファイルＴＥＳＴ．ＢＡＫが格納されているが、今回新たに読み込んだテストファイルＴＥＳＴ．ＰＡＴは、更新されており、バックアップファイルＴＥＳＴ．ＢＡＫと更新日時が異なる。
【００５６】
したがって、ステップＳ２からステップＳ１１に移行し、新たに読み込んだテストファイルＴＥＳＴ．ＰＡＴとバックアップファイルＴＥＳＴ．ＢＡＫとを各テストパターン毎に比較して相違箇所の検索を行う。そして、相違箇所がなければ、そのまま前記ステップＳ３に移行する。一方、相違箇所がある場合には、ステップＳ１２からステップＳ１３に移行し、相違箇所のうちパターン番号が最も若いものを選択する。図９の場合、パターン番号“１”のテストパターンが異なっているから、パターン番号“１”が修正開始番号となる。
【００５７】
次いで、ステップＳ１４に移行し、修正開始番号とエラー発生番号との比較を行う。このエラー発生番号は、先にこのパターンリストを実行した際に、エラー情報ファイルとしてエラー情報格納部１２に格納した、エラー情報ファイルに格納されている検証エラーが発生したパターン番号である。この場合、エラー情報としてパターン番号“２”が格納されているから、修正開始番号は“１”、エラー発生番号は“２”となり、エラー発生番号の方が修正開始番号よりも大きく、つまり、修正開始番号のテストパターンの方が先に実行されるから、ステップＳ１４からステップＳ１５に移行する。そして、この場合、出力期待値つまり出力ベクタが変更されているから、再実行開始パターン番号として修正開始番号から“１”を減算した値を、再実行開始パターン番号として設定する。この場合、修正開始番号が“０”となるが、このように、修正開始番号が“０”となる場合には、修正開始番号を“１”として設定するものとする。
【００５８】
そして、ステップＳ５に移行し、上記と同様にしてパターンリストのバックアップファイルＴＥＳＴ．ＢＡＫを作成し、これをバックアップファイル格納部１４に更新記憶する。
次いで、ステップＳ６に移行し、パターンリストにしたがってスキャンテストを行う。このとき再実行開始パターンとしてパターン番号“１”が設定されているから、図９に示す、更新が行われたパターン番号“１”のテストパターンからスキャンテストを開始する。
【００５９】
そして、図９のパターンリストにしたがって、順次スキャンテストを実行し、例えばパターン番号“４”において検証エラーが発生した場合、今度はパターン番号“４”からなるエラー情報ファイルが生成されて、これがエラー情報格納部１２に格納される。
これを受けて、オペレータが今度は、テスト情報を修正し、その後テストを再度行うものとすると、テスト装置１０では、パターンリスト及びテスト情報の読み込み行い（ステップＳ１）、テストパターンの更新の有無を検索するが（ステップＳ２）、この場合、テストパターンの更新は行われていないから、ステップＳ２からステップＳ３に移行する。そして、エラー情報として、パターン番号“４”が登録されているから、ステップＳ３からステップＳ１６に移行し、エラー発生番号、つまり、パターン番号“４”から１を減算したパターン番号を再実行開始パターン番号として設定する。
【００６０】
このように、エラー発生番号から１テストパターン分を減算することによって、エラー発生前の状態を、スキャンシフト動作によってスキャンフリップフロップに記憶させることができる。つまり、エラー発生番号に該当するテストパターンを実行する時点では、パターンリストの先頭のテストパターンから順にスキャンテストを実行したときと同等の状態が再現されることになる。
【００６１】
なお、ここでは、エラー発生番号から１テストパターン分を減算するようにし、すなわち、１テストパターンは１スキャンサイクルであって、１スキャンサイクルが経過した時点で、エラー発生前の状態を、スキャンシフト動作によってスキャンフリップフロップに記憶させることができるため、１テストパターン分を減算するようにしている。したがって、例えば２テストパターンでエラーが発生する前の状態を再現することができる場合には、２テストパターン分を減算すればよい。つまり、エラー発生番号のテストパターンを実行する時点での正常状態におけるスキャンフリップフロップの状態を再現することができるパターン番号を設定するようにすればよい。
【００６２】
そして、ステップＳ５に移行し、スキャンテストを行ったテストファイルのバックアップファイルを作成し、これをバックアップファイル格納部１４に格納する。この場合、テストベクタの更新は行われていないから、実質的には同じバックファイルが格納されることになる。
そして、ステップＳ６に移行し、再実行開始パターン番号で特定されるテストパターンからスキャンテストを開始する。つまり、図１０に示すように、パターン番号“３”のテストパターンからスキャンテストを開始し、また、このとき、再実行開始パターン番号に相当するテストパターンこの場合、パターン番号“３”の出力期待値は“Ｘ”として期待値照合を行う。つまり、実際には、テストベクタの更新を行っていないため、パターン番号“３”のテストパターンとしては図９に示すように、“１Ｌ０Ｈ”として設定されているから、出力期待値は“Ｌ”、“Ｈ”となるが、再実行する場合には、出力期待値は図１０に示すようにそれぞれ“Ｘ”であるとして処理を行う。
【００６３】
ここで、パターン番号“３”からテストを再開した場合、再実行開始直後のスキャンシフト動作に伴うスキャン出力は不定状態にあるため、出力期待値として設定されている値を示さない場合がある。しかしながら、再実行を開始する場合には、出力期待値を“Ｘ”として照合を行うようにしているから、再実行開始直後のスキャン出力が不定状態にあることに起因して、期待値照合による検証エラーが発生することを防止することができる。
【００６４】
そして、パターン番号“３”から順次テストを行い、所定のテストパターンについてエラーが発生することなく検証が終了したならば、ステップＳ７からステップＳ１７に移行し、エラー情報格納部１２にエラー情報ファイルが格納されているかどうかを判定する。この場合、エラー情報としてパターン番号“４”が登録されているから、ステップＳ１７からステップＳ１８に移行し、このエラー情報ファイルをエラー情報格納部１２から削除した後、処理を終了する。
【００６５】
また、例えば、図６のテストパターンにおいて、パターン番号“４”において検証エラーが発生し、これに基づいて、パターン番号“３”のテストパターンを変更し、入力ベクタを更新した場合には、修正開始番号は“３”、エラー発生番号は“４”であって、パターン番号“３”の入力ベクタを変更したから、パターン番号“３”が再実行開始パターン番号として設定される。そして、パターン番号“３”のテストベクタにしたがって、テストが行われ、このとき、このパターン番号“３”の出力期待値は、不定として照合が行われる。
【００６６】
ここで、パターン番号“３”の入力ベクタの変更が行われているが、このテストパターンに対する検証は、次のスキャンサイクルつまり、パターン番号“４”のテストベクタに基づいて行われるから、修正開始番号からスキャンテストを再実行したとしても問題はない。
一方、このとき、例えば、テスト情報の変更等に伴って出力ベクタを変更した場合には、パターン番号“３”の入力ベクタを変更したから、修正開始番号“３”から“１”を減算した値、つまり“２”が再実行開始パターン番号として設定される。そして、パターン番号“２”のテストパターンにおいてその出力期待値が不定として照合が行われる。したがって、パターン番号“２”のテストパターンにしたがってスキャンテストを再実行することにより、パターン番号“２”のスキャンサイクルにおいてスキャン出力が確定した後に、出力ベクタを変更したパターン番号“３”のテストパターンにしたがってスキャンテストが行われる。つまり、パターン番号“３”のテストパターンにおける出力期待値は、パターン番号“２”でのスキャンサイクルにおける入力ベクタによって決まるから、パターン番号“２”からスキャンテストを再実行することによって、この出力ベクタの変更に応じて的確に検証を行うことができる。
【００６７】
なお、入力ベクタ及び出力ベクタを共に変更した場合には、修正開始番号から“１”を減算した値を、再実行開始パターン番号として設定する。
このように、検証エラーが発生したときには、その発生したときのテストパターンのパターン番号をエラー情報ファイルとしてエラー情報格納部１２に格納しておき、発生した検証エラーに対して何らかの処理を施した後、再度このテストベクタを実行する場合には、エラー情報ファイルに格納されているエラー発生時のテストパターンのパターン番号と、検証エラーが発生したことによってテストベクタを変更した場合には、その変更したテストパターンのパターン番号との何れか若い方を選択し、選択されたパターン番号、又はこれよりも一つ前のパターン番号に相当するテストパターンから、スキャンテストを開始し、既に正常として判定されたテストパターンについては再度スキャンテストは行わないようにしたから、その分、スキャンテストに要する処理時間を短縮することができる。
【００６８】
また、このとき、検証エラーが発生したときのパターン番号つまり、エラー発生番号に該当するテストパターンからテストを再開するのではなく、エラー発生番号と変更したテストパターンのパターン番号つまり修正開始番号との何れか若い方を選択するようにしているから、検証エラーが発生したときのパターン番号よりも若いパターン番号のテストパターンを変更した場合であっても、このテストベクタによるテストを再実行する場合に、テストパターンの変更を確実に反映させることができる。
【００６９】
また、このとき、エラー発生番号或いは修正開始番号からスキャンテストを再開するのではなく、エラー発生番号或いは出力ベクタを補正した場合にはその修正開始番号よりも一つ前の番号に対応するテストパターンからスキャンテストを再開するようにし、且つ、この再開最初のテストパターンの出力期待値は不定値として取り扱うようにしたから、再開最初のテストパターンを実行したときに、実際のスキャン出力が不定であることに起因して再度検証エラーが発生することを回避することができると共に、エラー発生番号或いは修正開始番号に相当するテストパターンを実行する際には、スキャンフリップフロップの状態は、テストベクタの先頭のテストパターンから順にスキャンテストを行った場合と同等となるから、パターンリストの途中から開始した場合であっても的確にスキャンテストを行うことができる。
【００７０】
また、入力ベクタを補正した場合には、修正開始番号に対応するテストパターンからスキャンテストを再開するようにしているから、不必要にこれより一つ前のテストパターンからスキャンテストを再開することなく、的確な位置からスキャンテストの再開を行うことができる。
なお、上記実施の形態においては、２ビットのシフトレジスタを構成する被テスト回路２０に適用した場合について説明したが、これに限るものではなく、任意のビット数のシフトレジスタを構成する被テスト回路２０に適用することができる。
【００７１】
また、上記実施の形態においては、再実行開始パターン番号として、修正開始番号或いはエラー発生番号から１を減算したパターン番号、或いは修正開始番号を設定するようにした場合について説明したが、これに限るものではなく、少なくともこれよりも前のパターン番号を設定するようにすればよい。しかしながら、パターン番号をこれらよりもより若い値に設定することによって、その分、実行するテストパターンが増加することになるから、再実行開始パターン番号として、修正開始番号或いはエラー発生番号から１を減算したパターン番号を設定した方がスキャンテストに要する所要時間の短縮を図ることができる。さらに、このとき、再実行開始パターン番号として修正開始番号を設定する場合であり且つ入力ベクタを修正した場合には、修正開始番号からスキャンテストを再開することによって、より、スキャンテストに要する処理時間を短縮することができる。
【００７２】
また、上記実施の形態においては、エラー発生番号からなるエラー情報ファイルを生成しこれをエラー情報格納部１２に格納するようにした場合について説明したが、これに限るものではなく、例えば、再実行開始パターン番号として設定する際には、エラー発生番号から“１”を減算することを考慮して、予めエラー発生番号から“１”を減算した値をエラー情報として格納するようにしてもよく、要は、エラーが発生したときのテストパターンの位置を特定することができればどのような情報を格納するようにしてもよい。
【００７３】
また、上記実施の形態においては、再実行開始パターン番号にしたがってスキャンテストを再実行した場合、判定無効手段として、再実行開始パターン番号に相当するテストパターンの出力期待値を“Ｘ”つまり不定値に更新する処理を行い、これとスキャン出力とを照合することによって、再実行開始直後のスキャン出力の不定状態に起因する検証エラーを回避するようにした場合について説明したが、これに限らず、例えば、再実行開始パターン番号に相当するテストパターンについては出力期待値との照合を行わない、或いは検証エラーが発生してもエラーとして取り扱わない等、の対処を行う処理を行うようにしてもよい。
【００７４】
また、上記実施の形態においては、本発明におけるテスト装置を、設計段階で被テスト回路２０の検証を行う、論理シミュレータに適用した場合について説明したが、これに限るものではなく、実際にＩＣを製造した後に、品質チェックを行うための自動テスト装置等に適用することも可能であり、また、プリント基板にＩＣやその他電子部品を実装した状態でテストを行うための自動テスト装置（ボードテスタ）、システムが稼動している状態でＩＣ又はシステムの動作チェックを行うためのシステムチェッカ等であっても適用することができる。
【００７５】
また、上記実施の形態においては、テストパターンに対しこれを実行する順に昇順にパターン番号を付与した場合について説明したが、降順にパターン番号を付与するようにした場合であっても適用することができ、このパターン番号は、テストパターンの実行順序を管理するためのものであるから、実行順次を管理することができればどのような識別情報を付与してもよい。そして、図８のステップＳ１４〜１６の処理では、修正を行ったテストパターンと、エラーが発生したテストパターンの何れか先に実行する方を選択し、修正を行ったテストパターンを選択した場合にはこれを再実行を開始するテストパターンとして特定し、逆に、エラーが発生したテストパターンを選択した場合には、このテストパターンよりも一つ前に実行するテストパターンを再実行を開始するテストパターンとして特定するようにすればよい。
【００７６】
なお、上記実施の形態においては、エラー情報が発生し、これに伴う対処を行ってスキャンテストを再開するとき、或いは、テストベクタを変更したときには、再実行開始位置を設定し、ここから再実行するようにした場合について説明したが、エラー情報に伴うスキャンテストの中断から再開するときのみ、或いはテストベクタを変更したときにのみ、再実行開始位置を設定し、ここからスキャンテストを再開するようにしてもよいことはいうまでもない。
【００７７】
また、上記実施の形態においては、スキャンテストを実行したときに、そのテストファイルのバックアップファイルを作成しテスト装置において保存するようにした場合について説明したが、例えば、スキャンテストを実行する際に、先に実行したテストファイルと、今回実行するテストファイルとを、テスト装置１０で読み込むようにし、これらテストファイルを比較するようにしてもよい。
【００７８】
ここで、スキャンフリップフロップＳＦＦ１及びＳＦＦ２が記憶手段に対応し、エラー情報格納部１２がエラー情報記憶手段に対応し、バックアップファイル格納部１４がバックアップ手段に対応し、図８のステップＳ２、Ｓ１１及びＳ１２の処理が相違位置検索手段に対応し、ステップＳ１４〜Ｓ１６及びステップＳ４の処理が再実行開始位置設定手段に対応し、ステップＳ６において、再実行開始位置として設定されたパターン番号に対応するテストパターンからスキャンテストを行う処理が再実行手段に対応し、ステップＳ６において、再実行開始位置として設定されたパターン番号に対応するテストパターンの出力期待値を不定値に変更する処理が判定無効手段に対応している。
【００７９】
【発明の効果】
以上説明したように、本発明の請求項１乃至請求項１０に係るテスト装置及びテスト方法によれば、照合によるエラーが発生したときのテストパターン位置を特定する情報をエラー情報記憶手段に記憶しておき、このエラーが発生したパターンリストによる検証を再度行うときには、エラー情報記憶手段のエラー情報に基づいて、エラー発生位置以前の所定のテストパターン位置を再実行開始位置として設定し、また、実行すべきパターンリストによる検証を先に実行したときの内容と今回の内容との相違位置を検索し、検出した相違位置以前の所定のテストパターン位置を再実行開始位置として設定し、また、実行すべきパターンリストが、これ以前に実行されそのときエラーが発生したパターンリストであり且つそのパターンリスト内容が変更されている場合には、エラーの発生位置及びパターンリスト内容が変更されている位置の何れか先に実行される位置以前の所定のテストパターン位置を再実行開始位置として設定する。そして、このようにして設定した再実行開始位置からこのパターンリストによる検証を再度実行し、すなわち必ずしもパターンリストの先頭からではなく、場合によってパターンリストの途中から開始するようにしたから、その分、テスト時間の短縮を図ることができる。
【００８０】
また、このとき、再実行開始位置から検証を開始した場合、この時点で被テスト回路の記憶手段の記憶値は不定となるが、再実行開始後のテスト信号に応じて前記被テスト回路が初期化されるまでの間、つまり、記憶手段の記憶値がテスト信号に応じた値となり、被テスト回路の出力値が出力期待値と一致するようになるまでの間、被テスト回路の出力値に対しエラーと判定しない状態とするようにしたから、パターンリストによる検証を再実行開始位置から開始したために記憶手段の記憶値が不定であることに起因して、エラーが発生することを回避することができる。
【００８１】
特に、請求項４に係るテスト装置は、被テスト回路が初期化されるまでの間、テストパターンで規定されている出力期待値を不定値に変更するようにしたから、被テスト回路の出力値をエラーと判定しない状態を容易に実現することができる。
また、請求項５に係るテスト装置は、エラー情報に基づいて再実行開始位置を設定するときには、エラー発生位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、前記再実行開始位置として設定するようにしたから、エラー発生位置のテストパターンにしたがって検証を行う時点では、被テスト回路が初期化された状態で検証を行うことができ、適正に検証を行うことができると共に、不必要なテストパターンによる検証を行うことを回避することができる。
【００８２】
また、請求項６に係るテスト装置によれば、相違位置検出手段で検出された相違位置に基づいて再実行開始位置を設定するときには、テスト信号が相違する場合には前記相違位置に相当するテストサイクルで特定されるテストパターン位置を前記再実行開始位置として設定し、出力期待値が相違する場合には前記相違位置に相当するテストサイクルよりも１つ前のテストサイクルで特定されるテストパターン位置を、前記再実行開始位置として設定するようにしたから、不必要なテストパターンを実行することなく、適正にテストを行うことができる。
【００８３】
さらに、請求項７に係るテスト装置によれば、被テスト回路としてスキャンフリップフロップ回路を有する論理回路を適用し、スキャンテストを行う場合に適用するようにしたから、スキャンテストのテストパターンをデバッグする場合等、スキャンテストを途中で中止し、再度このスキャンテストを開始する場合等に有効である。
【図面の簡単な説明】
【図１】本発明を用いたテスト装置の一例を示す概略構成図である。
【図２】図１の被テスト回路２０の一例を示す構成図である。
【図３】図２のスキャンフリップフロップの詳細を示す図である。
【図４】被テスト回路２０の動作を説明するための図である。
【図５】被テスト回路２０の動作を説明するための図である。
【図６】テストパターンからなるパターンリストの一例である。
【図７】テスト情報の一例である。
【図８】テスト装置１０のスキャンテスト実行時の処理手順の一例を示すフローチャートである。
【図９】本発明の動作説明に供する説明図である。
【図１０】本発明の動作説明に供する説明図である。
【符号の説明】
１０  テスト装置
１２  エラー情報格納部
１４  バックアップファイル格納部
２０  被テスト回路
【図１】
2004272312.tif 000003
【図２】
2004272312.tif 000004
【図３】
2004272312.tif 000005
【図４】
2004272312.tif 000006
【図５】
2004272312.tif 000007
【図６】
2004272312.tif 000008
【図７】
2004272312.tif 000009
【図８】
2004272312.tif 000010
【図９】
2004272312.tif 000011
【図１０】
2004272312.tif 000012