(57)【要約】【課題】電子システム内の一部を削除したモデルを作成してシミュレーションを行うシステムレベルシミュレーションにおけるトランザクション作成の負担軽減。【解決手段】複数のモジュール21,22, 23, 25を備える電子システム20をシステムレベルでシミュレーションするシステムレベルシミュレーション方法で、対象モジュール21と他のモジュールとの間にトランザクション再生器40を配置し、１回目のシミュレーションでは、対象モジュールトランザクション再生器へ入力されるトランザクション情報を監視して、トランザクショントレース情報として記憶し、２回目以降のシミュレーションでは、対象モジュールの少なくとも一部の機能を停止し、トランザクショントレース情報から生成したトランザクションを、対象モジュールおよび他のモジュールに出力する。【選択図】図４
2011081560.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション方法であって、
前記複数のモジュールのうちのモジュールから入力または出力されるトランザクション情報を監視または再生する対象となる対象モジュールと他のモジュールとの間にトランザクション再生器を配置し、
１回目の前記電子システムのシミュレーションでは、前記トランザクション再生器が、前記対象モジュールから前記トランザクション再生器へ入力される前記トランザクション情報を、前記トランザクション再生器で監視して、トランザクショントレース情報として記憶し、
２回目以降の前記電子システムのシミュレーションでは、前記対象モジュールの少なくとも一部の機能を停止し、前記トランザクション再生器が、前記トランザクショントレース情報から生成したトランザクションを、前記対象モジュールおよび前記他のモジュールに出力することことを特徴とするシステムレベルシミュレーション方法。
【請求項２】
前記トランザクション再生器は、
前記対象モジュールに接続される第１インターフェースと、
前記他のモジュールに接続され、前記第１インターフェースとの間で前記トランザクション情報が伝送される第２インターフェースと、
前記第１インターフェースから前記第２インターフェースへの前記トランザクション情報を前記トランザクショントレース情報として記憶するトランザクションモニタリング記憶部と、
前記トランザクションモニタリング記憶部に記憶した前記トランザクショントレース情報から生成したトランザクションと前記第１インターフェースからのトランザクションのいずれかを選択して前記第２インターフェースに出力するトランザクションマージ部と、
前記第１インターフェースから前記トランザクションマージ部へのトランザクションの伝送を実行または停止するトランザクションマスク部と、
を備える請求項１に記載のシステムレベルシミュレーション方法。
【請求項３】
前記トランザクション再生器は、前記トランザクションモニタリング記憶部、前記トランザクションマージ部、および、
前記トランザクションマスク部を制御するトランザクション管理情報を記憶するトランザクション管理情報記憶部、
をさらに備える請求項２に記載のシステムレベルシミュレーション方法。
【請求項４】
前記第１インターフェースおよび前記第２インターフェースは、入出力インターフェースであり、
前記トランザクションモニタリング記憶部は、前記第１インターフェースから前記第２インターフェースへのトランザクションを第１トランザクショントレース情報として記憶すると共に、前記第２インターフェースから前記第１インターフェースへのトランザクションを第２トランザクショントレース情報として記憶し、
前記トランザクションマージ部は、前記第１トランザクショントレース情報から生成した第１トランザクションと前記第１インターフェースからのトランザクションのいずれかを選択して前記第２インターフェースに出力する第１マージ部と、前記第２トランザクショントレース情報から生成した第２トランザクションと前記第２インターフェースからのトランザクションのいずれかを選択して前記第１インターフェースに出力する第２マージ部と、を備え、
前記トランザクションマスク部は、前記第１インターフェースから前記トランザクションマージ部へのトランザクション伝送を実行または停止する第１マスク部と、前記第２インターフェースから前記トランザクションマージ部へのトランザクション伝送を実行または停止する第２マスク部と、を備える請求項２に記載のシステムレベルシミュレーション方法。
【請求項５】
前記トランザクション再生器は、３個以上の複数の入出力インターフェースを備え、
前記トランザクション再生器は、
前記複数の入出力インターフェース間でのトランザクションの送信経路を切り替えるインターコネクション部を、さらに備え、
前記トランザクションモニタリング記憶部は、前記複数の入出力インターフェースからのトランザクションを複数のトランザクショントレース情報として記憶し、
前記トランザクションマージ部は、前記複数のトランザクショントレース情報から生成した複数のトランザクションと前記複数の入出力インターフェースからのトランザクションの対応する組をおいていずれかを選択して前記インターコネクション部に出力する複数のマージ部を、備え、
前記トランザクションマスク部は、前記複数の入出力インターフェースから前記複数のマージ部への対応する組におけるトランザクション伝送を実行または停止する複数の入力マスク部と、前記インターコネクション部から前記複数の入出力インターフェースへのトランザクション伝送を実行または停止する複数の出力マスク部と、を備え、
前記トランザクション再生器を、複数の対象モジュールと他のモジュールとの間に配置する請求項４に記載のシステムレベルシミュレーション方法。
【請求項６】
前記トランザクション再生器は、トランザクション管理情報により制御され、
前記トランザクション管理情報は、先頭アドレスおよびメモリ領域サイズで決定されるメモリ領域ごとに、
入力トランザクションをモニタして、トランザクショントレース情報として記憶するかしないかを制御するトランザクション制御情報と、
入力トランザクションを伝送するかしないかを制御するトランザクションマスク情報と、
前記トランザクショントレース情報から、トランザクションを発生するかしないかを制御するトランザクション発生情報と、
を備える請求項１に記載のシステムレベルシミュレーション方法、または、それを用いるプログラム、または、そのプログラムの記憶媒体。
【請求項７】
前記対象モジュールは、通常動作するか停止するかを指示するモジュール管理情報により制御され、
モジュール管理情報の指定により前記対象モジュールを停止する場合には、
前記対象モジュールの構成を規定するコンストラクタが、
内部動作部およびトランザクションの出力動作を実現するマスタ部が使用する計算機上のメモリに確保されるワークメモリ領域を確保せず、
前記内部動作部と前記マスタ部を動作しないようにし、
トランザクションの入力動作を実現するスレーブ部を、外部入力の変化で、前記内部動作部を動作しないようにし、
インターフェース部を動作するようにする、
請求項１に記載のシステムレベルシミュレーション方法、または、それを用いるプログラム、または、そのプログラムの記憶媒体。
【請求項８】
１個以上の前記モジュールを備える２個以上のモジュールグループを規定し、
前記モジュールグループ間にトランザクション再生器を配置し、
少なくとも２つの前記モジュールグループ内のすべてのモジュールを通常動作させるか停止させるかを制御するモジュール管理情報と、
前記モジュールグループ内のモジュールの動作状態に応じた前記トランザクション再生器の複数の動作パターンを示すトランザクション管理情報と、
前記モジュール管理情報と前記トランザクション管理情報の対応関係を示す対応情報と、を規定し、
前記モジュール管理情報を参照して前記トランザクション管理情報を変更することにより、前記モジュールグループの動作を変更して、シミュレーションを行う請求項１に記載のシステムレベルシミュレーション方法、または、それを用いるプログラム、または、そのプログラムの記憶媒体。
【請求項９】
前記トランザクション再生器からの前記トランザクショントレース情報の出力は、１回目のシミュレーションでモニタした時刻に行う請求項１から８のいずれか１項に記載のシステムレベルシミュレーション方法、または、それを用いるプログラム、または、そのプログラムの記憶媒体。
【請求項１０】
複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション装置であって、
前記複数のモジュールのうちの対象モジュールと他のモジュールとの間に、入力トランザクションを監視して、トランザクショントレース情報として記憶した後、前記トランザクショントレース情報から生成したトランザクションを出力するトランザクション再生器を配置するトランザクション再生器配置部と、
シミュレーション時に、前記トランザクション再生器が、前記対象モジュールと前記トランザクション再生器との間の入出力トランザクションを監視して、トランザクショントレース情報として記憶するように制御するトランザクションモニタ制御部と、
シミュレーション時に、前記対象モジュールの少なくとも一部の機能を停止し、前記トランザクション再生器が、前記トランザクショントレース情報から生成した前記トランザクションを前記対象モジュールおよび前記他のモジュールに出力するように制御するトランザクション発生制御部と、を備えることを特徴とするシステムレベルシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション方法および装置に関する。
【背景技術】
【０００２】
組み込み用ＬＳＩ、１チップのＬＳＩにシステムを搭載したシステム・オン・チップ（ＳｏＣ）、および家電機器や携帯機器などに組み込まれるマイクロプロセッサ（ＣＰＵ、ＭＰＵ）を有する電子機器のシステムなどが、広く使用されている。これらの電子制御・電子処理システムを、ここでは電子システムと称する。
【０００３】
図１は、電子システム２０の基本構成を示す図である。図１に示すように、電子システム２０は、ＣＰＵ２１と、メインメモリ２２と、周辺デバイス２３と、クロック発生器２４と、バス２５と、を備える。ＣＰＵ２１、メインメモリ２２および周辺デバイス２３は、バス２５を介して接続され、クロック発生器２４から供給されるクロックに同期して動作する。図１に示した例は、電子システム２０の基本構成であり、複数の周辺デバイスが設けられ、メインメモリ２２のほかにキャッシュメモリなどが設けられ、バスも多重に設けられる場合がある。
【０００４】
このような電子システムを開発する作業工程では、電子システムの動作を、電子システムレベル（ＥＳＬ）で模擬的に検証するシステムレベルシミュレーションが行われる。このシステムレベルシミュレーションは、システム内に含まれる電子装置・ハードウエアをモデル化して、シミュレーション装置（シミュレータ）を利用して行う。
【０００５】
シミュレータは、コンピュータのハードウエアとおよびソフトウエアにより実現される。図２は、広く知られているコンピュータ３１のハードウエア構成を示す図である。図２に示すように、コンピュータ３１は、ＣＰＵ１１と、メモリ１２と、記憶装置１３と、表示装置１４と、入力装置１５と、外部メモリであるディスク装置１７を駆動するドライブ装置１６と、バス１８と、を備える。コンピュータについての説明は省略する。
【０００６】
図３は、コンピュータ上で実現されるシミュレータ３０の基本構成およびシミュレータによりシミュレーションされる電子システム２０を示す図である。
【０００７】
図３に示すように、シミュレータ３０は、ハードウエアであるコンピュータ（ホストマシン）３１にソフトウエアを搭載して実現される。搭載されるソフトウエアは、ホストマシンのＯＳ３２と、システムのハードウエア記述言語であるＳｙｓｔｅｍ  Ｃで記載されたＳｙｓｔｅｍ  Ｃライブラリ３３と、電子システムレベル（ＥＳＬ）シミュレータ３４と、シミュレーション制御ツール３５と、ＣＰＵデバッガ３６と、を備える。シミュレーション対象の電子システム２０は、シミュレータ３０上に仮想的に実現される。
【０００８】
図３に示すように、電子システム２０がＣＰＵ２１を備える場合には、ＣＰＵ２１をモデル化して、ＣＰＵ２１以外の部分のハードウエアモデルに組み込み、そのハードウエアモデル内において、ＣＰＵ２１上でソフトウエアを動作させてシミュレーションを行う。ＣＰＵ２１上でのソフトウエアの動作は、ＣＰＵデバッガ３６を利用して行う。
【０００９】
システムレベルシミュレータは、複数の会社から提供されており、広く使用されている。ここでは、システムレベルシミュレータの一般的な説明は省略する。
【００１０】
シミュレーションの対象である電子システムが複雑でかつ大規模になると、その電子システムをシミュレーションするためのシミュレーション時間が長くなる。また、電子システムの規模が大きくなると、シミュレーションプロセスで必要なるメモリ量が増大する。
【００１１】
そこで、シミュレーション時間を短縮し、シミュレーションプロセスで必要になるメモリ量を削減するため、シミュレーションを行う電子システム内の一部を削除したモデルを作成してシミュレーションを行うことが提案されている。例えば、電子システムを、ＣＰＵ２１とＣＰＵ２１以外のその他部分とに分割し、シミュレーション時にＣＰＵ２１から出力するデータをトランザクションとして生成する。ＣＰＵ２１の動作を停止させた状態で、ＣＰＵ２１からトランザクションを出力し、このトランザクションを受けて動作するその他部分のシミュレーションを行う。また、シミュレーション時にその他部分からＣＰＵ２１に入力するデータをトランザクションとして生成し、その他部分の動作を停止させた状態で、ＣＰＵ２１にトランザクションを入力し、このトランザクションを受けて動作するＣＰＵ２１のシミュレーションを行う。一般的に、シミュレーション時間およびシミュレーションプロセスで必要なるメモリ量は、回路規模に応じて幾何級数的に増加するので、このようなシミュレーションであれば、シミュレーション時間およびメモリ量を削減できる。トランザクションは、これまでシミュレーションを行うオペレータが作成していた。
【００１２】
なお、上記の例で、その他部分をさらに複数の部分に分割する場合や、ＣＰＵを複数の部分に分割する場合もある。さらに、シミュレーションを行う場合に、ある部分の動作をまったく停止するのではなく、入出力インターフェース部分は動作させることもある。
【００１３】
いずれにしろ、電子システム内の一部を削除したモデルを作成してシミュレーションを行う場合、削減した部分の個数の２乗の数のモデルを作成する必要がある。シミュレーションモデルを複数個作成すると、モデルの管理が煩雑になり、トランザクション作成の負担も増大する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００６−８５３１９号公報
【特許文献２】特開２０００−７６０９７号公報
【特許文献３】特開２００８−２００６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
実施形態は、電子システム内の一部を削除したモデルを作成してシミュレーションを行う場合に、トランザクション作成の負担が軽減されるシステムレベルシミュレーション方法および装置を記載する。
【課題を解決するための手段】
【００１６】
実施形態の第１の態様は、複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション方法であって、複数のモジュールのうちのモジュールから入力または出力されるトランザクション情報を監視または再生する対象となるモジュールと他のモジュールとの間にトランザクション再生器を配置し、１回目の電子システムのシミュレーションでは、トランザクション再生器が、対象モジュールからトランザクション再生器へ入力されるトランザクション情報を、トランザクション再生器で監視して、トランザクショントレース情報として記憶し、２回目以降の電子システムのシミュレーションでは、対象モジュールの少なくとも一部の機能を停止し、トランザクション再生器が、トランザクショントレース情報から生成したトランザクションを、対象モジュールおよび他のモジュールに出力する。
【００１７】
また、実施形態の第２の態様は、複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション装置であって、複数のモジュールのうちの対象モジュールと他のモジュールとの間に、入力トランザクションを監視して、トランザクショントレース情報として記憶した後、トランザクショントレース情報から生成したトランザクションを出力するトランザクション再生器を配置するトランザクション再生器配置部と、シミュレーション時に、トランザクション再生器が、対象モジュールとトランザクション再生器との間の入出力トランザクションを監視して、トランザクショントレース情報として記憶するように制御するトランザクションモニタ制御部と、シミュレーション時に、対象モジュールの少なくとも一部の機能を停止し、トランザクション再生器が、トランザクションを対象モジュールおよび他のモジュールに出力するように制御するトランザクション発生制御部と、を備える。
【発明の効果】
【００１８】
実施形態によれば、電子システム内の一部を削除したモデルを作成してシミュレーションを行う場合に、シミュレーションにより発生したデータをトレース情報として記憶し、トレース情報から生成したトランザクションを使用する。そのため、トランザクションを自動的に作成することが可能で、トランザクション作成の負担が軽減できる。
【００１９】
また、実施形態によれば、トランザクション再生器を配置するだけで、シミュレーションモデルの変更が可能で、トランザクションも容易に作成できるので、モデルの作成および管理が容易になる。
【００２０】
さらに、電子システム内の一部を削除したモデルを作成してシミュレーションを行う場合に得られる、シミュレーション時間の短縮およびメモリ量の削減の効果も同様に得られる。さらに、トランザクション再生器内部では、データを伝送時間ゼロで通過させるように設定できるため、トランザクション再生器の追加によるずれの発生などは生じない。言い換えれば、トランザクション再生器の配置により、シミュレーション精度が影響されることはない。
【図面の簡単な説明】
【００２１】
【図１】図１は、一般的な電子システムの構成を示す図である。
【図２】図２は、シミュレーション装置が実現される、一般的なコンピュータのハードウエア構成を示す図である。
【図３】図３は、コンピュータ上で実現されるシミュレータの基本構成およびシミュレータによりシミュレーションされる電子システムを示す図である。
【図４】図４は、第１実施形態で、コンピュータ上で実現されるシミュレータの基本構成およびシミュレータによりシミュレーションされる電子システムを示す図である。
【図５】図５は、第１実施形態におけるトランザクション再生器の構成を示す図である。
【図６】図６は、第１実施形態におけるシミュレーション動作を示すフローチャートである。
【図７】図７は、トランザクション出力時刻の制御の変形例を示すフローチャートである。
【図８】図８は、第２実施形態におけるトランザクション再生器の構成を示す図である。
【図９】図９は、第２実施形態におけるシミュレーション動作を示すフローチャートである。
【図１０】図１０は、第２実施形態におけるトランザクション管理情報テーブルの例を示す図である。
【図１１】図１１は、第２実施形態におけるトランザクション再生器の変形例の構成を示す図である。
【図１２】図１２は、第３実施形態におけるトランザクション再生器の構成を示す図である。
【図１３】図１３は、第１から第３実施形態で、対象モジュールとされるモジュールの内部を、シミュレーション用に変更するための構成を示す。
【図１４】図１４は、第４実施形態における、複数のモジュールおよびトランザクション再生器を備えるモジュールグループを使用するシミュレーションを説明する図である。
【図１５】図１５は、第４実施形態における、部分停止管理情報およびモジュールの動作設定と再生器のトランザクション管理情報テーブルの対応情報の例を示す図である。
【図１６】図１６は、３個のモジュールおよび２個のトランザクション再生器を備えるモジュールグループを示す図である。
【図１７】図１７は、複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション装置の機能ブロック図である。
【発明を実施するための形態】
【００２２】
図４は、第１実施形態において、コンピュータ上で実現されるシミュレータ３０の基本構成およびシミュレータによりシミュレーションされる電子システム２０の構成を示す図である。
【００２３】
図４に示すように、シミュレータ３０は、ハードウエアであるコンピュータ（ホストマシン）３１にソフトウエアを搭載して実現される。搭載されるソフトウエアは、ホストマシンのＯＳ３２と、システムのハードウエア記述言語であるＳｙｓｔｅｍ  Ｃで記載されたＳｙｓｔｅｍ  Ｃライブラリ３３と、電子システムレベル（ＥＳＬ）シミュレータ３４と、シミュレーション制御ツール３５と、ＣＰＵデバッガ３６と、を備える。第１実施形態では、シミュレーションの対象は、電子システム２０であり、電子システム２０は、シミュレータ３０上に仮想的に実現される。
【００２４】
電子システム２０は、ＣＰＵ２１と、メインメモリ２２と、周辺デバイス２３と、クロック発生器２４と、バス２５と、を備える。ＣＰＵ２１、メインメモリ２２および周辺デバイス２３は、バス２５を介して接続され、クロック発生器２４から供給されるクロックに同期して動作する。第１実施形態における電子システム２０のシミュレーションでは、ＣＰＵ２１をモデル化して、ＣＰＵ２１以外の部分のハードウエアモデルに組み込み、そのハードウエアモデル内において、ＣＰＵ２１上でソフトウエアを動作させてシミュレーションを行う。ＣＰＵ２１上でのソフトウエアの動作は、ＣＰＵデバッガ３６を利用して行う。
【００２５】
さらに、第１実施形態では、シミュレーションを容易に行うために、ＣＰＵ２１とバス２５の間に、トランザクション再生器４０を配置し、一部のシミュレーションを、ＣＰＵ２１の一部を停止させた状態で行う。ここでは、シミュレーション時に一部または全部を停止させるモジュールを対象モジュールと称する。従って、第１実施形態では、ＣＰＵ２１が対象モジュールである。トランザクション再生器４０は、クロック発生器２４からのクロックに同期して動作し、シミュレーション制御ツール３５により制御される。第１実施形態のシミュレータは、トランザクション再生器４０以外の部分は、広く使用されている一般的なシミュレータと同じである。ここでは、トランザクション再生器４０に関係することのみを説明する。
【００２６】
図５は、第１実施形態で使用するトランザクション再生器４０の構成を示す図である。図５に示すように、トランザクション再生器４０は、第１インターフェース４１と、第２インターフェース４２と、トランザクションモニタリング記憶部４３と、トランザクショントレース情報ファイルＩ／Ｏ４４と、トランザクション発生部４５と、トランザクションマージ部４６と、トランザクションマスク部４７と、トランザクション管理情報Ｉ／Ｏ４８と、を備える。第１インターフェース４１は、対象モジュールであるＣＰＵ２１のインターフェースＩＦ−Ａに接続される。第２インターフェース４２は、対象モジュール以外の他のモジュールであるバス（ＩＦ−Ｂ）２５に接続される。また、第１インターフェース４１は、トランザクションマスク部４７およびトランザクションマージ部４６を介して第２インターフェース４２に接続される。トランザクションモニタリング記憶部４３は、第１インターフェース４１から入力されるデータをトランザクショントレース情報として記憶する。トランザクショントレース情報ファイルＩ／Ｏ４４は、トランザクション再生器４０の外部に設けられたトランザクショントレース情報ファイル４９との間でトランザクショントレース情報を入出力する。トランザクション発生部４５は、トランザクショントレース情報ファイルＩ／Ｏ４４がトランザクショントレース情報ファイル４９から読み出したトランザクショントレース情報からトランザクションを発生する。トランザクションマージ部４６は、トランザクション発生部４５が発生したトランザクションと、第１インターフェース４１からのデータのいずれかを選択して第２インターフェース４２にトランザクションとして出力する。トランザクションマスク部４７は、第１インターフェース４１からトランザクションマージ部４６へのデータを伝送または遮断する。トランザクション管理情報Ｉ／Ｏ４８は、トランザクション再生器４０の外部に設けられたトランザクション管理情報ファイル５０からトランザクション管理情報を読み出し、トランザクション管理情報に基づいて、トランザクションモニタリング記憶部４３、トランザクション発生部４５およびトランザクションマスク部４７を制御する。
【００２７】
図６は、第１実施形態におけるシミュレーション動作を示すフローチャートである。
【００２８】
ステップ１０１では、対象モジュールであるＣＰＵ２１を動作させる１回目のシミュレーションを行う。この時、ＣＰＵ２１以外の部分を動作させるか動作させないかは、シミュレーションの内容により適宜決定するが、バス２５は、ＣＰＵ２１からの入力動作のみはシミュレーションすることが望ましい。この場合、トランザクションマスク部４７は第１インターフェース４１から出力されるデータを通過させ、トランザクションマージ部４６はトランザクションマスク部４７からのデータを第２インターフェースに出力するように制御される。これにより、ＣＰＵ２１から出力されるデータは、バス（ＩＦ−Ｂ）２５に入力される。
【００２９】
ステップ１０２は、ステップ１０１と並列に行われ、ＣＰＵ２１を動作させることによりＣＰＵ２１から出力されるデータが第１インターフェース４１に入力される。トランザクションモニタリング記憶部４３は、トランザクション管理情報Ｉ／Ｏ４８から指示されたタイミングで、第１インターフェース４１から出力されるデータをトランザクショントレース情報として記憶する。このトランザクショントレース情報は、トランザクショントレース情報ファイルＩ／Ｏ４４からトランザクショントレース情報ファイル４９に送信されて、記憶される。
【００３０】
なお、トランザクションモニタリング記憶部４３によるデータの記憶は、必要に応じて複数回行われる。トランザクショントレース情報には、トランザクションモニタリング記憶部４３を記憶したシミュレーションにおけるタイミングも合わせて記憶される。
【００３１】
ステップ１０１および１０２が、１回目のシミュレーションであり、ＣＰＵ２１から出力されるデータがトランザクショントレース情報として記憶される。以下、２回目以降のシミュレーションであるステップ１０３から１０６を適宜行う。
【００３２】
ステップ１０３では、対象モジュールであるＣＰＵ２１を停止し、トランザクションマスク部４７は、第１インターフェース４１から出力されるデータを遮断するように制御される。これにより、第１インターフェース４１からのデータは、トランザクションマスク部４７で遮断され、トランザクションマージ部４６に入力しないようになる。トランザクションマージ部４６はトランザクション発生部４５で生成されたトランザクションを第２インターフェース４２に出力するように制御される。
【００３３】
ステップ１０４では、ステップ１０２でトランザクションモニタリング記憶部４３がトランザクショントレース情報を記憶したモニタ時刻まで待機し、モニタ時刻になるとステップ１０５に進む。
【００３４】
ステップ１０５では、トランザクショントレース情報ファイルＩ／Ｏ４４がトランザクショントレース情報ファイル４９からトランザクショントレース情報を読み出す。そして、トランザクション発生部４５が、トランザクショントレース情報に基づいてトランザクションを発生してトランザクションマージ部４６に出力する。トランザクションマージ部４６は、このトランザクションを第２インターフェース４２からバス（ＩＦ−Ｂ）２５に出力する。これにより、１回目のシミュレーションと同じタイミングでトランザクション（データ）がバス（ＩＦ−Ｂ）２５に出力される。
【００３５】
ステップ１０６では、シミュレーションにおけるトランザクションのバス（ＩＦ−Ｂ）２５への出力がすべて終了したかが判定され、終了していなければステップ１０４に戻り、終了していればシミュレーションを終了する。上記のように、トランザクションモニタリング記憶部４３によるデータの記憶が複数回行われ、複数回分のトランザクショントレース情報が記憶される場合がある。その場合には、複数回分のトランザクショントレース情報から、複数回分のトランザクションが、記憶した時のシミュレーションにおけるタイミングも合わせて生成されて出力される。また、２回目以降のシミュレーションが１回のトランザクションの出力で終了せず、同じトランザクショントレース情報から同じトランザクションを発生して複数回出力される場合もある。
【００３６】
以上説明したように、第１実施形態では、１回目のシミュレーションで、ＣＰＵ２１のみを動作させるかまたはＣＰＵ２１およびバス２５を動作させ、２回目以降のシミュレーションで、ＣＰＵ２１以外の部分を動作させる。２回目以降のシミュレーションで必要なＣＰＵ２１からのトランザクションは、１回目のシミュレーションでトランザクション再生器４０により自動的に生成して記憶される。したがって、２回目以降のシミュレーションで必要なＣＰＵ２１からのトランザクションを容易に生成できる。そして、２回目以降のシミュレーションは、生成したトランザクションを使用して実行できる。２回目以降のシミュレーションは、ＣＰＵ２１を動作させないので、シミュレーション時間が短く、少ないメモリ量で実行できる。
【００３７】
第１実施形態では、トランザクションがバス（ＩＦ−Ｂ）２５に出力されるタイミングは、１回目のシミュレーションでトランザクショントレース情報をモニタしたのと同じタイミングであった。しかし、２回目以降のシミュレーションでは、モニタしたのと同じタイミングではなく、必要に応じて出力タイミングを変更することが望ましい。以下、トランザクションの出力タイミングの変形例を、図７を参照して説明する。
【００３８】
図７の（Ａ）は、図６のステップ１０４において、モニタした時刻に指定された時間を加えた時刻になるまで待機する例を示す。加える時間は、例えば、オペレータが指定するか、ＣＰＵ２１以外の部分のシミュレーションで発生した時間ずれに応じて自動的に指定される。
【００３９】
図７の（Ｂ）は、図６のステップ１０４において、外部からトリガが入力されるまで待機する例を示す。トリガは、例えば、ＣＰＵ２１以外の部分のシミュレーションで、ＣＰＵ２１からのトランザクションが必要になった時に発生される。
【００４０】
また、２回目以降のシミュレーションでは、ＣＰＵ２１からのトランザクションが周期的に必要になる場合がある。
【００４１】
前述のように、図６のステップ１０２では、トランザクションモニタリング記憶部４３によるデータの記憶が、必要に応じて複数回行われ、記憶タイミングがトランザクショントレース情報に記憶される。そして、図６のステップ１０２でモニタした時間に合わせてトランザクションが出力される。従って、モニタする時間間隔が一定であれば、トランザクションが周期的に出力される。
【００４２】
外部から時間間隔を指定することも可能であり、図７の（Ｃ）は、このような場合の例を示す。図６のステップ１０４において、指定された時間待機した後、ステップ１０５で、トランザクションを第２インターフェース４２に出力する。ステップ１０６で、トランザクションの出力を継続するか判定し、継続する場合にはステップ１０４に戻る。これにより、指定された時間で周期的にトランザクションが出力される。
【００４３】
なお、２回目以降のシミュレーションで、ＣＰＵ２１からの出力タイミングが変動しても、ＣＰＵ２１以外の部分が正常に動作するかシミュレーションする場合がある。そのような場合には、図７の（Ｃ）のステップ１０４で、指定時間を変動させる。具体的には、指定時間間隔に、指定した時間幅内で任意に変化する時間間隔を加えた時刻まで待機する。例えば、指定時間間隔を０．９ｍｓとし、それに０．２ｍｓ内でランダムに変化する時間間隔を加えた時間待機する。
【００４４】
トランザクションの出力タイミングについて説明したが、他にも各種の変形例が可能であるのは言うまでもない。
【００４５】
図８は、第２実施形態で使用するトランザクション再生器４０の構成を示す図である。第１実施形態では、２回目以降のシミュレーションで対象モジュール（モジュールＡ）であるＣＰＵ２１の動作を停止したが、第２実施形態では、２回目以降のシミュレーションで、ＣＰＵ２１はデータの入力動作は行うことが異なる。
【００４６】
図８に示すように、第２実施形態のトランザクション再生器４０は、第１入出力インターフェース５１Ａと、第２入出力インターフェース５１Ｂと、第１トランザクションモニタリング記憶部４３Ａと、第２トランザクションモニタリング記憶部４３Ｂと、トランザクショントレース情報ファイルＩ／Ｏ４４と、第１トランザクション発生部４５Ａと、第２トランザクション発生部４５Ｂと、第１トランザクションマージ部４６Ａと、第２トランザクションマージ部４６Ｂと、第１トランザクションマスク部４７Ａと、第２トランザクションマスク部４７Ｂと、トランザクション管理情報Ｉ／Ｏ４８と、を備える。
【００４７】
言い換えれば、第２実施形態は、第１実施形態と次のことが異なる。第１実施形態では、第１インターフェースは入力インターフェースで、第２インターフェースは出力インターフェースであったのに対して、第２実施形態では、第１および第２入出力インターフェース５１Ａ、５１Ｂは入出力インターフェースである。さらに、第２実施形態では、第２トランザクションモニタリング記憶部４３Ｂと、第２トランザクション発生部４５Ｂと、第２トランザクションマージ部４６Ｂと、第２トランザクションマスク部４７Ｂと、が設けられている。
【００４８】
第１入出力インターフェース５１Ａは、対象モジュール（モジュールＡ）であるＣＰＵ２１のインターフェースＩＦ−Ａに接続される。第２入出力インターフェース５１Ｂは、対象モジュール以外の他のモジュール（モジュールＢ）であるバス（ＩＦ−Ｂ）２５に接続される。第１トランザクションモニタリング記憶部４３Ａは、第１入出力インターフェース５１Ａから入力されるデータを第１トランザクショントレース情報Ａとして記憶する。第２トランザクションモニタリング記憶部４３Ｂは、第２入出力インターフェース５１Ｂから入力されるデータを第２トランザクショントレース情報Ｂとして記憶する。トランザクショントレース情報ファイルＩ／Ｏ４４は、トランザクション再生器４０の外部に設けられたトランザクショントレース情報ファイル４９との間で第１および第２トランザクショントレース情報Ａ、Ｂを入出力する。第１トランザクション発生部４５Ａは、トランザクショントレース情報ファイルＩ／Ｏ４４がトランザクショントレース情報ファイル４９から読み出した第１トランザクショントレース情報Ａから第１トランザクションＡを発生する。第２トランザクション発生部４５Ｂは、トランザクショントレース情報ファイルＩ／Ｏ４４がトランザクショントレース情報ファイル４９から読み出した第２トランザクショントレース情報Ａから第１トランザクションＢを発生する。第１トランザクションマージ部４６Ａは、第１トランザクション発生部４５Ａが発生した第１トランザクションＡと、第１入出力インターフェース５１Ａからのデータのいずれかを選択して第２入出力インターフェース５１Ｂにトランザクションとして出力する。第２トランザクションマージ部４６Ｂは、第２トランザクション発生部４５Ｂが発生した第２トランザクションＢと、第２入出力インターフェース５１Ｂからのデータのいずれかを選択して第１入出力インターフェース５１Ａにトランザクションとして出力する。第１トランザクションマスク部４７Ａは、第１入出力インターフェース５１Ａから第１トランザクションマージ部４６Ａへのデータを伝送または遮断する。第２トランザクションマスク部４７Ｂは、第２入出力インターフェース５１Ｂから第２トランザクションマージ部４６Ｂへのデータを伝送または遮断する。トランザクション管理情報Ｉ／Ｏ４８は、トランザクション再生器４０の外部に設けられたトランザクション管理情報ファイル５０からトランザクション管理情報を読み出し、トランザクション管理情報に基づいて、第１および第２トランザクションモニタリング記憶部４３Ａおよび４３Ｂ、第１および第２トランザクション発生部４５Ａおよび４５Ｂ、第１および第２トランザクションマスク部４７Ａおよび４７Ｂを制御する。
【００４９】
図９は、第２実施形態におけるシミュレーション動作を示すフローチャートである。
【００５０】
ステップ２０１では、対象モジュールＡであるＣＰＵ２１および対象モジュール以外のモジュールでＣＰＵ２１の動作に直接関係するモジュールＢを動作させる１回目のシミュレーションを行う。この時、ＣＰＵ２１以外のどのモジュールを動作させるか動作させないかは、シミュレーションの負荷などを考慮して適宜決定する。この場合、第１および第２トランザクションマスク部４７Ａおよび４７Ｂは、データをマスクせずに通過させる。また、第１トランザクションマージ部４６Ａは、第１トランザクションマスク部４７Ａからのデータを第２入出力インターフェース５１Ｂに出力するように制御される。第２トランザクションマージ部４６Ｂは、第２トランザクションマスク部４７Ｂからのデータを第１入出力インターフェース５１Ａに出力するように制御される。これにより、ＣＰＵ２１から出力されるデータはバス（ＩＦ−Ｂ）２５に入力され、バス（ＩＦ−Ｂ）２５からのデータがＣＰＵ２１に入力される。
【００５１】
ステップ２０２は、ステップ２０１と並列に行われ、ＣＰＵ２１から出力されるデータが第１入出力インターフェース５１Ａに入力され、（ＩＦ−Ｂ）２５からのデータが第２入出力インターフェース５１Ｂに入力される。第１トランザクションモニタリング記憶部４３Ａは、トランザクション管理情報Ｉ／Ｏ４８から指示されたタイミングで、第１入出力インターフェース５１Ａから出力されるデータを第１トランザクショントレース情報Ａとして記憶する。第２トランザクションモニタリング記憶部４３Ｂは、トランザクション管理情報Ｉ／Ｏ４８から指示されたタイミングで、第２入出力インターフェース５１Ｂから出力されるデータを第２トランザクショントレース情報Ｂとして記憶する。このトランザクショントレース情報は、トランザクショントレース情報ファイルＩ／Ｏ４４からトランザクショントレース情報ファイル４９に送信されて、記憶される。ステップ２０２における動作タイミングなどは、第１実施形態と同様である。
【００５２】
ステップ２０１および２０２が、１回目のシミュレーションであり、２回目以降のシミュレーションであるステップ２０３および２０４を適宜行う。
【００５３】
ステップ２０３では、対象モジュールＡであるＣＰＵ２１の一部の動作を停止し、第１および第２トランザクションマスク部４７Ａおよび４７Ｂがマスク動作を行う。これにより、第１および第２入出力インターフェース５１Ａおよび５１Ｂからのデータは、第１および第２トランザクションマージ部４６Ａおよび４６Ｂに入力しないようになる。第１トランザクションマージ部４６Ａは、第１トランザクション発生部４５Ａで生成されたトランザクションを、第２入出力インターフェース５１Ｂに出力するように制御される。第２トランザクションマージ部４６Ｂは、第２トランザクション発生部４５Ｂで生成されたトランザクションを、第１入出力インターフェース５１Ａに出力するように制御される。
【００５４】
ステップ２０４では、ステップ２０２で記憶した第１トランザクショントレース情報Ａおよび第２トランザクショントレース情報Ｂに基づいて第１トランザクションＡおよび第２トランザクションＢを発生して、適宜出力される。この場合、第１実施形態と同様に、適宜出力タイミングが調整される。
【００５５】
次に、第２実施形態におけるトランザクション管理情報について説明する。トランザクション管理情報は、メモリマップ情報ごとに、トランザクション管理情報を有するトランザクション情報テーブルで管理される。
【００５６】
図１０は、トランザクション情報テーブルの例を示す図であり、（Ａ）は１回目のシミュレーション時のテーブルの値を、（Ｂ）は２回目のシミュレーション時のテーブルの値を示す。
【００５７】
メモリマップ情報は、先頭メモリアドレスと、メモリ領域サイズと、で規定される複数のメモリ領域を備え、各メモリ領域に１回のモニタで生成されたトランザクショントレース情報が記憶される。上記のように、１回目のシミュレーションで、複数回データをモニタして複数回分のトランザクショントレース情報が記憶される場合には、各メモリ領域に順にトランザクショントレース情報が記憶される。
【００５８】
トランザクション情報テーブルは、各メモリ領域ごとに、トランザクションモニタ制御情報、トランザクションマスク情報およびトランザクション発生情報を規定する。トランザクションモニタ制御情報は、トランザクショントレース情報を取得して、その領域に記憶するか否かを規定する。トランザクションマスク情報は、その領域のトランザクショントレース情報を発生して出力するために、マスクするか否かを規定する。トランザクション発生情報は、その領域のトランザクショントレース情報に基づいてトランザクションを発生するか否かを規定する。
【００５９】
図１０の（Ａ）に示すように、１回目のシミュレーションでは、各メモリ領域のトランザクションモニタ制御情報をオンにし、トランザクションマスク情報およびトランザクション発生情報をオフにする。これにより、１回目のシミュレーションでトランザクショントレース情報が取得されて、各メモリ領域に記憶される。
【００６０】
図１０の（Ｂ）に示すように、２回目のシミュレーションでは、１番目のメモリ領域のトランザクションモニタ制御情報をオフにし、トランザクションマスク情報およびトランザクション発生情報をオンにする。これにより、２回目のシミュレーションで、１回目のシミュレーションで取得されて１番目のメモリ領域に記憶されたトランザクショントレース情報に基づいてトランザクションが発生され、第２入出力インターフェース５１Ｂから出力される。他のメモリ領域は、トランザクションモニタ制御情報がオン、トランザクションマスク情報およびトランザクション発生情報がオフの状態が維持される。これにより、２回目のシミュレーションで、トランザクショントレース情報が取得されて、２番目以降のメモリ領域に記憶される。
【００６１】
第２実施形態では、第１実施形態と同様の効果が得られる。
【００６２】
図１１は、第２実施形態の変形例で使用するトランザクション再生器４０の構成を示す図である。図１１のトランザクション再生器４０は、２つの入出力インターフェースを有し、２回目以降のシミュレーションで、第２入出力インターフェース５１Ｂからのトランザクションの出力が行われるが、第１入出力インターフェース５１Ａからのトランザクションの出力は行わない場合に使用される。具体的には、第１実施形態のように２回目以降のシミュレーションで、対象モジュール（モジュールＡ）であるＣＰＵ２１の動作を停止するシミュレーションに使用される。
【００６３】
図１１に示すように、変形例のトランザクション再生器４０は、図８の第２実施形態のトランザクション再生器４０から、第２トランザクションモニタリング記憶部４３Ｂと、第２トランザクション発生部４５Ｂと、第２トランザクションマージ部４６Ｂと、を除いた構成を有する。各部の動作は、第２実施形態と同じなので、詳しい説明は省略する。
【００６４】
図１２は、第３実施形態で使用するトランザクション再生器４０の構成を示す図である。第３実施形態のトランザクション再生器４０は、３つの入出力インターフェースを備えることが、第２実施形態と異なる。
【００６５】
図１２に示すように、第３実施形態のトランザクション再生器４０は、図８の第２実施形態のトランザクション再生器４０に、第３入出力インターフェース５１Ｃと、第３トランザクションモニタリング記憶部４３Ｃと、第３トランザクション発生部４５Ｃと、第３トランザクションマージ部４６Ｃと、第３トランザクションマスク部４７Ｃと、第１出力トランザクションマスク部５３Ａと、第２出力トランザクションマスク部５３Ｂと、第３出力トランザクションマスク部５３Ｃと、インターコネクション部５２と、を加えた構成を備える。第３入出力インターフェース５１Ｃ、第３トランザクションモニタリング記憶部４３Ｃ、第３トランザクション発生部４５Ｃ、第３トランザクションマージ部４６Ｃおよび第３トランザクションマスク部４７Ｃは、第１および第２入出力インターフェース５１Ａ、５１Ｂの対応する要素と同じ構成および機能を備える。
【００６６】
第１から第３出力トランザクションマスク部５３Ａ、５３Ｂおよび５３Ｃは、インターコネクション部５２から、第１から第３入出力インターフェース５１Ａ、５１Ｂおよび５１Ｃへの経路にそれぞれ設けられる。第１から第３トランザクションマージ部４６Ａ、４６Ｂおよび４６Ｃの出力は、インターコネクション部５２に入力され、インターコネクション部５２で出力先が選択されて、第１から第３出力トランザクションマスク部５３Ａ、５３Ｂおよび５３Ｃのいずれかを介して、第１から第３入出力インターフェース５１Ａ、５１Ｂおよび５１Ｃのいずれかから出力される。インターコネクション部５２で、出力先が選択される以外は、各部の動作は第２実施形態と同じなので、詳しい説明は省略する。
【００６７】
第１から第３実施形態では、ＣＰＵ２１と対象モジュール（モジュールＡ）としたが、他のモジュールを対象モジュールとする場合もある。
【００６８】
図１３は、第１から第３実施形態で、対象モジュール（モジュールＡ）とされるモジュールの内部を、シミュレーション用に変更するための構成を示し、（Ａ）はモジュールの内部構成を、（Ｂ）は変更するためのプログラム例を示す。なお、一般的に、シミュレーションにおいて、動作が停止され、トランザクションを出力するように変更されるモジュールをイニシエータと称するので、ここでもその用語を使用する。すなわち、図１３は、イニシエータモジュールの構成を示す。
【００６９】
図１３の（Ａ）に示すように、イニシエータモジュール６０は、イニシエータモジュール６０の構成を記載するコンストラクタ６１と、コンストラクタ６１により記載された内部構成の動作を再現する内部動作部６２と、外部に信号を出力するマスタ部６３と、外部からの信号が入力されるスレーブ部６４と、入出力インターフェース（ＩＦ）部６５と、を備える。
【００７０】
図１３の（Ｂ）に示すように、コンストラクタ６１のプログラムは、通常動作の場合と、イニシエータモジュールとして動作するために停止する場合と、を記載する。通常動作の場合は従来通りの記載を行い、例えば内部動作部６２およびマスタ部６３などが使用するメモリ領域を確保する。これに対して、イニシエータモジュール６０の動作を停止する場合には、コンストラクタ６１は、内部動作部６２およびマスタ部６３などが使用するメモリ領域を確保しないようにし、マスタ部６３を動作しないようにし、ＩＦ部６５を動作させる。さらに、停止時には、コンストラクタ６１は、スレーブ部６４を、外部入力の変化で、内部動作部６４を動作させないように、すなわち、図１３の（Ａ）に示すように、スレーブ部６４から内部動作部６４への信号送信を停止させる。
【００７１】
図１４は、第４実施形態のシミュレータにおいて、シミュレーションモデルを構築する方法を示す図である。図１４の左側の上段に示すように、第４実施形態のシミュレータにおいては、第１モジュール７１と、第２モジュール７２を１つのモジュールグループ７０として取り扱う。図１４の左側の中段に示すように、モジュールグループ７０において、第１モジュール７１の動作を停止して、第１モジュール７１をトランザクション発生器７４とダミースレーブ７５で置き換えてシミュレーションを行う場合がある。また、図１４の左側の下段に示すように、モジュールグループ７０において、第２モジュール７２の動作を停止して、第２モジュール７２をトランザクション発生器７４とダミースレーブ７５で置き換えてシミュレーションを行う場合がある。この場合、図１４の右側に示すように、モジュールグループ７０において、第１モジュール７１と第２モジュール７２の間にトランザクション再生器７６を配置する。モジュールグループ７０は、モジュールグループ内のモジュール名およびそれらが通常動作するか否かを示す部分停止管理情報７７と、グループ内のモジュールの動作パターンに対応したトランザクション再生器の複数のパターンを示すトランザクション管理情報７８と、モジュールの動作設定と再生器のトランザクション管理情報テーブルの対応情報７９と、を備える。シミュレータは、部分停止管理情報７７を参照して、トランザクション管理情報テーブルを変更でき、図１４の左側に示すような構成を取り得る。モジュールの動作設定と再生器のトランザクション管理情報テーブルの対応情報７９は、あらかじめ作成しておく。
【００７２】
図１５の（Ａ）は、部分停止管理情報７７の例を示す図である。図示のように、各モジュールを、通常動作させるか、停止させるか、が規定される。
【００７３】
図１５の（Ｂ）は、モジュールの動作設定と再生器のトランザクション管理情報テーブルの対応情報７９の例を示す図である。図示のように、モジュールグループ内のモジュールの動作設定の組合せとトランザクション再生器のトランザクション発生状態が対応して示されている。
【００７４】
図１５の（Ａ）および（Ｂ）に示すように、モジュールグループ内のモジュール数は３個以上でもよく、トランザクション再生器の個数は２以上でもよい。図１４のように、モジュールグループ内に２個のモジュールが含まれる場合は、トランザクション再生器の個数は１であり、モジュールの動作設定の組合せ数は４である。
【００７５】
図１４に示すモジュールグループ７０を使用してシミュレーションを行う場合、オペレータは、シミュレーションごとに、部分停止管理情報７７を変更して、モジュールグループ７０内の動作状態を決定する。シミュレーションにおいて、トランザクション再生器７０は、部分停止管理情報７７およびトランザクション管理情報テーブルを参照する。そして、トランザクション再生器７０は、参照したトランザクション管理情報テーブルの情報に従って、動作を実行する。
【００７６】
第４実施形態によれば、複数のモデルを作成しなくても、複数のトランザクション管理情報８８などを変更することにより、異なるモデルを作成可能であり、モデル作成、モデル変更およびモデル管理の手間を省くことができる。
【００７７】
第４実施形態において、モジュールグループ内のモジュール数は３個以上でもよく、トランザクション再生器の個数は２以上でもよい。
【００７８】
図１６は、モジュールグループ８０が、第１モジュール８１、第２モジュール８２および第３モジュール８３の３個のモジュールを備える場合の例を示す。図１６の左側に示すように、モジュールグループ８０内で、どのモジュールを停止させて、トランザクション発生器およびダミースレーブ８４Ａ〜８４Ｇに置き換えるかについて、各種の組合せがあり得る。このモジュールグループ８０を、図１６の右側に示すように、３個のモジュールと、第１トランザクション再生器８５と、第２トランザクション再生器８６と、部分停止管理情報８７と、トランザクション管理情報８８と、対応情報８９と、を備えるように表す。第１トランザクション再生器８５は、第１モジュール８１と第２モジュール８２の間に配置され、第２トランザクション再生器８６は、第２モジュール８２と第３モジュール８３の間に配置される。
【００７９】
以上、第１から第４実施形態を説明したが、複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション装置（シミュレータ）を、機能ブロックで表すと、図１７に示すような構成を備える。図１７に示すように、システムレベルシミュレーション装置９０は、トランザクション再生器配置部９１と、トランザクションモニタ制御部９２と、トランザクション発生制御部９３と、を備える。トランザクション再生器配置部９１は、複数のモジュールのうちの対象モジュールと他のモジュールとの間に、入力データをモニタして、トランザクショントレース情報として記憶した後、トランザクショントレース情報から生成したトランザクションを出力する。トランザクションモニタ制御部９２は、シミュレーション時に、トランザクション再生器が、対象モジュールとトランザクション再生器との間の入出力データをモニタして、トランザクショントレース情報として記憶するように制御する。トランザクション発生制御部９３は、シミュレーション時に、対象モジュールの少なくとも一部の機能を停止し、トランザクション再生器が、トランザクショントレース情報から生成したトランザクションを対象モジュールおよび他のモジュールに出力するように制御する。もちろん、図示した機能ブロックに加えて、システムレベルシミュレーション装置９０は、一般的なシミュレーション機能を実現するための機能ブロックを有する。
【００８０】
以上説明したように、実施形態によれば、電子システム内の一部を削除したモデルを作成してシステムレベルのシミュレーションを行う場合に、トランザクション作成の負担が軽減できる。また、実施形態によれば、トランザクション再生器を配置するだけで、シミュレーションモデルの変更が可能で、トランザクションも容易に作成できるので、モデルの作成および管理が容易になる。
【００８１】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【００８２】
以下、実施形態に関し、更に以下の付記を開示する。
（付記１）
複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション方法であって、
前記複数のモジュールのうちの対象モジュールと他のモジュールとの間にトランザクション再生器を、配置し、
１回目の前記電子システムのシミュレーションで、前記対象モジュールと前記トランザクション再生器との間の入出力データを、前記トランザクション再生器でモニタして、トランザクショントレース情報として記憶し、
２回目以降の前記電子システムのシミュレーションは、前記対象モジュールの少なくとも一部の機能を停止し、前記トランザクショントレース情報から生成したトランザクションを、前記トランザクション再生器から前記対象モジュールおよび前記他のモジュールに出力することにより、行なうことを特徴とするシステムレベルシミュレーション方法。（１）（図４）
（付記２）
前記トランザクション再生器は、前記対象モジュールに接続される第１インターフェースと、前記他のモジュールに接続され、前記第１インターフェースとの間でデータが伝送される第２インターフェースと、前記第１インターフェースから前記第２インターフェースへのデータを前記トランザクショントレース情報として記憶するトランザクションモニタリング記憶部と、前記トランザクションモニタリング記憶部に記憶した前記トランザクショントレース情報から生成したトランザクションと前記第１インターフェースからのデータのいずれかを選択して前記第２インターフェースに出力するトランザクションマージ部と、前記第１インターフェースから前記トランザクションマージ部へのデータ伝送を実行または停止するトランザクションマスク部と、を備える付記１に記載のシステムレベルシミュレーション方法。（２）（図５、図６）
（付記３）
前記トランザクション再生器は、前記トランザクションモニタリング記憶部、前記トランザクションマージ部、および前記トランザクションマスク部を制御するトランザクション管理情報を記憶するトランザクション管理情報記憶部、をさらに備える付記２に記載のシステムレベルシミュレーション方法。（３）（図５）
（付記４）
前記トランザクショントレース情報および前記トランザクション管理情報は、前記トランザクション再生器の外部のファイルに記憶し、
前記トランザクション再生器は、前記ファイルとの間で前記トランザクショントレース情報および前記トランザクション管理情報を通信するための前記トランザクショントレース情報ファイルＩ／Ｏおよび前記トランザクション管理情報ファイルＩ／Ｏを、さらに備える付記３に記載のシステムレベルシミュレーション方法。
（付記５）
前記第１インターフェースおよび前記第２インターフェースは、入出力インターフェースであり、
前記トランザクションモニタリング記憶部は、前記第１インターフェースから前記第２インターフェースへのデータを第１トランザクショントレース情報として記憶すると共に、前記第２インターフェースから前記第１インターフェースへのデータを第２トランザクショントレース情報として記憶し、
前記トランザクションマージ部は、前記第１トランザクショントレース情報から生成した第１トランザクションと前記第１インターフェースからのデータのいずれかを選択して前記第２インターフェースに出力する第１マージ部と、前記第２トランザクショントレース情報から生成した第２トランザクションと前記第２インターフェースからのデータのいずれかを選択して前記第１インターフェースに出力する第２マージ部と、を備え、
前記トランザクションマスク部は、前記第１インターフェースから前記トランザクションマージ部へのデータ伝送を実行または停止する第１マスク部と、前記第２インターフェースから前記トランザクションマージ部へのデータ伝送を実行または停止する第２マスク部と、を備える付記２に記載のシステムレベルシミュレーション方法。（４）（図８、図９）
（付記６）
前記トランザクション再生器は、３個以上の複数の入出力インターフェースを備え、
前記トランザクション再生器は、
前記複数の入出力インターフェース間でのデータの送信経路を切り替えるインターコネクション部を、さらに備え、
前記トランザクションモニタリング記憶部は、前記複数の入出力インターフェースからのデータを複数のトランザクショントレース情報として記憶し、
前記トランザクションマージ部は、前記複数のトランザクショントレース情報から生成した複数のトランザクションと前記複数の入出力インターフェースからのデータの対応する組をおいていずれかを選択して前記インターコネクション部に出力する複数のマージ部を、備え、
前記トランザクションマスク部は、前記複数の入出力インターフェースから前記複数のマージ部への対応する組におけるデータ伝送を実行または停止する複数の入力マスク部と、前記インターコネクション部から前記複数の入出力インターフェースへのデータ伝送を実行または停止する複数の出力マスク部と、を備え、
前記トランザクション再生器を、複数の対象モジュールと他のモジュールとの間に配置する付記５に記載のシステムレベルシミュレーション方法。（５）（図１２）
（付記７）
前記トランザクション再生器は、前記対象モジュールに接続される第１入出力インターフェースと、前記他のモジュールに接続され、前記第１入出力インターフェースとの間でデータが伝送される第２入出力インターフェースと、前記第１入出力インターフェースから前記第２入出力インターフェースへのデータを前記トランザクショントレース情報として記憶するトランザクションモニタリング記憶部と、前記トランザクションモニタリング記憶部に記憶した前記トランザクショントレース情報から生成したトランザクションと前記第１入出力インターフェースからのデータのいずれかを選択して前記第２入出力インターフェースに出力するトランザクションマージ部と、前記第１入出力インターフェースから前記トランザクションマージ部へのデータ伝送を実行または停止する第１トランザクションマスク部と、前記第２入出力インターフェースから前記第１入出力インターフェースへのデータ伝送を実行または停止する第２トランザクションマスク部と、を備える付記１に記載のシステムレベルシミュレーション方法。
（付記８）
前記トランザクション再生器は、トランザクション管理情報により制御され、
前記トランザクション管理情報は、先頭アドレスおよびメモリ領域サイズで決定されるメモリ領域ごとに、
入力データをモニタして、トランザクショントレース情報として記憶するかしないかを制御するトランザクション制御情報と、
入力データを伝送するかしないかを制御するトランザクションマスク情報と、
前記トランザクショントレース情報から、トランザクションを発生するかしないかを制御するトランザクション発生情報と、を備える付記１に記載のシステムレベルシミュレーション方法。（６）（図１０）
（付記９）
前記対象モジュールは、通常動作するか停止するかを指示するモジュール管理情報により制御され、
前記対象モジュールが停止する場合には、
前記対象モジュールの構成を規定するコンストラクタは、内部動作部および出力動作を記述するマスタ部が使用するワークメモリ領域を確保せず、
前記マスタ部は動作しないようにし、
スレーブ部は、外部入力の変化で、前記内部動作部が動作しないようにし、
インターフェース部は、動作するようにする付記１に記載のシステムレベルシミュレーション方法。（７）（図１３）
（付記１０）
２個以上の前記モジュールを備えるモジュールグループを決定し、
前記モジュールグループ内のモジュール間にトランザクション再生器を配置し、
前記トランザクション再生器を配置した前記モジュールグループを、
前記モジュールグループ内の各モジュールが、通常動作するか停止するかを制御するモジュール管理情報と、
前記モジュールグループ内の各モジュールの動作状態に応じた前記トランザクション再生器の複数の動作パターンを示すトランザクション管理情報と、
前記モジュール管理情報と前記トランザクション管理情報の対応関係を示す対応情報と、で規定し、
前記モジュール管理情報を参照して前記トランザクション管理情報を変更することにより、前記モジュールグループの動作を変更して、シミュレーションを行う付記１に記載のシステムレベルシミュレーション方法。（８）（図１４、図１５、図１６）
（付記１１）
前記トランザクション再生器からの前記トランザクショントレース情報の出力は、１回目のシミュレーションでモニタした時刻に行う付記１から１０のいずれか１項に記載のシステムレベルシミュレーション方法。（９）（図６）
（付記１２）
前記トランザクション再生器からの前記トランザクショントレース情報の出力は、１回目のシミュレーションでモニタした時刻に指定された時間を加えた時刻に行う付記１から１０のいずれか１項に記載のシステムレベルシミュレーション方法。
（付記１３）
前記トランザクション再生器からの前記トランザクショントレース情報の出力は、外部からトリガが加えられた時刻に行う付記１から１０のいずれか１項に記載のシステムレベルシミュレーション方法。
（付記１４）
前記トランザクション再生器からの前記トランザクショントレース情報の出力は、指定した時間間隔で行う付記１から１０のいずれか１項に記載のシステムレベルシミュレーション方法。
（付記１５）
前記トランザクション再生器からの前記トランザクショントレース情報の出力は、指定した時間間隔に、指定した時間幅内で任意に変化する時間間隔を加えた時間間隔で行う付記１から１０のいずれか１項に記載のシステムレベルシミュレーション方法。
（付記１６）
複数のモジュールを備える電子システムをシステムレベルでシミュレーションするシステムレベルシミュレーション装置であって、
前記複数のモジュールのうちの対象モジュールと他のモジュールとの間に、入力データをモニタして、トランザクショントレース情報として記憶した後、前記トランザクショントレース情報から生成したトランザクションを出力するトランザクション再生器を配置するトランザクション再生器配置部と、
シミュレーション時に、前記トランザクション再生器が、前記対象モジュールと前記トランザクション再生器との間の入出力データをモニタして、トランザクショントレース情報として記憶するように制御するトランザクションモニタ制御部と、
シミュレーション時に、前記対象モジュールの少なくとも一部の機能を停止し、前記トランザクション再生器が、前記トランザクショントレース情報から生成した前記トランザクションを前記対象モジュールおよび前記他のモジュールに出力するように制御するトランザクション発生制御部と、を備えることを特徴とするシステムレベルシミュレーション装置。（１０）（図１７）
【符号の説明】
【００８３】
２０    電子システム
２１    ＣＰＵ
２２    メインメモリ
２３    周辺デバイス
２４    クロック発生器
２５    バス
３１    コンピュータ
３３    Ｓｙｓｔｅｍ  Ｃ  ライブラリ
３４    ＥＳＬシミュレータ
３５    シミュレーション制御ツール
３６    ＣＰＵデバッガ
４０    トランザクション再生器
【図１】
2011081560.tif 000003
【図２】
2011081560.tif 000004
【図３】
2011081560.tif 000005
【図４】
2011081560.tif 000006
【図５】
2011081560.tif 000007
【図６】
2011081560.tif 000008
【図７】
2011081560.tif 000009
【図８】
2011081560.tif 000010
【図９】
2011081560.tif 000011
【図１０】
2011081560.tif 000012
【図１１】
2011081560.tif 000013
【図１２】
2011081560.tif 000014
【図１３】
2011081560.tif 000015
【図１４】
2011081560.tif 000016
【図１５】
2011081560.tif 000017
【図１６】
2011081560.tif 000018
【図１７】
2011081560.tif 000019