(57)【要約】【課題】システムレベルシミュレーションにかかる作業負担の軽減化およびシミュレーション期間の短縮化を図ること。【解決手段】システムレベルシミュレーション装置において、ハードウェアモデル１１０とソフトウェアモデル１２０とのシステムレベルシミュレーションを実行する。そして、アプリケーションプログラム１２３の特定の命令が実行されると、システムレベルシミュレーションの実行を制御する制御用仮想デバイス１１４を呼び出す。そして、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、システムレベルシミュレーションの実行を制御する。【選択図】図１
2010181961.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータをシステムレベルシミュレーション装置として機能させるために、
ハードウェアモデルとソフトウェアモデルとを持つシステムレベルシミュレーションを実行制御する手段として、
前記コンピュータが、前記ハードウェアモデルを実行するための実行手段を有し、
前記ハードウェアモデル内に、
マイクロプロセッサモデルと、
前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルと、
前記マイクロプロセッサモデルと前記特定のモジュールのモデルとの間のバスと、を有し、
前記ソフトウェアモデル内に、
前記特定のモジュールを操作する特定の命令、または、命令列を有し、
前記マイクロプロセッサモデルが前記特定の命令、または、前記命令列を実行した結果、前記特定のモジュールのモデルに対してアクセス要求を出す送出手段と、
前記アクセス要求を伝達する伝達手段と、
前記特定のモジュールのモデルに対するアクセス要求を受け付ける受付手段と、
前記受付手段によって前記アクセス要求を受け付けた場合、前記実行手段を制御して、前記システムレベルシミュレーションを実行制御する実行制御手段と、
を持つことを特徴とするシミュレーション制御プログラム。
【請求項２】
前記受付手段は、
前記特定のモジュールに割り当てられた特定のアドレスに対する書込要求を受け付け、
前記実行制御手段は、
前記特定のアドレスに対する書込要求に基づいて、前記実行手段を制御して、前記システムレベルシミュレーションを実行制御することを特徴とする請求項１に記載のシミュレーション制御プログラム。
【請求項３】
前記コンピュータを、
前記特定のアドレスに対して書き込まれた値に基づいて、前記システムレベルシミュレーションに対する操作の要否を判定する判定手段として機能させ、
前記実行制御手段は、
前記判定手段によって判定された判定結果に基づいて、前記システムレベルシミュレーションに対する操作を実行することを特徴とする請求項２に記載のシミュレーション制御プログラム。
【請求項４】
前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションの実行を終了させることを特徴とする請求項３に記載のシミュレーション制御プログラム。
【請求項５】
前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションのプロセスの優先度を変更することを特徴とする請求項３または４に記載のシミュレーション制御プログラム。
【請求項６】
前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションのプロセスのメモリイメージダンプをすることを特徴とする請求項３〜５のいずれか一つに記載のシミュレーション制御プログラム。
【請求項７】
ハードウェアモデルとソフトウェアモデルとのシステムレベルシミュレーションを実行する実行手段と、
前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルに対するアクセス要求を受け付ける受付手段と、
前記受付手段によって前記アクセス要求を受け付けた場合、前記実行手段を制御して、前記システムレベルシミュレーションを実行する実行制御手段と、
を備えることを特徴とするシミュレーション装置。
【請求項８】
制御手段、記憶手段、およびハードウェアモデルとソフトウェアモデルとのシステムレベルシミュレーションを実行する実行手段を備えるコンピュータが、
前記制御手段により、前記ソフトウェアモデル内の特定の命令が実行された結果、前記ハードウェアモデル内のモジュールのモデルのうち前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルに対するアクセス要求を受け付けて、前記記憶手段に記憶する受付工程と、
前記制御手段により、前記受付工程によって前記アクセス要求を受け付けた場合、前記実行手段を制御して、前記システムレベルシミュレーションを実行する制御工程と、
を実行することを特徴とするシミュレーション制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ハードウェアモデルとソフトウェアモデルとを含む組み込み機器等に内蔵される電子装置等のシステムレベルシミュレーションを制御する技術に関する。
【背景技術】
【０００２】
組み込みプロセッサやＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）が搭載された携帯電話などの電子機器を開発する作業工程では、システムレベルでのシミュレーションがおこなわれることがある。このシステムレベルシミュレーションでは、システム内に含まれる電子装置・ハードウェアをモデル化して、シミュレータを利用してシミュレーションをおこなう。システム内にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を含む場合には、そのＣＰＵをモデル化して、ハードウェアモデルに組み込み、そのハードウェアモデル内のＣＰＵ上でソフトウェアを動作させる。
【０００３】
また、このシステムを記述するための言語としてＳｙｓｔｅｍＣがある。ＳｙｓｔｅｍＣには、シミュレーションの実行、終了、停止などを制御するための構文がある。具体的には、たとえば、ｓｃ＿ｓｔａｒｔ（）は、シミュレーションを指定した時間まで実行させたり、イベントがなくなるまで実行させたりすることができる。
【０００４】
従来においては、半導体試験装置の動作をエミュレートして半導体試験用プログラムの検証をおこなうための各種技術が提供されている。たとえば、半導体デバイスの試験用の技術として、アナログ出力端子を有する被検査用半導体デバイスに試験信号が入力されたときに、対応して出力される試験信号を擬似的に発生させるものがある（たとえば、下記特許文献１参照。）。
【０００５】
また、論理回路の論理シミュレーションにおいて、１つの試験命令を実行するたびに、その結果値と期待値とを比較することで、試験対象論理回路モデルに不良が発生した場合に、不良の要因である試験命令を抽出する技術がある（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３３３４６９号公報
【特許文献２】特開平５−６１９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のシステムレベルシミュレーションでは、システム内のＣＰＵ上で動作するアプリケーションから、システムレベルシミュレーション自体を制御する手段がなかった。このため、アプリケーションが特定のポイントまで実行されたときに、システムレベルシミュレーションの実行を自動制御することが難しいという問題がある。
【０００８】
具体的には、たとえば、アプリケーションが特定のポイントまで実行されたときにシステムレベルシミュレーションを終了させたい場合がある。このような場合、ユーザが、システムレベルシミュレーションの進行状況を監視し、アプリケーションの特定のポイントまで実行されたことを確認して、システムレベルシミュレーションを終了させるなどの面倒な作業が必要となる。
【０００９】
また、特定のポイントまで実行されたことをユーザが見過ごしてしまうと、最悪の場合、最初からシステムレベルシミュレーションをやり直す必要があり、シミュレーション期間の長期化を招くという問題がある。さらに、システムレベルシミュレーションに使用できる計算機リソースやライセンスリソースには限りがあるため、あるシスレムレベルシミュレーションが長期化するほど、他のシステムレベルシミュレーションの長期化を引き起こすという問題がある。
【００１０】
本開示技術は、上述した従来技術による問題点を解消するため、システムレベルシミュレーションにかかる作業負担の軽減化およびシミュレーション期間の短縮化を図るシミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本開示技術は、ハードウェアモデルとソフトウェアモデルとを含むシステムレベルシミュレーションを実行し、前記ソフトウェアモデルの特定の命令が実行された結果、前記ハードウェアモデル内のモジュールのモデルのうち前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルに対するアクセス要求を受け付け、前記アクセス要求を受け付けた場合、前記システムレベルシミュレーションを実行制御することを要件とする。
【００１２】
本開示技術によれば、システム内のＣＰＵ上で動作するアプリケーションから、システムレベルシミュレーションを制御することができる。
【発明の効果】
【００１３】
本シミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法によれば、システムレベルシミュレーションにかかる作業負担の軽減化およびシミュレーション期間の短縮化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】システムレベルシミュレーション装置のシステム構成図（その１）である。
【図２】ホストマシンのハードウェア構成を示すブロック図である。
【図３】ホストマシンの機能的構成を示すブロック図である。
【図４】制御用仮想デバイスの機能に関する記述例を示す説明図である。
【図５】制御用仮想デバイスの終了の機能に関する記述例を示す説明図である。
【図６】制御用仮想デバイスの優先度制御の機能に関する記述例を示す説明図である
【図７】制御用仮想デバイスのイメージダンプの機能に関する記述例を示す説明図（その１）である。
【図８】制御用仮想デバイスのイメージダンプの機能に関する記述例を示す説明図（その２）である。
【図９】制御用仮想デバイスの停止の機能に関する記述例を示す説明図である。
【図１０】システムレベルシミュレーション装置のシステム構成図（その２）である。
【図１１】ホストマシンのシミュレーション制御処理手順の一例を示すフローチャートである。
【図１２】シミュレーション制御処理の具体的な処理手順の一例を示すフローチャート（その１）である。
【図１３】シミュレーション制御処理の具体的な処理手順の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、この発明にかかるシミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法の好適な実施の形態を詳細に説明する。なお、本明細書において、シミュレーション装置とは、シミュレーション制御プログラムがインストールされたホストマシンである。
【００１６】
（システムレベルシミュレーション装置（システムレベルシミュレータ）のシステム構成）
まず、実施の形態にかかるシステムレベルシミュレーションを実行するホストマシン１００に構築されるシステムレベルシミュレーション装置のシステム構成について説明する。図１は、システムレベルシミュレーション装置のシステム構成図（その１）である。図１において、システムレベルシミュレーション装置は、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）１０１と、ＥＳＬ（Ｅｌｅｃｔｒｏｎｉｃ  ｓｙｓｔｅｍ  ｌｅｖｅｌ）シミュレータカーネル１０２と、ＳｙｓｔｅｍＣライブラリ１０３と、シミュレーション対象１０４と、システムレベルシミュレーション実行するホストマシン１００と、を有している。
【００１７】
ＯＳ１０１は、システムレベルシミュレーション実行するホストマシン１００全体を管理するソフトウェアプログラムである。ＥＳＬシミュレータカーネル１０２は、シミュレーション対象１０４の動作を電子システムレベルで模擬するためのシミュレータである。ＳｙｓｔｅｍＣライブラリ１０３は、特定の機能のプログラムを他のプログラムから利用可能に部品化し、アーカイブ化やライブラリ化された電子ファイルにまとめたものである。
【００１８】
ここで、シミュレーション対象１０４のハードウェアモデル１１０は、ＣＰＵ１１１と、メインメモリ１１２と、周辺デバイス１１３と、制御用仮想デバイス１１４と、バス１１５と、を含む構成である。また、各構成部はバス１１５によってそれぞれ接続されている。
【００１９】
ＣＰＵ１１１は、ソフトウェアモデル１２０を実行できるソフトウェアモジュールである。メインメモリ１１２は、ＣＰＵ１１１のプログラム格納エリアやデータ格納エリアやワークエリアの記憶装置（メモリ）として使用されるソフトウェアモジュールである。周辺デバイス１１３は、入出力装置（Ｉ／Ｏ）などの周辺装置（不図示）を制御するためのソフトウェアモジュールである。制御用仮想デバイス１１４は、システムレベルシミュレーションの実行を制御するためのソフトウェアモジュールである。
【００２０】
また、ソフトウェアモデル１２０は、ＯＳ１２１と、制御用仮想デバイスドライバ１２２と、アプリケーションプログラム１２３と、を含む構成である。ＯＳ１２１は、ハードウェアモデル１１０の一部（メインメモリ１１２、周辺デバイス１１３）やアプリケーションプログラム１２３、制御用仮想デバイスドライバ１２２などを管理するＣＰＵ１１１上で動作するソフトウェアプログラムである。制御用仮想デバイスドライバ１２２は、制御用仮想デバイス１１４を操作するためのソフトウェアプログラムである。
【００２１】
アプリケーションプログラム１２３は、ＣＰＵ１１１上で動作させるユーザプログラムである。このアプリケーションプログラム１２３には、制御用仮想デバイス１１４のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を用いて、任意のポイントで各種操作を実行するための操作指示が記述されている。操作としては、たとえば、システムレベルシミュレーションの実行を終了させるものがある。
【００２２】
ここで、システムレベルシミュレーションのシステム概要について説明する。（１）ＥＳＬシミュレータカーネル１０２が、ＳｙｓｔｅｍＣライブラリ１０３と連携して、シミュレーション対象１０４のハードウェアモデル１１０を実行する。ハードウェアモデル１１０内のＣＰＵ１１１は、ＯＳ１２１、アプリケーションプログラム１２３を実行する。（２）アプリケーションプログラム１２３の実行中に制御用仮想デバイス１１４を操作するため、制御用仮想デバイスドライバ１２２のＡＰＩが呼び出される。
【００２３】
（３）ＡＰＩの呼び出しによって、ＯＳ１２１が、制御用仮想デバイスドライバ１２２にＡＰＩの呼び出しを通知し、ＣＰＵ１１１が制御用仮想デバイスドライバ１２２を実行する。（４）ＣＰＵ１１１が、バス１１５を介して、制御用仮想デバイス１１４の特定のアドレスに対してアクセスする。（５）制御用仮想デバイス１１４が、ＥＳＬシミュレータカーネル１０２やＯＳ１０１に対して指示を出して、システムレベルシミュレーションに対してＡＰＩで指示された操作を実行する。
【００２４】
これにより、ハードウェアモデル１１０内のＣＰＵ１１１上で動作しているアプリケーションプログラム１２３から、システムレベルシミュレーションを制御することができる。この結果、アプリケーションプログラム１２３が特定のポイントまで実行されたときに、システムレベルシミュレーションに対する任意の操作を実行することができる。
【００２５】
（ホストマシンのハードウェア構成）
つぎに、実施の形態にかかるホストマシン１００のハードウェア構成について説明する。図２は、ホストマシンのハードウェア構成を示すブロック図である。図２において、ホストマシン１００は、ＣＰＵ２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２６】
ここで、ＣＰＵ２０１は、ホストマシン１００の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２７】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２８】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２９】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３０】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３１】
スキャナ２１２は、画像を光学的に読み取り、ホストマシン１００内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３２】
（ホストマシンの機能的構成）
つぎに、実施の形態にかかるホストマシン１００の機能的構成について説明する。図３は、ホストマシンの機能的構成を示すブロック図である。図３において、ホストマシン１００は、実行部３０１と、受付部３０２と、実行制御部３０３と、判定部３０４と、出力部３０５と、を含む構成である。
【００３３】
この制御部となる機能（実行部３０１〜出力部３０５）は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。
【００３４】
実行部３０１は、ハードウェアモデルとソフトウェアモデルとのシステムレベルシミュレーションを実行する機能を有する。ここで、ハードウェアモデルとは、ハードウェアの機能をＣ／Ｃ＋＋、ＳｙｓｔｅｍＣなどで記述したプログラムによって実現するモデルである。ソフトウェアモデルとは、ハードウェアモデル内のＣＰＵ上で動作するプログラムである。
【００３５】
具体的には、たとえば、ＥＳＬシミュレータカーネル１０２（図１参照）が、システムレベルシミュレーションを実行する。そうすると、ハードウェアモデル１１０内のＣＰＵ１１１が実行され、ＣＰＵ１１１はその上で動作するアプリケーションプログラム１２３を実行する。なお、ＥＳＬシミュレータカーネル１０２は、システムレベルシミュレーションの実行を制御する機能を有している。
【００３６】
ＣＰＵ１１１は、アプリケーションプログラム１２３の特定の命令、または、命令列が実行された結果、システムレベルシミュレーションの実行を制御する特定のモジュールのモデル（制御用仮想デバイス１１４）に対してアクセス要求を出す機能を有する。バス１１５等は、マイクロプロセッサモデル（ＣＰＵ１１１）と制御用仮想デバイス１１４との間のアクセス要求を伝達する機能を有する。
【００３７】
受付部３０２は、システムレベルシミュレーションの実行を制御する特定のモジュールに対するアクセス要求を受け付ける機能を有する。ここで、特定のモジュールとは、たとえば、図１に示したハードウェアモデル１１０内の制御用仮想デバイス１１４である。なお、制御用仮想デバイス１１４は、システムレベルシミュレーションを制御するために付加されるソフトウェアモジュールであり、電子機器に実際に搭載される物理的なモジュールではない。
【００３８】
特定の命令とは、たとえば、制御用仮想デバイス１１４の機能を利用するためのＡＰＩを呼び出すための命令または命令列である。アクセス要求とは、たとえば、制御用仮想デバイス１１４に割り当てられた特定のアドレスに対する書込要求である。また、特定のアドレスとは、たとえば、制御用仮想デバイス１１４が有するレジスタのアドレスであり、システムレベルシミュレーションに対する操作の内容と関連付けられている。
【００３９】
具体的には、たとえば、制御用仮想デバイス１１４が、特定のアドレスに対するＣＰＵ１１１からの書込要求を受け付ける。なお、上記レジスタは、たとえば、制御用仮想デバイス１１４での処理（操作）の起動指示、処理実行時の入力パラメータ、処理結果などを保持する。
【００４０】
実行制御部３０３は、実行部３０１を制御して、システムレベルシミュレーションを実行制御する機能を有する。具体的には、たとえば、制御用仮想デバイス１１４が、特定のアドレスに対するＣＰＵ１１１からの書込要求に基づいて、実行部３０１に指示を出すなどして、システムレベルシミュレーションを実行制御する。
【００４１】
判定部３０４は、制御用仮想デバイス１１４の特定のアドレスに対して書き込まれた値に基づいて、システムレベルシミュレーションに対する操作の要否を判定する機能を有する。具体的には、たとえば、制御用仮想デバイス１１４が、特定のアドレスに対して書き込まれた値に基づいて、操作を実行するか否かを判定する。
【００４２】
この場合、実行制御部３０３は、判定された判定結果に基づいて、システムレベルシミュレーションに対する操作を実行する。具体的には、たとえば、制御用仮想デバイス１１４が、ＥＳＬシミュレータカーネル１０２を制御して、システムレベルシミュレーションに対する操作を実行する。
【００４３】
ここで、制御用仮想デバイス１１４の機能を実現するためのプログラムの記述例について説明する。図４は、制御用仮想デバイスの機能に関する記述例を示す説明図である。図４において、プログラム４００には、ＳｙｓｔｅｍＣを用いて記述された制御用仮想デバイス１１４の機能が示されている。
【００４４】
具体的には、プログラム４００には、ｓｗｉｔｃｈ文を用いて、制御用仮想デバイス１１４の特定のアドレス『０ｘ００ＸＸ』に、特定の値『ＥＸＩＴ＿ＶＡＬＵＥ』が書き込まれた場合に実行される操作が記述されている。このプログラム４００をハードウェアモデル１１０のプログラム記述に挿入することにより、制御用仮想デバイス１１４の機能を実現することができる。
【００４５】
システムレベルシミュレーションに対する操作の内容は、制御用仮想デバイス１１４に割り当てられたアドレスと関連付けられている。このため、制御用仮想デバイス１１４が、特定のアドレスから操作の内容を判定し、そのアドレスに対して書き込まれた値から、その操作を実行するか否かを判定する。
【００４６】
以下、具体的な操作の内容の具体例（ｉ）〜（ｖ）を示す。（ｉ）実行制御部３０３は、判定された判定結果に基づいて、システムレベルシミュレーションの実行を終了させる。ここで、制御用仮想デバイス１１４の「終了」の機能を実現するためのプログラムの記述例について説明する。
【００４７】
図５は、制御用仮想デバイスの終了の機能に関する記述例を示す説明図である。図５において、プログラム５００には、制御用仮想デバイス１１４のアドレス『０ｘ００１０』に対して、特定の値『ＥＸＩＴ＿ＶＡＬＵＥ』が書き込まれた場合に、システムレベルシミュレーションの実行を終了させるためのソースコードが記述されている。
【００４８】
このプログラム５００をハードウェアモデル１１０のプログラム記述に挿入することにより、制御用仮想デバイス１１４の「終了」の機能を実現することができる。これにより、ＣＰＵ１１１上で動作するアプリケーションプログラム１２３からシステムレベルシミュレーションの実行を終了させることができる。
【００４９】
（ｉｉ）実行制御部３０３は、判定された判定結果に基づいて、システムレベルシミュレーションのプロセスの優先度を制御する。ここで、制御用仮想デバイス１１４の「優先度制御」の機能を実現するためのプログラムの記述例について説明する。
【００５０】
図６は、制御用仮想デバイスの優先度制御の機能に関する記述例を示す説明図である。図６において、プログラム６００には、制御用仮想デバイス１１４の特定のアドレス『０ｘ００２０』に対して特定の値が書き込まれた場合に、ｇｅｔｐｉｄ（）により取得されたプロセスＩＤのプロセスの優先度を変更して実行するソースコードが記述されている。
【００５１】
具体的には、特定のアドレス『０ｘ００２０』に対して、特定の値『ＰＲＩＯＲＩＴＹ＿ＵＰ＿ＶＡＬＵＥ』が書き込まれた場合は、優先度を『−１０』してプロセスを実行する。また、特定のアドレス『０ｘ００２０』に対して、特定の値『ＰＲＩＯＲＩＴＹ＿ＤＯＷＮ＿ＶＡＬＵＥ』が書き込まれた場合は、優先度を『＋１０』してプロセスを実行する。また、特定のアドレス『０ｘ００２０』に対して、特定の値『ＰＲＩＯＲＩＴＹ＿ＳＥＴ＿ＶＡＬＵＥ』が書き込まれた場合は、優先度を『Ｐｖａｌｕｅ』に変更してプロセスを実行する。
【００５２】
このプログラム６００をハードウェアモデル１１０のプログラム記述に挿入することにより、制御用仮想デバイス１１４の「優先度制御」の機能を実現することができる。これにより、ＣＰＵ１１１上で動作するアプリケーションプログラム１２３からシステムレベルシミュレーションのプロセスの優先度を変更することができる。
【００５３】
（ｉｉｉ）実行制御部３０３は、判定された判定結果に基づいて、システムレベルシミュレーションのプロセスのメモリイメージダンプを実行する。ここで、制御用仮想デバイス１１４の「システムレベルシミュレーションのプロセスのイメージダンプ」の機能を実現するためのプログラムの記述例について説明する。
【００５４】
図７は、制御用仮想デバイスのイメージダンプの機能に関する記述例を示す説明図（その１）である。図７において、プログラム７００には、特定のアドレス『０ｘ００３０』に対して特定の値『ＣＯＲＥＤＵＭＰ＿ＶＡＬＵＥ』が書き込まれた場合に、システムレベルシミュレーションのプロセスのイメージダンプをするソースコードが記述されている。
【００５５】
このプログラム７００をハードウェアモデル１１０のプログラム記述に挿入することにより、制御用仮想デバイス１１４の「システムレベルシミュレーションのプロセスのイメージダンプ」の機能を実現することができる。これにより、ＣＰＵ１１１上で動作するアプリケーションプログラム１２３からシステムレベルシミュレーションのプロセスのイメージダンプをすることができる。
【００５６】
（ｉｖ）実行制御部３０３は、判定された判定結果に基づいて、ハードウェアモデル１１０内のメインメモリ１１２のモデルのイメージダンプを実行する。ここで、制御用仮想デバイス１１４の「メインメモリのモデルのイメージダンプ」の機能を実現するためのプログラムの記述例について説明する。
【００５７】
図８は、制御用仮想デバイスのイメージダンプの機能に関する記述例を示す説明図（その２）である。図８において、プログラム８００には、特定のアドレス『０ｘ００４０』に対して特定の値『ＭＥＭＯＲＹＤＵＭＰ＿ＶＡＬＵＥ』が書き込まれた場合に、メインメモリ１１２のイメージダンプをするソースコードが記述されている。
【００５８】
具体的には、『ｍｅｍｏｒｙ＿ａｄｄｒｅｓｓ』のメモリから『ｍｅｍ＿ｓｉｚｅ』バイト分のメモリの内容をファイル『ｍｅｍｏｒｙ＿ｄｕｍｐ＿ｆｉｌｅ』に出力する。なお、『ｍｅｍｏｒｙ＿ａｄｄｒｅｓｓ』はメインメモリ１１２の先頭アドレスであり、『ｍｅｍ＿ｓｉｚｅ』はイメージダンプするメモリサイズである。
【００５９】
このプログラム８００をハードウェアモデル１１０のプログラム記述に挿入することにより、制御用仮想デバイス１１４の「メインメモリのモデルのイメージダンプ」の機能を実現することができる。これにより、ＣＰＵ１１１上で動作するアプリケーションプログラム１２３からメインメモリ１１２のイメージダンプをすることができる。
【００６０】
（ｖ）実行制御部３０３は、判定された判定結果に基づいて、システムレベルシミュレーションの実行を停止させる。ここで、制御用仮想デバイス１１４の「停止」の機能を実現するためのプログラムの記述例について説明する。
【００６１】
図９は、制御用仮想デバイスの停止の機能に関する記述例を示す説明図である。図９において、プログラム９００には、特定のアドレス『０ｘ００５０』に対して特定の値『ＳＴＯＰ＿ＶＡＬＵＥ』が書き込まれた場合に、ｓｃ＿ｓｔｏｐ（）により、最上位階層であるｓｃ＿ｍａｉｎ（）に制御を戻すためのソースコードが記述されている。
【００６２】
このプログラム９００をハードウェアモデル１１０のプログラム記述に挿入することにより、制御用仮想デバイス１１４の「停止」の機能を実現することができる。これにより、ＣＰＵ１１１上で動作するアプリケーションプログラム１２３からシステムレベルシミュレーションの実行を停止させることができる。
【００６３】
出力部３０５は、実行部３０１によって実行された実行結果を出力する機能を有する。出力結果としては、たとえば、システムレベルシミュレーションの実行結果、デバッグ用の各種メモリのイメージダンプ結果などがある。具体的には、たとえば、出力部３０５が、メインメモリ１１２のメモリ内容をバイナリファイルなどのファイル形式で出力する。出力形式としては、たとえば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信がある。また、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶領域に記憶することとしてもよい。
【００６４】
（アクセス時間の短縮化）
ここで、ハードウェアモデル１１０内のＣＰＵ１１１から制御用仮想デバイス１１４にアクセスする際のアクセス時間について説明する。図１に示した例では、ＣＰＵ１１１は、バス１１５を介して、制御用仮想デバイス１１４の特定のアドレスに対してアクセスする。
【００６５】
この場合、制御用仮想デバイス１１４に対するアクセスに時間がかかり（たとえば、１００［ｎｓ］）、システムレベルシミュレーションに対する操作に遅れが生じてしまう。これでは、システムレベルシミュレーションの実行を終了させる場合に、アクセス時間分だけシステムレベルシミュレーションが実行されてしまい、シミュレーション結果に影響を与えることになる。
【００６６】
そこで、ハードウェアモデル１１０内のＣＰＵ１１１から制御用仮想デバイス１１４にアクセスするための専用のバスのモデルを構築する。図１０は、システムレベルシミュレーション装置のシステム構成図（その２）である。図１０において、ＣＰＵ１１１とバス１１５との間に仮想ブリッジ１００１が設けられ、ＣＰＵ１１１と制御用仮想デバイス１１４とを接続する制御用バス１００２が構築されている。
【００６７】
ＣＰＵ１１１は、この制御用バス１００２を介して制御用仮想デバイス１１４にアクセスすることにより、アクセス時間を０時間（デルタ０時間）に短縮することができる。このように、ＣＰＵ１１１から制御用仮想デバイス１１４に対して、０時間でアクセス可能にすることにより、システムレベルシミュレーションに影響を与えることなく、その実行を制御することができる。なお、「時間」とは、シミュレーションにおける時間をあらわしている。
【００６８】
（ホストマシンのシミュレーション制御処理手順）
つぎに、実施の形態にかかるホストマシン１００のシミュレーション制御処理手順について説明する。図１１は、ホストマシンのシミュレーション制御処理手順の一例を示すフローチャートである。
【００６９】
図１１のフローチャートにおいて、まず、実行部３０１により、ハードウェアモデル１１０とソフトウェアモデル１２０とのシステムレベルシミュレーションを実行開始する（ステップＳ１１０１）。このあと、受付部３０２により、ＣＰＵ１１１から制御用仮想デバイス１１４の特定のアドレスに対する書込要求を受け付けたか否かを判断する（ステップＳ１１０２）。
【００７０】
ここで、書込要求を受け付けるのを待って（ステップＳ１１０２：Ｎｏ）、受け付けた場合（ステップＳ１１０２：Ｙｅｓ）、判定部３０４により、書込先のアドレスからシステムレベルシミュレーションに対する操作を特定する（ステップＳ１１０３）。そして、判定部３０４により、そのアドレスに対して特定の値が書き込まれたか否かを判定する（ステップＳ１１０４）。
【００７１】
ここで、特定の値が書き込まれた場合（ステップＳ１１０４：Ｙｅｓ）、実行制御部３０３により、実行部３０１を制御して、ステップＳ１１０３において特定された操作を実行して（ステップＳ１１０５）、本フローチャートによる一連の処理を終了する。一方、特定の値が書き込まれていない場合は（ステップＳ１１０４：Ｎｏ）、ステップＳ１１０２に戻る。
【００７２】
これにより、ハードウェアモデル１１０内のＣＰＵ１１１上で動作しているアプリケーションプログラム１２３から、システムレベルシミュレーションの実行を制御することができる。
【００７３】
つぎに、図５〜図９に示した制御用仮想デバイス１１４の記述例に基づくシミュレーション制御処理の具体的な処理手順について説明する。図１２および図１３は、シミュレーション制御処理の具体的な処理手順の一例を示すフローチャートである。
【００７４】
図１２のフローチャートにおいて、まず、ＥＳＬシミュレータカーネル１０２により、ハードウェアモデル１１０とソフトウェアモデル１２０とのシステムレベルシミュレーションを実行開始する（ステップＳ１２０１）。このあと、制御用仮想デバイス１１４により、特定のアドレスに対する書込要求を受け付けたか否かを判断する（ステップＳ１２０２）。
【００７５】
ここで、特定のアドレスに対する書込要求を受け付けるのを待って（ステップＳ１２０２：Ｎｏ）、受け付けた場合（ステップＳ１２０２Ｙｅｓ）、制御用仮想デバイス１１４により、書込先のアドレスは『０ｘ００１０』か否かを判断する（ステップＳ１２０３）。ここで、アドレスが『０ｘ００１０』の場合（ステップＳ１２０３：Ｙｅｓ）、制御用仮想デバイス１１４により、書き込まれた値は『ＥＸＩＴ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２０４）。
【００７６】
ここで、書き込まれた値が『ＥＸＩＴ＿ＶＡＬＵＥ』の場合（ステップＳ１２０４：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、システムレベルシミュレーションの実行を終了させて（ステップＳ１２０５）、本フローチャートによる一連の処理を終了する。一方、書き込まれた値が『ＥＸＩＴ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２０４：Ｎｏ）、ステップＳ１２０２に戻る。
【００７７】
また、ステップＳ１２０３において、アドレスが『０ｘ００１０』ではない場合（ステップＳ１２０３：Ｎｏ）、制御用仮想デバイス１１４により、書込先のアドレスは『０ｘ００２０』か否かを判断する（ステップＳ１２０６）。
【００７８】
ここで、アドレスが『０ｘ００２０』の場合（ステップＳ１２０６：Ｙｅｓ）、制御用仮想デバイス１１４により、書き込まれた値は『ＰＲＩＯＲＩＴＹ＿ＵＰ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２０７）。
【００７９】
そして、書き込まれた値が『ＰＲＩＯＲＩＴＹ＿ＵＰ＿ＶＡＬＵＥ』の場合（ステップＳ１２０７：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、ｇｅｔｐｉｄ（）により取得されたプロセスＩＤのプロセスの優先度を『−１０』してプロセスを実行して（ステップＳ１２０８）、本フローチャートによる一連の処理を終了する。
【００８０】
一方、ステップＳ１２０７において、書き込まれた値が『ＰＲＩＯＲＩＴＹ＿ＵＰ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２０７：Ｎｏ）、制御用仮想デバイス１１４により、書き込まれた値は『ＰＲＩＯＲＩＴＹ＿ＤＯＷＮ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２０９）。
【００８１】
そして、書き込まれた値が『ＰＲＩＯＲＩＴＹ＿ＤＯＷＮ＿ＶＡＬＵＥ』の場合（ステップＳ１２０９：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、ｇｅｔｐｉｄ（）により取得されたプロセスＩＤのプロセスの優先度を『＋１０』してプロセスを実行して（ステップＳ１２１０）、本フローチャートによる一連の処理を終了する。
【００８２】
一方、ステップＳ１２０９において、書き込まれた値が『ＰＲＩＯＲＩＴＹ＿ＤＯＷＮ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２０９：Ｎｏ）、制御用仮想デバイス１１４により、書き込まれた値は『ＰＲＩＯＲＩＴＹ＿ＳＥＴ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２１１）。
【００８３】
そして、書き込まれた値が『ＰＲＩＯＲＩＴＹ＿ＳＥＴ＿ＶＡＬＵＥ』の場合（ステップＳ１２１１：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、ｇｅｔｐｉｄ（）により取得されたプロセスＩＤのプロセスの優先度を『Ｐｖａｌｕｅ』に変更してプロセスを実行し（ステップＳ１２１２）、本フローチャートによる一連の処理を終了する。
【００８４】
一方、ステップＳ１２１１において、書き込まれた値が『ＰＲＩＯＲＩＴＹ＿ＳＥＴ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２１１：Ｎｏ）、ステップＳ１２０２に戻る。また、ステップＳ１２０６において、書込先のアドレスが『０ｘ００２０』ではない場合（ステップＳ１２０６：Ｎｏ）、図１３に示すステップＳ１２１３に移行する。
【００８５】
図１３のフローチャートにおいて、まず、制御用仮想デバイス１１４により、書込先のアドレスは『０ｘ００３０』か否かを判断する（ステップＳ１２１３）。ここで、アドレスが『０ｘ００３０』の場合（ステップＳ１２１３：Ｙｅｓ）、制御用仮想デバイス１１４により、書き込まれた値は『ＣＯＲＥＤＵＭＰ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２１４）。
【００８６】
そして、書き込まれた値が『ＣＯＲＥＤＵＭＰ＿ＶＡＬＵＥ』の場合（ステップＳ１２１４：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、システムレベルシミュレーションのプロセスのイメージダンプをして（ステップＳ１２１５）、本フローチャートによる一連の処理を終了する。一方、書き込まれた値が『ＣＯＲＥＤＵＭＰ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２１４：Ｎｏ）、図１２に示したステップＳ１２０２に移行する。
【００８７】
また、ステップＳ１２１３において、書込先のアドレスが『０ｘ００３０』ではない場合（ステップＳ１２１３：Ｎｏ）、制御用仮想デバイス１１４により、書込先のアドレスは『０ｘ００４０』か否かを判断する（ステップＳ１２１６）。ここで、アドレスが『０ｘ００４０』の場合（ステップＳ１２１６：Ｙｅｓ）、制御用仮想デバイス１１４により、書き込まれた値は『ＭＥＭＯＲＹＤＵＭＰ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２１７）。
【００８８】
そして、書き込まれた値が『ＭＥＭＯＲＹＤＵＭＰ＿ＶＡＬＵＥ』の場合（ステップＳ１２１７：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、ハードウェアモデル１１０内のメインメモリ１１２のイメージダンプをして（ステップＳ１２１８）、本フローチャートによる一連の処理を終了する。一方、書き込まれた値が『ＭＥＭＯＲＹＤＵＭＰ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２１７：Ｎｏ）、図１２に示したステップＳ１２０２に移行する。
【００８９】
また、ステップＳ１２１６において、書込先のアドレスが『０ｘ００４０』ではない場合（ステップＳ１２１６：Ｎｏ）、制御用仮想デバイス１１４により、書込先のアドレスは『０ｘ００５０』か否かを判断する（ステップＳ１２１９）。ここで、アドレスが『０ｘ００５０』の場合（ステップＳ１２１９：Ｙｅｓ）、制御用仮想デバイス１１４により、書き込まれた値は『ＳＴＯＰ＿ＶＡＬＵＥ』か否かを判断する（ステップＳ１２２０）。
【００９０】
そして、書き込まれた値が『ＳＴＯＰ＿ＶＡＬＵＥ』の場合（ステップＳ１２２０：Ｙｅｓ）、制御用仮想デバイス１１４により、ＥＳＬシミュレータカーネル１０２を制御して、システムレベルシミュレーションの実行を停止させて（ステップＳ１２２１）、本フローチャートによる一連の処理を終了する。
【００９１】
一方、書き込まれた値が『ＳＴＯＰ＿ＶＡＬＵＥ』ではない場合（ステップＳ１２２０：Ｎｏ）、図１２に示したステップＳ１２０２に移行する。また、ステップＳ１２１９において、書込先のアドレスが『０ｘ００５０』ではない場合（ステップＳ１２１９：Ｎｏ）、図１２に示したステップＳ１２０２に移行する。
【００９２】
これにより、ユーザが期待したアプリケーションプログラム１２３の特定のポイントで、システムレベルシミュレーションに対する操作（上述した（ｉ）〜（ｖ）の機能）を実行することができる。
【００９３】
以上説明したように、本実施の形態によれば、ハードウェアモデル１１０内のＣＰＵ１１１上で動作しているアプリケーションプログラム１２３から、システムレベルシミュレーションを制御することができる。これにより、アプリケーションプログラム１２３の特定のポイントでシステムレベルシミュレーションを終了させる場合などに、特定のポイントまで実行されるのをユーザが監視するなどの面倒な作業が不要となる。
【００９４】
また、特定のポイントまで実行されたことをユーザが見過ごしてシステムレベルシミュレーションをやり直すなどの手戻りを防ぐことができる。さらに、システムレベルシミュレーションの処理の効率化を図ることができ、限られた計算機リソースやライセンスリソースを有効活用することができる。
【００９５】
以上のことから、このシミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法によれば、システムレベルシミュレーションにかかる作業負担の軽減化およびシミュレーション期間の短縮化を図ることができる。
【００９６】
なお、本実施の形態で説明したシミュレーション制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能であってもよい。
【００９７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９８】
（付記１）コンピュータをシステムレベルシミュレーション装置として機能させるために、
ハードウェアモデルとソフトウェアモデルとを持つシステムレベルシミュレーションを実行制御する手段として、
前記コンピュータが、前記ハードウェアモデルを実行するための実行手段を有し、
前記ハードウェアモデル内に、
マイクロプロセッサモデルと、
前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルと、
前記マイクロプロセッサモデルと前記特定のモジュールのモデルとの間のバスと、を有し、
前記ソフトウェアモデル内に、
前記特定のモジュールを操作する特定の命令、または、命令列を有し、
前記マイクロプロセッサモデルが前記特定の命令、または、前記命令列を実行した結果、前記特定のモジュールのモデルに対してアクセス要求を出す送出手段と、
前記アクセス要求を伝達する伝達手段と、
前記特定のモジュールのモデルに対するアクセス要求を受け付ける受付手段と、
前記受付手段によって前記アクセス要求を受け付けた場合、前記実行手段を制御して、前記システムレベルシミュレーションを実行制御する実行制御手段と、
を持つことを特徴とするシミュレーション制御プログラム。
【００９９】
（付記２）前記受付手段は、
前記特定のモジュールに割り当てられた特定のアドレスに対する書込要求を受け付け、
前記実行制御手段は、
前記特定のアドレスに対する書込要求に基づいて、前記実行手段を制御して、前記システムレベルシミュレーションを実行制御することを特徴とする付記１に記載のシミュレーション制御プログラム。
【０１００】
（付記３）前記コンピュータを、
前記特定のアドレスに対して書き込まれた値に基づいて、前記システムレベルシミュレーションに対する操作の要否を判定する判定手段として機能させ、
前記実行制御手段は、
前記判定手段によって判定された判定結果に基づいて、前記システムレベルシミュレーションに対する操作を実行することを特徴とする付記２に記載のシミュレーション制御プログラム。
【０１０１】
（付記４）前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションの実行を終了させることを特徴とする付記３に記載のシミュレーション制御プログラム。
【０１０２】
（付記５）前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションのプロセスの優先度を変更することを特徴とする付記３または４に記載のシミュレーション制御プログラム。
【０１０３】
（付記６）前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションのプロセスのメモリイメージダンプをすることを特徴とする付記３〜５のいずれか一つに記載のシミュレーション制御プログラム。
【０１０４】
（付記７）前記実行制御手段は、
前記判定結果に基づいて、前記ハードウェアモデル内のメインメモリのメモリイメージダンプをすることを特徴とする付記３〜６のいずれか一つに記載のシミュレーション制御プログラム。
【０１０５】
（付記８）前記実行制御手段は、
前記判定結果に基づいて、前記システムレベルシミュレーションの実行を停止させることを特徴とする付記３〜７のいずれか一つに記載のシミュレーション制御プログラム。
【０１０６】
（付記９）前記ハードウェアモデル内のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のモデルと前記特定のモジュールのモデルとが０時間でアクセス可能なバスのモデルで接続されており、
前記受付手段は、
前記バスのモデルを介して、前記特定のモジュールのモデルに対するアクセス要求を受け付けることを特徴とする付記１〜８のいずれか一つに記載のシミュレーション制御プログラム。
【０１０７】
（付記１０）前記特定の命令は、前記特定のモジュールを呼び出すためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）であることを特徴とする付記１〜９のいずれか一つに記載のシミュレーション制御プログラム。
【０１０８】
（付記１１）ハードウェアモデルとソフトウェアモデルとのシステムレベルシミュレーションを実行する実行手段と、
前記ソフトウェアモデル内の特定の命令が実行された結果、前記ハードウェアモデル内のモジュールのモデルのうち前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルに対するアクセス要求を受け付ける受付手段と、
前記受付手段によって前記アクセス要求を受け付けた場合、前記実行手段を制御して、前記システムレベルシミュレーションを実行する実行制御手段と、
を備えることを特徴とするシミュレーション装置。
【０１０９】
（付記１２）制御手段、記憶手段、およびハードウェアモデルとソフトウェアモデルとのシステムレベルシミュレーションを実行する実行手段を備えるコンピュータが、
前記制御手段により、前記ソフトウェアモデル内の特定の命令が実行された結果、前記ハードウェアモデル内のモジュールのモデルのうち前記システムレベルシミュレーションの実行を制御する特定のモジュールのモデルに対するアクセス要求を受け付けて、前記記憶手段に記憶する受付工程と、
前記制御手段により、前記受付工程によって前記アクセス要求を受け付けた場合、前記実行手段を制御して、前記システムレベルシミュレーションを実行する制御工程と、
を実行することを特徴とするシミュレーション制御方法。
【符号の説明】
【０１１０】
１００  ホストマシン
１０１，１２１  ＯＳ
１０２  ＥＳＬシミュレータカーネル
１０３  ＳｙｓｔｅｍＣライブラリ
１１０  ハードウェアモデル
１１１，２０１  ＣＰＵ
１１２  メインメモリ
１１３  周辺デバイス
１１４  制御用仮想デバイス
１２０  ソフトウェアモデル
１２２  制御用仮想デバイスドライバ
１２３  アプリケーションプログラム
３０１  実行部
３０２  受付部
３０３  実行制御部
３０４  判定部
３０５  出力部
【図１】
2010181961.tif 000003
【図２】
2010181961.tif 000004
【図３】
2010181961.tif 000005
【図４】
2010181961.tif 000006
【図５】
2010181961.tif 000007
【図６】
2010181961.tif 000008
【図７】
2010181961.tif 000009
【図８】
2010181961.tif 000010
【図９】
2010181961.tif 000011
【図１０】
2010181961.tif 000012
【図１１】
2010181961.tif 000013
【図１２】
2010181961.tif 000014
【図１３】
2010181961.tif 000015