JP2015170081A - simulation device and simulation program - Google Patents

simulation device and simulation program 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
Japanese (ja)
Other versions
JP6249827B2 (en
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/en
Publication of JP2015170081A publication Critical patent/JP2015170081A/en
Application granted granted Critical
Publication of JP6249827B2 publication Critical patent/JP6249827B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To allow a SW model and a HW model to be operated in cooperation with each other with good timing accuracy without requiring special modification to the SW model and the HW model of a verification object system.SOLUTION: An ISS model 10 executes instructions defined in a SW model. An execution number counting unit 20 counts the number of execution times of operation caused by other instructions executed before a HW instruction issued to a HW model among executed instructions. An execution time calculation unit 30 calculates an execution time for the other instructions on the basis of the counted number of execution times. A timing adjusting unit 40 delays timing for an interface unit to relay the HW instruction to the HW model depending on the calculated execution time. A function/pin interface conversion unit 50 relays communication between the SW model and the HW model according to control of the timing adjusting unit 40.

Description

この発明は、時間概念を持たないソフトウェア(以下、SW)モデルと、時間概念を持つハードウェア(以下、HW)モデルとを協調して動作させるシミュレーション装置に関するものである。   The present invention relates to a simulation apparatus that operates a software (hereinafter referred to as SW) model having no time concept and a hardware (hereinafter referred to as HW) model having a time concept in cooperation with each other.

プロセッサを含むHWと、そのHWで動作するSWとで構成されるシステムがある。このシステムを構成するHWをCベース言語のシステムレベル設計言語で記述したHWモデルと、このシステムのプロセッサで動作するSWとを並列動作させて、このシステムの動作を検証するシミュレーション装置がある。   There is a system composed of an HW including a processor and an SW operating on the HW. There is a simulation apparatus that verifies the operation of this system by operating in parallel a HW model in which the HW constituting this system is described in a system-level design language of a C-based language and a SW that operates on the processor of this system.

特許文献1,2及び非特許文献1には、時間概念を持たないSWモデルと時間概念を持つHWモデルとを協調シミュレーションさせるための技術について記載されている。   Patent Documents 1 and 2 and Non-Patent Document 1 describe techniques for co-simulating an SW model having no time concept and an HW model having a time concept.

特許文献1,2には、SWモデルの実行スケジューリングを行う手段(擬似OS)と、HWモデルの実行スケジューリングを行う手段と、HWモデルとSWモデルとの通信手段とを備え、擬似OSの算出する処理時間に応じて次のシミュレーションプロセスの開始を遅延させることが記載されている。これにより、SWモデルの実行に時間概念(処理遅延)を付与し、SWモデルとHWモデルとが実機と同等のタイミング・実行順で協調動作できるようにしている。   Patent Documents 1 and 2 include means for performing SW model execution scheduling (pseudo-OS), means for performing HW model execution scheduling, and means for communicating between the HW model and the SW model to calculate a pseudo-OS. It describes that the start of the next simulation process is delayed according to the processing time. As a result, a time concept (processing delay) is given to the execution of the SW model so that the SW model and the HW model can perform a cooperative operation in the same timing and execution order as the actual machine.

非特許文献1には、SWの処理時間を考慮するために、SW部品のあるブロックを認識し、ある間隔で制御点を挿入し制御点間の時間を入れることについて記載されている。これにより、SWモデルのシミュレーションに時間概念を付与し、HWモデルとの協調動作できるようにしている。   Non-Patent Document 1 describes that in order to consider the SW processing time, a certain block of SW parts is recognized, control points are inserted at certain intervals, and the time between control points is entered. Thereby, the concept of time is given to the simulation of the SW model so that the cooperative operation with the HW model can be performed.

特開2009−26113号公報JP 2009-26113 A 特開2012−27952号公報JP 2012-27952 A

「ハード−ソフト協調検証の高速化技術SystemCベースでSTARCが開発」、日経マイクロデバイス、2005年1月号、p.106−107"STARC developed on the basis of SystemC, a high-speed hardware-software collaborative verification technology," Nikkei Microdevices, January 2005, p. 106-107

しかし、特許文献1,2及び非特許文献1に記載された技術では、SWモデルに与える時間(遅延)情報として、検証対象のシステムとシミュレーション装置との性能差からソフトウェアSWの処理時間を算出したものを用いる。そのため、キャッシュ動作や外部メモリへのアクセス時間等、CPUの内部動作に起因する処理時間を考慮すると、誤差が大きくなってしまうという課題がある。   However, in the techniques described in Patent Documents 1 and 2 and Non-Patent Document 1, the processing time of the software SW is calculated from the performance difference between the system to be verified and the simulation device as time (delay) information given to the SW model. Use things. For this reason, there is a problem that an error becomes large in consideration of processing time caused by internal operation of the CPU such as cache operation and access time to an external memory.

また、特許文献1,2に記載された技術では、擬似OSを用いるため、OSを含めたシステム全体のデバッグには用いることができない。さらに、非特許文献1に記載された技術では、SWモデルに改修が必要となるため、協調動作させることはできるものの、SWモデルのデバッグには使えないという課題がある。   In addition, since the techniques described in Patent Documents 1 and 2 use a pseudo OS, they cannot be used for debugging the entire system including the OS. Furthermore, since the technique described in Non-Patent Document 1 requires modification of the SW model, there is a problem that it cannot be used for debugging of the SW model although it can be operated in cooperation.

この発明は、検証対象となるシステムのSWモデルとHWモデルとに特別な修正を必要とすることなく、タイミング精度よくSWモデルとHWモデルとを協調して動作させる事を目的とする。   An object of the present invention is to operate the SW model and the HW model in a coordinated manner with high timing accuracy without requiring any special correction of the SW model and the HW model of the system to be verified.

この発明に係るシミュレーション装置は、
時間概念を持たないSWモデル(ソフトウェアモデル)と、時間概念を持つHWモデル(ハードウェアモデル)とを協調して動作させるシミュレーション装置であり、
前記SWモデルで規定された命令を実行するSWモデル実行部と、
前記SWモデル実行部が実行した命令のうち、前記HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する計上部と、
前記計上部が計上した実行回数に基づき、前記他の命令の実行時間を計算する実行時間計算部と、
前記SWモデルと前記HWモデルとの通信を中継するIF部と、
前記実行時間計算部が計算した実行時間に応じて、前記HW命令を前記IF部が前記HWモデルへ中継するタイミングを遅延させるタイミング調整部と
を備えることを特徴とする。
The simulation apparatus according to the present invention is
A simulation device that operates a SW model (software model) having no time concept and a HW model (hardware model) having a time concept in cooperation with each other,
An SW model execution unit for executing an instruction defined in the SW model;
A counting unit that counts the number of executions of operations generated by other commands executed before the HW command issued to the HW model among the commands executed by the SW model execution unit;
An execution time calculation unit that calculates an execution time of the other instruction based on the number of executions counted by the counting unit;
An IF unit that relays communication between the SW model and the HW model;
And a timing adjustment unit that delays the timing at which the IF unit relays the HW instruction to the HW model according to the execution time calculated by the execution time calculation unit.

この発明に係るシミュレーション装置は、SWモデル実行部が実行した命令の実行回数に基づき、命令の実行時間を計算して、計算した実行時間に応じてHWモデルへの命令の発行を遅延させる。そのため、SWモデルとHWモデルとに特別な修正を必要とすることなく、タイミング精度よくSWモデルとHWモデルとを協調して動作させることが可能である。   The simulation apparatus according to the present invention calculates the execution time of an instruction based on the number of executions of the instruction executed by the SW model execution unit, and delays the issue of the instruction to the HW model according to the calculated execution time. Therefore, the SW model and the HW model can be operated in a coordinated manner with high timing accuracy without requiring any special correction to the SW model and the HW model.

実施の形態1に係るシミュレーション装置100の構成図。1 is a configuration diagram of a simulation apparatus 100 according to Embodiment 1. FIG. 図1に示す各モデルの実装言語の分類を示す図。The figure which shows the classification | category of the mounting language of each model shown in FIG. 動作フローの一例を示す図。The figure which shows an example of an operation | movement flow. 前提条件の下、実機が動作する場合のタイミングチャートを示す図。The figure which shows the timing chart in case a real machine operate | moves under a precondition. シミュレーションの開始から外部IOアクセスが実行されるまでの、実行回数計上部20の動作を示す図。The figure which shows operation | movement of the execution frequency counting part 20 from the start of simulation until an external IO access is performed. 実行時間計算部30の動作を示す図。The figure which shows operation | movement of the execution time calculation part 30. 外部IOモデル15からHWモデル70Aに対するアクセス要求がされた場合のタイミング調整部40と関数/ピンIF変換部50の動作を示す図。The figure which shows operation | movement of the timing adjustment part 40 and the function / pin IF conversion part 50 when the access request with respect to the HW model 70A is made from the external IO model 15. 図5から図7までに基づき説明した一連の動作を示す図。The figure which shows a series of operation | movement demonstrated based on FIGS. 実施の形態2に係るシミュレーション装置100の構成図。FIG. 3 is a configuration diagram of a simulation apparatus 100 according to a second embodiment. 追加タイミング情報計算部80と、他の機能部との関係を示す図。The figure which shows the relationship between the additional timing information calculation part 80 and another function part. 実機の外部IO部分に1段のバスバッファがある場合の動作例を示す図。The figure which shows the operation example in case there exists 1 step | paragraph bus buffer in the external IO part of a real machine. シミュレーション装置100が図11と同等のシミュレーションが行えることを示す図。The figure which shows that the simulation apparatus 100 can perform the simulation equivalent to FIG. 実施の形態1,2に示したシミュレーション装置100のハードウェア構成の例を示す図。FIG. 3 is a diagram showing an example of a hardware configuration of the simulation apparatus 100 shown in the first and second embodiments.

実施の形態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)を備える。
Embodiment 1 FIG.
FIG. 1 is a configuration diagram of a simulation apparatus 100 according to the first embodiment.
The simulation apparatus 100 includes an ISS (Instruction Set Simulator) model 10 (SW model execution unit), an execution count counting unit 20 (counting unit), an execution time calculation unit 30, a reference value storage unit 31, a timing adjustment unit 40, and a function / pin. An IF conversion unit 50 (IF unit), a SW model 60, and a HW model 70 (HW models 70A to 70Z) are provided.

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言語等の高級言語を用いてモデル化されており、シミュレーションにおいて時間概念を持たない。
The ISS model 10 operates the SW model 60 of the system to be verified. The ISS model 10 simulates the execution of the SW model 60 in the same manner as the actual machine of the system to be verified. The ISS model 10 includes a CPU core model 11, a CPU bus model 12, an internal memory / peripheral device model 13, a cache model 14, and an external IO model 15 simulating each component of an actual machine.
The function models 11 to 15 included in the ISS model 10 and the SW model 60 are modeled using a high-level language such as C language, and have no time concept in the simulation.

