JP5390464B2 - Simulation apparatus, simulation apparatus control method, and program - Google Patents

Simulation apparatus, simulation apparatus control method, and program Download PDF

Info

Publication number
JP5390464B2
JP5390464B2 JP2010101826A JP2010101826A JP5390464B2 JP 5390464 B2 JP5390464 B2 JP 5390464B2 JP 2010101826 A JP2010101826 A JP 2010101826A JP 2010101826 A JP2010101826 A JP 2010101826A JP 5390464 B2 JP5390464 B2 JP 5390464B2
Authority
JP
Japan
Prior art keywords
command
simulation
frequency
clock
unit
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.)
Expired - Fee Related
Application number
JP2010101826A
Other languages
Japanese (ja)
Other versions
JP2011232914A (en
Inventor
孝 青木
晃 小野澤
典彦 前田
悠介 関原
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010101826A priority Critical patent/JP5390464B2/en
Publication of JP2011232914A publication Critical patent/JP2011232914A/en
Application granted granted Critical
Publication of JP5390464B2 publication Critical patent/JP5390464B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、シミュレーション装置、シミュレーション装置の制御方法およびプログラムに関し、特に、複数のシミュレーション処理を協調させてシステムの機能を検証するシミュレーション装置、シミュレーション装置の制御方法およびプログラムに関する。   The present invention relates to a simulation apparatus, a simulation apparatus control method, and a program, and more particularly, to a simulation apparatus, a simulation apparatus control method, and a program that verify a system function by coordinating a plurality of simulation processes.

近年、複数の処理が協働して所望の機能を発揮するシステムの開発において、複数の処理を同時に設計するシステムレベル設計手法が広く用いられている。このようなシステムレベル設計手法では、設計途中の複数の処理を協調動作させる協調シミュレーションを実行し、それぞれの処理の因果関係を検証する必要がある。   In recent years, in the development of a system in which a plurality of processes cooperate to exert a desired function, a system level design method for simultaneously designing a plurality of processes has been widely used. In such a system level design method, it is necessary to execute a collaborative simulation for cooperating a plurality of processes in the middle of design, and to verify the causal relationship of each process.

例えば、1つのチップにプロセッサやメモリ、それら周辺回路を集積し、ハードウェアとソフトウェアとが協働するSoC(System on a Chip)をシステムレベル設計手法を用いて開発する場合、SoCのシステム設計の初期段階では、システムに搭載するプロセッサによる逐次処理を前提とした処理機能とそれらの順序とを定めたシステムの機能モデルが検討され、この機能モデルからシステムに必要なハードウェア部分およびソフトウェア部分の設計が進められる。
この際、協調シミュレーションを実行して、設計途中のハードウェアとソフトウェアとを協調動作させ、これら両者の因果関係の整合性を検証することにより、所望のシステムの設計開発が進められる。
For example, when developing a SoC (System on a Chip) in which a processor, memory, and peripheral circuits are integrated on one chip and hardware and software cooperate, using a system level design method, SoC system design At the initial stage, a system function model that defines processing functions and their order based on sequential processing by the processor installed in the system is examined, and the hardware and software parts required for the system are designed from this function model. Is advanced.
At this time, the design and development of a desired system can be promoted by executing cooperative simulation, causing hardware and software in the middle of design to operate in cooperation, and verifying the consistency of the causal relationship between the two.

従来より、協調シミュレーションとしては、プロセッサや記憶装置、インターフェースを搭載したホストコンピュータにおいて、設計途中のシステムのハードウェアおよびソフトウェアの動作を表すプログラムを実行して、システムのハードウェアとソフトウェアを擬似的に協調動作させ、その両者の因果関係を検証するハードウェア/ソフトウェア協調シミュレーション(以下、「HW/SW協調シミュレーション」という。)が知られている(非特許文献1−2)。   Conventionally, as a co-simulation, in a host computer equipped with a processor, a storage device, and an interface, a program representing the operation of system hardware and software in the middle of design is executed, and the system hardware and software are simulated. There is known a hardware / software co-simulation (hereinafter referred to as “HW / SW co-simulation”) that performs a cooperative operation and verifies the causal relationship between them (Non-Patent Document 1-2).

ここで、HW/SW協調シミュレーションを例に、従来の協調シミュレーションについて、図9〜図11を参照して具体的に説明する。
図9に示すように、HW/SW協調シミュレーションの対象となるシステムの機能モデルは、システムのハードウェア部分による動作モデルを記述したソースコード(以下、「HWソースコード」という。)およびソフトウェア部分による動作モデルを記述したソースコード(以下、「SWソースコード」という。)によって構成される。
HWソースコードは、ハードウェア部分による動作をハードウェア記述言語(SystemCなど)によって記述されたソースコードであり、SWソースコードは、ソフトウェア部分による動作を所定の言語(C言語など)によって記述されたソースコードである。
Here, the conventional cooperative simulation will be specifically described with reference to FIGS. 9 to 11 by taking the HW / SW cooperative simulation as an example.
As shown in FIG. 9, the functional model of the system to be subjected to HW / SW co-simulation is a source code (hereinafter referred to as “HW source code”) describing an operation model by the hardware part of the system and a software part. It is composed of source code describing an operation model (hereinafter referred to as “SW source code”).
The HW source code is a source code in which the operation by the hardware part is described in a hardware description language (SystemC or the like), and the SW source code is an operation in which the software part is described by a predetermined language (C language or the like). Source code.

従来のホストコンピュータによるHW/SW協調シミュレーション処理は、HWソースコードとSWソースコードとをそれぞれコンパイルして生成されたハードウェア部分の動作モデルに対するハードウェアシミュレーションが実行可能なオブジェクトコードと、ソフトウェア部分の動作モデルに対するソフトウェアシミュレーションが実行可能なプロセッサに対する命令語列などのバイナリコードとに基づいてハードウェアシミュレータおよびソフトウェアシミュレータがそれぞれのシミュレーション処理を実行し、それらシミュレーションの結果における因果関係を検証するものである。   The conventional HW / SW co-simulation process by the host computer includes object code capable of executing hardware simulation on an operation model of the hardware part generated by compiling HW source code and SW source code, and software part The hardware simulator and the software simulator execute respective simulation processes based on the binary code such as an instruction word sequence for a processor capable of executing the software simulation for the operation model, and verify the causal relationship in the result of the simulation. .

以下、ホストコンピュータによるハードウェア部分のハードウェアシミュレーションにおける一連の処理を「ハードウェア処理」、ソフトウェア部分のソフトウェアシミュレーションにおける一連の処理を「ソフトウェア処理」と呼び、従来のHW/SW協調シミュレーションの詳細について説明する。   Hereinafter, a series of processing in the hardware simulation of the hardware portion by the host computer is referred to as “hardware processing”, and a series of processing in the software simulation of the software portion is referred to as “software processing”, and details of the conventional HW / SW co-simulation are described. explain.

HW/SW協調シミュレーション装置20は、図10に示すように、ソフトウェアシミュレート実行部210と、ハードウェアシミュレート実行部220と、協調シミュレート実行部230とから構成されている。これらHW/SW協調シミュレーション装置20の構成要素がホストコンピュータに搭載されることによって、HW/SW協調シミュレーション装置20は、ホストコンピュータのプロセッサや記憶装置、インターフェースを用いてHW/SW協調シミュレーションを実行する。   As shown in FIG. 10, the HW / SW co-simulation device 20 includes a software simulation execution unit 210, a hardware simulation execution unit 220, and a co-simulation execution unit 230. By mounting these components of the HW / SW co-simulation apparatus 20 on the host computer, the HW / SW co-simulation apparatus 20 executes the HW / SW co-simulation using the processor, storage device, and interface of the host computer. .

HW/SW協調シミュレーション装置20のソフトウェアシミュレート実行部210は、SWソースコードをコンパイルしてソフトウェアシミュレーションが実行可能なプロセッサに対する命令語列などのバイナリコードを生成し、このバイナリコードに基づいてソフトウェア処理を実行する。
例えば、ISS(Instruction set simulator)などのソフトウェアシミュレータによってバイナリコードから取り出した指令を実行することにより、ソフトウェアの動作をシミュレートする。
また、バイナリコードから取り出した1の指令の処理に要する時間情報は、ISSなどのソフトウェアシミュレータによるシミュレーション処理が実行される際のクロックの周波数により取得することができ、ソフトウェアシミュレーションによりソフトウェアの動作の処理時間を積算できる。
The software simulation execution unit 210 of the HW / SW co-simulation device 20 compiles the SW source code to generate a binary code such as an instruction word sequence for a processor that can execute the software simulation, and performs software processing based on the binary code. Execute.
For example, the operation of the software is simulated by executing a command extracted from the binary code by a software simulator such as ISS (Instruction Set Simulator).
Further, the time information required for processing one command extracted from the binary code can be obtained from the frequency of the clock when the simulation processing by a software simulator such as ISS is executed, and the software operation processing is performed by software simulation. Time can be accumulated.

ハードウェアシミュレート実行部220は、HWソースコードをコンパイルしてハードウェアシミュレーションが実行可能なオブジェクトコードを含んだハードウェアシミュレーションの条件を示す情報であるテストベンチを生成し、このテストベンチに基づいてハードウェア処理を実行する。
例えば、EDA(Electronic Design Automation)ツールなどのハードウェアシミュレータによって、テストベンチに定められた条件に従いオブジェクトコードを実行することにより、ハードウェアの動作をシミュレートする。
また、テストベンチには、オブジェクトコードの実行に要する時間情報が組み込まれており、ハードウェアシミュレーションによりハードウェアの動作の処理時間を積算できる。
The hardware simulation execution unit 220 compiles the HW source code, generates a test bench that is information indicating the conditions of hardware simulation including object code that can be executed by hardware simulation, and based on the test bench Perform hardware processing.
For example, a hardware simulator such as an EDA (Electronic Design Automation) tool is used to simulate the hardware operation by executing the object code in accordance with the conditions defined in the test bench.
The test bench incorporates time information required for executing the object code, and the hardware operation processing time can be accumulated by hardware simulation.

協調シミュレート実行部230は、ソフトウェアシミュレーションが実行されることで積算されるソフトウェアの動作の処理時間と、ハードウェアシミュレーションが実行されることで積算されるハードウェアの動作の処理時間とをそれぞれ監視し、それぞれのシミュレーション処理のタイミングを制御する。
具体的には、協調シミュレート実行部230は、ソフトウェアシミュレート実行部210またはハードウェアシミュレート実行部220によるそれぞれのシミュレーション処理のうち、互いのシミュレーション処理の結果に影響を及ぼすイベントの発生を監視するとともに、ソフトウェアシミュレート実行部210とハードウェアシミュレート実行部220とによるそれぞれのシミュレーション処理をこのイベントの発生に同期させる。
The co-simulation execution unit 230 monitors the processing time of the software operation accumulated by executing the software simulation and the processing time of the hardware operation accumulated by executing the hardware simulation, respectively. The timing of each simulation process is controlled.
Specifically, the co-simulation execution unit 230 monitors the occurrence of an event that affects the result of each simulation process among the respective simulation processes performed by the software simulation execution unit 210 or the hardware simulation execution unit 220. At the same time, the respective simulation processes by the software simulation execution unit 210 and the hardware simulation execution unit 220 are synchronized with the occurrence of this event.

例えば、図11に示すように、協調シミュレート実行部230は、ソフトウェアシミュレート実行部210によるシミュレーション処理のうち、ハードウェアのレジスタ領域へのアクセス命令(以下、「HWレジスタ領域アクセス命令」という。)を実行するイベントの発生を監視して、ソフトウェアシミュレート実行部210とハードウェアシミュレート実行部220とのシミュレーション処理をHWレジスタ領域アクセス命令に同期させる。   For example, as shown in FIG. 11, the co-simulation execution unit 230 includes a hardware register area access instruction (hereinafter referred to as “HW register area access instruction”) in the simulation process performed by the software simulation execution unit 210. ) Is monitored, and the simulation process of the software simulation execution unit 210 and the hardware simulation execution unit 220 is synchronized with the HW register area access instruction.

