(57)【要約】【課題】  データ処理ブロックが２以上の系列に分かれる並行的な動作を行う構成である場合であっても、データ処理ブロック単位でもって検証を行う為の技術を提供すること。【解決手段】  それぞれのデータ処理ブロックに対応するオブジェクトが有するポインタリストにこのオブジェクトの次に呼び出されるオブジェクトのポインタを登録し（Ｓ８１０〜Ｓ８１４）、オブジェクトを呼び出してこのオブジェクトに対応するデータ処理ブロックを検証し、呼び出し後、このオブジェクトが有するポインタリストに登録されたポインタが示すオブジェクトを次に呼び出させる（Ｓ８１５）。【選択図】    図８
2006139721.tif 000002
【特許請求の範囲】
【請求項１】
データパスを構成する複数のデータ処理ブロックのそれぞれを検証する検証装置であって、
保持手段によって保持されたそれぞれのデータ処理ブロックの検証に共通のシーケンスを定義した共通検証関数に基づいて、それぞれのデータ処理ブロックに対応するクラスをインスタンスして、それぞれのデータ処理ブロックに対応するオブジェクトを生成するオブジェクト生成手段と、
前記オブジェクト生成手段が生成したオブジェクトが有するポインタリストに、当該オブジェクトの次に呼び出されるオブジェクトのポインタを登録する登録手段と、
オブジェクトを呼び出して当該オブジェクトに対応するデータ処理ブロックを検証する呼び出し手段と、
前記呼び出し手段によるオブジェクトの呼び出し後、当該オブジェクトが有するポインタリストに登録されたポインタが示すオブジェクトを前記呼び出し手段に呼び出させる制御手段と
を備えることを特徴とする検証装置。
【請求項２】
前記登録手段は、第１のオブジェクトの次に呼び出される第２のオブジェクトが複数個存在する場合には、前記第１のオブジェクトが有するポインタリストに、それぞれの前記第２のオブジェクトのポインタを登録することを特徴とする請求項１に記載の検証装置。
【請求項３】
前記登録手段は、
前記オブジェクト生成手段が生成したそれぞれのオブジェクトをリストに登録するリスト登録手段を備え、
前記リストを参照して注目オブジェクトの次に呼び出されるオブジェクトを特定し、当該注目オブジェクトが有するポインタに、当該注目オブジェクトの次に呼び出されるオブジェクトのポインタを登録することを特徴とする請求項１に記載の検証装置。
【請求項４】
前記データパスは、集積回路の一部を構成することを特徴とする請求項１に記載の検証装置。
【請求項５】
データパスを構成する複数のデータ処理ブロックのそれぞれを検証する検証装置の制御方法であって、
それぞれのデータ処理ブロックの検証に共通のシーケンスを定義した共通検証関数に基づいてそれぞれのデータ処理ブロックに対応するクラスクラスをインスタンスして、それぞれのデータ処理ブロックに対応するオブジェクトを生成するオブジェクト生成工程と、
前記オブジェクト生成工程で生成したオブジェクトが有するポインタリストに、当該オブジェクトの次に呼び出されるオブジェクトのポインタを登録する登録工程と、
オブジェクトを呼び出して当該オブジェクトに対応するデータ処理ブロックを検証する呼び出し工程と、
前記呼び出し工程でのオブジェクトの呼び出し後、当該オブジェクトが有するポインタリストに登録されたポインタが示すオブジェクトを前記呼び出し工程で呼び出させる制御工程と
を備えることを特徴とする検証装置の制御方法。
【請求項６】
コンピュータに請求項５の制御方法を実行するためのプログラム。
【請求項７】
請求項６に記載のプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データパスを構成する複数のデータ処理ブロックのそれぞれを検証する為の技術に関するものである。
【背景技術】
【０００２】
一般に、システムLSI等の集積回路の為の論理検証テストにおいては、集積回路に含まれる複数の周辺回路のそれぞれを個別に検証するテスト（以下、個別検証という）と、複数の周辺回路を同時に動作させて検証を行うテスト（以下、システム検証という）とは、別々に記述されていたが、これを改善し、個別検証のためのテストをシステム検証で流用可能とし、精度の高いシステム検証を効率よく行う発明が特許文献１に開示されている。
【０００３】
このような発明では、複数の個別検証テストをシステム検証テストとして同時に起動させる仕組み、およびシステム検証テストにおいて、各個別検証テストに記載された、CPUコマンドおよび、メモリへのアクセス要求が衝突して誤動作を発生させないための仕組みが記載されている。
【特許文献１】特開２００２−５５８４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、データパスは一般には複数のデータ処理ブロックにより構成されており、データ処理ブロック単位でもって検証を行うのであるが、従来のデータパスの個別検証用テストは、一つの処理ブロックから複数の処理ブロックへデータを送信したり、複数の処理ブロックからデータを受け取る処理ブロック等の並行動作をする複数系列のデータパス処理には対応していなかった。
【０００５】
本発明は以上の問題に鑑みて成されたものであり、データ処理ブロックが２以上の系列に分かれる並行的な動作を行う構成である場合であっても、データ処理ブロック単位でもって検証を行う為の技術を提供することを目的とする。
【０００６】
また、複数の処理ブロック（例えば３つのデータ処理ブロック）を含むシステム検証時には、個別検証用のテスト記述を流用することはできない。即ち、図１０に示す如く、おのおのデータ処理ブロックの初期化を行ったのち、おのおのデータ処理ブロックのパラメータ設定、おのおのデータ処理ブロックの期待値作成、おのおのデータ処理ブロックのテストの開始、おのおのデータ処理ブロックの処理終了待ち、おのおのデータ処理ブロックの期待値比較を実行するので、従来のデータパスの個別検証用テストは、システム検証用テストに流用できず、新たに記述しなおす必要がある。図１０は、個別検証用のテスト記述を示す図である。
【０００７】
さらに、各データパスの初期化、パラメータ設定方法、期待値作成方法、テスト起動方法、テスト終了待ち条件、期待値比較方法等は異なるため、システムテストを記述する担当者は、すべてのデータ処理ブロックのテスト方法を把握する必要があり、記述漏れなどの人的ミスが発生しやすく検証効率の低下を招いていた。
【０００８】
よって、本発明の別の目的としては、処理ブロック毎の個別検証のためのテスト記述を、複数の処理ブロックを組み合わせたデータパスにおけるシステム検証で流用できるようにする為の技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば本発明の検証装置は以下の構成を備える。
【００１０】
即ち、データパスを構成する複数のデータ処理ブロックのそれぞれを検証する検証装置であって、
保持手段によって保持されたそれぞれのデータ処理ブロックの検証に共通のシーケンスを定義した共通検証関数に基づいて、それぞれのデータ処理ブロックに対応するクラスをインスタンスして、それぞれのデータ処理ブロックに対応するオブジェクトを生成するオブジェクト生成手段と、
前記オブジェクト生成手段が生成したオブジェクトが有するポインタリストに、当該オブジェクトの次に呼び出されるオブジェクトのポインタを登録する登録手段と、
オブジェクトを呼び出して当該オブジェクトに対応するデータ処理ブロックを検証する呼び出し手段と、
前記呼び出し手段によるオブジェクトの呼び出し後、当該オブジェクトが有するポインタリストに登録されたポインタが示すオブジェクトを前記呼び出し手段に呼び出させる制御手段と
を備えることを特徴とする。
【００１１】
本発明の目的を達成するために、例えば本発明の検証装置の制御方法は以下の構成を備える。
【００１２】
即ち、データパスを構成する複数のデータ処理ブロックのそれぞれを検証する検証装置の制御方法であって、
それぞれのデータ処理ブロックの検証に共通のシーケンスを定義した共通検証関数に基づいてそれぞれのデータ処理ブロックに対応するクラスクラスをインスタンスして、それぞれのデータ処理ブロックに対応するオブジェクトを生成するオブジェクト生成工程と、
前記オブジェクト生成工程で生成したオブジェクトが有するポインタリストに、当該オブジェクトの次に呼び出されるオブジェクトのポインタを登録する登録工程と、
オブジェクトを呼び出して当該オブジェクトに対応するデータ処理ブロックを検証する呼び出し工程と、
前記呼び出し工程でのオブジェクトの呼び出し後、当該オブジェクトが有するポインタリストに登録されたポインタが示すオブジェクトを前記呼び出し工程で呼び出させる制御工程と
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明の構成により、データ処理ブロックが２以上の系列に分かれる並行的な動作を行う構成である場合であっても、データ処理ブロック単位でもって検証を行うことができる。
【００１４】
また、処理ブロック毎の個別検証のためのテスト記述を、複数の処理ブロックを組み合わせたデータパスにおけるシステム検証で流用することができる。
【発明を実施するための最良の形態】
【００１５】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１６】
［第１の実施形態］
図１は、一般的なシステムＬＳＩの集積回路の基本構成を示すブロック図である。同図において１０１はシステムＬＳＩの集積回路、１０２は以下説明する各部を制御すると共に、後述する検証処理を実行するＣＰＵである。１０４はメモリを内蔵し、このメモリへのデータの読み書きを制御するためのメモリコントローラである。以下説明するプログラムやデータはこのメモリ内に保持されている。１０５，１０６はそれぞれ本システムＬＳＩの集積回路と外部とのデータ通信を行うためのインターフェースとして機能するＩ／Ｏデバイスである。１０７は、Ｉ／Ｏデバイスを介してメモリコントローラ１０４が有するメモリに入力されたデータに対して、画像処理などの各種の処理を行うことで、このデータの加工処理を行うデータパスである。１０３は上述の各部を繋ぐバスである。
【００１７】
このような構成を有するシステムＬＳＩの集積回路において、先ず、データパス１０７が図２に示す如く、３つのデータ処理ブロックが直列につながっている構成を有する場合の、各データ処理ブロックの検証処理について説明する。図２は、３つのデータ処理ブロックが直列につながっているデータパス１０７の構成を示すブロック図である。２０２から２０４はそれぞれデータ処理ブロックで、それぞれこの順に処理を行う。
【００１８】
図３は、データ処理ブロック（同図ではデータ処理１ブロック）の個別検証の処理の流れを示す図である。同図において検証に用いられる入力データファイル３０１は、入力バスモデル３０２を通して、検証対象であるデータ処理１ブロック３０６に送られる。
【００１９】
この時の動作モード等を設定するためのパラメータデータファイル３０３はＣＰＵ  Ｉ／Ｆモデル３０５を通して、動作モードが設定され、データ処理１ブロック３０６は、設定された動作モードに従って、入力データファイル３０１を用いて動作する。この動作結果は出力バスモデル３０７を通して、出力データファイル３１０として出力される。
【００２０】
一方、データ処理１ブロック３０６が出力すべき正解データとしての期待値データファイル３０８は予め、正解データを生成するデータ処理１プログラム３０４を用いて、入力データファイル３０１、パラメータデータファイル３０３より生成する。検証対象であるデータ処理１ブロック３０６の処理が終了すると、終了結果としての出力データファイル３１０は期待値データファイル３０８と比較され、データ処理１ブロック３０６が期待した動作を行ったか否かが検証される。
【００２１】
このデータ処理１ブロックの検証において、図４に示したテスト記述を定義し、実行する。図４は、テスト記述の構成例を示す図である。
【００２２】
図４においてデータ処理１ブロック用シーケンスクラスは、全てのデータ処理ブロックに共通の検証シーケンスを定義する共通検証関数（共通シーケンス基本クラス）を継承して作成したものである。このシーケンスクラスが持つシーケンス関数には、データ処理１ブロックの検証シーケンスである、初期化、パラメータ設定、期待値作成、テスト開始、処理終了待ち、期待値比較等の処理が定義されている。また、この順に実行することも定義されている（同図では番号が付けてある順位実行する）。そして、このデータ処理１ブロック用シーケンスクラスと共通検証関数とを用いることにより、データ処理ブロック１の個別検証を行う。このような検証処理については周知のものであるので、これに関する詳細な説明は省略する。
【００２３】
また、図２に示す如く、データ処理ブロックが複数の場合にはそれぞれについてシーケンスクラスを同様に作成する。図５は、図２の各データ処理ブロックについて作成したシーケンスクラス、及びそれぞれのシーケンスの実行順を示す図である。共通検証関数は、各シーケンスクラスのシーケンス関数を逐次呼び出す事によりシステム検証を行うことが出来、かつ個別検証でのテスト記述をシステム検証に流用可能となる。
【００２４】
しかしながらこのような方法では、以下のような問題が生ずる。
【００２５】
例えばデータパス１０７が図６に示す如く、並列につながっている構成を有する場合、データパス共通検証関数は個々のデータ処理ブロックについて作成したクラス（オブジェクト）のポインタしか持たないために、同時に複数のシーケンスを呼ぶことができず、並行的な構成のデータパスに適用することは不可能であった。図６は、４つのデータ処理ブロックのうち、２つのデータ処理ブロックが並列につながっているデータパス１０７の構成を示すブロック図である。
【００２６】
そこで、このような問題に対処するために、データ処理ブロックの検証を以下のようにして行う。
【００２７】
図７は、本実施形態に係る基本クラスの構成を示すと共に、この基本クラスに基づいて作成する、４つのデータ処理ブロックに対するクラスの構成を示す図である。
【００２８】
同図において７０１は、上記共通検証関数群として定義される基本クラスで、基本クラス７０１には、最初に検証を行うデータ処理ブロックのオブジェクトへのポインタを保持するリスト７０１と、上記共通検証関数を構成する各関数（ブロック初期化関数、ブロックのパラメータ設定関数、ブロックの期待値生成関数、ブロックのテスト開始関数、ブロックのテスト終了確認関数、ブロックの期待値比較関数）が定義されている。なお、リスト７０１および共通検証関数を構成する各関数はメモリコントローラ１０４が有するメモリ上に保持されているものとする。
【００２９】
また同図において７０２は、データ処理１ブロックに対応するクラスであり、基本クラス７０１に基づいて作成されるものであり、その構成は基本クラス７０１を継承している。クラス７０２は、基本クラス７０１に定義された各関数を拡張し、データ処理ブロック１の初期化を実装したブロック初期化関数、データ処理ブロック１のパラメータ設定処理を実装したブロックのパラメータ設定関数、データ処理ブロック１の期待値生成処理を実装したブロックの期待値生成関数、データ処理ブロック１のテスト開始処理を実装したブロックのテスト開始関数、データ処理ブロック１の実行状態を返す処理を実装したブロックのテスト終了確認関数、データ処理ブロック１の期待値比較処理を実装したブロックの期待値比較関数が定義されている。
【００３０】
また、７０３，７０４，７０５はそれぞれデータ処理２ブロック、データ処理３ブロック、データ処理４ブロックのそれぞれに対するクラスの構成を示すものであり、その構成、及び構成する各要素については実質的にはクラス７０１と同じである。
【００３１】
このように、基本クラス、及び各データ処理ブロックに対するクラスが予め作成されたものとする場合に、各データ処理ブロックの検証処理について以下、説明する。
【００３２】
図８は、図６で示した複数系列のデータ処理ブロック（データ処理１ブロック、データ処理２ブロック、データ処理３ブロック、データ処理４ブロック）をとおして、データパス１０７の検証を行うための処理のフローチャートを示す図である。なお、図８のフローチャートに従った処理は、ＣＰＵ１０２が不図示のＲＯＭに記憶されたプログラムを読出し、実行することにより行うものである。また、以下の説明に登場するデータ群についてはメモリコントローラ１０４が有するメモリ上に保持されているものとする。
【００３３】
先ず、データ処理１ブロックのクラスをインスタンスしてブロック処理オブジェクト０１作成する。また、データ処理２ブロック、データ処理３ブロック、データ処理４ブロックについても同様にしてブロック処理オブジェクト０２，０３，０４を生成する（ステップＳ８０９）。
【００３４】
次に、基本クラス７０１が保持するポインタリストの先頭ポインタにブロック処理オブジェクト０１のポインタ（ブロック処理オブジェクト０１のアドレスを示すポインタ）を代入すると共に、次ポインタにNULLを代入する（ステップＳ８１０）。
【００３５】
次に、ブロック処理オブジェクト０１が有するポインタリストの先頭ポインタにブロック処理オブジェクト０２のポインタ（ブロック処理オブジェクト０２のアドレスを示すポインタ）を代入すると共に、次ポインタにはブロック処理オブジェクト０３のポインタ（ブロック処理オブジェクト０３のアドレスを示すポインタ）を代入し、更にもう１つの次ポインタにはNULLを代入する（ステップＳ８１１）。
【００３６】
次に、ブロック処理オブジェクト０２が有するポインタリストの先頭ポインタにブロック処理オブジェクト０４のポインタ（ブロック処理オブジェクト０４のアドレスを示すポインタ）を代入すると共に、次ポインタにNULLを代入する（ステップＳ８１２）。
【００３７】
次に、ブロック処理オブジェクト０３が有するポインタリストの先頭ポインタにブロック処理オブジェクト０４のポインタ（ブロック処理オブジェクト０４のアドレスを示すポインタ）を代入すると共に、次ポインタにNULLを代入する（ステップＳ８１３）。
【００３８】
次に、ブロック処理オブジェクト０４が有するポインタリストの先頭ポインタにNULLを代入する（ステップＳ８１４）。
【００３９】
そして、基本クラス７０１を実行する（ステップＳ８１５）。
【００４０】
図９は、図８のフローチャートに従って図６に示した４つのデータ処理ブロックのそれぞれを実行する手順を示す図である。
【００４１】
基本クラス７０１を実行すると、先ず基本クラス７０１が保持する先頭ポインタに登録されているポインタが示すオブジェクト、即ち、ブロック処理オブジェクト０１を呼び出して、これに基づく処理を行う。これにより、データ処理１ブロックに対する検証処理を行うことができる。
【００４２】
そしてブロック処理オブジェクト０１に基づく処理の完了後、ブロック処理オブジェクト０１が有する先頭ポインタに登録されているポインタが示すオブジェクト、即ち、ブロック処理オブジェクト０２を呼び出して、これに基づく処理を行う。これにより、データ処理２ブロックに対する検証処理を行うことができる。
【００４３】
また、ブロック処理オブジェクト０１が有する次ポインタにはブロック処理オブジェクト０３を差すポインタが登録されている。従って、ブロック処理オブジェクト０１に基づく処理の完了後、ブロック処理オブジェクト０３を呼び出して、これに基づく処理を行う。これにより、データ処理３ブロックに対する検証処理を行うことができる。
【００４４】
このように、１つのオブジェクトの後に複数のオブジェクトを呼び出して処理を行う場合であっても、この１つのオブジェクトが有するポインタリストに複数のオブジェクトのポインタを登録することにより容易に並行的なデータパスの検証処理が可能となる。
【００４５】
そして、ブロック処理オブジェクト０１が保持するポインタリストに登録されている全てのポインタが示すオブジェクトを呼び出して処理が完了すると、ブロック処理オブジェクト０２，０３のそれぞれが保持する先頭ポインタに登録されているポインタが示すオブジェクト、即ちブロック処理オブジェクト０４を呼び出して、これに基づく処理を行う。これにより、データ処理４ブロックに対する検証処理を行うことができる。
【００４６】
本実施形態では、１つのブロック処理オブジェクトから呼び出される１以上のブロック処理オブジェクトの全てが呼び出されるまで、次の処理には移行しない。例えば本実施形態の場合、ブロック処理オブジェクト０１から呼び出されたブロック処理オブジェクト０２，０３のそれぞれに基づく処理が完了するまで、ブロック処理オブジェクト０２の次に呼び出されるブロック処理オブジェクト、ブロック処理オブジェクト０３の次に呼び出されるブロック処理オブジェクトに基づく処理は行わない。
【００４７】
以上の説明により、本実施形態によって、データパスにおける個別のブロック処理のための記述を、データパスのシステム検証記述に流用した際、複数系列のデータパスに対応させることで並列的な回路などより複雑な論理回路に適用することができるので、システム検証を効率よく行うことが可能である。
【００４８】
［第２の実施形態］
本実施形態では、データパス１０７の構成は図２に示す如く、３つのデータ処理ブロックが直列に構成されている。そしてそれぞれのデータ処理ブロックに対するクラスは第１の実施形態と同様にして生成する。図１１は、このような３つのデータ処理ブロックのそれぞれのクラス１１０２〜１１０４と共に、基本クラス１１０１を示す図である。本実施形態の基本クラス１１０１は、ポインタリストの代わりにポインタ変数を有する点が第１の実施形態とは異なる。それぞれのデータ処理ブロックについてのクラスの構成については第１の実施形態と同じである。
【００４９】
また、本実施形態で用いるシステムＬＳＩの集積回路の構成については第１の実施形態と同じであるとする。
【００５０】
図１２は、３つのデータ処理ブロック（データ処理１ブロック、データ処理２ブロック、データ処理３ブロック）のそれぞれについて検証処理を行うためのスレッドクラスの構成例を示すと共に、この３つのデータ処理ブロックについてのクラスの構成例を示す図である。
【００５１】
同図において１２０１は３つのデータ処理ブロック（データ処理１ブロック、データ処理２ブロック、データ処理３ブロック）のそれぞれについて検証処理を行うためのスレッドクラスであり、各ブロック処理オブジェクトのリスト、ブロック初期化関数、ブロックのパラメータ設定関数、ブロックの期待値生成関数、ブロックのテスト開始関数、ブロックのテスト終了確認関数、ブロックの期待値比較関数が定義されていると共に、これらの関数を１つのデータ処理ブロックについて実行するためのブロックのスレッド関数、ブロック処理オブジェクトリストに各ブロック処理オブジェクトを登録する処理を行うためのブロック自動配置関数が定義されている。
【００５２】
よって、リストに登録されているデータ処理ブロックのうち、例えば現在データ処理１ブロックが指定されているとすると、スレッド関数を実行することで、スレッド関数に含まれている関数群をデータ処理１ブロックに対して実行することになり、これにより、データ処理１ブロックについての検証処理を行うことになる。そして次に登録されているデータ処理ブロックを指定する。これにより、再度、スレッド関数を実行する事で、この指定したデータ処理ブロックについて検証処理を行うことになる。
【００５３】
同図において１２０２は、スレッドクラス１２０１を継承し、上記３つのデータ処理ブロックのそれぞれについてのインスタンスを生成すると共に、これら３つのデータ処理ブロックのオブジェクトをスレッドクラス１２０１のオブジェクトリストに登録するためのクラスである。
【００５４】
クラス１２０２は、各データ処理ブロックについてインスタンスを生成するためのものであると共に、各インスタンスに基づいて作成される、それぞれのデータ処理ブロックのオブジェクトをスレッドクラス１２０１のリストに登録する為のものである。
【００５５】
図１３は、データ処理１ブロックのみについての検証処理のフローチャートである。
【００５６】
先ず、データ処理１ブロックのクラスをインスタンスしてブロック処理オブジェクト０１作成する（ステップＳ１３０１）。
【００５７】
次に、自動配置関数を実行し、スレッドクラス１２０１のリストにブロック処理オブジェクト０１を登録する（ステップＳ１３０２）。そして、ブロック処理オブジェクト０１が有する次ポインタにNULLを代入する（ステップＳ１３０３）。
【００５８】
そして、スレッドクラス１２０１のスレッド関数を実行することにより、データ処理１ブロックに対する検証処理を行うことができる（ステップＳ１３０４）。データ処理１ブロックについてのスレッド関数の実行が完了すると、リストに登録された次のデータ処理ブロックについてスレッド関数を実行させるのであるが、登録されているのはデータ処理１ブロックのみであるので（ブロック処理オブジェクト０１が有する次ポインタにはNULLが登録されているので）、本処理を終了する。
【００５９】
図１４は、データ処理１ブロック、データ処理２ブロック、データ処理３ブロックが図２に示す如く構成を有する場合に、これらのデータ処理ブロックについての検証処理のフローチャートである。
【００６０】
先ず、データ処理１ブロックのクラスをインスタンスしてブロック処理オブジェクト０１作成する（ステップＳ１４０１）。また、データ処理２ブロック、データ処理３ブロックについても同様にしてブロック処理オブジェクト０２，０３を生成する（ステップＳ１４０２〜ステップＳ１４０３）。
【００６１】
次に、自動配置関数を実行し、スレッドクラス１２０１のリストにブロック処理オブジェクト０１、ブロック処理オブジェクト０２，ブロック処理オブジェクト０３をこの順（即ち、図２に示す如く、処理を行う順）に登録する（ステップＳ１４０４）。
【００６２】
次に、ブロック処理オブジェクト０１が保持するポインタ変数にブロック処理オブジェクト０２のポインタ（ブロック処理オブジェクト０１のアドレスを示すポインタ）を代入する（ステップＳ１４０５）。
【００６３】
次に、ブロック処理オブジェクト０２が保持するポインタ変数にブロック処理オブジェクト０３のポインタ（ブロック処理オブジェクト０３のアドレスを示すポインタ）を代入する（ステップＳ１４０６）。
【００６４】
次に、ブロック処理オブジェクト０３が保持するポインタ変数にNULLを代入する（ステップＳ１４０７）。このように、ポインタ変数にどのブロック処理オブジェクトのポインタを代入するのかについては、上記リストを参照し、次に処理対象となるブロック処理オブジェクトを特定することにより決定される。
【００６５】
そしてリストに登録された順にスレッド関数を実行する（ステップＳ１４０８）。即ち最初に登録されたのはブロック処理オブジェクト０１であるので、これについてスレッド関数を実行する。そして実行が完了すると、ブロック処理オブジェクト０１のポインタ変数に登録されているポインタを参照し、これがブロック処理オブジェクト０２を差していることから、今度はブロック処理オブジェクト０２についてスレッド関数を実行する。そして実行が完了すると、ブロック処理オブジェクト０２のポインタ変数に登録されているポインタを参照し、これがブロック処理オブジェクト０３を差していることから、今度はブロック処理オブジェクト０３についてスレッド関数を実行する。そして実行が完了すると、ブロック処理オブジェクト０３のポインタ変数に登録されているポインタを参照し、これがNULLを差していることから、本処理を完了する。
【００６６】
図１５は、データ処理２ブロック、データ処理１ブロック、データ処理３ブロックの順に検証する場合について示した図である。同図に示す如く、この順にリストに登録することで、この順に検証を行うことができる。即ち、登録順を変更することで、どのような順番で検証を行うのかを変更することができる。
【図面の簡単な説明】
【００６７】
【図１】一般的なシステムＬＳＩの集積回路の基本構成を示すブロック図である。
【図２】３つのデータ処理ブロックが直列につながっているデータパス１０７の構成を示すブロック図である。
【図３】データ処理ブロック（同図ではデータ処理１ブロック）の個別検証の処理の流れを示す図である。
【図４】従来用いたテスト記述の構成例を示す図である。
【図５】図２の各データ処理ブロックについて作成したシーケンスクラス、及びそれぞれのシーケンスの実行順を示す図である。
【図６】４つのデータ処理ブロックのうち、２つのデータ処理ブロックが並列につながっているデータパス１０７の構成を示すブロック図である。
【図７】本発明の第１の実施形態に係る基本クラスの構成を示すと共に、この基本クラスに基づいて作成する、４つのデータ処理ブロックに対するクラスの構成を示す図である。
【図８】図６で示した複数系列のデータ処理ブロック（データ処理１ブロック、データ処理２ブロック、データ処理３ブロック、データ処理４ブロック）をとおして、データパス１０７の検証を行うための処理のフローチャートを示す図である。
【図９】図８のフローチャートに従って図６に示した４つのデータ処理ブロックのそれぞれを実行する手順を示す図である。
【図１０】個別検証用のテスト記述を示す図である。
【図１１】３つのデータ処理ブロックのそれぞれのクラス１１０２〜１１０４と共に、基本クラス１１０１を示す図である。
【図１２】３つのデータ処理ブロック（データ処理１ブロック、データ処理２ブロック、データ処理３ブロック）のそれぞれについて検証処理を行うためのスレッドクラスの構成例を示すと共に、この３つのデータ処理ブロックについてのクラスの構成例を示す図である。
【図１３】データ処理１ブロックのみについての検証処理のフローチャートである。
【図１４】データ処理１ブロック、データ処理２ブロック、データ処理３ブロックが図２に示す如く構成を有する場合に、これらのデータ処理ブロックについての検証処理のフローチャートである。
【図１５】データ処理２ブロック、データ処理１ブロック、データ処理３ブロックの順に検証する場合について示した図である。
【図１】
2006139721.tif 000003
【図２】
2006139721.tif 000004
【図３】
2006139721.tif 000005
【図４】
2006139721.tif 000006
【図５】
2006139721.tif 000007
【図６】
2006139721.tif 000008
【図７】
2006139721.tif 000009
【図８】
2006139721.tif 000010
【図９】
2006139721.tif 000011
【図１０】
2006139721.tif 000012
【図１１】
2006139721.tif 000013
【図１２】
2006139721.tif 000014
【図１３】
2006139721.tif 000015
【図１４】
2006139721.tif 000016
【図１５】
2006139721.tif 000017