JP2011039781A - Cooperative simulator and simulation method - Google Patents
Cooperative simulator and simulation method Download PDFInfo
- 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
Links
Images
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
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
上記従来のハードウェア/ソフトウェア協調シミュレータでは、ソフトウェア側の処理よりもハードウェア側の速度が速いことによる、ハードウェア側にて発生した信号を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.
以下、本発明の実施の形態を図面に基づいて説明する。本実施例におけるハードウェアとソフトウェアとの協調動作によって論理回路を検証する協調シミュレーション装置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
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
メモリユニット12には、RAM(Random Access Memory)やROM(Read-Only Memory)等が用いられ、CPU11にて実行されるシミュレーションプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
The
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、ユーザが協調シミュレーション装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばインターネット、LAN(Local Area Network)等に接続し、外部装置との間の通信制御をするための装置である。記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。
The
協調シミュレーション装置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
尚、シミュレーションプログラムを格納する媒体として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
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
図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
協調シミュレーション装置100は、本発明に係るシミュレーションプログラムを実行することによって、シミュレータ制御部20と、動作モデル23として機能する。動作モデル23は、例えば、評価チップの通信機能部分を除く構成部を擬似的にソフトウェアで実現する部分であって、CPU(ISS)モデル23aと、ROMモデル23bと、RAMモデル23cと、プロキシ23dとを有する。ROMモデル23bには、ユーザプログラム23uが含まれている。
The cooperative simulation apparatus 100 functions as the
CPU(ISS)モデル23aは、評価LSIのターゲットプロセッサとして動作し、ROMモデル23bとRAMモデル23cとを制御して、ROMモデル23bに格納されているユーザプログラム23uを実行する。また、CPU(ISS)モデル23aは、評価LSIの通信部分となるFPGA4の通信マクロ42とのデータ送受信をプロキシ23dを介して行なう。
The CPU (ISS)
FPGA4は、論理回路の動作をハードウェア記述言語で記述した論理回路マクロをエミュレーションするハードウェアエミュレータであり、トランザクタ41と、通信マクロ42とを有する。トランザクタ41は、SCE−MIに対応したデータ送受信を制御する。通信マクロ42は、例えば、評価LSIのうちターゲットプロセッサ以外の論理回路の動作をRTL等のハードウェア記述言語によって記述したプログラムであり、FPGA4のプログラマブル素子にロードされている。
The
図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-
協調シミュレーション装置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
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
図3(B)は、データ受信可能ReceiveReady信号がHighの状態でかつデータ送信可能TransmitReady信号がHighとなった期間に、CPU(ISS)モデル23aが関数IsReady()によってデータData[31:0]信号を受信した様子をタイミングチャートで示している。
FIG. 3B shows that the CPU (ISS)
本実施例では、データ受信が適切に行なわれなかった原因が、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)
図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
制御部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
エッジカウンタ部41bは、エッジ検出部41cから送出されるエッジ検出信号の受信に応じて、エッジ番号をインクリメントしてレジスタ41dにエッジ番号を設定する。エッジ検出部41cは、通信マクロ42から送出されるレジスタ41dに書き込まれる割込み信号などの信号を受信して、エッジ検出信号をエッジカウンタ部41bと制御部41aとに送出する。
In response to the reception of the edge detection signal sent from the
レジスタ41dは、エッジカウンタ部41bでカウント制御されるエッジ番号と、制御部41aの通知カウンタ部41eでカウント制御される通知番号と、通信マクロ42から送出される信号の値とを保持する。
The
このような構成において、エッジ検出部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
-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)
図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,
図5では、レジスタ41dが32ビットレジスタである場合のデータフォーマットの例を示したが、32ビットレジスタに限定されるものではなく、1回のデータ送信において、エッジ番号と、通知番号と、信号の値とが同時に協調シミュレーション装置100に送信されれば良い。
FIG. 5 shows an example of a data format when the
次に、協調シミュレーション装置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
シミュレータ制御部20は、エラー発生か否かを判断する(ステップS12)。エラー発生の場合、この処理を終了する。ユーザは、表示ユニット13に表示されたエラーメッセージに基づいて、エラーの発生がCPU(ISS)モデル23aの処理速度が遅いことによるものであるのか、シミュレーションプログラム23mのバグによるものであるのかを判別する。
The
一方、エラー発生ではない場合、シミュレータ制御部20は、ユーザプログラム23uを表示ユニット13に表示させ(ステップS13)、更に、ユーザによって指定されたブレークポイントを表示ユニット13に表示されたユーザプログラム23uと対応させて表示させる(ステップS14)。
On the other hand, if no error has occurred, the
シミュレータ制御部20は、ユーザからのRUNボタンの操作によるRUNコマンドの入力待ちとなり(ステップS15)、RUNコマンドが入力されるとCPU(ISS)モデル23aに制御を移し、CPU(ISS)モデル23aによる処理が実行される(ステップS16)。ブレークポイントにユーザプログラム23uが到達した場合、又は、エラーが発生した場合等により、CPU(ISS)モデル23aからシミュレータ制御部20へと制御が戻り、シミュレータ制御部20は、ステップS11から上述同様の処理を繰り返す。
The
図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)
一方、エラーが発生していない場合、CPU(ISS)モデル23aは、ユーザプログラム23uの実行がブレークポイントに到達したか、又は、プログラムの終了となったか否かを判断する(ステップS22)。ブレークポイントに到達した場合、CPU(ISS)モデル23aは、この処理を終了し、シミュレーション制御部20へと制御が戻る。
On the other hand, if no error has occurred, the CPU (ISS)
一方、ブレークポイントに到達していない場合、CPU(ISS)モデル23aは、プログラムカウンタのアドレスから命令コードをリードし、プログラムカウンタを更新する(ステップS23)。
On the other hand, if the breakpoint has not been reached, the CPU (ISS)
ここで、命令コードの内容により分類される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)
3. Write access to the outside of the CPU (except for writing to the
4). The
命令には、上記の命令以外にも、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
処理の説明に戻り、ステップ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)
CPU(ISS)モデル23aは、FPGA4内の通信マクロ42からの割込みが在るか否かをチェックし、エッジ番号及び通知番号をチェックして期待値と違っていればエラーが発生したと見なし(ステップS27)、ステップS21へと戻る。エラーが発生していてステップS21へ戻った場合、CPU(ISS)モデル23aは、この処理を終了し、シミュレーション制御部20へと制御が戻る。
The CPU (ISS)
エラーの発生もなく、かつ、プログラムカウンタがブレークポイントに達することなくステップ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)
図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
制御ボタン表示域81のRUNボタン81aが押下されると、シミュレータ制御部20は制御をCPU(ISS)23aに移す。CPU(ISS)23aでの処理にて、ブレークポイント83まで実行されて制御がシミュレータ制御部20に戻ると、そのブレークポイント83に対応するコードを含めてその前後のユーザプログラム23uのコードがユーザプログラム表示域82に表示される。そして、ユーザの操作が可能となる。
When the
また、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
<< 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
エッジカウンタ部41bは、エッジ検出部41cからのエッジ検出を示すエッジ検出edge_det信号を受信するごとにインクリメントしたエッジ番号を示すエッジ番号edge_no信号(図9(d))を用いてレジスタ41dに設定する。
The edge counter unit 41b sets in the
一方、レジスタ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
つまり、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
レジスタ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
ソフトウェア側の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)
図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
その後の処理において、通知番号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)
上記実施例によれば、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
このような仕組みによって、CPU(ISS)モデル23aが各エッジ検出番号及び通知番号をチェックすることにより、CPU(ISS)モデル23aの処理が遅いことによる読み取りミス、又は、FPGA4からの通知を受信しているが処理が抜けてしまう不具合であるかを判別できる。
With such a mechanism, the CPU (ISS)
以上の説明に関し、更に以下の項を開示する。
(付記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 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 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 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 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
41 transactor 41a control unit 41b
DESCRIPTION OF
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期待値とを比較することを特徴とする付記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.
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)
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 |
-
2009
- 2009-08-11 JP JP2009186617A patent/JP2011039781A/en active Pending
Cited By (6)
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 | |
CN113076227A (en) | MCU verification method, system and terminal equipment | |
US10691580B1 (en) | Diagnosing applications that use hardware acceleration through emulation | |
JP2003532192A (en) | Enhanced programmable core model with integrated graphical debugging | |
WO2018018978A1 (en) | Universal serial bus controller verification method, system and device | |
WO2014035463A1 (en) | System and methods for generating and managing a virtual device | |
JP2001273165A (en) | Method and device for verifying fine-graded validity of behavioral model of central processing unit | |
JP2011039781A (en) | Cooperative simulator and simulation method | |
JP5034916B2 (en) | Performance evaluation model generation method, system performance evaluation method, and performance evaluation model generation apparatus | |
JP4187470B2 (en) | Semiconductor device development support cooperation device and development support method | |
CN103713977A (en) | Microprocessor IP (internet protocol) kernel comparison and verification implementation method | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
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 | |
CN117113907B (en) | Verification method, verification device, electronic equipment and readable storage medium | |
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 | |
CN116594830B (en) | Hardware simulation tool, debugging method and storage medium |