情報処理学会誌45巻5号(2004年5月,IPSJ-MGN450504)pp.456-463Information Processing Society of Japan, Vol. 45, No. 5 (May 2004, IPSJ-MGN450504) pp.456-463 日経BP社 日経エレクトロニクス 2002年7月29日号(No.827)pp.104-133Nikkei BP Nikkei Electronics July 29, 2002 (No.827) pp.104-133

しかしながら、複数のプログラムのうち、互いに影響を及ぼす指令に同期させてシミュレーションの実行開始および終了のタイミングを制御する従来の協調シミュレーションでは、複数のプログラムのうち、いずれかのプログラムにおける指令のシミュレーション処理の進行状況によっては、他方のプログラムにおけるシミュレーション処理に無用な待機時間を発生させてしまい、シミュレーション効率が低下してしまう場合があった。   However, in the conventional collaborative simulation in which the execution start and end timings of the simulation are controlled in synchronization with commands that affect each other among a plurality of programs, the simulation processing of the commands in any one of the plurality of programs is performed. Depending on the progress, there may be a case where an unnecessary standby time is generated for the simulation process in the other program, and the simulation efficiency is lowered.

例えば、図11に示すようなHW/SW協調シミュレーション処理の場合では、期間3におけるHWシミュレーション処理で実行される指令は、レジスタ領域に保持されるレジスタ値に影響を及ぼす指令である。一方、期間5におけるHWシミュレーション処理で実行される指令は、レジスタ値に影響を及ぼさない処理である。
すなわち、期間3ではHWシミュレーション処理とSWシミュレーション処理の開始と終了とを同期させて実行する必要があるが、期間5では必ずしも同期させる必要がないにもかかわらず、SWシミュレーション処理はHWシミュレーション処理の完了を待たなければならず、無用な待機時間が発生してしまう。
したがって、期間5のHWシミュレーション処理が少ない程、プロセッサによるシミュレーション処理の計算時間を削減できる一方、この期間のHWシミュレーション処理が多いほど計算時間が増大し、シミュレーション効率の低下につながる。
For example, in the case of the HW / SW co-simulation process as shown in FIG. 11, the command executed in the HW simulation process in period 3 is a command that affects the register value held in the register area. On the other hand, the command executed in the HW simulation process in the period 5 is a process that does not affect the register value.
That is, in the period 3, it is necessary to synchronize the start and end of the HW simulation process and the SW simulation process, but in the period 5, the SW simulation process is not necessarily synchronized with the HW simulation process. It is necessary to wait for completion, and unnecessary waiting time occurs.
Therefore, the smaller the HW simulation process in period 5, the more calculation time of the simulation process by the processor can be reduced. On the other hand, the more HW simulation process in this period, the more calculation time increases, leading to a decrease in simulation efficiency.

また、シミュレーション効率の向上のために、設計対象であるハードウェア部分の動作モデルを変更することは、多大な設計コストを浪費するだけではなく、協調シミュレーションを実行する本来の目的である開発効率の向上から逸脱し、協調シミュレーションを用いた検証の意味をなさない。   Also, changing the behavior model of the hardware part that is the design target to improve the simulation efficiency not only wastes a great deal of design cost, but also the development efficiency that is the original purpose of executing the co-simulation. Deviation from improvement does not make sense for verification using co-simulation.

