JP2005100174A - シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法 - Google Patents

シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法 Download PDF

Info

Publication number
JP2005100174A
JP2005100174A JP2003334183A JP2003334183A JP2005100174A JP 2005100174 A JP2005100174 A JP 2005100174A JP 2003334183 A JP2003334183 A JP 2003334183A JP 2003334183 A JP2003334183 A JP 2003334183A JP 2005100174 A JP2005100174 A JP 2005100174A
Authority
JP
Japan
Prior art keywords
simulation
unit
circuit block
shared resource
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003334183A
Other languages
English (en)
Other versions
JP4020849B2 (ja
Inventor
Kenji Sakiyama
健次 崎山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003334183A priority Critical patent/JP4020849B2/ja
Priority to CNB2004100376181A priority patent/CN1312583C/zh
Priority to US10/857,027 priority patent/US20050071145A1/en
Publication of JP2005100174A publication Critical patent/JP2005100174A/ja
Application granted granted Critical
Publication of JP4020849B2 publication Critical patent/JP4020849B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 周期的なクロック入力に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムをシミュレーションする場合に、従来のサイクルベースシミュレーションよりシミュレーション実行時間を短縮することができるシミュレーション装置を提供する。
【解決手段】 第1回路ブロックの動作をサイクルベースモデル3でシミュレーションし、第2回路ブロックの動作を時間概念を含まないネイティブ型モデル4でシミュレーションする。サイクルベースモデル3は、シミュレーションカーネル2よりサイクル時間毎に呼び出されて起動し、ネイティブ型モデル4は、ネイティブ型モデル実行制御部11に呼び出されて起動する。ネイティブ型モデル実行制御部11は、サイクルベースモデル3から発せられた、第1回路ブロックから第2回路ブロックに対する処理要求に相当する要求情報を受け付ける度に、ネイティブ型モデル4を起動させる。
【選択図】 図1

Description

本発明は、システムLSI等のシステム開発において、設計段階にあるシステムをシミュレーションするシミュレーション装置に関し、特にシミュレーション実行時間の短縮化に関する。
近年、コンピュータの小型化、高性能化の要望に応じて、プロセッサ、メモリ、ASIC(Application Specific Circuits)等の各部品を1つのチップにまとめたシステムLSIの開発が盛んに進められている。
こうしたシステムLSIの開発では、システムLSIをチップ化する前の段階、すなわち、設計段階において、設計開発者がC/C++言語等を用いてそのシステムLSIの性能検証に適した抽象度の設計モデルを作成し、コンピュータ上でシミュレーションを行うのが一般的である。これは、チップ化した後に設計変更が生じないようにするためである。チップ化した後に設計変更が生じれば、当然、多大なコストが発生する。
一般的にシステムLSIのシミュレーションには、サイクルベースシミュレーションと呼ばれるシミュレーション手法が用いられている。
サイクルベースシミュレーションとは、所定の周期、例えば、システムクロックの1周期に相当するタイミングを1サイクル時間として、サイクル時間毎にシステムの動作を計算してシミュレーションする手法のことをいう。システムクロック以外に、バスサイクルをサイクル時間としてシミュレーションするものであってもよい。
サイクルベースシミュレーションについては、下記に示す非特許文献に説明されている。
ここで、サイクルベースシミュレーションの具体例について説明する。
図10は、共有資源を介して2つのプロセッサ間でデータ転送を行うシステムの動作をサイクルベースでシミュレーションするシミュレーション装置の機能ブロックを表す図である。
シミュレーション装置1000は、機能的にはシミュレーションカーネル1001、サイクルベースモデル1002を備える。シミュレーション装置1000は、CPU、メモリ、ハードディスク等を有するコンピュータであり、メモリ又はハードディスクに格納されているシミュレーションプログラムをCPUが実行することにより各機能を実現する。
シミュレーションカーネル1001は、1サイクル時間毎にサイクルベースモデル1002を呼び出して実行制御する機能を有する。図10の白抜き点線矢印は、シミュレーションカーネル1001が、1サイクル時間毎にサイクルベースモデル1002を呼び出している指示を表している。
サイクルベースモデル1002には、プロセッサコアモジュール1003、拡張レジスタモジュール1004、プロセッサモジュール1005、割り込み制御部1006、共有資源モジュール1007が含まれている。これらのモジュールは、実システムが備えることになる各機能ブロックをモデル化したものである。白抜き矢印は、モジュール間のアクセスを表している。
プロセッサコアモジュール1003及びプロセッサモジュール1005には、命令セットシミュレータ(ISS:Instruction Set Simulator)が用いられており、プロセッサコアやプロセッサの動作をシミュレーションする。また、拡張レジスタモジュール1004は拡張レジスタを、共有資源モジュール1007は、共有メモリ、バスといった共有資源をモデル化したものである。
次に、プロセッサモジュール1004がメインプロセッサ、プロセッサコアモジュール1003がスレーブプロセッサであるとして、これらのプロセッサ間で行われるデータ転送のシミュレーション動作について、タイミングチャートを用いて説明する。
図11は、シミュレーション装置1000に含まれる各機能部の動作タイミングチャートを示す図である。サイクルベースモデル1002は、1サイクル時間毎にシミュレーションカーネル1001から呼び出されて起動する。
シミュレーションが実行されると、プロセッサモジュール1005及びプロセッサコアモジュール1003はそれぞれ初期化動作を行う(A1、A2)。
プロセッサモジュール1005は、初期化動作(A1)を終えるとプロセッサコアモジュール1003からの初期化動作完了通知を待つ待機状態となる。
一方、プロセッサコアモジュール1003は、初期化動作(A2)を終えると、プロセッサモジュール1005に初期化動作完了を通知するためのパラメータを、共有資源モジュール1007に書き込むライトアクセスを行う(A3)。すなわち、プロセッサコアモジュール1003は、共有資源モジュール1007にライトリクエストを送信し、共有資源モジュール1007から応答があれば、書き込むパラメータのアドレスと値とを送信する。
プロセッサコアモジュール1003は、共有資源モジュール1007からパラメータ書き込み完了通知を受けると、続いて拡張レジスタモジュール1004に割り込み要求を書き込む(A4)。その後、プロセッサコアモジュール1003は、プロセッサモジュール1005からの指示を待つ待機状態となる。
拡張レジスタモジュール1004に割り込み要求が書き込まれたことにより、プロセッサモジュール1005は待機状態から実行状態に変わり(A5)、共有資源モジュール1007に書き込まれたパラメータを読み出すリードアクセスを行う(A6)。すなわち、プロセッサモジュール1005は、共有資源モジュール1007にリードリクエストを送信し、共有資源モジュール1007から応答があれば、読み出すパラメータのアドレスを送信する。共有資源モジュール1007は、指示されたアドレスにあるパラメータをプロセッサモジュール1005に転送する。
プロセッサモジュール1005は、パラメータを受信して、そのパラメータの内容、すなわちプロセッサコアモジュール1003の初期化動作完了という情報を処理し(A7)、プロセッサコアモジュール1003に処理させる指示をパラメータとして共有資源モジュール1007に書き込むライトアクセスを行う(A8)。ライトアクセスの動作は、上述したプロセッサコアモジュール1003から共有資源モジュール1007へのライトアクセスと同様であるので省略する。続いて、割り込み制御部1006に割り込み要求を書き込む(A9)。
プロセッサコアモジュール1003は割り込み制御部1006に書き込まれた割り込み要求を受けて、待機状態から実行状態に変わり(A10)、共有資源モジュール1007に書き込まれたパラメータを読み出すリードアクセスを行う(A11)。リードアクセスの動作は、上述したプロセッサモジュール1005による共有資源モジュール1007へのリードアクセスと同様であるので省略する。
プロセッサコアモジュール1003は、読み出したパラメータに基づいて処理を行い(A12)、結果をパラメータとして共有資源モジュール1007に書き込むライトアクセスを行う(A13)。続いて拡張レジスタモジュール1004に割り込み要求を書き込む(A14)。その後、プロセッサコアモジュール1003は、再びプロセッサモジュール1005からの指示を待つ待機状態となる。
拡張レジスタモジュール1004に割り込み要求が書き込まれたことにより、プロセッサモジュール1005は待機状態から実行状態に変わり(A15)、次の処理を行う。
以上のように、シミュレーション装置1000は、2つのプロセッサ間で共有資源を介してデータ転送するシステムについて、サイクルベースシミュレーションを行う。
日経エレクトロニクス1993年6月7日号(no.582),pp.66−67
ところで、システムLSIの市場において優位性を確立するためには、早期に製品化することが必要である。早期製品化には、開発期間の短縮化が大きな要因となる。
開発期間を短縮するのに、シミュレーション実行時間の短縮化は大変有効である。何故なら、大規模なシステムLSIについて抽象度の低い設計モデル(例えば、RTL(Register Transfer Level)モデル等)を用いてサイクルベースシミュレーションする場合、シミュレーションの実行開始から終了までに膨大な時間が費やされるのが一般的だからである。
本発明は、周期的なクロック入力に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムをシミュレーションする場合に、従来のサイクルベースシミュレーションよりシミュレーション実行時間を短縮することができるシミュレーション装置、シミュレーションプログラムを提供することを目的とする。
上記目的を達成するために本発明に係るシミュレーション装置は、周期的なクロック入力に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション装置であって、前記第1回路ブロックの動作を時間概念を含めてシミュレーションする第1シミュレーション手段と、前記第2回路ブロックの動作を時間概念を含まずにシミュレーションする第2シミュレーション手段と、所定の周期で前記第1シミュレーション手段を起動させる第1制御手段と、前記第1シミュレーション手段から前記第2シミュレーション手段に対して発せられた、前記第1回路ブロックから前記第2回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段と、前記受付手段により前記要求情報が受け付けられた場合に、前記第2シミュレーション手段を起動させる第2制御手段とを備えることを特徴とする。
また、本発明に係るシミュレーションプログラムは、周期的なクロック入力に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムの動作をシミュレーションするためにコンピュータを、前記第1回路ブロックの動作を時間概念を含めてシミュレーションする第1シミュレーション手段、前記第2回路ブロックの動作を時間概念を含まずにシミュレーションする第2シミュレーション手段、所定の周期で前記第1シミュレーション手段を起動させる第1制御手段、前記第1シミュレーション手段から前記第2シミュレーション手段に対して発せられた、前記第1回路ブロックから前記第2回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段、前記受付手段により前記要求情報が受け付けられた場合に、前記第2シミュレーション手段を起動させる第2制御手段として機能させることを特徴とする。
また、前記シミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体を本発明であるとしてもよい。
ここでいう時間概念とは、例えば、システムのシステムクロックやバスサイクル等である。
上記本発明の構成において、前記第2シミュレーション手段は、第2回路ブロックの動作を時間概念を含まずにシミュレーションするので、従来のように第1回路ブロック及び第2回路ブロックの動作を時間概念を含めてシミュレーションする場合と比較すると、シミュレーション実行時間が短縮されることになる。
また、所定の周期で呼び出されて動作する第1シミュレーション手段からの処理要求に基づいて前記第2シミュレーション手段は起動させられるので、第2シミュレーション手段は、第1シミュレーション手段と必要最小限の同期を取りながら、シミュレーションを実行することができる。すなわち、システムシミュレーションに必要なシミュレーション精度は維持できる。
また、前記システムは、共有資源を介して前記第1回路ブロックと前記第2回路ブロックとの間でデータ転送を行うシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、前記共有資源をシミュレーションする共有資源シミュレーション手段と、前記第2シミュレーション手段から前記第1シミュレーション手段に対して発せられた、前記第2回路ブロックから前記第1回路ブロックに対する処理要求に相当する第2要求情報を受け付けて、前記共有資源シミュレーション手段に当該第2要求情報を発する仲介手段とを更に備え、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第2要求情報を受け付けた場合に、前記第1シミュレーション手段は、当該共有資源シミュレーション手段にアクセスして第2要求情報を読み出すこととしてもよい。
この構成により、共有資源を介して前記第1回路ブロックと前記第2回路ブロックとの間でデータ転送を行うシステムのシミュレーションにおいても、シミュレーション実行時間を短縮することができる。
また、前記第1シミュレーション手段は、前記第2シミュレーション手段に対して前記第1回路ブロックから前記第2回路ブロックに対する処理要求に相当する要求情報を発してから、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第2要求情報を受け付けるまでの間、前記共有資源シミュレーション手段にアクセスしないこととしてもよい。
この構成により、共有資源シミュレーション手段に対する第1シミュレーション手段及び第2シミュレーション手段によるアクセスは、それぞれ排他的に実施される。
また、前記仲介手段は、前記共有資源シミュレーション手段に前記第2要求情報を発する前に、アクセス要求を当該共有資源シミュレーション手段に対して通知する通知手段と、前記アクセス要求に対する前記共有資源シミュレーション手段からの応答の有無を判定する判定手段とを備え、前記判定手段により応答有りと判定された場合に、前記第2要求情報を前記共有資源シミュレーション手段に対して発し、前記判定手段により応答無しと判定された場合に、所定期間、当該第2要求情報を発するのを待ち、その後、再度前記通知手段によりアクセス要求を前記共有資源シミュレーション手段に通知し、前記共有資源シミュレーション手段は、前記通知手段によりアクセス要求の通知を受けると、前記共有資源に対するアクセスを許可するか否かを決定し、肯定的な決定を行う場合にのみ、応答する調停手段を備えることとしてもよい。
この構成により、システムに備わるアービタによる共有資源の使用権調停と、その結果生じる転送遅延をシミュレーションすることができる。
また、前記システムは、特定の周期に基づいて動作する第3回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、前記第3回路ブロックの動作を時間概念を含まずにシミュレーションする第3シミュレーション手段を更に備え、前記受付手段は、前記第1シミュレーション手段から前記第3シミュレーション手段に対して発せられた、前記第1回路ブロックから前記第3回路ブロックに対する処理要求に相当する第3要求情報を更に受け付け、前記第2制御手段は、前記受付手段が受け付けた情報が前記要求情報であれば、前記第2シミュレーション手段を起動させ、前記第3要求情報であれば、前記第3シミュレーション手段を起動させることとしてもよい。
この構成により、第1〜第3回路ブロックを含むシステムにおいて、第2回路ブロック及び第3回路ブロックについては、時間概念を含まないでシミュレーションするので、第1〜第3回路ブロック全てを時間概念を含んでシミュレーションする場合と比較すると、シミュレーション実行時間を短縮することができる。
また、前記システムは、特定の周期に基づいて動作する第3回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、前記第3回路ブロックの動作を時間概念を含まずにシミュレーションする第3シミュレーション手段を更に備え、前記第2シミュレーション手段は、前記第3シミュレーション手段を起動させる第3制御手段を備えることを特徴としてもよい。
この構成は、第1回路ブロックから第3回路ブロックに対して処理要求が発せられることがなく、第2回路ブロックが第3回路ブロックを起動制御するシステム構成の場合に有用である。
また、前記第1制御手段により前記第1シミュレーション手段に対して所定の周期で繰り返しなされる起動制御の回数をカウントするサイクル計測手段を更に備え、前記第1制御手段は、シミュレーション実行開始時に前記第2シミュレーション手段を起動させ、前記第2シミュレーション手段は、自己のシミュレーション状態の移行タイミングをタイミング情報として予め記憶しており、前記第1制御手段により起動させられた際に、当該タイミング情報を前記サイクル計測手段に伝送し、前記サイクル計測手段は、前記第2シミュレーション手段から伝送されたタイミング情報と、カウントしている起動制御の回数に基づいて、前記第2制御手段に当該第2シミュレーション手段を起動させるタイミングを通知し、前記第2制御手段は、前記サイクル計測手段からの通知に基づいて前記第2シミュレーション手段を起動させることとしてもよい。
この構成により、第1回路ブロックから第2回路ブロックに対して処理要求が発せられなくても、第2回路ブロックの動作を時間概念を含まずにシミュレーションする第2シミュレーション手段を起動させることができる。
また、前記共有資源シミュレーション手段は、更に、詳細なシミュレーション情報を提示をすべきシミュレーション部分を指定する情報を記録する記録手段と、前記出力手段から前記ユーザインターフェース手段に出力すべきシミュレーション情報の制御を行う出力制御手段とを備え、前記ユーザインターフェース手段は、提示すべきシミュレーション情報の指定をユーザから受け付けて、当該指定を前記出力制御手段に通知し、前記出力制御手段は、詳細なシミュレーション情報を提示をすべきシミュレーション部分については、前記記録手段に記録された情報に基づいて詳細なシミュレーション情報を出力し、それ以外のシミュレーション部分については、前記ユーザインターフェース手段より通知されたユーザ指定に係るシミュレーション情報を出力する制御を行うこととしてもよい。
この構成により、詳細な提示をすべきシミュレーション部分については、記録手段に記録された情報に基づいて詳細なシミュレーション情報が提示され、そうでない部分については、ユーザが指定したシミュレーション情報が提示されるので、シミュレーション実行時に、ユーザは意識して詳細な提示が必要なシミュレーション部分を指定する必要がない。また、詳細な提示が必要でないシミュレーション部分については、提示するシミュレーション情報を基本的な情報に絞って提示させ、詳細な提示が必要なシミュレーション部分については、動的に詳細なシミュレーション情報を提示させることで、シミュレーション情報の提示によって生じるシミュレーション速度の劣化を抑えることができる。
また、前記シミュレーション装置は、マルチスレッドオペレーティングシステムを備えており、前記第2シミュレーション手段及び前記第3シミュレーション手段はそれぞれ、マルチスレッド制御下における1スレッドとして実行状態が制御されることとしてもよい。
以下、本発明に係るシミュレーション装置について図面を用いて説明する。
<構成>
図1は、シミュレーション装置1の機能構成を示す図である。
シミュレーション装置1は、背景技術において説明したシミュレーション装置1000と同様、共有資源を介して2つのプロセッサ間でデータ転送を行うシステムの動作をシミュレーションする。
シミュレーション装置1000では、システムをサイクルベースモデルでモデル化したものを動作させるシミュレーションを実行していたが、シミュレーション装置1では、システム内の2つのプロセッサのうち、一方をネイティブ型モデルでシミュレーションし、それ以外の機能ブロックについては、従来と同様でサイクルベースモデルでシミュレーションする。
設計モデルの動作記述には、C/C++言語を用いている。そして、MicrosoftVisualC++(登録商標)等のPC用コンパイラを使用して、サイクルベースモデルのソースコードとネイティブ型モデルのプログラムを、シミュレーション装置1の実行形式に変換している。
ネイティブ型モデルとは、サイクルベースモデル3のようにシミュレーションカーネル2からサイクル時間毎の呼び出しを受けて動作するものではなく、サイクル時間という時間概念を含まずにシミュレーションするモデルである。具体的には、ネイティブ型モデル内の動作及び他の機能ブロックに対するデータ転送等に費やされるサイクル時間を考慮せず、すなわち、サイクル時間ゼロでシミュレーションする。
シミュレーション装置1は、機能的にはシミュレーションカーネル2、サイクルベースモデル3、ネイティブ型モデル実行制御部11、ネイティブ型モデル4を備える。
シミュレーション装置1は、CPU、メモリ、ハードディスク等を有するコンピュータであり、メモリ又はハードディスクに格納されているシミュレーションプログラムをCPUが実行することにより各機能を実現する。
シミュレーションカーネル2は、システムクロックの1周期に相当するタイミングを1サイクル時間とするサイクル時間単位でサイクルベースモデル3を呼び出して実行制御する機能を有する。図1の白抜き点線矢印は、シミュレーションカーネル2が、1サイクル時間毎にサイクルベースモデル3を呼び出している指示を表している。
また、図示していないが、シミュレーションカーネル2は、シミュレーション実行開始時に1度だけネイティブ型モデル4を呼び出す。
サイクルベースモデル3には、プロセッサコアモジュール5、拡張レジスタモジュール6、外部インターフェース(以下、インターフェースを単にIFと記述する。)部7、共有資源IF部8、共有資源モジュール9、割り込み制御部10が含まれている。図1の白抜き矢印はサイクルベースモデル3内の各モジュール間のアクセスを表し、このアクセスにはサイクル時間がかかる。一方実線の矢印は、サイクル時間を考慮しないアクセスを表している。
プロセッサコアモジュール5には、従来と同様、ISSが用いられており、システムのスレーブプロセッサコアの動作をシミュレーションする。
また、拡張レジスタモジュール6は拡張レジスタを、共有資源モジュール9は、共有メモリ、バスといった共有資源をサイクルベースモデル化したものである。
外部IF部7は、サイクルベースモデル3からネイティブ型モデル4に割り込み要求を送るための仲介をする機能部である。外部IF部7は、事前に登録されている拡張レジスタモジュール6のアドレスに対する書き込みを1サイクル毎にチェックして、割り込み要求の有無を確認する。
プロセッサコアモジュール5によって、ネイティブ型モデル4に対する割り込み要求が拡張レジスタモジュール6に書き込まれると、これを受けて外部IF部7は、ネイティブ型モデル実行制御部11に割り込み要求を伝送する。
ネイティブ型モデル実行制御部11は、外部IF部7から割り込み要求を受けるとネイティブ型モデル4を起動させる制御機能を有する。具体的には、ネイティブ型モデル4が有する状態制御部12に対して状態移行要求を行う。
ネイティブ型モデル4は、システムのメインプロセッサの動作をシミュレーションする機能部であり、状態制御部12を含む。
状態制御部12は、ネイティブ型モデル4の2つの状態、すなわち、実行状態と待機状態をフラグ等を用いて制御する機能部であり、ネイティブ型モデル実行制御部11から状態移行要求を受け付けると、待機状態から実行状態にネイティブ型モデル4を移行する。ネイティブ型モデル4の処理が終了すると、実行状態から待機状態に移行する。
共有資源IF部8は、ネイティブ型モデル4がサイクルベースモデルとして記述されている共有資源モジュール9へアクセスする際の仲介をする機能部である。
割り込み制御部10は、ネイティブ型モデル4から発せられたプロセッサコアモジュール5への割り込み要求を受け付けて記録する機能部であり、割り込み要求を受け付けると、プロセッサコアモジュール5に通知する。
<動作>
次に、シミュレーション装置1によるシミュレーション動作について、タイミングチャートを用いて説明する。
図2は、シミュレーション装置1に含まれる各機能部の動作タイミングチャートを示す図である。図に示すB1〜B14までの黒丸はサイクル時間0で動作がなされていることを示す。すなわち、黒丸においては、シミュレーション実行に費やされる実際の時間も微小な時間となる。
シミュレーションが実行されると、ネイティブ型モデル4及びプロセッサコアモジュール5はそれぞれ初期化動作を行う(B1、C1)。ネイティブ型モデル4は、起動後直ちにプロセッサコアモジュール5からの初期化動作完了通知を待つ待機状態となる。
一方、プロセッサコアモジュール5は、初期化動作(C1)を終えると、初期化動作完了をネイティブ型モデル4に通知するためのパラメータを、共有資源モジュール9に書き込むライトアクセスを行う(C2)。
ライトアクセスは、背景技術で説明したのと同様である。すなわち、プロセッサコアモジュール5は、共有資源モジュール9にライトリクエストを送信し、共有資源モジュール9から応答があれば、書き込むパラメータのアドレスと値とを送信する。
プロセッサコアモジュール5は、共有資源モジュール9からパラメータ書き込み完了通知を受けると、続いて拡張レジスタモジュール6に割り込み要求を書き込む(C3)。その後、プロセッサコアモジュール5は、ネイティブ型モデル4からの指示を待つ待機状態となる。
拡張レジスタモジュール6に割り込み要求が書き込まれると、外部IF部7はこれを確認して直ちにネイティブ型モデル実行制御部11に割り込み要求を伝送する(B2)。
ネイティブ型モデル実行制御部11は、外部IF部7から割り込み要求を受けると直ちにネイティブ型モデル4を起動させる(B3)。
ネイティブ型モデル4は待機状態から実行状態に変わり、共有資源モジュール9に書き込まれているパラメータの読み出しを行うために共有資源IF部8にアクセスする(B4)。すなわち、共有資源モジュール9に書き込まれているパラメータのアドレスを送信する。
共有資源IF部8は、ネイティブ型モデル4からのアクセスを受け付けて、共有資源モジュール9から該当のパラメータを読み出す(B5)。共有資源モジュール9はサイクルベースモデルであるので、パラメータの値の読み出しに数サイクル時間を要する(C4)。
共有資源IF部8は、パラメータの値を受けると、直ちにネイティブ型モデル4にパラメータの値を伝送する(B6)。
ネイティブ型モデル4は、共有資源IF部8から伝送されたパラメータの内容、すなわちプロセッサコアモジュール5の初期化動作完了という情報に対して、プロセッサコアモジュール5に処理させる指示を示すパラメータと、書き込むアドレスを共有資源IF部8に送信する(B7)。
ネイティブ型モデル4からパラメータとアドレスを受信した共有資源IF部8は、共有資源モジュール9の指定されたアドレスにパラメータ書き込む(B8)。パラメータの書き込みには数サイクル時間を要する(C5)。
パラメータの書き込みが終了し、共有資源モジュール9から書き込み完了通知を受けた共有資源IF部8は、直ちに書き込みが終了した通知をネイティブ型モデル4に行う(B9)。
これを受けたネイティブ型モデル4は、割り込み制御部10に対して割り込み要求を送る(B10)。
これを受け付けた共有資源IF部8は、割り込み制御部10に割り込み要求を書き込む(B11)。図2のC6は、割り込み制御部10への書き込みを示しており、やはり数サイクル時間かかる。
プロセッサコアモジュール5は割り込み制御部10に割り込み要求が書き込まれたことを受けて、待機状態から実行状態に変わり(C7)、共有資源モジュール9に書き込まれたパラメータを読み出すリードアクセスを行う(C8)。
リードアクセスも背景技術で説明したのと同様である。すなわち、プロセッサコアモジュール5は、共有資源モジュール9にリードリクエストを送信し、共有資源モジュール9から応答があれば、読み出すパラメータのアドレスを送信する。共有資源モジュール9は、指示されたアドレスにあるパラメータをプロセッサコアモジュール5に転送する。
プロセッサコアモジュール5は、共有資源モジュール9から転送されたパラメータに基づいて処理を行い(C9)、結果をパラメータとして共有資源モジュール9に書き込むライトアクセスを行う(C10)。続いて拡張レジスタモジュール6に割り込み要求を書き込む(C11)。その後、プロセッサコアモジュール5は、再びネイティブ型モデル4からプの指示を待つ待機状態となる。
拡張レジスタモジュール6に割り込み要求が書き込まれると、外部IF部7はこれを確認して直ちにネイティブ型モデル実行制御部11に割り込み要求を伝送する(B12)。
ネイティブ型モデル実行制御部11は、外部IF部7から割り込み要求を受けると直ちにネイティブ型モデル4を起動させる(B13)。
ネイティブ型モデル4は待機状態から実行状態に変わり、次の指示を行う(B14)。
上記シミュレーション動作について補足説明をすると、プロセッサコアモジュール5は、拡張レジスタモジュール6に割り込み要求を書き込んでから、割り込み制御部10に書き込まれた割り込み要求を受けるまで、共有資源モジュール9へのアクセスは行わないようにプログラミングされているので、プロセッサコアモジュール5とネイティブ型モデル4が同時に共有資源モジュール9にアクセスすることはない。
以上の構成により、シミュレーション装置1が実行するシミュレーションと、従来のサイクルベースシミュレーションとを比較すると、ネイティブ型モデルがサイクル時間ゼロで処理を行うので、その分、シミュレーション実行時間が短縮されることになる。また、ネイティブ型モデルは、サイクルベースモデルからの処理要求に基づいて起動するので、サイクルベースシミュレーションのシミュレーション精度に近い精度のシミュレーションを実行することができる。
<変形例1>
次に、本発明に係るシミュレーション装置の変形例1について説明する。
<構成>
変形例1に係るシミュレーション装置は、上述した図1に示すシミュレーション装置1とほぼ同様の構成を有しており、異なる点は、共有資源モジュールがアービタ部を有している点と共有資源IF部がアクセス要求部と応答判定部を有している点である。ここでは、異なる点についてのみ説明する。
図3は、変形例1に係るシミュレーション装置が備える共有資源モジュールと共有資源IF部とを示す図である。
共有資源モジュール9Aは、アービタ部91を有し、共有資源IF部8Aは、アクセス要求部81、応答判定部82を有する。
アービタ部91は、共有資源の使用権を調停するアービタをシミュレーションする機能部である。アクセス要求部81から共有資源モジュール9へのアクセス要求が通知されると、アクセスを許可するか否かの決定を行い、許可する場合に限り、共有資源IF部8Aに対して応答する。
アクセス要求部81は、ネイティブ型モデル4から共有資源モジュール9へのアクセス要求を受け付けた場合に、アービタ部91にアクセス要求を通知する機能部である。
応答判定部82は、アービタ部91から通知される、アクセス要求に対する応答の有無を判定する機能部である。
<動作>
次に、共有資源モジュール9Aに対する共有資源IF部8Aのアクセス要求動作について説明する。
図4は、共有資源アクセスIF部8Aのアクセス処理フローを説明するためのフローチャート図である。
まず、アクセス要求部81は、ネイティブ型モデル4から共有資源モジュール9へのパラメータ書き込み要求を受け付けると、アービタ部91に対してアクセス要求を通知する(ステップS1)。
次に応答判定部82は、アービタ部91からアクセス要求に対する応答の有無を判定する(ステップS2)。応答があれば(ステップS2:YES)、パラメータを共有資源モジュール9Aに書き込むアクセス処理を行う(ステップS3)。その後、処理を終了する。
ステップS2において、応答がなければ(ステップS2:NO)、1サイクル時間待ち(ステップS4)、再度アクセス要求を行う(ステップS1)。
以上より、変形例1のシミュレーション装置を用いると、システムに備わるアービタによる共有資源の使用権調停と、その結果生じる転送遅延をシミュレーションすることができる。
<変形例2>
次に、本発明に係るシミュレーション装置の変形例2について説明する。
図5は、変形例2に係るシミュレーション装置の機能構成を示す図である。
図5に示すシミュレーション装置1Aは、上述したシミュレーション装置1と機能的にはほとんど同じであるが、異なる点は、ネイティブ型モデル4Aが新たに追加されている点と、ネイティブ型モデル4Aが追加されたことに対応して、拡張レジスタモジュール6、外部IF部7及びネイティブ型モデル実効制御部11が、拡張レジスタモジュール6A、外部IF部7A及びネイティブ型モデル実効制御部11Aに変わった点である。
拡張レジスタモジュール6Aは、各ネイティブ型モデルに対応するアドレスを設けており、プロセッサコアモジュール5は、割り込み要求するネイティブ型モデルに対応するアドレスに、割り込み要求を書き込む。
外部IF部7Aは、拡張レジスタモジュール6Aに対する書き込みを1サイクル時間毎にチェックして割り込み要求の有無を確認し、割り込み要求が書き込まれると、ネイティブ型モデル実行制御部11Aに割り込み要求が書き込まれたアドレスと対応するネイティブ型モデルを指定する情報を伝送する。
ネイティブ型モデル実行制御部11Aは、外部IF部7Aからネイティブ型モデルを指定する情報を受けると、指定されたネイティブ型モデルを起動させる。例えば、ネイティブ型モデル4Aが指定されていれば、ネイティブ型モデル4Aの状態制御部12Aに対して状態移行要求を行う。
図5には、ネイティブ型モデルが2つのみ示されているが、更に多くのネイティブ型モデルを追加しても対応できる。
<変形例3>
次に、本発明に係るシミュレーション装置の変形例3について説明する。
図6は、変形例3に係るシミュレーション装置の機能構成を示す図である。
図6に示すシミュレーション装置1Bは、上述したシミュレーション装置1と機能的にはほとんど同じであり、異なる点は、ネイティブ型モデル4がネイティブ型モデル4Cに変更され、ネイティブ型モデル4Bが新たに追加されている点である。
ネイティブ型モデル4Cは、スレーブプロセッサを模擬しており、ネイティブ型モデル4Bは、スレーブプロセッサの周辺ハードウェアであるDMAコントローラを模擬している。
ネイティブ型モデル4Cは、ネイティブ型モデル4BのDMA転送に関する設定を行い、また、DMA転送の開始や停止といった実行状態の制御を行うための制御部41を備える。
ネイティブ型モデル4Bの状態制御部12Bは、制御部41の制御指示を受けて、ネイティブ型モデル4Bの状態制御を行う。
以上の構成により、ネイティブ型モデル4Bのように、サイクルベースモデル3からの割り込み要求といった起動制御を受けないような部品、例えばDMAコントローラについてもネイティブ型モデルでシミュレーションすることができる。
<変形例4>
次に、本発明に係るシミュレーション装置の変形例4について説明する。
図7は、変形例4に係るシミュレーション装置の機能構成を示す図である。
図7に示すシミュレーション装置1Cは、上述したシミュレーション装置1と機能的にはほとんど同じであり、異なる点は、ネイティブ型モデル4がネイティブ型モデル4Dに変更され、サイクル計測部13が新たに追加されている点である。
変形例4のネイティブ型モデル4Dは、自己の実行状態への移行タイミング、待機状態への移行タイミングに関するタイミング情報を保持しており、シミュレーション実行開始時に、シミュレーションカーネル2より呼び出された際に、このタイミング情報をサイクル計測部13に伝送する。
サイクル計測部13は、シミュレーションカーネル2がサイクル時間毎に呼び出す呼び出し回数、すなわち、サイクル数をカウントする。そして、ネイティブ型モデル4Dから伝送されたタイミング情報に示される、ネイティブ型モデル4Dの実行状態への移行タイミング、又は待機状態への移行タイミングとなるサイクル数をカウントした時点で、外部IF部7を介してネイティブ型モデル実行制御部11にタイマー割り込み通知を実行する。
ネイティブ型モデル実行制御部11は、タイマー割り込み通知を受けると、状態制御部12に状態移行要求を行う。
この構成により、組み込み汎用リアルタイムOSに必要な周期ハンドラ機能やアラームハンドラ機能等のタイムイベント処理を、ネイティブ型モデルでシミュレーションすることができる。
<変形例5>
次に、本発明に係るシミュレーション装置の変形例5について説明する。
図8は、変形例5に係るシミュレーション装置の機能構成を示す図である。
図8に示すシミュレーション装置1Eは、上述したシミュレーション装置1と機能的にはほとんど同じであり、異なる点は、ユーザインターフェース部17、情報出力制御IF部14が新たに追加され、共有資源モジュール9が共有資源モジュール9Eに変更された点である。
共有資源モジュール9に対して、共有資源モジュール9Dには、情報出力部15、情報出力制御レジスタ16が新たに追加されている。
情報出力部15は、共有資源モジュール9Dの動作状態を表すシミュレーション情報を出力する機能部である。具体的には、共有資源に対する複数のバスマスタ(プロセッサコアやプロセッサ)からのアクセス情報等を出力する。
情報出力制御レジスタ16は、共有資源モジュール9Dのメモリ空間上にマッピングされており、プロセッサコアモジュール5又はネイティブ型モデル4から、動作が複雑になる時点、すなわち詳しく解析すべき時点で、表示するシミュレーション情報の指定を受けて記録する。記録されたシミュレーション情報の指定を情報出力制御IF部14に伝送する。
ユーザインターフェース部17は、表示機能を伴った、いわゆるGUI(Graphical User Interface)であり、情報出力制御IF部14から伝送されたシミュレーション情報をグラフィカルに表示することができ、また、ユーザから表示すべきシミュレーション情報の指定等を受け付けることができる。ユーザから受け付けた表示すべきシミュレーション情報の指定は、情報出力制御IF部14に伝送される。
情報出力制御IF部14は、ユーザインターフェース部17から伝送されたシミュレーション情報の指定と、情報出力制御レジスタ16から伝送されたシミュレーション情報の指定とに基づいて、情報出力部15から出力されるシミュレーション情報をユーザインターフェース部17に伝送する。具体的には、情報出力制御レジスタ16に、表示すべきシミュレーション情報が記録された時点でそのシミュレーション情報を出力して、それ以外の期間は、ユーザ指定に係るシミュレーション情報を出力する。
シミュレーションの流れは、プロセッサコアモジュール5へ読み込み、実行させるプログラムやネイティブ型モデル4に記載されており、どの時点でシミュレーション動作が複雑になるかを、当該設計モデルを記述作成する開発者は理解している。よって、シミュレーション動作が複雑になる時点で、プロセッサコアモジュール5やネイティブ型モデル4から情報出力制御レジスタ16に表示すべきシミュレーション情報を書き込むようにプログラミングしておく。
これにより、詳細に解析すべきポイントをシミュレーション実行前に指定しておくことができる。また、詳細に解析すべきポイント以外のシミュレーション情報の表示を簡易なものにしておけば、情報の表示によるシミュレーション速度の劣化を抑制することができる。
<変形例6>
次に、本発明に係るシミュレーション装置の変形例6について説明する。
図9は、変形例6に係るシミュレーション装置の機能構成を示す図である。
図9に示すシミュレーション装置1Eは、上述したシミュレーション装置1と機能的にはほとんど同じであり、異なる点は、シミュレーション装置1Eの基本OS(Operating System)の機能部であるOSスレッド制御部20をシミュレーションの実行に用いている点と、図9に示す各ネイティブ型モデルをスレッドとして生成している点である。基本OSは、マルチタスクOSであればよく、例えば、Windows(登録商標)やUNIX(登録商標)等が挙げられる。
ネイティブ型モデル4E、4F、4Gは、シミュレーション実行開始と共に、OSからスレッドを識別するためのハンドルが割り当てられる。このハンドルは、シミュレーションを実行する度に変わるので、プロセッサコアモジュール5が割り込み要求指示するための各ネイティブ型モデルを識別する識別情報と、割り当てられたハンドルとを対応付けるテーブルを共有資源IF部8E、ネイティブ型モデル実行制御部11Eは、シミュレーション実行開始と共に作成する。
ネイティブ型モデル実行制御部11Eは、作成したテーブルに基づいて、実行するネイティブ型モデルのスレッドをハンドルでOSスレッド制御部20に通知する。
変形例6に係るシミュレーション装置1EのOSが、例えば、Windows(登録商標)XPであれば、OSスレッド制御部20は、各ネイティブ型モデルのスレッドをサスペンド状態にする場合は、SuspendThreadというAPI(Application Program Interface)機能を、実行状態にする場合は、ResumeThreadというAPI機能を用いてスレッド制御を行うことができる。
OSスレッド制御部20は、ネイティブ型モデル実行制御部11Eからハンドルの通知を受けて、該当のスレッドを実行状態に移行する。
変形例6の構成により、フラグのポーリングにより各ネイティブ型モデルの状態制御を行う必要がない。
<補足>
なお、本発明は上述した内容に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)共有資源モジュール9に設定できるパラメータの内容が少ない場合は、外部IF部7にパラメータを持たせておき、拡張レジスタモジュール6に書き込まれる値によってパラメータが選択されるようなものであってもよい。
(2)変形例1で示した共有資源モジュール9は、ダイナミックRAMをシミュレーションしたものであってもよい。ダイナミックRAMは、定期的にリフレッシュ動作を行うので、この場合、前述したアービタ部91は、ダイナミックRAMにアクセスするためのIF部であるとして、ダイナミックRAMがリフレッシュ動作を行っているときは、アクセス不可、リフレッシュ動作を行っていないときは、アクセス可と決定し、アクセス可の場合に限り、共有資源IF部8Aに対して応答するものであってもよい。
(3)上述した実施の形態では、サイクルベースモデルやネイティブ型モデルをC/C++言語を用いて記述作成されているとしたが、これに限られず、Java(登録商標)やBASIC等他のプログラム言語を用いて記述作成されたものであってもよい。
(4)上述したプロセッサコアモジュール5は、パイプラインやキャッシュ動作まで正確にシミュレートするCAS(Cycle Accurate Simulator)であってもよい。
(5)本発明は、上述したシミュレーション装置が備える各機能を実現させるためのプログラムであるとしてもよい。このプログラムは、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することができる。このような記録媒体には、ICカード、光ディスク、フレキシブルディスク、ROM等がある。
流通、頒布されたプログラムは、ROMを備える機器等にインストールされることにより利用に供され、その機器等はそのプログラムの実行により上述したシミュレーション装置を実現する。
上述した本発明に係るシミュレーション技術は、周期的なクロック入力に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムをシミュレーションする場合に、従来のサイクルベースシミュレーションよりシミュレーション実行時間を短縮することができるので、システムLSI等のシステム開発分野において有用である。
実施の形態1におけるシミュレーション装置の機能構成を示す図である。 実施の形態1における主要な構成要素の動作タイミングチャートを示す図である。 変形例1におけるシミュレーション装置の共有資源モジュールと共有資源IF部を示す図である。 変形例1における共有資源アクセスIF部のアクセス処理フローを説明するためのフローチャート図である。 変形例2におけるシミュレーション装置の機能構成を示す図である。 変形例3におけるシミュレーション装置の機能構成を示す図である。 変形例4におけるシミュレーション装置の機能構成を示す図である。 変形例5におけるシミュレーション装置の機能構成を示す図である。 変形例6におけるシミュレーション装置の機能構成を示す図である。 従来のサイクルベースシミュレーションを実行するシミュレーション装置の機能構成を示す図である。 従来のシミュレーション装置の主要な構成要素の動作タイミングチャートを示す図である。
符号の説明
1、1A、1B、1C、1D、1E シミュレーション装置
2、1001 シミュレーションカーネル
3、3C、3D、3E サイクルベースモデル
4、4A、4B、4E、4F、4G ネイティブ型モデル
5、1003 プロセッサコアモジュール
6、1004 拡張レジスタモジュール
7 外部IF部
8、8A、8E 共有資源IF部
9、9A、1007 共有資源モジュール
10、1006 割り込み制御部
11、11E ネイティブ型モデル実行制御部
12、12A、12B 状態制御部
13 サイクル計測部
14 情報出力制御IF部
15 情報出力部
16 情報出力制御レジスタ
17 ユーザインターフェース部
20 OSスレッド制御部
1005 プロセッサモジュール

Claims (12)

  1. 特定の周期に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムの動作をシミュレーションするシミュレーション装置であって、
    前記第1回路ブロックの動作を時間概念を含めてシミュレーションする第1シミュレーション手段と、
    前記第2回路ブロックの動作を時間概念を含まずにシミュレーションする第2シミュレーション手段と、
    所定の周期で前記第1シミュレーション手段を起動させる第1制御手段と、
    前記第1シミュレーション手段から前記第2シミュレーション手段に対して発せられた、前記第1回路ブロックから前記第2回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段と、
    前記受付手段により前記要求情報が受け付けられた場合に、前記第2シミュレーション手段を起動させる第2制御手段とを備える
    ことを特徴とするシミュレーション装置。
  2. 前記システムは、共有資源を介して前記第1回路ブロックと前記第2回路ブロックとの間でデータ転送を行うシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
    前記共有資源をシミュレーションする共有資源シミュレーション手段と、
    前記第2シミュレーション手段から前記第1シミュレーション手段に対して発せられた、前記第2回路ブロックから前記第1回路ブロックに対する処理要求に相当する第2要求情報を受け付けて、前記共有資源シミュレーション手段に当該第2要求情報を発する仲介手段とを更に備え、
    前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第2要求情報を受け付けた場合に、前記第1シミュレーション手段は、当該共有資源シミュレーション手段にアクセスして第2要求情報を読み出す
    ことを特徴とする請求項1に記載のシミュレーション装置。
  3. 前記第1シミュレーション手段は、前記第2シミュレーション手段に対して前記第1回路ブロックから前記第2回路ブロックに対する処理要求に相当する要求情報を発してから、前記共有資源シミュレーション手段が、前記仲介手段より発せられた前記第2要求情報を受け付けるまでの間、前記共有資源シミュレーション手段にアクセスしないことを特徴とする請求項2記載のシミュレーション装置。
  4. 前記仲介手段は、
    前記共有資源シミュレーション手段に前記第2要求情報を発する前に、アクセス要求を当該共有資源シミュレーション手段に対して通知する通知手段と、
    前記アクセス要求に対する前記共有資源シミュレーション手段からの応答の有無を判定する判定手段とを備え、
    前記判定手段により応答有りと判定された場合に、前記第2要求情報を前記共有資源シミュレーション手段に対して発し、前記判定手段により応答無しと判定された場合に、所定期間、当該第2要求情報を発するのを待ち、その後、再度前記通知手段によりアクセス要求を前記共有資源シミュレーション手段に通知し、
    前記共有資源シミュレーション手段は、
    前記通知手段によりアクセス要求の通知を受けると、前記共有資源に対するアクセスを許可するか否かを決定し、肯定的な決定を行う場合にのみ、応答する調停手段を備える
    ことを特徴とする請求項3に記載のシミュレーション装置。
  5. 前記システムは、特定の周期に基づいて動作する第3回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
    前記第3回路ブロックの動作を時間概念を含まずにシミュレーションする第3シミュレーション手段を更に備え、
    前記受付手段は、前記第1シミュレーション手段から前記第3シミュレーション手段に対して発せられた、前記第1回路ブロックから前記第3回路ブロックに対する処理要求に相当する第3要求情報を更に受け付け、
    前記第2制御手段は、前記受付手段が受け付けた情報が前記要求情報であれば、前記第2シミュレーション手段を起動させ、前記第3要求情報であれば、前記第3シミュレーション手段を起動させる
    ことを特徴とする請求項1に記載のシミュレーション装置。
  6. 前記システムは、特定の周期に基づいて動作する第3回路ブロックを更に含むシステムであり、係るシステムの動作をシミュレーションする前記シミュレーション装置は、
    前記第3回路ブロックの動作を時間概念を含まずにシミュレーションする第3シミュレーション手段を更に備え、
    前記第2シミュレーション手段は、前記第3シミュレーション手段を起動させる第3制御手段を備える
    ことを特徴とする請求項1に記載のシミュレーション装置。
  7. 前記第1制御手段により前記第1シミュレーション手段に対して所定の周期で繰り返しなされる起動制御の回数をカウントするサイクル計測手段を更に備え、
    前記第1制御手段は、シミュレーション実行開始時に前記第2シミュレーション手段を起動させ、
    前記第2シミュレーション手段は、自己のシミュレーション状態の移行タイミングをタイミング情報として予め記憶しており、前記第1制御手段により起動させられた際に、当該タイミング情報を前記サイクル計測手段に伝送し、
    前記サイクル計測手段は、前記第2シミュレーション手段から伝送されたタイミング情報と、カウントしている起動制御の回数に基づいて、前記第2制御手段に当該第2シミュレーション手段を起動させるタイミングを通知し、
    前記第2制御手段は、前記サイクル計測手段からの通知に基づいて前記第2シミュレーション手段を起動させる
    ことを特徴とする請求項1に記載のシミュレーション装置。
  8. 前記共有資源シミュレーション手段によりなされるシミュレーションの結果をシミュレーション情報として出力する出力手段と、
    出力されたシミュレーション情報をユーザに提示するユーザインターフェース手段とを更に備える
    ことを特徴とする請求項2〜7のうちいずれか1項に記載のシミュレーション装置。
  9. 前記共有資源シミュレーション手段は、更に、
    詳細なシミュレーション情報を提示をすべきシミュレーション部分を指定する情報を記録する記録手段と、
    前記出力手段から前記ユーザインターフェース手段に出力すべきシミュレーション情報の制御を行う出力制御手段とを備え、
    前記ユーザインターフェース手段は、
    提示すべきシミュレーション情報の指定をユーザから受け付けて、当該指定を前記出力制御手段に通知し、
    前記出力制御手段は、詳細なシミュレーション情報を提示をすべきシミュレーション部分については、前記記録手段に記録された情報に基づいて詳細なシミュレーション情報を出力し、それ以外のシミュレーション部分については、前記ユーザインターフェース手段より通知されたユーザ指定に係るシミュレーション情報を出力する制御を行う
    ことを特徴とする請求項8に記載のシミュレーション装置。
  10. 前記シミュレーション装置は、マルチスレッドオペレーティングシステムを備えており、
    前記第2シミュレーション手段及び前記第3シミュレーション手段はそれぞれ、マルチスレッド制御下における1スレッドとして実行状態が制御される
    ことを特徴とする請求項5に記載のシミュレーション装置。
  11. 特定の周期に基づいてそれぞれ動作する第1回路ブロックと第2回路ブロックとを含むシステムの動作をシミュレーションするためにコンピュータを、
    前記第1回路ブロックの動作を時間概念を含めてシミュレーションする第1シミュレーション手段、
    前記第2回路ブロックの動作を時間概念を含まずにシミュレーションする第2シミュレーション手段、
    所定の周期で前記第1シミュレーション手段を起動させる第1制御手段、
    前記第1シミュレーション手段から前記第2シミュレーション手段に対して発せられた、前記第1回路ブロックから前記第2回路ブロックに対する処理要求に相当する要求情報を受け付ける受付手段、
    前記受付手段により前記要求情報が受け付けられた場合に、前記第2シミュレーション手段を起動させる第2制御手段として機能させる
    ことを特徴とするシミュレーションプログラム。
  12. 請求項11に記載のシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003334183A 2003-09-25 2003-09-25 シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法 Expired - Fee Related JP4020849B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003334183A JP4020849B2 (ja) 2003-09-25 2003-09-25 シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法
CNB2004100376181A CN1312583C (zh) 2003-09-25 2004-04-27 仿真装置和仿真方法
US10/857,027 US20050071145A1 (en) 2003-09-25 2004-06-01 Simulation apparatus, simulation program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003334183A JP4020849B2 (ja) 2003-09-25 2003-09-25 シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法

Publications (2)

Publication Number Publication Date
JP2005100174A true JP2005100174A (ja) 2005-04-14
JP4020849B2 JP4020849B2 (ja) 2007-12-12

Family

ID=34373153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003334183A Expired - Fee Related JP4020849B2 (ja) 2003-09-25 2003-09-25 シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法

Country Status (3)

Country Link
US (1) US20050071145A1 (ja)
JP (1) JP4020849B2 (ja)
CN (1) CN1312583C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016168A (ja) * 2017-07-06 2019-01-31 富士通株式会社 シミュレーションプログラム、方法、及び装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209158B1 (en) * 2008-07-03 2012-06-26 The Mathworks, Inc. Processor-in-the-loop co-simulation of a model
JP5347482B2 (ja) * 2008-12-18 2013-11-20 富士通セミコンダクター株式会社 性能評価装置、性能評価方法及びシミュレーションプログラム
JP2011129029A (ja) * 2009-12-21 2011-06-30 Elpida Memory Inc 回路シミュレーション装置および過渡解析方法
CN102651044B (zh) * 2012-03-31 2014-03-19 北京经纬恒润科技有限公司 一种仿真节点、多余度仿真计算机系统及方法
JP5920842B2 (ja) * 2013-11-28 2016-05-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation シミュレーション装置、シミュレーション方法、およびプログラム
TWI627521B (zh) * 2017-06-07 2018-06-21 財團法人工業技術研究院 時序估算方法與模擬裝置
JP2019200524A (ja) * 2018-05-15 2019-11-21 ルネサスエレクトロニクス株式会社 プログラム、情報処理装置、および情報処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628036B2 (ja) * 1988-02-01 1994-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーシヨン シミュレーシヨン方法
US5680590A (en) * 1990-09-21 1997-10-21 Parti; Michael Simulation system and method of using same
CA2051029C (en) * 1990-11-30 1996-11-05 Pradeep S. Sindhu Arbitration of packet switched busses, including busses for shared memory multiprocessors
EP0632377B1 (en) * 1993-06-30 1998-12-30 Microsoft Corporation Method for testing a message-driven operating system
US5600579A (en) * 1994-07-08 1997-02-04 Apple Computer, Inc. Hardware simulation and design verification system and method
US5819072A (en) * 1996-06-27 1998-10-06 Unisys Corporation Method of using a four-state simulator for testing integrated circuit designs having variable timing constraints
US5818736A (en) * 1996-10-01 1998-10-06 Honeywell Inc. System and method for simulating signal flow through a logic block pattern of a real time process control system
US6134516A (en) * 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
US5913058A (en) * 1997-09-30 1999-06-15 Compaq Computer Corp. System and method for using a real mode bios interface to read physical disk sectors after the operating system has loaded and before the operating system device drivers have loaded
JP3746371B2 (ja) * 1998-04-09 2006-02-15 株式会社日立製作所 性能シミュレーション方法
US6230114B1 (en) * 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
JP3803019B2 (ja) * 2000-08-21 2006-08-02 富士通株式会社 制御プログラム開発支援装置
US20020152061A1 (en) * 2001-04-06 2002-10-17 Shintaro Shimogori Data processing system and design system
US7036114B2 (en) * 2001-08-17 2006-04-25 Sun Microsystems, Inc. Method and apparatus for cycle-based computation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016168A (ja) * 2017-07-06 2019-01-31 富士通株式会社 シミュレーションプログラム、方法、及び装置

