JP6265788B2 - シミュレーション装置及びインタフェースモジュール生成装置及びプログラム - Google Patents

シミュレーション装置及びインタフェースモジュール生成装置及びプログラム Download PDF

Info

Publication number
JP6265788B2
JP6265788B2 JP2014045607A JP2014045607A JP6265788B2 JP 6265788 B2 JP6265788 B2 JP 6265788B2 JP 2014045607 A JP2014045607 A JP 2014045607A JP 2014045607 A JP2014045607 A JP 2014045607A JP 6265788 B2 JP6265788 B2 JP 6265788B2
Authority
JP
Japan
Prior art keywords
model
unit
communication
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.)
Expired - Fee Related
Application number
JP2014045607A
Other languages
English (en)
Other versions
JP2015170221A (ja
Inventor
友美 竹内
友美 竹内
峯岸 孝行
孝行 峯岸
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/ja
Publication of JP2015170221A publication Critical patent/JP2015170221A/ja
Application granted granted Critical
Publication of JP6265788B2 publication Critical patent/JP6265788B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、LSI開発において、RTLやSystemC(トランザクションレベル、ピンレベル)等でそれぞれ設計された既存モジュールを用い、早期の段階でシステム全体の検証を容易に実施可能とするための、インタフェース(I/F)モジュール等に関するものである。
従来、LSI開発では、Verilog−HDLやVHDLといったハードウェア記述言語による設計(以下、RTL設計と呼ぶ)、検証をメインで行ってきた。
しかし、近年のLSIの大規模化に伴いRTL設計されたハードウェアモジュール(以下、RTLモジュールと呼ぶ)を用いてのシステム全体検証は多大な時間を要することが問題となっており、ハードウェア記述言語よりも抽象度の高いC言語、C++言語、SystemC言語などの高級言語を用いて設計(以下、高位設計と呼ぶ)、検証を行うことで、検証時間の短縮を図る技術が実用化されてきている。
さらに、高位設計されたハードウェアモジュール(以下、高位モジュールと呼ぶ)と既存のRTLモジュールを混在させての検証を可能とする技術もあり、設計の早期段階でシステム全体検証が可能となってきている。
しかし、開発するLSIのプロトコルと、既存のRTLモジュールのプロトコルが異なる場合や、設計早期の段階でプロトコルが決定しておらず、高位モジュール(ハードウェアモジュールやバスモデル)ではトランザクションレベルでの通信を行い、RTLモジュールのピンレベルでの通信と抽象度が異なる場合などは、そのままでは各モジュール間の接続ができなかった。
そこで、抽象度やプロトコルの異なる各モジュール間に、変換アダプタ(ブリッジ、ラッパ、等で呼ばれることもある)を挿入する技術が一般的に用いられる。
しかし、変換アダプタの処理は、抽象度やプロトコル毎に異なるため、接続するモジュールおよびバスモデル間の抽象度とプロトコルの組み合わせの数だけ、変換アダプタが必要となる。
変換アダプタの作成は、ハードウェアモジュールの設計と同等の時間を要する場合もあるため、バス周辺構成の変更や、プロトコルの変更があると、その分作成期間を要することになり、変換アダプタ作成が、システム全体検証のボトルネックになってしまう。
従来技術は、上記のような問題点を解決するため、バスモデルと同一のプロトコル仕様であるハードウェアモジュール1と、バスモデルと異なるプロトコル仕様であるハードウェアモジュール2との通信を可能とする、データ受信手段と、データ変換手段と、データ送信手段を備えるラッパモデルを自動生成していた(例えば、特許文献1)。
特開2010−231633号公報
従来技術では、バスモデルと異なるプロトコルを実装したハードウェアモジュール2を、バスモデルに接続可能とするラッパモデルの自動生成時に、ハードウェアモジュール2の実装情報からバス接続情報を取得し、ハードウェアモジュール2の仕様書からトランザクション情報(プロトコル)を抽出し、それらの情報とバスモデルの仕様に基づき、データ受信手段、データ変換手段、データ送信手段を備えるラッパモデルを生成していた。
しかし、仕様書は作成者毎に記述方法がまちまちであり、一様に情報を抽出可能とは限らない。
また、早期段階でのシステム全体検証は、高位モジュールとRTLモジュールが混在した環境で行う場合があるが、従来技術のラッパモデル自動生成方法は、ハードウェアモジュール2およびバスモデルがどちらもピンレベルで設計されている場合のみ開示されており、抽象度が異なる場合の自動生成方法については開示されていない。
本発明は、このような課題を解決し、抽象度やプロトコルといった仕様が異なるモジュールをフレキシブルに接続し、設計早期の段階で、容易にシステム全体のシミュレーションを実行可能とすることを主な目的とする。
本発明に係るシミュレーション装置は、
ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションを行うシミュレーション装置であって、
前記第1のモデルにより生成された前記第1の仕様に従った通信データを解析し、前記通信データから、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する第1の通信データ管理部と、
前記第1の通信データ管理部により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成する第2の通信データ管理部とを有することを特徴とする。
本発明によれば、第1の仕様に従った通信データから、全ての仕様のシミュレーションにおいて共通に利用される共通データ要素を抽出し、抽出した共通データ要素を用いて第2の仕様に従った通信データを生成するため、仕様が異なるモジュールをフレキシブルに接続し、設計早期の段階で、容易にシステム全体のシミュレーションを実行することができる。
実施の形態1に係るI/Fモジュールの構成例を示す図。 実施の形態1に係るI/Fモジュールを用いたバス周辺構成を示す図。 実施の形態1に係るシミュレーション装置の構成例を示す図。 実施の形態1に係るマスタ・スレーブ生成装置の構成例を示す図。 実施の形態1に係るマスタ・スレーブ生成フローを示すフローチャート図。 実施の形態1に係るパラメータ設定ファイルの記述例を示す図。 実施の形態1に係るマスタ部の処理タイミングを示す図。 実施の形態1に係るシミュレーション装置及びマスタ・スレーブ生成装置のハードウェア構成例を示す図。
実施の形態1.
図1は、実施の形態1によるI/Fモジュールの構成を示したものである。
I/Fモジュール1は、マスタのハードウェアモジュールと、スレーブのハードウェアモジュール又はバスモデルとの間の通信のシミュレーションを行うコンピュータにより実行されるプログラムである。
I/Fモジュール1は、データ通信のマスタとなるハードウェアモジュールとの接続を行うマスタ部2と、データ通信のスレーブとなるハードウェアモジュールまたはバスモデルとの接続を行うスレーブ部3と、マスタ部2とスレーブ部3を仲介する共通部4で構成される。
以下では、ハードウェアモジュールまたはバスモデルのプロトコル、抽象度を仕様と表記する。
また、以下では、マスタとなるハードウェアモジュールの仕様(プロトコル、抽象度)を、マスタ仕様と表記する。
更に、スレーブとなるハードウェアモジュールまたはバスモデルの仕様(プロトコル、抽象度)を、スレーブ仕様と表記する。
マスタ仕様、スレーブ仕様は、それぞれ、ハードウェアモジュールまたはバスモデルの複数の仕様のうちの1つである。
図1において、マスタ部2は、マスタ仕様に対応しており、マスタのハードウェアモジュールにより生成されたマスタ仕様に従った通信データを解析し、当該通信データから、複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する。
そして、マスタ部2は、抽出した共通データ要素を、共通部4に渡す。
より具体的には、マスタ部2は、共通データ要素として、通信データから、コマンド関連情報と、データ部分(ペイロード)と、第1の通信データのうちの有効箇所を指定するバイトイネーブルを抽出する。
共通部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に渡す。
スレーブ部3は、スレーブ仕様に対応している。
スレーブ部3は、バッファ制御部8により読み出された複数の共通データ要素を用いて、スレーブとなるハードウェアモジュールまたはバスモデル宛てのスレーブ仕様に従った通信データを生成する。
信号線9は、マスタとなるハードウェアモジュールからマスタ部2へ送信される読み出し・書き込み要求関連の情報、マスタ部2からハードウェアモジュールへ送信される応答情報、および、通信データ等である。
信号線10は、スレーブ部3からスレーブとなるハードウェアモジュールへ送信される読み出し・書き込み要求関連の情報、ハードウェアモジュールからスレーブ部3へ送信される応答情報、および、通信データ等である。
信号線11は、マスタ部2と共通部4のバッファ制御部8で送受信される各種抽象度・プロトコルに共通の情報であり、信号線12は、スレーブ部3と共通部4のバッファ制御部8で送受信される各種抽象度・プロトコルに共通の情報であり、信号線13、14、15は、それぞれ、コマンド関連情報、データ、バイトイネーブルである。
マスタとなるハードウェアモジュールからI/Fモジュール1を介してスレーブとなるハードウェアモジュール又はバスモデルへ通信データを送信するシミュレーションでは、マスタ部2が第1の通信データ管理処理に対応し、スレーブ部3が第2の通信データ管理処理に対応する。
また、マスタとなるハードウェアモジュールが第1のモデルに対応し、スレーブとなるハードウェアモジュール又はバスモデルが第2のモデルに対応する。
また、マスタ仕様が第1の仕様に対応し、スレーブ仕様が第2の仕様に対応する。
スレーブとなるハードウェアモジュール又はバスモデルからI/Fモジュール1を介してマスタとなるハードウェアモジュールへ通信データを送信するシミュレーションでは、スレーブ部3が第1の通信データ管理処理に対応し、マスタ部2が第2の通信データ管理処理に対応する。
また、スレーブ仕様が第1の仕様に対応し、マスタ仕様が第2の仕様に対応する。
また、いずれのシミュレーションにおいても、バッファ制御部8が共通データ要素管理処理に対応する。
図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の挿入が必要である。
図3は、図1に示したI/Fモジュール1を実行するコンピュータであるシミュレーション装置100の構成例を示す。
I/Fモジュール実行部101は、I/Fモジュール1を実行する。
バッファ領域102は、図1に示すコマンド用バッファ5、データ用バッファ6、バイトイネーブル用バッファ7に対応する記憶領域である。
マスタ・スレーブ実行部103は、マスタとなるハードウェアモジュール、スレーブとなるハードウェアモジュールまたはバスモデルを実行する。
プログラム記憶部104は、I/Fモジュール1、マスタとなるハードウェアモジュール、スレーブとなるハードウェアモジュールまたはバスモデルのそれぞれに対応するプログラムを記憶する。
I/Fモジュール実行部101において、マスタ部実行部1011は、I/Fモジュール1のマスタ部2を実行する。
すなわち、マスタ部実行部1011は、マスタ部2を実行して、マスタ仕様に従った通信データから共通データ要素を抽出し、抽出した共通データ要素をバッファ制御部8(バッファ制御部実行部1012)に渡す処理を行う。
また、マスタ部実行部1011は、マスタ部2を実行して、バッファ制御部8(バッファ制御部実行部1012)から渡された共通データ要素を用いてマスタ仕様に従った通信データを生成する処理を行う。
マスタ部実行部1011は、マスタのハードウェアモジュールからスレーブのハードウェアモジュールまたはバスモデルへの通信のシミュレーションでは、第1の通信データ管理部として機能する。
また、マスタ部実行部1011は、スレーブのハードウェアモジュールまたはバスモデルからマスタのハードウェアモジュールへの通信のシミュレーションでは、第2の通信データ管理部として機能する。
バッファ制御部実行部1012は、I/Fモジュール1のバッファ制御部8を実行する。
すなわち、バッファ制御部実行部1012は、バッファ制御部8を実行して、マスタ部2(マスタ部実行部1011)から渡された共通データ要素を、それぞれに対応するバッファ(コマンド用バッファ、データ用バッファ、バイトイネーブル用バッファ)に格納し、また、各バッファ内の共通データ要素をスレーブ部3(スレーブ部実行部1013)に渡す処理を行う。
また、バッファ制御部実行部1012は、バッファ制御部8を実行して、スレーブ部3(スレーブ部実行部1013)から渡された共通データ要素を、それぞれに対応するバッファ(コマンド用バッファ、データ用バッファ、バイトイネーブル用バッファ)に格納し、また、各バッファ内の共通データ要素をマスタ部2(マスタ部実行部1011)に渡す処理を行う。
バッファ制御部実行部1012は、共通データ要素管理部の例に相当する。
スレーブ部実行部1013は、I/Fモジュール1のスレーブ部3を実行する。
すなわち、スレーブ部実行部1013は、スレーブ部3を実行して、バッファ制御部8(バッファ制御部実行部1012)から渡された共通データ要素を用いてスレーブ仕様に従った通信データを生成する処理を行う。
また、スレーブ部実行部1013は、スレーブ部3を実行して、スレーブ仕様に従った通信データから共通データ要素を抽出し、抽出した共通データ要素をバッファ制御部8(バッファ制御部実行部1012)に渡す処理を行う。
スレーブ部実行部1013は、マスタのハードウェアモジュールからスレーブのハードウェアモジュールまたはバスモデルへの通信のシミュレーションでは、第2の通信データ管理部として機能する。
また、スレーブ部実行部1013は、スレーブのハードウェアモジュールまたはバスモデルからマスタのハードウェアモジュールへの通信のシミュレーションでは、第1の通信データ管理部として機能する。
図4は、図1に示したI/Fモジュール1のマスタ部2及びスレーブ部3を生成するマスタ・スレーブ生成装置30の構成例を示す。
マスタ・スレーブ生成装置30は、I/Fモジュール生成装置の例に相当する。
マスタ・スレーブ生成装置30において、パラメータ解析部31は、外部から入力されるパラメータ設定ファイルから、マスタ部2が接続するハードウェアモジュール、およびスレーブ部3が接続するハードウェアモジュールまたはバスモデルについての抽象度やプロトコルに関する情報を解析する。
I/O解析部32は、外部から入力される接続モジュールのI/O記述ファイルから、マスタ部2が接続するハードウェアモジュール、およびスレーブ部3が接続するハードウェアモジュールまたはバスモデルのI/O情報を解析する。
生成部33は、パラメータ解析部31とI/O解析部32からの情報に従ってマスタ部記述(マスタ部2に対応するプログラムコード)およびスレーブ部記述(スレーブ部3に対応するプログラムコード)を生成する。
ライブラリ36は、各種抽象度におけるマスタ部2およびスレーブ部3のテンプレート記述と、一般的に用いられるプロトコルにおけるマスタ部記述とスレーブ部記述を予め格納する。
ライブラリ読み出し部35は、パラメータ設定ファイルの抽象度やプロトコルに関する情報に基づき、ライブラリ36よりマスタ部2およびスレーブ部3のテンプレート記述、または一般的に用いられるプロトコルにおけるマスタ部記述およびスレーブ部記述を読み出し、生成部33または出力部34に渡す。
出力部34は、生成部33またはライブラリ読み出し部35より渡されたマスタ部記述およびスレーブ部記述を外部に出力する。
信号線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から外部へ出力されるスレーブ部記述である。
図4において、生成部33が生成するマスタ部記述及びスレーブ部記述は、第1のプログラムコード及び第2のプログラムコードに対応する。
また、パラメータ解析部31、I/O解析部32及び生成部33は、第1のプログラムコード生成部及び第2のプログラムコード生成部の例に相当する。
図5は、実施の形態1によるマスタ・スレーブ生成装置30で実行する、マスタ・スレーブ生成のフロー図であり、マスタ部2、スレーブ部3それぞれについて本フローが実行される。
P01では、生成部33が、パラメータ解析部31へ抽象度パラメータの解析命令を出力し、パラメータ解析部31はパラメータ設定ファイルより抽象度パラメータを抽出し解析する。
P02では、P01で解析した抽象度がトランザクションレベル(TLM)を示す識別子(例えば、Loosely TimedのLTや、Approximately TimedのAT)であるか、ピンレベルを示す識別子(例えば、PIN)であるかによって分岐する。
P11では、P02でTLMを示す識別子ならば、生成部33が、ライブラリ読み出し部35へTLM用テンプレートのライブラリ読み出し命令を出力し、ライブラリ読み出し部35はライブラリ36かから対応するテンプレート記述を読み出し、生成部33へ渡す。
P12では、P11に続き、生成部33がパラメータ解析部31へTLM用のパラメータ解析命令を出力し、パラメータ解析部31はパラメータ設定ファイルよりTLM用の各種パラメータを抽出し解析する。
P13では、生成部33が、P12で得られたパラメータ解析結果に基づき、P11で取得したテンプレート記述を書き換え、出力部34へ渡す。
P03では、P02でピンレベルを示す識別子ならば、生成部33がパラメータ解析部31へIF分類パラメータ解析命令を出力し、パラメータ解析部31がパラメータ設定ファイルよりIF分類のパラメータを抽出し解析する。
P04では、P03で解析したIF分類がAXIやAHB等の一般的なプロトコルであり既にライブラリに用意しているプロトコルであるか、それ以外のプロトコル(OTHER)であるかによって分岐する。
P21では、P04でそれ以外のプロトコルを示す識別子(OTHER)ならば、生成部33が、ライブラリ読み出し部35へPIN用テンプレートのライブラリ読み出し命令を出力し、ライブラリ読み出し部35はライブラリ36から対応するテンプレート記述を読み出し、生成部33へ渡す。
P22では、P21に続き、生成部33がI/O解析部32へI/O解析命令を出力し、I/O解析部32はI/O記述ファイルよりI/O情報を抽出し解析する。
P23では、P22に続き、生成部33がパラメータ解析部31へピンレベル用のパラメータ解析命令を出力し、パラメータ解析部31はパラメータ設定ファイルよりピンレベル用の各種パラメータを抽出し解析する。
P24では、生成部33が、P22とP21で得られたI/O解析結果およびパラメータ解析結果に基づき、P21で取得したテンプレート記述を書き換え、出力部34へ渡す。
P31では、P04で一般的なプロトコルであり既にライブラリに用意しているプロトコルを示す識別子ならば、生成部33が、ライブラリ読み出し部35へ対応するマスタ部記述またはスレーブ部記述のライブラリ読み出し命令を出力し、ライブラリ読み出し部35はライブラリ36から対応するマスタ部記述またはスレーブ部記述を読み出し、出力部34へ渡す。
P05では、出力部34が、P13、P24、または、P31で得られたマスタ部記述またはスレーブ部記述を外部へ出力する。
続いて、図6(a)、(b)、(c)は、実施の形態1によるパラメータ解析部31が解析するパラメータ設定ファイル内の記述例である。
図6(a)は、マスタ部2に接続するハードウェアモジュールの抽象度がLTであることを示しており、以下ARGUMENT、TL_CMD、TL_ADDR、TL_LEN等は、抽象度がTLMである場合のパラメータであり、共通部4に格納するコマンド関連情報、データ等がどの変数に対応しているのかを示す。
一方、スレーブ部3に接続するハードウェアモジュールまたはバスモデルの抽象度はピンレベルであることを示している。
図6(b)は、マスタ部2に接続するハードウェアモジュールの抽象度がピンレベルであり、IF分類がAXIであり、既にライブラリ36にマスタ部記述が用意されていることを示している。
図6(c)は、マスタ部2に接続するハードウェアモジュールの抽象度がピンレベルであり、IF分類がOTHERであることを示している。
以下、WCMD、RCMD、RESP、WDATA等は抽象度がピンレベルである場合のパラメータであり、共通部4に格納するコマンド関連情報、データ等がどの信号に対応しているのかを示す。
図7は、図6(c)のパラメータ設定である場合のマスタ部の処理をタイミング図で示したものである。
“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にする。
以上のように、本実施の形態に係るI/Fモジュール1を用いれば、ハードウェアモジュールまたはバスモデルの各種抽象度や各種プロトコルで共通に情報を処理する共通部4を設けているため、抽象度が異なる場合の変換も可能である。
つまり、I/Fモジュール1をマスタ部2、スレーブ部3、および、共通部4で構成し、各種抽象度やプロトコルで共通に必要となる情報をバッファに格納するようにしたこと、および、パラメータ設定ファイルにおいて抽象度の指定ができるようにしたことで、従来技術では開示されていなかった、異なる抽象度間の変換にも対応可能となる。
また、パラメータ設定ファイルから、抽象度やプロトコルに関連する情報を指定可能としたことで、作成者によらず一様に、一意にI/Fモジュール1のマスタ部2およびスレーブ部3を自動生成することができるので、設計の早期段階でのシステム全体検証を容易に実施可能となる。
つまり、作成者によらず一様に、一意に情報を取得可能となるので、作成者によって記述方法が異なる仕様書から一様に情報を抽出することが困難であった従来技術の課題を解決できる。
最後に、本実施の形態に示したシミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成例を図8を参照して説明する。
シミュレーション装置100及びマスタ・スレーブ生成装置30はコンピュータであり、シミュレーション装置100及びマスタ・スレーブ生成装置30の各要素をプログラムで実現することができる。
シミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置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で実現される。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図3及び図4に示す「〜部」(プログラム記憶部104を除く、以下も同様)として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図3及び図4に示す「〜部」の機能を実現するプログラムを実行する。
また、本実施の形態の説明において、「〜の抽出」、「〜の解析」、「〜の生成」、「〜の検知」、「〜の設定」、「〜の選択」、等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
なお、図8の構成は、あくまでもシミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成の一例を示すものであり、シミュレーション装置100及びマスタ・スレーブ生成装置30のハードウェア構成は図8に記載の構成に限らず、他の構成であってもよい。
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 スレーブ部実行部。

Claims (6)

  1. ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションを行うシミュレーション装置であって、
    前記第1のモデルにより生成された前記第1の仕様に従った通信データを解析し、前記通信データから、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する第1の通信データ管理部と、
    前記第1の通信データ管理部により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成する第2の通信データ管理部とを有することを特徴とするシミュレーション装置。
  2. 前記第1の通信データ管理部は、
    前記第1の仕様に従った通信データから、複数の属性の複数の共通データ要素を抽出し、
    前記シミュレーション装置は、更に、
    共通データ要素の属性ごとに設けられた複数の記憶領域と、
    前記第1の通信データ管理部により抽出された前記複数の共通データ要素を属性ごとに分類し、前記複数の共通データ要素を、それぞれ、対応する属性の記憶領域に格納するとともに、前記複数の記憶領域から前記複数の共通データ要素を読み出す共通データ要素管理部とを有し、
    前記第2の通信データ管理部は、
    前記共通データ要素管理部により前記複数の記憶領域から読み出された前記複数の共通データ要素を用いて前記第2の仕様に従った通信データを生成することを特徴とする請求項1に記載のシミュレーション装置。
  3. ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションを行うコンピュータに、
    前記第1のモデルにより生成された前記第1の仕様に従った通信データを解析し、前記通信データから、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を抽出する第1の通信データ管理処理と、
    前記第1の通信データ管理処理により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成する第2の通信データ管理処理とを実行させることを特徴とするプログラム。
  4. 前記第1の通信データ管理処理において、
    前記コンピュータに、
    前記第1の仕様に従った通信データから、複数の属性の複数の共通データ要素を抽出させ、
    前記プログラムは、更に、
    前記第1の通信データ管理処理により抽出された前記複数の共通データ要素を属性ごとに分類し、前記複数の共通データ要素を、それぞれ、共通データ要素の属性ごとに設けられた前記コンピュータ内の複数の記憶領域のうちの対応する属性の記憶領域に格納するとともに、前記複数の記憶領域から前記複数の共通データ要素を読み出す共通データ要素管理処理を、前記コンピュータに実行させ、
    前記第2の通信データ管理処理において、
    前記コンピュータに、
    前記共通データ要素管理処理により前記複数の記憶領域から読み出された前記複数の共通データ要素を用いて前記第2の仕様に従った通信データを生成させることを特徴とする請求項3に記載のプログラム。
  5. ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションが行われる際に、前記第1のモデルと前記第2のモデルとのインタフェースとして機能するプログラムであるインタフェースモジュールを生成するインタフェースモジュール生成装置であって、
    前記第1の仕様を解析し、前記第1のモデルにより前記第1の仕様に従って生成される通信データに含まれるデータ要素のうち、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を判別し、判別結果に基づき、前記インタフェースモジュールに含まれるプログラムコードであって、前記通信データから前記共通データ要素を抽出するプログラムコードを、第1のプログラムコードとして生成する第1のプログラムコード生成部と、
    前記第2の仕様を解析し、前記インタフェースモジュールに含まれるプログラムコードであって、前記第1のプログラムコードの実行により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成するプログラムコードを、第2のプログラムコードとして生成する第2のプログラムコード生成部とを有することを特徴とするインタフェースモジュール生成装置。
  6. ハードウェアモジュール又はバスモデルの複数の仕様のうちの1つである第1の仕様に従ったハードウェアモジュール又はバスモデルである第1のモデルと、前記複数の仕様のうちの1つであって前記第1の仕様とは異なる第2の仕様に従ったハードウェアモジュール又はバスモデルである第2のモデルとの間の通信のシミュレーションが行われる際に、前記第1のモデルと前記第2のモデルとのインタフェースとして機能するプログラムであるインタフェースモジュールを生成するコンピュータに、
    前記第1の仕様を解析し、前記第1のモデルにより前記第1の仕様に従って生成される通信データに含まれるデータ要素のうち、前記複数の仕様の全ての仕様に対する通信のシミュレーションにおいて共通に利用されるデータ要素である共通データ要素を判別し、判別結果に基づき、前記インタフェースモジュールに含まれるプログラムコードであって、前記通信データから前記共通データ要素を抽出するプログラムコードを、第1のプログラムコードとして生成する第1のプログラムコード生成処理と、
    前記第2の仕様を解析し、前記インタフェースモジュールに含まれるプログラムコードであって、前記第1のプログラムコードの実行により抽出された共通データ要素を用いて前記第2の仕様に従った前記第2のモデル宛ての通信データを生成するプログラムコードを、第2のプログラムコードとして生成する第2のプログラムコード生成処理とを実行させることを特徴とするプログラム。
JP2014045607A 2014-03-07 2014-03-07 シミュレーション装置及びインタフェースモジュール生成装置及びプログラム Expired - Fee Related JP6265788B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014045607A JP6265788B2 (ja) 2014-03-07 2014-03-07 シミュレーション装置及びインタフェースモジュール生成装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014045607A JP6265788B2 (ja) 2014-03-07 2014-03-07 シミュレーション装置及びインタフェースモジュール生成装置及びプログラム

Publications (2)

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

Family

ID=54202872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014045607A Expired - Fee Related JP6265788B2 (ja) 2014-03-07 2014-03-07 シミュレーション装置及びインタフェースモジュール生成装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6265788B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107067940B (zh) * 2016-12-28 2019-04-12 杭州百子尖科技有限公司 拼装式化工仿真设备
EP3540530B1 (de) * 2018-03-15 2022-10-19 Siemens Aktiengesellschaft Verfahren und anordnung zum steuern eines technischen systems
CN113472964B (zh) * 2021-06-05 2024-04-16 山东英信计算机技术有限公司 一种图像处理装置和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013227A (ja) * 2002-06-03 2004-01-15 Matsushita Electric Ind Co Ltd シミュレーション装置並びにシミュレーションモデル生成プログラム
JP2006343942A (ja) * 2005-06-08 2006-12-21 Nec Electronics Corp バスシステム設計方法と装置
JP5262909B2 (ja) * 2009-03-27 2013-08-14 富士通株式会社 検証支援プログラム、検証支援装置および検証支援方法

Also Published As

Publication number Publication date
JP2015170221A (ja) 2015-09-28

Similar Documents

Publication Publication Date Title
US11042675B2 (en) Systems and methods for automatically realizing models for co-simulation
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 (zh) Fpga芯片的自动化开发方法及装置、电子设备
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 (ja) エミュレーションのための効率的波形生成
JP6265788B2 (ja) シミュレーション装置及びインタフェースモジュール生成装置及びプログラム
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
US10816600B1 (en) Protocol analysis and visualization during simulation
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
CN117667655A (zh) 验证系统、验证方法、电子设备以及存储介质
CN114328045A (zh) 一种bmc的i2c调试方法、系统、装置及计算机可读存储介质
Bombieri et al. Correct-by-construction generation of device drivers based on RTL testbenches
US9710581B1 (en) VIP assisted method and apparatus to enable SOC integration and software development
Caba et al. Rapid prototyping and verification of hardware modules generated using hls
CN117113908B (zh) 一种验证方法、装置、电子设备及可读存储介质
Shakhmatov et al. A functional verification system of IP-blocks in network protocols
US20220066911A1 (en) Virtual machine for developing and testing target code for hardware designs
de la Fuente et al. Building a dynamically reconfigurable system through a high-level development flow
Lund Design and Application of a Co-Simulation Framework for Chisel

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