JP5297707B2 - シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。 - Google Patents

シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。 Download PDF

Info

Publication number
JP5297707B2
JP5297707B2 JP2008177810A JP2008177810A JP5297707B2 JP 5297707 B2 JP5297707 B2 JP 5297707B2 JP 2008177810 A JP2008177810 A JP 2008177810A JP 2008177810 A JP2008177810 A JP 2008177810A JP 5297707 B2 JP5297707 B2 JP 5297707B2
Authority
JP
Japan
Prior art keywords
real
model
processor
subsystem model
simulation
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
JP2008177810A
Other languages
English (en)
Other versions
JP2010020384A (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.)
Toyota Technical Development Corp
Original Assignee
Toyota Technical Development 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 Toyota Technical Development Corp filed Critical Toyota Technical Development Corp
Priority to JP2008177810A priority Critical patent/JP5297707B2/ja
Publication of JP2010020384A publication Critical patent/JP2010020384A/ja
Application granted granted Critical
Publication of JP5297707B2 publication Critical patent/JP5297707B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23446HIL hardware in the loop, simulates equipment to which a control module is fixed

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明はシミュレーションに関し、特にFPGA(Field Programmable Gate Array)を用いたHILS(Hardware In the Loop Simulation)に関する。
Simulink(登録商標)、Real−Time Workshop(登録商標)などMATLAB(登録商標)ファミリーは実世界のダイナミックシステムのモデリングとテストを行うプロトタイピング環境を提供するモデリングツールとして広く知られている。ハイブリッド自動車の駆動系制御システムなどの開発環境においては、シミュレーション演算の高速化が求められている。例えばモータを制御する電子制御ユニットの開発環境では、モータの応答を模擬するシミュレーション装置と電子制御ユニットとを接続したHILSテストが実施されるが、電気信号の応答を模擬するには高速なシミュレーション装置が必要となる。そこでHDL(Hardware Description Language)を用いてFPGAをシミュレーション演算に最適化された高速演算処理回路として構成し、シミュレーションの演算時間を短縮する技術が知られている(特許文献1,2,3)。また、FPGAを高速演算部として構成するHDLをブロック線図型モデルから生成するFPGAのプログラミングツールが開発されている。これらのFPGA対応のプログラミングツールには、米国ザイリンクス社のSystem Generator、米国アルテラ社のDsp Builderなど、汎用プロセッサ対応のSimulinkなどのモデリングツールと連携し、プロセッサベースのブロック線図型モデルとFPGAベースのブロック線図型モデルとを統合した1つのブロック線図型モデルを用いたシミュレーションを可能にするものも開発されている。その結果、ソースコードを実行するプロセッサと、HDLによって定義されるFPGAとにより並列演算処理装置を構成し、高速にHILS(Hardware In the Loop Simulation)演算を実行できる環境が整いつつある。
特開2006−14393号公報 特開2007−230105号公報 特開2006−318200号公報
しかし、従来のプロセッサとFPGAとを用いたHILSの並列演算処理においては、効率の良いリアルタイム処理を実行したり、SILS(Software In the Loop Simulation)の演算結果とHILSの演算結果とを正確に一致させることができない。
本発明は効率の良いHILS装置を実現し、さらにはHILSの演算精度を高めることを目的とする。
(1)上記目的を達成するためのシミュレーションシステムは、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーションシステムであって、シミュレーション支援装置と、FPGAを備えるHILS装置と、前記HILS装置を操作するとともに前記HILS装置の出力を表示するHILS端末と、を備える。本発明のシミュレーションシステムに備わるシミュレーション支援装置は、プロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、前記第一サブシステムモデルからシミュレーションプログラムを生成するプログラム生成手段と、前記第二サブシステムモデルからネットリストを生成するネットリスト生成手段と、を備える。本発明のシミュレーションシステムに備わるFPGAは、前記シミュレーションプログラムを実行することにより、前記HILS端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、を備える。
本発明によると、リアルタイム処理を効率化するため、HILS装置のFPGAに2つのプロセッサを組み込む。すなわち本発明によると、HILS端末と通信する非リアルタイムシステムを構成するプロセッサ(非リアルタイムプロセッサ)と、ネットリストによって構成される高速演算部と通信するリアルタイムシステムを構成するプロセッサ(リアルタイムプロセッサ)とがHILS装置のFPGAに定義され、FPGAのその他の領域であるユーザロジック部が高速演算部として定義される構成である。その結果、HILS端末と通信する非リアルタイムプロセッサによる非リアルタイム処理と、高速演算部と協働するリアルタイムプロセッサによるリアルタイム処理とが競合することを防止できるとともに2つのプロセッサと高速演算部とがFPGA内部の高速な通信線を通じて通信できるため、効率の良いHILS装置が実現される。なお、プロセッサ対応ブロックとは、プロセッサによって実行されるプログラムに変換される処理が定義されるブロックをいい、FPGA対応ブロックとはFPGAを定義するネットリストに変換される処理が定義されるブロックをいうものとする。
(2)ユーザロジック部がカスタマイズされた高速演算部とリアルタイムプロセッサとの間においてデータを転送するときには、対象システムの構成とは無関係に、HILS装置内部でデータ転送を司るデータ転送部の構成に応じた転送遅延が生じ、その結果、HILS装置によるシミュレーション演算の精度が低下する。
そこで上記目的を達成するためのシミュレーションシステムにおいて、前記シミュレーション支援装置は、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段を備え、前記ユーザロジック部には、前記ネットリストによって定義されることにより前記データ転送部が構成されることが望ましい。
高速演算部とリアルタイムプロセッサとの間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックをブロック線図型モデルに挿入するための手段(データ転送ブロック挿入手段)をシミュレーション装置に備え、データ転送ブロックによってFPGAのユーザロジック部の一部をデータ転送部として構成することにより、HILS装置によるシミュレーション演算の精度を高めることができる。
(3)上記目的を達成するためのシミュレーションシステムにおいて、前記HILS装置は、緩衝記憶部を備えるとともに前記緩衝記憶部を介して前記リアルタイムプロセッサから前記非リアルタイムプロセッサへデータを転送する緩衝インタフェースを備えることが望ましい。
これによりリアルタイムプロセッサと非リアルタイムプロセッサとを効率よく利用することができる。
(4)上記目的を達成するためのシミュレーションシステムにおいて、前記緩衝インタフェースは、前記緩衝記憶部と前記非リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサが利用する第一デュアルポートRAMと、前記緩衝記憶部と前記リアルタイムプロセッサとの間との間に配置され前記リアルタイムプロセッサが利用する第二デュアルポートRAMと、前記非リアルタイムプロセッサと前記リアルタイムプロセッサとから前記緩衝記憶部を制御するための緩衝記憶制御部と、前記非リアルタイムプロセッサと前記リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサと前記リアルタイムプロセッサとが利用する第三デュアルポートRAMと、を備えることが望ましい。
第一プロセッサから第二プロセッサへのデータ転送経路と第二プロセッサから第一プロセッサへのデータ転送経路とを分離することにより、リアルタイムプロセッサと非リアルタイムプロセッサとをさらに効率よく利用することができる。
(5)Simulinkを用いて作成したブロック線図型モデルからC言語のソースファイルをReal−Time Workshopを用いて生成する場合、FPGA対応ブロックが結線された部分を全体のブロック線図型モデルから一旦削除しなければならない。
そこで上記目的を達成するためのシミュレーションシステムにおいて、前記シミュレーション支援装置は、前記第一サブシステムモデルが保存される第一ファイルと前記第二サブシステムモデルが保存される第二ファイルとを独立に生成するとともに前記第二サブシステムモデルの演算に必要な前記第一サブシステムモデルの情報を前記第二ファイルに格納するファイル管理手段を備えることが望ましい。
これによりシミュレーション支援装置を操作するユーザの負担を低減できる。
(6)上記目的を達成するためのシミュレーション方法は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーション方法であって、プロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成し、前記第一サブシステムモデルからシミュレーションプログラムを生成し、前記第二サブシステムモデルからネットリストを生成し、FPGAの一部で構成された第一プロセッサにより前記シミュレーションプログラムを実行することにより、前記HILS端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成し、前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成し、FPGAの一部で構成された第二プロセッサにより前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成し、前記HILS端末において前記HILS装置を操作するとともに前記HILS装置の出力を表示する、ことを含む。
本発明によると、上述したとおり、効率の良いHILS装置を実現できる。
(7)上記目的を達成するためのHILS装置は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを用いて前記対象システムの応答を検証するためのHILS装置であって、前記第一サブシステムモデルから生成されたシミュレーションプログラムを実行することにより、前記HILS端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、前記第二サブシステムモデルから生成されたネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、を備えるFPGAを備える。
本発明によると、上述したとおり、効率の良いHILS装置を実現できる。
(8)上記目的を達成するためのシミュレーション支援装置は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、FPGAに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成する前記FPGAのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段と、を備える。
本発明によると、上述したとおり、HILS装置によるシミュレーション演算の精度を高めることができる。
(9)上記目的を達成するためのシミュレーション支援方法は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、FPGAに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記FPGAのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、を備えるシミュレーション支援装置において用いられるシミュレーション支援方法であって、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入する、ことを含む。
本発明によると、上述したとおり、HILS装置によるシミュレーション演算の精度を高めることができる。
(10)上記目的を達成するためのシミュレーション支援プログラムは、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、FPGAに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記FPGAのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、して機能するコンピュータによって実行されるシミュレーション支援プログラムであって、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部を前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段として前記コンピュータを機能させる。
本発明によると、上述したとおり、HILS装置によるシミュレーション演算の精度を高めることができる。
尚、請求項に記載された動作の順序は、技術的な阻害要因がない限りにおいて記載順に限定されず、同時に実行されても良いし、記載順の逆順に実行されても良いし、連続した順序で実行されなくても良い。また請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。さらに、本発明はコンピュータプログラムの記録媒体としても成立する。むろん、そのコンピュータプログラムの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体であってもよい。
以下、本発明の実施の形態を添付図面を参照しながら以下の順に説明する。各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
1.概要
図1は、本発明の一実施形態であるシミュレーションシステム1の全体構成を示している。シミュレーションシステム1は、シミュレーション支援装置およびHILS端末として機能するホストコンピュータ10と、電子制御ユニット30に接続されるHILS装置20とを備えている。ホストコンピュータ10では、モータおよびそのドライバやセンサによって構成される実世界の対象システムを表す対象モデルの作成とSIL(Software In the Loop)のテストと、HILS装置20に備わるFPGA29をカスタマイズするためのプログラム203、206およびネットリスト207の生成が行われる。HILS装置20では、電子制御ユニット30によって制御されるモータの作動を模擬するためのシミュレーション演算がFPGA29によって行われる。HILS装置20の操作と出力の表示はホストコンピュータ10によって行われる。
2.ホストコンピュータの構成
図2に示すように、ホストコンピュータ10は、プロセッサ11、HILS装置20との通信を制御するI/O16の他、図示しないメモリ、ハードディスク等を備えている。ホストコンピュータ10には、ホストコンピュータ10のGUI(Graphical User Interface)を構成する画面とHILS装置20の出力を表示するためのディスプレイ14aと、ホストコンピュータ10およびHILS装置20を操作するためのキーボード15aとマウス15bとが接続される。
ホストコンピュータ10は、非リアルタイムオペレーティングシステムであるWindows(登録商標)上において、Simulink102、Real−Time Workshop(以下、RTWと略記する。)103、System Generator(以下、SGと略記する。)108、ISE(登録商標)107、モデリング支援プログラム104などで構成されるシミュレーション支援プログラムをプロセッサ11によって実行することによってシミュレーション支援装置として機能する。
Simulink102は対象システムであるモータの全体を表現したブロック線図型モデルの中のプロセッサによって演算される部分である第一サブシステムモデルM1を作成する機能を実現するモジュールであって、ホストコンピュータ10をモデル作成手段として機能させる。第一サブシステムモデルM1はHILS装置20のプロセッサで実行されるプログラムに変換されるプロセッサ対応ブロックが結線されたモデルである。
RTW103はSimulink102によって作成されたモデルから独立して実行可能な通信プログラム203と演算プログラム206を生成するモジュールであって、ホストコンピュータ10をプログラム生成手段として機能させる。
SG108は、対象システムであるモータの全体を表現したブロック線図型モデルの中の高速演算部26bによって演算される部分である第二サブシステムモデルM2を作成する機能を実現するモジュールであって、ホストコンピュータ10をモデル作成手段として機能させる。SG108はFPGA対応ブロックであるSGブロックをSimulink102のGUIに組み込む。SGブロックとは米国ザイリンクス社がSG108の標準ブロックとして提供しているブロックである。第二サブシステムモデルM2はHILS装置20のFPGA29を定義するネットリストに変換されるFPGA対応ブロックが結線されたモデルである。
ISE107は、HILS装置20のFPGA29のユーザロジック部26を、SG108によって作成した第二サブシステムモデルM2の演算を実行する高速演算部26bおよびI/F26aとして構成するためのネットリスト207を第二サブシステムモデルM2から生成するモジュールであって、ホストコンピュータ10をネットリスト生成手段として機能させる。またISE107は、ユーザロジック部26を定義するネットリスト207と第一プロセッサ21を定義するネットリストと第二プロセッサ24を定義するネットリストとから二進数表現の1つのFPGA実装ファイル(コンフィギュレーションファイル)を生成する。尚、第一プロセッサ21を定義するネットリストと第二プロセッサ24を定義するネットリストとは、予め組み込んでおく。
モデリング支援プログラム104は、第二サブシステムモデルM2にデータ転送ブロック106を挿入するとともに、第二サブシステムモデルM2が参照する第一サブシステムモデルM1の情報を第一サブシステムモデルM1から参照情報105として取得するモジュールであって、ホストコンピュータ10をデータ転送ブロック挿入手段およびファイル管理手段として機能させる。
3.HILS装置の構成
図2に示すように、HILS装置20は、FPGA29、ホストコンピュータ10との通信を制御するI/O22、電子制御ユニット30との通信を制御するI/O27、28の他、図示しない記憶媒体等を備えている。ホストコンピュータ10によって生成されたFPGA実装ファイル、通信プログラム203および演算プログラム206をHILS装置20にロードすることによって、HILS装置20の各種の機能が実現される。
FPGA29は、図示しない複数のI/O部、複数のロジックセル、内部配線、クロックネットワーク、複数のSRAM、複数のデュアルポートブロックRAMなどを備えたPLD(Programmable Logic Device)である。FPGA29のこれらの構成要素は第一プロセッサ21と、第二プロセッサ24と、I/F23と、ユーザロジック部26と、第一プロセッサ21および第二プロセッサ24の図示しないバスやタイマなどを構成する。第一プロセッサ21と、第二プロセッサ24と、I/F23と、ユーザロジック部26とは、ホストコンピュータ10によって生成されたFPGA実装ファイルをFPGA29に実装することによって、ネットリストによって定義された機能を備える電子回路として構成される。
非リアルタイムプロセッサとして機能する第一プロセッサ21は、非リアルタイムオペレーティングシステムであるLinux(登録商標)201の上でDown Loader(以下、DLと略記する。)203を実行することにより、通信プログラム203および演算プログラム206をHILS装置20の図示しない不揮発性記憶媒体に格納する。通信プログラム203および演算プログラム206は、DL203によってロードされ、それぞれが第一プロセッサ21および第二プロセッサ24によって実行可能な状態になる。
第一プロセッサ21は、Linux201の上で通信プログラム203を実行することによりホストコンピュータ10と通信しながら第一サブシステムモデルM1の入出力を実行する非リアルタイムシステムを構成するMicro Blaze(登録商標)コアである。通信プログラム203は、第一サブシステムモデルM1に基づいてRTW103が生成する実行形式のシミュレーションプログラムのうちの1つであって、第一サブシステムモデルM1の入出力を制御する。
リアルタイムプロセッサとして機能する第二プロセッサ24は、リアルタイムオペレーティングシステムであるμITRON準拠のRTOS205の上でMonitor204および演算プログラム206を実行することによりリアルタイムシステムを構成するPower PC(登録商標)コアである。第二プロセッサ24によって構成されるリアルタイムシステムは、第一プロセッサ21によって構成される非リアルタイムシステムと、ユーザロジック部26の高速演算部26bと、電子制御ユニット30と通信しながら第一サブシステムモデルM1の演算を実行する。Monitor204は主に通信を制御する。演算プログラム206は第一サブシステムモデルM1に基づいてRTW103が生成する実行形式のシミュレーションプログラムのうちの1つであって、第一サブシステムモデルM1の演算を制御する。第二プロセッサ24と第一プロセッサ21との通信はI/F23を介して行われる。第二プロセッサ24と高速演算部26bとの通信はI/F26aを介して行われる。第二プロセッサ24と電子制御ユニット30との通信はI/O27を介して行われる。
ユーザロジック部26は、ISE107によって生成されるFPGA実装ファイルがFPGA29に実装されると第二プロセッサ24と電子制御ユニット30と通信しながら第二サブシステムモデルM2の演算を実行する専用処理回路を構成する。すなわちユーザロジック部26は、SG108を用いてユーザが作成するブロック線図型モデルによって任意の回路が定義されるFPGA29の一部の領域である。ユーザロジック部26と電子制御ユニット30との通信はI/O28を介して行われる。
ユーザロジック部26には、第二サブシステムモデルM2の実世界の対象システムに対応する部分の演算を行う高速演算部26bと、第二サブシステムモデルM2の実世界の対象システムに対応しない部分であるデータ転送ブロック106に対応するI/F26aとがネットリスト207に応じて構成される。
ユーザロジック部26のI/F26aは、第二プロセッサ24と高速演算部26bとの間においてデータを転送するバスとバスマスタとを備えている。データ転送部として機能するI/F26aのモデルはデータ転送ブロック106として第二サブシステムモデルM2に組み込まれるため、I/F26aにおいて転送遅延が生じるとしても、第一サブシステムモデルM1と第二サブシステムモデルM2との同期が保証される。したがって、HILS装置20によるシミュレーション演算の精度が向上し、ホストコンピュータ10によるSILS演算の結果とHILS装置20によるHILS演算の結果の差が低減される。
図3は第一プロセッサ21と第二プロセッサ24との間でデータ転送を行うためのI/F23の構成を示すブロック図である。緩衝インタフェースとして機能するI/F23の各ブロックは、IPコアによって構成されている。図3においてはIPコアによって構成されている各ブロックにIPコアの一般略称を付すことにより各ブロックの機能を示している。DPRAM23b、23d、23hは、同時に読み出しと書き込みができるデュアルポートのブロックRAMである。BRAM−CNTR23a、23e、23g、23jは、ブロックRAMにデータを書き込み、ブロックRAMからデータを読み出す。GPIO23f、23iは第一プロセッサ21と第二プロセッサ24とによって緩衝記憶部23cを制御するための各種の制御信号とフラグの書き込みと読み込みに用いられる。
非リアルタイムシステムを構成する第一プロセッサ21からリアルタイムシステムを構成する第二プロセッサへのデータ転送は、第一プロセッサ21によって制御されるBRAM−CNTR23gと、第二プロセッサ24によって制御されるBRAM−CNTR23jとによって読み出しと書き込みが制御されるDPRAM23hを介して行われる。すなわちDPRAM23hを共有メモリとして利用することにより第一プロセッサ21から第二プロセッサ24へデータを転送する。
リアルタイムシステムを構成する第二プロセッサ24から非リアルタイムシステムを構成する第一プロセッサ21へのデータ転送は、緩衝記憶部23cを介して行われる。緩衝記憶部23cは、FIFO(First In First Out)の記憶回路である。GPIO23iは第二プロセッサ24から緩衝記憶部23cを制御するための緩衝記憶制御部として機能する。GPIO23fは第一プロセッサ21から緩衝記憶部23cを制御するための緩衝記憶制御部として機能する。緩衝記憶部23cに書き込まれるデータはBRAM−CNTR23eを介して第二プロセッサ24によって利用されるDPRAM23dにいったん書き込まれる。緩衝記憶部23cから読み出されるデータはBRAM−CNTR23aを介して第一プロセッサ21によって利用されるDPRAM23bにいったん書き込まれる。
リアルタイムシステムを構成する第二プロセッサ24によって利用されるDPRAM23dには、第一プロセッサ21の状態とは無関係にデータが書き込まれ、DPRAM23dに書き込まれたデータが所定量蓄積されると、そのデータが緩衝記憶部23cに書き込まれる。非リアルタイムシステムを構成する第一プロセッサ21がDPRAM23bに記憶されているデータを読み出すとき、緩衝記憶部23cに記憶されているデータのうち最も古いデータがDPRAM23bに書き込まれる。緩衝記憶部23cは自分自身の容量分までのデータを蓄積できるため、第一プロセッサ21によって構成される非リアルタイムシステムがデータを受け取ることが可能ではない状態でも第二プロセッサ24が構成するリアルタイムシステムはデータをいったん緩衝記憶部23cに引き渡すことができる。このため、第一プロセッサ21と第二プロセッサ24を効率良く利用できる。
4.シミュレーション方法
図4はシミュレーションシステム1を用いて実世界の対象システムの応答を検証するためのシミュレーション方法を示すシーケンスチャートである。
はじめにホストコンピュータ10においてSimulink102のGUIを操作することにより、第一サブシステムモデルM1と第二サブシステムモデルM2とを統合したブロック線図型モデルを作成する(ステップS10)。SG108によってSimulink102のGUIに組み込まれたSGブロックを用いて第二サブシステムモデルM2が作成されるとき、第二サブシステムモデルM2に対応するHDLが記述される。モデリング支援プログラム104によってSimulink102のGUIに組み込まれたメニュー項目を操作することにより、図2に示すようにデータ転送ブロック106が第二サブシステムモデルM2に挿入される。データ転送ブロック106に対応したHDLはSG108によって記述される。またこのとき、モデリング支援プログラム104は、Simulink102によって第一サブシステムモデルM1が保存されるファイルから、第二サブシステムモデルM2の演算に必要な参照情報105を抽出し、SG108によって第二サブシステムモデルM2が保存されるファイルにその参照情報105を格納する。
次にホストコンピュータ10において第一サブシステムモデルM1から通信プログラム203のソースファイルと演算プログラム206のソースファイルとを生成する(ステップS11)。これらのソースファイルはC言語によって記述され、RTW103を実行することによって生成される。このとき、ユーザは第一サブシステムモデルM1と第二サブシステムモデルM2とが互いに独立した別個のファイルに保存されているため、第二サブシステムモデルM2を編集することなく、通信プログラム203のソースファイルと演算プログラム206のソースファイルを生成することができる。
次にホストコンピュータ10において通信プログラム203のソースファイルと演算プログラム206のソースファイルとをコンパイルし、実行形式の通信プログラム203と演算プログラム206とを生成する(ステップS12)。この処理はRTW103の実行によって行われる。
次にホストコンピュータ10において第二サブシステムモデルM2に対応するHDLからFPGA29のユーザロジック部26を定義するためのネットリスト207を生成し、ネットリスト207と第一プロセッサ21を定義するネットリストと第二プロセッサ24を定義するネットリストとから二進数表現の1つのFPGA実装ファイルを生成する(ステップS13)。FPGA実装ファイルはISE107を実行することによって生成される。
次にホストコンピュータ10からHILS装置20にFPGA実装ファイルをダウンロードする(ステップS14)。このとき、FPGA29の機能がネットリストに応じて定義される。
次にホストコンピュータ10からHILS装置20に通信プログラム203および演算プログラム206をダウンロードする(ステップS16)。このとき図2に示すDL202によって通信プログラム203および演算プログラム206がHILS装置20の不揮発性記憶媒体の所定の領域にダウンロードされる。
次にホストコンピュータ10のGUIを操作することによって、第一サブシステムモデルM1と第二サブシステムモデルM2とが統合されたブロック線図型モデルの演算をHILS装置20において実行するための操作コマンドがホストコンピュータ10からHILS装置20に送信される(ステップS18)。この操作コマンドは通信プログラム203を実行する第一プロセッサ21が構成する非リアルタイムシステムが受信する。
操作コマンドを受信したHILS装置20は第一サブシステムモデルM1と第二サブシステムモデルM2とが統合されたブロック線図型モデルの演算を実行する(ステップS19)。この演算は演算プログラム206を実行する第二プロセッサ24が構成するリアルタイムシステムとネットリスト207によって定義された高速演算部26bとによって実行される。このとき、ネットリスト207によって定義された高速演算部26bはハードウエア論理によって演算するため高速に第二サブシステムモデルM2の演算を実行できる。また高速演算部26bと第二プロセッサ24との間のデータ転送を行うI/F26aのモデルがブロック線図型モデルに予め組み込まれているため、高速演算部26bと第二プロセッサ24とは同期してそれぞれの演算を実行する。このため、HILS装置20によるシミュレーション演算の精度は高く、HILS装置20によるHILS演算の結果はホストコンピュータ10によるSILS演算の結果と一致する。
次にHILS装置20におけるブロック線図型モデルの演算結果がHILS装置20からホストコンピュータ10に送信される(ステップS20)。この処理は通信プログラム203を実行する第一プロセッサ21が構成する非リアルタイムシステムによって実行される。
ホストコンピュータ10はHILS装置20によるブロック線図型モデルの演算の結果を受信すると、その結果をディスプレイ14aに表示する(ステップS21)。
5.他の実施形態
本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、シミュレーション支援装置とHILS端末とを別個独立の2つのコンピュータによって構成しても良い。また本発明はSystem Generator以外の例えばDsp Builder等のモデリングツールに適用することもできる。また本発明によるシミュレーションシステムは、電気信号が応答として検証される実世界の様々なシステムのプロトタイピングに適用されることにより、その高い演算精度と高速性能が顕著に発揮される。
本発明の実施形態にかかる模式図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるブロック図。 本発明の実施形態にかかるシーケンスチャート。
符号の説明
1:シミュレーションシステム、10:ホストコンピュータ、11:プロセッサ、14a:ディスプレイ、15a:キーボード、15b:マウス、20:HILS装置、21:第一プロセッサ、23:I/F、23b:デュアルポートRAM、23c:緩衝記憶部、23d:デュアルポートRAM、23f:GPIO、23h:デュアルポートRAM、23i:GPIO、24:第二プロセッサ、26:ユーザロジック部、26a:I/F、26b:高速演算部、30:電子制御ユニット、104:モデリング支援プログラム、105:参照情報、106:データ転送ブロック、203:通信プログラム、206:演算プログラム、207:ネットリスト、M1:第一サブシステムモデル、M2:第二サブシステムモデル

Claims (10)

  1. 電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーションシステムであって、
    プロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、
    前記第一サブシステムモデルからシミュレーションプログラムを生成するプログラム生成手段と、
    前記第二サブシステムモデルからネットリストを生成するネットリスト生成手段と、
    を備えるシミュレーション支援装置と、
    FPGAを備えるHILS装置と、
    前記HILS装置を操作するとともに前記HILS装置の出力を表示するHILS端末と、
    を備え、
    前記FPGAは、
    前記シミュレーションプログラムを実行することにより、前記HILS端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、
    前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、
    前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、
    を備える、
    シミュレーションシステム。
  2. 前記シミュレーション支援装置は、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段を備え、
    前記ユーザロジック部には、前記ネットリストによって定義されることにより前記データ転送部が構成される、
    請求項1に記載のシミュレーションシステム。
  3. 前記HILS装置は、緩衝記憶部を備えるとともに前記緩衝記憶部を介して前記リアルタイムプロセッサから前記非リアルタイムプロセッサへデータを転送する緩衝インタフェースを備える、
    請求項1に記載のシミュレーションシステム。
  4. 前記緩衝インタフェースは、
    前記緩衝記憶部と前記非リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサが利用する第一デュアルポートRAMと、
    前記緩衝記憶部と前記リアルタイムプロセッサとの間に配置され前記リアルタイムプロセッサが利用する第二デュアルポートRAMと、
    前記非リアルタイムプロセッサと前記リアルタイムプロセッサとから前記緩衝記憶部を制御するための緩衝記憶制御部と、
    前記非リアルタイムプロセッサと前記リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサと前記リアルタイムプロセッサとが利用する第三デュアルポートRAMと、
    を備える請求項3に記載のシミュレーションシステム。
  5. 前記シミュレーション支援装置は、前記第一サブシステムモデルが保存される第一ファイルと前記第二サブシステムモデルが保存される第二ファイルとを独立に生成するとともに前記第二サブシステムモデルの演算に必要な前記第一サブシステムモデルの情報を前記第二ファイルに格納するファイル管理手段を備える、
    請求項1〜4のいずれか一項に記載のシミュレーションシステム。
  6. 電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーション方法であって、
    プロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成し、
    前記第一サブシステムモデルからシミュレーションプログラムを生成し、
    前記第二サブシステムモデルからネットリストを生成し、
    FPGAの一部で構成された第一プロセッサにより前記シミュレーションプログラムを実行することにより、前記HILS端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成し、
    前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成し、
    FPGAの一部で構成された第二プロセッサにより前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成し、
    前記HILS端末において前記HILS装置を操作するとともに前記HILS装置の出力を表示する、
    ことを含むシミュレーション方法。
  7. 電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを用いて前記対象システムの応答を検証するためのHILS装置であって、
    前記第一サブシステムモデルから生成されたシミュレーションプログラムを実行することにより、前記HILS端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、
    前記第二サブシステムモデルから生成されたネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、
    前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、
    を備えるFPGAを備える、
    HILS装置。
  8. 電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、
    FPGAに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、
    前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成する前記FPGAのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、
    前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段と、
    を備えるシミュレーション支援装置。
  9. 電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、FPGAに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記FPGAのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、を備えるシミュレーション支援装置において用いられるシミュレーション支援方法であって、
    前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入する、
    ことを含むシミュレーション支援方法。
  10. 電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとFPGA対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、FPGAに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記FPGAのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、して機能するコンピュータによって実行されるシミュレーション支援プログラムであって、
    前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部を前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段として前記コンピュータを機能させる、
    シミュレーション支援プログラム。
JP2008177810A 2008-07-08 2008-07-08 シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。 Expired - Fee Related JP5297707B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008177810A JP5297707B2 (ja) 2008-07-08 2008-07-08 シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008177810A JP5297707B2 (ja) 2008-07-08 2008-07-08 シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。

Publications (2)

Publication Number Publication Date
JP2010020384A JP2010020384A (ja) 2010-01-28
JP5297707B2 true JP5297707B2 (ja) 2013-09-25

Family

ID=41705240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008177810A Expired - Fee Related JP5297707B2 (ja) 2008-07-08 2008-07-08 シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。

Country Status (1)

Country Link
JP (1) JP5297707B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104533701A (zh) * 2014-12-23 2015-04-22 华中科技大学 一种水轮机调速系统控制参数的自动整定方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101325594B1 (ko) 2013-08-27 2013-11-06 국방과학연구소 전력변환 에뮬레이터 기반의 개방형 sil 시스템
KR101862221B1 (ko) 2016-04-25 2018-05-30 한국항공우주산업 주식회사 항공기 비행제어법칙 시뮬레이션 방법 및 장치
EP3454234A1 (de) * 2017-09-06 2019-03-13 dSPACE digital signal processing and control engineering GmbH Verfahren zum bereitstellen einer echtzeitfähigen simulation für die steuergerätentwicklung und simulationsvorrichtung für die steuergerätentwicklung

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4727291B2 (ja) * 2005-05-12 2011-07-20 ディエスピーテクノロジ株式会社 ブロック線図型シミュレーションモデル作成装置、リアルタイムシミュレーション実行装置、及び、ライブラリ
JP2006350549A (ja) * 2005-06-14 2006-12-28 Hitachi Ltd 統合シミュレーションシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104533701A (zh) * 2014-12-23 2015-04-22 华中科技大学 一种水轮机调速系统控制参数的自动整定方法

Also Published As

Publication number Publication date
JP2010020384A (ja) 2010-01-28

Similar Documents

Publication Publication Date Title
CN109783954B (zh) 一种ies联合fpga硬件仿真加速系统
US8412918B1 (en) Booting mechanism for FPGA-based embedded system
US5991523A (en) Method and system for HDL global signal simulation and verification
US7596769B2 (en) Simulation of power domain isolation
US7930162B1 (en) Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor
EP0871223A1 (en) Process for the prototyping of mixed signal applications and field programmable system on a chip for applying said process
US8584062B2 (en) Tool suite for RTL-level reconfiguration and repartitioning
US8387005B1 (en) Generation of multi-domain code from a graphical program
WO2010099124A1 (en) Netlist synthesis using multiple synthesis configurations
US9304840B2 (en) Message-based modeling
US10586003B1 (en) Circuit design using high level synthesis and linked hardware description language libraries
WO2007078915A2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
JP5297707B2 (ja) シミュレーションシステムおよびシミュレーション方法、hils装置、ならびにシミュレーション支援装置、方法およびプログラム。
Bazydlo et al. Translation UML diagrams into Verilog
US10387584B1 (en) Streaming on hardware-software platforms in model based designs
US9946823B2 (en) Dynamic control of design clock generation in emulation
Guccione et al. Design advantages of run-time reconfiguration
EP3923133A1 (en) Systems and methods for generating service access points for rte services in code or other rte service information for use with the code
US9824173B1 (en) Software development-based compilation flow for hardware implementation
US20090150137A1 (en) Method for generating performance evaluation model
US8600722B1 (en) Method and apparatus for providing program-based hardware co-simulation of a circuit design
US8082139B1 (en) Displaying signals of a design block emulated in hardware co-simulation
Melnyk Self-Configurable FPGA-Based Computer Systems: Basics and Proof of Concep
Biancolin et al. Accessible, FPGA resource-optimized simulation of multiclock systems in firesim
US10657210B2 (en) Slack time recycling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110526

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: 20130528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

R150 Certificate of patent or registration of utility model

Ref document number: 5297707

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees