(57)【要約】【課題】ターゲットＣＰＵの同一のアドレス領域に、複数意味合いをもつピン情報が割り当てられている構成をシミュレーション環境で模擬する。【解決手段】アプリケーションの単一の信号に、他アプリケーションの複数の信号情報を関連付け、それぞれを独立した信号情報として取り扱う。各々の信号情報に結線条件を設け、前記結線条件を満たしている信号情報を結線している信号情報として他アプリケーションとの信号情報の送受信を行う。【選択図】図１
2019070904.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム上で独立に動作する複数のアプリケーションを連携させて１つのシステムとして動作させるプログラム連携システムにおいて、
前記プログラム連携システムは、
前記複数のアプリケーション間の連携動作を制御する連携動作制御手段を有し、
前記連携動作制御手段は、
前記複数のアプリケーションのうちいずれかのアプリケーションからのアクセス要求により、前記アクセス要求の対象領域の値の更新、および、または参照が可能である信号と、
前記複数のアプリケーション間での前記信号の接続を制御する信号接続部と、
前記複数のアプリケーションと前記信号の値を送受信するインタフェース部と
を有し、
前記信号接続部は、
前記複数のアプリケーション間でどのように信号を接続するかの接続設定情報と、
前記接続設定情報にて接続関係にある信号を接続するか否かを決定するための信号接続条件と、
前記信号接続条件が満されているかを判断する信号接続判断手段と
を有し、
前記複数のアプリケーションのうちいずれかの第１のアプリケーションから、特定の信号に対するアクセス要求を受けると、
前記接続設定情報に基づき、前記アクセス要求の対象である第１の信号と接続するべき第２の信号の有無を判断し、
前記第２の信号がある場合、前記信号接続判断手段は前記信号接続条件が満たされているか否かを判断し、
前記信号接続条件が満されていると判断した場合は、前記第１の信号と前記第２の信号の値を共有できるように、前記第１の信号と前記第２の信号を接続し、
前記信号接続条件が満されていないと判断した場合は、前記第１の信号と前記第２の信号の値を共有できないように、前記第１の信号と前記第２の信号を接続しないことを特徴とするプログラム連携システム。
【請求項２】
前記連携動作制御手段は、前記第１の信号と前記第２の信号を接続する毎に、前記インタフェース部を介して、前記第１の信号を扱うアプリケーションと前記第２の信号を扱うアプリケーションの少なくともいずれかに信号の値を送信することを特徴とする請求項１に記載のプログラム連携システム。
【請求項３】
前記信号接続部は、
前記第１および第２の信号の現在値を個別に記憶する値記憶手段を有し、
前記第１のアプリケーションから、前記第１の信号に対するアクセス要求を受けると、前記信号接続判断手段を用いて、前記第１および第２の信号の信号接続条件が満たされているかを判断し、
前記信号接続条件が満たされる場合に、
前記アクセス要求が書込要求であるときは、前記値記憶手段の保持する前記第１及び第２の信号の現在値を更新し、
前記アクセス要求が参照要求であるときは、前記値記憶手段の保持する前記第２の信号の現在値を参照しかつ前記第１の信号の現在値を前記第２の信号の現在値に更新し、
前記信号接続条件が満たされていない場合に、
前記アクセス要求が書込要求であるときは、前記値記憶手段の保持する前記第１の信号の現在値を更新し、
前記アクセス要求が参照要求であるときは、前記値記憶手段の保持する前記第１の信号
の現在値を参照することを特徴とする請求項１記載のプログラム連携システム。
【請求項４】
前記第１の信号に対し、少なくとも２つ以上の信号の接続が設定されている場合に、
前記信号接続部は、
前記第１の信号と、前記第１の信号と接続する第２の信号の接続設定情報を第１の接続情報とし、
前記第１の信号と、前記第１の信号と接続する第３の信号の接続設定情報を第２の接続情報とし、
前記第１および第２の接続情報には、それぞれ第１および第２の信号接続条件が関連付けられており、前記第１のアプリケーションから、前記第１の信号に対するアクセス要求を受けると、前記信号接続判断手段を用いて、前記第１および第２の接続情報に関連付けられている前記第１および第２の信号接続条件がそれぞれ満たされているか判断し、前記第２の信号に対するアクセス要求を受けると、前記信号接続判断手段を用いて、前記第１の接続情報に関連付けられている前記第１の信号接続条件が満たされているか判断し、前記第３の信号に対するアクセス要求を受けると、前記第２の接続情報に関連付けられている前記第２の信号接続条件が満たされているか判断することを特徴とする請求項１ないし３のいずれか１項に記載のプログラム連携システム。
【請求項５】
前記信号接続条件は、前記第１の信号と第２の信号とを接続する第１の信号線以外の第２の信号線の値によって定められることを特徴とする請求項１ないし４のいずれか１項に記載のプログラム連携システム。
【請求項６】
前記信号接続条件は、前記第１のアプリケーションによる前記第１の信号へのアクセス種別によって定められることを特徴とする請求項１ないし４のいずれか１項に記載のプログラム連携システム。
【請求項７】
前記信号接続判断手段は、
前記第１のアプリケーションの全信号に、前記信号接続条件の情報を前記第１のアプリケーションの信号の信号識別情報の上位側または下位側に付加することにより、前記第１のアプリケーションの信号に対する信号接続設定にユニークな番号情報を与え、
前記第１のアプリケーションから信号に対するアクセス要求時に、前記番号情報が、アクセス対象の信号の信号識別情報と、前記第２の信号線の前記アクセス要求時点での値から構成される信号を、前記信号接続条件を満たす信号線として扱うことを特徴とする請求項５に記載のプログラム連携システム。
【請求項８】
前記信号接続判断手段は、
前記第１のアプリケーションの全信号に、前記信号接続条件の情報を前記第１のアプリケーションの信号の信号識別情報の上位側または下位側に付加することにより、前記第１のアプリケーションの信号に対する信号接続設定にユニークな番号情報を与え、
前記第１のアプリケーションから信号に対するアクセス要求時に、前記番号情報が、アクセス対象の信号の信号識別情報と、前記アクセス要求に対応する前記アクセス種別を示す値から構成される信号を、前記信号接続条件を満たす信号線として扱うことを特徴とする請求項６に記載のプログラム連携システム。
【請求項９】
前記信号接続部は、前記信号接続条件が満たされている信号線をリスト化した有効信号線リストを作成する手段と、
前記信号接続条件が満たされない信号線に関する情報を前記有効信号線リストから削除する手段と、
前記信号接続条件が満たされる信号線に関する情報を前記有効信号線リストへ登録する手段を有し、
前記信号接続部は、前記第２の信号線の値の変化を検知すると、前記信号接続判断手段を用いて前記信号接続条件が満たされているか否かを判別し、
前記第１のアプリケーションから前記第１の信号に対するアクセス要求時に、前記有効信号線リストを参照することで前記第１の信号が前記信号接続条件を満たすか否かを判断する請求項５に記載のプログラム連携システム。
【請求項１０】
前記信号接続部は、
信号線に値を入力または出力する信号を指定する入出力指定情報をもち、前記信号接続部が、前記複数のアプリケーションのうちいずれかのアプリケーションから前記信号に対するアクセス要求を検知すると、
前記信号接続判断手段は、
前記アクセス要求がリードアクセスであれば、前記入出力指定情報に入力を含む場合には前記信号接続条件が満たされていると判断し、
前記アクセス要求がライトアクセスであれば、前記入出力指定情報に出力を含む場合には前記信号接続条件が満たされていると判断することを特徴とする請求項１記載のプログラム連携システム。
【請求項１１】
請求項１ないし１０のいずれか１項に記載のプログラム連携システムとしてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御ソフトウェアを検証する検証装置として機能し得るプログラム連携システムに関するものである。
【背景技術】
【０００２】
特許文献１は、装置に組み込まれ、装置の各部を制御するＣＰＵで動作する制御ソフトウェアの検証のため、当該ＣＰＵの動作を模擬するＣＰＵシミュレータの利用を開示している。また、通常の装置においては、ＣＰＵに制御される各機能ブロックの状態変化に応じて、ＣＰＵの動作が変化し、かつ、ＣＰＵからの信号出力により、ＣＰＵに制御される各機能ブロックの動作は変化する。このため、特許文献２は、ＣＰＵがアクセスし、かつ、それらから値を読み込むペリフェラルの動作を模擬する外的要因シミュレータの使用を開示している。なお、ペリフェラルとは、装置のＣＰＵ以外の機能ブロックであり、ＣＰＵがその値を読み込んだり、値を出力したりするものである。外的要因シミュレータは、ＣＰＵシミュレータから情報を受け取って、対応する機能の動作を模擬し、模擬結果を、ＣＰＵシミュレータへ送信したり、割込要求を出力したりする。この様に、ＣＰＵシミュレータと外的要因シミュレータとを連携動作させるシステムを、以下、シミュレーション連携システムと呼ぶ。
【０００３】
シミュレーション連携システムは、各シミュレータ内の信号の識別情報を保持している。シミュレーション連携システムは、いずれかのシミュレータが信号の値情報を変更すると、信号の値情報を変更した当該シミュレータの当該信号の識別情報から、結線先シミュレータの信号識別情報を取得して結線先シミュレータへ信号情報の変更を伝えている。シミュレーション連携システムでは、このようにして、信号の結線を行っている。
ここで、シミュレーション連携システムの模擬対象であるマイコンは、外部バスのサイズを減らすために、制御対象の複数装置のピン情報を、マイコンの１つのアドレス領域に、割り当てる方式が考案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−２０２９０３号公報
【特許文献２】特開２００５−３３９０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記従来例として示されたシミュレーション連携システムで扱う信号は、シミュレータ間の信号接続が１対１対応であることが前提で作られている。すなわち、ＣＰＵの機能を模擬するＣＰＵシミュレータのある領域と、ペリフェラルの動作を模擬する外的要因シミュレータのある機能とが１対１対応で関連付けられている。よって、マイコンの１つのアドレス領域に、制御対象である複数の装置のピン情報を割り当てて動作するマイコンを模擬することができない。
【０００６】
本発明は、上述の問題に鑑みてなされたものであり、状況に応じて信号接続を切り替えるプログラム連携システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明は、コンピュータシステム上で独立に動作する複数のアプリケーションを連携させて１つのシステムとして動作させるプログラム連携シス
テムにおいて、
前記プログラム連携システムは、
前記複数のアプリケーション間の連携動作を制御する連携動作制御手段を有し、
前記連携動作制御手段は、
前記複数のアプリケーションのうちいずれかのアプリケーションからのアクセス要求により、前記アクセス要求の対象領域の値の更新、および、または参照が可能である信号と、
前記複数のアプリケーション間での前記信号の接続を制御する信号接続部と、
前記複数のアプリケーションと前記信号の値を送受信するインタフェース部と
を有し、
前記信号接続部は、
前記複数のアプリケーション間でどのように信号を接続するかの接続設定情報と、
前記接続設定情報にて接続関係にある信号を接続するか否かを決定するための信号接続条件と、
前記信号接続条件が満されているかを判断する信号接続判断手段と
を有し、
前記複数のアプリケーションのうちいずれかの第１のアプリケーションから、特定の信号に対するアクセス要求を受けると、
前記接続設定情報に基づき、前記アクセス要求の対象である第１の信号と接続するべき第２の信号の有無を判断し、
前記第２の信号がある場合、前記信号接続判断手段は前記信号接続条件が満たされているか否かを判断し、
前記信号接続条件が満されていると判断した場合は、前記第１の信号と前記第２の信号の値を共有できるように、前記第１の信号と前記第２の信号を接続し、
前記信号接続条件が満されていないと判断した場合は、前記第１の信号と前記第２の信号の値を共有できないように、前記第１の信号と前記第２の信号を接続しないことを特徴とする。
【０００８】
また、本発明に係るプログラムは、上記プログラム連携システムとしてコンピュータを機能させることを特徴とする。
【発明の効果】
【０００９】
以上説明したように、本発明によれば、プログラム連携システムにおいて、あるアプリケーションで行う模擬対象の１つの領域に、他のシミュレータの信号を多数関連付けて、状況に応じて接続信号を切り替えることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施例１に係る装置制御ソフトウェア検証装置の機能構成図
【図２】実施例１〜６に係る装置制御ソフトウェア検証装置の概略構成図
【図３】実施例１に係る連携処理部３３０の処理のフローチャート
【図４】実施例１，２に係る配線定義情報の一例
【図５】実施例１に係る検証装置のソフトウェア検証処理のフローチャート
【図６】実施例２に係る連携処理部３３０の処理のフローチャート
【図７】実施例２，３に係る検証装置のソフトウェア検証処理のフローチャート
【図８】実施例３に係る配線定義情報の一例
【図９】実施例３に係る連携処理部３３０の処理のフローチャート
【図１０（ａ）】実施例４に係る配線定義情報の一例
【図１０（ｂ）】実施例４に係る結線リストの一例
【図１０（ｃ）】実施例４に係る結線リストの一例
【図１１】実施例４に係る連携処理部３３０の処理のフローチャート
【図１２】実施例２〜４に係る装置制御ソフトウェア検証装置の機能構成図
【図１３】実施例５に係る配線定義情報の一例
【図１４】実施例６に係る装置制御ソフトウェア検証装置の機能構成図
【図１５】実施例６に係る配線定義情報の一例
【図１６】実施例６に係る連携処理部３３０の処理のフローチャート
【発明を実施するための形態】
【００１１】
以下に図面を参照して、この発明を実施するための形態を、実施例に基づいて例示的に詳しく説明する。ただし、この実施の形態に記載されている構成部品の寸法、材質、形状それらの相対配置などは、発明が適用される装置の構成や各種条件により適宜変更されるべきものである。すなわち、この発明の範囲を以下の実施の形態に限定する趣旨のものではない。
【実施例１】
【００１２】
本発明の実施例１は、個々が独立プロセスとして動作する複数のアプリケーションソフトを連携させて１つのシステムとして動作させるプログラム連携システムである。かかるシステムにおいて、装置を制御するソフトウェアの検証を目的とした装置制御シミュレーションを実行する際、模擬対象の１つの領域に多数の信号を関連付けて、状況に応じて接続信号を切り替える。これにより、マイコンの同一のアドレス領域に、制御対象の複数の装置のピン情報を割り当て、セレクタでアクセス先を指定する機能を模擬するものである。なお、実施例１に係るプログラム連携システムのソフトウェア検証装置は、コンピュータシステム上で実行されるプログラムとして実現されるものである。
【００１３】
図２は、本実施形態に係るシミュレーションを実現するコンピュータシステムの概略構成例を示す図である。なお、このコンピュータシステムにより本発明のプログラム連携システムが実現される。
図２のコンピュータシステム２０１は、中央処理部（ＣＰＵ）２０６、主記憶部２０７、ハードディスク２０８等を内蔵した本体部２０２を備える。本体部２０２のハードディスク２０８には、ソフトウェア検証装置の各機能を実現するためのプログラムが格納される。中央処理部（ＣＰＵ）２０６は、プログラム及び各種データを主記憶部２０７にロードして実行することで、コンピュータシステム２０１はソフトウェア検証装置として動作する。なお、表示装置２０３は、本体部２０２からの指示により画面表示を行う。また、キーボード２０４は、このコンピュータシステム２０１にユーザの指示や文字情報を入力するためのものである。さらに、マウス２０５は、表示装置２０３上の任意の位置を指定することによりその位置に表示されていたアイコン等に応じた指示を入力するためのものである。
【００１４】
図１は、本実施形態によるソフトウェア検証装置３６０の機能ブロック図である。ＣＰＵシミュレータ３１０は、制御ソフトウェアを実行してターゲットＣＰＵの動作を模擬するものである。また、外的要因シミュレータ３５０及び３５２は、ペリフェラル、つまり、ターゲットＣＰＵに制御される周辺機器や機能ブロックの機能の動作を模擬するものである。さらに、ソフトウェア検証装置３６０は、ＣＰＵシミュレータ３１０と外的要因シミュレータ３５０及び３５２との間で送受信される情報の伝達を仲介して、これらを連携動作させる連携処理部３３０を備えている。ここで、連携処理部３３０が連携動作制御手段に相当する。なお、ターゲットＣＰＵとは、コンピュータシステム２０１に搭載されているＣＰＵ２０６ではなく、制御ソフトウェアが実際に使用される装置のＣＰＵである。
また、図１において、外的要因シミュレータ３５０及び３５２の数を２つとしているがこれは例示であり、接続できる外的要因シミュレータの数は、任意に選択できる。加えて、本実施例においては、外的要因シミュレータ３５０及び３５２をＣＰＵシミュレータ３１０とは別プロセスとしているが、これも例示であり、同一プロセスとしてもよい。なお
、本実施例では、ＣＰＵシミュレータ３１０と連携処理部３３０を同一プロセスで動作させ、連携処理部３３０と外的要因シミュレータ３５０および３５２を別プロセスで動作させる。これは、ＣＰＵシミュレータ３１０のシミュレーション精度に比べ、外的要因シミュレータ３５０および３５２のシミュレーション精度が低いためである。装置制御ソフトウェア検証装置３６０は制御ソフトウェアの検証装置であるため、ＣＰＵシミュレータ３１０は、検証対象のプログラムコードを１語１語解釈するような高精度でソフトウェア動作を模擬する必要がある。一方、外的要因シミュレータ３５０及び３５２は、ＣＰＵシミュレータ３１０が参照するハードウェア動作を模擬するものであるものの、ハードウェアの動作結果については、高い精度が要求されない場合が多い。よって、ＣＰＵシミュレータ３１０と比べると、外的要因シミュレータ３５０及び３５２は圧倒的に低いシミュレーション精度で実行される。これが、ＣＰＵシミュレータ３１０と外的要因シミュレータ３５０及び３５２のシミュレーション精度が違う理由である。
【００１５】
ＣＰＵシミュレータ３１０の命令実行部３１１は、検証対象である制御ソフトウェアを実行して、ターゲットＣＰＵのメモリや装置制御用のレジスタに値の読み書きを行う。情報格納部３１６は、ターゲットＣＰＵのアドレス空間をＣＰＵシミュレータ上で模擬する仮想アドレス空間情報（対象領域）３１７を有している。前記仮想アドレス空間（以下、単に仮想アドレス空間と記す）には、ターゲットＣＰＵの主メモリだけではなく、制御対象のハードウェアへの制御信号に対応する値を書き込み、ハードウェアの状態を示す値を保持するレジスタも含まれている。さらに、命令実行部３１１は、制御ソフトウェアのアクセス命令に従い、仮想アドレス空間の対応領域にアクセスする。
命令実行部３１１は、特定の命令の実行時、Ｉ／Ｆ部３１２経由で連携処理部３３０に、当該特定命令の実行をイベントとして通知する。ここで、特定の命令とは、例えば、仮想アドレス空間へのライトメモリアクセス、及びリードメモリアクセス処理等である。なお、命令実行部３１１は、イベント通知後、連携処理部３３０から再開指示を受け取るまで、模擬処理を停止する。
【００１６】
外的要因シミュレータ３５０および３５２は、自身のアプリケーションで扱う信号の値の参照、または更新の実行時に、連携処理部３３０へアクセス通知を行う。具体的には値参照時にはリードアクセス、値の更新時にはライトアクセスの通知である。なお、外的要因シミュレータ３５０および３５２は、自身のアプリケーションで扱う信号の信号識別子と値とを関連付けて、記憶している。
【００１７】
連携処理部３３０は、仮想アドレス空間の値をＣＰＵシミュレータ３１０と、外的要因シミュレータ３５０及び３５２とで共有するための機能である。連携処理部３３０の管理部３３５は、ユーザが予め作成しておいた配線定義情報をシミュレーション開始時に読み込み、配線データベース３３６を生成する。管理部３３５は、外的要因シミュレータ３５０及び３５２の変数ＩＤの重複チェック機構を有しており、配線データベース３３６作成前に、前記重複チェック機構を用いて、変数ＩＤの重複チェックを行う。そのため、配線データベース３３６では、変数ＩＤが競合することはない。なお、変数ＩＤとは、外的要因シミュレータ３５０及び３５２が扱う信号に割り当てるＩＤのことであり、本実施例では、０以上の整数値としている。配線データベース３３６は、模擬対象ＣＰＵのアドレス空間の仮想アドレスと、外的要因シミュレータ３５０及び３５２で扱う信号毎に割り当てられた変数ＩＤとの接続関係を示す情報、及び結線条件情報３３７を含むものである。ここで、接続関係を示す情報が接続設定情報に相当し、結線するか否かを決定する結線条件情報が信号接続条件に相当する。また、ＣＰＵアドレス空間の仮想アドレスが第１の信号に相当するとき、外的要因シミュレータ３５０及び３５２で扱う信号に割り当てられた変数ＩＤがそれぞれ第２又は第３の信号のいずれかに相当する。そして、仮想アドレスとそれぞれの変数ＩＤとの接続関係を示す接続設定情報がそれぞれ第１の接続情報又は第２の接続情報に相当する。そして、第１の接続情報には第１の信号接続条件が、第２の接続情
報には第２の接続条件が関連付けられ、それぞれの変数ＩＤに対するアクセス要求を受けると、定義情報判定部が、それぞれ第１又は第２の信号接続条件が満たされているかを判断する。なお、装置制御ソフトウェア検証装置３６０における信号とは、１つの仮想アドレス空間を模擬するために、ＣＰＵシミュレータ３１０、外的要因シミュレータ３５０、および３５２のそれぞれが扱うデータのことである。本実施例の場合、ＣＰＵシミュレータ３１０が扱う信号と、外的要因シミュレータ３５０または３５２が扱う信号とを接続させ、ＣＰＵシミュレータ３１０と外的要因シミュレータ３５０または３５２間で値を共有している。これにより本実施例ではターゲットＣＰＵの動作を模擬している。
【００１８】
結線条件情報３３７は、ＣＰＵシミュレータ３１０で扱う信号と、外的要因シミュレータ３５０または３５２で扱う信号とを結線するか否かの判断に用いられる。よって、接続関係にある前記仮想アドレスと変数ＩＤであっても、両者の値を共有するために、信号を接続する、つまり結線するには、結線条件が満たされている必要がある。結線条件情報３３７は、結線条件の指定に用いる信号を特定する情報と、前記信号の値情報をペアとし、複数の前記ペア情報を含んでいる。以後、結線条件の指定に用いる信号線をマスタ信号線と呼び、マスタ信号線が定義されている信号線を従属信号線と記載する。なお、マスタ信号線が非指定の信号は常に結線条件が満たされているものと同様の扱いになる。また、マスタ信号線は、結線される信号線以外の信号線である。
【００１９】
管理部３３５は、アプリケーション間で値の受渡し処理が必要になると、定義情報判定部３４０を用いて結線するか否かを結線条件情報３３７から判断し、結線すると判断した場合にのみ、後述のＩ／Ｆ部３３１を用いて値の受渡し処理を行う。ここで、管理部３３５が信号接続部に相当し、定義情報判定部３４０が信号接続判断手段に相当する。また、配線定義情報には、模擬対象ＣＰＵの１つの仮想アドレス領域に、複数の変数ＩＤを定義することが可能である。連携処理部３３０は、配線データベース３３６内では、１つの仮想アドレス領域に複数の変数ＩＤの接続が定義されている場合、変数ＩＤ毎に別々の信号伝達ライン（以下、信号線）として取り扱う。そのため、１つの仮想アドレス領域に複数の変数ＩＤが定義されている場合には、各々の信号線において定義情報判定部３４０の判断処理を行う。
【００２０】
連携処理部３３０のＩ／Ｆ部３３１は、ＣＰＵシミュレータ３１０とのインタフェース部であり、Ｉ／Ｆ部３３８及び３３９は、それぞれ、外的要因シミュレータ３５０及び３５２とのインタフェースである。連携処理部３３０は、前記Ｉ／Ｆ部３３８及び３３９を用いて、外的要因シミュレータ３５０又は３５２に、ＣＰＵシミュレータ３１０が設定した値に対応する制御情報を通知、または要求する。同様に、連携処理部３３０は、前記Ｉ／Ｆ部３３１を用いて、ＣＰＵシミュレータ３１０に、外的要因シミュレータ３５０又は３５２が設定した値に対応する制御情報を通知、または要求する。
【００２１】
図３を用いて連携処理部３３０の処理を詳細に説明する。図３は模擬対象の１つの領域に、他シミュレータの信号が多数関連付けされているアプリケーションからのアクセスイベント通知を連携処理部３３０が受信後の処理を示すフローチャートである。なお、連携処理部３３０は、シミュレーション開始時に配線定義情報を読み込んでいる。そして、連携処理部３３０は、ＣＰＵシミュレータ３１０の仮想アドレスと、結線対象の外的要因シミュレータ３５０及び、または３５２の変数ＩＤと、信号線毎の結線条件３３７を関連付けて配線データベース３３６として記憶している。
【００２２】
連携処理部３３０は、シミュレーション中に、いずれかのアプリケーションからアクセスイベント通知を受けると、受けたイベントの種別を判断する（Ｓ３０２）。各アプリケーションは、イベント通知時に、イベントの種別情報、当該アプリケーションにおける信号識別情報を連携処理部３３０へ渡す。信号識別情報とは、イベント報知元アプリケーシ
ョンがＣＰＵシミュレータの場合にはアクセス対象の仮想アドレスとアクセスサイズであり、外的要因シミュレータ３５０及び３５２の場合には変数ＩＤである。また、イベントの種別とは、データへのリードアクセス、またはライトアクセスであり、イベントの種別がライトアクセスであった場合には、イベント報知元アプリケーションは、当該領域への書込値も併せて連携処理部３３０へ渡す。
【００２３】
連携処理部３３０は、Ｓ３０２にてイベント種別をリードアクセスイベントと判断した場合、配線データベース３３６をサーチし（Ｓ３０３）、通知された信号識別情報を持つ信号が配線データベース３３６内に存在するか否かを確認する（Ｓ３０４）。通知された信号識別情報を持つ信号が配線データベース３３６内に存在する場合には、当該信号に関連付けられている結線条件情報３３７を参照し、結線条件の定義有無を判定する（Ｓ３０５）。結線条件が存在する場合には、以下に詳細を説明するＳ３０７およびＳ３０８の処理によって、当該信号の結線の有効／無効を判断し、有効と判断された場合のみ、Ｓ３０９の処理へ進む。また、当該信号に関連付けられている結線条件情報３３７において、当該信号に対するマスタ信号線が未定義、すなわち結線条件の定義が存在しない場合にも、当該信号の結線が有効であるものと見なし、Ｓ３０９の処理へ進む。
【００２４】
Ｓ３０５にて結線条件の定義が存在する場合には、マスタ信号線の値情報を取得する（Ｓ３０７）。マスタ信号線の値情報を取得するためには、まず、当該信号に対するマスタ信号線の定義情報にアクセスする。当該マスタ信号線の定義情報へのアクセスは、配線データベース３３６の上からマスタ信号線の定義情報を順次サーチし、当該マスタ信号線の定義情報にアクセスしても良い。また、定義情報判定部３４０が配線データベース３３６を作成する際に各信号の定義情報にマスタ信号線のインデックス情報を付加しておき、インデックス情報を用いて当該マスタ信号線の定義情報にアクセスしても良い。当該マスタ信号線の定義情報にアクセス後、連携処理部３３０は、マスタ信号線の識別情報及び値情報を持つアプリケーション情報を得、前記アプリケーションから、当該信号の値情報を取得する。より具体的には、連携処理部３３０が当該アプリケーションへ、Ｉ／Ｆ部３３１、３３８、または３３９を用いてマスタ信号線の識別情報に対する値情報を問い合わせることで値情報を取得する。連携処理部３３０は、マスタ信号線の値情報を取得すると、Ｓ３０５で取得した結線条件と比較し、当該信号に対して、受信したイベント通知の有効性を判断、すなわち、当該信号と接続関係にある信号との結線が有効か無効かを判断する（Ｓ３０８）。
【００２５】
Ｓ３０５で結線条件が存在しないと判断した場合、またはＳ３０８で当該信号情報の結線が有効と判断した場合は、連携処理部３３０は、イベント通知領域と結線されている信号線の値情報を取得する（Ｓ３０９）。そして、連携処理部３３０は、取得した値情報をリードイベント通知元のアプリケーションに伝達する（Ｓ３１０）。Ｓ３０９に於いて、イベント通知領域の値情報の取得方法は、Ｓ３０７で述べたマスタ信号線の値情報の取得方法と同一であるため説明を省略する。Ｓ３１０でリードイベント通知元のアプリケーションにイベント通知領域の値情報を伝達すると、リードアクセスイベント処理終了と見なし、イベント通知元のアプリケーションに処理終了を伝える（Ｓ３１１）。なお、Ｓ３０３において、通知された信号識別情報の定義を複数発見した場合には、発見した信号識別情報、すなわち、イベント通知対象の信号を含む信号線の定義を記憶し、前記信号線の各々について、Ｓ３０４〜Ｓ３０８の処理を実施する。ただし、Ｓ３０８にてイベント通知が有効であると判断すると、前記信号線に対するＳ３０４〜Ｓ３０８の処理は実施せず、Ｓ３０９へ進む。これは、通知イベントがリードアクセスの時は、有効な値をイベント通知元のアプリケーションへ伝えることが目的であるからである。このため、有効な値を発見した時点でイベント通知元のアプリケーションへ値を返送し、処理を終了するフローとなっている。
なお、本フローチャートではＳ３１０とＳ３１１は異なる処理として記載しているが、
Ｓ３０９以降のＳ３１０とＳ３１１をまとめてひとつの処理にしても良い。すなわち、Ｓ３１０での連携処理部３３０からのイベント通知領域の値情報返送を以て、リードイベント処理終了通知としても良い。また、Ｓ３０８に於いて、イベント通知は無効と判断した場合は、Ｓ３１１を実施する。
【００２６】
連携処理部３３０は、Ｓ３０２にて受けたイベントがライトアクセスイベントと判断した場合には、配線データベース３３６をサーチする（Ｓ３１３）。Ｓ３１３の処理後、サーチ中に通知された信号識別情報を持つ信号が配線データベース３３６内に存在するか否かを確認する（Ｓ３１４）。通知された信号識別情報を持つ信号が配線データベース３３６内に存在する場合には、連携処理部３３０は、Ｓ３１５、Ｓ３１７、およびＳ３１８の処理を行う。すなわち、連携処理部３３０は、通知された信号識別情報が結線条件を持つか否かの判断や、結線条件を持つ場合に、その結線が有効か無効かを判断する。この処理はＳ３０５、Ｓ３０７，およびＳ３０８と同様であるため説明を省略する。
Ｓ３１５で結線条件が存在しないと判断した場合、またはＳ３１８で有効と判断した場合は、連携処理部３３０は、当該信号に関連付けられた他のアプリケーションの有無を調べる（Ｓ３１９）。関連付けられた他アプリケーションが存在する場合、当該他アプリケーションへ、ライトイベント通知を行う（Ｓ３２０）。具体的には、Ｓ３１９の処理にて、まず配線データベース３３６の当該信号の定義情報を参照し、関連する他アプリケーションの存在と、そのアプリケーションにおける当該信号の識別情報を取得する。その後、Ｓ３２０の処理にて、連携処理部３３０は、イベント通知元アプリケーションから渡された値と識別情報とを、関連する他アプリケーションへ、Ｉ／Ｆ部３３１または３３８または３３９を用いて伝達する。Ｓ３２０の処理が終了すると、再びＳ３１９の処理を開始し、イベント通知対象の信号に関連付けられている他のアプリケーションの存在有無を調査する。連携処理部３３０は、全ての関連アプリケーションへ値を送信し終えるまでＳ３１９とＳ３２０を繰り返す。そして、Ｓ３１９で値を伝達すべき対象のアプリケーションが存在しないと判断すると、連携処理部３３０は、イベント通知元のアプリケーションに処理終了を伝達し（Ｓ３１１）、ライトアクセスイベントの処理を終了する。
なお、Ｓ３１３において、通知された信号識別情報の定義を複数発見した場合には、Ｓ３０３と同様に、発見した信号識別情報、すなわち、イベント通知対象の信号を含む信号線の定義を記憶する。そして、前記信号線の全てについて、Ｓ３１４〜Ｓ３２０の処理を実施する。これは、通知イベントがライトアクセス時は、１つのアドレス領域（または変数ＩＤ）であっても有効な信号線がひとつとは限らないためである。よって、イベント通知が有効な信号線全てに対して関連するアプリケーションへの値を伝達し、処理を終了するフローとなっている。
以上で、連携処理部３３０がイベント通知受信後に実施する処理の説明を終了する。
【００２７】
これより、本実施例の制御装置ソフトウェア検証装置により、従属信号線の結線処理を実行したときの動作を説明する。
図４は、配線定義情報の一例を示す図である。なお、図４において、Ｓｉｍ３１０、３５０、３５２は、それぞれ、ＣＰＵシミュレータ３１０、外的要因シミュレータ３５０、３５２を示している。なお、図中の“−”は何も指定がないことを示している。図４に示す様に、配線定義情報は、各信号線について、名前と、信号接続設定、すなわち各アプリケーションが扱う信号をどのように接続するかの設定を含んでいる。なお、信号は信号識別情報を用いて定義され、ＣＰＵシミュレータ３１０が扱う信号は、仮想アドレスと信号のサイズ、外的要因シミュレータ３５０または３５２が扱う信号は、変数ＩＤにより定義される。例えば、信号線名ｓｉｇ１は、ＣＰＵシミュレータ３１０の信号と外的要因シミュレータ３５０の信号を接続する信号線で、信号線名ｍａｓｔｅｒ１の値 “０”で信号
を結線する定義である。また、前記ＣＰＵシミュレータ３１０の信号は信号識別子の情報がアドレス０ｘ１０００とサイズ１ｂｙｔｅであり、前記外的要因シミュレータ３５０の信号は信号識別子の情報が変数ＩＤ３１である。また、信号線名ｍａｓｔｅｒ１およびｍ
ａｓｔｅｒ２は、ＣＰＵシミュレータ３１０の信号そのものであり、接続する信号はない。信号線名ｍａｓｔｅｒ１およびｍａｓｔｅｒ２で定義される信号線は、結線条件の指定に使用するための信号線であり、ＣＰＵシミュレータ３１０の信号と他のアプリケーションの信号を接続する必要がないため、このような配線定義となる。
【００２８】
以下、図５のシーケンス図を用いて具体的に説明する。なお、定義情報は、図４に示す通りであるものとする。シミュレーションの開始により、連携処理部３３０の定義情報判定部３４０は、Ｓ５０１において配線定義情報を読み込み、Ｓ５０２において各アプリケーションにシミュレーション実行を指示し、ＣＰＵシミュレータ３１０に実行権を移す。
続いて、Ｓ５０３において、ＣＰＵシミュレータ３１０がアドレス０ｘ２０００にライトアクセスすると、ＣＰＵシミュレータ３１０は、Ｓ５０４において連携処理部３３０へアクセスイベント通知を行う。このとき、ＣＰＵシミュレータ３１０はライトアクセスした領域の値、データサイズ、アドレス情報を連携処理部３３０へ伝えた後、ウエイトする。例えば、ＣＰＵシミュレータ３１０が、アドレス０ｘ２０００へデータ０ｘ００をライトしたとすると、ＣＰＵシミュレータ３１０が連携処理部３３０へ伝える情報は、アクセス領域の値“０”、データサイズ“１バイト”、アドレス情報“０ｘ２０００”となる。連携処理部３３０の定義情報判定部３４０は、Ｓ５０５において、Ｓ５０４にてＣＰＵシミュレータ３１０から受け取ったアドレス情報“０ｘ２０００”が、Ｓ５０１にて読み込んだ自身の配線データベース３３６に含まれるか否かをサーチする。アドレス０ｘ２０００を信号識別子としてもつ信号線は、信号線名ｍａｓｔｅｒ１として配線データベース３３６には含まれているものの接続信号が無い。このため、連携処理部３３０はライトアクセスイベント処理が終了したとみなし、Ｓ５０６にて実行権をＣＰＵシミュレータ３１０へ返送する。
【００２９】
ＣＰＵシミュレータ３１０はＳ５０７において、アドレス０ｘ１０００にライトアクセスすると、ＣＰＵシミュレータ３１０は、Ｓ５０８において連携処理部３３０へアクセスイベント通知を行う。この処理はＳ５０３およびＳ５０４と同様であるため説明を省略する。定義情報判定部３４０はＳ５０９において、Ｓ５０８にてＣＰＵシミュレータ３１０から受け取ったアドレス情報が、Ｓ５０１にて読み込んだ自身の配線データベース３３６に含まれるか否かをサーチする。アドレス０ｘ１０００を信号識別子としてもつ信号線は、信号線名ｓｉｇ１、ｓｉｇ２として配線データベース３３６に含まれているので、以降ではｓｉｇ１、ｓｉｇ２各々の結線処理を行う。ｓｉｇ１には、結線条件が設定されており、定義情報判定部３４０は、結線条件が有効か否かを判断するため、結線条件情報３３７にてｓｉｇ１のマスタ信号線として設定されているｍａｓｔｅｒ１の値を、自身の持つ配線データベース３３６からサーチする。サーチの結果、ｍａｓｔｅｒ１の識別子はＣＰＵシミュレータ３１０の仮想アドレス情報０ｘ２０００であるため、定義情報判定部３４０はＣＰＵシミュレータ３１０にアドレス０ｘ２０００の値を問い合せる（Ｓ５１０）。定義情報判定部３４０は、Ｓ５１１でＣＰＵシミュレータ３１０から値情報を受け取ると、Ｓ５１２にてｓｉｇ１の結線条件が満たされるか否かを判定する。ここで、Ｓ５０３で、アドレス０ｘ２０００へは“０”がライトされたので、信号線ｓｉｇ１の結線条件が満たされている。したがって、定義情報判定部３４０はイベント通知対象の信号と接続関係にある信号を扱う外的要因シミュレータ３５０へ、変数ＩＤ３１の値情報を伝達する（Ｓ５１３）。Ｓ５１０〜Ｓ５１３までが信号線ｓｉｇ１に対する結線処理である。続いて、ｓｉｇ２の結線処理を実施する。ｓｉｇ１と同様に、ｓｉｇ２のマスタ信号線ｍａｓｔｅｒ２の値をＣＰＵシミュレータ３１０に問い合わせる。ｍａｓｔｅｒ２の識別子はアドレス０ｘ２００１であるので、ＣＰＵシミュレータ３１０にアドレス０ｘ２００１の値を問い合わせる（Ｓ５３０）。ＣＰＵシミュレータ３１０からアドレス０ｘ２００１の値情報が返送されると（Ｓ５３１）、ｓｉｇ２の結線条件が満たされるかを判定する（Ｓ５３２）。ここで、シミュレーション開始以降、ＣＰＵシミュレータ３１０によるアドレス０ｘ２００１への書き込みはないため、アドレス０ｘ２００１の値は信号線初期値“０”のま
まである。よって、Ｓ５３２にて、定義情報判定部３４０はｓｉｇ２の結線条件が満たされていないと判断し、他信号との結線は行わない。すなわち、外的要因シミュレータ３５２へは何も作用しない。
なお、信号線初期値は、連携処理部３３０が、シミュレーション開始直後に連携動作する各シミュレータに値情報を送信することで設定される。初期値は、装置制御ソフトウェア検証装置３６０が信号線初期値のデフォルト値を有し、その値を使用しても良いし、配線定義情報にて値を指定し、前記指定の値を使用しても良い。
連携処理部３３０は、Ｓ５０９にて発見した信号線全てに対する結線処理を終了すると、Ｓ５０７でのライトアクセスイベント処理を終えたとして、Ｓ５１４にてＣＰＵシミュレータ３１０へ処理を返す。
【００３０】
Ｓ５１５にてＣＰＵシミュレータ３１０がアドレス０ｘ２０００にメモリライトアクセスする。例えば、ＣＰＵシミュレータ３１０が、アドレス０ｘ２０００へ、データ０ｘ０１をライトしたとする。Ｓ５１５〜Ｓ５１７では、装置制御ソフトウェア検証装置３６０は、Ｓ５０３〜Ｓ５０６と同様の方法でライトアクセスイベント処理を行う。
Ｓ５１９にてＣＰＵシミュレータ３１０がアドレス０ｘ１００２にメモリリードアクセスすると、ＣＰＵシミュレータ３１０は、Ｓ５２０において連携処理部３３０へアクセスイベント通知を行う。このとき、ＣＰＵシミュレータ３１０はリードアクセスした領域のデータサイズ、アドレス情報を連携処理部３３０へ伝えると共に、プロセスの実行権を連携処理部３３０へ移す。
【００３１】
定義情報判定部３４０はＳ５２１において、Ｓ５２０にてＣＰＵシミュレータ３１０から受け取ったアドレス情報０ｘ１００２が、Ｓ５０１にて読み込んだ自身の配線データベース３３６に含まれるか否かをサーチする。アドレス０ｘ１００２は、信号線ｓｉｇ３、ｓｉｇ４として配線データベース３３６に含まれているため、以降ではｓｉｇ３、ｓｉｇ４各々の結線処理を行う。定義情報判定部３４０は、マスタ信号線である信号線ｍａｓｔｅｒ１を、Ｓ５２２にて再び自身の持つ配線データベース３３６からサーチする。信号線ｍａｓｔｅｒ１の識別子はＣＰＵシミュレータ３１０の仮想アドレス情報０ｘ２０００であるため、定義情報判定部３４０はＣＰＵシミュレータ３１０にアドレス０ｘ２０００の値を問い合せる。定義情報判定部３４０は、Ｓ５２３でＣＰＵシミュレータ３１０から値情報を受け取ると、Ｓ５２４にて信号線ｓｉｇ３の結線条件が満されるか否かを判定する。Ｓ５１５にて、ＣＰＵシミュレータ３１０がアドレス０ｘ２０００へ、データ０ｘ０１をライトしているので、Ｓ５２３では、ＣＰＵシミュレータからアドレス０ｘ２０００の値情報として、値“１”が返送される。よって、ｓｉｇ３の結線条件が満たされないと判断し、ｓｉｇ３の結線処理を終える。続いてｓｉｇ４の結線処理を行う。Ｓ５４２、Ｓ５４３、およびＳ５４４は、Ｓ５２２、Ｓ５２３およびＳ５２４と同様の方法で処理を実施する。Ｓ５４２にて、ＣＰＵシミュレータ３１０にアドレス０ｘ２００１の値を問い合わせ、Ｓ５４３にて、アドレス０ｘ２００１の値情報“０”を受け取る。Ｓ５４４にて、ｍａｓｔｅｒ２の値“０”であることから、ｓｉｇ４の結線条件が満たされると判断する。したがって、Ｓ５２５にて、結線条件が満たされる信号線ｓｉｇ４において、イベント通知対象の信号との接続信号をもつアプリケーションへ、前記接続信号の値情報、具体的には、前記接続信号の信号識別子である変数ＩＤの値を問い合わせる。よって、定義情報判定部３４０は信号線ｓｉｇ４のＣＰＵシミュレータ３１０の信号と接続が設定されている外的要因シミュレータ３５２へ、信号識別子が変数ＩＤ５２の信号の値情報を問い合わせる。定義情報判定部３４０は、Ｓ５２６にて信号識別子が変数ＩＤ５２の信号の値を外的要因シミュレータ３５２から受け取ると、受け取った信号の値と共に実行権をＣＰＵシミュレータ３１０へ渡す（Ｓ５２７）。
【００３２】
以上の処理により、シミュレーション連携システムにおいて模擬対象のある１つのアドレス領域に制御対象装置の複数の機能を関連付け、シミュレーションの配線、および信号
値の状況に応じて、アクセス対象の装置を変更することができるようになる。これにより、制御対象の複数装置のピン情報がマイコンの同一アドレス領域に割り当てられるケースの模擬が可能になり、シミュレーション対象範囲を広げることができる。
【００３３】
なお、本実施例では、配線定義において、接続関係にある信号が１対多である信号線毎に結線条件を設ける例を記載したが、接続する信号が１対１の信号線に結線条件を設けてもよい。配線定義において、信号接続関係が１対１の信号線に結線条件を設けるケースとは、例えば次のような場合がある。実マイコンでは、１つの仮想アドレス領域に複数の機能が割り当てられ、セレクタにより前記機能の切り替えがなされるものの、装置制御ソフトウェア検証装置３６０を使用したソフトウェア検証時には、前記複数の機能のうち一部を模擬対象とする場合である。
また、本実施例では、シミュレーション上、自身のアプリケーションの信号に対して複数の信号が接続されるアプリケーションをＣＰＵシミュレータ３１０として記載したが、外的要因シミュレータ３５０および３５２でも良い。
【実施例２】
【００３４】
実施例１では、ＣＰＵシミュレータが配線データベースに登録されている仮想領域へのアクセスのたびに、外的要因シミュレータへアクセス、もしくは、結線条件の信号情報を保持するアプリケーションへ値情報の問合せを連携処理部が実施していた。実施例１で記載の通り、連携処理部３３０と外的要因シミュレータ３５０および３５２を別プロセスで動作させているので、ここで、別プロセスに対して値情報の伝達や問い合わせを実施すると、その都度プロセス間通信が発生する。プロセス間通信は処理速度が遅いため、プロセス間通信の実施が多いほど、シミュレーション実行速度は低下してしまうという課題がある。
そこで、本実施例では、シミュレーション実行精度を保ちつつプロセス間通信を減らし、シミュレーション実行環境資源を有効利用する方法について述べる。
【００３５】
図１２は本実施形態によるソフトウェア検証装置３６０の機能ブロック図である。図１と同番号のものは図１と同様であるため説明を省略する。定義情報判定部３４０が作成する配線データベース３３６は、ＣＰＵシミュレータ３１０の仮想アドレスと、結線対象の外的要因シミュレータ３５０及び、または３５２の変数ＩＤと、各々の結線条件情報３３７に加えて、各々の信号の値情報１２０１を持つ。ここで、配線データベース３３６が信号の現在値を個別に記憶する値記憶手段に相当する。連携処理部３３０は、ある１つの信号と接続する信号が複数ある場合は、信号毎に別の信号線情報として取り扱う。すなわち、連携処理部３３０は、ＣＰＵシミュレータ３１０の同一のアドレスに対して定義された外的要因シミュレータ３５０及び３５２の信号情報をそれぞれ異なる信号として取り扱う。そのため、配線データベース３３６には、ＣＰＵシミュレータ３１０と外的要因シミュレータ３５０とで結線する信号線と、同じくＣＰＵシミュレータ３１０と外的要因シミュレータ３５２とで結線する信号線と、２つの異なる信号線として登録する必要がある。なお、連携処理部３３０は、シミュレーション開始時に配線定義情報を読み込み、配線データベース３３６として記憶する。このとき配線データベース３３６には、ＣＰＵシミュレータ３１０の仮想アドレスと、結線対象の外的要因シミュレータ３５０及び３５２の変数ＩＤと、当該アドレスまたは変数ＩＤが持つ値、各々の結線条件３３７を関連付けて格納する。また、結線条件情報３３７に定義される結線条件を持つ従属信号線に対しては、マスタ信号線情報として、次の情報を、配線データベース３３６に格納する。すなわち、マスタ信号線への書込側のアプリケーション情報、当該アプリケーションにおける信号識別情報、及び当該信号の値情報を関連付けて格納する。
【００３６】
本実施例における連携処理部３３０が実施する処理をより詳細に説明する。
図６は、本実施例において、模擬対象の１つの領域に、他シミュレータの信号が多数関
連付けされているアプリケーションからのアクセスイベント通知を連携処理部３３０が受信後の処理を示すフローチャートである。ここでは、ライアクセスが書込要求に相当し、リードアクセスが参照要求に相当し、両者がアクセス要求に相当する。
図６のフローチャート内のＳ３０２〜Ｓ３０５、Ｓ３０８、Ｓ３１０、Ｓ３１１、Ｓ３１３〜Ｓ３１５、及びＳ３１８〜Ｓ３２０は図３と同一である。Ｓ３０２からＳ３０５の処理は実施例１のＳ３０２からＳ３０６の処理と同様のため説明を省略する。Ｓ６０７において、連携処理部３３０は、マスタ信号線の値情報を取得する。本実施例では、配線データベース３３６内に、結線条件情報３３７の結線条件に参照対象の信号線情報として、当該信号線の値情報を格納しているため、連携処理部３３０は自身の管理する配線データベース３３６を参照することで当該信号の値情報を取得する。連携処理部３３０は、結線条件情報３３７に記載の信号の値情報１２０１を取得すると、実施例１と同様に、Ｓ３０５で取得した結線条件と比較し、当該信号情報の結線が有効か無効かを判断する（Ｓ３０８）。Ｓ３０８で、当該信号情報の結線が有効と判断すると、連携処理部３３０は、イベント通知領域の値情報を取得する（Ｓ６０９）。ここで、本実施例では、装置制御ソフトウェア検証装置３６０を構成するアプリケーションの信号のうち、配線定義された信号の値情報を配線データベース３３６内に全て格納している。このため、連携処理部３３０は自身の管理する配線データベース３３６を参照することで当該信号の値情報を取得する。ここでは、リードアクセス通知をしたアプリケーションが第１のアプリケーションであり、参照対象の領域の情報が第１の信号に相当する。そして、この第１の信号との接続関係が配線データベース３３６に格納されている信号が第２の信号に相当する。ここでは、第１の信号および第２の信号の接続条件が満たされており、アクセス要求がリードアクセス（参照要求）であるから、配線データベース３３６が保持する第２の信号を参照しかつ第１の信号の現在値を第２の信号の現在値に更新している。
Ｓ３１０、Ｓ３１１の処理は実施例１のＳ３１０、Ｓ３１１の処理と同様の処理方法のため説明を省略する。Ｓ３０２でライトアクセス通知を受信したときの処理についても説明を省略する。
Ｓ３１３〜Ｓ３１５、Ｓ６１７、Ｓ３１８の処理については、リードアクセス通知受信時の処理Ｓ３０３〜Ｓ３０５、Ｓ６０７、Ｓ３０８の処理と同様のため説明を省略する。
Ｓ３１５で結線条件情報３３７に定義される結線条件が存在しないと判断した場合、またはＳ３１８で通知対象のイベント通知が有効と判断された場合は、以下の処理を行う。すなわち、連携処理部３３０は、配線データベース３３６に格納されている、当該信号線の値情報をライトアクセス通知で受信した値に更新する（Ｓ６１９）。Ｓ３１９、Ｓ３２０の処理については、実施例１のＳ３１９、Ｓ３２０の処理と同様のため説明を省略する。
【００３７】
図７は、本実施例における装置制御ソフトウェア検証装置３６０のソフトウェア検証処理のフローチャートである。なお、配線定義情報は図４に示す通りであるものとする。また、図７中のＳ５００番代の処理は、図５と同様の処理を示す。
シミュレーションの開始により、連携処理部３３０の定義情報判定部３４０は、Ｓ５０１において配線定義情報を読み込み、Ｓ５０２において各アプリケーションにシミュレーション実行を指示し、ＣＰＵシミュレータ３１０に実行権を移す。続いて、Ｓ５０３において、ＣＰＵシミュレータ３１０がアドレス０ｘ２０００にライトアクセスすると、ＣＰＵシミュレータ３１０は、Ｓ５０４において連携処理部３３０へアクセスイベント通知を行う。このとき、ＣＰＵシミュレータはライトアクセスした領域の値（ここでは値“０”とする）、データサイズ、アドレス情報を連携処理部３３０へ伝える。これと共に、ＣＰＵシミュレータは、プロセスの実行権を連携処理部３３０へ移す。連携処理部３３０の定義情報判定部３４０は、Ｓ５０５において、Ｓ５０４にてＣＰＵシミュレータ３１０から受け取ったアドレス情報が、Ｓ５０１にて読み込んだ自身の配線データベース３３６に含まれるか否かをサーチする。アドレス０ｘ２０００の信号は、信号線名ｍａｓｔｅｒ１として配線データベース３３６には含まれているものの接続信号が無い。このため、Ｓ７０
５にて配線データベース３３６内のｍａｓｔｅｒ１の値情報１２０１を“０”に更新後、連携処理部３３０はライトアクセスイベント処理が終了したとみなし、Ｓ５０６にて実行権をＣＰＵシミュレータ３１０へ返送する。
ＣＰＵシミュレータ３１０はＳ５０７においてアドレス０ｘ１０００にライトアクセスすると、ＣＰＵシミュレータ３１０は、Ｓ５０８において連携処理部３３０へアクセスイベント通知を行う。この処理はＳ５０３およびＳ５０４と同様の方法で実施するであるため説明を省略する。
【００３８】
定義情報判定部３４０はＳ５０９において、Ｓ５０８にてＣＰＵシミュレータ３１０から受け取ったアドレス情報が、Ｓ５０１にて読み込んだ自身の配線データベース３３６に含まれるか否かをサーチする。信号識別子にアドレス０ｘ１０００をもつ信号は、信号線名ｓｉｇ１、ｓｉｇ２として配線データベース３３６に含まれているので、以降では、ｓｉｇ１、ｓｉｇ２各々の結線処理を行う。ｓｉｇ１には、結線条件が設定されており、定義情報判定部３４０は、結線条件が有効か否かを判断するため、結線条件情報３３７にてｓｉｇ１のマスタ信号線として設定されているｍａｓｔｅｒ１の値を参照する（Ｓ７１０）。Ｓ７１０では、ｍａｓｔｅｒ１の値はＳ７０５にて記憶しているため、定義情報判定部３４０は、配線データベース３３６内の値情報１２０１に記憶しているｍａｓｔｅｒ１の値を用いる。続いて、ｓｉｇ１の結線条件が満たされるか否かを判定する（Ｓ５１２）。ここでは、Ｓ７０５で、ｍａｓｔｅｒ１の値情報を“０”に更新したので、Ｓ５１２の処理にて、結線条件が満たされると判定し、Ｓ５０８にて通知されたライトアクセス領域の値をｓｉｇ１の値情報とし、値情報１２０１に記憶する（Ｓ７１３）。すなわち、ｓｉｇ１の値情報をＣＰＵシミュレータ３１０によるアドレス０ｘ１０００への書込値とする。続けて、ｓｉｇ１の値情報を外的要因シミュレータ３５０の変数ＩＤ３１へ送信する（Ｓ５１３）。Ｓ７１０からＳ５１３までが信号線ｓｉｇ１に対する結線処理である。ここでは、ライトアクセス通知をしたＣＰＵシミュレータが第１のアプリケーションであり、更新対象の領域の情報が第１の信号に相当する。そして、信号線ｓｉｇ１によって第１の信号との接続関係にある信号が第２の信号に相当する。ここでは、第１の信号および第２の信号の接続条件が満たされており、アクセス要求がライトアクセス（書込照要求）である。したがって、ｓｉｇ１の値情報がＣＰＵシミュレータ３１０によるアドレス０ｘ１０００への書込値となり、ｓｉｇ１の値情報が外的要因シミュレータ３５０の変数ＩＤ３に送信され、第１及び第２の信号の現在値が更新されている。
【００３９】
続いて、ｓｉｇ２の結線処理を実施する。ｓｉｇ１の結線処理時と同様に、ｓｉｇ２のマスタ信号線ｍａｓｔｅｒ２の値を、自身の持つ配線データベース３３６からサーチし、ｍａｓｔｅｒ２の値を参照する（Ｓ７３０）。Ｓ７３０では、Ｓ７１０と同様に、自身の持つ配線データベース３３６からｍａｓｔｅｒ２をサーチし、値を取得する。ここで、シミュレーション開始以降、ＣＰＵシミュレータ３１０によるアドレス０ｘ２００１への書き込みはないため、アドレス０ｘ２００１の値は信号線初期値“０”のままである。よって、Ｓ５３２にて結線判断を実施し、定義情報判定部３４０はｓｉｇ２の結線条件が満たされていないと判断し、他信号との結線は行わない。すなわち、外的要因シミュレータ３５２へは何も作用しない。なお、信号線初期値は、連携処理部３３０が、シミュレーション開始直後に連携動作する各シミュレータに値情報を送信することで設定され、設定と同時時に設定値を配線データベース３３６に記憶する。なお、結線処理にて結線条件が満たされない信号線の結線処理では、ｓｉｇ２のように、アクセス値の記憶および他のアプリケーションに対する値情報の伝達の処理を行わない。ここでは、ＣＰＵシミュレータが第１のアプリケーションとしてライトアクセス（書込要求）をしているが、信号接続条件が満たされていないので、他の信号との結線処理は行われない。そして、配線データベース３３６に記憶されたアドレス０ｘ１０００をもつ第１の信号が更新される。
【００４０】
連携処理部３３０は、Ｓ５０９にて発見した信号線全てに対する結線処理を終了すると
、Ｓ５０７でのライトアクセスイベント処理を終えたとして、Ｓ５１４にてＣＰＵシミュレータ３１０へ処理を返す（Ｓ５１４）。
Ｓ５１５にてＣＰＵシミュレータ３１０がアドレス０ｘ２０００にメモリライトアクセスする（Ｓ５１５）と、装置制御ソフトウェア検証装置３６０は、Ｓ５０４、Ｓ５０５、Ｓ７０５、およびＳ５０６と同様の方法でライトアクセスイベント処理を行う。
Ｓ５１９にてＣＰＵシミュレータ３１０がアドレス０ｘ１００２にメモリリードアクセスすると、ＣＰＵシミュレータ３１０は、Ｓ５２０において連携処理部３３０へアクセスイベント通知を行う。このとき、ＣＰＵシミュレータはリードアクセスした領域のデータサイズ、アドレス情報を連携処理部３３０へ伝えると共に、プロセスの実行権を連携処理部３３０へ移す。
【００４１】
定義情報判定部３４０はＳ５２１において、Ｓ５２０にてＣＰＵシミュレータ３１０から受け取ったアドレス情報が、Ｓ５０１にて読み込んだ自身の配線データベース３３６に含まれるか否かをサーチする。アドレス０ｘ１００２を信号識別子としてもつ信号線は、信号線名ｓｉｇ３、ｓｉｇ４として配線データベース３３６に含まれているため、以降ではｓｉｇ３、ｓｉｇ４各々の結線処理を行う。定義情報判定部３４０は、マスタ信号線である信号線ｍａｓｔｅｒ１を、Ｓ７２２にて自身の持つ配線データベース３３６からサーチする。信号線ｍａｓｔｅｒ１の値はＳ７１８にて記憶しているため、定義情報判定部３４０は、Ｓ７２４にて、配線データベース３３６内の値情報１２０１に記憶しているｍａｓｔｅｒ１の値を参照し（Ｓ７２２）、ｓｉｇ３の結線条件の判定をする（Ｓ５２４）。Ｓ７２２で参照するｍａｓｔｅｒ１の値は“１”であるので、Ｓ５２４では、ｓｉｇ３の結線条件が満たされないと判断する。よって、定義情報判定部３４０はリードアクセス領域の値情報として何も処理しない。ここでは、第１のアプリケーションであるＣＰＵシミュレータからリードアクセス（参照要求）がなされ、結線条件（信号接続条件）が満たされていない。したがって、配線データベース３３６に保持されている第１の信号であるアドレス０ｘ１００２の値の処理は行われず、現在値が参照される。続いて、信号線ｓｉｇ４の結線処理を実施する。ｓｉｇ４のマスタ信号線ｍａｓｔｅｒ２の値を配線データベース３３６内の値情報１２０１にから参照する。既述したように、ｍａｓｔｅｒ２の値は“０”であるため、ｓｉｇ４の結線条件は満たされる。よって、定義情報判定部３４０は配線データベース３３６に記憶されているｓｉｇ４の値を参照する（Ｓ７２６）。そして、リードアクセス領域の値情報としてＣＰＵシミュレータ３１０へｓｉｇ４の値情報を返送すると共に、処理をＣＰＵシミュレータ３１０へ移す（Ｓ５２７）。ここでは、第１のアプリケーションであるＣＰＵシミュレータからリードアクセス（参照要求）がなされ、結線条件（信号接続条件）が満たされている。したがって、配線データベース３３６に保持されている第２の信号であるｓｉｇ４の値を参照し、ＣＰＵシミュレータ３１０へこの値情報が返送されるので、第１の信号であるアドレス０ｘ１００２の値が第２の信号の現在値に更新される。
【００４２】
図７では例示していないものの、外的要因シミュレータ３５０及び３５２が信号の値をライトする場合も、ＣＰＵシミュレータ３１０がメモリライトアクセスにより信号の値をライトする場合と同様に、ライトされた信号の値を連携処理部３３０が記憶する。ただし、連携処理部３３０が信号の値を記憶するまでの処理は、ライトアクセス通知（以下、ライト通知）の出力元アプリケーションにより異なる。ライト通知の出力元アプリケーションがＣＰＵシミュレータ３１０の時には、値を記憶（Ｓ７１３）の前に、結線条件が満たされるか判断する（Ｓ５１２）。しかし、出力元アプリケーションが外的要因シミュレータ３５０または３５２の時には、結線条件が満たされるか否かによらず値を記憶する。これは、ＣＰＵシミュレータ３１０は、アクセス対象の外部デバイス指定のセレクタへの設定値に応じて、同一アドレスでアクセスされる外部デバイスを切り替えるマイコンの機能を模擬するためである。シミュレーションにおいて、セレクタへの設定値とはマスタ信号線の値に相当し、連携処理部３３０は、結線条件が満たされなければＣＰＵシミュレータ
３１０からのライト通知を無効とする。一方、外的要因シミュレータ３５０および３５２は、外部デバイスを模擬するため、セレクタの値によらず、すなわち結線条件が満たされるかによらず、ライト通知を有効とする。なお、連携処理部３３０は、イベント通知をＩ／Ｆ３３１、３３８、または３３９のいずれを介して受信したかによって、いずれのアプリケーションからのアクセスイベントであるかを判別する。
【００４３】
以下、外的要因シミュレータ３５０および３５２のライト通知受信以降の連携処理部３３０の処理を説明する。外的要因シミュレータ３５０がｓｉｇ３のライト通知を連携処理部３３０へ出すと、連携処理部３３０は、前記ライト通知を受信し、結線条件が満たされるかを判定することなく、出力された信号の値情報を配線データベース３３６内の値情報１２０１に格納する。なお、外的要因シミュレータ３５０及び３５２は、信号線出力時に、出力対象の信号の変数ＩＤと値情報を連携処理部３３０へ通知する。連携処理部３３０は、配線データベース３３６から通知された変数ＩＤの信号線をサーチし、当該信号線の値情報１２０１を更新する。外的要因シミュレータ３５２がｓｉｇ４に対するライト通知を出す場合も、連携処理部３３０は、上記と同様の方法で信号の値を記憶する。
【００４４】
このように、連携動作する各アプリケーションからの信号値出力時に、連携処理部３３０が出力値を配線データベース３３６の値情報１２０１に格納することで、信号線値を各アプリケーションへ問い合わせるためのプロセス間通信が不要となる。具体的には、図５と図７は、ＣＰＵシミュレータ３１０が同じようにメモリアクセスをする際のソフトウェア検証装置のフローチャートであるが、図７では、図５中のＳ５２５およびＳ５２６のプロセス間通信が不要となっていることがわかる。
以上の処理により、シミュレーション連携システムにおいて同一アドレス領域に制御対象装置の複数の機能を関連付け、状況に応じてアクセス対象の装置を変更する構成に於いて、プロセス間通信の頻度を減らすことが出来るようになる。その結果として、シミュレーション実行環境資源の有効利用が可能になり、シミュレーションの利用効率を上げることができる。
なお、本実施例ではＣＰＵシミュレータだけを共用のアドレス領域を持つアプリケーションとして記載したが、外的要因シミュレータ側に持たせても良い。
【実施例３】
【００４５】
実施例２では、定義情報判定部３４０内部に各々の信号が取る値情報を持つ構成を採用し、プロセス間通信の頻度を減らす実施例について述べた。しかしながら、実施例２の方法では、リードアクセスイベント、及びライトアクセスイベント発生毎に、配線データベース３３６から以下のサーチを行う必要があった。
（１）アクセスイベントで報知された信号識別情報を持つ信号線情報
（２）上記（１）で検知した信号線のマスタ信号線情報
ここで、本実施例が解決するための課題は「マイコンのあるアドレス領域に、制御対象の複数の装置のピン情報を割り当て、セレクタでアクセス先を指定する」という機能の模擬であるため、同一のアドレス領域は同一のセレクタを参照することになる。本実施例では、同一のＣＰＵアドレス領域が参照するマスタ信号線を最大でひとつのみの場合、上記（２）のサーチ回数を削減し、より効率的に結線状況を切り替えられる構成について述べる。
本実施例において、定義情報判定部３４０は、ＣＰＵの仮想アドレスと、結線条件となるマスタ信号線の値を合わせてユニークなアドレスを作成し、前記ユニークなアドレスを配線データベース３３６の内部アドレスとすることを特徴とする。その結果、ＣＰＵがアクセスした仮想アドレス情報及び当該仮想アドレスに関連付けられたマスタ信号線の値情報を取得出来、配線データベース３３６をサーチすることなく結線対象の信号情報を取得することが可能となる。ここでは、第１のアプリケーションの全信号すなわち、全てのＣＰＵの仮想アドレスの上位側又は下位側に、信号接続条件（結線条件）であるマスタ信号
線の値を付加して、仮想アドレスに対する信号設定ごとにユニークな番号情報としてのアドレスを与えている。
本実施例における機能構成図は、図１２と同一であるため説明を省略する。
【００４６】
図８は、本実施例の配線定義情報の一例を示す図である。
以下では、図８を用いて、配線データベース３３６に設ける内部アドレスについて説明する。
連携処理部３３０は、シミュレーション開始時に定義情報を読み込み、配線データベース３３６として記憶する。このとき定義情報判定部３４０は、ＣＰＵの仮想アドレスに、結線条件となるマスタ信号線の値を合わせこんでユニークなアドレスを作成し、前記ユニークなアドレスを配線データベース３３６の内部アドレスとする。なお、算出値をそのまま内部アドレスとするのではなく、全体にオフセットを持たせても良い。
ここで、配線データベース３３６内に定義されている全てのＣＰＵ仮想アドレスが１６ビット、かつマスタ信号線の値が０から１５の整数であるとし、内部アドレスの生成方法について説明する。連携処理部３３０が配線定義情報の読み込み時、定義情報判定部３４０は内部アドレスとして、上位１６ビットをＣＰＵ仮想アドレス、下位４ビットをマスタ信号線の値とした新しいアドレスを作成する。より具体的には、図８のｓｉｇ１は、ＣＰＵ仮想アドレスが０ｘ１０００、ｍａｓｔｅｒ１の値が“０”の時に結線する信号である。よって、上位１６ビットが０ｘ１０００、下位４ビットが０であるアドレス０ｘ１００００を作成し、このアドレス０ｘ１００００を連携処理部３３０におけるｓｉｇ１のアドレスとする。同様に、ｓｉｇ２は、ＣＰＵ仮想アドレスが０ｘ１０００、ｍａｓｔｅｒ１の値が“１”のときに結線する信号であるため、連携処理部３３０におけるｓｉｇ２のアドレスは０ｘ１０００１となる。同様に、連携処理部３３０におけるｓｉｇ３、ｓｉｇ４のアドレスはそれぞれ０ｘ１００２０、０ｘ１００２１となる。なお、ｍａｓｔｅｒ１のように結線情報を持たない信号については、マスタ信号線の値が０のときと同様のアドレス位置に配置する。すなわち、ｍａｓｔｅｒ１のＣＰＵ仮想アドレスは０ｘ２０００のため、ｍａｓｔｅｒ１の連携処理部３３０の内部アドレスは０ｘ２００００となる。
配線データベース３３６内のＣＰＵシミュレータ３１０の仮想アドレス領域の範囲が０ｘ０５００から０ｘ２０００、かつマスタ信号線の値が０から１５の整数であるとする。この場合、配線データベース３３６内に定義される信号線は、連携処理部３３０の内部アドレス０ｘ０５０００から０ｘ２０００Ｆに配置される。
【００４７】
図９は本実施例の連携処理部３３０がＣＰＵシミュレータ３１０からのアクセスイベント通知受信後の処理を示すフローチャートである。なお、連携処理部３３０は、イベント通知をＩ／Ｆ３３１、３３８、または３３９のいずれを介して受信したかによって、いずれのアプリケーションからのアクセスイベントであるかを判別する。
図９のフローチャート内のＳ３１０、Ｓ３２０は図３と同一である。連携処理部３３０は、ＣＰＵシミュレータ３１０からイベント通知を受けると、結線条件情報３３７に記載の信号、すなわちマスタ信号線の値情報１２０１を取得する。ここで、ＣＰＵシミュレータ３１０からのアクセスイベント通知が、ＣＰＵ仮想アドレス０ｘ１０００へのライトアクセスイベントを受信したとする。この場合、定義情報判定部３４０は配線データベース３３６の内部アドレス０ｘ１００００から０ｘ１０００Ｆをサーチする（Ｓ９０３）。定義情報判定部３４０が配線データベース３３６内で信号線定義がなされた領域を検知すると（Ｓ９０４）、定義情報判定部３４０は結線条件情報３３７より当該信号の結線条件の有無を確認する（Ｓ９０５）。配線データベース３３６の内部アドレス０ｘ１００００にはｓｉｇ１の信号線定義情報が存在するため、定義情報判定部３４０はｓｉｇ１の定義を見つけた段階で、ｓｉｇ１の結線条件を参照する。ｓｉｇ１の結線条件情報３３７にはマスタ信号線ｍａｓｔｅｒ１が定義されているため、定義情報判定部３４０は配線データベース３３６をサーチして、値情報１２０１よりｍａｓｔｅｒ１の値情報を取得する（Ｓ９０７）。ここで、結線条件として、結線条件情報３３７にマスタ信号線の情報を記憶する
際には、信号線名称で記憶してもよいし、配線データベース３３６の内部アドレスで記憶してもよい。具体的には、Ｓ９０７でのｍａｓｔｅｒ１の値情報の取得時、マスタ信号線を信号線名称で記憶する場合には、“ｍａｓｔｅｒ１”という名称の信号線を配線データベース３３６上部から順次サーチする。そして、この時、ｍａｓｔｅｒ１の内部アドレス値０ｘ２００００で記憶する場合には、ｍａｓｔｅｒ１の値情報にダイレクトにアクセスする。ここで、アクセス対象のアドレス（信号識別情報）と、アクセス要求時点でのマスタ信号線（第２の信号線）とから内部アドレスが構成される。ＣＰＵシミュレータからのＣＰＵ仮想アドレス（信号）に対するアクセス要求時には、このような内部アドレスが、信号接続条件を満たす信号線として扱われる。
定義情報判定部３４０は、ｍａｓｔｅｒ１の保有する値が“０”ならば内部アドレス０ｘ１００００、“１”ならば内部アドレス０ｘ１０００１にアクセスして、イベント通知領域の信号情報を取得する（Ｓ９０８）。続いて、アクセスイベント通知の種別を判別し（Ｓ９０９）、イベント種別がリードアクセスの場合にはＳ３１０へ、ライトアクセスの場合にはＳ３２０の処理を行う。その後Ｓ３１１にてイベント通知元のアプリケーションへ処理終了を伝える（Ｓ３１１）。Ｓ３１０、Ｓ３２０、及びＳ３１１の処理は実施例１と同様のため説明を省略する。以上で、本実施例における連携処理部３３０の処理の説明を終える。
【００４８】
上記のように、同一のＣＰＵアドレス領域が参照するマスタ信号線が最大１つのみの場合、定義情報判定部３４０は、ＣＰＵの仮想アドレスとマスタ信号線の値とを合わせて、ユニークなアドレスを生成することができる。また、前記ユニークなアドレスを用いて信号情報サーチを行うことで、配線データベース３３６のサーチ回数を減らし、より効率的な結線状況の切り替えが可能となる。結果として、シミュレーション精度を下げることなく、シミュレーション実行の処理負荷を削減し、シミュレーション実行環境資源の有効利用が可能となる。
【実施例４】
【００４９】
実施例１〜３では、各アプリケーションが配線データベース３３６上の信号に対してアクセスしたとき、当該信号の結線条件情報３３７をその都度確認して結線判断を行っていた。この方法では、配線データベース３３６上の信号へのアクセスのたびに、結線条件情報３３７への参照処理が入るため、結線条件情報３３７の値が変わる頻度が低い状況に於いては無駄な処理をしていると言える。
本実施例では、結線条件を満たしている、もしくは常時結線する信号線のみを結線リストとして持ち、連携駆動対象の各アプリケーションによるアクセスイベント発生時に結線条件情報３３７の参照処理を行うことなくイベント処理を行う方法について述べる。
本実施例における機能構成図は図１２と同一であるため説明を省略する。
【００５０】
図１０の（ａ）は本実施例の配線定義情報の一例である。図１０の（ａ）で示す配線定義では、ｓｉｇ＿１〜ｓｉｇ＿５は、それぞれマスタ信号線ｍａｓｔｅｒ１の従属信号線であり、結線は以下のように定義されている。
・ｍａｓｔｅｒ１の値が“０”のときにｓｉｇ＿１、ｓｉｇ＿３はＣＰＵシミュレータ３１０の信号と外的要因シミュレータ３５０または３５２の信号と結線
・ｍａｓｔｅｒ１の値が“１”のときにｓｉｇ＿２、ｓｉｇ＿４はＣＰＵシミュレータ３１０の信号と外的要因シミュレータ３５０または３５２の信号を結線
・ｍａｓｔｅｒ１の値が“２”のときにｓｉｇ＿５はＣＰＵシミュレータ３１０の信号と外的要因シミュレータ３５０の信号を結線
また、ｓｉｇ＿ａ〜ｓｉｇ＿ｅについてもマスタ信号線ｍａｓｔｅｒ２の値を用いて、ｓｉｇ＿１〜ｓｉｇ＿５と同様に結線する。ｓｉｇ＿６、ｓｉｇ＿ｆはマスタ信号線が定義されていない、すなわち結線条件が存在しないため、ｍａｓｔｅｒ１、ｍａｓｔｅｒ２の値に依らず結線する。
【００５１】
図１１の（ａ）及び（ｂ）及び（ｃ）は、本実施例の管理部３３５における結線処理を説明するフローチャートである。図１１（ａ）は、シミュレーション開始時の結線リストの生成処理のフローチャートであり、図１１（ｂ）はシミュレーション中の結線リストの管理処理のフローチャートである。また、図１１（ｃ）はリードイベント及びライトイベント受信時のイベント処理を示すフローチャートである。以後、図１１を用いて本実施例の結線処理を説明する。
【００５２】
まず、図１１の（ａ）を用いて結線リストの生成処理について説明する。シミュレーション開始時に、連携処理部３３０の管理部３３５は、ユーザが予め作成する定義情報を読み込み、配線データベース３３６、及びマスタ信号線リスト、及び結線リストを生成する（Ｓ１１０１）。配線データベース３３６については実施例１で記載したため説明を省略する。
マスタ信号線リストとは、マスタ信号線に関連する信号のリストのことであり、マスタ信号線毎に、当該マスタ信号線を結線条件に指定している信号線情報と、結線条件情報３３７にある結線条件の値とが関連付けられて保存されている。図１０の（ａ）の場合、マスタ信号線リストのｍａｓｔｅｒ１信号の情報として、ｍａｓｔｅｒ１信号の値“０”に配線データベース３３６内のｓｉｇ＿１、ｓｉｇ＿３の識別情報が関連付けられている。同じくｍａｓｔｅｒ１信号の値“１”にｓｉｇ＿２、ｓｉｇ＿４の、値“２”にｓｉｇ＿５の識別情報が関連付けられる。ｍａｓｔｅｒ２信号とｓｉｇ＿ａ〜ｓｉｇ＿ｅについても同様である。また、従属信号線の現在値情報を結線先アプリケーションに問い合せるために、現在値情報の問い合わせ先アプリケーション及び前記アプリケーション内の当該信号識別情報を関連付けて記憶しておいても良い。
結線リストとは、配線データベース３３６上の信号線のうち、複数アプリケーション間で信号を結線可能な信号線、すなわち他アプリケーションとの情報の送受信が可能な状態となっている信号線をリスト化したものである。具体的には、従属信号線ではない信号線、及び結線条件情報３３７にて定義されている結線条件が満たされた従属信号線が記載されている。ここでは、結線リストが、信号接続条件が満たされている信号線をリスト化した有効信号線リストに相当する。
【００５３】
管理部３３５は、結線リストを以下の方法で作成する。まず、配線データベース３３６をサーチし、従属信号線ではない信号線をリストに載せる（Ｓ１１０２）。従属信号線ではない信号線とは、結線条件の指定がない信号線（マスタ信号線を含む）である。次いで、マスタ信号線リストに記載の全てのマスタ信号線の現在値を取得する（Ｓ１１０３）。現在値の取得方法は、ユーザが予め作成する定義情報から初期値を取得しても良いし、当該信号の値情報を持つアプリケーションにアクセスして取得しても良い。現在値を取得後、現在値に従い結線条件が有効か否かを判定し、結線条件が有効となる従属信号線を結線リストに追加する（Ｓ１１０５）。ここで追加した結線条件が有効となる従属信号線に於いても、初期値が必要であれば、ユーザが予め作成する定義情報から初期値を取得しても良いし、当該信号の値情報を持つアプリケーションにアクセスして取得しても良い
【００５４】
図１０（ｂ）は信号線ｍａｓｔｅｒ１の値が“０”、信号線ｍａｓｔｅｒ２の値が“３”であるときの結線リストである。
図１０（ｂ）の結線リストの生成について具体的に説明する。まず、Ｓ１１０２にて、結線条件の指定がないｓｉｇ＿６、ｓｉｇ＿ｆ、ｍａｓｔｅｒ１、およびｍａｓｔｅｒ２を結線リストに載せる。次に、Ｓ１１０３にて、マスタ信号線リストに記載のマスタ信号線ｍａｓｔｅｒ１とｍａｓｔｅｒ２の現在値を取得する。ここでは、ｍａｓｔｅｒ１の値が“０”、ｍａｓｔｅｒ２の値が“３”であるため、結線リスト中のｍａｓｔｅｒ１とｍａｓｔｅｒ２の現在値に“０”と“３”が記録される。続いて、Ｓ１１０５にて、ｍａｓｔｅｒ１の値“０”のため、ｍａｓｔｅｒ１の値“０”を結線条件に持つ従属信号線ｓｉ
ｇ＿１、及びｓｉｇ＿３を結線リストに登録する。なお、ｍａｓｔｅｒ２の値は“３”であり、ｍａｓｔｅｒ２の値“３”を結線条件に持つ信号線は存在しないため、ｍａｓｔｅｒ２の従属信号線は結線リストに登録しない。また、Ｓ１１０５の際に、結線条件を満たす従属信号線の値情報を取得し、結線条件を満たす信号線を結線リストに登録すると、結線リストのｓｉｇ＿１及びｓｉｇ＿３の現在値に値が記録される。
【００５５】
次いで、シミュレーション中の結線リストの管理処理について図１１の（ｂ）を用いて説明する。
定義情報判定部３４０は、ライトイベント通知を受けると（Ｓ１１１１）、通知された信号識別情報とマスタ信号線リストに記載の信号識別情報とを個々に比較し、ライトイベントがマスタ信号線リスト記載の信号への書込であるか否か確認する（Ｓ１１１２）。マスタ信号線リストから通知された信号識別情報の定義を発見、すなわち、当該ライトイベントがマスタ信号線リストに記載の信号への書込イベントである（Ｓ１１１３）。その場合は、今回のライトイベントによりマスタ信号線の値が変化したか、つまり、同値書き込みではないかを判別する（Ｓ１１２０）。同値書き込みではない場合、現在の結線リストから当該マスタ信号線を持つ従属信号線を削除する（Ｓ１１１４）。続いて、配線データベース３３６の定義情報をサーチする（Ｓ１１１７）。そして、ライトイベントで報知されたマスタ信号線、及び値に対応する従属信号線、すなわち結線条件を満たす信号線を発見し（Ｓ１１１８）、結線条件を満たす従属信号線を結線リストへ登録する（Ｓ１１１５）。更に、当該従属信号線の値を持つアプリケーションに当該従属信号線の現在値を問い合わせ、当該従属信号線の値を取得し、結線リストに反映させる（Ｓ１１１６）。Ｓ１１１７、及びＳ１１１８、及びＳ１１１５、そしてＳ１１１６の処理を、配線データベース３３６の全てをサーチし終えるまで継続する（Ｓ１１１９）。このように、管理部３３５（信号接続手段）は、マスタ信号線（第２の信号線）の値の変化を検知すると、信号接続条件が満たされているかを否かを判断して、結線リストに反映させる。
【００５６】
図１０（ｂ）および（ｃ）を用いて、結線リストの管理処理について、より具体的に説明する。ここで、結線リストが図１０の（ｂ）の状態であって、ｍａｓｔｅｒ１の値が“０”から“１”に変更になったとする。Ｓ１１１１にて、ｍａｓｔｅｒ１の信号への “
１”のライトイベントを受信し、Ｓ１１１２にて、マスタ信号線リストをサーチし、ｍａｓｔｅｒ１の従属信号線であるｓｉｇ＿１及びｓｉｇ＿３を結線リストから削除する（Ｓ１１１３およびＳ１１１４）。次いで、配線データベース３３６をサーチし（Ｓ１１１７）、結線条件を満たす、すなわち、ｍａｓｔｅｒ１の値“１”に関連付けられる従属信号線ｓｉｇ＿２及びｓｉｇ＿４を結線リストに登録する（Ｓ１１１８およびＳ１１１５）。
ｓｉｇ＿２及びｓｉｇ＿４の現在値を取得し、結線リストに反映させる（Ｓ１１１６）。この結果、結線リストは図１０の（ｃ）のようになる。。ここでは、管理部（信号接続部）３３５が、有効信号線リストを作成する手段、接続条件が満たされない信号線に関する情報を有効信号線リストから削除する手段、信号接続条件がみたされる信号線に関する情報を有効信号線リストに登録手段である。
以上で、管理部３３５による結線リストの作成、及び更新処理についての説明を終える。
【００５７】
ここで、図１１の（ｃ）を用いて、本実施例におけるシミュレーション中の結線処理について説明する。
管理部３３５は、連携動作対象のアプリケーションからイベント通知を受信すると、ライトアクセスイベントかリードアクセスイベントかイベント種別を判断する（Ｓ１１２１）。
Ｓ１１２１にてライトアクセス受信と判別時には、結線リストの更新処理の要否を調べ、更新処理が必要な時には更新処理を行う（Ｓ１１２２）。この更新処理が先ほど説明した、図１１の（ｂ）のＳ１１１１〜Ｓ１１２０の処理に相当する。次いで、報知された信
号情報が、結線すべき信号であるか否かを結線リストと照らし合わせて調査する（Ｓ１１２３）。前記調査によって、一致する情報が結線リストに存在しない場合には、結線処理を終えたものとしてイベント報知元アプリケーションへイベント終了を伝える（Ｓ１１４０）。一方、一致する情報が結線リストに存在する場合には、結線リストから報知された信号線情報を取得する（Ｓ１１２４）。ここで取得する情報は、イベント通知対象の信号と結線関係にある信号をもつアプリケーション（以降、結線先アプリケーションと記す）が、連携動作中のアプリケーションのいずれかという情報と、結線先アプリケーション内の当該信号の識別情報である。その後、管理部３３５は、結線先アプリケーションに則したＩ／Ｆを用いて結線先アプリケーションへ、当該信号のライトアクセスイベントを報知する（Ｓ１１２５）。ライトアクセスイベント報知が終了すると、管理部３３５は、結線処理を終えたものとしてイベント報知元アプリケーションへイベント終了を伝える（Ｓ１１４０）。
【００５８】
Ｓ１１２１にて受けたイベントがリードアクセスイベントと判別した場合にも、Ｓ１１２３と同様に報知された信号情報が、結線すべき信号であるか否かを結線リストと照らし合わせて調査する（Ｓ１１３３）。前記調査の結果、一致する情報が結線リストに存在しない場合には、結線処理を終えたものとしてイベント報知元アプリケーションへイベント終了を伝える（Ｓ１１４０）。一致する情報が結線リストに存在する場合には、Ｓ１１２４と同じく、結線リストから報知された信号線情報を取得する（Ｓ１１３４）。ここで取得する情報は、管理部３３５の持つ当該信号線の値情報である。Ｓ１１３４にて値情報を取得すると、管理部３３５は、イベント報知元アプリケーションに則したＩ／Ｆを用いてイベント報知元アプリケーションへ、Ｓ１１３４にて取得した信号線の値を報知する（Ｓ１１３５）。リードアクセスイベント報知が終了すると、管理部３３５は、結線処理を終えたものとしてイベント報知元アプリケーションへイベント終了を伝える（Ｓ１１４０）。なお、リードアクセスイベントの場合には、Ｓ１１３５における値情報の報知処理を以て、Ｓ１１４０のアクセスイベント処理終了としてもよい。
【００５９】
以上の方法で、管理部３３５が連携動作対象の各アプリケーションによるアクセスイベント発生時に結線条件３３７の参照処理を行うことが出来る。このように管理部（信号接続部）が結線リストを調査することにより、信号接続条件を満たすか否かを判断する。
上述したように、本実施形態によれば、マスタ信号線の値の変更頻度が低く、かつ、マスタ信号線が少ない状況の検証を行う場合、管理部３３５が、マスタ信号線リスト、及び結線リストを生成している。このようにすることで、配線データベース３３６上の信号に対するアクセスイベント毎に結線条件への参照処理を行うことなくイベント処理を実施することができる。そのため、検証装置の処理効率を向上することができ、結果として、シミュレーション実行効率を向上させることができる。
【実施例５】
【００６０】
実施例１から実施例４は、結線の切り替えを、マスタ信号線の値に応じて行っていた。実施例５では、結線の切り替えを、ＣＰＵの当該アドレス領域へのアクセス種別に応じて行う。本実施例は、ＣＰＵの同じアドレス領域であっても、前記領域へのアクセス方法により、領域の意味合いが異なるケースで有効な方法である。
本実施例における機能構成図は図１と同一であるため説明を省略する。
実施例１と本実施例の大きな違いは、結線条件情報３３７を構成する情報にある。実施例１は、マイコンの同一アドレス領域に割り当てられた複数のピン情報を、セレクタでアクセス先を指定する機能を模擬するため、結線条件情報３３７は、セレクタに相当する信号線（マスタ信号線）の情報と、前記信号線の値情報から構成されていた。本実施例は、ＣＰＵのアドレス領域へのアクセス種別によって結線を切り替えるため、結線条件情報３３７は、結線する際のアクセス種別から成る。
【００６１】
図１３は、本実施例における配線定義情報の一例を示す図である。図１３にはｓｉｇ１からｓｉｇ４の計４本の信号線が定義されている。なお、前記各信号線の配線定義情報は、結線条件を除き図４の配線定義情報と同じである。図１３と図４とでは、結線条件の定義情報が異なる。前述の通り、実施例５における結線条件は、信号結線する際の信号に対するアクセス種別で定義する。ここで、アクセス種別は、値を入力及び／又は出力する信号を指定する入出力情報に相当する。また、本実施例での結線条件は、ＣＰＵシミュレータ３１０から信号へのアクセス要求時にのみ適用され、外的要因シミュレータ３５０及び３５２から信号へのアクセス要求時には適用されない。つまり、外的要因シミュレータ３５０及び３５２から信号へのアクセス要求時は、常に結線条件が満たされている。図１３の場合、アプリケーションＳｉｍ３１０、つまりＣＰＵシミュレータ３１０によるＣＰＵの仮想アドレス０ｘ１０００へのアクセス要求時、以下のようなる。
・アクセス種別がライトであれば、Ｓｉｍ３５０の変数ＩＤ３１の信号と結線（信号線ｓｉｇ１）となる。
・アクセス種別がリードであれば、Ｓｉｍ３５２の変数ＩＤ５１の信号と結線（信号線ｓｉｇ２）となる。
同様に、ｓｉｇ３、ｓｉｇ４の場合は、ＣＰＵシミュレータ３１０によるＣＰＵの仮想アドレス０ｘ１００２へのアクセス要求時、以下のようになる。
・アクセス種別がライトであれば、Ｓｉｍ３５０の変数ＩＤ３２の信号と結線（信号線ｓｉｇ３）となる。
・アクセス種別がリードであれば、Ｓｉｍ３５２の変数ＩＤ５２の信号と結線（信号線ｓｉｇ４）となる。
このように、アクセス要求がリードアクセスであれば、結線条件（入出力指定情報）に入力を示すアクセス種別（リード）が含まれた場合（第１のケース）に信号接続条件が満たされていると判断される。また、アクセス要求がライトアクセスであれば、結線条件（入出力指定情報）に出力を示すアクセス種別（ライト）が含まれた場合（第２のケース）に信号接続条件が満たされると判断される。これら以外の場合には、信号接続条件が満たされないと判断される。
なお、結線条件は、結線条件情報３３７に格納される。
【００６２】
本実施例におけるＣＰＵシミュレータ３１０からのイベント通知受信後の連携処理部３３０の処理では、図３に示すイベント通知の有効性判断Ｓ３０８及びＳ３１８の前に実施する処理がない。すなわち、Ｓ３０７及びＳ３１７で、結線条件に該当する信号の値情報取得をする処理がない。これは、Ｓ３０８及びＳ３１８で、イベント通知の有効性、つまり結線条件を満たすか否かを、マスタ信号線の値ではなく、アクセス種別により判断するためである。また、Ｓ３０２でイベント種別がリードもしくはライトどちらのアクセス通知であるかを判別しているため、Ｓ３０７及びＳ３１７に変わる処理を実施せずして、Ｓ３０８及びＳ３１８でイベント通知の有効性を判断することができる。
【００６３】
上述の処理により、信号線へのアクセス種別による結線切り替えが可能となる。この結果、ＣＰＵの当該アドレス領域へのアクセス方法により、領域の意味合いが異なる状況の模擬が可能となり、シミュレーション適用範囲を広げることができる。
また、より効率的に結線を切り替えるため、実施例５での配線定義情報に連携処理部３３０で扱う内部アドレスを追加してもよい。本実施例における内部アドレスは、前記アプリケーションにおける信号線識別情報、および結線条件のアクセス種別を合わせて作成され、ユニークなアドレスとなる。。この場合には、第１のアプリケーションの全信号すなわち、全てのＣＰＵの仮想アドレスの上位側又は下位側に、信号接続条件（結線条件）であるアクセス種別を付加して、仮想アドレスに対する信号設定ごとにユニークな番号情報としてのアドレスを与える。ここで、内部アドレスは、アクセス対象のアドレス（信号識別情報）と、アクセス要求時点でのアクセス種別とから構成される。第１のアプリケーションであるＣＰＵシミュレータからのＣＰＵ仮想アドレス（信号）に対するアクセス要求
時には、このような内部アドレスが、信号接続条件を満たす信号線として扱われる。
さらに、結線条件を実施例１から４のマスタ信号線の値で設定するものと、本実施例でのアクセス種別による結線条件の指定を組み合わせて使用してもよい。
【実施例６】
【００６４】
実施例５では、信号の結線条件にアクセス種別を指定することで、結線の切り替えを行っていた。本実施例では、配線定義情報に、結線時の他アプリケーションとの信号情報の方向の定義を設け、各アプリケーションからのアクセス種別に応じて、結線するか否かを判断する方法について説明する。
本実施例における機能構成図を図１４に示す。図１４は図１の配線データベース３３６に入出力情報１４０１、および入出力情報判定部１４０２が追加され、結線条件情報３３７と定義情報判定部３４０が削除された構成である。図１４中の入出力情報１４０１、および入出力情報判定部１４０２以外の構成物は、図１と同じであるため、説明を割愛する。
【００６５】
入出力情報１４０１は、信号線の値を書き込む出力側アプリケーション、及び、または他アプリケーションによる値の書込情報を報知される入力側アプリケーションを指定する情報である。
ここで、入出力情報１４０１について具体例を挙げて説明する。図１５は入出力情報１４０１を含む配線定義情報の例である。図１５中の通信方向とは、結線時の他アプリケーションとの信号情報の方向を示すものであり、Ｉｎは入力のみを、Ｏｕｔは出力のみを行うことを示し、Ｉｎ／Ｏｕｔは入力も出力も行うことを示している。たとえば、信号線ｓｉｇ１の通信方向はＣＰＵシミュレータ３１０がＯｕｔ、外的要因シミュレータ３５０がＩｎである。これは、ＣＰＵシミュレータ３１０が仮想アドレス“０ｘ１０００”の値を更新すると、その値を外的要因シミュレータ３５０に伝え、外的要因シミュレータ３５０が変数ＩＤ“３１”のｓｉｇ１を参照時は、前記値を参照する。また、ｓｉｇ２は、ＣＰＵシミュレータ３１０がＩｎ、外的要因シミュレータ３５２がＯｕｔであり、外的要因シミュレータ３５２が変数ＩＤ“５２”の値を更新すると、その値をＣＰＵシミュレータ３１０に伝える。そして、ＣＰＵシミュレータ３１０が仮想アドレス“０ｘ１０００”の領域を参照時には、外的要因シミュレータ３５２が更新したｓｉｇ２の値を参照する。ｓｉｇ５は、ＣＰＵシミュレータ３１０及び外的要因シミュレータ３５０は、どちらもＯｕｔ／Ｉｎである。これは、どちらのアプリケーションも信号線の値の更新と参照をする。
なお、通信方向は、２つのシミュレータ間のみならず、例えば、３つ以上のシミュレータ間でも定義することができる。さらに、Ｏｕｔ定義のみを行うことも可能である。この場合、Ｏｕｔ定義がなされたシミュレータが設定する当該信号の値は連携処理部３３０へ伝達されるが、連携処理部３３０から他のシミュレータには伝達されない。これは、当該信号の更新履歴をログとして出力するために使用する。さらに、通信方向を設定しないことで、他プロセスとの通信を行わない指定も可能である。入出力情報判定部１４０２は、各アプリケーションからのアクセスイベント受信時に、配線データベース３３６の入出力情報１４０１を用いて、結線するか否かを判断する。管理部（信号接続部）３３５は、配線データベース３３６に信号線毎の入出力情報（入出力指定情報）をもつ。そして管理部３３５は、複数のアプリケーションのいずれからから信号に対するアクセス要求を検知すると、入出力判定部４０２によって、入出力情報（入出力指定情報）により結線するか否か（信号接続条件が満たされるか否か）を判断する。
【００６６】
図１６を用いて、各アプリケーションからのアクセスイベント受信時の入出力情報判定部１４０２を含む連携処理部３３０の処理フローについて説明する。図１６は本実施例の連携処理部３３０が連携動作するシミュレータアプリケーションからのアクセスイベント通知受信後の処理を示すフローチャートである。なお、図１６のフローチャート内のＳ３００番台の処理は、図３と同一である。
連携処理部３３０は、いずれかのシミュレータアプリケーションからアクセスイベントを受信すると、イベント種別を判別し（Ｓ３０２）、通知された信号識別情報を持つ信号が配線データベース３３６をサーチする（Ｓ３０３、およびＳ３１３）。
Ｓ３０２の結果、イベント種別がリードアクセスイベントであった場合、Ｓ３０３のあと通知された信号識別情報を持つ信号が配線データベース３３６内に存在するかを確認する（Ｓ３０４）。配線データベース３３６内に存在する場合には、イベント通知の有効性を判断する（Ｓ１４０８）。Ｓ１４０８では、入出力情報判定部１４０２が入出力情報１４０１を参照し、当該信号の通信方向設定とイベント種別の整合性が取れているかを判断する。具体的には、リードアクセスイベント対象の信号の通信方向が“Ｉｎ”を含む設定である場合に、整合性が取れていると判断する。Ｓ１４０８にて、イベント通知は有効と判断すると、イベント通知領域の値情報を取得する（Ｓ３０９）。その後、イベント通知元のアプリケーションにイベント通知領域の値情報を伝達し（Ｓ３１０）、イベント通知元のアプリケーションに処理終了を伝達し（Ｓ３１１）、リードアクセスイベント時の処理を終える。
Ｓ３０２の結果、イベント種別がライトアクセスイベントであった場合、Ｓ３０３、Ｓ３１４を実施し、通知された信号識別情報を持つ信号が配線データベース３３６内に存在する場合には、イベント通知の有効性を判断する（Ｓ１４１８）。Ｓ１４１８では、入出力情報判定部１４０２が入出力情報１４０１を参照し、当該信号の通信方向設定とイベント種別の整合性が取れているかを判断する。ここでは、ライトアクセスイベント対象の信号の通信方向が“Ｏｕｔ”を含む設定である場合に、整合性が取れていると判断する。Ｓ１４１８にて、イベント通知は有効と判断すると、イベント通知対象の信号と関連する他のアプリケーションの存在有無を確認し（Ｓ３１９）、関連アプリケーションがある場合、対象のアプリケーションに値情報更新を伝達する（Ｓ３２０）。Ｓ３２０の後、Ｓ３１９に戻り、イベント通知対象の信号との関連アプリケーションがなくなるまでＳ３１９とＳ３２０の処理を繰り返す。Ｓ３１９にて関連アプリケーションがなくなると、イベント通知元のアプリケーションに処理終了を伝達し（Ｓ３１１）、ライトアクセスイベント時の処理を終える。
このように、入出力判定部（信号接続判断手段）は、信号線の値に対し、複数のアプリケーションのうちいずれかのアプリケーションから当該信号に対するアクセス要求を検知する。そして、アクセス要求がリードアクセスであれば、入出力情報に“Ｉｎ”（入力）を含む第１のケースに信号接続条件が満たされていると判断する。また、アクセス要求がライドアクセスであれば、入出力情報に“Ｏｕｔ”を含む第２のケースに信号接続情報が満たされていると判断する。それ以外の場合には、信号接続条件は満たされていないと判断する。
【００６７】
例えば、図１５の配線定義情報である時の処理について以下に説明する。このとき、連携処理部３３０は、ＣＰＵシミュレータ３１０から、アドレス“０ｘ１０００”のリードアクセスイベントを受信すると、配線データベース３３６から信号識別子に“０ｘ１０００”をもつ信号線をサーチする（Ｓ３０３）。図１５の配線定義情報では、信号線名ｓｉｇ１、ｓｉｇ２が前記信号線に該当する。Ｓ１４０８において、ｓｉｇ１のＣＰＵシミュレータ３１０の通信方向 “Ｏｕｔ”、ｓｉｇ２のＣＰＵシミュレータ３１０の通信方向 “Ｉｎ”の設定から、イベント通知はｓｉｇ１に対しては無効、ｓｉｇ２に対しては有効と判断する（Ｓ１４０８）。一方、ＣＰＵシミュレータ３１０から、アドレス“０ｘ１０００”のライトアクセスイベントを受信すると、Ｓ３１３にて当該信号線ｓｉｇ１、ｓｉｇ２と発見し、Ｓ１４１８にてイベント通知はｓｉｇ１に対しては有効、ｓｉｇ２に対しては無効と判断する。
【００６８】
上記のように、結線条件を設けなくても、信号の定義情報に、当該信号を操作するアプリケーションから信号線に対する値の通信方向指定をもつことによっても、シミュレータのイベントのアクセス種別による信号接続切り替えを行うことができる。この結果、ＣＰ
Ｕの当該アドレス領域へのアクセス方法により、領域の意味合いが異なる状況の模擬が可能となり、シミュレーション適用範囲を広げることができる。
なお、実施例１から実施例４に示すマスタ信号線を用いる結線条件指定と本実施例を組み合わせることも可能である。この場合、連携処理部３３０は、アクセス種別と通信方向指定と整合性が取れると判断した時のみ、結線条件に関連する処理を実施する。このように処理を行うことにより、シミュレータのイベントのアクセス種別と信号の通信方向指定の整合性が不一致の場合には、結線条件判断を含む結線処理を行わずに済むため、不要な結線処理を実施することがない。そのため、検証装置の処理効率を向上することができ、結果として、シミュレーション実行効率を向上させることができる。
【符号の説明】
【００６９】
２０１…情報処理装置、３１０…ＣＰＵのシミュレータ、３５０、３５２…外的要因シミュレータ、３３０…連携処理部、３３５…管理部、３３６…配線データベース、３３７…結線条件情報、３４０…定義情報判定部
【図１】
2019070904.tif 000003
【図２】
2019070904.tif 000004
【図３】
2019070904.tif 000005
【図４】
2019070904.tif 000006
【図５】
2019070904.tif 000007
【図６】
2019070904.tif 000008
【図７】
2019070904.tif 000009
【図８】
2019070904.tif 000010
【図９】
2019070904.tif 000011
【図１０（ａ）】
2019070904.tif 000012
【図１０（ｂ）】
2019070904.tif 000013
【図１０（ｃ）】
2019070904.tif 000014
【図１１】
2019070904.tif 000015
【図１２】
2019070904.tif 000016
【図１３】
2019070904.tif 000017
【図１４】
2019070904.tif 000018
【図１５】
2019070904.tif 000019
【図１６】
2019070904.tif 000020