(57)【要約】【課題】効率の良いＨＩＬＳ装置を実現し、さらにはＨＩＬＳの演算精度を高める。【解決手段】電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのＨＩＬＳ装置であって、前記シミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、を備えるＦＰＧＡを備える、ＨＩＬＳ装置。【選択図】図２
2010020384.tif 000002
【特許請求の範囲】
【請求項１】
電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーションシステムであって、
プロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、
前記第一サブシステムモデルからシミュレーションプログラムを生成するプログラム生成手段と、
前記第二サブシステムモデルからネットリストを生成するネットリスト生成手段と、
を備えるシミュレーション支援装置と、
ＦＰＧＡを備えるＨＩＬＳ装置と、
前記ＨＩＬＳ装置を操作するとともに前記ＨＩＬＳ装置の出力を表示するＨＩＬＳ端末と、
を備え、
前記ＦＰＧＡは、
前記シミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、
前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、
前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、
を備える、
シミュレーションシステム。
【請求項２】
前記シミュレーション支援装置は、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段を備え、
前記ユーザロジック部には、前記ネットリストによって定義されることにより前記データ転送部が構成される、
請求項１に記載のシミュレーションシステム。
【請求項３】
前記ＨＩＬＳ装置は、緩衝記憶部を備えるとともに前記緩衝記憶部を介して前記リアルタイムプロセッサから前記非リアルタイムプロセッサへデータを転送する緩衝インタフェースを備える、
請求項１に記載のシミュレーションシステム。
【請求項４】
前記緩衝インタフェースは、
前記緩衝記憶部と前記非リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサが利用する第一デュアルポートＲＡＭと、
前記緩衝記憶部と前記リアルタイムプロセッサとの間に配置され前記リアルタイムプロセッサが利用する第二デュアルポートＲＡＭと、
前記非リアルタイムプロセッサと前記リアルタイムプロセッサとから前記緩衝記憶部を制御するための緩衝記憶制御部と、
前記非リアルタイムプロセッサと前記リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサと前記リアルタイムプロセッサとが利用する第三デュアルポートＲＡＭと、
を備える請求項３に記載のシミュレーションシステム。
【請求項５】
前記シミュレーション支援装置は、前記第一サブシステムモデルが保存される第一ファイルと前記第二サブシステムモデルが保存される第二ファイルとを独立に生成するとともに前記第二サブシステムモデルの演算に必要な前記第一サブシステムモデルの情報を前記第二ファイルに格納するファイル管理手段を備える、
請求項１〜４のいずれか一項に記載のシミュレーションシステム。
【請求項６】
電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーション方法であって、
プロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成し、
前記第一サブシステムモデルからシミュレーションプログラムを生成し、
前記第二サブシステムモデルからネットリストを生成し、
ＦＰＧＡの一部で構成された第一プロセッサにより前記シミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成し、
前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成し、
ＦＰＧＡの一部で構成された第二プロセッサにより前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成し、
前記ＨＩＬＳ端末において前記ＨＩＬＳ装置を操作するとともに前記ＨＩＬＳ装置の出力を表示する、
ことを含むシミュレーション方法。
【請求項７】
電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを用いて前記対象システムの応答を検証するためのＨＩＬＳ装置であって、
前記第一サブシステムモデルから生成されたシミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、
前記第二サブシステムモデルから生成されたネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、
前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、
を備えるＦＰＧＡを備える、
ＨＩＬＳ装置。
【請求項８】
電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、
ＦＰＧＡに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、
前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成する前記ＦＰＧＡのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、
前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段と、
を備えるシミュレーション支援装置。
【請求項９】
電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、ＦＰＧＡに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記ＦＰＧＡのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、を備えるシミュレーション支援装置において用いられるシミュレーション支援方法であって、
前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入する、
ことを含むシミュレーション支援方法。
【請求項１０】
電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、ＦＰＧＡに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記ＦＰＧＡのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、して機能するコンピュータによって実行されるシミュレーション支援プログラムであって、
前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部を前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段として前記コンピュータを機能させる、
シミュレーション支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーションに関し、特にＦＰＧＡ（Field Programmable Gate Array）を用いたＨＩＬＳ（Hardware In the Loop Simulation）に関する。
【背景技術】
【０００２】
Ｓｉｍｕｌｉｎｋ（登録商標）、Ｒｅａｌ−Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐ（登録商標）などＭＡＴＬＡＢ（登録商標）ファミリーは実世界のダイナミックシステムのモデリングとテストを行うプロトタイピング環境を提供するモデリングツールとして広く知られている。ハイブリッド自動車の駆動系制御システムなどの開発環境においては、シミュレーション演算の高速化が求められている。例えばモータを制御する電子制御ユニットの開発環境では、モータの応答を模擬するシミュレーション装置と電子制御ユニットとを接続したＨＩＬＳテストが実施されるが、電気信号の応答を模擬するには高速なシミュレーション装置が必要となる。そこでＨＤＬ（Hardware Description Language）を用いてＦＰＧＡをシミュレーション演算に最適化された高速演算処理回路として構成し、シミュレーションの演算時間を短縮する技術が知られている（特許文献１，２，３）。また、ＦＰＧＡを高速演算部として構成するＨＤＬをブロック線図型モデルから生成するＦＰＧＡのプログラミングツールが開発されている。これらのＦＰＧＡ対応のプログラミングツールには、米国ザイリンクス社のＳｙｓｔｅｍ  Ｇｅｎｅｒａｔｏｒ、米国アルテラ社のＤｓｐ  Ｂｕｉｌｄｅｒなど、汎用プロセッサ対応のＳｉｍｕｌｉｎｋなどのモデリングツールと連携し、プロセッサベースのブロック線図型モデルとＦＰＧＡベースのブロック線図型モデルとを統合した１つのブロック線図型モデルを用いたシミュレーションを可能にするものも開発されている。その結果、ソースコードを実行するプロセッサと、ＨＤＬによって定義されるＦＰＧＡとにより並列演算処理装置を構成し、高速にＨＩＬＳ（Hardware In the Loop Simulation）演算を実行できる環境が整いつつある。
【特許文献１】特開２００６−１４３９３号公報
【特許文献２】特開２００７−２３０１０５号公報
【特許文献３】特開２００６−３１８２００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来のプロセッサとＦＰＧＡとを用いたＨＩＬＳの並列演算処理においては、効率の良いリアルタイム処理を実行したり、ＳＩＬＳ（Software In the Loop Simulation）の演算結果とＨＩＬＳの演算結果とを正確に一致させることができない。
【０００４】
本発明は効率の良いＨＩＬＳ装置を実現し、さらにはＨＩＬＳの演算精度を高めることを目的とする。
【課題を解決するための手段】
【０００５】
（１）上記目的を達成するためのシミュレーションシステムは、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーションシステムであって、シミュレーション支援装置と、ＦＰＧＡを備えるＨＩＬＳ装置と、前記ＨＩＬＳ装置を操作するとともに前記ＨＩＬＳ装置の出力を表示するＨＩＬＳ端末と、を備える。本発明のシミュレーションシステムに備わるシミュレーション支援装置は、プロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、前記第一サブシステムモデルからシミュレーションプログラムを生成するプログラム生成手段と、前記第二サブシステムモデルからネットリストを生成するネットリスト生成手段と、を備える。本発明のシミュレーションシステムに備わるＦＰＧＡは、前記シミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、を備える。
【０００６】
本発明によると、リアルタイム処理を効率化するため、ＨＩＬＳ装置のＦＰＧＡに２つのプロセッサを組み込む。すなわち本発明によると、ＨＩＬＳ端末と通信する非リアルタイムシステムを構成するプロセッサ（非リアルタイムプロセッサ）と、ネットリストによって構成される高速演算部と通信するリアルタイムシステムを構成するプロセッサ（リアルタイムプロセッサ）とがＨＩＬＳ装置のＦＰＧＡに定義され、ＦＰＧＡのその他の領域であるユーザロジック部が高速演算部として定義される構成である。その結果、ＨＩＬＳ端末と通信する非リアルタイムプロセッサによる非リアルタイム処理と、高速演算部と協働するリアルタイムプロセッサによるリアルタイム処理とが競合することを防止できるとともに２つのプロセッサと高速演算部とがＦＰＧＡ内部の高速な通信線を通じて通信できるため、効率の良いＨＩＬＳ装置が実現される。なお、プロセッサ対応ブロックとは、プロセッサによって実行されるプログラムに変換される処理が定義されるブロックをいい、ＦＰＧＡ対応ブロックとはＦＰＧＡを定義するネットリストに変換される処理が定義されるブロックをいうものとする。
【０００７】
（２）ユーザロジック部がカスタマイズされた高速演算部とリアルタイムプロセッサとの間においてデータを転送するときには、対象システムの構成とは無関係に、ＨＩＬＳ装置内部でデータ転送を司るデータ転送部の構成に応じた転送遅延が生じ、その結果、ＨＩＬＳ装置によるシミュレーション演算の精度が低下する。
【０００８】
そこで上記目的を達成するためのシミュレーションシステムにおいて、前記シミュレーション支援装置は、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段を備え、前記ユーザロジック部には、前記ネットリストによって定義されることにより前記データ転送部が構成されることが望ましい。
高速演算部とリアルタイムプロセッサとの間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックをブロック線図型モデルに挿入するための手段（データ転送ブロック挿入手段）をシミュレーション装置に備え、データ転送ブロックによってＦＰＧＡのユーザロジック部の一部をデータ転送部として構成することにより、ＨＩＬＳ装置によるシミュレーション演算の精度を高めることができる。
【０００９】
（３）上記目的を達成するためのシミュレーションシステムにおいて、前記ＨＩＬＳ装置は、緩衝記憶部を備えるとともに前記緩衝記憶部を介して前記リアルタイムプロセッサから前記非リアルタイムプロセッサへデータを転送する緩衝インタフェースを備えることが望ましい。
【００１０】
これによりリアルタイムプロセッサと非リアルタイムプロセッサとを効率よく利用することができる。
【００１１】
（４）上記目的を達成するためのシミュレーションシステムにおいて、前記緩衝インタフェースは、前記緩衝記憶部と前記非リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサが利用する第一デュアルポートＲＡＭと、前記緩衝記憶部と前記リアルタイムプロセッサとの間との間に配置され前記リアルタイムプロセッサが利用する第二デュアルポートＲＡＭと、前記非リアルタイムプロセッサと前記リアルタイムプロセッサとから前記緩衝記憶部を制御するための緩衝記憶制御部と、前記非リアルタイムプロセッサと前記リアルタイムプロセッサとの間に配置され前記非リアルタイムプロセッサと前記リアルタイムプロセッサとが利用する第三デュアルポートＲＡＭと、を備えることが望ましい。
【００１２】
第一プロセッサから第二プロセッサへのデータ転送経路と第二プロセッサから第一プロセッサへのデータ転送経路とを分離することにより、リアルタイムプロセッサと非リアルタイムプロセッサとをさらに効率よく利用することができる。
【００１３】
（５）Ｓｉｍｕｌｉｎｋを用いて作成したブロック線図型モデルからＣ言語のソースファイルをＲｅａｌ−Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐを用いて生成する場合、ＦＰＧＡ対応ブロックが結線された部分を全体のブロック線図型モデルから一旦削除しなければならない。
【００１４】
そこで上記目的を達成するためのシミュレーションシステムにおいて、前記シミュレーション支援装置は、前記第一サブシステムモデルが保存される第一ファイルと前記第二サブシステムモデルが保存される第二ファイルとを独立に生成するとともに前記第二サブシステムモデルの演算に必要な前記第一サブシステムモデルの情報を前記第二ファイルに格納するファイル管理手段を備えることが望ましい。
これによりシミュレーション支援装置を操作するユーザの負担を低減できる。
【００１５】
（６）上記目的を達成するためのシミュレーション方法は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルを用いて前記対象システムの応答を検証するためのシミュレーション方法であって、プロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成し、前記第一サブシステムモデルからシミュレーションプログラムを生成し、前記第二サブシステムモデルからネットリストを生成し、ＦＰＧＡの一部で構成された第一プロセッサにより前記シミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成し、前記ネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成し、ＦＰＧＡの一部で構成された第二プロセッサにより前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成し、前記ＨＩＬＳ端末において前記ＨＩＬＳ装置を操作するとともに前記ＨＩＬＳ装置の出力を表示する、ことを含む。
本発明によると、上述したとおり、効率の良いＨＩＬＳ装置を実現できる。
【００１６】
（７）上記目的を達成するためのＨＩＬＳ装置は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを用いて前記対象システムの応答を検証するためのＨＩＬＳ装置であって、前記第一サブシステムモデルから生成されたシミュレーションプログラムを実行することにより、前記ＨＩＬＳ端末と通信しながら前記第一サブシステムモデルの入出力を実行する非リアルタイムシステムを構成する非リアルタイムプロセッサと、前記第二サブシステムモデルから生成されたネットリストによって定義されることにより前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成するユーザロジック部と、前記シミュレーションプログラムを実行することにより、前記電子制御ユニットと前記非リアルタイムシステムと前記高速演算部と通信しながら前記第一サブシステムモデルの演算を実行するリアルタイムシステムを構成するリアルタイムプロセッサと、を備えるＦＰＧＡを備える。
本発明によると、上述したとおり、効率の良いＨＩＬＳ装置を実現できる。
【００１７】
（８）上記目的を達成するためのシミュレーション支援装置は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、ＦＰＧＡに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信しながら前記第二サブシステムモデルの演算を実行する高速演算部を構成する前記ＦＰＧＡのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段と、を備える。
本発明によると、上述したとおり、ＨＩＬＳ装置によるシミュレーション演算の精度を高めることができる。
【００１８】
（９）上記目的を達成するためのシミュレーション支援方法は、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、ＦＰＧＡに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記ＦＰＧＡのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、を備えるシミュレーション支援装置において用いられるシミュレーション支援方法であって、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部の作動を模擬するデータ転送ブロックを前記第二サブシステムモデルに挿入する、ことを含む。
本発明によると、上述したとおり、ＨＩＬＳ装置によるシミュレーション演算の精度を高めることができる。
【００１９】
（１０）上記目的を達成するためのシミュレーション支援プログラムは、電子制御ユニットによって制御される対象システムを表現したブロック線図型モデルであってプロセッサ対応ブロックが結線された第一サブシステムモデルとＦＰＧＡ対応ブロックが結線された第二サブシステムモデルとが統合された前記ブロック線図型モデルを作成するためのモデル作成手段と、ＦＰＧＡに備わるプロセッサによって実行されるシミュレーションプログラムを前記第一サブシステムモデルから生成するプログラム生成手段と、前記電子制御ユニットと通信するとともに前記プロセッサと協働する高速演算部を構成する前記ＦＰＧＡのユーザロジック部を定義するネットリストを前記第二サブシステムモデルから生成するネットリスト生成手段と、して機能するコンピュータによって実行されるシミュレーション支援プログラムであって、前記リアルタイムプロセッサと前記高速演算部との間においてデータを転送するデータ転送部を前記第二サブシステムモデルに挿入するためのデータ転送ブロック挿入手段として前記コンピュータを機能させる。
本発明によると、上述したとおり、ＨＩＬＳ装置によるシミュレーション演算の精度を高めることができる。
【００２０】
尚、請求項に記載された動作の順序は、技術的な阻害要因がない限りにおいて記載順に限定されず、同時に実行されても良いし、記載順の逆順に実行されても良いし、連続した順序で実行されなくても良い。また請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。さらに、本発明はコンピュータプログラムの記録媒体としても成立する。むろん、そのコンピュータプログラムの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体であってもよい。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を添付図面を参照しながら以下の順に説明する。各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
１．概要
図１は、本発明の一実施形態であるシミュレーションシステム１の全体構成を示している。シミュレーションシステム１は、シミュレーション支援装置およびＨＩＬＳ端末として機能するホストコンピュータ１０と、電子制御ユニット３０に接続されるＨＩＬＳ装置２０とを備えている。ホストコンピュータ１０では、モータおよびそのドライバやセンサによって構成される実世界の対象システムを表す対象モデルの作成とＳＩＬ（Software In the Loop）のテストと、ＨＩＬＳ装置２０に備わるＦＰＧＡ２９をカスタマイズするためのプログラム２０３、２０６およびネットリスト２０７の生成が行われる。ＨＩＬＳ装置２０では、電子制御ユニット３０によって制御されるモータの作動を模擬するためのシミュレーション演算がＦＰＧＡ２９によって行われる。ＨＩＬＳ装置２０の操作と出力の表示はホストコンピュータ１０によって行われる。
【００２２】
２．ホストコンピュータの構成
図２に示すように、ホストコンピュータ１０は、プロセッサ１１、ＨＩＬＳ装置２０との通信を制御するＩ／Ｏ１６の他、図示しないメモリ、ハードディスク等を備えている。ホストコンピュータ１０には、ホストコンピュータ１０のＧＵＩ（Graphical User Interface）を構成する画面とＨＩＬＳ装置２０の出力を表示するためのディスプレイ１４ａと、ホストコンピュータ１０およびＨＩＬＳ装置２０を操作するためのキーボード１５ａとマウス１５ｂとが接続される。
【００２３】
ホストコンピュータ１０は、非リアルタイムオペレーティングシステムであるＷｉｎｄｏｗｓ（登録商標）上において、Ｓｉｍｕｌｉｎｋ１０２、Ｒｅａｌ−Ｔｉｍｅ  Ｗｏｒｋｓｈｏｐ（以下、ＲＴＷと略記する。）１０３、Ｓｙｓｔｅｍ  Ｇｅｎｅｒａｔｏｒ（以下、ＳＧと略記する。）１０８、ＩＳＥ（登録商標）１０７、モデリング支援プログラム１０４などで構成されるシミュレーション支援プログラムをプロセッサ１１によって実行することによってシミュレーション支援装置として機能する。
【００２４】
Ｓｉｍｕｌｉｎｋ１０２は対象システムであるモータの全体を表現したブロック線図型モデルの中のプロセッサによって演算される部分である第一サブシステムモデルＭ１を作成する機能を実現するモジュールであって、ホストコンピュータ１０をモデル作成手段として機能させる。第一サブシステムモデルＭ１はＨＩＬＳ装置２０のプロセッサで実行されるプログラムに変換されるプロセッサ対応ブロックが結線されたモデルである。
【００２５】
ＲＴＷ１０３はＳｉｍｕｌｉｎｋ１０２によって作成されたモデルから独立して実行可能な通信プログラム２０３と演算プログラム２０６を生成するモジュールであって、ホストコンピュータ１０をプログラム生成手段として機能させる。
【００２６】
ＳＧ１０８は、対象システムであるモータの全体を表現したブロック線図型モデルの中の高速演算部２６ｂによって演算される部分である第二サブシステムモデルＭ２を作成する機能を実現するモジュールであって、ホストコンピュータ１０をモデル作成手段として機能させる。ＳＧ１０８はＦＰＧＡ対応ブロックであるＳＧブロックをＳｉｍｕｌｉｎｋ１０２のＧＵＩに組み込む。ＳＧブロックとは米国ザイリンクス社がＳＧ１０８の標準ブロックとして提供しているブロックである。第二サブシステムモデルＭ２はＨＩＬＳ装置２０のＦＰＧＡ２９を定義するネットリストに変換されるＦＰＧＡ対応ブロックが結線されたモデルである。
【００２７】
ＩＳＥ１０７は、ＨＩＬＳ装置２０のＦＰＧＡ２９のユーザロジック部２６を、ＳＧ１０８によって作成した第二サブシステムモデルＭ２の演算を実行する高速演算部２６ｂおよびＩ／Ｆ２６ａとして構成するためのネットリスト２０７を第二サブシステムモデルＭ２から生成するモジュールであって、ホストコンピュータ１０をネットリスト生成手段として機能させる。またＩＳＥ１０７は、ユーザロジック部２６を定義するネットリスト２０７と第一プロセッサ２１を定義するネットリストと第二プロセッサ２４を定義するネットリストとから二進数表現の１つのＦＰＧＡ実装ファイル（コンフィギュレーションファイル）を生成する。尚、第一プロセッサ２１を定義するネットリストと第二プロセッサ２４を定義するネットリストとは、予め組み込んでおく。
【００２８】
モデリング支援プログラム１０４は、第二サブシステムモデルＭ２にデータ転送ブロック１０６を挿入するとともに、第二サブシステムモデルＭ２が参照する第一サブシステムモデルＭ１の情報を第一サブシステムモデルＭ１から参照情報１０５として取得するモジュールであって、ホストコンピュータ１０をデータ転送ブロック挿入手段およびファイル管理手段として機能させる。
【００２９】
３．ＨＩＬＳ装置の構成
図２に示すように、ＨＩＬＳ装置２０は、ＦＰＧＡ２９、ホストコンピュータ１０との通信を制御するＩ／Ｏ２２、電子制御ユニット３０との通信を制御するＩ／Ｏ２７、２８の他、図示しない記憶媒体等を備えている。ホストコンピュータ１０によって生成されたＦＰＧＡ実装ファイル、通信プログラム２０３および演算プログラム２０６をＨＩＬＳ装置２０にロードすることによって、ＨＩＬＳ装置２０の各種の機能が実現される。
【００３０】
ＦＰＧＡ２９は、図示しない複数のＩ／Ｏ部、複数のロジックセル、内部配線、クロックネットワーク、複数のＳＲＡＭ、複数のデュアルポートブロックＲＡＭなどを備えたＰＬＤ（Programmable Logic Device）である。ＦＰＧＡ２９のこれらの構成要素は第一プロセッサ２１と、第二プロセッサ２４と、Ｉ／Ｆ２３と、ユーザロジック部２６と、第一プロセッサ２１および第二プロセッサ２４の図示しないバスやタイマなどを構成する。第一プロセッサ２１と、第二プロセッサ２４と、Ｉ／Ｆ２３と、ユーザロジック部２６とは、ホストコンピュータ１０によって生成されたＦＰＧＡ実装ファイルをＦＰＧＡ２９に実装することによって、ネットリストによって定義された機能を備える電子回路として構成される。
【００３１】
非リアルタイムプロセッサとして機能する第一プロセッサ２１は、非リアルタイムオペレーティングシステムであるＬｉｎｕｘ（登録商標）２０１の上でＤｏｗｎ  Ｌｏａｄｅｒ（以下、ＤＬと略記する。）２０３を実行することにより、通信プログラム２０３および演算プログラム２０６をＨＩＬＳ装置２０の図示しない不揮発性記憶媒体に格納する。通信プログラム２０３および演算プログラム２０６は、ＤＬ２０３によってロードされ、それぞれが第一プロセッサ２１および第二プロセッサ２４によって実行可能な状態になる。
【００３２】
第一プロセッサ２１は、Ｌｉｎｕｘ２０１の上で通信プログラム２０３を実行することによりホストコンピュータ１０と通信しながら第一サブシステムモデルＭ１の入出力を実行する非リアルタイムシステムを構成するＭｉｃｒｏ  Ｂｌａｚｅ（登録商標）コアである。通信プログラム２０３は、第一サブシステムモデルＭ１に基づいてＲＴＷ１０３が生成する実行形式のシミュレーションプログラムのうちの１つであって、第一サブシステムモデルＭ１の入出力を制御する。
【００３３】
リアルタイムプロセッサとして機能する第二プロセッサ２４は、リアルタイムオペレーティングシステムであるμＩＴＲＯＮ準拠のＲＴＯＳ２０５の上でＭｏｎｉｔｏｒ２０４および演算プログラム２０６を実行することによりリアルタイムシステムを構成するＰｏｗｅｒ  ＰＣ（登録商標）コアである。第二プロセッサ２４によって構成されるリアルタイムシステムは、第一プロセッサ２１によって構成される非リアルタイムシステムと、ユーザロジック部２６の高速演算部２６ｂと、電子制御ユニット３０と通信しながら第一サブシステムモデルＭ１の演算を実行する。Ｍｏｎｉｔｏｒ２０４は主に通信を制御する。演算プログラム２０６は第一サブシステムモデルＭ１に基づいてＲＴＷ１０３が生成する実行形式のシミュレーションプログラムのうちの１つであって、第一サブシステムモデルＭ１の演算を制御する。第二プロセッサ２４と第一プロセッサ２１との通信はＩ／Ｆ２３を介して行われる。第二プロセッサ２４と高速演算部２６ｂとの通信はＩ／Ｆ２６ａを介して行われる。第二プロセッサ２４と電子制御ユニット３０との通信はＩ／Ｏ２７を介して行われる。
【００３４】
ユーザロジック部２６は、ＩＳＥ１０７によって生成されるＦＰＧＡ実装ファイルがＦＰＧＡ２９に実装されると第二プロセッサ２４と電子制御ユニット３０と通信しながら第二サブシステムモデルＭ２の演算を実行する専用処理回路を構成する。すなわちユーザロジック部２６は、ＳＧ１０８を用いてユーザが作成するブロック線図型モデルによって任意の回路が定義されるＦＰＧＡ２９の一部の領域である。ユーザロジック部２６と電子制御ユニット３０との通信はＩ／Ｏ２８を介して行われる。
【００３５】
ユーザロジック部２６には、第二サブシステムモデルＭ２の実世界の対象システムに対応する部分の演算を行う高速演算部２６ｂと、第二サブシステムモデルＭ２の実世界の対象システムに対応しない部分であるデータ転送ブロック１０６に対応するＩ／Ｆ２６ａとがネットリスト２０７に応じて構成される。
【００３６】
ユーザロジック部２６のＩ／Ｆ２６ａは、第二プロセッサ２４と高速演算部２６ｂとの間においてデータを転送するバスとバスマスタとを備えている。データ転送部として機能するＩ／Ｆ２６ａのモデルはデータ転送ブロック１０６として第二サブシステムモデルＭ２に組み込まれるため、Ｉ／Ｆ２６ａにおいて転送遅延が生じるとしても、第一サブシステムモデルＭ１と第二サブシステムモデルＭ２との同期が保証される。したがって、ＨＩＬＳ装置２０によるシミュレーション演算の精度が向上し、ホストコンピュータ１０によるＳＩＬＳ演算の結果とＨＩＬＳ装置２０によるＨＩＬＳ演算の結果の差が低減される。
【００３７】
図３は第一プロセッサ２１と第二プロセッサ２４との間でデータ転送を行うためのＩ／Ｆ２３の構成を示すブロック図である。緩衝インタフェースとして機能するＩ／Ｆ２３の各ブロックは、ＩＰコアによって構成されている。図３においてはＩＰコアによって構成されている各ブロックにＩＰコアの一般略称を付すことにより各ブロックの機能を示している。ＤＰＲＡＭ２３ｂ、２３ｄ、２３ｈは、同時に読み出しと書き込みができるデュアルポートのブロックＲＡＭである。ＢＲＡＭ−ＣＮＴＲ２３ａ、２３ｅ、２３ｇ、２３ｊは、ブロックＲＡＭにデータを書き込み、ブロックＲＡＭからデータを読み出す。ＧＰＩＯ２３ｆ、２３ｉは第一プロセッサ２１と第二プロセッサ２４とによって緩衝記憶部２３ｃを制御するための各種の制御信号とフラグの書き込みと読み込みに用いられる。
【００３８】
非リアルタイムシステムを構成する第一プロセッサ２１からリアルタイムシステムを構成する第二プロセッサへのデータ転送は、第一プロセッサ２１によって制御されるＢＲＡＭ−ＣＮＴＲ２３ｇと、第二プロセッサ２４によって制御されるＢＲＡＭ−ＣＮＴＲ２３ｊとによって読み出しと書き込みが制御されるＤＰＲＡＭ２３ｈを介して行われる。すなわちＤＰＲＡＭ２３ｈを共有メモリとして利用することにより第一プロセッサ２１から第二プロセッサ２４へデータを転送する。
【００３９】
リアルタイムシステムを構成する第二プロセッサ２４から非リアルタイムシステムを構成する第一プロセッサ２１へのデータ転送は、緩衝記憶部２３ｃを介して行われる。緩衝記憶部２３ｃは、ＦＩＦＯ（First In First Out）の記憶回路である。ＧＰＩＯ２３ｉは第二プロセッサ２４から緩衝記憶部２３ｃを制御するための緩衝記憶制御部として機能する。ＧＰＩＯ２３ｆは第一プロセッサ２１から緩衝記憶部２３ｃを制御するための緩衝記憶制御部として機能する。緩衝記憶部２３ｃに書き込まれるデータはＢＲＡＭ−ＣＮＴＲ２３ｅを介して第二プロセッサ２４によって利用されるＤＰＲＡＭ２３ｄにいったん書き込まれる。緩衝記憶部２３ｃから読み出されるデータはＢＲＡＭ−ＣＮＴＲ２３ａを介して第一プロセッサ２１によって利用されるＤＰＲＡＭ２３ｂにいったん書き込まれる。
【００４０】
リアルタイムシステムを構成する第二プロセッサ２４によって利用されるＤＰＲＡＭ２３ｄには、第一プロセッサ２１の状態とは無関係にデータが書き込まれ、ＤＰＲＡＭ２３ｄに書き込まれたデータが所定量蓄積されると、そのデータが緩衝記憶部２３ｃに書き込まれる。非リアルタイムシステムを構成する第一プロセッサ２１がＤＰＲＡＭ２３ｂに記憶されているデータを読み出すとき、緩衝記憶部２３ｃに記憶されているデータのうち最も古いデータがＤＰＲＡＭ２３ｂに書き込まれる。緩衝記憶部２３ｃは自分自身の容量分までのデータを蓄積できるため、第一プロセッサ２１によって構成される非リアルタイムシステムがデータを受け取ることが可能ではない状態でも第二プロセッサ２４が構成するリアルタイムシステムはデータをいったん緩衝記憶部２３ｃに引き渡すことができる。このため、第一プロセッサ２１と第二プロセッサ２４を効率良く利用できる。
【００４１】
４．シミュレーション方法
図４はシミュレーションシステム１を用いて実世界の対象システムの応答を検証するためのシミュレーション方法を示すシーケンスチャートである。
はじめにホストコンピュータ１０においてＳｉｍｕｌｉｎｋ１０２のＧＵＩを操作することにより、第一サブシステムモデルＭ１と第二サブシステムモデルＭ２とを統合したブロック線図型モデルを作成する（ステップＳ１０）。ＳＧ１０８によってＳｉｍｕｌｉｎｋ１０２のＧＵＩに組み込まれたＳＧブロックを用いて第二サブシステムモデルＭ２が作成されるとき、第二サブシステムモデルＭ２に対応するＨＤＬが記述される。モデリング支援プログラム１０４によってＳｉｍｕｌｉｎｋ１０２のＧＵＩに組み込まれたメニュー項目を操作することにより、図２に示すようにデータ転送ブロック１０６が第二サブシステムモデルＭ２に挿入される。データ転送ブロック１０６に対応したＨＤＬはＳＧ１０８によって記述される。またこのとき、モデリング支援プログラム１０４は、Ｓｉｍｕｌｉｎｋ１０２によって第一サブシステムモデルＭ１が保存されるファイルから、第二サブシステムモデルＭ２の演算に必要な参照情報１０５を抽出し、ＳＧ１０８によって第二サブシステムモデルＭ２が保存されるファイルにその参照情報１０５を格納する。
【００４２】
次にホストコンピュータ１０において第一サブシステムモデルＭ１から通信プログラム２０３のソースファイルと演算プログラム２０６のソースファイルとを生成する（ステップＳ１１）。これらのソースファイルはＣ言語によって記述され、ＲＴＷ１０３を実行することによって生成される。このとき、ユーザは第一サブシステムモデルＭ１と第二サブシステムモデルＭ２とが互いに独立した別個のファイルに保存されているため、第二サブシステムモデルＭ２を編集することなく、通信プログラム２０３のソースファイルと演算プログラム２０６のソースファイルを生成することができる。
【００４３】
次にホストコンピュータ１０において通信プログラム２０３のソースファイルと演算プログラム２０６のソースファイルとをコンパイルし、実行形式の通信プログラム２０３と演算プログラム２０６とを生成する（ステップＳ１２）。この処理はＲＴＷ１０３の実行によって行われる。
【００４４】
次にホストコンピュータ１０において第二サブシステムモデルＭ２に対応するＨＤＬからＦＰＧＡ２９のユーザロジック部２６を定義するためのネットリスト２０７を生成し、ネットリスト２０７と第一プロセッサ２１を定義するネットリストと第二プロセッサ２４を定義するネットリストとから二進数表現の１つのＦＰＧＡ実装ファイルを生成する（ステップＳ１３）。ＦＰＧＡ実装ファイルはＩＳＥ１０７を実行することによって生成される。
【００４５】
次にホストコンピュータ１０からＨＩＬＳ装置２０にＦＰＧＡ実装ファイルをダウンロードする（ステップＳ１４）。このとき、ＦＰＧＡ２９の機能がネットリストに応じて定義される。
【００４６】
次にホストコンピュータ１０からＨＩＬＳ装置２０に通信プログラム２０３および演算プログラム２０６をダウンロードする（ステップＳ１６）。このとき図２に示すＤＬ２０２によって通信プログラム２０３および演算プログラム２０６がＨＩＬＳ装置２０の不揮発性記憶媒体の所定の領域にダウンロードされる。
【００４７】
次にホストコンピュータ１０のＧＵＩを操作することによって、第一サブシステムモデルＭ１と第二サブシステムモデルＭ２とが統合されたブロック線図型モデルの演算をＨＩＬＳ装置２０において実行するための操作コマンドがホストコンピュータ１０からＨＩＬＳ装置２０に送信される（ステップＳ１８）。この操作コマンドは通信プログラム２０３を実行する第一プロセッサ２１が構成する非リアルタイムシステムが受信する。
【００４８】
操作コマンドを受信したＨＩＬＳ装置２０は第一サブシステムモデルＭ１と第二サブシステムモデルＭ２とが統合されたブロック線図型モデルの演算を実行する（ステップＳ１９）。この演算は演算プログラム２０６を実行する第二プロセッサ２４が構成するリアルタイムシステムとネットリスト２０７によって定義された高速演算部２６ｂとによって実行される。このとき、ネットリスト２０７によって定義された高速演算部２６ｂはハードウエア論理によって演算するため高速に第二サブシステムモデルＭ２の演算を実行できる。また高速演算部２６ｂと第二プロセッサ２４との間のデータ転送を行うＩ／Ｆ２６ａのモデルがブロック線図型モデルに予め組み込まれているため、高速演算部２６ｂと第二プロセッサ２４とは同期してそれぞれの演算を実行する。このため、ＨＩＬＳ装置２０によるシミュレーション演算の精度は高く、ＨＩＬＳ装置２０によるＨＩＬＳ演算の結果はホストコンピュータ１０によるＳＩＬＳ演算の結果と一致する。
【００４９】
次にＨＩＬＳ装置２０におけるブロック線図型モデルの演算結果がＨＩＬＳ装置２０からホストコンピュータ１０に送信される（ステップＳ２０）。この処理は通信プログラム２０３を実行する第一プロセッサ２１が構成する非リアルタイムシステムによって実行される。
【００５０】
ホストコンピュータ１０はＨＩＬＳ装置２０によるブロック線図型モデルの演算の結果を受信すると、その結果をディスプレイ１４ａに表示する（ステップＳ２１）。
【００５１】
５．他の実施形態
本発明の技術的範囲は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、シミュレーション支援装置とＨＩＬＳ端末とを別個独立の２つのコンピュータによって構成しても良い。また本発明はＳｙｓｔｅｍ  Ｇｅｎｅｒａｔｏｒ以外の例えばＤｓｐ  Ｂｕｉｌｄｅｒ等のモデリングツールに適用することもできる。また本発明によるシミュレーションシステムは、電気信号が応答として検証される実世界の様々なシステムのプロトタイピングに適用されることにより、その高い演算精度と高速性能が顕著に発揮される。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態にかかる模式図。
【図２】本発明の実施形態にかかるブロック図。
【図３】本発明の実施形態にかかるブロック図。
【図４】本発明の実施形態にかかるシーケンスチャート。
【符号の説明】
【００５３】
１：シミュレーションシステム、１０：ホストコンピュータ、１１：プロセッサ、１４ａ：ディスプレイ、１５ａ：キーボード、１５ｂ：マウス、２０：ＨＩＬＳ装置、２１：第一プロセッサ、２３：Ｉ／Ｆ、２３ｂ：デュアルポートＲＡＭ、２３ｃ：緩衝記憶部、２３ｄ：デュアルポートＲＡＭ、２３ｆ：ＧＰＩＯ、２３ｈ：デュアルポートＲＡＭ、２３ｉ：ＧＰＩＯ、２４：第二プロセッサ、２６：ユーザロジック部、２６ａ：Ｉ／Ｆ、２６ｂ：高速演算部、３０：電子制御ユニット、１０４：モデリング支援プログラム、１０５：参照情報、１０６：データ転送ブロック、２０３：通信プログラム、２０６：演算プログラム、２０７：ネットリスト、Ｍ１：第一サブシステムモデル、Ｍ２：第二サブシステムモデル
【図１】
2010020384.tif 000003
【図２】
2010020384.tif 000004
【図３】
2010020384.tif 000005
【図４】
2010020384.tif 000006