JP2009223762A - Cooperation verification device - Google Patents

Cooperation verification device Download PDF

Info

Publication number
JP2009223762A
JP2009223762A JP2008069433A JP2008069433A JP2009223762A JP 2009223762 A JP2009223762 A JP 2009223762A JP 2008069433 A JP2008069433 A JP 2008069433A JP 2008069433 A JP2008069433 A JP 2008069433A JP 2009223762 A JP2009223762 A JP 2009223762A
Authority
JP
Japan
Prior art keywords
simulation
emulation
circuit
module
emulator
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.)
Withdrawn
Application number
JP2008069433A
Other languages
Japanese (ja)
Inventor
Yuichiro Matsuoka
岡 雄一郎 松
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008069433A priority Critical patent/JP2009223762A/en
Publication of JP2009223762A publication Critical patent/JP2009223762A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To enhance processing speed of a cooperation verification device. <P>SOLUTION: The cooperation verification device 100 includes: a processor 120 for attaining a simulator 130 which performs simulation; an emulator 140 which performs emulation; a transactor 150 which performs transfer of transactions between the simulator 130 and the emulator 140; and a transfer part which transfers a simulation result of the simulator 130 to the emulator 140 and transfers an emulation result of the emulator 140 to the simulator 130. The simulator 130 further includes a simulation control part which suspends the simulation upon establishment of a change condition of a change file and instructs a change in configuration of simulation circuit based on a setting content of a setting file, and the emulator 140 further includes an emulation control part which suspends the emulation upon establishment of the change condition of the condition file, and instructs a change in configuration of an emulation circuit based on the setting content of the setting file. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、協調検証装置に関し、特に、システムLSIを検証するための協調検証装置に関する。   The present invention relates to a cooperative verification apparatus, and more particularly to a cooperative verification apparatus for verifying a system LSI.

一般的な検証装置として、RTL(Register Transfer Level)シミュレーションを行うRTLシミュレータと、FPGA(Field Programmable Gate Array)エミュレーションを行うFPGAエミュレータが知られている。   As a general verification device, an RTL simulator that performs RTL (Register Transfer Level) simulation and an FPGA emulator that performs Field Programmable Gate Array (FPGA) emulation are known.

近年では、RTLシミュレーションを行うシミュレータとFPGAエミュレーションを行うエミュレータとが協調的に動作する協調検証装置が知られている。   In recent years, a cooperative verification apparatus is known in which a simulator that performs RTL simulation and an emulator that performs FPGA emulation operate cooperatively.

従来の協調検証装置では、初めに、検証対象回路のモジュールがRTLシミュレーションの対象となるRTLモジュールとFPGAエミュレーションの対象となるFPGAモジュールに分割された後に協調検証処理が実行される。   In the conventional collaborative verification apparatus, first, after the module of the circuit to be verified is divided into the RTL module that is the target of RTL simulation and the FPGA module that is the target of FPGA emulation, the collaborative verification process is executed.

このような協調検証環境において、RTLシミュレータは、フリップフロップ(以下、「FF」という)や信号などの内部状態を自由に観測するようなシミュレーションを実行することができるが、FPGAエミュレータに比べて処理速度が遅く、RTLモジュールが多くなるほど協調検証装置の処理速度が低下する。   In such a collaborative verification environment, the RTL simulator can execute a simulation such as observing an internal state of a flip-flop (hereinafter referred to as “FF”) or a signal freely. The processing speed of the collaborative verification device decreases as the speed decreases and the number of RTL modules increases.

一方、FPGAエミュレータは、高速なエミュレーションを実行することができるが、FFや信号などの内部状態を観測することができないので、内部状態の観測が求められているモジュールはRTLモジュールとなるように分割される。しかし、従来の協調検証装置では、初めにモジュールが分割された後の協調検証動作の実行中にRTLモジュールとFPGAモジュールの構成を動的に変更することはできないので、ある検証処理において正常動作が確認されたRTLモジュールは、別のモジュールの検証処理においてもRTLモジュールとして検証される。その結果、正常なモジュールについてもRTLシミュレーションを行うことになるので、協調検証装置の処理速度が低下する。   On the other hand, the FPGA emulator can execute high-speed emulation, but cannot observe internal states such as FFs and signals. Therefore, the module that is required to observe the internal state is divided into RTL modules. Is done. However, in the conventional collaborative verification apparatus, the configuration of the RTL module and the FPGA module cannot be dynamically changed during the execution of the collaborative verification operation after the module is first divided. The confirmed RTL module is verified as an RTL module in the verification process of another module. As a result, RTL simulation is also performed for normal modules, so that the processing speed of the collaborative verification device decreases.

また、上記のような協調検証環境では、各モジュールの開発担当者毎に異なるモジュール構成の検証環境を提供することは困難である。   Further, in the cooperative verification environment as described above, it is difficult to provide a verification environment having a different module configuration for each person in charge of developing each module.

特許文献1は、ハードウェアシミュレータとソフトウェアシミュレータのモジュール構成を静的に変更し、サイクルレベルと動作レベルの切り替えを行う技術について開示している。   Patent Document 1 discloses a technique for statically changing the module configuration of a hardware simulator and a software simulator and switching between a cycle level and an operation level.

しかし、特許文献1の技術は、RTLシミュレータとFPGAエミュレータの間のモジュール構成を動的に変更することはできない。   However, the technique of Patent Document 1 cannot dynamically change the module configuration between the RTL simulator and the FPGA emulator.

