(57)【要約】【課題】  複数の命令を順次転送し、転送した命令に対応する応答を受信するデバイスの動作の検証を、従来に比べて詳細に実行する。【解決手段】  模擬演算処理装置から順次受信する複数の命令を模擬入出力装置に順次転送し、模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験装置は、複数の命令と複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、模擬デバイスが所定の順序で受信した場合、模擬デバイスによる対象命令の処理の結果としてエラーを発生させるエラー発生部と、エラーを発生させたことを示すエラー発生情報を保持するエラー保持部と、模擬デバイスが受信した複数の応答のうち対象命令に対応する対象応答を、エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較する応答比較部を有する。【選択図】    図１
2016167187.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置の動作を模擬する模擬演算処理装置から順次受信する複数の命令を、入出力装置の動作を模擬する模擬入出力装置に順次転送し、前記模擬入出力装置に転送した複数の命令に対応して前記模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験装置において、
前記複数の命令と前記複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、前記模擬デバイスが所定の順序で前記模擬演算処理装置から受信した場合、前記模擬デバイスによる前記対象命令の処理の結果として、エラーを発生させるエラー発生部と、
前記対象命令の処理の結果としてエラーを発生させたことを示すエラー発生情報を保持するエラー保持部と、
前記模擬デバイスが受信した複数の応答のうち前記対象命令に対応する対象応答を、前記エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較する応答比較部を有する模擬デバイス試験装置。
【請求項２】
前記エラー発生部は、
前記対象命令を示す対象命令情報を保持する第１の保持部と、
前記模擬デバイスが受信した複数の命令のいずれかが、前記第１の保持部が保持する対象命令情報に対応する対象命令であることを検出する第１の検出部と、
前記所定の順序を示す順序情報を保持する第２の保持部と、
前記模擬デバイスが受信した複数の命令と複数の応答との少なくとも２つの順序が、前記第２の保持部が保持する順序情報に対応する順序であることを検出する第２の検出部と、
前記第１の検出部による検出と前記第２の検出部による検出とに基づいて、前記エラーを発生させる判定部を有することを特徴とする請求項１記載の模擬デバイス試験装置。
【請求項３】
前記第１の保持部は、複数の前記対象命令をそれぞれ示す複数の前記対象命令情報を保持する複数の第１の記憶領域を有し、
前記第１の検出部は、前記模擬デバイスが受信した命令が、複数の前記第１の保持部が保持する複数の前記対象命令情報に対応する対象命令のいずれかであることを検出し、
前記第２の保持部は、前記第１の保持部に保持される複数の前記対象命令情報に対応して複数の前記順序情報をそれぞれ保持する複数の第２の記憶領域を有し、
前記第２の検出部は、前記模擬デバイスが受信した複数の命令と複数の応答との少なくとも２つの順序が、前記模擬デバイスが受信した前記対象命令に対応する第２の記憶領域に保持された順序情報に対応する順序であることを検出することを特徴とする請求項２記載の模擬デバイス試験装置。
【請求項４】
前記エラー保持部は、前記第１の保持部に保持される複数の前記対象命令情報に対応して複数の前記エラー発生情報をそれぞれ保持する複数の第３の記憶領域を有することを特徴とする請求項３記載の模擬デバイス試験装置。
【請求項５】
前記第２の検出部は、
前記模擬デバイスが順次に受信した複数の命令と複数の応答とを示す命令情報に基づいて、前記模擬デバイスが受信した複数の命令と複数の応答との少なくとも２つの順序を判定するデコード部と、
前記デコード部により判定された順序と、前記第２の記憶領域に保持された前記順序情報に対応する順序とを比較する順序比較部を有することを特徴とする請求項２または請求項３記載の模擬デバイス試験装置。
【請求項６】
前記エラー発生部は、
前記第１の保持部が保持する対象命令情報と異なる対象命令情報を保持する第３の保持部と、
前記模擬デバイスが受信した複数の命令のいずれかが、前記第３の保持部が保持する対象命令情報が示す対象命令であることを検出する第３の検出部を有し、
前記判定部は、前記第１の検出部および前記第２の検出部による検出と、前記第３の検出部による検出とのいずれかに基づいて前記エラーを発生させる合成部を有することを特徴とする請求項２ないし請求項５のいずれか１項記載の模擬デバイス試験装置。
【請求項７】
テストシナリオにしたがって、前記模擬演算処理装置に命令を送信させるとともに、前記対象命令情報および前記順序情報を前記エラー発生部に出力し、前記模擬デバイスが前記模擬入出力装置から受信する応答を参照するテストシナリオ実行部を有し、
前記応答比較部は、前記テストシナリオ実行部に含まれることを特徴とする請求項２ないし請求項６のいずれか１項記載の模擬デバイス試験装置。
【請求項８】
前記複数の命令は、前記模擬入出力装置にデータを書き込む書き込みパケットと、前記模擬入出力装置からデータを読み出す読み出しパケットとを含み、
前記複数の応答は、前記書き込みパケットに基づいて前記模擬入出力装置から送信される書き込み応答パケットと、前記読み出しパケットに基づいて前記模擬入出力装置から送信され、前記模擬入出力装置から読み出されるデータを含む読み出し応答パケットとを含み、
前記エラー発生部は、前記書き込みパケットに含まれるデータにエラーを発生させ、
前記応答比較部は、前記読み出し応答パケットに含まれるデータを前記複数の期待値のいずれかと比較することを特徴とする請求項７記載の模擬デバイス試験装置。
【請求項９】
演算処理装置の動作を模擬する模擬演算処理装置から順次受信する複数の命令を、入出力装置の動作を模擬する模擬入出力装置に順次転送し、前記模擬入出力装置に転送した複数の命令に対応して前記模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験方法において、
情報処理装置が、
前記複数の命令と前記複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、前記模擬デバイスが所定の順序で前記模擬演算処理装置から受信した場合、前記模擬デバイスによる前記対象命令の処理の結果として、エラーを発生し、
前記対象命令の処理の結果としてエラーを発生したことを示すエラー発生情報をエラー保持部に保持し、
前記模擬デバイスが受信した複数の応答のうち前記対象命令に対応する対象応答を、前記エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較することを特徴とする模擬デバイス試験方法。
【請求項１０】
演算処理装置の動作を模擬する模擬演算処理装置から順次受信する複数の命令を、入出力装置の動作を模擬する模擬入出力装置に順次転送し、前記模擬入出力装置に転送した複数の命令に対応して前記模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験プログラムにおいて、
情報処理装置に、
前記複数の命令と前記複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、前記模擬デバイスが所定の順序で前記模擬演算処理装置から受信した場合、前記模擬デバイスによる前記対象命令の処理の結果として、エラーを発生させ、
前記対象命令の処理の結果としてエラーを発生させたことを示すエラー発生情報をエラー保持部に保持させ、
前記模擬デバイスが受信した複数の応答のうち前記対象命令に対応する対象応答を、前記エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較させることを特徴とする模擬デバイス試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）等のデバイスの性能や機能が増大するのに伴い、デバイスを搭載するシステムの性能や機能も増大してきており、不良が発生する要因が複雑化する傾向にある。これに伴い、デバイスの動作を検証する新たな手法が提案されている。
【０００３】
例えば、バスを介して互いに接続された複数のデバイスを検証するシミュレータは、テストシナリオに記述されたシステムの状態に基づいてエラー発生手段にエラーを発生させ、エラーが発生したときの動作を検証する（例えば、特許文献１参照）。
【０００４】
入出力デバイスを含むシステムの試験は、設定ファイルに設定されたタイミングまたはアドレス値などの所定の条件を満足する場合にエラーを発生する疑似の入出力デバイスを用いて実行される（例えば、特許文献２参照）。
【０００５】
バスを介して情報を伝送する複数の回路の論理を検証するシミュレータは、バス上での伝送遅延および伝送エラーをバスモジュールに疑似的に発生させ、バスの特性を含めて論理を検証する（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−５８４３１号公報
【特許文献２】特開２００３−４４３６９号公報
【特許文献３】特開２０１２−２２６１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
デバイスの内部で発生するエラーは、発生タイミングが互いに異なる複数の要因の組み合わせにより発生する場合があるが、この種のエラーをデバイスに発生させたときのデバイスの動作を検証する手法は提案されていない。
【０００８】
１つの側面では、本件開示の模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムは、複数の命令を順次転送し、転送した命令に対応する応答を受信するデバイスの動作の検証を、従来に比べて詳細に実行することを目的とする。
【課題を解決するための手段】
【０００９】
一つの観点によれば、演算処理装置の動作を模擬する模擬演算処理装置から順次受信する複数の命令を、入出力装置の動作を模擬する模擬入出力装置に順次転送し、模擬入出力装置に転送した複数の命令に対応して模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験装置は、複数の命令と複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、模擬デバイスが所定の順序で模擬演算処理装置から受信した場合、模擬デバイスによる対象命令の処理の結果としてエラーを発生させるエラー発生部と、対象命令の処理の結果としてエラーを発生させたことを示すエラー発生情報を保持するエラー保持部と、模擬デバイスが受信した複数の応答のうち対象命令に対応する対象応答を、エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較する応答比較部を有する。
【００１０】
別の観点によれば、演算処理装置の動作を模擬する模擬演算処理装置から順次受信する複数の命令を、入出力装置の動作を模擬する模擬入出力装置に順次転送し、模擬入出力装置に転送した複数の命令に対応して模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験方法では、情報処理装置が、複数の命令と複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、模擬デバイスが所定の順序で模擬演算処理装置から受信した場合、模擬デバイスによる対象命令の処理の結果として、エラーを発生し、対象命令の処理の結果としてエラーを発生したことを示すエラー発生情報をエラー保持部に保持し、模擬デバイスが受信した複数の応答のうち対象命令に対応する対象応答を、エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較する。
【００１１】
さらなる別の観点によれば、演算処理装置の動作を模擬する模擬演算処理装置から順次受信する複数の命令を、入出力装置の動作を模擬する模擬入出力装置に順次転送し、模擬入出力装置に転送した複数の命令に対応して模擬入出力装置から順次受信する複数の応答を処理する模擬デバイスの動作を試験する模擬デバイス試験プログラムにおいて、情報処理装置に、複数の命令と複数の応答との少なくともいずれかと、エラーの発生を指示する対象命令とを、模擬デバイスが所定の順序で模擬演算処理装置から受信した場合、模擬デバイスによる対象命令の処理の結果として、エラーを発生させ、対象命令の処理の結果としてエラーを発生させたことを示すエラー発生情報をエラー保持部に保持させ、模擬デバイスが受信した複数の応答のうち対象命令に対応する対象応答を、エラー保持部に保持したエラー発生情報に基づいて複数の期待値のいずれかと比較させる。
【発明の効果】
【００１２】
本件開示の模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムは、複数の命令を順次転送し、転送した命令に対応する応答を受信するデバイスの動作の検証を、従来に比べて詳細に実行することができる。
【図面の簡単な説明】
【００１３】
【図１】模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの一実施形態を示す図である。
【図２】模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの別の実施形態を示す図である。
【図３】図２に示す対象デバイスの一例を示す図である。
【図４】図２に示すエラー生成部の一例を示す図である。
【図５】図４に示すデコード部の一例を示す図である。
【図６】図４に示すエラー生成部の動作の一例を示す図である。
【図７】図２に示すテストシナリオ実行部の応答比較部の動作の一例を示す図である。
【図８】図２に示すテストシナリオ実行部が実行するテストシナリオの一例を示す図である。
【図９】図２に示すテストシナリオ実行部が実行するテストシナリオの別の例を示す図である。
【図１０】図２に示すテストシナリオ実行部が実行するテストシナリオの別の例を示す図である。
【図１１】図２に示す模擬デバイス試験装置として動作する情報処理装置の一例を示す図である。
【図１２】模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの別の実施形態を示す図である。
【図１３】図１２に示す対象デバイスの一例を示す図である。
【図１４】図１２に示すエラー生成部の一例を示す図である。
【図１５】模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの別の実施形態を示す図である。
【図１６】図１５に示すエラー生成部の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を用いて実施形態を説明する。
【００１５】
図１は、模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの一実施形態を示す。図１に示す模擬デバイス試験装置ＤＴ１は、ＬＳＩ等の動作を模擬する模擬デバイス１を用いてＬＳＩ等の動作を検証する。模擬デバイス１は、演算処理装置の動作を模擬する模擬演算処理装置２から順次受信する複数の命令ＩＮＳを、入出力装置の動作を模擬する模擬入出力装置３に順次転送する。また、模擬デバイス１は、模擬入出力装置３に転送した複数の命令ＩＮＳに対応して模擬入出力装置３から順次受信する複数の応答ＲＥＳを処理する。模擬デバイス１は、処理した応答ＲＥＳを命令ＩＮＳの送信元である模擬演算処理装置２に送信してもよい。図１では、模擬デバイス１は、１つの命令ＩＮＳに対する３回の処理および１つの応答ＲＥＳに対する３回の処理の各々を、１サイクルで実行する。なお、模擬デバイス１が１つの命令ＩＮＳを処理する回数および模擬デバイス１が１つの応答ＲＥＳを処理する回数は、図１に示す３回に限定されない。例えば、模擬デバイス１が命令ＩＮＳに対して実行する処理では、命令ＩＮＳの実体は変更されず、命令ＩＮＳに含まれる情報が抽出され、または命令ＩＮＳへ情報が追加される。同様に、模擬デバイス１が応答ＲＥＳに対して実行する処理では、応答ＲＥＳの実体は変更されず、応答ＲＥＳに含まれる情報が抽出され、または応答ＲＥＳへ情報が追加される。
【００１６】
例えば、模擬デバイス試験装置ＤＴ１は、模擬デバイス１の動作を検証する模擬デバイス試験プログラムを情報処理装置等により実行することで、模擬デバイス試験方法を実現する。模擬デバイス１は、模擬デバイス１により模擬されるＬＳＩ等の回路記述等の設計データにより表される。模擬演算処理装置２は、演算処理装置の機能のうち、命令ＩＮＳを送信し、応答ＲＥＳを受信する機能を含み、模擬入出力装置３は、情報を入出力する機能のうち命令ＩＮＳを受信し、応答ＲＥＳを送信する機能を含む。なお、模擬デバイス試験装置ＤＴ１は、ハードウェアにより実現されてもよい。模擬デバイス１、模擬演算処理装置２および模擬入出力装置３の少なくともいずれかは、実際のデバイスが使用されてもよい。また、模擬デバイス１には、模擬演算処理装置２および模擬入出力装置３以外の模擬装置が接続されてもよい。
【００１７】
模擬デバイス試験装置ＤＴ１は、エラー発生部４、エラー保持部６および応答比較部８を有する。エラー発生部４は、複数の命令ＩＮＳと複数の応答ＲＥＳとの少なくともいずれかと、エラーの発生を指示する対象命令ＴＩＮＳとを、模擬デバイス１が所定の順序で模擬演算処理装置２から受信した場合、発生情報ＥＩＮを出力する。発生情報ＥＩＮは、模擬デバイス１による対象命令ＴＩＮＳの処理の結果として発生するエラーを示し、模擬デバイス１およびエラー保持部６に出力される。模擬デバイス１は、発生情報ＥＩＮに基づいて対象命令ＴＩＮＳにエラーを発生させる。
【００１８】
例えば、エラー発生部４は、対象命令ＴＩＮＳを受信する２サイクル前に、所定の命令ＩＮＳを受信した場合、発生情報ＥＩＮを出力する。あるいは、エラー発生部４は、対象命令ＴＩＮＳを受信する１サイクル前に、所定の命令ＩＮＳに対応する応答ＲＥＳを受信した場合、発生情報ＥＩＮを出力する。すなわち、エラー発生部４は、模擬デバイス１が処理する対象命令ＴＩＮＳと他の命令と応答との組み合わせに基づいて、発生情報ＥＩＮを出力する。一方、エラー発生部４は、複数の命令ＩＮＳと複数の応答ＲＥＳとの少なくともいずれかと、エラーの発生が指示された対象命令ＴＩＮＳとを、模擬デバイス１が所定の順序で受信しない場合、発生情報ＥＩＮを出力しない。
【００１９】
なお、エラー発生部４は、応答ＲＥＳを参照することなく、対象命令ＴＩＮＳを含む複数の命令ＩＮＳを模擬デバイス１が所定の順序で受信した場合、発生情報ＥＩＮを出力してもよい。また、エラー発生部４は、模擬デバイス１が処理している対象命令ＴＩＮＳに含まれる情報を取り出し、取り出した情報にエラーを発生させ、エラーを発生させた情報を模擬デバイス１が処理している対象命令ＴＩＮＳに戻してもよい。すなわち、エラーは、エラー発生部４の内部で発生されてもよい。
【００２０】
エラー保持部６は、発生情報ＥＩＮの受信に基づいて、対象命令ＴＩＮＳの処理の結果としてエラーを発生させたことを示すエラー発生情報ＥＧを保持し、保持しているエラー発生情報ＥＧを応答比較部８に出力する。
【００２１】
応答比較部８は、対象命令ＴＩＮＳの処理の結果としてエラーを発生させたことを示すエラー発生情報ＥＧを受信した場合、対象命令ＴＩＮＳに対応して模擬デバイス１が受信した応答ＲＥＳである対象応答を、エラーを発生させた場合の期待値ＥＸＰＥと比較する。一方、応答比較部８は、エラー発生情報ＥＧを受信しない場合、対象命令ＴＩＮＳに対応して模擬デバイス１が受信した対象応答を、エラーを発生させない場合の期待値ＥＸＰと比較する。
【００２２】
そして、応答比較部８は、応答ＲＥＳと期待値ＥＸＰＥとが一致する場合、または応答ＲＥＳと期待値ＥＸＰとが一致する場合、模擬デバイス１が正しく動作したことを示す検証結果ＲＳＬＴを出力する。一方、応答比較部８は、応答ＲＥＳと期待値ＥＸＰＥとが一致しない場合、または応答ＲＥＳと期待値ＥＸＰとが一致しない場合、模擬デバイス１が正しく動作しなかったことを示す検証結果ＲＳＬＴを出力する。すなわち、模擬デバイス試験装置ＤＴ１による模擬デバイス１の動作の検証（模擬デバイス試験方法）が実行される。
【００２３】
以上、図１に示す実施形態では、全ての対象命令ＴＩＮＳにエラーを発生させて期待値ＥＸＰＥと比較するのではなく、対象命令ＴＩＮＳを受信した場合に模擬デバイス１が処理している命令または応答に基づいて、エラーの発生の有無を選択することができる。この結果、複数の命令ＩＮＳを順次転送し、転送した命令ＩＮＳに対応して順次受信する複数の応答ＲＥＳを処理する模擬デバイス１の動作の検証を、従来に比べて複雑な条件を指定して実行することができ、詳細な検証を実行することができる。
【００２４】
エラーを発生させたか否かを示すエラー発生情報ＥＧをエラー保持部６に保持させることで、２つの期待値ＥＸＰ、ＥＸＰＥのいずれかを用いて、エラーを発生させた場合とエラーを発生させなかった場合の両方の検証を実行することができる。これにより、１つの期待値を用いて検証を実行する場合に比べて、検証の効率を向上することができる。
【００２５】
図２は、模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの別の実施形態を示す。例えば、図２に示す模擬デバイス試験装置ＤＴ２は、対象デバイス１０の論理を検証する模擬デバイス試験プログラムを実行する情報処理装置により実現される。模擬デバイス試験プログラムを実行する情報処理装置は、シミュレータとして機能し、対象デバイス１０の論理を検証する模擬デバイス試験方法に基づく動作を実行する。模擬デバイス試験装置ＤＴ２を実現する情報処理装置の例は、図１１に示される。
【００２６】
模擬デバイス試験装置ＤＴ２は、試験の対象である対象デバイス１０と、バスＢＵＳ１を介して対象デバイス１０に接続される疑似デバイス２０と、バスＢＵＳ２を介して対象デバイス１０に接続される疑似デバイス３０とを有する。また、模擬デバイス試験装置ＤＴ２は、対象デバイス１０にエラーを発生させる発生情報ＥＩＮを生成するエラー生成部４０と、テストシナリオ５２を実行し、対象デバイス１０の論理を検証するテストシナリオ実行部５０とを有する。
【００２７】
対象デバイス１０は、バスＢＵＳ１を介して疑似デバイス２０から受信するパケットＰ１１を処理し、パケットＰ１２としてバスＢＵＳ２を介して疑似デバイス３０に転送する機能を有する。また、対象デバイス１０は、バスＢＵＳ２を介して疑似デバイス２０から受信するパケットＰ２１を処理し、パケットＰ２２としてバスＢＵＳ１を介して疑似デバイス２０に転送する機能を有する。例えば、バスＢＵＳ１、ＢＵＳ２は、ＰＣＩ（Peripheral Component Interconnect）バスまたはＰＣＩ ｅｘｐｒｅｓｓ（登録商標）バスである。パケットＰ１１、Ｐ１２、Ｐ２１、Ｐ２２は、ＰＣＩまたはＰＣＩｅの規格にしたがってバスＢＵＳ１、ＢＵＳ２上に伝送される。なお、バスＢＵＳ１、ＢＵＳ２は、他のバス規格でもよい。
【００２８】
疑似デバイス２０は、ＣＰＵ（Central Processing Unit）等の演算処理装置の機能のうち、バスＢＵＳ１にパケットＰ１１を送信する機能と、バスＢＵＳ１からパケットＰ２２を受信する機能とを含む。疑似デバイス２０は、テストシナリオ実行部５０から出力されるテストパターンＴＰにしたがって動作する。
【００２９】
疑似デバイス３０は、疑似デバイス２０（ＣＰＵ等の演算処理装置）により動作が制御される入出力装置等の周辺装置の機能のうち、バスＢＵＳ２からパケットＰ１２を受信する機能と、バスＢＵＳ２にパケットＰ２１を送信する機能とを含む。すなわち、疑似デバイス２０は、ＣＰＵの機能のうち、対象デバイス１０とのインタフェース機能を含み、疑似デバイス３０は、ＣＰＵにより制御される入出力装置の機能のうち、対象デバイス１０とのインタフェース機能を含む。対象デバイス１０は、疑似デバイス２０から順次受信する複数の命令を疑似デバイス３０に転送し、疑似デバイス３０から順次受信する複数の応答を処理する模擬デバイスの一例である。疑似デバイス２０は、演算処理装置の動作を模擬する模擬演算処理装置の一例であり、疑似デバイス３０は、入出力装置の動作を模擬する模擬入出力装置の一例である。
【００３０】
疑似デバイス２０が送信したパケットＰ１１に応答して疑似デバイス３０がパケットＰ２１を返送する場合、パケットＰ２１、Ｐ２２は、応答パケットとして扱われる。この場合、パケットＰ１１、Ｐ１２は、命令の一例であり、パケットＰ２１、Ｐ２２は、命令Ｐ１１、Ｐ１２に対応する応答の一例である。また、疑似デバイス３０が送信したパケットＰ２１に応答して疑似デバイス２０がパケットＰ１１を返送する場合、パケットＰ１１、Ｐ１２は、応答パケットとして扱われる。
【００３１】
例えば、対象デバイス１０は、ＣＰＵと入出力装置との間に接続されるスイッチの機能を有し、スイッチの回路記述等の設計データにより表される。なお、対象デバイス１０は、ＣＰＵと入出力装置との間に接続されるブリッジの機能を有してもよい。そして、模擬デバイス試験装置ＤＴ２は、ＣＰＵと入出力装置との間に接続されるスイッチまたはブリッジの論理を検証する。対象デバイス１０とのインタフェース機能を含む疑似デバイス２０、３０を用いることで、バスＢＵＳ１、ＢＵＳ２を介してＣＰＵおよび入出力装置に接続されるスイッチの論理を、システムレベルで検証することができる。
【００３２】
エラー生成部４０は、エラーを発生させるパケットＰ１１を識別する識別番号ＰＩＤｓと、パケットＰ１１にエラーを発生させる条件を識別する識別番号ＣＩＤｓとをテストシナリオ実行部５０から受信する。識別番号ＰＩＤｓにより識別されるパケットＰ１１は、エラーの発生が指示された対象命令の一例である。識別番号ＣＩＤｓは、複数のパケットＰ１１と複数の応答パケットＰ２１との少なくともいずれかと、識別番号ＰＩＤｓにより示されるパケットＰ１１とが、対象デバイス１０に供給される順序を示す順序情報の一例である。換言すれば、識別番号ＣＩＤｓは、エラーを発生させる条件であるパケットＰ１１、Ｐ２１の組み合わせを示す。識別番号ＣＩＤｓにより示されるパケットＰ１１、Ｐ２１の組み合わせの例は、図５に示される。
【００３３】
エラー生成部４０は、対象デバイス１０が受信したパケットＰ１１を識別する識別番号ＰＩＤと、対象デバイス１０内で順次処理される複数のパケットＰ１１、Ｐ２１の種別を示す種別情報ＰＴＹＰとを、対象デバイス１０から受信する。エラー生成部４０は、種別情報ＰＴＹＰに基づいて、対象デバイス１０が処理している複数のパケットＰ１１、Ｐ２１の組み合わせを示す識別番号ＣＩＤ（図４）を生成する。
【００３４】
エラー生成部４０は、識別番号ＰＩＤが識別番号ＰＩＤｓと一致する場合、パケットＰ１１にエラーを発生させる発生情報ＥＩＮを対象デバイス１０に出力する。あるいは、エラー生成部４０は、識別番号ＰＩＤが識別番号ＰＩＤｓと一致し、かつ種別情報ＰＴＹＰに対応する識別番号ＣＩＤが識別番号ＣＩＤｓと一致する場合、発生情報ＥＩＮを対象デバイス１０に出力する。発生情報ＥＩＮを出力する条件は、図４で説明される。対象デバイス１０は、発生情報ＥＩＮに基づいて、パケットＰ１１にエラーを埋め込み、パケットＰ１２として疑似デバイス３０に送信する。すなわち、エラー生成部４０は、対象デバイス１０が処理しているパケットＰ１１のうち識別番号ＰＩＤｓにより識別されるパケットＰ１１にエラーを挿入する。エラー生成部４０は、発生情報ＥＩＮの出力に基づいて、エラーが埋め込まれたことを示すエラー発生情報ＥＧをテストシナリオ実行部５０に出力する。
【００３５】
疑似デバイス３０は、受信したパケットＰ１２に基づいて内部処理を実行し、内部処理の実行結果を示すパケットＰ２１（応答パケット）を対象デバイス１０に送信する。対象デバイス１０は、パケットＰ２１を処理し、パケットＰ２２として疑似デバイス２０に送信する。
【００３６】
なお、種別情報ＰＴＹＰは、対象デバイス１０内で順次保持される疑似デバイス２０からの複数のパケットＰ１１の種別だけでなく、対象デバイス１０内で順次保持される疑似デバイス３０からの複数の応答パケットＰ２１の種別を示してもよい。この場合、テストシナリオ実行部５０は、疑似デバイス２０から対象デバイス１０に送信されるパケットＰ１１と、疑似デバイス３０から対象デバイス１０に送信される応答パケットＰ２１との組み合わせを示す識別番号ＣＩＤｓをエラー生成部４０に送信する。エラー生成部４０は、種別情報ＰＴＹＰに基づいて、対象デバイス１０が保持している複数のパケットＰ１２、Ｐ２１の組み合わせを示す識別番号ＣＩＤを生成し、識別番号ＣＩＤ、ＣＩＤｓの一致を判定する。
【００３７】
テストシナリオ実行部５０は、テストシナリオ５２にしたがって、疑似デバイス２０を動作させるテストパターンＴＰを疑似デバイス２０に出力するとともに、識別番号ＰＩＤｓ、ＣＩＤｓをエラー生成部４０に出力する。テストシナリオ実行部５０は、識別番号ＣＩＤｓを指定せずに識別番号ＰＩＤｓを指定してパケットＰ１１にエラーを埋め込む場合、エラー発生情報ＥＧに拘わらず、応答パケットＰ２２に含まれる情報ＣＰＬと期待値とを応答比較部５４に比較させる。エラーが埋め込まれたパケットＰ１１に対応する応答パケットＰ２２は、対象応答の一例である。
【００３８】
一方、テストシナリオ実行部５０は、識別番号ＰＩＤｓとともに識別番号ＣＩＤｓ（エラーの発生条件）を指定してパケットＰ１１にエラーを埋め込む場合、エラー発生情報ＥＧに基づいた比較を応答比較部５４に実行させる。すなわち、応答比較部５４は、応答パケットＰ２２に含まれる情報ＣＰＬを２つの期待値のいずれかと比較する。応答比較部５４の動作の例は、図７に示され、テストシナリオ実行部５０が実行するテストシナリオ５２の例は、図８から図１０に示される。
【００３９】
図３は、図２に示す対象デバイス１０の一例を示す。対象デバイス１０は、パケットＰ１１を順次処理してパケットＰ１２を生成する処理部ＳＴＧＡ（ＳＴＧＡ０、ＳＴＧＡ１、ＳＴＧＡ２）を有する。また、対象デバイス１０は、パケットＰ２１を順次処理してパケットＰ２２を生成する処理部ＳＴＧＢ（ＳＴＧＢ０、ＳＴＧＢ１、ＳＴＧＢ２）を有する。各処理部ＳＴＧＡ、ＳＴＧＢは、受信したパケットに含まれる情報を抽出または削除し、あるいは、受信したパケットに情報を追加する機能を有する。
【００４０】
さらに、処理部ＳＴＧＡ０は、疑似デバイス２０から受信するパケットＰ１１に含まれる識別番号ＰＩＤを抽出し、抽出した識別番号ＰＩＤを図２に示すエラー生成部４０に出力する機能を有する。また、処理部ＳＴＧＡ０は、エラー生成部４０から発生情報ＥＩＮを受けた場合に、パケットＰ１１に含まれる情報にエラーを埋め込む機能を有する。なお、エラーを埋め込む機能は、処理部ＳＴＧＡ１または処理部ＳＴＧＡ２に設けられてもよい。エラーを発生させる機能を理部ＳＴＧＡ１または処理部ＳＴＧＡ２に設けることで、識別番号ＰＩＤに対応するパケットＰ１１の後に対象デバイス１０に供給されるパケットＰ１１を、エラーの発生の条件に含めることができる。
【００４１】
各処理部ＳＴＧＡは、処理するパケットＰ１１が書き込みパケットの場合、パケット情報ＷＲＡ（ＷＲＡ０、ＷＲＡ１、ＷＲＡ２）を種別情報ＰＴＹＰとして出力する。各処理部ＳＴＧＡは、処理するパケットＰ１１が読み出しパケットの場合、パケット情報ＲＤＡ（ＲＤＡ０、ＲＤＡ１、ＲＤＡ２）を種別情報ＰＴＹＰとして出力する。書き込みパケットは、疑似デバイス２０が疑似デバイス３０の所定の領域にデータを書き込む場合に生成され、読み出しパケットは、疑似デバイス２０が疑似デバイス３０の所定の領域からデータを読み出す場合に生成される。
【００４２】
また、各処理部ＳＴＧＡは、処理するパケットＰ１１が、書き込みパケットに応答する応答パケットまたは読み出しパケットに応答する応答パケットの場合、パケット情報ＣＰＬＡ（ＣＰＬＡ０、ＣＰＬＡ１、ＣＰＬＡ２）を種別情報ＰＴＹＰとして出力する。応答パケットは、書き込みパケットまたは読み出しパケットを受信した疑似デバイス３０により生成され、読み出しパケットに応答する応答パケットは、読み出しデータを含む。
【００４３】
各処理部ＳＴＧＢは、処理するパケットＰ２１が書き込みパケットの場合、パケット情報ＷＲＢ（ＷＲＢ０、ＷＲＢ１、ＷＲＢ２）を種別情報ＰＴＹＰとして出力する。各処理部ＳＴＧＢは、処理するパケットＰ２１が読み出しパケットの場合、パケット情報ＲＤＢ（ＲＤＢ０、ＲＤＢ１、ＲＤＢ２）を種別情報ＰＴＹＰとして出力する。また、各処理部ＳＴＧＢは、処理するパケットＰ２１が、書き込みパケットに応答する応答パケットまたは読み出しパケットに応答する応答パケットの場合、パケット情報ＣＰＬＢ（ＣＰＬＢ０、ＣＰＬＢ１、ＣＰＬＢ２）を種別情報ＰＴＹＰとして出力する。
【００４４】
なお、処理部ＳＴＧＡ、ＳＴＧＢの数は、３つに限定されず、各処理部ＳＴＧＡ、ＳＴＧＢが出力するパケット情報の種類は、３種類に限定されない。
【００４５】
図４は、図２に示すエラー生成部４０の一例を示す。エラー生成部４０は、バッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３、ＢＵＦ４、複数の比較部ＣＭＰ１、複数の比較部ＣＭＰ２、判定部ＪＤＧ１、ＪＤＧ２および合成部ＣＯＭを有する。バッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３、複数の比較部ＣＭＰ１、複数の比較部ＣＭＰ２および判定部ＪＤＧ１は、対象デバイス１０内で処理されるパケットＰ１１の処理の結果としてエラーを発生させるエラー発生部の一例である。バッファＢＵＦ１は、第３の保持部の一例であり、バッファＢＵＦ２は、第１の保持部の一例であり、バッファＢＵＦ３は、第２の保持部の一例であり、バッファＢＵＦ４は、エラー保持部の一例である。各比較部ＣＭＰ１は、第３の検出部の一例であり、各比較部ＣＭＰ２は、第１の検出部の一例であり、比較部ＣＭＰ３は、順序比較部の一例である。判定部ＪＤＧ１は、第２の検出部の一例である。
【００４６】
バッファＢＵＦ１は、図２に示すテストシナリオ実行部５０から出力される識別番号ＰＩＤｓが順次格納される複数の記憶領域を有し、格納された識別番号ＰＩＤｓを、複数の記憶領域にそれぞれ対応する比較部ＣＭＰ１に出力する。識別番号ＰＩＤｓは、テストシナリオ実行部５０が実行するテストシナリオ５２に基づいてテストシナリオ実行部５０により生成される。複数の比較部ＣＭＰ１は、バッファＢＵＦ１の記憶領域のそれぞれに対応して設けられる。比較部ＣＭＰ１の各々は、対象デバイス１０からの識別番号ＰＩＤと、バッファＢＵＦ１からの識別番号ＰＩＤｓとの一致を検出する。各比較部ＣＭＰ１は、識別番号ＰＩＤを表す複数ビットの各ビットと、バッファＢＵＦ１から出力される識別番号ＰＩＤｓを表す複数ビットの各ビットとの否排他的論理和を演算することで、識別番号ＰＩＤ、ＰＩＤｓの一致を検出する。各比較部ＣＭＰ１は、識別番号ＰＩＤ、ＰＩＤｓが互いに一致する場合、合成部ＣＯＭに論理１を出力する。
【００４７】
図４に示す例では、識別番号ＰＩＤが、バッファＢＵＦ１の記憶領域の１つに格納された”１”である場合、比較部ＣＭＰ１の１つは、合成部ＣＯＭに論理１を出力する。合成部ＣＯＭは、判定部ＪＤＧ２または比較部ＣＭＰ１のいずれかから論理１を受けた場合、パケットＰ１１にエラーを埋め込むために、対象デバイス１０に発生情報ＥＩＮを出力する。合成部ＣＯＭは、判定部ＪＤＧ２および比較部ＣＭＰ１の両方から論理０を受けた場合、パケットＰ１１にエラーを埋め込まないために、対象デバイス１０への発生情報ＥＩＮの出力を抑止する。合成部ＣＯＭにより、バッファＢＵＦ１に保持された情報、またはバッファＢＵＦ２、ＢＵＦ３に保持された情報に基づいて、パケットＰ１１にエラーを埋め込むことができる。すなわち、パケットＰ１１の順序の条件を含む場合と含まない場合の両方において、パケットＰ１１にエラーを埋め込むことができ、様々な条件を用いて、対象デバイス１０の論理を検証することができる。
【００４８】
バッファＢＵＦ２は、テストシナリオ実行部５０から出力される識別番号ＰＩＤｓが順次格納される複数の記憶領域を有し、格納された識別番号ＰＩＤｓを、複数の記憶領域にそれぞれ対応する比較部ＣＭＰ２に出力する。複数の比較部ＣＭＰ２は、バッファＢＵＦ２の記憶領域のそれぞれに対応して設けられる。比較部ＣＭＰ２の各々は、対象デバイス１０からの識別番号ＰＩＤと、バッファＢＵＦ２からの識別番号ＰＩＤｓとの一致を検出する。各比較部ＣＭＰ２は、識別番号ＰＩＤを表す複数ビットの各ビットと、バッファＢＵＦ２から出力される識別番号ＰＩＤｓを表す複数ビットの各ビットとの否排他的論理和を演算することで、識別番号ＰＩＤ、ＰＩＤｓの一致を検出する。各比較部ＣＭＰ２は、識別番号ＰＩＤ、ＰＩＤｓが互いに一致する場合、判定部ＪＤＧ２に論理１を出力する。
【００４９】
バッファＢＵＦ３は、識別番号ＰＩＤにそれぞれ対応して識別番号ＣＩＤｓが格納される複数の記憶領域を有する。バッファＢＵＦ３は、対象デバイス１０から識別番号ＰＩＤを受信した場合、識別番号ＰＩＤに対応する記憶領域に格納されている識別番号ＣＩＤｓを判定部ＪＤＧ１に出力する。なお、バッファＢＵＦ３の記憶領域に格納される”０”は、比較部ＣＭＰによる比較対象でない無効な識別番号ＣＩＤｓを示す。
【００５０】
判定部ＪＤＧ１は、デコード部ＣＤＥＣと比較部ＣＭＰ３とを有する。デコード部ＣＤＥＣは、対象デバイス１０から出力される種別情報ＰＴＹＰをデコードし、種別情報ＰＴＹＰが示すパケットの組み合わせを示す識別番号ＣＩＤを生成する。種別情報ＰＴＹＰは、対象デバイス１０が受信した複数のパケットＰ１１、Ｐ２１を示す命令情報の一例である。
【００５１】
比較部ＣＭＰ３は、デコード部ＣＤＥＣにより生成された識別番号ＣＩＤと、識別番号ＰＩＤに対応してバッファＢＵＦ３から出力される識別番号ＣＩＤｓとの一致を検出する。比較部ＣＭＰ３は、識別番号ＣＩＤを表す複数ビットの各ビットと、バッファＢＵＦ３から出力される識別番号ＣＩＤｓを表す複数ビットの各ビットとの否排他的論理和を演算することで、識別番号ＣＩＤ、ＣＩＤｓの一致を検出する。比較部ＣＭＰ３は、識別番号ＣＩＤ、ＣＩＤｓが互いに一致する場合、判定部ＪＤＧ２に論理１を出力する。すなわち、比較部ＣＭＰ３は、図３に示す処理部ＳＴＧＡ、ＳＴＧＢに保持されたパケットの組み合わせが、テストシナリオ５２で指定されたエラーを発生させる組み合わせと一致する場合に、論理１を出力する。
【００５２】
判定部ＪＤＧ２は、比較部ＣＭＰ２のいずれかが識別番号ＰＩＤ、ＰＩＤｓの一致を検出し、かつ比較部ＣＭＰ３が識別番号ＣＩＤ、ＣＩＤｓの一致を検出した場合、パケットＰ１１にエラーを埋め込むために合成部ＣＯＭに論理１を出力する。これにより、エラーを埋め込む対象の複数のパケットＰ１１のうち、対象デバイス１０が識別番号ＣＩＤｓで示される順序で所定のパケットＰ１１を受信した場合、対象のパケットＰ１１にエラーを埋め込むことができる。すなわち、パケットＰ１１にエラーを埋め込む条件を従来に比べて詳細に設定することができる。また、条件を指定せずに対象のパケットＰ１１を含む複数の組み合わせのパケット群Ｐ１１を対象デバイス１０に複数回にわたり供給する場合に比べて、テストパターンＴＰを短くすることができる。これにより、対象デバイス１０の検証に掛かる時間を従来に比べて短縮することができ、検証の効率を向上することができる。さらに、バッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３の各々は、複数の記憶領域を有するため、エラーを発生させる複数の条件を指定することができ、検証の効率をさらに向上することができる。
【００５３】
図４に示す例では、識別番号ＰＩＤが、バッファＢＵＦ２に格納された”２”であり、識別番号ＣＩＤが、バッファＢＵＦ３における識別番号ＰＩＤに対応する記憶領域に格納された”１”である場合、判定部ＪＤＧ２は、合成部ＣＯＭに論理１を出力する。
【００５４】
バッファＢＵＦ４は、合成部ＣＯＭが出力する論理を、識別番号ＰＩＤにそれぞれ対応して格納する複数の記憶領域を有する。バッファＢＵＦ４は、対象デバイス１０からの識別番号ＰＩＤに対応する記憶領域に格納されている論理をエラー発生情報ＥＧとしてテストシナリオ実行部５０に出力する。図４において、識別番号ＰＩＤ＝”２”に対応するバッファＢＵＦ４の記憶領域に格納された”０”は、対象デバイス１０により識別番号ＰＩＤ＝”２”のパケットの処理の結果としてエラーが発生されなかったことを示す。
【００５５】
エラーを発生させる対象のパケット毎に、バッファＢＵＦ４に複数の記憶領域を設けることで、エラーの発生の有無を示す複数の情報をバッファＢＵＦ４に保持することができる。これにより、１つのテストシナリオ５２により、複数の種類の検証を実行することができ、検証の効率を向上することができる。また、バッファＢＵＦ４の複数の記憶領域は、エラーを発生させる対象のパケットＰ１１の識別番号ＰＩＤ毎に設けられるため、パケットＰ１１の順序を指定する場合と指定しない場合とのそれぞれの検証において、バッファＢＵＦ４を共通に使用することができる。
【００５６】
図５は、図４に示すデコード部ＣＤＥＣの一例を示す。識別番号ＣＩＤに対応して示される符号ＣＮＤ１、ＣＮＤ２、ＣＮＤ３は、図８から図１０に示すテストシナリオ５２の命令の記述で使用される。
【００５７】
図５に示す例では、デコード部ＣＤＥＣは、図３に示すステージＳＴＧＡ２で読み出しパケットが処理され、ステージＳＴＧＡ０で書き込みパケットが処理されるタイミングが発生した場合（ＲＤＡ２、ＷＲＡ０）、識別番号ＣＩＤを”１”に設定する。すなわち、デコード部ＣＤＥＣは、書き込みパケットの２サイクル前に読み出しパケットが発行されたことを判定した場合、識別番号ＣＩＤを”１”に設定する。
【００５８】
また、デコード部ＣＤＥＣは、ステージＳＴＧＡ０で書き込みパケットが処理され、ステージＳＴＧＢ１で応答パケットが処理されるタイミングが発生した場合（ＷＲＡ０、ＣＰＬＢ１）、識別番号ＣＩＤを”２”に設定する。すなわち、デコード部ＣＤＥＣは、書き込みパケットの所定サイクル前に発行されたパケットの応答パケットが発行されたことを判定した場合、識別番号ＣＩＤを”２”に設定する。
【００５９】
さらに、デコード部ＣＤＥＣは、ステージＳＴＧＡ０、ＳＴＧＡ１、ＳＴＧＡ２で書き込みパケットが連続して処理されるタイミングが発生した場合（ＷＲＡ２、ＷＲＡ１、ＷＲＡ０）、識別番号ＣＩＤを”３”に設定する。すなわち、デコード部ＣＤＥＣは、書き込みパケットが連続して３サイクル発行されたことを判定した場合、識別番号ＣＩＤを”３”に設定する。
【００６０】
このように、デコード部ＣＤＥＣは、対象デバイス１０から出力される種別情報ＰＴＹＰに基づいて、対象デバイス１０が受信した複数のパケットＰ１１、Ｐ２１との少なくとも２つの順序を判定する。そして、デコード部ＣＤＥＣは、判定した順序（すなわち、対象デバイス１０で処理されるパケットＰ１１、Ｐ２１の組み合わせ）を示す識別番号ＣＩＤを生成する。なお、識別番号ＣＩＤで表される複数のパケットの組み合わせは、図５に示す例に限定されない。
【００６１】
デコード部ＣＤＥＣを設けることで、対象デバイス１０の各処理部ＳＴＧＡ、ＳＴＧＢから処理中のパケットＰ１１、Ｐ２１を示す情報を取り出すことで、パケットＰ１１、Ｐ２１の順序を判定することができる。これにより、検証のために対象デバイス１０に追加される論理を最小限にして、対象デバイス１０の論理を検証することができる。
【００６２】
図６は、図４に示すエラー生成部４０の動作の一例を示す。図６に示すフローは、所定の周期で繰り返し実行される。
【００６３】
まず、ステップＳ１０２において、エラー生成部４０は、エラーを埋め込むパケットＰ１１を示す識別番号ＰＩＤｓをテストシナリオ実行部５０から受信したか否かを判定する。識別番号ＰＩＤｓを受信した場合、処理はステップＳ１０４に移行され、識別番号ＰＩＤｓを受信していない場合、処理は終了する。
【００６４】
ステップＳ１０４において、エラー生成部４０は、エラーを発生させる条件を示す識別番号ＣＩＤｓをテストシナリオ実行部５０から受信したか否かを判定する。識別番号ＣＩＤｓを受信した場合、処理はステップＳ１０６に移行され、識別番号ＣＩＤｓを受信していない場合、処理はステップＳ１１０に移行される。
【００６５】
ステップＳ１０６において、エラー生成部４０は、受信した識別番号ＰＩＤｓをバッファＢＵＦ２に書き込み、受信した識別番号ＣＩＤｓをバッファＢＵＦ３に書き込む。すなわち、エラー生成部４０は、識別番号ＣＩＤｓにより示される条件が一致した場合に、識別番号ＰＩＤｓにより示されるパケットＰ１１にエラーを発生させるための情報をバッファＢＵＦ２、ＢＵＦ３に格納する。
【００６６】
次に、ステップＳ１０８において、エラー生成部４０は、ステップＳ１０２で受信した識別番号ＰＩＤｓに対応するバッファＢＵＦ４の記憶領域を、エラーを発生させていないことを示す”０”に初期化し、処理をステップＳ１１２に移行する。
【００６７】
一方、ステップＳ１１０において、エラー生成部４０は、受信した識別番号ＰＩＤｓをバッファＢＵＦ１に書き込む。すなわち、エラー生成部４０は、識別番号ＣＩＤｓを受信せず、識別番号ＰＩＤｓを受信した場合、識別番号ＰＩＤｓにより示されるパケットＰ１１に無条件でエラーを発生させるための情報をバッファＢＵＦ１に格納する。この後、処理は、ステップＳ１１２に移行される。
【００６８】
ステップＳ１１２において、エラー生成部４０は、対象デバイス１０が受信したパケットＰ１１を示す識別番号ＰＩＤを対象デバイス１０から受信する。エラー生成部４０は、受信した識別番号ＰＩＤが、バッファＢＵＦ１、ＢＵＦ２のいずれかに格納されている識別番号ＰＩＤｓと一致する場合、パケットＰ１１にエラーを発生させる可能性があるため、処理をステップＳ１１４に移行する。エラー生成部４０は、受信した識別番号ＰＩＤが、バッファＢＵＦ１、ＢＵＦ２に格納されている識別番号ＰＩＤｓのいずれとも一致しない場合、パケットＰ１１にエラーを埋め込まないため、処理を終了する。ステップＳ１１２による判定は、図４に示す比較部ＣＭＰ１、ＣＭＰ２により実行される。
【００６９】
ステップＳ１１４において、エラー生成部４０は、対象デバイス１０が順次受信した複数のパケットＰ１１の各々の種別を示す種別情報ＰＴＹＰを対象デバイス１０から受信する。エラー生成部４０のデコード部ＣＤＥＣは、受信した種別情報ＰＴＹＰに基づいて、対象デバイス１０が処理している複数のパケットＰ１１、Ｐ２１の組み合わせを示す識別番号ＣＩＤを生成する。
【００７０】
次に、ステップＳ１１６において、エラー生成部４０は、生成した識別番号ＣＩＤが、対象デバイス１０から受信した識別番号ＰＩＤに対応するバッファＢＵＦ３の記憶領域に格納されている識別番号ＣＩＤｓと一致するか否かを判定する。識別番号ＣＩＤ、ＣＩＤｓが一致する場合、処理はステップＳ１１８に移行され、識別番号ＣＩＤ、ＣＩＤｓが一致しない場合、処理はステップＳ１２４に移行される。ステップＳ１１６による判定は、図４に示す判定部ＪＤＧ１、ＪＤＧ２により実行される。
【００７１】
ステップＳ１１８において、エラー生成部４０は、識別番号ＰＩＤにより示されるパケットＰ１１にエラーを埋め込むために、対象デバイス１０に発生情報ＥＩＮを出力する。対象デバイス１０は、発生情報ＥＩＮに基づいて、処理部ＳＴＧＡ０で処理中のパケットＰ１１にエラーを埋め込む。次に、ステップＳ１２０において、エラー生成部４０は、受信したパケットＰ１１の識別番号ＰＩＤに対応するバッファＢＵＦ４の記憶領域に”１”を書き込む。バッファＢＵＦ４は、識別番号ＰＩＤを受信している間、受信したパケットＰ１１の識別番号ＰＩＤに対応する記憶領域に格納された”１”をエラー発生情報ＥＧとしてテストシナリオ実行部５０に出力する。
【００７２】
次に、ステップＳ１２２において、エラー生成部４０は、対象デバイス１０が受信したパケットＰ１１の識別番号ＰＩＤに対応する識別番号ＰＩＤｓを、バッファＢＵＦ２の記憶領域から削除する。また、エラー生成部４０は、対象デバイス１０が受信したパケットＰ１の識別番号ＰＩＤに対応するバッファＢＵＦ３の記憶領域に格納されている識別番号ＣＩＤｓを削除する（”０”にリセット）。そして、エラー生成部４０は、複数のパケットの組み合わせの条件が一致した場合にエラーを発生させる処理を終了する。
【００７３】
一方、ステップＳ１２４において、エラー生成部４０は、識別番号ＰＩＤにより示されるパケットＰ１１にエラーを埋め込むために、対象デバイス１０に発生情報ＥＩＮを出力する。対象デバイス１０は、発生情報ＥＩＮに基づいて、処理部ＳＴＧＡ０で処理中のパケットＰ１１にエラーを埋め込む。次に、ステップＳ１２６において、エラー生成部４０は、対象デバイス１０が受信したパケットＰ１１の識別番号ＰＩＤに対応する識別番号ＰＩＤｓを、バッファＢＵＦ１の記憶領域から削除する。そして、エラー生成部４０は、識別番号ＣＩＤｓによる条件を指定することなく、識別番号ＰＩＤｓにより指定されたパケットＰ１１にエラーを埋め込む処理を終了する。
【００７４】
図７は、図２に示すテストシナリオ実行部５０の応答比較部５４の動作の一例を示す。図７に示すフローは、所定の周期で繰り返し実行される。
【００７５】
まず、ステップＳ２０２において、応答比較部５４は、疑似デバイス２０からの情報ＣＰＬに基づいて、疑似デバイス２０が応答パケットＰ２２を受信したと判定した場合、処理をステップＳ２０４に移行する。応答比較部５４は、疑似デバイス２０からの情報ＣＰＬに基づいて、疑似デバイス２０が応答パケットＰ２２を受信していないと判定した場合、処理を終了する。
【００７６】
ステップＳ２０４において、応答比較部５４は、応答パケットＰ２２が、パケットの組み合わせの条件（バッファＢＵＦ３に書き込んだ識別番号ＣＩＤｓ）に基づいてエラーを発生させるパケットに対応するか否かを判定する。すなわち、応答パケットＰ２２の元である読み出しパケットにより読み出す情報を書き込んだ書き込みパケットに、パケットの組み合わせの条件に基づいてエラーが挿入された場合、応答比較部５４は、処理をステップＳ２０６に移行する。一方、応答パケットＰ２２の元である読み出しパケットにより読み出す情報を書き込んだ書き込みパケットに、パケットの組み合わせの条件に基づいてエラーが挿入されていない場合、応答比較部５４は、処理をステップＳ２１４に移行する。すなわち、応答比較部５４は、書き込みパケットにエラーが挿入されていない場合、または、識別番号ＣＩＤｓを指定することなく識別番号ＰＩＤｓに基づいて書き込みパケットにエラーが挿入された場合、処理をステップＳ２１４に移行する。
【００７７】
ステップＳ２０６において、応答比較部５４は、応答パケットＰ２２に含まれる識別番号ＰＩＤに対応するバッファＢＵＦ４の記憶領域に格納されたエラー発生情報ＥＧの値を読み出す。なお、応答パケットＰ２２に含まれる識別番号ＰＩＤは、応答パケットＰ２２の元である読み出しパケットを識別する識別番号ＰＩＤと同じ値である。
【００７８】
次に、ステップＳ２０８において、応答比較部５４は、エラー発生情報ＥＧの値が”１”の場合、識別番号ＣＩＤｓによるパケットの組み合わせの条件の一致に基づいてエラーが挿入されたと判断し、処理をステップＳ２１０に移行する。一方、応答比較部５４は、エラー発生情報ＥＧの値が”０”の場合、識別番号ＣＩＤｓによるパケットの組み合わせの条件に一致せず、エラーが挿入されなかったと判断し、処理をステップＳ２１２に移行する。
【００７９】
ステップＳ２１０において、応答比較部５４は、エラーが挿入された場合の期待値を用いて応答パケットＰ２２に含まれる情報をチェックし、対象デバイス１０の論理を検証し、処理を終了する。応答比較部５４は、応答パケットＰ２２に含まれる情報（例えば、読み出しデータ）が期待値と一致する場合、発生されたエラーに応じて対象デバイス１０が正しく動作したと判断する。一方、応答比較部５４は、応答パケットＰ２２に含まれる情報が期待値と一致しない場合、発生されたエラーに応じて対象デバイス１０が誤動作したと判断する。
【００８０】
ステップＳ２１２において、応答比較部５４は、エラーが発生されなかった場合の期待値を用いて応答パケットＰ２２に含まれる情報をチェックし、対象デバイス１０の論理を検証し、処理を終了する。応答比較部５４は、応答パケットＰ２２に含まれる情報が期待値と一致する場合、対象デバイス１０が正しく動作したと判断し、応答パケットＰ２２に含まれる情報が期待値と一致しない場合、対象デバイス１０が誤動作したと判断する。
【００８１】
このように、エラー発生情報ＥＧの値に応じて、判定に使用する期待値を変更することにより、パケットＰ１１にエラーを埋め込んだ場合とパケットＰ１１にエラーを埋め込まなかった場合とのそれぞれにおいて、検証を正しく実行することができる。さらに、パケットＰ１１にエラーを埋め込んだ場合とパケットＰ１１にエラーを埋め込まなかった場合との２つの期待値を、テストシナリオ５２に含ませることができ、複数回に分けて検証を実行する場合に比べて検証の効率を向上することができる。
【００８２】
ステップＳ２１４において、応答比較部５４は、期待値を用いて応答パケットＰ２２に含まれる情報をチェックし、対象デバイス１０の論理を検証し、処理を終了する。応答比較部５４は、応答パケットＰ２２に含まれる情報が期待値と一致する場合、対象デバイス１０が正しく動作したと判断し、応答パケットＰ２２に含まれる情報が期待値と一致しない場合、対象デバイス１０が誤動作したと判断する。ステップＳ２１４による処理は、識別番号ＣＩＤｓによる条件を指定することなく、識別番号ＰＩＤｓに基づいて書き込みパケットにエラーを埋め込んだ場合のチェックと、書き込みパケットにエラーを埋め込まなかった場合のチェックとを含む。
【００８３】
図８は、図２に示すテストシナリオ実行部５０が実行するテストシナリオ５２の一例を示す。テストシナリオ実行部５０は、テストシナリオ５２にしたがって疑似デバイス２０にテストパターンＴＰを出力し、疑似デバイス２０にパケットＰ１１を送信させ、疑似デバイス２０が受信した応答パケットＰ２２に含まれる情報と期待値とを比較する。図８では、便宜上、テストシナリオ５２の左側に、テストシナリオ５２に含まれる記述の行番号が示される。
【００８４】
テストシナリオ５２において、”／／”は、コメント行を示す。”ＧｅｎＷｒｉｔｅＰａｃｋｅｔ”は、疑似デバイス２０に書き込みパケットを生成させる命令を示し、”ＧｅｎＲｅａｄＰａｃｋｅｔ”は、疑似デバイス２０に読み出しパケットを生成させる命令を示す。”ＳｅｔＥｒｒｏｒＰａｃｋｅｔＩＤ”は、エラーを発生させる条件をエラー生成部４０に設定する命令を示す。
【００８５】
まず、行４において、テストシナリオ実行部５０は、疑似デバイス３０のアドレスＡＤ１で示される領域にデータＤＴ１を書き込む書き込みパケット（識別番号ＰＩＤ＝ＩＤ１）を疑似デバイス２０に送信させる。
【００８６】
行８において、テストシナリオ実行部５０は、疑似デバイス３０のアドレスＡＤ１で示される領域からデータ（期待値＝ＤＴ１）を読み出す読み出しパケット（識別番号ＰＩＤ＝ＩＤ１）を疑似デバイス２０に送信させる。そして、テストシナリオ実行部５０の応答比較部５４は、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２（識別番号ＰＩＤ＝ＩＤ１）に含まれる読み出しデータを期待値（ＤＴ１）と比較することで、対象デバイス１０の論理を検証する。
【００８７】
次に、行１２において、テストシナリオ実行部５０は、対象デバイス１０にエラーを埋め込む書き込みパケットを示す識別番号ＰＩＤｓ（＝ＩＤ２）と条件ＣＮＤ１とをエラー生成部４０に設定する。条件ＣＮＤ１は、図５に示すように、対象デバイス１０が書き込みパケットを受信する２サイクル前に読み出しパケットを受信することである。すなわち、図８に示すテストシナリオ５２では、条件ＣＮＤ１に示される順序でパケットを処理中の対象デバイス１０にエラーを発生させた場合の動作が検証される。
【００８８】
行１５において、テストシナリオ実行部５０は、疑似デバイス３０のアドレスＡＤ２で示される領域にデータＤＴ２を書き込む書き込みパケット（識別番号ＰＩＤ＝ＩＤ２）を疑似デバイス２０に送信させる。
【００８９】
行２０において、テストシナリオ実行部５０は、疑似デバイス３０のアドレスＡＤ２で示される領域からデータ（期待値＝ＤＴ２）を読み出す読み出しパケット（識別番号ＰＩＤ＝ＩＤ２）を疑似デバイス２０に送信させる。行２０に記述された命令は、条件ＣＮＤ１が一致せず、エラーが発生されない場合の期待値ＤＴ２と、条件ＣＮＤ１が一致してエラーが発生された場合の期待値ＤＴ２’との両方を含む。
【００９０】
応答比較部５４は、条件ＣＮＤ１が一致しない場合、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ２と比較する。一方、応答比較部５４は、条件ＣＮＤ１が一致する場合、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ２’と比較する。条件ＣＮＤ１の一致／不一致は、図４に示すバッファＢＵＦ４から出力されるエラー発生情報ＥＧの論理に基づいて判断される。そして、テストシナリオ実行部５０は、応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ２、ＤＴ２’のいずれかと比較することで、対象デバイス１０の論理を検証する。
【００９１】
図９は、図２に示すテストシナリオ実行部５０が実行するテストシナリオ５２の別の例を示す。図８と同じ記述については、詳細な説明は省略する。行４、行８の記述は、図８に示す行４、行８の記述とそれぞれ同じである。行１０に記述された”Ｗａｉｔ”は、疑似デバイス２０にパケットを送信させた後、次のパケットの送信を所定のサイクル待たせる命令を示す。行１７、行２２の記述は、図８に示す行１５、行２０の記述とそれぞれ同じである。
【００９２】
行１０において、テストシナリオ実行部５０は、疑似デバイス２０に行８に記述した読み出しパケットを送信させた後、行１７に記述した次の書き込みパケットの送信を所定のサイクル待たせる。次に、行１４において、テストシナリオ実行部５０は、対象デバイス１０にエラーを発生させる書き込みパケットを示す識別番号ＰＩＤｓ（＝ＩＤ２）と条件ＣＮＤ２とをエラー生成部４０に設定する。条件ＣＮＤ２は、図５に示すように、対象デバイス１０が書き込みパケットを受信した場合に、図３に示す処理部ＳＴＧＢ１で応答パケットＰ２２を処理している条件である。すなわち、図９に示すテストシナリオ５２では、条件ＣＮＤ２に示される順序でパケットを処理中の対象デバイス１０にエラーを発生させた場合の動作が検証される。
【００９３】
そして、所定のサイクルが経過した後、行１７において、テストシナリオ実行部５０は、疑似デバイス３０のアドレスＡＤ２で示される領域にデータＤＴ２を書き込む書き込みパケット（識別番号ＰＩＤ＝ＩＤ２）を疑似デバイス２０に送信させる。
【００９４】
行２２において、テストシナリオ実行部５０は、図８と同様に、疑似デバイス３０においてアドレスＡＤ２で示される領域からデータＤＴ２を読み出す読み出しパケット（識別番号ＰＩＤ＝ＩＤ２）を疑似デバイス２０に送信させる。そして、応答比較部５４は、条件ＣＮＤ２が一致しない場合、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ２と比較する。一方、応答比較部５４は、条件ＣＮＤ２が一致する場合、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ２’と比較する。条件ＣＮＤ２の一致／不一致は、図４に示すバッファＢＵＦ４から出力されるエラー発生情報ＥＧの論理に基づいて判断される。そして、テストシナリオ実行部５０は、応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ２、ＤＴ２’のいずれかと比較することで、対象デバイス１０の論理を検証する。
【００９５】
図１０は、図２に示すテストシナリオ実行部５０が実行するテストシナリオ５２の別の例を示す。図８と同じ記述については、詳細な説明は省略する。行４、行７の記述は、図８に示す行４、行１５の記述とそれぞれ同じである。
【００９６】
行１１において、テストシナリオ実行部５０は、対象デバイス１０にエラーを発生させる書き込みパケットを示す識別番号ＰＩＤｓ（＝ＩＤ３）と条件ＣＮＤ３とをエラー生成部４０に設定する。条件ＣＮＤ３は、図５に示すように、対象デバイス１０が３つの連続する書き込みパケットを受信する条件である。すなわち、図１０に示すテストシナリオ５２では、条件ＣＮＤ３に示される順序でパケットを処理中の対象デバイス１０にエラーを発生させた場合の動作が検証される。
【００９７】
次に、行１４において、テストシナリオ実行部５０は、疑似デバイス３０のアドレスＡＤ３で示される領域にデータＤＴ３を書き込む書き込みパケット（識別番号ＰＩＤ＝ＩＤ３）を疑似デバイス２０に送信させる。
【００９８】
行１９において、テストシナリオ実行部５０は、図８と同様に、疑似デバイス３０のアドレスＡＤ３で示される領域からデータＤＴ３を読み出す読み出しパケット（識別番号ＰＩＤ＝ＩＤ３）を疑似デバイス２０に送信させる。そして、応答比較部５４は、条件ＣＮＤ３が一致しない場合、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ３と比較する。一方、応答比較部５４は、条件ＣＮＤ３が一致する場合、読み出しパケットに応答する疑似デバイス３０からの応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ３’と比較する。条件ＣＮＤ３の一致／不一致は、図４に示すバッファＢＵＦ４から出力されるエラー発生情報ＥＧの論理に基づいて判断される。そして、テストシナリオ実行部５０は、応答パケットＰ２２に含まれる読み出しデータを期待値ＤＴ３、ＤＴ３’のいずれかと比較することで、対象デバイス１０の論理を検証する。
【００９９】
図１１は、図２に示す模擬デバイス試験装置ＤＴ２として動作する情報処理装置の一例を示す。
【０１００】
図１１に示す情報処理装置ＩＰＥは、マザーボードＭＢ、光学ドライブ装置ＯＤＤ、ハードディスク装置ＨＤＤ、入力装置ＩＮＤおよび出力装置ＯＵＴＤ等を有する。マザーボードＭＢ上には、ＣＰＵ、メインメモリＭＭ、光学ドライブコントローラＯＤＣ、ハードディスクコントローラＨＤＣ、入力インタフェースＩＮＩＦ、出力インタフェースＯＵＴＩＦおよびネットワークインタフェースＮＷＩＦ等が搭載される。ＣＰＵ、メインメモリＭＭ、光学ドライブコントローラＯＤＣ、ハードディスクコントローラＨＤＣ、入力インタフェースＩＮＩＦ、出力インタフェースＯＵＴＩＦおよびネットワークインタフェースＮＷＩＦは、システムバスＳＢＵＳに接続される。ＣＰＵ、メインメモリＭＭ、光学ドライブコントローラＯＤＣ、ハードディスクコントローラＨＤＣ、入力インタフェースＩＮＩＦ、出力インタフェースＯＵＴＩＦおよびネットワークインタフェースＮＷＩＦは共通の半導体チップに搭載されてもよい。
【０１０１】
メインメモリＭＭには、ＣＰＵにより実行されるオペレーティングシステムと、情報処理装置ＩＰＥを模擬デバイス試験装置ＤＴ２として機能させるための模擬デバイス試験プログラムと、テストシナリオ５２とが格納される。図２に示す対象デバイス１０、疑似デバイス２０、３０、エラー生成部４０およびテストシナリオ実行部５０は、情報処理装置ＩＰＥが模擬デバイス試験プログラムを実行することで実現される。そして、情報処理装置ＩＰＥは、対象デバイス１０の論理を検証するシミュレータとして動作する。
【０１０２】
光学ドライブコントローラＯＤＣは、光学ドライブ装置ＯＤＤに接続され、光学ドライブ装置ＯＤＤに装着される記録媒体ＲＭにアクセス可能である。記録媒体ＲＭは、ＣＤ（Compact Disc：登録商標）またはＤＶＤ（Digital Versatile Disc：登録商標）等である。ハードディスクコントローラＨＤＣは、ハードディスク装置ＨＤＤに接続される。模擬デバイス試験プログラムおよびテストシナリオ５２は、記録媒体ＲＭからハードディスク装置ＨＤＤを介してメインメモリＭＭに転送される。なお、模擬デバイス試験プログラムおよびテストシナリオ５２は、記録媒体ＲＭからメインメモリＭＭに直接転送されてもよい。
【０１０３】
入力インタフェースＩＮＩＦは、キーボードやマウス等の入力デバイスＩＮＤに接続される。出力インタフェースＯＵＴＩＦは、ディスプレイやプリンタ等の出力デバイスＯＵＴＤに接続される。ネットワークインタフェースＮＷＩＦは、ネットワークＮＷに接続される。情報処理装置ＩＰＥは、ネットワークＮＷ上の装置に格納された模擬デバイス試験プログラムまたはテストシナリオ５２を、ネットワークＮＷを介してハードディスク装置ＨＤＤやメインメモリＭＭに転送してもよい。
【０１０４】
以上、図２から図１１に示す実施形態においても、図１に示す実施形態と同様に、対象デバイス１０の動作の検証を、従来に比べて複雑な条件を指定して実行することができ、詳細な検証を実行することができる。また、２つの期待値のいずれかを用いて、エラーを発生させた場合とエラーを発生させなかった場合との両方の検証を実行することができる。この結果、対象デバイス１０の論理を検証するためのテストパターンＴＰを従来に比べて短くすることができ、対象デバイス１０の検証に掛かる時間を従来に比べて短縮することができ、検証の効率を向上することができる。
【０１０５】
さらに、図２から図１１に示す実施形態では、以下の効果を得ることができる。パケットＰ１１が対象デバイス１０に供給される順序の条件を含む場合と含まない場合との両方において、パケットＰ１１にエラーを埋め込むことができるため、様々な条件を用いて、対象デバイス１０の論理を検証することができる。
【０１０６】
バッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３の各々は、複数の記憶領域を有するため、エラーを発生させる複数の条件を指定することができ、検証の効率をさらに向上することができる。さらにバッファＢＵＦ４は、複数の記憶領域を有するため、１つのテストシナリオ５２により、複数の種類の検証を実行することができ、検証の効率を向上することができる。また、バッファＢＵＦ４は、パケットＰ１１の順序を指定する場合と、パケットＰ１１の順序を指定しない場合とのそれぞれの検証において共通に使用されるため、模擬デバイス試験装置ＤＴ２の規模が増加することを抑制することができる。
【０１０７】
図１２は、模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの別の実施形態を示す。図２に示す要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。この実施形態の模擬デバイス試験装置ＤＴ３は、対象デバイス１０Ａ、疑似デバイス２０、３０、エラー生成部４０Ａおよびテストシナリオ実行部５０を有する。すなわち、模擬デバイス試験装置ＤＴ３は、図２に示す模擬デバイス試験装置ＤＴ２の対象デバイス１０およびエラー生成部４０の代わりに、対象デバイス１０Ａおよびエラー生成部４０Ａを有する。
【０１０８】
エラー生成部４０Ａは、対象デバイス１０Ａから引き出されるデータ出力線ＤＯＵＴに伝達されるデータにエラーを挿入し、エラーを挿入させたデータを、データ入力線ＤＩＮを介して対象デバイス１０Ａに戻す機能を有する。エラー生成部４０Ａは、発生情報ＥＩＮを出力する代わりに、対象デバイス１０Ａにエラーを挿入する機能を有することを除き、図２に示すエラー生成部４０と同様の機能を有する。なお、対象デバイス１０Ａは、図２に示す対象デバイス１０からエラーを発生させる機能を削除している。
【０１０９】
図１２に示す模擬デバイス試験装置ＤＴ３は、図２に示す模擬デバイス試験装置ＤＴ１と同様に、対象デバイス１０Ａの論理を検証する模擬デバイス試験プログラムを実行する情報処理装置ＩＰＥ（図１１）により実現される。模擬デバイス試験プログラムを実行する情報処理装置は、シミュレータとして機能し、対象デバイス１０Ａの論理を検証する模擬デバイス試験方法に基づく動作を実行する。
【０１１０】
図１３は、図１２に示す対象デバイス１０Ａの一例を示す。図３に示す対象デバイス１０と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。対象デバイス１０Ａは、図３に示す処理部ＳＴＧＡ０の代わりに、処理部ＳＴＧＡ０Ａを有することを除き、図３に示す対象デバイス１０と同様である。
【０１１１】
処理部ＳＴＧＡ０Ａは、図３に示す処理部ＳＴＧＡ０と同様に、疑似デバイス２０から受信するパケットＰ１１に含まれる識別番号ＰＩＤを抽出し、抽出した識別番号ＰＩＤをエラー生成部４０Ａに出力する機能を有する。さらに、処理部ＳＴＧＡ０Ａは、パケットＰ１１に含まれる情報の少なくとも一部をデータ出力線ＤＯＵＴを介してエラー生成部４０Ａに出力し、エラー生成部４０Ａからデータ入力線ＤＩＮを介して受ける情報を用いてパケットＰ１１を書き替える機能を有する。
【０１１２】
エラー生成部４０Ａがデータ出力線ＤＯＵＴで受けた情報にエラーを挿入してデータ入力線ＤＩＮに出力した場合、処理部ＳＴＧＡ０Ａは、エラーが挿入されたパケットＰ１１を処理する。一方、エラー生成部４０Ａがデータ出力線ＤＯＵＴで受けた情報を変更せずにデータ入力線ＤＩＮに出力した場合、処理部ＳＴＧＡ０Ａは、エラーが挿入されない元のパケットＰ１１を処理する。
【０１１３】
図１４は、図１２に示すエラー生成部４０Ａの一例を示す。エラー生成部４０Ａは、図２に示すエラー生成部４０にエラー挿入部ＥＲＲＩＮを追加することを除き、図２に示すエラー生成部４０と同様の機能を有する。エラー挿入部ＥＲＲＩＮは、発生情報ＥＩＮがエラーの発生を示す場合、データ出力線ＤＯＵＴに伝達されるデータの論理を反転し、反転したデータをデータ入力線ＤＩＮに出力することで、対象デバイス１０Ａにエラーを発生させる。また、エラー挿入部ＥＲＲＩＮは、発生情報ＥＩＮがエラーの発生を示さない場合、データ出力線ＤＯＵＴに伝達されるデータを変更することなくデータ入力線ＤＩＮに出力する。この場合、対象デバイス１０Ａにエラーは発生されない。
【０１１４】
エラー生成部４０Ａにエラー挿入部ＥＲＲＩＮを設けることにより、対象デバイス１０Ａにエラーの発生用の論理を追加することなく、対象デバイス１０Ａが処理するパケットＰ１１にエラーを埋め込むことができる。これにより、実際のデバイスの回路記述等の設計データを用いて、対象デバイス１０Ａの論理を検証することができる。なお、エラー挿入部ＥＲＲＩＮは、データ出力線ＤＯＵＴに伝達されるデータの論理を所定の論理（論理０または論理１）に固定し、論理を固定したデータをデータ入力線ＤＩＮに出力することにより、対象デバイス１０Ａにエラーを発生させてもよい。
【０１１５】
以上、図１２から図１４に示す実施形態においても、図１から図１１に示す実施形態と同様に、対象デバイス１０Ａの動作の検証を、従来に比べて複雑な条件を指定して実行することができ、詳細な検証を実行することができる。また、２つの期待値を用いて検証を実行することで、対象デバイス１０Ａの検証に掛かる時間を従来に比べて短縮することができる。バッファＢＵＦ１、ＢＵＦ２、ＢＵＦ３、ＢＵＦ４の各々に複数の記憶領域を設けることで、エラーを発生させる複数の条件に対応して検証を実行することができる。以上により、検証の効率を向上することができる。
【０１１６】
さらに、図１２から図１４に示す実施形態では、エラー挿入部ＥＲＲＩＮにより、デバイス１０Ａが処理するパケットＰ１１にエラーを埋め込むことで、実際のデバイスの回路記述等の設計データを用いて、対象デバイス１０Ａの論理を検証することができる。これにより、検証の効率をさらに向上することができる。
【０１１７】
図１５は、模擬デバイス試験装置、模擬デバイス試験方法および模擬デバイス試験プログラムの別の実施形態を示す。図２に示す要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。この実施形態の模擬デバイス試験装置ＤＴ４は、対象デバイス１０Ｂ、疑似デバイス２０、３０、エラー生成部４０Ｂおよびテストシナリオ実行部５０、６０Ｂを有する。すなわち、模擬デバイス試験装置ＤＴ４は、図２に示す模擬デバイス試験装置ＤＴ２のエラー生成部４０の代わりにエラー生成部４０Ｂを有し、エラー生成部４０Ｂと疑似デバイス３０に接続されるテストシナリオ実行部６０Ｂを新たに有する。また、模擬デバイス試験装置ＤＴ４は、図２に示す対象デバイス１０の代わりに対象デバイス１０Ｂを有する。
【０１１８】
テストシナリオ実行部６０Ｂは、テストシナリオ実行部５０と同様に、テストシナリオ６２と応答比較部６４とを有する。テストシナリオ実行部６０Ｂは、テストシナリオ６２にしたがって、疑似デバイス３０を動作させるテストパターンＴＰを疑似デバイス３０に出力するとともに、識別番号ＰＩＤｓ、ＣＩＤｓをエラー生成部４０Ｂに出力する。テストシナリオ実行部６０Ｂは、識別番号ＣＩＤｓを指定せずに識別番号ＰＩＤｓを指定してパケットＰ２１にエラーを埋め込む場合、エラー発生情報ＥＧに拘わらず、応答パケットＰ１２に含まれる情報ＣＰＬと期待値とを応答比較部６４に比較させる。一方、テストシナリオ実行部６０Ｂは、識別番号ＣＩＤｓ（エラーの発生条件）とともに識別番号ＰＩＤｓを指定してパケットＰ２１にエラーを埋め込む場合、エラー発生情報ＥＧに基づいた比較を応答比較部６４に実行させる。すなわち、応答比較部６４は、図２に示す応答比較部５４と同様に、応答パケットＰ１２に含まれる情報ＣＰＬを２つの期待値のいずれかと比較する。応答比較部６４の動作の例は、図７に示す応答比較部５４の動作の例と同様である。
【０１１９】
テストシナリオ実行部６０Ｂが実行するテストシナリオ６２は、疑似デバイス３０がパケットＰ２１を送信し、疑似デバイス２０が応答パケットＰ１１を送信することを除き、図８から図１０に示されるテストシナリオ５２と同様である。
【０１２０】
対象デバイス１０Ｂは、図１３に示す対象デバイス１０Ａと同様に、パケットＰ１１を順次処理する複数の処理部ＳＴＧＡとパケットＰ２１を順次処理する複数の処理部ＳＴＧＢとを有する。但し、処理部ＳＴＧＢ０は、処理部ＳＴＧＡ０Ａと同様に、識別番号ＰＩＤをエラー生成部４０Ｂに出力する機能を有する。また、処理部ＳＴＧＢ０は、処理部ＳＴＧＡ０Ａと同様に、パケットＰ２１に含まれる情報の少なくとも一部をデータ出力線ＤＯＵＴに出力する機能と、データ入力線ＤＩＮを介して受ける情報を用いてパケットＰ１１を書き替える機能とを有する。すなわち、識別番号ＰＩＤを伝達する信号線、データ出力線ＤＯＵＴおよびデータ入力線ＤＩＮは、パケットＰ１１とパケットＰ２１のそれぞれに対応して配線される。
【０１２１】
図１６は、図１５に示すエラー生成部４０Ｂの一例を示す。エラー生成部４０Ｂは、図１４に示すエラー生成部４０Ａと同様の機能を有する。但し、エラー生成部４０ＢのバッファＢＵＦ１、ＢＵＦ２は、テストシナリオ実行部５０からの識別番号ＰＩＤｓだけでなく、テストシナリオ実行部６０Ｂからの識別情報ＰＩＤｓを保持する。また、エラー生成部４０ＢのバッファＢＵＦ３は、テストシナリオ実行部５０からの識別情報ＣＩＤｓだけでなく、テストシナリオ実行部６０Ｂからの識別情報ＣＩＤｓを保持する。
【０１２２】
そして、エラー生成部４０Ｂは、バッファＢＵＦ１−ＢＵＦ３に保持された識別番号ＰＩＤｓ、ＣＩＤｓに基づいて、データ出力線ＤＯＵＴを介して受けるデータにエラーを挿入する。エラー生成部４０Ｂの動作の例は、図６と同様である。なお、エラー挿入部ＥＲＲＩＮは、識別番号ＰＩＤｓにより示されるパケットＰ１１に含まれる情報またはパケットＰ２１に含まれる情報にエラーを埋め込む。このため、模擬デバイス試験装置ＤＴ４は、パケットＰ１１用のエラー生成部４０Ｂと、パケットＰ２１用のエラー生成部４０Ｂとを有してもよい。
【０１２３】
図１５に示す模擬デバイス試験装置ＤＴ４は、図２に示す模擬デバイス試験装置ＤＴ１と同様に、対象デバイス１０Ｂの論理を検証する模擬デバイス試験プログラムを実行する情報処理装置ＩＰＥ（図１１）により実現される。模擬デバイス試験プログラムを実行する情報処理装置は、シミュレータとして機能し、対象デバイス１０Ｂの論理を検証する模擬デバイス試験方法に基づく動作を実行する。
【０１２４】
以上、図１５から図１６に示す実施形態においても、図１から図１４に示す実施形態と同様に、対象デバイス１０Ｂの動作の検証を、従来に比べて複雑な条件を指定して実行することができ、詳細な検証を実行することができる。また、２つの期待値のいずれかを用いて、エラーを発生させた場合とエラーを発生させなかった場合の両方の検証を実行することができ、対象デバイス１０Ｂの検証に掛かる時間を従来に比べて短縮することができる。
【０１２５】
さらに、図１５から図１６に示す実施形態では、疑似デバイス２０から送信されるパケットＰ１１と、疑似デバイス３０から送信されるパケットＰ２１のそれぞれに、エラーを埋め込ませた、対象デバイス１０Ｂの論理を検証することができる。この結果、検証の効率をさらに向上することができる。
【０１２６】
なお、図２に示す模擬デバイス試験装置ＤＴ２に、図１５に示すテストシナリオ実行部６０Ｂを追加してもよい。この場合、図４に示すエラー生成部４０のバッファＢＵＦ１、ＢＵＦ２は、テストシナリオ実行部５０からの識別番号ＰＩＤｓだけでなく、テストシナリオ実行部６０Ｂからの識別情報ＰＩＤｓを保持する。また、図４に示すエラー生成部４０のバッファＢＵＦ３は、テストシナリオ実行部５０からの識別情報ＣＩＤｓだけでなく、テストシナリオ実行部６０Ｂからの識別情報ＣＩＤｓを保持する。
【０１２７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１２８】
１…模擬デバイス；２…模擬演算処理装置；３…模擬入出力装置；４…エラー発生部；６…エラー保持部；８…応答比較部；１０、１０Ａ、１０Ｂ…対象デバイス；２０、３０…疑似デバイス；４０、４０Ａ、４０Ｂ…エラー生成部；５０…テストシナリオ実行部；５２…テストシナリオ；５４…応答比較部；６０Ｂ…テストシナリオ実行部；６２…テストシナリオ；６４…応答比較部；ＢＵＦ１、ＢＵＦ２、ＢＵＦ３、ＢＵＦ４…バッファ；ＢＵＳ１、ＢＵＳ２…バス；ＣＤＥＣ…デコード部；ＣＩＤｓ…識別番号；ＣＭＰ１、ＣＭＰ２、ＣＭＰ３…比較部；ＣＯＭ…合成部；ＣＰＬ…情報；ＣＰＬＡ（ＣＰＬＡ０、ＣＰＬＡ１、ＣＰＬＡ２）…パケット情報；ＤＩＮ…データ入力線；ＤＯＵＴ…データ出力線；ＤＴ１、ＤＴ２、ＤＴ３、ＤＴ４…模擬デバイス試験装置；ＥＧ…エラー発生情報；ＥＩＮ…発生情報；ＥＲＲＩＮ…エラー挿入部；ＥＸＰ、ＥＸＰＥ…期待値；ＩＮＳ…命令；ＪＤＧ１、ＪＤＧ２…判定部；Ｐ１１、Ｐ１２、Ｐ２１、Ｐ２２…パケット；ＰＩＤ、ＰＩＤｓ…識別番号；ＰＴＹＰ…種別情報；ＲＤＡ（ＲＤＡ０、ＲＤＡ１、ＲＤＡ２）…パケット情報；ＲＥＳ…応答；ＲＳＬＴ…検証結果；ＳＴＧＡ（ＳＴＧＡ０、ＳＴＧＡ１、ＳＴＧＡ２）、ＳＴＧＢ（ＳＴＧＢ０、ＳＴＧＢ１、ＳＴＧＢ２）…処理部；ＴＩＮＳ…対象命令；ＴＰ…テストパターン；ＷＲＡ（ＷＲＡ０、ＷＲＡ１、ＷＲＡ２）…パケット情報
【図１】
2016167187.tif 000003
【図２】
2016167187.tif 000004
【図３】
2016167187.tif 000005
【図４】
2016167187.tif 000006
【図５】
2016167187.tif 000007
【図６】
2016167187.tif 000008
【図７】
2016167187.tif 000009
【図８】
2016167187.tif 000010
【図９】
2016167187.tif 000011
【図１０】
2016167187.tif 000012
【図１１】
2016167187.tif 000013
【図１２】
2016167187.tif 000014
【図１３】
2016167187.tif 000015
【図１４】
2016167187.tif 000016
【図１５】
2016167187.tif 000017
【図１６】
2016167187.tif 000018