JP2009054107A - 統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法 - Google Patents
統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法 Download PDFInfo
- Publication number
- JP2009054107A JP2009054107A JP2007222797A JP2007222797A JP2009054107A JP 2009054107 A JP2009054107 A JP 2009054107A JP 2007222797 A JP2007222797 A JP 2007222797A JP 2007222797 A JP2007222797 A JP 2007222797A JP 2009054107 A JP2009054107 A JP 2009054107A
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- signal
- counter
- individual
- simulation execution
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】複数のモジュール(システム)からなる複合システムのシミュレーション結果を、簡単な構成で容易に得ることができるシミュレーション装置を提供する。また、そのようなシミュレーション装置を用いた効率の良い開発方法を提供する。
【解決手段】複合システムは、システムA,Bからなり、そのシステムAのシミュレーションにおいて、動作の基準となる基準クロックAの立ち上がり毎に1回カウントアップすると共に、システムA,B間でやりとりされることとなるA−B信号の出力レベルが変化する毎に2回カウントアップするカウンタを用い、そのカウンタの変化を記憶する。システムBについても同様である。カウンタの変化に基づき、基準クロックA,B及びA−B信号を再現すると共に、A−B信号の時間軸を合わせることにより、基準クロックA,Bの時間軸を合わせることができ、システムA,Bのシミュレーション結果を結合可能にする。
【選択図】図3
【解決手段】複合システムは、システムA,Bからなり、そのシステムAのシミュレーションにおいて、動作の基準となる基準クロックAの立ち上がり毎に1回カウントアップすると共に、システムA,B間でやりとりされることとなるA−B信号の出力レベルが変化する毎に2回カウントアップするカウンタを用い、そのカウンタの変化を記憶する。システムBについても同様である。カウンタの変化に基づき、基準クロックA,B及びA−B信号を再現すると共に、A−B信号の時間軸を合わせることにより、基準クロックA,Bの時間軸を合わせることができ、システムA,Bのシミュレーション結果を結合可能にする。
【選択図】図3
Description
本発明は、製品の設計・開発を支援するのに好適な統合シミュレーション装置及びその統合シミュレーション装置を用いた設計・開発方法に関する。
従来、例えばソフトウェア、或いはソフトウェアにより駆動制御される装置(機械装置や電気電子回路)といったような各種製品の開発では、図8に示すような開発プロセスがとられている。図8は、製品の開発プロセスの概略を表す図である。
図8に示すように、製品の開発プロセスは、上流工程及び下流工程に分けることができる。
上流工程は、要求される性能・機能を洗い出して要求仕様を定義する要件分析、要求分析で定義された要求仕様から出発し、ソフトウェアとハードウェアとを含むシステム全体を見通しながら、その全体を設計するシステム設計、システム全体の性能・機能を実現するための個々のハードウェア及びソフトウェアを設計するハード・ソフト構造設計、の各プロセスからなる。最終的に生成された製品は、実装或いはシミュレーションによりテストされる(下流工程)。
上流工程は、要求される性能・機能を洗い出して要求仕様を定義する要件分析、要求分析で定義された要求仕様から出発し、ソフトウェアとハードウェアとを含むシステム全体を見通しながら、その全体を設計するシステム設計、システム全体の性能・機能を実現するための個々のハードウェア及びソフトウェアを設計するハード・ソフト構造設計、の各プロセスからなる。最終的に生成された製品は、実装或いはシミュレーションによりテストされる(下流工程)。
下流工程は、例えば、所定の機能を持ったモジュールの動作を単体で検証する単体テスト、複数のモジュールが互いに連携し所定の動作が出来るか否か、つまり機器全体として要求仕様に合った動作をするか否かを検証するシステムテスト、さらに最終段階としてシステムの性能・機能を評価するシステム評価の各プロセスからなる。
このような開発プロセスでは、要求仕様を満たすまで、ハード・ソフト構造設計→実装・シミュレーション→単体テスト→ハード・ソフト構造設計というように各プロセスが繰り返される。つまり、トライ&エラーにより、最適設計が試みられる。このような開発プロセスにおいて、例えばシミュレーション方法については、特許文献1に記載されている。
特開2006−350549号公報
ところで、近年、製品の開発規模はますます増大しており、開発プロセスにおいては、モジュール単体で開発し、その単体のモジュールを結合することによって、要求仕様に合ったシステムを構築することが行われている。
例えば図9(a)に示すようなシステムにおいて、マイコン、周辺I/O(1)、周辺I/O(2)、及び周辺I/O(3)がそれぞれ別個で開発され、それらが結合(統合)されることで、1つのシステムが作り上げられる。例えば単体テストの段階においては、マイコンはシミュレータ(1)を用いてテストし、周辺I/O(1)はシミュレータ(2)を用いてテストし、周辺I/O(2)はシミュレータ(3)を用いてテストし、周辺I/O(3)はシミュレータ(4)を用いてテストし、システムテストの段階において、それらを結合する、という具合である。尚、シミュレータ(1)〜(4)はそれぞれ独立したシミュレータ(例えば別個のパーソナルコンピュータ)である場合が多い。
ところが、個々のモジュールを結合してシステム全体のテストを行うことは難しく、そして、従来より、この種の手法については確立しておらず課題となっていた。
理由としては種々考えられるが、一例としては、モジュール毎の設計レベル(モデル仕様)が異なることが挙げられる。
理由としては種々考えられるが、一例としては、モジュール毎の設計レベル(モデル仕様)が異なることが挙げられる。
例えばハードウェアの設計においては、従来より、動作をより詳細に表現する設計記述レベル(例えば、サイクル・アキュレートレベル)から設計が開始されることが多い。一方、例えばソフトウェアの設計においては、サイクル・アキュレートレベルよりも抽象度の高いレベル(例えば、トランザクションレベル)から設計が開始されることが多い。さらには、ソフトウェアの機能のみを記述するレベルで設計がなされる場合もある。
図10に、設計レベルを表す概念図を示す。
図10において、1段目は、ソフトウェアの機能のみをテスト可能な最も抽象度の高いレベルである。2段目は、トランザクションレベルであり、1段目より精度は高いが、周辺I/Oを含めたテストまではできない。一方、3段目は、サイクル・アキュレートレベルであり、マイコンと周辺I/Oとの動作タイミングまでをより詳細に記述したレベルであり、より精度よく性能を把握することができる。尚、演算処理により多くの時間がかかってしまうため、テスト時間は増加してしまう。4段目は、ハードウェア記述言語(HDL)が論理回路に変換されたレベルであり、より詳細な性能把握が可能である反面、ソフトウェアを含めた性能確認はほぼ不可である。5段目は、実装レベルであり、この段階では、配線長まで考慮した詳細な性能把握が可能になる。
図10において、1段目は、ソフトウェアの機能のみをテスト可能な最も抽象度の高いレベルである。2段目は、トランザクションレベルであり、1段目より精度は高いが、周辺I/Oを含めたテストまではできない。一方、3段目は、サイクル・アキュレートレベルであり、マイコンと周辺I/Oとの動作タイミングまでをより詳細に記述したレベルであり、より精度よく性能を把握することができる。尚、演算処理により多くの時間がかかってしまうため、テスト時間は増加してしまう。4段目は、ハードウェア記述言語(HDL)が論理回路に変換されたレベルであり、より詳細な性能把握が可能である反面、ソフトウェアを含めた性能確認はほぼ不可である。5段目は、実装レベルであり、この段階では、配線長まで考慮した詳細な性能把握が可能になる。
このように、設計レベルの違いにより、性能把握のレベルが異なる。言い換えると、演算精度及び演算速度が異なる。すると、例えば設計レベルの異なるモジュールを連携してシミュレーションを実行する場合、演算速度の遅いモジュールが演算速度の速いモジュールの動作に追随することができず、システム全体が動作しない、というような不具合が発生し得る。
ここで、例えば、図9(b)のように、マイコンと周辺I/O(1)からなる複合システムに着目した場合、その複合システム全体を検証するには、ポイント1〜3の波形計測を行い、これをマイコン1用のシミュレータ(1)、及び周辺I/O(1)用のシミュレータ(2)に外部入力として与えるとともに、シミュレータ(1)とシミュレータ(2)との同期をとれば良いと考えられる。しかし、実際として、シミュレータ(1)とシミュレータ(2)との同期をとる有効な手法がなかった。
例えば、マイコンと周辺I/O(1)とが完全に同期したものであれば問題ないが、前述のように、モジュール毎に設計レベルが異なると演算速度も異なり、同期をとることは困難である。尚、波形を逐一取得することも困難である。
本発明は、こうした問題に鑑みなされたもので、複数のモジュール(システム)からなる複合システムのシミュレーション結果を、簡単な構成で容易に得ることができるシミュレーション装置を提供するとともに、そのようなシミュレーション装置を用いた効率の良い開発方法を提供することを目的とする。
上記目的を達成するためになされた請求項1に記載の発明は、複数のシミュレーション対象からなるシステムの模擬実行結果を、そのシミュレーション対象それぞれの模擬実行結果(以下、個別模擬実行結果と言う)を組み合わせて再現する統合シミュレーション装置であって、個別模擬実行結果は、模擬実行に必要な入力信号、及び模擬実行により得られる出力信号であり、さらに、その入力信号及び出力信号の両方又は一方には、異なるシミュレーション対象間でやりとりされる信号(以下、授受信号と言う)が含まれており、複数のシミュレーション対象のそれぞれについて、個別模擬実行結果を取得する信号取得手段と、複数のシミュレーション対象のそれぞれについて、授受信号と、その授受信号以外の個別模擬実行結果との位相関係を表す情報(以下、位相情報と言う)を取得する位相情報取得手段と、信号取得手段により取得された個別模擬実行結果同士において、授受信号の同期をとり、さらに、位相情報に基づき、その授受信号以外のその個別模擬実行結果同士の同期をとる同期手段と、を備えている。
ここで、システムとは、例えば、マイコン、I/Oといったような複数のモジュールから構成されるものを意図したものであり、また、そのマイコン、I/Oが上記のシミュレーション対象に相当する。
また、授受信号とは、より具体的には、例えば第1のシミュレーション対象から出力されると同時に、その第1のシミュレーション対象とは別の第2のシミュレーション対象に入力されることとなる信号である。つまり、授受信号は、第1,第2のシミュレーション対象において共通の信号であると言える。複数のシミュレーション対象からなるシステムでは、例えば、第2のシミュレーション対象が、第1のシミュレーション対象からの信号を受けて所定の動作をする、という場合がある。そして、例えば第1のシミュレーション対象或いは第2のシミュレーション対象の模擬実行では、そのような授受信号が模擬的に入力或いは出力される。
またここで、複数のシミュレーション対象それぞれの模擬実行は、本発明に係る統合シミュレーション装置とは別のシミュレーション装置(以下、外部シミュレーション装置と記載する)で実行されても良いし、本発明に係る統合シミュレーション装置上で実行されても良い。現実的には、外部シミュレーション装置でシミュレーション対象の模擬実行が実行されるようにすることが好ましい。
そして、本請求項1の統合シミュレーション装置によれば、信号取得手段が、複数のシミュレーション対象のそれぞれについて、個別模擬実行結果を取得し、位相情報取得手段が、複数のシミュレーション対象のそれぞれについて、授受信号と、その授受信号以外の個別模擬実行結果との位相関係を表す情報(以下、位相情報と言う)を取得し、同期手段が、信号取得手段により取得された個別模擬実行結果同士において、授受信号の同期をとり、さらに、位相情報に基づき、その授受信号以外のその個別模擬実行結果同士の同期をとるようになっているため、個別模擬実行結果同士の同期を、確実かつ容易にとることができる。
具体的に、前述のように、授受信号は、その授受信号がやりとりされるシミュレーション対象間において共通の信号であるため、その授受信号の同期をとることで、そのシミュレーション対象間の時間軸をあわせることができる。さらに、シミュレーション対象において、授受信号と、その授受信号以外の他の個別模擬実行結果(入力信号及び出力信号)の位相関係が位相情報により明らかなため、結果として、異なるシミュレーション対象間の個別模擬実行結果同士の同期がとられる。
これによれば、個別模擬実行結果同士を適切に組み合わせることができ、システム全体をシミュレーションした場合と同等の結果を得ることができるようになる。
ここで、請求項1の統合シミュレーション装置では、具体的に、請求項2のように構成すると良い。
ここで、請求項1の統合シミュレーション装置では、具体的に、請求項2のように構成すると良い。
請求項2の統合シミュレーション装置は、請求項1の統合シミュレーション装置において、シミュレーション対象の模擬実行では、そのシミュレーション対象が動作するための所定の動作クロックが入力されるようになっており、位相情報取得手段は、授受信号と、動作クロックとの位相関係を表す情報を、位相情報として取得するようになっている。
シミュレーション対象は、授受信号以外にも信号を出力する場合があるが、この場合、通常は、動作クロックに従って信号が出力される。つまり、その授受信号以外の信号(以下、他信号と記載する)と動作クロックとの位相関係は容易に分かる。
そこで、請求項2のように、授受信号と動作クロックとの位相関係を取得することで、授受信号と他信号との位相関係も分かるようになる。つまり、異なるシミュレーション対象間において、個別模擬実行結果同士の同期をとることができる。
次に、請求項2の統合シミュレーション装置では、請求項3のように構成することができる。
請求項3の統合シミュレーション装置は、請求項2の統合シミュレーション装置において、位相情報取得手段は、授受信号及び動作クロックが入力されると共に、その授受信号の立ち上がり及び立ち下がり毎に所定値の分だけカウント動作し、動作クロックの立ち上がり或いは立ち下がり毎に所定値とは異なる値の分だけカウント動作するカウンタと、カウンタのカウント値の変化の仕方を記憶するメモリと、を備え、メモリに記憶されたカウント値の変化の仕方を表す情報を、授受信号と動作クロックとの位相関係を表す位相情報として取得するようになっている。
請求項3の統合シミュレーション装置は、請求項2の統合シミュレーション装置において、位相情報取得手段は、授受信号及び動作クロックが入力されると共に、その授受信号の立ち上がり及び立ち下がり毎に所定値の分だけカウント動作し、動作クロックの立ち上がり或いは立ち下がり毎に所定値とは異なる値の分だけカウント動作するカウンタと、カウンタのカウント値の変化の仕方を記憶するメモリと、を備え、メモリに記憶されたカウント値の変化の仕方を表す情報を、授受信号と動作クロックとの位相関係を表す位相情報として取得するようになっている。
つまり、カウント値の変化の仕方を参照して、カウント値が所定値(以下、第1所定値とする)分だけ増減していれば、授受信号が立ち上がった、及び立ち下がったと判断でき、カウント値が所定値とは異なる値(以下、第2所定値とする)分だけ増減していれば、動作クロックが立ち上がった、或いは立ち下がったと判断することができる。尚、カウント値が第1所定値+第2所定値分だけ増減していれば、授受信号の立ち上がり及び立ち下がりタイミングと、動作クロックの立ち上がり或いは立ち下がりタイミングが一致したことが分かる。
例を挙げると、第1所定値を2とし、第2所定値を1とした場合、カウント値が、0→2→3→6と変化していれば、まず、授受信号が立ち上がり(或いは立ち下がり)、次に動作クロックが立ち上がり(或いは立ち下がり)、次に、授受信号が立ち下がる(或いは立ち上がる)と共に動作クロックが立ち上がった(或いは立ち下がった)ことが分かる。さらに、カウント値が変化するタイミングにより、信号の立ち上がり(或いは立ち下がり)タイミングが分かるため、信号の位相関係が分かるようになる。
次に、請求項3の統合シミュレーション装置では、請求項4のように構成すると良い。
請求項4の統合シミュレーション装置では、請求項3の統合シミュレーション装置において、メモリに記憶されたカウント値の変化の仕方を表す情報に基づき、授受信号及び動作クロックを再現する信号再現手段を備え、信号取得手段は、信号再現手段により再現された授受信号及び動作クロックを、個別模擬実行結果として取得するようになっている。
請求項4の統合シミュレーション装置では、請求項3の統合シミュレーション装置において、メモリに記憶されたカウント値の変化の仕方を表す情報に基づき、授受信号及び動作クロックを再現する信号再現手段を備え、信号取得手段は、信号再現手段により再現された授受信号及び動作クロックを、個別模擬実行結果として取得するようになっている。
前述のように、カウント値の変化の仕方を表す情報によれば、授受信号の立ち上がり及び立ち下がりタイミングと、動作クロックの立ち上がり或いは立ち下がりタイミングが分かるため、その授受信号及び動作クロックを容易に再現することができる。
つまり、請求項4の統合シミュレーション装置によれば、上記のようなカウンタを設けると共に、そのカウント値の変化の仕方を表す情報を記憶しておくだけで、その情報に基づき、容易に所望の信号(例えば授受信号、動作クロック)を再現することができるようになって有利である。
次に、請求項5に記載の発明は、複数の要素からなるシステムの設計・開発方法であって、システムの要求仕様を定義する工程と、要求仕様を実現する複数の要素それぞれの仕様(以下、個別仕様と言う)を定義する工程と、個別仕様を実現する複数の要素それぞれを設計する工程と、設計できた複数の要素それぞれを模擬実行する工程と、請求項1ないし請求項4の何れか1項に記載の統合シミュレーション装置を用い、複数の要素それぞれの模擬実行結果同士の同期をとって、システムの模擬実行結果を再現する工程と、再現できたシステムの模擬実行結果が要求仕様を満たすか否かを検証する工程と、を有することを特徴とする複数の要素からなるシステムの設計・開発方法である。
尚、システムとは、前述のように、マイコン、I/Oといったような複数のモジュールから構成されるものを意図したものであり、また、そのマイコン、I/Oが上記の要素に相当する。
そして、前述のように、請求項1〜4の統合シミュレーション装置を用いれば、複数の要素の模擬実行結果を組み合わせ、その複数の要素からなるシステムの模擬実行結果を容易に再現することができる。このため、複数の要素を個別に設計・開発しても、容易に、その複数の要素からなるシステムの妥当性を検証できる。
この点、請求項5の方法では、請求項1〜4の統合シミュレーション装置を用い、複数の要素それぞれの模擬実行結果同士の同期をとって、システムの模擬実行結果を再現する工程を有しているため、複数の要素それぞれを個別に開発でき有利である。また、だからこそ、請求項5の方法のように、システムの要求仕様の定義→個別仕様の定義→複数の要素それぞれの設計、という流れで開発を進めることができる。より具体的には、複数の要素においてどのような結果(出力)が得られれば良いかを定め、その結果(出力)が得られるように、その複数の要素を個別に開発することができる。このような方法によれば、例えば、設計→テスト→テスト不合格→再設計→再テスト、というようないわば試行錯誤を避けることができるため、開発工数を削減することができるようになる。
以下に、本発明の実施形態を図面に基づき説明する。
[第1実施形態]
まず、第1実施形態について説明する。
[第1実施形態]
まず、第1実施形態について説明する。
図1(a)は、本発明が適用されたシミュレーション装置1のハード構成を表す説明図であり、図1(b)は、シミュレーション装置1のソフト構成を表す説明図である。
本実施形態のシミュレーション装置1は、ハードウェアやソフトウェア、或いはハードウェア及びソフトウェアを含めたモジュール或いはシステムをシミュレーションして検証するための装置である。ソフトウェアの開発においては、例えばC、C++等のプログラム言語が用いられる。また、ハードウェアの開発においては、ハードウェア記述言語(HDL)が用いられる。尚、ハードウェアの開発では、HDLを用いず、例えば回路図を記述するような方法もとられる。そして、ソフトウェアやハードウェア等の開発では、所定のレベルでモデリングが行われると共に、モデリングで生成されたモデルの妥当性がシミュレーションにより検証される。モデリングのレベルには、個々のロジックや信号を明らかにするためにより詳細に記述されるサイクル・アキュレートレベル、そのサイクル・アキュレートレベルよりも抽象度が高いトランザクションレベル等がある。
本実施形態のシミュレーション装置1は、ハードウェアやソフトウェア、或いはハードウェア及びソフトウェアを含めたモジュール或いはシステムをシミュレーションして検証するための装置である。ソフトウェアの開発においては、例えばC、C++等のプログラム言語が用いられる。また、ハードウェアの開発においては、ハードウェア記述言語(HDL)が用いられる。尚、ハードウェアの開発では、HDLを用いず、例えば回路図を記述するような方法もとられる。そして、ソフトウェアやハードウェア等の開発では、所定のレベルでモデリングが行われると共に、モデリングで生成されたモデルの妥当性がシミュレーションにより検証される。モデリングのレベルには、個々のロジックや信号を明らかにするためにより詳細に記述されるサイクル・アキュレートレベル、そのサイクル・アキュレートレベルよりも抽象度が高いトランザクションレベル等がある。
本実施形態のシミュレーション装置1は、モジュール或いはシステム毎にモデリングのレベルが異なるとしても、そのモデリングのレベルが異なるモジュール或いはシステムを統合したシミュレーション結果を容易に再現できるようにするものである。
図1(a)に示すように、本実施例のシミュレーション装置1は、各種演算処理を行うCPU10と、当該シミュレーション装置1の電源投入時に必要なプログラム等を記憶するROM11と、CPU10によるプログラム実行時に作業用メモリとして使用されるRAM12と、外部の機器と通信するための通信インタフェース(I/F)13と、利用者の操作情報をCPU10に入力するためのキーボードやポインティングデバイス等からなる操作部14と、各種情報を表示するための液晶ディスプレイ等からなる表示部15と、CPU10に実行させるためのプログラムやプログラム実行時に必要なデータ等を記憶するハードディスク装置(HDD)16と、カウンタ17とを備える。カウンタ17は、後述するように、カウンタα,βからなる。
CPU10は、HDD16に格納された各種プログラムを実行することにより、図1(b)に示す制御部18、通信部19、シミュレーション部20、及びログ取得部27としての機能を果たす。
制御部18は、通信部19、シミュレーション部20、及びログ取得部27を統括制御する。例えば、通信部19を介して、外部のシミュレータ(1),(2)…からシミュレーション結果を取得し、その取得したシミュレーション結果をHDD16に記憶させる。
通信部19は、通信I/F13を介して、外部のシミュレータ(1),(2)…と通信を行う。
ログ取得部27は、通信部19を介して、外部のシミュレータ(1),(2)…からの情報(信号)に基づき、所定のシミュレーション対象についてのログ(後述する時間ログA,B)を取得する。
ログ取得部27は、通信部19を介して、外部のシミュレータ(1),(2)…からの情報(信号)に基づき、所定のシミュレーション対象についてのログ(後述する時間ログA,B)を取得する。
シミュレーション部20は、シミュレータ(1),(2)…のシミュレーション結果を結合し、複数のシミュレーション対象(シミュレータ(1),(2)…)からなる複合システムについてのシミュレーションを再現する。詳しくは後述する。
ここで、図2を用いて、ログ取得部27を中心により具体的に説明する。尚、以下の説明においては、図9(a)のような複合システムを開発する過程において、特に、図9(b)に示すように、マイコンと周辺I/O(1)とからなる複合システムを検証する場合について説明する。また、以下、マイコンをシステムAとし、周辺I/O(1)をシステムBとする。
ログ取得部27は、図2に示すように、カウンタα,β、及びメモリMとから構成される。カウンタα,βは図1のカウンタ17に相当し、メモリMは、図1のRAM12に相当する。メモリMは、カウンタα,βのカウント値のログを記憶するものである。尚、メモリM(RAM12)に記憶された情報は、後述するように、HDD16に記憶されるようになっている。尚、図2において、基準クロックAは、システムAの動作クロックであり、基準クロックBは、システムBの動作クロックである。
ここで、図6は、シミュレーション装置1の制御部18が実行する処理を表すフローチャートである。図6の処理は、操作部14を介して外部より所定の指令が入力されると開始される。尚、ここでは、シミュレータ(1)においてシステムAのシミュレーションが実行され、シミュレータ(2)においてシステムBのシミュレーションが実行されるものとする。また、シミュレータ(1)→シミュレータ(2)の順で、シミュレーションが実行されるものとする。
図6の処理では、まず、S110において、シミュレータ(1)にシステムAのシミュレーションを実行させる。具体的には、通信部19を介して、シミュレータ(1)に、シミュレーションの実行指令を送信する。これにより、シミュレータ(1)においてシステムAのシミュレーションが実行される。
次に、S120に進み、シミュレータ(1)におけるシミュレーションが完了したか否かを判定する。シミュレータ(1),(2)は、シミュレーションが完了すると、完了した旨を表す完了信号を出力するようになっており、制御部18は、通信部19を介してその完了信号を検出すると、シミュレーションが完了したと判断する。
S120でシミュレーションが完了していない、つまり完了信号を検出していないと判定すると(S120:NO)、再びS110に戻る。S120から戻ったS110では、シミュレータ(1)にシミュレーションを継続させる。
一方、S120でシミュレーションが完了した、つまり完了信号を検出したと判定すると(S120:YES)、S130に移行し、メモリMの情報及びシミュレータ(1)のシミュレーション結果を取得し、その取得した情報をHDD16に記憶する。尚、メモリMの情報及びシミュレータ(1)のシミュレーション結果については後述する。
S130の後はS140に移行し、シミュレータ(1)(具体的に、シミュレータ(1)におけるシミュレーション対象であるシステムA)の他に、シミュレーション対象が有るか否かを判定する。ここでは、例えば、前述の完了信号を受信しているか否かにより、シミュレーション対象があるか否かを判定する。
S140でシミュレーション対象があると判定すると(S140:YES)、S150に移行し、シミュレーション対象を切り換える。具体的に、シミュレータ(1)(システムA)から、シミュレータ(2)(システムB)にシミュレーション対象を切り換える。
そして、S150の後は、S110に進む。つまり、シミュレータ(2)にシステムBのシミュレーションを実行させる。以降については、シミュレータ(1)の場合と同様である。
一方、S140でシミュレーション対象がないと判定すると(S140:NO)、シミュレーション対象の全てについてシミュレーションが完了したと判断してS160に移行し、S130でHDD16に記憶したシミュレーション結果及びメモリMの情報を読み出し、それらを結合する。具体的に、システムA及びシステムBについてのシミュレーション結果、及びメモリMの情報を、あたかも、そのシステムA及びシステムBからなる1つのシステムをシミュレーションして取得したかのように結合する。尚、結合の点については、図3(b)で後述する。
S160の後はS170に移行し、S160の結合結果(結合データ)をHDD16に記憶させる。そしてその後、当該処理を終了する。
システムAのシミュレーションでは、図2上段に示すように、ログ取得部27が備えるカウンタαに基準クロックAが入力される。一方、ログ取得部27が備えるカウンタβには、基準クロックA、及びシステムAとシステムBとの間でやりとりされる信号(以下、A−B信号と記載する)が入力される。尚、これは、通信部19を介した通信により実現される。また、基準クロックA及びA−B信号は、システムAのシミュレーションにおいて模擬的に入出力されるものである。
システムAのシミュレーションでは、図2上段に示すように、ログ取得部27が備えるカウンタαに基準クロックAが入力される。一方、ログ取得部27が備えるカウンタβには、基準クロックA、及びシステムAとシステムBとの間でやりとりされる信号(以下、A−B信号と記載する)が入力される。尚、これは、通信部19を介した通信により実現される。また、基準クロックA及びA−B信号は、システムAのシミュレーションにおいて模擬的に入出力されるものである。
カウンタαは、基準クロックAが立ち上がる毎に、1づつカウントアップする。一方、カウンタβは、基準クロックAが立ち上がる毎に1づつカウントアップすると共に、A−B信号の出力レベルが変化する毎に2づつカウントアップする。
図3(a)は、カウンタα及びカウンタβのカウントの仕方を表す図面である。
図3(a)において、1段目はカウンタαのカウントの仕方を表し、2段目はカウンタβのカウントの仕方を表し、3段目は基準クロックAを表し、4段目はA−B信号を表す。
図3(a)において、1段目はカウンタαのカウントの仕方を表し、2段目はカウンタβのカウントの仕方を表し、3段目は基準クロックAを表し、4段目はA−B信号を表す。
まず、カウンタαについて説明する。尚、初期値は0である。カウンタβについても同様(つまり、初期値は0)である。
時刻t1において基準クロックAが立ち上がると、カウンタαはカウントアップし、カウンタαの値は1になる。同様に、時刻t2において基準クロックAが立ち上がると、カウンタαはカウントアップし、カウンタαの値は2になる。以後、同様であり、例えば時刻t6では、カウンタαの値は6になる。
時刻t1において基準クロックAが立ち上がると、カウンタαはカウントアップし、カウンタαの値は1になる。同様に、時刻t2において基準クロックAが立ち上がると、カウンタαはカウントアップし、カウンタαの値は2になる。以後、同様であり、例えば時刻t6では、カウンタαの値は6になる。
次に、カウンタβについて説明する。
時刻t1において、基準クロックAが立ち上がると、カウンタβはカウントアップし、カウンタβの値は1になる。時刻t2についても同様である。そして、時刻t10においてA−B信号の出力レベルが変化すると、カウンタβは2カウントアップし、この場合、カウンタβの値は4になる。以後、時刻t3ではカウンタβ値は5、時刻t11ではカウンタβ値は7、時刻t4ではカウンタβ値は8、時刻t5では基準クロックAとA−B信号とが同時に立ち上がってカウンタβ値は3カウントアップして11、時刻t6ではカウンタβ値は12になる。
時刻t1において、基準クロックAが立ち上がると、カウンタβはカウントアップし、カウンタβの値は1になる。時刻t2についても同様である。そして、時刻t10においてA−B信号の出力レベルが変化すると、カウンタβは2カウントアップし、この場合、カウンタβの値は4になる。以後、時刻t3ではカウンタβ値は5、時刻t11ではカウンタβ値は7、時刻t4ではカウンタβ値は8、時刻t5では基準クロックAとA−B信号とが同時に立ち上がってカウンタβ値は3カウントアップして11、時刻t6ではカウンタβ値は12になる。
そして、図3(a)に示すようなカウンタα値、及びカウンタβ値の増え方は、ログとしてメモリM(図2参照)に記憶される。尚、以下、システムAをシミュレーションした場合に得られるカウンタα値及びカウンタβ値のログを、時間ログAとも記載する。この時間ログAには、カウンタα,βのカウント動作の間の時間を表す情報も含む。具体的に、図3(a)において、例えばt1〜t2の期間の情報や、t1〜t10の期間の情報を含む。後述する時間ログBについても同様である。
時間ログAを取得する期間は、基準クロックAの周波数を表す数とA−B信号の周波数を表す数との最小公倍数をとり、その最小公倍数÷基準クロックAの周波数で求まる期間、或いはその最小公倍数÷A−B信号の周波数で求まる期間である。後述する時間ログBについても同様である。
時間ログA、特に、カウンタβ値によれば、その増え方により、基準クロックAが立ち上がるタイミングと、A−B信号の出力レベルが変化するタイミングとの関係が分かる。シミュレーション装置1(より具体的に、シミュレーション部20)は、時間ログAに基づき、基準クロックAとA−B信号との関係(ずれ、或いは位相差)を認識し、その認識結果に基づき、シミュレータ(1)における時間軸を定義する。
尚、カウンタαにより、基準クロックAのみに対応するログをとっているのは、カウンタβの抜けの有無を検証するためである。つまり、カウンタαの値が増加しているにもかかわらずカウンタβの値が増加していない場合には、カウンタβにおいてカウントミス(抜け)が発生したことが分かる。
図2に戻り、システムBのシミュレーションにおいて(図2下段参照)、ログ取得部27が備えるカウンタαには、基準クロックBが入力される。一方、ログ取得部27が備えるカウンタβには、基準クロックB、及びA−B信号が入力される。これは、前述のように、通信部19を介した通信により実現される。
そして、前述した場合と同様に、カウンタαは、基準クロックBが立ち上がる毎に1づつカウントアップする。一方、カウンタβは、基準クロックBが立ち上がる毎に1づつカウントアップすると共に、A−B信号の出力レベルが変化する毎に2づつカウントアップする。カウンタα値及びカウンタβ値の増え方は図3(a)と同様であり、ここでは説明を省略する。また、以下、システムBをシミュレーションした場合に得られるカウンタα値及びカウンタβ値のログを、時間ログBとも記載する。
時間ログB、特に、カウンタβ値によれば、その増え方により、基準クロックBが立ち上がるタイミングと、A−B信号の出力レベルが変化するタイミングとの関係が分かる。シミュレーション装置1(より具体的に、シミュレーション部20)は、時間ログBに基づき、基準クロックBとA−B信号との関係(ずれ、或いは位相差)を認識し、その認識結果に基づき、シミュレータ(2)における時間軸を定義する。
尚、時間ログA,B(特に、カウンタβ値)によれば、前述のように、基準クロックA,Bの立ち上がりタイミング及びA−B信号の出力レベルが変化するタイミングが分かるため、時間ログA,Bに基づき、基準クロックA、基準クロックB、A−B信号、さらには、他の出力信号を結合することができる。この点について、図3(b)を用いて説明する。
図3(b)において、出力信号Aは、システムAのシミュレーションにおいて、基準クロックAに同期して出力される信号である。より具体的に、所定の入力(外界ログA:図4参照)に対して出力される信号である。シミュレーション装置1は、基準クロックA、A−B信号、及び出力信号Aを、シミュレータ(1)におけるシミュレーション結果(結果A:図4参照)として取得し、HDD16に記憶させる(図6のS130)。
また、出力信号Bは、システムBのシミュレーションにおいて、基準クロックBに同期して出力される信号である。より具体的に、所定の入力(外界ログB:図4参照)に対して出力される信号(結果B:図4参照)である。シミュレーション装置1は、基準クロックB、A−B信号、及び出力信号Bを、シミュレータ(2)におけるシミュレーション結果(結果B:図4参照)として取得し、HDD16に記憶させる(図6のS130)。
尚、基準クロックA,B及びA−B信号は、時間ログA,Bから再現することもできる。
例えば、図3(b)上段に示すように、時間ログAとしてのカウンタβ値に基づき、そのカウンタβ値が1増加する箇所(T1,T2,T4,T6,T8)は、基準クロックAの立ち上がりタイミングである。また、カウンタβ値が2増加する箇所(T3,T5)は、A−B信号の出力レベルが変化する(立ち上がり又は立ち下がり)タイミングである。さらに、カウンタβ値が3増加する箇所(T7)は、基準クロックAの立ち上がりタイミング及びA−B信号の出力レベルが変化する(立ち上がり又は立ち下がり)タイミングである。尚、A−B信号について、立ち上がり→立ち上がり(或いは立ち下がり→立ち下がり)というパターンは存在しないため、初期状態の出力レベルさえ分かれば、A−B信号の波形を描くことができる。初期状態の出力レベルは、メモリ(例えばRAM12)に記憶されるようになっている。また、基準クロックA,Bの周期は一定であるため、立ち上がり(或いは立ち下がり)タイミングが分かれば、確実かつ容易に波形を描くことができる。
例えば、図3(b)上段に示すように、時間ログAとしてのカウンタβ値に基づき、そのカウンタβ値が1増加する箇所(T1,T2,T4,T6,T8)は、基準クロックAの立ち上がりタイミングである。また、カウンタβ値が2増加する箇所(T3,T5)は、A−B信号の出力レベルが変化する(立ち上がり又は立ち下がり)タイミングである。さらに、カウンタβ値が3増加する箇所(T7)は、基準クロックAの立ち上がりタイミング及びA−B信号の出力レベルが変化する(立ち上がり又は立ち下がり)タイミングである。尚、A−B信号について、立ち上がり→立ち上がり(或いは立ち下がり→立ち下がり)というパターンは存在しないため、初期状態の出力レベルさえ分かれば、A−B信号の波形を描くことができる。初期状態の出力レベルは、メモリ(例えばRAM12)に記憶されるようになっている。また、基準クロックA,Bの周期は一定であるため、立ち上がり(或いは立ち下がり)タイミングが分かれば、確実かつ容易に波形を描くことができる。
また、図3(b)下段に示すように、時間ログBとしてのカウンタβ値に基づき、そのカウンタβ値が1増加する箇所(T10,T11,T12,T13)は、基準クロックBの立ち上がりタイミングである。また、カウンタβ値が2増加する箇所(T3,T5,T7)は、A−B信号の出力レベルが変化する(立ち上がり又は立ち下がり)タイミングである。
そして、図3(b)に示すように、システムAについて取得できたA−B信号の時間軸と、システムBについて取得できたA−B信号の時間軸とをあわせることで、基準クロックA、出力信号A、基準クロックB、及び出力信号Bの時間軸をあわせることができる。
つまり、シミュレーション装置1は、システムA及びシステムBについてのシミュレーション結果を、メモリMの情報(時間ログA,B)を用いて、あたかも、そのシステムA及びシステムBからなる1つのシステムをシミュレーションして取得したかのように結合する。尚、結合結果は、表示部15に表示されるようにすることができる。
以上のように、シミュレーション装置1は、基準クロックAとA−B信号とからシミュレータ(1)における時間軸を定義し、基準クロックBとA−B信号とからシミュレータ(2)における時間軸を定義する。そして、A−B信号は共通である。このため、シミュレーション装置1は、シミュレータ(1)及びシミュレータ(2)の時間軸の関係を認識すると共に統合することができ、シミュレータ(1)及びシミュレータ(2)におけるシミュレーション結果を結合できるようになっている。
次に、図4は、本実施形態の作用を表す図面である。
本実施形態のシミュレーション装置1は、図4(a)に概念を示すが、システムA及びシステムBそれぞれのシミュレーション結果を結合(統合)して、システムA及びシステムBからなる複合システムについてのシミュレーションを再現することができる。
本実施形態のシミュレーション装置1は、図4(a)に概念を示すが、システムA及びシステムBそれぞれのシミュレーション結果を結合(統合)して、システムA及びシステムBからなる複合システムについてのシミュレーションを再現することができる。
図4(b)に示すように、システムAのシミュレーションにおいて、外界ログAを入力とすると、その入力に対して結果Aが得られる。外界ログAは、システムAに対する外部からの入力のことであり、システムAは、外界ログAに対して所定の動作をして、その結果としての結果Aを出力する。尚、この結果Aは、シミュレータ(1)に蓄積されるものであり、基準クロックA、A−B信号、及び出力信号Aを含む趣旨である。
一方、システムAとは別のシステムBのシミュレーションにおいて、外界ログBを入力とすると、その入力に対して結果Bが得られる。外界ログBは、システムBに対する外部からの入力のことであり、システムBは、外界ログBに対して所定の動作をして、その結果としての結果Bを出力する。尚、この結果Bは、シミュレータ(2)に蓄積されるものであり、基準クロックB、A−B信号、及び出力信号Bを含む趣旨である。
そしてここで、前述のように、本実施形態のシミュレーション装置1によれば、シミュレータ(1)の時間軸を定義すると共にシミュレータ(2)の時間軸を定義し、そのシミュレータ(1),(2)の時間軸をあわせる、つまりシミュレータ(1),(2)を結合させることができる。
このため、シミュレーション装置1によれば、外界ログA、結果A、外界ログB、及び結果Bを1つのバス上に落とし込んでやることで、あたかもシステムAとシステムBとが1つのバス上で連携して動作するのと同等の環境を実現することができる。つまり、そのシステムAとシステムBとからなる複合システムをシミュレーションするのと同じ環境を再現することができる。
このように、本実施形態のシミュレーション装置1によれば、システムAとシステムBとが別々に開発されたとしても、そのシステムAとシステムBとからなる複合システムのシミュレーション環境を容易に実現(再現)することができる。
次に、本実施形態のシミュレーション装置1を用いた各種製品の開発方法について、図5を用いて説明する。各種製品とは、ハードウェアやソフトウェア、或いはハードウェア及びソフトウェアを含めたモジュール或いはシステム等のことである。
図5において、各プロセス、具体的に、要求分析、システム設計、ハード・ソフト構造設計、実装・シミュレーション、単体テスト、システムテスト、及びシステム評価の内容については、図8と同じである。
本実施形態のシミュレーション装置1を用いた場合には、前述のように、別々に開発されたモジュール或いはシステム等を統合した複合システムについて検証することができる。このため、その個々のモジュール或いはシステムによりどういう結果が得られれば良いかということに基づき、モジュール或いはシステムを個々に開発することを可能にする。
例えば図5では、システム設計の後、そのシステムテスト及び単体テストを行う。具体的に、システム全体としてどのような結果が得られれば良いか、或いはモジュール単体や、全体のシステムより規模の小さい個別システムとしてどのような結果が得られれば良いかを検証する。そして、所望の結果が得られるように、ハード・ソフト構造設計を行う。そして、その後は、実装・シミュレーションにより単体テスト或いはシステムテストを行うわけであるが、そもそも所望の結果が得られるようにハード・ソフト構造設計を行っているため、試行錯誤(トライ&エラー)により設計を進めなくてもよくなり、設計工数を大幅に削減することができる。
このように、本実施形態のシミュレーション装置1を用いれば、どういう出力結果が得られれば良いか、ということに基づき、その所望の結果が得られるようにモジュールを個々に開発できるようになるという優れた効果を得ることができる。
尚、上記実施形態において、制御部18、シミュレーション実行部25が信号取得手段に相当し、ログ取得部27(特に、カウンタ17及びメモリM)が位相情報取得手段に相当し、シミュレーション部20及びシミュレーション実行部25が同期手段及び信号再現手段に相当し、図3(b)が同期、及び信号(A−B信号及び基準クロックA,B)を再現する様子を表し、A−B信号が授受信号に相当し、基準クロックA,Bが動作クロックに相当し、カウンタβが請求項1〜4のカウンタに相当し、図5及びその説明が請求項5の設計・開発方法に相当し、例えば図2のマイコン及び周辺I/O(1)がシミュレーション対象及び請求項5の要素に相当している。
[第2実施形態]
次に、第2実施形態について説明するが、第1実施形態と異なる点についてのみ説明する。
[第2実施形態]
次に、第2実施形態について説明するが、第1実施形態と異なる点についてのみ説明する。
第2実施形態のシミュレーション装置1は、第1実施形態のシミュレーション装置1と比較して、ソフト構成が異なっている。図7(a),(b)は、第2実施形態のシミュレーション装置1のソフト構成を表す図面である。
CPU10は、HDD16に格納された各種プログラムを実行することにより、図7(a)に示すモデル編集部21、モデル読込部23、シミュレーション実行部25、及びログ取得部27としての機能を果たす。
モデル編集部21は、モデル作成に関する情報を、HDD16に格納されたライブラリから読み出し、この情報に基づき、表示部15に、モデルの作成画面を表示させる。そして、操作部14から入力される利用者の操作情報に基づき、利用者がシミュレーション対象としているモジュール或いはシステムのモデルを作成する。尚、ここで言うモデルとは、例えばC、C++等により記述されたプログラム、HDLにより記述されたハードウェアのモデル、及びプログラムとハードウェアのモデルとの両方からなるシステムモデル等を含む趣旨である。
モデル編集部21で作成されたモデルは、モデルデータとしてHDD16に保存される。
モデル読込部23は、HDD16に記憶されたモデルデータを、外部からの指令に基づき適宜読出す。
モデル読込部23は、HDD16に記憶されたモデルデータを、外部からの指令に基づき適宜読出す。
シミュレーション実行部25は、モデル読込部23により読み出されたモデルに対応する演算処理をCPU10に実行させるためのシミュレーションプログラムを生成すると共に、そのシミュレーションプログラムに基づき、シミュレーションを実行する。簡単に言えば、所定のモデルのシミュレーションを行う。
ここで、シミュレーション実行部25は、図7(b)に示すように、複数のシミュレータ(シミュレータ(1),(2)…)からなる。各シミュレータでは、それぞれ、独立して所定のモデルのシミュレーションが可能である。尚、本第2実施形態では、シミュレーション実行部25が、図6の処理を実行する。
具体的に、シミュレーション実行部25は、操作部14を介した外部からの指令に基づき、システムA(例えば図2参照)を表すモデルを、モデル読込部23を介してHDD16から読み込むと共に、その読み込んだシステムAを表すモデルをシミュレーションする(シミュレータ(1)、S110)。
システムAのシミュレーションが完了すると(S120:YES)、そのシミュレーション結果、及びそのシミュレーションによりログ取得部27のメモリMに記憶された時間ログAを取得してHDD16に記憶させる(S130)。
次に、シミュレーション対象をシステムB(シミュレータ(2))に切り換え(S140:YES→S150)、システムB(例えば図2参照)を表すモデルを、モデル読込部23を介してHDD16から読み込むと共に、その読み込んだシステムBを表すモデルをシミュレーションする(シミュレータ(2)、S110)。
システムA,B(シミュレータ(1),(2))のシミュレーションが完了(S120:YES)してシミュレーション対象がなくなると(S140:NO)、HDD16に記憶した情報(時間ログA,B、システムA,Bのシミュレーション結果)を読み出して結合する。また、その結合結果(結合データ)は、HDD16に記憶させる。そしてその後、図6の処理を終了する。
このような第2実施形態のシミュレーション装置1によれば、そのシミュレーション装置1上で複数のシミュレーション対象のシミュレーションを実行できるとともに、そのシミュレーション結果を結合できるようになるため、複数台のシミュレーション装置を用いなくても良くなるという利点がある。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術範囲内において種々の形態をとることができる。
例えば上記第1実施形態では、シミュレーション装置1は、通信部19を介して外部のシミュレータ(1),(2)のシミュレーション結果を取得できるようになっているが、シミュレータ(1),(2)のシミュレーション結果が、例えば操作部14を介してシミュレーション装置1に入力される構成でも良い。この場合、その入力されたシミュレーション結果をHDD16に記憶させておき、そのHDD16から、シミュレーション結果が取得されるようにすれば良い。
例えば上記第1実施形態では、シミュレーション装置1は、通信部19を介して外部のシミュレータ(1),(2)のシミュレーション結果を取得できるようになっているが、シミュレータ(1),(2)のシミュレーション結果が、例えば操作部14を介してシミュレーション装置1に入力される構成でも良い。この場合、その入力されたシミュレーション結果をHDD16に記憶させておき、そのHDD16から、シミュレーション結果が取得されるようにすれば良い。
また、上記第1実施形態では、シミュレーション装置1の制御部18は、シミュレータ(1)にシミュレーションを実行させ、次にシミュレータ(2)にシミュレーションを実行させるようにしているが、その順序は問わない。つまり、シミュレータ(2)にシミュレーションを実行させ、次にシミュレータ(1)にシミュレーションを実行させるようにしても良い。また、シミュレータ(1),(2)…を動作させる順序を表す情報は、デフォルトで定められて予めROM11に記憶されていても良いし、操作部14を介して利用者により所望の情報(つまり、順序)が入力されるように構成しても良い。第2実施形態についても同様である。つまり、第2実施形態において、シミュレータ(2)にシミュレーションを実行させ、次にシミュレータ(1)にシミュレーションを実行させるようにしても良い。
また、上記実施形態において、カウンタα、カウンタβ、及びメモリMを、シミュレータ(1),(2)…毎に備えても良い。そして、シミュレータ(1),(2)…毎のシミュレーション結果及び時間ログA,Bを同時に取得できるようにしても良い。このようにすれば、シミュレータ(1),(2)…を同時に動作させることができる、言い換えると、複数種類のシミュレーションを同時に実行できるようになると共に、それらを結合できるようになるため、効率をより向上させることができる。
また、上記実施形態では、出力信号A、出力信号Bがそれぞれ1つの場合について説明したが、出力信号A、出力信号Bが複数の場合でも、同じように時間軸を合わせて結合することができる。
また、上記実施形態では、時間ログAを取得する期間は、基準クロックAの周波数を表す数とA−B信号の周波数を表す数との最小公倍数をとり、その最小公倍数÷基準クロックAの周波数で求まる期間、或いはその最小公倍数÷A−B信号の周波数で求まる期間であるが、その期間よりもさらに長い期間、時間ログを取得するようにしても良い。時間ログBについても同様である。
また、上記実施形態では、カウンタαは、基準クロックA,Bが立ち上がる毎にカウントアップするが、基準クロックA,Bが立ち下がる毎にカウントアップするようにしても良い。
また、上記実施形態において、時間ログA,Bから基準クロックA,B、及びA−B信号が再現され、その再現された基準クロックA,B及びA−B信号がシミュレーション結果として取得されるようにしても良い。
1…シミュレーション装置、10…CPU、11…ROM、12…RAM、13…通信I/F、14…操作部、15…表示部、16…HDD、17…カウンタ、18…制御部、19…通信部、20…シミュレーション部、21…モデル編集部、23…モデル読込部、25…シミュレーション実行部、27…ログ取得部。
Claims (5)
- 複数のシミュレーション対象からなるシステムの模擬実行結果を、そのシミュレーション対象それぞれの模擬実行結果(以下、個別模擬実行結果と言う)を組み合わせて再現する統合シミュレーション装置であって、
前記個別模擬実行結果は、模擬実行に必要な入力信号、及び模擬実行により得られる出力信号であり、さらに、その入力信号及び出力信号の両方又は一方には、異なるシミュレーション対象間でやりとりされる信号(以下、授受信号と言う)が含まれており、
前記複数のシミュレーション対象のそれぞれについて、前記個別模擬実行結果を取得する信号取得手段と、
前記複数のシミュレーション対象のそれぞれについて、前記授受信号と、その授受信号以外の前記個別模擬実行結果との位相関係を表す情報(以下、位相情報と言う)を取得する位相情報取得手段と、
前記信号取得手段により取得された前記個別模擬実行結果同士において、前記授受信号の同期をとり、さらに、前記位相情報に基づき、その授受信号以外のその個別模擬実行結果同士の同期をとる同期手段と、
を備えていることを特徴とする統合シミュレーション装置。 - 請求項1に記載の統合シミュレーション装置において、
前記シミュレーション対象の模擬実行では、そのシミュレーション対象が動作するための所定の動作クロックが入力されるようになっており、
前記位相情報取得手段は、
前記授受信号と、前記動作クロックとの位相関係を表す情報を、前記位相情報として取得することを特徴とする統合シミュレーション装置。 - 請求項2に記載の統合シミュレーション装置において、
前記位相情報取得手段は、
前記授受信号及び前記動作クロックが入力されると共に、その授受信号の立ち上がり及び立ち下がり毎に所定値の分だけカウント動作し、前記動作クロックの立ち上がり或いは立ち下がり毎に前記所定値とは異なる値の分だけカウント動作するカウンタと、
前記カウンタのカウント値の変化の仕方を記憶するメモリと、を備え、
前記メモリに記憶されたカウント値の変化の仕方を表す情報を、前記授受信号と前記動作クロックとの位相関係を表す前記位相情報として取得するようになっていることを特徴とする統合シミュレーション装置。 - 請求項3に記載の統合シミュレーション装置において、
前記メモリに記憶されたカウント値の変化の仕方を表す情報に基づき、前記授受信号及び前記動作クロックを再現する信号再現手段を備え、
前記信号取得手段は、前記信号再現手段により再現された前記授受信号及び前記動作クロックを、前記個別模擬実行結果として取得することを特徴とする統合シミュレーション装置。 - 複数の要素からなるシステムの設計・開発方法であって、
前記システムの要求仕様を定義する工程と、
前記要求仕様を実現する前記複数の要素それぞれの仕様(以下、個別仕様と言う)を定義する工程と、
前記個別仕様を実現する前記複数の要素それぞれを設計する工程と、
設計できた前記複数の要素それぞれを模擬実行する工程と、
請求項1ないし請求項4の何れか1項に記載の統合シミュレーション装置を用い、前記複数の要素それぞれの模擬実行結果同士の同期をとって、前記システムの模擬実行結果を再現する工程と、
再現できた前記システムの模擬実行結果が前記要求仕様を満たすか否かを検証する工程と、
を有することを特徴とする複数の要素からなるシステムの設計・開発方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007222797A JP2009054107A (ja) | 2007-08-29 | 2007-08-29 | 統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007222797A JP2009054107A (ja) | 2007-08-29 | 2007-08-29 | 統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009054107A true JP2009054107A (ja) | 2009-03-12 |
Family
ID=40505106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007222797A Withdrawn JP2009054107A (ja) | 2007-08-29 | 2007-08-29 | 統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009054107A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464089B2 (en) | 2009-06-10 | 2013-06-11 | Panasonic Corporation | Tracing apparatus and tracing system |
-
2007
- 2007-08-29 JP JP2007222797A patent/JP2009054107A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464089B2 (en) | 2009-06-10 | 2013-06-11 | Panasonic Corporation | Tracing apparatus and tracing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100483636B1 (ko) | 에뮬레이션및시뮬레이션을이용한설계검증방법및장치 | |
Ledin | Hardware-in-the-loop simulation | |
US8136065B2 (en) | Integrated prototyping system for validating an electronic system design | |
US6804636B2 (en) | Control program development support apparatus | |
Pimentel et al. | Calibration of abstract performance models for system-level design space exploration | |
CN106483866B (zh) | 制导控制半实物仿真系统定时方法及系统 | |
KR20000017333A (ko) | 반도체 집적 회로 설계 및 검증 시스템 | |
US8036874B2 (en) | Software executing device and co-operation method | |
KR20080055913A (ko) | 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치 | |
CN107533473A (zh) | 用于仿真的高效波形生成 | |
JP2007334812A (ja) | シミュレータ及びシミュレーション方法 | |
US7606694B1 (en) | Framework for cycle accurate simulation | |
CN107844678B (zh) | 包含IP/Memory时序路径的spice仿真方法 | |
CN1815480B (zh) | 从波形图产生硬件设计语言触发的方法与系统 | |
JP2009140388A (ja) | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 | |
JP4293562B2 (ja) | ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 | |
Rath et al. | A transaction-oriented UVM-based library for verification of analog behavior | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
JP2009054107A (ja) | 統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法 | |
US20100269003A1 (en) | Delay fault diagnosis program | |
Porto et al. | Modeling and virtual prototyping for embedded systems on mixed-signal multicores | |
US20140039867A1 (en) | Information processing apparatus and method thereof | |
JP3472067B2 (ja) | 設計支援装置 | |
JP5328447B2 (ja) | 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体 | |
US10210294B1 (en) | System and methods for simulating a circuit design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20101102 |