JP2005332110A - Simulation system - Google Patents
Simulation system Download PDFInfo
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
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つのアプリケーションとして統合した上でそれぞれの処理にインターフェイスを設けて連動させるという方法である。
ハードウェアの動きをある程度抽象化してソフトウェアとして記述し、ソフトウェアと連結させて実行可能ファイルを作成してからそれを実行するという方法の場合、シミュレータとしての実行速度は高速であるが、ハードウェアの動きを抽象化する工数が大きいために、余程の理由がない限り実際の業務では実施できなかったり、あるいは、ハードウェアの実際の動きとは大きく異なった抽象化をしてしまったりするという課題があった。 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
ソフトウェアをデバッグするためのソフトウェアデバッガ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)
近年、システムの複雑化や大規模化が著しく、ソフトウェアのデバッグ工数や検証工数の増大が経営を圧迫するほどになっている。また、ソフトウェアのデバッグや検証に用いるハードウェアを必要なタイミングで入手することもますます困難となっている。 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
なお、実行可能な被デバッグシステム記述部104はC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアやソフトウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。また、ISS実行部103はパソコンやワークステーションなどのホストコンピュータ上で、マイコンによって実行される被デバッグソフトウェア102を、命令単位でマイコンと同じように実行し、マイコン内部のレジスタ、メモリのアクセスをシミュレートしたりシミュレーションに要するクロック数をカウントしたりするものである。110はシステム記述、111はコンパイラである。
The executable debugged
実行可能な被デバッグシステム記述部104と、ISS実行部103が互いに連携しあい同一プロセス10で実行される。
The executable debugged
共有ファイル201は、ふたつ以上のプロセスがお互いに情報を交換するために仮想メモリを共有する仕組みであり、パソコンやワークステーションのOSの機能である共有メモリやファイルで実現される。
The shared
ソフトウェアデバッガGUI部105は、プロセス間通信によってISS実行部103を制御したりデバッグに必要な情報をISS実行部103から取得したりすることで被デバッグソフトウェアの動作検証を可能にするものである。
The software
システム記述デバッガGUI部106は、ソフトウェアデバッガGUI部105と同様にプロセス間通信によって実行可能な被デバッグシステム記述部104を制御したりデバッグに必要な情報を被デバッグシステム記述部104から取得したりすることでシステム記述の動作検証を可能にするものである。
Similar to the software
次に、第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
まず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
図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実行部103が実行に必要な情報を共有ファイル201へ置くことにより、別プロセスで動作しているソフトウェアデバッガGUI部105からデバッグに必要な情報を任意のタイミングで取得することができ、たとえシミュレーション実行プロセス101が停止していても可能となる。
In this way, by placing information necessary for execution in the shared
図9にソフトウェアデバッガGUI部105で共有ファイル201を開きデータを取得する際のコード例を示す。
FIG. 9 shows a code example when the software
ISS実行部103やソフトウェアデバッガGUI部105が共有ファイル201の同じ箇所にライトアクセスする可能性があるので、アクセスする際にはOSのセマフォ機能を使ったり共有ファイル201内のメモリにフラグを設けたりして排他制御をすると良い。また、一度に大きなサイズの共有ファイル201を設けるとOSによってはパフォーマンスが劣化するため、適切なサイズの複数の共有ファイルに分割することも有効である。
Since there is a possibility that the
本実施の形態では、共有ファイル201の上に仮想的なメモリとレジスタを設ける例を示したが、それ以外にも、ISS実行部103で設定されるデバッグ機能に関する情報を共有ファイル201に持たせることで、シミュレーション実行プロセス101が停止してもデバッグ機能の設定や参照ができるようになる。
In the present embodiment, an example in which a virtual memory and a register are provided on the shared
(実施の形態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
共有ファイル301は、ふたつ以上のプロセスがお互いに情報を交換するために仮想メモリを共有する仕組みであり、パソコンやワークステーションのOSの機能である共有メモリやファイルで実現される。
The shared
ソフトウェアデバッガGUI部105は第1の実施の形態と同様に、プロセス間通信によってISS実行部103を制御しデバッグに必要な情報を取得することで被デバッグソフトウェア102の動作検証を可能にするものである。
As in the first embodiment, the software
システム記述デバッガGUI部106も第1の実施の形態と同様で、ソフトウェアデバッガGUI部105と同様にプロセス間通信によって実行可能な被デバッグシステム記述部104を制御しデバッグに必要な情報を取得することでシステム記述の動作検証を可能にするものである。
Similarly to the first embodiment, the system description
共有ファイル301の作成手順、ISS実行部103や実行可能な被デバッグシステム記述部104が共有ファイル301に必要な情報を記録、保持する手順およびソフトウェアデバッガGUI部105が共有ファイル301から情報を取得する手順については、第1の実施の形態で説明した動作と同様である。
Procedure for creating shared
(実施の形態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
ISS実行部103、ISS上で実行可能な被デバッグソフトウェア102、共有ファイル201およびソフトウェアデバッガGUI部105は、第1の実施の形態と同じである。実行可能な被デバッグシステム記述部A104および実行可能な被デバッグシステム記述部B401は第1の実施の形態と同様にC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアやソフトウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものであるが、ダイナミックリンクライブラリのような形態でコンポーネント化されている点が異なる。
The
実行可能な被デバッグシステム記述部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
次に、第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
共有ファイル201へのアクセスはファイルを共有する他方のプロセスを意識せずに行うことが可能である。そのため、実行可能な被デバッグシステム記述部A104をデバッグするためにシステム記述デバッガGUI部A106により、もしくは、実行可能な被デバッグシステム記述部B401をデバッグするためにシステム記述デバッガGUI部B402により、シミュレーション実行プロセス101を停止することがあっても、ソフトウェアデバッガGUI部105は、デバッグに必要な情報を取得できる。
Access to the shared
以上のように、このシミュレーションシステム100によれば、コンポーネント化された複数の実行可能な被デバッグシステム記述部104、401をデバッグするためにシミュレーション実行プロセスを停止する場合においてもソフトウェアデバッガGUI部105はデバッグに必要な情報を共有ファイル201から取得することができ、効率よく被デバッグシステム記述や被デバッグソフトウェアをデバッグすることが可能となる。
As described above, according to the
(実施の形態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
図5のシミュレーションシステム100は、実行可能な被デバッグシステム記述部104と、ISS実行部A103およびISS実行部B502と、ISS上で実行可能な被デバッグソフトウェアA102および被デバッグソフトウェアB501と、システム記述デバッガGUI部106とソフトウェアデバッガGUI部A105およびソフトウェアデバッガGUI部B504と共有ファイルA201および共有ファイルB503から構成される。
The
なお、実行可能な被デバッグシステム記述部104は第1の実施の形態と同様にC言語やC++言語、あるいは、SystemCやSpecC、VerilogHDLなどの言語を用いてハードウェアやソフトウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The executable debug
また、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
実行可能な被デバッグシステム記述部104と、ISS実行部A103およびISS実行部B502は互いに連携しあいながらひとつのプロセス101で実行される。
The executable debugged
共有ファイルA201および共有ファイルB503は、第1の実施の形態の共有ファイル201と同様に、ふたつ以上のプロセスがお互いに情報を交換するために仮想メモリを共有する仕組みであり、共有メモリやファイルで実現される。
Similar to the shared
ソフトウェアデバッガ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
以上のように、第4の実施の形態のシミュレーションシステム100によれば、実行可能な被デバッグシステム記述部104をデバッグするためにシミュレーション実行プロセス101を停止する場合においても複数のソフトウェアデバッガGUI部105、504はデバッグに必要な情報を共有ファイルを経由して取得したり設定したりすることができる。
As described above, according to the
(実施の形態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
ISS実行部103、ISS実行部103で実行可能な被デバッグソフトウェア102、共有ファイルA201、ソフトウェアデバッガGUI部105、実行可能な被デバッグシステム記述部104およびシステム記述デバッガGUI部106は、第1の実施の形態と同じである。
The
ハードウェア記述実行部602は被デバッグハードウェア記述601を読み込んでその記述内容を実行する。
The hardware
実行可能な被デバッグシステム記述部104とISS実行部103およびハードウェア記述実行部602が連携しあい同一のプロセスで実行される。
The executable debugged
共有ファイルA201および共有ファイルB603は、ふたつ以上のプロセスがお互いに情報を交換するためにファイルを共有する仕組みであり、OSの機能である共有メモリや共有ファイルで実現される。共有ファイルA201は、ISS実行部103上で実行可能な被デバッグソフトウェア102を動作検証するために必要な情報を記録、保持するために使われる。
The shared
共有ファイルB603は、ハードウェア記述実行部602上で実行される被デバッグハードウェア記述601を動作検証するために必要な情報を記録、保持するために使われる。
The shared
ハードウェア記述デバッガGUI部604は、ソフトウェアデバッガGUI部105と同様にプロセス間通信によってハードウェア記述実行部602を制御することで被デバッグハードウェア記述601の動作検証を可能にするものである。
Similar to the software
共有ファイルA201の作成手順、ISS実行部103が共有ファイルA201に必要な情報を記録、保持する手順、およびソフトウェアデバッガGUI部105が共有ファイル201から情報を取得する手順については、第1の実施の形態で説明した動作と同様である。
The procedure for creating the shared file A201, the procedure for the
ハードウェア記述デバッガGUI部604は、共有ファイルB603から、ハードウェア記述のシミュレーション状態である信号の状態やシミュレーション時間などを取得したり設定したりする。
The hardware description
共有ファイルA201および共有ファイルB603へのアクセスはファイルを共有する他方のプロセスを意識せずに行うことが可能である。そのため、実行可能な被デバッグシステム記述部A104をデバッグするためにシステム記述デバッガGUI部A106によりシミュレーション実行プロセス101を停止することがあっても、ソフトウェアデバッガGUI部105やハードウェア記述デバッガGUI部604は、デバッグに必要な情報を取得したり設定したりすることができる。
Access to the shared
本発明にかかるシミュレーションシステムは、ハードウェアとソフトウェアを協調してシミュレーションできるものであり、プロセッサを使用する各種電子機器のハードウェアやソフトウェア開発に有用である。また、プロセッサの開発やプロセッサの周辺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.
101 シミュレーションシステム
102 ISS上で実行可能な被デバッグソフトウェア
103 ISS実行部
104 実行可能な被デバッグシステム記述
105 ソフトウェアデバッガGUI部
106 システム記述デバッガGUI部
110 システム記述
111 コンパイラ
201 共有ファイル
601 被デバッグハードウェア記述
602 ハードウェア記述実行部
604 ハードウェア記述デバッガGUI部
DESCRIPTION OF
Claims (5)
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)
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 |
-
2004
- 2004-05-19 JP JP2004148635A patent/JP2005332110A/en active Pending
Cited By (3)
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 |