(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】シミュレーションシステム、シミュレーションシステムの制御方法及びプログラム
(51)【国際特許分類】
H04L 7/00 20060101AFI20241022BHJP
H04L 1/00 20060101ALI20241022BHJP
G06F 13/42 20060101ALI20241022BHJP
【FI】
H04L7/00 500
H04L1/00 A
G06F13/42 350Z
(21)【出願番号】P 2021051899
(22)【出願日】2021-03-25
【審査請求日】2023-04-10
(73)【特許権者】
【識別番号】306020818
【氏名又は名称】トヨタテクニカルディベロップメント株式会社
(74)【代理人】
【識別番号】110002516
【氏名又は名称】弁理士法人白坂
(72)【発明者】
【氏名】仙田 康浩
(72)【発明者】
【氏名】北野 巴
(72)【発明者】
【氏名】村口 和裕
【審査官】吉江 一明
(56)【参考文献】
【文献】特開2001-251281(JP,A)
【文献】特開平07-023015(JP,A)
【文献】特開2015-154233(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
H04L 1/00
G06F 13/42
(57)【特許請求の範囲】
【請求項1】
送信側FIFOバッファと、
計算結果データを生成し、前記計算結果データを、周期Tごとに1サンプルずつ前記送信側FIFOバッファに書き込む第1モデル計算部と、
通信部と、
前記送信側FIFOバッファから前記計算結果データを読み出し、Nサンプルの前記計算結果データに対してKサンプル(ただし、K≧
2の整数)
のダミーデータを分割し、Kサンプルを分割したサンプルの割合で
分割された前記ダミーデータを挿入
する際、挿入する頻度をNサンプルの前記計算結果データに対してKサンプル割合で前記ダミーデータを挿入するときよりも増加させて挿入して送信データを生成し、前記送信データを1サンプルずつ、周期(N×T)/(N+K)で前記通信部に渡す、送信側通信制御部と、
受信側FIFOバッファと、
周期(N×T)/(N+K)ごとに1サンプルの前記送信データを前記通信部から受け取り、前記送信データから前記ダミーデータを取り出し、前記ダミーデータを取り除いた前記計算結果データを前記受信側FIFOバッファに書き込む受信側通信制御部と、
前記受信側FIFOバッファから周期Tで前記計算結果データを読み出す第2モデル計算部と、
を備えたことを特徴とするシミュレーションシステム。
【請求項2】
請求項1に記載のシミュレーションシステムにおいて、前記ダミーデータは、全てではなく一部が誤り訂正用のデータであることを特徴とするシミュレーションシステム。
【請求項3】
請求項2に記載のシミュレーションシステムにおいて、
CRC計算部と、
通信エラーチェック部と、
をさらに備え、
前記誤り訂正用のデータはCRCデータであり、前記CRCデータは、前記ダミーデータを挿入する所定の回数ごとに前記計算結果データに挿入されるデータであり、
前記CRC計算部は、前記送信側通信制御部から前記計算結果データを受け取り、受け取った前記計算結果データに基づいて、前回CRCデータが計算結果データに挿入されたタイミングから、次にCRCデータが計算結果データに挿入されるまでの間に送信される計算結果データのCRC値を計算し、前記CRC値を前記CRCデータとして前記送信側通信制御部に送信し、
前記通信エラーチェック部は、前記受信側通信制御部が受信した前記送信データから前記計算結果データと前記CRCデータを取り出し、前記計算結果データと前記CRCデータに基づき通信エラーのチェックを行うことを特徴とするシミュレーションシステム。
【請求項4】
コンピュータが、
計算結果データを生成し、前記計算結果データを、周期Tごとに1サンプルずつ送信側FIFOバッファに書き込むステップと、
Nサンプルの前記計算結果データに対してKサンプル(ただし、K≧
2の整数)
のダミーデータを分割し、Kサンプルを分割したサンプルの割合で
分割された前記ダミーデータを挿入
する際、挿入する頻度をNサンプルの前記計算結果データに対してKサンプル割合で前記ダミーデータを挿入するときよりも増加させて挿入して送信データを生成するステップと、
前記送信データを1サンプルずつ、周期(N×T)/(N+K)で通信部に送信するステップと、
周期(N×T)/(N+K)ごとに1サンプルの前記送信データを受け取り、前記送信データから前記ダミーデータを取り除いた前記計算結果データ
を受信側FIFOバッファに書き込むステップと、
前記計算結果データを周期Tで前記受信側FIFOバッファから取り出すステップと
を実行することを特徴とするシミュレーションシステムの制御方法。
【請求項5】
請求項4に記載のシミュレーションシステムの制御方法において、
前記ダミーデータは、全てではなく一部が誤り訂正用のデータであることを特徴とするシミュレーションシステムの制御方法。
【請求項6】
請求項5に記載のシミュレーションシステムの制御方法において、
前記誤り訂正用のデータはCRCデータであり、前記CRCデータは、前記ダミーデータを挿入する所定の回数ごとに前記計算結果データに挿入されるデータであり、
前記計算結果データに対して前記ダミーデータを挿入して前記送信データを生成するステップにおいて、前回CRCデータが計算結果データに挿入されたタイミングから、次にCRCデータが計算結果データに挿入されるまでの間に送信される計算結果データのCRC値を計算し、前記CRC値を前記CRCデータとして前記計算結果データに挿入し、
さらに、前記送信データから前記計算結果データと前記CRCデータを取り出し、前記計算結果データと前記CRCデータに基づき通信エラーのチェックを行うステップを実行することを特徴とするシミュレーションシステムの制御方法。
【請求項7】
コンピュータに、
計算結果データを生成し、前記計算結果データを、周期Tごとに1サンプルずつ送信側FIFOバッファに書き込む第1モデル計算機能と、
Nサンプルの前記計算結果データに対してKサンプル(ただし、K≧
2の整数)
のダミーデータを分割し、Kサンプルを分割したサンプルの割合で
分割された前記ダミーデータを挿入
する際、挿入する頻度をNサンプルの前記計算結果データに対してKサンプル割合で前記ダミーデータを挿入するときよりも増加させて挿入して送信データを生成する送信データ生成機能と、
前記送信データを1サンプルずつ、周期(N×T)/(N+K)で送信する送信側通信制御機能と、
前記送信側通信制御機能から前記送信データを受信し、受信側通信制御機能に送信する送信機能と、
前記送信機能から、周期(N×T)/(N+K)ごとに1サンプルの前記送信データを受信し、前記送信データから前記ダミーデータを取り除いた前記計算結果データを受信側FIFOバッファに書き込む前記受信側通信制御機能と、
周期Tごとに1サンプルの前記計算結果データを前記受信側FIFOバッファから取り出す第2モデル計算機能と
を実現させるシミュレーションシステムの制御プログラム。
【請求項8】
請求項7に記載のシミュレーションシステムの制御プログラムにおいて、
前記ダミーデータは、全てではなく一部が誤り訂正用のデータであることを特徴とするシミュレーションシステムの制御プログラム。
【請求項9】
請求項8に記載のシミュレーションシステムの制御プログラムにおいて、
前記誤り訂正用のデータはCRCデータであり、前記CRCデータは、前記ダミーデータを挿入する所定の回数ごとに前記計算結果データに挿入されるデータであり、
前回CRCデータが計算結果データに挿入されたタイミングから、次にCRCデータが計算結果データに挿入されるまでの間に送信される計算結果データのCRC値を含むCRCデータを生成するCRCデータ生成機能をさらに有し、
前記受信側通信制御機能が受信した前記送信データから前記計算結果データと前記CRCデータを取り出し、前記計算結果データと前記CRCデータに基づき通信エラーのチェックを行う通信エラーチェック機能を更に有することを特徴とするシミュレーションシステムの制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーションシステム、シミュレーションシステムの制御方法及びプログラムに関し、特に、リアルタイムで高速シリアル通信を実施するシミュレーションシステム、シミュレーションシステムの制御方法及びプログラムに関する。
【背景技術】
【0002】
例えば、自動車産業等において、車両制御を行う電子制御ユニット(Electrical Control Unit,ECU)等の開発を行う際に、HILシミュレータ(Hardware In the Loop Simulation,HILS)が使用される。HILSにおいて、FPGA、ASIC等のハードウェア回路モデル間の通信は、モデル実行周期でのパラレル通信であることが基本であるが、FPGA等の物理ピンが不足するため、通信データ量を確保することが出来ない。これに対する最適化手法により、ハードウェア回路モデル間の通信として、高速シリアル通信が必要となる。
【0003】
ハードウェア回路モデル間の高速シリアル通信では、送信側と受信側がクロックを共有しない。したがって、送信側と受信側のクロックが同じ仕様のものであっても、送信側と受信側のクロック精度が互いに異なることにより、データのオーバーフロー及び/又はアンダーフローが発生する。特許文献1には、送信側と受信側がクロックを共有しないシリアル通信において、受信側クロックと送信側クロックのずれを吸収するため、送信データにダミーデータを挿入する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されている方法によれば、ダミーデータを送信している間は、本来送信したいデータを送信することが出来ない。リアルタイム性を求められるデータ通信でなければ、ダミーデータの送信終了を待ってから本来送信したいデータを送信すればよい。しかし、リアルタイムシミュレーションのように、高いリアルタイム性が求められる状況においては、ダミーデータの送信終了時には、ダミーデータの送信開始時点ではなく、送信終了時点での最新のデータを送る必要がある。よって、特許文献1に開示されている方法をリアルタイムシミュレーションに適用すると、ダミーデータを送信している間にリアルタイムに送信される本来送信したいデータが欠落するという問題が生じる。
【0006】
上記問題点を鑑み、本発明は、高いリアルタイム性が求められる状況においてもデータを欠落させることなくダミーデータを挿入することが出来るシミュレーションシステム、シミュレーションシステムの制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の態様は、シミュレーションシステムであって、送信側FIFOバッファと、計算結果データを生成し、計算結果データを、周期Tごとに1サンプルずつ送信側FIFOバッファに書き込む第1モデル計算部と、通信部と、送信側FIFOバッファから計算結果データを読み出し、Nサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータを挿入して送信データを生成し、送信データを1サンプルずつ、周期(N×T)/(N+K)で通信部に渡す、送信側通信制御部と、受信側FIFOバッファと、周期(N×T)/(N+K)ごとに1サンプルの送信データを通信部から受け取り、送信データからダミーデータを取り出し、ダミーデータを取り除いた計算結果データを受信側FIFOバッファに書き込む受信側通信制御部と、受信側FIFOバッファから周期Tで計算結果データを読み出す第2モデル計算部と、を備えたことを要旨とする。
【0008】
第1の態様において、ダミーデータは、全てではなく一部が誤り訂正用のデータであってよい。
【0009】
第1の態様において、CRC計算部と、通信エラーチェック部と、をさらに備え、誤り訂正用のデータはCRCデータであり、CRCデータは、ダミーデータを挿入する所定の回数ごとに計算結果データに挿入されるデータであり、CRC計算部は、送信側通信制御部から計算結果データを受け取り、受け取った計算結果データに基づいて、CRCデータが計算結果データに挿入されたタイミングから、次にCRCデータが計算結果データに挿入されるまでの間に送信される計算結果データのCRC値を計算し、CRC値をCRCデータとして送信側通信制御部に送信し、通信エラーチェック部は、受信側通信制御部が受信した送信データから計算結果データとCRCデータを取り出し、計算結果データとCRCデータに基づき通信エラーのチェックを行ってもよい。
【0010】
第2の態様は、シミュレーションシステムの制御方法であって、コンピュータが、計算結果データを生成し、計算結果データを、周期Tごとに1サンプルずつ送信側FIFOバッファに書き込むステップと、Nサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータを挿入して送信データを生成するステップと、送信データを1サンプルずつ、周期(N×T)/(N+K)で送信部に送信するステップと、周期(N×T)/(N+K)ごとに1サンプルの送信データを受け取り、送信データからダミーデータを取り除いた計算結果データを受信側FIFOバッファに書き込むステップと、計算結果データを周期Tで受信側FIFOバッファから取り出すステップとを実行することを要旨とする。
【0011】
第2の態様において、ダミーデータは、全てではなく一部が誤り訂正用のデータであってよい。
【0012】
第2の態様において、誤り訂正用のデータはCRCデータであり、CRCデータは、ダミーデータを挿入する所定の回数ごとに計算結果データに挿入されるデータであり、計算結果データに対してダミーデータを挿入して送信データを生成するステップにおいて、CRCデータが計算結果データに挿入されたタイミングから、次にCRCデータが計算結果データに挿入されるまでの間に送信される計算結果データのCRC値を計算し、CRC値をCRCデータとして計算結果データに挿入し、さらに、送信データから計算結果データとCRCデータを取り出し、計算結果データとCRCデータに基づき通信エラーのチェックを行うステップを実行してもよい。
【0013】
第3の態様は、シミュレーションシステムの制御プログラムであって、コンピュータに、計算結果データを生成し、計算結果データを、周期Tごとに1サンプルずつ送信側FIFOバッファに書き込む第1モデル計算機能と、Nサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータを挿入して送信データを生成する送信データ生成機能と、送信データを1サンプルずつ、周期(N×T)/(N+K)で送信する送信側通信制御機能と、送信側通信制御機能から送信データを受信し、受信側通信制御機能に送信する送信機能と、送信機能から送信データを受信し、送信データからダミーデータを取り除いた計算結果データを受信側FIFOバッファに書き込む受信側通信制御機能と、周期Tごとに1サンプルの計算結果データを受信側FIFOバッファから取り出す第2モデル計算機能とを実現させることを要旨とする。
【0014】
第3の態様において、ダミーデータは、全てではなく一部が誤り訂正用のデータであってよい。
【0015】
第3の態様において、誤り訂正用のデータはCRCデータであり、CRCデータは、ダミーデータを挿入する所定の回数ごとに計算結果データに挿入されるデータであり、CRCデータが計算結果データに挿入されたタイミングから、次にCRCデータが計算結果データに挿入されるまでの間にされる計算結果データのCRC値を含むCRCデータを生成するCRCデータ生成機能をさらに有し、受信側通信制御機能が受信した送信データから計算結果データとCRCデータを取り出し、計算結果データとCRCデータに基づき通信エラーのチェックを行う通信エラーチェック機能を更に有することを要旨とする。
【発明の効果】
【0016】
本発明によれば、モデル実行周期よりも短い周期でデータを送信することにより、高いリアルタイム性が求められる状況においてもデータを欠落させることなくダミーデータを挿入することが出来るシミュレーションシステム、シミュレーションシステムの制御方法及びプログラムを提供できる。
【図面の簡単な説明】
【0017】
【
図1】本発明の第1の実施形態に係るシミュレーションシステムの構成の一例を示すブロック図である。
【
図2】従来のシミュレーションシステムの制御方法による送受信データの構造の一例を示す図である。
【
図3】第1の実施形態に係るシミュレーションシステムの制御方法による送受信データの構造の一例を示す図である。
【
図4】第1の実施形態に係るシミュレーションシステムの制御方法を説明するフローチャートである。
【
図5】第2の実施形態に係るシミュレーションシステムの構成の一例を示すブロック図である。
【
図6】第2の実施形態に係るシミュレーションシステムの制御方法による送受信データの構造の一例を示す図である。
【発明を実施するための形態】
【0018】
次に、図面を参照して、本発明の実施形態を説明する。実施形態に係る図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。但し、図面は模式的なものであり、平面寸法との関係等は現実のものとは異なることに留意すべきである。したがって、具体的な寸法は以下の説明を参酌して判断すべきものである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【0019】
又、実施形態は、本発明の技術的思想を具体化するための装置や方法を例示するものであって、本発明の技術的思想は、各構成要素の構成や配置、レイアウト等を下記のものに特定するものでない。本発明の技術的思想は、特許請求の範囲に記載された請求項が規定する技術的範囲内において、種々の変更を加えることができる。
【0020】
(第1の実施形態)
本発明の第1の実施形態に係るシミュレーションシステムの構成の一例を
図1に示す。
図1に示すシミュレーションシステム10は、第1モデル計算部101、送信側FIFOバッファ102、第1クロック生成部103、送信側通信制御部104、通信部105、受信側通信制御部106、受信側FIFOバッファ107、第2モデル計算部108、第2クロック生成部109から構成される。
【0021】
第1クロック生成部103は、第1モデル計算部101における第1モデルの演算実行用のクロック信号、送信側FIFOバッファ102へのinput用クロック信号、送信側FIFOバッファ102からのoutput用クロック信号を生成し、第1モデルの演算実行用のクロック信号を第1モデル計算部101へ、input用クロック信号及びoutput用クロック信号を送信側FIFOバッファ102に送信する。同様に、第2クロック生成部109は、受信側FIFOバッファ107へのinput用クロック信号、受信側FIFOバッファ107からのoutput用クロック信号、第2モデル計算部109における第2モデルの演算実行用のクロック信号を生成し、受信側FIFOバッファ107及び第2モデル計算部108にそれぞれ送信する。
【0022】
各部に供給されるクロックの周波数は、一例として、第1モデル計算部101における第1モデルの演算実行用のクロック信号及び第2モデル計算部108における第2モデルの演算実行用のクロック信号が100MHz、送信側FIFOバッファ102へのinput用クロック信号及び受信側FIFOバッファ105からのoutput用クロック信号が100MHz、送信側FIFOバッファ102からのoutput用クロック信号及び受信側FIFOバッファ107へのinput用クロック信号が125MHzである。
【0023】
第1モデル計算部101及び送信側FIFOバッファ102は第1クロック生成部103によって生成されたクロック信号に応じて動作し、受信側FIFOバッファ107及び第2モデル計算部108は第2クロック生成部109によって生成されたクロック信号に応じて動作する。第1モデル計算部101及び送信側FIFOバッファ102と、受信側FIFOバッファ107及び第2モデル計算部108はクロックを共有しないシリアル通信である。よって、第1モデル計算部101から送信側FIFOバッファ102及び受信側FIFOバッファ107を介して第2モデル計算部108に計算結果データを送信する場合、以下に述べるように、計算結果データにダミーデータを挿入する。
【0024】
第1モデル計算部101は、一例として、FPGA上に構成された一つの演算モデルである。第2モデル計算部108についても同様である。ただし、第1モデル計算部101、第2モデル計算部108のいずれも、FPGA上に構成された回路に限定されるものではない。
【0025】
第1モデル計算部101は、計算結果データを生成し、送信側FIFOバッファ102に書き込む。送信側通信制御部104は、送信側FIFOバッファ102から取り出した計算結果データに所定の間隔でダミーデータを挿入して送信データを生成し、通信部105に送信データを渡す。続いて、通信部105は、送信側通信制御部104から受け取った送信データを受信側通信制御部106に渡す。受信側通信制御部106は、通信部105から受け取った送信データからダミーデータを取り除き、計算結果データを受信側FIFOバッファ107に書き込む。第2モデル計算部108は計算結果データを受信側FIFOバッファ107から取り出す。
【0026】
リアルタイムシミュレーションを行う場合、計算結果データにダミーデータを挿入して送信データとし、モデル実行周期と同じ周期で、シリアル通信によって送信データを送信すると、ダミーデータを送信している間の計算結果データが欠落する。
図2を参照しながら、データの欠落について以下に説明する。
図2に、
図1に示されるようなシステムにおいてリアルタイムシミュレーションを行う際、従来の方法に従ってダミーデータを挿入しながらデータの送受信を行った場合の送受信データの構造の一例を示す。第1モデル計算部101は、周期Tごとに1サンプルのデータを、計算結果データとして送信側FIFOバッファ102に書き込む。
図2においては、D0、D1、D2…のそれぞれが、周期Tごとに送信側FIFOバッファ102に書き込まれる計算結果データの1サンプルである。送信側通信制御部104は、Nサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータ(CC、Clock Collection)を挿入して送信データとする。
図2に示す例においては、送信データには、4サンプルの計算結果データに対して1サンプルのダミーデータを挿入している。リアルタイム性を損なわないように送信データを送信しようとすると、
図2に示すように、D3、D7のサンプルデータが欠落する。
【0027】
本実施形態に係るシミュレーションシステムによれば、モデル実行周期よりも短い周期でデータを送信することにより、リアルタイムシミュレーションにおいても、データの欠落を生じさせることなくダミーデータを挿入することが出来る。
図3に、本実施形態に係るシミュレーションシステムによる送受信データの構造の一例を示す。第1モデル計算部101が、周期Tごとに1サンプルのデータを計算結果データとして送信側FIFOバッファ102に書き込む。
【0028】
送信側通信制御部104が、送信側FIFOバッファ102から1サンプルずつ計算結果データを取り出し、Nサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータ(CC)を挿入して送信データとする。さらに、送信データを1サンプルずつ、周期(N×T)/(N+K)で通信部105に渡す。
図3に示す例においては、送信データには、4サンプルの計算結果データに対して1サンプルのダミーデータを挿入し、さらに送信データの1サンプルの周期を(N×T)/(N+K)=4×T/5としている。
【0029】
具体的な例を以下に述べる。例えば、4サンプルの計算結果データに対して1サンプルのダミーデータを挿入する。計算結果データの1サンプルの周期を10nsとすると、送信データの1サンプルの周期は8nsとなる。送信側通信制御部104が計算結果データにダミーデータを挿入し、通信部105に渡す際、まず、送信側FIFOバッファ102から1サンプルずつ計算結果データを取り出して通信部105に渡す処理を、8ns周期で4回行う。次に、1サンプルのダミーデータを生成して通信部105に渡す処理を、8nsで1回行う。上記のサイクルを繰り返すことにより、送信側通信制御部104は、40nsの間に5サンプル、即ち、4サンプルの計算結果データと1サンプルのダミーデータとを、8ns周期で1サンプルずつ通信部105に渡すことになる。
【0030】
通信部105は、送信側通信制御部104から送信データを受け取り、受信側通信制御部106に渡す。受信側通信制御部106は送信データからダミーデータを取り除いた計算結果データを受信側FIFOバッファ107に書き込む。具体的には、受信側通信制御部106は、周期(N×T)/(N+K)ごとに1サンプルずつ、通信部105から送信データを受け取る。そして、受け取ったデータがダミーデータなら破棄し、受け取ったデータが計算結果データなら受信側FIFOバッファ107に書き込む。第2モデル計算部108は周期Tごとに1サンプルの計算結果データを受信側FIFOバッファ107から取り出し、周期をTに戻す。
【0031】
ここで、K≧2である場合、送信側通信制御部104は、Nサンプルの計算結果データに対してKサンプルの割合でダミーデータを挿入して送信データとしてもよいが、Kサンプルのダミーデータを分割し、かつダミーデータを挿入する頻度を増加させると、より同期の精度は上がる。例えば、計算結果データの5000clkごとにダミーデータを6clk挿入する場合よりも、計算結果データの999clkごとにダミーデータを1clk挿入するほうが同期の精度は上がり、リアルタイム性を保つことが出来る。
【0032】
次に、
図4に示すフローチャートを参照して、本実施形態にかかるシミュレーションシステムの制御方法を説明する。
【0033】
ステップS401において、第1モデル計算部101は、周期Tごとに1サンプルのデータを計算結果データとして送信側FIFOバッファ102に書き込む。
【0034】
ステップS402において、送信側通信制御部104は、送信側FIFOバッファ102から1サンプルずつ計算結果データを取り出し、周期(N×T)/(N+K)で通信部105に渡す。(ただし、K、N≧1の整数)ステップS402をN回繰り返す。
【0035】
ステップS403において、送信側通信制御部104は、ダミーデータを生成し、周期(N×T)/(N+K)で通信部105に受信データとして渡す。ステップS402をK回繰り返す。ステップS402及びステップS403により、送信側通信制御部104は、Nサンプルの計算結果データに対してKサンプルの割合でダミーデータ(CC)を挿入して送信データを生成し、通信部105に周期(N×T)/(N+K)で渡すことになる。
【0036】
ステップS404において、通信部105は、受信した送信データを1サンプルずつ、周期(N×T)/(N+K)で受信側通信制御部106に渡す。
【0037】
ステップS405において、受信側通信制御部106は送信データからダミーデータを取り除いた計算結果データを受信側FIFOバッファ107に書き込む。
【0038】
ステップS406において、第2モデル計算部108は周期Tごとに1サンプルの計算結果データを受信側FIFOバッファ107から取り出し、周期をTに戻す。このようにして、高いリアルタイム性が求められる状況においてもデータを欠落させることなくダミーデータを挿入することが出来る。
【0039】
(第2の実施形態)
本実施形態に係るシミュレーションシステムは、第1の実施形態に係るシミュレーションシステムにおいて、送信側通信制御部104がNサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータ(CC)を挿入して送信データを生成する際、計算結果データに対して長さLの区間の送信データの巡回冗長検査(Cyclic Redundancy Check、CRC)の計算を行い、得られたCRCデータを、ダミーデータとして計算結果データに挿入する。CRCの計算を実施することにより、通信エラーのチェックを行うことが出来る。
【0040】
図5に、本実施形態に係るシミュレーションシステムの構成の一例を示す。
図5に示すシミュレーションシステム50は、
図1に示すシミュレーションシステム10と比較すると、送信側通信制御部104にCRC計算部501が、受信側通信制御部106に通信エラーチェック部502が接続されている。送信側通信制御部104が、送信データを1サンプルずつ通信部105に書き込む際、同時にCRC計算部501に送信データを送信する。CRC計算部501においてCRCの計算を実施する。計算結果データとCRCデータは、送信データに含まれる。送信データは、送信側通信制御部104から通信部105を介して受信側通信制御部106へ送信される。通信エラーチェック部502は受信側通信制御部106が受信した送信データから、計算結果データとCRCデータを取り出し、計算結果データとCRCデータに基づき通信エラーのチェックを行う。
【0041】
図6に、本実施形態に係るシミュレーションシステムによる送受信データの構造の一例を示す。送信側通信制御部104が、Nサンプルの計算結果データに対してKサンプル(ただし、K≧1の整数)の割合でダミーデータ(CC)を挿入して送信データを生成する際、長さLの区間Aの送信データの巡回冗長検査(Cyclic Redundancy Check、CRC)の計算を行ってCRCデータを生成し、ダミーデータを挿入する所定の回数ごとに、CRCデータを計算結果データに挿入する。ここで、区間Aの送信データのCRC計算とは、送信側通信制御部104が送信データを生成する間に、前回CRCデータを計算結果データに挿入したタイミングから、次にCRCデータを計算結果データに挿入するまでの間に送信した計算結果データ、即ち、ダミーデータを除く送信データのCRC計算を指す。
【0042】
全てのダミーデータをCRCデータに置き換えることは出来ない。
図6に示すように、ダミーデータ挿入の所定回数に一度の割合でダミーデータをCRCデータに置き換えても構わない。
【0043】
上述の通り、第2の実施形態では、送信側通信制御部104が、送信データを1サンプルずつ通信部105に書き込む際、同時にCRC計算部501に送信データを送信する。しかし、送信データに含まれるダミーデータは、必ずしも送信側通信制御部からCRC計算部へ送信しなくてもよい。ダミーデータはCRC計算に必要ではないからである。すなわち、送信側通信制御部104は、送信データを通信部105に書き込む際、CRC計算部501に計算結果データのみを送信してもよい。
【0044】
以上述べたように、本発明の第1、第2の実施形態にかかるシミュレーションシステム、シミュレーションシステムの制御方法及びプログラムによって、モデル実行周期よりも短い周期でデータを送信することにより、高いリアルタイム性が求められる状況においてもデータを欠落させることなくダミーデータを挿入することが可能となった。さらに、CRCの計算を実施し、ダミーデータの代わりにデータに挿入することで、データの欠落を生じさせることなく、誤り検出、誤り訂正を行うことが可能となった。
【0045】
以上、本発明はここでは記載していない様々な実施形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【0046】
101 第1モデル計算部
102 送信側FIFOバッファ
103 第1クロック生成部
104 送信側通信制御部
105 通信部
106 受信側通信制御部
107 受信側FIFOバッファ
108 第2モデル計算部
109 第2クロック生成部
501 CRC計算部
502 通信エラーチェック部