Also Published As

Publication number Publication date
US20050071145A1 (en) 2005-03-31
CN1312583C (zh) 2007-04-25
JP4020849B2 (ja) 2007-12-12
CN1601473A (zh) 2005-03-30

Similar Documents

Publication Publication Date Title
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US20080208555A1 (en) Simulation method and simulation apparatus
US20120245916A1 (en) Conveying data from a hardware device to a circuit simulation
JP5270330B2 (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
CN114580344B (zh) 测试激励生成方法、验证方法、验证系统及相关设备
JP4020849B2 (ja) シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法
JP2007011720A (ja) システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体
US7016826B2 (en) Apparatus and method of developing software for a multi-processor chip
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
US6820219B1 (en) Integrated testing method for concurrent testing of a number of computer components through software simulation
JP6667733B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
US20060052995A1 (en) Simulation apparatus and method
JP2011039781A (ja) 協調シミュレーション装置及びシミュレーション方法
Ko et al. Hardware-in-the-loop simulation for CPU/GPU heterogeneous platforms
US20120191444A1 (en) Simulation device, simulation method, and computer program therefor
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
JP2007052783A (ja) データ処理装置のシミュレーション
CN117251118B (zh) 支持虚拟NVMe仿真与集成方法及系统
TW200426594A (en) Method for dynamically arranging an operating speed of a microprocessor
JP2014194746A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
Wang et al. Driver Design for DMA Transmission of PXIe Device
JP2009223762A (ja) 協調検証装置
US20070265821A1 (en) Simulation apparatus, simulation method, and computer-readable recording medium storing simulation program
Zhang et al. Design of device driver in VxWorks
CN116976277A (zh) 一种芯片模拟系统

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070925

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees