(57)【要約】  被試験デバイスを試験する試験装置であって、被試験デバイスとの間で通信する複数の試験パターンと、複数の試験パターンのそれぞれをユーザに識別させるためにそれぞれ付された複数のタグとを記述した試験プログラムから、複数の試験パターンのそれぞれと複数のタグのそれぞれとの対応付けを抽出するタグ抽出部と、試験プログラムを実行して、被試験デバイスとの間での通信を試験する通信部と、通信部および被試験デバイスの間で通信する試験パターンのそれぞれに対応するタグを特定するタグ特定部と、被試験デバイスとの間で通信した試験パターンに対応付けて特定部が特定したタグを表示する表示部と、を備える試験装置を提供する。
2010067475.tif 000002
【特許請求の範囲】
【請求項１】
被試験デバイスを試験する試験装置であって、
前記被試験デバイスとの間で通信する複数の試験パターンと、前記複数の試験パターンのそれぞれをユーザに識別させるためにそれぞれ付された複数のタグとを記述した試験プログラムから、前記複数の試験パターンのそれぞれと前記複数のタグのそれぞれとの対応付けを抽出するタグ抽出部と、
前記試験プログラムを実行して、前記被試験デバイスとの間での通信を試験する通信部と、
前記通信部および前記被試験デバイスの間で通信する試験パターンのそれぞれに対応するタグを特定するタグ特定部と、
前記被試験デバイスとの間で通信した試験パターンに対応付けて前記特定部が特定したタグを表示する表示部と、
を備える試験装置。
【請求項２】
前記タグ抽出部は、それぞれが前記被試験デバイスとの間で通信するパケットに含まれるデータフィールドの値を示す前記複数の試験パターンと、前記複数の試験パターンのそれぞれに対応する前記データフィールドをユーザに識別させるための前記複数のタグとを記述した前記試験プログラムから、前記対応付けを抽出し、
前記表示部は、前記被試験デバイスおよび当該試験装置の間で通信したパケットに含まれる少なくとも１つのデータフィールドに対応付けて前記特定部が特定したタグを表示する
請求項１に記載の試験装置。
【請求項３】
前記表示部は、前記被試験デバイスとの間で通信した試験パターンの値と、前記特定部が特定したタグとを対応付けて表示する請求項１または２に記載の試験装置。
【請求項４】
前記タグ抽出部は、前記複数の試験パターンと、前記複数の試験パターンのそれぞれの値または値の範囲に対応する前記複数のタグのそれぞれとを記述した前記試験プログラムから、前記複数の試験パターンの値または値の範囲と前記複数のタグのそれぞれとの対応付けを抽出する請求項１から３のいずれかに記載の試験装置。
【請求項５】
前記タグ抽出部は、前記複数のタグのうち一のタグについて、前記試験プログラム中の変数を参照する旨の記述が含まれていた場合、当該変数の値に応じて当該一のタグの文字列を生成して、前記複数の試験パターンのうち当該一のタグに対応する一の試験パターンと当該一のタグの文字列とを対応付けて抽出する請求項１から４のいずれかに記載の試験装置。
【請求項６】
前記特定部は、前記試験プログラムから前記被試験デバイスとの間で通信されるべき試験パターンに対応するタグを特定し、
前記表示部は、前記被試験デバイスとの間で実際に通信した試験パターンに対応付けて、前記特定部が特定したタグを表示する
請求項１から５のいずれかに記載の試験装置。
【請求項７】
コンピュータを、被試験デバイスを試験する試験装置の制御装置として機能させるためのプログラムであって、
当該プログラムは、前記コンピュータを、
前記被試験デバイスとの間で通信する複数の試験パターンと、前記複数の試験パターンのそれぞれをユーザに識別させるためにそれぞれ付された複数のタグとを記述した試験プログラムから、前記複数の試験パターンのそれぞれと前記複数のタグのそれぞれとの対応付けを抽出するタグ抽出部と、
前記試験プログラムを実行することにより前記試験装置が前記被試験デバイスとの間での通信をしたことに応じて、前記試験装置と前記被試験デバイスとの間での通信の試験において前記試験装置と前記被試験デバイスとの間で通信した試験パターンのそれぞれに対応するタグを特定するタグ特定部と、
前記試験装置と前記被試験デバイスとの間で通信した試験パターンに対応付けて、前記特定部が特定したタグを表示する表示部と、
して機能させるプログラム。
【請求項８】
試験装置によって被試験デバイスを試験する試験方法であって、
前記被試験デバイスとの間で通信する複数の試験パターンと、前記複数の試験パターンのそれぞれをユーザに識別させるためにそれぞれ付された複数のタグとを記述した試験プログラムから、前記複数の試験パターンのそれぞれと前記複数のタグのそれぞれとの対応付けを抽出するタグ抽出ステップと、
前記試験装置により前記試験プログラムを実行して、前記被試験デバイスとの間での通信を試験する通信ステップと、
前記試験装置と前記被試験デバイスとの間での通信の試験において前記試験装置と前記被試験デバイスとの間で通信した試験パターンのそれぞれに対応するタグを特定するタグ特定ステップと、
前記試験装置と前記被試験デバイスとの間で通信した試験パターンに対応付けて、前記特定ステップで特定したタグを表示する表示ステップと、
を備える試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験装置、試験方法、およびプログラムに関する。本出願は、下記の米国出願に関連し、下記の米国出願からの優先権を主張する出願である。本出願は、下記の米国出願に関連し、下記の米国出願からの優先権を主張する出願である。文献の参照による組み込みが認められる指定国については、下記の出願に記載された内容を参照により本出願に組み込み、本出願の一部とする。
出願番号  １２／３２９，６３５    出願日  ２００８年１２月８日
【背景技術】
【０００２】
従来、パケット通信をするデバイスが知られている。このようなパケット通信をするデバイスを試験する試験装置が求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−６７３９５号公報
【特許文献２】特開２００２−２１５７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
パケット通信において、デバイス間でやり取りされる各パケットには、実体データの他に様々な付加的なデータが含まれる。パケット通信をするデバイスを試験する試験装置は、このような付加的なデータを含んだ複雑な試験パターンを発生しなければならない。このような複雑な試験パターンに基づく試験結果は複雑であり、ユーザにとって分かりにくいものとなってしまう可能性がある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の態様においては、被試験デバイスを試験する試験装置であって、被試験デバイスとの間で通信する複数の試験パターンと、複数の試験パターンのそれぞれをユーザに識別させるためにそれぞれ付された複数のタグとを記述した試験プログラムから、複数の試験パターンのそれぞれと複数のタグのそれぞれとの対応付けを抽出するタグ抽出部と、試験プログラムを実行して、被試験デバイスとの間での通信を試験する通信部と、通信部および被試験デバイスの間で通信する試験パターンのそれぞれに対応するタグを特定するタグ特定部と、被試験デバイスとの間で通信した試験パターンに対応付けて特定部が特定したタグを表示する表示部と、を備える試験装置を提供する。【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る試験装置１００の構成を、被試験デバイス５００とともに示す。
【図２】本実施形態に係る試験用のパケット通信プログラムの階層構成を示す。
【図３】本実施形態に係るシミュレータ２００および変換部３００の構成の第１例を示す。
【図４】本実施形態に係るシミュレータ２００および変換部３００の構成の第２例を示す。
【図５】本実施形態に係るシミュレータ２００および変換部３００の構成の第３例を示す。
【図６】本実施形態に係る試験部４００の構成の一例を示す。
【図７】本実施形態に係る演算処理部４１０の構成の一例、および、複数の実行処理部４２０および複数の通信処理部４３０のうちの代表する一の実行処理部４２０および通信処理部４３０の構成を示す。
【図８】本実施形態に係るプログラム供給部４５０の構成を示す。
【図９】本実施形態に係るパケット通信部４３４の構成を示す。
【図１０】本実施形態に係る送信側ブロック１２の構成を示す。
【図１１】本実施形態に係る送信側ブロック１２内のデータ処理部３２の構成の一例を示す。
【図１２】本実施形態に係る送信側ブロック１２内の送信部３６の構成の一例を示す。
【図１３】本実施形態に係る受信側ブロック１４の構成を示す。
【図１４】本実施形態に係る受信側ブロック１４内の受信部８２の構成の一例を示す。
【図１５】本実施形態に係るパケットリストの一例を示す。
【図１６】図１６は、本実施形態に係るパケット関数の一例を示す。
【図１７】本実施形態に係る試験部４００の処理フローを示す。
【図１８】本実施形態に係る試験装置１００の構成の変形例を示す。
【図１９】本実施形態に係る試験プログラム９００の構成を示す。
【図２０】本実施形態に係る表示結果１０００の構成を示す。
【図２１】本実施形態に係る試験装置１００の変形例の動作を示す。
【図２２】本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る試験装置１００の構成を、被試験デバイス５００とともに示す。試験装置１００は、少なくとも１つの被試験デバイス５００との間でパケットを通信して、被試験デバイス５００を試験する。即ち、試験装置１００は、被試験デバイス５００に対してパケットを送信および被試験デバイス５００からパケットを受信して、被試験デバイス５００を試験する。
【００１０】
試験装置１００は、シミュレータ２００と、変換部３００と、試験部４００とを備える。シミュレータ２００は、シミュレーション環境６００により、被試験デバイス５００の動作をシミュレーションする。シミュレーション環境６００は、被試験デバイス５００の設計段階において作成されたデバイスシミュレーションモデル６１０を有する。デバイスシミュレーションモデル６１０は、一例として、機能ブロック間の一連のやり取り（トランザクション）の単位で内部動作が表されたトランザクションレベルで記述されている。
【００１１】
変換部３００は、被試験デバイス５００の動作をシミュレーションするシミュレーション環境６００から、当該試験装置１００により実行される被試験デバイス５００を試験するための試験用のパケット通信プログラムを生成する。変換部３００は、生成した試験用のパケット通信プログラムをコンパイルして、試験部４００に格納する。なお、シミュレータ２００および変換部３００は、試験部４００を備える試験装置本体の外部に設けられたワークステーション等のコンピュータにより実現されてもよい。
【００１２】
試験部４００は、変換部３００により生成された試験用のパケット通信プログラムを実行して、被試験デバイス５００との間でのパケット通信をして、被試験デバイス５００を試験する。より詳しくは、試験部４００は、被試験デバイス５００に試験データを含むパケットを送信して、これに応じて被試験デバイス５００から出力されたパケットを受信する。そして、試験部４００は、受信したパケットに含まれるデータを期待データと比較して、被試験デバイス５００の良否を判定する。
【００１３】
ここで、試験用のパケット通信プログラムは、プロシージャと、パケット関数とを有する。プロシージャは、被試験デバイス５００に対して実行する試験の手順を記述する。プロシージャは、一例として、シミュレーション環境６００で実行されたトランザクション単位でのシミュレーション手順に対応した試験手順を記述する。プロシージャは、例えばパケットのやり取りの単位でのシミュレーション手順に対応した試験手順を記述してよい。
【００１４】
プロシージャは、パケット関数の呼び出しを制御手順として含む。また、プロシージャは、条件分岐、無条件分岐および他のプロシージャを呼び出すサブルーチン呼び出し等の制御構文を試験手順として含む。
【００１５】
また、プロシージャは、変数を扱うことができる。変数は、プロシージャ内の演算式、代入式等により得られた値に代えて、パケット内のデータ列を格納することができる。プロシージャは、一例として、変数をパケット関数との間で授受することができる。
【００１６】
パケット関数は、当該パケットのデータ列、および、当該データ列を生成するための命令列を含む。試験用のパケット通信プログラムは、複数種類のパケット関数を有してよい。試験用のパケット通信プログラムは、一例として、ライトパケット、リードパケットおよびアイドルパケット等のそれぞれを生成するためのパケット関数を有してよい。
【００１７】
図２は、本実施形態に係る試験用のパケット通信プログラムの階層構成を示す。試験用のパケット通信プログラムは、例えば、１または複数のプロシージャを有する。それぞれのプロシージャは、１または複数のパケットリストを含む。
【００１８】
パケットリストは、被試験デバイス５００との間で通信する一連のパケットを含む。パケットリストは、一例として、被試験デバイス５００との間で通信する複数のパケットに対応する複数のパケット関数を順次に呼び出すための命令列と、パケット毎に変更される個別データをパケット関数と授受するための変数を含む。
【００１９】
パケットは、複数のデータを含む。パケットは、一例として、パケットの種類に関わらず固定のデータを含む。パケットは、一例として、パケットのスタートコードおよびエンドコードを含む。
【００２０】
また、パケットは、一例として、パケットの種類毎に共通の共通データを含んでもよい。パケットは、一例として、共通データとしてパケットの種類を表すコマンドを含んでよい。
【００２１】
また、パケットは、一例として、パケット毎に変更される個別データを含んでもよい。パケットは、一例として、アドレスおよび実体のデータを含んでよい。個別データは、プロシージャまたはパケットリストから引き渡される変数により指定される。
【００２２】
また、パケットは、一例として、状態に応じて変化するデータを含んでもよい。また、パケットは、一例として、当該パケットに含まれるデータ列の誤りを検出するためのチェックコードを含んでもよい。
【００２３】
このような試験用のパケット通信プログラムは、被試験デバイス５００と通信する内容を、パケットの通信手順を表すプロシージャと、それぞれのパケットのデータ内容を表すパケット関数とに階層が分けられている。これにより、試験装置１００は、プロシージャを、シミュレーション環境６００で実行されたトランザクション単位でのシミュレーション手順に対応した記述とすることができる。
【００２４】
また、このような試験用のパケット通信プログラムは、プロシージャが同一のパケット関数を繰り返して呼び出すことができる。これにより、試験用のパケット通信プログラムによれば、試験において繰り返して生成されるデータ列を共通のパケット関数を用いて記述することができるので、試験装置１００が格納するデータ量を小さくすることができる。
【００２５】
図３は、本実施形態に係るシミュレータ２００および変換部３００の構成の第１例を示す。第１例に係るシミュレータ２００は、被試験デバイス５００の動作をトランザクションレベルでシミュレーションする。このようなシミュレーション環境６００は、デバイスシミュレーションモデル６１０と、トランザクション・スティミュラス６２０とを有する。
【００２６】
デバイスシミュレーションモデル６１０は、トランザクションレベルで記述された被試験デバイス５００の論理モデルを含む。トランザクション・スティミュラス６２０は、被試験デバイス５００と外部との間の信号授受をトランザクション単位で指定する。
【００２７】
トランザクション・スティミュラス６２０は、外部から被試験デバイス５００に入力されるパケットおよび被試験デバイス５００から外部へ出力されるパケットの授受を表す記述であってよい。シミュレーション環境６００は、このようなデバイスシミュレーションモデル６１０およびトランザクション・スティミュラス６２０を用いてシミュレーションを実行して、被試験デバイス５００が妥当な動作をするか否かを判断する。
【００２８】
第１例に係る変換部３００は、パケット定義データ記憶部３１０と、取得部３２０と、パケット通信プログラム生成部３３０とを有する。パケット定義データ記憶部３１０は、複数種類のパケットのそれぞれに含まれるデータ列を定義するパケット定義データを記憶する。
【００２９】
取得部３２０は、シミュレーション環境６００に含まれる、トランザクション・スティミュラス６２０の記述を抽出して、当該試験装置１００および被試験デバイス５００の間で通信するパケット列を取得する。取得部３２０は、一例として、パケット定義データに基づいて、トランザクション・スティミュラス６２０の記述から、試験装置１００および被試験デバイス５００の間で通信するパケットの種類および順序を特定する。更に、取得部３２０は、一例として、トランザクション・スティミュラス６２０の記述から、それぞれのパケットに含まれるデータを特定する。
【００３０】
パケット通信プログラム生成部３３０は、当該試験装置１００により実行されて、被試験デバイス５００との間でパケット列に含まれるパケットを通信するための試験用のパケット通信プログラムを、取得部３２０により取得されたパケット列から生成する。パケット通信プログラム生成部３３０は、一例として、取得部３２０により特定されたパケットの種類および順序から、パケットの通信手順を示すプロシージャを生成する。
【００３１】
更に、パケット通信プログラム生成部３３０は、一例として、取得部３２０により特定されたパケットの種類から、パケット関数を生成する。更に、パケット通信プログラム生成部３３０は、一例として、取得部３２０により特定されたそれぞれのパケットに含まれるデータから変数の値を生成する。このような変換部３００によれば、シミュレーション環境６００におけるトランザクション・スティミュラス６２０の記述から、試験用のパケット通信プログラムを自動生成することができる。
【００３２】
図４は、本実施形態に係るシミュレータ２００および変換部３００の構成の第２例を示す。第２例に係るシミュレータ２００および変換部３００は、第１例と略同一の構成および機能を有するので、以下、相違点を除き説明を省略する。
【００３３】
第２例に係るシミュレータ２００は、シミュレーションの実行中において、被試験デバイス５００が通信するパケットをモニタリングできるモニタリングポイントを有する。第２例に係る取得部３２０は、シミュレーション環境６００によるシミュレーションの実行中に被試験デバイス５００が通信するパケットをモニタリングして、当該試験装置１００および被試験デバイス５００の間で通信するパケット列を取得する。取得部３２０は、一例として、パケット定義データに基づいて、シミュレーションの実行中にモニタリングした被試験デバイス５００が通信するパケットの種類を特定する。すなわち、例えば、取得部３２０は、モニタリングしたパケットがパケット定義データ中の何れかの種類のパケット定義とマッチするかを検査して、検査結果に応じてモニタリングしたパケットの種類を特定する。
【００３４】
このような変換部３００によれば、トランザクションレベルでのシミュレーションの実行中における被試験デバイス５００が通信するパケットから、試験用のパケット通信プログラムを自動生成することができる。
【００３５】
図５は、本実施形態に係るシミュレータ２００および変換部３００の構成の第３例を示す。第３例に係るシミュレータ２００および変換部３００は、第１例と略同一の構成および機能を有するので、以下、相違点を除き説明を省略する。
【００３６】
第３例に係るシミュレーション環境６００は、デバイスシミュレーションモデル６１０と、トランザクション・スティミュラス６２０と、アダプタ６３０とを有する。第３例に係るシミュレータ２００は、被試験デバイス５００の動作をネットリストレベルでシミュレーションする。第３例に係るデバイスシミュレーションモデル６１０は、ネットリストレベルで記述される。
【００３７】
アダプタ６３０は、トランザクション・スティミュラス６２０に記述されたトランザクションと、ネットリストレベルで記述されたデバイスシミュレーションモデル６１０により授受される信号との間の変換を実行する。シミュレーション環境６００は、このようなデバイスシミュレーションモデル６１０、トランザクション・スティミュラス６２０およびアダプタ６３０を用いてシミュレーションを実行して、被試験デバイス５００が妥当な動作をするか否かを判断する。
【００３８】
第３例に係る変換部３００は、波形ダンプ記憶部３４０を更に有する。波形ダンプ記憶部３４０は、シミュレーション環境６００によるシミュレーションを実行した結果得られる被試験デバイス５００の入出力信号の波形ダンプを取得して記憶する。
【００３９】
また、第３例に係る取得部３２０は、波形ダンプ記憶部３４０に記憶された波形ダンプから、当該試験装置１００および被試験デバイス５００の間で通信するパケット列を抽出する。取得部３２０は、一例として、波形ダンプ記憶部３４０に記憶された波形ダンプとパケット定義データにより定義されたデータとを比較して、被試験デバイス５００が通信するパケットの種類を特定する。
【００４０】
このような変換部３００によれば、トランザクションレベルでのシミュレーションの実行中における被試験デバイス５００が通信する信号の波形ダンプから、試験用のパケット通信プログラムを自動生成することができる。
【００４１】
図６は、本実施形態に係る試験部４００の構成の一例を示す。試験部４００は、変換部３００により生成された試験用のパケット通信プログラム（以下、試験プログラムとも言う。）を実行して、少なくとも１つの被試験デバイス５００を試験する。
【００４２】
試験部４００は、演算処理部４１０と、１または複数の実行処理部４２０と、１または複数の通信処理部４３０と、試験プログラム記憶部４４０と、プログラム供給部４５０とを備える。それぞれの実行処理部４２０は、例えばバスを介して、演算処理部４１０に接続される。それぞれの通信処理部４３０は、何れかの実行処理部４２０に接続される。
【００４３】
演算処理部４１０は、試験プログラム中の演算式を処理する。それぞれの実行処理部４２０は、試験プログラム中の複数のパケットリストのうち、当該実行処理部４２０に接続されたそれぞれの通信処理部４３０が実行すべきパケットリストを指定する。それぞれの通信処理部４３０は、対応する実行処理部４２０により指定されたパケットリストに含まれるパケットを、対応する被試験デバイス５００との間で順次に通信する。
【００４４】
試験部４００は、一例として、１個の演算処理部４１０と、８個の実行処理部４２０と、２５６個の通信処理部４３０とを備えてよい。この場合、８個の実行処理部４２０のそれぞれには、一例として、３２個の通信処理部４３０が接続される。試験部４００は、このような接続構成に限らず、他の接続構成であってよい。
【００４５】
試験プログラム記憶部４４０は、試験プログラムを記憶する。プログラム供給部４５０は、試験に先立って、演算処理部４１０、実行処理部４２０および通信処理部４３０に試験プログラムをロードする。
【００４６】
図７は、本実施形態に係る演算処理部４１０の構成の一例、および、複数の実行処理部４２０および複数の通信処理部４３０のうちの代表する一の実行処理部４２０および通信処理部４３０の構成を示す。演算処理部４１０は、変数記憶部４１２と、演算部４１４とを有する。それぞれの実行処理部４２０は、フロー制御部４２６を有する。また、それぞれの通信処理部４３０は、パケットリスト記憶部４３２と、パケット通信部４３４とを有する。なお、パケットリスト記憶部４３２は、パケット通信部４３４の外部に記載しているが、パケット通信部４３４の内部に設けられてもよい。
【００４７】
プログラム供給部４５０は、試験プログラム記憶部４４０に記憶された試験プログラムから、対応する通信処理部４３０により通信される一連のパケットをそれぞれ含む複数のパケットリストを抽出して、対応する通信処理部４３０内のパケットリスト記憶部４３２に格納する。また、プログラム供給部４５０は、試験プログラムから抽出した複数のパケットリストを順次に実行させる制御フローを記述した制御プログラムを生成して、フロー制御部４２６に供給する。また、プログラム供給部４５０は、試験プログラムから抽出した演算式を実行する演算プログラムを生成して、演算部４１４に供給する。
【００４８】
フロー制御部４２６は、試験プログラムの実行フローに応じて、対応する通信処理部４３０内のパケット通信部４３４に対して、複数のパケットリストのそれぞれを実行する順序を指定する。より具体的には、フロー制御部４２６は、プログラム供給部４５０から供給された制御プログラムを実行して、対応する通信処理部４３０内のパケット通信部４３４に対して、パケットリスト記憶部４３２に格納された複数のパケットリストのうち次に実行すべきパケットリストを特定する。フロー制御部４２６は、一例として、次に実行すべきパケットリストのパケットリスト記憶部４３２におけるアドレスをパケット通信部４３４へ送信する。
【００４９】
また、フロー制御部４２６は、制御プログラムに演算式が含まれる場合、当該演算式を実行する演算プログラムを呼び出して演算処理部４１０内の演算部４１４に実行させる。そして、フロー制御部４２６は、演算処理部４１０による演算式の演算結果に基づき、次に実行すべきパケットリストを特定する。この場合において、フロー制御部４２６は、演算処理部４１０による演算結果を受け取るまで次のパケットリストの特定を待機して、演算結果に応じて特定するパケットリストを選択してもよい。
【００５０】
パケットリスト記憶部４３２は、プログラム供給部４５０から供給された複数のパケットリストを記憶する。パケット通信部４３４は、対応する実行処理部４２０内のフロー制御部４２６により順次指定されるパケットリストに含まれる一連のパケットを、対応する被試験デバイス５００との間で順次通信して、対応する被試験デバイス５００を試験する。
【００５１】
パケット通信部４３４は、一例として、フロー制御部４２６から受信したアドレスからパケットリストを読み出して、読み出したパケットリストに含まれる一連のパケットを対応する被試験デバイス５００との間で順次に通信する。また、パケット通信部４３４は、被試験デバイス５００から受信したパケットに含まれるデータ値を、変数値としてフロー制御部４２６を介して演算処理部４１０内の変数記憶部４１２へと送信する。
【００５２】
変数記憶部４１２は、複数の通信処理部４３０が有する複数のパケット通信部４３４のそれぞれから受信したデータ値を、変数値として記憶する。演算部４１４は、試験プログラムに含まれる演算式を実行して、実行結果を複数の実行処理部４２０内のフロー制御部４２６に送信する。また、演算部４１４は、演算式に被試験デバイス５００から受信したデータ値を含む場合、演算式のパラメータとなる変数値を変数記憶部４１２から読み出して、演算式により指定された計算をする。また、演算部４１４は、被試験デバイス５００へ送信するパケットに含まれるデータ値を、変数値としてパケット通信部４３４へと送信してもよい。
【００５３】
このような試験部４００は、上位側の演算処理部４１０に試験プログラム中の演算式を実行させ、下位側のフロー制御部４２６およびパケット通信部４３４にフロー制御を実行させる。これにより、試験部４００によれば、上位側の演算処理部４１０を演算能力の高いプロセッサにより実現して変数を集中管理させ、下位側のフロー制御部４２６およびパケット通信部４３４を動作周波数の高いプロセッサまたはシーケンサにより実現して、全体として効率の良いシステムを構築することができる。
【００５４】
また、このような試験部４００は、上位側の演算処理部４１０において被試験デバイス５００から受信したデータ値を変数として記憶する。従って、このような試験部４００によれば、一の被試験デバイス５００から受信したパケットの内容を、他の被試験デバイス５００に対して送信するパケットに反映させることができる。
【００５５】
図８は、本実施形態に係るプログラム供給部４５０の構成を示す。プログラム供給部４５０は、通信ブロック抽出部４４２と、パケットリスト生成部４４４と、制御ブロック抽出部４４６と、制御プログラム生成部４４８と、を含む。
【００５６】
試験プログラムは、順番に通信されるべき一連のパケットを含む通信ブロックと、演算式を含む演算ブロックと、条件分岐、無条件分岐、および、サブルーチン呼び出しを含み次に実行すべき通信ブロックを特定する制御ブロックとに分割される。プログラム供給部４５０は、試験プログラム中における、順番に通信されるべき一連のパケットを含む複数の通信ブロックを抽出する。パケットリスト生成部４４４は、通信ブロック抽出部４４２が抽出した複数の通信ブロックに対応する複数のパケットリストを生成して、パケットリスト記憶部４３２に格納する。
【００５７】
制御ブロック抽出部４４６は、試験プログラム中における、条件分岐、無条件分岐、および、サブルーチン呼び出しの少なくとも１つを実行して次に実行すべき通信ブロックを特定する複数の制御ブロックを抽出する。制御プログラム生成部４４８は、制御ブロック抽出部４４６が抽出した複数の制御ブロックを実行する制御プログラムを生成してフロー制御部４２６に供給する。
【００５８】
演算ブロック抽出部４５２は、試験プログラムにおける、演算式を含む複数の演算ブロックを抽出する。演算プログラム生成部４５４は、演算ブロック抽出部４５２が抽出した複数の演算ブロックを実行する演算プログラムを生成して演算部４１４に供給する。
【００５９】
このようなプログラム供給部４５０は、条件分岐、無条件分岐またはサブルーチン呼び出しを含まずに順次に実行される命令を含むパケットリストをパケット通信部４３４に実行させることができる。さらに、プログラム供給部４５０は、演算式を演算処理部４１０に演算させることができる。そして、プログラム供給部４５０は、演算結果に基づきパケット通信部４３４が条件分岐、無条件分岐またはサブルーチン呼び出しを実行して次に実行するべきパケットリストをフロー制御部４２６に特定させることができる。
【００６０】
図９は、本実施形態に係るパケット通信部４３４の構成を示す。パケット通信部４３４は、送信側ブロック１２と、受信側ブロック１４とを含む。送信側ブロック１２は、パケットリストにより指定された順序でパケットを被試験デバイス５００に送信する。受信側ブロック１４は、被試験デバイス５００からパケットを受信して、パケットリストに指定されたパケットと受信したパケットと比較して、被試験デバイス５００の良否を判定する。
【００６１】
図１０は、本実施形態に係る送信側ブロック１２の構成を示す。送信側ブロック１２は、パケットリスト記憶部４３２と、パケットリスト処理部２２と、パケット命令列記憶部２４と、パケットデータ列記憶部２６と、下位シーケンサ２８と、データ処理部３２と、データ変換部３４と、送信部３６とを含む。パケットリスト記憶部４３２は、プログラム供給部４５０から供給された複数のパケットリストを記憶する。
【００６２】
パケットリスト処理部２２は、パケットリスト記憶部４３２に記憶された複数のパケットリストのうちフロー制御部４２６により指定されたパケットリストを実行して、被試験デバイス５００と通信する各パケットを順次指定する。パケットリスト処理部２２は、一例として、フロー制御部４２６から受信したアドレスからパケットリストを実行して、被試験デバイス５００に送信するパケットを順次指定する。
【００６３】
パケットリスト処理部２２は、一例として、指定したパケットを発生するための命令列が記憶されたパケット命令列記憶部２４上のアドレスを指定する。更に、パケットリスト処理部２２は、一例として、被試験デバイス５００との間で通信するパケットについて、パケットデータ列記憶部２６内における当該パケットに含まれるデータ列のアドレス（例えばデータ列の先頭アドレス）を指定する。
【００６４】
このようにパケットリスト処理部２２は、パケットを発生させるための命令列のアドレスと、当該パケットに含まれるデータ列のアドレスを個別に指定する。なお、この場合において、パケットリスト中において、２以上のパケットに対して共通する命令列またはデータ列が指定されている場合に、パケットリスト処理部２２は、当該２以上のパケットについて同一の命令列のアドレスまたは同一のデータ列のアドレスを指定してもよい。
【００６５】
パケット命令列記憶部２４は、複数種類のパケットのそれぞれを発生するための命令列を、パケットの種類毎に記憶する。パケット命令列記憶部２４は、一例として、ライトパケットを発生するための命令列、リードパケットを発生するための命令列、および、アイドルパケットを発生するための命令列等を記憶する。
【００６６】
パケットデータ列記憶部２６は、複数種類のパケットのそれぞれに含まれるデータ列を、パケットの種類毎に記憶する。パケットデータ列記憶部２６は、一例として、ライトパケットに含まれるデータ列、リードパケットに含まれるデータ列、および、アイドルパケットに含まれるデータ列等を含んでよい。
【００６７】
パケットデータ列記憶部２６は、一例として、共通データ記憶部４０と、共通データポインタ４２と、第１の個別データ記憶部４４−１と、第２の個別データ記憶部４４−２と、第１の個別データポインタ４６−１と、第２の個別データポインタ４６−２とを含んでよい。共通データ記憶部４０は、複数種類のパケットのそれぞれに含まれるデータ列中における、パケットの種類毎に共通の共通データを記憶する。共通データ記憶部４０は、一例として、パケットの種類毎に、パケットの始まりを示すスタートコード、パケットの終わりを示すエンドコード、および、当該パケットの種別を識別するためのコマンドコード等を記憶する。
【００６８】
共通データポインタ４２は、パケットリスト処理部２２により指定されたパケットに含まれる共通データが格納されたブロックの先頭アドレスを、パケットリスト処理部２２から取得する。更に、共通データポインタ４２は、当該ブロック内におけるオフセット位置を、下位シーケンサ２８から取得する。そして、共通データポインタ４２は、先頭アドレスおよびオフセット位置に基づき定まるアドレス（例えば先頭アドレスにオフセット位置を加算したアドレス）を共通データ記憶部４０に与えて、当該アドレスに格納された共通データをデータ処理部３２へ供給させる。
【００６９】
第１及び第２の個別データ記憶部４４−１、４４−２は、複数種類のパケットのそれぞれに含まれるデータ列中における、パケット毎に変更する個別データを記憶する。第１及び第２の個別データ記憶部４４−１、４４−２は、一例として、各パケットに含まれる、被試験デバイス５００に対して送信する実体データまたは被試験デバイス５００から受信する実体データを記憶してよい。
【００７０】
第１の個別データ記憶部４４−１は、実行されるパケットリストに関わらず予め定められた個別データを記憶する。第２の個別データ記憶部４４−２は、実行されるパケットリスト毎に変更される個別データを記憶する。第２の個別データ記憶部４４−２は、一例として、試験に先立ってまたは試験中において適宜に、実行処理部４２０内のフロー制御部４２６から個別データの転送を受ける。
【００７１】
第１及び第２の個別データポインタ４６−１、４６−２は、パケットリスト処理部２２により指定されたパケットに含まれる個別データが格納されたブロックの先頭アドレスを、パケットリスト処理部２２から受け取る。更に、第１及び第２の個別データポインタ４６−１、４６−２は、当該ブロック内におけるオフセット位置を、下位シーケンサ２８から取得する。そして、第１及び第２の個別データポインタ４６−１、４６−２は、先頭アドレスおよびオフセット位置に基づき定まるアドレス（例えば先頭アドレスにオフセット位置を加算したアドレス）を第１及び第２の個別データ記憶部４４−１、４４−２に与えて、当該アドレスに格納された個別データをデータ処理部３２へ供給させる。
【００７２】
下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケットの命令列、即ち、パケットリスト処理部２２によりアドレスが指定された命令列をパケット命令列記憶部２４から読み出して、読み出した命令列に含まれる各命令を順次に実行する。更に、下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケットのデータ列、即ち、パケットリスト処理部２２によりアドレスが指定されたデータ列を、命令列の実行に従って順次にパケットデータ列記憶部２６から出力させて、被試験デバイス５００との間の試験に用いる試験データ列を生成する。
【００７３】
下位シーケンサ２８は、一例として、パケットリスト処理部２２により指定されたパケットに含まれるデータ列が格納されたブロック中における、実行した命令に対応するデータの位置を表わすオフセット位置を、共通データポインタ４２、個別データポインタ４６−１および個別データポインタ４６−２に供給する。この場合において、下位シーケンサ２８は、最初の命令において初期値を発生して、実行する命令が遷移する毎にインクリメントされるカウント値を、オフセット位置として発生してもよい。
【００７４】
また、下位シーケンサ２８は、命令の実行毎に、読み出した個別データおよび共通データに対して指定した処理（演算またはデータ変換）を施すことを指示する制御データをデータ処理部３２およびデータ変換部３４に与える。これにより、下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケット中における、指定されたデータ部分を、読み出したデータに対して指定した処理を施したデータとすることができる。
【００７５】
また、下位シーケンサ２８は、命令の実行毎に、共通データ、個別データ（実行されるパケットリストに関わらず予め定められた個別データまたは実行されるパケットリスト毎に変更される個別データ）、および、データ処理部３２が処理を施したデータのいずれを出力するかを、データ処理部３２に対して指定する。即ち、下位シーケンサ２８は、命令の実行毎に、共通データ記憶部４０、第１の個別データ記憶部４４−１、第２の個別データ記憶部４４−２、または、データ処理部３２内の指定した処理を施したデータが格納されたレジスタのいずれからデータを読み出して出力するかを、データ処理部３２に対して指定する。
【００７６】
これにより、下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケット中における、パケット毎に変更すべきデータ部分を個別データ記憶部４４から読み出した個別データから生成することができる。更に、下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケット中における、パケットの種類毎に共通するデータ部分を共通データ記憶部４０から読み出した共通データから生成することができる。また、更に、下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケット中における指定されたデータ部分に対して、指定した処理を施すことができる。
【００７７】
また、下位シーケンサ２８は、パケットリスト処理部２２により指定されたパケットの命令列の実行が完了したことに応じて、終了通知をパケットリスト処理部２２に与えてよい。これにより、パケットリスト処理部２２は、下位シーケンサ２８による命令列の実行の進行に応じて、順次にパケットを指定することができる。
【００７８】
また、下位シーケンサ２８は、送信部３６に対して、被試験デバイス５００に対して送信する信号のエッジタイミングを指定する。下位シーケンサ２８は、一例として、送信部３６に対してタイミング信号を与えて、パケット毎にエッジタイミングを制御する。
【００７９】
また、下位シーケンサ２８は、後述する図１３に示される受信側ブロック１４が有する受信側の下位シーケンサ２８と通信を行う。これにより、送信側ブロック１２が有する送信側の下位シーケンサ２８は、受信側ブロック１４が有する受信側の下位シーケンサ２８とハンドシェイクを行って、受信側の下位シーケンサ２８と同期して命令列を実行することができる。
【００８０】
送信側の下位シーケンサ２８は、一例として、予め指定されたパケットの試験データ列を被試験デバイス５００に送信したことを受信側の下位シーケンサ２８に通知する。これにより、送信側の下位シーケンサ２８は、受信側の下位シーケンサ２８に、送信側の下位シーケンサ２８からの通知を受けるまでの間、受信したデータ列の良否判定を禁止させることができる。
【００８１】
また、送信側の下位シーケンサ２８は、一例として、受信側の下位シーケンサ２８から、生成した試験データ列と一致するデータ列を受信したことの通知を受けて、予め指定されたパケットの試験データ列を生成する。これにより、送信側の下位シーケンサ２８は、所定のパケットを被試験デバイス５００から受信した後に、予め指定されたパケットを被試験デバイス５００に送信することができる。
【００８２】
データ処理部３２は、パケットデータ列記憶部２６からパケットリスト処理部２２により指定されたパケットのデータ列を読み出して、被試験デバイス５００の試験に用いる試験データ列を生成する。データ処理部３２は、一例として、共通データ記憶部４０、第１の個別データ記憶部４４−１および第２の個別データ記憶部４４−２からのデータを入力して、入力したデータに対して下位シーケンサ２８により指定された処理をして試験データ列の各データとして出力する。
【００８３】
なお、データ処理部３２は、入力したデータをそのまま試験データ列のデータとして出力してもよい。データ処理部３２の構成の一例については、図１１において説明する。
【００８４】
データ変換部３４は、下位シーケンサ２８から指定されたタイミングにおいて、データ処理部３２から出力した試験データ列をデータ変換する。データ変換部３４は、一例として、試験データ列に対して予め設定されたテーブル等により８ｂ−１０ｂ変換等を行う。更に、データ変換部３４は、一例として、試験データ列に対してスクランブル処理を行ってもよい。そして、データ変換部３４は、変換したデータ列を出力する。
【００８５】
送信部３６は、データ変換部３４が生成した試験データ列を、被試験デバイス５００に対して送信する。送信部３６の構成の一例については、図１２において説明する。
【００８６】
図１１は、本実施形態に係る送信側ブロック１２内のデータ処理部３２の構成の一例を示す。送信側ブロック１２内のデータ処理部３２は、一例として、少なくとも１つのレジスタ５２と、前段選択部５４と、少なくとも１つの演算器５６と、後段選択部６０とを含む。
【００８７】
少なくとも１つのレジスタ５２のそれぞれは、前サイクルの演算処理結果を記憶する。本例においては、データ処理部３２は、第１のレジスタ５２−１と、第２のレジスタ５２−２とを含む。
【００８８】
前段選択部５４は、サイクル毎に、共通データ記憶部４０からの共通データ、それぞれの個別データ記憶部４４（本例においては第１の個別データ記憶部４４−１および第２の個別データ記憶部４４−２）からの個別データ、および、それぞれのレジスタ５２（本例においては第１のレジスタ５２−１および第２のレジスタ５２−２）のデータのうち、下位シーケンサ２８により指定されたデータを選択する。そして、前段選択部５４は、サイクル毎に、選択したデータのそれぞれを、下位シーケンサ２８により指定された、演算器５６または後段選択部６０に供給する。
【００８９】
少なくとも１つの演算器５６のそれぞれは、少なくとも１つのレジスタ５２のそれぞれに対応して設けられる。本例においては、データ処理部３２は、第１のレジスタ５２−１に対応する第１の演算器５６−１と、第２のレジスタ５２に対応する第２の演算器５６−２とを含む。演算器５６のそれぞれは、一例として、論理演算、四則演算、擬似乱数発生および誤り訂正符号生成等の演算を行う。演算器５６のそれぞれは、サイクル毎に、前段選択部５４により選択されたデータに対して、下位シーケンサ２８により指定された演算をして対応するレジスタ５２に格納する。
【００９０】
後段選択部６０は、サイクル毎に、前段選択部５４が選択したデータ（本例においては、共通データ記憶部４０、第１の個別データ記憶部４４−１または第２の個別データ記憶部４４−２からのデータ）、および、少なくとも１つのレジスタ５２内のデータのうち、下位シーケンサ２８により指定されたデータを選択する。そして、後段選択部６０は、選択したデータを試験データ列の各データとして出力する。
【００９１】
図１２は、本実施形態に係る送信側ブロック１２内の送信部３６の構成の一例を示す。送信部３６は、一例として、シリアライザ７２と、フォーマットコントローラ７４と、ドライバ７６とを含む。
【００９２】
シリアライザ７２は、データ処理部３２から受け取った試験データ列をシリアルの波形パターンに変換する。フォーマットコントローラ７４は、シリアライザ７２から受け取った波形パターンに応じた波形を有する信号を生成する。更に、フォーマットコントローラ７４は、下位シーケンサ２８により指定されたエッジタイミングにおいて、論理が変化する波形の信号を出力する。ドライバ７６は、フォーマットコントローラ７４から出力された信号を被試験デバイス５００に供給する。
【００９３】
図１３は、本実施形態に係る受信側ブロック１４の構成を示す。受信側ブロック１４は、図１０に示される送信側ブロック１２と略同一の構成および機能を有する。受信側ブロック１４が有する部材のうち、送信側ブロック１２が有する部材と略同一の構成及び機能を部材については、同一の符号を付けて相違点を除き説明を省略する。
【００９４】
受信側ブロック１４は、パケットリスト記憶部４３２と、パケットリスト処理部２２と、パケット命令列記憶部２４と、パケットデータ列記憶部２６と、下位シーケンサ２８と、データ処理部３２と、データ変換部３４と、受信部８２と、判定部８４とを含む。受信部８２は、被試験デバイス５００からパケットのデータ列を受信する。受信部８２の構成の一例については、図１４において説明する。
【００９５】
受信側ブロック１４内のデータ変換部３４は、下位シーケンサ２８から指定されたタイミングにおいて、受信部８２により受信されたデータ列をデータ変換する。受信側ブロック１４内のデータ変換部３４は、一例として、受信したデータ列に対して予め設定されたテーブル等により８ｂ−１０ｂ変換等を行う。更に、受信側ブロック１４内のデータ変換部３４は、一例として、受信したデータ列に対してデスクランブル処理を行ってもよい。そして、受信側ブロック１４内のデータ変換部３４は、変換したデータ列を出力する。
【００９６】
そして、受信側ブロック１４内のデータ変換部３４は、変換したデータ列を判定部８４へ供給する。更に、受信側ブロック１４内のデータ変換部３４は、変換したデータ列をパケットデータ列記憶部２６内の第２の個別データ記憶部４４−２の指定されたアドレスに格納させてもよい。これにより、フロー制御部４２６は、被試験デバイス５００から受信したデータ列を変数値として、パケットデータ列記憶部２６から読み出して演算処理部４１０に転送することができる。
【００９７】
受信側ブロック１４内のパケットリスト処理部２２は、一例として、フロー制御部４２６から受信したアドレスからパケットリストを実行する。そして、受信側ブロック１４内のパケットリスト処理部２２は、被試験デバイス５００から受信されると期待されるパケットを順次指定する。
【００９８】
受信側ブロック１４内の下位シーケンサ２８は、被試験デバイス５００から出力が期待されるパケットのデータ列を、試験データ列としてパケットデータ列記憶部２６から出力させる。また、受信側ブロック１４内の下位シーケンサ２８は、受信部８２に対して、被試験デバイス５００から出力された信号のデータ値を取り込むストローブタイミングを指定する。受信側ブロック１４内のデータ処理部３２は、生成した試験データ列を判定部８４に供給する。
【００９９】
判定部８４は、データ処理部３２から試験データ列を受け取るとともに、データ変換部３４から受信したデータ列を受け取る。判定部８４は、受信したデータ列を試験データ列と比較した結果に基づいて、被試験デバイス５００との間の通信の良否を判定する。判定部８４は、一例として、受信部８２が受信したデータ列と試験データ列とが一致するか否かを比較する論理比較部と、比較結果を記憶するフェイルメモリとを含む。また、判定部８４は、一例として、受信部８２が受信したデータ列が指定されたデータ列と一致したことを下位シーケンサ２８に通知してもよい。
【０１００】
また、受信側ブロック１４内の下位シーケンサ２８は、図１０に示される送信側ブロック１２が有する送信側の下位シーケンサ２８と通信を行う。これにより、受信側ブロック１４が有する受信側の下位シーケンサ２８は、送信側ブロック１２が有する送信側の下位シーケンサ２８とハンドシェイクを行って、送信側の下位シーケンサ２８と同期して命令列を実行することができる。
【０１０１】
受信側の下位シーケンサ２８は、一例として、当該受信側の下位シーケンサ２８が生成した試験データ列と一致するデータ列を受信したことを送信側の下位シーケンサ２８に通知する。これにより、送信側の下位シーケンサ２８は、受信側の下位シーケンサ２８から、生成した試験データ列と一致するデータ列を受信したことの通知を受けて、予め指定されたパケットの試験データ列を生成することができる。
【０１０２】
また、受信側の下位シーケンサ２８は、一例として、送信側の下位シーケンサ２８から、予め指定されたパケットの試験データ列を被試験デバイス５００に送信したことの通知を受けるまでの間、判定部８４による受信部８２が受信したデータ列の良否判定を禁止する。これにより、受信側の下位シーケンサ２８は、所定のパケットを被試験デバイス５００へ送信した後に、当該所定のパケットに応じた応答が被試験デバイス５００から出力されたか否かを判定することができる。
【０１０３】
図１４は、本実施形態に係る受信側ブロック１４内の受信部８２の構成の一例を示す。受信部８２は、一例として、レベルコンパレータ８６と、タイミングコンパレータ８８と、デシリアライザ９０と、位相調整部９２と、ハント部９４とを含む。
【０１０４】
レベルコンパレータ８６は、被試験デバイス５００から出力された信号を閾値と比較して、論理信号を出力する。タイミングコンパレータ８８は、下位シーケンサ２８により指定されたストローブタイミングで、レベルコンパレータ８６により出力された論理信号のデータを順次に取り込む。
【０１０５】
デシリアライザ９０は、タイミングコンパレータ８８により取り込まれたデータ列をパラレルのデータ列に変換する。位相調整部９２は、パケットの先頭の特定コードを検出して、デシリアライザ９０によるパラレルのデータ列の切り出し位相を調整する。ハント部９４は、タイミングコンパレータ８８により取り込まれたデータ列をパケットの先頭の特定コードと比較して、パケットの先頭位置をビット単位で調整する。
【０１０６】
このような受信部８２は、被試験デバイス５００から非確定なタイミングで出力されるパケットを受信することができる。これにより、受信側ブロック１４によれば、被試験デバイス５００から非確定なタイミングで出力されたパケットに含まれるデータ列と、被試験デバイス５００からの出力が期待される試験データ列とを比較することができる。
【０１０７】
図１５は、本実施形態に係るパケットリストの一例を示す。パケットリストには、順次に実行される複数の命令が記述される。パケットリストには、一例として、ＮＯＰ命令、ＩＤＸＩ命令およびＥＸＩＴ命令等が記述される。ＮＯＰ命令は、実行を次の命令に遷移させる。ＩＤＸＩ命令は、指定された回数実行を繰り返した後、実行を次の命令に遷移させる。ＥＸＩＴ命令は、当該パケットシーケンスの実行を終了させる。
【０１０８】
また、パケットリストには、各命令に対応して、パケット関数が記述される。パケットリストには、一例として、ライトパケット、リードパケット、および、所定のコードを発生するアイドルパケット等を発生するパケット関数が記述される。
【０１０９】
更に、パケットリストには、各パケット関数に対応して、当該パケット関数により特定されるパケットを発生するための命令列の先頭アドレス、当該パケット関数により特定されるパケットに含まれる共通データおよび個別データの先頭アドレスが記述される。パケットリスト処理部２２は、このようなパケットリストを実行することにより、各命令を順次に実行する毎に、実行した命令に対応するパケット関数を呼び出すことができる。
【０１１０】
図１６は、本実施形態に係るパケット通信部４３４にコンパイルしてロードされたパケット関数の一例を示す。パケット通信部４３４にロードされたパケット関数には、順次に実行される複数の命令が記述される。
【０１１１】
パケット関数には、一例として、ＮＯＰ命令、ＩＤＸＩ命令およびＲＴＮ命令等が記述される。ＮＯＰ命令は、ポインタにより指定されたアドレスに格納されたデータを１回出力して、実行を次の命令に遷移させる。ＩＤＸＩ命令は、ポインタにより指定されたアドレスに格納されたデータを指定した回数分繰り返して出力して、実行を次の命令に遷移させる。ＲＴＮ命令は、ポインタにより指定されたアドレスに格納されたデータを１回出力して、実行をパケットリストに戻す。
【０１１２】
また、パケット関数には、各命令に対応して制御データが記述される。制御データは、一例として、演算器５６に与える演算式を含む。図１６の例においては、制御データは、当該第１のレジスタ５２−１のデータと出力するデータとの排他的論理和を、第１のレジスタ５２−１に書き戻す演算式（ＲＥＧ１＝ＲＥＧ１＾ＤＢ１またはＲＥＧ１＝ＲＥＧ１＾ＤＢ２）を含む。これに代えて、制御データは、データ変換部３４による変換処理を指定してもよい。
【０１１３】
また、パケット関数は、各命令に対応して、当該命令に対応して出力すべきデータの格納場所を指定する情報が記述される。パケット関数は、一例として、格納場所として、共通データ記憶部４０、個別データ記憶部４４およびレジスタ５２の何れかを指定する。
【０１１４】
図１６の例においては、０ｘ０Ｆまたは０ｘ０１といった十六進数値は、データの格納場所として共通データ記憶部４０のアドレスを示す。また、ＤＢ１は、データの格納場所として第１の個別データ記憶部４４−１を示す。ＤＢ２は、データの格納場所として第２の個別データ記憶部４４−２を示す。ＲＥＧ１は、データの格納場所として第１のレジスタ５２−１を示す。下位シーケンサ２８は、このようなパケット関数に示される命令列を実行することにより、各パケット関数により指定されたデータ列を出力することができる。
【０１１５】
図１７は、本実施形態に係る試験部４００の処理フローを示す。まず、パケットリスト処理部２２は、パケットリストを実行して、被試験デバイス５００との間で通信する各パケットを順次指定する（Ｓ１１、Ｓ１６）。そして、下位シーケンサ２８は、パケットリスト処理部２２によるパケットの指定を受けると、ステップＳ１２からステップＳ１５の処理を繰り返して実行する。
【０１１６】
下位シーケンサ２８は、パケットの指定を受けると、当該パケットを発生するための命令列を、パケット命令列記憶部２４から呼び出して、先頭の命令から順次に実行する。下位シーケンサ２８は、各命令の実行毎に、ステップＳ１３及びステップＳ１４の処理を行う（Ｓ１２、Ｓ１５）。
【０１１７】
ステップＳ１３において、下位シーケンサ２８は、当該命令に対応するデータを出力する。また、ステップＳ１４において、下位シーケンサ２８は、当該命令に対応する、演算またはデータ変換を実行させる。下位シーケンサ２８は、ステップＳ１３およびステップＳ１４を並行して実行する。
【０１１８】
下位シーケンサ２８は、最後の命令を実行すると、処理をパケットリスト処理部２２に戻して、パケットリスト処理部２２から次のパケットの指定を受ける（Ｓ１５）。そして、パケットリスト処理部２２は、パケットシーケンスにおける最後のパケットまでの処理が完了すると、当該フローを終了する（Ｓ１６）。
【０１１９】
以上のような本実施形態に係る試験部４００によれば、パケットシーケンスを表わすパケットリストと、パケット内の命令列とが、別個のシーケンサにより実行される。これにより、試験部４００によれば、プログラムの記述を簡単にすることができる。更に、試験部４００によれば、共通の種類のパケットを発生するための命令列およびデータを共用化することができるので、格納する情報量を少なくすることができる。
【０１２０】
更に、本実施形態に係る試験部４００は、下位シーケンサ２８が実行する命令列のアドレスおよび下位シーケンサ２８が読み出すデータ列のアドレスを、パケットリスト処理部２２から個別に指定する。これにより、試験部４００によれば、同一の命令列によって、異なるデータ列を発生することができる。従って、試験部４００によれば、同一の命令列を複数個格納しなくてよいので、格納する情報量を少なくすることができる。
【０１２１】
更に、本実施形態に係る試験部４００は、共通データ記憶部４０および個別データ記憶部４４から読み出したデータに対して指定された処理（即ち、演算または変換）を、データ処理部３２が実行する。即ち、データ処理部３２は、パケット通信における下位層（物理層に近い層）の規定に応じて処理されるべきデータ変換および誤り検出符号を生成することができる。
【０１２２】
これにより、試験部４００は、パケット通信における上位層のデータを出力させるための命令列およびデータ列を生成して、パケット通信における下位層における処理を別個に指定すればよい。従って、試験部４００によれば、プログラムの記述を簡単にすることができ、更に、格納する情報量を少なくすることができる。
【０１２３】
更に、本実施形態に係る試験部４００は、被試験デバイス５００へ信号を送信するための試験データ列を生成する送信側ブロック１２と、被試験デバイス５００から受信した信号と比較するための試験データ列を生成する受信側ブロック１４とを分離して、それぞれにパケットリスト処理部２２および下位シーケンサ２８を有する。試験部４００によれば、送信側および受信側のプログラムを独立に記述できるので、プログラムを簡単にすることができる。
【０１２４】
そして、試験部４００は、送信側の下位シーケンサ２８と受信側の下位シーケンサ２８との間で通信することができる。これにより、試験部４００によれば、例えば送信側に発生したイベントをトリガとして受信側の動作を開始したり、受信側に発生したイベントをトリガとして送信側の動作を開始したりすることが容易となる。
【０１２５】
なお、試験部４００は、送信側ブロック１２および受信側ブロック１４の組を、複数備える構成であってもよい。この場合、実行処理部４２０は、送信側ブロック１２および受信側ブロック１４の組のそれぞれに別個のシーケンス（別個のパケットリスト）を与えて、互いに独立に実行させる。これにより、試験部４００は、送信側ブロック１２および受信側ブロック１４の組のそれぞれを、互いに非同期に動作させることができる。
【０１２６】
また、実行処理部４２０は、送信側ブロック１２および受信側ブロック１４の組のそれぞれを、互いに同期して動作させてもよい。この場合、実行処理部４２０は、送信側ブロック１２および受信側ブロック１４の組のそれぞれに同一のシーケンス（同一のパケットリスト）を与えて、互いに同期して実行を開始させる。これにより、試験部４００は、同一種類または異なる種類のパケット通信型インターフェイスを備えた複数の被試験デバイス５００を、並行して試験することができる。
【０１２７】
図１８は、本実施形態に係る試験装置１００の構成の変形例を被試験デバイス５００とともに示す。試験装置１００は、アナログ回路、デジタル回路、メモリ、およびシステム・オン・チップ（ＳＯＣ）等のうち、特にパケットを送信および受信するパケット通信型の被試験デバイス５００を試験する。本変形例に係る試験装置１００は、図１〜図１７に示された本実施形態に係る試験装置１００と略同一の構成および機能を採るので、図１〜図１７に示した試験装置１００が備える部材と略同一の構成および機能の部材に同一の符号を付け、以下相違点を除き説明を省略する。
【０１２８】
試験装置１００は、被試験デバイス５００を試験するための試験パターンに基づく試験信号を被試験デバイス５００に入力して、試験信号に応じて被試験デバイス５００が出力する出力信号に基づいて被試験デバイス５００の良否を判定する。ここで試験装置１００は、試験パターンに基づく試験信号を、小さなデータに分割して各々に発信元と送信先のアドレス等の制御情報を付加したパケット形式で、被試験デバイス５００に供給する。試験装置１００は、変換部３００と、通信部の一例としての試験部４００と、更に結果処理部８００とを備える。
【０１２９】
変換部３００は、試験プログラムを試験部４００に供給する。変換部３００は、パケット定義データ記憶部３１０と、取得部３２０と、パケット通信プログラム生成部３３０と、更にタグ抽出部８１０とを有する。
【０１３０】
パケット定義データ記憶部３１０は、複数の試験パターンのそれぞれをユーザに識別させることを目的に、複数のパケットのそれぞれに対応したそれぞれのタグをパケット定義データの一部として記憶する。ここで複数のタグと複数のパケットの対応付けは、それぞれ１対１の関係にあってもよく、あるいは１つのタグと複数のパケットとが対応付けられていてもよく、タグが付加されていないパケットが存在してもよい。
【０１３１】
取得部３２０とパケット通信プログラム生成部３３０は、複数の試験パターンと、複数のタグが記述された試験プログラムを生成する。ここで複数のタグは、ユーザによってパケット関数上に記述されてもよい。またこの場合、複数のタグは、外部で記述された試験プログラムに所定の書式で記述されてもよく、例えばシミュレータ２００が供給するトランザクションレベルのシミュレーションモデルに記述されてもよい。ここで取得部３２０およびパケット通信プログラム生成部３３０は、タグが付された試験プログラムを自動生成してもよい。パケット通信プログラム生成部３３０は、生成した試験プログラムをタグ抽出部８１０に供給する。
【０１３２】
タグ抽出部８１０は、被試験デバイス５００との間で通信する複数の試験パターンと、複数のタグとを記述した試験プログラムから、複数の試験パターンのそれぞれと複数のタグのそれぞれとの対応付けを抽出する。タグ抽出部８１０は、複数の試験パターンのそれぞれと複数のタグのそれぞれとの対応付けの情報を結果処理部８００に供給する。さらにタグ抽出部８１０は、試験プログラムに記述してある複数のタグの情報を除去してコンパイルした試験プログラムのオブジェクトコードを、試験部４００に供給する。
【０１３３】
試験部４００は、試験プログラムを実行して、被試験デバイス５００との間での通信を試験する。試験部４００は、試験結果および被試験デバイス５００から受信したパケットの情報を結果処理部８００に供給する。結果処理部８００は、複数の試験パターンのそれぞれと複数のタグのそれぞれとの対応付けの情報と、試験部４００からの試験結果の情報より、タグを用いて試験結果を表示する。結果処理部８００は、タグ特定部８２０と、表示部８３０とを備える。
【０１３４】
タグ特定部８２０は、試験部４００および被試験デバイス５００の間で通信する試験パターンのそれぞれに対応するタグを特定する。タグ特定部８２０は、タグ抽出部８１０から供給される複数の試験パターンのそれぞれと複数のタグのそれぞれとの対応付けの情報から、それぞれのタグの内容を特定する。
【０１３５】
ここでタグ特定部８２０は、被試験デバイス５００から受信したパケットに対応するタグを特定してもよい。タグ特定部８２０は、正常な被試験デバイス５００から受信すべきパケットと実際に受信したパケットの差異に基づくタグを特定してもよく、あるいはこれに代えて受信したデータに応じたタグを特定してもよい。タグ特定部８２０は、特定した結果を表示部８３０に伝達する。
【０１３６】
表示部８３０は、被試験デバイス５００との間で通信した試験パターンの値と、タグ特定部８２０が特定したタグとを対応付けて表示する。表示部８３０は、試験装置１００本体に備わっていてもよく、あるいは試験装置１００本体と有線もしくは無線で接続されて試験装置１００本体から離れた位置に設置されてもよい。
【０１３７】
図１９は、本実施形態に係る試験プログラム９００の構成を示す。試験プログラム９００は、パケット関数９１０および／または複数の送信データ９２０を含む。パケット関数９１０は、少なくとも１つの送信データ９２０と、送信データ９２０に対応するタグ９３０を含んでよい。例えば、図中の試験プログラム９００は、「ＳＯＦ」および「ＰＵＴ＿ＤＡＴＡ０」と記述された二つのパケット関数９１０を含む。パケット関数ＳＯＦは、複数の送信データ９２０と、複数の送信データ９２０のそれぞれに対応したタグ９３０を含む。
【０１３８】
パケット関数ＳＯＦに属するパケットデータ「(DataBus <= b10000000)」は、例えばその同行に%ID="SYNC"と記載されることによって、特定のタグ「ＳＹＮＣ」と対応付けられる。同様にパケットデータ「(DataBus <= b01011010)」は、タグ「ＰＩＤ」に対応付けられている。ここでタグＳＹＮＣおよびタグＰＩＤ等は、ユーザに識別させるための意図した文字列および符号であってよい。
【０１３９】
パケット関数９１０は、特定のタグと対応付けられてもよい。例えば図中のパケット関数ＰＵＴ＿ＤＡＴＡ０は、その同行に%ID="Data2"と記載されることによって、特定のタグ「Ｄａｔａ２」と対応付けられる。また、パケット関数９１０は、特定のタグの記載がない場合、関数名をタグとして対応付けてもよい。例えば図中のパケット関数ＳＯＦは、特定のタグの記載がないことから、タグ「ＳＯＦ」と対応付けてよい。
【０１４０】
図２０は、本実施形態に係る表示結果１０００の構成を示す。表示結果１０００は、一例としてコンピュータ上で動作するソフトウェアによって表示される例を示した。表示結果１０００は、時間軸１０１０と、パケット情報１０２０とを含む。時間軸１０１０は、試験を開始した時刻からの時間または時間順を相対的に示してよい。例えば、図中の垂直上方から垂直下方に向けて試験開始からの時間経過を示してよい。
【０１４１】
パケット情報１０２０は、試験装置１００から被試験デバイス５００へ送信するパケットに関する情報を表示することが望ましい。パケット情報１０２０は、試験開始時刻から計測して被試験デバイス５００に送信されるまでの時刻に相当する時間軸１０１０上の位置に、表示されることが望ましい。パケット情報１０２０は、試験プログラムに応じて、被試験デバイス５００から試験装置１００へ送信されるパケットに関する情報をさらに示してもよい。この場合、パケット情報１０２０は、試験開始時刻から計測して試験部４００が受信するまでの時刻に相当する時間軸１０１０上の位置に、表示されることが望ましい。
【０１４２】
図中においてパケット情報１０２０は、一つの時間軸１０１０上に複数表示される例を示したが、これに代えて複数の時間軸１０１０を用いて表示してもよい。例えば、パケット情報１０２０は、垂直上方から垂直下方に向けて試験開始からの時間経過を示す二つの時間軸１０１０上に表示され、試験装置１００から被試験デバイス５００へ送信するパケット情報１０２０を一方に、被試験デバイス５００から試験装置１００へ送信されるパケットに関する情報をもう一方に分別して表示してもよい。パケット情報１０２０は、タグナンバー１０３０と、パケット関数のタグ１０４０と、タグを含んだパケットの表示１０５０とを備える。
【０１４３】
タグナンバー１０３０は、被試験デバイス５００との間で通信するパケットの番号を示す。タグナンバー１０３０は、試験を開始してから送受信されたパケットの順に番号をつけてもよく、これに代えて特定のパケット毎に番号をつけてもよい。タグナンバー１０３０は、ユーザの指定によって表示される番号の規則を自由に変更できることが望ましい。
【０１４４】
パケット関数のタグ１０４０は、パケット関数に付されたタグを示す。タグを含んだパケットの表示１０５０は、パケットのデータフィールドおよびパケットに対応付けられたタグを示す。パケット関数のタグ１０４０およびパケットに対応付けられたタグは、タグ抽出部８１０が対応付けを抽出して、タグ特定部８２０によって特定される。
【０１４５】
パケット情報１０２０におけるパケット関数のタグ１０４０およびタグを含んだパケットの表示１０５０は、パケット関数のタグ１０４０に対応付けられたパケット関数に、タグを含んだパケットの表示１０５０に対応付けられたパケットが含まれることを意味する。タグナンバー１０３０、パケット関数のタグ１０４０、およびタグを含んだパケットの表示１０５０は、それぞれ表示するかしないか、および／またはそれぞれを表示する順番を、ユーザの指定によって自由に変更できることが望ましい。
【０１４６】
タグナンバー１０３０が「Ｎｏ．２１」で示されたパケット情報１０２０は、タグ「ＳＯＦ」に対応付けられたパケット関数を示す。図中の例において、タグ「ＳＯＦ」に対応付けられたパケット関数は、タグ「ＰＩＤ」と、タグ「Ｆｒａｍｅ」と、タグ「ＣＲＣ」とそれぞれ応付けられたパケットデータを含むことを意味する。
【０１４７】
図２１は、本実施形態に係る試験装置１００の変形例の動作を示す。試験装置１００は、試験に応じた試験プログラムを実行する。取得部３２０およびパケット通信プログラム生成部３３０は、試験に応じた試験プログラムを生成する（Ｓ１１００）。
【０１４８】
タグ抽出部８１０は、生成された試験プログラムから、試験装置１００と被試験デバイス５００との間で通信するそれぞれのパケットに含まれるデータフィールドの値を示す複数の試験パターンと、データフィールドをユーザに識別させるための複数のタグとの対応付けを抽出する（Ｓ１１１０）。この段階で、試験装置１００と被試験デバイス５００との間で通信するパケットが判明するので、表示部８３０は、被試験デバイス５００との通信をする前に予め送信するパケット情報１０２０を表示してもよい（Ｓ１１２０）。
【０１４９】
ここで表示部８３０は、タグ特定部８２０が特定した試験装置１００および被試験デバイス５００の間で通信する試験パターンのそれぞれに対応するタグを表示する。以下、表示部８３０がパケット情報１０２０を表示する場合は、タグ特定部８２０が特定したタグを表示する。また表示部８３０は、試験装置１００の送信するパケットに応じて、正常動作する被試験デバイス５００から送られるべきパケットが判明している場合、そのパケット情報１０２０を表示してもよい。
【０１５０】
試験部４００は、試験プログラムに応じた試験パターンをパケットとして被試験デバイス５００に送信する（Ｓ１１３０）。この段階で、表示部８３０は、送信したパケット情報１０２０を表示してもよい。またステップＳ１１２０において、予め送信するパケット情報１０２０を表示している場合、表示部８３０は、送信したパケットを表示している部分にマークを付けるもしくは色を変える等、ユーザに被試験デバイス５００へのパケット送信状況が判別できるようにしてもよい。
【０１５１】
試験部４００は、送信したパケットに応じて被試験デバイス５００が送信するパケットを受信する（Ｓ１１４０）。この段階で、表示部８３０は、受信したパケット情報１０２０を表示してもよい。またステップＳ１１２０において、予め受信が予測できるパケット情報１０２０を表示している場合、表示部８３０は、そのパケットを表示している部分にマークを付けるもしくは色を変える等、ユーザに被試験デバイス５００からのパケット受信状況が判別できるようにしてもよい。
【０１５２】
試験装置１００は、試験パターンに応じた被試験デバイス５００の応答から、被試験デバイス５００の良否を判断する。表示部８３０は、試験結果を表示する（Ｓ１１５０）。表示部８３０は、試験結果をユーザに判別できるように、良否について文字、マーク、または色等を変えて試験結果として表示してよい。表示部８３０は、試験結果が否の場合に、送信したパケットの情報の色を例えば赤色にして表示してもよい。あるいはこれに代えて、表示部８３０は、受信したパケット情報１０２０を、例えば赤色にして表示してもよい。
【０１５３】
ここでタグ特定部８２０は、試験プログラムから被試験デバイス５００との間で通信されるべき試験パターンに対応するタグを特定して、表示部８３０は、被試験デバイス５００との間で実際に通信した試験パターンに対応付けて、タグ特定部８２０が特定したタグを表示してもよい。これにより、本来受信すべき試験パターンと、実際に受信したパターンとをタグによって対応付けて出力することができる。また、実際に受信したパターンが本来受信すべき試験パターンと不一致であった場合、不一致のパターンを赤等で表示してもよい。
【０１５４】
試験装置１００は、試験プログラムに記述されている試験パターンを全て被試験デバイス５００に送信したかどうかを判定する（Ｓ１１６０）。試験装置１００は、送信するべき試験パターンを全て送信した場合、試験が終了したと判断する。試験装置１００は、送信するべき試験パターンがまだ存在する場合、ステップＳ１１３０に戻り、試験が終了するまでステップＳ１１３０からステップＳ１１５０の手順を繰り返す。
【０１５５】
以上に示したように、本実施形態に係る試験装置１００の変形例によれば、パケット通信をする被試験デバイス５００の試験結果を、送受信するパケットと対応付けられたタグを用いることによって、実行する試験パターンとその試験結果をユーザに識別させることができる。また本実施形態に係る試験装置１００の変形例によれば、パケットの送信および／または受信の段階でパケットおよびタグの情報を表示することで、ユーザに試験を実施しつつ試験の実行結果を識別させることができる。
【０１５６】
以上の本実施形態に係る試験装置１００の変形例において、表示部８３０は、実行する試験パターンとその試験結果をユーザに識別させる目的で、パケット情報１０２０を時間軸１０１０上に表示することを例として説明した。これに代えて、表示部８３０は、パケット情報１０２０の要素であるタグナンバー１０３０と、パケット関数のタグ１０４０と、タグを含んだパケットの表示１０５０とを、表形式に示してもよい。これにより、試験装置１００は、得られた表形式のデータを表計算ソフトウェア等にデータとして与えることができる。
【０１５７】
以上の本実施形態に係る試験装置１００の変形例において、タグ特定部８２０は、試験部４００および被試験デバイス５００の間で通信する複数の試験パターンのそれぞれに対応するタグを特定することを例として説明した。これに代えて、タグ特定部８２０は、複数の試験パターンのそれぞれの値または値の範囲に対応する複数のタグのそれぞれとを記述した試験プログラム９００から、複数の試験パターンの値または値の範囲と複数のタグのそれぞれとの対応付けを抽出してもよい。
【０１５８】
ここで試験パターンの値が特定の範囲を持つ場合、試験プログラム９００は、試験パターンと同行においてタグを付してもよく、またこれに代えてタグ部分をタグ定義用のファイルまたはプログラムヘッダ部分等において別に指定してもよい。これより、表示部８３０は、具体的な試験パターンの値に基づいてタグを表示することになるので、ユーザは表示されるパケット情報１０２０から試験パターンを識別することができる。
【０１５９】
さらにタグ特定部８２０は、複数のタグのうち一のタグについて、試験プログラム中の変数を参照する旨の記述が含まれていた場合、当該変数の値に応じて当該一のタグの文字列を生成して、複数の試験パターンのうち当該一のタグに対応する一の試験パターンと当該一のタグの文字列とを対応付けて抽出してもよい。これにより、試験プログラム中の記述に変数を用いてパケットを送受信する場合においても、対応するタグも同様に変数を用いて表現できるので、表示部８３０は、複数の試験パターンのそれぞれに対応するタグを表示することができる。
【０１６０】
図２２は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【０１６１】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【０１６２】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【０１６３】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【０１６４】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【０１６５】
コンピュータ１９００にインストールされ、コンピュータ１９００を試験装置１００の変換部３００および結果処理部８００として機能させるプログラムは、パケット定義データ記憶モジュールと、取得モジュールと、パケット通信プログラム生成モジュールと、タグ抽出モジュールと、タグ特定モジュールと、表示モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、パケット定義データ記憶部３１０、取得部３２０、パケット通信プログラム生成部３３０、タグ抽出部８１０、タグ特定部８２０、表示部８３０としてそれぞれ機能させる。
【０１６６】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるパケット定義データ記憶部３１０、取得部３２０、パケット通信プログラム生成部３３０、タグ抽出部８１０、タグ特定部８２０、表示部８３０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の試験装置１００が構築される。
【０１６７】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＤＶＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１６８】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【０１６９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１７０】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１７１】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１７２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１７３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１７４】
１００  試験装置、２００  シミュレータ、３００  変換部、４００  試験部、５００  被試験デバイス、６００  シミュレーション環境、６１０  デバイスシミュレーションモデル、６２０  トランザクション・スティミュラス、６３０  アダプタ、３１０  パケット定義データ記憶部、３２０  取得部、３３０  パケット通信プログラム生成部、３４０  波形ダンプ記憶部、４１０  演算処理部、４２０  実行処理部、４３０  通信処理部、４４０  試験プログラム記憶部、４５０  プログラム供給部、４１２  変数記憶部、４１４  演算部、４２６  フロー制御部、４３２  パケットリスト記憶部、４３４  パケット通信部、４４２  通信ブロック抽出部、４４４  パケットリスト生成部、４４６  制御ブロック抽出部、４４８  制御プログラム生成部、４５２  演算ブロック抽出部、４５４  演算プログラム生成部、１２  送信側ブロック、１４  受信側ブロック、２２  パケットリスト処理部、２４  パケット命令列記憶部、２６  パケットデータ列記憶部、２８  下位シーケンサ、３２  データ処理部、３４  データ変換部、３６  送信部、４０  共通データ記憶部、４２  共通データポインタ、４４  個別データ記憶部、４６  個別データポインタ、５２  レジスタ、５４  前段選択部、５６  演算器、６０  後段選択部、７２  シリアライザ、７４  フォーマットコントローラ、７６  ドライバ、８２  受信部、８４  判定部、８６  レベルコンパレータ、８８  タイミングコンパレータ、９０  デシリアライザ、９２  位相調整部、９４  ハント部、８００  結果処理部、８１０  タグ抽出部、８２０  タグ特定部、８３０  表示部、９００  試験プログラム、９１０  パケット関数、９２０  送信データ、９３０  タグ、１０００  表示結果、１０１０  時間軸、１０２０  パケット情報、１０３０  タグナンバー、１０４０  パケット関数のタグ、１０５０  タグを含んだパケットの表示、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ−ＲＯＭ
【図１】
2010067475.tif 000003
【図２】
2010067475.tif 000004
【図３】
2010067475.tif 000005
【図４】
2010067475.tif 000006
【図５】
2010067475.tif 000007
【図６】
2010067475.tif 000008
【図７】
2010067475.tif 000009
【図８】
2010067475.tif 000010
【図９】
2010067475.tif 000011
【図１０】
2010067475.tif 000012
【図１１】
2010067475.tif 000013
【図１２】
2010067475.tif 000014
【図１３】
2010067475.tif 000015
【図１４】
2010067475.tif 000016
【図１５】
2010067475.tif 000017
【図１６】
2010067475.tif 000018
【図１７】
2010067475.tif 000019
【図１８】
2010067475.tif 000020
【図１９】
2010067475.tif 000021
【図２０】
2010067475.tif 000022
【図２１】
2010067475.tif 000023
【図２２】
2010067475.tif 000024
【国際調査報告】
2010067475.tif 000025
2010067475.tif 000026