JP2015170221A - Simulation device and interface module creation device and program - Google Patents

Simulation device and interface module creation device and program Download PDF

Info

Publication number
JP2015170221A
JP2015170221A JP2014045607A JP2014045607A JP2015170221A JP 2015170221 A JP2015170221 A JP 2015170221A JP 2014045607 A JP2014045607 A JP 2014045607A JP 2014045607 A JP2014045607 A JP 2014045607A JP 2015170221 A JP2015170221 A JP 2015170221A
Authority
JP
Japan
Prior art keywords
model
communication
unit
communication data
specifications
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.)
Granted
Application number
JP2014045607A
Other languages
Japanese (ja)
Other versions
JP6265788B2 (en
Inventor
友美 竹内
Tomomi Takeuchi
友美 竹内
峯岸 孝行
Takayuki Minegishi
孝行 峯岸
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2014045607A priority Critical patent/JP6265788B2/en
Publication of JP2015170221A publication Critical patent/JP2015170221A/en
Application granted granted Critical
Publication of JP6265788B2 publication Critical patent/JP6265788B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To enable a simulation of an entire system to be easily executed at an early stage of designing by flexibly connecting modules different in specifications.SOLUTION: A simulation device 100 simulates communication between a first model serving as a hardware module or bus model compliant with a first specification which is one of a plurality of specifications of a hardware module or bus model and a second model serving as a hardware module or bus model compliant with a second specification which is one of the plurality of specifications and different from the first specification. A master unit execution unit 1011 analyzes communication data compliant with the first specification created by the first model, and extracts from communication data, a common data element serving as a data element commonly used in simulation of all specifications. A slave unit execution unit 1013 uses the extracted common data element to create communication data addressed to the second model compliant with the second specification.

Description

この発明は、LSI開発において、RTLやSystemC(トランザクションレベル、ピンレベル)等でそれぞれ設計された既存モジュールを用い、早期の段階でシステム全体の検証を容易に実施可能とするための、インタフェース(I/F)モジュール等に関するものである。   The present invention uses an existing module designed in RTL, SystemC (transaction level, pin level) or the like in LSI development, and enables an interface (I) to easily verify the entire system at an early stage. / F) For modules and the like.

従来、LSI開発では、Verilog−HDLやVHDLといったハードウェア記述言語による設計(以下、RTL設計と呼ぶ)、検証をメインで行ってきた。
しかし、近年のLSIの大規模化に伴いRTL設計されたハードウェアモジュール(以下、RTLモジュールと呼ぶ)を用いてのシステム全体検証は多大な時間を要することが問題となっており、ハードウェア記述言語よりも抽象度の高いC言語、C++言語、SystemC言語などの高級言語を用いて設計(以下、高位設計と呼ぶ)、検証を行うことで、検証時間の短縮を図る技術が実用化されてきている。
さらに、高位設計されたハードウェアモジュール(以下、高位モジュールと呼ぶ)と既存のRTLモジュールを混在させての検証を可能とする技術もあり、設計の早期段階でシステム全体検証が可能となってきている。
Conventionally, in LSI development, design by hardware description language such as Verilog-HDL or VHDL (hereinafter referred to as RTL design) and verification have been mainly performed.
However, with the recent increase in the scale of LSIs, verification of the entire system using a hardware module (hereinafter referred to as an RTL module) designed for RTL has become a problem. Technology that shortens verification time has been put into practical use by designing (hereinafter referred to as high-level design) and verification using high-level languages such as C language, C ++ language, and System C language, which have a higher level of abstraction than languages. ing.
Furthermore, there is a technology that enables verification by mixing a high-level designed hardware module (hereinafter referred to as a high-level module) and an existing RTL module, and the entire system can be verified at an early stage of design. Yes.

しかし、開発するLSIのプロトコルと、既存のRTLモジュールのプロトコルが異なる場合や、設計早期の段階でプロトコルが決定しておらず、高位モジュール(ハードウェアモジュールやバスモデル)ではトランザクションレベルでの通信を行い、RTLモジュールのピンレベルでの通信と抽象度が異なる場合などは、そのままでは各モジュール間の接続ができなかった。
そこで、抽象度やプロトコルの異なる各モジュール間に、変換アダプタ(ブリッジ、ラッパ、等で呼ばれることもある)を挿入する技術が一般的に用いられる。
しかし、変換アダプタの処理は、抽象度やプロトコル毎に異なるため、接続するモジュールおよびバスモデル間の抽象度とプロトコルの組み合わせの数だけ、変換アダプタが必要となる。
変換アダプタの作成は、ハードウェアモジュールの設計と同等の時間を要する場合もあるため、バス周辺構成の変更や、プロトコルの変更があると、その分作成期間を要することになり、変換アダプタ作成が、システム全体検証のボトルネックになってしまう。
However, if the protocol of the LSI to be developed is different from the protocol of the existing RTL module, or the protocol has not been decided at the early design stage, communication at the transaction level is possible for high-level modules (hardware modules and bus models). If the level of abstraction is different from the communication at the pin level of the RTL module, the modules cannot be connected as they are.
Therefore, a technique for inserting a conversion adapter (sometimes referred to as a bridge, wrapper, etc.) between modules having different abstraction levels and protocols is generally used.
However, since the processing of the conversion adapter differs for each abstraction level and protocol, as many conversion adapters are required as the number of combinations of abstraction level and protocol between the connected modules and bus models.
The creation of a conversion adapter may take the same amount of time as the hardware module design. Therefore, if there is a change in the bus peripheral configuration or protocol, a creation period will be required. It becomes a bottleneck of the whole system verification.

従来技術は、上記のような問題点を解決するため、バスモデルと同一のプロトコル仕様であるハードウェアモジュール1と、バスモデルと異なるプロトコル仕様であるハードウェアモジュール2との通信を可能とする、データ受信手段と、データ変換手段と、データ送信手段を備えるラッパモデルを自動生成していた(例えば、特許文献1)。   In order to solve the above problems, the conventional technology enables communication between the hardware module 1 having the same protocol specification as the bus model and the hardware module 2 having a protocol specification different from the bus model. A wrapper model including a data receiving unit, a data converting unit, and a data transmitting unit is automatically generated (for example, Patent Document 1).

特開2010−231633号公報JP 2010-231633 A

従来技術では、バスモデルと異なるプロトコルを実装したハードウェアモジュール2を、バスモデルに接続可能とするラッパモデルの自動生成時に、ハードウェアモジュール2の実装情報からバス接続情報を取得し、ハードウェアモジュール2の仕様書からトランザクション情報(プロトコル)を抽出し、それらの情報とバスモデルの仕様に基づき、データ受信手段、データ変換手段、データ送信手段を備えるラッパモデルを生成していた。
しかし、仕様書は作成者毎に記述方法がまちまちであり、一様に情報を抽出可能とは限らない。
また、早期段階でのシステム全体検証は、高位モジュールとRTLモジュールが混在した環境で行う場合があるが、従来技術のラッパモデル自動生成方法は、ハードウェアモジュール2およびバスモデルがどちらもピンレベルで設計されている場合のみ開示されており、抽象度が異なる場合の自動生成方法については開示されていない。
In the prior art, when automatically generating a wrapper model in which a hardware module 2 that implements a protocol different from the bus model can be connected to the bus model, the bus connection information is obtained from the mounting information of the hardware module 2 and the hardware module Transaction information (protocol) is extracted from the specifications of 2, and a wrapper model including data receiving means, data converting means, and data transmitting means is generated based on the information and bus model specifications.
However, there are various description methods for each creator, and it is not always possible to extract information uniformly.
In addition, the entire system verification at an early stage may be performed in an environment in which high-level modules and RTL modules are mixed. However, the conventional wrapper model automatic generation method uses both the hardware module 2 and the bus model at the pin level. It is disclosed only when it is designed, and does not disclose an automatic generation method when the degree of abstraction is different.

