JP2005332110A - Simulation system - Google Patents

Simulation system Download PDF

Info

Publication number
JP2005332110A
JP2005332110A JP2004148635A JP2004148635A JP2005332110A JP 2005332110 A JP2005332110 A JP 2005332110A JP 2004148635 A JP2004148635 A JP 2004148635A JP 2004148635 A JP2004148635 A JP 2004148635A JP 2005332110 A JP2005332110 A JP 2005332110A
Authority
JP
Japan
Prior art keywords
unit
software
hardware
instruction set
set simulator
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
JP2004148635A
Other languages
Japanese (ja)
Inventor
Toshio Matsuki
敏夫 松木
Koji Oka
晃次 岡
Takashi Ota
隆 太田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004148635A priority Critical patent/JP2005332110A/en
Publication of JP2005332110A publication Critical patent/JP2005332110A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the trouble in a hardware/software cooperation simulation performed in one process that when a compiled code directly executable on a machine executing the simulation is used as a method for realizing the hardware-side simulation, a simulator of software that is a part of the same application is also stopped if the simulation of the hardware is stopped in the middle to debug hardware description, and information necessary for debugging the software cannot be acquired. <P>SOLUTION: A shared file 201 is provided between an ISS execution part 103 and a software debugger GUI part 105, so that necessary information can be acquired. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、ハードウェアとソフトウェアを協調してシミュレーションを行うシミュレーションシステムに係わり、特にソフトウェアデバッグが容易に実行できるシミュレーションシステムに関するものである。   The present invention relates to a simulation system that performs simulation by coordinating hardware and software, and more particularly to a simulation system that can easily execute software debugging.

ハードウェアとソフトウェアを協調してシミュレーションを行うシミュレーションシステムとして、ハードウェア・ソフトウェア協調シミュレーションが従来知られている。   Hardware / software co-simulation is conventionally known as a simulation system that performs simulation by coordinating hardware and software.

これによれば、実際のハードウェアを使わずに仮想的なハードウェアを使ってソフトウェアのデバッグを行うことによりハードウェアの不具合を早期に発見したり、ソフトウェアのデバッグを行ったり、あるいはシステムの全体の品質や完成度を短期間に上げたりするという効果が期待できる。   According to this, it is possible to detect hardware problems early by debugging software using virtual hardware without using actual hardware, debugging software, or the entire system. The effect of raising the quality and completeness of the product in a short time can be expected.

従来、マイコン上で動作するソフトウェアとマイコン周辺のハードウェアの両方を連動させてシミュレーションを行う、協調シミュレーションという手法には、大別して3つの手法が知られていた。   Conventionally, there are three broadly known methods for collaborative simulation in which simulation is performed by linking both software running on a microcomputer and hardware around the microcomputer.

1つ目はハードウェアの動きをある程度抽象化してソフトウェアの一部として記述し、ソフトウェアと直接的に連結させて実行可能ファイルを作成してからそれを実行するという方法である。   The first is a method of abstracting the movement of hardware to some extent and describing it as a part of software, creating an executable file directly linked with the software, and executing it.

2つ目は、ソフトウェアのシミュレータとハードウェアのシミュレータのそれぞれにインターフェイスを設けて連動させるという方法である。つまり、2つの大きなアプリケーションが連動してシミュレーションを行うことになる。   The second is a method in which an interface is provided for each of the software simulator and the hardware simulator to be linked. In other words, two large applications perform a simulation in conjunction with each other.

そして、3つ目は、ソフトウェアのシミュレータとハードウェアのシミュレータを1つのアプリケーションとして統合した上でそれぞれの処理にインターフェイスを設けて連動させるという方法である。
特開2002−244883号公報
The third method is to integrate a software simulator and a hardware simulator as one application and provide an interface for each process to link them.
JP 2002-244883 A

ハードウェアの動きをある程度抽象化してソフトウェアとして記述し、ソフトウェアと連結させて実行可能ファイルを作成してからそれを実行するという方法の場合、シミュレータとしての実行速度は高速であるが、ハードウェアの動きを抽象化する工数が大きいために、余程の理由がない限り実際の業務では実施できなかったり、あるいは、ハードウェアの実際の動きとは大きく異なった抽象化をしてしまったりするという課題があった。   In the method of abstracting the movement of hardware to some extent and describing it as software, creating an executable file after linking with software, and executing it, the execution speed as a simulator is fast, Because the man-hours to abstract the movement are large, the problem is that it cannot be carried out in the actual work unless there is a good reason, or the abstraction is very different from the actual movement of the hardware was there.

また、ソフトウェアのシミュレータとハードウェアのシミュレータの2つの別々のシミュレータを連携させてシミュレーションを行う方法では、ハードウェアの抽象化という作業がなくなるので最初の方法での課題は解決される。しかし、協調シミュレーションの中では2つのシミュレータが同時並行して動作したり、お互いの情報をやり取りすることが頻繁に発生したりするため、やり取りするたびに時間がかかってしまいシミュレーションが非常に遅くなるという課題があった。言い換えると、別々のプロセスで2つのシミュレータが実行されていることが一般的であり、プロセスを跨いで頻繁なやり取りを行うことは大きなオーバヘッドが発生してしまい、シミュレータとしての実行速度が許容範囲を超えるため実用に耐えないものとなっていた。   Also, in the method of performing simulation by linking two separate simulators, a software simulator and a hardware simulator, the task of hardware abstraction is eliminated, so the problem of the first method is solved. However, in the co-simulation, two simulators operate in parallel or frequently exchange information with each other, so it takes time each time to exchange and the simulation becomes very slow. There was a problem. In other words, it is common for two simulators to be executed in separate processes, and frequent exchanges across processes will cause a large overhead, and the execution speed as a simulator will be within an acceptable range. It exceeded the practical use.

ソフトウェアのシミュレータとハードウェアのシミュレータを1つのアプリケーションに統合した上でそれぞれのシミュレーション実行部にインターフェイスを設けて連動させるという方法の場合、ハードウェアの設計がある程度終わっていればそれを実行すればよいのでハードウェアの抽象化の作業は不要であり、また、ハードウェアとソフトウェアのシミュレータ相互のやり取りについても1つのアプリケーションの中で行うので高速にやり取りすることはできるようになる。   In the method of integrating a software simulator and a hardware simulator into one application and providing an interface for each simulation execution unit to link them together, if the hardware design has been completed to some extent, it should be executed. Therefore, the hardware abstraction work is not necessary, and the interaction between the hardware and software simulators is also performed within one application, so that it can be performed at high speed.

しかし、一つのプロセスで行うハードウェア・ソフトウェア協調シミュレーションにおいて、ハードウェア側のシミュレーションの実現方法としてシミュレーションを実行するマシン上で直接実行可能なコンパイル済みのコードを用いる場合、ハードウェア記述をデバッグするためにハードウェアのシミュレーションを途中で停止したとき、同じアプリケーションの一部となっているソフトウェアのシミュレータも停止してしまう。これによって、ソフトウェア側のデバッグ機能が一切利用できず、ソフトウェアのデバッグに必要な情報を取得できなくなる。つまり、ハードウェアのデバッグとソフトウェアのデバッグを同時に行うことができないという課題があった。この様子を図1を用いて説明する。なお、以降では命令セットシミュレータのことをISSと略すこととする。   However, in hardware / software co-simulation performed in a single process, when using compiled code that can be executed directly on the machine where the simulation is executed, the hardware description is debugged as a method for realizing the simulation on the hardware side. When the hardware simulation is stopped halfway, the software simulator that is a part of the same application is also stopped. As a result, the debugging function on the software side cannot be used at all, and information necessary for software debugging cannot be acquired. In other words, there is a problem that hardware debugging and software debugging cannot be performed simultaneously. This will be described with reference to FIG. Hereinafter, the instruction set simulator is abbreviated as ISS.

図11のシミュレーションシステム100はソフトウェアのシミュレータであるISS実行部103とハードウェアのシミュレータである実行可能な被デバッグシステム記述部104が一つのシミュレーション実行プロセス101の中で統合されており、ISS実行部103はISS上で実行可能な被デバッグソフトウェア102を実行するとともに、ISS実行部103の動作と連動して被デバッグシステム記述部104が実行される。   In the simulation system 100 of FIG. 11, an ISS execution unit 103 that is a software simulator and an executable debugged system description unit 104 that is a hardware simulator are integrated in one simulation execution process 101. 103 executes the debugged software 102 executable on the ISS, and the debugged system description unit 104 is executed in conjunction with the operation of the ISS execution unit 103.

ソフトウェアをデバッグするためのソフトウェアデバッガGUI(グラフィカル・ユーザ・インターフェース)部105はISS実行部103に対して実行開始や実行停止などの制御を行う。ハードウェアのデバッグをするためのシステム記述デバッガGUI部106は被デバッグシステム記述部104に対して実行開始や実行停止などの制御を行う。被デバッグシステム記述部104はシミュレーションシステム100を実行しているプロセッサによって直接実行できるようにあらかじめコンパイルされているものである。つまり、被デバッグシステム記述部104はISS実行部103と同じレベルで動作しており、被デバッグシステム記述部104を停止するということはシミュレーション実行プロセス101が停止するということである。これは、ISS実行部103を停止することでもある。シミュレーション実行プロセス101が実行している間はソフトウェアデバッガGUI部105がISS実行部103と自由にやり取りすることができ、ソフトウェアデバッガGUI部105がISS実行部103の実行状況や内部状態を取得することもでき、また、ISS実行部103に対してデバッグ機能などを設定することもできる。しかし、シミュレーション実行プロセス101が停止してしまうと、ソフトウェアデバッガGUI部105はISS実行部103とのやり取りが全くできなくなってしまう。107はISSの内部情報である。   A software debugger GUI (graphical user interface) unit 105 for debugging the software controls the ISS execution unit 103 to start and stop execution. A system description debugger GUI unit 106 for debugging the hardware controls the debugged system description unit 104 to start or stop execution. The debugged system description unit 104 is compiled in advance so that it can be directly executed by a processor executing the simulation system 100. That is, the debugged system description unit 104 operates at the same level as the ISS execution unit 103, and stopping the debugged system description unit 104 means that the simulation execution process 101 is stopped. This is also to stop the ISS execution unit 103. While the simulation execution process 101 is being executed, the software debugger GUI unit 105 can freely communicate with the ISS execution unit 103, and the software debugger GUI unit 105 acquires the execution status and internal state of the ISS execution unit 103. In addition, a debugging function or the like can be set for the ISS execution unit 103. However, if the simulation execution process 101 stops, the software debugger GUI unit 105 cannot communicate with the ISS execution unit 103 at all. Reference numeral 107 denotes ISS internal information.

近年、システムの複雑化や大規模化が著しく、ソフトウェアのデバッグ工数や検証工数の増大が経営を圧迫するほどになっている。また、ソフトウェアのデバッグや検証に用いるハードウェアを必要なタイミングで入手することもますます困難となっている。   In recent years, the complexity and scale of the system have been remarkably increased, and the increase in software debugging and verification man-hours has come to put pressure on management. It is also becoming increasingly difficult to obtain hardware used for software debugging and verification at the necessary timing.

したがって、本発明の目的は、シミュレーション実行プロセスが停止しても、ISS実行部の状態を取得でき、ISS実行部に対してデバッグ機能の設定などができるようにしたシミレーションシステムを提供することである。   Therefore, an object of the present invention is to provide a simulation system in which the state of the ISS execution unit can be acquired even when the simulation execution process is stopped, and the debug function can be set for the ISS execution unit. is there.

本発明はハードウェアのシミュレーションとソフトウェアのシミュレーションを一つのアプリケーションに統合し、かつ、双方のデバッグができるようにし、さらに、高速な協調シミュレーションを実現するものである。   The present invention integrates hardware simulation and software simulation into one application and enables both to be debugged, and further realizes high-speed co-simulation.

本発明のシミュレーションシステムは、ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたものである。   The simulation system of the present invention includes an instruction set simulator execution unit that simulates software, an executable debugged system description unit that operates in cooperation with the same process as the instruction set simulator execution unit and simulates hardware, Operate the instruction set simulator execution unit and acquire information necessary for debugging the software from the instruction set simulator execution unit, and operate the debugged system description unit to debug hardware A system description debugger GUI unit, a shared file that shares information between the instruction set simulator execution unit and the software debugger GUI unit, and from which the software debugger GUI unit can acquire information necessary for debugging Than it is.

本発明の別のシミュレーションシステムは、ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記被デバッグシステム記述部と前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたものである。   Another simulation system of the present invention includes an instruction set simulator execution unit that simulates software, and an executable debugged system description unit that operates in cooperation with the same process as the instruction set simulator execution unit to simulate hardware. Operating the instruction set simulator execution unit and obtaining information necessary for debugging the software from the instruction set simulator execution unit; operating the debugged system description unit; Information to be debugged is shared between the system description debugger GUI part to be debugged, the debugged system description part, the instruction set simulator execution part, and the software debugger GUI part, and the software debugger GUI part requires information for debugging. Those with the acquired a shared file.

本発明の別のシミュレーションシステムは、ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な複数の被デバッグシステム記述部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記複数の被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたものである。   Another simulation system according to the present invention includes an instruction set simulator execution unit that simulates software and a plurality of executable debugged systems that operate in cooperation with the same process as the instruction set simulator execution unit to simulate hardware. A description section, a software debugger GUI section for operating the instruction set simulator execution section and acquiring information necessary for debugging the software from the instruction set simulator execution section, and a plurality of debug target system description sections The system description debugger GUI unit for debugging the hardware, the shared information that can share information between the instruction set simulator execution unit and the software debugger GUI unit, and the software debugger GUI unit can acquire information necessary for debugging. It is obtained by a yl.

本発明の別のシミュレーションシステムは、ソフトウェアをシミュレートしかつ同じプロセス内で連携して動作する複数の命令セットシミュレータ実行部と、前記複数の命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記複数の命令セットシミュレータ実行部を操作するとともに前記複数の命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記複数の命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたものである。   Another simulation system of the present invention operates in cooperation with a plurality of instruction set simulator execution units that simulate software and operate in cooperation in the same process, and in the same process as the plurality of instruction set simulator execution units. Operates an executable debugged system description section that simulates hardware, and operates the plurality of instruction set simulator execution sections, and acquires information necessary for debugging the software from the plurality of instruction set simulator execution sections. A software debugger GUI unit, a system description debugger GUI unit for operating the debugged system description unit to debug hardware, information shared between the plurality of instruction set simulator execution units and the software debugger GUI unit, and the software Deba Moth GUI part is that a shared file information that the obtainable necessary for debugging.

本発明の別のシミュレーションシステムは、ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアの動作を記述したハードウェア記述の内容を実行するハードウェア記述実行部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作し前記ハードウェアをデバッグするシステム記述デバッガGUI部と、前記ハードウェア記述実行部を操作し前記ハードウェア記述をデバッグするハードウェア記述デバッガGUI部と、前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な第1の共有ファイルと、前記ハードウェア記述実行部と前記ハードウェア記述デバッガGUI部の間の情報を共有し前記ハードウェア記述デバッガGUI部がデバッグに必要な情報を取得可能な第2の共有ファイルとを備えたものである。   Another simulation system of the present invention includes an instruction set simulator execution unit that simulates software, and an executable debugged system description unit that operates in cooperation with the same process as the instruction set simulator execution unit to simulate hardware. And a hardware description execution unit that operates in cooperation with the same process as the instruction set simulator execution unit and describes the hardware description that describes the operation of the hardware, and operates the instruction set simulator execution unit and A software debugger GUI unit that acquires information necessary for debugging the software from an instruction set simulator execution unit, a system description debugger GUI unit that operates the debugged system description unit and debugs the hardware, and the hardware A hardware description debugger GUI unit that operates the predicate execution unit to debug the hardware description, and shares information between the instruction set simulator execution unit and the software debugger GUI unit, and the software debugger GUI unit is necessary for debugging. The first shared file from which information can be acquired, information between the hardware description execution unit and the hardware description debugger GUI unit can be shared, and the hardware description debugger GUI unit can acquire information necessary for debugging And a second shared file.

本発明では、ISS実行部とソフトウェアデバッガGUI部との間に共有ファイルを置き、この中にISS実行部とソフトウェアデバッガGUI部の相互に必要な情報を蓄えることで、上記課題を解決した。したがって、シミュレーションシステムを実行しているプロセッサによって直接実行できるようにあらかじめコンパイルされている被デバッグシステム記述部のシミュレーション実行プロセスが停止したとしても、ISS実行部の状態を取得できる。   In the present invention, the above-described problem is solved by placing a shared file between the ISS execution unit and the software debugger GUI unit and storing necessary information between the ISS execution unit and the software debugger GUI unit. Therefore, even if the simulation execution process of the debugged system description part compiled in advance so that it can be directly executed by the processor executing the simulation system is stopped, the state of the ISS execution part can be acquired.

本発明によって、ハードウェアとソフトウェアを協調してシミュレーションするとともに、ハードウェアもソフトウェアも同時にデバッグすることが可能となり、ハードウェアとソフトウェアの相互関係によって発生する複雑な問題を効率よく解決することができる。   According to the present invention, hardware and software can be simulated in cooperation, and both hardware and software can be debugged at the same time, and complex problems caused by the interrelationship between hardware and software can be efficiently solved. .

以下、本発明の各実施の形態を図1から図10に基づいて説明する。   Hereinafter, each embodiment of the present invention will be described with reference to FIGS.

(実施の形態1)
本発明の第1の実施の形態は、請求項1に対応するものであり、ISS実行部とハードウェアのシミュレータが同じプロセスで動作している場合に、ハードウェアのシミュレーションをデバッグのために一時停止しても、ソフトウェア側でもある程度のデバッグ機能を利用できるようにするものである。これにより、ハードウェアとソフトウェアの相互に関連しあうことにより生じている不具合を効率よく発見できるようになる。
(Embodiment 1)
The first embodiment of the present invention corresponds to claim 1, and when the ISS execution unit and the hardware simulator are operating in the same process, the hardware simulation is temporarily executed for debugging. Even if it is stopped, a certain amount of debugging functions can be used on the software side. As a result, it is possible to efficiently find out defects that occur due to the mutual relationship between hardware and software.

図1は本発明の第1の実施の形態にかかるシミュレーションシステムを示す。   FIG. 1 shows a simulation system according to a first embodiment of the present invention.

シミュレーションシステム100は、実行可能な被デバッグシステム記述部104と、ISS実行部103と、システム記述デバッガGUI部106とソフトウェアデバッガGUI部105と共有ファイル201から構成される。   The simulation system 100 includes an executable debugged system description unit 104, an ISS execution unit 103, a system description debugger GUI unit 106, a software debugger GUI unit 105, and a shared file 201.

なお、実行可能な被デバッグシステム記述部104はC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアやソフトウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。また、ISS実行部103はパソコンやワークステーションなどのホストコンピュータ上で、マイコンによって実行される被デバッグソフトウェア102を、命令単位でマイコンと同じように実行し、マイコン内部のレジスタ、メモリのアクセスをシミュレートしたりシミュレーションに要するクロック数をカウントしたりするものである。110はシステム記述、111はコンパイラである。   The executable debugged system description unit 104 is a C or C ++ language, or a source code that describes the operation of hardware or software using a language such as SystemC, SpecC, or VerilogHDL. Compiled to run on a computer. In addition, the ISS execution unit 103 executes the software 102 to be debugged executed by the microcomputer on a host computer such as a personal computer or a workstation in the same way as the microcomputer for each instruction, and simulates access to the registers and memory in the microcomputer. Or counting the number of clocks required for simulation. 110 is a system description and 111 is a compiler.

実行可能な被デバッグシステム記述部104と、ISS実行部103が互いに連携しあい同一プロセス10で実行される。   The executable debugged system description unit 104 and the ISS execution unit 103 cooperate with each other and are executed in the same process 10.

共有ファイル201は、ふたつ以上のプロセスがお互いに情報を交換するために仮想メモリを共有する仕組みであり、パソコンやワークステーションのOSの機能である共有メモリやファイルで実現される。   The shared file 201 is a mechanism for sharing a virtual memory so that two or more processes exchange information with each other, and is realized by a shared memory or file that is a function of an OS of a personal computer or a workstation.

ソフトウェアデバッガGUI部105は、プロセス間通信によってISS実行部103を制御したりデバッグに必要な情報をISS実行部103から取得したりすることで被デバッグソフトウェアの動作検証を可能にするものである。   The software debugger GUI unit 105 enables operation verification of the software to be debugged by controlling the ISS execution unit 103 through inter-process communication and acquiring information necessary for debugging from the ISS execution unit 103.

システム記述デバッガGUI部106は、ソフトウェアデバッガGUI部105と同様にプロセス間通信によって実行可能な被デバッグシステム記述部104を制御したりデバッグに必要な情報を被デバッグシステム記述部104から取得したりすることでシステム記述の動作検証を可能にするものである。   Similar to the software debugger GUI unit 105, the system description debugger GUI unit 106 controls the debugged system description unit 104 that can be executed by inter-process communication, and acquires information necessary for debugging from the debugged system description unit 104. This makes it possible to verify the operation of the system description.

次に、第1の実施の形態の動作について詳細に説明する。   Next, the operation of the first embodiment will be described in detail.

図6は、ISS実行部103による共有メモリ作成フローを表す。この処理は、シミュレーション実行プロセスの起動時にISS実行部103が行う。図6の中の処理をMicrosoft社製OSの機能を使って具体化したISS実行部共有メモリ作成コード例を図7のP100とP101に示す。P100の行番号L01の構造体「struct TRegMemInfo」は共有化したメモリ領域に記録、保持するためのものである。その構造体のポインタ「ShearedRegMemInfo」がP101の行番号L14で設定される。   FIG. 6 shows a shared memory creation flow by the ISS execution unit 103. This process is performed by the ISS execution unit 103 when the simulation execution process is activated. PSS and P101 in FIG. 7 show examples of ISS execution unit shared memory creation codes in which the processing in FIG. 6 is implemented using the functions of the Microsoft OS. The structure “struct TRegMemInfo” of line number L01 of P100 is for recording and holding in a shared memory area. The pointer “ShearedRegMemInfo” of the structure is set by the line number L14 of P101.

まずS101において命令セットシミュレーションに必要な仮想的なマイコンのレジスタやメモリ情報を記録、保持するための共有ファイルを開く。P101の行番号L02のコードがそれにあたる。S102では、開いた共有ファイルへアクセスできるようにメモリへ割当てる。P101の行番号L14のコードがそれにあたる。そしてS103において共有化したメモリ領域を初期化する。P101の行番号L25のコードがそれにあたる。   First, in S101, a shared file for recording and holding virtual microcomputer registers and memory information necessary for instruction set simulation is opened. The code of line number L02 of P101 corresponds to it. In S102, allocation is made to the memory so that the opened shared file can be accessed. The code of line number L14 of P101 corresponds to it. In S103, the shared memory area is initialized. The code of line number L25 of P101 corresponds to it.

次に、ISS実行部103が共有ファイル201に必要な情報を記録、保持するための動作を説明する。   Next, an operation for the ISS execution unit 103 to record and hold necessary information in the shared file 201 will be described.

図8は、ISS実行部103における命令実行の手順を示すものである。命令を実行する前にあらかじめISS上で実行可能な被デバッグソフトウェア102を読み込み、共有ファイル201の中の仮想的なメモリへ書き込んでおく。S201で命令実行処理を行ない、S202で命令実行の終了条件をチェックし、条件が満たされていれば命令実行のループを終了する。S203において命令セットシミュレーション時に実行する命令を被デバッグソフトウェア102から取り込む。S204において取り込んだ命令を解析し、命令の種類やその命令の実行で使用する仮想的なマイコンのメモリアドレスや仮想的なマイコンのレジスタの種類などを特定する。命令の種類がデータの読み込みを必要とする場合、S205で仮想的なメモリや仮想的なレジスタからデータを読み込む。このとき、共有ファイル201の中に割当てられた仮想的なメモリやレジスタから読み込む。読み出したデータに対して演算が必要ならばS206で演算を行う。その後でデータの保存が必要ならば、S207で仮想的なメモリやレジスタへデータを書き込む。このとき、共有ファイル201の中に割当てられた仮想的なメモリやレジスタへ書き込む。S208でひとつの命令でどれだけのシミュレーション上の時間が経過したかを算出する。これらの動作を繰り返して命令を実行する。   FIG. 8 shows an instruction execution procedure in the ISS execution unit 103. Before executing the instruction, the software 102 to be debugged that can be executed on the ISS is read in advance and written to a virtual memory in the shared file 201. In step S201, instruction execution processing is performed. In step S202, an instruction execution termination condition is checked. If the condition is satisfied, the instruction execution loop is terminated. In S203, an instruction to be executed at the time of instruction set simulation is fetched from the debugged software 102. The instruction fetched in S204 is analyzed, and the type of the instruction, the memory address of the virtual microcomputer used for executing the instruction, the type of the virtual microcomputer register, and the like are specified. If the type of instruction requires data reading, data is read from a virtual memory or virtual register in S205. At this time, data is read from a virtual memory or register allocated in the shared file 201. If an operation is necessary for the read data, the operation is performed in S206. If it is necessary to store the data thereafter, the data is written to a virtual memory or register in S207. At this time, data is written into a virtual memory or register allocated in the shared file 201. In S208, it is calculated how much simulation time has passed with one command. These operations are repeated to execute the instruction.

このように、ISS実行部103が実行に必要な情報を共有ファイル201へ置くことにより、別プロセスで動作しているソフトウェアデバッガGUI部105からデバッグに必要な情報を任意のタイミングで取得することができ、たとえシミュレーション実行プロセス101が停止していても可能となる。   In this way, by placing information necessary for execution in the shared file 201 by the ISS execution unit 103, information necessary for debugging can be acquired from the software debugger GUI unit 105 operating in a separate process at an arbitrary timing. Yes, even if the simulation execution process 101 is stopped.

図9にソフトウェアデバッガGUI部105で共有ファイル201を開きデータを取得する際のコード例を示す。   FIG. 9 shows a code example when the software debugger GUI unit 105 opens the shared file 201 and acquires data.

ISS実行部103やソフトウェアデバッガGUI部105が共有ファイル201の同じ箇所にライトアクセスする可能性があるので、アクセスする際にはOSのセマフォ機能を使ったり共有ファイル201内のメモリにフラグを設けたりして排他制御をすると良い。また、一度に大きなサイズの共有ファイル201を設けるとOSによってはパフォーマンスが劣化するため、適切なサイズの複数の共有ファイルに分割することも有効である。   Since there is a possibility that the ISS execution unit 103 and the software debugger GUI unit 105 perform write access to the same portion of the shared file 201, when accessing, the OS semaphore function is used, or a flag is provided in the memory in the shared file 201. Then it is good to do exclusive control. Further, if a large-sized shared file 201 is provided at a time, the performance deteriorates depending on the OS. Therefore, it is also effective to divide into a plurality of shared files of appropriate size.

本実施の形態では、共有ファイル201の上に仮想的なメモリとレジスタを設ける例を示したが、それ以外にも、ISS実行部103で設定されるデバッグ機能に関する情報を共有ファイル201に持たせることで、シミュレーション実行プロセス101が停止してもデバッグ機能の設定や参照ができるようになる。  In the present embodiment, an example in which a virtual memory and a register are provided on the shared file 201 has been described, but in addition to this, the shared file 201 is provided with information on the debug function set by the ISS execution unit 103. Thus, even when the simulation execution process 101 is stopped, the debug function can be set and referred to.

(実施の形態2)
図2は本発明の請求項2に対応する第2の実施の形態にかかるシミュレーションシステムを示す。ISS実行部103に必要な情報および実行可能な被デバッグシステム記述部104が使用するデータを共有ファイル301に記録することで、実行可能な被デバッグシステム記述部104をデバッグするためにシミュレーション実行プロセス101を停止する場合においてもソフトウェアデバッガGUI部105はデバッグに必要な情報を共有ファイル301から取得でき、かつ、実行可能な被デバッグシステム記述104が使用するデータをも取得するができることを特徴とするシミュレーションシステム100である。ISS実行部103と被デバッグシステム記述部104が共有すべきデータがあり、かつ、シミュレーション実行プロセス101が停止したときに、ソフトウェアデバッガGUI部105が参照できたほうがデバッグ効率が高まる場合、たとえば、マイコンのアドレス空間に配置されたシステムLSIのレジスタの情報などがある場合は、デバッグ効率が高まり有効となる。
(Embodiment 2)
FIG. 2 shows a simulation system according to a second embodiment corresponding to claim 2 of the present invention. The information necessary for the ISS execution unit 103 and the data used by the executable debugged system description unit 104 are recorded in the shared file 301, so that the debug execution system description unit 104 can be debugged. The software debugger GUI unit 105 can acquire information necessary for debugging from the shared file 301 and can also acquire data used by the executable system description 104 to be debugged even when the process is stopped. System 100. When there is data to be shared between the ISS execution unit 103 and the debugged system description unit 104, and when the simulation execution process 101 is stopped, if the software debugger GUI unit 105 can refer to the debugging efficiency, for example, a microcomputer If there is information on the registers of the system LSI arranged in the address space, debugging efficiency is increased and effective.

共有ファイル301は、ふたつ以上のプロセスがお互いに情報を交換するために仮想メモリを共有する仕組みであり、パソコンやワークステーションのOSの機能である共有メモリやファイルで実現される。   The shared file 301 is a mechanism for sharing a virtual memory so that two or more processes exchange information with each other, and is realized by a shared memory or file that is a function of an OS of a personal computer or a workstation.

ソフトウェアデバッガGUI部105は第1の実施の形態と同様に、プロセス間通信によってISS実行部103を制御しデバッグに必要な情報を取得することで被デバッグソフトウェア102の動作検証を可能にするものである。   As in the first embodiment, the software debugger GUI unit 105 controls the ISS execution unit 103 by inter-process communication and acquires information necessary for debugging, thereby enabling operation verification of the debugged software 102. is there.

システム記述デバッガGUI部106も第1の実施の形態と同様で、ソフトウェアデバッガGUI部105と同様にプロセス間通信によって実行可能な被デバッグシステム記述部104を制御しデバッグに必要な情報を取得することでシステム記述の動作検証を可能にするものである。   Similarly to the first embodiment, the system description debugger GUI unit 106 controls the debugged system description unit 104 that can be executed by inter-process communication as in the software debugger GUI unit 105 and acquires information necessary for debugging. This enables system description operation verification.

共有ファイル301の作成手順、ISS実行部103や実行可能な被デバッグシステム記述部104が共有ファイル301に必要な情報を記録、保持する手順およびソフトウェアデバッガGUI部105が共有ファイル301から情報を取得する手順については、第1の実施の形態で説明した動作と同様である。   Procedure for creating shared file 301, procedure for recording and holding information necessary for shared file 301 by ISS execution unit 103 and executable debug system description unit 104, and software debugger GUI unit 105 obtaining information from shared file 301 The procedure is the same as the operation described in the first embodiment.

(実施の形態3)
図3は本発明の請求項3に対応する第3の実施の形態にかかるシミュレーションシステムを示す。第3の実施の形態は、実行可能な被デバッグシステム記述部104、401が複数のモジュールで構成されている場合において、いずれかのシステム記述デバッガGUI部106、601によりデバッグするためにシミュレーション実行プロセス101を停止する場合においても、ソフトウェアデバッガGUI部105が必要な情報を共有ファイル201から取得することが可能とするものである。
(Embodiment 3)
FIG. 3 shows a simulation system according to a third embodiment corresponding to claim 3 of the present invention. In the third embodiment, a simulation execution process for debugging by any of the system description debugger GUI units 106 and 601 when the debugged system description units 104 and 401 that can be executed includes a plurality of modules. Even when 101 is stopped, the software debugger GUI unit 105 can acquire necessary information from the shared file 201.

ISS実行部103、ISS上で実行可能な被デバッグソフトウェア102、共有ファイル201およびソフトウェアデバッガGUI部105は、第1の実施の形態と同じである。実行可能な被デバッグシステム記述部A104および実行可能な被デバッグシステム記述部B401は第1の実施の形態と同様にC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアやソフトウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものであるが、ダイナミックリンクライブラリのような形態でコンポーネント化されている点が異なる。  The ISS execution unit 103, the debugged software 102 that can be executed on the ISS, the shared file 201, and the software debugger GUI unit 105 are the same as those in the first embodiment. As in the first embodiment, the executable debugged system description part A104 and the executable debugged system description part B401 are hardware using a language such as C language, C ++ language, SystemC, SpecC, Verilog HDL, or the like. The source code that describes the operation of the software is compiled so that it can be executed on a host computer such as a personal computer or a workstation, but differs in that it is componentized in the form of a dynamic link library.

実行可能な被デバッグシステム記述部A104は、システム記述デバッガGUI部A106により、実行可能な被デバッグシステム記述B401は、システムデバッガGUI部B402により、それぞれプロセス間通信で制御されデバッグに必要な情報を取得することでシステム記述の動作検証を可能にするものである。   The executable system description part A104 that can be executed is controlled by the system description debugger GUI part A106, and the executable system description B401 that is executable by the system debugger GUI part B402 is acquired by the inter-process communication and acquires information necessary for debugging. By doing so, it is possible to verify the operation of the system description.

実行可能な被デバッグシステム記述部A104と実行可能な被デバッグシステム記述部B401とISS実行部103とは連携しあい同一プロセスで実行される。   The executable debugged system description part A104, the executable debugged system description part B401, and the ISS execution part 103 are linked together and executed in the same process.

次に、第3の実施の形態の動作について説明する。   Next, the operation of the third embodiment will be described.

共有ファイル201の作成手順、ISS実行部103が共有ファイル201に必要な情報を記録、保持する手順およびソフトウェアデバッガGUI部105が共有ファイル201から情報を取得する手順については、第1の実施の形態で説明した動作と同様である。   The procedure for creating the shared file 201, the procedure for the ISS execution unit 103 to record and hold information necessary for the shared file 201, and the procedure for the software debugger GUI unit 105 to acquire information from the shared file 201 are described in the first embodiment. The operation is the same as that described above.

共有ファイル201へのアクセスはファイルを共有する他方のプロセスを意識せずに行うことが可能である。そのため、実行可能な被デバッグシステム記述部A104をデバッグするためにシステム記述デバッガGUI部A106により、もしくは、実行可能な被デバッグシステム記述部B401をデバッグするためにシステム記述デバッガGUI部B402により、シミュレーション実行プロセス101を停止することがあっても、ソフトウェアデバッガGUI部105は、デバッグに必要な情報を取得できる。   Access to the shared file 201 can be performed without being aware of the other process sharing the file. Therefore, the simulation is executed by the system description debugger GUI unit A106 for debugging the executable debugged system description part A104, or by the system description debugger GUI part B402 for debugging the executable debugged system description part B401. Even if the process 101 is stopped, the software debugger GUI unit 105 can acquire information necessary for debugging.

以上のように、このシミュレーションシステム100によれば、コンポーネント化された複数の実行可能な被デバッグシステム記述部104、401をデバッグするためにシミュレーション実行プロセスを停止する場合においてもソフトウェアデバッガGUI部105はデバッグに必要な情報を共有ファイル201から取得することができ、効率よく被デバッグシステム記述や被デバッグソフトウェアをデバッグすることが可能となる。   As described above, according to the simulation system 100, the software debugger GUI unit 105 can be used even when the simulation execution process is stopped in order to debug a plurality of executable debugged system description units 104 and 401 that are componentized. Information necessary for debugging can be acquired from the shared file 201, and the debugged system description and debugged software can be efficiently debugged.

(実施の形態4)
図5は本発明の請求項4に対応する第4の実施の形態にかかるシミュレーションシステムを示す。第4の実施の形態は2つ以上の例えばISS実行部103、502を用いて実行可能な被デバッグシステム記述部104が連携しながら動作する場合において、2つ以上のISSの情報を各々のソフトウェアデバッグ用共有ファイル201、503に記録することで、実行可能な被デバッグシステム記述部104をデバッグするためにシミュレーション実行プロセス101を停止する場合においても、ソフトウェアデバッガGUI部104、504はデバッグに必要な情報を共有ファイルから取得でき、かつ、実行可能な被デバッグシステム記述部104が使用するデータを取得することができることを特徴とするシミュレーションシステムである。これにより、複数のISS実行部103、502が存在するシミュレーションシステム100でも各々のISS実行部103、502が持つ情報を取得することで、デバッグに必要な情報の取得範囲を広めることができ、デバッグの効率を高めてシステム開発期間が短縮できる。
(Embodiment 4)
FIG. 5 shows a simulation system according to a fourth embodiment corresponding to claim 4 of the present invention. In the fourth embodiment, when two or more debugged system description units 104 that can be executed using, for example, the ISS execution units 103 and 502 operate in cooperation with each other, information on two or more ISSs is stored in each software. Even when the simulation execution process 101 is stopped in order to debug the executable debugged system description section 104 by recording in the debug shared files 201 and 503, the software debugger GUI sections 104 and 504 are necessary for debugging. The simulation system is characterized in that information can be acquired from a shared file and data used by the executable debugged system description unit 104 can be acquired. As a result, even in the simulation system 100 in which a plurality of ISS execution units 103 and 502 exist, by acquiring the information held by each ISS execution unit 103 and 502, the acquisition range of information necessary for debugging can be expanded. System development period can be shortened.

図5のシミュレーションシステム100は、実行可能な被デバッグシステム記述部104と、ISS実行部A103およびISS実行部B502と、ISS上で実行可能な被デバッグソフトウェアA102および被デバッグソフトウェアB501と、システム記述デバッガGUI部106とソフトウェアデバッガGUI部A105およびソフトウェアデバッガGUI部B504と共有ファイルA201および共有ファイルB503から構成される。   The simulation system 100 of FIG. 5 includes an executable debugged system description unit 104, an ISS execution unit A103 and an ISS execution unit B502, debugged software A102 and debugged software B501 that can be executed on the ISS, and a system description debugger. The GUI unit 106, the software debugger GUI unit A105, the software debugger GUI unit B504, the shared file A201, and the shared file B503 are included.

なお、実行可能な被デバッグシステム記述部104は第1の実施の形態と同様にC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアやソフトウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。   The executable debug system description unit 104 is a source that describes the operation of hardware or software using a language such as C language, C ++ language, SystemC, SpecC, Verilog HDL, or the like as in the first embodiment. The code is compiled to run on a host computer such as a personal computer or workstation.

また、ISS実行部A103およびISS実行部B502も第1の実施の形態で述べたISS実行部103と同等のもので、パソコンやワークステーションなどのホストコンピュータ上でマイコンによって実行される被デバッグソフトウェアA102や被デバッグソフトウェアB501を、命令単位でマイコンと同じように実行し、マイコン内部のレジスタ、メモリのアクセスをシミュレートしたり、シミュレーションに要するクロック数をカウントしたりするものである。   The ISS execution unit A103 and the ISS execution unit B502 are also equivalent to the ISS execution unit 103 described in the first embodiment, and the debugged software A102 is executed by a microcomputer on a host computer such as a personal computer or a workstation. And the debugged software B 501 are executed in units of instructions in the same way as the microcomputer to simulate access to registers and memories in the microcomputer and to count the number of clocks required for the simulation.

実行可能な被デバッグシステム記述部104と、ISS実行部A103およびISS実行部B502は互いに連携しあいながらひとつのプロセス101で実行される。   The executable debugged system description unit 104, the ISS execution unit A103, and the ISS execution unit B502 are executed in one process 101 while cooperating with each other.

共有ファイルA201および共有ファイルB503は、第1の実施の形態の共有ファイル201と同様に、ふたつ以上のプロセスがお互いに情報を交換するために仮想メモリを共有する仕組みであり、共有メモリやファイルで実現される。   Similar to the shared file 201 of the first embodiment, the shared file A 201 and the shared file B 503 are mechanisms for sharing virtual memory so that two or more processes exchange information with each other. Realized.

ソフトウェアデバッガGUI部A105およびソフトウェアデバッガGUI部B504は第1の実施の形態のときと同様に、プロセス間通信によってISS実行部A103やISS実行部B502を制御し、デバッグに必要な情報を取得することで被デバッグソフトウェアA102や被デバッグソフトウェアB501の動作検証を可能にするものである。   As in the first embodiment, the software debugger GUI unit A105 and the software debugger GUI unit B504 control the ISS execution unit A103 and the ISS execution unit B502 by inter-process communication and acquire information necessary for debugging. Thus, the operation verification of the debugged software A102 and the debugged software B501 is enabled.

システム記述デバッガGUI部106も第1の実施の形態のときと同様で、ソフトウェアデバッガGUI部A105やソフトウェアデバッガGUI部B504と同様にプロセス間通信によって実行可能な被デバッグシステム記述部104を制御することでシステム記述の動作検証を可能にするものである。   Similarly to the first embodiment, the system description debugger GUI unit 106 controls the debugged system description unit 104 that can be executed by inter-process communication in the same manner as the software debugger GUI unit A105 and the software debugger GUI unit B504. This enables system description operation verification.

以上のように、第4の実施の形態のシミュレーションシステム100によれば、実行可能な被デバッグシステム記述部104をデバッグするためにシミュレーション実行プロセス101を停止する場合においても複数のソフトウェアデバッガGUI部105、504はデバッグに必要な情報を共有ファイルを経由して取得したり設定したりすることができる。   As described above, according to the simulation system 100 of the fourth embodiment, even when the simulation execution process 101 is stopped in order to debug the executable debugged system description unit 104, a plurality of software debugger GUI units 105 are provided. 504 can acquire and set information necessary for debugging via a shared file.

(実施の形態5)
図5は本発明の請求項5に対応する第5の実施の形態にかかるシミュレーションシステムを示す。第5の実施の形態は、第1の実施の形態の構成に加え、ハードウェア記述実行部602も連携するものであり、被デバッグソフトウェア102、被デバッグシステム記述部104、被デバッグハードウェア記述601のシミュレーションを可能とするシミュレーションシステム100である。ここで、被デバッグハードウェア記述601とはC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアの動作を記述したソースコードであり、ハードウェア記述実行部602がそれを解釈して実行するものである。ハードウェア記述実行部602は一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。第1の実施の形態から第5の実施の形態の実行可能な被デバッグシステム記述部104はコンパイル済みであったが、第5の実施の形態の被デバッグハードウェア記述601はコンパイルされていないものを指す。
(Embodiment 5)
FIG. 5 shows a simulation system according to a fifth embodiment corresponding to claim 5 of the present invention. In the fifth embodiment, in addition to the configuration of the first embodiment, the hardware description execution unit 602 also cooperates, and the debugged software 102, the debugged system description unit 104, and the debugged hardware description 601 are linked. This is a simulation system 100 that enables the simulation. Here, the hardware description to be debugged 601 is a source code that describes the operation of the hardware using a language such as C language, C ++ language, SystemC, SpecC, Verilog HDL, etc. Is interpreted and executed. The hardware description execution unit 602 generally uses an interpreter and often executes the intermediate language after first converting it to an intermediate language, but adopts a just-in-time compiler method that partially compiles at the time of execution. Alternatively, the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data. The executable debugged system description unit 104 of the first to fifth embodiments has been compiled, but the debugged hardware description 601 of the fifth embodiment has not been compiled. Point to.

ISS実行部103、ISS実行部103で実行可能な被デバッグソフトウェア102、共有ファイルA201、ソフトウェアデバッガGUI部105、実行可能な被デバッグシステム記述部104およびシステム記述デバッガGUI部106は、第1の実施の形態と同じである。   The ISS execution unit 103, the debugged software 102 executable by the ISS execution unit 103, the shared file A201, the software debugger GUI unit 105, the executable debugged system description unit 104, and the system description debugger GUI unit 106 are the first implementation. It is the same as the form.

ハードウェア記述実行部602は被デバッグハードウェア記述601を読み込んでその記述内容を実行する。   The hardware description execution unit 602 reads the debugged hardware description 601 and executes the description contents.

実行可能な被デバッグシステム記述部104とISS実行部103およびハードウェア記述実行部602が連携しあい同一のプロセスで実行される。   The executable debugged system description unit 104, the ISS execution unit 103, and the hardware description execution unit 602 cooperate with each other and are executed in the same process.

共有ファイルA201および共有ファイルB603は、ふたつ以上のプロセスがお互いに情報を交換するためにファイルを共有する仕組みであり、OSの機能である共有メモリや共有ファイルで実現される。共有ファイルA201は、ISS実行部103上で実行可能な被デバッグソフトウェア102を動作検証するために必要な情報を記録、保持するために使われる。   The shared file A 201 and the shared file B 603 are mechanisms for sharing a file so that two or more processes exchange information with each other, and are realized by a shared memory or a shared file that is a function of the OS. The shared file A 201 is used for recording and holding information necessary for verifying the operation of the debugged software 102 that can be executed on the ISS execution unit 103.

共有ファイルB603は、ハードウェア記述実行部602上で実行される被デバッグハードウェア記述601を動作検証するために必要な情報を記録、保持するために使われる。   The shared file B 603 is used for recording and holding information necessary for verifying the operation of the debugged hardware description 601 executed on the hardware description execution unit 602.

ハードウェア記述デバッガGUI部604は、ソフトウェアデバッガGUI部105と同様にプロセス間通信によってハードウェア記述実行部602を制御することで被デバッグハードウェア記述601の動作検証を可能にするものである。   Similar to the software debugger GUI unit 105, the hardware description debugger GUI unit 604 controls the hardware description execution unit 602 through inter-process communication, thereby enabling operation verification of the debugged hardware description 601.

共有ファイルA201の作成手順、ISS実行部103が共有ファイルA201に必要な情報を記録、保持する手順、およびソフトウェアデバッガGUI部105が共有ファイル201から情報を取得する手順については、第1の実施の形態で説明した動作と同様である。   The procedure for creating the shared file A201, the procedure for the ISS execution unit 103 to record and hold information necessary for the shared file A201, and the procedure for the software debugger GUI unit 105 to acquire information from the shared file 201 are described in the first embodiment. The operation is the same as that described in the embodiment.

ハードウェア記述デバッガGUI部604は、共有ファイルB603から、ハードウェア記述のシミュレーション状態である信号の状態やシミュレーション時間などを取得したり設定したりする。   The hardware description debugger GUI unit 604 acquires or sets the signal state, simulation time, and the like, which are the simulation states of the hardware description, from the shared file B 603.

共有ファイルA201および共有ファイルB603へのアクセスはファイルを共有する他方のプロセスを意識せずに行うことが可能である。そのため、実行可能な被デバッグシステム記述部A104をデバッグするためにシステム記述デバッガGUI部A106によりシミュレーション実行プロセス101を停止することがあっても、ソフトウェアデバッガGUI部105やハードウェア記述デバッガGUI部604は、デバッグに必要な情報を取得したり設定したりすることができる。   Access to the shared file A 201 and the shared file B 603 can be performed without being aware of the other process sharing the file. Therefore, even if the simulation execution process 101 is stopped by the system description debugger GUI unit A106 to debug the executable debugged system description unit A104, the software debugger GUI unit 105 and the hardware description debugger GUI unit 604 are Information necessary for debugging can be obtained and set.

本発明にかかるシミュレーションシステムは、ハードウェアとソフトウェアを協調してシミュレーションできるものであり、プロセッサを使用する各種電子機器のハードウェアやソフトウェア開発に有用である。また、プロセッサの開発やプロセッサの周辺LSIの開発においても有用である。   The simulation system according to the present invention can simulate hardware and software in cooperation, and is useful for hardware and software development of various electronic devices using a processor. It is also useful in the development of processors and peripheral LSIs for processors.

本発明の第1の実施の形態を説明するシミュレーションシステムのブロック図である。1 is a block diagram of a simulation system for explaining a first embodiment of the present invention. 本発明の第2の実施の形態を説明するシミュレーションシステムのブロック図である。It is a block diagram of the simulation system explaining the 2nd Embodiment of this invention. 本発明の第3の実施の形態を説明するシミュレーションシステムのブロック図である。It is a block diagram of the simulation system explaining the 3rd Embodiment of this invention. 本発明の第4の実施の形態を説明するシミュレーションシステムのブロック図である。It is a block diagram of the simulation system explaining the 4th Embodiment of this invention. 本発明の第5の実施の形態を説明するシミュレーションシステムのブロック図である。It is a block diagram of the simulation system explaining the 5th Embodiment of this invention. ISS実行部での共有メモリ作成フロー図である。It is a shared memory creation flowchart in an ISS execution part. ISS実行部での共有メモリ作成のコード例の図である。It is a figure of the code example of shared memory creation in ISS execution part. ISS実行部での命令実行フロー図である。It is an instruction execution flowchart in the ISS execution unit. ソフトウェアデバッガGUI部でのデータ取得のコード例の図である。It is a figure of the example of a code | cord | chord of the data acquisition in a software debugger GUI part. ハードウェア記述実行部の記述実行フロー図である。It is a description execution flowchart of a hardware description execution part. シミュレーションシステムの従来例である。It is a conventional example of a simulation system.

符号の説明Explanation of symbols

101 シミュレーションシステム
102 ISS上で実行可能な被デバッグソフトウェア
103 ISS実行部
104 実行可能な被デバッグシステム記述
105 ソフトウェアデバッガGUI部
106 システム記述デバッガGUI部
110 システム記述
111 コンパイラ
201 共有ファイル
601 被デバッグハードウェア記述
602 ハードウェア記述実行部
604 ハードウェア記述デバッガGUI部
DESCRIPTION OF SYMBOLS 101 Simulation system 102 Debugged software executable on ISS 103 ISS execution unit 104 Executable debugged system description 105 Software debugger GUI unit 106 System description debugger GUI unit 110 System description 111 Compiler 201 Shared file 601 Hardware description to be debugged 602 Hardware description execution unit 604 Hardware description debugger GUI unit

Claims (5)

ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたシミュレーションシステム。   An instruction set simulator execution unit that simulates software, an executable debugged system description unit that operates in cooperation with the same process as the instruction set simulator execution unit and simulates hardware, and the instruction set simulator execution unit A software debugger GUI unit for operating and acquiring information necessary for debugging the software from the instruction set simulator execution unit; a system description debugger GUI unit for operating the debugged system description unit and debugging hardware; A simulation system including a shared file that shares information between the instruction set simulator execution unit and the software debugger GUI unit, and from which the software debugger GUI unit can acquire information necessary for debugging. ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記被デバッグシステム記述部と前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたシミュレーションシステム。   An instruction set simulator execution unit that simulates software, an executable debugged system description unit that operates in cooperation with the same process as the instruction set simulator execution unit and simulates hardware, and the instruction set simulator execution unit A software debugger GUI unit for operating and acquiring information necessary for debugging the software from the instruction set simulator execution unit; a system description debugger GUI unit for operating the debugged system description unit and debugging hardware; The simulation includes a shared file that shares information among the debugged system description unit, the instruction set simulator execution unit, and the software debugger GUI unit, and from which the software debugger GUI unit can acquire information necessary for debugging. Activation system. ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な複数の被デバッグシステム記述部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記複数の被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたシミュレーションシステム。   An instruction set simulator execution unit that simulates software, a plurality of executable system description units that operate in cooperation with the same process as the instruction set simulator execution unit to simulate hardware, and the instruction set simulator execution A software debugger GUI unit for operating the unit and acquiring information necessary for debugging the software from the instruction set simulator execution unit, and a system description debugger for operating the plurality of debug target system description units to debug hardware A simulation system comprising a GUI unit, a shared file that shares information between the instruction set simulator execution unit and the software debugger GUI unit, and from which the software debugger GUI unit can acquire information necessary for debugging ソフトウェアをシミュレートしかつ同じプロセス内で連携して動作する複数の命令セットシミュレータ実行部と、前記複数の命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記複数の命令セットシミュレータ実行部を操作するとともに前記複数の命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作しハードウェアをデバッグするシステム記述デバッガGUI部と、前記複数の命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な共有ファイルとを備えたシミュレーションシステム。   A plurality of instruction set simulator execution units that simulate software and operate in cooperation in the same process, and execute in cooperation with the same process as the plurality of instruction set simulator execution units to simulate hardware A system description section to be debugged, a software debugger GUI section for operating the plurality of instruction set simulator execution sections and obtaining information necessary for debugging the software from the plurality of instruction set simulator execution sections, and the debugged section Information necessary for debugging the system description debugger GUI unit for operating the system description unit, sharing information between the plurality of instruction set simulator execution units and the software debugger GUI unit, and debugging the hardware Get Simulation system that includes a performance shared file. ソフトウェアをシミュレートする命令セットシミュレータ実行部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアをシミュレートする実行可能な被デバッグシステム記述部と、前記命令セットシミュレータ実行部と同じプロセスで連携して動作しハードウェアの動作を記述したハードウェア記述の内容を実行するハードウェア記述実行部と、前記命令セットシミュレータ実行部を操作するとともに前記命令セットシミュレータ実行部から前記ソフトウェアをデバッグするのに必要な情報を取得するソフトウェアデバッガGUI部と、前記被デバッグシステム記述部を操作し前記ハードウェアをデバッグするシステム記述デバッガGUI部と、前記ハードウェア記述実行部を操作し前記ハードウェア記述をデバッグするハードウェア記述デバッガGUI部と、前記命令セットシミュレータ実行部と前記ソフトウェアデバッガGUI部の間の情報を共有し前記ソフトウェアデバッガGUI部がデバッグに必要な情報を取得可能な第1の共有ファイルと、前記ハードウェア記述実行部と前記ハードウェア記述デバッガGUI部の間の情報を共有し前記ハードウェア記述デバッガGUI部がデバッグに必要な情報を取得可能な第2の共有ファイルとを備えたシミュレーションシステム。   An instruction set simulator executing unit for simulating software, an executable debugged system description unit operating in cooperation with the same process as the instruction set simulator executing unit to simulate hardware, and the instruction set simulator executing unit; A hardware description executor that operates in cooperation with the same process and executes the contents of the hardware description that describes the operation of the hardware, operates the instruction set simulator executor, and operates the software from the instruction set simulator executor. A software debugger GUI unit that acquires information necessary for debugging, a system description debugger GUI unit that operates the debugged system description unit to debug the hardware, and a hardware description execution unit that operates the hardware description Description A hardware description debugger GUI unit to be backed, a first shared file that shares information between the instruction set simulator execution unit and the software debugger GUI unit, and from which the software debugger GUI unit can acquire information necessary for debugging, A simulation system comprising: a second shared file that shares information between the hardware description execution unit and the hardware description debugger GUI unit and from which the hardware description debugger GUI unit can acquire information necessary for debugging .
JP2004148635A 2004-05-19 2004-05-19 Simulation system Pending JP2005332110A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004148635A JP2005332110A (en) 2004-05-19 2004-05-19 Simulation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004148635A JP2005332110A (en) 2004-05-19 2004-05-19 Simulation system

Publications (1)

Publication Number Publication Date
JP2005332110A true JP2005332110A (en) 2005-12-02

Family

ID=35486745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004148635A Pending JP2005332110A (en) 2004-05-19 2004-05-19 Simulation system

Country Status (1)

Country Link
JP (1) JP2005332110A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908592B2 (en) 2006-04-12 2011-03-15 Fujitsu Semiconductor Limited Software/hardware partitioning program and method
JP2014016877A (en) * 2012-07-10 2014-01-30 Nippon Telegr & Teleph Corp <Ntt> Monitoring device and monitoring method
JP2015026338A (en) * 2013-07-29 2015-02-05 富士電機株式会社 Coordination simulation device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908592B2 (en) 2006-04-12 2011-03-15 Fujitsu Semiconductor Limited Software/hardware partitioning program and method
JP2014016877A (en) * 2012-07-10 2014-01-30 Nippon Telegr & Teleph Corp <Ntt> Monitoring device and monitoring method
JP2015026338A (en) * 2013-07-29 2015-02-05 富士電機株式会社 Coordination simulation device

Similar Documents

Publication Publication Date Title
US5911073A (en) Method and apparatus for dynamic process monitoring through an ancillary control code system
US8930912B2 (en) Method and system for performing software verification
US8549468B2 (en) Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model
CN109144515B (en) Off-line simulation method and device for DCS graphical algorithm configuration
EP2359247B1 (en) Transforming user script code for debugging
TWI410864B (en) Controlling instruction execution in a processing environment
US9501269B2 (en) Automatic source code generation for accelerated function calls
US20120131559A1 (en) Automatic Program Partition For Targeted Replay
CN102902834A (en) Verification method and verification system of SOC (System on Chip)
EP3895022B1 (en) Improving emulation and tracing performance using compiler-generated emulation optimization metadata
US7096322B1 (en) Instruction processor write buffer emulation using embedded emulation control instructions
US20130024178A1 (en) Playback methodology for verification components
US20150212835A1 (en) Automatic identification of interesting interleavings in a multithreaded program
US7676774B2 (en) System LSI verification system and system LSI verification method
JP2008140405A (en) Co-validation method between electronic circuit and control program
Garavel et al. Verification of an industrial SystemC/TLM model using LOTOS and CADP
US9658849B2 (en) Processor simulation environment
CN111176663A (en) Data processing method, device and equipment of application program and storage medium
JP2005332110A (en) Simulation system
CN104679963A (en) Simulation and verification device and simulation and verification method based on TCL
CN113849397A (en) Execution engine, virtual machine, related apparatus and related methods
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
JP2013020425A (en) Hardware and software cooperative verification method using open source software
US11719749B1 (en) Method and system for saving and restoring of initialization actions on dut and corresponding test environment
JP2019067227A (en) Image processing apparatus, image processing method, and program

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060616