そこで本発明は、上述した問題を解決するためになされたものであり、複数の処理を協調動作させてそれぞれの処置の因果関係を検証するシミュレーション処理において、無用な待機時間を抑制し、シミュレーション効率を向上させることを目的とする。   Therefore, the present invention has been made to solve the above-described problem, and in a simulation process in which a plurality of processes are coordinated to verify the causal relationship of each treatment, unnecessary waiting time is suppressed, and simulation efficiency is improved. It aims at improving.

本発明は、上記の目的を達成するために、コンピュータプログラムに含まれた複数の指令に従って異なる対象の動作をそれぞれシミュレートする複数の演算部と、これら演算部の動作タイミングを制御して前記演算部において実行される前記指令を協調させる協調制御部とを備え、前記演算部の少なくとも1つは、当該演算部が実行する指令に応じてその指令を実行する際の動作クロックを制御するクロック制御部を備えることを特徴とする。   In order to achieve the above object, the present invention provides a plurality of arithmetic units each simulating different target operations according to a plurality of instructions included in a computer program, and controlling the operation timing of these arithmetic units to perform the arithmetic operation. A control unit for coordinating the command executed in the unit, and at least one of the calculation units controls an operation clock when executing the command according to a command executed by the calculation unit It comprises a part.

また、本発明にかかるシミュレーション装置の前記演算部は、前記複数の指令のうち、1の指令が他の指令に基づく動作に対して影響を与える指令であるか否かを識別する指令識別部と、この指令識別部による識別結果に基づいて前記動作クロックの周波数を変更する指令を前記1の指令に追加する指令追加部とを備え、前記クロック制御部は、前記指令追加部によって追加された前記指令に基づいて前記動作クロックの周波数を制御しても良い。   In addition, the calculation unit of the simulation apparatus according to the present invention includes: a command identifying unit that identifies whether one command among the plurality of commands is a command that affects an operation based on another command; A command adding unit that adds a command to change the frequency of the operation clock to the one command based on the identification result by the command identifying unit, and the clock control unit is added by the command adding unit. The frequency of the operation clock may be controlled based on the command.

また、本発明にかかるシミュレーション装置の前記指令識別部は、任意の論理回路における動作モデルを所定の言語で記述された少なくとも1つのハードウェアプログラムと、任意のプロセッサによる機能の動作モデルを所定の言語で記述された少なくとも1つのソフトウェアプログラムとのいずれかにおいて、前記ハードウェアのレジスタに格納されるデータの読み出し完了を示す読出完了指令および書込開始を示す書込開始指令を抽出し、前記指令追加部は、前記指令識別部によって前記読出完了指令および前記書込完了指令が抽出された前記ハードウェアプログラムまたは前記ソフトウェアプログラムに対し、抽出された前記読出完了指令の直後に前記クロックの周波数を予め定めた第1の周波数から任意の第2の周波数に変更させる第1の指令を追加するとともに、抽出された前記書込開始指令の直前に前記クロックの周波数を予め定めた前記第1の周波数へ変更させる第2の指令を追加することにより、前記ハードウェアプログラムと前記ソフトウェアプログラムとが協働するシステムの機能を検証しても良い。   The command identifying unit of the simulation device according to the present invention includes at least one hardware program in which an operation model in an arbitrary logic circuit is described in a predetermined language, and an operation model of a function by an arbitrary processor in a predetermined language. In any one of the at least one software program described in (1), a read completion command indicating completion of reading of data stored in the hardware register and a write start command indicating start of writing are extracted, and the command is added. A predetermined frequency for the hardware program or the software program from which the read completion command and the write completion command have been extracted by the command identification unit immediately after the extracted read completion command. The first frequency is changed to an arbitrary second frequency. And adding a second command for changing the frequency of the clock to the predetermined first frequency immediately before the extracted write start command. The function of the system in cooperation with the software program may be verified.

本発明によれば、コード生成部によって生成されるシミュレーションを実行するためのコードに基づいてシミュレーションを実行する際の検証クロックの周波数を制御することにより、複数のシミュレーション処理を協調させてシステムの機能モデルを検証する協調シミュレーションにおいて、それぞれのシミュレーション処理に合致した検証クロックを設定して協調シミュレーション処理を実行させることができる。
したがって、複数の処理が協働することにより所望の機能を発揮するシステムの機能モデルを検証するシミュレーション処理の無用な待機時間を抑制することができるため、シミュレーション効率を向上させることができる。
According to the present invention, by controlling the frequency of the verification clock when the simulation is executed based on the code for executing the simulation generated by the code generation unit, the functions of the system can be coordinated with a plurality of simulation processes. In the co-simulation that verifies the model, it is possible to set the verification clock that matches each simulation process and execute the co-simulation process.
Therefore, the unnecessary standby time of the simulation process for verifying the function model of the system that exhibits a desired function can be suppressed by the cooperation of a plurality of processes, so that the simulation efficiency can be improved.

本発明の実施の形態におけるHW/SW協調シミュレーションを概念的に説明する図である。It is a figure which illustrates notionally HW / SW cooperation simulation in embodiment of this invention. 本発明の実施の形態にかかるシミュレーション装置の構成を示すブロック図である。It is a block diagram which shows the structure of the simulation apparatus concerning embodiment of this invention. 本発明の実施の形態にかかるシミュレーション装置における演算部の構成を示すブロック図である。It is a block diagram which shows the structure of the calculating part in the simulation apparatus concerning embodiment of this invention. 本発明の実施の形態における指令追加部によって特殊指令が追加されたプログラムコードの一例を示す図である。It is a figure which shows an example of the program code to which the special command was added by the command addition part in embodiment of this invention. 本発明の実施の形態における指令追加部によって特殊指令が追加されたプログラムコードの一例を示す図である。It is a figure which shows an example of the program code to which the special command was added by the command addition part in embodiment of this invention. 本発明の実施の形態にかかるシミュレーション装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the simulation apparatus concerning embodiment of this invention. 本発明の実施の形態にかかるシミュレーション装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the simulation apparatus concerning embodiment of this invention. 本発明の実施の形態にかかるシミュレーション装置における協調シミュレーションの動作シーケンスを示す図である。It is a figure which shows the operation | movement sequence of the cooperative simulation in the simulation apparatus concerning embodiment of this invention. 従来のHW/SW協調シミュレーションを概念的に説明する図である。It is a figure which illustrates the conventional HW / SW cooperation simulation notionally. 従来のHW/SW協調シミュレーション装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the conventional HW / SW co-simulation apparatus. 従来のHW/SW協調シミュレーションの動作を時間経過に沿って概念的に説明する図である。It is a figure which illustrates notionally the operation | movement of the conventional HW / SW cooperative simulation along time passage.

以下、図を参照して本発明の実施の形態について詳細に説明する。
本発明の実施の形態にかかるシミュレーション装置は、複数のプログラムによって表されたシステムについて、それぞれのプログラムの処理動作の因果関係を考慮してその複数のプログラムによる複数のシミュレーション処理を協調動作させることにより、システムの機能を検証するものである。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
A simulation apparatus according to an embodiment of the present invention performs a plurality of simulation processes by a plurality of programs in cooperation with each other in a system represented by a plurality of programs in consideration of the causal relationship between the processing operations of the programs. This is to verify the function of the system.

