(57)【要約】【課題】  強制終了に対応した個別機能テストを行うための技術を提供すること。また、LSIまたはそれを含んだシステムの論理検証を自動化しつつ、検証対象論理回路の構成に着目したテストパターンをも意図的に作り出す、高品質かつ効率的な論理回路検証手法を提供すること。【解決手段】  機能テストを行う前段で、機能ブロックが用いるハードウェア資源に係る情報を登録し、機能テストの実行中に強制終了指示を検知した場合には、登録した情報を解放し、機能テストの実行を強制終了させる。【選択図】    図１
2006145353.tif 000002
【特許請求の範囲】
【請求項１】
テスト装置であって、
複数のハードウェア資源のうちいくつかを用いて所定の機能を実現する機能ブロックについて機能テストを実行するテスト実行手段と、
前記テスト実行手段が機能テストを行う前段で、前記機能ブロックが用いるハードウェア資源に係る情報を登録する登録手段と、
前記テスト実行手段による機能テストの実行中に強制終了指示を検知した場合には、前記登録手段が登録した情報を解放し、前記テスト実行手段に機能テストの実行を強制終了させる制御手段と
を備えることを特徴とするテスト装置。
【請求項２】
前記制御手段は、前記テスト実行手段による機能テストの実行中に強制終了指示を検知した場合には、当該強制終了指示が前記機能ブロックに対するものであるか否かを判断し、
当該強制終了指示が前記機能ブロックに対するものである場合には、前記登録手段が登録した情報のうち、当該強制終了指示に関連付けてを解放し、前記テスト実行手段に機能テストの実行を強制終了させることを特徴とする請求項１に記載のテスト装置。
【請求項３】
テストシステムであって、
テストパターンをランダムに生成する第１の生成手段と、
指示された疎密レベルに応じた入力データのテストパターンを生成する第２の生成手段と、
前記第１の生成手段、もしくは前記第２の生成手段によって生成されたテストパターンをテスト対象の機器に入力し、当該機器から当該テストパターンに基づく出力データを取得する出力データ取得手段と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知手段と
を備えることを特徴とするテストシステム。
【請求項４】
テストシステムであって、
テスト対象の機器が有する複数種の回路構成のうち、テスト対象の回路構成を指示する指示手段と、
前記指示手段によって指示された回路構成に応じた入力データのテストパターンをランダムに生成する生成手段と、
前記生成手段によって生成されたテストパターンを前記機器に入力し、前記機器から当該テストパターンに基づく出力データを取得する出力データ取得手段と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知手段と
を備えることを特徴とするテストシステム。
【請求項５】
前記機器は、テスト対象としてのＬＳＩであることを特徴とする請求項３又は４に記載のテストシステム。
【請求項６】
テスト装置の制御方法であって、
複数のハードウェア資源のうちいくつかを用いて所定の機能を実現する機能ブロックについて機能テストを実行するテスト実行工程と、
前記テスト実行工程で機能テストを行う前段で、前記機能ブロックが用いるハードウェア資源に係る情報を登録する登録工程と、
前記テスト実行工程での機能テストの実行中に強制終了指示を検知した場合には、前記登録工程で登録した情報を解放し、機能テストの実行を強制終了させる制御工程と
を備えることを特徴とするテスト装置の制御方法。
【請求項７】
テストシステムの制御方法であって、
テストパターンをランダムに生成する第１の生成工程と、
指示された疎密レベルに応じた入力データのテストパターンを生成する第２の生成工程と、
前記第１の生成工程、もしくは前記第２の生成工程で生成されたテストパターンをテスト対象の機器に入力し、当該機器から当該テストパターンに基づく出力データを取得する出力データ取得工程と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知工程と
を備えることを特徴とするテストシステムの制御方法。
【請求項８】
テストシステムの制御方法であって、
テスト対象の機器が有する複数種の回路構成のうち、テスト対象の回路構成を指示する指示工程と、
前記指示工程で指示された回路構成に応じた入力データのテストパターンをランダムに生成する生成工程と、
前記生成工程で生成されたテストパターンを前記機器に入力し、前記機器から当該テストパターンに基づく出力データを取得する出力データ取得工程と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知工程と
を備えることを特徴とするテストシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置自身が有するハードウェア資源の機能テストを行うための技術に関するものである。
【背景技術】
【０００２】
従来の一般的なLSIの検証手法として、複数の機能ブロックを同時に動作させて検証を行うテスト（以下、システム検証と呼ぶ）が行われている。システム検証には、検証時にテスト対象となるハードウエア資源が競合を起こさないようにテスト命令を調停する仕組みを設け、個別機能テストを同時動作させて検証を行う方式や、あらかじめ決められた実行手順やタイミングをシナリオテストに記述し、そのシナリオにそって個別機能テストを実行して検証を行う方式、実行手順やタイミングにランダム性を持たせて個別機能テストを実行して検証を行う方式がある。
【０００３】
しかし上記従来例では、個別機能テストの実行タイミングをランダムに決定し、複数の個別機能テストを同時実行することは可能であるが、各個別機能テストが正常終了するということが前提となっている。従って、強制終了の内容を含む個別機能テストは同時実行することが不可能であるという問題がある。また、システム全体を強制終了させた場合の対応もなされていない。
【０００４】
一方、従来の一般的なLSIの検証手法について、図３に基づいて説明する。図３はLSI単体のみを検証対象とした最も単純なシミュレーションモデルの構成を示す図である。５１０１は被検証LSI、５１０２はマスタとなる検証モデル、５１０３はスレーブとなる検証モデル、５１０４、５１０５は各検証モデルと被検証LSIをつなぐバス、５１０６、５１０７はバス５１０４，５１０５をモニタするモニタである。
【０００５】
このモデルにおいては、LSIへの入力データと入力タイミングは人手または自動で与えられ、LSIからの出力データを目視または人手で作成した出力パターンの期待値と比較することで動作の正当性を確認する方式がとられている。
【０００６】
しかしながら、LSIが大規模化、あるいは複雑化の傾向の一途をたどるにつれて、人手によるテストパターンでは十分なテストケースをカバーすることが不可能となってきており、また、自動的にテストパターンをランダムに生成するだけでは、十分なテストケースをカバーすることが可能であるとは言えない。
【特許文献１】特開２００１−１４３６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は以上の問題に鑑みて成されたものであり、強制終了に対応した個別機能テストを行うための技術を提供することを目的とする。
【０００８】
また、本発明の別の目的は、LSIまたはそれを含んだシステムの論理検証を自動化しつつ、検証対象論理回路の構成に着目したテストパターンをも意図的に作り出す、高品質かつ効率的な論理回路検証手法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば本発明のテスト装置は以下の構成を備える。
【００１０】
即ち、テスト装置であって、
複数のハードウェア資源のうちいくつかを用いて所定の機能を実現する機能ブロックについて機能テストを実行するテスト実行手段と、
前記テスト実行手段が機能テストを行う前段で、前記機能ブロックが用いるハードウェア資源に係る情報を登録する登録手段と、
前記テスト実行手段による機能テストの実行中に強制終了指示を検知した場合には、前記登録手段が登録した情報を解放し、前記テスト実行手段に機能テストの実行を強制終了させる制御手段と
を備えることを特徴とする。
【００１１】
本発明の目的を達成するために、例えば本発明のテストシステムは以下の構成を備える。
【００１２】
即ち、テストシステムであって、
テストパターンをランダムに生成する第１の生成手段と、
指示された疎密レベルに応じた入力データのテストパターンを生成する第２の生成手段と、
前記第１の生成手段、もしくは前記第２の生成手段によって生成されたテストパターンをテスト対象の機器に入力し、当該機器から当該テストパターンに基づく出力データを取得する出力データ取得手段と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知手段と
を備えることを特徴とする。
【００１３】
本発明の目的を達成するために、例えば本発明のテストシステムは以下の構成を備える。
【００１４】
即ち、テストシステムであって、
テスト対象の機器が有する複数種の回路構成のうち、テスト対象の回路構成を指示する指示手段と、
前記指示手段によって指示された回路構成に応じた入力データのテストパターンをランダムに生成する生成手段と、
前記生成手段によって生成されたテストパターンを前記機器に入力し、前記機器から当該テストパターンに基づく出力データを取得する出力データ取得手段と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知手段と
を備えることを特徴とする。
【００１５】
本発明の目的を達成するために、例えば本発明のテスト装置の制御方法は以下の構成を備える。
【００１６】
即ち、テスト装置の制御方法であって、
複数のハードウェア資源のうちいくつかを用いて所定の機能を実現する機能ブロックについて機能テストを実行するテスト実行工程と、
前記テスト実行工程で機能テストを行う前段で、前記機能ブロックが用いるハードウェア資源に係る情報を登録する登録工程と、
前記テスト実行工程での機能テストの実行中に強制終了指示を検知した場合には、前記登録工程で登録した情報を解放し、機能テストの実行を強制終了させる制御工程と
を備えることを特徴とする。
【００１７】
本発明の目的を達成するために、例えば本発明のテストシステムの制御方法は以下の構成を備える。
【００１８】
即ち、テストシステムの制御方法であって、
テストパターンをランダムに生成する第１の生成工程と、
指示された疎密レベルに応じた入力データのテストパターンを生成する第２の生成工程と、
前記第１の生成工程、もしくは前記第２の生成工程で生成されたテストパターンをテスト対象の機器に入力し、当該機器から当該テストパターンに基づく出力データを取得する出力データ取得工程と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知工程と
を備えることを特徴とする。
【００１９】
本発明の目的を達成するために、例えば本発明のテストシステムの制御方法は以下の構成を備える。
【００２０】
即ち、テストシステムの制御方法であって、
テスト対象の機器が有する複数種の回路構成のうち、テスト対象の回路構成を指示する指示工程と、
前記指示工程で指示された回路構成に応じた入力データのテストパターンをランダムに生成する生成工程と、
前記生成工程で生成されたテストパターンを前記機器に入力し、前記機器から当該テストパターンに基づく出力データを取得する出力データ取得工程と、
前記出力データが従うべき所望の期待値データと、前記出力データとを比較し、当該比較の結果を通知する通知工程と
を備えることを特徴とする。
【発明の効果】
【００２１】
本発明の構成により、強制終了に対応した個別機能テストを行うことができる。また、LSIまたはそれを含んだシステムの論理検証を自動化しつつ、検証対象論理回路の構成に着目したテストパターンをも意図的に作り出す、高品質かつ効率的な論理回路検証手法を提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２３】
［第１の実施形態］
図１は、本実施形態に係るテスト装置の基本構成、及び、本装置でもって実行されるプログラム間の関係を示す図である。
【００２４】
図１において１１５は、テスト対象であるシステムＬＳＩであり、自身についてテストすることから、テスト装置とも呼称する。システムＬＳＩ１１５は同図に示す如く、ＣＰＵ１１４，機能ブロック１０８〜１１０，ハードウェア資源１１２，１１１，バス１１３により構成されている。ＣＰＵ１１４はシステムＬＳＩ１１５を構成する各部を制御すると共に、以下説明する各処理を実行する。また、ＣＰＵ１１４の内部には不図示のメモリが備わっており、以下説明するプログラム群はこのメモリ内に保持されることになり、ＣＰＵ１１４はこれを用いて以下説明する各種の処理を実行することになる。
【００２５】
機能ブロック１０８〜１１０はそれぞれ、ハードウェア資源１１２，１１１のうち少なくとも１つを使用して所定の機能を実現するためのハードウェアである。また、これらの各部はバス１１３に接続されている。
【００２６】
次に、本装置を制御するためのプログラム群について説明する。
【００２７】
１０１は、以下説明する機能テストプログラム１０２〜１０４を起動するためのプログラムであるシステムテストプログラムである。１０２〜１０４はそれぞれ個別機能テストプログラム１０５〜１０７を制御する（機能ブロック１０８〜１１０のテスト処理を制御する）ためのプログラムとしての機能テストプログラムである。１０５〜１０７はそれぞれ、実際に機能ブロック１０８〜１１０のテスト処理を行うプログラムとしての個別機能テストプログラムである。
【００２８】
なお、１つの機能ブロックについて機能テストプログラム、個別機能テストプログラムのセットを複数セット設け、何れか１つのセットを用いるようにしても良い。
【００２９】
１１６は、機能テストプログラム１０２〜１０４によって行われているテスト処理（プロセス）を管理するためのプログラムとしてのプロセス管理プログラムである。１１７は、以下説明するテスト処理において、例えばＣＰＵ１１４のコマンドを提供するための処理などを行うためのプログラムとしてのユーティリティである。
【００３０】
１１８は、機能ブロック１０８〜１１０のテスト中に、各機能ブロック１０８〜１１０の使用状況を管理する処理を行うためのプログラムとしてのリソース管理プログラムである。１１９は、機能ブロック１０８〜１１０のテスト中に強制終了指示を検知した場合には、この旨をリソース管理プログラム１１８に通知するためのプログラムとしての強制終了管理プログラムである。
【００３１】
次に、ＣＰＵ１１４が上記各プログラム群を実行して行う、テスト処理について説明する。ＣＰＵ１１４がシステムテストプログラム１０１を実行すると、システムテストプログラム１０１は機能テストプログラム１０２〜１０４を起動し、実行する。機能テストプログラム１０２〜１０４を実行すると、各機能テストプログラム１０２〜１０４はそれぞれ、個別機能テストプログラム１０５〜１０７の実行の要求をプロセス管理プログラム１１６に対して行うのであるが、要求する前段では先ず、ランダムに決まる待ち時間を設定し、設定した待ち時間が経過した後で実行要求をプロセス管理プログラム１１６に対して行う。
【００３２】
即ち、機能テストプログラム１０２は、プロセス管理プログラム１１６に対して個別機能テストプログラム１０５の実行要求を行う前に、ランダムに決まる待ち時間を設定する。そしてＣＰＵ１１４は、内部に設けたタイマでもって時間を計時し、待ち時間を設定した時点から待ち時間分だけ時間が経過したことを検知すると、個別機能テストプログラム１０５の実行要求をプロセス管理プログラム１１６に対して行う。
【００３３】
また、機能テストプログラム１０３は、プロセス管理プログラム１１６に対して個別機能テストプログラム１０６の実行要求を行う前に、ランダムに決まる待ち時間を設定する。そしてＣＰＵ１１４は、内部に設けたタイマでもって時間を計時し、待ち時間を設定した時点から待ち時間分だけ時間が経過したことを検知すると、個別機能テストプログラム１０６の実行要求をプロセス管理プログラム１１６に対して行う。
【００３４】
また、機能テストプログラム１０４は、プロセス管理プログラム１１６に対して個別機能テストプログラム１０７の実行要求を行う前に、ランダムに決まる待ち時間を設定する。そしてＣＰＵ１１４は、内部に設けたタイマでもって時間を計時し、待ち時間を設定した時点から待ち時間分だけ時間が経過したことを検知すると、個別機能テストプログラム１０７の実行要求をプロセス管理プログラム１１６に対して行う。
【００３５】
よって、個別機能テストプログラム１０５〜１０７のうち、設定した待ち時間が短い順に実行要求が成されることになる。
【００３６】
ここで、個別機能テストプログラム１０５の実行要求がプロセス管理プログラム１１６に対して成された後に行われる処理について説明するが、以下の説明は、個別機能テストプログラム１０６，１０７の実行要求がプロセス管理プログラム１１６に対してなされた場合についても同様に適用することができる。
【００３７】
機能テストプログラム１０２が個別機能テストプログラム１０５の実行要求をプロセス管理プログラム１１６に対して通知すると、プロセス管理プログラム１１６はこれを受け、現在個別機能テストプログラム１０５が実行中でないなどの理由で、個別機能テストプログラム１０５の実行が可能であると判断した場合には、個別機能テストプログラム１０５の実行を許可する旨を機能テストプログラム１０２に対して通知する。これにより、機能テストプログラム１０２は、個別機能テストプログラム１０５を実行することができる。
【００３８】
更に、機能テストプログラム１０２は、ユーティリティ１１７を介してリソース管理プログラム１１８に対して、テストする機能ブロックが使用するハードウェア資源の確保要求を通知する。ここでは、個別機能テストプログラム１０５をこれから実行して、機能ブロック１０８をテストするので、機能ブロック１０８が使用するハードウェア資源（ハードウェア資源１１２，１１１のうち少なくとも１つ）の確保要求をリソース管理プログラム１１８に対して通知する。
【００３９】
リソース管理プログラム１１８は、確保要求を受けたハードウェア資源が現在使用中でないなどの理由で、確保可能であると判断した場合には、要求を受けたハードウェア資源に係る情報（ハードウェア資源の名前など）をＣＰＵ１１４が有するメモリに登録すると共に、要求されたハードウェア資源が確保可能である旨をユーティリティ１１７を介して機能テストプログラム１０２に対して通知する。
【００４０】
そして、確保要求したハードウェア資源の確保が許可され、且つ個別機能テストプログラム１０５の実行の許可を受けた場合には、機能テストプログラム１０２はユーティリティ１１７が提供するＣＰＵコマンドを受け、これを用いてＣＰＵ１１４は機能ブロック１０８、そして機能ブロック１０８が使用するハードウェア資源にアクセスし、更に、個別機能テストプログラム１０５を実行して、機能ブロック１０８のテスト処理を行う。このとき、機能テストプログラム１０２は、今回確保したハードウェア資源に係る情報を強制終了管理プログラム１１９に通知するので、強制終了管理プログラム１１９は、通知された情報をＣＰＵ１１４が有するメモリに登録する。
【００４１】
ここで、個別機能テストプログラム１０５に記述された処理内容に、強制終了指示が含まれていた場合、もしくは外部からその旨の指示が入力された場合には、強制終了管理プログラム１１９はこの強制終了指示を検知し、この旨をリソース管理プログラム１１８、プロセス管理プログラム１１６に通知する。リソース管理プログラム１１８はこの旨を受けると、ＣＰＵ１１４が有するメモリに登録しておいた、現在確保されているハードウェア資源に係る情報を解放すると共に、プロセス管理プログラム１１６はこの旨を受けると、個別機能テストプログラム１０５の実行禁止を機能テストプログラム１０２に対して通知する。
【００４２】
これにより、機能テストプログラム１０２は個別機能テストプログラム１０５の実行を停止するので、結果として機能ブロック１０８に対するテスト処理は強制終了されることになる。よって、複数個の機能ブロックについてテストを行っている最中に何れか１つについて強制終了が指示された場合であっても、全ての機能ブロックについてのテスト処理を強制終了すると共に、全ての機能ブロックが使用する全てのハードウェア資源を解放することができる。
【００４３】
図２は、機能ブロック１０８のテスト処理を例に取り説明した、機能ブロックのテスト処理のフローチャートである。尚、上述の通り、同図のフローチャートに従った処理は、ＣＰＵ１１４が行う。また、各ステップにおける処理の詳細については上述の通りであるので、ここでは簡単に説明する。また、ここでは機能ブロック１０８〜１１０の全てについてテストを行うものとして説明するが一部のみいついてテストを行う場合であっても処理内容は実質的には同じことである。
【００４４】
ＣＰＵ１１４がシステムテストプログラム１０１を実行すると、システムテストプログラム１０１は機能テストプログラム１０２〜１０４を起動し、実行する（ステップＳ２１）。
【００４５】
機能テストプログラム１０２〜１０４を実行すると、各機能テストプログラム１０２〜１０４はそれぞれ、個別機能テストプログラム１０５〜１０７の実行の要求をプロセス管理プログラム１１６に対して行う（ステップＳ２２）。
【００４６】
そしてプロセス管理プログラム１１６から実行の許可を受けると（ステップＳ２３）、機能テストプログラム１０２〜１０４はこれを受け（ステップＳ２４）、更に、ユーティリティ１１７を介してリソース管理プログラム１１８に対して、テストする機能ブロックが使用するハードウェア資源の確保要求を通知する（ステップＳ２５）。
【００４７】
リソース管理プログラム１１８は、確保要求を受けたハードウェア資源が現在使用中でないなどの理由で、確保可能であると判断した場合には、要求を受けたハードウェア資源に係る情報（ハードウェア資源の名前など）をＣＰＵ１１４が有するメモリに登録すると共に、要求されたハードウェア資源が確保可能である旨をユーティリティ１１７を介して機能テストプログラム１０２に対して通知する（ステップＳ２６）。
【００４８】
そして、要求した全てのハードウェア資源に係る情報が登録された場合には処理をステップＳ２７からステップＳ２８に進め、機能テストプログラム１０２〜１０４はそれぞれ個別機能テストプログラム１０５〜１０７を実行し、機能ブロック１０８〜１１０のテスト処理を行う（ステップＳ２８）。このとき、機能テストプログラム１０５〜１０７は、今回確保したハードウェア資源に係る情報を強制終了管理プログラム１１９に通知するので、強制終了管理プログラム１１９は、通知された情報をＣＰＵ１１４が有するメモリに登録する。
【００４９】
ここで、強制終了管理プログラム１１９が強制終了指示を検知した場合には処理をステップＳ２９からステップＳ２１０に進め、この旨をリソース管理プログラム１１８、プロセス管理プログラム１１６に通知する（ステップＳ２１０）。そしてリソース管理プログラム１１８はこの旨を受けると、ＣＰＵ１１４が有するメモリに登録しておいた、現在確保されているハードウェア資源に係る情報を解放する（ステップＳ２１１）と共に、プロセス管理プログラム１１６はこの旨を受けると、個別機能テストプログラム１０５の実行禁止を機能テストプログラム１０２に対して通知し、機能テストプログラム１０２は個別機能テストプログラム１０５の実行を停止する（ステップＳ２１２）。
【００５０】
その後、プロセス管理プログラム１１６から終了イベントが発生している場合には、処理をステップＳ２１３からステップＳ２１４に進め、本処理を終了するし、終了イベントが発生していない場合には処理をステップＳ２１３からステップＳ２２に戻し、以降の処理を繰り返す。
【００５１】
また、ステップＳ２３で、プロセス管理プログラム１１６から実行の許可を受けなかった場合には処理をステップＳ２１３に進める。
【００５２】
また、ステップＳ２７で、全てのハードウェア資源の確保ができなかった場合には処理をステップＳ２１５に進め、ステップＳ２１１における処理と同様の処理を行った後で処理をステップＳ２１６に進め、ステップＳ２１２における処理と同様の処理を行い、処理をステップＳ２１３に進める。
【００５３】
以上の説明により、本実施形態によって、システム検証における個別機能テストの実行中に、ひとつの個別機能テストが強制終了を含む内容であって、その個別機能テストが強制終了を発生させた場合でも、その強制終了の要因に関係する他の個別機能テストの実行をも強制終了し、再び個別機能テストを実行待機状態にするので、強制終了を含んだシステムテストが実現でき、検証の品質を向上させる効果を持つ。
【００５４】
また、強制終了発生時のカバレッジを必要としない場合は、その分のカバレッジ取得をキャンセルすることを可能とするので、カバレッジの信頼性を向上させる効果を持つ。さらに、強制終了を含んだ個別機能テストもシステムテストに流用することができるので、システムテスト作成の省力化を可能とする効果をも持つ。
【００５５】
［第２の実施形態］
本実施形態では、機能ブロック１１０、機能ブロック１０８に対するテスト処理の強制終了指示名を「Reset_A」、機能ブロック１０９に対するテスト処理の強制終了指示名を「Reset_B」とし、個別機能テストプログラム１０５は強制リセット指示を含むものであるとする。
【００５６】
このような前提で、先ず予め、強制終了管理プログラム１１９内には、強制終了指示名が「Reset_A」である強制終了のプログラムと、強制終了指示名が「Reset_B」である強制終了のプログラムとを登録しておく。
【００５７】
そして、個別機能テストプログラム１０５内に強制終了指示名が「Reset_A」である強制終了指示が含まれており、第１の実施形態と同様にして機能ブロック１０８〜１１０についてテストを行っている最中にこの指示を強制終了管理プログラム１１９が検知すると、この旨をリソース管理プログラム１１８、プロセス管理プログラム１１６に通知する。リソース管理プログラム１１８はこの旨を受けると、ＣＰＵ１１４が有するメモリに登録しておいたもののうち、機能ブロック１０８、１１０が使用するハードウェア資源に係る情報を解放すると共に、プロセス管理プログラム１１６はこの旨を受けると、個別機能テストプログラム１０５、１０７の実行禁止を機能テストプログラム１０２に対して通知する。
【００５８】
これにより、機能テストプログラム１０２は個別機能テストプログラム１０５、１０７の実行を停止するので、結果として機能ブロック１０８、１１０に対するテスト処理は強制終了されることになる。
【００５９】
このとき、機能ブロック１０９に対するテスト処理は、強制終了指示名が「Reset_B」である強制終了指示を強制終了管理プログラム１１９が検知しない限り強制終了されないので、処理は継続して行われる。このように、１つの強制終了指示が入力された場合に、全ての機能ブロックに対するテスト処理を中断するのではなく、一部について強制終了を行うようにすることもできる。
【００６０】
この例において、個別機能テスト１（１０７）は強制リセットを含むテストではないが、同じリセット（Reset_A）を使用していた個別機能テスト３（１０５）の強制リセットにより、期待しないところで実行が中断されてしまい、その付近でのカバレッジ（テストプログラムを流しているときにそのテストプログラムや操作によって、どれくらい対象プログラムが網羅させてテストできたかを検査すること）の結果の取得は意味のないものとなる場合がある。カバレッジの信頼性を向上させるためにも、強制終了が発生した分のカバレッジを無効とすることを可能とする（有効・無効の選択機能）。
【００６１】
また、本実施形態に係る構成を適宜第１の実施形態に係る構成に加えるようにしても良い。
【００６２】
なお、システムテスト実行中にシステム全体に対して強制終了を発生させたい場合、図１において、強制終了発生源をシステムテスト（１０１）に設けることによって達成することができる。
【００６３】
［第３の実施形態］
図４は、論理回路を検証するためのシステムの構成を示す図である。同図において５２０１は検証対象としてのＬＳＩ、５２０２は、ＬＳＩ５２０１を検証するために使用するパターンを生成し、このＬＳＩ５２０１に入力するための装置として機能する検証モデル（マスタ）である。検証モデル５２０２は例えば同図に示す如く、自身を制御するためのＣＰＵ５５１、各種のプログラムやデータを保持するためのＲＡＭ５５２、各種の指示を入力するための操作部５５３、ＬＳＩ５２０１とのデータ通信を行うためのインターフェースとして機能するＩ／Ｆ５５４、そしてこれらの各部を繋ぐバス５５５により構成されている。
【００６４】
またＬＳＩ５２０１と検証モデル５２０２（Ｉ／Ｆ５５４）とはバス５２０４で接続されており、互いにデータ通信が可能となっている。また、このバス５２０４にはモニタ５２０６が接続されており、このバス５２０４上に送受信されるデータを表示することができる。
【００６５】
５２０３は、ＬＳＩ５２０１から出力された出力データと、自身が保持する期待値データとを比較して、ＬＳＩ５２０１の動作を検証する為の装置して機能する検証モデル（スレーブ）である。検証モデル５２０３は例えば同図に示す如く、自身を制御するためのＣＰＵ５６１、各種のプログラムやデータを保持するためのＲＡＭ５６２、各種の指示を入力するための操作部５６３、ＬＳＩ５２０１とのデータ通信を行うためのインターフェースとして機能するＩ／Ｆ５６４、モニタ５６５、そしてこれらの各部を繋ぐバス５６６により構成されている。
【００６６】
またＬＳＩ５２０１と検証モデル５２０３（Ｉ／Ｆ５６６）とはバス５２０５で接続されており、互いにデータ通信が可能となっている。また、このバス５２０５にはモニタ５２０７が接続されており、このバス５２０５上に送受信されるデータを表示することができる。
【００６７】
ここで、検証モデル５２０２の動作について説明する。検証モデル５２０２は同図に模式的に示す如く、ＬＳＩ５２０１に与えるテストパターンをランダムに作成する機能（通常ランダム設定機能）と、ＬＳＩ５２０１に与える入力データの頻度を示すレベル（疎密レベル）を設定し、設定した疎密レベルに基づいてテストパターンをランダムに設定する機能（疎密ランダム設定機能）とを有し、何れか１つの機能でもってテストパターンを生成する。
【００６８】
テストパターンの生成処理はＣＰＵ５５１が行うのであるが、何れの機能でもって生成するのかについては例えばユーザが操作部５５３を操作して指示するようにしても良いし、予め決めた方の機能を使用するようなデータをＲＡＭ５５２に保持させておき、ＣＰＵ５５１がこれに基づいて一方を使用するようにしても良い。
【００６９】
そしてこのようにして何れか一方の機能でもって生成したテストパターンをＩ／Ｆ５５４を介してＬＳＩ５２０１に入力する。ＬＳＩ５２０１は入力されたテストパターンに基づいて所定の処理を行い、処理結果としての出力データを生成してバス５２０５上に出力する。このようなＬＳＩ５２０１が行う一連の処理については周知のものであるので、これに関する説明は省略する。
【００７０】
検証モデル５２０３のＣＰＵ５６１はこの出力データをＩ／Ｆ５６４を介して受けると、ＲＡＭ５６２に予め保持しておいた期待値データと、この出力データとを比較し、互いに一致しているのか否かを判断する。この期待値データは、ＬＳＩ５２０１が正常に動作している場合に、検証モデル５２０２からＬＳＩ５２０１に入力されたテストパターンに基づいてＬＳＩ５２０１から出力されるべきデータである。
【００７１】
そしてこのような判断結果をモニタ５６５上に表示する。なお、判断結果の報知方法についてはこれに限定するものではなく、例えば音声でもって報知するようにしても良いし、これに限定するものではない。
【００７２】
図５は、検証モデル５２０２、５２０３によって行われる、ＬＳＩ５２０１の検証処理のフローチャートである。なお、同図においてステップＳ５３１〜Ｓ５３５、Ｓ５３１２の処理は検証モデル５２０２によって行われ、ステップＳ５３６〜ステップＳ５３９、Ｓ５３１３の処理は検証モデル５２０３によって行われる。
【００７３】
先ず、検証モデル５２０２のＣＰＵ５５１は、操作部５５３を介して処理の開始指示を受けると（ステップＳ５３１）、通常ランダム設定機能、もしくは疎密ランダム設定機能の何れを用いるのかの指示を受け付ける（ステップＳ５３２）。この指示は例えば操作部５５３を操作することにより入力することができる。
【００７４】
ここで、通常ランダム設定機能が指示された場合には処理をステップＳ５３１２に進め、ＣＰＵ５５１は、テストパターンをランダムに生成する（ステップＳ５３１２）。一方、疎密ランダム設定機能が指示された場合には処理をステップＳ５３３に進め、ＣＰＵ５５１は疎密レベルの設定を受け付ける（ステップＳ５３３）。疎密レベルの設定は操作部５５３を操作することにより行うことができる。そして疎密レベルが入力されると、ＣＰＵ５５１はこれに従ってテストパターンをランダムに生成する（ステップＳ５３４）。いずれにせよ、生成されたテストパターンのデータはＲＡＭ５５２に一時的に保持しておく。
【００７５】
そしてＣＰＵ５５１はＲＡＭ５５２に一時的に保持されているテストパターンをＩ／Ｆ５５４、バス５２０４を介してＬＳＩ５２０１に入力する。以上が、検証モデル５２０２が行う処理である。
【００７６】
そして以降の処理が、検証モデル５２０３が行う処理である。
【００７７】
ＬＳＩ５２０１からこのテストパターンに基づいた出力データを、バス５２０５，Ｉ／Ｆ５６４を介してＲＡＭ５６２に受けると、ＣＰＵ５６１は、予めＲＡＭ５６２に保持しておいた期待値データと、この出力データとが一致しているのか否かを判断する（ステップＳ５３６）。そして一致している場合には処理をステップＳ５３８に進め、一致している旨（例えば「SUCCESS」なる文字列）をモニタ５６５上に表示する（ステップＳ５３８）。一方、一致していない場合には処理をステップＳ５３１３に進め、一致していない旨（例えば「ERROR」なる文字列）をモニタ５６５上に表示する（ステップＳ５３１３）。
【００７８】
以上の処理が１回分のトランザクションとなるので、このトランザクションを終了し（ステップＳ５３９）、再度テストを行う場合（ステップＳ５３１０）には、処理をステップＳ５３２に戻し、検証モデル５２０２，５２０３は以降の処理を繰り返す。また、再度テストを行わない場合には検証モデル５２０２、５２０３は動作を停止する（ステップＳ５３１１）。
【００７９】
［第４の実施形態］
図６は、論理回路を検証するためのシステムの構成を示す図である。同図において５４０１は検証対象としてのＬＳＩ、５４０２は、ＬＳＩ５４０１を検証するために使用するパターンを生成し、このＬＳＩ５４０１に入力するための装置として機能する検証モデル（マスタ）である。検証モデル５４０２は例えば同図に示す如く、自身を制御するためのＣＰＵ６５１、各種のプログラムやデータを保持するためのＲＡＭ６５２、各種の指示を入力するための操作部６５３、ＬＳＩ５４０１とのデータ通信を行うためのインターフェースとして機能するＩ／Ｆ６５４、そしてこれらの各部を繋ぐバス６５５により構成されている。
【００８０】
またＬＳＩ５４０１と検証モデル５４０２（Ｉ／Ｆ６５４）とはバス５４０４で接続されており、互いにデータ通信が可能となっている。また、このバス５４０４にはモニタ５４０６が接続されており、このバス５４０４上に送受信されるデータを表示することができる。
【００８１】
５４０３は、ＬＳＩ５４０１から出力された出力データと、自身が保持する期待値データとを比較して、ＬＳＩ５４０１の動作を検証する為の装置して機能する検証モデル（スレーブ）である。検証モデル５４０３は例えば同図に示す如く、自身を制御するためのＣＰＵ６６１、各種のプログラムやデータを保持するためのＲＡＭ６６２、各種の指示を入力するための操作部６６３、ＬＳＩ５４０１とのデータ通信を行うためのインターフェースとして機能するＩ／Ｆ６６４、モニタ６６５、そしてこれらの各部を繋ぐバス６６６により構成されている。
【００８２】
またＬＳＩ５４０１と検証モデル５４０３（Ｉ／Ｆ６６６）とはバス５４０５で接続されており、互いにデータ通信が可能となっている。また、このバス５４０５にはモニタ５４０７が接続されており、このバス５４０５上に送受信されるデータを表示することができる。
【００８３】
本実施形態ではＬＳＩ５４０１は複数種の回路構成を有しており、同図では回路構成１，回路構成２，回路構成３の３つの回路構成を有している。
【００８４】
一方、検証モデル５４０２は同図に模式的に示す如く、この３つの回路構成のうち、何れの回路構成についてテストをするのかを設定するための機能（回路構成設定機能）を有しており、テスト対象の回路構成が設定されると、この回路構成に応じたテストパターンを生成し、Ｉ／Ｆ６５４、バス５４０４を介してＬＳＩ５４０１に入力する。
【００８５】
例えば設定した回路構成が「FIFO」である場合、そのFIFOの幅、段数を更に操作部６５３を用いて入力すれば、ＣＰＵ６５１は、FIFO  Full状態の近傍となるような入力データやタイミングをテストパターンとしてランダム生成する。回路構成が「Buffer」の場合も同様である。
【００８６】
また、設定した回路構成が「タイムアウト機構」である場合、更に操作部６５３を用いてタイムアウトの値を設定すれば、ＣＰＵ６５１は、タイムアウトの近傍となる入力データやタイミングをテストパターンとしてランダム生成する。
【００８７】
また、設定した回路構成が「カウンタ」である場合、更に操作部６５３を用いてカウンタ満期となる値を設定すれば、ＣＰＵ６５１は、カウンタ満期の近傍となる入力データやタイミングをテストパターンとしてランダム生成する。
【００８８】
また、設定した回路構成が「メモリ」である場合、更に操作部６５３を用いてメモリの範囲を設定すれば、ＣＰＵ６５１は、メモリの境界値の近傍にアクセスするような入力データやタイミングをテストパターンとしてランダム生成する。
【００８９】
そしてこのようにして生成したテストパターンをＩ／Ｆ６５４を介してＬＳＩ５４０１に入力する。ＬＳＩ５４０１は第１の実施形態と同様にして、入力されたテストパターンに基づいた出力データを生成してバス５４０５上に出力する。検証モデル５４０３のＣＰＵ６６１はこの出力データをＩ／Ｆ６６４を介して受けると、ＲＡＭ６６２に予め保持しておいた期待値データと、この出力データとを比較し、互いに一致しているのか否かを判断する。この期待値データは、ＬＳＩ５４０１が正常に動作している場合に、検証モデル５４０２からＬＳＩ５４０１に入力されたテストパターンに基づいてＬＳＩ５４０１から出力されるべきデータである。
【００９０】
そしてこのような判断結果をモニタ６６５上に表示する。なお、判断結果の報知方法についてはこれに限定するものではなく、例えば音声でもって報知するようにしても良いし、これに限定するものではない。
【００９１】
図７は、検証モデル５４０２、５４０３によって行われる、ＬＳＩ５４０１の検証処理のフローチャートである。なお、同図においてステップＳ５５１〜Ｓ５５４の処理は検証モデル５４０２によって行われ、ステップＳ５５５〜ステップＳ５５８、Ｓ５３１１の処理は検証モデル５４０３によって行われる。
【００９２】
先ず、検証モデル５４０２のＣＰＵ６５１は、操作部６５３を介して処理の開始指示を受けると（ステップＳ５５１）、テスト対象の回路構成の設定指示を受け付ける（ステップＳ５５２）。この指示は例えば操作部６５３を操作することにより入力することができる。
【００９３】
そしてＣＰＵ６５１は、設定した構成の回路に厳しい条件となるような入力データやタイミングをテストパターンとしてランダムに生成する（ステップＳ５５３）。生成されたテストパターンのデータはＲＡＭ６５２に一時的に保持しておく。
【００９４】
そしてＣＰＵ６５１はＲＡＭ６５２に一時的に保持されているテストパターンをＩ／Ｆ６５４、バス５４０４を介してＬＳＩ５４０１に入力する。以上が、検証モデル５４０２が行う処理である。
【００９５】
そして以降の処理が、検証モデル５４０３が行う処理である。
【００９６】
ＬＳＩ５４０１からこのテストパターンに基づいた出力データを、バス５４０５，Ｉ／Ｆ６６４を介してＲＡＭ６６２に受けると、ＣＰＵ６６１は、予めＲＡＭ６６２に保持しておいた期待値データと、この出力データとが一致しているのか否かを判断する（ステップＳ５５６）。そして一致している場合には処理をステップＳ５５７に進め、一致している旨（例えば「SUCCESS」なる文字列）をモニタ６６５上に表示する（ステップＳ５５７）。一方、一致していない場合には処理をステップＳ５５１１に進め、一致していない旨（例えば「ERROR」なる文字列）をモニタ６６５上に表示する（ステップＳ５５１１）。
【００９７】
以上の処理が１回分のトランザクションとなるので、このトランザクションを終了し（ステップＳ５５８）、再度テストを行う場合（ステップＳ５５９）には、処理をステップＳ５５２に戻し、検証モデル５４０２，５４０３は以降の処理を繰り返す。また、再度テストを行わない場合には検証モデル５４０２、５４０３は動作を停止する（ステップＳ５５１０）。
【００９８】
以上の説明により、第３，４の実施形態によって、入力データの疎密に重点をおいたテストパターン生成と、論理回路の構成の中で厳しい条件でテストを行いたい場合、その論理回路の構成内容を検証モデルに与えることで、集中的に検証モデルにより厳しい条件のテストパターン生成、を可能とするので、効率的かつ高品質な論理回路検証を可能とする効果を持つ。
【００９９】
また、本実施形態に係る構成を適宜第３の実施形態に係る構成に加えるようにしても良い。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１の実施形態に係るテスト装置の基本構成、及び、本装置でもって実行されるプログラム間の関係を示す図である。
【図２】機能ブロック１０８のテスト処理を例に取り説明した、機能ブロックのテスト処理のフローチャートである。
【図３】LSI単体のみを検証対象とした最も単純なシミュレーションモデルの構成を示す図である。
【図４】論理回路を検証するためのシステムの構成を示す図である。
【図５】検証モデル５２０２、５２０３によって行われる、ＬＳＩ５２０１の検証処理のフローチャートである。
【図６】論理回路を検証するためのシステムの構成を示す図である。
【図７】検証モデル５４０２、５４０３によって行われる、ＬＳＩ５４０１の検証処理のフローチャートである。
【図１】
2006145353.tif 000003
【図２】
2006145353.tif 000004
【図３】
2006145353.tif 000005
【図４】
2006145353.tif 000006
【図５】
2006145353.tif 000007
【図６】
2006145353.tif 000008
【図７】
2006145353.tif 000009