(57)【特許請求の範囲】
【請求項１】
協調して動作する複数のシミュレータとこれら検証対象の複数のシミュレータを制御するシミュレーション統合コントローラとを備え、
前記シミュレーション統合コントローラと前記各シミュレータとが、非同期通信により前記複数のシミュレータの全体の動作を一時停止・再開させる機能を共有しており、
システム共通の通信プロトコルとして、前記全てのシミュレータにおけるイベントの操作・トリガを同一に扱うための試験記述フォーマットを保有しており、
前記各シミュレータは少なくとも１つの試験用プローブ部と対象モデルとを備えており、
前記複数のシミュレータは、組み込みシステムのメカニズムに対応する機械・センサ系シミュレータと、前記組み込みシステムのマイコン系シミュレータとが連携して動作する仮想検証環境として構成されており、
前記複数のシミュレータは、異なる種類のシミュレータを含んで構成されており、
前記通信プロトコルは、前記異なる種類のシミュレータが等価的にイベントを実行できる共通フォーマットで構成されており、
前記試験用プローブ部は、前記シミュレータのデータ同期通信部に介入し擬似的な受信遅延を発生させることで前記複数のシミュレータを連鎖的に停止させる、停止コード挿入部を備えており、
前記シミュレーション統合コントローラと前記各シミュレータの試験用プローブ部との間で、前記通信プロトコルにより非同期に通信を行い前記各シミュレータにおけるシミュレーションの起動・停止を行い、
前記いずれか１つのシミュレータに設定されている停止条件が成立したことによって前記複数のシミュレータの全体を一時停止させ、該一時停止の間に少なくとも１つの前記シミュレータの状態の取得又は状態の書き換えを行う
ことを特徴とする協調シミュレーション用計算機システム。
【請求項２】
請求項１において、
前記停止コード挿入部は、前記対象モデルが含むCPUモデルのトレースから、前記他の試験用プローブに対するコマンドにより連携している前記複数のシミュレータ全体を連鎖的に停止させる
ことを特徴とする協調シミュレーション用計算機システム。
【請求項３】
請求項１において、
前記停止コード挿入部は、前記対象モデルが含むバスモデルのトレースから前記他の試験用プローブに対するコマンドにより連携している前記複数のシミュレータ全体を連鎖的に停止させる
ことを特徴とする協調シミュレーション用計算機システム。
【請求項４】
請求項１において、
前記シミュレーション統合コントローラは、前記各シミュレータの前記試験用プローブ部と非同期に通信する試験進行制御部を備えており、
該試験進行制御部は、前記実行される試験項目の生成を行い、接続された前記複数のシミュレータの各々に対し、前記通信プロトコルにより前記試験項目の送信と該試験項目の実行結果の受信を行う
ことを特徴とする協調シミュレーション用計算機システム。
【請求項５】
請求項４において、
前記試験用プローブ部は、前記各シミュレータの内部に仮想モジュールとして配置され、前記対象モデルによる前記試験項目の実行と前記全てのシミュレータの停止を行う機能を有している
ことを特徴とする協調シミュレーション用計算機システム。
【請求項６】
請求項４において、
前記試験進行制御部は、
ユーザが予め決められた規則で記述した試験項目フォーマットを受け取って解釈する試験項目解釈部と、
該解釈された試験項目列を蓄積し順番に実行する試験項目待ち行列と、
前記複数のシミュレータに各々少なくとも１つ存在する前記試験用プローブと接続され、前記試験項目と試験結果、及びトリガ成立イベントをやり取りするための通信I/F部と、
前記各試験項目の実行結果を蓄積し、前記試験項目フォーマット中に記述された期待値との判定を行い、その結果を前記試験結果として出力する期待値判定部とを備えている
ことを特徴とする協調シミュレーション用計算機システム。
【請求項７】
請求項６において、
前記通信Ｉ／Ｆ部は、パケット通信制御機能を備えており、前記試験進行制御部と前記各シミュレータの前記試験用プローブとの間で、前記共通の通信プロトコルによるパケット通信を行う
ことを特徴とする協調シミュレーション用計算機システム。
【請求項８】
請求項１において、
複数の検証対象シミュレータは、ドメインの異なるシミュレータを含んで構成されている
ことを特徴とする協調シミュレーション用計算機システム。
【請求項９】
協調シミュレーション用計算機システムを用いた組み込みシステムの検証方法であって、
前記協調シミュレーション用計算機システムは、シミュレーション統合コントローラと、複数の検証対象のシミュレータとを備えており、
前記複数の検証対象のシミュレータは、前記組み込みシステムのメカニズムに対応する機械・センサ系シミュレータと、前記組み込みシステムのマイコン系シミュレータとが連携して動作する仮想検証環境として構成されており、
前記複数の検証対象のシミュレータは、異なる種類のシミュレータを含んで構成されており、
前記各シミュレータは少なくとも１つの試験用プローブ部と対象モデルを備えており、
前記シミュレーション統合コントローラと前記各シミュレータは、システム共通の通信プロトコルとして、前記全てのシミュレータにおけるイベントの操作・トリガを同一に扱うための試験記述フォーマットを保有しており、非同期通信により、前記複数のシミュレータの全体の動作を一時停止・再開させる機能を共有しており、
前記シミュレーション統合コントローラが、前記各シミュレータの試験用プローブ部との間で、前記通信プロトコルにより非同期に通信を行い、前記各シミュレータにおけるシミュレーションの起動・停止を行い、
協調シミュレーションにより前記対象モデルによる試験項目を実行し、
前記いずれか１つのシミュレータに設定されている停止条件が成立したとき、前記複数のシミュレータの全体を一時停止させ、
該一時停止の間に前記少なくとも１つのシミュレータの状態の取得又は状態の書き換えを行い、
前記協調シミュレーションによる前記試験項目の実行結果を蓄積し、該実行結果の判定を行い、その結果を出力し、
前記試験用プローブ部が、前記シミュレータのデータ同期通信部に介入し擬似的な受信遅延を発生させることで前記複数のシミュレータを連鎖的に停止させる
ことを特徴とする組込みシステムの検証方法。
【請求項１０】
協調シミュレーション用計算機システムで動作する協調シミュレーション用プログラムであって、
前記協調シミュレーション用計算機システムは、複数個の計算機がネットワークにより接続されたクラスタ型の計算機システムであり、協調して動作する複数のシミュレータとこれら検証対象の複数のシミュレータを制御するシミュレーション統合コントローラとを備えており、
前記複数の検証対象のシミュレータは、組み込みシステムのメカニズムに対応する機械・センサ系シミュレータと、前記組み込みシステムのマイコン系シミュレータとが連携して動作する仮想検証環境として構成されており、
前記複数の検証対象のシミュレータは、異なる種類のシミュレータを含んで構成されており、
前記各シミュレータは少なくとも１つの試験用プローブ部と対象モデルを備えており、
前記シミュレーション統合コントローラと前記各シミュレータとが、システム共通の通信プロトコルとして、前記全てのシミュレータにおけるイベントの操作・トリガを同一に扱うための試験記述フォーマットを保有しており、非同期通信により前記複数のシミュレータの全体の動作を一時停止・再開させる機能を共有しており、
前記計算機システムに、
前記各シミュレータの試験用プローブ部との間で前記通信プロトコルにより非同期に通信を行い、前記各シミュレータにおけるシミュレーションの起動・停止を実行させる手順、
協調シミュレーションにより前記対象モデルによる試験項目を実行させる手順、
前記いずれか１つのシミュレータに設定されている停止条件が成立したとき、前記複数のシミュレータの全体を一時停止させる手順、
該一時停止の間に前記少なくとも１つのシミュレータの状態の取得又は状態の書き換えを行う手順、
前記協調シミュレーションによる前記試験項目の実行結果を蓄積し、該実行結果の判定を行い、その結果を出力する手順、及び
前記試験用プローブ部により、前記シミュレータのデータ同期通信部に介入し擬似的な受信遅延を発生させ前記複数のシミュレータを連鎖的に停止させる手順、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラムに係り、特に、メカニズム、ハードウェア、及びソフトウェアで構成される組込みシステムの開発に適した、協調シミュレータの技術に関するものである。
【背景技術】
【０００２】
組込みシステムとは、制御対象を構成するメカニズムと、
このメカニズムから受け取った物理量を元に制御演算を行い、このメカニズムに制御値の出力を行なうハードウェアと、
このハードウェア上で動作するソフトウェアとで構成されるシステムである。
【０００３】
例えば、自動車エンジン制御向けの組込みシステムは、
制御対象であるエンジン等のメカニズムと、制御演算を行いこのエンジン等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。
【０００４】
組込みシステムに含まれるソフトウェアの挙動は、制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。
【０００５】
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。
【０００６】
分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。
【０００７】
この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている。例えば、特許文献１には、複数の異種ＥＣＵを持つシステムを、ソフトウェア的に効率的にシミュレートする技術が開示されている。
【０００８】
また、特許文献２には、各々データプロセッサで構成される独立した異種複数のシミュレータが連携して動作するシミュレーションに対し、外部条件の挿入及び内部状態の操作を行う手段として、全てのシミュレータが接続されたユーザーインターフェースプロセッサを備え、このユーザーインターフェースプロセッサにより、シミュレーション全体の進行を管理し、内部状態の操作を行う手法が提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−３３１３０号公報
【特許文献２】特開２００７−２６５４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
メカニズム・ハードウェア・ソフトウェア協調のシミュレーションでは、シミュレーション対象となるメカニズムやハードウェアの構成によって利用できるシミュレータが異なる事と、すでに特定のシミュレータ用に作成されたシミュレーションモデルの蓄積がある事から、異種シミュレータの相互接続による製品全体レベルの協調シミュレーションが行なわれる。
【００１１】
上記のシミュレーションを実行する際は、実行対象の動作を模したモデルを結合させるだけではなく、各シミュレータに対し外乱条件を挿入したり、内部状態を観測するための機構を付加する必要がある。
【００１２】
これらの外乱条件の挿入、内部状態観測はシミュレーション開始前に予め決められた時刻に起こすだけではなく、シミュレータが到達する特定の状態をトリガとして作動することが求められる。これは、システム全体の複雑化によって、部品同士の複雑な相互関係由来による異常状態の解析の重要度が高くなっていることに起因する。
【００１３】
複雑な部品同士の依存関係を記述するためには、トリガをかけるもの、状態を観測するもの、内部状態に外乱を与えるもの、以上の3つが別々のシミュレータに跨ることが求められる。
【００１４】
しかし、対象とする協調シミュレーション環境では、そのそれぞれのシミュレータは独立して動作するため、上記のような依存関係の記述は利用者にとって困難であった。例えば、ドメイン等の種類が異なる複数のシミュレータのコンピュータ間でのイベントの操作・トリガのやり取りは、システムの中央部分を介して通信する必要があり、シミュレーションの実行過程で利用者が複数のシミュレータを任意のタイミングで操作して異常状態の解析を行うことは困難であった。
【００１５】
特許文献１には、各シミュレータに対しユーザが、任意に外乱条件を挿入したり内部状態を観測するための機構を付加することについての開示は無い。
【００１６】
特許文献２の発明は、ユーザが中央のユーザーインターフェースプロセッサ経由で各シミュレータ（データプロセッサ）の内部状態の操作を行うものである。この場合、ユーザが操作を行うべき状態を観測してから、実際にその操作が行われるまで、各シミュレータと中央のユーザーインターフェースプロセッサ部分との通信が最低１往復あることから、操作の時間精度が損なわれ、望まれたシミュレーション結果が得られなくなることが課題であった。
【００１７】
協調シミュレーション環境において、ユーザが予め決められた時刻以外の任意のタイミングで何れかのシミュレータに外乱条件を挿入したりシミュレータの内部状態の観測を行う場合でも、管理ソフトウェアが試験記述にしたがって試験項目の順序が入れ替わることなく実行されることが望ましい。
【００１８】
本発明の目的は、独立した異種複数のシミュレータが連携して動作する協調シミュレーションに対し、ユーザがシミュレータに与えた外部条件の挿入及び内部状態の操作に対して、これらの各操作の実行順序が入れ替わらない様に実行する事を可能にする、協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明の代表的なものの一例を示すと、次のようになる。本発明の協調シミュレーション用計算機システムは、協調して動作する複数のシミュレータとこれら検証対象の複数のシミュレータを制御するシミュレーション統合コントローラとを備え、前記シミュレーション統合コントローラと前記各シミュレータとが、非同期通信により前記複数のシミュレータの全体の動作を一時停止・再開させる機能を共有しており、システム共通の通信プロトコルとして、前記全てのシミュレータにおけるイベントの操作・トリガを同一に扱うための試験記述フォーマットを保有しており、前記各シミュレータは少なくとも１つの試験用プローブ部と対象モデルとを備えており、前記複数のシミュレータは、組み込みシステムのメカニズムに対応する機械・センサ系シミュレータと、前記組み込みシステムのマイコン系シミュレータとが連携して動作する仮想検証環境として構成されており、前記複数のシミュレータは、異なる種類のシミュレータを含んで構成されており、前記通信プロトコルは、前記異なる種類のシミュレータが等価的にイベントを実行できる共通フォーマットで構成されており、前記試験用プローブ部は、前記シミュレータのデータ同期通信部に介入し擬似的な受信遅延を発生させることで前記複数のシミュレータを連鎖的に停止させる、停止コード挿入部を備えており、前記シミュレーション統合コントローラと前記各シミュレータの試験用プローブ部との間で、前記通信プロトコルにより非同期に通信を行い前記各シミュレータにおけるシミュレーションの起動・停止を行い、前記いずれか１つのシミュレータに設定されている停止条件が成立したことによって前記複数のシミュレータの全体を一時停止させ、該一時停止の間に少なくとも１つの前記シミュレータの状態の取得又は状態の書き換えを行うことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ユーザに対し、協調シミュレーションの外部から任意のタイミングで何れかのシミュレータに対してその実行継続条件を注入可能とする機能を提供することにより、検証対象のシステムについてその挙動の把握を容易にする事が可能である。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。
【図２Ａ】図１の試験進行制御部の構成例を示す図である。
【図２Ｂ】図１の検証対象シミュレーション、特にその内部で動作する試験用プローブ部の構成例を示す図である。
【図３Ａ】本システムの検証対象となる自動車エンジン制御向けの組込みシステムの物理的な構成例を示す図である。
【図３Ｂ】電子制御ユニット（ECU）の物理的構成例を示す図である。
【図４Ａ】図３Ａの自動車エンジン制御向けの組込みシステムの動作を協調シミュレーション環境上で再現するための、検証対象シミュレータ環境を示す図である。
【図４Ｂ】図４Ａで示した協調シミュレーション用の計算クラスタの構成例を示す図である。
【図５】本発明のシステムでサポートされる試験用プローブと対象モデル間の接続方式の一例示す図である。
【図６】本発明のシステムで用いる、共通の通信プロトコルの構成例を示す図である。
【図７】本発明のシステムで用いる、試験項目の記述フォーマットと試験結果の記述フォーマットの構成例を示す図である。
【図８】本発明の適用対象となるシミュレーションにおける、構成仕様記述フォーマットの構成例を示す図である。
【図９】本システムで利用可能となる操作、トリガ、観測を実行するコマンドーの種類を記述するためのフォーマットの構成例を示す図である。
【図１０】図９のコマンドフォーマットで記述されたコマンドーの試験項目フォーマット上での識別名称と、そのコマンドー種類との対応を記述するためのフォーマットの構成例を示す図である。
【図１１】第１の実施例における協調シミュレーション用計算機システムの特徴的な機能に関する動作フローを示す図である。
【図１２】ユーザが記述したテスト仕様書の中に組まれる「適用対象となるシミュレーション」とそれらの処理の「優先度」の関係の一例を示す図である。
【図１３】第１の実施例における試験用プローブが、その接続している対象モデルに対してシミュレーションの停止を行う構造を概説する図である。
【図１４Ａ】図１２のテスト仕様書に対応したシミュレーションの起動・停止の例を示す図である。
【図１４Ｂ】図１２のテスト仕様書に対応したシミュレーションの起動・停止の他の例を示す図である。
【図１５】本発明の第２の実施例になる、対象モデルがCPUモデルである場合に、このCPUのトレースから、他の試験用プローブのコマンド実行部に対するコマンドをトリガする手法を示す図である。
【図１６】本発明の第３の実施例になる、対象モデルがメモリ等である場合に、このメモリ等が含むバスモデルのトレースから他の試験用プローブに対するコマンドをトリガする手法を示す図である。
【発明を実施するための形態】
【００２２】
本発明は、複数のソフトウェアが連動して動作する計算機システム、または開発システムのプログラムに適用することができる。
【００２３】
本発明の１つの実施形態によれば、協調シミュレーション用計算機システムは、１つのシミュレーション統合コントローラと、このシミュレーション統合コントローラに非同期ネットワークを介して接続され各々独立して動作する複数の検証対象シミュレータとで構成されている。各検証対象シミュレータは、試験用プローブ部を備えている。シミュレーション統合コントローラは、各検証対象シミュレータと非同期に通信する試験進行制御部を備えている。複数のシミュレータの試験用プローブ部と１つのシミュレーション統合コントローラの試験進行制御部とが、シミュレータ全体の動作を一時停止・再開させる機能を共有する。
【００２４】
本発明の協調シミュレーション用計算機システムでは、仮想検証環境を構成する複数のシミュレータが連携動作するために必要となるシミュレータ間データ通信部分に着目し、このデータ通信部分に仮想的な遅延時間を挿入することで該当するシミュレータの動作を停止させる。これにより、連携しているシミュレータ全体を連鎖的に停止させる。この性質を用いて、中央のシミュレーション統合コントローラとの通信を起こすことなく、各シミュレータにおいて、指定されたタイミングでの内部状態の操作が可能になる。すなわち、いずれかのシミュレータに設定されている停止条件が成立したときに、全てのシミュレータを止めた後に、各シミュレータの状態の取得又は状態の書き換えを行う。また、独立した異種のシミュレータが複数連携して動作するシミュレーションに対し、全てのシミュレータを一時的に停止さ、外部条件の挿入及び内部状態の操作を、各操作の実行順序が入れ替わらない様に実行する事が可能になる。
【００２５】
本発明の他の実施形態によれば、協調シミュレーション用計算機システムは、複数の機械・センサ系（メカ系）シミュレータとマイコン系シミュレータとが連携して動作する、仮想検証環境（本システム）を構成している。機械・センサ系シミュレータは、指令を受けて動作する各種のアクチュエータやその状態を検知するセンサ等、制御対象となる機器・部材に対応し、マイコン系シミュレータは、上記制御対象となる機器・部材を指令やセンサ情報等に基づいて制御するためのマイコンに対応している。
【実施例１】
【００２６】
本発明の第１の実施例を、図１〜図１４Ｂを参照しながら説明する。  
図１は、本発明の第１の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示している。すなわち、図１は、複数個のシミュレータ間の協調により動作するシミュレーション環境に対する、内部状態の操作や観測を可能にする計算機システムの機能ブロック図である。
【００２７】
本発明の協調シミュレーション用計算機システム10は、シミュレーション統合コントローラ100と、このシミュレーション統合コントローラに非同期ネットワーク103を介して接続された複数の検証対象シミュレーション104(1)〜104(N)とで構成されている。シミュレーション統合コントローラ100は、試験進行制御部101と試験項目等に関するデータを保持するデータベース（DB）120と、入力部107と、出力部108と備えている。シミュレーション統合コントローラ100の試験進行制御部101は、入力部107を介して利用者の試験項目記述0100を受け取り、各シミュレーション104(1)〜104(N)に対して、試験項目の実行を指示し、当該試験項目の試験結果0102を出力部108に出力する。なお、入力部107と出力部108の一部は、共通のGUI画面で構成することができる。また、試験進行制御部101は、各検証対象シミュレーション104(1)〜104(N)の内部で動作する各試験用プローブ部106（0〜M）と非同期ネットワーク103で接続されている。
【００２８】
また、検証対象シミュレーション104は協調シミュレーション環境中に複数個存在しており、それぞれデータ交換用ネットワーク111を介して接続されている、各シミュレーション104中には、検証対象となるモデル105（0）〜105(N)が存在する。試験用プローブ部106は、各検証対象モデル105に対し、１つまたは複数個接続することが可能である。
【００２９】
図２Ａに、本システムを構成する試験進行制御部101の構成例を示す。試験進行制御部101は、ユーザが予め決められた規則で記述した試験項目フォーマット0100を受け取り、其れを解釈する試験項目解釈部1010と、解釈された試験項目列を蓄積し順番に実行する試験項目待ち行列1011と、本システム中に複数個存在する試験用プローブと接続され、試験項目と試験結果、トリガ成立イベントなどをやり取りするための通信I/F部1012と、各試験項目の実行結果を蓄積し、試験項目フォーマット0100中に記述された期待値との判定を行い、その結果を試験結果0102として出力する期待値判定部1013とによって構成されている。通信I/F部1012は、パケット通信制御機能10120を備えており、試験進行制御部101と各検証対象シミュレーション104（ｘ）との間で、システムの共通プロトコルによるパケット通信を行う。
【００３０】
図２Ｂは、検証対象シミュレーション104、特にその内部で動作する試験用プローブ部106の構成例を示す。
【００３１】
試験用プローブ部106は、検証対象シミュレーションの104内部で動作する仮想的なシミュレーションモデルとして動作し、各シミュレータで提供されているデータ通信方式により、操作及び観測対象となる対象モデル105と接続されている。
【００３２】
試験用プローブ部106は、非同期ネットワーク103を介して試験進行制御部101と接続され、試験項目を受信し試験項目待ち行列1064として蓄積すると共に実行した試験項目の結果及びトリガ成立タイミングを返信するための通信I/F 1060と、試験項目を各シミュレータが実行可能なイベントに再度解釈するためのコマンド解釈部1061と、解釈されたコマンドを実際に接続されている対象モデル105に対して実行するコマンド実行部1062と、対象モデル105が接続されているシミュレータ間データ通信111に介入しシミュレーションの実行を停止させる停止コード挿入部1063によって構成される。
【００３３】
図３Ａは、本システムの検証対象となる自動車エンジン制御向けの組込みシステムの物理的な構成例を示す。この組込みシステムの基本的な構成としては、エンジン201、ブレーキ202、ユーザ操作パネル203、車体姿勢制御系204といった自動車の機械系・センサ系のモジュール200に対し、それぞれ対応する制御を行う電子制御ユニット210として、エンジンECU 211、ブレーキECU 212、ユーザインターフェイスECU 213、ステアリングECU 214が存在しており、それらが車載ネットワーク230を介して接続されることで、制御が成立している。車載ネットワークはその中心ノードが車載通信コントローラ220として存在する場合がある。
【００３４】
図３Ｂは、電子制御ユニット210の各ECU（211-214）の基本構成を示す図である。各ECUにはその制御を行う母体となるマイクロコントローラ2101が１つないし複数個搭載されており、それらは機械系またはセンサと接続するためのアナログIO 2102、 専用IC 2103と接続される。また、他のECUとの接続のため、各ECUは通信インターフェイス2104を備えており、車載ネットワーク230に接続されている。車載通信コントローラ220も、マイクロコントローラや通信インターフェイス等を備えている。
【００３５】
次に、本発明を適用した仮想検証環境の具体例として、複数の機械・センサ系シミュレータとマイコン系シミュレータとが連携して動作する、自動車エンジン制御向けの組込みシステムの協調シミュレータについて説明する。  
図４Ａは、図３Ａの自動車エンジン制御向けの組込みシステムの動作を協調シミュレーション環境上で再現するための、検証対象シミュレータ環境を図示している。
【００３６】
図３Ａのエンジン201、ブレーキ202、ユーザ操作パネル203、車体姿勢制御系204等の各機構系部品やモジュールは、それぞれ機械・センサ系シミュレータ10401、10402、10403、10404によりエミュレートされ、電子制御ユニットのエンジンECU211、ブレーキECU212、ユーザインターフェイスECU213、ステアリングECU214はそれぞれマイコンシミュレータ10411、10412、10413、10414によりエミュレートされる。これらのECUを接続していた車載ネットワーク230及び車載通信コントローラ220は、車載ネットワーク160及び通信シミュレータ10420によりエミュレートされることにより、全体の協調動作が再現される。車載ネットワーク160、230には、例えば、車載系のLANであるCAN (Controller Area Network)が使用される。
【００３７】
このような検証対象シミュレータを構成する各シミュレータは、それぞれ、非同期ネットワーク103を介してシミュレーション統合コントローラ100と接続されている。シミュレーション統合コントローラ100は、検証対象シミュレータに対するユーザインターフェイスとして機能する。
【００３８】
なお、機械・センサ系シミュレータ10401、10402、10403、10404、マイコンシミュレータ10411、10412、10413、10414、及び、通信シミュレータ10420は、一部もしくは全部が同じ種類のシミュレータであってもよく、あるいは全てが異なる種類のシミュレータであってもよい。ここで、シミュレータの種類が異なるとは、シミュレータが対象とする物理系すなわち、物理系、機構系、電子系などの対象の「ドメイン」が異なる物を指す。あるいは「ドメイン」が同じでも、シミュレータの作成メーカーが異なっていり、同じメーカーであってもその作成時期（バージョン）が異なっている場合は、シミュレータの種類が異なる。また、プログラムの言語（Ｃ言語、Ｊａｖａ（登録商標）、Ｐｙｔｈｏｎ，Ｒｕｂｙ等）が異なる場合も、シミュレータの種類が異なる。
【００３９】
図４Ｂは、図４Ａで示した協調シミュレーション用の計算機システム10を実行するのにふさわしい計算機の構成の一例を示す。複数個のシミュレータが連動する本シミュレーションは、ひとつの計算機で動作させた場合その負荷の集中と、複数シミュレータを入れ替えながら実行することのコストにより、劇的なシミュレーション速度の低下を招く。このため、本シミュレーションは複数個の計算機1101がネットワーク1102により接続されたクラスタ型の計算機システムを用いることが望ましい。この時計算機間を接続するネットワークは全ての計算機をひとつに集める集中型のネットワークの他、任意の二つの計算機を強連結したクロスバー型接続のネットワークが考えられる。
【００４０】
図５において、本システムでサポートされる試験用プローブ106と対象モデル105間の接続方式の一例を述べる。接続の方法は対象モデル105の動作するシミュレータに依存してその実現方式は異なるものの、ある程度のカテゴリ分けがされている。まず接続方式は、出力型、入力型、それぞれを兼ねるバス型に分けられ、出力型は浮動小数点値または整数値を出力するアナログ出力1100、０または１のみを出力するデジタル出力1101、クロック信号をやりとりするためのクロック出力1102が考えられ、入力型としては、０または１のみを入力するデジタル入力1103、浮動小数点値または整数値を入力するアナログ入力1104が考えられる。バス型接続として考えられるのは、メモリバス・通信インターフェイス1105である。これらの組合せは本システムでサポートされる操作の一例を示したものであり、ユーザは図５や後で述べる図９で示したフォーマットを修正することにより、任意の命令をシステムでサポートするように改造することが可能である。
【００４１】
本システムでは、対象とする協調シミュレーションに含まれるシミュレータの種類に依存すること無い、試験項目の実行を目的とした共通の試験項目通信プロトコル0600を備えている。図６は、試験用プローブ部106と試験進行制御部101との間でやりとりされる本システムの共通の通信プロトコル0600の構成例を示す。この通信プロトコル0600は、全てのシミュレータにおけるイベントの操作・トリガを同一に扱うための試験記述フォーマットを保有している。本通信プロトコルは、可変長の命令列をもつことができる。
【００４２】
図６中のarg1フィールド0605、arg2フィールド0606が可変長部分であり、その数はIndex 0603によって制御される。その他のフィールドは固定して存在する。IDフィールド0601は当該の試験項目をどの試験用プローブ106で実行するべきかを指示する。Typeフィールド0602は該当試験項目の種類を指定する。Valueフィールド0604は当該試験項目が観測、トリガイベントであったときその項目の実行結果が入力される。Timingフィールド0607は当該試験項目を実行するべきシミュレーション時間が記述されて試験進行制御部101から送信され試験用プローブ部106で実際に実行されたシミュレーション時間が上書きされた状態で返送される。
【００４３】
図７は、試験項目フォーマット0100と試験結果0102のフォーマット0700の構成例を示す。本構成例では試験項目の実行結果の視認性を高めることを目的として、試験項目フォーマット0100と試験結果0102のフォーマットを統合した形のフォーマット0700を図示しているが、実際の構成ではこれらが分割された形であっても、その効果を失うものではない。本システムで行われる試験項目はひとつのテスト項目0701につきひとつの測定トリガ指定0702とひとつまたは複数個の期待値指定0703がセットとなって構成される。テスト項目指定0701は行番号0701、テスト項目名0705と当該テスト項目0705を実行する前にシステムが待機する時間を指定する実行待機時間0706と、テスト項目の具体的な動作を示す指示0707と、その引数となる設定値0708、0709によって構成される。
【００４４】
測定トリガ指定0702はトリガ種類の指示0710とその引数となる設定値0711と、トリガ成立条件を指定する比較式0712、トリガが成立した時間が入力される経過時間0713とその際のデータ値0714によって構成される。期待値指定703は期待値種類の指示0715とその引数となる設定値0716、0717と、トリガ成立条件を指定する比較式0718、当該期待値指定実行時に得られる値が入力される0719とその値を用いた比較式の判定結果が入力される判定フィールド0720によって構築される。各項目の設定値の数が本構成例と異なる場合でも、試験項目通信プロトコル0600によって可変個の設定値が許容されているため、機能に影響はない。
【００４５】
図８は、本システムの適用対象となるシミュレーション104における変更可能な状態、変数と、それが接続された試験用プローブ106の接続関係を記述するためのフォーマット0800の構成例である。本フォーマットに含まれる情報の例として、変数のシステム上の識別子であるピン番号フィールド0801と、試験項目フォーマット0100上での識別名称であるピン名フィールド0802と、当該ピンの試験用プローブ106上での型を示すインターフェイス型フィールドと、ピンのおおよその働きを示すファンクションフィールド0804と、当該ピンが接続されている試験用プローブ106のIDを示す試験用プローブIDフィールド0805と、当該試験用プローブ106が接続されている対象モデル105とのインターフェイスピン番号を示す試験用プローブインデックスフィールド0806の情報がある。
【００４６】
図９は、本システムで利用可能となる操作、トリガ、観測を実行するコマンドーの種類を記述するためのフォーマット0900の構成例を示す。コマンドー名フィールドは、コマンドーのシステム上での識別名称を示す、設定値フィールド0902、0903、0904、0905、0906は、各コマンドーが持ちうる引数の数と種類を記述する。本システムでサポートするコマンドは可変長の引数を持ちうるので、本フォーマットの設定値フィールドは可変長のサイズを持ちうる。また、各設定値は複数の種類をもつことが可能である。
【００４７】
図１０は、図９のコマンドフォーマット0900で記述されたコマンドーの試験項目フォーマット0100上での識別名称と、そのコマンドー種類との対応を記述するためのフォーマット1000である。本フォーマット1000では、コマンド種別フィールド1001と、シート上コマンド識別名1002、システム上コマンド識別名1003を情報として含む。本システムで利用可能なコマンドーとして、試験項目フォーマット0100は、テスト操作、トリガ操作、期待値操作に分かれており、それぞれ個別の動作をするコマンドーが割り当てられる。しかし、ユーザの視認性を考慮し、メモリやIOピンなど同じ種類の動作に対し、シート上では同じ名前を割り当てることが求められる。この問題を解決するため、（シート上の名前1002＋コマンド種別1001）が、システム上のコマンド識別子に対応するように、種別を設定する。
【００４８】
図１１は、本システムの協調シミュレーション用計算機システムの特徴的な機能に関する動作フローを示す図である。この機能は、協調シミュレーションの途中において、ユーザが設定した条件に基づいて、割り込み処理により、外乱条件を挿入したり内部状態の観測を行うものである。ユーザは、シミュレータの全体を一時停止させ、該一時停止の間に少なくとも１つの前記シミュレータの状態の取得又は状態の書き換えを行うことができる。
【００４９】
予め、ユーザは決められた規則でテスト仕様書を記述し、試験項目フォーマット0100として作成する。ステップ600において、これらのデータは試験進行制御部101に入力される。例えば、図７、図８、図９に記載の様式の入力フォーマットが入力部107のGUI画面に表示され、ユーザが所定の欄に必要項目を入力することでテスト仕様書を記述することで、入力がなされる。そして、ユーザがシミュレーションを起動すると、試験進行制御部101は試験項目フォーマット0100を受け取り、試験項目解釈部300は入力されたテスト仕様書を解釈し、試験項目を自動的に生成し、この試験項目を図６に示す試験項目通信プロトコル0600に当てはまるデータへと変換する。
【００５０】
次に、ステップ601において、試験項目を実行するタイミングを設定する。このタイミングは、１回目はユーザのデータにより初期設定された値、２回目以降は前回の試験項目が実行されたタイミングに基づいて、各々設定される。さらに、ステップ602において、試験項目解釈部300で解釈された試験項目を試験項目待ち行列0301に格納する。次に、試験項目待ち行列0301より試験項目を取り出す。ステップ603で、1件または複数件の試験項目を取り出す。ステップ60４では、送信する試験項目のコマンド部がコマンド指定か否を判定する。当該試験項目がコマンド指定の場合はステップ603へ戻り、試験項目の種類がトリガ系統又はテスト操作系であればステップ605に進む。このようにして、試験用プローブ106に対して送信すべき試験項目が、トリガ系統、又はテスト操作系（Get 系）、トリガ系統＋（１つ若しくは複数の）コマンド指定の組み合わせ、又は、テスト操作系＋（１つ若しくは複数の）コマンド指定の組み合わせ、の何れかになるようにする。
【００５１】
次のステップ605では、取り出した１つまたは複数個の試験項目に関して、試験項目のID部指定を読み出し、通信I/F部0302がもつ通信ソケットのうちどれを使用するかを選択し、通信ソケットを介して、ターゲットとする試験用プローブ106に対して送信する。試験項目の内容によっては、ターゲットとなる試験用プローブ部が複数になることもある。
【００５２】
ステップ606では、送信された試験項目を、各試験用プローブ部106で受信する。
【００５３】
ステップ607では、受信した試験項目通信プロトコル0600のタイミングフィールド0607を読み出し、現時点でのシミュレーション時間と比較し、読みだした実行時間が現在のシミュレーション時間よりも大きい値の場合、ステップ608に分岐し、小さい値の場合ステップ609に分岐する。
【００５４】
ステップ608では、受信した試験項目をEvent Queueに貯めて、その指定時間がくるまで待機し、ステップ609に遷移する。
【００５５】
ステップ609では、コマンド解釈部1061が試験項目通信プロトコルのTypeフィールドを読み出し、コマンド実行部1062に定義された、操作・観測用コマンドを引き当てる。
【００５６】
ステップ610では、操作・観測用コマンドの種類を読み出し、そのタイプがトリガ指定用コマンド（トリガ系統）であった場合はステップ611に分岐し、それ以外のテスト操作、期待値系統（コマンド指定）のコマンドの場合はステップ614に分岐する。
【００５７】
ステップ611では、ステップ609で引き当てられた操作・観測用コマンドを実行する。この時、試験項目通信プロトコルのargフィールド0605、0606がその関数の引数として利用される。この時実行された結果が試験項目通信プロトコルのValueフィールド0604に、実行されたシミュレータ上のタイムスタンプがタイミングフィールド0607に上書きされ、返答イベントとして生成される。
【００５８】
ステップ612では、トリガ条件が成立し、トリガ関数が実行されるまで待機する。ステップ613において、トリガ条件が成立する、すなわち、ユーザの与えた条件によるシミュレーションの停止条件が成立すると、ステップ613に進む。  
ステップ613では、試験項目通信プロトコルの受信から、ここまでのステップにて、シミュレータ上の時間は進んでいないことが保証されている。ここで、停止コード挿入部403を有効化し、シミュレータ間通信111を停止させる。これにより、シミュレーション全体を連鎖的に停止させる。すなわち、いずれか１つのシミュレータに設定されている停止条件が成立したときに、複数のシミュレータの全体を連鎖的に止める。  
ステップ617では、前段で生成した返答イベントを試験進行制御部101へ送り返す。
【００５９】
一方、ステップ610で、テスト操作、期待値系統のコマンドの場合はステップ614に分岐する。なお、ステップ614に分岐する場合は、その前のサイクルのステップ613で複数のシミュレータの全体が停止しているという前提がある。ステップ614では、トリガ指定用コマンドで指定されたトリガ関数を有効化する。すなわち、シミュレータの全体が停止している状態で、試験項目を実行し、少なくとも１つのシミュレータの内部状態の取得または状態の書き換えを行う。ユーザは、指定されたタイミングでの、任意のシミュレータの内部状態の操作が可能になる。当試験用プローブ106でのコマンド実行が終了すると（ステップ615）、停止コード挿入部1063の無限ループが解除され（ステップ616）、協調シミュレーション全体が再開される。すなわち、ステップ616において、試験項目通信プロトコルのTypeフィールド0602が予約された停止解除命令に出会った場合、停止コード挿入部1063を無効化し、シミュレーション全体を再起動させる。
【００６０】
試験進行制御部101では、当該Event Processorからの応答Eventの到着を待ち（ステップ618）、応答Event内部のTiming， Valueなどを記憶手段に保持する（ステップ619）。ステップ620では、Eventが実行された実績に基づくTiming情報を取得し記憶手段に保存する。このTiming情報に基づいて、次回の実行タイミングが設定される。
【００６１】
ステップ621では、Event Queueの最後のEventかを判定し、最後でなければステップ601に戻り、特定のシミュレータの停止条件が成立したときに複数のシミュレータ全体の停止を行った後、１つ又は複数のシミュレータの内部状態の取得または状態の書き換えを行う。そして、最後のEventであればステップ622として処理を終了する。
【００６２】
試験進行制御部101の期待値判定部1013は、協調シミュレーションによって得られ、保持された情報と試験項目フォーマット0100中に記述された期待値との判定を行い、その結果を試験結果0102として出力する。例えば、図７、図８、図９に記載の様式のフォーマット中に試験結果が組み込まれて、出力部107のGUI画面に表示される。
【００６３】
図１２は、ユーザが記述したテスト仕様書の中に組まれる「適用対象となるシミュレーション」とそれらの処理の「優先度」の関係の一例を示している。この例では、自動車エンジン制御向けの組込みシステムの適用対象となる協調シミュレーションとして、マイコンシミュレータの「A エンジンECU」、「C ブレーキECU」、機械・センサ系シミュレータの「B エンジンのメカ」、「D ブレーキのメカ」が有り、それらのシミュレーションを実行する「優先度」が定義されている。このような試験項目は図１１のステップ600において、試験項目フォーマット0100に記述されたテスト仕様書を解釈することで自動的に生成され、これらの試験項目を図６に示す試験項目通信プロトコル0600に当てはまるデータへと変換し、「優先度」に基づいて該当するIPアドレスのシミュレータのプローブに送信する。
【００６４】
図１３は、試験用プローブ106が、その接続している対象モデル105に対してシミュレーションの停止を行う構造を概説する図である。協調シミュレーション環境に含まれるシミュレータ104(1)とシミュレータ104(2)は互いにシミュレータ間通信I/F(1060)によって接続され、予め決められたシミュレーション時間を周期としてデータを交換し、シミュレーションが連携して動作する。この時、試験用プローブ106が、試験進行制御部101より操作・観測のコマンドを受け取り、ミュレーションを停止させる必要が生じた場合、シミュレータ104(1)の停止コード挿入部1063はこのシミュレータ間通信に割り込みを入れ（停止1）、受信処理を無限ループに誘導する。これによって、シミュレータ104(1)とシミュレータ104(2)の協調シミュレーションは擬似的に停止することになる（停止2，3）。
【００６５】
こ停止状態は、シミュレータ104(1)、104(2)における2つシミュレーションに限定されず、これらのシミュレータ104(1)、シミュレータ104(2)が停止しているため、それらがそれぞれ接続されている他のシミュレータ104(3)、104(4)、-、104(n)とのデータ通信もそこで停止することとなり、最終的に協調シミュレーションの動作周期内に、全体の進行が連鎖的に停止する（停止4，5，n）。
【００６６】
すなわち、停止コード挿入部1063は、シミュレータのデータ同期通信部に介入し（割り込みを入れ）擬似的な受信遅延を発生させることで、複数のシミュレータを連鎖的に停止させる。換言すると、停止コード挿入部1063は、全てのシミュレータに通信すること無く、試験項目の順序入替によりシミュレーション結果に影響が出る前に、前記複数のシミュレータ全体を実質上同時に停止させる。
【００６７】
このシミュレータ全体の停止状態において、各操作の実行順序が入れ替わることなく、特定のシミュレータの状態の取得又は状態の書き換えを行うことができる。
【００６８】
図１４Ａは、図１２のテスト仕様書に対応したシミュレーションの起動・停止の例を示している。図１２では、「優先度」が、シミュレータＡ，Ｄ，Ｂ，Ｃ，Ａの順になっている。そこで、図１１の動作フローにおける最初のシミュレーション全体を停止状態(S613)とし、この状態のままで次のサイクルにおいて、シミュレータＡ（エンジンのＥＣＵ）の状態の取得またはデータの書き換えを行う(S614，S615)。この間、他の全てのシミュレーションは動作を停止している。その後、シミュレーション全体を再起動(S616)させ、さらに次の繰り返しサイクルにおいてシミュレーション全体を停止状態(S613)とし、この状態のまま次のサイクルにおいて、シミュレータＤ（ブレーキのメカ）の状態の取得またはデータの書き換えを行う (S614，S615)。その後、シミュレーション全体を再起動させ、以下、同様に動作フローを繰り返し、ステップ状に短時間で繰り返される停止時に、順次、シミュレータＢ，Ｃ，Ａの状態の取得またはデータの書き換えを行い、一連の処理を終了する。この後、期待値判定部による判定結果が出力される。
【００６９】
これにより、例えば、最初にシミュレータＡ（エンジンのＥＣＵ）に外乱条件の挿入したことによりシミュレータＤ（ブレーキのメカ）の内部状態がどのように変化するかを、次のシミュレーション停止の後にシミュレータＤの内部状態のデータを取得することができる。あるいはまた、シミュレーション全体を順次停止させ、それら順次停止している間にシミュレータＤ（ブレーキのメカ）やシミュレータＢ（エンジンのメカ）に外乱条件を挿入し、これに伴い、シミュレータＣ（ブレーキのＥＣＵ）やシミュレータＡ（エンジンのＥＣＵ）の内部状態がどのように変化するか、次のシミュレーション停止時にデータを取得することもできる。このようにして得られた各データが期待値判定部で判定され、ユーザはその観測を観察することができる。
【００７０】
図１４Ｂのシミュレーションの起動・停止の例では、機械・センサ系シミュレータ「エンジン」のデータの書き換えを行い、このデータの書き換えに伴うマイコンシミュレータの「エンジンECU」の状態の変化のデータを、時間ΔＴ後の繰り返しサイクルで取得している。これは、例えば、メカ系のアクセルを急に操作したとき、それに対してエンジンのＥＣＵの制御がどのようになされるかを観察する場合に相当する。
【００７１】
このように実際の車の運転時に起こり得る外乱条件を与えそれに対する挙動の観察をステップ毎に進めながら行うことで、正規のシミュレーションでは検知できない種々の条件下での、組込みシステムの性能の不足や、仕様の不具合を抽出することが可能になる。
【００７２】
図１４Ａ、図４Ｂの例では、各シミュレーション全体の停止状態において、各々、１つのシミュレータの状態の取得やデータの書き換えを行っているが、同時に複数の種類のシミュレータに対して状態の取得やデータの書き換えを行っても良い。あるいはまた、同時に同じ種類のシミュレータに対して状態の取得やデータの書き換えを行っても良い。後者の場合の一例として、多気筒エンジンに関して１つのシリンダに外乱として故障を与え、それに伴って他のシリンダがどのように動作するかの状態を読み出して観察することができる。
【００７３】
本実施例では、外部条件の挿入や内部状態の観察等の操作は、シミュレーション全体の起動、停止に同期して個別に行うので、各操作の実行順序が入れ替わることはない。すなわち、ユーザに対し、協調シミュレーションの外部から任意のタイミングでその実行継続条件を注入可能とする機能を提供することにより、検証対象のシステムについてその挙動の把握を容易にする事が可能である。
【００７４】
本実施例では、試験項目通信プロトコルを用いた複数のシミュレータの間データ通信部分に着目し、このデータ通信部分に仮想的な遅延時間を挿入することで、該当するシミュレータの動作を停止させることにより、シミュレータの種類の如何に拘わらず、連携しているシミュレータ全体を停止させる。この性質を用いて、中央部分との通信を起こすことなく、シミュレータの種類、例えばドメインの異同を問わずに、指定されたタイミングでの、少なくとも１つのシミュレータの内部状態の操作や確認が可能になる。これにより、ユーザは、シミュレーション外部から任意のタイミングでその実行継続条件を注入することができ、組み込みシステムの全体とその構成要素間の相互の挙動について、詳細な情報の把握が容易になる。
【００７５】
一般に、エンジンのメカやブレーキのメカ等のハードウェア、エンジンのＥＣＵやブレーキのＥＣＵ等のソフトウェアの各部品は細分化して分業化が行なわれ、複数拠点での同時開発が行われている。各拠点では、自動車全体のシステムに関する共通の仕様等を前提にして分業開発がなされるが、部品点数は多種多様である。そのため製品全体レベルの協調シミュレーションでは、部品同士の複雑な相互関係由来による異常状態の解析を十分に行うことが困難である。また、分業開発のため、使用されるシミュレータの種類も異なる場合が多い。
【００７６】
本実施例によれば、このようなシステムを構成する部品点数が多くかつシミュレータの種類が異なる場合の製品全体レベルの協調シミュレーションであっても、トリガをかける機能、状態を観測する機能、内部状態に外乱を与える機能を、異種のシミュレータに跨って実行させることができるので、部品同士の複雑な相互関係由来による異常状態の解析を確実に行うことができる。すなわち、対象とする協調シミュレーションに含まれるシミュレータの種類に依存すること無い、試験項目の実行を目的とした共通の試験項目通信プロトコルを備えており、異種のシミュレータに跨って試験項目を実行させることができる。また、各シミュレータ内部に装着した試験用プローブ部と非同期に通信する試験進行制御部を備え、試験進行制御部がシミュレータ全体の動作を一時停止・再開させる機能を共有することにより、外乱条件の挿入、内部状態観測を容易にすると共に、各試験項目の実行時間の遅れを最小化することができる。
【実施例２】
【００７７】
本発明の第２の実施例を、図１５を参照しながら説明する。  
図５では、試験用プローブ106と対象モデル105間のCAN接続方式の一例を述べた。本実施例では、対象モデル105がCPUモデルである場合に、このCPUモデルのトレースから、他の試験用プローブ0106のコマンド実行部1062に対するコマンドをトリガする手法を例示する。例えば、図４ＡのCPUモデルを含んだ通信シミュレータ１０４２０から、メカシミュレータ１０４０１のプローブのコマンド実行部1062に対するコマンドをトリガすることができる。
【００７８】
図１５において、対象モデル105がCPUモデル1500を含んでいた場合、その上で実行された命令列のＰＣトレースを取得できる。試験用プローブ106のコマンド実行部1062に予め、CPUモデル1500で実行するソフトウェアのリンカ情報1503から各関数の開始および終了アドレスを抜き出してDB化したタスクDB1502を生成して入力する。
【００７９】
ソフトウェアトレース生成部1501は、CPUモデル1500から受け取ったＰＣトレースをもとにタスクDB1502を検索することにより、CPUモデル1500上での関数呼び出しの開始と終了を検知することが可能である。関数呼び出しの境界に同期して、トリガ情報を試験進行制御部101で、他試験用プローブ106のコマンド実行を開始させることが可能になる。試験進行制御部101からはどの関数の開始または終了に対し、トリガを発生させるかを有効化、無効化する機能を持たせることも可能である。
【００８０】
本実施例によれば、対象モデル105が含むCPUモデルのトレースから、CPUモデル1500上での関数呼び出しの開始と終了を検知し、他のプローブのコマンド実行部1062に対するコマンドにより停止コード挿入部1063を動作させ、該ミュレータの動作を停止させることにより、シミュレータの種類の如何に拘わらず、連携しているシミュレータ全体を停止させる。これにより、ユーザは、シミュレーション外部から任意のタイミングでその実行継続条件を注入することができ、組み込みシステムの全体とその構成要素間の相互の挙動について、詳細な情報の把握が容易になる。
【実施例３】
【００８１】
本発明の第３の実施例を、図１６を参照しながら説明する。  
図５では、試験用プローブ106と対象モデル105間の接続方式の一例を述べた。本実施例は、対象モデル105がメモリ等である場合に、このメモリ等が含むバスモデルのトレースから他の試験用プローブ106に対するコマンドをトリガする手法を例示する。例えば、対象モデル105がメモリのとき、バスアクセストレース中のアドレス情報を利用する。
【００８２】
特に、デジタル系のシミュレーションでは、メモリや通信等バス型接続(バスアクセス)1600が現れる。試験項目の記述性能を高めるためには、バス型接続でやり取りされるトランザクションをトレースし、それに同期したイベントでトリガをかけることが求められる。コマンド実行部1062の内部には、メモリアクセストレース生成部1603がある。試験用プローブ106のコマンド実行部1062に、予め、メモリ空間上への変数のマップ情報を記述したメモリ空間マップ情報ファイル1605をもとに、各変数のメモリアドレスへの対応表としたアドレスDB1604を生成して入力する。試験進行制御部101は、そのメモリテスト用の試験用プローブ106に対して、メモリ上の特定の変数の変更に対するトリガを無効化・有効化することが可能である。
【００８３】
対象モデル105内部で、バスマスタデバイス1601からバススレーブデバイス1602に対してバスアクセス1600が生じたとき、対象モデル105はバスアクセストレースを生じさせる。このバスアクセストレース中のアドレス情報を使って、コマンド実行部1062内部のメモリアクセストレース生成部1603はアドレスDB1604を検索する。該当の変数のトリガが有効化されていた場合、試験進行制御部101に対してトリガ成立メッセージを送信し、他のシミュレータの試験用プローブ106のコマンド実行を開始させることが可能になる。
【００８４】
本実施例によれば、対象モデル105で生成されるバスアクセストレースから、変数のトリガ情報を検知し、他のプローブのコマンド実行部1062に対するコマンドにより停止コード挿入部1063を動作させ、該ミュレータの動作を停止させることにより、シミュレータの種類の如何に拘わらず、連携しているシミュレータ全体を停止させる。これにより、ユーザは、シミュレーション外部から任意のタイミングでその実行継続条件を注入することができ、組み込みシステムの全体とその構成要素間の相互の挙動について、詳細な情報の把握が容易になる。
【符号の説明】
【００８５】
10…協調シミュレーション用計算機システム、100…シミュレーション統合コントローラ、101…試験進行制御部、103…非同期ネットワーク、104(1)〜104(N) …検証対象シミュレーション、105（0）〜105(N)…検証対象モデル、106（0〜M）…試験用プローブ部、107…入力部、108…出力部、111…データ交換用ネットワーク、120…データベース（DB）、160…車載ネットワーク、200…機械系・センサ系のモジュール、201…エンジン、202…ブレーキ、210…電子制御ユニット、211…エンジンECU、212…ブレーキECU、220…車載通信コントローラ、230…車載ネットワーク、0600…通信プロトコル、1010…試験項目解釈部、1011…試験項目待ち行列、1012…通信I/F部、1013…期待値判定部、1060…通信I/F、1061…コマンド解釈部、1062…コマンド実行部、1063…停止コード挿入部、1064…試験項目待ち行列、10120…パケット通信制御機能、10420…通信シミュレータ。
【図１】
0005882052.tif 000002
【図２Ａ】
0005882052.tif 000003
【図２Ｂ】
0005882052.tif 000004
【図３Ａ】
0005882052.tif 000005
【図３Ｂ】
0005882052.tif 000006
【図４Ａ】
0005882052.tif 000007
【図４Ｂ】
0005882052.tif 000008
【図５】
0005882052.tif 000009
【図６】
0005882052.tif 000010
【図７】
0005882052.tif 000011
【図８】
0005882052.tif 000012
【図９】
0005882052.tif 000013
【図１０】
0005882052.tif 000014
【図１１】
0005882052.tif 000015
【図１２】
0005882052.tif 000016
【図１３】
0005882052.tif 000017
【図１４Ａ】
0005882052.tif 000018
【図１４Ｂ】
0005882052.tif 000019
【図１５】
0005882052.tif 000020
【図１６】
0005882052.tif 000021