本実施の形態においては、システムのハードウェア部分の動作モデルを記述したハードウェアプログラムとソフトウェア部分の動作モデルを記述したソフトウェアプログラムとが協働するHW/SW協調シミュレーションを実行するシミュレーション装置を例として説明する。   In the present embodiment, a simulation apparatus that executes HW / SW co-simulation in which a hardware program that describes an operation model of the hardware part of the system and a software program that describes the operation model of the software part is taken as an example. explain.

図1は、本発明の実施の形態にかかるシミュレーション装置によって実行されるHW/SW協調シミュレーションについて、概念的に説明する図である。
図1に示すように、HW/SW協調シミュレーションの対象となるシステムの機能モデルは、ハードウェア部分の動作モデルをハードウェア記述言語(SystemCなど)で記述したプログラムのソースコード(以下、「HWソースコード」という。)と、ソフトウェアの動作モデルを所定のプログラム言語(C言語など)で記述したプログラムのソースコード(以下、「SWソースコード」という。)とによって構成される。
FIG. 1 is a diagram conceptually illustrating the HW / SW cooperative simulation executed by the simulation apparatus according to the embodiment of the present invention.
As shown in FIG. 1, the function model of a system to be subjected to HW / SW co-simulation is a program source code (hereinafter referred to as “HW source”) in which an operation model of a hardware part is described in a hardware description language (such as SystemC). And a program source code (hereinafter referred to as “SW source code”) in which a software operation model is described in a predetermined program language (C language or the like).

例えば、ホストコンピュータによってHW/SW協調シミュレーションを実行する場合、ホストコンピュータは、このHWソースコードやSWソースコードをそれぞれコンパイルして、ハードウェアシミュレーションが実行可能なオブジェクトコードを含むテストベンチやソフトウェアシミュレーションが実行可能なプロセッサに対する命令語列などのバイナリコードといった実行コードを生成する。   For example, when the HW / SW co-simulation is executed by the host computer, the host computer compiles the HW source code and SW source code, respectively, and executes a test bench or software simulation including object code that can execute hardware simulation. An execution code such as a binary code such as an instruction word sequence for an executable processor is generated.

本実施の形態にかかるシミュレーション装置の構成および機能について、図2に示すブロック図を参照して説明する。
図2に示すように、本実施の形態にかかるシミュレーション装置10は、演算部110−1〜110−nと協調制御部120とから構成されいる。
演算部110−1〜110−nは、コンピュータプログラムに含まれた複数の指令に従って異なる対象の動作のシミュレートする第1のシミュレーションを実行する。
第1のシミュレーションは、例えば、HWソースコードにおける処理動作を検証するハードウェアシミュレーションや、SWソースコードにおける処理動作を検証するソフトウェアシミュレーションとすることができる。
The configuration and function of the simulation apparatus according to this embodiment will be described with reference to the block diagram shown in FIG.
As shown in FIG. 2, the simulation apparatus 10 according to the present embodiment includes operation units 110-1 to 110-n and a cooperative control unit 120.
The calculation units 110-1 to 110-n execute a first simulation that simulates the operation of different objects in accordance with a plurality of commands included in the computer program.
The first simulation can be, for example, a hardware simulation that verifies the processing operation in the HW source code, or a software simulation that verifies the processing operation in the SW source code.

協調制御部120は、2以上の演算部110−1〜110−nの動作タイミングを制御して演算部110−1〜110−nにおいて実行されるそれぞれの第1のシミュレーションを協調させ、複数の指令が協働することにより発揮されるシステムの動作を検証する第2のシミュレーションを実行する。
第2のシミュレーションは、例えば、ハードウェアシミュレーションとソフトウェアシミュレーションとを協調動作させたHW/SW協調シミュレーションとすることができる。
The cooperative control unit 120 controls the operation timing of the two or more arithmetic units 110-1 to 110-n to coordinate the first simulations executed in the arithmetic units 110-1 to 110-n, and A second simulation for verifying the operation of the system exhibited by the cooperation of the commands is executed.
The second simulation can be, for example, a HW / SW cooperative simulation in which a hardware simulation and a software simulation are cooperatively operated.

また、シミュレーション装置10の演算部110−nは、コード生成部111−nとプログラム検証実行部112−nとクロック制御部113−nとから構成されている。
コード生成部111−nは、コンピュータプログラムに含まれる指令をプロセッサに実行させる実行コードをそのコンピュータプログラムに含まれる指令に基づいて生成する。
演算部110−nのプログラム検証実行部112−nは、コード生成部111−nによって生成された実行コードに基づいて第1のシミュレーションを実行する。
演算部110−nのクロック制御部113−nは、プログラム検証実行部112−nによって第1のシミュレーションが実行される際の動作クロックの周波数をコード生成部111−nによって生成された実行コードに基づいて制御する。
The arithmetic unit 110-n of the simulation apparatus 10 includes a code generation unit 111-n, a program verification execution unit 112-n, and a clock control unit 113-n.
The code generation unit 111-n generates an execution code that causes the processor to execute a command included in the computer program based on the command included in the computer program.
The program verification execution unit 112-n of the calculation unit 110-n executes the first simulation based on the execution code generated by the code generation unit 111-n.
The clock control unit 113-n of the calculation unit 110-n sets the frequency of the operation clock when the first simulation is executed by the program verification execution unit 112-n to the execution code generated by the code generation unit 111-n. Control based on.

ここで、演算部110−nの構成および演算部110−nによる第1のシミュレーションの実行機能について、図3〜図5を参照してさらに詳しく説明する。
図3に示すように、演算部110−nのコード生成部111−nは、さらに、指令識別部111−n−1と、指令追加部111−n−2と、コンパイル部111−n−3とから構成されている。
Here, the configuration of the calculation unit 110-n and the execution function of the first simulation by the calculation unit 110-n will be described in more detail with reference to FIGS.
As shown in FIG. 3, the code generation unit 111-n of the calculation unit 110-n further includes a command identification unit 111-n-1, a command addition unit 111-n-2, and a compilation unit 111-n-3. It consists of and.

指令識別部111−n−1は、複数のコンピュータプログラムのうち、プログラム検証実行部112−nによる第1のシミュレーションの実行対象である1のコンピュータプログラムに含まれる指令に対し、他のコンピュータプログラムの指令による動作に影響を与える指令であるか否かを識別する。
例えば、SWソースコードに記述されたハードウェア部分のレジスタへアクセスする指令(HWレジスタアクセス指令)は、HWソースコードによる処理動作、すなわち、ハードウェア部分の動作に影響を与える指令であることから、指令識別部111−n−1は、SWソースコードに記述されたHWレジスタアクセス指令を他の指令と識別する。
The command identifying unit 111-n-1 receives other commands from the computer program in response to a command included in one computer program that is the execution target of the first simulation by the program verification execution unit 112-n. It is identified whether or not the command affects the operation by the command.
For example, a command for accessing a register of the hardware part described in the SW source code (HW register access command) is a command that affects the processing operation by the HW source code, that is, the operation of the hardware part. The command identifying unit 111-n-1 identifies the HW register access command described in the SW source code from other commands.

指令追加部111−n−2は、指令識別部111−n−1によるコンピュータプログラムの指令に対する識別結果に基づいて、プログラム検証実行部112−nによる第1のシミュレーションを実行する際の動作クロックの周波数の変更指令である特殊指令を指令識別部111−n−1によって識別されたコンピュータプログラムに追加する。
ここで、指令追加部111−n−2による特殊指令を追加したSWソースコードの一例を図4,5に示す。
The command adding unit 111-n-2 generates an operation clock for executing the first simulation by the program verification execution unit 112-n based on the identification result for the command of the computer program by the command identifying unit 111-n-1. A special command that is a frequency change command is added to the computer program identified by the command identifying unit 111-n-1.
Here, an example of the SW source code to which the special command by the command adding unit 111-n-2 is added is shown in FIGS.

図4では、HWレジスタアクセス指令のうち、レジスタ書込指令(b)が指令識別部111−n−1によって識別され、このレジスタ書込指令(b)の直前に指令追加部111−n−2によって動作クロックを制御する指令(a)を実行させる特殊指令(c)が追加されている。
また、図5では、HWレジスタアクセス指令のうち、レジスタ読出指令(d)が指令識別部111−n−1によって識別され、このレジスタ読出指令(d)の直後に指令追加部111−n−2によって動作クロックを制御する指令(a)を実行させる特殊指令(e)が追加されている。
In FIG. 4, among the HW register access commands, the register write command (b) is identified by the command identifying unit 111-n-1, and the command adding unit 111-n-2 is immediately before this register write command (b). A special command (c) for executing the command (a) for controlling the operation clock is added.
In FIG. 5, among the HW register access commands, the register read command (d) is identified by the command identifying unit 111-n-1, and the command adding unit 111-n-2 is immediately after the register read command (d). The special command (e) for executing the command (a) for controlling the operation clock is added.

コンパイル部111−n−3は、指令追加部111−n−2によって特殊指令が追加されたコンピュータプログラムをコンパイルすることにより、プログラム検証実行部112−nによる第1のシミュレーションを実行するための実行コードを生成する。
例えば、特殊指令が追加されたSWソースコードをコンパイルし、このSWソースコードに基づく動作をプロセッサに実行させる命令語列であるバイナリコードを生成してソフトウェアシミュレーションを実行可能にする。
The compiling unit 111-n-3 performs execution for executing the first simulation by the program verification execution unit 112-n by compiling the computer program to which the special command is added by the command adding unit 111-n-2. Generate code.
For example, the SW source code to which the special instruction is added is compiled, and a binary code that is an instruction word sequence that causes the processor to execute an operation based on the SW source code is generated to enable software simulation.

プログラム検証実行部112−nは、コンパイル部111−n−3によって生成された実行コードに基づいて第1のシミュレーションを実行し、クロック制御部113−nは、その実行コードに追加されている特殊指令に基づいてと第1のシミュレーションを実行する際の動作クロックの周波数を制御する。   The program verification execution unit 112-n executes the first simulation based on the execution code generated by the compilation unit 111-n-3, and the clock control unit 113-n includes the special code added to the execution code. Based on the command, the frequency of the operation clock at the time of executing the first simulation is controlled.

具体的には、図4または図5に示すような特殊指令が追加されたSWソースコードをコンパイル部111−n−3がコンパイルしてソフトウェアシミュレーションが実行可能な実行コード(ここではバイナリコード)が生成され、プログラム検証実行部112−nは、このバイナリコードをプロセッサに実行させることによりSWソースコードにおける処理動作を検証する第1のシミュレーションを実行する。
その際、コンパイル部111−n−3によって生成されたバイナリコードに含まれる特殊指令(c),(e)をクロック制御部113−nが読み取ると、クロック制御部113−nは、この特殊指令に従って動作クロックの周波数を制御する指令(a)を実行することにより、プログラム検証実行部112−nによる第1のシミュレーションの検証スピードを制御する。
Specifically, an execution code (here, binary code) that can be compiled by the compiling unit 111-n-3 by executing the SW simulation by adding a special command as shown in FIG. The generated program verification execution unit 112-n executes a first simulation for verifying the processing operation in the SW source code by causing the processor to execute the binary code.
At this time, when the clock control unit 113-n reads the special commands (c) and (e) included in the binary code generated by the compiling unit 111-n-3, the clock control unit 113-n The verification speed of the first simulation by the program verification execution unit 112-n is controlled by executing the command (a) for controlling the frequency of the operation clock according to the above.

例えば、図4のSWソースコードに対応したバイナリコードに基づいてソフトウェアシミュレーション処理の動作クロックを制御する場合、特殊指令(c)は、レジスタ書込指令(b)の直前に追加された特殊指令であり、すなわち、ハードウェアの動作に影響を与える指令であるレジスタ書込指令の開始を示す特殊指令である。
よって、特殊指令(c)に従って呼び出される動作クロックの周波数を制御する指令(a)は、動作クロックの周波数をハードウェアシミュレーション処理と協調させる周波数である予め設定されている第1の周波数へ制御する。
For example, when controlling the operation clock of the software simulation process based on the binary code corresponding to the SW source code of FIG. 4, the special command (c) is a special command added immediately before the register write command (b). Yes, that is, a special command indicating the start of a register write command that is a command that affects the operation of the hardware.
Therefore, the command (a) for controlling the frequency of the operation clock called in accordance with the special command (c) controls the frequency of the operation clock to a first frequency set in advance that is a frequency for coordinating with the hardware simulation process. .

また、図5のSWソースコードに対応したバイナリコードに基づいてソフトウェアシミュレーション処理の動作クロックを制御する場合、特殊指令(e)は、レジスタ読出指令(d)の直後に追加された特殊指令であり、すなわち、レジスタ読出が完了したことによりハードウェアの動作に影響がないことを示す特殊指令である。よって、特殊指令(e)に従って呼び出される動作クロックの周波数を制御する指令(a)は、動作クロックの周波数を任意の周波数である第2の周波数へ制御する。第2の周波数は、第1の周波数を任意の定数で逓倍した周波数とすることができる。
なお、上述した本実施のシミュレーション装置10の各構成要素は、シミュレーション装置10に搭載されたCPUやメモリ、インターフェースからなるコンピュータにコンピュータプログラム(ソフトウエア)をインストールすることによって実現され、上述したシミュレーション装置10の各種機能は、上記コンピュータの各種ハードウェア資源と上記コンピュータプログラムとが協働することによって実現される。
When the operation clock of the software simulation process is controlled based on the binary code corresponding to the SW source code of FIG. 5, the special command (e) is a special command added immediately after the register read command (d). That is, this is a special command indicating that the hardware operation is not affected by the completion of register reading. Therefore, the command (a) for controlling the frequency of the operation clock called in accordance with the special command (e) controls the frequency of the operation clock to a second frequency which is an arbitrary frequency. The second frequency can be a frequency obtained by multiplying the first frequency by an arbitrary constant.
Each component of the simulation apparatus 10 of the present embodiment described above is realized by installing a computer program (software) in a computer including a CPU, a memory, and an interface mounted on the simulation apparatus 10, and the simulation apparatus described above. The various functions of 10 are realized by the cooperation of various hardware resources of the computer and the computer program.

次に、本実施のシミュレーション装置10の複数のプログラムに対する協調シミュレーションの動作について、図6,7に示すフローチャートを参照して説明する。
図6に示すように、シミュレーション装置10は、シミュレーション対象である複数のプログラムが入力されると(S11)、それぞれのプログラムに含まれる指令が他の指令の動作に影響を与える指令であるか否かを識別する(S12)。
Next, the operation of the cooperative simulation for a plurality of programs of the simulation apparatus 10 of the present embodiment will be described with reference to the flowcharts shown in FIGS.
As shown in FIG. 6, when a plurality of programs to be simulated are input to the simulation apparatus 10 (S11), whether or not the commands included in each program are commands that affect the operation of other commands. Is identified (S12).

互いの動作に影響を与える指令が識別されると、識別された指令に応じて特殊指令をそれぞれのプログラムに追加して(S13)、この特殊指令を追加したプログラムをプロセッサに実行させる実行コードを生成する(S14)。   When a command affecting each other's operation is identified, a special command is added to each program in accordance with the identified command (S13), and an execution code for causing the processor to execute the program with the special command added is executed. Generate (S14).

