(57)【特許請求の範囲】
【請求項１】
被試験対象モデルがアクセスする装置の動作を模擬する疑似モデルに基づいて試験を行うプロセッサを有し、
前記疑似モデルは、
前記被試験対象モデルに対する信号の入出力を行う信号入出力制御部と、
前記信号入出力制御部が実行するインターフェイスの機能を指定するプログラムを格納した記憶部と、
前記プログラムに応じて、前記信号入出力制御部の設定を行う疑似プロセッサと、
を備えることを特徴とする試験装置。
【請求項２】
前記信号入出力制御部は、前記疑似プロセッサによって設定された値に基づき、前記疑似モデルの動作要因を検出した場合に、前記被試験対象モデルの動作を停止させることを特徴とする請求項１に記載の試験装置。
【請求項３】
前記疑似プロセッサは、前記インターフェイスの種類または機能に応じた複数のプログラムの中から選択された前記プログラムに応じて、前記信号入出力制御部の設定を行うことを特徴とする請求項１または２に記載の試験装置。
【請求項４】
前記信号入出力制御部は、前記疑似プロセッサによって設定された値に基づき、前記疑似モデルと、前記被試験対象モデルを並列に動作させるように、前記被試験対象モデルに供給されるクロック信号を制御することを特徴とする請求項１乃至３の何れか一項に記載の試験装置。
【請求項５】
前記疑似プロセッサは、前記プログラムに応じて、前記被試験対象モデルへ出力される信号の出力タイミングを、前記信号入出力制御部へ設定することを特徴とする請求項１乃至４の何れか一項に記載の試験装置。
【請求項６】
前記記憶部は、それぞれ異なる前記インターフェイスの機能を指定する複数のプログラムを有し、
前記信号入出力制御部は、前記インターフェイスのそれぞれの機能を設定する複数の設定部を有し、
前記疑似プロセッサは、前記複数のプログラムに応じて、前記複数の設定部に対して前記インターフェイスのそれぞれの機能を設定することを特徴とする請求項１または２に記載の試験装置。
【請求項７】
コンピュータが、被試験対象モデルに対する信号の入出力を行う信号入出力制御部と、前記信号入出力制御部が実行するインターフェイスの機能を指定するプログラムを格納した記憶部と、疑似プロセッサを有し、前記被試験対象モデルがアクセスする装置の動作を模擬する疑似モデルを生成し、
前記疑似プロセッサが、前記プログラムに応じて前記信号入出力制御部の設定を行うことを特徴とする検証モデル開発方法。
【請求項８】
前記疑似モデルは、使用される前記インターフェイスに応じて前記信号入出力制御部内の回路量が指定された設定ファイルに基づいて、生成されることを特徴とする請求項７に記載の検証モデル開発方法。
【請求項９】
被試験対象モデルに対する信号の入出力を行う信号入出力制御部と、前記信号入出力制御部が実行するインターフェイスの機能を指定するプログラムを格納した記憶部と、前記プログラムに応じて、前記信号入出力制御部の設定を行う疑似プロセッサと、を有し、前記被試験対象モデルがアクセスする装置の動作を模擬する疑似モデルを生成する、処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験装置、検証モデル開発方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ＳｏＣ（System on a Chip）などの半導体集積回路の試験時において、被試験対象の装置（ＤＵＴ：Device Under Test）がアクセスする装置の動作を模擬する疑似モデルをエミュレータやシミュレータ上に構築し、試験を行うことが知られている。そのような疑似モデルは、外部モデルとも呼ばれている。
【０００３】
ＳｏＣなどの試験時には、多くの外部モデルが用いられる。たとえば、ＳＤカード用のインターフェイス、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）、ＰＣＩ（Peripheral Component Interconnect）、ＡＭＢＡ（Advanced Microcontroller Bus Architecture）などが外部モデルとして模擬される。
【０００４】
こうした外部モデルは、たとえば、ＶｅｒｉｌｏｇやＶＨＤＬ（VHSIC（Very High Speed Integrated Circuits）Hardware Description Language）、ＳｙｓｔｅｍＣなどの、ハードウェア記述言語で記述される。
【０００５】
また、ＳｙｓｔｅｍＣなどで記述された外部モデルをシミュレータ上に構築し、エミュレータ上に構築されたＤＵＴとの間で試験を行うアクセラレーションが知られている。アクセラレーションには、シミュレータとエミュレータ間の接続を信号線で行う手法がある。また、アクセラレーションの別の手法として、検証を高速化するため、ＳＣＥ−ＭＩ（Standard Co-Emulation Modeling Interface）プロトコルを用いてエミュレータとシミュレータをトランザクションレベルで協調動作させる手法が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３１６０７号公報
【特許文献２】特開２００２−４１３２１号公報
【特許文献３】特開２００５−１８４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来の手法では、外部モデルを含む検証環境の構築に時間がかかるという問題があった。
たとえば、ハードウェア記述言語は記述量が多く、外部モデルの作成や修正などに時間がかかる。アクセラレーションを用いる場合は、ＳＣＥ−ＭＩ部分もハードウェア記述言語で記述する必要があり、外部モデルを変更した場合などに修正が困難であり、検証モデルの再構築に時間がかかる。
【課題を解決するための手段】
【０００８】
発明の一観点によれば、被試験対象モデルがアクセスする装置の動作を模擬する疑似モデルを有し、前記疑似モデルは、前記被試験対象モデルとの間で信号の入出力を行う信号入出力制御部と、前記信号入出力制御部が実行するインターフェイスの機能を指定するプログラムを格納した記憶部と、前記プログラムに応じて、前記信号入出力制御部の設定を行う疑似プロセッサと、を備える試験装置が提供される。
【０００９】
また、発明の一観点によれば、コンピュータが、被試験対象モデルとの間で信号の入出力を行う信号入出力制御部と、前記信号入出力制御部が実行するインターフェイスの機能を指定するプログラムを格納した記憶部と、疑似プロセッサを有し、前記被試験対象モデルがアクセスする装置の動作を模擬する疑似モデルを生成し、前記疑似プロセッサが、前記プログラムに応じて前記信号入出力制御部の設定を行う検証モデル開発方法が提供される。
【００１０】
また、発明の一観点によれば、コンピュータを、被試験対象モデルとの間で信号の入出力を行う信号入出力制御部、前記信号入出力制御部が実行するインターフェイスの機能を指定するプログラムを格納した記憶部、前記プログラムに応じて、前記信号入出力制御部の設定を行う疑似プロセッサ、を有し、前記被試験対象モデルがアクセスする装置の動作を模擬する疑似モデルとして機能させるプログラムが提供される。
【発明の効果】
【００１１】
開示の試験装置、検証モデル開発方法及びプログラムによれば、様々なインターフェイスに応じた検証環境を短期間に容易に構築できる。
【図面の簡単な説明】
【００１２】
【図１】試験装置の一例を示す図である。
【図２】外部モデルを用いた検証モデルの開発方法の一例を示す図である。
【図３】試験装置の試験時の動作の一例を示すタイミングチャートである。
【図４】ＤＵＴクロックの制御の一例を示す図である。
【図５】信号入出力制御部の一例を示す図である。
【図６】割り込みレジスタとクロック制御レジスタの設定例を示す図である。
【図７】入力レジスタの設定例を示す図である。
【図８】出力レジスタの設定例を示す図である。
【図９】プログラムの一例を示す図である。
【図１０】レジスタ制御プログラムに含まれる割り込み関数の例である。
【図１１】初期化動作の一例の処理の流れを示すフローチャートである。
【図１２】ＤＵＴの１クロックサイクルごとにおける外部モデルの処理の一例を示すフローチャートである。
【図１３】プログラム処理の一例を示すフローチャートである。
【図１４】外部モデルをＳＤカード用のインターフェイスに適用した場合の、ＤＵＴとの接続例を示す図である。
【図１５】外部モデルをＳＤカード用のインターフェイスとした際の試験装置の動作例を示す図である。
【図１６】複数のインターフェイス機能に対応した外部モデルの一例を示す図である。
【図１７】コンピュータのハードウェアの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
図１は、試験装置の一例を示す図である。
試験装置１０は、たとえば、エミュレータなどのコンピュータであり、被試験対象モデル（以下ＤＵＴと略す）１１、クロック発生部１２、疑似モデル（以下外部モデルと呼ぶ）１３を有する。ＤＵＴ１１は、たとえば、設計されたＳｏＣなどの半導体集積回路のデータ（たとえば、ネットリスト）であり、試験装置１０の書き換え可能な論理素子を有する論理展開用のボードなどにマッピングされている。
【００１４】
クロック発生部１２は、ＤＵＴ１１に対して供給するクロック信号を発生する。
外部モデル１３は、信号入出力制御部１３１、記憶部１３２、疑似プロセッサ１３３、バス１３４を有する。これらは、たとえば、ＶｅｒｉｌｏｇやＶＨＤＬなどの、論理合成可能なハードウェア記述言語で記述されている。
【００１５】
信号入出力制御部１３１は、ＤＵＴ１１との間で信号（インターフェイス信号）の入出力を行う。詳細は後述するが、信号入出力制御部１３１は、メモリ、レジスタ、バッファ、カウンタ、制御部などを有している。また、信号入出力制御部１３１は、クロック発生部１２に対して、クロック制御信号を出力する機能や、疑似プロセッサ１３３に対して割り込み命令を出力する機能を有している。
【００１６】
記憶部１３２は、信号入出力制御部１３１が実行するインターフェイスの機能を指定するプログラムＰを格納している。プログラムＰは、たとえば、Ｃ言語など抽象度の高いプログラミング言語により記述されている。プログラムＰには、信号入出力制御部１３１のレジスタなどに設定する値や、疑似プロセッサ１３３が行うプログラム処理などが記述されている。プログラムＰは、コンパイルされ、記憶部１３２に格納されている。
【００１７】
疑似プロセッサ１３３は、記憶部１３２に格納されているプログラムＰに応じて、信号入出力制御部１３１の設定を行う。また、疑似プロセッサ１３３は、信号入出力制御部１３１の設定後、信号入出力制御部１３１から割り込み命令を受けると、割り込み処理として、プログラムＰに記述されたプログラム処理を行う。疑似プロセッサ１３３は、たとえば、ＣＰＵ（Central Processing Unit）を模擬したモデルである。
【００１８】
バス１３４は、信号入出力制御部１３１、記憶部１３２及び疑似プロセッサ１３３間の信号を伝達する。
図２は、外部モデルを用いた検証モデルの開発方法の一例を示す図である。
【００１９】
まず、たとえば、試験装置１０は、図１に示されるような外部モデル１３を生成する（ステップＳ１）。
たとえば、試験装置１０は、使用されるインターフェイスに応じて設計者によって編集された信号入出力制御部１３１の情報が含まれる設定ファイルを入力する（ステップＳ１ａ）。設定ファイルでは、インターフェイスの信号線の本数や、バッファまたはレジスタの数や容量などの回路量が指定されている。たとえば、複数のインターフェイスが想定される場合、インターフェイスの信号線の本数が最大のものに合わせて、使用するバッファ数またはレジスタ数などが指定されている。また、取得されるデータ量や設定値の量などに応じて、バッファやレジスタの容量が指定されている。
【００２０】
これにより、生成される外部モデル１３において無駄な回路の生成を抑えることができる。
試験装置１０は、モジュールなどを生成する生成ツール（たとえば、ｐｅｒｌなどで作成されたもの）を実行して、外部モデル１３を生成する（ステップＳ１ｂ）。
【００２１】
なお、外部モデル１３を、試験装置１０とは別のコンピュータを用いて生成するようにしてもよい。その場合、試験装置１０は、生成された外部モデル１３を、たとえば、ネットワークなどを経由して取り込む。
【００２２】
その後、疑似プロセッサ１３３は、記憶部１３２に記憶されているプログラムＰに応じて、信号入出力制御部１３１の設定を行う（ステップＳ２）。これにより、ＤＵＴ１１がアクセスする装置の動作を模擬する外部モデル１３を有した検証モデルが生成される。
【００２３】
このような試験装置１０及び検証モデルの開発方法によれば、ＤＵＴ１１がアクセスする装置の動作を模擬する外部モデル１３の信号入出力制御部１３１の機能を、プログラムＰに応じて疑似プロセッサ１３３が設定する。これにより、種々の外部モデルそれぞれをハードウェア記述言語で開発する場合よりも工数を削減でき、様々なインターフェイスに応じた検証環境を短期間で容易に構築できるようになる。
【００２４】
たとえば、全てをハードウェア記述言語で外部モデルを作成する場合よりも、コード量を１／７程度に削減できる。また、エミュレータを用いているので、高速に試験が可能である。
【００２５】
また、プログラムＰを修正するだけで様々な外部モデルに対応することができるようになり、検証環境の修正や変更が容易になる。また、疑似プロセッサ１３３は、プログラムＰに応じて、ＤＵＴ１１へ出力される信号の出力タイミングを、信号入出力制御部１３１へ設定することで、タイミングの調整も容易である。
【００２６】
以上のようにして生成された外部モデル１３は、ＤＵＴ１１の試験時に、信号入出力制御部１３１の設定に応じて、たとえば、以下のような動作を行う。
なお、ＤＵＴ１１の試験は、たとえば、ハードウェア記述言語で記述されたテストベンチにしたがって行われる。
【００２７】
図３は、試験装置の試験時の動作の一例を示すタイミングチャートである。
クロック発生部１２で発生されるＤＵＴ１１へのクロック信号（ＤＵＴクロック）、外部モデル１３へ入力されるクロック信号（外部モデルクロック）、外部モデル１３の動作要因となる、ＤＵＴ１１から信号入出力制御部１３１への入力信号が示されている。また、信号入出力制御部１３１からクロック発生部１２に対して出力されるクロック制御信号、信号入出力制御部１３１から疑似プロセッサ１３３に対して出力される割り込み信号が示されている。また、信号入出力制御部１３１からＤＵＴ１１に出力される出力信号、信号入出力制御部１３１の出力バッファの値、疑似プロセッサ１３３のプログラム処理のタイミングが示されている。
【００２８】
なお、外部モデル１３の動作要因とは、インターフェイス信号である入力信号の変化や、入力信号が変化してからの時間経過などであり、前述の図２のステップＳ２の処理にて、信号入出力制御部１３１の図示しないレジスタに設定される。図３の例では、信号入出力制御部１３１への入力信号がデアサート（図３の例の場合Ｌ（Low）レベル）となることが、外部モデル１３の動作要因であるとしている。
【００２９】
タイミングｔ１で入力信号がＬレベルになると、信号入出力制御部１３１は、クロック制御信号をアサート（図３の例の場合Ｈ（High）レベル）とする。これにより、クロック発生部１２は、ＤＵＴクロックを停止する（タイミングｔ２）。
【００３０】
また、入力信号がデアサートになると、信号入出力制御部１３１は、割り込み信号をアサートする（タイミングｔ３）。これにより、疑似プロセッサ１３３は、記憶部１３２に記憶されているプログラムＰの記述に基づいたプログラム処理を行う。図３の例では、あるタイミングｔ４で、信号入出力制御部１３１の出力バッファの値を０から１にするプログラム処理の例が示されている。
【００３１】
プログラム処理が終了すると（タイミングｔ５）、信号入出力制御部１３１は、クロック制御信号をデアサートとする。これにより、クロック発生部１２は、ＤＵＴ１１へのＤＵＴクロックの供給を再開する。
【００３２】
図４は、ＤＵＴクロックの制御の一例を示す図である。
図４中で、ＤＵＴ１１、外部モデル１３に接続されている直線上のブロックは、各部で処理を示している。
【００３３】
ＤＵＴ１１によって、前述のような外部モデル１３の動作要因が発生すると（タイミングＴ１）、外部モデル１３は、クロック制御信号によって、ＤＵＴクロックを停止させ（タイミングＴ２）、プログラム処理を実行する。外部モデル１３は、プログラム処理が終わると、クロック制御信号によって、ＤＵＴクロックを再開させる（タイミングＴ３）。
【００３４】
再び外部モデル１３の動作要因が発生すると（タイミングＴ４）、ＤＵＴクロックが停止し（タイミングＴ５）、外部モデル１３のプログラム処理が行われる。
外部モデル１３のプログラム処理中において、ＤＵＴ１１と並行処理が可能の場合には、プログラム処理の途中で、クロック制御信号により、ＤＵＴクロックが再開される（タイミングＴ６）。
【００３５】
その後、外部モデル１３の動作要因が発生し（タイミングＴ７）、ＤＵＴ１１と外部モデル１３との並行動作が行えない場合には、ＤＵＴクロックが停止され（タイミングＴ８）、ＤＵＴ１１の動作が停止する。プログラム処理が終了すると、ＤＵＴクロックが再開され（タイミングＴ９）、ＤＵＴ１１の動作が開始される。
【００３６】
上記のようにＤＵＴクロックを制御することで、プログラム処理と、ＤＵＴ動作の時間差を調整することができる。また、外部モデル１３とＤＵＴ１１の並行処理が可能であれば、たとえば、プログラム処理の途中でＤＵＴクロックを再開し、ＤＵＴ１１と外部モデルとの並行処理を行わせることで、ＤＵＴクロックを停止することによる速度低下を抑制できる。
【００３７】
以上のような図３、図４に示した制御により、生成された外部モデル１３は、ＤＵＴ１１がアクセスする装置としての機能を模擬するようになる。ＤＵＴ１１は、外部モデル１３をアクセス相手として動作し、その時のＤＵＴ１１における各部の信号や、ＤＵＴ１１から入出力される信号が読み出されて、ＤＵＴ１１の検証などが行われる。
【００３８】
以下、上記のような動作を実現する外部モデル１３を、より詳細に説明する。
図５は、信号入出力制御部の一例を示す図である。
信号入出力制御部１３１は、割り込みレジスタ２０、クロック制御レジスタ２１、複数の入力レジスタ２２−１〜２２−ｎ、入力カウンタ２３−１〜２３−ｎ、入力バッファ２４−１〜２４−ｎ、出力レジスタ２５−１〜２５−ｎを有している。さらに、信号入出力制御部１３１は、出力レジスタ２５−１〜２５−ｎのそれぞれに対して、出力バッファ２７−１〜２７−ｎと、２つの出力カウンタ２６ａ−１〜２６ａ−ｎ、２６ｂ−１〜２６ｂ−ｎを有している。また、信号入出力制御部１３１は、割り込みマスクレジスタ２８を有している。
【００３９】
割り込みレジスタ２０は、割り込みの種類を保持している。疑似プロセッサ１３３は、割り込み命令を受けると、この割り込みレジスタ２０を参照して割り込みの種類を特定する。
【００４０】
クロック制御レジスタ２１には、ＤＵＴクロックの発生をクロック発生部１２に許可させるか否かを制御するクロック制御信号の値が格納されている。たとえば、外部モデル１３によるプログラム処理の終了時に、ＤＵＴクロックを再開させるように値が設定される。
【００４１】
入力レジスタ２２−１〜２２−ｎでは、ＤＵＴ１１からの入力信号に関する設定が行われる。割り込みのタイミングや、割り込みの要因なども設定される。
入力カウンタ２３−１〜２３−ｎは、入力レジスタ２２−１〜２２−ｎの設定値に応じて、図示しないクロック信号に同期してカウント動作を行う。
【００４２】
入力バッファ２４−１〜２４−ｎは、ＤＵＴクロックの１クロックサイクルごとに順次ビットをシフトしてＤＵＴ１１からの入力信号を保持する。
出力レジスタ２５−１〜２５−ｎには、ＤＵＴ１１に出力するデータのタイミングの制御と、割り込みに関する情報が設定される。
【００４３】
出力カウンタ２６ａ−１〜２６ａ−ｎ，２６ｂ−１〜２６ｂ−ｎは、出力レジスタ２５−１〜２５−ｎの設定値に応じて、図示しないクロック信号に同期してカウント動作を行う。出力カウンタ２６ａ−１〜２６ａ−ｎ，２６ｂ−１〜２６ｂ−ｎは、ＤＵＴ１１への出力信号のタイミングと、割り込みタイミングをカウントするために、各出力レジスタ２５−１〜２５−ｎに対して２つ設けられている。
【００４４】
出力バッファ２７−１〜２７−ｎは、ＤＵＴクロックの１クロックサイクルごとに、順次ビットをシフトしてＤＵＴ１１へ出力する情報を保持する。
割り込みマスクレジスタ２８は、割り込みの発生要因（たとえば、カウンタ値に応じて発生される割り込みか、ＤＵＴ１１からの信号により発生される割り込みか、など）ごとに、その要因による割り込みを発生させるか否かが設定されるレジスタである。
【００４５】
なお、信号入出力制御部１３１は、上記の他に、たとえば、制御部やメモリなどを有しているが図示を省略している。
また、入力レジスタ２２−１〜２２−ｎと出力レジスタ２５−１〜２５−ｎの個数はともにｎとしているが、異なっていてもよい。同様に、入力バッファ２４−１〜２４−ｎと出力バッファ２７−１〜２７−ｎなどの個数も異なっていてもよい。
【００４６】
また、複数の入力バッファ２４−１〜２４−ｎ、入力カウンタ２３−１〜２３−ｎ、出力バッファ２７−１〜２７−ｎ、出力カウンタ２６ａ−１〜２６ａ−ｎ，２６ｂ−１〜２６ｂ−ｎに対して、１つの入力レジスタ、出力レジスタを設けるようにしてもよい。
【００４７】
図６は、割り込みレジスタとクロック制御レジスタの設定例を示す図である。図６（Ａ）が割り込みレジスタ２０の設定例、図６（Ｂ）がクロック制御レジスタ２１の設定例を示している。
【００４８】
割り込みレジスタ２０では、“入力信号による割り込み”という名前で示されているビット幅ｎのビット［ｎ−１：０］は、ｎ個の各入力信号による割り込みの情報が設定される領域となっている。たとえば、ｎ番目の入力信号による割り込みが発生した場合には、ｎビット目に“１”が設定される。
【００４９】
また、“入力カウンタ制御割り込み”という名前で示されているビット幅ｎのビット［２ｎ−１：ｎ］に、入力カウンタ２３−１〜２３−ｎの制御による割り込みの情報が設定される。さらに、“出力カウンタ制御割り込み”という名前で示されている、ビット幅ｎのビット［３ｎ−１：２ｎ］に、出力カウンタ２６ａ−１〜２６ａ−ｎまたは出力カウンタ２６ｂ−１〜２６ｂ−ｎの制御による割り込みの情報が設定される。
【００５０】
一方、クロック制御レジスタ２１では、“ＤＵＴクロック許可”という名前で示されているビット［０］に、ＤＵＴクロックの発生をクロック発生部１２に許可させるか否かを制御するクロック制御信号の値が格納される。
【００５１】
図７は、入力レジスタの設定例を示す図である。
図７では、入力レジスタ２２−１〜２２−ｎにおいて、割り込みに関する設定が行われる領域が示されている。
【００５２】
“カウント値”という名前で示されている３３ビットのビット［６４：３２］には、カウント割り込み制御の際に用いられるカウント値が設定される。
“ｒｅｓｅｒｖｅｄ”という名前で示されている７ビットのビット［３１：２５］は、未使用領域とされている。
【００５３】
“信号割り込み制御”という名前で示されている５ビットのビット［２４：２０］には、ＤＵＴ１１からの入力信号がどのような状態のときに、割り込み信号をアサートするかがが設定される。
【００５４】
たとえば、ビット［２４：２０］に“０”が設定されている場合には、入力信号による割り込み信号はアサートされない。ビット［２４：２０］に“１”が設定されている場合には、入力信号が変化したときに、割り込み信号がアサートされる。ビット［２４：２０］に“２”が設定されている場合には、入力信号が０に変化したときに、割り込み信号がアサートされる。ビット［２４：２０］に“３”が設定されている場合には、入力信号が１に変化したときに、割り込み信号がアサートされる。ビット［２４：２０］に“４”が設定されている場合には、入力信号がある値Ｘに変化したときに、割り込み信号がアサートされる。ビット［２４：２０］に“５”が設定されている場合には、入力信号がある値Ｚに変化したときに、割り込み信号がアサートされる。
【００５５】
また、たとえば、ビット［２４：２０］に“６”が設定されている場合には、入力信号が０のときに、割り込み信号がアサートされる。ビット［２４：２０］に“７”が設定されている場合には、入力信号が１のときに、割り込み信号がアサートされる。ビット［２４：２０］に“８”が設定されている場合には、入力信号がある値Ｘのときに、割り込み信号がアサートされる。ビット［２４：２０］に“９”が設定されている場合には、入力信号がある値Ｚのときに、割り込み信号がアサートされる。
【００５６】
“カウンタリセット”という名前で示されているビット［１９］には、入力カウンタ２３−１〜２３−ｎをリセットさせるか否かの情報が設定される。たとえば、ビット［１９］に“１”が設定されている場合には、入力カウンタ２３−１〜２３−ｎのカウント値はリセットされ、０となる。
【００５７】
“カウントスタート”という名前で示されているビット［１８］には、入力カウンタ２３−１〜２３−ｎを動作させるか否かの情報が設定される。たとえば、ビット［１８］に“１”が設定されている場合には、入力カウンタ２３−１〜２３−ｎによるカウントが行われる。所定のカウント値に達したときには、ビット［１８］は、“０”に設定され、入力カウンタ２３−１〜２３−ｎによるカウントが停止する。
【００５８】
“カウント割り込み制御”という名前で示されているビット［１７］には、ビット［６４：３２］に設定されているカウント値に達したとき、割り込み信号をアサートするカウント割り込み制御を行うか否かの情報が設定される。たとえば、ビット［１７］に“１”が設定されている場合には、入力カウンタ２３−１〜２３−ｎで上記のカウント値に達したときに、割り込み信号がアサートとなる。
【００５９】
図８は、出力レジスタの設定例を示す図である。
“カウント値０”という名前で示されている１６ビットのビット［６４：４８］には、１つ目のカウント値が設定される。
【００６０】
“カウント値１”という名前で示されている１６ビットのビット［４７：３２］には、２つ目のカウント値が設定される。
“ｒｅｓｅｒｖｅｄ”という名前で示されている９ビットのビット［３１：２３］は、未使用領域とされている。
【００６１】
“カウンタ１リセット”という名前で示されているビット［２２］には、出力カウンタ２６ｂ−１〜２６ｂ−ｎをリセットさせるか否かの情報が設定される。たとえば、ビット［２２］に“１”が設定されている場合には、出力カウンタ２６ｂ−１〜２６ｂ−ｎのカウント値はリセットされ、０となる。カウント値がリセットされると、ビット［２２］は“０”と設定される。
【００６２】
“カウント１スタート”という名前で示されているビット［２１］には、出力カウンタ２６ｂ−１〜２６ｂ−ｎを動作させるか否かの情報が設定される。たとえば、ビット［２１］に“１”が設定されている場合には、出力カウンタ２６ｂ−１〜２６ｂ−ｎによるカウントが行われる。たとえば、ビット［４７：３２］のカウント値に達したときには、ビット［２１］は、“０”に設定され、出力カウンタ２６ｂ−１〜２６ｂ−ｎによるカウントが停止する。
【００６３】
“カウント１割り込み制御”という名前で示されているビット［２０］には、出力カウンタ２６ｂ−１〜２６ｂ−ｎでビット［４７：３２］のカウント値に達したときに、割り込み信号をアサートするか否かの情報が設定される。たとえば、ビット［２０］に“１”が設定されている場合には、出力カウンタ２６ｂ−１〜２６ｂ−ｎで上記のカウント値に達したときに、割り込み信号がアサートとなる。
【００６４】
“カウンタ０リセット”という名前で示されているビット［１９］には、出力カウンタ２６ａ−１〜２６ａ−ｎをリセットさせるか否かの情報が設定される。たとえば、ビット［１９］に“１”が設定されている場合には、出力カウンタ２６ａ−１〜２６ａ−ｎのカウント値はリセットされ、０となる。カウント値がリセットされると、ビット［１９］は“０”と設定される。
【００６５】
“カウント０スタート”という名前で示されているビット［１８］には、出力カウンタ２６ａ−１〜２６ａ−ｎを動作させるか否かの情報が設定される。たとえば、ビット［１８］に“１”が設定されている場合には、出力カウンタ２６ａ−１〜２６ａ−ｎによるカウントが行われる。たとえば、ビット［６３：４８］のカウント値に達したときには、ビット［１８］は、“０”に設定され、出力カウンタ２６ａ−１〜２６ａ−ｎによるカウントが停止する。
【００６６】
“カウント０割り込み制御”という名前で示されているビット［１７］には、出力カウンタ２６ａ−１〜２６ａ−ｎでビット［６３：４８］のカウント値に達したときに、割り込みをアサートするか否かの情報が設定される。たとえば、ビット［１７］に“１”が設定されている場合には、出力カウンタ２６ａ−１〜２６ａ−ｎで上記のカウント値に達したときに、割り込み信号がアサートとなる。
【００６７】
“信号制御”という名前で示されているビット［１６］には、出力バッファ２７−１〜２７−ｎから、ＤＵＴ１１への出力タイミングを制御する情報が設定されている。たとえば、ビット［１６］に“１”が設定されている場合には、出力カウンタ２６ａ−１〜２６ａ−ｎが、ビット［６３：４８］のカウント値に達するまで、出力バッファ２７−１〜２７−ｎからの出力が待機される。ビット［１６］に“０”が設定されている場合には、常に、ＤＵＴ１１への出力信号が、出力バッファ２７−１〜２７−ｎから出力される。
【００６８】
“制御値＿４ｂｉｔパターン”という名前で示されているビット［１５：１２］には、以下に説明する制御値が、ある値のときに、ＤＵＴ１１に出力される４ビットのパターンが設定されている。
【００６９】
“制御値”という名前で示されているビット［１１：８］には、たとえば、上記のビット［１６］が“１”のとき、出力カウンタ２６ａ−１〜２６ａ−ｎが、ビット［６３：４８］のカウント値に達するまでの間に、制御値として出力される値が設定されている。たとえば、ビット［１１：８］に“０”が設定されている場合には“０”が出力され、“１”が設定されている場合には“１”、“２”が設定されている場合には値Ｘ、“３”が設定される場合には別の値Ｚが、それぞれ出力される。たとえば、ビット［１１：８］に“４”が設定されている場合には、上記のビット［１５：１２］の４ビットのパターンが出力される。制御値の適用例については後述する。
【００７０】
次に、外部モデル１３の記憶部１３２に格納されるプログラムＰの例を説明する。
図９は、プログラムの一例を示す図である。
プログラムＰは、たとえば、機能層３０とレジスタ制御層３１を有する。
【００７１】
機能層３０は、外部モデル１３としての機能を実現するためのプログラムを有する。機能層３０のプログラムにより、ＤＵＴ１１からの入力信号の解析や、ＤＵＴ１１への応答情報などの作成が行われる。
【００７２】
レジスタ制御層３１は、信号入出力制御部１３１がインターフェイス信号を認識できるように、入力レジスタ２２−１〜２２−ｎ、出力レジスタ２５−１〜２５−ｎの書き換えを行う機能を実現するためのプログラムを有する。レジスタ制御層３１の内容をもとに、疑似プロセッサ１３３は、図７、図８に示したような入力レジスタ２２−１〜２２−ｎ、出力レジスタ２５−１〜２５−ｎの各ビットの設定値を書き換える。これにより、様々なインターフェイスに対応する汎用的な外部モデル１３が実現される。
【００７３】
機能層３０とレジスタ制御層３１のプログラムは、外部モデル１３が実現するインターフェイスの種類や、機能、抽象度などに応じて、たとえば、データベース４０内に格納されている。データベース４０は、たとえば、外部モデル１３内の記憶部１３２、試験装置１０内の図示しないメモリ、または、試験装置１０に有線または無線で接続されるコンピュータ内に構築される。
【００７４】
図９の例では、データベース４０は、機能層３０のプログラムとして、インターフェイス１用の機能プログラムＡ，Ｂと、インターフェイス２用の機能プログラムを有している。また、データベース４０は、レジスタ制御層３１のプログラムとし、インターフェイス１用のレジスタ制御プログラムと、インターフェイス２用のレジスタ制御プログラムＡ，Ｂを有している。
【００７５】
たとえば、インターフェイス１は、ＳＤカード用のインターフェイスであり、インターフェイス２は、ＳＤＲＡＭ用のインターフェイスである。インターフェイス１用として２つの機能プログラムＡ，Ｂが図示されているが、機能プログラムＡは、たとえば、ＳＤカード用のインターフェイスの基本機能、機能プログラムＢは、たとえば、エラー発生機能を実行するプログラムである。
【００７６】
また、インターフェイス２用として２つのレジスタ制御プログラムＡ，Ｂが図示されているが、たとえば、レジスタ制御プログラムＡは抽象度が高く、レジスタ制御プログラムＢは抽象度が低いものである。
【００７７】
疑似プロセッサ１３３の制御のもと、機能層３０とレジスタ制御層３１で用いる機能プログラムやレジスタ制御プログラムをデータベース４０から抽出して、プログラムＰを書き換えることで、簡単に機能やインターフェイスの切り換えを行うことができる。
【００７８】
図１０は、レジスタ制御プログラムに含まれる割り込み関数の例である。
図１０では、“Ｉｎｔｅｒｒｐｕｔ＿ＲＩ１（）”という割り込み関数の例が示されている。また、図１０では、割り込みレジスタ２０は“ｉｎｔｅｒｒｐｕｔ＿ｒｅｇ”と表記され、入力バッファ２４−１〜２４−ｎのうちの１つが“Ｓ＿ＩＮ＿０バッファ”、または“ＳＩＮ０”と表記されている。また、出力バッファ２７−１〜２７−ｎのうちの１つが“Ｓ＿ＯＵＴ＿０バッファ”と表記され、出力レジスタ２５−１〜２５−ｎのうちの１つが“Ｓ＿ＯＵＴ＿５レジスタ”と表記されている。なお、ｒｅａｄ（）は、データの読み出しを行って、データを返す関数であり、ｗｒｉｔｅ（）は、データの書き込みを行う関数である。
【００７９】
この割り込み関数“Ｉｎｔｅｒｒｐｕｔ＿ＲＩ１（）”は、割り込みレジスタ２０の値が“０ｘ０００００００１”の場合に、ある入力バッファをリードし、その内容に応じて、ある出力バッファと出力レジスタに対して書き込みを行う処理を行う関数である。
【００８０】
以下、試験装置１０による試験時の動作を、より詳細に説明する。
まず、外部モデル１３において、疑似プロセッサ１３３は、たとえば、プログラムＰに記述されたスタートアップルーチンを実行して、信号入出力制御部１３１の初期化を行う。この初期化の際に、前述した図２のステップＳ２の信号入出力制御部１３１の設定処理が行われる。
【００８１】
図１１は、初期化動作の一例の処理の流れを示すフローチャートである。
まず、疑似プロセッサ１３３は、信号入出力制御部１３１の各レジスタの値を０にリセットする（ステップＳ１０）。そして、疑似プロセッサ１３３は、プログラムＰに応じて、入力レジスタ２２−１〜２２−ｎと、出力レジスタ２５−１〜２５−ｎの設定を行う（ステップＳ１１）。
【００８２】
また、疑似プロセッサ１３３は、出力バッファ２７−１〜２７−ｎの初期化を行い（ステップＳ１２）、割り込みマスクレジスタ２８の設定を行う（ステップＳ１３）。割り込みマスクレジスタ２８の設定では、どの割り込み要因を有効または無効にするかが設定される。
【００８３】
その後、疑似プロセッサ１３３は、クロック制御レジスタ２１を設定し、ＤＵＴクロックの発生を許可する（ステップＳ１４）。これにより、クロック発生部１２はＤＵＴ１１に対してＤＵＴクロックを出力し、ＤＵＴ１１の動作が開始し（ステップＳ１５）、初期化動作は終了する。
【００８４】
なお、図１１のステップＳ１１〜Ｓ１４の処理は、適宜順番を変更可能である。
図１２は、ＤＵＴの１クロックサイクルごとにおける外部モデルの処理の一例を示すフローチャートである。
【００８５】
ＤＵＴ１１の１クロックサイクルの処理が終了すると、信号入出力制御部１３１は、入力レジスタ２２−１〜２２−ｎ及び出力レジスタ２５−１〜２５−ｎを参照する（ステップＳ２０）。そして、信号入出力制御部１３１は、インターフェイス信号などを参照し、外部モデル１３の動作要因となる割り込み要因が発生しているか否かを判定する（ステップＳ２１）。
【００８６】
たとえば、あるインターフェイス信号に関する設定値が格納された入力レジスタ２２−１において、図７で示したようなビット［２４：２０］において、前述の例のように入力信号が０に変化すると割り込みをアサートする“２”が設定されているとする。その場合、信号入出力制御部１３１は、ＤＵＴ１１の１クロックサイクルの処理により、インターフェイス信号が０に変化すると割り込み要因が発生したと判定する。
【００８７】
信号入出力制御部１３１によって割り込み要因が発生していないと判定された場合には、ＤＵＴ１１において次のクロックサイクルの処理が行われる。
信号入出力制御部１３１は、割り込み要因が発生したと判定した場合、割り込み信号をアサートする（ステップＳ２２）。このとき、信号入出力制御部１３１は、割り込みレジスタ２０に、どのインターフェイス信号による割り込みが発生したかを示す情報を設定する。たとえば、図６（Ａ）に示したような割り込みレジスタ２０において、ビット［ｎ−１：０］において、割り込み要因となったインターフェイス信号に対応するビットの値を“１”とする。
【００８８】
そして、信号入出力制御部１３１は、たとえば、クロック制御レジスタ２１に“０”を設定し、クロック発生部１２にＤＵＴクロックの発生を停止させる（ステップＳ２３）。
疑似プロセッサ１３３は、割り込みレジスタ２０を参照して割り込みの種類を特定する（ステップＳ２４）。そして、疑似プロセッサ１３３は、プログラムＰの機能層３０のプログラムに応じたプログラム処理を行う（ステップＳ２５）。プログラム処理が終了すると、疑似プロセッサ１３３は、クロック制御レジスタ２１に“１”を設定し、クロック発生部１２にＤＵＴクロックの発生を再開させる（ステップＳ２６）。これにより、ＤＵＴ１１は次のクロックサイクルの処理を行う。
【００８９】
図１３は、プログラム処理の一例を示すフローチャートである。
疑似プロセッサ１３３は、プログラム処理を行っている際、プログラムＰの内容をもとに、入力情報を用いる処理か否か判断する（ステップＳ３０）。入力情報を用いる処理の場合には、疑似プロセッサ１３３は、ＤＵＴ１１からの入力情報を、入力バッファ２４−１〜２４−ｎから読み込む（ステップＳ３１）。
【００９０】
入力情報を用いない場合、またはステップＳ３１の処理の後、疑似プロセッサ１３３は、入力レジスタ２２−１〜２２−ｎの設定を行うか否か判断する（ステップＳ３２）。たとえば、プログラムＰ中に、入力信号による割り込みを無効または一定期間無効にする命令が含まれる場合、疑似プロセッサ１３３は、入力レジスタ２２−１〜２２−ｎにその旨を設定する（ステップＳ３３）。
【００９１】
たとえば、疑似プロセッサ１３３は、図７に示した入力レジスタ２２−１〜２２−ｎの設定例において、ビット［２４：２０］の領域に“０”を設定することで、入力信号による割り込みの発生を無効にする。これにより、実行中のプログラム処理が割り込みで中断されることが抑制される。
【００９２】
入力レジスタ２２−１〜２２−ｎの設定を行わない場合、またはステップＳ３３の処理の後、疑似プロセッサ１３３は、出力レジスタ２５−１〜２５−ｎの設定を行うか否か判断する（ステップＳ３４）。たとえば、プログラムＰ中に、ＤＵＴ１１への出力タイミングを制御する旨の命令が含まれる場合、疑似プロセッサ１３３は、出力レジスタ２５−１〜２５−ｎにその旨を設定する（ステップＳ３５）。
【００９３】
たとえば、疑似プロセッサ１３３は、図８に示した出力レジスタ２５−１〜２５−ｎの設定例において、ビット［１６］の領域に“１”を設定することで、あるカウント値に達するまで、出力バッファ２７−１〜２７−ｎからの出力を待機させることができる。
【００９４】
出力レジスタ２５−１〜２５−ｎの設定を行わない場合、またはステップＳ３５の処理の後、疑似プロセッサ１３３は、出力バッファ２７−１〜２７−ｎへの書き込みを行うか否か判断する（ステップＳ３６）。たとえば、プログラム処理での解析の結果や、ＤＵＴ１１への応答情報などをＤＵＴ１１側へ出力するような命令が実行されると、それらの情報が出力バッファ２７−１〜２７−ｎへ書き込まれる（ステップＳ３７）。
【００９５】
出力バッファ２７−１〜２７−ｎへの書き込みを行わない場合、またはステップＳ３７の処理の後、疑似プロセッサ１３３は、プログラム処理が終了したか否か判断する（ステップＳ３８）。
【００９６】
疑似プロセッサ１３３は、プログラム処理が終了した場合には、前述したステップＳ２６の処理を行い、ＤＵＴクロックの発生を再開させる。プログラム処理が終了していない場合には、ステップＳ３０からの処理が繰り返される。
【００９７】
なお、図１３のステップＳ３０〜Ｓ３７の処理は、適宜順番を変更可能である。
以上、図１１〜図１３に示したような制御により、外部モデル１３に、ＤＵＴ１１がアクセスする装置としての機能を模擬させることができるようになる。
【００９８】
次に、外部モデルをＳＤカード用のインターフェイスとして適用した例を説明する。
図１４は、外部モデルをＳＤカード用のインターフェイスに適用した場合の、ＤＵＴとの接続例を示す図である。
【００９９】
図１４では、図５に示した要素と同様の要素については同一符号を付している。信号入出力制御部１３１は、入力バッファ２４−１〜２４−５、出力バッファ２７−１〜２７−７、入力レジスタ２２−１〜２２−５、出力レジスタ２５−１〜２５−７を有している。信号入出力制御部１３１において、図５で示されているその他の要素については図示を省略している。
【０１００】
外部モデルがＳＤカード用のインターフェイスを模擬する場合、信号線が入出力で同一となる。そのため、図１４の例では、ＤＵＴ１１からの入力がある場合には、ＤＵＴ１１への出力が行われないように制御する複数のトライステートバッファ（以下単にバッファという）５１，５２，５３，５４，５５を有するバッファ部５０が設けられている。このバッファ部５０は、外部モデルとして、たとえば、ハードウェア記述言語により記述される。
【０１０１】
バッファ部５０において、バッファ５１は、ＤＵＴ１１からの命令などが伝達される信号線ＣＭＤと、出力バッファ２７−１との間に設けられている。バッファ５２〜５５は、データなどが伝達される信号線ＤＡＴ［０］，ＤＡＴ［１］，ＤＡＴ［２］，ＤＡＴ［３］と、出力バッファ２７−２〜２７−５との間に設けられている。
【０１０２】
また、バッファ５１には、出力バッファ２７−７からの制御値が入力され、バッファ５２〜５５には、出力バッファ２７−６からの制御値が入力され、信号入出力制御部１３１からの情報を出力するか否かが制御される。
【０１０３】
図１５は、外部モデルをＳＤカード用のインターフェイスとした際の試験装置の動作例を示す図である。
図１５中で、ＤＵＴ１１、信号入出力制御部１３１、疑似プロセッサ１３３に接続されている直線上のブロックは、各部での処理を示している。
【０１０４】
まず、疑似プロセッサ１３３は、信号入出力制御部１３１に対して、図１１に示したような初期設定を行う（タイミングＴ１０）。初期設定が終わると、信号入出力制御部１３１は、ＤＵＴ１１へ供給されるＤＵＴクロックを開始させる（タイミングＴ１１）。ＤＵＴ１１からの命令の発行が開始されると（タイミングＴ１２）、信号入出力制御部１３１は、割り込み要因が検出されたと判定し、割り込み信号をアサートする（タイミングＴ１３）。また、信号入出力制御部１３１は、ＤＵＴクロックを停止させる（タイミングＴ１４）。疑似プロセッサ１３３は、割り込み命令を受ける（つまり割り込み信号のアサートを検出する）と、割り込みレジスタ２０を確認し、割り込みの種類を特定する（タイミングＴ１５）。その後、疑似プロセッサ１３３は、入力レジスタ２２−１に対し、たとえば、図５に示した入力カウンタ２３−１で４８カウント後に、割り込み信号をアサートするように設定を行う（タイミングＴ１６）。疑似プロセッサ１３３は、プログラム処理が終わると、クロック制御レジスタ２１を設定して、ＤＵＴクロックの開始を許可する（タイミングＴ１７）。これにより、信号入出力制御部１３１は、ＤＵＴクロックを再開させる（タイミングＴ１８）。
【０１０５】
ＤＵＴ１１は、ＤＵＴクロックに同期して、たとえば、４８ビットの命令を１ビットずつ発行し（タイミングＴ１９）、信号入出力制御部１３１の入力バッファ２４−１に入力していく。４８ビット目の命令の発行が終わり（タイミングＴ２０）、入力カウンタ２３−１による４８カウントが終了すると、信号入出力制御部１３１は、割り込み信号をアサートする（タイミングＴ２１）。また、信号入出力制御部１３１は、ＤＵＴクロックを停止させる（タイミングＴ２２）。疑似プロセッサ１３３は、割り込み命令を受けると、割り込みレジスタ２０を確認し、割り込みの種類を特定する（タイミングＴ２３）。
【０１０６】
そして、疑似プロセッサ１３３は、入力バッファ２４−１に保持された命令を読み出す（タイミングＴ２４）。疑似プロセッサ１３３は、プログラム処理により、読み出した命令を解析して応答情報を作成し、出力バッファ２７−１に設定する（タイミングＴ２５）。また、疑似プロセッサ１３３は、たとえば、４クロックサイクル（４カウント）後に、出力バッファ２７−１内のデータ（応答情報）を出力させるように、出力レジスタ２５−１に対して設定を行う（タイミングＴ２６）。
【０１０７】
また、疑似プロセッサ１３３は、出力レジスタ２５−１の設定に応じて、バッファ５１が信号入出力制御部１３１からの信号をＤＵＴ１１に出力するように制御させるための制御値を、出力バッファ２７−７に設定する（タイミングＴ２７）。さらに、疑似プロセッサ１３３は、出力レジスタ２５−７に対して、２クロックサイクル（２カウント）後に、出力バッファ２７−７の制御値を、バッファ５１に供給させるように設定を行う（タイミングＴ２８）。
【０１０８】
その後、疑似プロセッサ１３３は、クロック制御レジスタ２１を設定して、ＤＵＴクロックの開始を許可する（タイミングＴ２９）。これにより、信号入出力制御部１３１は、ＤＵＴクロックを再開させる（タイミングＴ３０）。そして、信号入出力制御部１３１は、出力バッファ２７−１に保持された応答情報を、バッファ５１を介して、ＤＵＴ１１に出力する（タイミングＴ３１）。
【０１０９】
以上のように、図１４に示すような信号入出力制御部１３１を有する外部モデルは、ＳＤカードのインターフェイスとして、適切に機能することができ、出力タイミングの調整なども、プログラムＰを変更して、各レジスタの設定値を調整することで、容易にできる。
【０１１０】
ところで、上記の説明では、プログラムＰにより、信号入出力制御部１３１の設定を行い、ある１つのインターフェイスの機能を実現させるようにしたが、これに限定されず、以下のようにして、複数のインターフェイスの機能を実現させるようにしてもよい。
【０１１１】
図１６は、複数のインターフェイス機能に対応した外部モデルの一例を示す図である。
図１と同様の要素については同一符号を付している。
図１６の試験装置１０ａにおいて、外部モデル１３ａの記憶部１３２ａは、２つのプログラムＰ１，Ｐ２を有している。また、信号入出力制御部１３１ａは、ＩＦ１用設定部６１、ＩＦ２用設定部６２を有している。
【０１１２】
ＩＦ１用設定部６１、ＩＦ２用設定部６２は、それぞれ、図５に示したような信号入出力制御部１３１の各要素を含んでいる。プログラムＰ１は、ＩＦ１用設定部６１に対して、インターフェイス１（たとえば、ＳＤカード用のインターフェイス）の機能を指定するためのプログラムである。また、プログラムＰ２は、ＩＦ２用設定部６２に対して、インターフェイス２（たとえば、ＳＤＲＡＭ用のインターフェイス）の機能を指定するためのプログラムである。
【０１１３】
疑似プロセッサ１３３は、プログラムＰ１，Ｐ２に基づいて、それぞれＩＦ１用設定部６１、ＩＦ２用設定部６２の入力レジスタ２２−１〜２２−ｎや出力レジスタ２５−１〜２５−ｎを設定する。これにより、同時に複数のインターフェイスに対応できるようになり、ＤＵＴ１１がもつ複数のインターフェイスと接続できる。
【０１１４】
なお、図１、図１６の試験装置１０、１０ａでは、外部モデル１３，１３ａの数を１つとしたが、複数設けてもよい。
また、外部モデル内に疑似プロセッサや記憶部を複数設け、同時に複数のプログラムを動作させることで、同時に複数のインターフェイスに対応できるようにしてもよい。
【０１１５】
なお、以上説明してきた試験装置１０，１０ａの処理は、コンピュータにより実現できる。
図１７は、コンピュータのハードウェアの一例を示す図である。
【０１１６】
コンピュータ１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。
【０１１７】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インターフェイス１０５、光学ドライブ装置１０６、及び通信インターフェイス１０７がある。
【０１１８】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【０１１９】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【０１２０】
入力インターフェイス１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インターフェイス１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【０１２１】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【０１２２】
通信インターフェイス１０７は、ネットワーク１０７ａに接続されている。通信インターフェイス１０７は、ネットワーク１０７ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【０１２３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
このように、試験装置１０，１０ａの処理機能は、コンピュータによって実現することができる。その場合、試験装置１０，１０ａが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１２４】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２５】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１２６】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１２７】
以上、実施の形態に基づき、本発明の試験装置、検証モデル開発方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１２８】
１０  試験装置
１１  被試験対象モデル
１２  クロック発生部
１３  疑似モデル（外部モデル）
１３１  信号入出力制御部
１３２  記憶部
１３３  疑似プロセッサ
１３４  バス
Ｐ  プログラム
【図１】
0005664430.tif 000002
【図２】
0005664430.tif 000003
【図３】
0005664430.tif 000004
【図４】
0005664430.tif 000005
【図５】
0005664430.tif 000006
【図６】
0005664430.tif 000007
【図７】
0005664430.tif 000008
【図８】
0005664430.tif 000009
【図９】
0005664430.tif 000010
【図１０】
0005664430.tif 000011
【図１１】
0005664430.tif 000012
【図１２】
0005664430.tif 000013
【図１３】
0005664430.tif 000014
【図１４】
0005664430.tif 000015
【図１５】
0005664430.tif 000016
【図１６】
0005664430.tif 000017
【図１７】
0005664430.tif 000018