実行回数計上部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にリセットされる。
The execution count counting unit 20 monitors the behavior of each model included in the ISS model 10 and counts the number of executions of operations generated by the instructions of the SW model 60 executed by the ISS model 10.
The execution frequency counting unit 20 includes, for example, the CPU core model access count 21 for the internal memory / peripheral device model 13, the cache hit / miss count 22 generated in the cache model, and the execution count 23 of each instruction executed in the CPU core model. The number of executions of operations that require processing time in the actual CPU, such as the number of accesses 24 of the CPU core model to the external IO model, is counted.
The number of executions 21 to 24 is counted by subtracting what is hidden when pipeline execution is performed in consideration of an instruction execution sequence, cache hit / miss, and the like. Further, the counted number of executions 21 to 24 is reset to 0 by a counted value reset instruction 51 output from a function / pin IF conversion unit 50 described later.

実行時間計算部30は、実行回数計上部20が計上した各実行回数21〜24の実行回数に対して、後述する基準値記憶部31が記憶した基準値を適用して、実際のCPUでの実行時間32を算出する。
基準値記憶部31は、実行回数計上部20が計上する動作の種類毎に、実際のCPUでの1回当たりの実行時間を記憶した記憶装置である。
The execution time calculation unit 30 applies a reference value stored in a reference value storage unit 31 to be described later to the execution number of each execution number 21 to 24 counted by the execution number counting unit 20, and the actual CPU The execution time 32 is calculated.
The reference value storage unit 31 is a storage device that stores the execution time per time in the actual CPU for each type of operation counted by the execution count counting unit 20.

タイミング調整部40は、実行時間32に基づき、関数/ピンIF変換部50がHWモデル70に対して、命令を発行するタイミングを制御する。   Based on the execution time 32, the timing adjustment unit 40 controls the timing at which the function / pin IF conversion unit 50 issues an instruction to the HW model 70.

関数/ピンIF変換部50は、ISSモデル10からHWモデル70に対するアクセス要求(C言語等の関数の実行)を、HWモデル70とIF(インタフェース)可能なピンの動作に変換する。
関数/ピンIF変換部50は、例えば、SystemCのような、SWモデル60とHWモデル70との両方の記述が可能な言語でモデル化されている。
The function / pin IF conversion unit 50 converts an access request (execution of a function such as C language) from the ISS model 10 to the HW model 70 into an operation of a pin capable of IF (interface) with the HW model 70.
The function / pin IF conversion unit 50 is modeled in a language that can describe both the SW model 60 and the HW model 70, such as SystemC.

SWモデル60は、検証対象となるSWモデルである。SWモデル60は、OSを含んでモデル化されている。SWモデル60は、上述した通り、C言語等の高級言語を用いてモデル化されており、シミュレーションにおいて時間概念を持たない。   The SW model 60 is a SW model to be verified. The SW model 60 is modeled including the OS. As described above, the SW model 60 is modeled using a high-level language such as C language, and has no time concept in the simulation.

HWモデル70は、検証対象となるHWモデルである。HWモデル70は、HDL(Hardware Description Language)でモデル化されており、シミュレーションにおいて、時間概念を持つ。   The HW model 70 is a HW model to be verified. The HW model 70 is modeled by HDL (Hardware Description Language), and has a time concept in the simulation.

図2は、図1に示す各モデルの実装言語の分類を示す図である。
ここでは、ISSモデル10(内部の各モデルも含む)、実行回数計上部20、実行時間計算部30、基準値記憶部31、タイミング調整部40は、C言語で記述されている。関数/ピンIF変換部50は、SystemCで記述されている。HWモデル70は、HDLの1つであるVerilogで記述されている。
なお、この分類は以降の説明を簡単にするために示すものであり、各モデルの実装言語を限定するものではない。
FIG. 2 is a diagram showing the classification of the implementation language of each model shown in FIG.
Here, the ISS model 10 (including internal models), the execution count counting unit 20, the execution time calculation unit 30, the reference value storage unit 31, and the timing adjustment unit 40 are described in C language. The function / pin IF conversion unit 50 is described in SystemC. The HW model 70 is described in Verilog, which is one of HDL.
This classification is shown to simplify the following description, and does not limit the implementation language of each model.

シミュレーション装置100でSWモデル60とHWモデル70がどのように協調動作するのかを説明する。
まず前提条件を説明した上で、前提条件の下、実機とシミュレーション装置100とのそれぞれで、SWモデル60とHWモデル70とが協調動作する様子を説明する。
How the SW model 60 and the HW model 70 cooperate in the simulation apparatus 100 will be described.
First, after explaining the preconditions, a state in which the SW model 60 and the HW model 70 operate in cooperation between the real machine and the simulation apparatus 100 under the preconditions will be described.

<前提条件>
(条件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回の内部メモリアクセスがあるものとする。
なお、これら前提条件は説明を簡易にするために便宜的に定めたものであり、この内容に限定するものではない。
<Prerequisites>
(Condition 1) It is assumed that the SW model 60 is stored in the internal memory of the ISS model 10 / the internal memory of the peripheral device model 13, and the CPU core model 11 reads and executes an instruction from the internal memory.
(Condition 2) The reference value storage unit 31 has a uniform execution time of each instruction executed by the CPU core model 11, 5 an internal memory access time, 1 a cache hit access time, and an external IO model is an ISS model. The time until the access is issued to the outside of 10 is 2, and the time from when the access request is issued from the function / pin IF conversion unit 50 until the HW model 70 returns a response is 10 (unit: ns).
(Condition 3) In order to simplify the explanation of the operation of the SW model 60, the CPU core model 11 executes the nine external instructions after executing nine instructions (instructions A to I) as shown in the operation flow shown in FIG. Assume a situation in which the model 15 is accessed and one instruction (instruction J) is subsequently executed after the access to the external IO model 15 is completed. It is assumed that there are 9 cache accesses (hits) and 1 internal memory access when executing a total of 10 instructions (instructions A to J).
Note that these preconditions are defined for convenience in order to simplify the description, and are not limited to these contents.

<実機での動作>
図4は、前提条件の下、実機が動作する場合のタイミングチャートを示す図である。
図4では、上に書かれている数字は時間[ns]を表す。また、Caは、図3で示した「キャッシュアクセス」を表し、Maは「内部メモリアクセス」、A〜Jは「命令A〜Jの実行」、外部IOは「外部IOアクセス」、HWは「HW動作」を表している。
その結果、実機では前提条件の実行に28[ns]かかる。
<Operation on actual machine>
FIG. 4 is a diagram showing a timing chart when the actual machine operates under the preconditions.
In FIG. 4, the number written above represents time [ns]. Also, Ca represents “cache access” shown in FIG. 3, Ma is “internal memory access”, A to J are “execution of instructions A to J”, external IO is “external IO access”, and HW is “ HW operation ".
As a result, the actual machine takes 28 [ns] to execute the precondition.

<シミュレーション装置100での動作>
図5は、シミュレーションの開始から外部IOアクセスが実行されるまでの、実行回数計上部20の動作を示す図である。
ISSモデル10では、シミュレーションされる命令実行やメモリアクセスは時間概念が無く、順番に実行されるだけである。実行回数計上部20は、これらの動作(命令実行やメモリアクセス)の実行回数を計上するが、各動作の実行順番(シーケンス)を監視する事で、実機ではパイプライン動作の結果として隠蔽される動作については、差し引いて計上する。その結果、図5に示すように、キャッシュアクセスは8回、内部メモリアクセス1回、命令実行1回、外部IOアクセス1回と計上される。
<Operation in Simulation Device 100>
FIG. 5 is a diagram illustrating the operation of the execution count counting unit 20 from the start of the simulation until the external IO access is executed.
In the ISS model 10, instruction execution and memory access to be simulated do not have a time concept and are only executed in order. The execution count counting unit 20 counts the number of executions of these operations (instruction execution and memory access). However, by monitoring the execution order (sequence) of each operation, it is concealed as a result of the pipeline operation in the actual machine. The movement is deducted and counted. As a result, as shown in FIG. 5, the cache access is counted 8 times, internal memory access 1 time, instruction execution 1 time, and external IO access 1 time.

図6は、実行時間計算部30の動作を示す図である。
実行時間計算部30は、実行回数計上部20が計上した各動作の実行回数を入力とし、基準値記憶部31が記憶した各動作の1回当たりの実行時間を引きながら、計上された全動作の実機での実行時間を計算する。今回の例の場合、キャッシュアクセスは8回×1[ns]と、内部メモリアクセス1回×5[ns]と、命令実行1回×1[ns]と、外部IOアクセス1回×2[ns]とを合わせて、15[ns]となる。
FIG. 6 is a diagram illustrating the operation of the execution time calculation unit 30.
The execution time calculation unit 30 inputs the number of executions of each operation counted by the execution count counting unit 20 and subtracts the execution time per operation stored in the reference value storage unit 31 while counting all the counted operations. The execution time on the actual machine is calculated. In this example, the cache access is 8 times × 1 [ns], the internal memory access is 1 time × 5 [ns], the instruction execution is 1 time × 1 [ns], and the external IO access is 1 time × 2 [ns]. ] To 15 [ns].

図7は、外部IOモデル15からHWモデル70Aに対するアクセス要求がされた場合のタイミング調整部40と関数/ピンIF変換部50との動作を示す図である。
外部IOモデル15からのアクセス要求(HW命令)は、まず関数/ピンIF変換部50に発行される(1)。アクセス要求が発行されると関数/ピンIF変換部50は、タイミング調整部40にタイミング調整開始指示を発行する(2)。
FIG. 7 is a diagram illustrating operations of the timing adjustment unit 40 and the function / pin IF conversion unit 50 when an access request is made from the external IO model 15 to the HW model 70A.
An access request (HW instruction) from the external IO model 15 is first issued to the function / pin IF conversion unit 50 (1). When the access request is issued, the function / pin IF conversion unit 50 issues a timing adjustment start instruction to the timing adjustment unit 40 (2).

タイミング調整部40は、関数/ピンIF変換部50が、HWモデル70Aに対してアクセス要求を発行するタイミングを制御する。タイミング調整部40は、タイミング調整開始指示を受けると、内部の時間計測用のタイマ(カウンタ)を用いて、実行時間計算部30が計算した実行時間(ここでは、15[ns])が経過したことを確認する。タイミング調整部40は、実行時間が時間経過すると、関数/ピンIF変換部50に対して動作開始指示を発行する(3)。   The timing adjustment unit 40 controls the timing at which the function / pin IF conversion unit 50 issues an access request to the HW model 70A. When the timing adjustment unit 40 receives the timing adjustment start instruction, the execution time (here, 15 [ns]) calculated by the execution time calculation unit 30 has elapsed using an internal time measurement timer (counter). Make sure. When the execution time elapses, the timing adjustment unit 40 issues an operation start instruction to the function / pin IF conversion unit 50 (3).

動作開始指示を受けた関数/ピンIF変換部50は、外部IOモデル15からのアクセス要求(関数動作)をHWモデル70AとIFが可能なピン動作への変換を開始する(4)。
ここで、関数動作とは、例えば、read(HW_A)といったC言語で定義された関数の動作の事である。read()関数の引数HW_Aは、HWモデル70Aに割り当てられた特別な識別子(例えば、アドレス情報)である。一方、ピン動作とは、HWモデル70Aが動作するために必要な入出力ピンの動作の事で、例えば、アクセス要求発行状態を表すアクセスイネーブル信号、リード/ライトの制御を表すリード/ライト信号、アクセスする番地を表すアドレス信号、リード/ライトデータをやりとりするためのデータ信号等で構成される。
Receiving the operation start instruction, the function / pin IF conversion unit 50 starts converting the access request (function operation) from the external IO model 15 into a pin operation capable of IF with the HW model 70A (4).
Here, the function operation is an operation of a function defined in C language such as read (HW_A), for example. The argument HW_A of the read () function is a special identifier (for example, address information) assigned to the HW model 70A. On the other hand, the pin operation is an input / output pin operation necessary for the operation of the HW model 70A. For example, an access enable signal indicating an access request issue state, a read / write signal indicating read / write control, It consists of an address signal indicating an address to be accessed, a data signal for exchanging read / write data, and the like.

関数/ピンIF変換部50は、関数動作をピン動作に変換してHWモデル70AとIFを行う(5)。
関数/ピンIF変換部50は、ピン動作によって得られた結果、例えば、0xABCDというデータ値を得た場合、これを外部IOモデル15の関数動作(read(HW_A))の応答として返す(6)。また同時に、関数/ピンIF変換部50は、実行回数計上部20に対して計上値リセット指示51を発行して、計上値を0にリセットする(7)。
The function / pin IF conversion unit 50 converts the function operation into a pin operation and performs the IF with the HW model 70A (5).
When the function / pin IF conversion unit 50 obtains, for example, a data value of 0xABCD as a result obtained by the pin operation, it returns this as a response to the function operation (read (HW_A)) of the external IO model 15 (6). . At the same time, the function / pin IF conversion unit 50 issues a count value reset instruction 51 to the execution count counting unit 20 to reset the count value to 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で実行される。
FIG. 8 is a diagram illustrating a series of operations described based on FIGS. 5 to 7.
The upper part of FIG. 8 shows the operation in the actual machine (the same as that shown in FIG. 4), and the lower part of FIG. 8 shows the operation in the simulation apparatus 100.
The ISS model 10 executes up to “external IO access” in the operation flow shown in FIG. In parallel, the execution count counting unit 20 counts the number of instruction executions of the ISS model 10 and the like. When the operation of the ISS model 10 reaches “external IO access”, the external IO model 15 of the ISS model 10 issues an access request (read (HW_A)) to the function / pin IF conversion unit 50. After the access request is issued, the operation of the ISS model 10 (external IO model 15) is in a response waiting state (stopped) until there is a response from the function / pin IF conversion unit 50. On the other hand, the execution time calculation unit 30 calculates the execution time based on the number of executions counted by the execution number counting unit 20 (here, calculated as 15 [ns]). The series of operations up to this point are executed with zero time elapsed in the simulation.

続いて、関数/ピンIF変換部50は、タイミング調整部40に対して、タイミング調整開始指示を発行する。タイミング調整部40は、タイミング調整開始指示を受けると、実行時間計算部30が計算した実行時間(ここでは、15[ns])が経過するのを待った後、関数/ピンIF変換部50に動作開始指示を発行する。動作開始指示が発行されると、関数/ピンIF変換部50は、関数動作(read(HW_A))をピン動作に変換してHWモデル70AとのIFを行う。   Subsequently, the function / pin IF conversion unit 50 issues a timing adjustment start instruction to the timing adjustment unit 40. When the timing adjustment unit 40 receives the timing adjustment start instruction, the timing adjustment unit 40 waits for the execution time (15 [ns] in this case) calculated by the execution time calculation unit 30 to elapse, and then operates the function / pin IF conversion unit 50. Issue start instructions. When the operation start instruction is issued, the function / pin IF conversion unit 50 converts the function operation (read (HW_A)) into a pin operation and performs IF with the HW model 70A.

HWモデル70Aは、関数/ピンIF変換部50が変換したピン動作の結果、10[ns]後にアクセス要求に対する応答を返す。アクセス応答が返ったことにより、アクセス応答待ちで停止していたISSモデル10(外部IOモデル15)が動作を再開する。同時に、関数/ピンIF変換部50は、実行回数計上部20に計上値リセット指示51を発行する。これにより、実行回数計上部20が計上していた全ての動作の実行回数は0にリセットされる。
以降、外部IOアクセスが発生する毎に同じ動作を繰り返す。
The HW model 70A returns a response to the access request after 10 [ns] as a result of the pin operation converted by the function / pin IF conversion unit 50. When the access response is returned, the ISS model 10 (external IO model 15) that has been stopped waiting for the access response resumes its operation. At the same time, the function / pin IF conversion unit 50 issues a count value reset instruction 51 to the execution count counting unit 20. As a result, the number of executions of all operations counted by the execution number counting unit 20 is reset to zero.
Thereafter, the same operation is repeated every time an external IO access occurs.

以上のように動作する事で、図8に示す通り、時間経過概念のないSWモデル60の動作に対して時間経過の概念が付与されてシミュレーションが実行される。そのため、実機と同じ動作タイミングでSW70モデルとHWモデル70とを協調させてシミュレーションを実行することができる。   By operating as described above, as shown in FIG. 8, the concept of time passage is given to the operation of the SW model 60 without the concept of time passage, and the simulation is executed. Therefore, the simulation can be executed by coordinating the SW70 model and the HW model 70 at the same operation timing as the actual machine.

特に、SWモデル60とHWモデル70とに特別な修正をすることなく、タイミング精度よくSWモデル60とHWモデル70とを協調して動作させることが可能である。   In particular, it is possible to operate the SW model 60 and the HW model 70 in a coordinated manner with good timing accuracy without specially modifying the SW model 60 and the HW model 70.

実施の形態2.
実施の形態2では、実機の外部IOに実装されるバスバッファの動作を模擬することについて説明する。
実施の形態2では、実施の形態1と同じ部分については説明を省略し、実施の形態1と異なる部分について説明する。
Embodiment 2. FIG.
In the second embodiment, a description will be given of simulating the operation of a bus buffer mounted on an external IO of a real machine.
In the second embodiment, description of the same parts as those of the first embodiment will be omitted, and different parts from the first embodiment will be described.

図9は、実施の形態2に係るシミュレーション装置100の構成図である。
図9に示すシミュレーション装置100は、追加タイミング情報計算部80(追加タイミング調整部)を備える点が、図1に示す実施の形態1に係るシミュレーション装置100と異なる。追加タイミング情報計算部80は、実機の外部IOに実装されるバスバッファの動作を模擬する。
FIG. 9 is a configuration diagram of the simulation apparatus 100 according to the second embodiment.
The simulation apparatus 100 shown in FIG. 9 is different from the simulation apparatus 100 according to the first embodiment shown in FIG. 1 in that an additional timing information calculation unit 80 (additional timing adjustment unit) is provided. The additional timing information calculation unit 80 simulates the operation of the bus buffer mounted on the external IO of the actual machine.

図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へ応答を返すタイミングが引き延ばされる。
FIG. 10 is a diagram illustrating a relationship between the additional timing information calculation unit 80 and other functional units.
The additional timing information calculation unit 80 receives the HW operation information from the function / pin IF conversion unit 50 (1). The HW operation information is information indicating whether or not the HW model 70 connected to the tip of the function / pin IF conversion unit 50 is performing an access response process. The additional timing information calculation unit 80 has a buffer model 81 (buffer unit) that simulates a buffer included in an external IO portion of an actual machine to be simulated by the simulation apparatus. The additional timing information calculation unit 80 calculates additional timing information from the HW operation information and the buffer model 81, and outputs the additional timing information to the function / pin IF conversion unit 50 (2). The completion of the operation of the function / pin IF conversion unit 50 is extended by the additional timing information, and the timing for returning a response to the external IO model 15 is extended.

図11は、実機の外部IO部分に1段のバスバッファがある場合の動作例を示す図である。
図11では、外部IOはHWに対してライト要求2個(W1とW2)を発行した場合を示しており、説明の前提条件として外部IOのライト要求の発行は最短1サイクルで発行可能とする。また、HWは外部IOのライト要求に対して応答を返すのに5サイクルかかるものとする。
FIG. 11 is a diagram showing an operation example when there is a one-stage bus buffer in the external IO portion of the actual machine.
FIG. 11 shows a case where the external IO issues two write requests (W1 and W2) to the HW. As a precondition for explanation, the external IO write request can be issued in a minimum of one cycle. . It is assumed that the HW takes 5 cycles to return a response to the write request from the external IO.

図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は次の処理を開始する。
Details of the operation of FIG. 11 will be described.
At time 1, the external IO issues a write request (W1) to the HW. At time 2, the HW model 70 starts an operation for the write request (W1). This operation continues until time 6, and the HW cannot accept a new request. On the other hand, since the external IO has one stage of bus buffer, the next operation can be started without waiting for a response to the write request (W1) after issuing the write request (W1). That is, in the first embodiment, when a request is issued from the external IO to the HW, the external ID cannot execute the next operation until there is a response to the request. However, since one bus buffer is provided here, even if one request is issued, the next operation can be started without waiting for a response.
As a result of the external IO starting the next operation, a write request (W2) is issued at time 5. However, since the HW is processing the write request (W1), the start of the write request (W2) is waited until time 7. In other words, a new request has been issued, but the external IO buffer has been used up at time 6, and the next write request cannot be processed. Therefore, the write request (W2) cannot be completed at time 6, and the start of the write request (W2) is extended until time 7.
Subsequently, since the HW has completed the processing of the write request (W1) at the time 7 and the next write request can be accepted, the processing of the write request (W2) that has been waiting to start is started. At the same time, the external IO starts the next process.

図12は、シミュレーション装置100が図11と同等のシミュレーションが行えることを示す図である。
図12では、鍵型の矢印は、図8で説明した「タイミング調整部40による15[ns]経過待ち」と同等の動作を表す。また、斜線で網掛けしている六角形は、図8で説明した「ISSモデル10による命令の実行」、「実行回数計上部20による実行回数計上」「実行時間計算部30による実行時間計算」と同等の動作を表す。
FIG. 12 is a diagram showing that the simulation apparatus 100 can perform a simulation equivalent to FIG.
In FIG. 12, the key-shaped arrow represents an operation equivalent to “waiting for 15 [ns] elapsed by the timing adjustment unit 40” described in FIG. Further, the hexagons shaded with diagonal lines are “execution of instructions by the ISS model 10”, “counting of execution times by the execution number counting unit 20”, and “execution time calculation by the execution time calculating unit 30” described in FIG. Represents the equivalent operation.

時刻1では、関数/ピンIF変換部50の動作により、HWモデル70にライト要求(W1)が発行される。
時刻2では、追加タイミング情報計算部80がバッファ残量(時刻1でライト要求(W1)を受けたので、時刻2ではバッファ残量0)と、HWモデル70の動作状況とを勘案して、追加タイミング情報が必要かどうかを計算する。図12の場合、時刻2の時点ではバッファにライト要求(W1)が入りISSモデル10は次の動作を開始できる状態であるので、追加のタイミング情報は出力されない。
At time 1, a write request (W 1) is issued to the HW model 70 by the operation of the function / pin IF conversion unit 50.
At time 2, the additional timing information calculation unit 80 takes into account the remaining buffer capacity (the write remaining request (W 1) at time 1, so the remaining buffer capacity is 0 at time 2) and the operation status of the HW model 70. Calculate whether additional timing information is needed. In the case of FIG. 12, since the write request (W1) is entered into the buffer at the time 2 and the ISS model 10 is ready to start the next operation, no additional timing information is output.

時刻2では、追加のタイミング情報が出力されないので、関数/ピンIF変換部50は、ISSモデル10の外部IOモデル15に応答を返す。応答が返ることでISSモデル10は動作を再開し、何らかの命令を実行する。実行の結果、ライト要求(W2)が発行されるが、図12の場合ではライト要求(W2)が発行されるまでに3サイクル分(時刻2〜4の分)の動作時間が計上され、タイミング調整部40によりその分の遅延が付加される。時刻5でW2がHWモデル70に発行される。   Since additional timing information is not output at time 2, the function / pin IF conversion unit 50 returns a response to the external IO model 15 of the ISS model 10. When the response is returned, the ISS model 10 resumes operation and executes some instruction. As a result of the execution, a write request (W2) is issued. In the case of FIG. 12, the operation time for 3 cycles (time 2 to 4) is counted until the write request (W2) is issued. The adjustment unit 40 adds a delay. At time 5, W2 is issued to the HW model 70.

時刻6では、バッファ残量が無く、かつライト要求(W1)がまだ処理中であるため、追加タイミング情報が出力される。追加タイミング情報の出力により、関数/ピンIF変換部50は動作の完了を追加タイミング情報が無くなるまで引き延ばし、追加タイミング情報が無くなるまで外部IOモデル15に応答を返さない。   At time 6, since there is no remaining buffer capacity and the write request (W1) is still being processed, additional timing information is output. By outputting the additional timing information, the function / pin IF conversion unit 50 extends the completion of the operation until there is no additional timing information, and does not return a response to the external IO model 15 until there is no additional timing information.

時刻7では、HWモデル70のライト要求(W1)についての処理が完了し、追加タイミング情報が無くなる。これにより、関数/ピンIF変換部50は、ISSモデル10の外部IOモデル15にライト要求(W2)についての応答を返し、ISSモデル10の動作が再開される。   At time 7, processing for the write request (W1) of the HW model 70 is completed, and additional timing information is lost. As a result, the function / pin IF conversion unit 50 returns a response to the write request (W2) to the external IO model 15 of the ISS model 10, and the operation of the ISS model 10 is resumed.

以降、これら動作が繰り返されることで、外部IOモデル15にバッファがある場合に、実機と同等のタイミングで協調シミュレーションを行うことが可能である。   Thereafter, by repeating these operations, when the external IO model 15 has a buffer, it is possible to perform a co-simulation at the same timing as the actual machine.

図13は、実施の形態1,2に示したシミュレーション装置100のハードウェア構成の例を示す図である。
シミュレーション装置100は、コンピュータである。シミュレーション装置100の各要素をプログラムで実現することができる。
シミュレーション装置100のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
FIG. 13 is a diagram illustrating an example of a hardware configuration of the simulation apparatus 100 illustrated in the first and second embodiments.
The simulation apparatus 100 is a computer. Each element of the simulation apparatus 100 can be realized by a program.
As a hardware configuration of the simulation apparatus 100, an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input / output device 905 are connected to the bus.

演算装置901は、プログラムを実行するCPU(Central Processing Unit)等である。外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置等である。主記憶装置903は、例えばRAM(Random Access Memory)等である。通信装置904は、例えば通信ボード等である。入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。   The arithmetic device 901 is a CPU (Central Processing Unit) that executes a program. The external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, a hard disk device, or the like. The main storage device 903 is, for example, a RAM (Random Access Memory). The communication device 904 is, for example, a communication board. The input / output device 905 is, for example, a mouse, a keyboard, a display device, or the like.

プログラムは、通常は外部記憶装置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にファイルとして記憶されている。
The program is normally stored in the external storage device 902, and is loaded into the main storage device 903 and sequentially read into the arithmetic device 901 and executed.
The program is a program that realizes the functions described as the ISS model 10, the execution count counting unit 20, the execution time calculation unit 30, the timing adjustment unit 40, the function / pin IF conversion unit 50, the SW model 60, and the HW model 70. is there.
Furthermore, an operating system (OS) is also stored in the external storage device 902. At least a part of the OS is loaded into the main storage device 903, and the arithmetic device 901 executes the above program while executing the OS.
In the description of the first and second embodiments, the information that the reference value storage unit 31 stores, the ISS model 10, the execution count counting unit 20, the execution time calculation unit 30, the timing adjustment unit 40, the function / pin IF Information described as being output from the conversion unit 50, the SW model 60, and the HW model 70 is stored in the main storage device 903 as a file.

なお、図13の構成は、あくまでもシミュレーション装置100のハードウェア構成の一例を示すものであり、シミュレーション装置100のハードウェア構成は図13に記載の構成に限らず、他の構成であってもよい。   Note that the configuration of FIG. 13 is merely an example of the hardware configuration of the simulation apparatus 100, and the hardware configuration of the simulation apparatus 100 is not limited to the configuration illustrated in FIG. 13 and may be other configurations. .

10 ISSモデル、20 実行回数計上部、30 実行時間計算部、31 基準値記憶部、40 タイミング調整部、50 関数/ピンIF変換部、60 SWモデル、70 HWモデル、80 追加タイミング情報計算部、81 バッファモデル、100 シミュレーション装置。   10 ISS model, 20 execution count counting unit, 30 execution time calculation unit, 31 reference value storage unit, 40 timing adjustment unit, 50 function / pin IF conversion unit, 60 SW model, 70 HW model, 80 additional timing information calculation unit, 81 Buffer model, 100 Simulation device.

Claims (5)

時間概念を持たないSWモデル(ソフトウェアモデル)と、時間概念を持つHWモデル(ハードウェアモデル)とを協調して動作させるシミュレーション装置であり、
前記SWモデルで規定された命令を実行するSWモデル実行部と、
前記SWモデル実行部が実行した命令のうち、前記HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する計上部と、
前記計上部が計上した実行回数に基づき、前記他の命令の実行時間を計算する実行時間計算部と、
前記SWモデルと前記HWモデルとの通信を中継するIF部と、
前記実行時間計算部が計算した実行時間に応じて、前記HW命令を前記IF部が前記HWモデルへ中継するタイミングを遅延させるタイミング調整部と
を備えることを特徴とするシミュレーション装置。
A simulation device that operates a SW model (software model) having no time concept and a HW model (hardware model) having a time concept in cooperation with each other,
An SW model execution unit for executing an instruction defined in the SW model;
A counting unit that counts the number of executions of operations generated by other commands executed before the HW command issued to the HW model among the commands executed by the SW model execution unit;
An execution time calculation unit that calculates an execution time of the other instruction based on the number of executions counted by the counting unit;
An IF unit that relays communication between the SW model and the HW model;
A simulation apparatus comprising: a timing adjustment unit that delays the timing at which the IF unit relays the HW instruction to the HW model according to the execution time calculated by the execution time calculation unit.
前記IF部は、中継したHW命令に対する前記HWモデルの動作が完了すると、前記SWモデル実行部へ応答を返し、
前記SWモデル実行部は、前記IF部から応答が返ると、前記HW命令の後の命令を実行する
ことを特徴とする請求項1に記載のシミュレーション装置。
When the operation of the HW model for the relayed HW command is completed, the IF unit returns a response to the SW model execution unit,
The simulation apparatus according to claim 1, wherein the SW model execution unit executes an instruction subsequent to the HW instruction when a response is returned from the IF unit.
前記シミュレーション装置は、さらに、
動作の種類毎に実行時間の基準値を記憶する基準値記憶部
を備え、
前記計上部は、前記動作の種類毎に、前記動作の実行回数を計上し、
前記実行時間計算部は、前記計上部が計上した前記動作の種類毎の実行回数と、前記基準値記憶部が記憶した基準値とに基づき、前記他の命令の実行時間を計算する
ことを特徴とする請求項1又は2に記載のシミュレーション装置。
The simulation apparatus further includes:
A reference value storage unit that stores a reference value of execution time for each type of operation,
The counting unit counts the number of executions of the operation for each type of the operation,
The execution time calculation unit calculates the execution time of the other instruction based on the number of executions for each type of operation counted by the counting unit and the reference value stored by the reference value storage unit. The simulation apparatus according to claim 1 or 2.
前記シミュレーション装置は、さらに、
前記HW命令が実行された場合に、前記HWモデルの動作が完了するまで、実行された前記HW命令を記憶するバッファ部
を備え、
前記IF部は、前記バッファに空きがある場合には、前記HW命令が実行された場合に、実行された前記HW命令に対する前記HWモデルの動作の完了前に、前記SWモデル実行部へ応答を返し、
前記SWモデル実行部は、前記IF部から応答が返ると、前記HW命令の後の命令を実行する
ことを特徴とする請求項1から3までのいずれかに記載のシミュレーション装置。
The simulation apparatus further includes:
A buffer unit that stores the executed HW instruction until the operation of the HW model is completed when the HW instruction is executed;
The IF unit sends a response to the SW model execution unit before the completion of the operation of the HW model in response to the executed HW instruction when the HW instruction is executed when the buffer is empty. Return,
4. The simulation apparatus according to claim 1, wherein the SW model execution unit executes an instruction subsequent to the HW instruction when a response is returned from the IF unit. 5.
時間概念を持たないSWモデル(ソフトウェアモデル)と、時間概念を持つHWモデル(ハードウェアモデル)とを協調して動作させるシミュレーションプログラムであり、
前記SWモデルで規定された命令を実行するSWモデル実行処理と、
前記SWモデル実行処理で実行した命令のうち、前記HWモデルに対して発行されるHW命令の前に実行された他の命令によって発生する動作の実行回数を計上する計上処理と、
前記計上処理で計上した実行回数に基づき、前記他の命令の実行時間を計算する実行時間計算処理と、
前記SWモデルと前記HWモデルとの通信を中継するIF処理と、
前記実行時間計算処理で計算した実行時間に応じて、前記HW命令を前記IF処理で前記HWモデルへ中継するタイミングを遅延させるタイミング調整処理と
をコンピュータに実行させることを特徴とするシミュレーションプログラム。
A simulation program for operating a SW model (software model) having no time concept and a HW model (hardware model) having a time concept in cooperation with each other,
SW model execution processing for executing an instruction defined in the SW model;
A counting process for counting the number of executions of operations generated by other instructions executed before the HW instruction issued to the HW model among the instructions executed in the SW model execution process;
An execution time calculation process for calculating an execution time of the other instruction based on the number of executions counted in the counting process;
IF processing for relaying communication between the SW model and the HW model;
A simulation program for causing a computer to execute a timing adjustment process for delaying a timing for relaying the HW instruction to the HW model in the IF process according to the execution time calculated in the execution time calculation process.
JP2014043718A 2014-03-06 2014-03-06 Simulation apparatus and simulation program Active JP6249827B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014043718A JP6249827B2 (en) 2014-03-06 2014-03-06 Simulation apparatus and simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014043718A JP6249827B2 (en) 2014-03-06 2014-03-06 Simulation apparatus and simulation program

Publications (2)

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

Family

ID=54202783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014043718A Active JP6249827B2 (en) 2014-03-06 2014-03-06 Simulation apparatus and simulation program

Country Status (1)

Country Link
JP (1) JP6249827B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542397A (en) * 2018-09-29 2019-03-29 中国航空无线电电子研究所 Architecture tools chain integrated approach
WO2019244472A1 (en) * 2018-06-22 2019-12-26 日立オートモティブシステムズ株式会社 Simulation device
WO2020017264A1 (en) * 2018-07-19 2020-01-23 日立オートモティブシステムズ株式会社 Simulation device, method for same, and ecu device

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074214A (en) * 1996-08-30 1998-03-17 Toshiba Corp Hardware/software cooperation simulator and simulation method
JPH1091480A (en) * 1996-09-12 1998-04-10 Nec Corp Simulation device/method for computer program
JP2000035898A (en) * 1998-07-17 2000-02-02 Nec Corp System simulator and system simulating method
JP2000259445A (en) * 1999-03-05 2000-09-22 Nec Corp Cooperative software/hardware simulation method
JP2003022296A (en) * 2001-07-06 2003-01-24 Matsushita Electric Ind Co Ltd Cooperative simulation method and device
JP2005293219A (en) * 2004-03-31 2005-10-20 Handotai Rikougaku Kenkyu Center:Kk Software verification model generation method
JP2006023852A (en) * 2004-07-06 2006-01-26 Handotai Rikougaku Kenkyu Center:Kk Method for creating software validation model
JP2011258045A (en) * 2010-06-10 2011-12-22 Toshiba Corp Simulation device, simulation program, and simulation method
JP2012088951A (en) * 2010-10-20 2012-05-10 Internatl Business Mach Corp <Ibm> Simulation control method, system, and program

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074214A (en) * 1996-08-30 1998-03-17 Toshiba Corp Hardware/software cooperation simulator and simulation method
JPH1091480A (en) * 1996-09-12 1998-04-10 Nec Corp Simulation device/method for computer program
JP2000035898A (en) * 1998-07-17 2000-02-02 Nec Corp System simulator and system simulating method
JP2000259445A (en) * 1999-03-05 2000-09-22 Nec Corp Cooperative software/hardware simulation method
JP2003022296A (en) * 2001-07-06 2003-01-24 Matsushita Electric Ind Co Ltd Cooperative simulation method and device
JP2005293219A (en) * 2004-03-31 2005-10-20 Handotai Rikougaku Kenkyu Center:Kk Software verification model generation method
JP2006023852A (en) * 2004-07-06 2006-01-26 Handotai Rikougaku Kenkyu Center:Kk Method for creating software validation model
JP2011258045A (en) * 2010-06-10 2011-12-22 Toshiba Corp Simulation device, simulation program, and simulation method
JP2012088951A (en) * 2010-10-20 2012-05-10 Internatl Business Mach Corp <Ibm> Simulation control method, system, and program

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019244472A1 (en) * 2018-06-22 2019-12-26 日立オートモティブシステムズ株式会社 Simulation device
JPWO2019244472A1 (en) * 2018-06-22 2021-05-13 日立Astemo株式会社 Simulation equipment
JP7003259B2 (en) 2018-06-22 2022-01-20 日立Astemo株式会社 Simulation equipment
US11977467B2 (en) 2018-06-22 2024-05-07 Hitachi Astemo, Ltd. Simulation device
WO2020017264A1 (en) * 2018-07-19 2020-01-23 日立オートモティブシステムズ株式会社 Simulation device, method for same, and ecu device
CN112400162A (en) * 2018-07-19 2021-02-23 日立汽车系统株式会社 Simulation device and method thereof, and ECU device
JPWO2020017264A1 (en) * 2018-07-19 2021-05-13 日立Astemo株式会社 Simulation device, its method, and ECU device
JP7045458B2 (en) 2018-07-19 2022-03-31 日立Astemo株式会社 Simulation device, its method, and ECU device
CN109542397A (en) * 2018-09-29 2019-03-29 中国航空无线电电子研究所 Architecture tools chain integrated approach

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107346351B (en) Method and system for designing an FPGA based on hardware requirements defined in source code
JP4975544B2 (en) Simulation apparatus and program
US10180850B1 (en) Emulating applications that use hardware acceleration
US20120029900A1 (en) Simulation method and system for simulating a multi-core hardware platform
US9600384B2 (en) System-on-chip verification
US10691580B1 (en) Diagnosing applications that use hardware acceleration through emulation
US9081925B1 (en) Estimating system performance using an integrated circuit
Schliecker et al. Reliable performance analysis of a multicore multithreaded system-on-chip
JP6249827B2 (en) Simulation apparatus and simulation program
Pétrot et al. Cycle precise core based hardware/software system simulation with predictable event propagation
US8954312B2 (en) Hardware emulation proxy for hardware software co-emulation
JP6218645B2 (en) Program analysis apparatus, program analysis method, and program
TW201310241A (en) A full bus transaction level modeling approach for fast and accurate contention analysis
Plyaskin et al. A method for accurate high-level performance evaluation of MPSoC architectures using fine-grained generated traces
WO2018032897A1 (en) Method and device for evaluating packet forwarding performance and computer storage medium
Alali et al. Modeling and simulation of multiprocessor systems MPSoC by SystemC/TLM2
US20130014068A1 (en) Computer-aided design system and methods thereof for merging design constraint files across operational modes
Adir et al. Concurrent generation of concurrent programs for post-silicon validation
Thesing Modeling a system controller for timing analysis
JP5226848B2 (en) Simulation apparatus and program
Wicaksana et al. Hybrid prototyping methodology for rapid system validation in HW/SW co-design
JP2011238137A (en) Performance estimation device
Maillet-Contoz et al. Transaction Level Modeling: An Abstraction Beyond RTL
Ko et al. Hardware-in-the-loop simulation for CPU/GPU heterogeneous platforms
Mavroidis et al. Efficient testbench code synthesis for a hardware emulator system

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