(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語で記述されたモデルに対応する動作をハードウェアでエミュレートするハードウェア処理部と、
前記ハードウェア処理部への入力および前記ハードウェア処理部からの出力の少なくともいずれかを、ユーザ端末から受信したユーザの指示に従って制御する制御部と、
を備え、
前記制御部は、
前記ユーザによりアクセスできない構成部と、
前記ユーザにより書き換え可能な、前記ハードウェア処理部の入力および出力を制御するためのレジスタと前記構成部の動作を制御するためのレジスタとを含むレジスタ群、および、前記構成部が実行する命令群を記憶する命令群記憶部と、
前記情報処理装置と外部装置とを接続するインタフェース部と、
を有する情報処理装置。
【請求項２】
前記インタフェース部は、
前記制御部を、前記外部装置としての前記ユーザ端末と接続する第１インタフェースと、
前記ハードウェア処理部への入力および前記ハードウェア処理部からの出力の少なくともいずれかを、前記外部装置としてのテスト対象の装置と接続する第２インタフェースと、
を含む請求項１に記載の情報処理装置。
【請求項３】
前記インタフェース部は、
前記制御部を、前記外部装置としての前記ユーザ端末と接続する第１インタフェースと、
前記ハードウェア処理部への入力および前記ハードウェア処理部からの出力の少なくともいずれかを、前記外部装置としてのテスト対象のソフトウェアが搭載された装置と接続する第３インタフェースと、
を含む請求項１に記載の情報処理装置。
【請求項４】
前記構成部は、前記命令群を実行するコントローラと、前記コントローラの前記命令群を実行するタイミングを制御するためのタイマとを含む請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記構成部は、さらに、前記ハードウェア処理部から出力されたデータを保持するためのメモリを含む請求項４に記載の情報処理装置。
【請求項６】
前記レジスタ群はメモリマップドＩ／Ｏであって、前記レジスタ群のそれぞれは、前記ハードウェア処理部、前記構成部または前記インタフェース部の入力および出力の少なくともいずれかを制御する請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記ハードウェア記述言語は、デジタルシグナルを用いるハードウェアモデルまたはソフトウェアモデルを記述する第１ハードウェア記述言語であり、
前記ハードウェア処理部は、前記第１ハードウェア記述言語で記述されたハードウェアモデルまたはソフトウェアモデルに基づいて生成されたハードウェア設計データが記憶されることにより、前記第１ハードウェア記述言語で記述されたモデルに対応する動作をすることが可能となる請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記ハードウェア記述言語は、アナログシグナルを用いるハードウェアモデルまたはソフトウェアモデルを記述する第２ハードウェア記述言語であり、
前記ハードウェア処理部は、前記第２ハードウェア記述言語で記述されたハードウェアモデルまたはソフトウェアモデルに基づいて生成されたハードウェア設計データが記憶されることにより、前記第２ハードウェア記述言語で記述されたモデルに対応する動作をすることが可能となる請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
前記ハードウェア記述言語は、アナログシグナルおよびデジタルシグナルを用いるミックスドシグナルモデルを記述する第３ハードウェア記述言語であり、
前記ハードウェア処理部は、前記第３ハードウェア記述言語で記述されたミックスドシグナルモデルに基づいて生成されたハードウェア設計データが記憶されることにより、前記第３ハードウェア記述言語で記述されたモデルに対応する動作をすることが可能となる請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項１０】
前記ハードウェア記述言語は、アナログシグナルおよびデジタルシグナルを用いるミックスドシグナルモデルを記述する第３ハードウェア記述言語であり、
前記ハードウェア処理部は、
ソフトウェア格納部と、ミックスドシグナル処理部とを有し、
前記第３ハードウェア記述言語で記述されたミックスドシグナルモデルのソフトウェアが前記ソフトウェア格納部に格納されることにより、
前記ソフトウェアを記述した前記第３ハードウェア記述言語を解析して、前記アナログシグナルと前記デジタルシグナルとを入力および出力する前記ミックスドシグナル処理部により、前記第３ハードウェア記述言語で記述されたモデルに対応する動作をすることが可能となる請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項１１】
前記情報処理装置は、ＦＰＧＡ(Field-Programmable Gate Array)またはＡＳＩＣ(Application Specific Integrated Circuit)である請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の情報処理装置の使用方法であって、
前記情報処理装置の前記ハードウェア処理部を、前記ハードウェア記述言語で記述されたモデルに対応する動作をハードウェアでエミュレートするように設定する第１設定ステップと、
テスト対象の装置またはテスト対象のソフトウェアを搭載する装置、および、前記情報処理装置を制御するためのユーザの指示を受け付け前記情報処理装置に送信するユーザ端末を、前記情報処理装置に接続する接続ステップと、
前記情報処理装置を制御するユーザの指示を受け付けるための第１画面を参照して、前記ユーザ端末が受け付けた前記ユーザの指示に基づくデータを、前記情報処理装置に送信して設定する第２設定ステップと、
前記設定されたデータに基づいて前記情報処理装置の前記ハードウェア処理部を動作させ、前記ハードウェア処理部の処理結果および前記設定されたデータに基づき、前記情報処理装置への入力および前記情報処理装置からの出力の少なくともいずれかを表示する第２画面を前記ユーザ端末に表示する表示ステップと、
を含む情報処理装置の使用方法。
【請求項１３】
ソフトウェアによりエミュレートされるモデルの動作を、前記ハードウェア記述言語で記述された前記モデルに変換する変換ステップをさらに含む請求項１２に記載の情報処理装置の使用方法。
【請求項１４】
ハードウェア記述言語で記述された装置モデルまたはソフトウェアモデルをエミュレートする情報処理装置と、
前記情報処理装置に接続される、テスト対象の装置またはテスト対象のソフトウェアを搭載する装置と、
前記情報処理装置を制御するためのユーザの指示を受け付け、前記情報処理装置に送信するユーザ端末と、
を備え、
前記情報処理装置は、
前記ハードウェア記述言語で記述された前記装置モデルまたは前記ソフトウェアモデルに対応する動作をハードウェアでエミュレートするハードウェア処理部と、
前記ハードウェア処理部への入力および前記ハードウェア処理部からの出力の少なくともいずれかを、前記ユーザ端末から受信した前記ユーザの指示に従って制御する制御部と、
を備え、
前記制御部は、
前記ユーザによりアクセスできない構成部と、
前記ユーザにより書き換え可能な、前記ハードウェア処理部の入力および出力を制御するためのレジスタと前記構成部の動作を制御するためのレジスタとを含むレジスタ群、および、前記構成部が実行する命令群を記憶する命令群記憶部と、
前記情報処理装置と外部装置とを接続するインタフェース部と、
を有する情報処理システム。
【請求項１５】
請求項１４に記載の情報処理システムが備えたユーザ端末であって、
前記ユーザに対する画面を表示する表示部と、
前記ユーザの操作を受け付ける操作部と、
前記情報処理装置を制御する前記ユーザの指示を受け付けるための第１画面、および、前記情報処理装置への入力および前記情報処理装置からの出力の少なくともいずれかを表示する第２画面を生成して、前記表示部に表示させる表示制御部と、
前記第１画面を参照して、前記操作部を介して受け付けた前記ユーザの指示に基づくデータを、前記レジスタ群および前記命令群記憶部に設定する設定指示部と、
を備えたユーザ端末。
【請求項１６】
請求項１４に記載の情報処理システムが備えたユーザ端末のコンピュータに実行させるプログラムであって、
前記情報処理装置を制御する前記ユーザの指示を受け付けるための第１画面、および、前記情報処理装置への入力および前記情報処理装置からの出力の少なくともいずれかを表示する第２画面を生成して、表示部に表示させる表示制御ステップと、
前記第１画面を参照して、操作部を介して受け付けた前記ユーザの指示に基づくデータを、前記レジスタ群および前記命令群記憶部に設定する設定指示ステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア記述言語で記述されたモデルによる処理を実行する装置に関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、ハードウェア記述言語で記載されたモデルを、ＦＰＧＡ(Field-Programmable Gate Array)によるハードウェア処理部分とＣＰＵ(Central Processing Unit)によるソフトウェア処理部分とに分離して、統合した処理を実現する技術が開示されている。特許文献２には、ＦＰＧＡによって、メモリコントローラ、および、ホストコントローラとメモリコントローラとを繋ぐインタフェース部を実現する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第１０３８７５４８号公報
【特許文献２】特開２０１９−１５３１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記文献に記載の技術では、ハードウェア記述言語で記載されたモデルをハードウェアで実現した後に、外部からのユーザの指示に従ってハードウェアの入力や出力を制御することができなかった。そのため、生成されたハードウェアを動作させるための作業はユーザに過大な時間および費用を負わせていたし、ハードウェアを実現した後のユーザによる変更も簡単ではなかった。
【０００５】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る情報処理装置は、
ハードウェア記述言語で記述されたモデルに対応する動作をハードウェアでエミュレートするハードウェア処理部と、
前記ハードウェア処理部への入力および前記ハードウェア処理部からの出力の少なくともいずれかを、ユーザ端末から受信したユーザの指示に従って制御する制御部と、
を備え、
前記制御部は、
前記ユーザによりアクセスできない構成部と、
前記ユーザにより書き換え可能な、前記ハードウェア処理部の入力および出力を制御するためのレジスタと前記構成部の動作を制御するためのレジスタとを含むレジスタ群、および、前記構成部が実行する命令群を記憶する命令群記憶部と、
前記情報処理装置と外部装置とを接続するインタフェース部と、
を有する。
【０００７】
上記目的を達成するため、本発明に係る情報処理装置の使用方法は、
上記情報処理装置の使用方法であって、
前記情報処理装置の前記ハードウェア処理部を、前記ハードウェア記述言語で記述されたモデルに対応する動作をハードウェアでエミュレートするように設定する第１設定ステップと、
テスト対象の装置またはテスト対象のソフトウェアを搭載する装置、および、前記情報処理装置を制御するためのユーザの指示を受け付け前記情報処理装置に送信するユーザ端末を、前記情報処理装置に接続する接続ステップと、
前記情報処理装置を制御するユーザの指示を受け付けるための第１画面を参照して、前記ユーザ端末が受け付けた前記ユーザの指示に基づくデータを、前記情報処理装置に送信して設定する第２設定ステップと、
前記設定されたデータに基づいて前記情報処理装置の前記ハードウェア処理部を動作させ、前記ハードウェア処理部の処理結果および前記設定されたデータに基づき、前記情報処理装置への入力および前記情報処理装置からの出力の少なくともいずれかを表示する第２画面を前記ユーザ端末に表示する表示ステップと、
を含む。
【０００８】
上記目的を達成するため、本発明に係る情報処理システムは、
ハードウェア記述言語で記述された装置モデルまたはソフトウェアモデルをエミュレートする情報処理装置と、
前記情報処理装置に接続される、テスト対象の装置またはテスト対象のソフトウェアを搭載する装置と、
前記情報処理装置を制御するためのユーザの指示を受け付け、前記情報処理装置に送信するユーザ端末と、
を備え、
前記情報処理装置は、
前記ハードウェア記述言語で記述された前記装置モデルまたは前記ソフトウェアモデルに対応する動作をハードウェアでエミュレートするハードウェア処理部と、
前記ハードウェア処理部への入力および前記ハードウェア処理部からの出力の少なくともいずれかを、前記ユーザ端末から受信した前記ユーザの指示に従って制御する制御部と、
を備え、
前記制御部は、
前記ユーザによりアクセスできない構成部と、
前記ユーザにより書き換え可能な、前記ハードウェア処理部の入力および出力を制御するためのレジスタと前記構成部の動作を制御するためのレジスタとを含むレジスタ群、および、前記構成部が実行する命令群を記憶する命令群記憶部と、
前記情報処理装置と外部装置とを接続するインタフェース部と、
を有する。
【０００９】
上記目的を達成するため、本発明に係るユーザ端末は、
上記情報処理システムが備えたユーザ端末であって、
前記ユーザに対する画面を表示する表示部と、
前記ユーザの操作を受け付ける操作部と、
前記情報処理装置を制御する前記ユーザの指示を受け付けるための第１画面、および、前記情報処理装置への入力および前記情報処理装置からの出力の少なくともいずれかを表示する第２画面を生成して、前記表示部に表示させる表示制御部と、
前記第１画面を参照して、前記操作部を介して受け付けた前記ユーザの指示に基づくデータを、前記レジスタ群および前記命令群記憶部に設定する設定指示部と、
を備えた。
【００１０】
上記目的を達成するため、本発明に係るユーザ端末のプログラムは、
上記情報処理システムが備えたユーザ端末のコンピュータに実行させるプログラムであって、
前記情報処理装置を制御する前記ユーザの指示を受け付けるための第１画面、および、前記情報処理装置への入力および前記情報処理装置からの出力の少なくともいずれかを表示する第２画面を生成して、表示部に表示させる表示制御ステップと、
前記第１画面を参照して、操作部を介して受け付けた前記ユーザの指示に基づくデータを、前記レジスタ群および前記命令群記憶部に設定する設定指示ステップと、
をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、ハードウェア記述言語で記述されたモデルを動作させるための作業における、ユーザの負担を軽減すると共にユーザによる変更を簡単に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係る情報処理装置を使用した情報処理システムの構成を示す図である。
【図２Ｂ】本発明の第２実施形態に係る情報処理装置を使用した情報処理システムの他構成を示す図である。
【図３】本発明の第２実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図４Ａ】本発明の第２実施形態に係る情報処理装置のハードウェア処理部にインストールされるハードウェア設計データの中身を示す図である。
【図４Ｂ】本発明の第２実施形態に係る情報処理装置の命令群記憶部に記憶される命令を示す図である。
【図５】本発明の第２実施形態に係る情報処理装置の使用手順を示すシーケンス図である。
【図６】本発明の第２実施形態に係る情報処理装置に対するユーザの設定手順を示すフローチャートである。
【図７Ａ】本発明の第２実施形態に係る情報処理装置の制御部を設定するためのドロップダウンリストとシリアルポートの接続に関連するユーザ端末の設定画面を示す図である。
【図７Ｂ】本発明の第２実施形態に係る情報処理装置の制御部にユーザパラメータを設定するためのユーザ端末の設定画面を示す図である。
【図７Ｃ】本発明の第２実施形態に係る情報処理装置の制御部にユーザパラメータを設定するためのユーザ端末の他の設定画面を示す図である。
【図７Ｄ】本発明の第２実施形態に係る情報処理装置の制御部に対しユーザパラメータをファイルで与える場合に、そのファイルの内容更新を設定するユーザ端末の設定画面を示す図である。
【図７Ｅ】本発明の第２実施形態に係る情報処理装置の制御部にイベントタイマを設定するためのユーザ端末の設定画面を示す図である。
【図７Ｆ】本発明の第２実施形態に係る情報処理装置の制御部にＣＡＮレートを設定するためのユーザ端末の設定画面を示す図である。
【図７Ｇ】本発明の第２実施形態に係る情報処理装置の制御部に命令群を設定するためのユーザ端末の設定画面を示す図である。
【図７Ｈ】本発明の第２実施形態に係る情報処理装置の制御部から出力される動作信号の変化を表示するためのユーザ端末の表示画面を示す図である。
【図８Ａ】本発明の第２実施形態に係る情報処理装置の第１使用例における情報処理システムを示す図である。
【図８Ｂ】本発明の第２実施形態に係る情報処理装置の第１使用例におけるハードウェア設計データの生成を示す図である。
【図８Ｃ】本発明の第２実施形態に係る情報処理装置の第１使用例における情報処理システムの構成を示す図である。
【図９Ａ】本発明の第２実施形態に係る情報処理装置の第２使用例における情報処理システムを示す図である。
【図９Ｂ】本発明の第２実施形態に係る情報処理装置の第２使用例におけるハードウェア設計データの生成を示す図である。
【図９Ｃ】本発明の第２実施形態に係る情報処理装置の第２使用例における情報処理システムの構成を示す図である。
【図１０】本発明の第２実施形態に係る情報処理装置の第３使用例における情報処理システムの構成を示す図である。
【図１１Ａ】本発明の第２実施形態に係る情報処理装置の第４使用例における情報処理システムを示す図である。
【図１１Ｂ】本発明の第２実施形態に係る情報処理装置の第４使用例におけるハードウェア設計データの生成を示す図である。
【図１１Ｃ】本発明の第２実施形態に係る情報処理装置の第４使用例における情報処理システムの構成を示す図である。
【図１２】本発明の第３実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図１３】本発明の第４実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図１４】本発明の第５実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図１５】本発明の第６実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図１６】本発明の第７実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図１７】本発明の第８実施形態に係る情報処理装置を含む情報処理システムの機能構成を示すブロック図である。
【図１８】本発明の第９実施形態に係る情報処理装置へのハードウェア設計データの設定方法の違いを示す図である。
【図１９】本発明の第１０実施形態に係る情報処理システムの処理手順を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１４】
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、ハードウェア記述言語で記述されたモデルによる処理を実行する装置である。
【００１５】
図１に示すように、情報処理装置１００は、ハードウェア処理部１０１と、制御部１０２と、を含む。ハードウェア処理部１０１は、ハードウェア記述言語で記述されたモデル１２０に対応する動作をハードウェア１１１でシミュレートする。制御部１０２は、ハードウェア処理部１０１への入力１２１およびハードウェア処理部１０１からの出力１２２の少なくともいずれかを、ユーザ端末１１０から受信したユーザの指示１１２に従って制御する。
【００１６】
本実施形態によれば、ハードウェア記述言語で記述されたモデルを動作させるための作業をユーザ端末からのユーザの簡易な作業で実現できるので、ユーザの負担を軽減すると共にユーザによる変更を簡単に行うことができる。
【００１７】
［第２実施形態］
次に、本発明の第２実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、ハードウェア記述言語で記述されたモデルの動作をハードウェアでエミュレートするハードウェア処理部と、ユーザがユーザ端末からハードウェア処理部への入力およびハードウェア処理部からの出力のいずれかを制御する制御部とを備える。そして、制御部はユーザによりアクセスできない構成部を有する。また、制御部は、ユーザにより書き換え可能な、ハードウェア処理部の入力および出力を制御するためのレジスタと構成部の動作を制御するためのレジスタとを含むレジスタ群、および、構成部が実行する命令群を記憶する命令群記憶部と、情報処理装置と外部装置とを接続するインタフェース部と、を有する。
【００１８】
また、ユーザによりアクセスできない構成部は、命令群を実行するコントローラと、コントローラの命令群を実行するタイミングを制御するためのタイマとを含み、さらに、ハードウェア処理部から出力されたデータを保持するためのメモリを含んでもよい。また、インタフェース部は、制御部を外部装置としてのユーザ端末と接続する第１インタフェースを有する。また、インタフェース部は、ハードウェア処理部への入力およびハードウェア処理部からの出力の少なくともいずれかを、外部装置としてのテスト対象の装置と接続する第２インタフェースを有する。あるいは、インタフェース部は、外部装置としてのテスト対象のソフトウェアが搭載された装置と接続する第３インタフェースと、を有する。なお、本実施形態における命令群は、情報処理装置のコントローラが所定のシナリオを実現する命令の集合を示すものである。
【００１９】
このように本実施形態の情報処理装置は、ハードウェア処理部に書き込むＲＴＬ（カスタム）のハードウェア設計データを書き換えれば、異なるモデルのエミュレートができる。また、ユーザ端末からユーザが簡単にモデルのエミュレートにおけるタイミングや入出力を調整することができる。
【００２０】
《情報処理システム》
図２Ａは、情報処理装置２１０を使用した情報処理システム２０１の構成を示す図である。
【００２１】
情報処理システム２０１は、情報処理装置２１０と、ＥＣＵなどのテスト対象装置／テスト対象ソフト２２０と、情報処理装置２１０に電源を供給するＡＣアダプタ２４０と、を備える。情報処理装置２１０は、テスト対象装置／テスト対象ソフト２２０をテスト可能なハードウェアモデルあるいはソフトウェアモデルをエミュレートする。
【００２２】
図２Ｂは、情報処理装置２１０を使用した情報処理システム２０２の他構成を示す図である。
【００２３】
情報処理システム２０２は、情報処理装置２１０を種々のモデルをエミュレートさせて、ＭＩＬＳ２５０(Model in the Loop Simulation)を実現する。また、ＨＩＬＳ２６０(Hardware in the Loop Simulation)を実現する。
【００２４】
ＭＩＬＳ２５０としては、例えば、車両運動モデル２５１およびバッテリモデル２５２を情報処理装置２１０がエミュレートして、ＥＣＵをテストするソフトウェアシミュレータを回す。一方、ＨＩＬＳ２６０としては、バッテリモデル２５２やバッテリ制御（ＢＭＳ）を情報処理装置２１０でエミュレートして、ＥＣＵ２６１をチェックする。
【００２５】
《情報処理装置（ＦＰＧＡ：Field-Programmable Gate Array）》
以下、図３乃至図７Ｈを参照して、情報処理装置２１０の構成と動作を詳細に説明する。
【００２６】
（情報処理装置の機能構成）
図３は、情報処理装置２１０の機能構成を示すブロック図である。
【００２７】
情報処理装置２１０は、ハードウェア処理部３０１と、制御部３０２と、を備える。ハードウェア処理部３０１は、例えば、ハードウェア設計データが書き込まれて、装置モデルまたはソフトウェアモデルとして動作する。そのハードウェア設計データは、例えば、ブロック線図（テンプレート）３０６およびブロック線図（カスタム）３６１から自動変換ツール３６２で変換された、ＲＴＬ(Register Transfer Level)（カスタム）のハードウェア記述言語から生成される。この装置モデルまたはソフトウェアモデルは、デジタルシグナルを用いるモデルである。なお、ブロック線図からＲＴＬへの自動変換ツールの例としては、MathWorks社のHDL CoderやXILINX社のModel Composerなどが使用可能である。ＲＴＬを記述するＨＤＬ(Hardware Description Language）の例として、ＶＨＤＬ(Very Highspeed Integrated Circuit Hardware Description Language)、Verilog HDL、SystemVerilogなどが用いられる。また、図示しないが、ハードウェア処理部３０１へのハードウェア設計データの書込は、既知のダウンロードケーブルを接続して、ＪＴＡＧ(Joint Test Action Group)による策定された規格に準じて実現される。なお、ハードウェア処理部３０１は、制御部３０２とは独立したクロックにより動作し、単独でモデルの基本的なエミュレート動作が可能である。
【００２８】
制御部３０２は、ハードウェア処理部３０１からの出力およびハードウェア処理部３０１への入力の少なくともいずれかを、ユーザ端末(Host PC)３０３から受信したユーザの指示に従って制御する。
【００２９】
制御部３０２は、コントローラ３２１と、タイマ３２２と、命令群レジスタ３２３と、メモリ３２４と、Ｉ／Ｏインタフェース（Ｉ／Ｏ  ＩＦ）３２５〜３２７と、バス(bus)３２８と、レジスタ３３１〜３３６と、を有する。なお、図中ではレジスタをregと簡略して記載する。コントローラ３２１は、命令群レジスタ３２３に記憶された命令を実行する。コントローラ３２１は、レジスタ３３１〜３３６を監視し、レジスタ３３１〜３３６の変化としてイベントを検知すると、イベントの種類に応じた命令群を実行する。イベントは、１ms単位で設定できるタイマによる定期イベントと、各種Ｉ／Ｏが発生するイベントが存在し、種類数はタイマが３２種類、Ｉ／Ｏが２８種類、予備４種類で、合計６４種類を含む。また、ユーザ端末３０３からレジスタ３３５に書き込まれた命令を直接実行することも可能である。
【００３０】
タイマ３２２は、単発、または、周期的にレジスタ３３２を書き換える。書き換えるタイミングはレジスタ３３２に設定される。命令群レジスタ３２３は、ユーザが入力しユーザ端末３０３から受信した命令群を記憶する。メモリ３２４は、ハードウェア処理部３０１からの出力データが大量である場合にデータをバッファする。
【００３１】
Ｉ／Ｏ  ＩＦ３２５〜３２７は、情報処理装置２１０と外部装置とのインタフェースである。Ｉ／Ｏ  ＩＦ３２５は、ユーザ端末３０３とのインタフェースであり、レジスタ３３５の設定により、ＵＡＲＴ(Universal Asynchronous Receiver/Transmitter)、Ethernet（登録商標）、ＰＣＩ−ｅ(Peripheral Component Interconnect-Express)、ＵＳＢ(Universal Serial Bus)、ＰＣＩ(Peripheral Component Interconnect)などのプロトコルによるインタフェースが可能である。Ｉ／Ｏ  ＩＦ３２５を介して、ユーザ端末３０３からの指示により、命令群レジスタ３２３およびレジスタ３３１〜３３６にデータを書き込むこと、また、レジスタ３３１〜３３６からデータを読み出すことができる。
【００３２】
Ｉ／Ｏ  ＩＦ３２６は、レジスタ３３４の設定により、ＣＡＮ(Controller Area Network)、ＬＩＮ(Local Interconnect Network)、Ａｎａｌｏｇ、ＧＰＩＯ(General-purpose input/output)、Ethernet（登録商標）などのプロトコルによるインタフェースが可能である。また、Ｉ／Ｏ  ＩＦ３２７は、ソフトウェアチェック用端末（ＰＣ）などのテスト対象ソフトウェア３０５とのインタフェースであり、レジスタ３３６の設定により、ＵＡＲＴ(Universal Asynchronous Receiver/Transmitter)、Ethernet（登録商標）、ＰＣＩ−ｅ(Peripheral Component Interconnect-Express)、ＵＳＢ(Universal Serial Bus)、ＰＣＩ(Peripheral Component Interconnect)などのプロトコルによるインタフェースが可能である。
【００３３】
バス(bus)３２８は、コントローラ３２１と命令群レジスタ３２３は直接、また、ハードウェア処理部３０１とタイマ３２２とメモリ３２４とＩ／Ｏ  ＩＦ３２５〜３２７はレジスタ３３１〜３３６を介して、互いに接続する。なお、図３の太線は、バス(bus)３２８上の各レジスタの設定あるいは読出のためのデータの流れを示したものである。
【００３４】
レジスタ３３１〜３３６は、コントローラ３２１のメモリマップドＩ／Ｏとして設定されたレジスタであり、それに接続する各構成部を制御するために使用される。レジスタ３３１は、ハードウェア処理部３０１のＲＴＬ（カスタム）とのインタフェースである。レジスタ３３１には、ハードウェア処理部３０１の入出力データが保持される。例えば、データの型を変換するためのゲイン値とオフセット値もユーザ端末３０３から設定される。また、レジスタ３３１の入力値設定は、命令群によっても実施可能である。その場合、入力値を使用した計算を実行し、レジスタ３３１に出力値を設定する。つまり、入力値が変化するとそれに連れて出力値が変化することになる。
【００３５】
レジスタ３３２は、タイマの制御レジスタである。なお、レジスタ３３２には、例えば、イベント発生のタイミング（周期）、タイマ３２２の起動、停止が設定される。ユーザ端末３０３からは、レジスタ３３２に命令群実行のタイミング（周期）を設定する。タイミングは複数種類設定でき、種類ごとに実行する命令群の開始番地を変えている。レジスタ３３３は、メモリの制御レジスタである。レジスタ３３４は、ＥＣＵなどのテスト対象装置３０４とのインタフェースの制御レジスタであり、例えば、ＣＡＮの転送速度、ＩＤ、転送開始、停止を設定する。レジスタ３３５は、ユーザ端末３０３とのインタフェースの制御レジスタであり、例えば、シリアル通信速度を設定する。レジスタ３３６は、テスト対象ソフトウェア３０５を搭載したＰＣなどの装置とのインタフェースの制御レジスタである。
【００３６】
（ハードウェア設計データ）
図４Ａは、情報処理装置２１０のハードウェア処理部３０１にインストールされるハードウェア設計データの中身を示す図である。なお、図４Ａは、ハードウェア記述言語による記述に基づくハードウェア設計データの概要を示したものであり、これに限定されるものではない。
【００３７】
ハードウェア処理部３０１にインストールされるハードウェア設計データとしては、例えば、トップ階層４０１(Plant：装置）に対して、Plant：装置中身のモデルである第２階層４０２を含む。また、第２階層内の１要素としてのElasticity：弾性体中身のモデルである第３階層４０３を含む。このように、ハードウェア設計データは、ハードウェア処理部３０１により構成可能な単位で記述される。
【００３８】
（制御部に記憶させる命令群）
図４Ｂは、情報処理装置２１０の命令群レジスタ（記憶部）３２３に記憶される命令を示す図である。
【００３９】
本実施形態によれば、この９種類の命令により、レジスタ３３１〜３３６を読み書きする命令群を構成できる。また、レジスタ３３２によるタイマ３２２のイベントを含む、レジスタ３３１〜３３６の変化を検出したイベントの種類に従って、命令群レジスタ３２３に記憶した対応する命令群を実行させることができる。例えば、レジスタ３３１のイベントは、ハードウェア処理部３０１からの出力の変化により発生する。また、レジスタ３３３のイベントは、メモリ３２４のデータ入出力により発生する。また、レジスタ３３４〜３３６のイベントは、Ｉ／Ｏ  ＩＦ３２５〜３２７を介するデータ入出力により発生する。
【００４０】
なお、かかる命令の組合せにより生成される命令群は、ユーザにより制御部をどう動作させるかに従って生成されてもよいし、ベンダーから提供されたアプリケーションプログラムによって提供される、制御部に対する操作を実現する命令群マクロを設定することにより、命令群レジスタに記憶されてもよい。
【００４１】
（情報処理装置の使用手順）
図５は、情報処理装置２１０の使用手順を示すシーケンス図である。なお、図５には、既にハードウェア記述言語に変換されたモデルのユーザ端末３０３からの入力から開始しているが、それ以前のユーザによるソフトウェアからハードウェア記述言語を生成するなどの処理は省略されている。
【００４２】
ステップＳ５０１において、ユーザからハードウェア記述言語で記述された第１モデルがユーザ端末３０３に入力され、ユーザ端末３０３から内部あるいは外部のハードェア記述言語変換ソフトおよびハードウェア処理部３０１への書込ツールとしての自動変換ツール３６２に渡される。自動変換ツール３６２は、ステップＳ５０３において、ハードウェア記述言語からハードウェア設計データに変換する。そして、自動変換ツール３６２は、ステップＳ５０５において、ハードウェア設計データを情報処理装置２１０のハードウェア処理部３０１に書き込む。情報処理装置２１０は、ステップＳ５０７において、初期設定される。
【００４３】
ステップＳ５１１において、情報処理装置２１０の制御部３０２に、ユーザ端末３０３とテスト対象装置３０４またはテスト対象ソフトウェア３０５を搭載した装置が接続される。そして、システム全体の電源がＯＮされてシステムの初期化が行われる。ユーザ端末３０３は、ステップＳ５１５において、制御部３０２を介して情報処理装置２１０を動作させるためのＧＵＩを表示する。そして、ユーザ端末３０３は、ステップＳ５１７において、制御部３０２との通信接続を行う。ユーザは、ユーザ端末３０３に表示されたＧＵＩを参照しながら、ステップＳ５１９において、ユーザ端末３０３から制御部３０２の設定処理を行い、特に、制御部３０２は、ステップＳ５２１において、レジスタ３３１〜３３６の設定および命令群レジスタ３２３が設定される。
【００４４】
レジスタ３３１〜３３６の設定および命令群レジスタ３２３の設定が終了すると、ユーザの指示により、ユーザ端末３０３は、ステップＳ５２３において、テスト開始を指示する。テスト開始の指示を受けて、制御部３０２は、ハードウェア処理部３０１と共にテスト対象装置３０４またはテスト対象ソフトウェア３０５のテストを実行する。その間のハードウェア処理部３０１の操作のモニタリング表示（Ｓ５２７）やテスト結果表示（Ｓ５２９）がユーザ端末３０３から行われる。そして、ユーザ端末３０３は、ステップＳ５３１において、ユーザの指示を受けてあるいは自動的にテスト終了を指示し、制御部３０２は、ステップＳ５３３において、テストを終了する。
【００４５】
以下のステップＳ５４１〜Ｓ５４７は、第１モデルとは異なる第２モデルについて、同じ情報処理装置２１０において、ハードウェア処理部３０１を書き換えることで実現することを示している。
【００４６】
（ユーザの設定手順）
図６は、情報処理装置２１０に対するユーザの設定手順を示すフローチャートである。このフローチャートは、図５におけるステップＳ５１３からＳ５３１のユーザ端末３０３の処理手順を示すものである。なお、情報処理装置２１０をＣＡＮによりＥＣＵの速度メータと接続する例を説明するが、これに限定されない。また、ユーザ端末３０３には、ユーザ端末３０３へのＧＵＩを含むアプリケーションプログラムがダウンロード済みとする。また、図６のフローチャートは、ユーザによる標準の設定手順を順次に示しており、各々の設定処理は設定についてのドロップダウンリストを選択することでそれぞれ独立に実行される処理である。したがって、それぞれの設定処理で設定を変化させながら異なる組合せのテストが可能である。なお、設定処理の手順が固定であるのは、シルアルポート(Serial Port)の設定および接続（Ｓ６０３とＳ６０５）が最初に行われることと、装置のリセットとシナリオ実行（Ｓ６６１とＳ６６３）が必要なデータの設定後に行われることであり、他の設定処理は順不同である。なお、図示しないが、ユーザ端末３０３は、ユーザに対する画面を表示する表示部と、ユーザの操作を受け付ける操作部と、を備える。また、ユーザ端末３０３は、情報処理装置２１０を制御するユーザの指示を受け付けるための受付画面、および、情報処理装置２１０への入力および情報処理装置２１０からの出力の少なくともいずれかを表示する表示画面を生成して、表示部に表示させる表示制御部を備える。さらに、ユーザ端末３０３は、受付画面を参照して、操作部を介して受け付けたユーザの指示に基づくデータを、レジスタ群３３１〜３３６および命令群レジスタ３２３に設定する設定指示部を備える。
【００４７】
情報処理装置２１０の電源をＯＮとして、アプリケーションプログラムを起動すると、ユーザ端末３０３は、ステップＳ６０１において、アプリケーションのフォルダ内の設定ファイルを読み込む。次に、ユーザ端末３０３は、ステップＳ６０２において、設定ファイルを開いて設定内容を選択するためのドロップダウンリストを開く。そして、所望の設定画面の表示を選択すると、その設定手順を開始する。。
【００４８】
図７Ａは、情報処理装置２１０の制御部３０２を設定するためのドロップダウンリスト７１０とシリアルポートの接続に関連するユーザ端末３０３の設定画面７０１を示す図である。ドロップダウンリスト７１０には、シリアルポート(Serial Port)の接続、ユーザパラメータの設定、イベントの設定、ＣＡＮパラメータの設定、命令群の設定、ロギングの設定、グラフ表示の設定、の７つの設定処理が含まれている。図７Ａでは、最初の設定処理であるシリアルポートの接続が選択されている。また、左から右に並んだ、接続／切断ボタン７１１→ユーザ設定ボタン７１２→イベント設定ボタン７１３→ＣＡＮ設定ボタン７１４→命令群設定ボタン７１５→シナリオ実行ボタン７１６は、標準的なユーザによる設定順序を示している。したがって、現在実行中の設定を識別可能に表示することにより、ユーザが容易に設定の進行状況を知ることができる。また、リセットボタン７１７、モニタボタンとグラフボタンを含む監視用ボタン７１８が表示される。
【００４９】
図６に戻って、ユーザ端末３０３は、ステップＳ６０３において、シリアルポートを設定する。すなわち、ユーザ端末３０３を接続するシリアルポートの選択を行う。そして、ユーザ端末３０３は、ステップＳ６０５において、接続／切断ボタン７１１によりシリアルポートを接続する。シルアルポートが正常に接続されれば、図７Ａの接続／切断ボタン７１１の表示が、切断表示から接続表示に変化する。
【００５０】
ユーザ端末３０３は、ステップＳ６０７において、入出力パラメータを変更するか否かを判定する。変更する場合、ユーザ端末３０３は、ステップＳ６０９において、ＧＵＩからユーザパラメータを設定する。ユーザ端末３０３は、ステップＳ６１１において、適用がクリックされてユーザパラメータの設定を反映する。そして、ユーザ端末３０３は、ステップＳ６１３において、ユーザ設定値を情報処理装置２１０に送信する。この時に、例えば、ステップＳ６１３の処理においてレジスタ３３１が設定され、シナリオ実行後に読み出される。
【００５１】
図７Ｂは、情報処理装置２１０の制御部３０２にユーザパラメータを設定するためのユーザ端末３０３の設定画面７０２を示す図である。図７Ｂは、ドロップダウンリスト７１０のユーザパラメータ設定を選択することで表示される。図７Ｂにおいて、ユーザ設定ボタン７１２によって、現在の設定画面７０２に入力されたユーザパラメータの設定が実行される。表示領域７２１には、例えば、車両の目標速度(In TargetSPD)が６０Km/hに設定されたことなどが示されている。
【００５２】
図７Ｃは、情報処理装置２１０の制御部３０２にユーザパラメータを設定するためのユーザ端末３０３の他の設定画面７０３を示す図である。図７Ｃにおいては、シークバー記号７３１をクリックすることで、ユーザパラメータをシークバー７３２により設定することができる。
【００５３】
図７Ｄは、情報処理装置２１０の制御部３０２に対しユーザパラメータをファイルで与える場合に、そのファイルの内容更新を設定するユーザ端末３０３の設定画面７４０を示す図である。ユーザパラメータをファイルで与える場合に、そのファイルの内容更新を１回で終了するか(Oneshot)、繰り返すか(Loop)を設定することができる。
【００５４】
図６に戻って、ユーザ端末３０３は、ステップＳ６１５において、タイマ値を含むイベント発生条件を変更するか否かを判定する。変更する場合、ユーザ端末３０３は、ステップＳ６１７において、ＧＵＩからイベントを設定する。ユーザ端末３０３は、ステップＳ６１９において、適用がクリックされてイベントの設定を反映する。そして、ユーザ端末３０３は、ステップＳ６２１において、イベントを情報処理装置２１０にアップロードする。ここで、イベントの設定としては、タイマ値やＣＡＮのデータを受信するフィルタＩＤの設定を含む。この時に、例えば、ステップＳ６２１の処理においてレジスタ３３２が設定される。
【００５５】
図７Ｅは、情報処理装置２１０の制御部３０２にイベントを設定するためのユーザ端末３０３の設定画面７０４を示す図である。図７Ｅは、ドロップダウンリスト７１０においてイベント設定を選択すると表示される。図７Ｅにおいて、イベント設定ボタン７１３によって、現在の設定画面７０４に入力されたイベントの設定を実行する。表示領域７５１には、例えば、タイマ０(TIMER-0)が１０００ms間隔でイベントを発生させることが示されている。また、表示領域７５２には、ＣＡＮのデータを受信するフィルタＩＤが設定されている。
【００５６】
図６に戻って、ユーザ端末３０３は、ステップＳ６２３において、ＣＡＮレートを変更するか否かを判定する。変更する場合、ユーザ端末３０３は、ステップＳ６２５において、ＧＵＩからＣＡＮパラメータを設定する。ユーザ端末３０３は、ステップＳ６２７において、適用がクリックされてＣＡＮパラメータの設定を反映する。そして、ユーザ端末３０３は、ステップＳ６２９において、ＣＡＮ設定を情報処理装置２１０に送信する。この時に、例えば、ステップＳ６２９の処理においてレジスタ３３４が設定され、シナリオ実行後には読み出される。
【００５７】
図７Ｆは、情報処理装置２１０の制御部３０２にＣＡＮレートを設定するためのユーザ端末３０３の設定画面７０５を示す図である。図７Ｆは、ドロップダウンリスト７１０においてＣＡＮパラメータ設定を選択すると表示される。図７Ｆにおいて、ＣＡＮ設定ボタン７１４によって、現在の設定画面に入力されたＣＡＮパラメータの設定が実行される。表示領域７６１には、例えば、ＣＡＮ０レート５００Kbpsに設定されていることが示されている。
【００５８】
図６に戻って、ユーザ端末３０３は、ステップＳ６３１において、命令群を設定あるいは変更するか否かを判定する。設定あるいは変更する場合、ユーザ端末３０３は、ステップＳ６３３において、ＧＵＩから命令群あるいは命令群を含むファイルを設定する。ユーザ端末３０３は、ステップＳ６３５において、適用がクリックされて命令群の設定を反映する。そして、ユーザ端末３０３は、ステップＳ６３７において、命令群を情報処理装置２１０に送信する。命令群として設定する例としては、例えば、ＣＡＮ送信データのフォーマットの設定、各Ｉ／Ｏ  ＩＦへの出力信号の設定、各Ｉ／Ｏ  ＩＦへの出力信号の加工や演算、ＲＴＬ（カスタム）への入力信号の設定などが含まれる。この時に、例えば、ステップＳ６３７の処理においてレジスタ３３１や３３４が設定され、シナリオ実行後に読み出される。例えば、レジスタ３３１には入力パラメータが書き込まれ、レジスタ３３４にはＩ／Ｏ  ＩＦのリセット信号が書き込まれる。
【００５９】
図７Ｇは、情報処理装置２１０の制御部３０２に命令群を設定するためのユーザ端末３０３の設定画面７０７を示す図である。図７Ｇは、ドロップダウンリスト７１０において命令群設定を選択すると表示される。図７Ｇにおいて、命令群設定ボタン７１５によって、現在の設定画面に入力された命令群の設定が実行される。図７Ｇにおいて、表示領域７７１は、設定する命令群がどのイベントにより起動するかを示している。表示領域７７２は、命令群を記述したファイルの読み込み元の設定である。また、表示領域７７３は、ＣＡＮ  ＩＤ、ＣＡＮ  Frameのフォーマットを設定する領域である。
【００６０】
イベントを選択し、ＣＡＮ  ＩＦの番号を選択し、拡張ＩＤの使用か不使用かを選択し、ＣＡＮ  ＩＤを識別番号に入力し、データ長を入力し、作成開始ボタンを押すと、表示領域７７１に選択、入力した内容が表示される。その窓で、ＣＡＮ送信するデータを選択してＣＡＮ Frame フォーマットを確定し、セットボタンを押すと、表示領域７７４に、ＣＡＮ Frame フォーマットが全て表示される。命令群設定ボタン７１５を押すと、そのＣＡＮ Frame フォーマットが情報処理装置２１０に送信される。
【００６１】
図６に戻って、ユーザ端末３０３は、ステップＳ６４３において、ロギングの設定を変更するか否かを判定する。変更する場合、ユーザ端末３０３は、ステップＳ６４５において、ロギングを設定する。そして、ユーザ端末３０３は、ステップＳ６４７において、ＧＵＩからロギングを可動とし、ファイル名を指定してＯＫをクリックする。ユーザ端末３０３は、ステップＳ６４９において、ロギング設定を情報処理装置２１０に送信する。なお、ロギング設定の設定画面は省略する。この時に、例えば、ステップＳ６４９の処理においてレジスタ３３３が設定され、シナリオ実行後には読み出される。
【００６２】
ユーザ端末３０３は、ステップＳ６５１において、グラフ表示が必要か否かを判定する。必要な場合、ユーザ端末３０３は、ステップＳ６５３において、ＧＵＩからグラフ表示を設定する。ユーザ端末３０３は、ステップＳ６５５において、適用がクリックされてグラフ表示の設定を反映する。この時に、例えば、ステップＳ６５５の処理においてレジスタ３３３が設定され、シナリオ実行後には読み出される。
【００６３】
図７Ｈは、情報処理装置２１０の制御部３０２から出力される動作信号の変化を表示するための表示画面７０８を示す図である。この画面は、監視用ボタン７１８のグラフをクリックすることで表示される。図７Ｈの表示領域７８１には、グラフ表示を設定した時に、まだグラフ表示するデータの無い状態が示されている。なお、表示画面は図示しないが、監視用ボタン７１８のモニタをクリックすると、情報処理装置２１０が動作中の状態をモニタすることができる。
【００６４】
ユーザ端末３０３は、ステップＳ６６１において、シナリオ実行前の情報処理装置２１０のリセットを行う。設定画面では、リセットボタン７１７がクリックされると、情報処理装置２１０がリセットされる。ユーザ端末３０３は、ステップＳ６６３において、シナリオ実行を実行する。設定画面では、シナリオ実行ボタン７１６がクリックされると、情報処理装置２１０がシナリオを実行する。
【００６５】
図７Ｈの表示領域７８２には、グラフ表示を設定してシナリオを実行した時に、目標として設定された走行速度６０Km/hに向けた走行速度の変化がグラフ表示されている。また、表示領域７８２には、グラフ表示を設定してシナリオを実行した時に、目標として設定された走行速度が最初は６０km/hで、途中から目標を１００Km/hに変えた場合の走行速度の変化がグラフ表示されている。このように、本実施形態によれば、例えば、車両運動モデルをエミュレートしながら車両の走行速度の種々の変化をユーザがユーザ端末から設定できる。
【００６６】
《情報処理装置の使用例》
以下、図８Ａ乃至図１１Ｃを参照して、情報処理装置２１０の使用例を説明する。なお、情報処理装置２１０の使用例は、以下の使用例に限定されるものではない。種々の装置モデルあるいはソフトウェアモデルをエミュレートする、あるいは複数を組み合わせて統合モデルをシミュレートするために使用可能である。
【００６７】
（第１使用例）
図８Ａは、情報処理装置２１０の第１使用例における情報処理システム８００を示す図である。
【００６８】
図８Ａの情報処理装置２１０は、車両全体またはシャシから車両運動モデル８０６をシミュレートし、その実速度を出力する。ここで、ハードウェア処理部３０１への入力は、例えば、自動運転車の目標速度である。そして、ＥＣＵの速度メータ８０４がテスト対象装置である。
【００６９】
図８Ｂは、情報処理装置２１０の第１使用例におけるハードウェア設計データ８０１の生成を示す図である。
【００７０】
車両運動モデル８０６は、自動変換ツール３６２により、車両運動モデルのＲＴＬ（カスタム）８０１に変換される。
【００７１】
図８Ｃは、情報処理装置２１０の第１使用例における情報処理システム８００の構成を示す図である。なお、図８Ｃにおいて、図３と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【００７２】
車両運動モデルのＲＴＬ（カスタム）８０１のハードウェア設計データは、ハードウェア処理部３０１に書き込まれる。図８Ｃにおいて、ユーザ端末３０３と接続されるＩ／Ｏ  ＩＦ３２５は、ＵＡＲＴ  Ｉ／Ｆとして動作するようにレジスタ３３５が設定される。また、ＥＣＵの速度メータ８０４と接続されるＩ／Ｏ  ＩＦ３２６は、ＣＡＮ  Ｉ／Ｆとして動作するようにレジスタ３３４が設定される。そして、ユーザ端末３０３は、ＧＵＩに従って、図６における、モデルパラメタ設定（Ｓ６０９）、ＤＢＣファイルによるＣＡＮ設定（Ｓ６２５）、タイマ設定（Ｓ６１７）、命令群設定（Ｓ６３９またはＳ６５７）、モデル実行／停止（Ｓ６６３）、波形表示（グラフ表示：Ｓ６５３）、ロギング（Ｓ６４５）の各モジュールを実行する。
【００７３】
（第２使用例）
図９Ａは、情報処理装置２１０の第２使用例における情報処理システム９００を示す図である。図９Ａの情報処理装置２１０は、バッテリモデル９０６としてリチウムイオン電池をシミュレートし、充電率などの情報を出力する。ここで、ハードウェア処理部３０１への入力は、例えば、バランス制御（バッテリセル毎のオン／オフ制御）情報である。そして、ＢＭＳ(Battery Management System)９０４がテスト対象装置である。
【００７４】
図９Ｂは、情報処理装置２１０の第２使用例におけるハードウェア設計データ９０１の生成を示す図である。
【００７５】
バッテリモデル９０６は、自動変換ツール３６２により、バッテリモデルのＲＴＬ（カスタム）９０１に変換される。
【００７６】
図９Ｃは、情報処理装置２１０の第２使用例における情報処理システム９００の構成を示す図である。なお、図９Ｃにおいて、図３および図８Ｃと同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【００７７】
バッテリモデルのＲＴＬ（カスタム）９０１のハードウェア設計データは、ハードウェア処理部３０１に書き込まれる。図９Ｃにおいて、ユーザ端末３０３と接続されるＩ／Ｏ  ＩＦ３２５は、ＰＣＩ−ｅ  Ｉ／Ｆとして動作するようにレジスタ３３５が設定される。また、ＢＭＳ９０４はＡｎａｌｏｇ  Ｉ／Ｆ３２７と接続される。そして、ユーザ端末３０３は、ＧＵＩに代わって、端末エミュレータ９３１を動作させる。端末エミュレータ９３１は、コマンドを入力して情報処理装置２１０に送信する。入力されるコマンドには、ソフトウェアのパラメータ情報をレジスタ３３１に設定するコマンド、アナログ信号とデジタル信号の変換方法をレジスタ３３６に設定するコマンドが含まれる。また、入力されるコマンドには、イベント発生タイミングや周期をレジスタ３３２に設定するコマンド、コントローラが実行する命令群を命令群レジスタ３２３に設定するコマンド、ハード化されたソフトウェアを実行／停止するコマンドが含まれる。
【００７８】
（第３使用例）
図１０は、情報処理装置２１０の第３使用例における情報処理システム１０００の構成を示す図である。なお、図１０において、図３、図８Ｃおよび図９Ｃと同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【００７９】
情報処理システム１０００においては、情報処理装置２１０により複数の装置モデルをエミュレートして車両統合ＥＣＵ１００１の動作をテストする。情報処理装置２１０は、ドア、パワーウィンドウ、バッテリ、加速度計、をエミュレートする。すなわち、車のドアを模擬するソフトウェアに基づく動作、パワーウィンドウを模擬するソフトウェアに基づく動作、充電式バッテリを模擬するソフトウェアに基づく動作、加速度計を模擬するソフトウェアに基づく動作をする。ユーザ端末３０３は、Ethernet（登録商標） ＨＵＢ１００３によって、各情報処理装置２１０と通信する。ここで、ＣＡＮ bus１００２による車両統合ＥＣＵ１００１への接続は、ＣＡＮ接続の例として、加速度計はＧＰＩＯ接続の例を示している。なお、本来はこの他にも多数の装置が車両統合ＥＣＵに接続されるが、図１０が煩雑になるため、信号の種類が網羅される最低限の構成を示している。
【００８０】
（第４使用例）
図１１Ａは、情報処理装置２１０の第４使用例における情報処理システム１１００を示す図である。
【００８１】
図１１Ａの情報処理装置２１０は、制御ソフトチェックモデル１１０６をシミュレートし、対応データを出力する。そして、ＰＣ１１０５に搭載された制御ソフト１１５１がテスト対象ソフトウェアである。
【００８２】
図１１Ｂは、情報処理装置２１０の第４使用例におけるハードウェア設計データ１１０１の生成を示す図である。
【００８３】
制御ソフトチェックモデル１１０６は、自動変換ツール３６２により、制御ソフトチェックモデルのＲＴＬ（カスタム）１１０１に変換される。
【００８４】
図１１Ｃは、情報処理装置２１０の第４使用例における情報処理システム１１００の構成を示す図である。なお、図１１Ｃにおいて、図３、図８Ｃおよび図９Ｃと同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【００８５】
制御ソフトチェックモデルのＲＴＬ（カスタム）１１０１のハードウェア設計データは、ハードウェア処理部３０１に書き込まれる。図１１Ｃにおいて、ＰＣ１１０５と接続されるＩ／Ｏ  ＩＦ３２７は、Ethernet（登録商標）  Ｉ／Ｆとして動作するようにレジスタ３３６が設定される。
【００８６】
なお、第４使用例において、制御ソフトがＢＭＳのソフトならば、第２使用例と同様になる。
【００８７】
本実施形態によれば、ハードウェア処理部に書き込むＲＴＬ（カスタム）のハードウェア設計データを書き換えれば、異なるモデルのエミュレートができる。また、ユーザ端末からユーザが簡単にモデルのエミュレートにおけるタイミングや入出力を調整することができる。また、ユーザ端末からユーザが簡単に装置を接続するインタフェースを装置に合わせて設定できる。さらに、信号のモニタやロギング、表や信号のグラフ作成がユーザ端末からユーザが簡単に設定できる。
【００８８】
［第３実施形態］
次に、本発明の第３実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態と比べると、ハードウェア処理部からの出力データをバッファするメモリを有しない点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００８９】
（情報処理装置の機能構成）
図１２は、情報処理装置１２１０の機能構成を示すブロック図である。なお、図１２において、図３と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
【００９０】
情報処理装置１２１０においては、図３のメモリ３２４を省いている。ハードウェア処理部３０１の入出力においてデータ量が大きくなく、あるいは、通信容量が十分にあってデータをバッファする必要が無ければ、本実施形態の構成で十分にモデルのエミュレートが可能である。
【００９１】
本実施形態によれば、余分なメモリを無くした小型で廉価な情報処理装置が提供できる。
【００９２】
［第４実施形態］
次に本発明の第４実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態および第３実施形態と比べると、ＨＩＬＳ向け専用の構成である点で異なる。その他の構成および動作は、第２実施形態または第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９３】
（情報処理装置の機能構成）
図１３は、情報処理装置１３１０の機能構成を示すブロック図である。図１３において、図３および図１２と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【００９４】
情報処理装置１３１０においては、制御ソフトをテストするための図３のＩ／Ｏ  ＩＦ３２７を省いている。すなわち、情報処理装置１３１０は、ＨＩＬＳ向け専用の構成である。
【００９５】
本実施形態によれば、ＨＩＬＳ向け専用で使用する場合に、余分な構成を無くした小型で廉価な情報処理装置が提供できる。
【００９６】
［第５実施形態］
次に本発明の第５実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態乃至第４実施形態と比べると、ＭＩＬＳ向け専用の構成である点で異なる。その他の構成および動作は、第２実施形態から第４実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９７】
（情報処理装置の機能構成）
図１４は、情報処理装置１４１０の機能構成を示すブロック図である。図１４において、図３、図１２および図１３と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【００９８】
情報処理装置１４１０においては、ＥＣＵなどの装置をテストするための図３のＩ／Ｏ  ＩＦ３２６を省いている。すなわち、情報処理装置１４１０は、ＭＩＬＳ向け専用の構成である。
【００９９】
本実施形態によれば、ＭＩＬＳ向け専用で使用する場合に、余分な構成を無くした小型で廉価な情報処理装置が提供できる。
【０１００】
［第６実施形態］
次に、本発明の第６実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態乃至第５実施形態と比べると、ミックスドシグナルモデルを情報処理装置の構成を変えずにエミュレートする点で異なる。その他の構成および動作は、第２実施形態から第５実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１０１】
（情報処理装置の機能構成）
図１５は、情報処理装置２１０をミックスドシグナルモデル１５０６のエミュレートに使用した例を示すブロック図である。図１５において、図３、図１２、図１３および図１４と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。ミックスドシグナルモデル１５０６で表される装置モデルまたはソフトウェアモデルは、デジタルシグナルとアナログシグナルの両方を用いるモデルである。
【０１０２】
図１５においては、ハードウェア処理部３０１に書き込まれるＲＴＬ（カスタム）のハードウェア設計データが、ミックスドシグナルモデル１５０６のＶＨＤＬ−ＡＭＳやVerilog−ＡＭＳなどによる記述データ１５６１から変換して生成される。
【０１０３】
本実施形態によれば、情報処理装置の構成を変えることなく、ミックスドシグナルモデルもブロック線図によるモデルも簡単にエミュレートできる。
【０１０４】
［第７実施形態］
次に、本発明の第７実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態乃至第６実施形態と比べると、情報処理装置がＦＰＧＡではなくＡＳＩＣ(Application Specific Integrated Circuit)である点で異なる。その他の構成および動作は、第２実施形態から第６実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１０５】
（情報処理装置の機能構成）
図１６は、情報処理装置１６１０の機能構成を示すブロック図である。図１６において、図３、図１２、図１３、図１４および図１５と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【０１０６】
情報処理装置１６１０は、ＦＰＧＡでなくＡＳＩＣ(Application Specific Integrated Circuit)により実現している。なお、図１６は図３に対応する構成を示しているが、上記第３実施形態乃至第６実施形態にも適応できる。
【０１０７】
本実施形態によれば、安価で遅延が少ないモデルのエミュレートができる。
【０１０８】
［第８実施形態］
次に、本発明の第８実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態乃至第７実施形態と比べると、ミックスドシグナルモデルをそのままエミュレート可能な情報処理装置を提供する点で異なる。を有する点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１０９】
（情報処理装置を含む情報処理システム）
図１７は、情報処理装置１７１０を含む情報処理システム１７００の機能構成を示すブロック図である。図１７において、図３、図１２、図１３、図１４、図１５および図１６と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
【０１１０】
情報処理装置１７１０においては、ハードウェア処理部１７０１が、デジタルシグナルとアナログシグナルの両方を用いるミックスドシグナルモデルをそのまま書き込むことができる構成を有している。ハードウェア処理部１７０１は、ソフトウェア格納部１７７１とミックスドシグナル処理部１７７２とを有する。
【０１１１】
ソフトウェア格納部１７７１には、ＶＨＤＬ−ＡＭＳやVerilog−ＡＭＳなどで記述したミックスドシグナルモデルのソフトウェアを書き込む。ミックスドシグナル処理部１７７２は、構文解析部１７７３と、アナログ処理部１７７４と、デジタル処理部１７７５と、最終処理部１７７６と、を有する。ソフトウェア格納部１７７１に格納されたソフトウェアは、構文解析部１７７３で構文解析されて、アナログ部分とデジタル部分とに分けられる。そして、アナログ部分はアナログ処理部１７７４で処理され、デジタル部分はデジタル処理部１７７５で処理される。最後に、アナログ処理部１７７４の処理結果とデジタル処理部１７７５の処理結果が、最終処理部１７７６で好適にマージされて、ミックスドシグナルモデルのエミュレーション結果が出力される。
【０１１２】
なお、ミックスドシグナル処理部１７７２は、ハードウェアで構成されても、ソフトウェアで構成されても、ハードウェアとソフトウェアとの混合構成であってもよい。
【０１１３】
本実施形態によれば、第６実施形態と比較して、ミックスドシグナルモデルをそのままエミュレートできるので、ＲＴＬ（カスタム）に変換するよりも精度のよいエミュレートができる。
【０１１４】
［第９実施形態］
次に、本発明の第９実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態乃至第８実施形態の情報処理装置を動作可能にするためのハードウェア設計データの異なる設定方法を示す点で異なる。その他の構成および動作は、第２実施形態から第８実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１１５】
（ハードウェア設計データの設定手順）
図１８は、情報処理装置へのハードウェア設計データの設定方法の違いを示す図である。
【０１１６】
ハードウェア設計データの設定方法１８１０は、ユーザはモデルのソフトウェア１８１１を生成して、ベンダーに渡す。そして、ベンダーが、ソフトウェアからの自動変換ツールによるＲＴＬへの変換およびＲＴＬ（カスタム）への組み込み１８１２を行って、ユーザに提供する。図１８においては、「モデルハンドオフ版」と称している。
【０１１７】
ハードウェア設計データの設定方法１８２０は、ユーザはモデルのソフトウェアを生成して自動変換ツールによるＲＴＬへの変換１８２１を行って、ＲＴＬをベンダーに渡す。そして、ベンダーがＲＴＬ（カスタム）への組み込み１８２２を行って、ユーザに提供する。図１８においては、「ＨＤＬハンドオフ版」と称している。
【０１１８】
ハードウェア設計データの設定方法１８３０は、モデルのソフトウェアを生成して自動変換ツールによるＲＴＬへの変換、および、ＲＴＬ（カスタム）への組み込みの全工程をユーザが行う。図１８においては、「カスタマフルインプリント版」と称している。
【０１１９】
なお、第８実施形態（図１７）の情報処理装置１７１０の場合は、ハードウェア設計データの設定方法１８３０のように、全てユーザが処理することになる。
【０１２０】
本実施形態によれば、ユーザとベンダーとで適切に処理を分担することができる。
【０１２１】
［第１０実施形態］
次に、本発明の第１０実施形態に係る装置モデルまたはソフトウェアモデルのエミュレートする情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態乃至第９実施形態における情報処理装置によるエミュレート動作をクラウドサーバで実行させる点で異なる。その動作は、第２実施形態から第９実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１２２】
《情報処理システム》
図１９は、情報処理システム１９００の処理手順を示すシーケンス図である。なお、図１９において、図５と同様のステップには同じステップ番号を付して、重複する説明は省略する。
【０１２３】
ステップＳ１９０１において、ユーザ端末３０３にテスト対象装置３０４またはテスト対象ソフトウェア３０５を搭載した装置を接続する。
【０１２４】
ユーザからのハードウェア記述言語で記述した第１モデルのデータを、ユーザ端末３０３から受信したクラウドサーバ１９１０は、ステップＳ１９０３において、ハードウェア設計データに変換する。そして、クラウドサーバ１９１０は、ステップＳ１９０５において、ハードウェア処理部と等価なクラウドサーバ１９１０上の領域に書き込む。クラウドサーバ１９１０は、ステップＳ１９１７において、ＧＵＩをユーザ端末３０３に送信する。そして、ＧＵＩを参照して、ユーザ端末３０３から設定されたデータを、制御部のレジスタ群や命令群レジスタと等価なクラウドサーバ１９１０上の領域に書き込む。そして、ユーザ端末３０３からテスト開始の指示かあると、クラウドサーバ１９１０は、ステップＳ１９２５において、テストを実行し、ユーザ端末３０３からテスト終了の指示かあると、クラウドサーバ１９１０は、ステップＳ１９３３において、テストを終了する。
【０１２５】
なお、ステップＳ１９２５のテスト実行においては、クラウドサーバ１９１０からユーザ端末３０３を介してテスト対象装置やテスト対象ソフトウェアがテストされるように図示されている。しかしながら、ユーザ端末３０３はクラウドサーバ１９１０内に構築された仮想の情報処理装置との通信を中継するのみである。あるいは、テスト対象装置やテスト対象ソフトウェアは、ユーザ端末３０３とは別にクラウドサーバ１９１０と接続されてもよい。
【０１２６】
以降のステップＳ１９４１〜Ｓ１９４５は、第１モデルとは異なる、ハードウェア記述言語で記述した第２モデルのデータに基づく、クラウドサーバ１９１０によるエミュレートを示している。
【０１２７】
本実施形態によれば、ハードウェア作成に必要な時間や経費を使うこと無しに、種々のモデルを容易にエミュレートできる。
【０１２８】
［他の実施形態］
なお、上記実施形態では、テスト対象の装置が接続されるＩ／Ｏ  ＩＦが２つの場合や、専用の１つの場合を説明したが、Ｉ／Ｏ  ＩＦをさらに増やして複数のＥＣＵや複数のＰＣ内のモデルソフトを同時に検証することも可能である。
【０１２９】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の技術的範囲で当業者が理解し得る様々な変更をすることができる。例えば、Ｉ／Ｏ  ＩＦを増やして複数のＥＣＵや複数のＰＣ内の制御モデルを同時検証することができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の技術的範囲に含まれる。
【０１３０】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に供給され、内蔵されたプロセッサによって実行される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、プログラムを実行するプロセッサも本発明の技術的範囲に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の技術的範囲に含まれる。
【要約】
【課題】ハードウェア記述言語で記述されたモデルを動作させるための作業において、ユーザの負担を軽減すると共にユーザによる変更を簡単に行うこと。
【解決手段】ハードウェア記述言語で記述されたモデルに対応する動作をハードウェアでエミュレートするハードウェア処理部と、ハードウェア処理部への入力およびハードウェア処理部からの出力の少なくともいずれかを、ユーザ端末から受信したユーザの指示に従って制御する制御部と、を備えた情報処理装置である。
【選択図】  図１【図１】
0006731106.tif 000002
【図２Ａ】
0006731106.tif 000003
【図２Ｂ】
0006731106.tif 000004
【図３】
0006731106.tif 000005
【図４Ａ】
0006731106.tif 000006
【図４Ｂ】
0006731106.tif 000007
【図５】
0006731106.tif 000008
【図６】
0006731106.tif 000009
【図７Ａ】
0006731106.tif 000010
【図７Ｂ】
0006731106.tif 000011
【図７Ｃ】
0006731106.tif 000012
【図７Ｄ】
0006731106.tif 000013
【図７Ｅ】
0006731106.tif 000014
【図７Ｆ】
0006731106.tif 000015
【図７Ｇ】
0006731106.tif 000016
【図７Ｈ】
0006731106.tif 000017
【図８Ａ】
0006731106.tif 000018
【図８Ｂ】
0006731106.tif 000019
【図８Ｃ】
0006731106.tif 000020
【図９Ａ】
0006731106.tif 000021
【図９Ｂ】
0006731106.tif 000022
【図９Ｃ】
0006731106.tif 000023
【図１０】
0006731106.tif 000024
【図１１Ａ】
0006731106.tif 000025
【図１１Ｂ】
0006731106.tif 000026
【図１１Ｃ】
0006731106.tif 000027
【図１２】
0006731106.tif 000028
【図１３】
0006731106.tif 000029
【図１４】
0006731106.tif 000030
【図１５】
0006731106.tif 000031
【図１６】
0006731106.tif 000032
【図１７】
0006731106.tif 000033
【図１８】
0006731106.tif 000034
【図１９】
0006731106.tif 000035