JP2015170081A - シミュレーション装置及びシミュレーションプログラム - Google Patents

シミュレーション装置及びシミュレーションプログラム Download PDF

Info

Publication number
JP2015170081A
JP2015170081A JP2014043718A JP2014043718A JP2015170081A JP 2015170081 A JP2015170081 A JP 2015170081A JP 2014043718 A JP2014043718 A JP 2014043718A JP 2014043718 A JP2014043718 A JP 2014043718A JP 2015170081 A JP2015170081 A JP 2015170081A
Authority
JP
Japan
Prior art keywords
model
unit
execution
instruction
execution time
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
JP2014043718A
Other languages
English (en)
Other versions
JP6249827B2 (ja
Inventor
治 遠山
Osamu Toyama
治 遠山
西川 浩司
Koji Nishikawa
浩司 西川
亀丸 敏久
Toshihisa Kamemaru
敏久 亀丸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2014043718A priority Critical patent/JP6249827B2/ja
Publication of JP2015170081A publication Critical patent/JP2015170081A/ja
Application granted granted Critical
Publication of JP6249827B2 publication Critical patent/JP6249827B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】検証対象となるシステムのSWモデルとHWモデルとに特別な修正を必要とすることなく、タイミング精度よくSWモデルとHWモデルとを協調して動作させることが可能とすることを目的とする。【解決手段】ISSモデル10は、SWモデルで規定された命令を実行する。実行回数計上部20は、実行された命令のうち、HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する。実行時間計算部30は、計上された実行回数に基づき、他の命令の実行時間を計算する。タイミング調整部40は、計算された実行時間に応じて、HW命令をIF部がHWモデルへ中継するタイミングを遅延させる。関数/ピンIF変換部50は、タイミング調整部40の制御に従い、SWモデルとHWモデルとの通信を中継する。【選択図】図1

Description

この発明は、時間概念を持たないソフトウェア(以下、SW)モデルと、時間概念を持つハードウェア(以下、HW)モデルとを協調して動作させるシミュレーション装置に関するものである。
プロセッサを含むHWと、そのHWで動作するSWとで構成されるシステムがある。このシステムを構成するHWをCベース言語のシステムレベル設計言語で記述したHWモデルと、このシステムのプロセッサで動作するSWとを並列動作させて、このシステムの動作を検証するシミュレーション装置がある。
特許文献1,2及び非特許文献1には、時間概念を持たないSWモデルと時間概念を持つHWモデルとを協調シミュレーションさせるための技術について記載されている。
特許文献1,2には、SWモデルの実行スケジューリングを行う手段(擬似OS)と、HWモデルの実行スケジューリングを行う手段と、HWモデルとSWモデルとの通信手段とを備え、擬似OSの算出する処理時間に応じて次のシミュレーションプロセスの開始を遅延させることが記載されている。これにより、SWモデルの実行に時間概念(処理遅延)を付与し、SWモデルとHWモデルとが実機と同等のタイミング・実行順で協調動作できるようにしている。
非特許文献1には、SWの処理時間を考慮するために、SW部品のあるブロックを認識し、ある間隔で制御点を挿入し制御点間の時間を入れることについて記載されている。これにより、SWモデルのシミュレーションに時間概念を付与し、HWモデルとの協調動作できるようにしている。
特開2009−26113号公報 特開2012−27952号公報
「ハード−ソフト協調検証の高速化技術SystemCベースでSTARCが開発」、日経マイクロデバイス、2005年1月号、p.106−107
しかし、特許文献1,2及び非特許文献1に記載された技術では、SWモデルに与える時間(遅延)情報として、検証対象のシステムとシミュレーション装置との性能差からソフトウェアSWの処理時間を算出したものを用いる。そのため、キャッシュ動作や外部メモリへのアクセス時間等、CPUの内部動作に起因する処理時間を考慮すると、誤差が大きくなってしまうという課題がある。
また、特許文献1,2に記載された技術では、擬似OSを用いるため、OSを含めたシステム全体のデバッグには用いることができない。さらに、非特許文献1に記載された技術では、SWモデルに改修が必要となるため、協調動作させることはできるものの、SWモデルのデバッグには使えないという課題がある。
この発明は、検証対象となるシステムのSWモデルとHWモデルとに特別な修正を必要とすることなく、タイミング精度よくSWモデルとHWモデルとを協調して動作させる事を目的とする。
この発明に係るシミュレーション装置は、
時間概念を持たないSWモデル(ソフトウェアモデル)と、時間概念を持つHWモデル(ハードウェアモデル)とを協調して動作させるシミュレーション装置であり、
前記SWモデルで規定された命令を実行するSWモデル実行部と、
前記SWモデル実行部が実行した命令のうち、前記HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する計上部と、
前記計上部が計上した実行回数に基づき、前記他の命令の実行時間を計算する実行時間計算部と、
前記SWモデルと前記HWモデルとの通信を中継するIF部と、
前記実行時間計算部が計算した実行時間に応じて、前記HW命令を前記IF部が前記HWモデルへ中継するタイミングを遅延させるタイミング調整部と
を備えることを特徴とする。
この発明に係るシミュレーション装置は、SWモデル実行部が実行した命令の実行回数に基づき、命令の実行時間を計算して、計算した実行時間に応じてHWモデルへの命令の発行を遅延させる。そのため、SWモデルとHWモデルとに特別な修正を必要とすることなく、タイミング精度よくSWモデルとHWモデルとを協調して動作させることが可能である。
実施の形態1に係るシミュレーション装置100の構成図。 図1に示す各モデルの実装言語の分類を示す図。 動作フローの一例を示す図。 前提条件の下、実機が動作する場合のタイミングチャートを示す図。 シミュレーションの開始から外部IOアクセスが実行されるまでの、実行回数計上部20の動作を示す図。 実行時間計算部30の動作を示す図。 外部IOモデル15からHWモデル70Aに対するアクセス要求がされた場合のタイミング調整部40と関数/ピンIF変換部50の動作を示す図。 図5から図7までに基づき説明した一連の動作を示す図。 実施の形態2に係るシミュレーション装置100の構成図。 追加タイミング情報計算部80と、他の機能部との関係を示す図。 実機の外部IO部分に1段のバスバッファがある場合の動作例を示す図。 シミュレーション装置100が図11と同等のシミュレーションが行えることを示す図。 実施の形態1,2に示したシミュレーション装置100のハードウェア構成の例を示す図。
実施の形態1.
図1は、実施の形態1に係るシミュレーション装置100の構成図である。
シミュレーション装置100は、ISS(Instruction Set Simulator)モデル10(SWモデル実行部)、実行回数計上部20(計上部)、実行時間計算部30、基準値記憶部31、タイミング調整部40、関数/ピンIF変換部50(IF部)、SWモデル60、HWモデル70(HWモデル70A〜70Z)を備える。
ISSモデル10は、検証対象のシステムのSWモデル60を動作させる。ISSモデル10は、検証対象のシステムの実機と同じように、SWモデル60の実行をシミュレーションする。ISSモデル10は、実機の各構成要素を模擬したCPUコアモデル11、CPUバスモデル12、内部メモリ/周辺装置モデル13、キャッシュモデル14、外部IOモデル15を含む。
ISSモデル10に含まれる各機能モデル11〜15と、SWモデル60とは、C言語等の高級言語を用いてモデル化されており、シミュレーションにおいて時間概念を持たない。
実行回数計上部20は、ISSモデル10に含まれる各モデルの挙動を監視し、ISSモデル10で実行されたSWモデル60の命令によって発生する動作の実行回数を計上する。
実行回数計上部20は、例えば、内部メモリ/周辺装置モデル13に対するCPUコアモデルのアクセス回数21、キャッシュモデルで発生するキャッシュヒット/ミス回数22、CPUコアモデルで実行される各命令の実行回数23、外部IOモデルへのCPUコアモデルのアクセス回数24等の、実際のCPUで処理時間がかかる動作の実行回数を計上する。
なお、各実行回数21〜24は、命令の実行シーケンス、キャッシュヒット/ミス等を考慮してパイプライン実行される際に隠蔽されるものを差し引いて計上される。また、計上された各実行回数21〜24は、後述する関数/ピンIF変換部50が出力する計上値リセット指示51により0にリセットされる。
実行時間計算部30は、実行回数計上部20が計上した各実行回数21〜24の実行回数に対して、後述する基準値記憶部31が記憶した基準値を適用して、実際のCPUでの実行時間32を算出する。
基準値記憶部31は、実行回数計上部20が計上する動作の種類毎に、実際のCPUでの1回当たりの実行時間を記憶した記憶装置である。
タイミング調整部40は、実行時間32に基づき、関数/ピンIF変換部50がHWモデル70に対して、命令を発行するタイミングを制御する。
関数/ピンIF変換部50は、ISSモデル10からHWモデル70に対するアクセス要求(C言語等の関数の実行)を、HWモデル70とIF(インタフェース)可能なピンの動作に変換する。
関数/ピンIF変換部50は、例えば、SystemCのような、SWモデル60とHWモデル70との両方の記述が可能な言語でモデル化されている。
SWモデル60は、検証対象となるSWモデルである。SWモデル60は、OSを含んでモデル化されている。SWモデル60は、上述した通り、C言語等の高級言語を用いてモデル化されており、シミュレーションにおいて時間概念を持たない。
HWモデル70は、検証対象となるHWモデルである。HWモデル70は、HDL(Hardware Description Language)でモデル化されており、シミュレーションにおいて、時間概念を持つ。
図2は、図1に示す各モデルの実装言語の分類を示す図である。
ここでは、ISSモデル10(内部の各モデルも含む)、実行回数計上部20、実行時間計算部30、基準値記憶部31、タイミング調整部40は、C言語で記述されている。関数/ピンIF変換部50は、SystemCで記述されている。HWモデル70は、HDLの1つであるVerilogで記述されている。
なお、この分類は以降の説明を簡単にするために示すものであり、各モデルの実装言語を限定するものではない。
シミュレーション装置100でSWモデル60とHWモデル70がどのように協調動作するのかを説明する。
まず前提条件を説明した上で、前提条件の下、実機とシミュレーション装置100とのそれぞれで、SWモデル60とHWモデル70とが協調動作する様子を説明する。
<前提条件>
(条件1)SWモデル60は、ISSモデル10の内部メモリ/周辺装置モデル13の内部メモリに格納されているものとし、CPUコアモデル11は内部メモリから命令を読みだして実行するものとする。
(条件2)基準値記憶部31は、CPUコアモデル11が実行する各命令の実行時間を一律1、内部メモリのアクセス時間を5、キャッシュヒット時のアクセス時間を1、外部IOモデルがISSモデル10の外部にアクセスを発行するまでの時間を2、関数/ピンIF変換部50からアクセス要求が発行されてからHWモデル70が応答を返すまでの時間を10とする(単位はns)。
(条件3)SWモデル60の動作の説明を簡単にするために、図3に示す動作フローように、CPUコアモデル11は、9個の命令(命令A〜I)を実行した後、外部IOモデル15にアクセスし、外部IOモデル15のアクセス完了後に続いて1個の命令(命令J)を実行する、という状況を想定する。なお、合計10個の命令(命令A〜J)を実行するにあたり、9回のキャッシュアクセス(ヒット)、と1回の内部メモリアクセスがあるものとする。
なお、これら前提条件は説明を簡易にするために便宜的に定めたものであり、この内容に限定するものではない。
<実機での動作>
図4は、前提条件の下、実機が動作する場合のタイミングチャートを示す図である。
図4では、上に書かれている数字は時間[ns]を表す。また、Caは、図3で示した「キャッシュアクセス」を表し、Maは「内部メモリアクセス」、A〜Jは「命令A〜Jの実行」、外部IOは「外部IOアクセス」、HWは「HW動作」を表している。
その結果、実機では前提条件の実行に28[ns]かかる。
<シミュレーション装置100での動作>
図5は、シミュレーションの開始から外部IOアクセスが実行されるまでの、実行回数計上部20の動作を示す図である。
ISSモデル10では、シミュレーションされる命令実行やメモリアクセスは時間概念が無く、順番に実行されるだけである。実行回数計上部20は、これらの動作(命令実行やメモリアクセス)の実行回数を計上するが、各動作の実行順番(シーケンス)を監視する事で、実機ではパイプライン動作の結果として隠蔽される動作については、差し引いて計上する。その結果、図5に示すように、キャッシュアクセスは8回、内部メモリアクセス1回、命令実行1回、外部IOアクセス1回と計上される。
図6は、実行時間計算部30の動作を示す図である。
実行時間計算部30は、実行回数計上部20が計上した各動作の実行回数を入力とし、基準値記憶部31が記憶した各動作の1回当たりの実行時間を引きながら、計上された全動作の実機での実行時間を計算する。今回の例の場合、キャッシュアクセスは8回×1[ns]と、内部メモリアクセス1回×5[ns]と、命令実行1回×1[ns]と、外部IOアクセス1回×2[ns]とを合わせて、15[ns]となる。
図7は、外部IOモデル15からHWモデル70Aに対するアクセス要求がされた場合のタイミング調整部40と関数/ピンIF変換部50との動作を示す図である。
外部IOモデル15からのアクセス要求(HW命令)は、まず関数/ピンIF変換部50に発行される(1)。アクセス要求が発行されると関数/ピンIF変換部50は、タイミング調整部40にタイミング調整開始指示を発行する(2)。
タイミング調整部40は、関数/ピンIF変換部50が、HWモデル70Aに対してアクセス要求を発行するタイミングを制御する。タイミング調整部40は、タイミング調整開始指示を受けると、内部の時間計測用のタイマ(カウンタ)を用いて、実行時間計算部30が計算した実行時間(ここでは、15[ns])が経過したことを確認する。タイミング調整部40は、実行時間が時間経過すると、関数/ピンIF変換部50に対して動作開始指示を発行する(3)。
動作開始指示を受けた関数/ピンIF変換部50は、外部IOモデル15からのアクセス要求(関数動作)をHWモデル70AとIFが可能なピン動作への変換を開始する(4)。
ここで、関数動作とは、例えば、read(HW_A)といったC言語で定義された関数の動作の事である。read()関数の引数HW_Aは、HWモデル70Aに割り当てられた特別な識別子(例えば、アドレス情報)である。一方、ピン動作とは、HWモデル70Aが動作するために必要な入出力ピンの動作の事で、例えば、アクセス要求発行状態を表すアクセスイネーブル信号、リード/ライトの制御を表すリード/ライト信号、アクセスする番地を表すアドレス信号、リード/ライトデータをやりとりするためのデータ信号等で構成される。
関数/ピンIF変換部50は、関数動作をピン動作に変換してHWモデル70AとIFを行う(5)。
関数/ピンIF変換部50は、ピン動作によって得られた結果、例えば、0xABCDというデータ値を得た場合、これを外部IOモデル15の関数動作(read(HW_A))の応答として返す(6)。また同時に、関数/ピンIF変換部50は、実行回数計上部20に対して計上値リセット指示51を発行して、計上値を0にリセットする(7)。
図8は、図5から図7までに基づき説明した一連の動作を示す図である。
図8上部は、実機での動作(図4で示したものと同じ)であり、図8下部がシミュレーション装置100での動作である。
ISSモデル10によって、図3で示した動作フローのうち「外部IOアクセス」までが実行される。並行して、実行回数計上部20がISSモデル10の命令実行回数等を計上する。ISSモデル10の動作が「外部IOアクセス」に達した時点で、ISSモデル10の外部IOモデル15が、関数/ピンIF変換部50にアクセス要求(read(HW_A))を発行する。アクセス要求を発行した後は、関数/ピンIF変換部50からの応答があるまで、ISSモデル10(外部IOモデル15)は動作が応答待ち状態(停止)になる。一方、実行時間計算部30は、実行回数計上部20の計上した各実行回数をもとに、実行時間を計算する(ここでは、15[ns]と計算される)。ここまでの一連の動作は、シミュレーション上の時間経過は0で実行される。
続いて、関数/ピンIF変換部50は、タイミング調整部40に対して、タイミング調整開始指示を発行する。タイミング調整部40は、タイミング調整開始指示を受けると、実行時間計算部30が計算した実行時間(ここでは、15[ns])が経過するのを待った後、関数/ピンIF変換部50に動作開始指示を発行する。動作開始指示が発行されると、関数/ピンIF変換部50は、関数動作(read(HW_A))をピン動作に変換してHWモデル70AとのIFを行う。
HWモデル70Aは、関数/ピンIF変換部50が変換したピン動作の結果、10[ns]後にアクセス要求に対する応答を返す。アクセス応答が返ったことにより、アクセス応答待ちで停止していたISSモデル10(外部IOモデル15)が動作を再開する。同時に、関数/ピンIF変換部50は、実行回数計上部20に計上値リセット指示51を発行する。これにより、実行回数計上部20が計上していた全ての動作の実行回数は0にリセットされる。
以降、外部IOアクセスが発生する毎に同じ動作を繰り返す。
以上のように動作する事で、図8に示す通り、時間経過概念のないSWモデル60の動作に対して時間経過の概念が付与されてシミュレーションが実行される。そのため、実機と同じ動作タイミングでSW70モデルとHWモデル70とを協調させてシミュレーションを実行することができる。
特に、SWモデル60とHWモデル70とに特別な修正をすることなく、タイミング精度よくSWモデル60とHWモデル70とを協調して動作させることが可能である。
実施の形態2.
実施の形態2では、実機の外部IOに実装されるバスバッファの動作を模擬することについて説明する。
実施の形態2では、実施の形態1と同じ部分については説明を省略し、実施の形態1と異なる部分について説明する。
図9は、実施の形態2に係るシミュレーション装置100の構成図である。
図9に示すシミュレーション装置100は、追加タイミング情報計算部80(追加タイミング調整部)を備える点が、図1に示す実施の形態1に係るシミュレーション装置100と異なる。追加タイミング情報計算部80は、実機の外部IOに実装されるバスバッファの動作を模擬する。
図10は、追加タイミング情報計算部80と、他の機能部との関係を示す図である。
追加タイミング情報計算部80は、関数/ピンIF変換部50から、HW動作情報を受ける(1)。HW動作情報とは、関数/ピンIF変換部50の先に繋がるHWモデル70がアクセス応答処理中かどうかを示す情報である。追加タイミング情報計算部80は、内部に、シミュレーション装置が模擬する対象となる実機の外部IO部分に含まれるバッファを模擬するバッファモデル81(バッファ部)を持つ。追加タイミング情報計算部80は、HW動作情報とバッファモデル81とから、追加タイミング情報を計算して、関数/ピンIF変換部50に出力する(2)。追加タイミング情報により、関数/ピンIF変換部50の動作完了が引き延ばされ、外部IOモデル15へ応答を返すタイミングが引き延ばされる。
図11は、実機の外部IO部分に1段のバスバッファがある場合の動作例を示す図である。
図11では、外部IOはHWに対してライト要求2個(W1とW2)を発行した場合を示しており、説明の前提条件として外部IOのライト要求の発行は最短1サイクルで発行可能とする。また、HWは外部IOのライト要求に対して応答を返すのに5サイクルかかるものとする。
図11の動作詳細を説明する。
時刻1で外部IOがHWに対してライト要求(W1)を発行する。時刻2でHWモデル70がライト要求(W1)に対する動作を開始し、この動作は時刻6まで続き、HWは新しい要求を受け付けることができない。一方、外部IOは、バスバッファを1段備えているので、ライト要求(W1)発行後にライト要求(W1)の応答を待つこと無く、次の動作を開始できる。つまり、実施の形態1では、外部IOからHWへ要求を発行すると、外部IDは要求に対する応答があるまで次の動作を実行できなかった。しかし、ここでは、バスバッファを1段備えているため、1つ要求を発行しても、応答を待つことなく次の動作を開始できる。
外部IOが次の動作を開始した結果、時刻5にライト要求(W2)を発行する。しかし、HWがライト要求(W1)の処理中のため、時刻7までライト要求(W2)の開始が待たされる。つまり、新しい要求が発行されたが、時刻6の時点では外部IOのバッファが使い切られた状態であり、次のライト要求を処理できない。そのため、時刻6ではライト要求(W2)を完了できず、時刻7までライト要求(W2)の開始が引き延ばされた状態になる。
続いて、時刻7の時点でHWがライト要求(W1)の処理を完了し、次のライト要求を受け付けられるようになったため、開始待ちとなっていたライト要求(W2)の処理を開始する。同時に、外部IOは次の処理を開始する。
図12は、シミュレーション装置100が図11と同等のシミュレーションが行えることを示す図である。
図12では、鍵型の矢印は、図8で説明した「タイミング調整部40による15[ns]経過待ち」と同等の動作を表す。また、斜線で網掛けしている六角形は、図8で説明した「ISSモデル10による命令の実行」、「実行回数計上部20による実行回数計上」「実行時間計算部30による実行時間計算」と同等の動作を表す。
時刻1では、関数/ピンIF変換部50の動作により、HWモデル70にライト要求(W1)が発行される。
時刻2では、追加タイミング情報計算部80がバッファ残量(時刻1でライト要求(W1)を受けたので、時刻2ではバッファ残量0)と、HWモデル70の動作状況とを勘案して、追加タイミング情報が必要かどうかを計算する。図12の場合、時刻2の時点ではバッファにライト要求(W1)が入りISSモデル10は次の動作を開始できる状態であるので、追加のタイミング情報は出力されない。
時刻2では、追加のタイミング情報が出力されないので、関数/ピンIF変換部50は、ISSモデル10の外部IOモデル15に応答を返す。応答が返ることでISSモデル10は動作を再開し、何らかの命令を実行する。実行の結果、ライト要求(W2)が発行されるが、図12の場合ではライト要求(W2)が発行されるまでに3サイクル分(時刻2〜4の分)の動作時間が計上され、タイミング調整部40によりその分の遅延が付加される。時刻5でW2がHWモデル70に発行される。
時刻6では、バッファ残量が無く、かつライト要求(W1)がまだ処理中であるため、追加タイミング情報が出力される。追加タイミング情報の出力により、関数/ピンIF変換部50は動作の完了を追加タイミング情報が無くなるまで引き延ばし、追加タイミング情報が無くなるまで外部IOモデル15に応答を返さない。
時刻7では、HWモデル70のライト要求(W1)についての処理が完了し、追加タイミング情報が無くなる。これにより、関数/ピンIF変換部50は、ISSモデル10の外部IOモデル15にライト要求(W2)についての応答を返し、ISSモデル10の動作が再開される。
以降、これら動作が繰り返されることで、外部IOモデル15にバッファがある場合に、実機と同等のタイミングで協調シミュレーションを行うことが可能である。
図13は、実施の形態1,2に示したシミュレーション装置100のハードウェア構成の例を示す図である。
シミュレーション装置100は、コンピュータである。シミュレーション装置100の各要素をプログラムで実現することができる。
シミュレーション装置100のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central Processing Unit)等である。外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置等である。主記憶装置903は、例えばRAM(Random Access Memory)等である。通信装置904は、例えば通信ボード等である。入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、ISSモデル10、実行回数計上部20、実行時間計算部30、タイミング調整部40、関数/ピンIF変換部50、SWモデル60、HWモデル70として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、上記プログラムを実行する。
また、実施の形態1,2の説明において、基準値記憶部31が記憶すると説明した情報や、ISSモデル10、実行回数計上部20、実行時間計算部30、タイミング調整部40、関数/ピンIF変換部50、SWモデル60、HWモデル70が出力する等と説明した情報等が主記憶装置903にファイルとして記憶されている。
なお、図13の構成は、あくまでもシミュレーション装置100のハードウェア構成の一例を示すものであり、シミュレーション装置100のハードウェア構成は図13に記載の構成に限らず、他の構成であってもよい。
10 ISSモデル、20 実行回数計上部、30 実行時間計算部、31 基準値記憶部、40 タイミング調整部、50 関数/ピンIF変換部、60 SWモデル、70 HWモデル、80 追加タイミング情報計算部、81 バッファモデル、100 シミュレーション装置。

Claims (5)

  1. 時間概念を持たないSWモデル(ソフトウェアモデル)と、時間概念を持つHWモデル(ハードウェアモデル)とを協調して動作させるシミュレーション装置であり、
    前記SWモデルで規定された命令を実行するSWモデル実行部と、
    前記SWモデル実行部が実行した命令のうち、前記HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する計上部と、
    前記計上部が計上した実行回数に基づき、前記他の命令の実行時間を計算する実行時間計算部と、
    前記SWモデルと前記HWモデルとの通信を中継するIF部と、
    前記実行時間計算部が計算した実行時間に応じて、前記HW命令を前記IF部が前記HWモデルへ中継するタイミングを遅延させるタイミング調整部と
    を備えることを特徴とするシミュレーション装置。
  2. 前記IF部は、中継したHW命令に対する前記HWモデルの動作が完了すると、前記SWモデル実行部へ応答を返し、
    前記SWモデル実行部は、前記IF部から応答が返ると、前記HW命令の後の命令を実行する
    ことを特徴とする請求項1に記載のシミュレーション装置。
  3. 前記シミュレーション装置は、さらに、
    動作の種類毎に実行時間の基準値を記憶する基準値記憶部
    を備え、
    前記計上部は、前記動作の種類毎に、前記動作の実行回数を計上し、
    前記実行時間計算部は、前記計上部が計上した前記動作の種類毎の実行回数と、前記基準値記憶部が記憶した基準値とに基づき、前記他の命令の実行時間を計算する
    ことを特徴とする請求項1又は2に記載のシミュレーション装置。
  4. 前記シミュレーション装置は、さらに、
    前記HW命令が実行された場合に、前記HWモデルの動作が完了するまで、実行された前記HW命令を記憶するバッファ部
    を備え、
    前記IF部は、前記バッファに空きがある場合には、前記HW命令が実行された場合に、実行された前記HW命令に対する前記HWモデルの動作の完了前に、前記SWモデル実行部へ応答を返し、
    前記SWモデル実行部は、前記IF部から応答が返ると、前記HW命令の後の命令を実行する
    ことを特徴とする請求項1から3までのいずれかに記載のシミュレーション装置。
  5. 時間概念を持たないSWモデル(ソフトウェアモデル)と、時間概念を持つHWモデル(ハードウェアモデル)とを協調して動作させるシミュレーションプログラムであり、
    前記SWモデルで規定された命令を実行するSWモデル実行処理と、
    前記SWモデル実行処理で実行した命令のうち、前記HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する計上処理と、
    前記計上処理で計上した実行回数に基づき、前記他の命令の実行時間を計算する実行時間計算処理と、
    前記SWモデルと前記HWモデルとの通信を中継するIF処理と、
    前記実行時間計算処理で計算した実行時間に応じて、前記HW命令を前記IF処理で前記HWモデルへ中継するタイミングを遅延させるタイミング調整処理と
    をコンピュータに実行させることを特徴とするシミュレーションプログラム。
JP2014043718A 2014-03-06 2014-03-06 シミュレーション装置及びシミュレーションプログラム Active JP6249827B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014043718A JP6249827B2 (ja) 2014-03-06 2014-03-06 シミュレーション装置及びシミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014043718A JP6249827B2 (ja) 2014-03-06 2014-03-06 シミュレーション装置及びシミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2015170081A true JP2015170081A (ja) 2015-09-28
JP6249827B2 JP6249827B2 (ja) 2017-12-20

Family

ID=54202783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014043718A Active JP6249827B2 (ja) 2014-03-06 2014-03-06 シミュレーション装置及びシミュレーションプログラム

Country Status (1)

Country Link
JP (1) JP6249827B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542397A (zh) * 2018-09-29 2019-03-29 中国航空无线电电子研究所 体系化工具链集成方法
WO2019244472A1 (ja) * 2018-06-22 2019-12-26 日立オートモティブシステムズ株式会社 シミュレーション装置
WO2020017264A1 (ja) * 2018-07-19 2020-01-23 日立オートモティブシステムズ株式会社 シミュレーション装置、及びその方法、並びにecu装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074214A (ja) * 1996-08-30 1998-03-17 Toshiba Corp ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法
JPH1091480A (ja) * 1996-09-12 1998-04-10 Nec Corp コンピュータプログラムのシミュレーション装置および方法
JP2000035898A (ja) * 1998-07-17 2000-02-02 Nec Corp システムシミュレータおよびシステムシミュレーション方法
JP2000259445A (ja) * 1999-03-05 2000-09-22 Nec Corp ソフトウェア/ハードウェア協調シミュレーション方法
JP2003022296A (ja) * 2001-07-06 2003-01-24 Matsushita Electric Ind Co Ltd 協調シミュレーション方法および協調シミュレーション装置
JP2005293219A (ja) * 2004-03-31 2005-10-20 Handotai Rikougaku Kenkyu Center:Kk ソフトウェア検証モデル生成方法
JP2006023852A (ja) * 2004-07-06 2006-01-26 Handotai Rikougaku Kenkyu Center:Kk ソフトウェア検証モデル生成方法
JP2011258045A (ja) * 2010-06-10 2011-12-22 Toshiba Corp シミュレーション装置、シミュレーションプログラム及び方法
JP2012088951A (ja) * 2010-10-20 2012-05-10 Internatl Business Mach Corp <Ibm> シミュレーション制御方法、システム及びプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074214A (ja) * 1996-08-30 1998-03-17 Toshiba Corp ハードウェア/ソフトウェア協調シミュレータ及びシミュレーション方法
JPH1091480A (ja) * 1996-09-12 1998-04-10 Nec Corp コンピュータプログラムのシミュレーション装置および方法
JP2000035898A (ja) * 1998-07-17 2000-02-02 Nec Corp システムシミュレータおよびシステムシミュレーション方法
JP2000259445A (ja) * 1999-03-05 2000-09-22 Nec Corp ソフトウェア/ハードウェア協調シミュレーション方法
JP2003022296A (ja) * 2001-07-06 2003-01-24 Matsushita Electric Ind Co Ltd 協調シミュレーション方法および協調シミュレーション装置
JP2005293219A (ja) * 2004-03-31 2005-10-20 Handotai Rikougaku Kenkyu Center:Kk ソフトウェア検証モデル生成方法
JP2006023852A (ja) * 2004-07-06 2006-01-26 Handotai Rikougaku Kenkyu Center:Kk ソフトウェア検証モデル生成方法
JP2011258045A (ja) * 2010-06-10 2011-12-22 Toshiba Corp シミュレーション装置、シミュレーションプログラム及び方法
JP2012088951A (ja) * 2010-10-20 2012-05-10 Internatl Business Mach Corp <Ibm> シミュレーション制御方法、システム及びプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019244472A1 (ja) * 2018-06-22 2019-12-26 日立オートモティブシステムズ株式会社 シミュレーション装置
JPWO2019244472A1 (ja) * 2018-06-22 2021-05-13 日立Astemo株式会社 シミュレーション装置
JP7003259B2 (ja) 2018-06-22 2022-01-20 日立Astemo株式会社 シミュレーション装置
US11977467B2 (en) 2018-06-22 2024-05-07 Hitachi Astemo, Ltd. Simulation device
WO2020017264A1 (ja) * 2018-07-19 2020-01-23 日立オートモティブシステムズ株式会社 シミュレーション装置、及びその方法、並びにecu装置
CN112400162A (zh) * 2018-07-19 2021-02-23 日立汽车系统株式会社 模拟装置及其方法、以及ecu装置
JPWO2020017264A1 (ja) * 2018-07-19 2021-05-13 日立Astemo株式会社 シミュレーション装置、及びその方法、並びにecu装置
JP7045458B2 (ja) 2018-07-19 2022-03-31 日立Astemo株式会社 シミュレーション装置、及びその方法、並びにecu装置
CN109542397A (zh) * 2018-09-29 2019-03-29 中国航空无线电电子研究所 体系化工具链集成方法

Also Published As

Publication number Publication date
JP6249827B2 (ja) 2017-12-20

Similar Documents

Publication Publication Date Title
CN107346351B (zh) 用于基于源代码中定义的硬件要求来设计fpga的方法和系统
JP4975544B2 (ja) シミュレーション装置及びプログラム
US10180850B1 (en) Emulating applications that use hardware acceleration
US10691580B1 (en) Diagnosing applications that use hardware acceleration through emulation
US20120029900A1 (en) Simulation method and system for simulating a multi-core hardware platform
US9600384B2 (en) System-on-chip verification
US9081925B1 (en) Estimating system performance using an integrated circuit
Schliecker et al. Reliable performance analysis of a multicore multithreaded system-on-chip
JP6249827B2 (ja) シミュレーション装置及びシミュレーションプログラム
Pétrot et al. Cycle precise core based hardware/software system simulation with predictable event propagation
WO2018032897A1 (zh) 报文转发性能评估方法、装置和计算机存储介质
TW201310241A (zh) 全匯流排之交易層級模擬方法以快速與精確的爭用分析
US8954312B2 (en) Hardware emulation proxy for hardware software co-emulation
JP6218645B2 (ja) プログラム解析装置及びプログラム解析方法及びプログラム
US20140244232A1 (en) Simulation apparatus and simulation method
Plyaskin et al. A method for accurate high-level performance evaluation of MPSoC architectures using fine-grained generated traces
JP5454349B2 (ja) 性能推定装置
Alali et al. Modeling and simulation of multiprocessor systems MPSoC by SystemC/TLM2
Maillet-Contoz et al. Transaction Level Modeling: An Abstraction Beyond RTL
US20130014068A1 (en) Computer-aided design system and methods thereof for merging design constraint files across operational modes
Thesing Modeling a system controller for timing analysis
JP5226848B2 (ja) シミュレーション装置及びプログラム
Wicaksana et al. Hybrid prototyping methodology for rapid system validation in HW/SW co-design
Ko et al. Hardware-in-the-loop simulation for CPU/GPU heterogeneous platforms
Lu et al. Removal of unnecessary context switches from the systemc simulation kernel for fast vp simulation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171011

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: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171121

R150 Certificate of patent or registration of utility model

Ref document number: 6249827

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250