JP2011039781A - Cooperative simulator and simulation method - Google Patents

Cooperative simulator and simulation method Download PDF

Info

Publication number
JP2011039781A
JP2011039781A JP2009186617A JP2009186617A JP2011039781A JP 2011039781 A JP2011039781 A JP 2011039781A JP 2009186617 A JP2009186617 A JP 2009186617A JP 2009186617 A JP2009186617 A JP 2009186617A JP 2011039781 A JP2011039781 A JP 2011039781A
Authority
JP
Japan
Prior art keywords
data
signal
simulation
change
hardware
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.)
Pending
Application number
JP2009186617A
Other languages
Japanese (ja)
Inventor
Isao Sasazaki
勲 笹▲崎▼
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009186617A priority Critical patent/JP2011039781A/en
Publication of JP2011039781A publication Critical patent/JP2011039781A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To verify a logic circuit by cooperative operation between hardware and software, in a cooperative simulator, simulating the logic circuit of a semiconductor integrated circuit. <P>SOLUTION: The cooperative simulator performs the simulation by use of the hardware representing a logic circuit part of an evaluation circuit and an operation model part functioning as an operation model of the evaluation circuit. The hardware has a first number addition means adding a first number generated in each change of a signal detected inside the hardware to data wherein the change of the signal is notified to the software, and the operation model part functions as a comparison means comparing the received first number of the data and a first expectation. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、半導体集積回路(以下、LSIと言う)の論理回路をシミュレーションする装置に関し、特に、ハードウェアとソフトウェアとの協調動作によって論理回路を検証する協調シミュレーション装置及びシミュレーション方法に関する。   The present invention relates to an apparatus for simulating a logic circuit of a semiconductor integrated circuit (hereinafter referred to as LSI), and more particularly, to a co-simulation apparatus and a simulation method for verifying a logic circuit by a cooperative operation of hardware and software.

従来より、CPU等を含むシステムLSIを開発する際には、事前に論理回路でシミュレーションをして動作確認することが行なわれている。論理回路を記述するRTL(Register Transfer Level)にてシミュレーションするRTLシミュレータでは、ハード動作のシミュレーション結果は非常に精度が良いが、ソフトウェアを動作させて確認する場合には、非常にシミュレーションに時間がかがり作業負荷が大きい。   Conventionally, when a system LSI including a CPU or the like is developed, the operation is confirmed by performing a simulation with a logic circuit in advance. In the RTL simulator that simulates the RTL (Register Transfer Level) describing the logic circuit, the simulation result of the hardware operation is very accurate. However, when checking by operating the software, the simulation takes a very long time. Heavy workload.

マイコンのソフトウェアを開発する場合の方法として、ソフトウェア開発用の装置ICE(In Circuit Emulator)を使用して、評価ボードに予め搭載しているソケットから信号の送受信を行い、外部装置との通信を行なう方法がある。ICEを用いた検証では、評価を行なうためのLSI(これを評価用chip又はEVA-chipと呼ぶことがある)を作成する必要があるが、このEVA-chipの開発には時間を要する。   As a method for developing microcomputer software, a software development device ICE (In Circuit Emulator) is used to send and receive signals from sockets pre-installed on the evaluation board and to communicate with external devices. There is a way. In verification using ICE, it is necessary to create an LSI for evaluation (sometimes referred to as an evaluation chip or EVA-chip), but it takes time to develop this EVA-chip.

EVA-chipを用いない他の方法として、ソフトウェアデバッグ用に、擬似的にCPUの動作をするソフトウェアモデルであるISS(Instruction Set Simulator)と、擬似的なROM、RAM、及び通信マクロとを組み合わせたシミュレータを用いて、ソフトウェアデバッグを行なう方法がある。この方法では、ISSシミュレータは、ソフトウェアで構成されており外部装置と通信することができない。また、通信マクロもソフトウェアで構成した擬似モデルであり、外部装置と通信することができない。   As another method that does not use EVA-chip, ISS (Instruction Set Simulator), which is a software model that operates a CPU in a pseudo manner, is combined with a pseudo ROM, RAM, and communication macro for software debugging. There is a method of performing software debugging using a simulator. In this method, the ISS simulator is configured by software and cannot communicate with an external device. The communication macro is also a pseudo model configured by software and cannot communicate with an external device.

外部装置と通信可能とするため、例えば、ソフトウェアデバッグを行なうPC(パーソナルコンピュータ)にFPGA(Field Programmable Gate Array)等を搭載したPCIボートを設置し、そのFPGAと外部通信装置とを通信ケーブルで接続し、ソフトウェアのデバッグをするハードウェア/ソフトウェア協調シミュレータ(Co-Simulator)が行なわれるようになった。このような構成によって、実際に外部通信装置と接続して、ソフトウェアのデバッグができるようになった。   In order to be able to communicate with external devices, for example, a PCI boat equipped with FPGA (Field Programmable Gate Array) etc. is installed on a PC (personal computer) that performs software debugging, and the FPGA and the external communication device are connected by a communication cable. However, a hardware / software co-simulator (Co-Simulator) for debugging software has come to be used. With such a configuration, software can be debugged by actually connecting to an external communication device.

ハードウェア/ソフトウェア協調シミュレータの動作環境では、動作クロックに依存するFPGA等のハードウェア動作環境と、その動作クロックに依存しないソフトウェアモデルのISSのソフトウェア動作環境との協調動作では、ハードウェアとソフトウェア間での信号授受のタイミング制御が問題となってくる。   In the hardware / software cooperative simulator operating environment, in the cooperative operation between the hardware operating environment such as FPGA that depends on the operating clock and the ISS software operating environment of the software model that does not depend on the operating clock, between hardware and software The timing control of signal transmission / reception on the Internet becomes a problem.

そのために、例えば、ハードウェアエミュレータからシステムシミュレータに出力する出力信号が変化した時のみシステムエミュレータに対し変化検出信号を出力したり、初回のシミュレーション実行時における信号の変化回数に基づいてシミュレーションが再度実行された際には、その変化回数に用いて必要となる信号のみをシステムシミュレータが読み出したりすることにより、信号の通信量を制限してシミュレーションの動作スピードを改善することが提案されている(例えば、特許文献1、2を参照)。   For this purpose, for example, a change detection signal is output to the system emulator only when the output signal output from the hardware emulator to the system simulator changes, or the simulation is executed again based on the number of signal changes when the first simulation is executed. In such a case, it is proposed that the system simulator reads out only the signals necessary for the number of changes, thereby limiting the amount of signal communication and improving the simulation operation speed (for example, , See Patent Documents 1 and 2).

特開2005−332162号公報JP 2005-332162 A 特開2006−331269号公報JP 2006-331269 A 特開2007−94591号公報JP 2007-94591 A 特開平10−312315号公報JP-A-10-312315

上記従来のハードウェア/ソフトウェア協調シミュレータでは、ソフトウェア側の処理よりもハードウェア側の速度が速いことによる、ハードウェア側にて発生した信号をISSモデル側に通知する際のソフトウェア側における信号線の変化を処理できないといった問題を解決することができない。   In the conventional hardware / software co-simulator, the signal line on the software side when the signal generated on the hardware side is notified to the ISS model side because the speed on the hardware side is faster than the processing on the software side. The problem of not being able to handle changes cannot be solved.

開示の協調シミュレーション装置は、評価回路の論理回路部を表すハードウェアと、前記評価回路の動作モデルとして機能する動作モデル部とを用いてシミュレーションする装置であって、前記ハードウェアは、該ハードウェア内部で検出した信号の変化毎に生成した第1番号を、該信号の変化を前記ソフトウェアに通知するデータに付加する第1番号付加手段を有し、前記動作モデル部は、受信した前記データの前記第1番号と、第1期待値とを比較する比較手段として機能する。   The disclosed co-simulation device is a device that performs simulation using hardware that represents a logic circuit unit of an evaluation circuit and an operation model unit that functions as an operation model of the evaluation circuit, and the hardware includes the hardware A first number adding means for adding a first number generated for each change in the internally detected signal to data notifying the software of the change in the signal; It functions as a comparison means for comparing the first number with the first expected value.

開示の協調シミュレーション装置において、ハードウェア側にて検出した信号の変化を通知するデータに通し番号が付加されることにより、その通し番号と期待値との比較によって、ソフトウェア側の処理がハードウェア側の処理速度より遅いことに起因して、信号の変化の通知ができなかったか否かを判断することができる。   In the disclosed co-simulation device, a serial number is added to data for notifying a change in a signal detected on the hardware side, and the processing on the software side is processed by comparing the serial number with the expected value. It can be determined whether or not notification of a change in signal has failed due to being slower than the speed.