本発明は、このような課題を解決し、抽象度やプロトコルといった仕様が異なるモジュールをフレキシブルに接続し、設計早期の段階で、容易にシステム全体のシミュレーションを実行可能とすることを主な目的とする。   The main object of the present invention is to solve such problems, flexibly connect modules with different specifications such as abstraction level and protocol, and easily execute simulation of the entire system at an early stage of design. To do.

本発明に係るシミュレーション装置は、
ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションを行うシミュレーション装置であって、
前記第1のモデルにより生成された前記第1の仕様に従った通信データを解析し、前記通信データから、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する第1の通信データ管理部と、
前記第1の通信データ管理部により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成する第2の通信データ管理部とを有することを特徴とする。
The simulation apparatus according to the present invention is
A first model that is a hardware module or bus model according to a first specification that is one of a plurality of specifications of a hardware module or a bus model; and one of the plurality of specifications. A simulation device for simulating communication with a second model which is a hardware module or a bus model according to a second specification different from the first specification,
It is a data element that is used in common in simulation of communication for all the specifications of the plurality of specifications from the communication data by analyzing the communication data according to the first specification generated by the first model. A first communication data management unit for extracting common data elements;
A second communication data management unit that generates communication data addressed to the second model according to the second specification using the common data element extracted by the first communication data management unit. Features.

本発明によれば、第1の仕様に従った通信データから、全ての仕様のシミュレーションにおいて共通に利用される共通データ要素を抽出し、抽出した共通データ要素を用いて第2の仕様に従った通信データを生成するため、仕様が異なるモジュールをフレキシブルに接続し、設計早期の段階で、容易にシステム全体のシミュレーションを実行することができる。   According to the present invention, common data elements that are commonly used in simulations of all specifications are extracted from communication data according to the first specification, and the second specification is used using the extracted common data elements. In order to generate communication data, modules with different specifications can be flexibly connected, and the entire system can be easily simulated at an early stage of design.

実施の形態1に係るI/Fモジュールの構成例を示す図。FIG. 3 illustrates a configuration example of an I / F module according to the first embodiment. 実施の形態1に係るI/Fモジュールを用いたバス周辺構成を示す図。FIG. 3 is a diagram illustrating a bus peripheral configuration using the I / F module according to the first embodiment. 実施の形態1に係るシミュレーション装置の構成例を示す図。FIG. 3 shows a configuration example of a simulation apparatus according to the first embodiment. 実施の形態1に係るマスタ・スレーブ生成装置の構成例を示す図。FIG. 3 shows a configuration example of a master / slave generation device according to the first embodiment. 実施の形態1に係るマスタ・スレーブ生成フローを示すフローチャート図。FIG. 3 is a flowchart showing a master / slave generation flow according to the first embodiment. 実施の形態1に係るパラメータ設定ファイルの記述例を示す図。FIG. 4 is a diagram illustrating a description example of a parameter setting file according to the first embodiment. 実施の形態1に係るマスタ部の処理タイミングを示す図。FIG. 4 is a diagram illustrating processing timing of the master unit according to the first embodiment. 実施の形態1に係るシミュレーション装置及びマスタ・スレーブ生成装置のハードウェア構成例を示す図。FIG. 3 is a diagram illustrating a hardware configuration example of a simulation apparatus and a master / slave generation apparatus according to the first embodiment.

実施の形態1.
図1は、実施の形態1によるI/Fモジュールの構成を示したものである。
Embodiment 1 FIG.
FIG. 1 shows the configuration of the I / F module according to the first embodiment.

I/Fモジュール1は、マスタのハードウェアモジュールと、スレーブのハードウェアモジュール又はバスモデルとの間の通信のシミュレーションを行うコンピュータにより実行されるプログラムである。
I/Fモジュール1は、データ通信のマスタとなるハードウェアモジュールとの接続を行うマスタ部2と、データ通信のスレーブとなるハードウェアモジュールまたはバスモデルとの接続を行うスレーブ部3と、マスタ部2とスレーブ部3を仲介する共通部4で構成される。
以下では、ハードウェアモジュールまたはバスモデルのプロトコル、抽象度を仕様と表記する。
また、以下では、マスタとなるハードウェアモジュールの仕様(プロトコル、抽象度)を、マスタ仕様と表記する。
更に、スレーブとなるハードウェアモジュールまたはバスモデルの仕様(プロトコル、抽象度)を、スレーブ仕様と表記する。
マスタ仕様、スレーブ仕様は、それぞれ、ハードウェアモジュールまたはバスモデルの複数の仕様のうちの1つである。
The I / F module 1 is a program executed by a computer that simulates communication between a master hardware module and a slave hardware module or a bus model.
The I / F module 1 includes a master unit 2 for connection with a hardware module serving as a data communication master, a slave unit 3 for connection with a hardware module or bus model serving as a data communication slave, and a master unit. 2 and a common unit 4 that mediates between the slave unit 3.
Hereinafter, the protocol and abstraction level of the hardware module or bus model are expressed as specifications.
In the following, the specification (protocol, abstraction) of the hardware module serving as a master is referred to as a master specification.
Further, the specification (protocol, abstraction) of the hardware module or bus model that becomes a slave is expressed as a slave specification.
Each of the master specification and the slave specification is one of a plurality of specifications of the hardware module or the bus model.

図1において、マスタ部2は、マスタ仕様に対応しており、マスタのハードウェアモジュールにより生成されたマスタ仕様に従った通信データを解析し、当該通信データから、複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する。
そして、マスタ部2は、抽出した共通データ要素を、共通部4に渡す。
より具体的には、マスタ部2は、共通データ要素として、通信データから、コマンド関連情報と、データ部分(ペイロード)と、第1の通信データのうちの有効箇所を指定するバイトイネーブルを抽出する。
In FIG. 1, the master unit 2 corresponds to the master specification, analyzes communication data in accordance with the master specification generated by the master hardware module, and uses the communication data for all specifications of a plurality of specifications. A common data element, which is a data element commonly used in communication simulation, is extracted.
Then, the master unit 2 passes the extracted common data element to the common unit 4.
More specifically, the master unit 2 extracts command-related information, a data portion (payload), and a byte enable that designates a valid portion of the first communication data from the communication data as a common data element. .

共通部4は、第1の通信データから抽出されたコマンド関連情報を格納するコマンド用バッファ5と、データ部分(ペイロード)を格納するデータ用バッファ6と、第1の通信データのうちの有効箇所を指定するバイトイネーブルを格納するバイトイネーブル用バッファ7と、バッファ制御部8から構成される。
図1では、説明の便宜上、コマンド用バッファ5、データ用バッファ6、バイトイネーブル用バッファ7をI/Fモジュール1の構成要素としているが、現実には、これらのバッファはI/Fモジュール1を実行するコンピュータ内の複数の記憶領域である。
バッファ制御部8は、マスタ部2により抽出された複数の共通データ要素を属性ごとに分類し、複数の共通データ要素を、それぞれに対応する属性のバッファに格納する。
つまり、バッファ制御部8は、第1の通信データから抽出されたコマンド関連情報をコマンド用バッファ5に格納し、データ部分(ペイロード)をデータ用バッファ6に格納し、バイトイネーブルをバイトイネーブル用バッファ7に格納する。
また、バッファ制御部8は、各バッファから共通データ要素を読み出し、読み出した共通データ要素をスレーブ部3に渡す。
The common unit 4 includes a command buffer 5 that stores command-related information extracted from the first communication data, a data buffer 6 that stores a data portion (payload), and an effective portion of the first communication data. Byte enable buffer 7 for storing a byte enable for designating and a buffer control unit 8.
In FIG. 1, for convenience of explanation, the command buffer 5, the data buffer 6, and the byte enable buffer 7 are components of the I / F module 1, but in reality, these buffers include the I / F module 1. A plurality of storage areas in the computer to be executed.
The buffer control unit 8 classifies the plurality of common data elements extracted by the master unit 2 for each attribute, and stores the plurality of common data elements in the corresponding attribute buffers.
That is, the buffer control unit 8 stores the command related information extracted from the first communication data in the command buffer 5, stores the data portion (payload) in the data buffer 6, and byte enable to the byte enable buffer. 7 is stored.
The buffer control unit 8 reads the common data element from each buffer and passes the read common data element to the slave unit 3.

