JP2005321848A - System simulation execution program and hardware description conversion program - Google Patents
System simulation execution program and hardware description conversion program Download PDFInfo
- Publication number
- JP2005321848A JP2005321848A JP2004137107A JP2004137107A JP2005321848A JP 2005321848 A JP2005321848 A JP 2005321848A JP 2004137107 A JP2004137107 A JP 2004137107A JP 2004137107 A JP2004137107 A JP 2004137107A JP 2005321848 A JP2005321848 A JP 2005321848A
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- unit
- simulation
- hardware description
- software
- 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
【課題】 ハードウェアのシミュレータとソフトウェアのシミュレータを協調しながら高速なシミュレーションを可能にする。
【解決手段】 被デバッグソフトウェア102を実行する被デバッグソフトウェア実行部103と、被デバッグソフトウェア実行部103と連携して動作する実行可能なハードウェア記述部104と、シミュレーションに不要なハードウェア要素が指定されたハードウェア要素不活性化箇所情報106をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部104へ出力するハードウェア要素不活性化指定部105とを備え、ソフトウェアのデバッグに不要なハードウェアのシミュレーションを抑制することで、協調シミュレーション全体の実行速度を上げる。
【選択図】 図1PROBLEM TO BE SOLVED: To enable high speed simulation while coordinating a hardware simulator and a software simulator.
A debug software execution unit 103 that executes software to be debugged 102, an executable hardware description unit 104 that operates in cooperation with the debug software execution unit 103, and hardware elements that are unnecessary for simulation are specified. A hardware element deactivation designating unit 105 for outputting an instruction to partially suppress hardware simulation to the hardware description unit 104 based on the hardware element deactivation location information 106, By suppressing hardware simulation unnecessary for debugging, the execution speed of the entire co-simulation is increased.
[Selection] Figure 1
Description
本発明は、ハードウェアとソフトウェアを協調してシミュレーションを行うシステムシミュレーションに係わり、特にソフトウェアデバッグが容易に実行できるシステムシミュレーション実行プログラムとシステムシミュレーション上で使用されるハードウェア記述変換プログラムに関する。 The present invention relates to a system simulation that performs simulation by coordinating hardware and software, and more particularly, to a system simulation execution program that can easily execute software debugging and a hardware description conversion program that is used in the system simulation.
ハードウェアとソフトウェアを協調してシミュレーションを行うシミュレーションシステムとして、ハードウェア・ソフトウェア協調シミュレーションが従来知られている。これによれば、実際のハードウェアを使わずに仮想的なハードウェアを使ってソフトウェアのデバッグを行うことによりハードウェアの不具合を早期に発見したり、ソフトウェアのデバッグを行ったり、あるいはシステムの全体の品質や完成度を短期間に上げたりするという効果が期待できる。 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 have been known three main methods of 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 recent years, the scale of software has increased. When debugging software by simulation, the speed of execution of the simulation is very important, and how to increase the speed is a problem.
前述した1つ目の、ハードウェアの動きをある程度抽象化してソフトウェアとして記述し、ソフトウェアと連結させて実行可能ファイルを作成してからそれを実行するという方法の場合、シミュレータとしての実行速度は高速であるが、ハードウェアの動きを抽象化する工数が大きいという問題や、ハードウェアの実際の動きとは大きく異なった抽象化をしてしまったりするという問題があった。しかし、現状ではシミュレーション速度が高速という理由からこの方法が最もよく利用されている。 In the case of the first method described above, in which hardware movement is abstracted to some extent and described as software, and an executable file is created after being linked with software, the execution speed as a simulator is high. However, there are problems that the man-hours for abstracting the movement of hardware are large, and that the abstraction is very different from the actual movement of hardware. However, at present, this method is most often used because the simulation speed is high.
また、2つ目の、ソフトウェアのシミュレータとハードウェアのシミュレータの2つの別々のシミュレータを連携させてシミュレーションを行う方法では、ハードウェアの抽象化という作業がなくなるので最初の方法での問題は解決される。しかし、シミュレーションしようとするハードウェアの大規模化にともないハードウェアのシミュレーションが非常に低速となってしまい、ソフトウェアデバッグに耐えないものになってきている。さらに、協調シミュレーションの中ではハードウェアシミュレータとソフトウェアシミュレータが同時並行して動作したり、お互いの情報をやり取りすることが頻繁に発生したりするため、やり取りするたびに時間がかかってしまい、さらにシミュレーションが遅くなるという問題もあった。 The second method of simulating by linking two different simulators, a software simulator and a hardware simulator, eliminates the task of hardware abstraction, so the problem with the first method is solved. The However, as the size of hardware to be simulated increases, hardware simulation becomes very slow, and it has become unable to withstand software debugging. Furthermore, in the co-simulation, the hardware simulator and the software simulator operate in parallel at the same time or frequently exchange information with each other. There was also a problem of slowing down.
また、3つ目の、ソフトウェアのシミュレータとハードウェアのシミュレータを1つのアプリケーションに統合した上でそれぞれのシミュレーション実行部にインターフェイスを設けて連動させるという方法の場合、ハードウェアとソフトウェアのシミュレータ相互のやり取りについては1つのアプリケーションの中で行うので高速にやり取りすることはできるようになる。しかし、ハードウェアシミュレータ単体で動作させるだけでも実際のハードウェアと比べてはるかに遅いという問題があり、さらにソフトウェアのシミュレータと連携させるともっと遅くなる。 In the case of the third method, in which a software simulator and a hardware simulator are integrated into one application, and an interface is provided for each simulation execution unit, the hardware and software simulators interact with each other. Since it is performed in one application, it can be exchanged at high speed. However, there is a problem that even if the hardware simulator alone is operated, it is much slower than the actual hardware.
本発明の目的は、実際の半導体デバイス設計で利用するレベルのハードウェア記述を使ったハードウェアのシミュレーションとソフトウェアのシミュレーションの協調シミュレーションでありながら高速にシミュレーションできるようにすることである。 An object of the present invention is to enable high-speed simulation while performing a hardware simulation and a software simulation using a hardware description at a level used in actual semiconductor device design.
本発明ではハードウェアのシミュレータの動作を高速化するために、ソフトウェアのデバッグに不要なハードウェア部分を特定してその部分だけシミュレーションを抑制したり、あるいは、ハードウェアやソフトウェアのシミュレーションの状態が特定の状態になったときに特定の一部のハードウェアのシミュレーションを抑止あるいは実行したり、あるいは、被デバッグソフトウェアの記述の中にハードウェアの内部のノードを直接操作する処理を記述できるようにして一部のハードウェアのシミュレーションを抑制したり、あるいは、ハードウェアの記述の中でソフトウェアのシミュレータの操作を記述することができるようにすることでソフトウェアの処理の一部のシミュレーションを省略させてシミュレーション時間を短縮したり、あるいは、ハードウェアの記述の抽象化を図ってハードウェアのシミュレーション時間の短縮をしたりすることができる。さらに、本発明では既に抽象化したハードウェア記述を含んだファイルを開発者が修正した場合、既に行った抽象化の結果を再利用することにより抽象化時間を省きトータルの開発工数の削減を図ることもできる。 In the present invention, in order to speed up the operation of the hardware simulator, the hardware part unnecessary for software debugging is specified and simulation is suppressed only for that part, or the simulation state of the hardware or software is specified. In this state, it is possible to suppress or execute simulation of a specific part of hardware, or to describe the process of directly operating the internal node of the hardware in the description of the software to be debugged. Simulation by suppressing simulation of some hardware, or by omitting simulation of part of software processing by allowing software simulator operations to be described in the hardware description Save time, Or, it is possible to or shortening of the hardware of the simulation time the aim of abstraction of the hardware description. Further, according to the present invention, when a developer modifies a file containing a hardware description that has already been abstracted, the abstraction time is saved by reusing the result of the abstraction already made, thereby reducing the total development man-hours. You can also
まず、第1の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、シミュレーションに不要なハードウェア要素が指定されたハードウェア要素不活性化箇所情報をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備える。 First, a system simulation execution program according to a first aspect of the present invention is a debugged software execution unit that executes software to be debugged, a hardware description that is compiled, and executes a hardware simulation based on the hardware description. In addition, the hardware description part that operates in conjunction with the debugged software execution part and the hardware element inactivation location information that specifies the hardware elements that are not required for the simulation are partially suppressed. A hardware element deactivation designation unit that outputs an instruction to be performed to the hardware description unit.
第2の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、シミュレーションに不要なハードウェア要素が指定されたハードウェア要素不活性化箇所情報をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a second aspect of the present invention includes a debugged software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. Hardware description execution unit and hardware that outputs an instruction to partially suppress hardware simulation to the hardware description execution unit based on hardware element deactivation location information in which hardware elements unnecessary for simulation are specified And a wear element deactivation designation unit.
第3の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、ハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a third aspect of the invention includes a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. No need to search for hardware elements that are not required for simulation based on the hardware description part that operates in conjunction with the debug software execution part, the hardware description structure information indicating the relationship between hardware elements, and the required hardware element list A hardware element search unit and a hardware element inactivation specifying unit that outputs an instruction to partially suppress hardware simulation based on the search result to the hardware description unit.
第4の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a fourth aspect of the invention includes a debugged software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. A hardware description execution unit, an unnecessary hardware element search unit that searches for hardware elements unnecessary for simulation based on hardware description structure information indicating a relationship between hardware elements, and a required hardware element list, and a search result thereof And a hardware element deactivation designation unit that outputs an instruction to partially suppress hardware simulation to the hardware description execution unit.
第5の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、ハードウェア記述部の動作状態を監視してハードウェア要素活性状態を取得するためのハードウェア要素活性状態取得部と、ハードウェア要素活性状態取得部が取得した結果とハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a fifth aspect of the present invention is a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. Hardware description part that operates in cooperation with the debug software execution part, hardware element active state acquisition part for monitoring the operating state of the hardware description part and acquiring the hardware element active state, and hardware element activation An unnecessary hardware element search unit that searches for hardware elements unnecessary for simulation based on the hardware description structure information indicating the relationship between the result acquired by the state acquisition unit and the hardware elements and the required hardware element list, and Hard based on search results And a hardware elements inactivation designation unit for outputting an instruction to partially suppress the simulation E A hardware description section.
第6の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア記述実行部の動作状態を監視してハードウェア要素活性状態を取得するためのハードウェア要素活性状態取得部と、ハードウェア要素活性状態取得部が取得した結果とハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a sixth aspect of the invention includes a debugged software execution unit that executes software to be debugged, and a hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. Hardware description execution unit, hardware element active state acquisition unit for monitoring the operating state of the hardware description execution unit and acquiring the hardware element active state, and the results and hardware acquired by the hardware element active state acquisition unit An unnecessary hardware element search unit that searches for hardware elements unnecessary for simulation based on hardware description structure information indicating a relationship between hardware elements and a required hardware element list, and hardware information based on the search result Partially suppressed simulation Instructing that comprises a hardware element inactivation designation unit for outputting to the hardware description executing section.
上記第1〜第6の発明によれば、ソフトウェアのデバッグには関係のないハードウェア要素をシミュレーションに不要なハードウェア要素として特定し、その部分のハードウェアのシミュレーションを抑止してシミュレーション全体の速度を高速化することができる。 According to the first to sixth aspects of the invention, hardware elements that are not related to software debugging are identified as hardware elements that are unnecessary for simulation, and the simulation of the hardware of the portion is suppressed to reduce the speed of the entire simulation. Can be speeded up.
第7の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、ハードウェア記述部の中のハードウェア要素状態を取得するためのハードウェア要素状態取得部と、ハードウェア要素状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a seventh aspect of the invention is a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. Hardware description part that operates in cooperation with the debug software execution part, hardware element state acquisition part for acquiring the hardware element state in the hardware description part, and results acquired by the hardware element state acquisition part Based on the simulation condition determination unit that determines whether to simulate each hardware element, and an instruction to partially suppress hardware simulation based on the determination result of the simulation condition determination unit to the hardware description unit Output And a Dowea elements inactivation specifying unit.
第8の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア記述実行部の中のハードウェア要素状態を取得するためのハードウェア要素状態取得部と、ハードウェア要素状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to an eighth aspect of the present invention includes a debug software execution unit that executes software to be debugged, and a hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debug software execution unit. Hardware description execution unit, hardware element state acquisition unit for acquiring the hardware element state in the hardware description execution unit, and simulation of each hardware element based on the result acquired by the hardware element state acquisition unit Hardware condition deactivation that outputs to the hardware description execution unit an instruction to partially suppress hardware simulation based on the determination result of the simulation condition determination unit Provided with designated part That.
上記第7、第8の発明によれば、ハードウェア要素状態に応じて一部のハードウェアのシミュレーションを抑止してシミュレーション全体の速度を高速化することができる。 According to the seventh and eighth aspects of the invention, it is possible to suppress the simulation of a part of hardware according to the hardware element state and increase the speed of the entire simulation.
第9の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、被デバッグソフトウェア実行部の中のソフトウェア実行状態を取得するためのソフトウェア実行状態取得部と、ソフトウェア実行状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a ninth aspect of the present invention includes a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. Based on the results obtained by the hardware description part operating in cooperation with the debug software execution part, the software execution state acquisition part for acquiring the software execution state in the debugged software execution part, and the software execution state acquisition part And a hardware description part that instructs to partially suppress hardware simulation based on the judgment result of the simulation condition judgment part. And a hardware elements inactivation designation unit for outputting.
第10の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、被デバッグソフトウェア実行部の中のソフトウェア実行状態を取得するためのソフトウェア実行状態取得部と、ソフトウェア実行状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備える。 A system simulation execution program according to a tenth aspect of the invention includes a debugged software execution unit that executes software to be debugged, and a hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. The hardware description execution unit, the software execution state acquisition unit for acquiring the software execution state in the debugged software execution unit, and whether to simulate each hardware element based on the results acquired by the software execution state acquisition unit Hardware condition deactivation specification that outputs to the hardware description execution unit an instruction to partially suppress hardware simulation based on the determination result of the simulation condition determination unit Provided with a door.
上記第9、第10の発明によれば、ソフトウェアの状態に応じて一部のハードウェアのシミュレーションを抑止してシミュレーション全体の速度を高速化することができる。 According to the ninth and tenth aspects of the invention, simulation of some hardware can be suppressed according to the state of software, and the speed of the entire simulation can be increased.
第11の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、被デバッグソフトウェア実行部からハードウェア記述部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、条件判定部の判定結果に基づいて被デバッグソフトウェア実行部からハードウェア記述部の仮想メモリ空間へのアクセスを実行させるか否かを制御するアクセス制御部とを備える。 A system simulation execution program according to an eleventh aspect of the invention is a debugged software execution unit that executes debugged software, a compiled hardware description, and executes hardware simulation based on the hardware description. Whether the hardware description section that operates in conjunction with the debug software execution section and whether the debugged software execution section monitors access to the virtual memory space of the hardware description section and whether to permit the access according to the contents of the access A condition determination unit that determines whether or not and an access control unit that controls whether or not to execute access to the virtual memory space of the hardware description unit from the debugged software execution unit based on the determination result of the condition determination unit .
第12の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、被デバッグソフトウェア実行部からハードウェア記述実行部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、条件判定部の判定結果に基づいて被デバッグソフトウェア実行部からハードウェア記述実行部の仮想メモリ空間へのアクセスを実行させるか否かを制御するアクセス制御部とを備える。 A system simulation execution program according to a twelfth aspect of the invention includes a debug software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debug software execution unit. A hardware description execution unit, a condition determination unit that monitors access from the debugged software execution unit to the virtual memory space of the hardware description execution unit, and determines whether to permit the access according to the content of the access; An access control unit that controls whether or not to access the virtual memory space of the hardware description execution unit from the debugged software execution unit based on the determination result of the condition determination unit.
上記第11、第12の発明によれば、ソフトウェア側からハードウェアへのアクセスの中のデバッグに不要なアクセスを中止することによりシミュレーションを抑止してシミュレーション全体の速度を高速化することができる。 According to the eleventh and twelfth inventions, the simulation can be suppressed and the speed of the entire simulation can be increased by stopping the access unnecessary for debugging in the hardware access from the software side.
第13の発明のハードウェア記述変換プログラムは、ハードウェア記述の中から周期回路を抽出する周期回路抽出部と、周期回路抽出部で抽出された周期回路から周期回路パラメータを算出する周期回路パラメータ算出部と、周期回路パラメータ算出部で算出された周期回路パラメータに基づいてハードウェア記述の中の周期回路部分を別の処理へ書き換える周期回路変換部とを備える。 A hardware description conversion program according to a thirteenth invention includes a periodic circuit extraction unit that extracts a periodic circuit from the hardware description, and a periodic circuit parameter calculation that calculates a periodic circuit parameter from the periodic circuit extracted by the periodic circuit extraction unit. And a periodic circuit conversion unit that rewrites the periodic circuit portion in the hardware description into another process based on the periodic circuit parameter calculated by the periodic circuit parameter calculation unit.
第14の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア記述実行部で実行されるハードウェア記述の中から周期回路を抽出する周期回路抽出部と、周期回路抽出部で抽出された周期回路から周期回路パラメータを算出する周期回路パラメータ算出部とを備え、ハードウェア記述実行部は、ハードウェア記述の中の周期回路部分を実行するかわりに、周期回路パラメータ算出部で算出された周期回路パラメータに基づいて周期回路の特性を実現する。 A system simulation execution program according to a fourteenth aspect of the invention includes a debugged software execution unit that executes software to be debugged and hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. Hardware description execution unit, a periodic circuit extraction unit for extracting a periodic circuit from the hardware description executed by the hardware description execution unit, and a cycle for calculating a periodic circuit parameter from the periodic circuit extracted by the periodic circuit extraction unit A hardware parameter execution unit that, instead of executing the periodic circuit part in the hardware description, determines the characteristics of the periodic circuit based on the periodic circuit parameter calculated by the periodic circuit parameter calculation unit. Realize.
上記第13、第14の発明によれば、ハードウェアのシミュレーションをする際に、周期回路のシミュレーション記述を簡略化して実行することによりシミュレーション全体の速度を高速化することができる。 According to the thirteenth and fourteenth aspects, when performing hardware simulation, it is possible to increase the speed of the entire simulation by simplifying and executing the simulation description of the periodic circuit.
第15の発明のハードウェア記述変換プログラムは、ハードウェア記述の中から組合せ回路を抽出する組合せ回路抽出部と、組合せ回路抽出部で抽出された組合せ回路から組合せ回路パラメータを算出する組合せ回路パラメータ算出部と、組合せ回路パラメータ算出部で算出された組合せ回路パラメータに基づいてハードウェア記述の中の組合せ回路部分を別の処理へ書き換える組合せ回路変換部とを備えるハードウェア記述変換プログラム。 A hardware description conversion program according to a fifteenth aspect of the invention is a combination circuit extraction unit that extracts a combinational circuit from the hardware description, and a combinational circuit parameter calculation that calculates combinational circuit parameters from the combinational circuit extracted by the combinational circuit extraction unit. And a combinational circuit conversion unit that rewrites the combinational circuit portion in the hardware description to another process based on the combinational circuit parameter calculated by the combinational circuit parameter calculation unit.
第16の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア記述実行部で実行されるハードウェア記述の中から組合せ回路を抽出する組合せ回路抽出部と、組合せ回路抽出部で抽出された組合せ回路から組合せ回路パラメータを算出する組合せ回路パラメータ算出部とを備え、ハードウェア記述実行部は、ハードウェア記述の中の組合せ回路部分を実行するかわりに、組合せ回路パラメータ算出部で算出された組合せ回路パラメータに基づいて組合せ回路の特性を実現する。 According to a sixteenth aspect of the present invention, there is provided a system simulation execution program for executing a software to be debugged for executing software to be debugged; Hardware description execution unit, combinational circuit extraction unit that extracts a combinational circuit from the hardware description executed by the hardware description execution unit, and combination circuit parameter calculation from the combinational circuit extracted by the combinational circuit extraction unit A hardware parameter execution unit, wherein the hardware description execution unit calculates the characteristics of the combinational circuit based on the combinational circuit parameter calculated by the combinational circuit parameter calculation unit, instead of executing the combinational circuit part in the hardware description. Realize.
上記第15、第16の発明によれば、ハードウェアのシミュレーションをする際に、組合せ回路のシミュレーション記述を簡略化して実行することによりシミュレーション全体の速度を高速化することができる。 According to the fifteenth and sixteenth aspects, when performing hardware simulation, the simulation description of the combinational circuit can be simplified and executed to increase the speed of the entire simulation.
第17の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、被デバッグソフトウェア実行部からハードウェア記述部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、条件判定部の判定結果がアクセスを許可する場合に被デバッグソフトウェア実行部からハードウェア記述部の仮想メモリ空間へのアクセスを実行させるアクセス制御部と、条件判定部の判定結果がアクセスを許可しない場合にハードウェア記述の中の特定のハードウェア要素を直接操作するハードウェア要素操作部とを備える。 A system simulation execution program according to a seventeenth aspect of the invention is a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. Whether the hardware description section that operates in conjunction with the debug software execution section and whether the debugged software execution section monitors access to the virtual memory space of the hardware description section and whether to permit the access according to the contents of the access A condition determining unit for determining whether or not an access control unit for executing access to the virtual memory space of the hardware description unit from the debugged software execution unit when the determination result of the condition determining unit permits access, and a condition determining unit Judgment result permits access And a hardware element operating portion for operating the particular hardware elements in the hardware description directly in the absence.
第18の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、被デバッグソフトウェア実行部からハードウェア記述実行部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、条件判定部の判定結果がアクセスを許可する場合に被デバッグソフトウェア実行部からハードウェア記述実行部の仮想メモリ空間へのアクセスを実行させるアクセス制御部と、条件判定部の判定結果がアクセスを許可しない場合にハードウェア記述の中の特定のハードウェア要素を直接操作するハードウェア要素操作部とを備える。 A system simulation execution program according to an eighteenth aspect of the invention is a debugged software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. A hardware description execution unit, a condition determination unit that monitors access from the debugged software execution unit to the virtual memory space of the hardware description execution unit, and determines whether to permit the access according to the content of the access; An access control unit that executes access to the virtual memory space of the hardware description execution unit from the debugged software execution unit when the determination result of the condition determination unit permits access, and the determination result of the condition determination unit does not permit access In the hardware description And a hardware element operating portion for operating the hardware elements directly.
上記第17、第18の発明によれば、条件判定部による判定の結果、ソフトウェア側からハードウェアへのアクセスが不許可の場合に、ソフトウェア側からハードウェアの外部バス信号などを操作する代わりに、ソフトウェア側からハードウェアの回路内部の要素を直接操作することでそこへ至るハードウェア要素のシミュレーションを不要にし、シミュレーション全体の速度を高速化することができる。 According to the seventeenth and eighteenth aspects of the invention, when the result of determination by the condition determination unit is that access from the software side to the hardware is not permitted, instead of operating the hardware external bus signal or the like from the software side By directly manipulating elements inside the hardware circuit from the software side, it is not necessary to simulate the hardware elements that reach the circuit, and the speed of the entire simulation can be increased.
第19の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、被デバッグソフトウェアの中に記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、ハードウェア操作コマンド解析部の解析結果に基づいてハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部とを備える。 A system simulation execution program according to a nineteenth aspect of the invention is a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. Analysis results of the hardware description section that operates in cooperation with the debug software execution section, the hardware operation command analysis section that analyzes the hardware operation commands described in the debugged software, and the hardware operation command analysis section And a hardware element operation unit that directly operates the hardware elements in the hardware description.
第20の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、被デバッグソフトウェアの中に記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、ハードウェア操作コマンド解析部の解析結果に基づいてハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部とを備える。 A system simulation execution program according to a twentieth aspect of the invention is a debugged software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. Hardware description execution unit, hardware operation command analysis unit that analyzes hardware operation commands described in the software to be debugged, and hardware in the hardware description based on the analysis results of the hardware operation command analysis unit A hardware element operation unit that directly operates the hardware element.
上記第19、第20の発明によれば、ソフトウェア側からハードウェアの回路内部の要素を直接操作することでそこへ至るハードウェア要素のシミュレーションを不要にし、シミュレーション全体の速度を高速化することができる。 According to the nineteenth and twentieth inventions, by directly manipulating elements in the hardware circuit from the software side, it is not necessary to simulate the hardware elements that reach it, and the speed of the entire simulation can be increased. it can.
第21の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、ハードウェア記述部の中に記述されている被デバッグソフトウェア実行部操作コマンドを解析し被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備える。 A system simulation execution program according to a twenty-first aspect of the invention is a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes hardware simulation based on the hardware description. A hardware description part that operates in cooperation with the debug software execution part, and a software operation command analysis part that analyzes the debug software execution part operation command described in the hardware description part and operates the debug software execution part With.
第22の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア記述の中に記述されている被デバッグソフトウェア実行部操作コマンドを解析し被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備える。 A system simulation execution program according to a twenty-second aspect of the invention is a debugged software execution unit that executes software to be debugged, and a hardware that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit. A hardware description execution unit, and a software operation command analysis unit that analyzes a debugged software execution unit operation command described in the hardware description and operates the debugged software execution unit.
上記第21、第22の発明によれば、ハードウェア側からソフトウェアのシミュレータの内部を直接操作することでハードウェア要素のシミュレーションやソフトウェアのシミュレーションの一部を省略し、シミュレーション全体の速度を高速化することができる。 According to the twenty-first and twenty-second aspects of the present invention, by directly operating the inside of the software simulator from the hardware side, part of the hardware element simulation and software simulation is omitted, and the speed of the entire simulation is increased. can do.
第23の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、テストスクリプトを実行するテストスクリプト実行部と、テストスクリプトに記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、ハードウェア操作コマンド解析部の解析結果に基づいてハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部と、テストスクリプトに記述されている被デバッグソフトウェア実行部操作コマンドを解析し被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備える。 A system simulation execution program according to a twenty-third aspect of the invention is a debugged software execution unit that executes software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description. A hardware description section that operates in cooperation with the debug software execution section, a test script execution section that executes a test script, a hardware operation command analysis section that analyzes a hardware operation command described in the test script, a hardware Based on the analysis result of the hardware operation command analysis unit, the hardware element operation unit that directly operates the hardware elements in the hardware description and the debug software execution unit operation command described in the test script are solved. And and a software operation command analyzing unit for operating the debug target software execution unit.
第24の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、テストスクリプトを実行するテストスクリプト実行部と、テストスクリプトに記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、ハードウェア操作コマンド解析部の解析結果に基づいてハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部と、テストスクリプトに記述されている被デバッグソフトウェア実行部操作コマンドを解析し被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備える。 A system simulation execution program according to a twenty-fourth aspect of the invention is a debugged software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on hardware description and operates in cooperation with the debugged software execution unit. Based on the analysis results of the hardware description execution unit, the test script execution unit that executes the test script, the hardware operation command analysis unit that analyzes the hardware operation command described in the test script, and the hardware operation command analysis unit The hardware element operation unit that directly operates the hardware elements in the hardware description and the software that operates the debugged software execution unit by analyzing the debugged software execution unit operation commands described in the test script. And a Towea operation command analysis unit.
上記第23、第24の発明によれば、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションによる自動テストを行う際に、テストスクリプトからソフトウェアのシミュレータの内部やハードウェアのシミュレータの内部を直接操作することでハードウェア要素のシミュレーションやソフトウェアのシミュレーションの一部を省略し、シミュレーション全体の速度を高速化することができる。 According to the twenty-third and twenty-fourth aspects of the invention, when an automatic test is performed by linking a software simulator and a hardware simulator, the inside of the software simulator or the inside of the hardware simulator is directly taken from the test script. By operating, part of the hardware element simulation and software simulation can be omitted, and the speed of the entire simulation can be increased.
第25の発明のハードウェア記述変換プログラムは、ハードウェア記述の中から過去に抽象化作業が完了している部分と同等部分を抽出する既抽象化部抽出部と、ハードウェア記述の中の既抽象化部抽出部による抽出部分を過去に抽象化作業が完了している抽象化された記述に置き換えるハードウェア記述置換え部とを備える。 A hardware description conversion program according to a twenty-fifth aspect of the invention is an existing abstraction part extraction unit that extracts a part equivalent to a part for which abstraction work has been completed in the past, and an existing abstraction part in the hardware description. A hardware description replacing unit that replaces the extracted part by the abstracting unit extracting unit with an abstracted description for which abstraction work has been completed in the past.
第26の発明のシステムシミュレーション実行プログラムは、被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア記述実行部で実行されるハードウェア記述の中から過去に抽象化作業が完了している部分と同等部分を抽出する既抽象化部抽出部とを備え、ハードウェア記述実行部は、ハードウェア記述の中の過去に抽象化作業が完了している部分と同等部分を実行するかわりに、過去に抽象化作業が完了している抽象化された記述を実行する。 A system simulation execution program according to a twenty-sixth aspect of the invention is a debugged software execution unit that executes software to be debugged, and hardware that executes hardware simulation based on hardware description and operates in cooperation with the debugged software execution unit. Hardware description execution unit, and an existing abstraction unit extraction unit that extracts from the hardware description executed by the hardware description execution unit, a part equivalent to a part for which abstraction work has been completed in the past. The description execution unit executes an abstracted description for which the abstraction work has been completed in the past, instead of executing a part equivalent to the part of the hardware description for which the abstraction work has been completed in the past.
上記第25、第26の発明によれば、過去に行われた抽象化の結果を利用することにより、抽象化作業を行うことなく速やかにシミュレーションを行うことが可能となる。また、抽象化された記述を実行することによりシミュレーション全体の速度を高速化することができる。 According to the twenty-fifth and twenty-sixth aspects, by using the result of abstraction performed in the past, it is possible to perform a simulation quickly without performing abstraction work. Moreover, the speed of the entire simulation can be increased by executing the abstracted description.
第27の発明のシステムシミュレーション実行プログラムは、相互に関連しながら並行的に動作する複数のシミュレーション実行部と、シミュレーション実行部からアクセスされるイベント予約登録部と、イベント予約登録部に設定されたイベントタイミングに応じてシミュレーションの動きを変更させるシミュレーション実行指示部と、シミュレーション実行状況を記録したものを用いて特定の時点の状態にシミュレーション状態を復元させるシミュレーション状態復元部とを備え、一のシミュレーション実行部は他のシミュレーション実行部に関係するイベントを認識したときにイベントタイミングをイベント予約登録部に設定する。 A system simulation execution program of a twenty-seventh aspect includes a plurality of simulation execution units operating in parallel with each other, an event reservation registration unit accessed from the simulation execution unit, and an event set in the event reservation registration unit One simulation execution unit, comprising: a simulation execution instruction unit that changes the movement of the simulation according to the timing; and a simulation state restoration unit that restores the simulation state to a state at a specific point in time using the recorded simulation execution state Sets an event timing in the event reservation registration unit when an event related to another simulation execution unit is recognized.
上記第27の発明によれば、例えば2つのシミュレーション実行部が連携して並列に動作する場合、お互いに関係するイベントが発生する時間までそれぞれ独立してシミュレーションを実行し、そのシミュレーションの中であらかじめ特定したイベントの発生時間までに他方のシミュレーションの動きに関わるイベントが発生してしまった場合、双方のシミュレーションの状態をそのイベントが発生したシミュレーション時間におけるシミュレーション状態まで復元するという仕組みにすることで、シミュレーション実行部が同期を取るために頻繁に切り替わることによるオーバヘッドを削減し、シミュレーションを高速化することができる。 According to the twenty-seventh aspect, for example, when two simulation execution units operate in parallel with each other, the simulation is executed independently until the time when the events related to each other occur, If an event related to the movement of the other simulation occurs before the specified event occurrence time, by restoring the state of both simulations to the simulation state at the simulation time when the event occurred, The overhead due to frequent switching of the simulation execution unit for synchronization can be reduced, and the simulation can be speeded up.
近年、システムの複雑化や大規模化が著しく、ソフトウェアのデバッグ工数や検証工数の増大が経営を圧迫するほどになっている。また、ソフトウェアのデバッグや検証に用いるハードウェアを必要なタイミングで入手することもますます困難となっている。 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.
本発明によって、ハードウェアとソフトウェアを高速に協調してシミュレーションすることが可能となり、実際のハードウェアが出来上がる前にハードウェアとソフトウェアの相互関係によって発生する複雑な問題を効率よく解決することができる。これにより、新製品開発の期間短縮やコスト削減に貢献することができる。 According to the present invention, it is possible to simulate hardware and software in a high-speed cooperative manner, and it is possible to efficiently solve complex problems caused by the interrelationship between hardware and software before the actual hardware is completed. . This can contribute to shortening the period for new product development and reducing costs.
以下、本発明の各実施の形態を図面に基づいて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(実施の形態1)
図1は第1の発明に対応する実施の形態1にかかるシステムシミュレーション実行プログラムを示す。実施の形態1は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアのデバッグには関係のないハードウェアのシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。たとえば、図28のようにソフトウェア2801とハードウェア2802が接続されており、ハードウェア2802の内部にモジュールM1からM7が図のような関係で接続されているシステムをシミュレーションする場合、ソフトウェア2801の動作に変化を及ぼす可能性のあるモジュールはM1、M2、M3、M6、M7であり、M4やM5のモジュールはソフトウェアの動作には影響を及ぼさない。したがって、ハードウェア2802をシミュレーションする際にソフトウェアのデバッグを行うという観点からは無駄であるM4とM5のモジュールをシミュレーションしなければその分だけ全体のシミュレーション実行速度が向上する。
(Embodiment 1)
FIG. 1 shows a system simulation execution program according to a first embodiment corresponding to the first invention. In the first embodiment, when a simulation is performed by linking a software simulator and a hardware simulator, hardware simulation that is not related to software debugging is suppressed to increase the speed of the entire simulation. . For example, when simulating a system in which
図1の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。ハードウェア要素不活性化指定部105はハードウェア要素不活性化箇所情報106を読み込んでハードウェア記述部104に対してどの部分のシミュレーションを抑制するかを伝えるものである。ここで、ハードウェア要素とは信号線や回路のノードと呼ばれるものを指すことが多いが、場合によってはモジュールや関数もハードウェア要素として扱う。また、ここで活性化とは信号線や回路のノードが操作されてその状態が変化することを指す。
The debug
次に、実施の形態1の動作について説明する。
図29は実行可能なハードウェア記述部104の中でハードウェア要素を不活性化するための処理フローである。ハードウェアのシミュレーションは信号線や回路のノードに対して信号値を設定する処理を頻繁に行っている。コンパイル済の実行可能なハードウェア記述部の場合、ハードウェア記述の中から信号値を設定するために信号設定用の関数を呼びだすため、その関数の先頭でS402の処理を行い、信号値設定を行うかどうか判断させる。抑止信号名リスト2901はハードウェア要素不活性化指定部105によって設定されたデータ列である。ハードウェアのシミュレータでは信号の変化に反応しながらシミュレーションが行われるので、信号値の設定を行ったり行わなかったりして信号変化を制御することによりシミュレーションを抑制できる。
Next, the operation of the first embodiment will be described.
FIG. 29 is a processing flow for inactivating a hardware element in the executable
同様に、シミュレータによってはハードウェアの並列性を実現するために、モジュール関数をスレッド化して時分割的に実行する場合があり、そのモジュール関数単位でシミュレーションを抑止することも有効である。そこでS404のような並列実行処理のループの中でS406のように抑止モジュールかどうかの判断を行い、抑止ならばモジュール関数を呼び出さないようにすることで、シミュレーションを抑制する。抑止モジュール名リスト2903はハードウェア要素不活性化指定部105によって設定されたデータ列である。
Similarly, in some simulators, in order to realize hardware parallelism, module functions may be threaded and executed in a time-sharing manner, and it is also effective to suppress simulation for each module function. Therefore, in the parallel execution processing loop as in S404, it is determined whether or not the module is a suppression module as in S406, and if it is suppression, the simulation is suppressed by not calling the module function. The suppression
図30はハードウェア要素不活性化箇所情報106の例である。不活性化させたい信号名やノード名、モジュール関数名を指定するものである。また、ハードウェア記述のソースコードの行単位で指定することもできるが、この場合、ハードウェア要素不活性化指定部105は実行可能なハードウェア記述部104のシンボル情報を用いてどの処理を不活性するかを特定し、かつ、実行可能なハードウェア記述部104において、行単位でシミュレーションを制御できるようなコードにあらかじめコンパイルする。
FIG. 30 shows an example of the hardware element
ハードウェア要素不活性化箇所情報106はテキストデータで開発者が記述すればよいが、設定用GUIを通じてハードウェア要素不活性化箇所を指定し、その情報をバイナリ形式で保存したりしてもよい。
The hardware element
ハードウェア要素不活性化指定部105はハードウェア要素不活性化箇所情報106から実行可能なハードウェア記述部104のAPIを通じて抑止信号名リスト2901や抑止モジュール名リスト2903を設定する。
The hardware element
(実施の形態2)
図2は第2の発明に対応する実施の形態2にかかるシステムシミュレーション実行プログラムを示す。実施の形態2は実施の形態1と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアのデバッグには関係のないハードウェアのシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。実施の形態1との違いは図1の実行可能なハードウェア記述部104が図2のハードウェア記述実行部202になっていることである。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
(Embodiment 2)
FIG. 2 shows a system simulation execution program according to the second embodiment corresponding to the second invention. In the second embodiment, similarly to the first embodiment, when simulating a software simulator and a hardware simulator in cooperation, the simulation speed of the entire simulation is suppressed by suppressing hardware simulation that is not related to software debugging. Is to speed up. The difference from the first embodiment is that the executable
ハードウェア記述201の中の被デバッグソフトウェア102のデバッグに不要な部分のシミュレーションを抑制することによってシミュレーションの高速化を図り、ソフトウェアのデバッグを効率よく行うことが可能となる。
By suppressing the simulation of the portion of the
(実施の形態3)
図3は第3の発明に対応する実施の形態3にかかるシステムシミュレーション実行プログラムを示す。実施の形態3は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアのデバッグには関係のないハードウェア部分を自動的に決定して、その部分のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。たとえば、図31のようにソフトウェア3101がハードウェア3102にアクセスしているシステムをシミュレーションするとする。ここでは、ハードウェア3102の回路内部にN1からN16のノードがあるという前提で説明する。また、矢印の方向で出力側と入力側を表している。ソフトウェア3101はN1に対してノードの設定操作を行い、ノードN16からデータとしてのノード状態を取得するものとする。また、ノード14はLSIの外部端子であり、外部端子の操作をN15によって行っているものとする。ソフトウェアのデバッグにはノードN16の適切な反応が必要であり、ノードN16はソフトウェアからのノードN1へのアクセスによって変化する可能性がある。したがって、N1からN16までのパスのシミュレーションが重要になってくる。一方、N6やN7、N8、N11、N12などのノードのシミュレーションはソフトウェアのデバッグには関係がないために、シミュレーションを省略してもよい。
(Embodiment 3)
FIG. 3 shows a system simulation execution program according to the third embodiment corresponding to the third invention. In the third embodiment, when simulating a software simulator and a hardware simulator in cooperation, a hardware part not related to software debugging is automatically determined, and the simulation of that part is suppressed. The speed of the entire simulation is increased. For example, assume that a system in which
図3の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debug
ハードウェア記述構造情報301はハードウェア記述部104で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述部104のソースコードを構文解析して得たり、あるいはハードウェア記述部104の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。
The hardware
必須ハードウェア要素リスト303は図31の中のノードN1やN16、N14のようなハードウェアの外部インターフェイスとなるハードウェア要素であり、シミュレーションを行う人がそれを指定したり、あるいは、ハードウェア記述部104のソースコードの中にディレクティブと呼ばれるマーキングをつけておき、ツールなどで自動的にそれを収集したりして作るものである。
The indispensable
不要ハードウェア要素探索部302はハードウェア記述構造情報301や必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。図32と図33がその処理フローである。図32は不要ハードウェア要素探索処理の概略フローである。最初にS501でソフトウェアのデバッグに有効なハードウェアの回路内部のパスやハードウェア要素を探索する。次に、S502でそれ以外のハードウェア要素をシミュレーション不要の要素とする。図33のS600が有効パスの探索のフローである。必須ハードウェア要素リスト303の中には図31のノードN1やN14のような必須入力ハードウェア要素と、ノードN16のような必須出力ハードウェア要素がリストとして記録されている。S600ではその中の必須出力ハードウェア要素に対して処理を行ってゆく。必須ハードウェア要素リスト303から取り出した必須出力ハードウェア要素をS602で基点要素とし、S603で入力ハードウェア要素の探索を行ってゆく。S604は基点要素から必須入力ハードウェア要素を探索するフローである。このフローでは基点要素に対して出力している要素を遡ってゆき、必須入力ハードウェア要素を探し出す。必須入力ハードウェア要素が見つかれば、それまでのパス上にあるハードウェア要素は有効であり、かつ、それより先のハードウェア要素も有効な要素として記録する。この情報を図3のハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述部104のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は実施の形態1のハードウェア要素不活性化指定部105と同様のものである。
The unnecessary hardware
(実施の形態4)
図4は第4の発明に対応する実施の形態4にかかるシステムシミュレーション実行プログラムを示す。実施の形態4は実施の形態3と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアのデバッグには関係のないハードウェア部分を自動的に決定して、その部分のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。実施の形態3との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 4)
FIG. 4 shows a system simulation execution program according to the fourth embodiment corresponding to the fourth invention. In the fourth embodiment, similarly to the third embodiment, when simulating a software simulator and a hardware simulator in cooperation, a hardware portion not related to software debugging is automatically determined. The simulation of the part is suppressed and the speed of the entire simulation is increased. The difference from the third embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図4の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103とハードウェア記述実行部202は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The software to be debugged 103 shown in FIG. 4 reads the software to be debugged 102 and executes it. The debugged
ハードウェア記述構造情報301は、実施の形態3と同様にハードウェア記述201で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述201のソースコードを構文解析して得たり、あるいはハードウェア記述201の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。
The hardware
不要ハードウェア要素探索部302は、実施の形態3と同様にハードウェア記述構造情報301や必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。この情報をハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述実行部202のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は、実施の形態2のハードウェア要素不活性化指定部105と同様のものである。
The unnecessary hardware
(実施の形態5)
図5は第5の発明に対応する実施の形態5にかかるシステムシミュレーション実行プログラムを示す。実施の形態5は実施の形態3と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアのデバッグには関係のないハードウェア部分を自動的に決定して、その部分のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。実施の形態3との違いは一度ハードウェアのシミュレーションを行い、その際のハードウェア要素の活性状態の記録から、ソフトウェアデバッグにとって真に不要な要素を実施の形態3よりも多く発見し、よりシミュレーション速度を高速にするものである。
(Embodiment 5)
FIG. 5 shows a system simulation execution program according to the fifth embodiment corresponding to the fifth invention. In the fifth embodiment, similarly to the third embodiment, when simulating a software simulator and a hardware simulator in cooperation, a hardware portion not related to software debugging is automatically determined. The simulation of the part is suppressed and the speed of the entire simulation is increased. The difference from the third embodiment is that the hardware simulation is performed once, and from the record of the active state of the hardware elements at that time, more elements that are truly unnecessary for the software debugging are found than the third embodiment, and the simulation is further performed. The speed is increased.
たとえば、図34のようにソフトウェア3401がハードウェア3402にアクセスしているシステムをシミュレーションするとする。ここでは、ハードウェア3402の回路内部にN1からN16のノードがあるという前提で説明する。また、矢印の方向で出力側と入力側を表している。ソフトウェア3401はN1に対してノードの設定操作を行い、ノードN16からデータとしてのノード状態を取得するものとする。また、ノード14はLSIの外部端子であり、外部端子の操作をN15によって行っているものとする。ソフトウェアのデバッグにはノードN16の適切な反応が必要であり、ノードN16はソフトウェアからのノードN1へのアクセスによって変化する可能性がある。したがって、N1からN16までのパスのシミュレーションが重要になってくる。一方、N6やN12などのノードのシミュレーションはソフトウェアのデバッグには関係がないために、シミュレーションを省略してもよい。実施の形態3ではN10もN16に出力しているノードであるため必要なハードウェア要素として判断していたが、もしもN10が過去に実施したシミュレーションの過程で何らかの要因により一度も変化しなかった場合、それにつながるN9のノードのシミュレーションもソフトウェアデバッグには不要であると判断できる。このように、一度シミュレーションを行い、その結果から実施の形態3よりもより多くの不要ハードウェア要素を発見し、それを次のシミュレーションで抑止することでシミュレーション速度を上げることができる。
For example, assume that a system in which
図5の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debug
ハードウェア要素活性状態取得部501はハードウェア記述部104からの状態設定呼び出しに応じてハードウェア要素活性状態をハードウェア要素活性化履歴記録502に記録する。ここで活性化とは信号線や回路のノードが操作されてその状態が変化することを指し、活性状態とはそれらが変化した状態を指している。図35はハードウェア記述部104でハードウェア要素活性状態取得部501を呼び出す部分を示したものである。ハードウェア記述部104はハードウェアをシミュレーションするものであるため、回路内の信号線に対して値を設定したり、回路を見かけ上平行して動作させるなどのためにモジュール関数などを呼び出したりする。それらの処理S701やS704の直後のS702やS705でハードウェア要素活性状態取得部501を呼び出す。図36はハードウェア要素活性状態取得部501のハードウェア要素活性化状態設定処理の処理フローを示したものである。ハードウェア要素活性化履歴記録502はハードウェア記述部104内の各ハードウェア要素が1度でも操作されたかどうかを記録するものであるため、ハードウェア要素活性状態取得部501ではその判定を行い、初めての操作のときのみハードウェア要素活性化履歴記録502へその状態を記録する。図37はハードウェア要素活性化履歴記録502の例である。これはC言語の共用体型のデータにした場合のものである。ひとつのデータには活性化データタイプと活性化データ名があり、活性化データタイプの内容に応じて活性化データ名のフォーマットが変化する。実際にはデータの検索性を上げるために、ハッシュテーブルを用いるなど、データの持ち方はもっと複雑なものになる。
The hardware element activation
ハードウェア記述構造情報301は、実施の形態3と同様にハードウェア記述部104で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述部104のソースコードを構文解析して得たり、あるいはハードウェア記述部104の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。
The hardware
必須ハードウェア要素リスト303は、実施の形態3と同様に図34の中のノードN1やN16、N14のようなハードウェアの外部インターフェイスとなるハードウェア要素であり、シミュレーションを行う人がそれを指定したり、あるいは、ハードウェア記述部104のソースコードの中にディレクティブと呼ばれるマーキングをつけておき、ツールなどで自動的にそれを収集したりして作るものである。
The essential
不要ハードウェア要素探索部503はハードウェア記述構造情報301や必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。実施の形態3の不要ハードウェア要素探索部302と同様のフローであるが、ハードウェア要素活性化履歴記録502を反映させるために基点要素から必須入力ハードウェア要素を探索するフローが若干変更されている。図38にそのフローを示す。S906の処理によって活性化された記録のないハードウェア要素の場合、次の接続を探索する。
The unnecessary hardware
探索された不要ハードウェア要素の情報を図5のハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述部104のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は、実施の形態1のハードウェア要素不活性化指定部105と同様のものである。
Information of the searched unnecessary hardware element is transmitted to the hardware element
(実施の形態6)
図6は第6の発明に対応する実施の形態6にかかるシステムシミュレーション実行プログラムを示す。実施の形態6は実施の形態5と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアのデバッグには関係のないハードウェア部分を自動的に決定して、その部分のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。実施の形態5との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 6)
FIG. 6 shows a system simulation execution program according to the sixth embodiment corresponding to the sixth invention. In the sixth embodiment, similarly to the fifth embodiment, when simulating a software simulator and a hardware simulator in cooperation with each other, a hardware part that is not related to software debugging is automatically determined. The simulation of the part is suppressed and the speed of the entire simulation is increased. The difference from the fifth embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図6の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103とハードウェア記述実行部202は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
さらに、ハードウェア記述実行部202はハードウェアをシミュレーションするものであるため、実施の形態5のハードウェア記述部104と同様に図35のように、回路内の信号線に対して値を設定したり、回路を見かけ上平行して動作させるなどのためにモジュール関数などを呼び出したりする。それらの処理S701やS704の直後のS702やS705でハードウェア要素活性状態取得部501を呼び出す。このハードウェア記述実行部202からの状態設定呼び出しに応じてハードウェア要素活性状態取得部501は、実施の形態5と同様にハードウェア要素活性状態をハードウェア要素活性化履歴記録502に記録する。
Furthermore, since the hardware
ハードウェア記述構造情報301は、実施の形態5と同様にハードウェア記述201で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述201のソースコードを構文解析して得たり、あるいはハードウェア記述201の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。
The hardware
不要ハードウェア要素探索部503は、実施の形態5と同様にハードウェア要素活性化履歴記録部502やハードウェア記述構造情報301、必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。この情報をハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述実行部202のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は、実施の形態2のハードウェア要素不活性化指定部105と同様のものである。
The unnecessary hardware
(実施の形態7)
図7は第7の発明に対応する実施の形態7にかかるシステムシミュレーション実行プログラムを示す。実施の形態7は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ハードウェアの状態に応じてハードウェア記述の中の一部のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。たとえば、ある機能の有効フラグがOFFを示しているときは、それに関連する機能全体のシミュレーションを停止するというものである。
(Embodiment 7)
FIG. 7 shows a system simulation execution program according to the seventh embodiment corresponding to the seventh invention. In the seventh embodiment, when a simulation is performed by linking a software simulator and a hardware simulator, a part of the simulation in the hardware description is suppressed according to the state of the hardware, and the speed of the entire simulation is increased. It is to become. For example, when the valid flag of a certain function indicates OFF, the simulation of the entire function related thereto is stopped.
図7の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debug
シミュレーション条件判定はハードウェア要素の変化のタイミングで行うため、ハードウェア記述部104は図39のように信号を操作したり、モジュール関数を呼び出したりする際にハードウェア要素状態取得部701のAPIを呼び出す。ハードウェア要素状態取得部701はハードウェア記述部104からの状態設定呼び出しに応じてシミュレーション条件判定部702を呼び出すとともに、条件判定に必要な情報をハードウェア記述部104から取得してくる。シミュレーション条件判定に用いる条件はシミュレーション条件記録部703に用意されている。図40がシミュレーション条件記録部703の例である。シミュレーション条件記録部703が人間に理解できるような形態で記録されている場合、信号名やノード名がシンボルという英数字で記述されていることがあるので、ハードウェア要素状態取得部701はハードウェア記述シンボル情報704で実際の回路のどの部分にあたるのかの解決を図る。
Since the simulation condition determination is performed at the change timing of the hardware element, the
ハードウェア要素状態取得部701に呼び出されたシミュレーション条件判定部702はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は、実施の形態1のハードウェア要素不活性化指定部105と同様のものである。
The simulation
この実施の形態7についてさらに詳しく説明する。図40のシミュレーション条件記録部703に記録された条件タイプデータは次の条件データに格納されているデータの種類を示すものである。たとえば、条件タイプが「信号状態」であるならば、条件データには「信号名+比較値」が格納されていることを示している。「信号名+比較値」は“SignalA”、“1”、という具合である。条件タイプが「信号変化」ならば、「信号名+変化のタイプ」が格納されていることを示している。「信号名+変化のタイプ」は“SignalB”、“0"という具合で、この場合数字の0はハイレベルからローレベルへの変化を示し、数字が1ならばローレベルからハイレベルへの変化を示す。同様に不活性化要素タイプは次の不活性化要素名の種類を示す。不活性化要素タイプが「信号」ならば不活性化要素名には信号名が格納されている。不活性化要素タイプが「モジュール関数」ならば、モジュール関数名が格納されている。このようなデータの保持はプログラム言語の機能の一つである共用体で実現する。
The seventh embodiment will be described in more detail. The condition type data recorded in the simulation
次に判定の方法を説明すると、たとえば、条件タイプデータが「信号状態」で条件データに“SignalA”、“1”、不活性化要素タイプデータが「信号名」で不活性化要素名に“SignalB”が格納されているとするならば、ハードウェア要素状態取得部701がSignalAの状態を取得し、それが1になっている期間SignalBのシミュレーションを抑止するようにハードウェア要素不活性化指定部105を呼び出す。もう少し具体的に説明すると、ハードウェア要素状態取得部701はどのような条件で判定するかをあらかじめ取得しておき、トリガ対象となる、たとえば“SignalA”に変化があればシミュレーション条件判定部702を信号名とその状態を持って呼び出す。ちなみに、ここで、信号名のかわりにあらかじめ付与したIDを使って呼び出す方が処理時間を短くすることができる。呼び出されたシミュレーション条件判定部702はシミュレーション条件記録部703の内容と照らし合わせて、指定された条件となったかどうかを判定し、指定された条件に合致すると判定されたならば、ハードウェア要素不活性化指定部105に、たとえば信号“SignalB”のシミュレーション停止を指示する。
Next, the determination method will be described. For example, the condition type data is “signal state”, the condition data is “Signal A”, “1”, the inactivation element type data is “signal name”, and the inactivation element name is “ If SignalB ″ is stored, the hardware element
(実施の形態8)
図8は第8の発明に対応する実施の形態8にかかるシステムシミュレーション実行プログラムを示す。実施の形態8は実施の形態7と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ハードウェアの状態に応じてハードウェア記述の中の一部のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。実施の形態7との違いは実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 8)
FIG. 8 shows a system simulation execution program according to the eighth embodiment corresponding to the eighth invention. As in the seventh embodiment, the eighth embodiment suppresses a part of the simulation in the hardware description according to the state of the hardware when simulating the software simulator and the hardware simulator in cooperation with each other. This speeds up the overall simulation speed. The difference from the seventh embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図8の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103とハードウェア記述実行部202は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
シミュレーション条件判定はハードウェア要素の変化のタイミングで行うため、ハードウェア記述実行部202は図39のように信号を操作したり、モジュール関数を呼び出したりする際にハードウェア要素状態取得部701のAPIを呼び出す。ハードウェア要素状態取得部701はハードウェア記述部104からの状態設定呼び出しに応じてシミュレーション条件判定部702を呼び出すとともに、条件判定に必要な情報をハードウェア記述実行部202から取得してくる。シミュレーション条件判定に用いる条件はシミュレーション条件記録部703に用意されている。図40がシミュレーション条件記録部703の例である。シミュレーション条件記録部703が人間に理解できるような形態で記録されている場合、信号名やノード名がシンボルという英数字で記述されていることがあるので、ハードウェア要素状態取得部701はハードウェア記述実行部202などから必要な情報を取得して実際の回路のどの部分にあたるのかの解決を図る。
Since the simulation condition determination is performed at the change timing of the hardware element, the hardware
ハードウェア要素状態取得部701に呼び出されたシミュレーション条件判定部702はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は実施の形態2のハードウェア要素不活性化指定部105と同様のものである。
The simulation
(実施の形態9)
図9は第9の発明に対応する実施の形態9にかかるシステムシミュレーション実行プログラムを示す。実施の形態9は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアの状態に応じてハードウェア記述の中の一部のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。たとえば、被デバッグソフトウェアの中で扱っているある変数が指定された範囲の値ならば、指定されたハードウェアの一部分のシミュレーションを停止するというものである。これにより、ソフトウェアデバッグに必要なハードウェア要素のみをシミュレーションすることができ、シミュレーション速度を改善し、デバッグ効率を上げることができる。
(Embodiment 9)
FIG. 9 shows a system simulation execution program according to the ninth embodiment corresponding to the ninth invention. In the ninth embodiment, when simulating a software simulator and a hardware simulator in cooperation, some simulations in the hardware description are suppressed according to the state of the software to increase the speed of the entire simulation. To do. For example, if a variable handled in the debugged software has a value within a specified range, the simulation of a part of the specified hardware is stopped. As a result, only hardware elements necessary for software debugging can be simulated, the simulation speed can be improved, and debugging efficiency can be increased.
図9の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debugged
被デバッグソフトウェア実行部103は仮想的なマイコンのメモリアクセスやレジスタアクセスのタイミングなどでソフトウェア実行状態取得部901を呼び出す。ソフトウェア実行状態取得部901はシミュレーション条件判定部902が必要とするデータを被デバッグソフトウェア実行部103から取得する。シミュレーション条件記録部703が人間に理解できるような形態で記録されている場合、変数名などがシンボルという英数字で表現されていることがあるので、ソフトウェア実行状態取得部901は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してソフトウェアの中のどの変数を指すのかの解決を図る。
The debugged
ソフトウェア実行状態取得部901に呼び出されたシミュレーション条件判定部902はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は、実施の形態1のハードウェア要素不活性化指定部105と同様のものである。
The simulation
この実施の形態9についてさらに詳しく説明する。シミュレーション条件記録部703の内部は実施の形態7とほぼ同じであるが、図40の例と異なる箇所としては、条件タイプデータの“信号状態”や“信号変化”、“モジュール実行”が、条件データの“信号名+比較値”や“信号名+変化のタイプ”、“モジュール名”がなくなり、そのかわりにたとえば条件タイプデータとして“変数状態”や“データアクセス”、“関数呼び出し”が、条件データとして“変数名+比較値”や“開始アドレス+終了アドレス”、“関数名"などが加わる。
The ninth embodiment will be described in more detail. The inside of the simulation
また、ソフトウェア実行状態取得部901は、条件タイプが“変数状態"ならば、その変数の格納箇所や変数のサイズをデバッグ情報などで解決し、被デバッグソフトウェア実行部103がそのアドレスにアクセスしたときに、アクセスしたデータ内容を取得し、それをシミュレーション条件判定部902へ変数名と共に渡します。条件タイプが”関数名“ならば、被デバッグソフトウェア実行部103が関数をアクセスしたときにアクセスした関数名をシミュレーション条件判定部902へ渡します。なお、関数名のやりとりを行うかわりにあらかじめ定めたIDでやり取りした方が処理速度を向上させることができる。シミュレーション条件判定部902は渡された情報やシミュレーション条件記録部703の内容をもとに判定を行い、不活性化要素タイプや不活性化要素名を使ってハードウェア要素不活性化指定部105に不活性化したい箇所の情報を渡す。
If the condition type is “variable state”, the software execution
(実施の形態10)
図10は第10の発明に対応する実施の形態10にかかるシステムシミュレーション実行プログラムを示す。実施の形態10は実施の形態9と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェアの状態に応じてハードウェア記述中の一部のシミュレーションを抑止してシミュレーション全体の速度を高速化するものである。実施の形態9との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 10)
FIG. 10 shows a system simulation execution program according to the tenth embodiment corresponding to the tenth invention. In the tenth embodiment, similar to the ninth embodiment, when a simulation is performed by linking a software simulator and a hardware simulator, simulation is performed by suppressing a part of the simulation in the hardware description according to the state of the software. The overall speed is increased. The difference from the ninth embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図10の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103とハードウェア記述実行部202は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
被デバッグソフトウェア実行部103は仮想的なマイコンのメモリアクセスやレジスタアクセスのタイミングなどでソフトウェア実行状態取得部901を呼び出す。ソフトウェア実行状態取得部901はシミュレーション条件判定部902が必要とするデータを被デバッグソフトウェア実行部103から取得する。シミュレーション条件記録部703が人間に理解できるような形態で記録されている場合、変数などがシンボルという英数字で表現されていることがあるので、ソフトウェア実行状態取得部901は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してソフトウェアの中のどれを指すのかの解決を図る。
The debugged
ソフトウェア実行状態取得部901に呼び出されたシミュレーション条件判定部902はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は、実施の形態2のハードウェア要素不活性化指定部105と同様のものである。
The simulation
(実施の形態11)
図11は第11の発明に対応する実施の形態11にかかるシステムシミュレーション実行プログラムを示す。実施の形態11は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェア側からハードウェアへのアクセスの中のデバッグに不要なアクセスを中止することによりシミュレーションを抑止してシミュレーション全体の速度を高速化し、ソフトウェアのデバッグの効率を上げようとするものである。
(Embodiment 11)
FIG. 11 shows a system simulation execution program according to the eleventh embodiment corresponding to the eleventh invention. In the eleventh embodiment, when simulating by linking a software simulator and a hardware simulator, the simulation is suppressed by stopping access unnecessary for debugging during access to the hardware from the software side. It is intended to increase the overall speed and increase the efficiency of software debugging.
図11の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debugged
被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はアクセス制御アドレス記録部1103からアクセスを許可したり不許可にしたりする条件を取得し、図42のようなフローで判定を行う。図41がアクセス制御アドレス記録部1103のデータの例である。アクセス制御アドレス記録部1103が人間に理解できるような形態で記録されている場合、アドレス値などをシンボルという英数字で表現することがあるので、条件判定部1102は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してそのシンボルが具体的にどのような数値になるのかの解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101で図43のようなフローで実行可能なハードウェア記述部104のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。
The debugged
もう少し詳しく説明する。たとえば、アクセス制御アドレス記録部1103に、開始アドレスデータとして100番地が、終了アドレスデータとして200番地が、アクセスタイプとしてライトが、制御方法として不許可が記述されているものとすると、被デバッグソフトウェア実行部103がハードウェア記述部104をアクセスしようとしたときに、たとえば110番地にデータをライトしようとしたときにそのアドレスが条件判定部1102に伝えられ、条件判定部1102はアクセス制御アドレス記録部1103の内容に照らし合わせて条件を満たしているかどうかを判定する。上記の例では条件を満たしているので条件判定部1102はアクセス制御部1101に不許可を通知し、アクセス制御部1101ではそれを受けて110番地へのアクセスを無視し、ハードウェア記述部104へのアクセスを行わないようにする。
I will explain a little more in detail. For example, assuming that the access control
(実施の形態12)
図12は第12の発明に対応する実施の形態12にかかるシステムシミュレーション実行プログラムを示す。実施の形態12は実施の形態11と同様に、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェア側からハードウェアへのアクセスの中のデバッグに不要なアクセスを中止することによりシミュレーションを抑止してシミュレーション全体の速度を高速化し、ソフトウェアのデバッグの効率を上げようとするものである。実施の形態11との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 12)
FIG. 12 shows a system simulation execution program according to the twelfth embodiment corresponding to the twelfth invention. In the twelfth embodiment, as in the eleventh embodiment, when simulating a software simulator and a hardware simulator in cooperation, access unnecessary for debugging in the access to the hardware from the software side is stopped. Therefore, the simulation is suppressed to increase the speed of the entire simulation and to improve the efficiency of software debugging. The difference from the eleventh embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図12の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。ハードウェア記述実行部202は同様にハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はアクセス制御アドレス記録部1103からアクセスを許可したり不許可にしたりする条件を取得し、図42のようなフローで判定を行う。図41がアクセス制御アドレス記録部1103のデータの例である。アクセス制御アドレス記録部1103が人間に理解できるような形態で記録されている場合、アドレス値などがシンボルという英数字で表現されることがあるので、条件判定部1102は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してシンボルが具体的にどのような数値になるのかの解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101で図43のようなフローで実行可能なハードウェア記述実行部202のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。
The debugged
(実施の形態13)
図13は第13の発明に対応する実施の形態13にかかるハードウェア記述変換プログラムを示す。実施の形態13は、ハードウェアのシミュレーションをする際に、周期回路のシミュレーション記述を簡略化することによりシミュレーション全体の速度を高速化しようとするものである。ソフトウェアのシミュレーションと連携してシミュレーションすることにより、シミュレータを使ったソフトウェアの効率良いデバッグが可能となる。
(Embodiment 13)
FIG. 13 shows a hardware description conversion program according to a thirteenth embodiment corresponding to the thirteenth invention. In the thirteenth embodiment, when a hardware simulation is performed, the simulation description of a periodic circuit is simplified to increase the speed of the entire simulation. By simulating in conjunction with software simulation, software can be debugged efficiently using a simulator.
例えば、図44のP300のようなVerilogHDLで記述されたカウンタ回路があるとする。この回路は8ビットの周期カウンタであり、カウンタ値が100になったときだけ「repeat#signal」が1になる。このような記述ではクロックが立ち上がるごとにL08行目から始まるモジュールが評価され、カウンタ値が1ずつカウントアップするので非常に時間のかかるシミュレーションとなる。そこで、クロックの周期が決まっているという前提を考慮して、「repeat#signal」が周期的に変化するようにP301のように書き換える。この記述の場合、信号の変化だけで回路記述が評価され、かつ、カウンタのカウントアップも行われないので高速なシミュレーションが可能となる。 For example, assume that there is a counter circuit described in Verilog HDL such as P300 in FIG. This circuit is an 8-bit period counter, and “repeat # signal” becomes 1 only when the counter value reaches 100. In such a description, every time the clock rises, the module starting from the L08 line is evaluated, and the counter value is incremented by one, which makes a very time-consuming simulation. Therefore, in consideration of the premise that the clock cycle is fixed, rewriting is performed like P301 so that “repeat # signal” periodically changes. In the case of this description, the circuit description is evaluated only by the signal change, and the counter is not counted up, so that high-speed simulation is possible.
図13のハードウェア記述1301が元の記述であり、ハードウェア記述変換プログラム1302を経由することで、高速なシミュレーションができるハードウェア記述1306が生成される。ハードウェア記述変換プログラム1302の中にはハードウェア記述1301の中の周期回路を抽出する周期回路抽出部1303があり、周期回路抽出後、周期回路の周期時間を算出する周期回路パラメータ算出部1304がある。これらの処理のあとに、周期回路変換部1305でハードウェア記述1301の内容を修正してハードウェア記述1306を作り出す。
The
図45に周期回路抽出部1303でのカウンタ回路探索処理を示す。カウンタの場合、回路要素に対して加算する箇所があるので、それを含むモジュールを探索する。カウンタを含むモジュールが発見できたならば、一般にカウンタ回路にはクリアなどの初期化処理も含まれているので、その処理も抽出する。また、カウンタの周期を後で算出するためにカウンタクロックの信号名も抽出する。カウンタの動作をONしたりOFFしたりする機能があればその条件式も抽出する。
FIG. 45 shows counter circuit search processing in the periodic
図46に周期回路抽出部1303の中の周期信号探索処理のフローを示す。一般に、周期的な動作をする信号はカウンタ値の一定の数値で反応するように記述されていることが多いため、カウンタ値と比較処理をしている部分を抽出する。
FIG. 46 shows a flow of periodic signal search processing in the periodic
図47に周期回路パラメータ算出部1304のフローを示す。カウンタクロックの周期やカウンタのビット幅からカウンタの周期を求める。カウンタ値の比較値から周期信号の周期を求める。
FIG. 47 shows a flow of the periodic circuit
図48に周期回路変換部1305の周期回路変換処理のフローを示す。最初にハードウェア記述1301の中のカウンタ回路の式やモジュールを削除し、さらに、周期信号を作っている式も削除する。その後で、元の回路記述と同じ仕様の周期信号が得られるように代わりの式とそれを含むモジュールを作って挿入する。
FIG. 48 shows a flow of periodic circuit conversion processing of the periodic
(実施の形態14)
図14は第14の発明に対応する実施の形態14にかかるシステムシミュレーション実行プログラムを示す。実施の形態14は実施の形態13と同様に、ハードウェアのシミュレーションをする際に、周期回路のシミュレーション記述を簡略化することによりシミュレーション全体の速度を高速化しようとするものである。実施の形態13との違いはハードウェア記述をソースコードレベルで高速化の変換をしてからコンパイルするのではなく、ハードウェア記述されたコードを直接ハードウェア記述実行部が実行する点にある。さらに、ハードウェア記述どおりに実行するのではなく、高速化したい周期回路を実行する代わりに周期回路を用いて作り出される周期信号の仕様を満たす動作だけを行う。
(Embodiment 14)
FIG. 14 shows a system simulation execution program according to the fourteenth embodiment corresponding to the fourteenth invention. In the fourteenth embodiment, as in the thirteenth embodiment, when the hardware simulation is performed, the simulation description of the periodic circuit is simplified to increase the speed of the entire simulation. The difference from the thirteenth embodiment is that the hardware description execution unit directly executes the code described in hardware, instead of compiling after converting the hardware description at high speed at the source code level. Furthermore, instead of executing the hardware according to the hardware description, only the operation satisfying the specification of the periodic signal generated using the periodic circuit is performed instead of executing the periodic circuit to be speeded up.
図14の周期回路抽出部1401や周期回路パラメータ算出部1402は実施の形態13のものと同じである。これらで得られた情報をハードウェア記述実行部1303へ渡す。ハードウェア記述実行部1303はハードウェア記述201を解析してから実行するが、抽出された周期回路を実行しようとする際に、その記述の実行を止めて、その代わりに周期信号の変化を起こすようにする。一般的にハードウェア記述実行部では、イベントの予約として将来発生する信号の変化を登録する機構があるので、それを使って周期信号の動きを実現する。これにより、カウンタ回路を元の記述のままシミュレーションをすることなく、簡便なシミュレーションの処理で同様の効果を得ることができ、シミュレーション速度を上げることができる。
The periodic
(実施の形態15)
図15は第15の発明に対応する実施の形態15にかかるハードウェア記述変換プログラムを示す。実施の形態15は、ハードウェアのシミュレーションをする際に、組合せ回路のシミュレーション記述を簡略化することによりシミュレーション全体の速度を高速化しようとするものである。ソフトウェアのシミュレーションと連携してシミュレーションすることにより、シミュレータを使ったソフトウェアの効率良いデバッグが可能となる。
(Embodiment 15)
FIG. 15 shows a hardware description conversion program according to a fifteenth embodiment corresponding to the fifteenth invention. The fifteenth embodiment is intended to increase the speed of the entire simulation by simplifying the simulation description of the combinational circuit when performing a hardware simulation. By simulating in conjunction with software simulation, software can be debugged efficiently using a simulator.
例えば、図49のP400のようなVerilogHDLで記述された組合せ回路があるとする。この回路は3つの入力信号を相互に演算処理をしてゆくものだが、それぞれの処理に少しずつ異なる遅延時間が入っているので、入力信号の変化によっては出力波形が複雑に変化する可能性がある。また、このように遅延時間を多く含む回路をシミュレーションを行うと細かな信号変化が数多く発生し非常に時間のかかるシミュレーションとなる。一方、ソフトウェアのデバッグのためのハードウェアのシミュレーションを行う場合、厳密な信号変化は必要とされないことも多い。そこで、P401のように書き換えることで出力信号に至る中間の信号のシミュレーションを省略することができ、シミュレーションの高速化を図ることができる。この例では入力信号の変化が出力に伝わる時間がもっとも長いものは入力信号「in#C」に関わるものなので、40+50+30=120の遅延時間で出力信号「out#X」が変化する。 For example, assume that there is a combinational circuit described in Verilog HDL such as P400 in FIG. This circuit performs arithmetic processing on three input signals, but each processing has a slightly different delay time, so the output waveform may change in complex ways depending on changes in the input signal. is there. In addition, when a circuit including a large amount of delay time is simulated in this way, many fine signal changes occur and the simulation takes a very long time. On the other hand, when simulating hardware for software debugging, strict signal changes are often not required. Therefore, rewriting as in P401 can omit the simulation of the intermediate signal leading to the output signal, and the simulation can be speeded up. In this example, the longest time that the change of the input signal is transmitted to the output is related to the input signal “in # C”, so the output signal “out # X” changes with a delay time of 40 + 50 + 30 = 120.
図15のハードウェア記述1301が元の記述であり、ハードウェア記述変換プログラム1302を経由することで、高速なシミュレーションができる変更後のハードウェア記述1306が生成される。ハードウェア記述変換プログラム1302の中にはハードウェア記述1301の中の組合せ回路を抽出する組合せ回路抽出部1501があり、組合せ回路抽出後、組合せ回路の遅延時間を算出する組合せ回路パラメータ算出部1502がある。これらの処理のあとに、組合せ回路変換部1503でハードウェア記述1301の内容を修正してハードウェア記述1306を作り出す。
The
図50に組合せ回路抽出部1501での組合せ回路探索フローを示す。すべてのモジュールを探索し、代入文を抽出してゆく。
FIG. 50 shows a combinational circuit search flow in the combinational
図51に組合せ回路パラメータ算出部1502の中の組合せ回路パラメータ算出処理のフローを示す。組合せ回路抽出部1501で得られた代入文をスコープに注意しながら右辺を展開してゆく。展開の際に最大遅延時間を求めながら処理する。展開の最後に代入文の最大遅延時間を記録する。
FIG. 51 shows a flow of combination circuit parameter calculation processing in the combination circuit
図52に組合せ回路変換部1503の組合せ回路変換処理のフローを示す。最初にハードウェア記述1301の中の組合せ回路の代入文を削除する。その後で、遅延時間のついた展開後の代入文を挿入する。
FIG. 52 shows a flow of combinational circuit conversion processing of the combinational
(実施の形態16)
図16は第16の発明に対応する実施の形態16にかかるシステムシミュレーション実行プログラムを示す。実施の形態16は実施の形態15と同様に、ハードウェアのシミュレーションをする際に、組合せ回路のシミュレーション記述を簡略化することによりシミュレーション全体の速度を高速化しようとするものである。実施の形態15との違いはハードウェア記述をソースコードレベルで高速化の変換をしてからコンパイルするのではなく、ハードウェア記述されたコードを直接ハードウェア記述実行部が実行する点にある。さらに、ハードウェア記述どおりに実行するのではなく、簡略化した組合せ回路を実行する。
(Embodiment 16)
FIG. 16 shows a system simulation execution program according to the sixteenth embodiment corresponding to the sixteenth invention. In the sixteenth embodiment, as in the fifteenth embodiment, when the hardware simulation is performed, the simulation description of the combinational circuit is simplified to increase the speed of the entire simulation. The difference from the fifteenth embodiment is that the hardware description execution unit directly executes the code described in hardware, instead of compiling after converting the hardware description at high speed at the source code level. Furthermore, a simplified combinational circuit is executed instead of the hardware description.
図16の組合せ回路抽出部1501や組合せ回路パラメータ算出部1502は実施の形態15のものと同じである。これらで得られた情報をハードウェア記述実行部1603へ渡す。ハードウェア記述実行部1603はハードウェア記述201を解析してから実行するが、抽出された組合せ回路を実行しようとする際に、その記述の実行を止めて、その代わりに簡略化した組み合わせ回路を実行するようにする。一般的にハードウェア記述実行部では、イベントの予約として将来発生する信号の変化を登録する機構があるので、それを使って組合せ回路が代入する信号の動きを実現する。これにより、元の記述のままシミュレーションをすることなく、簡便なシミュレーションの処理でほぼ同様の効果を得ることができ、シミュレーション速度を上げることができる。
The combinational
(実施の形態17)
図17は第17の発明に対応する実施の形態17にかかるシステムシミュレーション実行プログラムを示す。実施の形態17は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェア側からハードウェアの外部バス信号などを操作する代わりにソフトウェア側からハードウェアの回路内部の要素を直接操作することでそこへ至るハードウェア要素のシミュレーションを不要にし、これによりシミュレーション全体の速度を高速化してソフトウェアのデバッグの効率を上げようとするものである。
(Embodiment 17)
FIG. 17 shows a system simulation execution program according to the seventeenth embodiment corresponding to the seventeenth invention. In the seventeenth embodiment, when simulating a software simulator and a hardware simulator in cooperation, elements in the hardware circuit are directly connected from the software side instead of operating the external bus signal of the hardware from the software side. By manipulating it, the simulation of the hardware elements that reach it is made unnecessary, thereby increasing the speed of the entire simulation and increasing the efficiency of software debugging.
図17の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debug
被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はハードウェア要素操作情報記録部1701からハードウェアのバスへのアクセスを許可したり不許可にしたりする条件を取得し、図53のようなフローで判定を行う。図54がハードウェア要素操作情報記録部1701のデータの例であり、この中には判定に使われるバスアクセスの条件やハードウェアのバスのアクセスの代わりに行うハードウェア要素操作の情報などが含まれる。ハードウェア要素操作情報記録部1701のデータ内容が人間に理解できるような形態で記録されている場合、アドレス値がシンボルという英数字で表現されていることがあり、条件判定部1102は被デバッグソフトウェア実行部103やあるいは被デバッグソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得してシンボルが具体的にどのような数値を指すのかの解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101で図55のようなフローで実行可能なハードウェア記述部104のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。一方、条件判定部1102でアクセス不許可が決定された場合、ハードウェアのバスのアクセスに代わって、ハードウェア要素操作部1702がハードウェア記述部104の中のハードウェア要素を図56のようなフローを使って直接操作する。どの要素を操作するかはハードウェア要素操作情報記録部1701に書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、信号名やノード名がシンボルという英数字で表現されていることがあり、ハードウェア要素操作部1702はハードウェア記述107をコンパイルした際などに得られるハードウェア記述シンボル情報704などからシンボルに関する情報などの必要な情報を取得してシンボルが回路のどの部分を指すのかの解決を図る。
The debugged
もう少し詳しく説明する。たとえば、ハードウェア要素操作情報記録部1701に、開始アドレスデータとして200番地、アクセスタイプデータとしてライト、操作するノードのファイル名としてHardware.v、操作するノードのノード名としてmodule1.register1というものが設定されているものとすると、被デバッグソフトウェア実行部103がハードウェア記述部104に対して200番地にアクセスしたときに、条件判定部1102はそれを検出し、アクセス制御部1101に対してアクセス不許可を通知する。さらに、ハードウェア要素操作部1702に対して、module1.register1へ200番地に書き込もうとしたデータをセットする。実際のハードウェアの記述をそのままシミュレーションするとソフトウェア側からmodule1.register1のノードにデータをセットするまでに多くのノードが動作しなければならずシミュレーション時間を必要としてしまうが、この方法では直接module1.register1を操作するので、途中のシミュレーションを省略でき、その分高速になる。このハードウェア要素操作情報記録部1701ではソフトウェア実行部103からのアクセスサイズとノードのサイズが同じということを前提としているが、ソフトウェア実行部103からのアクセスデータのビットとハードウェアのノードとの関連付けができるようにすると利用範囲が広くなる。
I will explain a little more in detail. For example, the hardware element operation
また、ハードウェア要素操作部1702の動作を示す図56では、ハードウェア要素操作情報記録部1701のアクセスタイプがライトのときのフローを示しており、リードのときはS2202の内容に代えて「ハードウェア記述部のAPIを呼び出して指定されたハードウェア要素の値を取得する」という内容になる。アクセスタイプがライトのときのS2202に記載された「指定された値」というのは、条件判定部1102が被デバッグソフトウェア実行部103から受け取ったデータであり、図54のハードウェア要素操作情報記録部1701に示された「操作するノードのノード名」のところに、被デバッグソフトウェア実行部103から受け取ったデータを設定する。アクセスタイプがリードのときはハードウェア要素操作情報記録部1701に示された「操作するノードのノード名」のところからノードの状態を取得し、被デバッグソフトウェア実行部103へその状態をリードデータとして返す。
Also, FIG. 56 showing the operation of the hardware
(実施の形態18)
図18は第18の発明に対応する実施の形態18にかかるシステムシミュレーション実行プログラムを示す。実施の形態18は、実施の形態17と同様にソフトウェア側からハードウェアの外部バス信号などを操作する代わりにソフトウェア側からハードウェアの回路内部の要素を直接操作することでそこへ至るハードウェア要素のシミュレーションを不要にし、これによりシミュレーション全体の速度を高速化してソフトウェアのデバッグの効率を上げようとするものである。実施の形態17との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 18)
FIG. 18 shows a system simulation execution program according to the eighteenth embodiment corresponding to the eighteenth invention. In the eighteenth embodiment, as in the seventeenth embodiment, instead of operating a hardware external bus signal or the like from the software side, a hardware element reaching the hardware circuit directly by directly operating an element in the hardware circuit from the software side This eliminates the need for simulation, thereby increasing the speed of the entire simulation and improving the efficiency of software debugging. The difference from the seventeenth embodiment is that the hardware description execution unit executes the code described in the hardware as in the second embodiment.
図18の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はハードウェア要素操作情報記録部1701からハードウェアのバスへのアクセスを許可したり不許可にしたりする条件を取得し、判定を行う。ハードウェア要素操作情報記録部1801のデータ内容が人間に理解できるような形態で記録されている場合、条件判定部1102は被デバッグソフトウェア実行部103やあるいは被デバッグソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得して解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101でハードウェア記述実行部202のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。一方、条件判定部1102でアクセス不許可が決定された場合、ハードウェアのバスのアクセスに代わって、ハードウェア要素操作部1802がハードウェア記述実行部202の中のハードウェア要素を直接操作する。どの要素を操作するかはハードウェア要素操作情報記録部1801に書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、ハードウェア要素操作部1802はハードウェア記述実行部202などからシンボルに関する情報などの必要な情報を取得して解決を図る。
The debugged
(実施の形態19)
図19は第19の発明に対応する実施の形態19にかかるシステムシミュレーション実行プログラムを示す。実施の形態19は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェア側からハードウェアの回路内部の要素を直接操作することでそこへ至るハードウェア要素のシミュレーションを不要にし、これによりシミュレーション全体の速度を高速化してソフトウェアのデバッグの効率を上げようとするものである。たとえば、図57に示すように、実際のソースコードではL09行目のようにマイコンのメモリ空間へ直接アクセスするがシミュレーションでのデバッグのときはL07行目のようにハードウェアのシミュレータの内部の信号に直接数値を設定する。シミュレーションでマイコンのメモリ空間へ直接アクセスすると、たとえハードウェアの中の一部の回路にアクセスするだけでも、マイコンのデータバスなどに接続されている多くのハードウェア要素のシミュレーションが行われることになりその時間が無駄となる。そこで図57のようにハードウェアの内部を直接操作することで無駄なシミュレーションが行われなくなりシミュレーションを高速化することができる。また本発明はハードウェアの操作の処理をソフトウェアのソースコードの中に簡単に記述できる。
(Embodiment 19)
FIG. 19 shows a system simulation execution program according to the nineteenth embodiment corresponding to the nineteenth invention. In the nineteenth embodiment, when simulating a software simulator and a hardware simulator in cooperation, it is not necessary to directly simulate the elements inside the hardware circuit from the software side, thereby making it unnecessary to simulate the hardware elements that reach it. Thus, the speed of the entire simulation is increased to increase the efficiency of software debugging. For example, as shown in FIG. 57, in the actual source code, the memory space of the microcomputer is directly accessed as in the line L09, but when debugging in simulation, the internal signal of the hardware simulator is used as in the line L07. Set the value directly. When directly accessing the memory space of a microcomputer during simulation, even if only a part of the hardware circuit is accessed, many hardware elements connected to the data bus of the microcomputer are simulated. Time is wasted. Therefore, by directly manipulating the inside of the hardware as shown in FIG. 57, the useless simulation is not performed and the simulation can be speeded up. Further, according to the present invention, hardware operation processing can be easily described in software source code.
図19の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debugged
被デバッグソフトウェア実行部103の中のソフトウェア実行処理のフローは図58のようになっている。通常はS2306のように命令を次々と実行していくが、関数呼び出しの命令がある場合、その関数呼び出しがハードウェア操作用の関数かどうかを判断し、それがハードウェア操作用の関数であれば、その関数呼び出しの際に付加された引数の内容を取得し、図19のハードウェア操作コマンド解析部1901を呼び出す。
The flow of software execution processing in the debugged
ハードウェア操作コマンド解析部1901では図59のようなフローで処理を行う。最初に、被デバッグソフトウェア実行部103で得られたハードウェア操作コマンドの文字列からコマンドの種類やそのコマンドのパラメータを分解して取得する。次に、ハードウェア操作コマンド解析部1901は解析したコマンドに応じてハードウェア要素操作部1702を呼び出し、ハードウェア要素操作部1702はハードウェア記述部104の中のハードウェア要素を直接操作する。どの要素を操作するかはハードウェア操作コマンド解析部1901で解析したコマンドパラメータに書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、信号名やノード名などがシンボルで表現されていることがあり、ハードウェア要素操作部1702はハードウェア記述部104をコンパイルした際などに得られるハードウェア記述シンボル情報704などからシンボルに関する情報などの必要な情報を取得してシンボルが回路のどの部分を指すのかの解決を図る。
The hardware operation
(実施の形態20)
図20は第20の発明に対応する実施の形態20にかかるシステムシミュレーション実行プログラムを示す。実施の形態20は、実施の形態19と同様にソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ソフトウェア側からハードウェアの回路内部の要素を直接操作することでそこへ至るハードウェア要素のシミュレーションを不要にし、これによりシミュレーション全体の速度を高速化してソフトウェアのデバッグの効率を上げようとするものである。実施の形態19との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 20)
FIG. 20 shows a system simulation execution program according to the twentieth embodiment corresponding to the twentieth invention. In the twentieth embodiment, similar to the nineteenth embodiment, when simulating a software simulator and a hardware simulator in cooperation with each other, the hardware reaching to the hardware circuit is directly operated from the software side. This eliminates the need for hardware element simulation, thereby speeding up the overall simulation and increasing the efficiency of software debugging. The difference from the nineteenth embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図20の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
被デバッグソフトウェア実行部103の中のソフトウェア実行処理のフローは図58のようになっている。通常はS2306のように命令を次々と実行していくが、関数呼び出しの命令がある場合、その関数呼び出しがハードウェア操作用の関数かどうかを判断し、それがハードウェア操作用の関数であれば、その関数呼び出しの際に付加された引数を取得し、図20のハードウェア操作コマンド解析部1901を呼び出す。
The flow of software execution processing in the debugged
ハードウェア操作コマンド解析部1901では図59のようなフローで処理を行う。最初に、被デバッグソフトウェア実行部103で得られたハードウェア操作コマンドの文字列からコマンドの種類やそのコマンドのパラメータを分解して取得する。次に、ハードウェア操作コマンド解析部1901は解析したコマンドに応じてハードウェア要素操作部1802を呼び出し、ハードウェア要素操作部1802はハードウェア記述部104の中のハードウェア要素を直接操作する。どの要素を操作するかはハードウェア操作コマンド解析部1901で解析したコマンドパラメータに書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、信号名やノード名がシンボルという英数字で表現されることがあり、ハードウェア要素操作部1802はハードウェア記述実行部202などからシンボルに関する情報などの必要な情報を取得してシンボルが回路のどの部分を指すのかの解決を図る。
The hardware operation
(実施の形態21)
図21は第21の発明に対応する実施の形態21にかかるシステムシミュレーション実行プログラムを示す。実施の形態21は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ハードウェア側からソフトウェアのシミュレータの内部を直接操作することでハードウェア要素のシミュレーションやソフトウェアのシミュレーションの一部を省略し、これによりシミュレーション全体の速度を高速化してソフトウェアのデバッグの効率を上げようとするものである。たとえば、ハードウェアのシミュレータ側からソフトウェア側に対して割込みを発生させ、ソフトウェア側が割込み処理を行い、変数の内容をセットするという処理があるとすると、最終目的が変数の内容のセットであるから、ハードウェアの記述の中でソフトウェアの変数の設定ができれば、途中の処理のシミュレーションを省くことができる。図60がVerilogHDLによる記述例であり、L14行目がソフトウェアのシミュレータを操作する部分である。本発明によってハードウェア記述内に簡単にソフトウェアのシミュレータの操作コマンドを記述でき、効率の良いソフトウェアのデバッグが可能となる。
(Embodiment 21)
FIG. 21 shows a system simulation execution program according to the twenty-first embodiment corresponding to the twenty-first invention. In the twenty-first embodiment, when simulating a software simulator and a hardware simulator in cooperation, a hardware element simulation or a part of software simulation is performed by directly operating the inside of the software simulator from the hardware side. This is intended to increase the speed of the entire simulation and increase the efficiency of software debugging. For example, if there is a process that generates an interrupt from the hardware simulator side to the software side, the software side performs an interrupt process, and sets the variable contents, the final purpose is to set the variable contents. If software variables can be set in the hardware description, it is possible to omit simulation of intermediate processing. FIG. 60 shows a description example using Verilog HDL, and the L14th line is a part for operating a software simulator. According to the present invention, the operation command of the software simulator can be easily described in the hardware description, and the software can be debugged efficiently.
図21の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debugged
実行可能なハードウェア記述部104でソフトウェア操作をする関数を呼び出したときに、そのパラメータを伴ってソフトウェア操作コマンド解析部2101を呼び出す。ソフトウェア操作コマンド解析部2101では図61のフローのように、コマンド文字列を解析し、コマンドの種類やパラメータを抽出して被デバッグソフトウェア実行部103を呼び出す。ソフトウェア操作コマンド解析部2101で抽出したコマンドパラメータが人間に理解できるような形態で書かれている場合、変数やアドレス値などがシンボルという英数字で表現されることがあり、被デバッグソフトウェア実行部103は被デバッグソフトウェア102をコンパイルした際などに得られるソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得してシンボルが何を指すのかの解決を図る。
When a function that performs software operation is called in the executable
(実施の形態22)
図22は第22の発明に対応する実施の形態22にかかるシステムシミュレーション実行プログラムを示す。実施の形態22は、実施の形態21と同様にソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションする際に、ハードウェア側からソフトウェアのシミュレータの内部を直接操作することでハードウェア要素のシミュレーションやソフトウェアのシミュレーションの一部を省略し、これによりシミュレーション全体の速度を高速化してソフトウェアのデバッグの効率を上げようとするものである。実施の形態21との違いは、実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 22)
FIG. 22 shows a system simulation execution program according to the twenty-second embodiment corresponding to the twenty-second invention. In the twenty-second embodiment, similar to the twenty-first embodiment, when simulating a software simulator and a hardware simulator in cooperation, the hardware element is simulated by directly operating the inside of the software simulator from the hardware side. And a part of the software simulation are omitted, thereby increasing the speed of the entire simulation and improving the efficiency of software debugging. The difference from the twenty-first embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図22の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debugged
ハードウェア記述実行部202でソフトウェア操作をする関数を呼び出したときに、そのパラメータを伴ってソフトウェア操作コマンド解析部2101を呼び出す。ソフトウェア操作コマンド解析部2101では図61のフローのように、コマンド文字列を解析し、コマンドの種類やパラメータを抽出して被デバッグソフトウェア実行部103を呼び出す。ソフトウェア操作コマンド解析部2101で抽出したコマンドパラメータが人間に理解できるような形態で書かれている場合、変数名やアドレス値などがシンボルという英数字で表現されることがあり、被デバッグソフトウェア実行部103は被デバッグソフトウェア102をコンパイルした際などに得られるソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得してシンボルが何を指すのかの解決を図る。
When the hardware
(実施の形態23)
図23は第23の発明に対応する実施の形態23にかかるシステムシミュレーション実行プログラムを示す。実施の形態23は、ソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションによる自動テストを行う際に、テストスクリプトからソフトウェアのシミュレータの内部やハードウェアのシミュレータの内部を直接操作することでハードウェア要素のシミュレーションやソフトウェアのシミュレーションの一部を省略し、これによりシミュレーション全体の速度を高速化して自動テストの効率を上げようとするものである。たとえば、ハードウェアやソフトウェアを特定の状態に設定したい場合、ハードウェアの外部信号の操作だけでその状態まで移行するには多くのシミュレーション時間を要する可能性がある。そこで、たとえば図62のようにハードウェアのシミュレータやソフトウェアのシミュレータ内部の状態をテストスクリプトで直接操作することで、すばやくテストに必要な状態を作り出し、システムの検証時間を短縮させる。
(Embodiment 23)
FIG. 23 shows a system simulation execution program according to the twenty-third embodiment corresponding to the twenty-third invention. In the twenty-third embodiment, when an automatic test by simulation is performed by linking a software simulator and a hardware simulator, the hardware is controlled by directly operating the inside of the software simulator or the inside of the hardware simulator from a test script. By omitting part of the element simulation and software simulation, the speed of the entire simulation is increased to increase the efficiency of the automatic test. For example, when it is desired to set hardware or software to a specific state, it may take a lot of simulation time to move to that state only by operating an external signal of the hardware. Therefore, for example, as shown in FIG. 62, the state inside the hardware simulator or the software simulator is directly operated by the test script, so that the state necessary for the test is quickly created and the system verification time is shortened.
図23の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。
The debug
テストスクリプト実行部2301はテストスクリプト2302を読み込んでそれを実行する。テストスクリプトの実行直前にテストスクリプトをコンパイルし、コンパイルしたものを実行してもよい。テストスクリプト実行部2301では図63のフローのように、テストスクリプトのコマンドがハードウェア操作コマンドかソフトウェア操作コマンドかを判別し、それに応じてハードウェア操作コマンド解析部1901かソフトウェア操作コマンド解析部2101を呼び出す。
The test
ハードウェア操作コマンド解析部1901は実施の形態19と同様にコマンドを解析し、ハードウェア要素操作部1702を呼び出し、ハードウェア要素操作部1702はハードウェア記述部104のAPIを呼び出してハードウェアのシミュレーションを制御する。
The hardware operation
ソフトウェア操作コマンド解析部2101は実施の形態21と同様にコマンドを解析し、ソフトウェア実行部103を呼び出してソフトウェアのシミュレーションを制御する。
The software operation
(実施の形態24)
図24は第24の発明に対応する実施の形態24にかかるシステムシミュレーション実行プログラムを示す。実施の形態24は実施の形態23と同様にソフトウェアのシミュレータとハードウェアのシミュレータを連携させてシミュレーションによる自動テストを行う際に、テストスクリプトからソフトウェアのシミュレータの内部やハードウェアのシミュレータの内部を直接操作することでハードウェア要素のシミュレーションやソフトウェアのシミュレーションの一部を省略し、これによりシミュレーション全体の速度を高速化して自動テストの効率を上げようとするものである。実施の形態23との違いは実施の形態2のようにハードウェア記述されたコードをハードウェア記述実行部が実行する点にある。
(Embodiment 24)
FIG. 24 shows a system simulation execution program according to the twenty-fourth embodiment corresponding to the twenty-fourth invention. In the twenty-fourth embodiment, in the same way as the twenty-third embodiment, when the software simulator and the hardware simulator are linked to perform an automatic test by simulation, the inside of the software simulator or the inside of the hardware simulator is directly taken from the test script. By operating, part of the hardware element simulation and software simulation are omitted, thereby increasing the speed of the entire simulation and increasing the efficiency of the automatic test. The difference from the twenty-third embodiment is that the hardware description execution unit executes the code described in hardware as in the second embodiment.
図24の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。ハードウェア記述実行部202はハードウェア記述201を読み込んでその記述内容を実行するもので、一般的にはインタープリタが用いられ、最初に中間言語に変換してからその中間言語を実行することが多いが、実行時に部分的にコンパイルするジャストインタイムコンパイラ方式を採用してもよく、あるいは、ハードウェア記述内容をシミュレータが実行しやすいデータに変換し、それを参照しながら実行してもよい。
The debug
テストスクリプト実行部2301はテストスクリプト2302を読み込んでそれを実行する。テストスクリプトの実行直前にテストスクリプトをコンパイルし、コンパイルされたものを実行してもよい。テストスクリプト実行部2301では図63のフローのように、テストスクリプトのコマンドがハードウェア操作コマンドかソフトウェア操作コマンドかを判別し、それに応じてハードウェア操作コマンド解析部1901かソフトウェア操作コマンド解析部2101を呼び出す。
The test
ハードウェア操作コマンド解析部1901は実施の形態20と同様にコマンドを解析し、ハードウェア要素操作部1802を呼び出し、ハードウェア要素操作部1802はハードウェア記述実行部202のAPIを呼び出してハードウェアのシミュレーションを制御する。
The hardware operation
ソフトウェア操作コマンド解析部2101は実施の形態22と同様にコマンドを解析し、ソフトウェア実行部103を呼び出してソフトウェアのシミュレーションを制御する。
The software operation
(実施の形態25)
図25は第25の発明に対応する実施の形態25にかかるハードウェア記述変換プログラムを示す。実施の形態25は、ハードウェア記述を修正した際に、修正前のハードウェア記述に対して高速化のために行った抽象化処理を修正後のハードウェア記述に反映させるためのプログラムである。これにより、時間のかかる抽象化処理を必要最小限にとどめることができ、シミュレータを使った効率良いデバッグが可能となる。
(Embodiment 25)
FIG. 25 shows a hardware description conversion program according to a twenty-fifth embodiment corresponding to the twenty-fifth invention. The twenty-fifth embodiment is a program for reflecting, when a hardware description is corrected, an abstraction process performed for speeding up the hardware description before the correction to the corrected hardware description. As a result, time-consuming abstraction processing can be minimized and efficient debugging using a simulator becomes possible.
図25の新ハードウェア記述2501が何らかの理由で修正した後のハードウェア記述であり、その他に修正前のハードウェア記述に対して行った抽象化に関する情報として抽象化済みハードウェア記述2502と図64のような抽象化箇所記録2503がある。抽象化済みハードウェア記述2502にはたとえば図44のP301のL08行目からL26行目までが記録される。
The
ハードウェア記述変換プログラム2504を経由することで、高速なシミュレーションができる変更後のハードウェア記述1306が生成される。ハードウェア記述変換プログラム2504の中にはハードウェア記述2501の中の既抽象化箇所を抽出する既抽象化部抽出部2505がある。この処理のあとに、ハードウェア記述置換え部2506で新ハードウェア記述2501の内容を修正してハードウェア記述1306を作り出す。
By passing through the hardware
まず、既抽象化部抽出部2505は図65のようなフローで抽象化箇所記録2503の情報を用いて新ハードウェア記述2501の中から既に抽象化されている部分を探し出し、抽象化部抽出記録2507へ記録する。
First, the already abstracted
次に、ハードウェア記述置換え部2506は図66に示すように新ハードウェア記述2501の内容をコピーし、その中の抽象化される前のコードを抽象化部抽出記録2507を使って削除した後に、抽象化済みハードウェア記述2502の内容を取得し、変更後ハードウェア記述1305へ挿入する。
Next, the hardware
このようにして、既に行われた抽象化の結果を利用することにより、抽象化作業を行うことなく速やかにシミュレーションを行うことが可能となる。 In this way, by using the result of the abstraction that has already been performed, it is possible to perform a simulation quickly without performing abstraction work.
(実施の形態26)
図26は第26の発明に対応する実施の形態26にかかるシステムシミュレーション実行プログラムを示す。実施の形態26は実施の形態25と同様にハードウェア記述を修正した際に、修正前のハードウェア記述に対して高速化のために行った抽象化結果を使ってハードウェア記述を実行し、抽象化作業を省略して効率よくデバッグを行うことができるものである。実施の形態25との違いはハードウェア記述をソースコードレベルで高速化のための変換をしてからコンパイルするのではなく、ハードウェア記述されたコードを直接ハードウェア記述実行部が実行する点にある。さらに、ハードウェア記述どおりに実行するのではなく、抽象化した回路を実行する。
(Embodiment 26)
FIG. 26 shows a system simulation execution program according to the twenty-sixth embodiment corresponding to the twenty-sixth invention. In the twenty-sixth embodiment, when the hardware description is modified as in the twenty-fifth embodiment, the hardware description is executed using the abstraction result obtained for speeding up the hardware description before the modification, Abstraction work can be omitted and debugging can be performed efficiently. The difference from the twenty-fifth embodiment is that the hardware description execution unit directly executes the hardware description code instead of compiling after converting the hardware description at the source code level for speeding up. is there. Furthermore, an abstracted circuit is executed instead of executing according to the hardware description.
図26の新ハードウェア記述2501が何らかの理由により修正した後のハードウェア記述であり、その他に修正前のハードウェア記述に対して行った抽象化に関する情報として抽象化済みハードウェア記述2502と図64のような抽象化箇所記録2503がある。抽象化済みハードウェア記述2502にはたとえば図44のP301のL08行目からL26行目までが記録される。あるいは、ハードウェア記述実行部2601が実行しやすいデータ形式で記録していてもよい。
The
まず、既抽象化部抽出部2505は図65のようなフローで抽象化箇所記録2503の情報を用いて新ハードウェア記述2501の中から既に抽象化されている部分を探し出し、抽象化部抽出記録2507へ記録する。
First, the already abstracted
次に、ハードウェア記述実行部2601は図67に示すフローのように新ハードウェア記述2501の内容を実行する。実行の際に、抽象化部抽出記録2507をもとに過去に抽象化されたハードウェア記述かどうかを判定し、過去に抽象化されたものであれば、抽象化されたものを実行する。
Next, the hardware
このようにして、既に行われた抽象化の結果を利用することにより、抽象化作業を行うことなく速やかにシミュレーションを行うことが可能となる。 In this way, by using the result of the abstraction that has already been performed, it is possible to perform a simulation quickly without performing abstraction work.
(実施の形態27)
図27は第27の発明に対応する実施の形態27にかかるシミュレーションシステム実行プログラムを示す。実施の形態27は、2つのシミュレータが連携して並列に動作する場合、お互いに関係するイベントが発生する時間までそれぞれ独立してシミュレーションを実行し、そのシミュレーションの中であらかじめ特定したイベントの発生時間までに他方のシミュレーションの動きに関わるイベントが発生してしまった場合、双方のシミュレーションの状態をそのイベントが発生したシミュレーション時間におけるシミュレーション状態まで復元するという仕組みにすることで、シミュレーション実行部が同期を取るために頻繁に切り替わることによるオーバヘッドを削減し、シミュレーションを高速化することが可能となるものである。
(Embodiment 27)
FIG. 27 shows a simulation system execution program according to a twenty-seventh embodiment corresponding to the twenty-seventh aspect. In the twenty-seventh embodiment, when two simulators operate in parallel with each other, the simulation is independently performed until the time when the events related to each other occur, and the event occurrence time specified in advance in the simulation is executed. If an event related to the movement of the other simulation has occurred by the time, the simulation execution unit is synchronized by restoring the state of both simulations to the simulation state at the simulation time at which the event occurred. Therefore, it is possible to reduce the overhead due to frequent switching to increase the speed of simulation.
図27のシミュレーション実行部A2701とシミュレーション実行部B2702は連携し、かつ、並列実行するものである。一般的には短いサイクルで相互に実行を切り替えることで同期をとってゆくが、本発明ではそれよりも長い時間間隔で切り替えたり、イベントの発生のタイミングで切り替えたりする。シミュレーション実行部2701、2702はそれぞれ、他方のシミュレーション実行に関係するイベントが発生することを認識したときは、そのイベントをイベント予約登録部2703へ登録し、イベント予約登録部2703は図68のようなイベント予約情報2704を登録する。
The simulation execution unit A2701 and the simulation execution unit B2702 in FIG. 27 cooperate and execute in parallel. In general, synchronization is achieved by switching between executions in a short cycle, but in the present invention, switching is performed at a longer time interval or at the timing of occurrence of an event. When each of the
シミュレーション実行指示部2705は図70のフローのように、イベント予約情報2704の中のもっとも近い将来に発生するイベントの情報を取得して、そのイベントが発生したシミュレーション時間までシミュレーションを独立して進めるようにシミュレーション実行部A2701とシミュレーション実行部B2702へ指示する。ただし、その間隔があまり大きいと、シミュレーション時間を戻して復元しなければならない事態が発生したときのペナルティが大きくなるので、図69のようなシミュレーション切り替え時間間隔情報2710の情報に基づいて、間隔が大きすぎないように調整する。
As shown in the flow of FIG. 70, the simulation
シミュレーション実行部2701、2702は図71のフローのように動作する。シミュレーション実行の内容は実行履歴記録部2706や2707へ図72のような内容で記録する。シミュレーション実行部がシミュレーション実行中に他方のシミュレーション実行部に関わるイベントが発生したとき、それがシミュレーション実行指示部2705に指示された時間よりも近いのであれば、それをシミュレーション実行指示部2705へ伝え、シミュレーション実行指示部2705はシミュレーション状態復元部A2708あるいはシミュレーション状態復元部B2709に対してシミュレーション状態を復元するように指示し、復元後にシミュレーションを継続して実行するように指示する。
The
本発明にかかるシミュレーションシステムは、ハードウェアのシミュレータとソフトウェアのシミュレータを協調しながら高速にシミュレーションできるものであり、マイクロプロセッサを使用する各種電子機器のハードウェアやソフトウェア開発に有用である。また、マイクロプロセッサ自身の開発やマイクロプロセッサに接続される周辺LSIの開発においても有用である。 The simulation system according to the present invention can perform high-speed simulation while coordinating a hardware simulator and a software simulator, and is useful for hardware and software development of various electronic devices using a microprocessor. It is also useful in developing the microprocessor itself and in developing peripheral LSIs connected to the microprocessor.
101 システムシミュレーション実行プログラム
102 被デバッグソフトウェア
103 被デバッグソフトウェア実行部
104 実行可能なハードウェア記述部
105 ハードウェア要素不活性化指定部
107 ハードウェア記述
108 コンパイラ
201 ハードウェア記述
202 ハードウェア記述実行部
302 不要ハードウェア要素探索部
501 ハードウェア要素活性状態取得部
702 シミュレーション条件判定部
901 ソフトウェア実行状態取得部
1101 アクセス制御部
1102 条件判定部
1302 ハードウェア記述変換プログラム
1303 周期回路抽出部
1304 周期回路パラメータ抽出部
1305 周期回路変換部
1306 変更後ハードウェア記述
1307 コンパイラ
1501 組合せ回路抽出部
1502 組合せ回路パラメータ算出部
1503 組合せ回路変換部
1701 ハードウェア要素操作情報記録部
1702 ハードウェア要素操作部
1901 ハードウェア操作コマンド解析部
2101 ソフトウェア操作コマンド解析部
2301 テストスクリプト実行部
2504 ハードウェア記述変換プログラム
2505 既抽象化部抽出部
2506 ハードウェア記述置換え部
DESCRIPTION OF
Claims (27)
前記ハードウェア記述実行部は、前記ハードウェア記述の中の周期回路部分を実行するかわりに、前記周期回路パラメータ算出部で算出された周期回路パラメータに基づいて前記周期回路の特性を実現するシステムシミュレーション実行プログラム。 A debugged software execution unit that executes the debugged software, a hardware description execution unit that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit, and the hardware description A periodic circuit extraction unit for extracting a periodic circuit from the hardware description executed by the execution unit, and a periodic circuit parameter calculation unit for calculating a periodic circuit parameter from the periodic circuit extracted by the periodic circuit extraction unit,
The hardware description executing unit is a system simulation for realizing the characteristics of the periodic circuit based on the periodic circuit parameters calculated by the periodic circuit parameter calculating unit, instead of executing the periodic circuit part in the hardware description. Execution program.
前記ハードウェア記述実行部は、前記ハードウェア記述の中の組合せ回路部分を実行するかわりに、組合せ回路パラメータ算出部で算出された組合せ回路パラメータに基づいて前記組合せ回路の特性を実現するシステムシミュレーション実行プログラム。 A debugged software execution unit that executes the debugged software, a hardware description execution unit that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit, and the hardware description A combinational circuit extraction unit for extracting a combinational circuit from the hardware description executed by the execution unit, and a combinational circuit parameter calculation unit for calculating a combinational circuit parameter from the combinational circuit extracted by the combinational circuit extraction unit,
The hardware description execution unit executes a system simulation for realizing the characteristics of the combinational circuit based on the combinational circuit parameter calculated by the combinational circuit parameter calculation unit, instead of executing the combinational circuit part in the hardware description. program.
前記ハードウェア記述実行部は、前記ハードウェア記述の中の前記過去に抽象化作業が完了している部分と同等部分を実行するかわりに、前記過去に抽象化作業が完了している抽象化された記述を実行するシステムシミュレーション実行プログラム。 A debugged software execution unit that executes the debugged software, a hardware description execution unit that executes hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit, and the hardware description An abstraction part extraction unit that extracts a part equivalent to a part of abstraction work completed in the past from the hardware description executed by the execution part,
The hardware description execution unit is an abstraction in which the abstraction work has been completed in the past, instead of executing a part equivalent to the part in the hardware description in which the abstraction work has been completed in the past. System simulation execution program that executes the specified description.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004137107A JP2005321848A (en) | 2004-05-06 | 2004-05-06 | System simulation execution program and hardware description conversion program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004137107A JP2005321848A (en) | 2004-05-06 | 2004-05-06 | System simulation execution program and hardware description conversion program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2005321848A true JP2005321848A (en) | 2005-11-17 |
Family
ID=35469115
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004137107A Pending JP2005321848A (en) | 2004-05-06 | 2004-05-06 | System simulation execution program and hardware description conversion program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2005321848A (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008033794A (en) * | 2006-07-31 | 2008-02-14 | Canon Inc | Simulator apparatus, simulation method, and control program |
| JP2009110076A (en) * | 2007-10-26 | 2009-05-21 | Fujitsu Ltd | Software verification support program, recording medium recording the program, software verification support apparatus, and software verification support method |
| JP2010049630A (en) * | 2008-08-25 | 2010-03-04 | Fujitsu Ltd | Simulation control program, simulation control device, and simulation control method |
| US8244513B2 (en) | 2007-01-23 | 2012-08-14 | Kabushiki Kaisha Toshiba | Simulation execution apparatus and method with cyclicity detection mechanism and computer readable medium |
| US8886512B2 (en) | 2010-10-07 | 2014-11-11 | Fujitsu Semiconductor Limited | Simulation apparatus, computer-readable recording medium, and method |
| JP2015026338A (en) * | 2013-07-29 | 2015-02-05 | 富士電機株式会社 | Cooperative simulation device |
| JP6968318B1 (en) * | 2020-12-24 | 2021-11-17 | 三菱電機株式会社 | Data processing device, data processing method and data processing program |
-
2004
- 2004-05-06 JP JP2004137107A patent/JP2005321848A/en active Pending
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008033794A (en) * | 2006-07-31 | 2008-02-14 | Canon Inc | Simulator apparatus, simulation method, and control program |
| US8244513B2 (en) | 2007-01-23 | 2012-08-14 | Kabushiki Kaisha Toshiba | Simulation execution apparatus and method with cyclicity detection mechanism and computer readable medium |
| JP2009110076A (en) * | 2007-10-26 | 2009-05-21 | Fujitsu Ltd | Software verification support program, recording medium recording the program, software verification support apparatus, and software verification support method |
| JP2010049630A (en) * | 2008-08-25 | 2010-03-04 | Fujitsu Ltd | Simulation control program, simulation control device, and simulation control method |
| US8886512B2 (en) | 2010-10-07 | 2014-11-11 | Fujitsu Semiconductor Limited | Simulation apparatus, computer-readable recording medium, and method |
| JP2015026338A (en) * | 2013-07-29 | 2015-02-05 | 富士電機株式会社 | Cooperative simulation device |
| JP6968318B1 (en) * | 2020-12-24 | 2021-11-17 | 三菱電機株式会社 | Data processing device, data processing method and data processing program |
| WO2022137458A1 (en) * | 2020-12-24 | 2022-06-30 | 三菱電機株式会社 | Data processing device, data processing method, and data processing program |
| CN116457765A (en) * | 2020-12-24 | 2023-07-18 | 三菱电机株式会社 | Data processing device, data processing method, and data processing program |
| US12050940B2 (en) | 2020-12-24 | 2024-07-30 | Mitsubishi Electric Corporation | Data processing apparatus, data processing method, and computer readable medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5960198A (en) | Software profiler with runtime control to enable and disable instrumented executable | |
| JP3951925B2 (en) | Hardware / software co-verification method | |
| US20020147957A1 (en) | System LSI development apparatus and the method thereof for developing a system optimal to an application | |
| KR102161192B1 (en) | Method and apparatus for data mining from core trace | |
| Narayan et al. | Translating system specifications to VHDL | |
| Carreras et al. | A co-design methodology based on formal specification and high-level estimation | |
| Vinco et al. | Code manipulation for virtual platform integration | |
| US7676774B2 (en) | System LSI verification system and system LSI verification method | |
| US7761272B1 (en) | Method and apparatus for processing a dataflow description of a digital processing system | |
| JP2005321848A (en) | System simulation execution program and hardware description conversion program | |
| US6775810B2 (en) | Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage | |
| JP4342392B2 (en) | Software verification model generation method | |
| Gao et al. | TotalProf: a fast and accurate retargetable source code profiler | |
| US20170131985A1 (en) | Executable code generation program and executable code generation device | |
| JP4271072B2 (en) | Software verification model generation method | |
| Arditi et al. | Using Esterel and formal methods to increase the confidence in the functional validation of a commercial DSP | |
| JP2013003999A (en) | Verification device, verification method, and verification program | |
| Bombieri et al. | Abstraction of RTL IPs into embedded software | |
| JPH08180094A (en) | Architecture simulator | |
| Tasiran et al. | Using formal specifications to monitor and guide simulation: Verifying the cache coherence engine of the Alpha 21364 microprocessor | |
| CN120705061B (en) | Embedded firmware hybrid symbol execution test system, method, device and medium | |
| Lavagno et al. | System-level design models and implementation techniques | |
| KR101099491B1 (en) | Power Consumption Analysis Method | |
| Chapman | Program timing analysis | |
| JP5390464B2 (en) | Simulation apparatus, simulation apparatus control 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 |