協調シミュレーション装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of a co-simulation apparatus. 協調シミュレーションの動作環境例を示す図である。It is a figure which shows the operating environment example of a cooperative simulation. 協調シミュレーションにおけるデータ送受信の仕組みを説明するための図である。It is a figure for demonstrating the mechanism of the data transmission / reception in cooperative simulation. トランザクタの構成例を示す図である。It is a figure which shows the structural example of a transactor. データフォーマットの例を示す図である。It is a figure which shows the example of a data format. シミュレータ制御部での処理を説明するためのフローチャート図である。It is a flowchart figure for demonstrating the process in a simulator control part. CPU(ISS)モデルでの処理を説明するためのフローチャート図である。It is a flowchart figure for demonstrating the process by a CPU (ISS) model. シミュレータ制御部によって表示される画面構成例を示す図である。It is a figure which shows the example of a screen structure displayed by a simulator control part. トランザクタのタイムチャートを示す図である。It is a figure which shows the time chart of a transactor.

以下、本発明の実施の形態を図面に基づいて説明する。本実施例におけるハードウェアとソフトウェアとの協調動作によって論理回路を検証する協調シミュレーション装置100は、例えば、図1に示すようなハードウェア構成を有する。図1は、協調シミュレーション装置のハードウェア構成を示すブロック図である。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. A co-simulation apparatus 100 that verifies a logic circuit by cooperating hardware and software in this embodiment has a hardware configuration as shown in FIG. 1, for example. FIG. 1 is a block diagram illustrating a hardware configuration of the cooperative simulation apparatus.

図1において、協調シミュレーション装置100は、コンピュータによって制御される端末であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し、バスBに接続される。協調シミュレーション装置100は、更にハードウェアエミュレータとして動作するFPGA(Field Programmable Gate Array)4を搭載したPCIボード3を実装することによって、ハードウェア/ソフトウェア協調シミュレーションの動作環境を成す。   In FIG. 1, a co-simulation apparatus 100 is a terminal controlled by a computer, and includes a CPU (Central Processing Unit) 11, a memory unit 12, a display unit 13, an output unit 14, an input unit 15, and communication. The unit 16, the storage device 17, and the driver 18 are included, and are connected to the bus B. The co-simulation apparatus 100 further forms an operating environment for hardware / software co-simulation by mounting a PCI board 3 on which an FPGA (Field Programmable Gate Array) 4 that operates as a hardware emulator is mounted.

CPU11は、メモリユニット12に格納されたシミュレーションプログラムに従って協調シミュレーション装置100を制御する。シミュレーションプログラムは、CPU11によって実行されることにより、後述されるシミュレータ制御部として機能する他、評価チップのプロセッサを含む構成部を擬似的に表現することにより、ISS(Instruction Set Simulator)モデルによって擬似的に評価チップのターゲットプロセッサとして動作し、また、ROMモデル及びRAMモデルによって評価チップのROM及びRAMの動作を擬似的に行う。更に、例えばSCE−MI(Standard Co-Emulation and Modeling Interface)を介してFPGA4とのデータ送受信を行うハードウェアトランザクタのためのプロキシ(proxy)として動作する。また、シミュレーションプログラムは、CPU11によって実行されることにより、デバッグに必要なGUIを表示ユニット13に表示したり、入力ユニットから入力された指示に応じてシミュレーションを制御する等のデバッグ環境をユーザへ提供する。   The CPU 11 controls the co-simulation device 100 according to the simulation program stored in the memory unit 12. The simulation program is executed by the CPU 11 so as to function as a simulator control unit which will be described later, and also by pseudo-representing a configuration unit including a processor of an evaluation chip, and by using an ISS (Instruction Set Simulator) model. The ROM operates as a target processor of the evaluation chip, and the ROM and RAM of the evaluation chip are simulated in accordance with the ROM model and the RAM model. Furthermore, it operates as a proxy for a hardware transactor that performs data transmission / reception with the FPGA 4 via, for example, SCE-MI (Standard Co-Emulation and Modeling Interface). In addition, the simulation program is executed by the CPU 11 to display a GUI necessary for debugging on the display unit 13 or to provide a debugging environment to the user such as controlling the simulation according to an instruction input from the input unit. To do.

メモリユニット12には、RAM(Random Access Memory)やROM(Read-Only Memory)等が用いられ、CPU11にて実行されるシミュレーションプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。   The memory unit 12 uses RAM (Random Access Memory), ROM (Read-Only Memory), etc., and is obtained by a simulation program executed by the CPU 11, data necessary for processing by the CPU 11, and processing by the CPU 11. Stored data and the like are stored. A part of the memory unit 12 is allocated as a work area used for processing by the CPU 11.

表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、ユーザが協調シミュレーション装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。   The display unit 13 displays various information required under the control of the CPU 11. The output unit 14 includes a printer or the like, and is used for outputting various types of information according to instructions from the user. The input unit 15 includes a mouse, a keyboard, and the like, and is used by a user to input various information necessary for the cooperative simulation apparatus 100 to perform processing. The communication unit 16 is a device that is connected to, for example, the Internet, a LAN (Local Area Network), and the like and controls communication with an external device. For example, a hard disk unit is used as the storage device 17 and stores data such as programs for executing various processes.

協調シミュレーション装置100よって行われる処理を実現するシミュレーションプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって協調シミュレーション装置100に提供される。即ち、シミュレーションプログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたシミュレーションプログラムがバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたシミュレーションプログラムに従ってCPU11がその処理を開始する。   A simulation program that realizes processing performed by the cooperative simulation apparatus 100 is provided to the cooperative simulation apparatus 100 by a storage medium 19 such as a CD-ROM (Compact Disc Read-Only Memory). That is, when the storage medium 19 storing the simulation program is set in the driver 18, the driver 18 reads the program from the storage medium 19, and the read simulation program is installed in the storage device 17 via the bus B. The When the program is activated, the CPU 11 starts its processing according to the simulation program installed in the storage device 17.

尚、シミュレーションプログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。本実施例に係る処理を実現するプログラムは、通信ユニット16によってネットワークを介してダウンロードし、記憶装置17にインストールするようにしても良い。また、USB対応の協調シミュレーション装置100であれば、USB接続可能な外部記憶装置からインストールするようにしても良い。更に、SDカード等のフラッシュメモリ対応の協調シミュレーション装置100であれば、そのようなメモリカードからインストールするようにしても良い。   The medium for storing the simulation program is not limited to the CD-ROM, and any medium that can be read by a computer may be used. The program for realizing the processing according to the present embodiment may be downloaded via the network by the communication unit 16 and installed in the storage device 17. Further, in the case of the USB-compatible co-simulation apparatus 100, it may be installed from an external storage device capable of USB connection. Further, in the case of a co-simulation device 100 that supports flash memory such as an SD card, the memory card may be installed.

FPGA4は、RTL(Register Transfer Level)等のハードウェア記述言語によるプログラムによって論理回路として動作するプログラマブル素子を有するハードウェアエミュレータであり、PCIボード3に搭載される。評価チップの論理回路の動作を実行するRTLプログラムがロードされたFPGA4を搭載したPCIボード3が、協調シミュレーション装置100に実装される。   The FPGA 4 is a hardware emulator having a programmable element that operates as a logic circuit by a program in a hardware description language such as RTL (Register Transfer Level), and is mounted on the PCI board 3. The PCI board 3 equipped with the FPGA 4 loaded with the RTL program for executing the operation of the logic circuit of the evaluation chip is mounted on the co-simulation apparatus 100.

図2は、協調シミュレーションの動作環境例を示す図である。図2において、協調シミュレーション装置100は、FPGA4が実装したPCIボード3を搭載し、FPGA4が通信ケーブル5によって外部通信装置6に接続されることによって、外部通信装置6と通信可能となる。   FIG. 2 is a diagram illustrating an example of the operating environment of the cooperative simulation. In FIG. 2, the co-simulation device 100 includes the PCI board 3 mounted with the FPGA 4, and the FPGA 4 is connected to the external communication device 6 through the communication cable 5, thereby enabling communication with the external communication device 6.

協調シミュレーション装置100は、本発明に係るシミュレーションプログラムを実行することによって、シミュレータ制御部20と、動作モデル23として機能する。動作モデル23は、例えば、評価チップの通信機能部分を除く構成部を擬似的にソフトウェアで実現する部分であって、CPU(ISS)モデル23aと、ROMモデル23bと、RAMモデル23cと、プロキシ23dとを有する。ROMモデル23bには、ユーザプログラム23uが含まれている。   The cooperative simulation apparatus 100 functions as the simulator control unit 20 and the behavior model 23 by executing the simulation program according to the present invention. The operation model 23 is, for example, a part that realizes a configuration unit excluding the communication function part of the evaluation chip by software, and includes a CPU (ISS) model 23a, a ROM model 23b, a RAM model 23c, and a proxy 23d. And have. The ROM model 23b includes a user program 23u.

CPU(ISS)モデル23aは、評価LSIのターゲットプロセッサとして動作し、ROMモデル23bとRAMモデル23cとを制御して、ROMモデル23bに格納されているユーザプログラム23uを実行する。また、CPU(ISS)モデル23aは、評価LSIの通信部分となるFPGA4の通信マクロ42とのデータ送受信をプロキシ23dを介して行なう。   The CPU (ISS) model 23a operates as a target processor of the evaluation LSI, controls the ROM model 23b and the RAM model 23c, and executes the user program 23u stored in the ROM model 23b. The CPU (ISS) model 23a performs data transmission / reception with the communication macro 42 of the FPGA 4 serving as a communication part of the evaluation LSI via the proxy 23d.