引き続き図7に示すように、シミュレーション装置10は、生成された実行コードに基づいて、複数のプログラムに対する協調シミュレーションを開始し(S21)、実行コードに特殊指令を読み取ると、この特殊指令の種別を判定する(S22)。
実行コードに含まれる特殊指令は、複数のプログラムに含まれる任意の指令による動作が互いの動作に影響を与える指令が開始される、または、終了したことを示すものである。この互いのプログラムの動作に影響を与える指令が開始することを示す特殊指令を「第1の特殊指令」とし、その指令が終了したことを示す特殊指令を「第2の特殊指令」とする。
Subsequently, as shown in FIG. 7, the simulation apparatus 10 starts cooperative simulation for a plurality of programs based on the generated execution code (S21). When the special instruction is read in the execution code, the type of the special instruction is set. Determine (S22).
The special command included in the execution code indicates that the operation that the operation according to the arbitrary command included in the plurality of programs affects each other's operation is started or ended. A special command indicating the start of a command that affects the operation of each other program is referred to as a “first special command”, and a special command indicating the completion of the command is referred to as a “second special command”.

シミュレーション装置10は、実行コードから特殊指令を読み取った後、特殊指令の種別を判別した結果、第1の特殊指令であった場合(S22で「第1の特殊指令」)、少なくとも1つのプログラムに対するシミュレーションの動作クロックの周波数を予め設定されている協調シミュレーションを実行する際の動作クロック周波数に設定する。
一方、特殊指令の種別を判別した結果、第2の特殊指令であった場合(S22で「第2の特殊指令」)、少なくとも1つのプログラムに対するシミュレーションの動作クロックの周波数を、任意の周波数である第2の周波数へ制御する。第2の周波数は、第1の周波数を任意の定数で逓倍した周波数とすることができる。
If the simulation apparatus 10 reads the special command from the execution code and then determines the type of the special command, the simulation apparatus 10 determines that the first special command ("first special command" in S22) corresponds to at least one program. The frequency of the simulation operation clock is set to the preset operation clock frequency when executing the cooperative simulation.
On the other hand, as a result of determining the type of the special command, if it is the second special command (“second special command” in S22), the frequency of the simulation operation clock for at least one program is an arbitrary frequency. Control to the second frequency. The second frequency can be a frequency obtained by multiplying the first frequency by an arbitrary constant.

動作クロックの周波数の設定を完了すると、シミュレーション装置10は、実行コードに基づくシミュレーションを終了させるのか否かを判定する(S25)。引き続き協調シミュレーションを実行する場合には(S25で「NO」)、実行コードに基づいて協調シミュレーションを継続し、ユーザによる強制的なシミュレーションの終了操作や実行コードの指令などからのシミュレーションの終了指示がある場合(S25で「YES」)、シミュレーション装置10は協調シミュレーションを終了する。   When the setting of the frequency of the operation clock is completed, the simulation apparatus 10 determines whether or not to end the simulation based on the execution code (S25). When the co-simulation is to be continued (“NO” in S25), the co-simulation is continued based on the execution code, and a simulation end instruction is issued from the user forcibly ending the simulation or an instruction of the execution code. In some cases (“YES” in S25), the simulation apparatus 10 ends the cooperative simulation.

ここで、ハードウェアとソフトウェアとが協働するシステムにおいて、ハードウェア部分の動作モデルを記述したハードウェアプログラムとソフトウェア部分の動作モデルを記述したソフトウェアプログラムとをプロセッサに実行させることによりシステムの機能を擬似的に動作させてシミュレートするHW/SW協調シミュレーションを一例に、シミュレーション装置10の動作について図8を参照して詳細に説明する。   Here, in a system in which hardware and software cooperate, the function of the system is achieved by causing a processor to execute a hardware program describing an operation model of the hardware part and a software program describing the operation model of the software part. The operation of the simulation apparatus 10 will be described in detail with reference to FIG. 8, taking as an example a HW / SW co-simulation that is simulated by operating it in a pseudo manner.

図8に示すように、シミュレーション装置10の演算部110−1は、システムのソフトウェア部分のSWソースコードから、演算部110−2は、システムのハードウェア部分のHWソースコードから、それぞれ互いの動作に影響を与える指令に応じた特殊指令を追加した実行コードを生成する(S101)。
実行コードの生成の後、演算部110−1,110−2は、予め設定されているHW/SW協調シミュレーションの動作クロックで実行コードに基づいたソフトウェアシミュレーションとハードウェアシミュレーションとを開始する(S102)。ここで、予め設定されているHW/SW協調シミュレーションの動作クロックの周波数を第1の周波数とする。
As shown in FIG. 8, the calculation unit 110-1 of the simulation apparatus 10 operates from the SW source code of the software part of the system, and the calculation unit 110-2 operates from the HW source code of the hardware part of the system. An execution code to which a special command corresponding to the command that affects is added is generated (S101).
After the execution code is generated, the arithmetic units 110-1 and 110-2 start software simulation and hardware simulation based on the execution code with a preset operation clock of the HW / SW co-simulation (S102). . Here, the frequency of the preset operation clock of the HW / SW co-simulation is set as the first frequency.

演算部110−1,110−2によるソフトウェアシミュレーションとハードウェアシミュレーションとが開始されると、協調制御部120は、これらのシミュレーション処理を監視してシミュレーション処理の結果や動作タイミングの同期を図る(S103)。   When the software simulation and the hardware simulation by the arithmetic units 110-1 and 110-2 are started, the cooperative control unit 120 monitors these simulation processes and synchronizes the results of the simulation processes and the operation timing (S103). ).

演算部110−1がソフトウェアシミュレーションの実行コードからHWレジスタアクセス指令のうち、読出完了を示す特殊指令を読み取ると(S104)、演算部110−1は、動作クロックの周波数を予め設定されている第1の周波数から第2の周波数へ設定する(S105)。ここで、第2の周波数は、第1の周波数に任意の定数mで逓倍した周波数とする。   When computing unit 110-1 reads a special command indicating completion of reading from the HW register access command from the execution code of the software simulation (S104), computing unit 110-1 sets the frequency of the operation clock in advance. The first frequency is set to the second frequency (S105). Here, the second frequency is a frequency obtained by multiplying the first frequency by an arbitrary constant m.

動作クロックの周波数が設定し直された後、再び演算部110−1,110−2は、新たに設定した動作クロックで実行コードに基づいたソフトウェアシミュレーションとハードウェアシミュレーションとを継続し(S106)、協調制御部120によってこれらのシミュレーション処理が監視されシミュレーション処理の結果や動作タイミングの同期が図られる(S107)。ただし、上記のS106で実行されるソフトウェアの動作およびハードウェアの動作は互いに影響を与えない動作であるため、協調制御部120は、それぞれのシミュレーション処理の監視のみ実行する。   After the frequency of the operation clock is reset, the arithmetic units 110-1 and 110-2 again perform software simulation and hardware simulation based on the execution code with the newly set operation clock (S106). The cooperative control unit 120 monitors these simulation processes and synchronizes the results of the simulation processes and the operation timing (S107). However, since the software operation and the hardware operation executed in S <b> 106 are operations that do not affect each other, the cooperative control unit 120 executes only the monitoring of each simulation process.

演算部110−1がソフトウェアシミュレーションの実行コードからHWレジスタアクセス指令のうち、書込開始を示す特殊指令を読み取ると(S108)、演算部110−1は、動作クロックの周波数を設定されている第2の周波数から予め設定されているHW/SW協調シミュレーションの動作クロック周波数である第1の周波数へ設定する(S109)。   When the arithmetic unit 110-1 reads a special command indicating the start of writing from the HW register access command from the execution code of the software simulation (S108), the arithmetic unit 110-1 is set with the frequency of the operation clock. The first frequency, which is the operation clock frequency of the HW / SW co-simulation set in advance, is set from the frequency of 2 (S109).

動作クロックの周波数が再び設定し直された後、演算部110−1,110−2は、新たに設定した動作クロックで実行コードに基づいたソフトウェアシミュレーションとハードウェアシミュレーションとを継続し(S110)、協調制御部120によってこれらのシミュレーション処理が監視されシミュレーション処理の結果や動作タイミングの同期が図られる(S111)。
ここで、上記のS110で実行されるソフトウェアの動作およびハードウェアの動作は、互いに影響を与える動作であるため、協調制御部120は、それぞれのシミュレーション処理を監視するとともに、それぞれのシミュレーション結果を互いに反映させそれぞれのシミュレーションの動作タイミングの同期を図る。
After the frequency of the operation clock is set again, the arithmetic units 110-1 and 110-2 continue the software simulation and the hardware simulation based on the execution code with the newly set operation clock (S110). The cooperative control unit 120 monitors these simulation processes and synchronizes the results of the simulation processes and the operation timing (S111).
Here, since the software operation and the hardware operation executed in S110 described above are operations that affect each other, the cooperative control unit 120 monitors each simulation process and outputs each simulation result to each other. Reflect the operation timing of each simulation.

よって、ホストコンピュータによって上述の特殊指令が追加されたHWソースコードとSWソースコードとをコンパイルして生成された実行コードに基づいて、本実施の形態にかかるシミュレーション装置10は、それぞれハードウェアシミュレータとソフトウェアシミュレータにハードウェアシミュレーション処理とソフトウェアシミュレーション処理とを実行させ、両者のシミュレーション結果における因果関係を検証する。
このとき、本実施の形態にかかるシミュレーション装置は、生成された実行コードに追加されている特殊指示に基づいてハードウェアシミュレータまたはソフトウェアシミュレータの動作クロックの周波数を制御し、それぞれのシミュレーション処理に応じた検証スピードでシミュレーション処理を実行する。
Therefore, based on the execution code generated by compiling the HW source code and the SW source code to which the special command is added by the host computer, the simulation apparatus 10 according to the present embodiment includes a hardware simulator, The software simulator executes hardware simulation processing and software simulation processing, and verifies the causal relationship between the simulation results.
At this time, the simulation apparatus according to the present embodiment controls the frequency of the operation clock of the hardware simulator or software simulator based on the special instruction added to the generated execution code, and according to each simulation process The simulation process is executed at the verification speed.

このように、本実施の形態によれば、複数のプログラムが協働するシステムの動作をシミュレートする場合に、プログラムに含まれる指令の動作が互いのプログラムの動作に影響を与えるか否かを識別することにより、影響を与える指令を実行する時には複数の指令の実行タイミングと実行速度を同期させ、影響を与えない指令を実行する時には複数の指令の実行速度をそれぞれの指令に応じて設定することができる。
したがって、複数のプログラムが協働するシステムのシミュレーション処理において、無用な待ち時間を抑制することができ、シミュレーション効率を向上させることができる。
As described above, according to the present embodiment, when simulating the operation of a system in which a plurality of programs cooperate, it is determined whether or not the operation of the command included in the program affects the operation of each program. By identifying, the execution timing and execution speed of multiple commands are synchronized when executing commands that have an effect, and the execution speed of multiple commands is set according to each command when executing commands that do not affect be able to.
Therefore, useless waiting time can be suppressed in simulation processing of a system in which a plurality of programs cooperate, and simulation efficiency can be improved.

SoCなどの大規模なLSIの開発設計を実施する際の開発環境であるホストコンピュータに搭載されるシステムレベル設計ツールとして利用可能である。   It can be used as a system level design tool mounted on a host computer, which is a development environment when large-scale LSI development design such as SoC is performed.

10,20…シミュレーション装置、110−1〜110−n…演算部、111−1〜111−n…コード生成部、112−1〜112−n…プログラム検証実行部、113−1〜113−n…動作クロック制御部、111−n−1…指令識別部、113−n−1…指令識別部、113−n−1…コンパイル部、120…協調制御部、210…ソフトウェアシミュレート実行部、220…ハードウェアシミュレート実行部、230…協調シミュレート実行部。   DESCRIPTION OF SYMBOLS 10,20 ... Simulation apparatus, 110-1 to 110-n ... Operation part, 111-1 to 111-n ... Code generation part, 112-1 to 112-n ... Program verification execution part, 113-1 to 113-n ... Operation clock control unit, 111-n-1 ... Command identification unit, 113-n-1 ... Command identification unit, 113-n-1 ... Compilation unit, 120 ... Cooperation control unit, 210 ... Software simulation execution unit, 220 ... Hardware simulation execution unit, 230 ... Co-simulation execution unit.

Claims (3)

