(57)【要約】      （修正有）【課題】故障注入を容易化し、システムの開発を迅速化させ得るシミュレーション装置及び方法並びにプログラムを提案する。【解決手段】シミュレーション装置が、挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成し、第１の故障注入モデルにより加工された第１の信号を挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、故障内容の故障発生時における挙動検証対象部品の挙動をシミュレートする。【選択図】図６
2019174874.tif 000002
【特許請求の範囲】
【請求項１】
故障発生時の挙動検証対象部品の挙動をシミュレートするシミュレーション装置において、
プログラムが格納されたメモリと、
前記メモリに格納された前記プログラムを実行するプロセッサと
を備え、
前記プロセッサは、前記プログラムに基づいて、
前記挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、前記挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成し、
前記第１の故障注入モデルにより加工された前記第１の信号を前記挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、前記故障内容の故障発生時における前記挙動検証対象部品の挙動をシミュレートする
ことを特徴とするシミュレーション装置。
【請求項２】
前記プロセッサは、前記プログラムに基づいて、
前記挙動検証対象部品モデルから出力された第２の信号を、予め設定された故障内容に応じた信号に加工して出力する第２の故障注入モデルを生成する
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記挙動検証対象部品は、組込みシステムのマイクロコンピュータ装置であり、
前記プロセッサは、前記プログラムに基づいて、
前記挙動検証対象部品モデルと、前記挙動検証対象部品の入力側の部品の挙動を模倣する第１の部品モデルと、前記第１の部品モデル及び前記挙動検証対象部品モデル間に挿入された前記第１の故障注入モデルと、前記挙動検証対象部品の出力側の部品の挙動を模倣する第２の部品モデルと、前記挙動検証対象部品モデル及び前記第２の部品モデル間に挿入された前記第２の故障注入モデルからなる第１のシミュレータを生成する
ことを特徴とする請求項２に記載のシミュレーション装置。
【請求項４】
前記プロセッサは、前記プログラムに基づいて、
それぞれ対応する部品の挙動を模倣する前記第１のシミュレータを含む複数の部品別シミュレータと、各前記部品別シミュレータのシミュレーション時間を、自己のサンプリング周期に同期させるハブシミュレータとを生成する
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
故障発生時の挙動検証対象部品の挙動をシミュレートするシミュレーション装置において実行されるシミュレーション方法であって、
前記シミュレーション装置は、
プログラムが格納されたメモリと、
前記メモリに格納された前記プログラムを実行するプロセッサと
を有し、
前記プロセッサが、前記プログラムに基づいて、前記挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、前記挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成する第１のステップと、
前記プロセッサが、前記プログラムに基づいて、前記第１の故障注入モデルにより加工された前記第１の信号を前記挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、前記故障内容の故障発生時における前記挙動検証対象部品の挙動をシミュレートする第２のステップと
を備える
ことを特徴とするシミュレーション方法。
【請求項６】
前記プロセッサは、
前記第１のステップにおいて、予め設定された故障内容に応じて信号を加工する第２の故障注入モデルを生成し、
前記第２のステップにおいて、
前記挙動検証対象部品モデルから出力された第２の信号を、前記第２の故障注入モデルにおいて、予め設定された前期故障内容に応じて加工する
ことを特徴とする請求項５に記載のシミュレーション方法。
【請求項７】
前記挙動検証対象部品は、組込みシステムのマイクロコンピュータ装置であり、
前記プロセッサは、前記プログラムに基づいて、
前記第１のステップにおいて、前記挙動検証対象部品モデルと、前記挙動検証対象部品の入力側の部品の挙動を模倣する第１の部品モデルと、前記第１の部品モデル及び前記挙動検証対象部品モデル間に挿入された前記第１の故障注入モデルと、前記挙動検証対象部品の出力側の部品の挙動を模倣する第２の部品モデルと、前記挙動検証対象部品モデル及び前記第２の部品モデル間に挿入された前記第２の故障注入モデルからなる第１のシミュレータを生成する
ことを特徴とする請求項６に記載のシミュレーション方法。
【請求項８】
前記プロセッサは、前記プログラムに基づいて、
前記第１のステップにおいて、それぞれ対応する部品の挙動を模倣する前記第１のシミュレータを含む複数の部品別シミュレータと、各前記部品別シミュレータのシミュレーション時間を、自己のサンプリング周期に同期させるハブシミュレータとを生成する
ことを特徴とする請求項７に記載のシミュレーション方法。
【請求項９】
コンピュータ装置に、
挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、前記挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成する第１のステップと、
前記第１の故障注入モデルにより加工された前記第１の信号を前記挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、前記故障内容の故障発生時における前記挙動検証対象部品の挙動をシミュレートする第２のステップと
を備える処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーション装置及び方法並びにプログラムに関し、例えば、組込みシステムの挙動をシミュレートするシミュレーション装置に適用して好適なものである。
【背景技術】
【０００２】
従来、自動車や家電製品又は産業機械などの電気機器には、組込みシステムが組み込まれている。組込みシステムとは、制御対象を構成するメカニズムと、このメカニズムから受け取った物理量を元に制御演算を行い、その演算結果に基づいてメカニズムを制御するマイクロコンピュータ装置（以下、これをマイコンと呼ぶ）のハードウェアと、当該マイコンに実装されたソフトウェアとから構成されるシステムを指す。
【０００３】
例えば、自動車には、制御対象であるエンジン等のメカニズムと、このメカニズムを制御するＥＣＵ（Electronic Control Unit）等のマイコンのハードウェアと、このマイコン上で動作するソフトウェアとから構成される組込みシステムが組み込まれている。
【０００４】
組込みシステムを構成するソフトウェアの挙動は制御対象のメカニズムの構成と、マイコンのハードウェア構成とに強く依存する。このため、かかるソフトウェアの挙動を分析するに際しては、ソフトウェア単独での挙動を分析するのではなく、メカニズム、ハードウェア及びソフトウェアを組み合わせた組込みシステム全体の中でのそのソフトウェアの挙動を分析する必要がある。
【０００５】
一方で、近年、自動車や電気機器等の高信頼化及び高機能化により組込みシステムの構成が複雑化している。このため、この種の組込みシステムの開発現場では、開発期間短縮のために、ハードウェア及びソフトウェアの各部品を細分化して開発を分業化し、これらを複数拠点で同時開発する開発手法が用いられている。
【０００６】
このような分業化が進むにつれて、部品の組立て時に判明するシステムの性能不足、仕様の不具合が増加しており、製品出荷前の最終段階での手戻りに起因する開発期間の遅延が多発するなどの開発効率の悪化が問題となっている。
【０００７】
このような問題を解決するための手段として、近年では、組込みシステムの設計時点でのメカニズム、ハードウェア及びソフトウェアを協調させたシミュレーションによるシステム全体の性能評価・検証手法が組込みシステムの開発現場で用いられ始めている。
【０００８】
なお、このようなシミュレーションに関連して、特許文献１には、それぞれのシミュレータが独立して動作する問題を解決するため、シミュレーションの実行過程で利用者が任意のタイミングでシミュレータ全体を一時停止・再生することにより検証対象のシステムについてその挙動の分析を容易に行い得るようにする発明が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１３−１３７６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、シミュレーションによる性能評価・検証手法において、評価対象のシステムやモデルに外乱を注入するためには、モデルの機能追加やシミュレータのデバック機能による作り込みが必要になる。この場合、モデルの機能追加はモデルごとに対応が必要であり、ユーザの負担が大きくなるという問題がある。
【００１１】
またシミュレータのデバック機能による作り込みでは、シミュレータは端子状態が変更された後でデバック機能が有効になるため、例えば、端子状態を固着させる故障状態をシミュレートしたい場合でも、端子状態が変更された後で固着値に書き戻すことになるため、マイコンの割込み機能が動作してしまい、意図したシミュレーションが実行できないという問題がある。
【００１２】
本発明は以上の点を考慮してなされたもので、故障注入を容易化し、システムの開発を迅速化させ得るシミュレーション装置及び方法並びにプログラムを提案しようとするものである。
【課題を解決するための手段】
【００１３】
かかる課題を解決するため本発明においては、故障発生時の挙動検証対象部品の挙動をシミュレートするシミュレーション装置において、プログラムが格納されたメモリと、前記メモリに格納された前記プログラムを実行するプロセッサとを設け、前記プロセッサが、前記プログラムに基づいて、前記挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、前記挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成し、前記第１の故障注入モデルにより加工された前記第１の信号を前記挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、前記故障内容の故障発生時における前記挙動検証対象部品の挙動をシミュレートするようにした。
【００１４】
また本発明においては、故障発生時の挙動検証対象部品の挙動をシミュレートするシミュレーション装置において実行されるシミュレーション方法であって、前記シミュレーション装置に、プログラムが格納されたメモリと、前記メモリに格納された前記プログラムを実行するプロセッサとを設け、前記プロセッサが、前記プログラムに基づいて、前記挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、前記挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成する第１のステップと、前記プロセッサが、前記プログラムに基づいて、前記第１の故障注入モデルにより加工された前記第１の信号を前記挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、前記故障内容の故障発生時における前記挙動検証対象部品の挙動をシミュレートする第２のステップとを設けるようにした。
【００１５】
さらに本発明においては、プログラムが、コンピュータ装置に、挙動検証対象部品の挙動を模倣する挙動検証対象部品モデルと、前記挙動検証対象部品モデルに入力すべき第１の信号を、予め設定された故障内容に応じた信号に加工する第１の故障注入モデルとをそれぞれ生成する第１のステップと、前記第１の故障注入モデルにより加工された前記第１の信号を前記挙動検証対象部品モデルに入力し、当該挙動検証対象部品モデルにおいて、前記故障内容の故障発生時における前記挙動検証対象部品の挙動をシミュレートする第２のステップとを備える処理を実行させるようにした。
【００１６】
本シミュレーション装置及び方法並びにプログラムによれば、他のモデルの改変等を必要とせずに種々の故障内容の故障発生時における挙動検証対象部品の挙動をシミュレートすることができる。
【発明の効果】
【００１７】
本発明によれば、故障注入を容易化し、システムの開発を迅速化させ得るシミュレーション装置及び方法を実現できる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態によるシミュレーション装置の全体構成を示すブロック図である。
【図２】図１のシミュレーション装置の論理構成を示すブロック図である。
【図３】マイコン系シミュレータの論理構成の構成例を示すブロック図である。
【図４】（Ａ）−（Ｄ）は、従来のシミュレーション装置の問題点の説明に供するブロック図である。
【図５】従来のシミュレーション装置の問題点の説明に供するブロック図である。
【図６】本実施の形態による部品別シミュレータの論理構成の構成例を示すブロック図である。
【図７】故障注入モデルの概念的な構成例を示す概念図である。
【図８】故障注入モデルの処理手順を示すフローチャートである。
【図９】（Ａ）は故障設定がなされていない場合における故障注入モデルの動作の説明に供する概念図であり、（Ｂ）は故障注入モデルへの入力信号の信号波形を示す波形図、（Ｃ）は（Ａ）の場合における故障注入モデルからの出力信号の信号波形を示す波形図である。
【図１０】（Ａ）は故障として「追従」が設定された場合における故障注入モデルの動作の説明に供する概念図であり、（Ｂ）は故障注入モデルへの入力信号の信号波形を示す波形図、（Ｃ）は（Ａ）の場合における故障注入モデルからの出力信号の信号波形を示す波形図である。
【図１１】（Ａ）は故障として「固着」が設定された場合における故障注入モデルの動作の説明に供する概念図であり、（Ｂ）は故障注入モデルへの入力信号の信号波形を示す波形図、（Ｃ）は（Ａ）の場合における故障注入モデルからの出力信号の信号波形を示す波形図である。
【図１２】（Ａ）は故障として「ゲイン」が設定された場合における故障注入モデルの動作の説明に供する概念図であり、（Ｂ）は故障注入モデルへの入力信号の信号波形を示す波形図、（Ｃ）は（Ａ）の場合における故障注入モデルからの出力信号の信号波形を示す波形図である。
【図１３】（Ａ）は故障として「中間」が設定された場合における故障注入モデルの動作の説明に供する概念図であり、（Ｂ）は故障注入モデルへの入力信号の信号波形を示す波形図、（Ｃ）は（Ａ）の場合における故障注入モデルからの出力信号の信号波形を示す波形図である。
【発明を実施するための形態】
【００１９】
以下図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）本実施の形態によるシミュレーション装置の構成
図１において、１は本実施の形態によるシミュレーション装置を示す。このシミュレーション装置１は、例えば、自動車の組込みシステムのメカニズム、ハードウェア及びソフトウェアを協調させたシミュレーションを行い得るコンピュータ装置であり、ＣＰＵ２（Central Processing Unit）、メモリ３、補助記憶装置４、入力装置５及び表示装置６を備えて構成される。
【００２１】
ＣＰＵ２は、シミュレーション装置１全体の動作制御を司るプロセッサである。またメモリ３は、ＤＲＡＭ（Dynamic RAM（Random Access Memory））又はＳＲＡＭ（Static RAM）などの揮発性の半導体メモリから構成され、主としてＣＰＵ２のワークメモリとして利用される。後述する各種シミュレータ用のアプリケーション（以下、これをシミュレーションアプリと呼ぶ）７もこのメモリ３に格納されて保持される。
【００２２】
補助記憶装置４は、例えば、ハードディスク装置やＳＳＤ（Solid State Disk）などの不揮発性の大容量の記憶装置から構成され、アプリケーションなどのソフトウェアや制御データを長期間保持するために利用される。
【００２３】
入力装置５は、キーボードやマウスなどから構成され、ユーザが必要な操作入力を行う際に利用される。また表示装置６は、例えば、液晶ディスプレイや有機ＥＬ（Electro Luminescence）ディスプレイなどから構成され、各種設定画面や、各種シミュレーション結果画面などを表示するために利用される。
【００２４】
図２は、本シミュレーション装置１のシミュレーション機能に関する論理構成を示す。この図２に示すように、本シミュレーション装置１は、組込みシステムの主要な各部品の挙動をそれぞれシミュレートする複数の部品別シミュレータ１０と、ハブシミュレータ１１とを備えて構成される。
【００２５】
部品別シミュレータ１０は、ＣＰＵ２（図１）が、図１のようにメモリ３に格納された対応するシミュレーションアプリ７を実行することにより具現化される機能部である。部品別シミュレータ１０は、ユーザにより設定されたシミュレーションの条件に従って、組込みシステムを構成する各部品やその周辺の各部品の挙動をシミュレート（模倣）する。
【００２６】
本実施の形態の場合、図２に示すように、このような部品別シミュレータ１０として、組込みシステムのマイコンの挙動をシミュレートするマイコン系シミュレータ１０Ａや、モータやエンジンの挙動をシミュレートする数学系シミュレータ１０Ｂなどがあり、これらの部品別シミュレータ１０に対応するシミュレーションアプリ７がメモリに格納される。
【００２７】
ハブシミュレータ１１も、ＣＰＵ２（図１）が、メモリ３に格納された対応するシミュレーションアプリ７を実行することにより具現化される機能部である。ハブシミュレータ１１は、別々のサンプリング周期で動作する各部品別シミュレータ１０のシミュレーション時間を、自己のサンプリング周期に同期させる機能を有する。
【００２８】
実際上、本実施の形態の場合、部品別シミュレータ１０間の信号データの交換は、このハブシミュレータ１１を経由して行われる。そこで、ハブシミュレータ１１は、部品別シミュレータ１０間のデータの交換を自己のサンプリング周期で行うことにより、各部品別シミュレータ１０のシミュレーション時間を自己のサンプリング周期に同期させる。
【００２９】
（２）本実施の形態によるシミュレーション機能
次に、本シミュレーション装置１に搭載された本実施の形態によるシミュレーション機能について説明する。これに際して、まず、従来のシミュレーション装置における部品別シミュレータの構成について説明する。
【００３０】
図３は、既存のシミュレーション装置において生成される部品別シミュレータ１０のうち、組込みシステムのマイコンに対応する部品別シミュレータ（以下、これをマイコン系シミュレータと呼ぶ）２７の論理構成例を示す。図３では、マイコン系シミュレータ１０Ａが、組込みシステムのマイコンの挙動をシミュレートするマイコンモデル２１と、そのマイコンの入力側の周辺部品（例えば、センサを制御するセンサ制御ＩＣ（Integrated Circuit））である第１のＩＣ部品の挙動をシミュレートする第１のＩＣモデル２０と、そのマイコンの出力側の周辺部品（例えば、モータのドライバとして機能するドライバＩＣ）である第２のＩＣ部品の挙動をシミュレートする第２のＩＣモデル２２とから構成される場合を例示している。
【００３１】
この図３において、第１のＩＣモデル２０は、対応する第１のＩＣ部品の挙動を設定された条件に従ってシミュレートし、前段のシミュレータ１０Ａ等から与えられた信号をこのシミュレート結果に基づいて加工してマイコンモデル２１に出力する。
【００３２】
またマイコンモデル２１は、対応するマイコンの挙動を設定された条件に従ってシミュレートし、第１のＩＣモデル２０から与えられる信号を、このシミュレート結果に基づいて加工して第２のＩＣモデル２２に出力する。
【００３３】
さらに第２のＩＣモデル２２は、対応する第２のＩＣ部品の挙動を設定された条件に従ってシミュレートし、マイコンモデル２１から与えられる信号を、このシミュレート結果に基づいて加工して次段のシミュレータ（例えば、制御対象のエンジンやモータの挙動をシミュレートする数学系シミュレータ）１０に出力する。
【００３４】
このようなシミュレーション装置において、かかるマイコン系シミュレータ２７のデバッグ機能を用いてプログラムを作成した場合のシミュレーション処理の流れを図４（Ａ）〜図４（Ｄ）に示す。ここでは、故障の発生によりマイコンに入力される信号が異常値となった場合のマイコンの挙動をシミュレートするため、第１のＩＣモデル２０からマイコンモデル２１に出力される信号の信号レベルが正常時の信号レベル（ローレベルとする）から異常時の信号レベル（ハイレベルとする）に変化させるものとする。
【００３５】
この場合、既存のシミュレーション装置では、マイコンモデル２１の入力端子２３に与えられる第１のＩＣモデル２０から出力された上述の信号の信号レベルが図４（Ａ）のようなローレベルから図４（Ｂ）のようなハイレベルに変化した際に、マイコンモデル２１内の割込みキュー２４に割込みコマンドが格納される。この後、この割込みコマンドが実行され、シミュレータのデバッグ機能によってその入力端子２３の信号レベルが図４（Ｃ）のように元のローレベルに書き戻された後、図４（Ｄ）のように割込みキューからその割込みコマンドが割込みキュー２４から削除される。
【００３６】
このように既存のシミュレータ装置を利用したシミュレーションでは、故障を注入した場合においてもシミュレータのデバッグ機能により故障状態が維持されず、故障の発生によりマイコンに入力される信号が異常値となった場合のマイコンの挙動を正しくシミュレーションできない問題があった。
【００３７】
このような問題を解決するための手法として、例えば図５に示すように、故障を注入する故障注入機能２５，２６を第１のＩＣモデル２０´や第２のＩＣモデル２２´に搭載することも考えられるものの、このようにするためにはＩＣモデル２０´、２２´ごとの対応が必要であり、ユーザ負担が大きくなる問題があった。
【００３８】
そこで本実施の形態のシミュレーション装置１では、図３との対応部分に同一符号を付した図６に示すように、故障発生時の挙動を検証する対象となる部品（図６の例ではマイコン）のモデル（以下、適宜、これを挙動検証対象部品モデルと呼ぶ）の前段に、その直前のモデルから出力される信号を、所望する故障が発生したときの状態に加工し得る故障注入モデル３０を挿入できるようになされている。
【００３９】
この故障注入モデル３０は、ＣＰＵ２（図１）が対応する部品別シミュレータ１０のシミュレーションアプリ７（図１）を実行することにより具現化される機能部であり、図７に示すように、挙動検証対象部品（及び挙動検証対象部品モデル）の入力端子と同じ数の概念的な入力端子４１Ａ〜４６Ａ及び出力端子４１Ｂ〜４６Ｂを備えて構成される。従って、図６の故障注入モデル３０は、マイコンモデル２１の入力端子と同じ数の概念的な入力端子４１Ａ〜４６Ａ及び出力端子４１Ｂ〜４６Ｂを備える。
【００４０】
なお、以下においては、故障注入モデル３０が有する各入力端子４１Ａ〜４６Ａを、適宜、図７において上の方から順番にそれぞれ第１の入力端子４１Ａ、第２の入力端子４２Ａ、……と呼び、故障注入モデル３０が有する各出力端子４１Ｂ〜４６Ｂを、適宜、図７において上の方から順番にそれぞれ第１の出力端子４１Ｂ、第２の出力端子４２Ｂ、……と呼ぶものとする。なお、第Ｎ（Ｎは整数）の入力端子４１Ａ〜４６Ａは第Ｎの出力端子４１Ｂ〜４６Ｂと対応する。
【００４１】
また故障注入モデル３０には、メモリ３（図１）内の対応する記憶領域と対応付けられた概念的な制御レジスタ４７が設けられる。そしてユーザは、図示しない所定の設定画面を用いて、所望する故障内容を表すパラメータ（以下、これを故障条件パラメータと呼ぶ）をこの制御レジスタ４７に設定することができる。そして、このように故障条件パラメータを設定することにより、前段のモデルから故障注入モデル３０の各入力端子４１Ａ〜４６Ａにそれぞれ与えられる各信号を、その故障が発生した場合の状態にそれぞれ加工して対応する出力端子４１Ｂ〜４６Ｂからそれぞれ出力するよう故障注入モデル３０を動作させることができる。
【００４２】
なお本実施の形態の場合、故障注入モデル３０には、かかる故障として「追従」、「固着」、「ゲイン（gain）」及び「中間」の４つの故障のいずれかを設定することができる。「追従」は、挙動検証対象部品の２つの入力端子や挙動検証対象部品の直前の部品の２つの出力端子がショート等することにより、挙動検証対象部品の一方の入力端子に入力する信号が他方の入力端子に入力する信号に追従する故障である。また「固着」は、挙動検証対象部品の入力端子又は当該挙動検証対象部品の直前の部品の出力端子から配線が外れるなどして挙動検証対象部品の入力端子がオープンとなる故障であり、「ゲイン」は、挙動検証対象部品の入力端子に入力し又は挙動検証対象部品の直前の部品の出力端子から出力する信号の信号レベルが正常な信号レベルよりも大きく又は小さくなる故障である。さらに「中間」は、挙動検証対象部品の２つの入力端子又は挙動検証対象部品の直前の部品の２つの出力端子がショート等することにより、挙動検証対象部品の２つの入力端子にそれぞれ入力する信号の信号レベルが共にこれら２つの信号の信号レベルの平均値となる故障である。
【００４３】
従って、ユーザは、上述の故障内容として、故障の種別（「追従」、「固着」、「ゲイン（gain）」又は「中間」）に加えて、「追従」及び「中間」の場合には、ショートしたと仮定する挙動検証対象直前部品の入力端子又は挙動検証対象部品の直前の部品の出力端子とそれぞれ対応付けられた故障注入モデル３０の２以上の入力端子４１Ａ〜４６Ａの識別番号を上述の故障条件パラメータとして制御レジスタ４７に設定するようにする。
【００４４】
また「固着」の場合には、オープン状態となったと仮定する挙動検証対象部品の入力端子又は挙動検証対象部品の直前の部品の出力端子と対応付けられた故障注入モデル３０の入力端子４１Ａ〜４６Ａの識別番号を故障条件パラメータとして制御レジスタ４７に設定するようにする。
【００４５】
さらに「ゲイン」の場合には、故障により入力する信号の信号レベルが変化したと仮定する挙動検証対象部品の入力端子又は挙動検証対象部品の直前の部品の出力端子と対応付けられた故障注入モデル３０の入力端子４１Ａ〜４６Ａの識別番号と、挙動検証対象部品におけるその入力端子に入力し、又は挙動検証対象部品の直前の部品におけるその出力端子から出力される信号の信号レベルの変化の割合（ゲイン）とを故障条件パラメータとして制御レジスタ４７に設定するようにする。
【００４６】
さらに本シミュレーション装置１では、図６に示すように、挙動検証対象部品モデルの直後にも、挙動検証対象部品モデルから出力される信号を、予め設定された故障内容の故障が発生したときの状態に加工し得る故障注入モデル３１を挿入できるようになされている。この故障注入モデル３１は、挙動検証対象部品モデルから次段の第２のＩＣモデル２２に出力される信号を所望する故障内容に応じた加工するだけでなく、挙動検証対象部品から出力された信号が当該挙動検証対象部品にフィードバックする場合に、その信号を所望する故障内容に応じて加工するためのモデルである。この故障注入モデル３１の構成及び機能は故障注入モデル３０と同様であるため、ここでの説明は省略する。
【００４７】
（３）故障注入モデルの処理
次に、かかる故障注入モデル３０，３１の処理について説明する。なお、以下においては、説明の対象が図６において第１のＩＣモデル２０及びマイコンモデル２１間に挿入された故障注入モデル３０であるものとし、各種処理の主体をこの故障注入モデル３０として説明するが、実際上は、シミュレーションアプリ７（図１）に基づいてＣＰＵ２（図１）がその処理を実行することは言うまでもない。
【００４８】
また以下に説明する処理は、マイコンの各入力端子のうち、故障注入モデル３０の第１の入力端子４１Ａ（図７）に対応する入力端子（以下、これをマイコンの第１の入力端子と呼ぶ）について「追従」、「固着」、「ゲイン」又は「中間」の故障が発生した場合のマイコンの挙動をマイコンモデル２１でシミュレートさせるシミュレーションの実行時における故障注入モデル３０の処理内容であるものとする。
【００４９】
なお、「追従」及び「中間」のシミュレーションでは、マイコンの第１の入力端子が、故障注入モデル３０の第２の入力端子４１Ａ（図７）と対応付けられた当該マイコンの入力端子（以下、これをマイコンの第２の入力端子と呼ぶ）とショートした場合のマイコンの挙動をマイコンモデル２１によりシミュレートするものとする。
【００５０】
図８は、このようなシミュレーションの実行時における故障注入モデル３０の処理内容を示す。かかるシミュレーションが開始されると、故障注入モデル３０は、マイコンの第１の入力端子の状態を取得する（Ｓ１）。この判断は、制御レジスタ４７（図７）に設定された上述の故障条件パラメータを取得することにより行われる。
【００５１】
続いて、故障注入モデル３０は、ステップＳ１で取得した故障条件パラメータに基づいて、マイコンの第１の入力端子の状態が「追従」、「固着」、「ゲイン」及び「中間」のうちのいずれかに設定されているか否か（故障注入の設定がなされているか否か）を判断する（Ｓ２）。
【００５２】
この判断で否定結果を得ることは、そのとき実行すべきシミュレーションが、マイコンに「追従」、「固着」、「ゲイン」及び「中間」のいずれの故障も発生していない状態についてのシミュレーションであり、従って、図９（Ａ）に示すように、故障注入モデル３０が、第１のＩＣモデル２０から各入力端子４１Ａ〜４６Ａに与えられる信号をそれぞれそのまま対応する出力端子４１Ｂ〜４６Ｂから出力すべきことを意味する。
【００５３】
かくして、このとき故障注入モデル３０は、第１の入力端子４１Ａに対応付けて設定される状態Ａを、対応する入力端子４１Ａの現在の状態に設定すると共に（Ｓ３）、第１の出力端子４１Ｂの状態を状態Ａに設定する（Ｓ６）。なお、故障注入モデル３０は、この際、第１の入力端子４１Ａ以外の入力端子４２Ａ〜４６Ａにそれぞれ対応付けて設定される状態Ａについても、対応する入力端子４２Ａ〜４６Ａの現在の状態に設定する（Ｓ３）と共に、各出力端子４２Ｂ〜４６Ｂの状態をそれぞれ対応する状態Ａに設定する（Ｓ６）。そして故障注入モデル３０は、この後、この処理を終了する。
【００５４】
従って、この場合、図９（Ｂ）のように第１のＩＣモデル２０（図６）から故障注入モデル３０の第１及び第２の入力端子４１Ａ，４２Ａにそれぞれ与えられた信号ＳＩＮ１，ＳＩＮ２は、加工されることなく９図（Ｃ）のようにそのままの状態で第１の出力端子４１Ｂ，４２Ｂから第１の出力信号ＳＯＵＴ１，ＳＯＵＴ２としてそれぞれ出力され、これがマイコンモデル２１（図６）に与えられる。
【００５５】
これに対して、第１の故障注入モデル３０は、ステップＳ２の判断で肯定結果を得ると、そのとき制御レジスタ４７に設定されている故障の種類（「追従」、「固着」、「ゲイン」又は「中間」）に応じた処理を実行する（Ｓ４）。
【００５６】
例えば、制御レジスタ４７に設定された故障条件パラメータに基づく故障の内容が、故障の種類が「追従」であり、第１の故障注入モデル３０の第１の入力端子４１Ａから入力する信号を、当該第１の故障注入モデル３０の第２の入力端子４２Ａに与えられる信号に追従させるという内容であったものとする。つまり、このシミュレーションは、故障注入モデル３０の第１の入力端子４１Ａ（図７）及び第２の入力端子４２Ａ（図７）にそれぞれ対応するマイコンの２つの入力端子（以下、これらをそれぞれマイコンの第１及び第２の入力端子と呼ぶ）間がショートし、又は、マイコンの第１の入力端子と接続される第１のＩＣ部品の出力端子（以下、これを第１のＩＣ部品の第１の出力端子と呼ぶ）が、マイコンの第２の入力端子４２Ａ（図７）と接続される当該第１のＩＣ部品の出力端子（以下、これを第１のＩＣ部品の第２の出力端子と呼ぶ）とショートし、故障注入モデル３０の第１の入力端子４１Ａに入力する信号が、当該故障注入も出る３０の第２の入力端子４２Ａに入力する信号に追従するようになった場合のマイコンの挙動をマイコンモデルでシミュレートするシミュレーションである。
【００５７】
この場合、第１の故障注入モデル３０は、ステップＳ４において、図１０（Ａ）に示すように、第１の出力端子４１Ｂの接続先を第１の入力端子４１Ａから第２の入力端子４２Ａに切り替える。
【００５８】
また故障注入モデル３０は、この後、第１の入力端子４１Ａに対応する状態Ａを第２の入力端子４２Ａの状態に設定すると共に、これ以外の入力端子４２Ａ〜４６Ａにそれぞれ対応する状態Ａを、図９の場合と同様に、対応する入力端子４２Ａ〜４６Ａの状態にそれぞれ設定する（Ｓ５）。さらに第１の故障注入モデル３０は、この後、各出力端子４１Ｂ〜４６Ｂの状態をそれぞれ対応する状態Ａに設定する（Ｓ６）。そして故障注入モデル３０は、この後、この処理を終了する。
【００５９】
従って、この場合、図１０（Ｂ）のように第１のＩＣモデル２０（図６）から第１の故障注入モデル３０の第１の入力端子４１Ａに与えられた信号ＳＩＮ１は、図１０（Ｃ）のように第１のＩＣモデル２０から第１の故障注入モデル３０の第２の入力端子４２Ａに与えられた信号ＳＩＮ２に追従するよう加工されて第１の出力端子４１Ｂから第１の出力信号ＳＯＵＴ１として出力され、これがマイコンモデル２１の第１の入力端子に与えられる。
【００６０】
また制御レジスタ４７に設定された故障条件パラメータに基づく故障の内容が、故障の種類が「固着」であり、第１の故障注入モデル３０の第１の入力端子４１Ａに信号が入力しないという内容であったものとする。つまり、このシミュレーションは、マイコンの第１の入力端子又は第１のＩＣ部品の第１の出力端子がオープン状態となった場合のマイコンの挙動をマイコンモデル２１でシミュレートするシミュレーションである。
【００６１】
この場合、故障注入モデル３０は、ステップＳ４において、図１１（Ａ）に示すように、第１の入力端子４１Ａから入力する信号を制御レジスタ４７に設定された故障条件パラメータにより指定された信号レベルを維持する信号に加工する。
【００６２】
そして故障注入モデル３０は、この後、第１の入力端子４１Ａに対応する状態ＡをステップＳ４の加工結果に設定し、これ以外の各入力端子４２Ａ〜４６Ａの状態Ａを、図９の場合と同様に、対応する入力端子４２Ａ〜４６Ａの状態にそれぞれ設定する（Ｓ５）。さらに第１の故障注入モデル３０は、各出力端子４１Ｂ〜４６Ｂの状態をそれぞれ対応する状態Ａに設定する（Ｓ６）。そして故障注入モデル３０は、この後、この処理を終了する。
【００６３】
従って、この場合、図１１（Ｂ）のように第１のＩＣモデル２０（図６）から第１の故障注入モデル３０の第１の入力端子４１Ａに与えられた信号ＳＩＮ１は、図１１（Ｃ）のように制御レジスタ４７に設定された故障条件パラメータにより指定された一定の信号レベルに加工されて第１の出力端子４１Ｂから第１の出力信号ＳＯＵＴ１として出力され、これがマイコンモデル２１の第１の入力端子に与えられる。
【００６４】
一方、制御レジスタ４７に設定された故障条件パラメータに基づく故障の内容が、故障の種類が「ゲイン」であり、第１の故障注入モデル３０の第１の入力端子４１Ａから入力する信号の信号レベルを、故障条件パラメータにより指定されたゲインを乗算した値に変化させるという内容であったものとする。つまり、このシミュレーションは、第１のＩＣ部品の第１の出力端子から出力される信号レベルが何らかの故障により大きく又は小さくなった場合のマイコンの挙動をマイコンモデル２１でシミュレートするシミュレーションである。
【００６５】
この場合、第１の故障注入モデルは、ステップＳ４において、図１２（Ａ）に示すように、第１の入力端子４１Ａに与えられる信号を、制御レジスタ４７に設定された故障条件パラメータにより指定されたゲイン（利得）を乗算した信号レベルの信号に加工する。
【００６６】
そして第１の故障注入モデル３０は、この後、第１の入力端子４１Ａに対応する状態ＡをステップＳ４の加工結果に設定し、これ以外の各入力端子４２Ａ〜４６Ａの状態Ａを、図９の場合と同様に、対応する入力端子４２Ａ４６Ａの状態に設定する（Ｓ５）。さらに第１の故障注入モデル３０は、各出力端子４１Ｂ〜４６Ｂの状態をそれぞれ対応する状態Ａに設定する（Ｓ６）。そして故障注入モデル３０は、この後、この処理を終了する。
【００６７】
従って、この場合、図１２（Ｂ）のように第１のＩＣモデル２０から第１の故障注入モデル３０の第１の入力端子４１Ａに与えられた信号ＳＩＮ１は、図１２（Ｃ）のように制御レジスタ４７に設定された故障条件パラメータにより指定されたゲインを乗算した信号レベルの信号に加工されて第１の出力端子４１Ｂから第１の出力信号ＳＯＵＴ１として出力され、これがマイコンモデル２１に与えられる。
【００６８】
また制御レジスタ４８に設定された故障条件パラメータに基づく故障の内容が、故障の種類が「中間」であり、故障注入モデル３０の第１の入力端子４１Ａに与えられる信号の信号レベルと、故障注入モデル３０の第２の入力端子４２Ａに与えられる信号の信号レベルとが、これら２つの信号の平均値となるという内容であったものとする。つまり、このシミュレーションは、マイコンの第１及び第２の入力端子間又は第１のＩＣ部品の第１及び第２の出力端子間がショートし、マイコンの第１及び第２の入力端から入力する信号の双方が、いずれも本来的にこれら第１及び第２の入力端子に入力する信号の平均値の信号レベルの信号となった場合のマイコンの挙動をマイコンモデル２１で模擬するシミュレーションである。
【００６９】
この場合、故障注入モデル３０は、ステップＳ４において、図１３（Ａ）に示すように、第１及び第２の入力端子４１Ａ，４２Ａからそれぞれ入力する信号を、これらの平均値のレベルを有する信号にそれぞれ加工する。
【００７０】
そして故障注入モデル３０は、この後、第１及び第２の入力端子４１Ａ，４２Ａにそれぞれ対応する状態ＡをそれぞれステップＳ４の加工結果に設定し、これ以外の各入力端子４３Ａ〜４６Ａの状態Ａを、図９の場合と同様に、対応する入力端子４３Ａ〜４６Ａの状態にそれぞれ設定する（Ｓ５）。さらに故障注入モデル３０は、各出力端子４１Ｂ〜４６Ｂの状態をそれぞれ対応する状態Ａに設定する（Ｓ６）。そして故障注入モデル３０は、この後、この処理を終了する。
【００７１】
従って、この場合、図１３（Ｂ）のように第１のＩＣモデル２０から故障注入モデル３０の第１の入力端子４１Ａに与えられた信号ＳＩＮ１と、第１のＩＣモデル２０から故障注入モデル３０の第２の入力端子４２Ａに与えられた信号ＳＩＮ２とのいずれもが、図１３（Ｃ）のようにこれら２つの信号の信号レベルの平均値の信号レベルを有する信号にそれぞれ加工されて故障注入モデル３０の第１及び第２の出力端子４１Ｂ，４２Ｂからそれぞれ第１の出力信号ＳＯＵＴ１又は第２の出力信号ＳＯＵＴ２として出力され、これがマイコンモデル２１の第１及び第２の入力端子にそれぞれ与えられる。
【００７２】
（４）本実施の形態の効果
以上のように本実施の形態のシミュレーション装置１では、マイコン系シミュレータ１０Ａにおけるマイコンモデル２１の前後に、当該マイコンモデル２１に入力し又は当該マイコンモデル２１から出力する信号を設定された故障内容に応じて加工する故障注入モデル３０，３１を挿入できるため、マイコンモデル２１の前後に配置される第１のＩＣモデル２０や第２のＩＣモデル２１を改変して特別な故障注入機能をもたせることなく、種々の故障内容の故障発生時におけるマイコンの挙動をシミュレートすることができる。従って、本シミュレーション装置１によれば、故障注入を容易化し、組込みシステムの開発を迅速化させることができる。
【００７３】
（５）他の実施の形態
なお上述の実施の形態においては、本発明を組込みシステム全体の挙動をシミュレートするシミュレーション装置１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステムの挙動をシミュレートするシミュレーション装置に広く適用することができる。この場合、挙動検証対象部品としては、そのシステムにおいて挙動検証対象とする部品とすればよい。
【００７４】
また上述の実施の形態においては、故障注入モデル３０，３１において実現可能な故障内容が「追従」、「固着」、「ゲイン」及び「中間」の４つである場合について述べたが、本発明はこれに限らず、この他種々の故障に対応できるようにしてもよい。
【００７５】
さらに上述の実施の形態においては、ハブシミュレータ１１が、部品別シミュレータ１０間のデータの交換を自己のサンプリング周期で行うことにより、各部品別シミュレータ１０のシミュレーション時間を自己のサンプリング周期に同期させるようにした場合について述べたが、本発明はこれに限らず、ハブシミュレータ１１が、別々のサンプリング周期で動作する各部品別シミュレータ１０のシミュレーション時間を、自己のサンプリング周期に同期させる方法としては、この他種々の方法を広く適用することができる。
【産業上の利用可能性】
【００７６】
本発明は種々のシミュレーション装置に広く適用することができる。
【符号の説明】
【００７７】
１……シミュレーション装置、２……ＣＰＵ、３……メモリ、７……シミュレーションアプリ、１０……部品別シミュレータ、１１……ハブシミュレータ、２０，２２……ＩＣモデル、２１……マイコンモデル、３０，３１……故障注入モデル、４１Ａ〜４６Ａ……入力端子、４１Ｂ〜４６Ｂ……出力端子、４７……制御レジスタ。
【図１】
2019174874.tif 000003
【図２】
2019174874.tif 000004
【図３】
2019174874.tif 000005
【図４】
2019174874.tif 000006
【図５】
2019174874.tif 000007
【図６】
2019174874.tif 000008
【図７】
2019174874.tif 000009
【図８】
2019174874.tif 000010
【図９】
2019174874.tif 000011
【図１０】
2019174874.tif 000012
【図１１】
2019174874.tif 000013
【図１２】
2019174874.tif 000014
【図１３】
2019174874.tif 000015