特許文献2は、エミュレータ上のCPUと命令セットシミュレータ(以下、「ISS」という)が設けられ、CPUの高速実行はエミュレータによって行われ、デバッグはISSのソフトウェアデバッガによって行われる技術について開示している。   Patent Document 2 discloses a technology in which a CPU on an emulator and an instruction set simulator (hereinafter referred to as “ISS”) are provided, high-speed execution of the CPU is performed by an emulator, and debugging is performed by an ISS software debugger. .

しかし、特許文献2の技術は、CPUのみを切り替えるので、任意のモジュールを切り替えることはできない。また、その目的もソフトウェアデバッグの効率化に過ぎない。
特開2006−79417号公報 特開2007−58813号公報
However, since the technique of Patent Document 2 switches only the CPU, it cannot switch any module. The purpose is only to improve the efficiency of software debugging.
JP 2006-79417 A JP 2007-58813 A

本発明の目的は、協調検証装置の処理速度を向上させることである。   An object of the present invention is to improve the processing speed of the cooperative verification apparatus.

本発明の第1態様によれば、シミュレーションプログラム、検証対象回路であるシミュレーション回路、前記シミュレーション回路及び検証対象回路であるエミュレーション回路の変更条件が記述された条件ファイル並びに前記シミュレーション回路及び前記エミュレーション回路の変更内容が記述された設定ファイルを記憶する記憶部と、
前記シミュレーションプログラムを起動することによって、検証対象回路の全ての情報を有し、有効なモジュールのシミュレーションを行うシミュレータを実現するプロセッサと、
検証対象回路の全ての情報を有し、有効なモジュールのエミュレーションを行うエミュレータと、
前記シミュレータと前記エミュレータとの間でトランザクションを転送するトランザクタと、
前記条件ファイルの変更条件が成立した場合に、前記設定ファイルの設定内容に基づいて、前記シミュレータのシミュレーション結果を前記エミュレータへ転送し、前記エミュレータのエミュレーション結果を前記シミュレータへ転送する転送部と、を備え、
前記シミュレータは、前記条件ファイルの変更条件が成立した場合にシミュレーションを中断し、前記設定ファイルの設定内容に基づいて、前記シミュレーション回路の構成の変更を指示するシミュレーション制御部を更に有し、
前記エミュレータは、前記条件ファイルの変更条件が成立した場合にエミュレーションを中断し、前記設定ファイルの設定内容に基づいて、前記エミュレーション回路の構成の変更を指示するエミュレーション制御部を更に有することを特徴とする協調検証装置が提供される。
According to the first aspect of the present invention, a simulation program, a simulation circuit that is a circuit to be verified, a condition file that describes conditions for changing the simulation circuit and an emulation circuit that is a circuit to be verified, and the simulation circuit and the emulation circuit A storage unit for storing a setting file in which changes are described;
A processor for realizing a simulator for simulating an effective module having all information of the circuit to be verified by activating the simulation program;
An emulator that has all the information of the circuit to be verified and emulates a valid module;
A transactor for transferring transactions between the simulator and the emulator;
A transfer unit for transferring the simulation result of the simulator to the emulator and transferring the emulation result of the emulator to the simulator based on the setting contents of the setting file when a condition for changing the condition file is satisfied; Prepared,
The simulator further includes a simulation control unit that interrupts the simulation when a condition for changing the condition file is satisfied, and instructs the change of the configuration of the simulation circuit based on the setting content of the setting file,
The emulator further includes an emulation control unit that interrupts the emulation when the condition file change condition is satisfied, and instructs the change of the configuration of the emulation circuit based on the setting contents of the setting file. A collaborative verification device is provided.

本発明によれば、協調検証装置の処理速度を向上させることができる。   According to the present invention, the processing speed of the cooperative verification apparatus can be improved.

以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。   Embodiments of the present invention will be described below with reference to the drawings. The following examples are one embodiment of the present invention and do not limit the scope of the present invention.

はじめに、本発明の実施例1について説明する。   First, Example 1 of the present invention will be described.

図1は、本発明の実施例1に係る協調検証装置100の構成を示すブロック図である。   FIG. 1 is a block diagram illustrating a configuration of a cooperative verification apparatus 100 according to the first embodiment of the present invention.

本発明の実施例1に係る協調検証装置100は、記憶部110、プロセッサ120、エミュレータ140、トランザクタ150及び転送部160を備えている。   The cooperative verification apparatus 100 according to the first embodiment of the present invention includes a storage unit 110, a processor 120, an emulator 140, a transactor 150, and a transfer unit 160.

記憶部110は、シミュレーションプログラム111、条件ファイル112、設定ファイル113及び検証対象回路データ114を記憶する。   The storage unit 110 stores a simulation program 111, a condition file 112, a setting file 113, and verification target circuit data 114.

シミュレーションプログラム111は、シミュレータ130を実現するためのアプリケーションプログラムである。   The simulation program 111 is an application program for realizing the simulator 130.

条件ファイル112は、後述のシミュレーション回路131及び後述のエミュレーション回路141のモジュールの有効/無効を切り替える条件(以下、「変更条件」という)が記述されたファイルである。   The condition file 112 is a file in which conditions (hereinafter referred to as “change conditions”) for switching between valid / invalid of modules of a simulation circuit 131 and an emulation circuit 141 to be described later are described.

設定ファイル113は、後述のシミュレーション回路131及び後述のエミュレーション回路141のモジュールの有効/無効を切り替える内容(以下、「設定内容」という)が記述されたファイルである。   The setting file 113 is a file in which contents (hereinafter referred to as “setting contents”) for switching between valid / invalid of modules of a simulation circuit 131 and an emulation circuit 141 to be described later are described.

検証対象回路データ114は、シミュレータ130の検証対象回路であるシミュレーション回路131が記述されたデータである。例えば、検証対象回路データ114は、RTL記述のデータである。   The verification target circuit data 114 is data describing a simulation circuit 131 that is a verification target circuit of the simulator 130. For example, the verification target circuit data 114 is RTL description data.

プロセッサ120は、記憶部110に記憶されたシミュレーションプログラム111を起動することによって、シミュレータ130を実現する。   The processor 120 implements the simulator 130 by starting the simulation program 111 stored in the storage unit 110.

シミュレータ130は、後述のシミュレーション回路131の全ての情報を有し、有効なモジュールのシミュレーションを行う。例えば、シミュレータ130は、RTL(Register Transfer Level)シミュレータである。   The simulator 130 has all the information of the simulation circuit 131 described later, and simulates an effective module. For example, the simulator 130 is an RTL (Register Transfer Level) simulator.

エミュレータ140は、後述のエミュレーション回路141の全ての情報を有し、有効なモジュールのエミュレーションを行う。例えば、エミュレータ140は、FPGA(Field Programmable Gate Array)エミュレータである。   The emulator 140 has all information of an emulation circuit 141 described later, and performs emulation of a valid module. For example, the emulator 140 is an FPGA (Field Programmable Gate Array) emulator.

トランザクタ150は、シミュレータ130とエミュレータ140との間でトランザクションを生成し、転送する。トランザクションは、後述のシミュレーション回路131と後述のエミュレーション回路141の間で同期を取るための情報であり、バスアクセス情報を含んでも良い。   The transactor 150 generates and transfers a transaction between the simulator 130 and the emulator 140. The transaction is information for synchronizing between a simulation circuit 131 (described later) and an emulation circuit 141 (described later), and may include bus access information.

転送部160は、条件ファイル112の変更条件が成立した場合に、設定ファイル113の設定内容に基づいて、シミュレータ130のシミュレーション結果をエミュレータ140へ転送し、エミュレータ140のエミュレーション結果をシミュレータ130へ転送する。転送部160は、条件ファイル112の変更条件が成立し、後述のシミュレーション回路131及び後述のエミュレーション回路141のモジュールの有効/無効が切り替わるときに、シミュレータ130の無効となったモジュールのフリップフロップ(以下、「FF」という)、信号などの内部情報及び実行したクロック数などのシミュレーション結果をエミュレータ140に転送してエミュレーション回路141の当該モジュールを有効にし、エミュレータ140の無効となったモジュールのFF、信号などの内部情報及び実行したクロック数などのエミュレーション結果をシミュレータ130に転送してシミュレーション回路131の当該モジュールを有効にする。   The transfer unit 160 transfers the simulation result of the simulator 130 to the emulator 140 and transfers the emulation result of the emulator 140 to the simulator 130 based on the setting content of the setting file 113 when the condition for changing the condition file 112 is satisfied. . When the condition for changing the condition file 112 is satisfied and the valid / invalid of the modules of the simulation circuit 131 and the emulation circuit 141 to be described later are switched, the transfer unit 160 performs flip-flops (hereinafter referred to as flip-flops) , "FF"), the simulation result such as the internal information such as the signal and the number of executed clocks is transferred to the emulator 140 to enable the module of the emulation circuit 141, and the FF and signal of the module in which the emulator 140 is disabled The internal result such as the above and the emulation result such as the number of executed clocks are transferred to the simulator 130 to enable the module of the simulation circuit 131.

なお、本発明の実施例1では、トランザクタ150及び転送部160は、シミュレータ130及びエミュレータ140に共有されるモジュールである。   In the first embodiment of the present invention, the transactor 150 and the transfer unit 160 are modules shared by the simulator 130 and the emulator 140.

図2は、本発明の実施例1に係るシミュレータ130及びエミュレータ140の構成を示すブロック図である。   FIG. 2 is a block diagram illustrating configurations of the simulator 130 and the emulator 140 according to the first embodiment of the present invention.

シミュレータ130は、シミュレーション回路131、シミュレーション制御部132及びシミュレーションブリッジ133を備えている。例えば、シミュレータ130は、RTLシミュレータである。   The simulator 130 includes a simulation circuit 131, a simulation control unit 132, and a simulation bridge 133. For example, the simulator 130 is an RTL simulator.

シミュレーション回路131は、複数のシミュレーション対象モジュール(CPU、メモリ、メディアプロセッサM1,M2、ハードウェア(以下、「HW」という))から構成されるRTLモデルの検証対象回路である。   The simulation circuit 131 is an RTL model verification target circuit including a plurality of simulation target modules (CPU, memory, media processors M1 and M2, and hardware (hereinafter referred to as “HW”)).

シミュレーション制御部132は、シミュレーション回路131について条件ファイル112の変更条件が成立するか否かを監視し、変更条件が成立した場合には、シミュレーションを中断し、設定ファイル113の設定内容に基づいてシミュレーション回路131の構成を変更するために、モジュールの有効/無効の切り替えを指示する。   The simulation control unit 132 monitors whether or not the change condition of the condition file 112 is satisfied for the simulation circuit 131. If the change condition is satisfied, the simulation is interrupted and the simulation is performed based on the setting contents of the setting file 113. In order to change the configuration of the circuit 131, an instruction to enable / disable the module is given.

シミュレーションブリッジ133は、シミュレーション回路131のモジュールの有効/無効を管理し、シミュレーション回路131の有効なモジュールから出力されたバスアクセスがシミュレータ130の内部のモジュールに対するものか又は外部のモジュールに対するもの(すなわち、エミュレータ140に対するアクセス)かを判断し、内部のものである場合には内部モジュールにアクセスし、外部のものである場合にはエミュレータ140へのトランザクションを転送するようにトランザクタ150に指示する。   The simulation bridge 133 manages the validity / invalidity of the module of the simulation circuit 131, and the bus access output from the valid module of the simulation circuit 131 is for the internal module of the simulator 130 or for the external module (that is, If it is internal, the internal module is accessed, and if it is external, the transactor 150 is instructed to transfer the transaction to the emulator 140.

エミュレータ140は、エミュレーション回路141、エミュレーション制御部142及びエミュレーションブリッジ143を備えている。例えば、エミュレータ140は、FPGAエミュレータである。   The emulator 140 includes an emulation circuit 141, an emulation control unit 142, and an emulation bridge 143. For example, the emulator 140 is an FPGA emulator.

エミュレーション回路141は、シミュレーション回路131と同一の複数のエミュレーション対象モジュール(CPU、メモリ、メディアプロセッサM1,M2、HW)から構成されるFPGAデザインの検証対象回路である。   The emulation circuit 141 is an FPGA design verification target circuit including a plurality of emulation target modules (CPU, memory, media processors M1, M2, and HW) that are the same as the simulation circuit 131.

エミュレーション制御部142は、エミュレーション回路141について条件ファイル112の変更条件が成立するか否かを監視し、変更条件が成立した場合には、エミュレーションを中断し、設定ファイル113の設定内容に基づいてエミュレーション回路141の構成を変更するために、モジュールの有効/無効の切り替えを指示する。   The emulation control unit 142 monitors whether or not the condition for changing the condition file 112 is satisfied for the emulation circuit 141. When the condition for changing is satisfied, the emulation is interrupted and the emulation is performed based on the setting contents of the setting file 113. In order to change the configuration of the circuit 141, an instruction to switch the module between valid / invalid is given.

エミュレーションブリッジ143は、エミュレーション回路141のモジュールの有効/無効を管理し、エミュレーション回路141の有効なモジュールから出力されたバスアクセスがエミュレータ140の内部のモジュールに対するものか又は外部のモジュールに対するもの(すなわち、シミュレータ130に対するアクセス)かを判断し、内部のものである場合には内部モジュールにアクセスし、外部のものである場合にはシミュレータ130へのトランザクションを転送するようにトランザクタ150に指示する。   The emulation bridge 143 manages the validity / invalidity of the module of the emulation circuit 141, and the bus access output from the valid module of the emulation circuit 141 is for the internal module of the emulator 140 or the external module (that is, If it is internal, the internal module is accessed, and if it is external, it instructs the transactor 150 to transfer the transaction to the simulator 130.

図3は、条件ファイル112の変更条件の一例を示す概略図である。   FIG. 3 is a schematic diagram illustrating an example of a change condition of the condition file 112.

図3の条件ファイル112の変更条件は、時間1000ns経過したとき、信号Aが0になったとき及びCPUのプログラムカウンタの値PCが“0x80020000”になったときに、モジュールの有効/無効を切り替えることを示す。   The change condition of the condition file 112 in FIG. 3 is that the module is switched between valid / invalid when the time 1000 ns elapses, the signal A becomes 0, and the CPU program counter value PC becomes “0x80020000”. It shows that.

図4は、設定ファイル113の設定内容の一例を示す概略図である。   FIG. 4 is a schematic diagram illustrating an example of setting contents of the setting file 113.

図4の設定ファイル113の設定内容は、初期状態(0ns)において、シミュレーション回路131のモジュールの全てを無効とし、エミュレーション回路141のモジュールの全てを有効とし、シミュレーション実行後の状態(1000ns)において、シミュレーション回路131のCPU及びHWを有効とし、エミュレーション回路141のCPU及びHWを無効とすることを示す。また、図4の設定ファイル113の設定内容は、信号Aが0になったとき又はPCが“0x80020000”になったときのシミュレーション回路131及びエミュレーション回路141の有効/無効の設定がなされていることを示す。   The settings in the setting file 113 in FIG. 4 are as follows: in the initial state (0 ns), all the modules of the simulation circuit 131 are disabled, all the modules of the emulation circuit 141 are enabled, and in the state after the simulation is executed (1000 ns) It shows that the CPU and HW of the simulation circuit 131 are enabled and the CPU and HW of the emulation circuit 141 are disabled. The setting contents of the setting file 113 in FIG. 4 are that the simulation circuit 131 and the emulation circuit 141 are enabled / disabled when the signal A becomes 0 or the PC becomes “0x80020000”. Indicates.

図5は、本発明の実施例1に係る協調検証処理の処理手順を示すフローチャートである。   FIG. 5 is a flowchart illustrating the processing procedure of the cooperative verification processing according to the first embodiment of the present invention.

はじめに、シミュレーション制御部132によってシミュレーション回路131のシミュレーションの開始が指示され、エミュレーション制御部142によってエミュレーション回路141のエミュレーションの開始が指示されることによって、シミュレーション及びエミュレーションが始まる(S501)。このとき、シミュレーション制御部132は、シミュレーション回路131について、エミュレーション制御部142は、エミュレーション回路141について、それぞれ条件ファイル112の変更条件が成立するか否かを監視する。   First, the simulation control unit 132 instructs the simulation circuit 131 to start simulation, and the emulation control unit 142 instructs the emulation circuit 141 to start emulation, thereby starting simulation and emulation (S501). At this time, the simulation control unit 132 monitors the simulation circuit 131 and the emulation control unit 142 monitors the emulation circuit 141 for whether or not the condition for changing the condition file 112 is satisfied.

条件ファイル112の変更条件が成立した場合には(S502−YES)、シミュレーション制御部132は、シミュレーションを中断し、エミュレーション制御部142は、エミュレーションを中断する(S503)。   When the condition for changing the condition file 112 is satisfied (S502-YES), the simulation control unit 132 interrupts the simulation, and the emulation control unit 142 interrupts the emulation (S503).

次に、転送部160は、設定ファイル113の設定内容に基づいて、S501のシミュレーション結果をエミュレータ140へ転送し、エミュレーション結果をシミュレータ130へ転送するモジュール実行状態転送を行う(S504)。例えば、転送されるシミュレーション結果やエミュレーション結果は、設定ファイル113の設定内容に示された有効なモジュール内の全てのFF、信号などの内部情報及び実行したクロック数である。   Next, based on the setting contents of the setting file 113, the transfer unit 160 transfers the simulation result of S501 to the emulator 140, and performs module execution state transfer that transfers the emulation result to the simulator 130 (S504). For example, the simulation result and the emulation result to be transferred are all the internal information such as all FFs and signals in the valid module indicated in the setting contents of the setting file 113 and the number of executed clocks.

モジュール実行状態転送が完了すると、設定ファイル113の設定内容に基づいてシミュレーション回路131の構成が変更され、エミュレーション回路141の構成が変更される(S505)。   When the module execution state transfer is completed, the configuration of the simulation circuit 131 is changed based on the setting contents of the setting file 113, and the configuration of the emulation circuit 141 is changed (S505).

その後、シミュレーション制御部132及びエミュレーション制御部142は、シミュレーション及びエミュレーションの実行を再開する(S506)。   Thereafter, the simulation control unit 132 and the emulation control unit 142 resume execution of simulation and emulation (S506).

S501〜S506は、協調検証処理が終了するまで繰り返される(S507−NO)。協調検証処理は、例えば、シミュレーションがある規定の時刻を経過したとき又は図示されないキーボード又はマウスなどの入力デバイスからユーザの終了指示が受け付けられたときに終了する。   S501 to S506 are repeated until the cooperative verification process is completed (S507-NO). The collaborative verification process ends, for example, when a predetermined time has passed or when a user's end instruction is received from an input device such as a keyboard or a mouse (not shown).

図6は、協調検証処理の概略を示すシーケンス図である。   FIG. 6 is a sequence diagram illustrating an outline of the cooperative verification process.

図6は、シミュレーション回路131のモジュールが全て無効であって、エミュレーション回路141のモジュールが全て有効であるような初期状態から協調検証が始まり、条件ファイル112の変更条件が時刻N(Nサイクル目)にモジュールの有効/無効を切り替える様子を示し、設定ファイル113の設定内容がシミュレーション回路131のCPU及びHWを有効とし、エミュレーション回路141のメモリ及びメディアプロセッサM1,M2を有効とすることを示す場合の例である。   FIG. 6 shows that collaborative verification starts from an initial state in which all modules of the simulation circuit 131 are invalid and all modules of the emulation circuit 141 are valid, and the change condition of the condition file 112 is the time N (Nth cycle). Shows a state where the module is switched between valid / invalid, and the setting contents of the setting file 113 indicate that the CPU and HW of the simulation circuit 131 are enabled and the memory and media processors M1 and M2 of the emulation circuit 141 are enabled. It is an example.

時刻0〜Nでは、図7に示されるように、シミュレーション回路131の全てのモジュールが無効であり、エミュレーション回路141の全てのモジュールが有効であるので、エミュレーション回路141の全てのモジュールについてエミュレーションが実行される。   At time 0 to N, as shown in FIG. 7, since all modules of the simulation circuit 131 are invalid and all modules of the emulation circuit 141 are valid, emulation is executed for all modules of the emulation circuit 141. Is done.

時刻Nでは、エミュレーション制御部142によってエミュレーションが中断され、転送部160によってモジュール実行状態転送が行われる。 At time N, the emulation control unit 142 interrupts the emulation, and the transfer unit 160 transfers the module execution state.

図9は、モジュール実行状態転送において転送されるデータのデータ構造の一例を示す概略図である。   FIG. 9 is a schematic diagram illustrating an example of a data structure of data transferred in the module execution state transfer.

モジュール実行状態転送において転送されるデータは、モジュール情報及びクロック数を含む。モジュール情報は、モジュール名、階層名、FF名、信号名及びその値を含む。   Data transferred in the module execution state transfer includes module information and the number of clocks. The module information includes a module name, a hierarchy name, an FF name, a signal name, and a value thereof.

モジュール実行状態転送が行われると、モジュールの有効/無効が切り替わり、図8に示されるように、エミュレーション回路141のCPU及びHWが無効となり、シミュレーション回路131のCPU及びHWが有効となる。   When the module execution state transfer is performed, the validity / invalidity of the module is switched, and as shown in FIG. 8, the CPU and HW of the emulation circuit 141 become invalid, and the CPU and HW of the simulation circuit 131 become valid.

モジュール実行状態転送及びモジュールの有効/無効が切り替わった後は、協調動作が再開される。シミュレーション制御部132及びエミュレーション制御部142は、図10に示されたように、トランザクタ150によって転送されたトランザクションに基づいて同期を取りながら協調動作を行う。 After the module execution state transfer and the module validity / invalidity are switched, the cooperative operation is resumed . As shown in FIG. 10, the simulation control unit 132 and the emulation control unit 142 perform a cooperative operation while synchronizing based on the transaction transferred by the transactor 150.

時刻N以降の協調動作では、シミュレーション回路131の有効なモジュールについてシミュレーションが実行される。シミュレーションが完了した後は、シミュレーションブリッジ133−トランザクタ150−エミュレーションブリッジ143というルートでトランザクションが転送される。その後、エミュレーション回路141の有効なモジュールについてエミュレーションが実行される。エミュレーションが完了した後は、エミュレーションブリッジ143−トランザクタ150−シミュレーションブリッジ133というルートでトランザクションが転送される。その後、再び、シミュレーション回路131についてシミュレーションが実行されるという処理が繰り返される。   In the cooperative operation after time N, a simulation is executed for an effective module of the simulation circuit 131. After the simulation is completed, the transaction is transferred through a route of simulation bridge 133 -transactor 150 -emulation bridge 143. Thereafter, emulation is executed for a valid module of the emulation circuit 141. After the emulation is completed, the transaction is transferred through a route of emulation bridge 143 -transactor 150 -simulation bridge 133. Thereafter, the process of executing the simulation for the simulation circuit 131 is repeated again.

なお、トランザクタ150の同期方法は、1クロックに1トランザクションを生成する方法であっても良いし、他の方法であっても良い。   Note that the synchronization method of the transactor 150 may be a method of generating one transaction per clock, or another method.

時刻N以降の協調動作では、シミュレーション制御部132及びエミュレーション制御部142は、条件ファイル112の変更条件が成立するか否かを監視する。シミュレーション制御部132及びエミュレーション制御部142は、変更条件が成立した場合には協調動作を中断させ、設定ファイル113の設定内容に基づいてシミュレーション回路131及びエミュレーション回路141のモジュールの有効/無効を切り替える。その際、転送部160は、エミュレーション回路141に対してシミュレーション結果を転送し、シミュレーション回路131に対してエミュレーション結果を転送する。その後、シミュレーション制御部132及びエミュレーション制御部142は、協調動作を再開する。   In the cooperative operation after time N, the simulation control unit 132 and the emulation control unit 142 monitor whether the condition for changing the condition file 112 is satisfied. The simulation control unit 132 and the emulation control unit 142 suspend the cooperative operation when the change condition is satisfied, and switch between valid / invalid of the modules of the simulation circuit 131 and the emulation circuit 141 based on the setting contents of the setting file 113. At that time, the transfer unit 160 transfers the simulation result to the emulation circuit 141 and transfers the emulation result to the simulation circuit 131. Thereafter, the simulation control unit 132 and the emulation control unit 142 resume the cooperative operation.

図11に示されるように、シミュレーション回路131の有効なモジュールであるCPUからエミュレーション回路141の有効なモジュールであるメモリに対してバスアクセスがある場合には、シュミレーションブリッジ133は、エミュレーション回路141のメモリが有効であるので、エミュレータ140へのトランザクションを転送するようにトランザクタ150へ指示する。トランザクタ150は、バスアクセス情報を載せたトランザクションを作成し、エミュレータ140へ送信する。エミュレーションブリッジ143は、トランザクタ150によって転送されたトランザクションを受け取り、エミュレーション回路141にバスアクセス情報を送信し、メモリにアクセスする。   As shown in FIG. 11, when there is a bus access from a CPU that is a valid module of the simulation circuit 131 to a memory that is a valid module of the emulation circuit 141, the simulation bridge 133 stores the memory of the emulation circuit 141. Is valid, the transactor 150 is instructed to transfer the transaction to the emulator 140. Transactor 150 creates a transaction with bus access information and transmits it to emulator 140. The emulation bridge 143 receives the transaction transferred by the transactor 150, transmits bus access information to the emulation circuit 141, and accesses the memory.

図12に示されるように、シミュレーション回路131の有効なモジュールであるCPUからHWに対してバスアクセスがある場合には、シュミレーションブリッジ133は、シミュレーション回路131のHWが有効であるので、シミュレーション回路131へバスアクセスの内容を送信し、HWにアクセスする。   As shown in FIG. 12, when there is a bus access from the CPU, which is an effective module of the simulation circuit 131, to the HW, the simulation bridge 131 has the simulation circuit 131 because the HW of the simulation circuit 131 is effective. The contents of the bus access are transmitted to and the HW is accessed.

本発明の実施例1によれば、シミュレータ130とエミュレータ140が協調動作を行う場合に、シミュレーション回路131のモジュールとエミュレーション回路141のモジュールの有効/無効を動的に変更できるため、状況に応じた回路構成による協調検証が可能となり、協調検証装置の処理速度を向上させることができる。   According to the first embodiment of the present invention, when the simulator 130 and the emulator 140 perform a cooperative operation, the validity / invalidity of the module of the simulation circuit 131 and the module of the emulation circuit 141 can be dynamically changed. Cooperative verification by the circuit configuration becomes possible, and the processing speed of the cooperative verification device can be improved.

また、本発明の実施例1によれば、モジュールの有効/無効を協調検証動作の実行中に動的に変更するので、協調検証装置の処理速度を向上させ且つ様々なモジュールのデバッグ環境を容易に構築することができる。   Further, according to the first embodiment of the present invention, the validity / invalidity of the module is dynamically changed during the execution of the collaborative verification operation, so that the processing speed of the collaborative verification apparatus is improved and various modules can be debugged easily. Can be built.

本発明の実施例1に係る協調検証装置100の構成を示すブロック図である。It is a block diagram which shows the structure of the cooperation verification apparatus 100 which concerns on Example 1 of this invention. 本発明の実施例1に係るシミュレータ130及びエミュレータ140の構成を示すブロック図である。1 is a block diagram illustrating configurations of a simulator 130 and an emulator 140 according to Embodiment 1 of the present invention. 条件ファイル112の変更条件の一例を示す概略図である。FIG. 5 is a schematic diagram illustrating an example of a change condition of a condition file 112. 設定ファイル113の設定内容の一例を示す概略図である。5 is a schematic diagram illustrating an example of setting contents of a setting file 113. FIG. 本発明の実施例1に係る協調検証処理の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the cooperative verification process which concerns on Example 1 of this invention. 協調検証処理の概略を示すシーケンス図である。It is a sequence diagram which shows the outline of a cooperation verification process. 本発明の実施例1に係る協調動作を説明するブロック図である。It is a block diagram explaining the cooperation operation | movement which concerns on Example 1 of this invention. 本発明の実施例1に係る協調動作を説明するブロック図である。It is a block diagram explaining the cooperation operation | movement which concerns on Example 1 of this invention. モジュール実行状態転送において転送されるデータのデータ構造の一例を示す概略図である。It is the schematic which shows an example of the data structure of the data transferred in module execution state transfer. 本発明の実施例1に係る協調動作を説明するブロック図である。It is a block diagram explaining the cooperation operation | movement which concerns on Example 1 of this invention. 本発明の実施例1に係る協調動作を説明するブロック図である。It is a block diagram explaining the cooperation operation | movement which concerns on Example 1 of this invention. 本発明の実施例1に係る協調動作を説明するブロック図である。It is a block diagram explaining the cooperation operation | movement which concerns on Example 1 of this invention.

符号の説明Explanation of symbols

100 協調検証装置
110 記憶部
120 プロセッサ
130 シミュレータ
131 シミュレーション回路
132 シミュレーション制御部
133 シミュレーションブリッジ
140 エミュレータ
141 エミュレーション回路
142 エミュレーション制御部
143 エミュレーションブリッジ
150 トランザクタ
160 転送部
DESCRIPTION OF SYMBOLS 100 Cooperative verification apparatus 110 Memory | storage part 120 Processor 130 Simulator 131 Simulation circuit 132 Simulation control part 133 Simulation bridge 140 Emulator 141 Emulation circuit 142 Emulation control part 143 Emulation bridge 150 Transactor 160 Transfer part

Claims (5)

シミュレーションプログラム、検証対象回路であるシミュレーション回路、前記シミュレーション回路及び検証対象回路であるエミュレーション回路の変更条件が記述された条件ファイル並びに前記シミュレーション回路及び前記エミュレーション回路の変更内容が記述された設定ファイルを記憶する記憶部と、
前記シミュレーションプログラムを起動することによって、検証対象回路の全ての情報を有し、有効なモジュールのシミュレーションを行うシミュレータを実現するプロセッサと、
検証対象回路の全ての情報を有し、有効なモジュールのエミュレーションを行うエミュレータと、
前記シミュレータと前記エミュレータとの間でトランザクションを転送するトランザクタと、
前記条件ファイルの変更条件が成立した場合に、前記設定ファイルの設定内容に基づいて、前記シミュレータのシミュレーション結果を前記エミュレータへ転送し、前記エミュレータのエミュレーション結果を前記シミュレータへ転送する転送部と、を備え、
前記シミュレータは、前記条件ファイルの変更条件が成立した場合にシミュレーションを中断し、前記設定ファイルの設定内容に基づいて、前記シミュレーション回路の構成の変更を指示するシミュレーション制御部を更に有し、
前記エミュレータは、前記条件ファイルの変更条件が成立した場合にエミュレーションを中断し、前記設定ファイルの設定内容に基づいて、前記エミュレーション回路の構成の変更を指示するエミュレーション制御部を更に有することを特徴とする協調検証装置。
A simulation program, a simulation circuit that is a circuit to be verified, a condition file that describes conditions for changing the simulation circuit and an emulation circuit that is a circuit to be verified, and a setting file that describes changes to the simulation circuit and the emulation circuit A storage unit
A processor for realizing a simulator for simulating an effective module having all information of the circuit to be verified by activating the simulation program;
An emulator that has all the information of the circuit to be verified and emulates a valid module;
A transactor for transferring transactions between the simulator and the emulator;
A transfer unit for transferring the simulation result of the simulator to the emulator and transferring the emulation result of the emulator to the simulator based on the setting contents of the setting file when a condition for changing the condition file is satisfied; Prepared,
The simulator further includes a simulation control unit that interrupts the simulation when a condition for changing the condition file is satisfied, and instructs the change of the configuration of the simulation circuit based on the setting content of the setting file,
The emulator further includes an emulation control unit that interrupts emulation when a condition for changing the condition file is satisfied, and instructs the change of the configuration of the emulation circuit based on the setting contents of the setting file. A collaborative verification device.
前記転送部は、前記シミュレーション回路又は前記エミュレーション回路の構成が変更された場合に、前記設定ファイルの設定内容に基づいて、シミュレーション結果又はエミュレーション結果を前記エミュレータ又は前記シミュレータへ転送するモジュール実行状態転送を行う請求項1に記載の協調検証装置。   The transfer unit performs module execution state transfer for transferring the simulation result or the emulation result to the emulator or the simulator based on the setting contents of the setting file when the configuration of the simulation circuit or the emulation circuit is changed. The cooperative verification apparatus according to claim 1 to be performed. 前記シミュレーション制御部は、シミュレーションの実行の途中で前記条件ファイルの変更条件が満たされた場合にシミュレーションを中断し、前記設定ファイルの設定内容に基づいて、前記シミュレーション回路を構成する各モジュールを有効又は無効に設定し、
前記エミュレーション制御部は、エミュレーションの実行の途中で、前記条件ファイルの変更条件が成立した場合にエミュレーションを中断し、前記設定ファイルの設定内容に基づいて、前記エミュレーション回路を構成する各モジュールを有効又は無効に設定する請求項1又は2に記載の協調検証装置。
The simulation control unit interrupts the simulation when the condition file change condition is satisfied during the execution of the simulation, and enables or disables each module constituting the simulation circuit based on the setting contents of the setting file. Set it to disabled,
The emulation control unit interrupts the emulation when the condition file change condition is satisfied during the execution of the emulation, and enables or disables each module constituting the emulation circuit based on the setting contents of the setting file. The cooperative verification apparatus according to claim 1, wherein the cooperation verification apparatus is set to be invalid.
前記シミュレータは、前記シミュレーション実行中において、前記シミュレーション制御部によって無効に設定されたシミュレーション回路のモジュールにアクセスする場合に、トランザクションを前記トランザクタに指示するシミュレーションブリッジを更に有し、
前記エミュレータは、前記エミュレーション実行中において、前記エミュレーション制御部によって無効に設定されたエミュレーション回路のモジュールにアクセスする場合に、トランザクションを前記トランザクタに指示するエミュレーションブリッジを更に有し、
前記トランザクタは、前記シミュレーションブリッジによって指示されたトランザクションを前記エミュレータへ転送し、前記エミュレーションブリッジによって指示されたトランザクションを前記シミュレータへ転送することを特徴とする請求項3に記載の協調検証装置。
The simulator further includes a simulation bridge for instructing a transaction to the transactor when accessing a module of a simulation circuit invalidated by the simulation control unit during the simulation execution,
The emulator further includes an emulation bridge for instructing a transaction to the transactor when accessing a module of an emulation circuit invalidated by the emulation control unit during the execution of the emulation,
4. The cooperative verification apparatus according to claim 3, wherein the transactor transfers a transaction instructed by the simulation bridge to the emulator, and transfers a transaction instructed by the emulation bridge to the simulator.
前記シミュレーションブリッジは、前記シミュレーション制御部によって無効に設定されたシミュレーション回路のモジュールが前記エミュレーション制御部によって有効に設定されたモジュールに対応する場合に、前記トランザクションを転送するように前記トランザクタに指示し、
前記エミュレーションブリッジは、前記エミュレーション制御部によって無効に設定されたエミュレーション回路のモジュールが前記シミュレーション制御部によって有効に設定されたモジュールに対応する場合に、前記トランザクションを転送するように前記トランザクタに指示する請求項4に記載の協調検証装置。
The simulation bridge instructs the transactor to transfer the transaction when the module of the simulation circuit set to be invalid by the simulation control unit corresponds to the module set to be valid by the emulation control unit,
The emulation bridge instructs the transactor to transfer the transaction when the module of the emulation circuit disabled by the emulation controller corresponds to the module enabled by the simulation controller. Item 5. The cooperative verification device according to Item 4.
JP2008069433A 2008-03-18 2008-03-18 Cooperation verification device Withdrawn JP2009223762A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008069433A JP2009223762A (en) 2008-03-18 2008-03-18 Cooperation verification device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008069433A JP2009223762A (en) 2008-03-18 2008-03-18 Cooperation verification device

Publications (1)

Publication Number Publication Date
JP2009223762A true JP2009223762A (en) 2009-10-01

Family

ID=41240441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008069433A Withdrawn JP2009223762A (en) 2008-03-18 2008-03-18 Cooperation verification device

Country Status (1)

Country Link
JP (1) JP2009223762A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048539A (en) * 2010-08-27 2012-03-08 Hitachi Information & Communication Engineering Ltd Hardware/software collaborative verification system and method, and program
WO2014038030A1 (en) * 2012-09-06 2014-03-13 株式会社日立製作所 Co-simulation computer system, verification system for embedded systems, and verification method for embedded systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048539A (en) * 2010-08-27 2012-03-08 Hitachi Information & Communication Engineering Ltd Hardware/software collaborative verification system and method, and program
WO2014038030A1 (en) * 2012-09-06 2014-03-13 株式会社日立製作所 Co-simulation computer system, verification system for embedded systems, and verification method for embedded systems
JP5926807B2 (en) * 2012-09-06 2016-05-25 株式会社日立製作所 Computer system for co-simulation, verification system for embedded system, and verification method for embedded system

Similar Documents

Publication Publication Date Title
Lustig et al. Reducing GPU offload latency via fine-grained CPU-GPU synchronization
JP4975544B2 (en) Simulation apparatus and program
US8725485B2 (en) Simulation method and simulation apparatus
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
US20060229861A1 (en) Multi-core model simulator
EP3254199B1 (en) System and method for generating cross-core breakpoints in a multi-core microcontroller
JP2007122602A (en) Multi-core model simulation program, recording medium recording the program, multi-core model simulator, and multi-core model simulation method
US10528685B2 (en) Efficient mechanism in hardware and software co-simulation system
JP2008140405A (en) Co-validation method between electronic circuit and control program
JP2009223762A (en) Cooperation verification device
Carta et al. Multi-processor operating system emulation framework with thermal feedback for systems-on-chip
JP6249827B2 (en) Simulation apparatus and simulation program
Murillo et al. Synchronization for hybrid MPSoC full-system simulation
US20050071145A1 (en) Simulation apparatus, simulation program, and recording medium
Ko et al. Hardware-in-the-loop simulation for CPU/GPU heterogeneous platforms
JP5226848B2 (en) Simulation apparatus and program
Ranga ParrotPiton and ZynqParrot: FPGA Enablements for the BlackParrot RISC-V Processor
JP2006260014A (en) Speed converter with load control function
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
JP5344371B2 (en) Circuit verification apparatus, method and program
Ravichandran Modeling Microarchitectural Side Channel Attacks for Fun & Profit
Isakovic et al. A Survey of Hardware Technologies for Mixed-Critical Integration Explored in the Project
Pohl et al. A Survey of Hardware Technologies for Mixed-Critical Integration Explored in the Project EMC2
Khan et al. SIMICS*-SYSTEMC* INTEGRATION.
Wilhelm On the Road to Conviction: An Email Exchange with Edward Lee

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110607