FPGA4は、論理回路の動作をハードウェア記述言語で記述した論理回路マクロをエミュレーションするハードウェアエミュレータであり、トランザクタ41と、通信マクロ42とを有する。トランザクタ41は、SCE−MIに対応したデータ送受信を制御する。通信マクロ42は、例えば、評価LSIのうちターゲットプロセッサ以外の論理回路の動作をRTL等のハードウェア記述言語によって記述したプログラムであり、FPGA4のプログラマブル素子にロードされている。   The FPGA 4 is a hardware emulator that emulates a logic circuit macro that describes the operation of the logic circuit in a hardware description language, and includes a transactor 41 and a communication macro 42. The transactor 41 controls data transmission / reception corresponding to SCE-MI. The communication macro 42 is, for example, a program that describes the operation of a logic circuit other than the target processor in the evaluation LSI in a hardware description language such as RTL, and is loaded into a programmable element of the FPGA 4.

図3は、協調シミュレーションにおけるデータ送受信の仕組みを説明するための図である。図3(A)において、動作モデル23のCPU(ISS)モデル23aによって実行されるハードウェア側のFPGA4からデータを受信するためのプログラム例が、シミュレーションプログラム23mで示される。   FIG. 3 is a diagram for explaining a mechanism of data transmission / reception in the cooperative simulation. In FIG. 3A, an example of a program for receiving data from the hardware-side FPGA 4 executed by the CPU (ISS) model 23a of the operation model 23 is shown as a simulation program 23m.

協調シミュレーション装置100とFPGA4とのアクセスのやり取りにおいて、CPU(ISS)モデル23aがシミュレーションプログラム23m内のSCE−MIで提供されるCの関数Service_loop()を呼ぶことにより、FPGA4からデータの受信があれば、予めcallbackとして宣言された関数IsReady()にジャンプし、その関数の中で、変数に代入することによりデータを受信する。   In the exchange of access between the co-simulation apparatus 100 and the FPGA 4, the CPU (ISS) model 23 a can receive data from the FPGA 4 by calling the C function Service_loop () provided by the SCE-MI in the simulation program 23 m. For example, the function jumps to the function IsReady () declared in advance as callback, and receives data by substituting it into a variable in the function.

FPGA4では、送信を行う信号線としてデータ受信可能ReceiveReady信号、データ送信可能TransmitReady信号、及びデータData[31:0]信号がインターフェイス信号として存在する。ISSモデル23a側がデータを受信可能な場合はデータ受信可能ReceiveReady信号がHighとなる。通信マクロ42からの割込み信号などの信号に応じてFPGA4側からISSモデル23a側へデータを送信する場合、FPGA4はデータ送信可能TransmitReady信号をLowからHighに変化させ、ISSモデル23a側は両信号ともHighの時にデータData[31:0]信号を受信する。   In the FPGA 4, a data ready receive ready signal, a data send ready transmit signal, and a data data [31: 0] signal exist as interface signals as signal lines for transmission. When the ISS model 23a side can receive data, the receive ready signal for receiving data becomes High. When data is transmitted from the FPGA 4 side to the ISS model 23a side in response to a signal such as an interrupt signal from the communication macro 42, the FPGA 4 changes the transmit ready signal that can be transmitted from Low to High, and both signals are transmitted from the ISS model 23a side. Data Data [31: 0] signals are received when High.

図3(B)は、データ受信可能ReceiveReady信号がHighの状態でかつデータ送信可能TransmitReady信号がHighとなった期間に、CPU(ISS)モデル23aが関数IsReady()によってデータData[31:0]信号を受信した様子をタイミングチャートで示している。   FIG. 3B shows that the CPU (ISS) model 23a performs data Data [31: 0] with the function IsReady () during the period when the data ready ReceiveReady signal is High and the data transmittable TransmitReady signal is High. A state of receiving a signal is shown in a timing chart.

本実施例では、データ受信が適切に行なわれなかった原因が、CPU(ISS)モデル23aの処理速度が遅いことによるものであるのか、シミュレーションプログラム23mのバグによるものであるのかを判別するために、FPGA4のトランザクタ41にて、信号線が変化したことを検出した時に、個別の通し番号をふるようにする。また、CPU(ISS)モデル23aへデータを通知した回数を示す通し番号を作成し、その2つの番号とともに、FPGA4側からCPU(ISS)モデル23a側へ信号線の状態を通知する。CPU(ISS)モデル23a側への通知は、信号線の状態が変わった時に1回だけ通知する。尚、信号線が変化したことを検出した時に生成される通し番号と、トランザクタ41がCPU(ISS)モデル23aへデータを通知した回数を示す通し番号の両方が必ずしも必要なわけではなく、片方のみを用いてもよい。特に、信号線が変化したことを検出した時に付される通し番号により、データ受信が適切に行なわれなかった原因が、CPU(ISS)モデル23aの処理速度が遅いことによるものであることを検出することができる。   In this embodiment, in order to determine whether the reason why the data is not properly received is due to the slow processing speed of the CPU (ISS) model 23a or the bug of the simulation program 23m. When a change in the signal line is detected by the transactor 41 of the FPGA 4, an individual serial number is assigned. Further, a serial number indicating the number of times data is notified to the CPU (ISS) model 23a is created, and together with the two numbers, the state of the signal line is notified from the FPGA 4 side to the CPU (ISS) model 23a side. The notification to the CPU (ISS) model 23a is notified only once when the state of the signal line changes. Note that both the serial number generated when it is detected that the signal line has changed and the serial number indicating the number of times the transactor 41 has notified the CPU (ISS) model 23a are not necessarily required, and only one of them is used. May be. In particular, it is detected from the slow processing speed of the CPU (ISS) model 23a that the data reception has not been performed properly based on the serial number assigned when it is detected that the signal line has changed. be able to.

図4は、トランザクタの構成例を示す図である。図4において、トランザクタ41は、通知する割込み信号などの信号をサンプリングしてLowからHigh及びHighからLowになったことを検出するエッジ検出部41cと、エッジ検出信号をカウントするカウント部41bと、SCE−MIインターフェイス信号を制御する制御部41aと、動作モデル23(ソフトウェア)側にデータを通知した回数をカウントする通知カウンタ部41eと、通知されるデータを保持するレジスタ41dとを有する。   FIG. 4 is a diagram illustrating a configuration example of a transactor. In FIG. 4, a transactor 41 samples a signal such as an interrupt signal to be notified and detects that the signal has changed from Low to High and High to Low, a count unit 41b that counts the edge detection signal, It has a control unit 41a that controls the SCE-MI interface signal, a notification counter unit 41e that counts the number of times data is notified to the behavior model 23 (software) side, and a register 41d that holds the notified data.

制御部41aは、データ受信可能ReceiveReady信号、データ送信可能TransmitReady信号、及びデータData[31:0]信号のSCE−MIインターフェイス信号を制御する制御部であり、協調シミュレーション装置100へデータ通知するデータ通知状態となった回数をカウントするための通知カウンタ部41eを有する。制御部41aは、エッジ検出部41cから送出されるエッジ検出信号に応じて、データ受信可能ReceiveReady信号がHighの場合に、データ送信可能TransmitReady信号をLowからHighに変化させると共に、通知カウンタ部41eに通知番号をインクリメントさせる。通知カウンタ部41eは、レジスタ41dに通知番号を設定する。   The control unit 41a is a control unit that controls the SCE-MI interface signal of the data ready ReceiveReady signal, the data sendable TransmitReady signal, and the data Data [31: 0] signal, and data notification for notifying the co-simulation device 100 of data. It has a notification counter unit 41e for counting the number of times the state has been reached. In response to the edge detection signal sent from the edge detection unit 41c, the control unit 41a changes the data transmission possible TransmitReady signal from Low to High when the data receivable ReceiveReady signal is High and also notifies the notification counter unit 41e. Increment the notification number. The notification counter unit 41e sets a notification number in the register 41d.

エッジカウンタ部41bは、エッジ検出部41cから送出されるエッジ検出信号の受信に応じて、エッジ番号をインクリメントしてレジスタ41dにエッジ番号を設定する。エッジ検出部41cは、通信マクロ42から送出されるレジスタ41dに書き込まれる割込み信号などの信号を受信して、エッジ検出信号をエッジカウンタ部41bと制御部41aとに送出する。   In response to the reception of the edge detection signal sent from the edge detection unit 41c, the edge counter unit 41b increments the edge number and sets the edge number in the register 41d. The edge detection unit 41c receives a signal such as an interrupt signal written in the register 41d sent from the communication macro 42, and sends an edge detection signal to the edge counter unit 41b and the control unit 41a.

レジスタ41dは、エッジカウンタ部41bでカウント制御されるエッジ番号と、制御部41aの通知カウンタ部41eでカウント制御される通知番号と、通信マクロ42から送出される信号の値とを保持する。   The register 41d holds an edge number that is count-controlled by the edge counter unit 41b, a notification number that is count-controlled by the notification counter unit 41e of the control unit 41a, and a value of a signal transmitted from the communication macro 42.