スレーブ部3は、スレーブ仕様に対応している。
スレーブ部3は、バッファ制御部8により読み出された複数の共通データ要素を用いて、スレーブとなるハードウェアモジュールまたはバスモデル宛てのスレーブ仕様に従った通信データを生成する。
The slave unit 3 corresponds to the slave specification.
The slave unit 3 uses the plurality of common data elements read by the buffer control unit 8 to generate communication data in accordance with the slave specifications addressed to the hardware module or bus model serving as a slave.

信号線9は、マスタとなるハードウェアモジュールからマスタ部2へ送信される読み出し・書き込み要求関連の情報、マスタ部2からハードウェアモジュールへ送信される応答情報、および、通信データ等である。
信号線10は、スレーブ部3からスレーブとなるハードウェアモジュールへ送信される読み出し・書き込み要求関連の情報、ハードウェアモジュールからスレーブ部3へ送信される応答情報、および、通信データ等である。
信号線11は、マスタ部2と共通部4のバッファ制御部8で送受信される各種抽象度・プロトコルに共通の情報であり、信号線12は、スレーブ部3と共通部4のバッファ制御部8で送受信される各種抽象度・プロトコルに共通の情報であり、信号線13、14、15は、それぞれ、コマンド関連情報、データ、バイトイネーブルである。
The signal line 9 is information related to a read / write request transmitted from the master hardware module to the master unit 2, response information transmitted from the master unit 2 to the hardware module, communication data, and the like.
The signal line 10 is information related to a read / write request transmitted from the slave unit 3 to the hardware module serving as a slave, response information transmitted from the hardware module to the slave unit 3, communication data, and the like.
The signal line 11 is information common to various abstractions / protocols transmitted / received by the buffer control unit 8 of the master unit 2 and the common unit 4, and the signal line 12 is the buffer control unit 8 of the slave unit 3 and the common unit 4. The signal lines 13, 14, and 15 are command-related information, data, and byte enable, respectively.

マスタとなるハードウェアモジュールからI/Fモジュール1を介してスレーブとなるハードウェアモジュール又はバスモデルへ通信データを送信するシミュレーションでは、マスタ部2が第1の通信データ管理処理に対応し、スレーブ部3が第2の通信データ管理処理に対応する。
また、マスタとなるハードウェアモジュールが第1のモデルに対応し、スレーブとなるハードウェアモジュール又はバスモデルが第2のモデルに対応する。
また、マスタ仕様が第1の仕様に対応し、スレーブ仕様が第2の仕様に対応する。
スレーブとなるハードウェアモジュール又はバスモデルからI/Fモジュール1を介してマスタとなるハードウェアモジュールへ通信データを送信するシミュレーションでは、スレーブ部3が第1の通信データ管理処理に対応し、マスタ部2が第2の通信データ管理処理に対応する。
また、スレーブ仕様が第1の仕様に対応し、マスタ仕様が第2の仕様に対応する。
また、いずれのシミュレーションにおいても、バッファ制御部8が共通データ要素管理処理に対応する。
In a simulation in which communication data is transmitted from a hardware module serving as a master to a hardware module serving as a slave or a bus model via the I / F module 1, the master unit 2 corresponds to the first communication data management process. 3 corresponds to the second communication data management process.
A hardware module serving as a master corresponds to the first model, and a hardware module or bus model serving as a slave corresponds to the second model.
The master specification corresponds to the first specification, and the slave specification corresponds to the second specification.
In a simulation in which communication data is transmitted from a hardware module or bus model serving as a slave to a hardware module serving as a master via the I / F module 1, the slave unit 3 corresponds to the first communication data management process. 2 corresponds to the second communication data management process.
The slave specification corresponds to the first specification, and the master specification corresponds to the second specification.
In any simulation, the buffer control unit 8 corresponds to the common data element management process.

図2に、実施の形態1によるI/Fモジュール1を用いたバス周辺構成を示す。
プロトコルAが実装されているバスモデル20に、プロトコルAが実装されているモジュール1(21)、トランザクションレベルで実装されているモジュール2(22)、プロトコルAで実装されているモジュール3(23)、プロトコルBで実装されているモジュール4(24)が接続されている。
このとき、バスモデル20と同じプロトコルで実装されているモジュール1(21)とモジュール3(23)は、直接接続可能であるが、バスモデル20とは異なる抽象度、または、プロトコルが実装されているモジュール2(22)およびモジュール4(24)は、直接は接続できないため、それぞれI/Fモジュール1の挿入が必要である。
FIG. 2 shows a bus peripheral configuration using the I / F module 1 according to the first embodiment.
The bus model 20 in which the protocol A is implemented, the module 1 (21) in which the protocol A is implemented, the module 2 (22) in which the transaction level is implemented, and the module 3 (23) in which the protocol A is implemented. The module 4 (24) implemented by the protocol B is connected.
At this time, the module 1 (21) and the module 3 (23) mounted with the same protocol as the bus model 20 can be directly connected, but an abstraction level or protocol different from the bus model 20 is mounted. Since the module 2 (22) and the module 4 (24) that are present cannot be directly connected, the I / F module 1 must be inserted.

図3は、図1に示したI/Fモジュール1を実行するコンピュータであるシミュレーション装置100の構成例を示す。   FIG. 3 shows a configuration example of the simulation apparatus 100 which is a computer that executes the I / F module 1 shown in FIG.

I/Fモジュール実行部101は、I/Fモジュール1を実行する。
バッファ領域102は、図1に示すコマンド用バッファ5、データ用バッファ6、バイトイネーブル用バッファ7に対応する記憶領域である。
マスタ・スレーブ実行部103は、マスタとなるハードウェアモジュール、スレーブとなるハードウェアモジュールまたはバスモデルを実行する。
プログラム記憶部104は、I/Fモジュール1、マスタとなるハードウェアモジュール、スレーブとなるハードウェアモジュールまたはバスモデルのそれぞれに対応するプログラムを記憶する。
The I / F module execution unit 101 executes the I / F module 1.
The buffer area 102 is a storage area corresponding to the command buffer 5, the data buffer 6, and the byte enable buffer 7 shown in FIG.
The master / slave execution unit 103 executes a hardware module serving as a master, a hardware module serving as a slave, or a bus model.
The program storage unit 104 stores a program corresponding to each of the I / F module 1, the master hardware module, the slave hardware module, or the bus model.

I/Fモジュール実行部101において、マスタ部実行部1011は、I/Fモジュール1のマスタ部2を実行する。
すなわち、マスタ部実行部1011は、マスタ部2を実行して、マスタ仕様に従った通信データから共通データ要素を抽出し、抽出した共通データ要素をバッファ制御部8(バッファ制御部実行部1012)に渡す処理を行う。
また、マスタ部実行部1011は、マスタ部2を実行して、バッファ制御部8(バッファ制御部実行部1012)から渡された共通データ要素を用いてマスタ仕様に従った通信データを生成する処理を行う。
マスタ部実行部1011は、マスタのハードウェアモジュールからスレーブのハードウェアモジュールまたはバスモデルへの通信のシミュレーションでは、第1の通信データ管理部として機能する。
また、マスタ部実行部1011は、スレーブのハードウェアモジュールまたはバスモデルからマスタのハードウェアモジュールへの通信のシミュレーションでは、第2の通信データ管理部として機能する。
In the I / F module execution unit 101, the master unit execution unit 1011 executes the master unit 2 of the I / F module 1.
That is, the master unit execution unit 1011 executes the master unit 2, extracts common data elements from communication data according to the master specifications, and extracts the extracted common data elements from the buffer control unit 8 (buffer control unit execution unit 1012). Process to pass to.
In addition, the master unit execution unit 1011 executes the master unit 2 and generates communication data according to the master specification using the common data element passed from the buffer control unit 8 (buffer control unit execution unit 1012). I do.
The master unit execution unit 1011 functions as a first communication data management unit in a simulation of communication from a master hardware module to a slave hardware module or bus model.
The master unit execution unit 1011 functions as a second communication data management unit in a simulation of communication from the slave hardware module or bus model to the master hardware module.

バッファ制御部実行部1012は、I/Fモジュール1のバッファ制御部8を実行する。
すなわち、バッファ制御部実行部1012は、バッファ制御部8を実行して、マスタ部2(マスタ部実行部1011)から渡された共通データ要素を、それぞれに対応するバッファ(コマンド用バッファ、データ用バッファ、バイトイネーブル用バッファ)に格納し、また、各バッファ内の共通データ要素をスレーブ部3(スレーブ部実行部1013)に渡す処理を行う。
また、バッファ制御部実行部1012は、バッファ制御部8を実行して、スレーブ部3(スレーブ部実行部1013)から渡された共通データ要素を、それぞれに対応するバッファ(コマンド用バッファ、データ用バッファ、バイトイネーブル用バッファ)に格納し、また、各バッファ内の共通データ要素をマスタ部2(マスタ部実行部1011)に渡す処理を行う。
バッファ制御部実行部1012は、共通データ要素管理部の例に相当する。
The buffer control unit execution unit 1012 executes the buffer control unit 8 of the I / F module 1.
That is, the buffer control unit execution unit 1012 executes the buffer control unit 8 and sets the common data elements passed from the master unit 2 (master unit execution unit 1011) to the corresponding buffers (command buffer, data buffer). The data is stored in a buffer and a byte enable buffer, and the common data element in each buffer is transferred to the slave unit 3 (slave unit execution unit 1013).
In addition, the buffer control unit execution unit 1012 executes the buffer control unit 8 and sets the common data elements passed from the slave unit 3 (slave unit execution unit 1013) to the corresponding buffers (command buffer, data buffer). The data is stored in a buffer and a byte enable buffer, and the common data element in each buffer is transferred to the master unit 2 (master unit execution unit 1011).
The buffer control unit execution unit 1012 corresponds to an example of a common data element management unit.

スレーブ部実行部1013は、I/Fモジュール1のスレーブ部3を実行する。
すなわち、スレーブ部実行部1013は、スレーブ部3を実行して、バッファ制御部8(バッファ制御部実行部1012)から渡された共通データ要素を用いてスレーブ仕様に従った通信データを生成する処理を行う。
また、スレーブ部実行部1013は、スレーブ部3を実行して、スレーブ仕様に従った通信データから共通データ要素を抽出し、抽出した共通データ要素をバッファ制御部8(バッファ制御部実行部1012)に渡す処理を行う。
スレーブ部実行部1013は、マスタのハードウェアモジュールからスレーブのハードウェアモジュールまたはバスモデルへの通信のシミュレーションでは、第2の通信データ管理部として機能する。
また、スレーブ部実行部1013は、スレーブのハードウェアモジュールまたはバスモデルからマスタのハードウェアモジュールへの通信のシミュレーションでは、第1の通信データ管理部として機能する。
The slave unit execution unit 1013 executes the slave unit 3 of the I / F module 1.
That is, the slave unit execution unit 1013 executes the slave unit 3 and generates communication data according to the slave specification using the common data element passed from the buffer control unit 8 (buffer control unit execution unit 1012). I do.
Also, the slave unit execution unit 1013 executes the slave unit 3 to extract common data elements from communication data according to the slave specifications, and the extracted common data elements are buffered to the buffer control unit 8 (buffer control unit execution unit 1012). Process to pass to.
The slave unit execution unit 1013 functions as a second communication data management unit in a simulation of communication from the master hardware module to the slave hardware module or bus model.
The slave unit execution unit 1013 functions as a first communication data management unit in a simulation of communication from the slave hardware module or bus model to the master hardware module.

図4は、図1に示したI/Fモジュール1のマスタ部2及びスレーブ部3を生成するマスタ・スレーブ生成装置30の構成例を示す。
マスタ・スレーブ生成装置30は、I/Fモジュール生成装置の例に相当する。
FIG. 4 shows a configuration example of a master / slave generation device 30 that generates the master unit 2 and the slave unit 3 of the I / F module 1 shown in FIG.
The master / slave generation device 30 corresponds to an example of an I / F module generation device.

マスタ・スレーブ生成装置30において、パラメータ解析部31は、外部から入力されるパラメータ設定ファイルから、マスタ部2が接続するハードウェアモジュール、およびスレーブ部3が接続するハードウェアモジュールまたはバスモデルについての抽象度やプロトコルに関する情報を解析する。   In the master / slave generation device 30, the parameter analysis unit 31 abstracts the hardware module to which the master unit 2 is connected and the hardware module or bus model to which the slave unit 3 is connected from the parameter setting file input from the outside. Analyzes information about degrees and protocols.

I/O解析部32は、外部から入力される接続モジュールのI/O記述ファイルから、マスタ部2が接続するハードウェアモジュール、およびスレーブ部3が接続するハードウェアモジュールまたはバスモデルのI/O情報を解析する。   The I / O analysis unit 32 receives the I / O description file of the connection module input from the outside, the hardware module to which the master unit 2 is connected, and the I / O of the hardware module or bus model to which the slave unit 3 is connected. Analyze information.

生成部33は、パラメータ解析部31とI/O解析部32からの情報に従ってマスタ部記述(マスタ部2に対応するプログラムコード)およびスレーブ部記述(スレーブ部3に対応するプログラムコード)を生成する。   The generation unit 33 generates a master part description (program code corresponding to the master part 2) and a slave part description (program code corresponding to the slave part 3) according to information from the parameter analysis part 31 and the I / O analysis part 32. .

ライブラリ36は、各種抽象度におけるマスタ部2およびスレーブ部3のテンプレート記述と、一般的に用いられるプロトコルにおけるマスタ部記述とスレーブ部記述を予め格納する。   The library 36 stores in advance template descriptions of the master unit 2 and the slave unit 3 at various levels of abstraction, and a master unit description and a slave unit description in a commonly used protocol.

ライブラリ読み出し部35は、パラメータ設定ファイルの抽象度やプロトコルに関する情報に基づき、ライブラリ36よりマスタ部2およびスレーブ部3のテンプレート記述、または一般的に用いられるプロトコルにおけるマスタ部記述およびスレーブ部記述を読み出し、生成部33または出力部34に渡す。   The library reading unit 35 reads the template description of the master unit 2 and the slave unit 3 from the library 36 or the master unit description and the slave unit description in a commonly used protocol from the library 36 based on the information on the abstraction level and protocol of the parameter setting file. To the generation unit 33 or the output unit 34.

出力部34は、生成部33またはライブラリ読み出し部35より渡されたマスタ部記述およびスレーブ部記述を外部に出力する。   The output unit 34 outputs the master part description and the slave part description passed from the generation unit 33 or the library reading unit 35 to the outside.

信号線37は、予めライブラリ36に書き込まれる各種テンプレート記述、マスタ部記述、および、スレーブ部記述である。
信号線38は、パラメータ設定ファイルから入力される各種パラメータ情報である。
信号線39は、I/O記述ファイルから入力されるI/O情報である。
信号線40は、生成部33からパラメータ解析部31へのパラメータ解析命令である。
信号線41は、パラメータ解析部31から出力されるパラメータ解析結果である。
信号線42は、生成部33からI/O解析部32へのI/O解析命令である。
信号線43は、I/O解析部32から出力されるI/O解析結果である。
信号線44は、生成部33からライブラリ読み出し部35へのライブラリ読み出し命令である。
信号線45は、ライブラリ36からライブラリ読み出し部35に読み出されるテンプレート記述、マスタ部記述、および、スレーブ部記述である。
信号線46は、ライブラリ読み出し部35から生成部33または出力部34へ渡すテンプレート記述、マスタ部記述、および、スレーブ部記述である。
信号線47は、生成部33が生成したマスタ部記述およびスレーブ部記述である。
信号線48は、出力部34から外部へ出力されるマスタ部記述である。
信号線49は、出力部34から外部へ出力されるスレーブ部記述である。
The signal line 37 is a template description, a master part description, and a slave part description written in the library 36 in advance.
The signal line 38 is various parameter information input from the parameter setting file.
The signal line 39 is I / O information input from the I / O description file.
The signal line 40 is a parameter analysis command from the generation unit 33 to the parameter analysis unit 31.
The signal line 41 is a parameter analysis result output from the parameter analysis unit 31.
The signal line 42 is an I / O analysis command from the generation unit 33 to the I / O analysis unit 32.
The signal line 43 is an I / O analysis result output from the I / O analysis unit 32.
The signal line 44 is a library read command from the generation unit 33 to the library read unit 35.
The signal line 45 is a template description, a master part description, and a slave part description that are read from the library 36 to the library reading unit 35.
The signal line 46 is a template description, a master part description, and a slave part description that are passed from the library reading unit 35 to the generation unit 33 or the output unit 34.
The signal line 47 is a master part description and a slave part description generated by the generation unit 33.
The signal line 48 is a master part description output from the output part 34 to the outside.
The signal line 49 is a slave part description output from the output part 34 to the outside.

図4において、生成部33が生成するマスタ部記述及びスレーブ部記述は、第1のプログラムコード及び第2のプログラムコードに対応する。
また、パラメータ解析部31、I/O解析部32及び生成部33は、第1のプログラムコード生成部及び第2のプログラムコード生成部の例に相当する。
In FIG. 4, the master part description and the slave part description generated by the generation unit 33 correspond to the first program code and the second program code.
The parameter analysis unit 31, the I / O analysis unit 32, and the generation unit 33 correspond to examples of a first program code generation unit and a second program code generation unit.

図5は、実施の形態1によるマスタ・スレーブ生成装置30で実行する、マスタ・スレーブ生成のフロー図であり、マスタ部2、スレーブ部3それぞれについて本フローが実行される。   FIG. 5 is a flowchart of master / slave generation executed by the master / slave generation apparatus 30 according to the first embodiment. This flow is executed for each of the master unit 2 and the slave unit 3.

P01では、生成部33が、パラメータ解析部31へ抽象度パラメータの解析命令を出力し、パラメータ解析部31はパラメータ設定ファイルより抽象度パラメータを抽出し解析する。   In P01, the generation unit 33 outputs an abstraction parameter analysis command to the parameter analysis unit 31, and the parameter analysis unit 31 extracts and analyzes the abstraction level parameter from the parameter setting file.

P02では、P01で解析した抽象度がトランザクションレベル(TLM)を示す識別子(例えば、Loosely TimedのLTや、Approximately TimedのAT)であるか、ピンレベルを示す識別子(例えば、PIN)であるかによって分岐する。   In P02, whether the abstraction level analyzed in P01 is an identifier indicating a transaction level (TLM) (for example, an LT of Loosely Timed or an AT of Appropriately Timed) or an identifier indicating a pin level (for example, PIN). Branch.

P11では、P02でTLMを示す識別子ならば、生成部33が、ライブラリ読み出し部35へTLM用テンプレートのライブラリ読み出し命令を出力し、ライブラリ読み出し部35はライブラリ36かから対応するテンプレート記述を読み出し、生成部33へ渡す。   In P11, if the identifier indicates TLM in P02, the generation unit 33 outputs a library read command for the TLM template to the library read unit 35, and the library read unit 35 reads the corresponding template description from the library 36 and generates it. To part 33.

P12では、P11に続き、生成部33がパラメータ解析部31へTLM用のパラメータ解析命令を出力し、パラメータ解析部31はパラメータ設定ファイルよりTLM用の各種パラメータを抽出し解析する。   In P12, following P11, the generation unit 33 outputs a parameter analysis command for TLM to the parameter analysis unit 31, and the parameter analysis unit 31 extracts and analyzes various parameters for TLM from the parameter setting file.

P13では、生成部33が、P12で得られたパラメータ解析結果に基づき、P11で取得したテンプレート記述を書き換え、出力部34へ渡す。   In P13, the generation unit 33 rewrites the template description acquired in P11 based on the parameter analysis result obtained in P12, and passes it to the output unit 34.

P03では、P02でピンレベルを示す識別子ならば、生成部33がパラメータ解析部31へIF分類パラメータ解析命令を出力し、パラメータ解析部31がパラメータ設定ファイルよりIF分類のパラメータを抽出し解析する。   In P03, if the identifier indicates the pin level in P02, the generation unit 33 outputs an IF classification parameter analysis command to the parameter analysis unit 31, and the parameter analysis unit 31 extracts and analyzes the IF classification parameter from the parameter setting file.

P04では、P03で解析したIF分類がAXIやAHB等の一般的なプロトコルであり既にライブラリに用意しているプロトコルであるか、それ以外のプロトコル(OTHER)であるかによって分岐する。   In P04, a branch is made depending on whether the IF classification analyzed in P03 is a general protocol such as AXI or AHB and is a protocol already prepared in the library or another protocol (OTHER).

P21では、P04でそれ以外のプロトコルを示す識別子(OTHER)ならば、生成部33が、ライブラリ読み出し部35へPIN用テンプレートのライブラリ読み出し命令を出力し、ライブラリ読み出し部35はライブラリ36から対応するテンプレート記述を読み出し、生成部33へ渡す。   In P21, if the identifier (OTHER) indicates other protocols in P04, the generation unit 33 outputs a library read command for a PIN template to the library read unit 35, and the library read unit 35 receives the corresponding template from the library 36. The description is read and passed to the generation unit 33.

P22では、P21に続き、生成部33がI/O解析部32へI/O解析命令を出力し、I/O解析部32はI/O記述ファイルよりI/O情報を抽出し解析する。   In P22, following P21, the generation unit 33 outputs an I / O analysis instruction to the I / O analysis unit 32, and the I / O analysis unit 32 extracts and analyzes the I / O information from the I / O description file.

P23では、P22に続き、生成部33がパラメータ解析部31へピンレベル用のパラメータ解析命令を出力し、パラメータ解析部31はパラメータ設定ファイルよりピンレベル用の各種パラメータを抽出し解析する。   In P23, following P22, the generation unit 33 outputs a parameter analysis command for pin level to the parameter analysis unit 31, and the parameter analysis unit 31 extracts and analyzes various parameters for pin level from the parameter setting file.

P24では、生成部33が、P22とP21で得られたI/O解析結果およびパラメータ解析結果に基づき、P21で取得したテンプレート記述を書き換え、出力部34へ渡す。   In P24, the generation unit 33 rewrites the template description acquired in P21 based on the I / O analysis results and parameter analysis results obtained in P22 and P21, and passes them to the output unit 34.

P31では、P04で一般的なプロトコルであり既にライブラリに用意しているプロトコルを示す識別子ならば、生成部33が、ライブラリ読み出し部35へ対応するマスタ部記述またはスレーブ部記述のライブラリ読み出し命令を出力し、ライブラリ読み出し部35はライブラリ36から対応するマスタ部記述またはスレーブ部記述を読み出し、出力部34へ渡す。   In P31, if the identifier indicates a protocol that is a general protocol in P04 and already prepared in the library, the generation unit 33 outputs a library read instruction of the master part description or slave part description corresponding to the library read unit 35. Then, the library reading unit 35 reads the corresponding master part description or slave part description from the library 36 and passes it to the output unit 34.

P05では、出力部34が、P13、P24、または、P31で得られたマスタ部記述またはスレーブ部記述を外部へ出力する。   In P05, the output unit 34 outputs the master part description or the slave part description obtained in P13, P24, or P31 to the outside.

続いて、図6(a)、(b)、(c)は、実施の形態1によるパラメータ解析部31が解析するパラメータ設定ファイル内の記述例である。   6A, 6B, and 6C are description examples in the parameter setting file analyzed by the parameter analysis unit 31 according to the first embodiment.

図6(a)は、マスタ部2に接続するハードウェアモジュールの抽象度がLTであることを示しており、以下ARGUMENT、TL_CMD、TL_ADDR、TL_LEN等は、抽象度がTLMである場合のパラメータであり、共通部4に格納するコマンド関連情報、データ等がどの変数に対応しているのかを示す。
一方、スレーブ部3に接続するハードウェアモジュールまたはバスモデルの抽象度はピンレベルであることを示している。
FIG. 6A shows that the abstraction level of the hardware module connected to the master unit 2 is LT. Hereinafter, ARGUMENT, TL_CMD, TL_ADDR, TL_LEN and the like are parameters when the abstraction level is TLM. Yes, it indicates which variable the command related information, data, etc. stored in the common unit 4 corresponds to.
On the other hand, the level of abstraction of the hardware module or bus model connected to the slave unit 3 is pin level.

図6(b)は、マスタ部2に接続するハードウェアモジュールの抽象度がピンレベルであり、IF分類がAXIであり、既にライブラリ36にマスタ部記述が用意されていることを示している。   FIG. 6B shows that the abstraction level of the hardware module connected to the master unit 2 is the pin level, the IF classification is AXI, and the master unit description is already prepared in the library 36.

図6(c)は、マスタ部2に接続するハードウェアモジュールの抽象度がピンレベルであり、IF分類がOTHERであることを示している。
以下、WCMD、RCMD、RESP、WDATA等は抽象度がピンレベルである場合のパラメータであり、共通部4に格納するコマンド関連情報、データ等がどの信号に対応しているのかを示す。
FIG. 6C shows that the abstraction level of the hardware module connected to the master unit 2 is the pin level, and the IF classification is OTHER.
Hereinafter, WCMD, RCMD, RESP, WDATA, and the like are parameters when the abstraction level is a pin level, and indicate which signal the command related information, data, and the like stored in the common unit 4 correspond to.

図7は、図6(c)のパラメータ設定である場合のマスタ部の処理をタイミング図で示したものである。   FIG. 7 is a timing chart showing processing of the master unit in the case of the parameter setting shown in FIG.

“WCMD={Maddr}@(MCmd=1)”は、MCmdが1のときに書き込み要求としてMaddrを取得することを意味する。
“WDATA={Mdata}@(MCmd=1)”は、Mcmdが1のときに書き込みデータとしてMdataを取得することを意味する。
このため、図7の50のMcmd=1のタイミングにおいて、マスタ部2は、MAddrとMdataをハードウェアモジュールから取得し、共通部4へ送信する。
共通部4は、書き込み要求を正常に受理すると、受理したことを示すACCEPT信号をマスタ部2へ送信する。
“RESP={SCmdAccept=1}@ACCEPT”は、ACCEPT信号がアサートされたら応答としてSCmdAcceptに1をアサートすることを意味しているので、マスタ部2は図7の51でSCmdAcceptを1にする。
“WCMD = {Maddr} @ (MCmd = 1)” means that when MCmd is 1, Maddr is acquired as a write request.
“WDATA = {Mdata} @ (MCmd = 1)” means that Mdata is acquired as write data when Mcmd is 1.
For this reason, at the timing of 50 Mcmd = 1 in FIG. 7, the master unit 2 acquires MAddr and Mdata from the hardware module and transmits them to the common unit 4.
When the common unit 4 normally accepts the write request, the common unit 4 transmits an ACCEPT signal indicating acceptance to the master unit 2.
“RESP = {SCmdAccept = 1} @ACCEPT” means that 1 is asserted to SCmdAccept as a response when the ACCEPT signal is asserted. Therefore, the master unit 2 sets SCmdAccept to 51 in FIG.

以上のように、本実施の形態に係るI/Fモジュール1を用いれば、ハードウェアモジュールまたはバスモデルの各種抽象度や各種プロトコルで共通に情報を処理する共通部4を設けているため、抽象度が異なる場合の変換も可能である。
つまり、I/Fモジュール1をマスタ部2、スレーブ部3、および、共通部4で構成し、各種抽象度やプロトコルで共通に必要となる情報をバッファに格納するようにしたこと、および、パラメータ設定ファイルにおいて抽象度の指定ができるようにしたことで、従来技術では開示されていなかった、異なる抽象度間の変換にも対応可能となる。
また、パラメータ設定ファイルから、抽象度やプロトコルに関連する情報を指定可能としたことで、作成者によらず一様に、一意にI/Fモジュール1のマスタ部2およびスレーブ部3を自動生成することができるので、設計の早期段階でのシステム全体検証を容易に実施可能となる。
つまり、作成者によらず一様に、一意に情報を取得可能となるので、作成者によって記述方法が異なる仕様書から一様に情報を抽出することが困難であった従来技術の課題を解決できる。
As described above, if the I / F module 1 according to the present embodiment is used, the common unit 4 that processes information in common with various abstraction levels and various protocols of the hardware module or bus model is provided. Conversion for different degrees is also possible.
That is, the I / F module 1 includes the master unit 2, the slave unit 3, and the common unit 4, and information that is commonly required for various abstractions and protocols is stored in the buffer. Since the abstraction level can be specified in the setting file, conversion between different abstraction levels, which has not been disclosed in the prior art, can be handled.
In addition, by making it possible to specify information related to the abstraction level and protocol from the parameter setting file, the master unit 2 and slave unit 3 of the I / F module 1 are automatically and uniformly generated regardless of the creator. As a result, the entire system can be easily verified at an early stage of design.
In other words, since it is possible to acquire information uniformly and independently regardless of the creator, it solves the problem of the prior art that was difficult to extract information uniformly from the specification with different description methods depending on the creator. it can.

最後に、本実施の形態に示したシミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成例を図8を参照して説明する。
シミュレーション装置100及びマスタ・スレーブ生成装置30はコンピュータであり、シミュレーション装置100及びマスタ・スレーブ生成装置30の各要素をプログラムで実現することができる。
シミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
Finally, a hardware configuration example of the simulation apparatus 100 and the master / slave generation apparatus 30 shown in the present embodiment will be described with reference to FIG.
The simulation apparatus 100 and the master / slave generation apparatus 30 are computers, and each element of the simulation apparatus 100 and the master / slave generation apparatus 30 can be realized by a program.
As hardware configurations of the simulation apparatus 100 and the master / slave generation apparatus 30, an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input / output device 905 are connected to the bus.

演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えばNIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
図3のバッファ領域102は、例えば、主記憶装置903で実現される。
また、図3のプログラム記憶部104、図4のライブラリ36は、例えば、外部記憶装置902で実現される。
The arithmetic device 901 is a CPU (Central Processing Unit) that executes a program.
The external storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
The main storage device 903 is a RAM (Random Access Memory).
The communication device 904 is, for example, a NIC (Network Interface Card).
The input / output device 905 is, for example, a mouse, a keyboard, a display device, or the like.
The buffer area 102 in FIG. 3 is realized by the main storage device 903, for example.
Further, the program storage unit 104 in FIG. 3 and the library 36 in FIG. 4 are realized by, for example, the external storage device 902.

プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図3及び図4に示す「〜部」(プログラム記憶部104を除く、以下も同様)として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図3及び図4に示す「〜部」の機能を実現するプログラムを実行する。
また、本実施の形態の説明において、「〜の抽出」、「〜の解析」、「〜の生成」、「〜の検知」、「〜の設定」、「〜の選択」、等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
The program is normally stored in the external storage device 902, and is loaded into the main storage device 903 and sequentially read into the arithmetic device 901 and executed.
The program is a program that realizes a function described as “˜unit” (excluding the program storage unit 104, the same applies below) shown in FIG. 3 and FIG.
Further, an operating system (OS) is also stored in the external storage device 902. At least a part of the OS is loaded into the main storage device 903, and the arithmetic device 901 executes the OS as shown in FIG. 3 and FIG. Executes a program that realizes the function of "~ part".
Further, in the description of the present embodiment, it is described as “extraction of”, “analysis of”, “generation of”, “detection of”, “setting of”, “selection of”, etc. Information, data, signal values, and variable values indicating the results of processing are stored in the main storage device 903 as files.

なお、図8の構成は、あくまでもシミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成の一例を示すものであり、シミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成は図8に記載の構成に限らず、他の構成であってもよい。   The configuration in FIG. 8 is merely an example of the hardware configuration of the simulation device 100 and the master / slave generation device 30, and the hardware configuration of the simulation device 100 and the master / slave generation device 30 is described in FIG. It is not limited to this configuration, and other configurations may be used.

1 I/Fモジュール、2 マスタ部、3 スレーブ部、4 共通部、5 コマンド用バッファ、6 データ用バッファ、7 バイトイネーブル用バッファ、8 バッファ制御部、9 信号線、10 信号線、11 信号線、12 信号線、13 信号線、14 信号線、15 信号線、30 マスタ・スレーブ生成装置、31 パラメータ解析部、32 I/O解析部、33 生成部、34 出力部、35 ライブラリ読み出し部、36 ライブラリ、37 信号線、38 信号線、39 信号線、40 信号線、41 信号線、42 信号線、43 信号線、44 信号線、45 信号線、46 信号線、47 信号線、48 信号線、49 信号線、100 シミュレーション装置、101 I/Fモジュール実行部、102 バッファ領域、103 マスタ・スレーブ実行部、104 プログラム記憶部、1011 マスタ部実行部、1012 バッファ制御部実行部、1013 スレーブ部実行部。   1 I / F module, 2 master unit, 3 slave unit, 4 common unit, 5 command buffer, 6 data buffer, 7 byte enable buffer, 8 buffer control unit, 9 signal line, 10 signal line, 11 signal line , 12 signal lines, 13 signal lines, 14 signal lines, 15 signal lines, 30 master / slave generation device, 31 parameter analysis unit, 32 I / O analysis unit, 33 generation unit, 34 output unit, 35 library read unit, 36 Library, 37 signal line, 38 signal line, 39 signal line, 40 signal line, 41 signal line, 42 signal line, 43 signal line, 44 signal line, 45 signal line, 46 signal line, 47 signal line, 48 signal line, 49 Signal line, 100 Simulation device, 101 I / F module execution unit, 102 Buffer area, 103 Master Over Bed execution unit, 104 a program storage unit, 1011 a master unit executing unit, 1012 a buffer controller execution unit, 1013 a slave unit executing unit.

Claims (6)

ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションを行うシミュレーション装置であって、
前記第1のモデルにより生成された前記第1の仕様に従った通信データを解析し、前記通信データから、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する第1の通信データ管理部と、
前記第1の通信データ管理部により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成する第2の通信データ管理部とを有することを特徴とするシミュレーション装置。
A first model that is a hardware module or bus model according to a first specification that is one of a plurality of specifications of a hardware module or a bus model; and one of the plurality of specifications. A simulation device for simulating communication with a second model which is a hardware module or a bus model according to a second specification different from the first specification,
It is a data element that is used in common in simulation of communication for all the specifications of the plurality of specifications from the communication data by analyzing the communication data according to the first specification generated by the first model. A first communication data management unit for extracting common data elements;
A second communication data management unit that generates communication data addressed to the second model according to the second specification using the common data element extracted by the first communication data management unit. A characteristic simulation device.
前記第1の通信データ管理部は、
前記第1の仕様に従った通信データから、複数の属性の複数の共通データ要素を抽出し、
前記シミュレーション装置は、更に、
共通データ要素の属性ごとに設けられた複数の記憶領域と、
前記第1の通信データ管理部により抽出された前記複数の共通データ要素を属性ごとに分類し、前記複数の共通データ要素を、それぞれ、対応する属性の記憶領域に格納するとともに、前記複数の記憶領域から前記複数の共通データ要素を読み出す共通データ要素管理部とを有し、
前記第2の通信データ管理部は、
前記共通データ要素管理部により前記複数の記憶領域から読み出された前記複数の共通データ要素を用いて前記第2の仕様に従った通信データを生成することを特徴とする請求項1に記載のシミュレーション装置。
The first communication data management unit includes:
Extracting a plurality of common data elements of a plurality of attributes from the communication data according to the first specification;
The simulation apparatus further includes:
A plurality of storage areas provided for each attribute of the common data element;
The plurality of common data elements extracted by the first communication data management unit are classified for each attribute, and the plurality of common data elements are respectively stored in storage areas of corresponding attributes, and the plurality of storages A common data element management unit that reads the plurality of common data elements from the area,
The second communication data management unit
The communication data according to the second specification is generated using the plurality of common data elements read from the plurality of storage areas by the common data element management unit. Simulation device.
ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションを行うコンピュータに、
前記第1のモデルにより生成された前記第1の仕様に従った通信データを解析し、前記通信データから、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する第1の通信データ管理処理と、
前記第1の通信データ管理処理により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成する第2の通信データ管理処理とを実行させることを特徴とするプログラム。
A first model that is a hardware module or bus model according to a first specification that is one of a plurality of specifications of a hardware module or a bus model; and one of the plurality of specifications. A computer that simulates communication with a second model that is a hardware module or a bus model according to a second specification different from the first specification;
It is a data element that is used in common in simulation of communication for all the specifications of the plurality of specifications from the communication data by analyzing the communication data according to the first specification generated by the first model. A first communication data management process for extracting common data elements;
Executing a second communication data management process for generating communication data addressed to the second model according to the second specification using the common data element extracted by the first communication data management process A program characterized by
前記第1の通信データ管理処理において、
前記コンピュータに、
前記第1の仕様に従った通信データから、複数の属性の複数の共通データ要素を抽出させ、
前記プログラムは、更に、
前記第1の通信データ管理処理により抽出された前記複数の共通データ要素を属性ごとに分類し、前記複数の共通データ要素を、それぞれ、共通データ要素の属性ごとに設けられた前記コンピュータ内の複数の記憶領域のうちの対応する属性の記憶領域に格納するとともに、前記複数の記憶領域から前記複数の共通データ要素を読み出す共通データ要素管理処理を、前記コンピュータに実行させ、
前記第2の通信データ管理処理において、
前記コンピュータに、
前記共通データ要素管理処理により前記複数の記憶領域から読み出された前記複数の共通データ要素を用いて前記第2の仕様に従った通信データを生成させることを特徴とする請求項3に記載のプログラム。
In the first communication data management process,
In the computer,
Extracting a plurality of common data elements of a plurality of attributes from the communication data according to the first specification;
The program further includes:
The plurality of common data elements extracted by the first communication data management process are classified for each attribute, and the plurality of common data elements are respectively provided in the computer provided for each attribute of the common data element. Storage in the storage area of the corresponding attribute of the storage area, and causing the computer to execute a common data element management process of reading the plurality of common data elements from the plurality of storage areas,
In the second communication data management process,
In the computer,
The communication data according to the second specification is generated using the plurality of common data elements read from the plurality of storage areas by the common data element management processing. program.
ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションが行われる際に、前記第1のモデルと前記第2のモデルとのインタフェースとして機能するプログラムであるインタフェースモジュールを生成するインタフェースモジュール生成装置であって、
前記第1の仕様を解析し、前記第1のモデルにより前記第1の仕様に従って生成される通信データに含まれるデータ要素のうち、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を判別し、判別結果に基づき、前記インタフェースモジュールに含まれるプログラムコードであって、前記通信データから前記共通データ要素を抽出するプログラムコードを、第1のプログラムコードとして生成する第1のプログラムコード生成部と、
前記第2の仕様を解析し、前記インタフェースモジュールに含まれるプログラムコードであって、前記第1のプログラムコードの実行により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成するプログラムコードを、第2のプログラムコードとして生成する第2のプログラムコード生成部とを有することを特徴とするインタフェースモジュール生成装置。
A first model that is a hardware module or bus model according to a first specification that is one of a plurality of specifications of a hardware module or a bus model; and one of the plurality of specifications. When a simulation of communication with a second model which is a hardware module or a bus model according to a second specification different from the first specification is performed, the first model and the second model An interface module generation device that generates an interface module that is a program that functions as an interface with a model,
Analyzing the first specification and using it in communication simulation for all specifications of the plurality of specifications among the data elements included in the communication data generated according to the first specification by the first model A common data element that is a data element to be processed, and a program code that is included in the interface module based on the determination result and that extracts the common data element from the communication data is a first program code A first program code generation unit for generating
Analyzing the second specification and using the common data element extracted by execution of the first program code, which is a program code included in the interface module, the second specification according to the second specification An interface module generation device comprising: a second program code generation unit that generates a program code for generating communication data addressed to the model as a second program code.
ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションが行われる際に、前記第1のモデルと前記第2のモデルとのインタフェースとして機能するプログラムであるインタフェースモジュールを生成するコンピュータに、
前記第1の仕様を解析し、前記第1のモデルにより前記第1の仕様に従って生成される通信データに含まれるデータ要素のうち、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を判別し、判別結果に基づき、前記インタフェースモジュールに含まれるプログラムコードであって、前記通信データから前記共通データ要素を抽出するプログラムコードを、第1のプログラムコードとして生成する第1のプログラムコード生成処理と、
前記第2の仕様を解析し、前記インタフェースモジュールに含まれるプログラムコードであって、前記第1のプログラムコードの実行により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成するプログラムコードを、第2のプログラムコードとして生成する第2のプログラムコード生成処理とを実行させることを特徴とするプログラム。
A first model that is a hardware module or bus model according to a first specification that is one of a plurality of specifications of a hardware module or a bus model; and one of the plurality of specifications. When a simulation of communication with a second model which is a hardware module or a bus model according to a second specification different from the first specification is performed, the first model and the second model To a computer that generates an interface module, which is a program that functions as an interface with the model,
Analyzing the first specification and using it in communication simulation for all specifications of the plurality of specifications among the data elements included in the communication data generated according to the first specification by the first model A common data element that is a data element to be processed, and a program code that is included in the interface module based on the determination result and that extracts the common data element from the communication data is a first program code A first program code generation process generated as
Analyzing the second specification and using the common data element extracted by execution of the first program code, which is a program code included in the interface module, the second specification according to the second specification A program for causing a program code for generating communication data addressed to the model to be generated as a second program code.
JP2014045607A 2014-03-07 2014-03-07 Simulation device, interface module generation device, and program Expired - Fee Related JP6265788B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014045607A JP6265788B2 (en) 2014-03-07 2014-03-07 Simulation device, interface module generation device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014045607A JP6265788B2 (en) 2014-03-07 2014-03-07 Simulation device, interface module generation device, and program

Publications (2)

Publication Number Publication Date
JP2015170221A true JP2015170221A (en) 2015-09-28
JP6265788B2 JP6265788B2 (en) 2018-01-24

Family

ID=54202872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014045607A Expired - Fee Related JP6265788B2 (en) 2014-03-07 2014-03-07 Simulation device, interface module generation device, and program

Country Status (1)

Country Link
JP (1) JP6265788B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107067940A (en) * 2016-12-28 2017-08-18 杭州百子尖科技有限公司 Pin-connected panel chemical engineering simulation equipment
CN110275493A (en) * 2018-03-15 2019-09-24 西门子股份公司 Method and apparatus for control technology system
CN113472964A (en) * 2021-06-05 2021-10-01 山东英信计算机技术有限公司 Image processing device and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013227A (en) * 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd Simulation device and simulation model generation program
JP2006343942A (en) * 2005-06-08 2006-12-21 Nec Electronics Corp Bus system design method and device
JP2010231633A (en) * 2009-03-27 2010-10-14 Fujitsu Ltd Program, apparatus and method for supporting verification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013227A (en) * 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd Simulation device and simulation model generation program
JP2006343942A (en) * 2005-06-08 2006-12-21 Nec Electronics Corp Bus system design method and device
JP2010231633A (en) * 2009-03-27 2010-10-14 Fujitsu Ltd Program, apparatus and method for supporting verification

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
酒井 皓太, 垣内 洋介, 浜口 清治: "トランザクション識別子を伴うバスプロトコル間の変換器自動生成手法", 研究報告システムLSI設計技術(SLDM), vol. 第2011-SLDM-149巻/第32号, JPN6017044042, 11 March 2011 (2011-03-11), JP, pages 第1-6頁 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107067940A (en) * 2016-12-28 2017-08-18 杭州百子尖科技有限公司 Pin-connected panel chemical engineering simulation equipment
CN110275493A (en) * 2018-03-15 2019-09-24 西门子股份公司 Method and apparatus for control technology system
CN110275493B (en) * 2018-03-15 2022-08-02 西门子股份公司 Method and device for controlling a technical system
CN113472964A (en) * 2021-06-05 2021-10-01 山东英信计算机技术有限公司 Image processing device and system
CN113472964B (en) * 2021-06-05 2024-04-16 山东英信计算机技术有限公司 Image processing device and system

Also Published As

Publication number Publication date
JP6265788B2 (en) 2018-01-24

Similar Documents

Publication Publication Date Title
US9218443B1 (en) Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
US7523023B1 (en) Automatic generation of component interfaces for computational hardware implementations generated from a block diagram model
US9501269B2 (en) Automatic source code generation for accelerated function calls
US7472361B2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
US20220292248A1 (en) Method, system and verifying platform for system on chip verification
US8387005B1 (en) Generation of multi-domain code from a graphical program
CN112949233B (en) Automatic development method and device of FPGA chip and electronic equipment
US8181131B2 (en) Enhanced analysis of array-based netlists via reparameterization
US10586003B1 (en) Circuit design using high level synthesis and linked hardware description language libraries
JP6600011B2 (en) Efficient waveform generation for emulation
JP6265788B2 (en) Simulation device, interface module generation device, and program
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
WO2024046362A1 (en) Verification system, verification method, electronic device, and storage medium
US10816600B1 (en) Protocol analysis and visualization during simulation
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
US9710581B1 (en) VIP assisted method and apparatus to enable SOC integration and software development
Bombieri et al. Correct-by-construction generation of device drivers based on RTL testbenches
Caba et al. Rapid prototyping and verification of hardware modules generated using hls
Silva et al. A Distributed Functional Verification Environment for the Design of System-on-Chip in Heterogeneous Architectures
CN115983172B (en) Method and simulation platform for post simulation
Shakhmatov et al. A functional verification system of IP-blocks in network protocols
US20230289500A1 (en) Method and system for building hardware images from heterogeneous designs for eletronic systems
Lund Design and Application of a Co-Simulation Framework for Chisel
US20220066911A1 (en) Virtual machine for developing and testing target code for hardware designs
US20230205969A1 (en) Techniques for modeling and verification of convergence for hierarchical domain crossings

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171121

R150 Certificate of patent or registration of utility model

Ref document number: 6265788

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees