(57)【要約】  【課題】  周期的なクロック入力に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムをシミュレーションする場合に、従来のサイクルベースシミュレーションよりシミュレーション実行時間を短縮することができるシミュレーション装置を提供する。  【解決手段】  第１回路ブロックの動作をサイクルベースモデル３でシミュレーションし、第２回路ブロックの動作を時間概念を含まないネイティブ型モデル４でシミュレーションする。サイクルベースモデル３は、シミュレーションカーネル２よりサイクル時間毎に呼び出されて起動し、ネイティブ型モデル４は、ネイティブ型モデル実行制御部１１に呼び出されて起動する。ネイティブ型モデル実行制御部１１は、サイクルベースモデル３から発せられた、第１回路ブロックから第２回路ブロックに対する処理要求に相当する要求情報を受け付ける度に、ネイティブ型モデル４を起動させる。  【選択図】  図１
2005100174.tif 000002
【特許請求の範囲】
【請求項１】
特定の周期に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション装置であって、
前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーション手段と、
前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段と、
所定の周期で前記第１シミュレーション手段を起動させる第１制御手段と、
前記第１シミュレーション手段から前記第２シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段と、
前記受付手段により前記要求情報が受け付けられた場合に、前記第２シミュレーション手段を起動させる第２制御手段とを備える
ことを特徴とするシミュレーション装置。
【請求項２】
前記システムは、共有資源を介して前記第１回路ブロックと前記第２回路ブロックとの間でデータ転送を行うシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
前記共有資源をシミュレーションする共有資源シミュレーション手段と、
前記第２シミュレーション手段から前記第１シミュレーション手段に対して発せられた、前記第２回路ブロックから前記第１回路ブロックに対する処理要求に相当する第２要求情報を受け付けて、前記共有資源シミュレーション手段に当該第２要求情報を発する仲介手段とを更に備え、
前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第２要求情報を受け付けた場合に、前記第１シミュレーション手段は、当該共有資源シミュレーション手段にアクセスして第２要求情報を読み出す
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記第１シミュレーション手段は、前記第２シミュレーション手段に対して前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を発してから、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第２要求情報を受け付けるまでの間、前記共有資源シミュレーション手段にアクセスしないことを特徴とする請求項２記載のシミュレーション装置。
【請求項４】
前記仲介手段は、
前記共有資源シミュレーション手段に前記第２要求情報を発する前に、アクセス要求を当該共有資源シミュレーション手段に対して通知する通知手段と、
前記アクセス要求に対する前記共有資源シミュレーション手段からの応答の有無を判定する判定手段とを備え、
前記判定手段により応答有りと判定された場合に、前記第２要求情報を前記共有資源シミュレーション手段に対して発し、前記判定手段により応答無しと判定された場合に、所定期間、当該第２要求情報を発するのを待ち、その後、再度前記通知手段によりアクセス要求を前記共有資源シミュレーション手段に通知し、
前記共有資源シミュレーション手段は、
前記通知手段によりアクセス要求の通知を受けると、前記共有資源に対するアクセスを許可するか否かを決定し、肯定的な決定を行う場合にのみ、応答する調停手段を備える
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
前記システムは、特定の周期に基づいて動作する第３回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
前記第３回路ブロックの動作を時間概念を含まずにシミュレーションする第３シミュレーション手段を更に備え、
前記受付手段は、前記第１シミュレーション手段から前記第３シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第３回路ブロックに対する処理要求に相当する第３要求情報を更に受け付け、
前記第２制御手段は、前記受付手段が受け付けた情報が前記要求情報であれば、前記第２シミュレーション手段を起動させ、前記第３要求情報であれば、前記第３シミュレーション手段を起動させる
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項６】
前記システムは、特定の周期に基づいて動作する第３回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
前記第３回路ブロックの動作を時間概念を含まずにシミュレーションする第３シミュレーション手段を更に備え、
前記第２シミュレーション手段は、前記第３シミュレーション手段を起動させる第３制御手段を備える
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項７】
前記第１制御手段により前記第１シミュレーション手段に対して所定の周期で繰り返しなされる起動制御の回数をカウントするサイクル計測手段を更に備え、
前記第１制御手段は、シミュレーション実行開始時に前記第２シミュレーション手段を起動させ、
前記第２シミュレーション手段は、自己のシミュレーション状態の移行タイミングをタイミング情報として予め記憶しており、前記第１制御手段により起動させられた際に、当該タイミング情報を前記サイクル計測手段に伝送し、
前記サイクル計測手段は、前記第２シミュレーション手段から伝送されたタイミング情報と、カウントしている起動制御の回数に基づいて、前記第２制御手段に当該第２シミュレーション手段を起動させるタイミングを通知し、
前記第２制御手段は、前記サイクル計測手段からの通知に基づいて前記第２シミュレーション手段を起動させる
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項８】
前記共有資源シミュレーション手段によりなされるシミュレーションの結果をシミュレーション情報として出力する出力手段と、
出力されたシミュレーション情報をユーザに提示するユーザインターフェース手段とを更に備える
ことを特徴とする請求項２〜７のうちいずれか１項に記載のシミュレーション装置。
【請求項９】
前記共有資源シミュレーション手段は、更に、
詳細なシミュレーション情報を提示をすべきシミュレーション部分を指定する情報を記録する記録手段と、
前記出力手段から前記ユーザインターフェース手段に出力すべきシミュレーション情報の制御を行う出力制御手段とを備え、
前記ユーザインターフェース手段は、
提示すべきシミュレーション情報の指定をユーザから受け付けて、当該指定を前記出力制御手段に通知し、
前記出力制御手段は、詳細なシミュレーション情報を提示をすべきシミュレーション部分については、前記記録手段に記録された情報に基づいて詳細なシミュレーション情報を出力し、それ以外のシミュレーション部分については、前記ユーザインターフェース手段より通知されたユーザ指定に係るシミュレーション情報を出力する制御を行う
ことを特徴とする請求項８に記載のシミュレーション装置。
【請求項１０】
前記シミュレーション装置は、マルチスレッドオペレーティングシステムを備えており、
前記第２シミュレーション手段及び前記第３シミュレーション手段はそれぞれ、マルチスレッド制御下における１スレッドとして実行状態が制御される
ことを特徴とする請求項５に記載のシミュレーション装置。
【請求項１１】
特定の周期に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするためにコンピュータを、
前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーション手段、
前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段、
所定の周期で前記第１シミュレーション手段を起動させる第１制御手段、
前記第１シミュレーション手段から前記第２シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段、
前記受付手段により前記要求情報が受け付けられた場合に、前記第２シミュレーション手段を起動させる第２制御手段として機能させる
ことを特徴とするシミュレーションプログラム。
【請求項１２】
請求項１１に記載のシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムＬＳＩ等のシステム開発において、設計段階にあるシステムをシミュレーションするシミュレーション装置に関し、特にシミュレーション実行時間の短縮化に関する。
【背景技術】
【０００２】
近年、コンピュータの小型化、高性能化の要望に応じて、プロセッサ、メモリ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｃｉｒｃｕｉｔｓ）等の各部品を１つのチップにまとめたシステムＬＳＩの開発が盛んに進められている。
こうしたシステムＬＳＩの開発では、システムＬＳＩをチップ化する前の段階、すなわち、設計段階において、設計開発者がＣ／Ｃ＋＋言語等を用いてそのシステムＬＳＩの性能検証に適した抽象度の設計モデルを作成し、コンピュータ上でシミュレーションを行うのが一般的である。これは、チップ化した後に設計変更が生じないようにするためである。チップ化した後に設計変更が生じれば、当然、多大なコストが発生する。
【０００３】
一般的にシステムＬＳＩのシミュレーションには、サイクルベースシミュレーションと呼ばれるシミュレーション手法が用いられている。
サイクルベースシミュレーションとは、所定の周期、例えば、システムクロックの１周期に相当するタイミングを１サイクル時間として、サイクル時間毎にシステムの動作を計算してシミュレーションする手法のことをいう。システムクロック以外に、バスサイクルをサイクル時間としてシミュレーションするものであってもよい。
【０００４】
サイクルベースシミュレーションについては、下記に示す非特許文献に説明されている。
ここで、サイクルベースシミュレーションの具体例について説明する。
図１０は、共有資源を介して２つのプロセッサ間でデータ転送を行うシステムの動作をサイクルベースでシミュレーションするシミュレーション装置の機能ブロックを表す図である。
【０００５】
シミュレーション装置１０００は、機能的にはシミュレーションカーネル１００１、サイクルベースモデル１００２を備える。シミュレーション装置１０００は、ＣＰＵ、メモリ、ハードディスク等を有するコンピュータであり、メモリ又はハードディスクに格納されているシミュレーションプログラムをＣＰＵが実行することにより各機能を実現する。
シミュレーションカーネル１００１は、１サイクル時間毎にサイクルベースモデル１００２を呼び出して実行制御する機能を有する。図１０の白抜き点線矢印は、シミュレーションカーネル１００１が、１サイクル時間毎にサイクルベースモデル１００２を呼び出している指示を表している。
【０００６】
サイクルベースモデル１００２には、プロセッサコアモジュール１００３、拡張レジスタモジュール１００４、プロセッサモジュール１００５、割り込み制御部１００６、共有資源モジュール１００７が含まれている。これらのモジュールは、実システムが備えることになる各機能ブロックをモデル化したものである。白抜き矢印は、モジュール間のアクセスを表している。
【０００７】
プロセッサコアモジュール１００３及びプロセッサモジュール１００５には、命令セットシミュレータ（ＩＳＳ：Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｓｉｍｕｌａｔｏｒ）が用いられており、プロセッサコアやプロセッサの動作をシミュレーションする。また、拡張レジスタモジュール１００４は拡張レジスタを、共有資源モジュール１００７は、共有メモリ、バスといった共有資源をモデル化したものである。
【０００８】
次に、プロセッサモジュール１００４がメインプロセッサ、プロセッサコアモジュール１００３がスレーブプロセッサであるとして、これらのプロセッサ間で行われるデータ転送のシミュレーション動作について、タイミングチャートを用いて説明する。
図１１は、シミュレーション装置１０００に含まれる各機能部の動作タイミングチャートを示す図である。サイクルベースモデル１００２は、１サイクル時間毎にシミュレーションカーネル１００１から呼び出されて起動する。
【０００９】
シミュレーションが実行されると、プロセッサモジュール１００５及びプロセッサコアモジュール１００３はそれぞれ初期化動作を行う（Ａ１、Ａ２）。
プロセッサモジュール１００５は、初期化動作（Ａ１）を終えるとプロセッサコアモジュール１００３からの初期化動作完了通知を待つ待機状態となる。
一方、プロセッサコアモジュール１００３は、初期化動作（Ａ２）を終えると、プロセッサモジュール１００５に初期化動作完了を通知するためのパラメータを、共有資源モジュール１００７に書き込むライトアクセスを行う（Ａ３）。すなわち、プロセッサコアモジュール１００３は、共有資源モジュール１００７にライトリクエストを送信し、共有資源モジュール１００７から応答があれば、書き込むパラメータのアドレスと値とを送信する。
【００１０】
プロセッサコアモジュール１００３は、共有資源モジュール１００７からパラメータ書き込み完了通知を受けると、続いて拡張レジスタモジュール１００４に割り込み要求を書き込む（Ａ４）。その後、プロセッサコアモジュール１００３は、プロセッサモジュール１００５からの指示を待つ待機状態となる。
拡張レジスタモジュール１００４に割り込み要求が書き込まれたことにより、プロセッサモジュール１００５は待機状態から実行状態に変わり（Ａ５）、共有資源モジュール１００７に書き込まれたパラメータを読み出すリードアクセスを行う（Ａ６）。すなわち、プロセッサモジュール１００５は、共有資源モジュール１００７にリードリクエストを送信し、共有資源モジュール１００７から応答があれば、読み出すパラメータのアドレスを送信する。共有資源モジュール１００７は、指示されたアドレスにあるパラメータをプロセッサモジュール１００５に転送する。
【００１１】
プロセッサモジュール１００５は、パラメータを受信して、そのパラメータの内容、すなわちプロセッサコアモジュール１００３の初期化動作完了という情報を処理し（Ａ７）、プロセッサコアモジュール１００３に処理させる指示をパラメータとして共有資源モジュール１００７に書き込むライトアクセスを行う（Ａ８）。ライトアクセスの動作は、上述したプロセッサコアモジュール１００３から共有資源モジュール１００７へのライトアクセスと同様であるので省略する。続いて、割り込み制御部１００６に割り込み要求を書き込む（Ａ９）。
【００１２】
プロセッサコアモジュール１００３は割り込み制御部１００６に書き込まれた割り込み要求を受けて、待機状態から実行状態に変わり（Ａ１０）、共有資源モジュール１００７に書き込まれたパラメータを読み出すリードアクセスを行う（Ａ１１）。リードアクセスの動作は、上述したプロセッサモジュール１００５による共有資源モジュール１００７へのリードアクセスと同様であるので省略する。
【００１３】
プロセッサコアモジュール１００３は、読み出したパラメータに基づいて処理を行い（Ａ１２）、結果をパラメータとして共有資源モジュール１００７に書き込むライトアクセスを行う（Ａ１３）。続いて拡張レジスタモジュール１００４に割り込み要求を書き込む（Ａ１４）。その後、プロセッサコアモジュール１００３は、再びプロセッサモジュール１００５からの指示を待つ待機状態となる。
【００１４】
拡張レジスタモジュール１００４に割り込み要求が書き込まれたことにより、プロセッサモジュール１００５は待機状態から実行状態に変わり（Ａ１５）、次の処理を行う。
以上のように、シミュレーション装置１０００は、２つのプロセッサ間で共有資源を介してデータ転送するシステムについて、サイクルベースシミュレーションを行う。
【非特許文献１】日経エレクトロニクス１９９３年６月７日号（ｎｏ．５８２），ｐｐ．６６−６７
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところで、システムＬＳＩの市場において優位性を確立するためには、早期に製品化することが必要である。早期製品化には、開発期間の短縮化が大きな要因となる。
開発期間を短縮するのに、シミュレーション実行時間の短縮化は大変有効である。何故なら、大規模なシステムＬＳＩについて抽象度の低い設計モデル（例えば、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）モデル等）を用いてサイクルベースシミュレーションする場合、シミュレーションの実行開始から終了までに膨大な時間が費やされるのが一般的だからである。
【００１６】
本発明は、周期的なクロック入力に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムをシミュレーションする場合に、従来のサイクルベースシミュレーションよりシミュレーション実行時間を短縮することができるシミュレーション装置、シミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために本発明に係るシミュレーション装置は、周期的なクロック入力に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション装置であって、前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーション手段と、前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段と、所定の周期で前記第１シミュレーション手段を起動させる第１制御手段と、前記第１シミュレーション手段から前記第２シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段と、前記受付手段により前記要求情報が受け付けられた場合に、前記第２シミュレーション手段を起動させる第２制御手段とを備えることを特徴とする。
【００１８】
また、本発明に係るシミュレーションプログラムは、周期的なクロック入力に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするためにコンピュータを、前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーション手段、前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段、所定の周期で前記第１シミュレーション手段を起動させる第１制御手段、前記第１シミュレーション手段から前記第２シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段、前記受付手段により前記要求情報が受け付けられた場合に、前記第２シミュレーション手段を起動させる第２制御手段として機能させることを特徴とする。
【００１９】
また、前記シミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体を本発明であるとしてもよい。
ここでいう時間概念とは、例えば、システムのシステムクロックやバスサイクル等である。
【発明の効果】
【００２０】
上記本発明の構成において、前記第２シミュレーション手段は、第２回路ブロックの動作を時間概念を含まずにシミュレーションするので、従来のように第１回路ブロック及び第２回路ブロックの動作を時間概念を含めてシミュレーションする場合と比較すると、シミュレーション実行時間が短縮されることになる。
また、所定の周期で呼び出されて動作する第１シミュレーション手段からの処理要求に基づいて前記第２シミュレーション手段は起動させられるので、第２シミュレーション手段は、第１シミュレーション手段と必要最小限の同期を取りながら、シミュレーションを実行することができる。すなわち、システムシミュレーションに必要なシミュレーション精度は維持できる。
【００２１】
また、前記システムは、共有資源を介して前記第１回路ブロックと前記第２回路ブロックとの間でデータ転送を行うシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、前記共有資源をシミュレーションする共有資源シミュレーション手段と、前記第２シミュレーション手段から前記第１シミュレーション手段に対して発せられた、前記第２回路ブロックから前記第１回路ブロックに対する処理要求に相当する第２要求情報を受け付けて、前記共有資源シミュレーション手段に当該第２要求情報を発する仲介手段とを更に備え、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第２要求情報を受け付けた場合に、前記第１シミュレーション手段は、当該共有資源シミュレーション手段にアクセスして第２要求情報を読み出すこととしてもよい。
【００２２】
この構成により、共有資源を介して前記第１回路ブロックと前記第２回路ブロックとの間でデータ転送を行うシステムのシミュレーションにおいても、シミュレーション実行時間を短縮することができる。
また、前記第１シミュレーション手段は、前記第２シミュレーション手段に対して前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を発してから、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第２要求情報を受け付けるまでの間、前記共有資源シミュレーション手段にアクセスしないこととしてもよい。
【００２３】
この構成により、共有資源シミュレーション手段に対する第１シミュレーション手段及び第２シミュレーション手段によるアクセスは、それぞれ排他的に実施される。
また、前記仲介手段は、前記共有資源シミュレーション手段に前記第２要求情報を発する前に、アクセス要求を当該共有資源シミュレーション手段に対して通知する通知手段と、前記アクセス要求に対する前記共有資源シミュレーション手段からの応答の有無を判定する判定手段とを備え、前記判定手段により応答有りと判定された場合に、前記第２要求情報を前記共有資源シミュレーション手段に対して発し、前記判定手段により応答無しと判定された場合に、所定期間、当該第２要求情報を発するのを待ち、その後、再度前記通知手段によりアクセス要求を前記共有資源シミュレーション手段に通知し、前記共有資源シミュレーション手段は、前記通知手段によりアクセス要求の通知を受けると、前記共有資源に対するアクセスを許可するか否かを決定し、肯定的な決定を行う場合にのみ、応答する調停手段を備えることとしてもよい。
【００２４】
この構成により、システムに備わるアービタによる共有資源の使用権調停と、その結果生じる転送遅延をシミュレーションすることができる。
また、前記システムは、特定の周期に基づいて動作する第３回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、前記第３回路ブロックの動作を時間概念を含まずにシミュレーションする第３シミュレーション手段を更に備え、前記受付手段は、前記第１シミュレーション手段から前記第３シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第３回路ブロックに対する処理要求に相当する第３要求情報を更に受け付け、前記第２制御手段は、前記受付手段が受け付けた情報が前記要求情報であれば、前記第２シミュレーション手段を起動させ、前記第３要求情報であれば、前記第３シミュレーション手段を起動させることとしてもよい。
【００２５】
この構成により、第１〜第３回路ブロックを含むシステムにおいて、第２回路ブロック及び第３回路ブロックについては、時間概念を含まないでシミュレーションするので、第１〜第３回路ブロック全てを時間概念を含んでシミュレーションする場合と比較すると、シミュレーション実行時間を短縮することができる。
また、前記システムは、特定の周期に基づいて動作する第３回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、前記第３回路ブロックの動作を時間概念を含まずにシミュレーションする第３シミュレーション手段を更に備え、前記第２シミュレーション手段は、前記第３シミュレーション手段を起動させる第３制御手段を備えることを特徴としてもよい。
【００２６】
この構成は、第１回路ブロックから第３回路ブロックに対して処理要求が発せられることがなく、第２回路ブロックが第３回路ブロックを起動制御するシステム構成の場合に有用である。
また、前記第１制御手段により前記第１シミュレーション手段に対して所定の周期で繰り返しなされる起動制御の回数をカウントするサイクル計測手段を更に備え、前記第１制御手段は、シミュレーション実行開始時に前記第２シミュレーション手段を起動させ、前記第２シミュレーション手段は、自己のシミュレーション状態の移行タイミングをタイミング情報として予め記憶しており、前記第１制御手段により起動させられた際に、当該タイミング情報を前記サイクル計測手段に伝送し、前記サイクル計測手段は、前記第２シミュレーション手段から伝送されたタイミング情報と、カウントしている起動制御の回数に基づいて、前記第２制御手段に当該第２シミュレーション手段を起動させるタイミングを通知し、前記第２制御手段は、前記サイクル計測手段からの通知に基づいて前記第２シミュレーション手段を起動させることとしてもよい。
【００２７】
この構成により、第１回路ブロックから第２回路ブロックに対して処理要求が発せられなくても、第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段を起動させることができる。
また、前記共有資源シミュレーション手段は、更に、詳細なシミュレーション情報を提示をすべきシミュレーション部分を指定する情報を記録する記録手段と、前記出力手段から前記ユーザインターフェース手段に出力すべきシミュレーション情報の制御を行う出力制御手段とを備え、前記ユーザインターフェース手段は、提示すべきシミュレーション情報の指定をユーザから受け付けて、当該指定を前記出力制御手段に通知し、前記出力制御手段は、詳細なシミュレーション情報を提示をすべきシミュレーション部分については、前記記録手段に記録された情報に基づいて詳細なシミュレーション情報を出力し、それ以外のシミュレーション部分については、前記ユーザインターフェース手段より通知されたユーザ指定に係るシミュレーション情報を出力する制御を行うこととしてもよい。
【００２８】
この構成により、詳細な提示をすべきシミュレーション部分については、記録手段に記録された情報に基づいて詳細なシミュレーション情報が提示され、そうでない部分については、ユーザが指定したシミュレーション情報が提示されるので、シミュレーション実行時に、ユーザは意識して詳細な提示が必要なシミュレーション部分を指定する必要がない。また、詳細な提示が必要でないシミュレーション部分については、提示するシミュレーション情報を基本的な情報に絞って提示させ、詳細な提示が必要なシミュレーション部分については、動的に詳細なシミュレーション情報を提示させることで、シミュレーション情報の提示によって生じるシミュレーション速度の劣化を抑えることができる。
【００２９】
また、前記シミュレーション装置は、マルチスレッドオペレーティングシステムを備えており、前記第２シミュレーション手段及び前記第３シミュレーション手段はそれぞれ、マルチスレッド制御下における１スレッドとして実行状態が制御されることとしてもよい。
【発明を実施するための最良の形態】
【００３０】
以下、本発明に係るシミュレーション装置について図面を用いて説明する。
＜構成＞
図１は、シミュレーション装置１の機能構成を示す図である。
シミュレーション装置１は、背景技術において説明したシミュレーション装置１０００と同様、共有資源を介して２つのプロセッサ間でデータ転送を行うシステムの動作をシミュレーションする。
【００３１】
シミュレーション装置１０００では、システムをサイクルベースモデルでモデル化したものを動作させるシミュレーションを実行していたが、シミュレーション装置１では、システム内の２つのプロセッサのうち、一方をネイティブ型モデルでシミュレーションし、それ以外の機能ブロックについては、従来と同様でサイクルベースモデルでシミュレーションする。
【００３２】
設計モデルの動作記述には、Ｃ／Ｃ＋＋言語を用いている。そして、ＭｉｃｒｏｓｏｆｔＶｉｓｕａｌＣ＋＋（登録商標）等のＰＣ用コンパイラを使用して、サイクルベースモデルのソースコードとネイティブ型モデルのプログラムを、シミュレーション装置１の実行形式に変換している。
ネイティブ型モデルとは、サイクルベースモデル３のようにシミュレーションカーネル２からサイクル時間毎の呼び出しを受けて動作するものではなく、サイクル時間という時間概念を含まずにシミュレーションするモデルである。具体的には、ネイティブ型モデル内の動作及び他の機能ブロックに対するデータ転送等に費やされるサイクル時間を考慮せず、すなわち、サイクル時間ゼロでシミュレーションする。
【００３３】
シミュレーション装置１は、機能的にはシミュレーションカーネル２、サイクルベースモデル３、ネイティブ型モデル実行制御部１１、ネイティブ型モデル４を備える。
シミュレーション装置１は、ＣＰＵ、メモリ、ハードディスク等を有するコンピュータであり、メモリ又はハードディスクに格納されているシミュレーションプログラムをＣＰＵが実行することにより各機能を実現する。
【００３４】
シミュレーションカーネル２は、システムクロックの１周期に相当するタイミングを１サイクル時間とするサイクル時間単位でサイクルベースモデル３を呼び出して実行制御する機能を有する。図１の白抜き点線矢印は、シミュレーションカーネル２が、１サイクル時間毎にサイクルベースモデル３を呼び出している指示を表している。
また、図示していないが、シミュレーションカーネル２は、シミュレーション実行開始時に１度だけネイティブ型モデル４を呼び出す。
【００３５】
サイクルベースモデル３には、プロセッサコアモジュール５、拡張レジスタモジュール６、外部インターフェース（以下、インターフェースを単にＩＦと記述する。）部７、共有資源ＩＦ部８、共有資源モジュール９、割り込み制御部１０が含まれている。図１の白抜き矢印はサイクルベースモデル３内の各モジュール間のアクセスを表し、このアクセスにはサイクル時間がかかる。一方実線の矢印は、サイクル時間を考慮しないアクセスを表している。
【００３６】
プロセッサコアモジュール５には、従来と同様、ＩＳＳが用いられており、システムのスレーブプロセッサコアの動作をシミュレーションする。
また、拡張レジスタモジュール６は拡張レジスタを、共有資源モジュール９は、共有メモリ、バスといった共有資源をサイクルベースモデル化したものである。
外部ＩＦ部７は、サイクルベースモデル３からネイティブ型モデル４に割り込み要求を送るための仲介をする機能部である。外部ＩＦ部７は、事前に登録されている拡張レジスタモジュール６のアドレスに対する書き込みを１サイクル毎にチェックして、割り込み要求の有無を確認する。
【００３７】
プロセッサコアモジュール５によって、ネイティブ型モデル４に対する割り込み要求が拡張レジスタモジュール６に書き込まれると、これを受けて外部ＩＦ部７は、ネイティブ型モデル実行制御部１１に割り込み要求を伝送する。
ネイティブ型モデル実行制御部１１は、外部ＩＦ部７から割り込み要求を受けるとネイティブ型モデル４を起動させる制御機能を有する。具体的には、ネイティブ型モデル４が有する状態制御部１２に対して状態移行要求を行う。
【００３８】
ネイティブ型モデル４は、システムのメインプロセッサの動作をシミュレーションする機能部であり、状態制御部１２を含む。
状態制御部１２は、ネイティブ型モデル４の２つの状態、すなわち、実行状態と待機状態をフラグ等を用いて制御する機能部であり、ネイティブ型モデル実行制御部１１から状態移行要求を受け付けると、待機状態から実行状態にネイティブ型モデル４を移行する。ネイティブ型モデル４の処理が終了すると、実行状態から待機状態に移行する。
【００３９】
共有資源ＩＦ部８は、ネイティブ型モデル４がサイクルベースモデルとして記述されている共有資源モジュール９へアクセスする際の仲介をする機能部である。
割り込み制御部１０は、ネイティブ型モデル４から発せられたプロセッサコアモジュール５への割り込み要求を受け付けて記録する機能部であり、割り込み要求を受け付けると、プロセッサコアモジュール５に通知する。
＜動作＞
次に、シミュレーション装置１によるシミュレーション動作について、タイミングチャートを用いて説明する。
【００４０】
図２は、シミュレーション装置１に含まれる各機能部の動作タイミングチャートを示す図である。図に示すＢ１〜Ｂ１４までの黒丸はサイクル時間０で動作がなされていることを示す。すなわち、黒丸においては、シミュレーション実行に費やされる実際の時間も微小な時間となる。
シミュレーションが実行されると、ネイティブ型モデル４及びプロセッサコアモジュール５はそれぞれ初期化動作を行う（Ｂ１、Ｃ１）。ネイティブ型モデル４は、起動後直ちにプロセッサコアモジュール５からの初期化動作完了通知を待つ待機状態となる。
【００４１】
一方、プロセッサコアモジュール５は、初期化動作（Ｃ１）を終えると、初期化動作完了をネイティブ型モデル４に通知するためのパラメータを、共有資源モジュール９に書き込むライトアクセスを行う（Ｃ２）。
ライトアクセスは、背景技術で説明したのと同様である。すなわち、プロセッサコアモジュール５は、共有資源モジュール９にライトリクエストを送信し、共有資源モジュール９から応答があれば、書き込むパラメータのアドレスと値とを送信する。
【００４２】
プロセッサコアモジュール５は、共有資源モジュール９からパラメータ書き込み完了通知を受けると、続いて拡張レジスタモジュール６に割り込み要求を書き込む（Ｃ３）。その後、プロセッサコアモジュール５は、ネイティブ型モデル４からの指示を待つ待機状態となる。
拡張レジスタモジュール６に割り込み要求が書き込まれると、外部ＩＦ部７はこれを確認して直ちにネイティブ型モデル実行制御部１１に割り込み要求を伝送する（Ｂ２）。
【００４３】
ネイティブ型モデル実行制御部１１は、外部ＩＦ部７から割り込み要求を受けると直ちにネイティブ型モデル４を起動させる（Ｂ３）。
ネイティブ型モデル４は待機状態から実行状態に変わり、共有資源モジュール９に書き込まれているパラメータの読み出しを行うために共有資源ＩＦ部８にアクセスする（Ｂ４）。すなわち、共有資源モジュール９に書き込まれているパラメータのアドレスを送信する。
【００４４】
共有資源ＩＦ部８は、ネイティブ型モデル４からのアクセスを受け付けて、共有資源モジュール９から該当のパラメータを読み出す（Ｂ５）。共有資源モジュール９はサイクルベースモデルであるので、パラメータの値の読み出しに数サイクル時間を要する（Ｃ４）。
共有資源ＩＦ部８は、パラメータの値を受けると、直ちにネイティブ型モデル４にパラメータの値を伝送する（Ｂ６）。
【００４５】
ネイティブ型モデル４は、共有資源ＩＦ部８から伝送されたパラメータの内容、すなわちプロセッサコアモジュール５の初期化動作完了という情報に対して、プロセッサコアモジュール５に処理させる指示を示すパラメータと、書き込むアドレスを共有資源ＩＦ部８に送信する（Ｂ７）。
ネイティブ型モデル４からパラメータとアドレスを受信した共有資源ＩＦ部８は、共有資源モジュール９の指定されたアドレスにパラメータ書き込む（Ｂ８）。パラメータの書き込みには数サイクル時間を要する（Ｃ５）。
【００４６】
パラメータの書き込みが終了し、共有資源モジュール９から書き込み完了通知を受けた共有資源ＩＦ部８は、直ちに書き込みが終了した通知をネイティブ型モデル４に行う（Ｂ９）。
これを受けたネイティブ型モデル４は、割り込み制御部１０に対して割り込み要求を送る（Ｂ１０）。
【００４７】
これを受け付けた共有資源ＩＦ部８は、割り込み制御部１０に割り込み要求を書き込む（Ｂ１１）。図２のＣ６は、割り込み制御部１０への書き込みを示しており、やはり数サイクル時間かかる。
プロセッサコアモジュール５は割り込み制御部１０に割り込み要求が書き込まれたことを受けて、待機状態から実行状態に変わり（Ｃ７）、共有資源モジュール９に書き込まれたパラメータを読み出すリードアクセスを行う（Ｃ８）。
【００４８】
リードアクセスも背景技術で説明したのと同様である。すなわち、プロセッサコアモジュール５は、共有資源モジュール９にリードリクエストを送信し、共有資源モジュール９から応答があれば、読み出すパラメータのアドレスを送信する。共有資源モジュール９は、指示されたアドレスにあるパラメータをプロセッサコアモジュール５に転送する。
プロセッサコアモジュール５は、共有資源モジュール９から転送されたパラメータに基づいて処理を行い（Ｃ９）、結果をパラメータとして共有資源モジュール９に書き込むライトアクセスを行う（Ｃ１０）。続いて拡張レジスタモジュール６に割り込み要求を書き込む（Ｃ１１）。その後、プロセッサコアモジュール５は、再びネイティブ型モデル４からプの指示を待つ待機状態となる。
【００４９】
拡張レジスタモジュール６に割り込み要求が書き込まれると、外部ＩＦ部７はこれを確認して直ちにネイティブ型モデル実行制御部１１に割り込み要求を伝送する（Ｂ１２）。
ネイティブ型モデル実行制御部１１は、外部ＩＦ部７から割り込み要求を受けると直ちにネイティブ型モデル４を起動させる（Ｂ１３）。
ネイティブ型モデル４は待機状態から実行状態に変わり、次の指示を行う（Ｂ１４）。
【００５０】
上記シミュレーション動作について補足説明をすると、プロセッサコアモジュール５は、拡張レジスタモジュール６に割り込み要求を書き込んでから、割り込み制御部１０に書き込まれた割り込み要求を受けるまで、共有資源モジュール９へのアクセスは行わないようにプログラミングされているので、プロセッサコアモジュール５とネイティブ型モデル４が同時に共有資源モジュール９にアクセスすることはない。
【００５１】
以上の構成により、シミュレーション装置１が実行するシミュレーションと、従来のサイクルベースシミュレーションとを比較すると、ネイティブ型モデルがサイクル時間ゼロで処理を行うので、その分、シミュレーション実行時間が短縮されることになる。また、ネイティブ型モデルは、サイクルベースモデルからの処理要求に基づいて起動するので、サイクルベースシミュレーションのシミュレーション精度に近い精度のシミュレーションを実行することができる。
＜変形例１＞
次に、本発明に係るシミュレーション装置の変形例１について説明する。
【００５２】
＜構成＞
変形例１に係るシミュレーション装置は、上述した図１に示すシミュレーション装置１とほぼ同様の構成を有しており、異なる点は、共有資源モジュールがアービタ部を有している点と共有資源ＩＦ部がアクセス要求部と応答判定部を有している点である。ここでは、異なる点についてのみ説明する。
【００５３】
図３は、変形例１に係るシミュレーション装置が備える共有資源モジュールと共有資源ＩＦ部とを示す図である。
共有資源モジュール９Ａは、アービタ部９１を有し、共有資源ＩＦ部８Ａは、アクセス要求部８１、応答判定部８２を有する。
アービタ部９１は、共有資源の使用権を調停するアービタをシミュレーションする機能部である。アクセス要求部８１から共有資源モジュール９へのアクセス要求が通知されると、アクセスを許可するか否かの決定を行い、許可する場合に限り、共有資源ＩＦ部８Ａに対して応答する。
【００５４】
アクセス要求部８１は、ネイティブ型モデル４から共有資源モジュール９へのアクセス要求を受け付けた場合に、アービタ部９１にアクセス要求を通知する機能部である。
応答判定部８２は、アービタ部９１から通知される、アクセス要求に対する応答の有無を判定する機能部である。
＜動作＞
次に、共有資源モジュール９Ａに対する共有資源ＩＦ部８Ａのアクセス要求動作について説明する。
【００５５】
図４は、共有資源アクセスＩＦ部８Ａのアクセス処理フローを説明するためのフローチャート図である。
まず、アクセス要求部８１は、ネイティブ型モデル４から共有資源モジュール９へのパラメータ書き込み要求を受け付けると、アービタ部９１に対してアクセス要求を通知する（ステップＳ１）。
【００５６】
次に応答判定部８２は、アービタ部９１からアクセス要求に対する応答の有無を判定する（ステップＳ２）。応答があれば（ステップＳ２：ＹＥＳ）、パラメータを共有資源モジュール９Ａに書き込むアクセス処理を行う（ステップＳ３）。その後、処理を終了する。
ステップＳ２において、応答がなければ（ステップＳ２：ＮＯ）、１サイクル時間待ち（ステップＳ４）、再度アクセス要求を行う（ステップＳ１）。
【００５７】
以上より、変形例１のシミュレーション装置を用いると、システムに備わるアービタによる共有資源の使用権調停と、その結果生じる転送遅延をシミュレーションすることができる。
＜変形例２＞
次に、本発明に係るシミュレーション装置の変形例２について説明する。
【００５８】
図５は、変形例２に係るシミュレーション装置の機能構成を示す図である。
図５に示すシミュレーション装置１Ａは、上述したシミュレーション装置１と機能的にはほとんど同じであるが、異なる点は、ネイティブ型モデル４Ａが新たに追加されている点と、ネイティブ型モデル４Ａが追加されたことに対応して、拡張レジスタモジュール６、外部ＩＦ部７及びネイティブ型モデル実効制御部１１が、拡張レジスタモジュール６Ａ、外部ＩＦ部７Ａ及びネイティブ型モデル実効制御部１１Ａに変わった点である。
【００５９】
拡張レジスタモジュール６Ａは、各ネイティブ型モデルに対応するアドレスを設けており、プロセッサコアモジュール５は、割り込み要求するネイティブ型モデルに対応するアドレスに、割り込み要求を書き込む。
外部ＩＦ部７Ａは、拡張レジスタモジュール６Ａに対する書き込みを１サイクル時間毎にチェックして割り込み要求の有無を確認し、割り込み要求が書き込まれると、ネイティブ型モデル実行制御部１１Ａに割り込み要求が書き込まれたアドレスと対応するネイティブ型モデルを指定する情報を伝送する。
【００６０】
ネイティブ型モデル実行制御部１１Ａは、外部ＩＦ部７Ａからネイティブ型モデルを指定する情報を受けると、指定されたネイティブ型モデルを起動させる。例えば、ネイティブ型モデル４Ａが指定されていれば、ネイティブ型モデル４Ａの状態制御部１２Ａに対して状態移行要求を行う。
図５には、ネイティブ型モデルが２つのみ示されているが、更に多くのネイティブ型モデルを追加しても対応できる。
＜変形例３＞
次に、本発明に係るシミュレーション装置の変形例３について説明する。
【００６１】
図６は、変形例３に係るシミュレーション装置の機能構成を示す図である。
図６に示すシミュレーション装置１Ｂは、上述したシミュレーション装置１と機能的にはほとんど同じであり、異なる点は、ネイティブ型モデル４がネイティブ型モデル４Ｃに変更され、ネイティブ型モデル４Ｂが新たに追加されている点である。
ネイティブ型モデル４Ｃは、スレーブプロセッサを模擬しており、ネイティブ型モデル４Ｂは、スレーブプロセッサの周辺ハードウェアであるＤＭＡコントローラを模擬している。
【００６２】
ネイティブ型モデル４Ｃは、ネイティブ型モデル４ＢのＤＭＡ転送に関する設定を行い、また、ＤＭＡ転送の開始や停止といった実行状態の制御を行うための制御部４１を備える。
ネイティブ型モデル４Ｂの状態制御部１２Ｂは、制御部４１の制御指示を受けて、ネイティブ型モデル４Ｂの状態制御を行う。
【００６３】
以上の構成により、ネイティブ型モデル４Ｂのように、サイクルベースモデル３からの割り込み要求といった起動制御を受けないような部品、例えばＤＭＡコントローラについてもネイティブ型モデルでシミュレーションすることができる。
＜変形例４＞
次に、本発明に係るシミュレーション装置の変形例４について説明する。
【００６４】
図７は、変形例４に係るシミュレーション装置の機能構成を示す図である。
図７に示すシミュレーション装置１Ｃは、上述したシミュレーション装置１と機能的にはほとんど同じであり、異なる点は、ネイティブ型モデル４がネイティブ型モデル４Ｄに変更され、サイクル計測部１３が新たに追加されている点である。
変形例４のネイティブ型モデル４Ｄは、自己の実行状態への移行タイミング、待機状態への移行タイミングに関するタイミング情報を保持しており、シミュレーション実行開始時に、シミュレーションカーネル２より呼び出された際に、このタイミング情報をサイクル計測部１３に伝送する。
【００６５】
サイクル計測部１３は、シミュレーションカーネル２がサイクル時間毎に呼び出す呼び出し回数、すなわち、サイクル数をカウントする。そして、ネイティブ型モデル４Ｄから伝送されたタイミング情報に示される、ネイティブ型モデル４Ｄの実行状態への移行タイミング、又は待機状態への移行タイミングとなるサイクル数をカウントした時点で、外部ＩＦ部７を介してネイティブ型モデル実行制御部１１にタイマー割り込み通知を実行する。
【００６６】
ネイティブ型モデル実行制御部１１は、タイマー割り込み通知を受けると、状態制御部１２に状態移行要求を行う。
この構成により、組み込み汎用リアルタイムＯＳに必要な周期ハンドラ機能やアラームハンドラ機能等のタイムイベント処理を、ネイティブ型モデルでシミュレーションすることができる。
＜変形例５＞
次に、本発明に係るシミュレーション装置の変形例５について説明する。
【００６７】
図８は、変形例５に係るシミュレーション装置の機能構成を示す図である。
図８に示すシミュレーション装置１Ｅは、上述したシミュレーション装置１と機能的にはほとんど同じであり、異なる点は、ユーザインターフェース部１７、情報出力制御ＩＦ部１４が新たに追加され、共有資源モジュール９が共有資源モジュール９Ｅに変更された点である。
【００６８】
共有資源モジュール９に対して、共有資源モジュール９Ｄには、情報出力部１５、情報出力制御レジスタ１６が新たに追加されている。
情報出力部１５は、共有資源モジュール９Ｄの動作状態を表すシミュレーション情報を出力する機能部である。具体的には、共有資源に対する複数のバスマスタ（プロセッサコアやプロセッサ）からのアクセス情報等を出力する。
【００６９】
情報出力制御レジスタ１６は、共有資源モジュール９Ｄのメモリ空間上にマッピングされており、プロセッサコアモジュール５又はネイティブ型モデル４から、動作が複雑になる時点、すなわち詳しく解析すべき時点で、表示するシミュレーション情報の指定を受けて記録する。記録されたシミュレーション情報の指定を情報出力制御ＩＦ部１４に伝送する。
【００７０】
ユーザインターフェース部１７は、表示機能を伴った、いわゆるＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）であり、情報出力制御ＩＦ部１４から伝送されたシミュレーション情報をグラフィカルに表示することができ、また、ユーザから表示すべきシミュレーション情報の指定等を受け付けることができる。ユーザから受け付けた表示すべきシミュレーション情報の指定は、情報出力制御ＩＦ部１４に伝送される。
【００７１】
情報出力制御ＩＦ部１４は、ユーザインターフェース部１７から伝送されたシミュレーション情報の指定と、情報出力制御レジスタ１６から伝送されたシミュレーション情報の指定とに基づいて、情報出力部１５から出力されるシミュレーション情報をユーザインターフェース部１７に伝送する。具体的には、情報出力制御レジスタ１６に、表示すべきシミュレーション情報が記録された時点でそのシミュレーション情報を出力して、それ以外の期間は、ユーザ指定に係るシミュレーション情報を出力する。
【００７２】
シミュレーションの流れは、プロセッサコアモジュール５へ読み込み、実行させるプログラムやネイティブ型モデル４に記載されており、どの時点でシミュレーション動作が複雑になるかを、当該設計モデルを記述作成する開発者は理解している。よって、シミュレーション動作が複雑になる時点で、プロセッサコアモジュール５やネイティブ型モデル４から情報出力制御レジスタ１６に表示すべきシミュレーション情報を書き込むようにプログラミングしておく。
【００７３】
これにより、詳細に解析すべきポイントをシミュレーション実行前に指定しておくことができる。また、詳細に解析すべきポイント以外のシミュレーション情報の表示を簡易なものにしておけば、情報の表示によるシミュレーション速度の劣化を抑制することができる。
＜変形例６＞
次に、本発明に係るシミュレーション装置の変形例６について説明する。
【００７４】
図９は、変形例６に係るシミュレーション装置の機能構成を示す図である。
図９に示すシミュレーション装置１Ｅは、上述したシミュレーション装置１と機能的にはほとんど同じであり、異なる点は、シミュレーション装置１Ｅの基本ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能部であるＯＳスレッド制御部２０をシミュレーションの実行に用いている点と、図９に示す各ネイティブ型モデルをスレッドとして生成している点である。基本ＯＳは、マルチタスクＯＳであればよく、例えば、Ｗｉｎｄｏｗｓ（登録商標）やＵＮＩＸ（登録商標）等が挙げられる。
【００７５】
ネイティブ型モデル４Ｅ、４Ｆ、４Ｇは、シミュレーション実行開始と共に、ＯＳからスレッドを識別するためのハンドルが割り当てられる。このハンドルは、シミュレーションを実行する度に変わるので、プロセッサコアモジュール５が割り込み要求指示するための各ネイティブ型モデルを識別する識別情報と、割り当てられたハンドルとを対応付けるテーブルを共有資源ＩＦ部８Ｅ、ネイティブ型モデル実行制御部１１Ｅは、シミュレーション実行開始と共に作成する。
【００７６】
ネイティブ型モデル実行制御部１１Ｅは、作成したテーブルに基づいて、実行するネイティブ型モデルのスレッドをハンドルでＯＳスレッド制御部２０に通知する。
変形例６に係るシミュレーション装置１ＥのＯＳが、例えば、Ｗｉｎｄｏｗｓ（登録商標）ＸＰであれば、ＯＳスレッド制御部２０は、各ネイティブ型モデルのスレッドをサスペンド状態にする場合は、ＳｕｓｐｅｎｄＴｈｒｅａｄというＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ Ｉｎｔｅｒｆａｃｅ）機能を、実行状態にする場合は、ＲｅｓｕｍｅＴｈｒｅａｄというＡＰＩ機能を用いてスレッド制御を行うことができる。
【００７７】
ＯＳスレッド制御部２０は、ネイティブ型モデル実行制御部１１Ｅからハンドルの通知を受けて、該当のスレッドを実行状態に移行する。
変形例６の構成により、フラグのポーリングにより各ネイティブ型モデルの状態制御を行う必要がない。
＜補足＞
なお、本発明は上述した内容に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）共有資源モジュール９に設定できるパラメータの内容が少ない場合は、外部ＩＦ部７にパラメータを持たせておき、拡張レジスタモジュール６に書き込まれる値によってパラメータが選択されるようなものであってもよい。
（２）変形例１で示した共有資源モジュール９は、ダイナミックＲＡＭをシミュレーションしたものであってもよい。ダイナミックＲＡＭは、定期的にリフレッシュ動作を行うので、この場合、前述したアービタ部９１は、ダイナミックＲＡＭにアクセスするためのＩＦ部であるとして、ダイナミックＲＡＭがリフレッシュ動作を行っているときは、アクセス不可、リフレッシュ動作を行っていないときは、アクセス可と決定し、アクセス可の場合に限り、共有資源ＩＦ部８Ａに対して応答するものであってもよい。
（３）上述した実施の形態では、サイクルベースモデルやネイティブ型モデルをＣ／Ｃ＋＋言語を用いて記述作成されているとしたが、これに限られず、Ｊａｖａ（登録商標）やＢＡＳＩＣ等他のプログラム言語を用いて記述作成されたものであってもよい。
（４）上述したプロセッサコアモジュール５は、パイプラインやキャッシュ動作まで正確にシミュレートするＣＡＳ（Ｃｙｃｌｅ  Ａｃｃｕｒａｔｅ  Ｓｉｍｕｌａｔｏｒ）であってもよい。
（５）本発明は、上述したシミュレーション装置が備える各機能を実現させるためのプログラムであるとしてもよい。このプログラムは、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することができる。このような記録媒体には、ＩＣカード、光ディスク、フレキシブルディスク、ＲＯＭ等がある。
【００７８】
流通、頒布されたプログラムは、ＲＯＭを備える機器等にインストールされることにより利用に供され、その機器等はそのプログラムの実行により上述したシミュレーション装置を実現する。
【産業上の利用可能性】
【００７９】
上述した本発明に係るシミュレーション技術は、周期的なクロック入力に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムをシミュレーションする場合に、従来のサイクルベースシミュレーションよりシミュレーション実行時間を短縮することができるので、システムＬＳＩ等のシステム開発分野において有用である。
【図面の簡単な説明】
【００８０】
【図１】実施の形態１におけるシミュレーション装置の機能構成を示す図である。
【図２】実施の形態１における主要な構成要素の動作タイミングチャートを示す図である。
【図３】変形例１におけるシミュレーション装置の共有資源モジュールと共有資源ＩＦ部を示す図である。
【図４】変形例１における共有資源アクセスＩＦ部のアクセス処理フローを説明するためのフローチャート図である。
【図５】変形例２におけるシミュレーション装置の機能構成を示す図である。
【図６】変形例３におけるシミュレーション装置の機能構成を示す図である。
【図７】変形例４におけるシミュレーション装置の機能構成を示す図である。
【図８】変形例５におけるシミュレーション装置の機能構成を示す図である。
【図９】変形例６におけるシミュレーション装置の機能構成を示す図である。
【図１０】従来のサイクルベースシミュレーションを実行するシミュレーション装置の機能構成を示す図である。
【図１１】従来のシミュレーション装置の主要な構成要素の動作タイミングチャートを示す図である。
【符号の説明】
【００８１】
１、１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅ  シミュレーション装置
２、１００１                      シミュレーションカーネル
３、３Ｃ、３Ｄ、３Ｅ              サイクルベースモデル
４、４Ａ、４Ｂ、４Ｅ、４Ｆ、４Ｇ  ネイティブ型モデル
５、１００３                      プロセッサコアモジュール
６、１００４                      拡張レジスタモジュール
７                            外部ＩＦ部
８、８Ａ、８Ｅ                共有資源ＩＦ部
９、９Ａ、１００７            共有資源モジュール
１０、１００６                割り込み制御部
１１、１１Ｅ                  ネイティブ型モデル実行制御部
１２、１２Ａ、１２Ｂ          状態制御部
１３                          サイクル計測部
１４                          情報出力制御ＩＦ部
１５                          情報出力部
１６                          情報出力制御レジスタ
１７                          ユーザインターフェース部
２０                          ＯＳスレッド制御部
１００５                      プロセッサモジュール
【図１】
2005100174.tif 000003
【図２】
2005100174.tif 000004
【図３】
2005100174.tif 000005
【図４】
2005100174.tif 000006
【図５】
2005100174.tif 000007
【図６】
2005100174.tif 000008
【図７】
2005100174.tif 000009
【図８】
2005100174.tif 000010
【図９】
2005100174.tif 000011
【図１０】
2005100174.tif 000012
【図１１】
2005100174.tif 000013
【手続補正書】
【提出日】平成16年5月13日(2004.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
特定の周期に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション装置であって、
前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーション手段と、
前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段と、
所定の周期で前記第１シミュレーション手段を起動させる第１制御手段と、
前記第１シミュレーション手段から前記第２シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段と、
前記受付手段により前記要求情報が受け付けられた場合に、前記第２シミュレーション手段を起動させる第２制御手段とを備える
ことを特徴とするシミュレーション装置。
【請求項２】
前記システムは、共有資源を介して前記第１回路ブロックと前記第２回路ブロックとの間でデータ転送を行うシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
前記共有資源をシミュレーションする共有資源シミュレーション手段と、
前記第２シミュレーション手段から前記第１シミュレーション手段に対して発せられた、前記第２回路ブロックから前記第１回路ブロックに対する処理要求に相当する第２要求情報を受け付けて、前記共有資源シミュレーション手段に当該第２要求情報を発する仲介手段とを更に備え、
前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第２要求情報を受け付けた場合に、前記第１シミュレーション手段は、当該共有資源シミュレーション手段にアクセスして第２要求情報を読み出す
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記第１シミュレーション手段は、前記第２シミュレーション手段に対して前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を発してから、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第２要求情報を受け付けるまでの間、前記共有資源シミュレーション手段にアクセスしないことを特徴とする請求項２記載のシミュレーション装置。
【請求項４】
前記仲介手段は、
前記共有資源シミュレーション手段に前記第２要求情報を発する前に、アクセス要求を当該共有資源シミュレーション手段に対して通知する通知手段と、
前記アクセス要求に対する前記共有資源シミュレーション手段からの応答の有無を判定する判定手段とを備え、
前記判定手段により応答有りと判定された場合に、前記第２要求情報を前記共有資源シミュレーション手段に対して発し、前記判定手段により応答無しと判定された場合に、所定期間、当該第２要求情報を発するのを待ち、その後、再度前記通知手段によりアクセス要求を前記共有資源シミュレーション手段に通知し、
前記共有資源シミュレーション手段は、
前記通知手段によりアクセス要求の通知を受けると、前記共有資源に対するアクセスを許可するか否かを決定し、肯定的な決定を行う場合にのみ、応答する調停手段を備える
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
前記システムは、特定の周期に基づいて動作する第３回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
前記第３回路ブロックの動作を時間概念を含まずにシミュレーションする第３シミュレーション手段を更に備え、
前記受付手段は、前記第１シミュレーション手段から前記第３シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第３回路ブロックに対する処理要求に相当する第３要求情報を更に受け付け、
前記第２制御手段は、前記受付手段が受け付けた情報が前記要求情報であれば、前記第２シミュレーション手段を起動させ、前記第３要求情報であれば、前記第３シミュレーション手段を起動させる
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項６】
前記システムは、特定の周期に基づいて動作する第３回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
前記第３回路ブロックの動作を時間概念を含まずにシミュレーションする第３シミュレーション手段を更に備え、
前記第２シミュレーション手段は、前記第３シミュレーション手段を起動させる第３制御手段を備える
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項７】
前記第１制御手段により前記第１シミュレーション手段に対して所定の周期で繰り返しなされる起動制御の回数をカウントするサイクル計測手段を更に備え、
前記第１制御手段は、シミュレーション実行開始時に前記第２シミュレーション手段を起動させ、
前記第２シミュレーション手段は、自己のシミュレーション状態の移行タイミングをタイミング情報として予め記憶しており、前記第１制御手段により起動させられた際に、当該タイミング情報を前記サイクル計測手段に伝送し、
前記サイクル計測手段は、前記第２シミュレーション手段から伝送されたタイミング情報と、カウントしている起動制御の回数に基づいて、前記第２制御手段に当該第２シミュレーション手段を起動させるタイミングを通知し、
前記第２制御手段は、前記サイクル計測手段からの通知に基づいて前記第２シミュレーション手段を起動させる
ことを特徴とする請求項１に記載のシミュレーション装置。
【請求項８】
前記共有資源シミュレーション手段によりなされるシミュレーションの結果をシミュレーション情報として出力する出力手段と、
出力されたシミュレーション情報をユーザに提示するユーザインターフェース手段とを更に備える
ことを特徴とする請求項２〜７のうちいずれか１項に記載のシミュレーション装置。
【請求項９】
前記共有資源シミュレーション手段は、更に、
詳細なシミュレーション情報を提示すべきシミュレーション部分を指定する情報を記録する記録手段と、
前記出力手段から前記ユーザインターフェース手段に出力すべきシミュレーション情報の制御を行う出力制御手段とを備え、
前記ユーザインターフェース手段は、
提示すべきシミュレーション情報の指定をユーザから受け付けて、当該指定を前記出力制御手段に通知し、
前記出力制御手段は、詳細なシミュレーション情報を提示すべきシミュレーション部分については、前記記録手段に記録された情報に基づいて詳細なシミュレーション情報を出力し、それ以外のシミュレーション部分については、前記ユーザインターフェース手段より通知されたユーザ指定に係るシミュレーション情報を出力する制御を行う
ことを特徴とする請求項８に記載のシミュレーション装置。
【請求項１０】
前記シミュレーション装置は、マルチスレッドオペレーティングシステムを備えており、
前記第２シミュレーション手段及び前記第３シミュレーション手段はそれぞれ、マルチスレッド制御下における１スレッドとして実行状態が制御される
ことを特徴とする請求項５に記載のシミュレーション装置。
【請求項１１】
特定の周期に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするためにコンピュータを、
前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーション手段、
前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーション手段、
所定の周期で前記第１シミュレーション手段を起動させる第１制御手段、
前記第１シミュレーション手段から前記第２シミュレーション手段に対して発せられた、前記第１回路ブロックから前記第２回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段、
前記受付手段により前記要求情報が受け付けられた場合に、前記第２シミュレーション手段を起動させる第２制御手段として機能させる
ことを特徴とするシミュレーションプログラム。
【請求項１２】
請求項１１に記載のシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１３】
特定の周期に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション方法であって、
前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーションステップと、
前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーションステップと、
所定の周期で前記第１シミュレーションステップを起動させる第１制御ステップと、
前記第１回路ブロックから前記第２回路ブロックに対して発せられる処理要求に相当する要求情報を受け付ける受付ステップと、
前記受付ステップにおいて前記要求情報が受け付けられた場合に、前記第２シミュレーションステップを起動させる第２制御ステップとを含む
ことを特徴とするシミュレーション方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、システムＬＳＩ等のシステム開発において、設計段階にあるシステムをシミュレーションするシミュレーション装置及びシミュレーション方法に関し、特にシミュレーション実行時間の短縮化に関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
次に、プロセッサモジュール１００５がメインプロセッサ、プロセッサコアモジュール１００３がスレーブプロセッサであるとして、これらのプロセッサ間で行われるデータ転送のシミュレーション動作について、タイミングチャートを用いて説明する。
図１１は、シミュレーション装置１０００に含まれる各機能部の動作タイミングチャートを示す図である。サイクルベースモデル１００２は、１サイクル時間毎にシミュレーションカーネル１００１から呼び出されて起動する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
また、前記シミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体を本発明であるとしてもよい。
また、本発明に係るシミュレーション方法は、特定の周期に基づいてそれぞれ動作する第１回路ブロックと第２回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション方法であって、前記第１回路ブロックの動作を時間概念を含めてシミュレーションする第１シミュレーションステップと、前記第２回路ブロックの動作を時間概念を含まずにシミュレーションする第２シミュレーションステップと、所定の周期で前記第１シミュレーションステップを起動させる第１制御ステップと、前記第１回路ブロックから前記第２回路ブロックに対して発せられる処理要求に相当する要求情報を受け付ける受付ステップと、前記受付ステップにおいて前記要求情報が受け付けられた場合に、前記第２シミュレーションステップを起動させる第２制御ステップとを含むことを特徴とする。
尚、ここでいう時間概念とは、例えば、システムのシステムクロックやバスサイクル等である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
以上の構成により、シミュレーション装置１が実行するシミュレーションと、従来のサイクルベースシミュレーションとを比較すると、ネイティブ型モデルが実質的にサイクル時間ゼロで処理を行うので、その分、シミュレーション実行時間が短縮されることになる。また、ネイティブ型モデルは、サイクルベースモデルからの処理要求に基づいて起動されるので、サイクルベースシミュレーションのシミュレーション精度に近い精度のシミュレーションを実行することができる。
＜変形例１＞
次に、本発明に係るシミュレーション装置の変形例１について説明する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
図３は、変形例１に係るシミュレーション装置が備える共有資源モジュール９Ａと共有資源ＩＦ部８Ａとの接続を示す図である。
共有資源モジュール９Ａは、アービタ部９１を有し、共有資源ＩＦ部８Ａは、アクセス要求部８１、応答判定部８２を有する。
アービタ部９１は、共有資源の使用権を調停するアービタをシミュレーションする機能部である。アクセス要求部８１から共有資源モジュール９へのアクセス要求が通知されると、アクセスを許可するか否かの決定を行い、許可する場合に限り、共有資源ＩＦ部８Ａに対して応答する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
図８は、変形例５に係るシミュレーション装置の機能構成を示す図である。
図８に示すシミュレーション装置１Ｅは、上述したシミュレーション装置１と機能的にはほとんど同じであり、異なる点は、ユーザインターフェース部１７、情報出力制御ＩＦ部１４が新たに追加され、共有資源モジュール９が共有資源モジュール９Ｄに変更された点である。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2005100174.tif 000014
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図９
【補正方法】変更
【補正の内容】
【図９】
2005100174.tif 000015