[go: up one dir, main page]

JP2005321848A - System simulation execution program and hardware description conversion program - Google Patents

System simulation execution program and hardware description conversion program Download PDF

Info

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
Application number
JP2004137107A
Other languages
Japanese (ja)
Inventor
Toshio Matsuki
敏夫 松木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004137107A priority Critical patent/JP2005321848A/en
Publication of JP2005321848A publication Critical patent/JP2005321848A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 ハードウェアのシミュレータとソフトウェアのシミュレータを協調しながら高速なシミュレーションを可能にする。
【解決手段】 被デバッグソフトウェア102を実行する被デバッグソフトウェア実行部103と、被デバッグソフトウェア実行部103と連携して動作する実行可能なハードウェア記述部104と、シミュレーションに不要なハードウェア要素が指定されたハードウェア要素不活性化箇所情報106をもとにハードウェアのシミュレーションを部分的に抑制させる指示をハードウェア記述部104へ出力するハードウェア要素不活性化指定部105とを備え、ソフトウェアのデバッグに不要なハードウェアのシミュレーションを抑制することで、協調シミュレーション全体の実行速度を上げる。
【選択図】 図1
PROBLEM 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つのアプリケーションとして統合した上でそれぞれの処理にインターフェイスを設けて連動させるという方法である。
特開2002−244883号公報 特開2001−155047号公報 特開2001−290860号公報 特開平10−74214号公報 特開平10−91480号公報
The third method is to integrate a software simulator and a hardware simulator as one application and provide an interface for each process to link them.
JP 2002-244883 A JP 2001-1555047 A Japanese Patent Laid-Open No. 2001-290860 JP-A-10-74214 Japanese Patent Laid-Open No. 10-91480

近年、ソフトウェアの規模が大きくなってきており、シミュレーションでソフトウェアのデバッグを行ったりする際にはそのシミュレーション実行速度が非常に重要であり、それをいかに高速にするかが課題である。   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 software 2801 and hardware 2802 are connected as shown in FIG. 28 and modules M1 to M7 are connected in the hardware 2802 as shown in FIG. M1, M2, M3, M6, and M7 are modules that may change the value of the module, and the modules of M4 and M5 do not affect the operation of the software. Therefore, from the viewpoint of debugging software when simulating the hardware 2802, if the modules M4 and M5 which are useless are not simulated, the overall simulation execution speed is improved accordingly.

図1の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。ハードウェア要素不活性化指定部105はハードウェア要素不活性化箇所情報106を読み込んでハードウェア記述部104に対してどの部分のシミュレーションを抑制するかを伝えるものである。ここで、ハードウェア要素とは信号線や回路のノードと呼ばれるものを指すことが多いが、場合によってはモジュールや関数もハードウェア要素として扱う。また、ここで活性化とは信号線や回路のノードが操作されてその状態が変化することを指す。   The debug software execution unit 103 in FIG. 1 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the executable hardware description unit 104 operate in cooperation to enable simulation combining software and hardware. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation. The hardware element inactivation specifying unit 105 reads the hardware element inactivation location information 106 and tells the hardware description unit 104 which part of the simulation is to be suppressed. Here, the hardware element often refers to what is called a signal line or a node of a circuit, but in some cases, a module or a function is also handled as a hardware element. Here, activation means that a state of the signal line or a circuit node is changed by operation.

次に、実施の形態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 hardware description unit 104. In hardware simulation, processing for setting signal values for signal lines and circuit nodes is frequently performed. In the case of a compiled executable hardware description section, a signal setting function is called to set a signal value from the hardware description. Therefore, the process of S402 is performed at the head of the function to set the signal value. To determine whether or not The inhibition signal name list 2901 is a data string set by the hardware element deactivation designation unit 105. Since the simulation is performed while responding to the signal change in the hardware simulator, the simulation can be suppressed by controlling the signal change with or without setting the signal value.

同様に、シミュレータによってはハードウェアの並列性を実現するために、モジュール関数をスレッド化して時分割的に実行する場合があり、そのモジュール関数単位でシミュレーションを抑止することも有効である。そこで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 module name list 2903 is a data string set by the hardware element inactivation specifying unit 105.

図30はハードウェア要素不活性化箇所情報106の例である。不活性化させたい信号名やノード名、モジュール関数名を指定するものである。また、ハードウェア記述のソースコードの行単位で指定することもできるが、この場合、ハードウェア要素不活性化指定部105は実行可能なハードウェア記述部104のシンボル情報を用いてどの処理を不活性するかを特定し、かつ、実行可能なハードウェア記述部104において、行単位でシミュレーションを制御できるようなコードにあらかじめコンパイルする。   FIG. 30 shows an example of the hardware element inactivation location information 106. The signal name, node name, and module function name to be deactivated are designated. In addition, the hardware element deactivation designation unit 105 can specify which process using the symbol information of the executable hardware description unit 104 in this case. In the executable hardware description unit 104, the code is compiled in advance so that the simulation can be controlled line by line.

ハードウェア要素不活性化箇所情報106はテキストデータで開発者が記述すればよいが、設定用GUIを通じてハードウェア要素不活性化箇所を指定し、その情報をバイナリ形式で保存したりしてもよい。   The hardware element inactivation location information 106 may be described by the developer as text data. However, the hardware element inactivation location may be specified through the setting GUI, and the information may be stored in binary format. .

ハードウェア要素不活性化指定部105はハードウェア要素不活性化箇所情報106から実行可能なハードウェア記述部104のAPIを通じて抑止信号名リスト2901や抑止モジュール名リスト2903を設定する。   The hardware element inactivation specifying unit 105 sets the suppression signal name list 2901 and the suppression module name list 2903 through the API of the hardware description unit 104 that can be executed from the hardware element inactivation location information 106.

(実施の形態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 hardware description unit 104 in FIG. 1 is the hardware description execution unit 202 in FIG. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be adopted, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

ハードウェア記述201の中の被デバッグソフトウェア102のデバッグに不要な部分のシミュレーションを抑制することによってシミュレーションの高速化を図り、ソフトウェアのデバッグを効率よく行うことが可能となる。   By suppressing the simulation of the portion of the hardware description 201 that is not necessary for debugging the software 102 to be debugged, the simulation can be speeded up and the software can be debugged efficiently.

(実施の形態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 software 3101 is accessing hardware 3102 as shown in FIG. 31 is simulated. Here, description will be made on the assumption that there are nodes N1 to N16 in the circuit of the hardware 3102. In addition, the output side and the input side are indicated by the directions of the arrows. It is assumed that the software 3101 performs a node setting operation on N1, and acquires the node state as data from the node N16. The node 14 is an external terminal of the LSI, and the external terminal is operated by N15. The debugging of software requires an appropriate reaction of the node N16, and the node N16 may change depending on the access to the node N1 from the software. Therefore, simulation of the path from N1 to N16 becomes important. On the other hand, the simulation of the nodes such as N6, N7, N8, N11, and N12 is not related to software debugging, and thus the simulation may be omitted.

図3の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。   The debug software execution unit 103 in FIG. 3 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the executable hardware description unit 104 operate in cooperation to enable simulation combining software and hardware. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

ハードウェア記述構造情報301はハードウェア記述部104で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述部104のソースコードを構文解析して得たり、あるいはハードウェア記述部104の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。   The hardware description structure information 301 expresses the relationship between the hardware elements represented by the hardware description unit 104, and is obtained by parsing the source code of the hardware description unit 104, or the hardware description If there is a part for acquiring the association between hardware elements in the part 104, the information is obtained by extracting from the part.

必須ハードウェア要素リスト303は図31の中のノードN1やN16、N14のようなハードウェアの外部インターフェイスとなるハードウェア要素であり、シミュレーションを行う人がそれを指定したり、あるいは、ハードウェア記述部104のソースコードの中にディレクティブと呼ばれるマーキングをつけておき、ツールなどで自動的にそれを収集したりして作るものである。   The indispensable hardware element list 303 is a hardware element that becomes an external interface of hardware such as the nodes N1, N16, and N14 in FIG. Marking called a directive is attached to the source code of the section 104, and it is automatically collected by a tool or the like.

不要ハードウェア要素探索部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 element search unit 302 uses the hardware description structure information 301 and the essential hardware element list 303 to specify a part unnecessary for the simulation. 32 and 33 show the processing flow. FIG. 32 is a schematic flow of unnecessary hardware element search processing. First, in S501, a path and a hardware element inside a hardware circuit effective for software debugging are searched. In step S502, other hardware elements are set as elements that do not require simulation. S600 in FIG. 33 is a flow for searching for an effective path. In the essential hardware element list 303, essential input hardware elements such as nodes N1 and N14 in FIG. 31 and essential output hardware elements such as node N16 are recorded as a list. In S600, the processing is performed on the essential output hardware elements. In step S602, the essential output hardware element extracted from the essential hardware element list 303 is set as a base element, and in step S603, the input hardware element is searched. S604 is a flow for searching for an essential input hardware element from the base point element. In this flow, elements that are output with respect to the base element are traced back to search for essential input hardware elements. If the required input hardware element is found, the hardware element on the previous path is valid, and the hardware elements before that are recorded as valid elements. This information is transmitted to the hardware element deactivation designation unit 105 in FIG. 3, and the hardware element deactivation designation unit 105 suppresses the simulation through the API of the hardware description unit 104 to increase the simulation speed. . The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the first embodiment.

(実施の形態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 software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the hardware description execution unit 202 operate in cooperation to enable simulation combining software and hardware. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

ハードウェア記述構造情報301は、実施の形態3と同様にハードウェア記述201で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述201のソースコードを構文解析して得たり、あるいはハードウェア記述201の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。   The hardware description structure information 301 expresses the relationship between the hardware elements represented by the hardware description 201 as in the third embodiment, and is obtained by parsing the source code of the hardware description 201. Or, if there is a part that acquires the relationship between hardware elements in the hardware description 201, the information is obtained by extracting from there.

不要ハードウェア要素探索部302は、実施の形態3と同様にハードウェア記述構造情報301や必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。この情報をハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述実行部202のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は、実施の形態2のハードウェア要素不活性化指定部105と同様のものである。   The unnecessary hardware element search unit 302 specifies a part unnecessary for the simulation using the hardware description structure information 301 and the essential hardware element list 303 as in the third embodiment. This information is transmitted to the hardware element deactivation designation unit 105, and the hardware element deactivation designation unit 105 suppresses the simulation through the API of the hardware description execution unit 202, thereby increasing the simulation speed. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the second embodiment.

(実施の形態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 software 3401 is accessing hardware 3402 as shown in FIG. 34 is simulated. Here, description will be made on the assumption that there are nodes N1 to N16 in the circuit of the hardware 3402. Further, the output side and the input side are indicated by the directions of the arrows. The software 3401 performs a node setting operation on N1, and acquires the node state as data from the node N16. The node 14 is an external terminal of the LSI, and the external terminal is operated by N15. The debugging of the software requires an appropriate reaction of the node N16, and the node N16 may change depending on the access to the node N1 from the software. Therefore, simulation of the path from N1 to N16 becomes important. On the other hand, since the simulation of the nodes such as N6 and N12 is not related to software debugging, the simulation may be omitted. In the third embodiment, since N10 is also a node outputting to N16, it is determined as a necessary hardware element. However, if N10 has never changed due to some factor in the past simulation process Therefore, it can be determined that the simulation of the N9 node connected thereto is also unnecessary for software debugging. In this way, it is possible to increase the simulation speed by performing a simulation once, finding more unnecessary hardware elements than the third embodiment from the results, and suppressing them in the next simulation.

図5の被デバッグソフトウェア実行部103は被デバッグソフトウェア102を読み込んでそれを実行する。被デバッグソフトウェア実行部103はマイコンの命令をひとつひとつ実行する命令セットシミュレーションISSであってもよいし、あるいは、被デバッグソフトウェア102を中間言語に変換したものを実行するタイプのものでもよい。被デバッグソフトウェア実行部103と実行可能なハードウェア記述部104は連携して動作してソフトウェアとハードウェアを合わせたシミュレーションが可能になっている。実行可能なハードウェア記述部104は、C言語やC++言語などのプログラム言語、あるいは、SystemCやSpecCなどのシステム記述言語、あるいは、VHDLやVerilogHDLなどのハードウェア記述言語を用いてハードウェアの動作を記述したソースコードをパソコンやワークステーションなどのホストコンピュータ上で実行できるようにコンパイルしたものである。   The debug software execution unit 103 in FIG. 5 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the executable hardware description unit 104 operate in cooperation to enable simulation combining software and hardware. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

ハードウェア要素活性状態取得部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 state acquisition unit 501 records the hardware element activation state in the hardware element activation history record 502 in response to the state setting call from the hardware description unit 104. Here, the activation means that the state of the signal line or the circuit node is changed and the state thereof changes, and the active state means the state where they have changed. FIG. 35 shows a part for calling the hardware element active state acquisition unit 501 in the hardware description unit 104. Since the hardware description unit 104 simulates hardware, a value is set for a signal line in the circuit, or a module function is called to make the circuit appear to operate in parallel. . The hardware element active state acquisition unit 501 is called in S702 and S705 immediately after these processes S701 and S704. FIG. 36 shows the processing flow of the hardware element activation state setting process of the hardware element activation state acquisition unit 501. Since the hardware element activation history record 502 records whether or not each hardware element in the hardware description unit 104 has been operated even once, the hardware element activation state acquisition unit 501 performs the determination, The state is recorded in the hardware element activation history record 502 only at the first operation. FIG. 37 shows an example of the hardware element activation history record 502. This is for the case of C language union type data. One data includes an activation data type and an activation data name, and the format of the activation data name changes according to the contents of the activation data type. Actually, in order to improve the searchability of data, the way of holding data becomes more complicated, such as using a hash table.

ハードウェア記述構造情報301は、実施の形態3と同様にハードウェア記述部104で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述部104のソースコードを構文解析して得たり、あるいはハードウェア記述部104の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。   The hardware description structure information 301 represents the relationship between the hardware elements represented by the hardware description unit 104 as in the third embodiment, and the source code of the hardware description unit 104 is parsed. Or information obtained by extracting from the hardware description part 104 if there is a part that acquires the relationship between hardware elements.

必須ハードウェア要素リスト303は、実施の形態3と同様に図34の中のノードN1やN16、N14のようなハードウェアの外部インターフェイスとなるハードウェア要素であり、シミュレーションを行う人がそれを指定したり、あるいは、ハードウェア記述部104のソースコードの中にディレクティブと呼ばれるマーキングをつけておき、ツールなどで自動的にそれを収集したりして作るものである。   The essential hardware element list 303 is a hardware element that is an external interface of hardware such as the nodes N1, N16, and N14 in FIG. Alternatively, markings called directives are attached to the source code of the hardware description unit 104, and these are automatically collected by a tool or the like.

不要ハードウェア要素探索部503はハードウェア記述構造情報301や必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。実施の形態3の不要ハードウェア要素探索部302と同様のフローであるが、ハードウェア要素活性化履歴記録502を反映させるために基点要素から必須入力ハードウェア要素を探索するフローが若干変更されている。図38にそのフローを示す。S906の処理によって活性化された記録のないハードウェア要素の場合、次の接続を探索する。   The unnecessary hardware element search unit 503 uses the hardware description structure information 301 and the essential hardware element list 303 to specify a part unnecessary for the simulation. Although the flow is the same as that of the unnecessary hardware element search unit 302 of the third embodiment, the flow for searching for the essential input hardware element from the base point element to reflect the hardware element activation history record 502 is slightly changed. Yes. FIG. 38 shows the flow. In the case of a hardware element without a record activated by the processing of S906, the next connection is searched.

探索された不要ハードウェア要素の情報を図5のハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述部104のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は、実施の形態1のハードウェア要素不活性化指定部105と同様のものである。   Information of the searched unnecessary hardware element is transmitted to the hardware element deactivation designation unit 105 in FIG. 5, and the hardware element deactivation designation unit 105 suppresses the simulation through the API of the hardware description unit 104, Increase the simulation speed. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the first embodiment.

(実施の形態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 software execution unit 103 in FIG. 6 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the hardware description execution unit 202 operate in cooperation to enable simulation combining software and hardware. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

さらに、ハードウェア記述実行部202はハードウェアをシミュレーションするものであるため、実施の形態5のハードウェア記述部104と同様に図35のように、回路内の信号線に対して値を設定したり、回路を見かけ上平行して動作させるなどのためにモジュール関数などを呼び出したりする。それらの処理S701やS704の直後のS702やS705でハードウェア要素活性状態取得部501を呼び出す。このハードウェア記述実行部202からの状態設定呼び出しに応じてハードウェア要素活性状態取得部501は、実施の形態5と同様にハードウェア要素活性状態をハードウェア要素活性化履歴記録502に記録する。   Furthermore, since the hardware description execution unit 202 simulates hardware, values are set for signal lines in the circuit as in the hardware description unit 104 of the fifth embodiment as shown in FIG. Or call a module function to make the circuit seem to operate in parallel. The hardware element active state acquisition unit 501 is called in S702 and S705 immediately after these processes S701 and S704. In response to the state setting call from the hardware description execution unit 202, the hardware element activation state acquisition unit 501 records the hardware element activation state in the hardware element activation history record 502 as in the fifth embodiment.

ハードウェア記述構造情報301は、実施の形態5と同様にハードウェア記述201で表されているハードウェア要素間の関連を表現したものであり、ハードウェア記述201のソースコードを構文解析して得たり、あるいはハードウェア記述201の中にハードウェア要素間の関連を取得する部分があれば、そこから抽出したりして得た情報である。   The hardware description structure information 301 expresses the relationship between the hardware elements represented by the hardware description 201 as in the fifth embodiment, and is obtained by parsing the source code of the hardware description 201. Or, if there is a part that acquires the relationship between hardware elements in the hardware description 201, the information is obtained by extracting from there.

不要ハードウェア要素探索部503は、実施の形態5と同様にハードウェア要素活性化履歴記録部502やハードウェア記述構造情報301、必須ハードウェア要素リスト303を使ってシミュレーションに不要な部分を特定する。この情報をハードウェア要素不活性化指定部105に伝え、ハードウェア要素不活性化指定部105はハードウェア記述実行部202のAPIを介してシミュレーションを抑制し、シミュレーション速度の高速化を図る。ハードウェア要素不活性化指定部105は、実施の形態2のハードウェア要素不活性化指定部105と同様のものである。   The unnecessary hardware element search unit 503 specifies a part unnecessary for the simulation by using the hardware element activation history recording unit 502, the hardware description structure information 301, and the essential hardware element list 303 as in the fifth embodiment. . This information is transmitted to the hardware element deactivation designation unit 105, and the hardware element deactivation designation unit 105 suppresses the simulation through the API of the hardware description execution unit 202, thereby increasing the simulation speed. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the second embodiment.

(実施の形態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 software execution unit 103 in FIG. 7 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the executable hardware description unit 104 operate in cooperation to enable simulation combining software and hardware. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

シミュレーション条件判定はハードウェア要素の変化のタイミングで行うため、ハードウェア記述部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 hardware description unit 104 uses the API of the hardware element state acquisition unit 701 when operating a signal or calling a module function as shown in FIG. call. The hardware element state acquisition unit 701 calls the simulation condition determination unit 702 in response to a state setting call from the hardware description unit 104 and acquires information necessary for condition determination from the hardware description unit 104. Conditions used for simulation condition determination are prepared in the simulation condition recording unit 703. FIG. 40 shows an example of the simulation condition recording unit 703. When the simulation condition recording unit 703 is recorded in a form that can be understood by humans, the signal name and the node name may be described by alphanumeric characters such as symbols. The description symbol information 704 is used to solve which part of the actual circuit.

ハードウェア要素状態取得部701に呼び出されたシミュレーション条件判定部702はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は、実施の形態1のハードウェア要素不活性化指定部105と同様のものである。   The simulation condition determination unit 702 called by the hardware element state acquisition unit 701 determines whether the conditions of the simulation condition recording unit 703 are satisfied, and suppresses the simulation in the hardware element or cancels the suppression. The information is transmitted to the hardware element deactivation designation unit 105. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the first embodiment.

この実施の形態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 condition recording unit 703 in FIG. 40 indicates the type of data stored in the next condition data. For example, if the condition type is “signal state”, it indicates that “signal name + comparison value” is stored in the condition data. “Signal name + comparison value” is “Signal A”, “1”, and so on. If the condition type is “signal change”, it indicates that “signal name + change type” is stored. “Signal name + change type” is “SignalB”, “0”, etc. In this case, the number 0 indicates a change from high level to low level, and if the number is 1, the change from low level to high level Indicates. Similarly, the inactivation element type indicates the type of the next inactivation element name. If the inactivation element type is “signal”, the signal name is stored in the inactivation element name. If the inactivation element type is “module function”, the module function name is stored. Such data retention is realized by a union which is one of the functions of the programming language.

次に判定の方法を説明すると、たとえば、条件タイプデータが「信号状態」で条件データに“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 state acquisition unit 701 acquires the state of SignalA and designates the hardware element inactivation so as to suppress the simulation of SignalB during the period when it is “1”. Call the unit 105. More specifically, the hardware element state acquisition unit 701 acquires in advance what kind of conditions to determine, and if there is a change in, for example, “Signal A”, the simulation condition determination unit 702 is determined. Call with signal name and status. Incidentally, the processing time can be shortened by calling using an ID given in advance instead of the signal name. The called simulation condition determination unit 702 determines whether or not the specified condition is satisfied by comparing with the contents of the simulation condition recording unit 703. If it is determined that the specified condition is met, the hardware condition is not detected. For example, the activation designation unit 105 is instructed to stop the simulation of the signal “SignalB”.

(実施の形態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 software execution unit 103 in FIG. 8 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the hardware description execution unit 202 operate in cooperation to enable simulation combining software and hardware. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

シミュレーション条件判定はハードウェア要素の変化のタイミングで行うため、ハードウェア記述実行部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 description execution unit 202 performs the API of the hardware element state acquisition unit 701 when operating a signal or calling a module function as shown in FIG. Call. The hardware element state acquisition unit 701 calls the simulation condition determination unit 702 in response to a state setting call from the hardware description unit 104 and acquires information necessary for condition determination from the hardware description execution unit 202. Conditions used for simulation condition determination are prepared in the simulation condition recording unit 703. FIG. 40 shows an example of the simulation condition recording unit 703. When the simulation condition recording unit 703 is recorded in a form that can be understood by humans, the signal name and the node name may be described by alphanumeric characters such as symbols. Necessary information is acquired from the description execution unit 202 or the like, and a solution to which part of the actual circuit is obtained is attempted.

ハードウェア要素状態取得部701に呼び出されたシミュレーション条件判定部702はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は実施の形態2のハードウェア要素不活性化指定部105と同様のものである。   The simulation condition determination unit 702 called by the hardware element state acquisition unit 701 determines whether the conditions of the simulation condition recording unit 703 are satisfied, and suppresses the simulation in the hardware element or cancels the suppression. The information is transmitted to the hardware element deactivation designation unit 105. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the second embodiment.

(実施の形態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 software execution unit 103 in FIG. 9 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the executable hardware description unit 104 operate in cooperation to enable simulation combining software and hardware. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

被デバッグソフトウェア実行部103は仮想的なマイコンのメモリアクセスやレジスタアクセスのタイミングなどでソフトウェア実行状態取得部901を呼び出す。ソフトウェア実行状態取得部901はシミュレーション条件判定部902が必要とするデータを被デバッグソフトウェア実行部103から取得する。シミュレーション条件記録部703が人間に理解できるような形態で記録されている場合、変数名などがシンボルという英数字で表現されていることがあるので、ソフトウェア実行状態取得部901は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してソフトウェアの中のどの変数を指すのかの解決を図る。   The debugged software execution unit 103 calls the software execution state acquisition unit 901 at the timing of virtual microcomputer memory access or register access. The software execution state acquisition unit 901 acquires data required by the simulation condition determination unit 902 from the debugged software execution unit 103. When the simulation condition recording unit 703 is recorded in a form that can be understood by humans, a variable name or the like may be expressed by an alphanumeric character such as a symbol. Necessary information such as information about symbols is obtained from 103 and the like, and a solution to which variable in the software is pointed out is attempted.

ソフトウェア実行状態取得部901に呼び出されたシミュレーション条件判定部902はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は、実施の形態1のハードウェア要素不活性化指定部105と同様のものである。   The simulation condition determination unit 902 called by the software execution state acquisition unit 901 determines whether the conditions of the simulation condition recording unit 703 are satisfied, and suppresses the simulation or cancels the suppression among the hardware elements. Is transmitted to the hardware element deactivation designation unit 105. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the first embodiment.

この実施の形態9についてさらに詳しく説明する。シミュレーション条件記録部703の内部は実施の形態7とほぼ同じであるが、図40の例と異なる箇所としては、条件タイプデータの“信号状態”や“信号変化”、“モジュール実行”が、条件データの“信号名+比較値”や“信号名+変化のタイプ”、“モジュール名”がなくなり、そのかわりにたとえば条件タイプデータとして“変数状態”や“データアクセス”、“関数呼び出し”が、条件データとして“変数名+比較値”や“開始アドレス+終了アドレス”、“関数名"などが加わる。   The ninth embodiment will be described in more detail. The inside of the simulation condition recording unit 703 is almost the same as that of the seventh embodiment. However, different from the example of FIG. 40, the condition type data “signal state”, “signal change”, and “module execution” “Signal name + comparison value”, “Signal name + change type” and “module name” of data disappear, and instead, for example, “variable status”, “data access”, “function call” as condition type data, As condition data, “variable name + comparison value”, “start address + end address”, “function name”, and the like are added.

また、ソフトウェア実行状態取得部901は、条件タイプが“変数状態"ならば、その変数の格納箇所や変数のサイズをデバッグ情報などで解決し、被デバッグソフトウェア実行部103がそのアドレスにアクセスしたときに、アクセスしたデータ内容を取得し、それをシミュレーション条件判定部902へ変数名と共に渡します。条件タイプが”関数名“ならば、被デバッグソフトウェア実行部103が関数をアクセスしたときにアクセスした関数名をシミュレーション条件判定部902へ渡します。なお、関数名のやりとりを行うかわりにあらかじめ定めたIDでやり取りした方が処理速度を向上させることができる。シミュレーション条件判定部902は渡された情報やシミュレーション条件記録部703の内容をもとに判定を行い、不活性化要素タイプや不活性化要素名を使ってハードウェア要素不活性化指定部105に不活性化したい箇所の情報を渡す。   If the condition type is “variable state”, the software execution state acquisition unit 901 resolves the storage location of the variable and the size of the variable with debug information, and the debugged software execution unit 103 accesses the address. The acquired data contents are acquired and passed to the simulation condition judgment unit 902 together with the variable name. If the condition type is “function name”, the function name accessed when the debugged software execution unit 103 accesses the function is passed to the simulation condition determination unit 902. Note that the processing speed can be improved by exchanging with a predetermined ID instead of exchanging function names. The simulation condition determination unit 902 performs determination based on the received information and the contents of the simulation condition recording unit 703, and uses the deactivation element type and deactivation element name to the hardware element deactivation designation unit 105. Pass the information of the part you want to deactivate.

(実施の形態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 software execution unit 103 in FIG. 10 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The debugged software execution unit 103 and the hardware description execution unit 202 operate in cooperation to enable simulation combining software and hardware. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

被デバッグソフトウェア実行部103は仮想的なマイコンのメモリアクセスやレジスタアクセスのタイミングなどでソフトウェア実行状態取得部901を呼び出す。ソフトウェア実行状態取得部901はシミュレーション条件判定部902が必要とするデータを被デバッグソフトウェア実行部103から取得する。シミュレーション条件記録部703が人間に理解できるような形態で記録されている場合、変数などがシンボルという英数字で表現されていることがあるので、ソフトウェア実行状態取得部901は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してソフトウェアの中のどれを指すのかの解決を図る。   The debugged software execution unit 103 calls the software execution state acquisition unit 901 at the timing of virtual microcomputer memory access or register access. The software execution state acquisition unit 901 acquires data required by the simulation condition determination unit 902 from the debugged software execution unit 103. When the simulation condition recording unit 703 is recorded in a form that can be understood by humans, since the variable or the like may be expressed by alphanumeric characters such as symbols, the software execution state acquisition unit 901 includes the debugged software execution unit 103. The necessary information such as the symbol information is obtained from the software, etc., and the software is pointed out.

ソフトウェア実行状態取得部901に呼び出されたシミュレーション条件判定部902はシミュレーション条件記録部703の条件を満たしているかどうか判断し、ハードウェア要素の中でシミュレーションを抑止したり、抑止を解除したりするものをハードウェア要素不活性化指定部105に伝える。ハードウェア要素不活性化指定部105は、実施の形態2のハードウェア要素不活性化指定部105と同様のものである。   The simulation condition determination unit 902 called by the software execution state acquisition unit 901 determines whether the conditions of the simulation condition recording unit 703 are satisfied, and suppresses the simulation or cancels the suppression among the hardware elements. Is transmitted to the hardware element deactivation designation unit 105. The hardware element deactivation designation unit 105 is the same as the hardware element deactivation designation unit 105 of the second embodiment.

(実施の形態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 software execution unit 103 in FIG. 11 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はアクセス制御アドレス記録部1103からアクセスを許可したり不許可にしたりする条件を取得し、図42のようなフローで判定を行う。図41がアクセス制御アドレス記録部1103のデータの例である。アクセス制御アドレス記録部1103が人間に理解できるような形態で記録されている場合、アドレス値などをシンボルという英数字で表現することがあるので、条件判定部1102は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してそのシンボルが具体的にどのような数値になるのかの解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101で図43のようなフローで実行可能なハードウェア記述部104のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。   The debugged software execution unit 103 calls the condition determination unit 1102 when operating a register in the hardware. The condition determination unit 1102 obtains conditions for permitting or denying access from the access control address recording unit 1103, and performs determination according to the flow as shown in FIG. FIG. 41 shows an example of data in the access control address recording unit 1103. When the access control address recording unit 1103 is recorded in a form that can be understood by humans, an address value or the like may be expressed by an alphanumeric character such as a symbol. Necessary information such as information on the symbol is acquired and a numerical value of the symbol is specifically solved. When access permission is determined by the condition determination unit 1102, the access control unit 1101 accesses the hardware by operating the address bus signal, data bus signal, etc. of the hardware description unit 104 that can be executed in the flow as shown in FIG. To do.

もう少し詳しく説明する。たとえば、アクセス制御アドレス記録部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 address recording unit 1103 describes address 100 as start address data, address 200 as end address data, write as an access type, and non-permission as a control method. When the unit 103 tries to access the hardware description unit 104, for example, when writing data at address 110, the address is transmitted to the condition determining unit 1102, and the condition determining unit 1102 receives the access control address recording unit 1103. It is judged whether the condition is satisfied in light of the contents of. In the above example, since the condition is satisfied, the condition determination unit 1102 notifies the access control unit 1101 of the disapproval, and the access control unit 1101 receives this and ignores the access to the address 110, and sends it to the hardware description unit 104. Do not access.

(実施の形態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 software execution unit 103 in FIG. 12 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. Similarly, the hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is first converted into an intermediate language and then the intermediate language is executed. However, a just-in-time compiler method that partially compiles at the time of execution may be adopted, or hardware description contents may be converted into data that can be easily executed by the simulator and executed while referring to the data. .

被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はアクセス制御アドレス記録部1103からアクセスを許可したり不許可にしたりする条件を取得し、図42のようなフローで判定を行う。図41がアクセス制御アドレス記録部1103のデータの例である。アクセス制御アドレス記録部1103が人間に理解できるような形態で記録されている場合、アドレス値などがシンボルという英数字で表現されることがあるので、条件判定部1102は被デバッグソフトウェア実行部103などからシンボルに関する情報などの必要な情報を取得してシンボルが具体的にどのような数値になるのかの解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101で図43のようなフローで実行可能なハードウェア記述実行部202のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。   The debugged software execution unit 103 calls the condition determination unit 1102 when operating a register in the hardware. The condition determination unit 1102 obtains conditions for permitting or denying access from the access control address recording unit 1103, and performs determination according to the flow as shown in FIG. FIG. 41 shows an example of data in the access control address recording unit 1103. When the access control address recording unit 1103 is recorded in a form that can be understood by humans, an address value or the like may be expressed by an alphanumeric character such as a symbol. The necessary information such as information on the symbol is obtained from the above, and the numerical value of the symbol is specifically solved. When access permission is determined by the condition determination unit 1102, the access control unit 1101 operates the address bus signal, data bus signal, and the like of the hardware description execution unit 202 that can be executed according to the flow shown in FIG. to access.

(実施の形態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 hardware description 1301 in FIG. 13 is the original description, and a hardware description 1306 capable of high-speed simulation is generated through the hardware description conversion program 1302. The hardware description conversion program 1302 includes a periodic circuit extraction unit 1303 that extracts a periodic circuit in the hardware description 1301, and a periodic circuit parameter calculation unit 1304 that calculates a period time of the periodic circuit after extracting the periodic circuit. is there. After these processes, the contents of the hardware description 1301 are modified by the periodic circuit conversion unit 1305 to create a hardware description 1306.

図45に周期回路抽出部1303でのカウンタ回路探索処理を示す。カウンタの場合、回路要素に対して加算する箇所があるので、それを含むモジュールを探索する。カウンタを含むモジュールが発見できたならば、一般にカウンタ回路にはクリアなどの初期化処理も含まれているので、その処理も抽出する。また、カウンタの周期を後で算出するためにカウンタクロックの信号名も抽出する。カウンタの動作をONしたりOFFしたりする機能があればその条件式も抽出する。   FIG. 45 shows counter circuit search processing in the periodic circuit extraction unit 1303. In the case of a counter, since there is a place to be added to a circuit element, a module including it is searched. If a module including a counter can be found, the counter circuit generally includes an initialization process such as clearing, so that process is also extracted. Also, the counter clock signal name is extracted in order to calculate the counter cycle later. If there is a function for turning the counter operation ON or OFF, the conditional expression is also extracted.

図46に周期回路抽出部1303の中の周期信号探索処理のフローを示す。一般に、周期的な動作をする信号はカウンタ値の一定の数値で反応するように記述されていることが多いため、カウンタ値と比較処理をしている部分を抽出する。   FIG. 46 shows a flow of periodic signal search processing in the periodic circuit extraction unit 1303. In general, a signal that performs a periodic operation is often described so as to react with a constant value of the counter value. Therefore, a portion that is compared with the counter value is extracted.

図47に周期回路パラメータ算出部1304のフローを示す。カウンタクロックの周期やカウンタのビット幅からカウンタの周期を求める。カウンタ値の比較値から周期信号の周期を求める。   FIG. 47 shows a flow of the periodic circuit parameter calculation unit 1304. The counter period is obtained from the counter clock period and the counter bit width. The period of the periodic signal is obtained from the comparison value of the counter value.

図48に周期回路変換部1305の周期回路変換処理のフローを示す。最初にハードウェア記述1301の中のカウンタ回路の式やモジュールを削除し、さらに、周期信号を作っている式も削除する。その後で、元の回路記述と同じ仕様の周期信号が得られるように代わりの式とそれを含むモジュールを作って挿入する。   FIG. 48 shows a flow of periodic circuit conversion processing of the periodic circuit conversion unit 1305. First, the expression and module of the counter circuit in the hardware description 1301 are deleted, and further, the expression making the periodic signal is also deleted. After that, an alternative expression and a module containing it are created and inserted so that a periodic signal with the same specifications as the original circuit description is obtained.

(実施の形態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 circuit extraction unit 1401 and the periodic circuit parameter calculation unit 1402 in FIG. 14 are the same as those in the thirteenth embodiment. Information obtained by these is transferred to the hardware description execution unit 1303. The hardware description execution unit 1303 analyzes and executes the hardware description 201. However, when trying to execute the extracted periodic circuit, the execution of the description is stopped and a change of the periodic signal is caused instead. Like that. Generally, a hardware description execution unit has a mechanism for registering a change in a signal that will occur in the future as an event reservation, and this is used to realize the movement of a periodic signal. Accordingly, the same effect can be obtained by a simple simulation process without simulating the counter circuit with the original description, and the simulation speed can be increased.

(実施の形態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 hardware description 1301 in FIG. 15 is the original description, and a modified hardware description 1306 that can be simulated at high speed is generated via the hardware description conversion program 1302. The hardware description conversion program 1302 includes a combinational circuit extraction unit 1501 that extracts a combinational circuit in the hardware description 1301, and a combinational circuit parameter calculation unit 1502 that calculates a delay time of the combinational circuit after extracting the combinational circuit. is there. After these processes, the combinational circuit converter 1503 modifies the contents of the hardware description 1301 to create a hardware description 1306.

図50に組合せ回路抽出部1501での組合せ回路探索フローを示す。すべてのモジュールを探索し、代入文を抽出してゆく。   FIG. 50 shows a combinational circuit search flow in the combinational circuit extraction unit 1501. Search all modules and extract assignment statements.

図51に組合せ回路パラメータ算出部1502の中の組合せ回路パラメータ算出処理のフローを示す。組合せ回路抽出部1501で得られた代入文をスコープに注意しながら右辺を展開してゆく。展開の際に最大遅延時間を求めながら処理する。展開の最後に代入文の最大遅延時間を記録する。   FIG. 51 shows a flow of combination circuit parameter calculation processing in the combination circuit parameter calculation unit 1502. The assignment statement obtained by the combinational circuit extraction unit 1501 is expanded on the right side while paying attention to the scope. Process while finding the maximum delay time during deployment. Record the maximum delay of assignment statements at the end of expansion.

図52に組合せ回路変換部1503の組合せ回路変換処理のフローを示す。最初にハードウェア記述1301の中の組合せ回路の代入文を削除する。その後で、遅延時間のついた展開後の代入文を挿入する。   FIG. 52 shows a flow of combinational circuit conversion processing of the combinational circuit conversion unit 1503. First, the assignment statement of the combinational circuit in the hardware description 1301 is deleted. After that, an expanded assignment statement with a delay time is inserted.

(実施の形態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 circuit extraction unit 1501 and combinational circuit parameter calculation unit 1502 in FIG. 16 are the same as those in the fifteenth embodiment. Information obtained by these is transferred to the hardware description execution unit 1603. The hardware description executing unit 1603 executes the analysis after analyzing the hardware description 201. When attempting to execute the extracted combinational circuit, the hardware description execution unit 1603 stops executing the description and instead uses a simplified combinational circuit. Make it run. In general, the hardware description execution unit has a mechanism for registering a change in a signal that will occur in the future as an event reservation, and the motion of the signal substituted by the combinational circuit is realized using this mechanism. As a result, almost the same effect can be obtained by a simple simulation process without performing the simulation with the original description, and the simulation speed can be increased.

(実施の形態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 software execution unit 103 in FIG. 17 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

被デバッグソフトウェア実行部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 software execution unit 103 calls the condition determination unit 1102 when operating a register in the hardware. The condition determination unit 1102 acquires conditions for permitting or disabling access to the hardware bus from the hardware element operation information recording unit 1701, and performs determination according to the flow shown in FIG. FIG. 54 shows an example of data stored in the hardware element operation information recording unit 1701, which includes bus access conditions used for determination, information on hardware element operations performed instead of hardware bus access, and the like. It is. When the data content of the hardware element operation information recording unit 1701 is recorded in a form that can be understood by humans, the address value may be expressed by an alphanumeric character such as a symbol. Necessary information such as information related to symbols is acquired from the execution unit 103 or the symbol information 1703 of the software to be debugged, and so on, to solve the specific value of the symbol. When access permission is determined by the condition determination unit 1102, the access control unit 1101 accesses the hardware by operating the address bus signal and data bus signal of the hardware description unit 104 that can be executed in the flow as shown in FIG. To do. On the other hand, when access denial is determined by the condition determination unit 1102, the hardware element operation unit 1702 replaces the hardware bus access with the hardware element operation unit 1702 as shown in FIG. Operate directly using the flow. Which element is to be operated is written in the hardware element operation information recording unit 1701, but when the data content is recorded in a form that can be understood by humans, the signal name and node name are alphanumeric characters such as symbols. The hardware element operation unit 1702 obtains necessary information such as information related to the symbol from the hardware description symbol information 704 obtained when the hardware description 107 is compiled, and the symbol is displayed. Try to solve which part of the circuit.

もう少し詳しく説明する。たとえば、ハードウェア要素操作情報記録部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 information recording unit 1701 is set with address 200 as start address data, write as access type data, Hardware.v as the file name of the node to be operated, and module1.register1 as the node name of the node to be operated If the debugged software execution unit 103 accesses the address 200 to the hardware description unit 104, the condition determination unit 1102 detects it and does not permit the access control unit 1101 to access. To be notified. Further, the data to be written to the hardware element operation unit 1702 at address 200 is set in module1.register1. If the actual hardware description is simulated as it is, many nodes must operate until the data is set in the module1.register1 node from the software side, which requires simulation time. In this method, module1.register1 is directly used. Can be skipped, and the speed is increased accordingly. The hardware element operation information recording unit 1701 is based on the premise that the access size from the software execution unit 103 is the same as the node size, but the association between the access data bit from the software execution unit 103 and the hardware node. The range of use will be widened.

また、ハードウェア要素操作部1702の動作を示す図56では、ハードウェア要素操作情報記録部1701のアクセスタイプがライトのときのフローを示しており、リードのときはS2202の内容に代えて「ハードウェア記述部のAPIを呼び出して指定されたハードウェア要素の値を取得する」という内容になる。アクセスタイプがライトのときのS2202に記載された「指定された値」というのは、条件判定部1102が被デバッグソフトウェア実行部103から受け取ったデータであり、図54のハードウェア要素操作情報記録部1701に示された「操作するノードのノード名」のところに、被デバッグソフトウェア実行部103から受け取ったデータを設定する。アクセスタイプがリードのときはハードウェア要素操作情報記録部1701に示された「操作するノードのノード名」のところからノードの状態を取得し、被デバッグソフトウェア実行部103へその状態をリードデータとして返す。   Also, FIG. 56 showing the operation of the hardware element operation unit 1702 shows a flow when the access type of the hardware element operation information recording unit 1701 is write, and when reading, “hardware” is used instead of the contents of S2202. The value of the specified hardware element is acquired by calling the API of the hardware description part ”. The “specified value” described in S2202 when the access type is write is data received from the debugged software execution unit 103 by the condition determination unit 1102, and the hardware element operation information recording unit in FIG. The data received from the debugged software execution unit 103 is set at “node name of the node to be operated” shown in 1701. When the access type is read, the node state is acquired from the “node name of the node to be operated” indicated in the hardware element operation information recording unit 1701, and the state is read as read data to the debugged software execution unit 103. return.

(実施の形態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 software execution unit 103 in FIG. 18 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

被デバッグソフトウェア実行部103はハードウェア内部のレジスタを操作するなどの際に条件判定部1102を呼び出す。条件判定部1102はハードウェア要素操作情報記録部1701からハードウェアのバスへのアクセスを許可したり不許可にしたりする条件を取得し、判定を行う。ハードウェア要素操作情報記録部1801のデータ内容が人間に理解できるような形態で記録されている場合、条件判定部1102は被デバッグソフトウェア実行部103やあるいは被デバッグソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得して解決を図る。条件判定部1102でアクセス許可が決定された場合、アクセス制御部1101でハードウェア記述実行部202のアドレスバス信号やデータバス信号などを操作してハードウェアへアクセスする。一方、条件判定部1102でアクセス不許可が決定された場合、ハードウェアのバスのアクセスに代わって、ハードウェア要素操作部1802がハードウェア記述実行部202の中のハードウェア要素を直接操作する。どの要素を操作するかはハードウェア要素操作情報記録部1801に書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、ハードウェア要素操作部1802はハードウェア記述実行部202などからシンボルに関する情報などの必要な情報を取得して解決を図る。   The debugged software execution unit 103 calls the condition determination unit 1102 when operating a register in the hardware. The condition determination unit 1102 acquires a condition for permitting or disabling access to the hardware bus from the hardware element operation information recording unit 1701 and performs determination. When the data contents of the hardware element operation information recording unit 1801 are recorded in a form that can be understood by humans, the condition determination unit 1102 relates to symbols from the debugged software execution unit 103 or the symbol information 1703 of the debugged software. Acquire necessary information such as information and try to solve it. When access permission is determined by the condition determination unit 1102, the access control unit 1101 operates the address bus signal or data bus signal of the hardware description execution unit 202 to access the hardware. On the other hand, when access permission is determined by the condition determination unit 1102, the hardware element operation unit 1802 directly operates the hardware element in the hardware description execution unit 202 instead of accessing the hardware bus. Which element is to be operated is written in the hardware element operation information recording unit 1801, but when the data content is recorded in a form that can be understood by humans, the hardware element operation unit 1802 has a hardware description. Necessary information such as information related to symbols is acquired from the execution unit 202 or the like to solve the problem.

(実施の形態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 software execution unit 103 in FIG. 19 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

被デバッグソフトウェア実行部103の中のソフトウェア実行処理のフローは図58のようになっている。通常はS2306のように命令を次々と実行していくが、関数呼び出しの命令がある場合、その関数呼び出しがハードウェア操作用の関数かどうかを判断し、それがハードウェア操作用の関数であれば、その関数呼び出しの際に付加された引数の内容を取得し、図19のハードウェア操作コマンド解析部1901を呼び出す。   The flow of software execution processing in the debugged software execution unit 103 is as shown in FIG. Normally, instructions are executed one after another as in S2306. However, if there is a function call instruction, it is determined whether the function call is a function for hardware operation, and if it is a function for hardware operation. For example, the contents of the argument added at the time of the function call are acquired, and the hardware operation command analysis unit 1901 in FIG. 19 is called.

ハードウェア操作コマンド解析部1901では図59のようなフローで処理を行う。最初に、被デバッグソフトウェア実行部103で得られたハードウェア操作コマンドの文字列からコマンドの種類やそのコマンドのパラメータを分解して取得する。次に、ハードウェア操作コマンド解析部1901は解析したコマンドに応じてハードウェア要素操作部1702を呼び出し、ハードウェア要素操作部1702はハードウェア記述部104の中のハードウェア要素を直接操作する。どの要素を操作するかはハードウェア操作コマンド解析部1901で解析したコマンドパラメータに書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、信号名やノード名などがシンボルで表現されていることがあり、ハードウェア要素操作部1702はハードウェア記述部104をコンパイルした際などに得られるハードウェア記述シンボル情報704などからシンボルに関する情報などの必要な情報を取得してシンボルが回路のどの部分を指すのかの解決を図る。   The hardware operation command analysis unit 1901 performs processing according to the flow shown in FIG. First, from the character string of the hardware operation command obtained by the debugged software execution unit 103, the command type and the parameter of the command are decomposed and obtained. Next, the hardware operation command analysis unit 1901 calls the hardware element operation unit 1702 according to the analyzed command, and the hardware element operation unit 1702 directly operates the hardware element in the hardware description unit 104. The element to be operated is written in the command parameter analyzed by the hardware operation command analysis unit 1901. If the data content is recorded in a form that can be understood by humans, the signal name, node name, etc. The hardware element operation unit 1702 obtains necessary information such as information related to symbols from the hardware description symbol information 704 obtained when the hardware description unit 104 is compiled. To determine which part of the circuit the symbol points to.

(実施の形態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 software execution unit 103 in FIG. 20 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

被デバッグソフトウェア実行部103の中のソフトウェア実行処理のフローは図58のようになっている。通常はS2306のように命令を次々と実行していくが、関数呼び出しの命令がある場合、その関数呼び出しがハードウェア操作用の関数かどうかを判断し、それがハードウェア操作用の関数であれば、その関数呼び出しの際に付加された引数を取得し、図20のハードウェア操作コマンド解析部1901を呼び出す。   The flow of software execution processing in the debugged software execution unit 103 is as shown in FIG. Normally, instructions are executed one after another as in S2306. However, if there is a function call instruction, it is determined whether the function call is a function for hardware operation, and if it is a function for hardware operation. For example, an argument added at the time of the function call is acquired, and the hardware operation command analysis unit 1901 in FIG. 20 is called.

ハードウェア操作コマンド解析部1901では図59のようなフローで処理を行う。最初に、被デバッグソフトウェア実行部103で得られたハードウェア操作コマンドの文字列からコマンドの種類やそのコマンドのパラメータを分解して取得する。次に、ハードウェア操作コマンド解析部1901は解析したコマンドに応じてハードウェア要素操作部1802を呼び出し、ハードウェア要素操作部1802はハードウェア記述部104の中のハードウェア要素を直接操作する。どの要素を操作するかはハードウェア操作コマンド解析部1901で解析したコマンドパラメータに書かれているが、そのデータ内容が人間に理解できるような形態で記録されている場合、信号名やノード名がシンボルという英数字で表現されることがあり、ハードウェア要素操作部1802はハードウェア記述実行部202などからシンボルに関する情報などの必要な情報を取得してシンボルが回路のどの部分を指すのかの解決を図る。   The hardware operation command analysis unit 1901 performs processing according to the flow shown in FIG. First, from the character string of the hardware operation command obtained by the debugged software execution unit 103, the command type and the parameter of the command are decomposed and obtained. Next, the hardware operation command analysis unit 1901 calls the hardware element operation unit 1802 according to the analyzed command, and the hardware element operation unit 1802 directly operates the hardware element in the hardware description unit 104. Which element is operated is written in the command parameter analyzed by the hardware operation command analysis unit 1901. If the data contents are recorded in a form that can be understood by humans, the signal name and node name are The hardware element operation unit 1802 obtains necessary information such as information on the symbol from the hardware description execution unit 202 or the like, and resolves which part of the circuit the symbol indicates. Plan.

(実施の形態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 software execution unit 103 in FIG. 21 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

実行可能なハードウェア記述部104でソフトウェア操作をする関数を呼び出したときに、そのパラメータを伴ってソフトウェア操作コマンド解析部2101を呼び出す。ソフトウェア操作コマンド解析部2101では図61のフローのように、コマンド文字列を解析し、コマンドの種類やパラメータを抽出して被デバッグソフトウェア実行部103を呼び出す。ソフトウェア操作コマンド解析部2101で抽出したコマンドパラメータが人間に理解できるような形態で書かれている場合、変数やアドレス値などがシンボルという英数字で表現されることがあり、被デバッグソフトウェア実行部103は被デバッグソフトウェア102をコンパイルした際などに得られるソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得してシンボルが何を指すのかの解決を図る。   When a function that performs software operation is called in the executable hardware description unit 104, the software operation command analysis unit 2101 is called with the parameters. As shown in the flow of FIG. 61, the software operation command analysis unit 2101 analyzes the command character string, extracts the command type and parameters, and calls the debugged software execution unit 103. When command parameters extracted by the software operation command analysis unit 2101 are written in a form that can be understood by humans, variables, address values, and the like may be expressed by alphanumeric characters such as symbols. Obtains necessary information such as information related to symbols from the symbol information 1703 of software obtained when compiling the debugged software 102, and solves what the symbol indicates.

(実施の形態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 software execution unit 103 in FIG. 22 reads the debugged software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

ハードウェア記述実行部202でソフトウェア操作をする関数を呼び出したときに、そのパラメータを伴ってソフトウェア操作コマンド解析部2101を呼び出す。ソフトウェア操作コマンド解析部2101では図61のフローのように、コマンド文字列を解析し、コマンドの種類やパラメータを抽出して被デバッグソフトウェア実行部103を呼び出す。ソフトウェア操作コマンド解析部2101で抽出したコマンドパラメータが人間に理解できるような形態で書かれている場合、変数名やアドレス値などがシンボルという英数字で表現されることがあり、被デバッグソフトウェア実行部103は被デバッグソフトウェア102をコンパイルした際などに得られるソフトウェアのシンボル情報1703などからシンボルに関する情報などの必要な情報を取得してシンボルが何を指すのかの解決を図る。   When the hardware description execution unit 202 calls a function for performing a software operation, the software operation command analysis unit 2101 is called with the parameters. As shown in the flow of FIG. 61, the software operation command analysis unit 2101 analyzes the command character string, extracts the command type and parameters, and calls the debugged software execution unit 103. When command parameters extracted by the software operation command analysis unit 2101 are written in a form that can be understood by humans, variable names, address values, and the like may be expressed by alphanumeric characters such as symbols. 103 obtains necessary information such as information on the symbol from the symbol information 1703 of the software obtained when the debugged software 102 is compiled, and solves what the symbol indicates.

(実施の形態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 software execution unit 103 in FIG. 23 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The executable hardware description unit 104 performs hardware operations using a program language such as C language or C ++ language, a system description language such as SystemC or SpecC, or a hardware description language such as VHDL or VerilogHDL. Compiled so that the described source code can be executed on a host computer such as a personal computer or a workstation.

テストスクリプト実行部2301はテストスクリプト2302を読み込んでそれを実行する。テストスクリプトの実行直前にテストスクリプトをコンパイルし、コンパイルしたものを実行してもよい。テストスクリプト実行部2301では図63のフローのように、テストスクリプトのコマンドがハードウェア操作コマンドかソフトウェア操作コマンドかを判別し、それに応じてハードウェア操作コマンド解析部1901かソフトウェア操作コマンド解析部2101を呼び出す。   The test script execution unit 2301 reads the test script 2302 and executes it. The test script may be compiled immediately before execution of the test script, and the compiled version may be executed. The test script execution unit 2301 determines whether the command of the test script is a hardware operation command or a software operation command as shown in the flow of FIG. 63, and the hardware operation command analysis unit 1901 or the software operation command analysis unit 2101 is determined accordingly. call.

ハードウェア操作コマンド解析部1901は実施の形態19と同様にコマンドを解析し、ハードウェア要素操作部1702を呼び出し、ハードウェア要素操作部1702はハードウェア記述部104のAPIを呼び出してハードウェアのシミュレーションを制御する。   The hardware operation command analysis unit 1901 analyzes the command as in the nineteenth embodiment, calls the hardware element operation unit 1702, and the hardware element operation unit 1702 calls the API of the hardware description unit 104 to simulate hardware. To control.

ソフトウェア操作コマンド解析部2101は実施の形態21と同様にコマンドを解析し、ソフトウェア実行部103を呼び出してソフトウェアのシミュレーションを制御する。   The software operation command analysis unit 2101 analyzes the command as in the twenty-first embodiment and calls the software execution unit 103 to control the software simulation.

(実施の形態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 software execution unit 103 in FIG. 24 reads the debug software 102 and executes it. The debugged software execution unit 103 may be an instruction set simulation ISS that executes each instruction of the microcomputer one by one, or may be of a type that executes the debugged software 102 converted into an intermediate language. The hardware description execution unit 202 reads the hardware description 201 and executes the description contents. Generally, an interpreter is used, and the intermediate language is often executed after first converting to an intermediate language. However, a just-in-time compiler method that partially compiles at the time of execution may be employed, or the hardware description content may be converted into data that can be easily executed by the simulator and executed while referring to the data.

テストスクリプト実行部2301はテストスクリプト2302を読み込んでそれを実行する。テストスクリプトの実行直前にテストスクリプトをコンパイルし、コンパイルされたものを実行してもよい。テストスクリプト実行部2301では図63のフローのように、テストスクリプトのコマンドがハードウェア操作コマンドかソフトウェア操作コマンドかを判別し、それに応じてハードウェア操作コマンド解析部1901かソフトウェア操作コマンド解析部2101を呼び出す。   The test script execution unit 2301 reads the test script 2302 and executes it. The test script may be compiled immediately before execution of the test script, and the compiled one may be executed. The test script execution unit 2301 determines whether the command of the test script is a hardware operation command or a software operation command as shown in the flow of FIG. 63, and the hardware operation command analysis unit 1901 or the software operation command analysis unit 2101 is determined accordingly. call.

ハードウェア操作コマンド解析部1901は実施の形態20と同様にコマンドを解析し、ハードウェア要素操作部1802を呼び出し、ハードウェア要素操作部1802はハードウェア記述実行部202のAPIを呼び出してハードウェアのシミュレーションを制御する。   The hardware operation command analysis unit 1901 analyzes the command as in the twentieth embodiment, calls the hardware element operation unit 1802, and the hardware element operation unit 1802 calls the API of the hardware description execution unit 202 to Control the simulation.

ソフトウェア操作コマンド解析部2101は実施の形態22と同様にコマンドを解析し、ソフトウェア実行部103を呼び出してソフトウェアのシミュレーションを制御する。   The software operation command analysis unit 2101 analyzes the command as in the twenty-second embodiment and calls the software execution unit 103 to control the software simulation.

(実施の形態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 new hardware description 2501 in FIG. 25 is a hardware description after being corrected for some reason, and the abstracted hardware description 2502 and the information shown in FIG. There is an abstracted part record 2503 such as In the abstracted hardware description 2502, for example, the lines from L08 line to L26 line of P301 in FIG. 44 are recorded.

ハードウェア記述変換プログラム2504を経由することで、高速なシミュレーションができる変更後のハードウェア記述1306が生成される。ハードウェア記述変換プログラム2504の中にはハードウェア記述2501の中の既抽象化箇所を抽出する既抽象化部抽出部2505がある。この処理のあとに、ハードウェア記述置換え部2506で新ハードウェア記述2501の内容を修正してハードウェア記述1306を作り出す。   By passing through the hardware description conversion program 2504, a modified hardware description 1306 that can perform high-speed simulation is generated. The hardware description conversion program 2504 includes an already abstracted part extracting unit 2505 that extracts an already abstracted part in the hardware description 2501. After this processing, the hardware description replacement unit 2506 modifies the contents of the new hardware description 2501 to create a hardware description 1306.

まず、既抽象化部抽出部2505は図65のようなフローで抽象化箇所記録2503の情報を用いて新ハードウェア記述2501の中から既に抽象化されている部分を探し出し、抽象化部抽出記録2507へ記録する。   First, the already abstracted part extracting unit 2505 uses the information in the abstracted part record 2503 in the flow shown in FIG. 65 to search for a part that has already been abstracted from the new hardware description 2501 and extracts the abstracted part extracted record. Record in 2507.

次に、ハードウェア記述置換え部2506は図66に示すように新ハードウェア記述2501の内容をコピーし、その中の抽象化される前のコードを抽象化部抽出記録2507を使って削除した後に、抽象化済みハードウェア記述2502の内容を取得し、変更後ハードウェア記述1305へ挿入する。   Next, the hardware description replacement unit 2506 copies the contents of the new hardware description 2501 as shown in FIG. 66, and deletes the code before being abstracted therein using the abstraction unit extraction record 2507. The contents of the abstracted hardware description 2502 are acquired and inserted into the hardware description 1305 after the change.

このようにして、既に行われた抽象化の結果を利用することにより、抽象化作業を行うことなく速やかにシミュレーションを行うことが可能となる。   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 new hardware description 2501 in FIG. 26 is a hardware description after being corrected for some reason. In addition, the abstracted hardware description 2502 and the information shown in FIG. There is an abstracted part record 2503 such as In the abstracted hardware description 2502, for example, the lines from L08 line to L26 line of P301 in FIG. 44 are recorded. Alternatively, the data may be recorded in a data format that the hardware description execution unit 2601 can easily execute.

まず、既抽象化部抽出部2505は図65のようなフローで抽象化箇所記録2503の情報を用いて新ハードウェア記述2501の中から既に抽象化されている部分を探し出し、抽象化部抽出記録2507へ記録する。   First, the already abstracted part extracting unit 2505 uses the information in the abstracted part record 2503 in the flow shown in FIG. 65 to search for a part that has already been abstracted from the new hardware description 2501 and extracts the abstracted part extracted record. Record in 2507.

次に、ハードウェア記述実行部2601は図67に示すフローのように新ハードウェア記述2501の内容を実行する。実行の際に、抽象化部抽出記録2507をもとに過去に抽象化されたハードウェア記述かどうかを判定し、過去に抽象化されたものであれば、抽象化されたものを実行する。   Next, the hardware description execution unit 2601 executes the contents of the new hardware description 2501 as shown in the flow of FIG. At the time of execution, it is determined whether the hardware description has been abstracted in the past based on the abstraction part extraction record 2507, and if it has been abstracted in the past, the abstracted one is executed.

このようにして、既に行われた抽象化の結果を利用することにより、抽象化作業を行うことなく速やかにシミュレーションを行うことが可能となる。   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 simulation execution units 2701 and 2702 recognizes that an event related to the other simulation execution occurs, it registers the event in the event reservation registration unit 2703, and the event reservation registration unit 2703 is as shown in FIG. Event reservation information 2704 is registered.

シミュレーション実行指示部2705は図70のフローのように、イベント予約情報2704の中のもっとも近い将来に発生するイベントの情報を取得して、そのイベントが発生したシミュレーション時間までシミュレーションを独立して進めるようにシミュレーション実行部A2701とシミュレーション実行部B2702へ指示する。ただし、その間隔があまり大きいと、シミュレーション時間を戻して復元しなければならない事態が発生したときのペナルティが大きくなるので、図69のようなシミュレーション切り替え時間間隔情報2710の情報に基づいて、間隔が大きすぎないように調整する。   As shown in the flow of FIG. 70, the simulation execution instructing unit 2705 acquires information on the event that will occur in the near future in the event reservation information 2704, and advances the simulation independently until the simulation time at which the event occurred. To the simulation execution unit A2701 and the simulation execution unit B2702. However, if the interval is too large, the penalty when a situation in which the simulation time has to be restored and restored is large, so the interval is based on the information of the simulation switching time interval information 2710 as shown in FIG. Adjust so that it is not too large.

シミュレーション実行部2701、2702は図71のフローのように動作する。シミュレーション実行の内容は実行履歴記録部2706や2707へ図72のような内容で記録する。シミュレーション実行部がシミュレーション実行中に他方のシミュレーション実行部に関わるイベントが発生したとき、それがシミュレーション実行指示部2705に指示された時間よりも近いのであれば、それをシミュレーション実行指示部2705へ伝え、シミュレーション実行指示部2705はシミュレーション状態復元部A2708あるいはシミュレーション状態復元部B2709に対してシミュレーション状態を復元するように指示し、復元後にシミュレーションを継続して実行するように指示する。   The simulation execution units 2701 and 2702 operate as shown in the flow of FIG. The contents of the simulation execution are recorded in the execution history recording units 2706 and 2707 as shown in FIG. When an event related to the other simulation execution unit occurs while the simulation execution unit is executing the simulation, if it is closer than the time instructed to the simulation execution instruction unit 2705, it is transmitted to the simulation execution instruction unit 2705, The simulation execution instruction unit 2705 instructs the simulation state restoration unit A 2708 or the simulation state restoration unit B 2709 to restore the simulation state, and instructs the simulation state to be continued after the restoration.

本発明にかかるシミュレーションシステムは、ハードウェアのシミュレータとソフトウェアのシミュレータを協調しながら高速にシミュレーションできるものであり、マイクロプロセッサを使用する各種電子機器のハードウェアやソフトウェア開発に有用である。また、マイクロプロセッサ自身の開発やマイクロプロセッサに接続される周辺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.

本発明の実施の形態1におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 1 of this invention 本発明の実施の形態2におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 2 of this invention 本発明の実施の形態3におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 3 of this invention 本発明の実施の形態4におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 4 of this invention 本発明の実施の形態5におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 5 of this invention 本発明の実施の形態6におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 6 of this invention 本発明の実施の形態7におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 7 of this invention 本発明の実施の形態8におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 8 of this invention 本発明の実施の形態9におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 9 of this invention 本発明の実施の形態10におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 10 of this invention 本発明の実施の形態11におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 11 of this invention 本発明の実施の形態12におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 12 of this invention 本発明の実施の形態13におけるハードウェア記述変換プログラムの例を示す図The figure which shows the example of the hardware description conversion program in Embodiment 13 of this invention 本発明の実施の形態14におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 14 of this invention 本発明の実施の形態15におけるハードウェア記述変換プログラムの例を示す図The figure which shows the example of the hardware description conversion program in Embodiment 15 of this invention 本発明の実施の形態16におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 16 of this invention 本発明の実施の形態17におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 17 of this invention 本発明の実施の形態18におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 18 of this invention 本発明の実施の形態19におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 19 of this invention 本発明の実施の形態20におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 20 of this invention 本発明の実施の形態21におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 21 of this invention 本発明の実施の形態22におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 22 of this invention 本発明の実施の形態23におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 23 of this invention 本発明の実施の形態24におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 24 of this invention 本発明の実施の形態25におけるハードウェア記述変換プログラムの例を示す図The figure which shows the example of the hardware description conversion program in Embodiment 25 of this invention 本発明の実施の形態26におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 26 of this invention 本発明の実施の形態27におけるシステムシミュレーション実行プログラムの例を示す図The figure which shows the example of the system simulation execution program in Embodiment 27 of this invention 本発明の実施の形態1のハードウェア構成の例を示す図The figure which shows the example of the hardware constitutions of Embodiment 1 of this invention 本発明の実施の形態1のハードウェア記述部のフローを示す図The figure which shows the flow of the hardware description part of Embodiment 1 of this invention. 本発明の実施の形態1のハードウェア要素不活性化箇所情報の例を示す図The figure which shows the example of the hardware element inactivation location information of Embodiment 1 of this invention 本発明の実施の形態3のハードウェア構成の例を示す図The figure which shows the example of the hardware constitutions of Embodiment 3 of this invention 本発明の実施の形態3の不要ハードウェア要素探索部のフローを示す図The figure which shows the flow of the unnecessary hardware element search part of Embodiment 3 of this invention. 本発明の実施の形態3の不要ハードウェア要素探索部のフローを示す図The figure which shows the flow of the unnecessary hardware element search part of Embodiment 3 of this invention. 本発明の実施の形態5のハードウェア構成の例を示す図The figure which shows the example of the hardware constitutions of Embodiment 5 of this invention 本発明の実施の形態5のハードウェア記述部のフローを示す図The figure which shows the flow of the hardware description part of Embodiment 5 of this invention. 本発明の実施の形態5のハードウェア要素活性状態取得部のフローを示す図The figure which shows the flow of the hardware element active state acquisition part of Embodiment 5 of this invention. 本発明の実施の形態5のハードウェア要素活性化履歴記録の例を示す図The figure which shows the example of the hardware element activation log | history recording of Embodiment 5 of this invention 本発明の実施の形態5の不要ハードウェア要素探索部のフローを示す図The figure which shows the flow of the unnecessary hardware element search part of Embodiment 5 of this invention. 本発明の実施の形態7のハードウェア記述部のフローを示す図The figure which shows the flow of the hardware description part of Embodiment 7 of this invention. 本発明の実施の形態7のシミュレーション条件記録部の例を示す図The figure which shows the example of the simulation condition recording part of Embodiment 7 of this invention 本発明の実施の形態11のアクセス制御アドレス記録部の例を示す図The figure which shows the example of the access control address recording part of Embodiment 11 of this invention 本発明の実施の形態11の条件判定部のフローを示す図The figure which shows the flow of the condition determination part of Embodiment 11 of this invention 本発明の実施の形態11のアクセス制御部のフローを示す図The figure which shows the flow of the access control part of Embodiment 11 of this invention. 本発明の実施の形態13のコード例を示す図The figure which shows the code example of Embodiment 13 of this invention 本発明の実施の形態13の周期回路抽出部のフローを示す図The figure which shows the flow of the periodic circuit extraction part of Embodiment 13 of this invention. 本発明の実施の形態13の周期回路抽出部のフローを示す図The figure which shows the flow of the periodic circuit extraction part of Embodiment 13 of this invention. 本発明の実施の形態13の周期回路パラメータ算出部のフローを示す図The figure which shows the flow of the periodic circuit parameter calculation part of Embodiment 13 of this invention. 本発明の実施の形態13の周期回路変換部のフローを示す図The figure which shows the flow of the periodic circuit conversion part of Embodiment 13 of this invention. 本発明の実施の形態15のコード例を示す図The figure which shows the code example of Embodiment 15 of this invention 本発明の実施の形態15の組合せ回路抽出部のフローを示す図The figure which shows the flow of the combinational circuit extraction part of Embodiment 15 of this invention. 本発明の実施の形態15の組合せ回路パラメータ算出部のフローを示す図The figure which shows the flow of the combinational circuit parameter calculation part of Embodiment 15 of this invention. 本発明の実施の形態15の組合せ回路変換部のフローを示す図The figure which shows the flow of the combinational circuit conversion part of Embodiment 15 of this invention. 本発明の実施の形態17の条件判定部のフローを示す図The figure which shows the flow of the condition determination part of Embodiment 17 of this invention. 本発明の実施の形態17のハードウェア要素操作情報記録部の例を示す図The figure which shows the example of the hardware element operation information recording part of Embodiment 17 of this invention. 本発明の実施の形態17のアクセス制御部のフローを示す図The figure which shows the flow of the access control part of Embodiment 17 of this invention. 本発明の実施の形態17のハードウェア要素操作部のフローを示す図The figure which shows the flow of the hardware element operation part of Embodiment 17 of this invention. 本発明の実施の形態19のコード例を示す図The figure which shows the code example of Embodiment 19 of this invention 本発明の実施の形態19の被デバッグソフトウェア実行部のフローを示す図The figure which shows the flow of the to-be-debugged software execution part of Embodiment 19 of this invention. 本発明の実施の形態19のハードウェア操作コマンド解析部のフローを示す図The figure which shows the flow of the hardware operation command analysis part of Embodiment 19 of this invention. 本発明の実施の形態21のコード例を示す図The figure which shows the code example of Embodiment 21 of this invention. 本発明の実施の形態21のソフトウェア操作コマンド解析部のフローを示す図The figure which shows the flow of the software operation command analysis part of Embodiment 21 of this invention. 本発明の実施の形態23のコード例を示す図The figure which shows the code example of Embodiment 23 of this invention 本発明の実施の形態23のテストスクリプト実行部のフローを示す図The figure which shows the flow of the test script execution part of Embodiment 23 of this invention. 本発明の実施の形態25の抽象化箇所記録の例を示す図The figure which shows the example of the abstract location recording of Embodiment 25 of this invention 本発明の実施の形態25の既抽象化部抽出部のフローを示す図The figure which shows the flow of the already abstracted part extraction part of Embodiment 25 of this invention. 本発明の実施の形態25のハードウェア記述置換え部のフローを示す図The figure which shows the flow of the hardware description replacement part of Embodiment 25 of this invention. 本発明の実施の形態26のハードウェア記述実行部のフローを示す図The figure which shows the flow of the hardware description execution part of Embodiment 26 of this invention. 本発明の実施の形態27のイベント予約情報の例を示す図The figure which shows the example of the event reservation information of Embodiment 27 of this invention 本発明の実施の形態27の切り替え時間間隔情報の例を示す図The figure which shows the example of the switching time interval information of Embodiment 27 of this invention 本発明の実施の形態27のシミュレーション実行指示部のフローを示す図The figure which shows the flow of the simulation execution instruction | indication part of Embodiment 27 of this invention. 本発明の実施の形態27のシミュレーション実行部のフローを示す図The figure which shows the flow of the simulation execution part of Embodiment 27 of this invention. 本発明の実施の形態27の実行履歴記録の例を示す図The figure which shows the example of the execution log recording of Embodiment 27 of this invention

符号の説明Explanation of symbols

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 SYMBOLS 101 System simulation execution program 102 Debugged software 103 Debugged software execution part 104 Executable hardware description part 105 Hardware element inactivation designation | designated part 107 Hardware description 108 Compiler 201 Hardware description 202 Hardware description execution part 302 Unnecessary Hardware element search unit 501 Hardware element active state acquisition unit 702 Simulation condition determination unit 901 Software execution state acquisition unit 1101 Access control unit 1102 Condition determination unit 1302 Hardware description conversion program 1303 Periodic circuit extraction unit 1304 Periodic circuit parameter extraction unit 1305 Periodic circuit conversion unit 1306 Hardware description after change 1307 Compiler 1501 Combination circuit extraction unit 1502 Combination Route parameter calculation unit 1503 Combination circuit conversion unit 1701 Hardware element operation information recording unit 1702 Hardware element operation unit 1901 Hardware operation command analysis unit 2101 Software operation command analysis unit 2301 Test script execution unit 2504 Hardware description conversion program 2505 Already abstract Extraction unit 2506 Hardware description replacement unit

Claims (27)

被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、シミュレーションに不要なハードウェア要素が指定されたハードウェア要素不活性化箇所情報をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit Hardware that outputs to the hardware description part an instruction to partially suppress the hardware simulation based on the hardware description part and hardware element inactivation location information in which a hardware element unnecessary for the simulation is specified A system simulation execution program comprising a wear element deactivation designation unit. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、シミュレーションに不要なハードウェア要素が指定されたハードウェア要素不活性化箇所情報をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes software to be debugged, 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 is unnecessary for the simulation A hardware element deactivation designation unit that outputs an instruction to partially suppress hardware simulation based on hardware element deactivation point information in which the hardware element is designated to the hardware description execution unit; System simulation execution program provided. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、ハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit An unnecessary hardware element search unit that searches for a hardware element that is unnecessary for the simulation based on a hardware description part, hardware description structure information indicating a relationship between hardware elements, and a required hardware element list, and a search result thereof A system simulation execution program comprising: a hardware element inactivation specifying unit that outputs an instruction to partially suppress hardware simulation to the hardware description unit. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、ハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   Between a hardware element and a hardware description execution unit that executes a software to be debugged, executes a hardware simulation based on the hardware description, and operates in cooperation with the debugged software execution unit The hardware description search section that searches for hardware elements that are unnecessary for the simulation based on the hardware description structure information indicating the relationship between the hardware and the required hardware element list, and the hardware simulation based on the search results A system simulation execution program comprising: a hardware element deactivation designation unit that outputs an instruction to be suppressed automatically to the hardware description execution unit. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、前記ハードウェア記述部の動作状態を監視してハードウェア要素活性状態を取得するためのハードウェア要素活性状態取得部と、前記ハードウェア要素活性状態取得部が取得した結果とハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備えるシミュレーション実行プログラム。   A debugged software execution unit that executes the software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description part, a hardware element active state acquisition part for monitoring the operating state of the hardware description part and acquiring a hardware element active state, and a result acquired by the hardware element active state acquisition part; An unnecessary hardware element search unit that searches for a hardware element that is unnecessary for simulation based on hardware description structure information indicating a relationship between hardware elements and a required hardware element list, and hardware based on the search result Partially suppress the simulation of Simulation program and a hardware elements inactivation designation unit for outputting instructs to the hardware description section. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記ハードウェア記述実行部の動作状態を監視してハードウェア要素活性状態を取得するためのハードウェア要素活性状態取得部と、前記ハードウェア要素活性状態取得部が取得した結果とハードウェア要素間の関連を示すハードウェア記述構造情報と必須ハードウェア要素リストとに基づいてシミュレーションに不要なハードウェア要素を探索する不要ハードウェア要素探索部と、その探索結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備えるシミュレーション実行プログラム。   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 hardware element active state acquisition unit for monitoring the operating state of the execution unit to acquire a hardware element active state, and a hardware indicating a relationship between the result acquired by the hardware element active state acquisition unit and the hardware element Unnecessary hardware element search unit for searching for unnecessary hardware elements based on the hardware description structure information and the required hardware element list, and an instruction to partially suppress the hardware simulation based on the search result Is output to the hardware description execution unit Simulation program and a that hardware elements inactivation specifying unit. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、前記ハードウェア記述部の中のハードウェア要素状態を取得するためのハードウェア要素状態取得部と、前記ハードウェア要素状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、前記シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the software to be debugged, a compiled hardware description, and executes a hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description unit, a hardware element state acquisition unit for acquiring a hardware element state in the hardware description unit, and a result of the acquisition by the hardware element state acquisition unit A simulation condition determination unit that determines whether to perform a simulation, and a hardware element that outputs an instruction to partially suppress hardware simulation to the hardware description unit based on the determination result of the simulation condition determination unit. With activation designation part System simulation program to obtain. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記ハードウェア記述実行部の中のハードウェア要素状態を取得するためのハードウェア要素状態取得部と、前記ハードウェア要素状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、前記シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   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 hardware element state acquisition unit for acquiring a hardware element state in the execution unit, and a simulation for determining whether to simulate each hardware element based on a result acquired by the hardware element state acquisition unit A system comprising: a condition determining unit; and a hardware element deactivation specifying unit that outputs an instruction to partially suppress hardware simulation to the hardware description executing unit based on the determination result of the simulation condition determining unit Simulation execution program Grams. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、前記被デバッグソフトウェア実行部の中のソフトウェア実行状態を取得するためのソフトウェア実行状態取得部と、前記ソフトウェア実行状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、前記シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description unit, a software execution state acquisition unit for acquiring a software execution state in the debugged software execution unit, and a simulation of each hardware element based on the result acquired by the software execution state acquisition unit A simulation condition determining unit that determines whether or not to perform hardware element deactivation that outputs an instruction to partially suppress hardware simulation to the hardware description unit based on a determination result of the simulation condition determining unit System simulation program and a tough. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記被デバッグソフトウェア実行部の中のソフトウェア実行状態を取得するためのソフトウェア実行状態取得部と、前記ソフトウェア実行状態取得部が取得した結果に基づいて各ハードウェア要素のシミュレーションを行うかどうかを判定するシミュレーション条件判定部と、前記シミュレーション条件判定部の判定結果をもとにハードウェアのシミュレーションを部分的に抑制させる指示を前記ハードウェア記述実行部へ出力するハードウェア要素不活性化指定部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software, a hardware description executing unit that executes a hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit, and the debugged software A software execution state acquisition unit for acquiring a software execution state in the execution unit, and a simulation condition determination unit that determines whether to simulate each hardware element based on the result acquired by the software execution state acquisition unit And a hardware element deactivation designation unit that outputs an instruction to partially suppress hardware simulation to the hardware description execution unit based on the determination result of the simulation condition determination unit Line program. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、前記被デバッグソフトウェア実行部から前記ハードウェア記述部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、前記条件判定部の判定結果に基づいて前記被デバッグソフトウェア実行部から前記ハードウェア記述部の仮想メモリ空間へのアクセスを実行させるか否かを制御するアクセス制御部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description section; a condition determination section that monitors access from the debugged software execution section to the virtual memory space of the hardware description section and determines whether to permit the access according to the contents of the access; A system simulation execution program comprising: 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. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記被デバッグソフトウェア実行部から前記ハードウェア記述実行部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、前記条件判定部の判定結果に基づいて前記被デバッグソフトウェア実行部から前記ハードウェア記述実行部の仮想メモリ空間へのアクセスを実行させるか否かを制御するアクセス制御部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software; a hardware description executing unit that executes hardware simulation based on a hardware description and operates in cooperation with the debugged software executing unit; and the debugged software A condition determination unit that monitors access from the 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, and a determination result of the condition determination unit A system simulation execution program comprising: an access control unit for controlling whether or not to execute access to the virtual memory space of the hardware description execution unit from the debugged software execution unit. ハードウェア記述の中から周期回路を抽出する周期回路抽出部と、前記周期回路抽出部で抽出された周期回路から周期回路パラメータを算出する周期回路パラメータ算出部と、前記周期回路パラメータ算出部で算出された周期回路パラメータに基づいて前記ハードウェア記述の中の周期回路部分を別の処理へ書き換える周期回路変換部とを備えるハードウェア記述変換プログラム。   A periodic circuit extraction unit for extracting a periodic circuit from the hardware description, a periodic circuit parameter calculation unit for calculating a periodic circuit parameter from the periodic circuit extracted by the periodic circuit extraction unit, and a calculation by the periodic circuit parameter calculation unit A hardware description conversion program comprising: a periodic circuit conversion unit that rewrites a periodic circuit portion in the hardware description to another process based on the periodic circuit parameters that have been set. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記ハードウェア記述実行部で実行されるハードウェア記述の中から周期回路を抽出する周期回路抽出部と、前記周期回路抽出部で抽出された周期回路から周期回路パラメータを算出する周期回路パラメータ算出部とを備え、
前記ハードウェア記述実行部は、前記ハードウェア記述の中の周期回路部分を実行するかわりに、前記周期回路パラメータ算出部で算出された周期回路パラメータに基づいて前記周期回路の特性を実現するシステムシミュレーション実行プログラム。
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 combinational circuit extraction unit for extracting a combinational circuit from the hardware description, a combinational circuit parameter calculation unit for calculating a combinational circuit parameter from the combinational circuit extracted by the combinational circuit extraction unit, and a calculation by the combinational circuit parameter calculation unit A hardware description conversion program comprising: a combinational circuit conversion unit that rewrites a combinational circuit portion in the hardware description to another process based on the combinational circuit parameter that is set 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記ハードウェア記述実行部で実行されるハードウェア記述の中から組合せ回路を抽出する組合せ回路抽出部と、前記組合せ回路抽出部で抽出された組合せ回路から組合せ回路パラメータを算出する組合せ回路パラメータ算出部とを備え、
前記ハードウェア記述実行部は、前記ハードウェア記述の中の組合せ回路部分を実行するかわりに、組合せ回路パラメータ算出部で算出された組合せ回路パラメータに基づいて前記組合せ回路の特性を実現するシステムシミュレーション実行プログラム。
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 and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description section; a condition determination section that monitors access from the debugged software execution section to the virtual memory space of the hardware description section and determines whether to permit the access according to the contents of the access; 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 determination unit permits access; and a determination result of the condition determination unit If you do not allow access to the hardware System simulation program and a hardware element operating portion for operating the particular hardware elements in the predicate directly. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記被デバッグソフトウェア実行部から前記ハードウェア記述実行部の仮想メモリ空間へのアクセスをモニタしそのアクセスの内容に応じてそのアクセスを許可するか否かを判定する条件判定部と、前記条件判定部の判定結果がアクセスを許可する場合に前記被デバッグソフトウェア実行部から前記ハードウェア記述実行部の仮想メモリ空間へのアクセスを実行させるアクセス制御部と、前記条件判定部の判定結果がアクセスを許可しない場合に前記ハードウェア記述の中の特定のハードウェア要素を直接操作するハードウェア要素操作部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software; a hardware description executing unit that executes hardware simulation based on a hardware description and operates in cooperation with the debugged software executing unit; and the debugged software A condition determination unit that monitors access from the 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, and a determination result of the condition determination unit is 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 access is permitted, and the hardware when the determination result of the condition determination unit does not permit access Specific hardware elements in the hardware description System simulation program and a hardware element operating portion for operating. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、前記被デバッグソフトウェアの中に記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、前記ハードウェア操作コマンド解析部の解析結果に基づいて前記ハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description section, a hardware operation command analysis section for analyzing a hardware operation command described in the debugged software, and the hardware description based on the analysis result of the hardware operation command analysis section. A system simulation execution program comprising a hardware element operation unit that directly operates hardware elements therein. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記被デバッグソフトウェアの中に記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、前記ハードウェア操作コマンド解析部の解析結果に基づいて前記ハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software, a hardware description executing unit that executes a hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit, and the debugged software Hardware operation command analysis unit for analyzing hardware operation commands described in the hardware, and hardware for directly operating hardware elements in the hardware description based on the analysis result of the hardware operation command analysis unit A system simulation execution program comprising a wear element operation unit. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、前記ハードウェア記述部の中に記述されている被デバッグソフトウェア実行部操作コマンドを解析し前記被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A system simulation execution program comprising: a hardware description part; and a software operation command analysis part for analyzing a debugged software execution part operation command described in the hardware description part and operating the debugged software execution part. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記ハードウェア記述の中に記述されている被デバッグソフトウェア実行部操作コマンドを解析し前記被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備えるシステムシミュレーション実行プログラム。   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 system simulation execution program comprising: a software operation command analysis unit that analyzes a debug software execution unit operation command described in the command and operates the debug software execution unit. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、コンパイルされたハードウェア記述であってかつそのハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述部と、テストスクリプトを実行するテストスクリプト実行部と、前記テストスクリプトに記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、前記ハードウェア操作コマンド解析部の解析結果に基づいて前記ハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部と、前記テストスクリプトに記述されている被デバッグソフトウェア実行部操作コマンドを解析し前記被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備えるシステムシミュレーション実行プログラム。   A debugged software execution unit that executes the debugged software and a compiled hardware description that performs hardware simulation based on the hardware description and operates in cooperation with the debugged software execution unit A hardware description part, a test script execution part for executing a test script, a hardware operation command analysis part for analyzing a hardware operation command described in the test script, and an analysis result of the hardware operation command analysis part A hardware element operation unit for directly operating hardware elements in the hardware description based on the above, and a debugged software execution unit operation command described in the test script to analyze the debugged software execution unit System simulation program and a software operation command analyzing unit for operating. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、テストスクリプトを実行するテストスクリプト実行部と、前記テストスクリプトに記述されているハードウェア操作コマンドを解析するハードウェア操作コマンド解析部と、前記ハードウェア操作コマンド解析部の解析結果に基づいて前記ハードウェア記述の中のハードウェア要素を直接操作するハードウェア要素操作部と、前記テストスクリプトに記述されている被デバッグソフトウェア実行部操作コマンドを解析し前記被デバッグソフトウェア実行部を操作するソフトウェア操作コマンド解析部とを備えるシステムシミュレーション実行プログラム。   A debug software execution unit that executes the debug target software, a hardware description execution unit that operates in cooperation with the debug target software execution unit, and a test script that executes hardware simulation based on the hardware description In the hardware description based on the analysis result of the hardware operation command analysis unit, the hardware operation command analysis unit that analyzes the hardware operation command described in the test script, A hardware element operation unit that directly operates hardware elements; and a software operation command analysis unit that analyzes a debugged software execution unit operation command described in the test script and operates the debugged software execution unit. System simulation program to obtain. ハードウェア記述の中から過去に抽象化作業が完了している部分と同等部分を抽出する既抽象化部抽出部と、前記ハードウェア記述の中の前記既抽象化部抽出部による抽出部分を前記過去に抽象化作業が完了している抽象化された記述に置き換えるハードウェア記述置換え部とを備えるハードウェア記述変換プログラム。   An already abstracted part extracting unit that extracts a part equivalent to a part that has been abstracted in the past from the hardware description, and an extracted part by the already abstracted part extracting unit in the hardware description A hardware description conversion program comprising a hardware description replacement unit that replaces an abstracted description for which abstraction work has been completed in the past. 被デバッグソフトウェアを実行する被デバッグソフトウェア実行部と、ハードウェア記述に基づいてハードウェアのシミュレーションを実行するとともに前記被デバッグソフトウェア実行部と連携して動作するハードウェア記述実行部と、前記ハードウェア記述実行部で実行されるハードウェア記述の中から過去に抽象化作業が完了している部分と同等部分を抽出する既抽象化部抽出部とを備え、
前記ハードウェア記述実行部は、前記ハードウェア記述の中の前記過去に抽象化作業が完了している部分と同等部分を実行するかわりに、前記過去に抽象化作業が完了している抽象化された記述を実行するシステムシミュレーション実行プログラム。
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.
相互に関連しながら並行的に動作する複数のシミュレーション実行部と、前記シミュレーション実行部からアクセスされるイベント予約登録部と、前記イベント予約登録部に設定されたイベントタイミングに応じてシミュレーションの動きを変更させるシミュレーション実行指示部と、シミュレーション実行状況を記録したものを用いて特定の時点の状態にシミュレーション状態を復元させるシミュレーション状態復元部とを備え、一の前記シミュレーション実行部は他の前記シミュレーション実行部に関係するイベントを認識したときにイベントタイミングを前記イベント予約登録部に設定するシステムシミュレーション実行プログラム。   A plurality of simulation execution units that operate in parallel with each other, an event reservation registration unit that is accessed from the simulation execution unit, and a change in simulation according to the event timing set in the event reservation registration unit And a simulation state restoration unit that restores the simulation state to a state at a specific time point using a recording of the simulation execution state. One simulation execution unit is connected to the other simulation execution unit. A system simulation execution program that sets an event timing in the event reservation registration unit when a related event is recognized.
JP2004137107A 2004-05-06 2004-05-06 System simulation execution program and hardware description conversion program Pending JP2005321848A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (10)

* Cited by examiner, † Cited by third party
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