このような構成において、エッジ検出部41cから送出されるエッジ検出信号は制御部41aへ伝播し、制御部41aが通知可能な状態であれば、データ送信するためのデータ送信可能TransmitReady信号をアサートする。通知可能な状態とは、
・制御部41aが動作モデル23(ソフトウェア)側に通知中ではない
・次にLowからHighとなったことを通知する順番であること
・LowからHighへの変化を検出したこと
を示す。信号がHighからLowに変化した場合は、
・制御部41aが動作モデル23(ソフトウェア)側に通知中ではない
・次にHighからLowとなったことを通知する順番であること
・HighからLowへの変化を検出したこと
を検出すると、動作モデル23(ソフトウェア)側へデータを通知する。CPU(ISS)モデル23aがデータを読み取った時、それを示すデータ受信可能ReceiveReady信号をアサートする。両信号がアサートされた時、そのデータがCPU(ISS)モデル23aによって読み取られたことを示し、次のデータ送信をすることができる。CPU(ISS)モデル23aは、通知されたデータを確認し、エッジ番号が連番でない場合は、エラーメッセージを表示ユニット13に表示させ、ユーザはこのエラーメッセージによりソフトウェア側の処理が遅いと判断することができる。また、通知番号が連番でない場合においても同様に、エラーメッセージを表示ユニット13に表示させ、ユーザはこのエラーメッセージによりソフトウェアにバグがあると判断することができる。
In such a configuration, the edge detection signal transmitted from the edge detection unit 41c is propagated to the control unit 41a, and if the control unit 41a can be notified, the data ready transmit ready signal for data transmission is asserted. . What can be notified?
-The control unit 41a is not informing the operation model 23 (software) side-Next, it is the order to notify that it has changed from Low to High-Indicates that a change from Low to High has been detected. If the signal changes from High to Low,
-The control unit 41a is not informing the operation model 23 (software) side-It is the next order to notify that it has changed from High to Low-When it detects that a change from High to Low has been detected, it operates Data is notified to the model 23 (software) side. When the CPU (ISS) model 23a reads data, it asserts a receive ready signal indicating that the data can be received. When both signals are asserted, it indicates that the data has been read by the CPU (ISS) model 23a, and the next data transmission can be performed. The CPU (ISS) model 23a confirms the notified data, and if the edge number is not a sequential number, an error message is displayed on the display unit 13, and the user determines that the processing on the software side is slow due to this error message. be able to. Similarly, even when the notification number is not a serial number, an error message is displayed on the display unit 13, and the user can determine that there is a bug in the software based on the error message.

図5は、データフォーマットの例を示す図である。図5において、データData[31:0]信号のデータフォーマットは、例えば、ビット0は通信マクロ42からの信号の状態(High又はLow)示し、ビット16から23は通知カウンタ部41eの制御による通知番号を示し、ビット24から31にエッジカウンタ部41bの制御によるエッジ番号を示す。   FIG. 5 is a diagram illustrating an example of a data format. In FIG. 5, the data format of the data Data [31: 0] signal is, for example, bit 0 indicates the state (High or Low) of the signal from the communication macro 42, and bits 16 to 23 are notifications controlled by the notification counter unit 41e The number is shown, and bits 24 to 31 show the edge number controlled by the edge counter 41b.

図5では、レジスタ41dが32ビットレジスタである場合のデータフォーマットの例を示したが、32ビットレジスタに限定されるものではなく、1回のデータ送信において、エッジ番号と、通知番号と、信号の値とが同時に協調シミュレーション装置100に送信されれば良い。   FIG. 5 shows an example of a data format when the register 41d is a 32-bit register. However, the data format is not limited to a 32-bit register, and an edge number, a notification number, and a signal are transmitted in one data transmission. May be transmitted to the co-simulation device 100 at the same time.

次に、協調シミュレーション装置100での動作について説明する。図6は、シミュレータ制御部での処理を説明するためのフローチャート図である。図6において、シミュレータ制御部20は、表示ユニット13に、評価対象のユーザプログラム23uをデバッグするためのRUNボタン等の制御ボタンを表示させ、又は、エラーが発生していたらエラーメッセージを表示させる(ステップS11)。初期状態、又は、CPU(ISS)モデル23aによってブレークポイントにユーザプログラム23uが到達した状態では、シミュレータ制御部20は、ユーザプログラム23uを実行するためのRUNボタン等の制御ボタンを表示する。一方、CPU(ISS)モデル23aからエラー発生が通知されている場合、シミュレータ制御部20は、表示ユニット13にエラーメッセージを表示する。   Next, the operation in the co-simulation apparatus 100 will be described. FIG. 6 is a flowchart for explaining the processing in the simulator control unit. In FIG. 6, the simulator control unit 20 causes the display unit 13 to display a control button such as a RUN button for debugging the user program 23u to be evaluated, or to display an error message if an error has occurred ( Step S11). In an initial state or a state in which the user program 23u has reached a breakpoint by the CPU (ISS) model 23a, the simulator control unit 20 displays a control button such as a RUN button for executing the user program 23u. On the other hand, when an error has been notified from the CPU (ISS) model 23 a, the simulator control unit 20 displays an error message on the display unit 13.

シミュレータ制御部20は、エラー発生か否かを判断する(ステップS12)。エラー発生の場合、この処理を終了する。ユーザは、表示ユニット13に表示されたエラーメッセージに基づいて、エラーの発生がCPU(ISS)モデル23aの処理速度が遅いことによるものであるのか、シミュレーションプログラム23mのバグによるものであるのかを判別する。   The simulator control unit 20 determines whether an error has occurred (step S12). If an error has occurred, this process ends. Based on the error message displayed on the display unit 13, the user determines whether the error is caused by a slow processing speed of the CPU (ISS) model 23a or a bug of the simulation program 23m. To do.

一方、エラー発生ではない場合、シミュレータ制御部20は、ユーザプログラム23uを表示ユニット13に表示させ(ステップS13)、更に、ユーザによって指定されたブレークポイントを表示ユニット13に表示されたユーザプログラム23uと対応させて表示させる(ステップS14)。   On the other hand, if no error has occurred, the simulator control unit 20 displays the user program 23u on the display unit 13 (step S13), and further displays the user program 23u displayed on the display unit 13 with the breakpoint specified by the user. The display is made in correspondence (step S14).

シミュレータ制御部20は、ユーザからのRUNボタンの操作によるRUNコマンドの入力待ちとなり(ステップS15)、RUNコマンドが入力されるとCPU(ISS)モデル23aに制御を移し、CPU(ISS)モデル23aによる処理が実行される(ステップS16)。ブレークポイントにユーザプログラム23uが到達した場合、又は、エラーが発生した場合等により、CPU(ISS)モデル23aからシミュレータ制御部20へと制御が戻り、シミュレータ制御部20は、ステップS11から上述同様の処理を繰り返す。   The simulator control unit 20 waits for a RUN command to be input by the user operating the RUN button (step S15). When the RUN command is input, the control is transferred to the CPU (ISS) model 23a, and the CPU (ISS) model 23a Processing is executed (step S16). When the user program 23u reaches the breakpoint or when an error occurs, the control returns from the CPU (ISS) model 23a to the simulator control unit 20, and the simulator control unit 20 performs the same as described above from step S11. Repeat the process.

図7は、CPU(ISS)モデルでの処理を説明するためのフローチャート図である。図7において、CPU(ISS)モデル23aは、エラーが発生しているか否かを判断する(ステップS21)。エラーが発生している場合、CPU(ISS)モデル23aは、この処理を終了し、シミュレーション制御部20へと制御が戻る。   FIG. 7 is a flowchart for explaining processing in the CPU (ISS) model. In FIG. 7, the CPU (ISS) model 23a determines whether or not an error has occurred (step S21). If an error has occurred, the CPU (ISS) model 23a ends this processing and returns control to the simulation control unit 20.

一方、エラーが発生していない場合、CPU(ISS)モデル23aは、ユーザプログラム23uの実行がブレークポイントに到達したか、又は、プログラムの終了となったか否かを判断する(ステップS22)。ブレークポイントに到達した場合、CPU(ISS)モデル23aは、この処理を終了し、シミュレーション制御部20へと制御が戻る。   On the other hand, if no error has occurred, the CPU (ISS) model 23a determines whether or not the execution of the user program 23u has reached a breakpoint or the program has ended (step S22). When the breakpoint is reached, the CPU (ISS) model 23a finishes this process, and the control returns to the simulation control unit 20.

一方、ブレークポイントに到達していない場合、CPU(ISS)モデル23aは、プログラムカウンタのアドレスから命令コードをリードし、プログラムカウンタを更新する(ステップS23)。   On the other hand, if the breakpoint has not been reached, the CPU (ISS) model 23a reads the instruction code from the address of the program counter and updates the program counter (step S23).

ここで、命令コードの内容により分類される4種類の動作について説明する。   Here, four types of operations classified according to the contents of the instruction code will be described.

1.CPU(ISS)モデル23aの外部に対しアクセスをしない
2.CPUの外部に対しリードアクセスをする(FPGA4内の通信マクロ42へのリードを除く)
3.CPUの外部に対しライトアクセスをする(FPGA4内の通信マクロ42へのライトを除く)
4.SCE−MI(プロキシ23d及びトランザクタ41)を経由して、FPGA4内の通信マクロ42へアクセスする
1. 1. Do not access the outside of the CPU (ISS) model 23a. Read access to the outside of the CPU (except for reading to the communication macro 42 in the FPGA 4)
3. Write access to the outside of the CPU (except for writing to the communication macro 42 in the FPGA 4)
4). The communication macro 42 in the FPGA 4 is accessed via the SCE-MI (proxy 23d and transactor 41).

命令には、上記の命令以外にも、CPUのアキュムレートレジスタの計算のみの命令が存在するが、この命令は外部アクセスをしない上記動作種類1に分類できる。動作種類4にて、通信マクロ42が外部通信装置6とやり取りを行ったり、外部通信装置6よりデータを受信すると、通信マクロ42はCPUへ割込みを通知する。この割込みは、SCE−MIを通して、CPU(ISS)モデル23aに通知される。CPU(ISS)モデル23aでは、CPUにて1命令実行後、割込みがあるかどうかをチェックし、もしSCE−MIを通して割込みが来ていればエッジ番号と通知番号をチェックし、期待値と違っていればエラーが発生したとみなす。   In addition to the above-described instructions, there are instructions that only calculate the CPU's Accumulate Register, but these instructions can be classified into the above operation type 1 that does not perform external access. When the communication macro 42 communicates with the external communication device 6 or receives data from the external communication device 6 in the operation type 4, the communication macro 42 notifies the CPU of an interrupt. This interrupt is notified to the CPU (ISS) model 23a through SCE-MI. In the CPU (ISS) model 23a, after executing one instruction in the CPU, it is checked whether there is an interrupt. If an interrupt is received through the SCE-MI, the edge number and the notification number are checked, which is different from the expected value. If an error occurs, it is considered that an error has occurred.

処理の説明に戻り、ステップS23にて、CPU(ISS)モデル23aは、命令コードの内容により上述した4種類の動作に応じた処理を行う。読み出した命令コードが外部アクセスをしない処理の場合、ステップS27へと進む。読み出した命令コードがリード命令である場合、命令の解釈によりアドレスを計算し、そのアドレスからデータをリードし(ステップS24)、ステップS27へと進む。読み出した命令コードがライト命令である場合、命令の解釈によりアドレスを計算し、そのアドレスからデータをライトし(ステップS25)、ステップS27へと進む。読み出した命令コードが通信マクロ42へのアクセスである場合、SCE−MIを介して、FPGA4内の通信マクロ42にアクセスして(ステップS26)、ステップS27へと進む。   Returning to the description of the processing, in step S23, the CPU (ISS) model 23a performs processing according to the above-described four types of operations according to the contents of the instruction code. If the read instruction code is a process that does not perform external access, the process proceeds to step S27. If the read instruction code is a read instruction, an address is calculated by interpreting the instruction, data is read from the address (step S24), and the process proceeds to step S27. If the read instruction code is a write instruction, an address is calculated by interpreting the instruction, data is written from the address (step S25), and the process proceeds to step S27. If the read instruction code is an access to the communication macro 42, the communication macro 42 in the FPGA 4 is accessed via the SCE-MI (step S26), and the process proceeds to step S27.

CPU(ISS)モデル23aは、FPGA4内の通信マクロ42からの割込みが在るか否かをチェックし、エッジ番号及び通知番号をチェックして期待値と違っていればエラーが発生したと見なし(ステップS27)、ステップS21へと戻る。エラーが発生していてステップS21へ戻った場合、CPU(ISS)モデル23aは、この処理を終了し、シミュレーション制御部20へと制御が戻る。   The CPU (ISS) model 23a checks whether there is an interrupt from the communication macro 42 in the FPGA 4, and checks the edge number and the notification number. Step S27) returns to Step S21. When an error has occurred and the process returns to step S <b> 21, the CPU (ISS) model 23 a ends this process, and the control returns to the simulation control unit 20.

エラーの発生もなく、かつ、プログラムカウンタがブレークポイントに達することなくステップS21へと戻った場合、CPU(ISS)モデル23aは、ステップS23で次の命令をリードして上述同様の処理を繰り返す。ユーザプログラム23uの終了でない場合も同様である。   If no error occurs and the program counter returns to step S21 without reaching the breakpoint, the CPU (ISS) model 23a reads the next instruction in step S23 and repeats the same processing as described above. The same applies when the user program 23u is not terminated.

図8は、シミュレータ制御部によって表示される画面構成例を示す図である。図8において、シミュレータ制御部20は、ユーザプログラム23uを実行するためのRUNボタン等のデバッグ操作に必要な制御ボタンを表示する制御ボタン表示域81と、ユーザプログラム23uを表示するユーザプログラム表示域82と、ユーザによって指定されたブレークポイント83と、エラーメッセージを表示するエラーメッセージ表示域84とを有する。   FIG. 8 is a diagram illustrating a screen configuration example displayed by the simulator control unit. In FIG. 8, the simulator control unit 20 includes a control button display area 81 for displaying control buttons necessary for debugging operations such as a RUN button for executing the user program 23u, and a user program display area 82 for displaying the user program 23u. And a breakpoint 83 designated by the user and an error message display area 84 for displaying an error message.

制御ボタン表示域81のRUNボタン81aが押下されると、シミュレータ制御部20は制御をCPU(ISS)23aに移す。CPU(ISS)23aでの処理にて、ブレークポイント83まで実行されて制御がシミュレータ制御部20に戻ると、そのブレークポイント83に対応するコードを含めてその前後のユーザプログラム23uのコードがユーザプログラム表示域82に表示される。そして、ユーザの操作が可能となる。   When the RUN button 81a in the control button display area 81 is pressed, the simulator control unit 20 transfers control to the CPU (ISS) 23a. When the CPU (ISS) 23a executes the process up to the break point 83 and the control returns to the simulator control unit 20, the code of the user program 23u before and after that including the code corresponding to the break point 83 is the user program. It is displayed in the display area 82. And a user's operation is attained.

また、CPU(ISS)23aでの処理にてエラーが発生して制御がシミュレータ制御部20に戻った場合、CPU(ISS)23aからのエラー通知内容に応じてエラーメッセージ表示域84にエラーメッセージを表示する。例えば、
《エラー発生!! Edge No.=0xAA(0xCC), Notify No.=0xBB(0xBB) 》
のようなエラーメッセージが表示される。「Edge No.」と「Notify No.」とは、CPU(ISS)23aで受信したエッジ番号と通知番号とを示し、各値の( )内には期待値が示される。この例では、通知番号は期待値「0xBB」と一致したものの、エッジ番号は期待値が「0xCC」であるところ、受信した値は「0xAA」であったため、エラー発生と見なされたことが分かる。
Further, when an error occurs in the processing in the CPU (ISS) 23a and the control returns to the simulator control unit 20, an error message is displayed in the error message display area 84 according to the error notification content from the CPU (ISS) 23a. indicate. For example,
<< Error occurred! Edge No. = 0xAA (0xCC), Notify No. = 0xBB (0xBB) >>
An error message like this is displayed. “Edge No.” and “Notify No.” indicate an edge number and a notification number received by the CPU (ISS) 23a, and an expected value is indicated in () of each value. In this example, the notification number matches the expected value “0xBB”, but the edge number is expected to be “0xCC”, but the received value is “0xAA”, so it is understood that an error occurred. .

図9は、トランザクタのタイムチャートを示す図である。図9において、sig_d0信号は、通信マクロ42からエッジ検出部41cに供給される割込み信号である(図9(a))。エッジ検出部41cは、通信マクロ42から受信した割込みsig_d0信号を1クロック遅延させた遅延sig_d1信号(図9(b))を用いて、割込みsig_d0信号のエッジを検出してエッジ検出edge_det信号(図9(c))をエッジカウンタ部41bと制御部41aとに送出する。   FIG. 9 is a diagram showing a time chart of the transactor. In FIG. 9, the sig_d0 signal is an interrupt signal supplied from the communication macro 42 to the edge detection unit 41c (FIG. 9A). The edge detection unit 41c detects an edge of the interrupt sig_d0 signal by using a delayed sig_d1 signal (FIG. 9B) obtained by delaying the interrupt sig_d0 signal received from the communication macro 42 by one clock, and detects an edge detection edge_det signal (FIG. 9). 9 (c)) is sent to the edge counter 41b and the controller 41a.

エッジカウンタ部41bは、エッジ検出部41cからのエッジ検出を示すエッジ検出edge_det信号を受信するごとにインクリメントしたエッジ番号を示すエッジ番号edge_no信号(図9(d))を用いてレジスタ41dに設定する。   The edge counter unit 41b sets in the register 41d using an edge number edge_no signal (FIG. 9 (d)) indicating an edge number incremented each time an edge detection edge_det signal indicating edge detection from the edge detection unit 41c is received. .

一方、レジスタ41dでは、通信マクロ42からの割込みsig_d0信号がHighの状態を検出するためのsignal_h_det_enable信号(図9(f))と、割込み信号がLowの状態を検出するためのsignal_l_det_enable信号(図9(h))とを有し、夫々検出後に切り替えて交互に割込みsig_d0信号のHighとLowの状態を検出する。signal_h_det_enable信号によって検出された割込みsig_d0信号のHighの状態は、h_set_p信号(図9(g))として出力される。同様に、signal_l_det_enable信号によって検出された割込みsig_d0信号のHighの状態は、l_set_p信号(図9(i))として出力される。割込みsig_d0信号の状態を設定するsig_level信号(図9(m))は、h_set_p信号の出力に応じて図5に示すデータフォーマットの信号の状態を示すビット0に「1」を設定し、l_set_p信号の出力に応じて図5に示すデータフォーマットの信号の状態を示すビット0に「0」を設定する。   On the other hand, in the register 41d, a signal_h_det_enable signal (FIG. 9 (f)) for detecting a high state of the interrupt sig_d0 signal from the communication macro 42 and a signal_l_det_enable signal (FIG. 9) for detecting a low state of the interrupt signal. (H)) are switched after detection, and the High and Low states of the interrupt sig_d0 signal are alternately detected. The High state of the interrupt sig_d0 signal detected by the signal_h_det_enable signal is output as the h_set_p signal (FIG. 9 (g)). Similarly, the High state of the interrupt sig_d0 signal detected by the signal_l_det_enable signal is output as the l_set_p signal (FIG. 9 (i)). The sig_level signal (FIG. 9 (m)) for setting the state of the interrupt sig_d0 signal sets “1” to bit 0 indicating the state of the signal of the data format shown in FIG. 5 according to the output of the h_set_p signal, and the l_set_p signal Is set to bit 0 indicating the state of the signal of the data format shown in FIG.

つまり、signal_h_det_enable信号は、次にLowからHighとなる順番であることを示し、h_set_p信号は、LowからHighを検出したことを示す。同様に、signal_l_det_enable信号は、次にHighからLowとなる順番であることを示し、l_set_p信号は、HighからLowを検出したことを示す。   That is, the signal_h_det_enable signal indicates the next order from Low to High, and the h_set_p signal indicates that High is detected from Low. Similarly, the signal_l_det_enable signal indicates the next order from High to Low, and the l_set_p signal indicates that Low is detected from High.

このような割込みsig_d0信号の状態の検出は、データ送信可能TransmitReady信号(図9(k))を反転させたsense_enable信号(図9(e))がHighの間に行なわれ、検出と同時にデータ送信可能TransmitReady信号がHighとなるため、sense_enable信号はLowとなる。sense_enable信号は制御部41aから供給されるようにすればよい。   The detection of the state of the interrupt sig_d0 signal is performed while the sense_enable signal (FIG. 9 (e)) obtained by inverting the transmit ready signal (FIG. 9 (k)) is high, and data transmission is performed simultaneously with the detection. Since the possible TransmitReady signal becomes High, the sense_enable signal becomes Low. The sense_enable signal may be supplied from the control unit 41a.

制御部41aは、エッジ検出信号edge_det信号(図9(c))の受信毎に、通知カウンタ部41eにインクリメントした通知番号notify_no信号(図9(n))をレジスタ41dに送出させる。   Whenever the edge detection signal edge_det signal (FIG. 9C) is received, the control unit 41a causes the notification counter unit 41e to send the incremented notification number notify_no signal (FIG. 9N) to the register 41d.

レジスタ41dのデータData[31:0]信号(図9(l))は、データ送信可能TransmitReady信号がHighとなった時に、協調シミュレーション装置100に送信され、協調シミュレーション装置100からデータ受信可能ReceiveReady信号を受信することによって、協調シミュレーション装置100のCPU(ISS)モデル23aでデータが読み取られたことを示し、その後、データ送信可能TransmitReady信号とデータ受信可能ReceiveReady信号とがLowとなる。   The data Data [31: 0] signal (FIG. 9 (l)) of the register 41d is transmitted to the co-simulation device 100 when the data-transmittable TransmitReady signal becomes High, and the data-ready ReceiveReady signal is received from the co-simulation device 100. , Indicates that the data has been read by the CPU (ISS) model 23a of the co-simulation device 100, and thereafter, the TransmitReady signal that can transmit data and the ReceiveReady signal that can receive data become Low.

ソフトウェア側のCPU(ISS)モデル23aがcallbackとして宣言された関数IsReady()によって取得した割込み通知の内容が、図9(o)に示される。割込み通知の内容は、データData[31:0]信号のフォーマットに従って、エッジ番号edge_noと、通知番号notify_noと、信号の状態levelとを有する。CPU(ISS)モデル23aでは、割込み通知の内容と期待値とを比較して不一致の場合、図8に示す画面構成8のエラーメッセージ表示域84に割込み通知の内容を表示する。   The contents of the interrupt notification acquired by the function IsReady () declared as callback by the software CPU (ISS) model 23 a are shown in FIG. The content of the interrupt notification has an edge number edge_no, a notification number notify_no, and a signal state level according to the format of the data Data [31: 0] signal. In the CPU (ISS) model 23a, the content of the interrupt notification is compared with the expected value, and the content of the interrupt notification is displayed in the error message display area 84 of the screen configuration 8 shown in FIG.

図9に示すタイミングチャートの例において、エッジ番号edge_no=1で検出された割込みsig_d0信号のHighの状態はlevel=1で示され、通知番号notify_no=1で協調シミュレーション装置100に一回目のデータ送信が行われる。   In the example of the timing chart shown in FIG. 9, the high state of the interrupt sig_d0 signal detected with the edge number edge_no = 1 is indicated as level = 1, and the first data transmission to the co-simulation apparatus 100 with the notification number notify_no = 1. Is done.

次に、エッジ番号edge_no=2で検出された割込みsig_d0信号のLowの状態はlevel=0でレジスタ41dに格納されるが、協調シミュレーション装置100のデータ受信可能ReceiveReady状態になるまでの時間が掛かると、エッジ変化の通知が追いつかずに、エッジ番号がedge_no=3に上書きされてしまう。エッジ番号edge_no=3に上書きされた状態で、割込みsig_d0信号のLowの状態をlevel=0で示し、通知番号notify_no=2で協調シミュレーション装置100に二回目のデータ送信が行われる。CPU(ISS)モデル23aによってエッジ番号edge_no=2の期待値と比較され、不一致となるためエラーと判断される。エッジ番号が不一致となるエラーの場合、シミュレーション処理が遅いためであると判断できる。   Next, the low state of the interrupt sig_d0 signal detected at the edge number edge_no = 2 is stored in the register 41d at level = 0, but it takes time until the cooperative simulation apparatus 100 can receive data in the ReceiveReady state. The edge number is overwritten with edge_no = 3 without notice of the edge change notification. In a state where the edge number edge_no = 3 is overwritten, the low state of the interrupt sig_d0 signal is indicated by level = 0, and a second data transmission is performed to the co-simulation device 100 with the notification number notify_no = 2. The CPU (ISS) model 23a compares it with the expected value of the edge number edge_no = 2, and it is judged as an error because they do not match. If the edge number does not match, it can be determined that the simulation process is slow.

その後の処理において、通知番号notify_noは必ず連番でデータ送信されるところ、通知番号notify_no=7の七回目のデータ送信後に通知番号notify_no=9で割込み通知が行われた場合、CPU(ISS)モデル23aによって通知番号notify_no=8の期待値と比較され、不一致となるためエラーと判断される。通知番号が不一致となるエラーの場合、シミュレーションプログラム23mにバグがあると判断できる。   In the subsequent processing, the notification number notify_no is always transmitted as a serial number. However, if an interrupt notification is made with the notification number notify_no = 9 after the seventh data transmission of the notification number notify_no = 7, the CPU (ISS) model 23a is compared with the expected value of the notification number notify_no = 8, and since it does not match, it is determined as an error. In the case of an error in which the notification numbers do not match, it can be determined that there is a bug in the simulation program 23m.

上記実施例によれば、FPGA4のトランザクタ41に、通信マクロ42からの割込み信号が変化したことを検出した際に、個別の通し番号をふり、また、CPU(ISS)モデル23aへ通知した回数を示す通し番号を作成し、それら2つの番号と共に、FPGA4側からCPU(ISS)モデル23a側へ通信マクロ42からの割込み信号の状態を通知する。CPU(ISS)モデル23a側への通知は、割込み信号の状態が変化した時に1回だけ通知する。CPU(ISS)モデル23aは、エッジ検出番号及び通知番号を同様に通し番号で期待値を作成し、受信した割込み信号と比較してエラーを検出する。   According to the above-described embodiment, when it is detected that the interrupt signal from the communication macro 42 has changed in the transactor 41 of the FPGA 4, an individual serial number is assigned, and the number of times notified to the CPU (ISS) model 23a is indicated. Serial numbers are created, and together with these two numbers, the state of the interrupt signal from the communication macro 42 is notified from the FPGA 4 side to the CPU (ISS) model 23a side. The notification to the CPU (ISS) model 23a is notified only once when the state of the interrupt signal changes. The CPU (ISS) model 23a creates an expected value using the serial number of the edge detection number and the notification number, and compares the received interrupt signal with the received interrupt signal to detect an error.

このような仕組みによって、CPU(ISS)モデル23aが各エッジ検出番号及び通知番号をチェックすることにより、CPU(ISS)モデル23aの処理が遅いことによる読み取りミス、又は、FPGA4からの通知を受信しているが処理が抜けてしまう不具合であるかを判別できる。   With such a mechanism, the CPU (ISS) model 23a checks each edge detection number and the notification number, thereby receiving a reading error due to the slow processing of the CPU (ISS) model 23a or a notification from the FPGA 4. However, it is possible to determine whether the problem is that the process is lost.

以上の説明に関し、更に以下の項を開示する。
(付記1)
評価回路の論理回路部を表すハードウェアと、前記評価回路の動作モデルとして機能する動作モデル部とを用いてシミュレーションする協調シミュレーション装置であって、
前記ハードウェアは、
該ハードウェア内部で検出した信号の変化毎に生成した第1番号を、該信号の変化を前記ソフトウェアに通知するデータに付加する第1番号付加手段を有し、
前記動作モデル部は、
受信した前記データの前記第1番号と、第1期待値とを比較する比較手段として機能することを特徴とする協調シミュレーション装置。
(付記2)
前記ハードウェアは、前記動作モデル部への通知毎に生成した第2番号を前記データに付加する第2番号付加手段を有し、
前記比較手段として機能する前記動作モデル部は、前記データに付加された前記第2番号と、第2期待値とを比較することを特徴とする付記1記載の協調シミュレーション装置。
(付記3)
前記ハードウェアは、前記動作モデル部への前記データの通知を制御する制御手段を更に有し、
前記制御手段は、前記データの通知中でない状態で、前記信号の変化が次にLowからHighとなる順番においてLowからHighへの変化を検出した場合、または前記信号の変化が次にHighからLowとなる順番においてHighからLowへの変化を検出した場合に、前記ソフトウェアへ前記データを通知するように制御することを特徴とする付記1又は2記載の協調シミュレーション装置。
(付記4)
半導体集積回路の論理回路をエミュレーションするエミュレーション装置であって、
前記エミュレーション装置内部で検出した信号の変化毎に生成した第1番号を該信号の変化を通知するデータに付加する第1番号付加手段と、
前記第1通し番号が付加された前記データの、前記半導体集積回路のプロセッサをシミュレーションするシミュレーション装置への通知を制御する制御手段とを有することを特徴とするエミュレーション装置。
(付記5)
前記制御手段は、前記シミュレーション装置への通知毎に生成した第2番号を前記データに付加する第2番号付加手段を有し、
前記第1番号と前記第2番号とが付加された前記データを前記シミュレーション装置に通知するように制御することを特徴とする付記4記載のエミュレーション装置。
(付記6)
前記制御手段は、前記データの通知中でない状態で、前記信号の変化が次にLowからHighとなる順番においてLowからHighへの変化を検出した場合、または前記信号の変化が次にHighからLowとなる順番においてHighからLowへの変化を検出した場合に、前記ソフトウェアへ前記データを通知するように制御することを特徴とする付記4又は5記載のエミュレーション装置。
(付記7)
半導体集積回路のプロセッサをシミュレーションするシミュレーション装置であって、
前記半導体集積回路のプロセッサ以外の論理回路をエミュレーションするエミュレーション装置から、該エミュレーション装置内で検出した信号の変化毎に生成した第1番号、又は、該エミュレーション装置によって該信号の変化の通知毎に生成した第2番号の少なくとも1つが付加された該割込み信号の変化を通知するデータを、コールバック関数を用いて取得するデータ取得手段と、
前記データに付加された前記第1番号又は前記第2番号の少なくとも1つと、該少なくとも1つの期待値とを比較する比較手段とを有することを特徴とするシミュレーション装置。
(付記8)
半導体集積回路のプロセッサをシミュレーションするシミュレーション装置におけるシミュレーション方法であって、
前記半導体集積回路のプロセッサ以外の論理回路をエミュレーションするエミュレーション装置から、該エミュレーション装置内で検出した信号の変化毎に生成した第1番号、又は、該エミュレーション装置によって該信号の変化の通知毎に生成した第2番号の少なくとも1つが付加されたデータを、コールバック関数を用いて取得するデータ取得手順と、
前記データに付加された前記第1番号又は前記第2番号の少なくとも1つを、少なくとも1つの期待値と比較する比較手順とを有することを特徴とするシミュレーション方法。
(付記9)
コンピュータに、半導体集積回路のプロセッサをシミュレーションさせるシミュレーションプログラムであって、該コンピュータに、
前記半導体集積回路のプロセッサ以外の論理回路をエミュレーションするエミュレーション装置から、該エミュレーション装置内で検出した信号の変化毎に生成した第1番号、又は、該エミュレーション装置によって該信号の変化の通知毎に生成した第2番号の少なくとも1つが付加されたデータを、コールバック関数を用いて取得するデータ取得手順と、
前記データに付加された前記第1番号又は前記第2番号の少なくとも1つを、少なくとも1つの期待値と比較する比較手順とを実行させることを特徴とするシミュレーションプログラム。
Regarding the above description, the following items are further disclosed.
(Appendix 1)
A co-simulation device that performs simulation using hardware representing a logic circuit part of an evaluation circuit and an operation model unit that functions as an operation model of the evaluation circuit,
The hardware is
First number adding means for adding a first number generated for each change in the signal detected inside the hardware to data for notifying the software of the change in the signal;
The behavior model part is:
A co-simulation apparatus that functions as a comparison unit that compares the first number of the received data with a first expected value.
(Appendix 2)
The hardware has a second number adding means for adding a second number generated for each notification to the behavior model unit to the data,
The co-simulation apparatus according to appendix 1, wherein the behavior model unit functioning as the comparison unit compares the second number added to the data with a second expected value.
(Appendix 3)
The hardware further includes control means for controlling notification of the data to the behavior model unit,
The control means detects a change from Low to High in the order in which the change of the signal next goes from Low to High in a state where the data is not being notified, or the change of the signal is next from High to Low. 3. The co-simulation apparatus according to appendix 1 or 2, wherein control is performed such that the data is notified to the software when a change from High to Low is detected in the order of:
(Appendix 4)
An emulation device for emulating a logic circuit of a semiconductor integrated circuit,
First number adding means for adding a first number generated for each change in the signal detected inside the emulation device to data notifying the change in the signal;
An emulation apparatus comprising: control means for controlling notification of the data to which the first serial number has been added to a simulation apparatus that simulates a processor of the semiconductor integrated circuit.
(Appendix 5)
The control means includes second number adding means for adding a second number generated for each notification to the simulation apparatus to the data,
The emulation apparatus according to appendix 4, wherein control is performed so as to notify the simulation apparatus of the data to which the first number and the second number are added.
(Appendix 6)
The control means detects a change from Low to High in the order in which the change of the signal next goes from Low to High in a state where the data is not being notified, or the change of the signal is next from High to Low. 6. The emulation apparatus according to appendix 4 or 5, wherein control is performed so that the data is notified to the software when a change from High to Low is detected in the order as follows.
(Appendix 7)
A simulation apparatus for simulating a processor of a semiconductor integrated circuit,
Generated from an emulation device that emulates a logic circuit other than the processor of the semiconductor integrated circuit, every time a signal change detected in the emulation device is generated, or generated every time a signal change is notified by the emulation device Data acquisition means for acquiring data notifying the change of the interrupt signal to which at least one of the second numbers is added using a callback function;
A simulation apparatus comprising: comparing means for comparing at least one of the first number or the second number added to the data and the at least one expected value.
(Appendix 8)
A simulation method in a simulation apparatus for simulating a processor of a semiconductor integrated circuit,
Generated from an emulation device that emulates a logic circuit other than the processor of the semiconductor integrated circuit, every time a signal change detected in the emulation device is generated, or generated every time a signal change is notified by the emulation device A data acquisition procedure for acquiring data with at least one of the second numbers added using a callback function;
A simulation method comprising a comparison procedure for comparing at least one of the first number or the second number added to the data with at least one expected value.
(Appendix 9)
A simulation program for causing a computer to simulate a processor of a semiconductor integrated circuit, wherein the computer
Generated from an emulation device that emulates a logic circuit other than the processor of the semiconductor integrated circuit, every time a signal change detected in the emulation device is generated, or generated every time a signal change is notified by the emulation device A data acquisition procedure for acquiring data with at least one of the second numbers added using a callback function;
A simulation program for executing a comparison procedure for comparing at least one of the first number or the second number added to the data with at least one expected value.

本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。   The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.

3 PCIボード
4 FPGA
41 トランザクタ
41a 制御部
41b エッジカウンタ部
41c エッジ検出部
41d レジスタ
41e 通知カウンタ部
42 通信マクロ
5 通信ケーブル
6 外部通信装置
8 画面構成
81 制御ボタン表示域
81a RUNボタン
82 ユーザプログラム表示域
83 ブレークポイント
84 エラーメッセージ表示域
11 CPU
12 メモリユニット
13 表示ユニット
14 出力ユニット
15 入力ユニット
16 通信ユニット
17 記憶装置
18 ドライバ
19 記憶媒体
20 シミュレータ制御部
23 動作モデル
23a CPU(ISS)モデル
23b ROMモデル
23c RAMモデル
23d プロキシ(proxy)
23m シミュレーションプログラム
23u ユーザプログラム
100 協調シミュレーション装置
3 PCI board 4 FPGA
41 transactor 41a control unit 41b edge counter unit 41c edge detection unit 41d register 41e notification counter unit 42 communication macro 5 communication cable 6 external communication device 8 screen configuration 81 control button display area 81a RUN button 82 user program display area 83 breakpoint 84 error Message display area 11 CPU
DESCRIPTION OF SYMBOLS 12 Memory unit 13 Display unit 14 Output unit 15 Input unit 16 Communication unit 17 Memory | storage device 18 Driver 19 Storage medium 20 Simulator control part 23 Operation | movement model 23a CPU (ISS) model 23b ROM model 23c RAM model 23d Proxy (proxy)
23m simulation program 23u user program 100 co-simulation device

Claims (5)

評価回路の論理回路部を表すハードウェアと、前記評価回路の動作モデルとして機能する動作モデル部とを用いてシミュレーションする協調シミュレーション装置であって、
前記ハードウェアは、
該ハードウェア内部で検出した信号の変化毎に生成した第1番号を、該信号の変化を前記ソフトウェアに通知するデータに付加する第1番号付加手段を有し、
前記動作モデル部は、
受信した前記データの前記第1番号と、第1期待値とを比較する比較手段として機能することを特徴とする協調シミュレーション装置。
A co-simulation device that performs simulation using hardware representing a logic circuit part of an evaluation circuit and an operation model unit that functions as an operation model of the evaluation circuit,
The hardware is
First number adding means for adding a first number generated for each change in the signal detected inside the hardware to data for notifying the software of the change in the signal;
The behavior model part is:
A co-simulation apparatus that functions as a comparison unit that compares the first number of the received data with a first expected value.
前記ハードウェアは、前記動作モデル部への通知毎に生成した第2番号を前記データに付加する第2番号付加手段を有し、
前記比較手段として機能する前記動作モデル部は、前記データに付加された前記第2番号と、第2期待値とを比較することを特徴とする付記1記載の協調シミュレーション装置。
The hardware has a second number adding means for adding a second number generated for each notification to the behavior model unit to the data,
The co-simulation apparatus according to appendix 1, wherein the behavior model unit functioning as the comparison unit compares the second number added to the data with a second expected value.
前記ハードウェアは、前記動作モデル部への前記データの通知を制御する制御手段を更に有し、
前記制御手段は、前記データの通知中でない状態で、前記信号の変化が次にLowからHighとなる順番においてLowからHighへの変化を検出した場合、または前記信号の変化が次にHighからLowとなる順番においてHighからLowへの変化を検出した場合に、前記ソフトウェアへ前記データを通知するように制御することを特徴とする請求項1又は2記載の協調シミュレーション装置。
The hardware further includes control means for controlling notification of the data to the behavior model unit,
The control means detects a change from Low to High in the order in which the change of the signal next goes from Low to High in a state where the data is not being notified, or the change of the signal is next from High to Low. 3. The co-simulation device according to claim 1, wherein, when a change from High to Low is detected in the order, the control is performed so that the data is notified to the software.
半導体集積回路の論理回路をエミュレーションするエミュレーション装置であって、
前記エミュレーション装置内部で検出した信号の変化毎に生成した第1番号を該信号の変化を通知するデータに付加する第1番号付加手段と、
前記第1通し番号が付加された前記データの、前記半導体集積回路のプロセッサをシミュレーションするシミュレーション装置への通知を制御する制御手段とを有することを特徴とするエミュレーション装置。
An emulation device for emulating a logic circuit of a semiconductor integrated circuit,
First number adding means for adding a first number generated for each change in the signal detected inside the emulation device to data notifying the change in the signal;
An emulation apparatus comprising: control means for controlling notification of the data to which the first serial number has been added to a simulation apparatus that simulates a processor of the semiconductor integrated circuit.
半導体集積回路のプロセッサをシミュレーションするシミュレーション装置におけるシミュレーション方法であって、
前記半導体集積回路のプロセッサ以外の論理回路をエミュレーションするエミュレーション装置から、該エミュレーション装置内で検出した信号の変化毎に生成した第1番号、又は、該エミュレーション装置によって該信号の変化の通知毎に生成した第2番号の少なくとも1つが付加されたデータを、コールバック関数を用いて取得するデータ取得手順と、
前記データに付加された前記第1番号又は前記第2番号の少なくとも1つを、少なくとも1つの期待値と比較する比較手順とを有することを特徴とするシミュレーション方法。
A simulation method in a simulation apparatus for simulating a processor of a semiconductor integrated circuit,
Generated from an emulation device that emulates a logic circuit other than the processor of the semiconductor integrated circuit, every time a signal change detected in the emulation device is generated, or generated every time a signal change is notified by the emulation device A data acquisition procedure for acquiring data with at least one of the second numbers added using a callback function;
A simulation method comprising: a comparison procedure for comparing at least one of the first number or the second number added to the data with at least one expected value.
JP2009186617A 2009-08-11 2009-08-11 Cooperative simulator and simulation method Pending JP2011039781A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009186617A JP2011039781A (en) 2009-08-11 2009-08-11 Cooperative simulator and simulation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009186617A JP2011039781A (en) 2009-08-11 2009-08-11 Cooperative simulator and simulation method

Publications (1)

Publication Number Publication Date
JP2011039781A true JP2011039781A (en) 2011-02-24

Family

ID=43767486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009186617A Pending JP2011039781A (en) 2009-08-11 2009-08-11 Cooperative simulator and simulation method

Country Status (1)

Country Link
JP (1) JP2011039781A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014038030A1 (en) * 2012-09-06 2014-03-13 株式会社日立製作所 Co-simulation computer system, verification system for embedded systems, and verification method for embedded systems
CN110825530A (en) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 Instruction execution method and device for artificial intelligence chip
JP7209134B1 (en) * 2021-12-28 2023-01-19 三菱電機ソフトウエア株式会社 Operation verification system and operation verification device
WO2023127185A1 (en) * 2021-12-28 2023-07-06 三菱電機ソフトウエア株式会社 Operation verification system and operation verification device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN110825530A (en) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 Instruction execution method and device for artificial intelligence chip
CN110825530B (en) * 2018-08-10 2022-12-23 昆仑芯(北京)科技有限公司 Instruction execution method and device for artificial intelligence chip
JP7209134B1 (en) * 2021-12-28 2023-01-19 三菱電機ソフトウエア株式会社 Operation verification system and operation verification device
WO2023127185A1 (en) * 2021-12-28 2023-07-06 三菱電機ソフトウエア株式会社 Operation verification system and operation verification device

Similar Documents

Publication Publication Date Title
US8180620B2 (en) Apparatus and method for performing hardware and software co-verification testing
JP4975544B2 (en) Simulation apparatus and program
US10180850B1 (en) Emulating applications that use hardware acceleration
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
US10691580B1 (en) Diagnosing applications that use hardware acceleration through emulation
WO2001082084A1 (en) Enhanced programmable core model with integrated graphical debugging functionality
CN113076227A (en) MCU verification method, system and terminal equipment
WO2018018978A1 (en) Universal serial bus controller verification method, system and device
WO2014035463A1 (en) System and methods for generating and managing a virtual device
JP2011039781A (en) Cooperative simulator and simulation method
CN103713977B (en) Microprocessor IP (internet protocol) kernel comparison and verification implementation method
JP5034916B2 (en) Performance evaluation model generation method, system performance evaluation method, and performance evaluation model generation apparatus
JP2008282308A (en) Cooperation verification device, cooperation verification method, and cooperation verification program
Lin et al. Functional verifications for SoC software/hardware co-design: From virtual platform to physical platform
JP4187470B2 (en) Semiconductor device development support cooperation device and development support method
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
Cho et al. A full-system VM-HDL co-simulation framework for servers with PCIe-connected FPGAs
US20110307239A1 (en) Hardware Emulation Proxy for Hardware Software Co-Emulation
JP6667733B2 (en) Simulation apparatus, simulation method, and simulation program
JP2005108007A (en) Lsi design verification apparatus and lsi design verification method
CN114328045A (en) I2C debugging method, system and device for BMC and computer readable storage medium
JP2012155519A (en) Simulation device, simulation method and computer program thereof
Ryzhyk et al. Improved device driver reliability through hardware verification reuse
CN113673106B (en) FPGA kernel programmable simulator
US8352239B2 (en) Emulator interface device and method thereof