(57)【要約】【課題】ＩＯレジスタを用いた周辺機器の呼び出しに対応し、シミュレーション速度を向上させたシミュレーション装置、シミュレーション方法、及びプログラムを提供すること【解決手段】ＣＰＵシミュレーション部２０は、ＣＰＵを模擬してシミュレーションを実行する。周辺機器シミュレーション部５０は、ＩＯレジスタへのアクセスにより動作させる周辺機器を模擬してシミュレーションを実行する１つ以上のコンポーネント（タイマシミュレーション部５１等）を備える。検出部６０は、シミュレーション実行時に前記周辺機器に対応するＩＯレジスタへのアクセスを検出する。接続管理部７０は、検出部６０の検出結果に応じてシミュレーション実行時に動作させるコンポーネントを設定する。【選択図】図１
2013050761.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Central Processing Unit）を模擬してシミュレーションを実行するＣＰＵシミュレーション部と、
ＩＯレジスタへのアクセスにより動作させる周辺機器のいずれかを模擬してシミュレーションを実行する１つ以上のコンポーネントと、
シミュレーション実行時に、前記周辺機器に対応するＩＯレジスタへのアクセスを検出する検出部と、
前記検出部の検出結果に応じてシミュレーション実行時に動作させるコンポーネントを設定する接続管理部と、を備えるシミュレーション装置。
【請求項２】
前記検出部は、前記ＩＯレジスタと接続するバスにおけるデータのやり取りを監視するバス監視部を備え、
前記バス監視部は、前記ＩＯレジスタのアドレスと、当該アドレスに対応する前記周辺機器の種別と、の対応を定めた対応情報に基づいて、ある周辺機器に対応するＩＯレジスタのアドレスへのアクセスを検出し、
前記接続管理部は、前記バス監視部による検出にかかる周辺機器に対応するコンポーネントを動作状態とする、
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記バス監視部は、ある周辺機器に対応するＩＯレジスタへのアクセスの検出を前記周辺接続管理部に通知するとともに、当該周辺機器を検出対象から除外することを特徴とする請求項２に記載のシミュレーション装置。
【請求項４】
前記バス監視部は、前記ＩＯレジスタに書き込まれるデータを解析し、当該データ解析の結果に応じて動作状態としているコンポーネントを停止状態に変更することを特徴とする請求項２または請求項３に記載のシミュレーション装置。
【請求項５】
前記バス監視部は、前記ＩＯレジスタに書き込まれるデータのうち、各周辺機器にクロックを供給するか否かを示すデータを解析し、ある周辺機器に対するクロック供給を停止することを示すデータが書き込まれる場合に当該周辺機器にかかるコンポーネントを停止状態に変更することを特徴とする請求項４に記載のシミュレーション装置。
【請求項６】
前記接続管理部は、前記シミュレーションの終了の際に、動作対象としていたコンポーネントの情報が記載された周辺機器接続情報を出力することを特徴とする請求項１乃至請求項５のいずれか１項に記載のシミュレーション装置。
【請求項７】
前記接続管理部は、前記周辺機器接続情報を、プロジェクトファイル内に記載することを特徴とする請求項６に記載のシミュレーション装置。
【請求項８】
前記接続管理部は、前記周辺機器接続情報に基づいて、シミュレーション実行時に動作させるコンポーネントを設定することを特徴とする請求項６または請求項７に記載のシミュレーション装置。
【請求項９】
前記シミュレーション装置は、シミュレーション実行時に動作させるコンポーネントをユーザが設定する設定手段を提供するインターフェイス部と接続可能に構成され、
前記接続管理部は、前記インターフェイス部を介したユーザの設定に基づいて、シミュレーション実行時に動作させるコンポーネントを設定することを特徴とする請求項１乃至請求項８のいずれか１項に記載のシミュレーション装置。
【請求項１０】
前記設定手段は、ＧＵＩ（Graphical User Interface）画面であることを特徴とする請求項９に記載のシミュレーション装置。
【請求項１１】
前記検出部は、前記シミュレーションの際に実行対象となるプログラムを前記シミュレーションの実行前に解析するプログラム解析部を備え、
前記プログラム解析部は、前記周辺機器が動作する命令を特定し、特定した命令に応じて動作状態とするコンポーネントを検出する、ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項１２】
前記検出部は、前記ＩＯレジスタと接続するバスを監視するバス監視部を更に備え、
前記バス監視部は、前記シミュレーションの実行中に、前記ＩＯレジスタのアドレスと、当該アドレスに対応する前記周辺機器の種別と、の対応を定めた対応情報に基づいて、ある周辺機器に対応するＩＯレジスタへのアクセスを検出し、
前記接続管理部は、前記バス監視部による検出にかかる周辺機器に対応するコンポーネントを動作状態とする、
ことを特徴とする請求項１１に記載のシミュレーション装置。
【請求項１３】
前記ＣＰＵシミュレーション部は、マイクロコンピュータのＣＰＵを模擬することを特徴とする請求項１乃至１２のいずれか１項に記載のシミュレーション装置。
【請求項１４】
ＣＰＵ（Central Processing Unit）を模擬してシミュレーションを実行し、
ＩＯレジスタへのアクセスにより動作させる周辺機器のいずれかを模擬してシミュレーションを実行する１つ以上のコンポーネントを動作可能に構成し、
シミュレーション実行時に、前記ＣＰＵから、前記周辺機器に対応するＩＯレジスタへのアクセスを検出し、
前記検出の結果に応じて、シミュレーション実行時に動作させるコンポーネントを設定するシミュレーション方法。
【請求項１５】
コンピュータに
ＣＰＵ（Central Processing Unit）を模擬してシミュレーションを実行し、
ＩＯレジスタへのアクセスにより動作させる周辺機器のいずれかを模擬してシミュレーションを実行する１つ以上のコンポーネントを動作可能に構成し、
シミュレーション実行時に、前記ＣＰＵから、前記周辺機器に対応するＩＯレジスタへのアクセスを検出し、
前記検出の結果に応じて、シミュレーション実行時に動作させるコンポーネントを設定する、処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーション装置、シミュレーション方法、及びプログラムに関し、特にＩＯレジスタにアクセスすることにより外部周辺機器を操作する装置に対するシミュレーション装置、シミュレーション方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、マイクロコンピュータ（マイクロコントローラとも呼称する。）を模擬するソフトウェアシミュレータが多く開発されている。これらのシミュレータでは、ＣＰＵのみならず周辺機器をも対象としたシミュレーションの実行が可能となっている。これらのシミュレータがシミュレーションを実行する場合、シミュレータは、周辺機器での処理や周辺機器との信号入出力もシミュレーションする。そのため、実際のマイクロコンピュータと比べ実行速度の低下が問題となっている。
【０００３】
特許文献１には、ハードウェア／ソフトウェア協調シミュレータが開示されている。この協調シミュレータでは、ＣＰＵへの割り込みが発生するか否かに応じてハードウェアシミュレータとソフトウェアシミュレータとの同期処理を抑制することが開示されている。この協調シミュレータでは、同期処理を抑制することにより、シミュレーション速度の向上を図っている。
【０００４】
特許文献２には、シミュレーション実行環境に応じてコンポーネントを使い分けることができるシミュレーション方法及びシミュレーション装置が開示されている。以下、特許文献２に開示されている装置の処理概要を説明する。
【０００５】
当該シミュレーション装置は、マイクロコンピュータを模擬するシミュレータ本体と、外部Ｉ／Ｆモジュールと、コンポーネントと、から構成される。コンポーネントは、マイクロコンピュータの外界の要素（周辺機器）を模擬する処理部である。コンポーネントは、各機能についてＣ言語プログラムにて記述されている。外部Ｉ／Ｆ管理モジュールは、外部Ｉ／Ｆ関数を用いることにより、シミュレータ本体からコンポーネントに対するアクセスがあるか否かを判定する。そして、外部Ｉ／Ｆ管理モジュールは、アクセスに応じてシミュレータ本体に対してコンポーネントをアドイン（接続）する。
【０００６】
なお、外部Ｉ／Ｆ管理モジュールは、使用頻度等を参照して、不要となったコンポーネントを削除（アドインを解除）することにより、シミュレーション環境への負荷を軽減することもできる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２９０８６０号公報
【特許文献２】特開２００７−２１３２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載のハードウェア／ソフトウェア協調シミュレータでは、必要となるコンポーネントのみを動作させることに対する示唆がない。そのため、特許文献１に記載のハードウェア／ソフトウェア協調シミュレータでは、実際には必要ではないコンポーネントも絶えず動作してしまうことにより、シミュレーション速度が十分に向上しないという問題があった。
【０００９】
特許文献２に記載のシミュレーション装置は、上述したように、必要となるコンポーネントのみをアドインすることが可能である。ここで、多くのソフトウェアシミュレータは、ＩＯ（Input/Output）レジスタを模擬する処理部（ＩＯレジスタシミュレーション部）を介してシミュレータ本体とコンポーネントとの間でのデータやり取り等を行う。さらに、実際のマイクロコンピュータにおいても、外部周辺機器とのデータのやり取りは、ＩＯレジスタを介して行われる。しかしながら、上述の特許文献２に記載のシミュレーション装置は、コンポーネントへのアクセスを外部Ｉ／Ｆ関数により実現している。そのため、特許文献２に記載の技術は、ＩＯレジスタを介してデータのやり取りを行うシミュレーションに対応することができない。
【００１０】
すなわち、上記した技術によっては、ＩＯレジスタを用いた周辺機器の呼び出しに対応し、シミュレーション速度を向上させたシミュレーション装置、シミュレーション方法、及びプログラムを提供できないという問題があった。
【課題を解決するための手段】
【００１１】
本発明にかかるシミュレーション装置の一態様は、
ＣＰＵ（Central Processing Unit）を模擬してシミュレーションを実行するＣＰＵシミュレーション部と、
ＩＯレジスタへのアクセスにより動作させる周辺機器のいずれかを模擬してシミュレーションを実行する１つ以上のコンポーネントと、
シミュレーション実行時に、前記周辺機器に対応するＩＯレジスタへのアクセスを検出する検出部と、
前記検出部の検出結果に応じてシミュレーション実行時に動作させるコンポーネントを設定する接続管理部と、を備えるものである。
【００１２】
本発明にかかるシミュレーション方法の一態様は、
ＣＰＵ（Central Processing Unit）を模擬してシミュレーションを実行し、
ＩＯレジスタへのアクセスにより動作させる周辺機器のいずれかを模擬してシミュレーションを実行する１つ以上のコンポーネントを動作可能に構成し、
シミュレーション実行時に、前記ＣＰＵから、前記周辺機器に対応するＩＯレジスタへのアクセスを検出し、
前記検出の結果に応じて、シミュレーション実行時に動作させるコンポーネントを設定する、ものである。
【００１３】
本発明にかかるプログラムの一態様は、
コンピュータに
ＣＰＵ（Central Processing Unit）を模擬してシミュレーションを実行し、
ＩＯレジスタへのアクセスにより動作させる周辺機器のいずれかを模擬してシミュレーションを実行する１つ以上のコンポーネントを動作可能に構成し、
シミュレーション実行時に、前記ＣＰＵから、前記周辺機器に対応するＩＯレジスタへのアクセスを検出し、
前記検出の結果に応じて、シミュレーション実行時に動作させるコンポーネントを設定する、処理を実行させる、ためのものである。
【００１４】
本発明では、ＩＯレジスタへのアクセスにより動作させる周辺機器を模擬する１以上のコンポーネントを用いる。検出部は、周辺機器に対応するＩＯレジスタへのアクセスを検出する。接続管理部は、この検出結果に応じて動作させるコンポーネントを設定する。これにより、ＩＯレジスタへのアクセス状況に応じて動作するコンポーネントが動的に設定でき、不要なコンポーネントを動作させることなくシミュレーションを実行できる。不要なコンポーネントが動作しないため、シミュレーションの実行速度を向上させることができる。
【発明の効果】
【００１５】
本発明によれば、ＩＯレジスタを用いた周辺機器の呼び出しに対応し、シミュレーション速度を向上させたシミュレーション装置、シミュレーション方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１にかかるシミュレーション装置１０の構成を示すブロック図である。
【図２】実施の形態１にかかるシミュレーション装置１０に入力されるプロジェクトファイルの構成を示す図である。
【図３】ＩＯレジスタの構成を示す模式図である。
【図４】実施の形態１にかかるＩＯレジスタ情報格納部６２の構成の一例を示す図である。
【図５】実施の形態１にかかるＩＯレジスタ情報格納部６２の構成の一例を示す図である。
【図６】実施の形態１にかかる接続管理部７０が出力したプロジェクトファイルの一例を示す図である。
【図７】実施の形態１にかかるシミュレーション装置１０の動作を示すフローチャートである。
【図８】実施の形態１にかかるシミュレーション装置１０の動作を示すフローチャートである。
【図９】実施の形態２にかかるＩＯレジスタシミュレーション部３０の構成を示す模式図である。
【図１０】実施の形態３にかかるシミュレーション装置１０の構成を示すブロック図である。
【図１１】実施の形態３にかかる接続選択ＧＵＩ１３０が提供する画面の一例を示す図である。
【図１２】実施の形態３にかかる接続選択ファイルの構成の一例を示す図である。
【図１３】実施の形態４にかかるシミュレーション装置１０の構成を示すブロック図である。
【図１４】プログラム１１０内の記述の一例を示す概念図である。
【図１５】実施の形態５にかかるシミュレーション装置１０の構成を示すブロック図である。
【図１６】本発明にかかるシミュレーション装置１０の各処理部の処理をプログラムとして実行するコンピュータのハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかるシミュレーション装置１０の構成を示すブロック図である。シミュレーション装置１０は、ＣＰＵシミュレーション部２０と、ＩＯレジスタシミュレーション部３０と、同期実行制御部４０と、周辺機器シミュレーション部５０と、検出部６０と、ＩＯレジスタ情報格納部６２と、接続管理部７０と、を備える。
【００１８】
シミュレーション装置１０には、プロジェクトファイル１００と、プログラム１１０と、が入力される。プロジェクトファイル１００は、実行するシミュレーションに関する情報が格納されている。プロジェクトファイル１００の一例を図２に示す。プロジェクトファイル１００には、例えばファイルシステム内におけるプログラム１１０の格納場所等の情報が記載されている。なお、図２に示すプロジェクトファイル１２０では、行数情報も併せて表示している。
【００１９】
プログラム１１０は、シミュレーションの処理内容を記載したプログラムの実行ファイルである。このプログラム１１０は、マイクロコンピュータに実行させるプログラムの実行ファイルであり、たとえば、Ｃ言語等のプログラム言語により作成されたプログラム（.cファイル）の実行ファイル（.out）である。
【００２０】
ＣＰＵシミュレーション部２０は、マイクロコンピュータのＣＰＵ（Central Processing Unit）の動作を模擬する処理部である。ＣＰＵシミュレーション部２０は、プログラム１１０内に記述された命令の実行、この命令実行に伴うメモリや各種レジスタ（ＩＯレジスタ等）のリード、ライトを行う。ＣＰＵシミュレーション部２０は、処理中の命令が周辺機器を制御する命令である場合、ＩＯレジスタを模擬するＩＯレジスタシミュレーション部３０に対してリード／ライトアクセスを発行する。当該アクセスには、ＩＯレジスタのアドレスと、ライトする際の書き込み情報が含まれる。
【００２１】
ＩＯレジスタシミュレーション部３０は、ＩＯレジスタを模擬する処理部である。はじめに、ＩＯレジスタの概要について説明する。ＩＯレジスタは、各周辺機器が使用する領域（以下、固有領域と記載する。）、または周辺機器共通の領域（以下、共通領域と記載する。）が規定されたレジスタである。図３は、ＩＯレジスタの構成を示す模式図である。図３（Ａ）に示すように、各固有領域が分散的に配置される場合があり、図３（Ｂ）に示すように、各固有領域が一箇所に集中して配置される場合もある。各領域には、周辺機器に対する処理を指示するデータ、受け渡すデータ等が書き込まれる。
【００２２】
なお、以下の説明では、説明の便宜のため、図３（Ｂ）に示すように、各固有領域が一箇所に集中して配置される場合を想定する。
【００２３】
同期実行制御部４０は、マイクロコンピュータのＣＰＵと、周辺機器と、が同期して動作するように時間情報を提供する処理部である。同期実行制御部４０は、ＣＰＵシミュレーション部２０と、周辺機器シミュレーション部５０と、に対して時間情報を提供する。
【００２４】
周辺機器シミュレーション部５０は、マイクロコンピュータのＣＰＵに接続する周辺機器を模擬するコンポーネントを備える処理部である。コンポーネントは、マイクロコンピュータのＣＰＵの外界の要素（周辺機器）を模擬する処理部を意味する。周辺機器シミュレーション部５０は、接続管理部７０からの指示に応じて各コンポーネントと接続、または接続解除を行う。以下の説明では、周辺機器シミュレーション部５０と接続可能なコンポーネントは、タイマシミュレーション部５１、シリアルシミュレーション部５２、ＡＤシミュレーション部５３であるものとするが、他のコンポーネントを備えてもよいことはもちろんである。これらのコンポーネントは、周辺機器シミュレーション部５０と接続している場合に動作可能な状態、すなわち各周辺機器のシミュレーションが可能な状態となる。なお、図１の例では、シリアルシミュレーション部５２のみが周辺機器シミュレーション部５０と接続していることを示しているが、接続関係は後述の接続管理部７０により適宜変更される。
【００２５】
タイマシミュレーション部５１は、マイクロコンピュータのＣＰＵと接続可能なタイマを模擬する処理部である。シリアルシミュレーション部５２は、マイクロコンピュータのＣＰＵとシリアル通信を行う装置を模擬する処理部である。ＡＤ（Analog/Digital）シミュレーション部５３は、マイクロコンピュータのＣＰＵと接続可能であり、アナログ／デジタル変換処理を行うコンバータを模擬する処理部である。
【００２６】
検出部６０は、シミュレーションの実行中に、ＣＰＵシミュレーション部２０から発行されたＩＯレジスタに対するアクセスを検出する。検出部６０は、バス監視部６１を備える。
【００２７】
バス監視部６１は、本実施の形態において、ＣＰＵシミュレーション部２０から発行されたＩＯレジスタに対するアクセスを検出する処理部である。バス監視部６１は、ＩＯレジスタ情報格納部６２に格納された情報を基に、バス内でやり取りされるアクセスを逐次解析する。
【００２８】
ＩＯレジスタ情報格納部６２の構成の一例を図４に示す。ＩＯレジスタ情報格納部６２は、ＩＯレジスタのアドレスと、当該アドレスに対応する周辺機器と、の関連を示すデータを保持する。例えば、図４では、ＩＯレジスタのアドレス"０ｘＦＦＦ１０００"にデータを書き込むためのアクセスは、タイマに対する処理を示すアクセスであることを示している。同様に、ＩＯレジスタのアドレス"０ｘＦＦＦ２０００"にデータを書き込むためのアクセスは、シリアル通信装置に対する処理を示すアクセスであることを示している。
【００２９】
バス監視部６１は、ＣＰＵシミュレーション部２０から発行されたアクセスに含まれるＩＯレジスタのアドレスと、ＩＯレジスタ情報格納部６２に格納された情報と、を比較する。この比較により、バス監視部６１は、ある周辺機器に対応するアクセスが生じたか否かを判定する。または、バス監視部６１は、共通領域に対するアクセスが生じたか否かを判定する。バス監視部６１は、全ての周辺機器に対するアクセス（共通領域に対するアクセス）が生じた場合に、接続状態にすべき周辺機器に対応するコンポーネントを認識する。バス監視部６１は、当該コンポーネントを接続管理部７０に通知する。
【００３０】
バス監視部６１は、ある周辺機器に対するアクセスが生じた場合、接続管理部７０に対する通知を行うとともに、当該周辺機器を検出対象から除外する。例えば、バス監視部６１は、タイマに対するアクセスが生じたと判定した場合、接続管理部７０に対する通知を行うとともに、タイマを検出対象から除外する。例えば、図４の例では、バス監視部６１は、ＩＯレジスタのアドレス"０ｘＦＦＦ１０００"にデータを書き込むためのアクセスが生じたと判定した場合、タイマを検出対象から除外する。すなわち、バス監視部６１は、タイマにかかるアドレス（"０ｘＦＦＦ１０００"、"０ｘＦＦＦ１００４"、"０ｘＦＦＦ１００８"）を検出対象から除外する。
【００３１】
検出対象から除外することにより、バス監視部６１は、ＣＰＵシミュレーション部２０から発行されたアクセスに含まれるＩＯレジスタのアドレスと、ＩＯレジスタ情報格納部６２に格納された情報と、の比較処理の負荷を軽減できる。これにより、シミュレーション装置１０全体のシミュレーション速度を向上することができる。
【００３２】
なお、ＩＯレジスタ情報格納部６２は、図５に示すような構成としても良い。図５に示す構成は、図３（Ｂ）に示すように、ＩＯレジスタにおいて各固有領域が一箇所に集中して配置される場合に対応可能である。ＩＯレジスタ情報格納部６２の保持する情報を図５に示す構成にすることにより、バス監視部６１は、各アクセスのアドレスと、ＩＯレジスタ情報格納部６２の各上限値及び下限値（図５における"０ｘＦＦＦ１０００"、"０ｘＦＦＦ１ＦＦＦ"、"０ｘＦＦＦ２０００"、"０ｘＦＦＦ２ＦＦＦ"、"０ｘＦＦＦ３０００"、"０ｘＦＦＦ３ＦＦＦ"）のみを比較すればよい。
【００３３】
ＩＯレジスタ情報格納部６２が格納する情報を図５に示す構成とすることにより、図４に示す構成と比べて、バス監視部６１の比較処理の負荷が軽減できる。これにより、シミュレーション装置１０全体のシミュレーション速度を向上することができる。
【００３４】
再び、図１の説明を行う。接続管理部７０は、バス監視部６１からの通知に応じて、シミュレーション実行中に動作させる、すなわち周辺機器シミュレーション部５０に接続するコンポーネントを設定する処理部である。接続管理部７０の処理詳細を以下に説明する。
【００３５】
接続管理部７０は、シミュレーションの実行前にプロジェクトファイル１００を読み込む。接続管理部７０は、読み込んだプロジェクトファイル１００に周辺機器接続情報が含まれているか否かを判定する。周辺機器接続情報は、同一のプログラム１１０を用いて以前実行したシミュレーションにおいて、周辺機器シミュレーション部５０に接続したコンポーネントを示す情報である。接続管理部７０は、プロジェクトファイル１００内に周辺機器接続情報が記載されている場合、当該周辺機器接続情報に記載されたコンポーネントを接続対象と認識し、当該コンポーネントをシミュレーション実行前に周辺機器シミュレーション部５０に接続する。
【００３６】
さらに、接続管理部７０は、シミュレーションの実行中にあるコンポーネントに対するアクセスがあったことをバス監視部６１から通知された場合、当該コンポーネントを周辺機器シミュレーション部５０に接続する。例えば、バス監視部６１からタイマに対するアクセスがあったことを通知された場合、接続管理部７０は、タイマシミュレーション部５１を周辺機器シミュレーション部５０に接続する。
【００３７】
接続管理部７０は、シミュレーションの実行終了後に、周辺機器シミュレーション部５０に接続した全てのコンポーネントを記載したプロジェクトファイル１２０を生成する。接続管理部７０は、生成したプロジェクトファイル１２０を任意の記憶装置、例えばファイルシステム等に書き込む。
【００３８】
図６は、接続管理部７０が出力したプロジェクトファイル１２０の一例を示す図である。なお、図６に示すプロジェクトファイル１２０では、説明の便宜のため行数情報を追加している。
【００３９】
プロジェクトファイル１２０には、シミュレーション開始前に入力されたプロジェクトファイル１００に記載された情報（１〜１０行目）に加え、シミュレーション実行中に接続したコンポーネントの情報（１１〜１３行目）が記載される。図６の例では、タイマ及びシリアル通信装置にかかるコンポーネントと接続されたことが接続管理部７０によって追記されている。
【００４０】
続いて、図７、図８を参照して、本実施の形態にかかるシミュレーション装置１０の動作を説明する。図７及び図８は、本実施の形態にかかるシミュレーション装置１０の動作を表すフローチャートである。
【００４１】
シミュレーション装置１０の実行が開始される、すなわちシミュレーションを開始すると、ＣＰＵシミュレーション部２０等は、プログラム１１０を読み込む（Ｓ１０１）。さらに、ＣＰＵシミュレーション部２０及び接続管理部７０は、プロジェクトファイル１００を読み込む（Ｓ１０１）。
【００４２】
接続管理部７０は、読み込んだプロジェクトファイル１００に周辺機器接続情報が含まれているか否かを判定する（Ｓ１０２）。接続管理部７０は、プロジェクトファイル１００に周辺機器接続情報が含まれている場合（Ｓ１０２：Ｙｅｓ）、周辺機器接続情報に記載されたコンポーネントを周辺機器シミュレーション部５０への接続対象とする（Ｓ１０３）。
【００４３】
一方、プロジェクトファイル１００に周辺機器接続情報が含まれていない場合（Ｓ１０２：Ｎｏ）、接続管理部７０は、全てのコンポーネントを周辺機器シミュレーション部５０の接続対象とする（Ｓ１０４）。
【００４４】
続いて、検出部６０は、バス監視部６１を動作させるか否かを判定する（Ｓ１０５）。当該判定は、例えば、周辺機器接続情報がプロジェクトファイル１００内に含まれていた場合には、検出部６０は、バス監視部６１を動作させないと判定しても良い。また、周辺機器接続情報がプロジェクトファイル１００内に含まれておらず、外部からの設定によりバス監視部６１の機能が有効化されている場合、検出部６０は、バス監視部６１を動作させると判定しても良い。バス監視部６１を動作させるか否かは、適宜ユーザが設定できる。
【００４５】
バス監視部６１を動作させると判定した場合（Ｓ１０５：Ｙｅｓ）、検出部６０は、バス監視部６１の動作を開始（ＯＮ）させる（Ｓ１０６）。そして、接続管理部７０は、全コンポーネントを接続対象から除外する（Ｓ１０７）。
【００４６】
バス監視部６１を動作させないと判定した場合（Ｓ１０５：Ｎｏ）、検出部６０は、バス監視部６１を動作させない（ＯＦＦする）（Ｓ１０８）。
【００４７】
そして、接続管理部７０は、接続対象と判定されたコンポーネントを周辺機器シミュレーション部５０に接続する（Ｓ１０８）。以上の処理（Ｓ１０１〜Ｓ１０８）が、シミュレーションを実行する前に行う処理である。ＣＰＵシミュレーション部２０は、１命令の実行に関する処理（後述のＳ１１０〜Ｓ１１７）を行う度、またはその他の処理（後述のＳ１１８）を実行する度にシミュレーションを終了するか否かを判定する（Ｓ１０９）。
【００４８】
シミュレーションを継続する場合（Ｓ１０９：Ｎｏ）、ＣＰＵシミュレーション部２０は、プログラムの実行開始のタイミングであるか否かを判定する（Ｓ１１０）。実行開始のタイミングである場合（Ｓ１１０：Ｙｅｓ）、ＣＰＵシミュレーション部２０は、１命令のシミュレーションを実行する（Ｓ１１１）。
【００４９】
１命令の実行（Ｓ１１１）の後に、検出部６０は、バス監視部６１が動作中（ＯＮ）であるか否かを判定する（Ｓ１１２）。バス監視部６１が動作中（ＯＮ）である場合（Ｓ１１２：Ｙｅｓ）、バス監視部６１は、ＩＯレジスタシミュレーション部３０に対するアクセスが生じたか否かを判定する（Ｓ１１３）。ＩＯレジスタシミュレーション部３０に対するアクセスが生じていた場合（Ｓ１１３：Ｙｅｓ）、バス監視部６１は、アクセスがあったアドレスに対応するコンポーネントが周辺機器シミュレーション部５０に接続済みであるか否かを判定する（Ｓ１１４）。
【００５０】
対応するコンポーネントが接続済みではない場合（Ｓ１１４：Ｎｏ）、バス監視部６１は、その旨を接続管理部７０に通知する。接続管理部７０は、当該コンポーネントを周辺機器シミュレーション部５０に接続する（Ｓ１１５）。接続後に、バス監視部６１は、当該コンポーネントにかかるＩＯレジスタ領域を検出対象から除外する（Ｓ１１６）。そして、周辺機器シミュレーション部５０に接続済みの全コンポーネントを１命令実行時間分だけ実行させる（Ｓ１１７）。
【００５１】
バス監視部６１が動作中ではない（ＯＦＦ）場合（Ｓ１１２：Ｎｏ）、ＩＯレジスタに対するアクセスが生じなかった場合（Ｓ１１３：Ｎｏ）、及びＩＯレジスタに対するアクセスが未接続のコンポーネントに対するものではなかった場合（Ｓ１１４：Ｙｅｓ）、コンポーネントの接続処理（Ｓ１１５、Ｓ１１６）は実行されず、周辺機器シミュレーション部５０に接続済みの全コンポーネントを１命令実行時間分だけ実行させる（Ｓ１１７）。
【００５２】
ＣＰＵシミュレーション部２０が実行開始のタイミングではないと判定した場合（Ｓ１１０：Ｎｏ）、その他の処理が実行される（Ｓ１１８）。その他の処理として、例えばシミュレーションの実行停止処理（ブレーク処理）等が実行される。
【００５３】
シミュレーションを終了すると判定した場合（Ｓ１０９：Ｙｅｓ）、接続管理部７０は、周辺機器シミュレーション部５０に接続している全てのコンポーネントを抽出する。そして、接続管理部７０は、プロジェクトファイル１００に周辺機器接続情報として抽出したコンポーネントの情報を書き込んだプロジェクトファイル１２０を生成する（Ｓ１１９）。接続管理部７０は、生成したプロジェクトファイル１２０を任意のファイルシステム等に書き込む。プロジェクトファイル１２０の生成により、シミュレーション処理を終了する。
【００５４】
続いて、本実施の形態にかかるシミュレーション装置の効果について説明する。上述のように、シミュレーション装置１０は、ＩＯレジスタへのアクセスにより動作させる周辺機器を模擬する複数のコンポーネント（タイマシミュレーション部５１等）を備える。当該コンポーネントは、周辺機器シミュレーション部５０に接続されると、シミュレーションが可能な状態となる。検出部６０は、周辺機器に対応するＩＯレジスタへのアクセスを検出する。そして、接続管理部７０は、ＩＯレジスタへのアクセスが検出された時点で当該アクセスにかかるコンポーネントを周辺機器シミュレーション部５０に接続する。これにより、アクセスが検出されたコンポーネントのみが周辺機器シミュレーション部５０に接続される。換言すると、アクセスが検出されないコンポーネントは、周辺機器シミュレーション部５０に接続されない。不要なコンポーネントが接続されないことにより、シミュレーション装置１０は、シミュレーションにかかる時間を短縮することができる、すなわちシミュレーション速度の高速化が実現できる。
【００５５】
また、各コンポーネントは、シミュレーションを開始する必要が生じるまでは停止状態となる。これにより、コンポーネントのシミュレーション実行による速度低下の影響を軽減することができる。
【００５６】
さらに、バス監視部６１は、あるコンポーネントが周辺機器シミュレーション部５０と接続される時点で、当該コンポーネントを検出対象から除外する。これにより、バス監視部６１の処理の負荷を軽減することができ、ひいてはシミュレーション速度を向上させることが出来る。
【００５７】
さらにまた、接続管理部７０は、シミュレーションの実行終了後に周辺機器接続情報を生成する。接続管理部７０は、シミュレーションの実行前に有効な周辺機器接続情報が供給された場合には、当該周辺機器接続情報に記載されたコンポーネントを周辺機器シミュレーション部５０に接続する。これと同時に、バス監視部６１による監視処理は無効化される。バス監視部６１による処理が無効化されることにより、当該処理に要していた処理時間が短縮できる。
【００５８】
なお、周辺機器接続情報がテキスト情報である場合、すなわち周辺機器接続情報がプロジェクトファイル１２０に含まれ、プロジェクトファイル１２０がテキストファイルである場合、ユーザは、当テキストファイルを目視確認することにより本方式を用いているか否かを容易に確認することができる。
【００５９】
＜実施の形態２＞
本実施の形態にかかるシミュレーション装置は、周辺機器シミュレーション部５０に接続済みのコンポーネントをＩＯレジスタへのアクセスの状況に応じて解除することを特徴とする。以下、本実施の形態にかかるシミュレーション装置について、実施の形態１と異なる点を説明する。なお、実施の形態１において説明したシミュレーション装置１が有する構成要素と同一の構成要素は、同一の符号を付し、異なる動作を行う点を除き、詳細な説明を省略することとする。以降の実施の形態についても同様である。
【００６０】
本実施の形態にかかるシミュレーション装置の構成は、図１に示す構成と同様である。しかし、バス監視部６１、及び接続管理部７０が実施の形態１において説明した処理に加え、更なる処理を行う。
【００６１】
はじめに、ＩＯレジスタに書き込まれる書き込み内容の詳細について説明する。図９は、ＩＯレジスタシミュレーション部３０の構成を示す模式図である。上述したように、ＩＯレジスタでは、領域毎に固有領域、または共通領域が規定されている。ＣＰＵから発行されるアクセスには、ＩＯレジスタでの書き込みアドレスに加え、ビット毎（場合によっては複数ビット毎）に意味がある（たとえば制御の内容を示す）データが規定されている。例えば、図９に示す例では、共通領域に、各周辺機器にクロックを供給するか否かを規定する周辺イネーブルレジスタ領域が設定されている。当該共通領域では、各周辺機器に対応するビットが規定されており、ある周辺機器に対するビットに"０"が設定されていれば対象機器へのクロックを停止し、当該ビットに"１"が設定されていれば対象機器へのクロックを供給することを指示する。
【００６２】
次に、本実施の形態にかかるバス監視部６１及び接続管理部７０の動作を説明する。バス監視部６１は、実施の形態１と同様にＣＰＵシミュレーション部２０から発行されたアクセスに含まれるＩＯレジスタのアドレスと、ＩＯレジスタ情報格納部６２に格納された情報と、を比較する。この比較により、バス監視部６１は、ＩＯレジスタに対するアクセスが生じたか否かを判定する。
【００６３】
さらに、バス監視部６１は、ＩＯレジスタに対するアクセスが生じた場合に、ＩＯレジスタに対する書き込み内容を抽出する。そして、バス監視部６１は、抽出した書き込み内容から周辺機器シミュレーション部５０と接続中のコンポーネントのうち、接続を解除しても良いコンポーネントが発生したか否かを判定する。例えば、図９の構成において、タイマイネーブル情報（タイマシミュレーション部５１にクロックを供給するか否かを設定するビット）に"０"（クロックの供給を停止する設定）が書き込まれるアクセスをバス監視部６１が検出した場合、バス監視部６１は、タイマシミュレーション部５１と周辺機器シミュレーション部５０との接続を解除しても良いと判定する。バス監視部６１は、解除可能なコンポーネントを検出した場合に、当該コンポーネントの情報を接続管理部７０に通知する。
【００６４】
接続管理部７０は、接続の解除が可能なコンポーネントの通知をバス監視部６１から受信した場合に、当該コンポーネントと周辺機器シミュレーション部５０との接続を解除する。
【００６５】
なお、バス監視部６１による解除可能なコンポーネントの検出処理、及び接続管理部７０による接続解除処理は、例えば図８におけるＳ１１３の処理とＳ１１４の処理の間に行えばよく、他のタイミングで行っても良い。
【００６６】
接続管理部７０は、接続を解除したコンポーネントについても周辺機器接続情報の書き込み対象とする。
【００６７】
上述の説明では、クロック供給に関する設定についての例を説明したが、必ずしもこれに限られず、バス監視部６１は、ＩＯレジスタへの書き込み内容に応じてコンポーネントの接続を解除するか否かを判定するものであればよい。
【００６８】
続いて、本実施の形態にかかるシミュレーション装置１０の効果について説明する。上述のように、バス監視部６１は、ＩＯレジスタへの書き込み内容に応じてコンポーネントの接続を解除するか否かを判定し、接続管理部７０は当該判定に応じてコンポーネントの接続を解除する。コンポーネントの接続が解除されることにより、シミュレーション速度を更に向上することができる。
【００６９】
本実施の形態にかかるシミュレーション装置では、ＩＯレジスタへの書き込み内容の解析に基づいてコンポーネントの停止の可否を決定している。そのため、本実施の形態にかかるシミュレーション装置では、使用頻度等に応じてコンポーネントの停止をする場合等に比べて、再接続の可能性が低いコンポーネントの接続解除ができる。すなわち、本実施の形態にかかるシミュレーション装置では、精度良くコンポーネントの接続を解除できる。
【００７０】
＜実施の形態３＞
本実施の形態にかかるシミュレーション装置１０は、ユーザが明示的に接続対象のコンポーネントをユーザインターフェイス等から選択できることを特徴とする。本実施の形態にかかるシミュレーション装置について、実施の形態１、２と異なる点を以下に説明する。
【００７１】
図１０は、本実施の形態にかかるシミュレーション装置１０の構成を示すブロック図である。図示するように、シミュレーション装置１０内の接続管理部７０は、接続選択ＧＵＩ１３０からの指示を受け付ける点が図１の構成と異なる。
【００７２】
接続選択ＧＵＩ１３０は、シミュレーション実行時に周辺機器シミュレーション部５０と接続するコンポーネントをユーザに選択させるＧＵＩ（Graphical User Interface）である。図１１は、接続選択ＧＵＩ１３０が提供する画面の一例を示す図である。当該画面には、接続可能な全ての周辺機器（コンポーネント）が表示される。当該画面では、各周辺機器に対して接続を行うか否かをラジオボックス形式で選択可能としている。更に当該画面では、選択した周辺機器以外に接続する可能性がある周辺機器があるか否か（「使用する周辺機器は以上で決定ですか？」）についてラジオボックス形式で選択可能としている。
【００７３】
選択した周辺機器以外が接続する可能性が無いことが選択された場合（「使用する周辺機器は以上で決定ですか？」の問いに対して「はい」が選択された場合）、接続管理部７０は、バス監視部６１を動作させない（ＯＦＦ）ように設定する。すなわち、上述の図７、図８のＳ１０５においてバス監視部を動作させないこと（Ｓ１０５：Ｎｏ）を設定する。
【００７４】
選択した周辺機器以外が接続する可能性が有ることが選択された場合（「使用する周辺機器は以上で決定ですか？」の問いに対して「いいえ」が選択された場合）、接続管理部７０は、バス監視部６１を動作させる（ＯＮ）ように設定する。すなわち、上述の図７、図８のＳ１０５においてバス監視部を動作させること（Ｓ１０５：Ｙｅｓ）を設定する。さらに、接続管理部７０は、上述のＳ１０７の処理（全コンポーネントの接続対象から除外する）に替わり、ＧＵＩ上で選択されたコンポーネント以外のコンポーネントを接続対象から除外する。なお、その他の処理は、図７及び図８に示す処理と同様である。
【００７５】
続いて、本実施の形態にかかるシミュレーション装置１０の効果について説明する。上述のように、ユーザは、接続する周辺機器（コンポーネント）をＧＵＩから明示的に指定することができる。さらに、ＧＵＩの選択画面においてバス監視部６１を動作させないことを選択した場合（図１１において「使用する周辺機器は以上で決定ですか？」の問いに対して「はい」を選択した場合）、バス監視部６１の動作を停止する。バス監視部６１の動作を停止することにより、バスにかかる処理が省略できる。これにより、更なる処理の高速化が図れる。
【００７６】
また、ＧＵＩの選択画面においてバス監視部６１を動作させることを選択した場合（図１１において「使用する周辺機器は以上で決定ですか？」の問いに対して「いいえ」を選択した場合）であっても、バス監視部６１は、選択された周辺機器（コンポーネント）をシミュレーションの開始時点から検出対象から除外する。検出対象が削減されたことにより、バス監視部６１は、実施の形態１と比べて処理の高速化を図ることができる。
【００７７】
なお、上述の説明では、ユーザがＧＵＩを用いて接続対象を選択したが、必ずしもこれに限られない。例えば、ユーザは、ＧＵＩを用いて選択する内容に対応するテキストファイルを作成し、当該テキストファイルを接続管理部７０に入力しても良い。当該テキストファイルの一例を図１２に示す。このように、ＧＵＩにて設定する情報と略同一の設定内容を記載すればよい。つまり、ユーザが明示的に接続対象を選択できるようにシミュレーション装置１０が構成されていればよい。
【００７８】
＜実施の形態４＞
本実施の形態にかかるシミュレーション装置１０は、バスの監視に代わり、プログラム１１０を解析することにより接続対象のコンポーネントを検出することを特徴とする。本実施の形態にかかるシミュレーション装置１０の構成、動作について、実施の形態１〜３と異なる点を以下に説明する。
【００７９】
図１３は、本実施の形態にかかるシミュレーション装置１０の構成を示すブロック図である。本実施の形態にかかるシミュレーション装置１０は、検出部６０内にバス監視部６１が無く、代わりにプログラム解析部６３を備える。
【００８０】
プログラム解析部６３は、シミュレーションの実行前にプログラム１１０の静的解析を実行する処理部である。プログラム解析部６３は、この静的解析によってＩＯレジスタに対するアクセスを全て抽出する。プログラム解析部６３は、抽出したアクセスからどのコンポーネントを接続するべきかを決定する。プログラム解析部６３は、接続すべきコンポーネントの情報を接続管理部７０に通知する。
【００８１】
接続管理部７０は、プログラム解析部６３から接続すべきコンポーネントの情報を受け取ると、周辺機器接続情報を抽出した場合と同様に取り扱う。すなわち、接続管理部７０は、通知にかかるコンポーネントをシミュレーション実行前に周辺機器シミュレーション部５０に接続する。
【００８２】
なお、本実施の形態にかかるシミュレーション装置１０の動作は、バス監視を行わないことを除いては、図７及び図８に示す動作と略同一である。
【００８３】
図１４は、プログラム１１０内の記述の一例を示す概念図である。このプログラムコードには、ＩＯレジスタに対するアクセスが記載されている。プログラム解析部６３は、このようなコード箇所を全て抽出する。そして、プログラム解析部６３は、抽出したコード箇所を解析してどのコンポーネントにかかるアクセスかを判定する。
【００８４】
続いて、本実施の形態にかかるシミュレーション装置１０の効果について説明する。本実施の形態にかかるシミュレーション装置１０では、シミュレーション処理の実行前にプログラム１１０の静的解析を行い、当該解析結果に応じて接続するコンポーネントを判定している。これにより、シミュレーション実行中のバスの監視処理が不要となる。バスの監視処理が不要となることにより、シミュレーション実行の処理速度が向上する。また、プログラム解析部６３は、上述の静的解析により接続する必要があるコンポーネントを抽出している。換言すると、プログラム解析部６３は、周辺機器シミュレーション部５０に接続する必要が無いコンポーネントも併せて判定していることになる。これにより、本実施の形態にかかるシミュレーション装置１０でも、不要なコンポーネントが周辺機器シミュレーション部５０に接続することを回避できる。不要なコンポーネントが周辺機器シミュレーション部５０に接続することを回避できるため、実施の形態１等と同様に、シミュレーション速度を向上することができる。
【００８５】
なお、プログラム解析部６３は、上述のようにプログラム１１０の静的解析を行うため、実際には実行されないことがあるコード行をも参照して接続するコンポーネントを決定する。そのため、本実施の形態にかかるシミュレーション装置１０では、バスの監視を行わない分だけシミュレーション実行速度が速くできる可能性もあるが、プログラム１１０内の動的な分岐条件の存在によっては不要なコンポーネントを周辺機器シミュレーション部５０に接続してしまう恐れがある。すなわち、本実施の形態にかかるシミュレーション装置１０では、プログラム１１０の記載内容によって実施の形態１にかかるシミュレーション装置１０よりもシミュレーション速度が速くなる可能性があり、遅くなる可能性もある。
【００８６】
＜実施の形態５＞
本実施の形態にかかるシミュレーション装置は、検出部６０内にバス監視部６１と、プログラム解析部６３が併存することを特徴とする。以下、本実施の形態にかかるシミュレーション装置の特徴を説明する。
【００８７】
図１５は、本実施の形態にかかるシミュレーション装置１０の構成を示すブロック図である。シミュレーション装置１０は、図示するように、検出部検出部６０内にバス監視部６１と、プログラム解析部６３と、を備える。
【００８８】
プログラム解析部６３は、上述したようにシミュレーションの実行前にプログラム１１０の静的解析を実行する。接続管理部７０は、解析結果に応じてシミュレーション実行前に接続を要するコンポーネントを周辺機器シミュレーション部５０に接続する。接続後にシミュレーションが開始される。バス監視部６１は、シミュレーション開始後にバスの監視を行う。この際、バス監視部６１は、すでに接続済みのコンポーネントを検出対象から除外してアクセスを検出するように設定される。その他の動作は、実施の形態１と同様である。
【００８９】
続いて、本実施の形態にかかるシミュレーション装置１０の効果について説明する。本実施の形態にかかるシミュレーション装置１０は、上述のようにプログラム１１０の解析によりコンポーネントを接続した後に、バスの監視を行い、適宜必要となったコンポーネントを追加的に接続している。ここで、シミュレーションに用いるプログラム１１０は、コンパイラが生成したものや、ユーザがアセンブリ言語を用いて手作業で記述したものなど多岐にわたる。これにより、プログラム解析部６３による静的解析が不十分になるケースも生じ得る。上述の構成では、バス監視部６１はバスの監視も行うため、バス監視部６１は、プログラム解析部６３が検出できなかったコンポーネントをも検出して周辺機器シミュレーション部５０に接続することができる。これにより、どのようなプログラム１１０を用いる場合であっても、シミュレーション装置１０は、正確なシミュレーションを実行することができる。
【００９０】
なお、本実施の形態にかかるシミュレーション装置１０では、シミュレーション開始前に静的解析に応じてコンポーネントが接続されている。そのため、バス監視部６１の検出対象のコンポーネントが少なくなり、バスの監視処理の負担が全てのコンポーネントを検出対象とする場合に比べて軽減される。
【００９１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。また、上記した各実施の形態の構成は、適宜組み合わせることが可能である。
【００９２】
シミュレーション装置１０の各処理部（ＣＰＵシミュレーション部２０、ＩＯレジスタシミュレーション部３０、同期実行制御部４０、周辺機器シミュレーション部５０、検出部６０、接続管理部７０）の各処理は、任意のコンピュータ内で動作するプログラムとして実現することが可能である。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９３】
シミュレーション装置１０の各処理部の処理をプログラムとして実行するコンピュータのハードウェア構成の一例を図１６に示す。当該コンピュータは、中央処理装置（ＣＰＵ, Central Processing Unit）２０１と、メモリ２０２と、を含んでいる。ＣＰＵ２０１及びメモリ２０２は、バスを介して補助記憶装置としてのハードディスク装置（ＨＤＤ）"０３に接続される。このコンピュータは、典型的には、ユーザ・インターフェース・ハードウェアを備える。ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス（マウス、ジョイスティック等）やキーボード等の入力装置２０４や、視覚データをユーザに提示するための液晶ディスプレイなどの表示装置２０５がある。ハードディスク装置２０３等の記憶媒体にはオペレーティングシステムと協働してＣＰＵ２０１等に命令を与え、上述したシミュレーション装置１０の各処理を実施するためのコンピュータ・プログラムを記憶することができる。
【符号の説明】
【００９４】
１０  シミュレーション装置
２０  ＣＰＵシミュレーション部
３０  ＩＯレジスタシミュレーション部
４０  同期実行制御部
５０  周辺機器シミュレーション部
５１  タイマシミュレーション部
５２  シリアルシミュレーション部
５３  ＡＤシミュレーション部
６０  検出部
６１  バス監視部
６２  ＩＯレジスタ情報格納部
６３  プログラム解析部
７０  接続管理部
１００  プロジェクトファイル
１１０  プログラム
１２０  プロジェクトファイル
１３０  接続選択ＧＵＩ
２０１  ＣＰＵ
２０２  メモリ
２０３  ＨＤＤ
２０４  入力装置
２０５  表示装置
【図１】
2013050761.tif 000003
【図２】
2013050761.tif 000004
【図３】
2013050761.tif 000005
【図４】
2013050761.tif 000006
【図５】
2013050761.tif 000007
【図６】
2013050761.tif 000008
【図７】
2013050761.tif 000009
【図８】
2013050761.tif 000010
【図９】
2013050761.tif 000011
【図１０】
2013050761.tif 000012
【図１１】
2013050761.tif 000013
【図１２】
2013050761.tif 000014
【図１３】
2013050761.tif 000015
【図１４】
2013050761.tif 000016
【図１５】
2013050761.tif 000017
【図１６】
2013050761.tif 000018