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