コンピュータプログラムに含まれた複数の指令にしたがって異なる対象の動作をそれぞれシミュレートする複数の演算部と、
これら演算部の動作タイミングを制御して前記演算部において実行される前記指令を協調させる協調制御部と
を備え、
前記演算部の少なくとも1つは、
前記複数の指令のうち、1の指令がハードウェア部分の動作に影響を与える指令であるか否かを識別する指令識別部と、
この指令識別部による識別結果に基づいて前記動作クロックの周波数を変更する指令を前記1の指令に追加する指令追加部と、
当該演算部が実行する指令に応じてその指令を実行する際の動作クロックを制御するクロック制御部
を備え
前記指令識別部は、
任意の論理回路における動作モデルを所定の言語で記述された少なくとも1つのハードウェアプログラムと、任意のプロセッサによる機能の動作モデルを所定の言語で記述された少なくとも1つのソフトウェアプログラムとのいずれかにおいて、前記ハードウェアのレジスタに格納されるデータの読み出し完了を示す読出完了指令および書き込み開始を示す書込開始指令を抽出し、
前記指令追加部は、
前記指令識別部によって前記読出完了指令および前記書込完了指令が抽出された前記ハードウェアプログラムまたは前記ソフトウェアプログラムに対し、抽出された前記読出完了指令の直後に前記クロックの周波数を予め定めた第1の周波数から任意の第2の周波数に変更させる第1の指令を追加するとともに、抽出された前記書込開始指令の直前に前記クロックの周波数を予め定めた前記第1の周波数へ変更させる第2の指令を追加し、
前記クロック制御部は、
前記指令追加部によって追加された前記指令に基づいて前記動作クロックの周波数を制御する
ことを特徴とするシミュレーション装置。
A plurality of arithmetic units each simulating different target operations according to a plurality of commands included in the computer program;
A cooperative control unit that controls the operation timing of these calculation units to coordinate the commands executed in the calculation unit;
At least one of the arithmetic units is
A command identifying unit for identifying whether one command among the plurality of commands is a command affecting the operation of the hardware part;
A command addition unit for adding a command to change the frequency of the operation clock to the command of 1 based on the identification result by the command identification unit;
And a clock control unit which controls the operating clock when executing the command in response to a command which the operation unit is executed,
The command identifying unit is
In at least one hardware program in which an operation model in an arbitrary logic circuit is described in a predetermined language, and at least one software program in which an operation model of a function by an arbitrary processor is described in a predetermined language, Extracting a read completion command indicating completion of reading of data stored in the hardware register and a write start command indicating start of writing;
The command adding unit is
A first frequency in which the frequency of the clock is predetermined immediately after the extracted read completion command for the hardware program or the software program from which the read completion command and the write completion command are extracted by the command identification unit. A first command for changing the frequency of the clock to an arbitrary second frequency, and a second command for changing the frequency of the clock to the predetermined first frequency immediately before the extracted write start command. Was added,
The clock control unit
The simulation apparatus, wherein the frequency of the operation clock is controlled based on the command added by the command adding unit .
コンピュータプログラムに含まれた複数の指令にしたがって異なる対象の動作をそれぞれシミュレートする複数の演算部と、これら演算部の動作タイミングを制御して前記演算部において実行される前記指令を協調させる協調制御部とを備えたシミュレーション装置の制御方法であって、
前記複数の演算部が、前記複数の指令にしたがって異なる対象の動作をそれぞれシミュレートする演算ステップと、
前記協調制御部が、複数の前記演算ステップの動作タイミングを制御して前記複数の演算ステップにおいて実行される前記指令を協調させる協調制御ステップと
前記演算ステップにより実行される指令に応じてその指令を実行する際の動作クロックを制御するクロック制御ステップと
を備え
前記演算部の少なくとも1つによって実行される前記演算ステップは、
前記複数の指令のうち、1の指令が他の指令に基づく動作に対して影響を与える指令であるか否かを識別する指令識別ステップと、
この指令識別ステップによる識別結果に基づいて前記動作クロックの周波数を変更する指令を前記1の指令に追加する指令追加ステップとを備え、
前記指令識別ステップは、
任意の論理回路における動作モデルを所定の言語で記述された少なくとも1つのハードウェアプログラムと、任意のプロセッサによる機能の動作モデルを所定の言語で記述された少なくとも1つのソフトウェアプログラムとのいずれかにおいて、前記ハードウェアのレジスタに格納されるデータの読み出し完了を示す読出完了指令および書き込み開始を示す書込開始指令を抽出し、
前記指令追加ステップは、
前記指令識別ステップによって前記読出完了指令および前記書込完了指令が抽出された前記ハードウェアプログラムまたは前記ソフトウェアプログラムに対し、抽出された前記読出完了指令の直後に前記動作クロックの周波数を予め定めた第1の周波数から任意の第2の周波数に変更させる第1の指令を追加するとともに、抽出された前記書込開始指令の直前に前記動作クロックの周波数を予め定めた前記第1の周波数へ変更させる第2の指令を追加し、
前記クロック制御ステップは、
前記協調制御部が、前記指令追加ステップによって追加された前記指令に基づいて前記動作クロックの周波数を制御する
ことを特徴とするシミュレーション装置の制御方法。
A plurality of arithmetic units each simulating different target operations according to a plurality of commands included in the computer program, and cooperative control for controlling the operation timing of these arithmetic units and coordinating the commands executed in the arithmetic units A control method of a simulation apparatus comprising:
The plurality of calculation units each simulates the operation of different objects according to the plurality of commands, and
The cooperative control unit controls the operation timing of the plurality of calculation steps to coordinate the commands executed in the plurality of calculation steps, and the command according to the commands executed by the calculation steps. A clock control step for controlling the operation clock when executing , and
The calculation step executed by at least one of the calculation units includes:
A command identifying step for identifying whether one command among the plurality of commands is a command affecting an operation based on another command;
A command addition step of adding a command to change the frequency of the operation clock based on the identification result of the command identification step to the one command;
The command identifying step includes
In at least one hardware program in which an operation model in an arbitrary logic circuit is described in a predetermined language, and at least one software program in which an operation model of a function by an arbitrary processor is described in a predetermined language, Extracting a read completion command indicating completion of reading of data stored in the hardware register and a write start command indicating start of writing;
The command adding step includes:
For the hardware program or the software program from which the read completion command and the write completion command have been extracted by the command identification step, a frequency of the operation clock is determined in advance immediately after the extracted read completion command. A first command for changing from one frequency to an arbitrary second frequency is added, and the frequency of the operation clock is changed to the predetermined first frequency immediately before the extracted write start command. Add a second command,
The clock control step includes
The simulation apparatus control method , wherein the cooperative control unit controls the frequency of the operation clock based on the command added in the command adding step .
コンピュータに、請求項記載のシミュレーション装置の制御方法を実行させることを特徴とするシミュレーション装置の制御プログラム。 A computer-readable storage medium storing a simulation program for causing a computer to execute the simulation apparatus control method according to claim 2 .
JP2010101826A 2010-04-27 2010-04-27 Simulation apparatus, simulation apparatus control method, and program Expired - Fee Related JP5390464B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010101826A JP5390464B2 (en) 2010-04-27 2010-04-27 Simulation apparatus, simulation apparatus control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010101826A JP5390464B2 (en) 2010-04-27 2010-04-27 Simulation apparatus, simulation apparatus control method, and program

Publications (2)

Publication Number Publication Date
JP2011232914A JP2011232914A (en) 2011-11-17
JP5390464B2 true JP5390464B2 (en) 2014-01-15

Family

ID=45322177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010101826A Expired - Fee Related JP5390464B2 (en) 2010-04-27 2010-04-27 Simulation apparatus, simulation apparatus control method, and program

Country Status (1)

Country Link
JP (1) JP5390464B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543349B (en) * 2018-12-21 2023-10-24 核动力运行研究所 Multi-plug-in integration method for nuclear power simulator

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003242193A (en) * 2002-02-14 2003-08-29 Nec Corp Logic verifying device for reproducing and executing cooperation simulation
JP2007058813A (en) * 2005-08-26 2007-03-08 Fujitsu Ltd Verification device and verification method
JP2010250365A (en) * 2009-04-10 2010-11-04 Renesas Electronics Corp Cooperative simulation system, hardware emulator, and cooperative simulation method

Also Published As

Publication number Publication date
JP2011232914A (en) 2011-11-17

Similar Documents

Publication Publication Date Title
US8549468B2 (en) Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model
JP4994393B2 (en) System and method for generating multiple models at different levels of abstraction from a single master model
US9026978B1 (en) Reverse interface logic model for optimizing physical hierarchy under full chip constraint
US8402405B1 (en) System and method for correcting gate-level simulation accuracy when unknowns exist
TWI474203B (en) Method and integrated circuit for simulating a circuit, a computer system and computer-program product
JP2009301231A (en) Simulation apparatus, simulation method, simulation program, and computer-readable recording medium with the program recorded thereon
JP5034916B2 (en) Performance evaluation model generation method, system performance evaluation method, and performance evaluation model generation apparatus
US6775810B2 (en) Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage
JP2012509546A (en) Method and data processing system for simulating embedded systems
US7992112B2 (en) Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium
US20080300806A1 (en) Power consumption calculating method
JP5390464B2 (en) Simulation apparatus, simulation apparatus control method, and program
JP6249827B2 (en) Simulation apparatus and simulation program
US20120089386A1 (en) Simulation apparatus, computer-readable recording medium, and method
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
JP7215244B2 (en) Description conversion method, simulation method, and description conversion program
Alali et al. Modeling and simulation of multiprocessor systems MPSoC by SystemC/TLM2
US7181384B1 (en) Method and apparatus for simulating a hybrid system with registered and concurrent nodes
JP2828590B2 (en) Microprogram verification method
JP2011238137A (en) Performance estimation device
JP4264110B2 (en) Simulation execution apparatus, method and program
JP6020775B1 (en) Simulation device
Lee et al. Fast Verilog Simulation using Tel-based Verification Code Generation for Dynamically Reloading from Pre-Simulation Snapshot
JP6949440B2 (en) Vector generator and vector generator program
CN111338427B (en) Method for realizing SystemC semi-physical simulation time synchronization

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20111031

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20111031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131010

R150 Certificate of patent or registration of utility model

Ref document number: 5390464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees