(57)【要約】【課題】複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションする際に、複数クロック間の周波数差を吸収するためのクロック分周処理に起因するシミュレーション速度の低下を回避する。【解決手段】複数のコンピュータ１１０、１２０をネットワーク１３０で接続して構成される非同期反復型の並列シミュレーション装置２００において、クロックの周波数毎にＬＳＩ機能を分割してコンピュータ１１０とコンピュータ１２０に割り当て、コンピュータ１１０では高速クロックで動作する機能シミュレーション１１１、１２１を実行し、コンピュータ１２０では低速クロックで動作する機能シミュレーション１１２、１２２を実行し、ネットワーク１３０介して並列動作するシミュレーション間のデータ同期処理を実行する。【選択図】  図２
2005063002.tif 000002
【特許請求の範囲】
【請求項１】
複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションする非同期反復型の並列シミュレーション装置であって、前記クロックの周波数毎に分割したＬＳＩ機能を並列にシミュレーションするシミュレーション手段と、並列動作するシミュレーション間のデータ同期処理を実行するデータ同期処理手段とを備える並列シミュレーション装置。
【請求項２】
前記データ同期処理手段は、データ同期条件として特定のシミュレーション対象信号の変化を判定する請求項１記載の並列シミュレーション装置。
【請求項３】
前記データ同期処理手段は、データ同期条件として特定の外部入力信号の変化を判定する請求項１記載の並列シミュレーション装置。
【請求項４】
前記データ同期処理手段は、データ同期時に一度にすべてのデータの同期処理を行う請求項１から３のいずれか一項記載の並列シミュレーション装置。
【請求項５】
前記データ同期処理手段は、データ同期時に、同期が必要なデータのみについて同期処理を行う請求項１から３のいずれか一項記載の並列シミュレーション装置。
【請求項６】
前記データ同期処理手段は、ファイル入力等により予め指定されたデータ同期条件により同期処理を行う請求項１から３のいずれか一項記載の並列シミュレーション装置。
【請求項７】
前記データ同期処理手段は、並列にシミュレーションを実行する手段の間に張られたネットワークを介して前記データ同期処理を実行する請求項１から６のいずれか一項記載の並列シミュレーション装置。
【請求項８】
前記データ同期処理手段は、並列にシミュレーションを実行する手段の間を接続するバスを介して前記データ同期処理を実行する請求項１から６のいずれか一項記載の並列シミュレーション装置。
【請求項９】
複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションする非同期反復型の並列シミュレーション方法であって、前記クロックの周波数毎に前記ＬＳＩ機能を分割し、分割されたＬＳＩ機能を並列にシミュレーションし、並列動作するシミュレーション間のデータ同期処理を実行する並列シミュレーション方法。
【請求項１０】
データ同期条件として特定のシミュレーション対象信号の変化の判定により前記データ同期処理を実行する請求項９記載の並列シミュレーション方法。
【請求項１１】
データ同期条件として特定の外部入力信号の変化の判定により前記データ同期処理を実行する請求項９記載の並列シミュレーション方法。
【請求項１２】
データ同期時に、一度にすべてのデータに対して前記データ同期処理を行う請求項９から１１のいずれか一項記載の並列シミュレーション方法。
【請求項１３】
データ同期時に、同期が必要なデータのみについて前記データ同期処理を行う請求項９から１１のいずれか一項記載の並列シミュレーション方法。
【請求項１４】
ファイル入力等により予め指定されたデータ同期条件により前記データ同期処理を行う請求項９から１１のいずれか一項記載の並列シミュレーション方法。
【請求項１５】
コンピュータに請求項９から１４のいずれか一項記載の並列シミュレーション方法を実行させるコンピュータプログラム。
【請求項１６】
請求項１５記載のコンピュータプログラムを記録した読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＬＳＩの並列シミュレーション技術に関し、特に複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションするための並列シミュレーション装置および並列シミュレーション方法に関する。
【背景技術】
【０００２】
近年、ＬＳＩ回路の大規模化が進み、開発期間の長期化が避けられなくなっている。それに伴い、ＬＳＩ上で動作するソフトウェアについても大規模化が進んでおり、ソフトウェアの早期開発着手が望まれている。
【０００３】
ＬＳＩ上で動作させるソフトウェアを開発するには、そのＬＳＩを使用する必要があるが、ＬＳＩの開発完了を待っていては、そのＬＳＩを使用する製品の適切な販売時期を逃してしまう恐れがある。
【０００４】
そのため、ＬＳＩに代わるものとして、ＬＳＩの機能をソフトウェアでシミュレーションするソフトウェアシミュレータ、ＦＰＧＡなどのハードウェアを用いてＬＳＩの機能に相当するものを実装したエミュレータ、およびそれらを組み合わせたものが提供されている。これらを用いることにより、ＬＳＩの開発完了を待たずに、ＬＳＩ上で動作するソフトウェアの開発やシステム評価などに早期に着手することができる。
【０００５】
ＬＳＩのシミュレータにとって、ＬＳＩ回路規模の増大は機能シミュレーション速度の低下という影響をもたらす。その対策として、ＬＳＩ回路内の各機能を複数のコンピュータで並列にシミュレーションさせる手法が従来採用されている。
【０００６】
機能シミュレーションにおける並列化の手法としては、従来２つの手法がある。１つ目は、ある信号の値が変化したときのみ動作させるイベントドリブン法であり、２つ目は、ある時刻に同期して与えられた入力に従って動作させ、信号の値が変化しなくなるまで動作を繰り返す反復法である（例えば、特許文献１参照）。
【０００７】
反復法においては、さらに細かく以下の２つの形式に分類可能である。
（１）同期型：並列シミュレーションを行う際、最も細かい時刻管理単位でコンピュータ間のデータ同期処理を実行するシミュレーション方法。
（２）非同期型：並列シミュレーションを行う際、コンピュータが独自に時刻管理を行い、適当な時刻に他のコンピュータとデータ同期処理を実行するシュレーション方法。
【０００８】
以下、従来法として反復法非同期型並列シミュレーションを取り上げ、その実施形態を図面を用いて説明する。ここで、ＬＳＩ内の機能が複数クロックで動作するものをシミュレーションすると想定する。
【０００９】
図１は従来法による並列シミュレーション装置の実施形態を示すブロック図である。図１において、並列シミュレーション装置１００は、ＬＳＩの内部機能のシミュレーションを分担するコンピュータ１１０およびコンピュータ１２０と、それらを接続するネットワーク１３０とで構成されている。
【００１０】
上記構成での従来法によるＬＳＩ機能のシミュレーションでは、コンピュータ１１０において、高速クロックで動作する高速機能のシミュレーション１１１と、低速クロックで動作する低速機能のシミュレーション１１２を実行する。
【００１１】
同様に、コンピュータ１２０においても、高速クロックで動作する高速機能のシミュレーション１２１と低速クロックで動作する低速機能のシミュレーション１２２を実行する。そして、コンピュータ１１０とコンピュータ１２０はネットワーク１３０を経由して情報を交換し、ＬＳＩ機能の並列シミュレーションを実現している。
【００１２】
図３は、上記従来法によるＬＳＩ機能の並列シミュレーションのフローチャートである。図３のフローチャートにおいて、図１に示した各シミュレーションについては同一符号を付し、その処理内容が同一のものであることを示す。また、コンピュータ１１０とコンピュータ１２０について、シミュレーション内容は異なるものの処理の流れは同一であるので、以下、コンピュータ１１０におけるフローチャートについて説明する。
【００１３】
コンピュータ１１０において、ＬＳＩの機能をシミュレーションするために、高速クロックに相当するクロックカウンタ変数と、低速機能のシミュレーションを実現するための分周カウンタ変数を用意する。
【００１４】
図３において、まず、高速機能のシミュレーション１１１を実行し、ステップ３０１で分周カウンタ変数が低速機能のシミュレーション１１２を処理するための分周周期に達したかどうかの判定を行う。判定結果が真（分周周期に達した）の場合は低速機能のシミュレーション１１２を実行し、条件が偽の場合は低速機能のシミュレーション１１２を処理しない。
【００１５】
次に、ステップ３０３でデータ同期条件かどうかの判定を行う。判定結果が真の場合はステップ３０４でコンピュータ１２０とのデータ同期処理を行い、判定結果が偽の場合はデータ同期処理を行わない。
【００１６】
次に、ステップ３０６、ステップ３０２で、分周カウンタ変数、クロックカウンタ変数をそれぞれインクリメントした後、ステップ３０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ１１１に戻る。コンピュータ１２０においても同様の処理を実行することで、ＬＳＩ機能の並列シミュレーションが行われる。
【特許文献１】特開平１０−９１６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
一般的にＬＳＩ機能を並列シミュレーションする際の課題は、並列化の方法がシミュレーション速度に影響を及ぼすことである。上記従来法では、低速処理のシミュレーションのために分周条件の判定や分周カウンタ変数のインクリメントを行わなくてはならず、ＬＳＩで使用している複数クロック間の周波数比が大きい場合は、ＬＳＩ機能の並列シミュレーションの速度向上効果が分周処理のシミュレーション分だけ減少してしまうという課題があった。
【００１８】
本発明は上記従来の課題を解決するもので、複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションする際に、複数クロック間の周波数差を吸収するための処理に起因するシミュレーション速度の低下を回避することができる並列シミュレーション装置および並列シミュレーション方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の並列シミュレーション装置は、複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションする非同期反復型の並列シミュレーション装置であって、前記クロックの周波数毎に分割したＬＳＩ機能を並列にシミュレーションするシミュレーション手段と、並列動作するシミュレーション間のデータ同期処理を実行するデータ同期処理手段とを備える。
【００２０】
上記構成によれば、それぞれのクロック周波数毎にＬＳＩ機能を分割して並列にシミュレーションを行うことにより、クロック周波数の違い吸収するための分周周期に係る処理が不要になり、その処理に起因するシミュレーション速度の低下を招くことが無く、全体のシミュレーション速度を向上させることができる。
【００２１】
前記データ同期処理手段は、データ同期条件として特定のシミュレーション対象信号の変化を判定する。
【００２２】
上記構成によれば、特定のシミュレーション対象信号の変化を検知してデータ同期処理を行うため、ＬＳＩ機能のシミュレーションに適したデータ同期条件が容易になる。
【００２３】
前記データ同期処理手段は、データ同期条件として特定の外部入力信号の変化を判定する。
【００２４】
上記構成によれば、外部から並列シミュレーションのデータ同期を制御することができるため、多様な並列シミュレーションの実行が可能となる。
【００２５】
前記データ同期処理手段は、データ同期時に一度にすべてのデータの同期処理を行う。
【００２６】
上記構成によれば、データ同期時に一度にすべてのデータの同期処理を行うことができるため、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックの並列配置することが可能となり、並列シミュレーションの適応性を増すことができる。
【００２７】
前記データ同期処理手段は、データ同期時に、同期が必要なデータのみについて同期処理を行うものである。
【００２８】
上記構成によれば、データ同期時に同期が必要なデータのみについて同期処理を行うことができるため、データ同期時の転送データ量を最小限に減らすことが可能となり、並列シミュレーションの速度向上を図ることができる。
【００２９】
前記データ同期処理手段は、ファイル入力等により予め指定されたデータ同期条件により同期処理を行う。
【００３０】
上記構成によれば、データ同期条件をファイル入力等により予め指定することができるため、データ同期条件とそれに伴う処理を最適に設定することが可能となり、並列シミュレーションの速度向上を図ることができる。
【００３１】
前記データ同期処理手段は、並列にシミュレーションを実行する手段の間に張られたネットワークを介して前記データ同期処理を実行する。
【００３２】
上記構成によれば、並列にシミュレーションを実行する手段であるコンピュータやハードウェアエミュレータ等がネットワークを介して接続されているため、より柔軟なシステム構成をとることができる。
【００３３】
前記データ同期処理手段は、並列にシミュレーションを実行する手段の間を接続するバスを介して前記データ同期処理を実行する。
【００３４】
上記構成によれば、ネットワーク接続で構成された並列シミュレーション装置に比べて、複数ＣＰＵがバス接続された１台のコンピュータで並列シミュレーション方法を実行することができるため、より高速に動作する並列シミュレーション装置を実現することができる。
【００３５】
さらに、この並列シミュレーション装置をネットワーク接続される並列シミュレーションシステムに組み込むことにより、より多様な並列シミュレーションの構成が可能となり、並列度を増した高速シミュレーションが可能な並列シミュレーション装置を実現することができる。
【００３６】
本発明の並列シミュレーション方法は、複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションする非同期反復型の並列シミュレーション方法であって、前記クロックの周波数毎に前記ＬＳＩ機能を分割し、分割されたＬＳＩ機能を並列にシミュレーションし、並列動作するシミュレーション間のデータ同期処理を実行する。
【００３７】
上記構成によれば、それぞれのクロック毎にＬＳＩ機能を分割して並列にシミュレーションを行うことにより、クロック周波数の違い吸収するための分周周期に係る処理が不要になり、その処理に起因するシミュレーション速度の低下を招くことが無く、全体のシミュレーション速度を向上させることができる。
【００３８】
前記データ同期処理を、データ同期条件として特定のシミュレーション対象信号の変化の判定により実行する。
【００３９】
上記構成によれば、特定のシミュレーション対象信号の変化を検知してデータ同期処理を行うため、具体的なＬＳＩ機能のシミュレーションに適したデータ同期条件が容易になる。
【００４０】
前記データ同期処理を、データ同期条件として特定の外部入力信号の変化の判定により実行する。
【００４１】
上記構成によれば、外部から並列シミュレーションのデータ同期を制御することができるため、多様な並列シミュレーションの実行が可能となる。
【００４２】
前記データ同期処理を、データ同期時に一度にすべてのデータに対して行う。
【００４３】
上記構成によれば、データ同期時に一度にすべてのデータの同期処理を行うことができるため、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックの並列配置することが可能となり、並列シミュレーションの適応性を増すことができる。
【００４４】
前記データ同期処理を、データ同期時に、同期が必要なデータのみについて行う。
【００４５】
上記構成によれば、データ同期時に同期が必要なデータのみについて同期処理を行うことができるため、データ同期時の転送データ量を最小限に減らすことが可能となり、並列シミュレーションの速度向上を図ることができる。
【００４６】
前記データ同期処理を、ファイル入力等により予め指定されたデータ同期条件により行う。
【００４７】
上記構成によれば、データ同期条件をファイル入力等により予め指定することができるため、データ同期条件とそれに伴う処理を最適に設定することが可能となり、並列シミュレーションの速度向上を図ることができる。
【発明の効果】
【００４８】
本発明によれば、複数クロックを有するＬＳＩ機能の並列シミュレーションにおいて、それぞれのクロック毎にＬＳＩ機能を分割して並列にシミュレーションを行うことにより、クロック周波数の違い吸収するための分周周期に係る処理が不要になるため、その処理に起因するシミュレーション速度の低下を招くことが無くなる。複数クロック周波数同士の比が大きいほどその効果は大きく、シミュレーション速度を向上させることができるという優れた効果が得られる。
【発明を実施するための最良の形態】
【００４９】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の図面の記載において、同一または類似の部分には同一または類似の符号を付し、同一部分については重複した説明を一部省略する。
【００５０】
（実施の形態１）
本発明の第１の態様は、複数周波数のクロックを有するＬＳＩ機能をシミュレーションする非同期反復型並列シミュレーションにおいて、それぞれのクロック周波数毎にシミュレーションを行うものである。
【００５１】
図２は本発明の実施の形態１に係る並列シミュレーション装置の構成を示すブロック図である。図２において、並列シミュレーション装置２００は、ＬＳＩの内部機能のシミュレーションを分担するコンピュータ１１０およびコンピュータ１２０と、それらを接続するネットワーク１３０とで構成されている。
【００５２】
コンピュータ１１０では、高速クロックで動作する高速機能のシミュレーション１１１と、やはり高速クロックで動作する高速機能のシミュレーション１２１を実行する。他方、コンピュータ１２０では、低速クロックで動作する低速機能のシミュレーション１１２と、やはり低速クロックで動作する低速機能のシミュレーション１２２を実行する。
【００５３】
そして、コンピュータ１１０とコンピュータ１２０はネットワーク１３０を経由して情報を交換し、ＬＳＩ機能の並列シミュレーションを実現している。ここで、従来法の図１と同じ構成要素については同一符号を付している。
【００５４】
図４は、本実施の形態によるＬＳＩ機能の並列シミュレーション方法のフローチャートである。図４のフローチャートにおいて、図２に示した各シミュレーションについては同一符号を付し、その処理内容が同一のものであることを示す。
【００５５】
コンピュータ１１０とコンピュータ１２０のそれぞれに、ＬＳＩの機能をシミュレーションするために、クロックに相当するクロックカウンタ変数を用意する。
【００５６】
最初に、コンピュータ１１０で処理されるシミュレーションの流れを説明する。まず、高速機能のシミュレーション１１１と高速機能のシミュレーション１２１を実行する。
【００５７】
ステップ４０２でクロックカウンタ変数をインクリメントした後、ステップ４０３でデータ同期条件かどうかの判定を行う。判定結果が真の場合はステップ４０４でコンピュータ１２０とのデータ同期処理を行い、判定結果が偽の場合はデータ同期処理を行わない。
【００５８】
次に、ステップ４０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ１１１に戻る。
【００５９】
次に、コンピュータ１２０で処理されるシミュレーションの流れを説明する。まず、低速機能のシミュレーション１１２と低速機能のシミュレーション１２２を実行する。
【００６０】
ステップ４１２でクロックカウンタ変数をインクリメントした後、ステップ４１３でデータ同期条件かどうかの判定を行う。判定結果が真の場合はステップ４１４でコンピュータ１２０とのデータ同期処理を行い、判定結果が偽の場合はデータ同期処理を行わない。
【００６１】
次に、ステップ４１５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ１１２に戻る。
【００６２】
さらに、具体的なクロック周波数を示して上記説明を補足する。図５および図６はそれぞれ図１および図２に対応し、従来法および本実施の形態による並列シミュレーション装置の構成を示すブロック図である。ＬＳＩは１０ＭＨｚおよび１０ｋＨｚの２つのクロックで動作し、それぞれのクロック周波数で動作する機能ブロックが２つずつあることを想定する。
【００６３】
図５において、従来法の並列シミュレーション装置５００では、１０ＭＨｚで動作する機能のシミュレーション５１１と１０ｋＨｚで動作する機能のシミュレーション５１２をコンピュータ１１０が実行し、１０ＭＨｚで動作する機能のシミュレーション５２１と１０ｋＨｚで動作する機能のシミュレーション５２２をコンピュータ１２０が実行している。
【００６４】
これに対して、図６において、本実施の形態の並列シミュレーション装置６００では、１０ＭＨｚで動作する機能のシミュレーション５１１および１０ＭＨｚで動作する機能のシミュレーション５２１をコンピュータ１１０で実行し、１０ｋＨｚで動作する機能のシミュレーション５１２および１０ｋＨｚで動作する機能のシミュレーション５２２をコンピュータ１２０で実行する。
【００６５】
このように、複数周波数のクロックを有するＬＳＩ機能を、それぞれのクロック周波数毎にシミュレーションを行うことにより、これらのシミュレーションを並列に実行した場合に、クロック周波数の違い吸収するための分周周期に係る処理が不要になり、その処理に起因するシミュレーション速度の低下を招くことが無く、並列シミュレーションの速度向上効果を十分に得ることができる。
【００６６】
（実施の形態２）
本発明の第２の態様は、実施の形態１の並列シミュレーション方法において、データ同期条件として特定のシミュレーション対象信号の変化を判定するものである。シミュレーション実行時には、シミュレーションによって特定の信号が変化したときに並列動作しているシミュレーション間のデータ同期処理を実行する。
【００６７】
図１３は本発明の実施の形態２に係る並列シミュレーション方法のフローチャートである。本実施の形態の並列シミュレーション装置は図２あるいは図６の構成をとり、ここでは図６を用いて説明する。
【００６８】
コンピュータ１１０とコンピュータ１２０のそれぞれに、ＬＳＩの機能をシミュレーションするために、クロックに相当するクロックカウンタ変数を用意する。
【００６９】
コンピュータ１１０においては、まず、１０ＭＨｚで動作する高速機能のシミュレーション５１１と高速機能のシミュレーション５２１を実行する。ステップ４０２でクロックカウンタ変数をインクリメントした後、ステップ１３０３でデータ同期条件かどうかの判定を行う。
【００７０】
ここで、データ同期条件はシミュレーションによる特定の信号の変化である。ステップ１３０３で特定の信号がシミュレーションにより変化したか否かを判定し、判定結果が真の場合はステップ４０４でコンピュータ１２０とのデータ同期処理を行い、判定結果が偽の場合はデータ同期処理を行わない。
【００７１】
次に、ステップ４０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ５１１に戻る。
【００７２】
コンピュータ１２０においては、１０ＭＨｚで動作する高速機能のシミュレーションの代わりに、１０ｋＨｚで動作する低速機能のシミュレーション５１２と低速機能のシミュレーション５２２を実行する点以外は、コンピュータ１１０における処理と同様である。
【００７３】
このように、特定の信号の変化を判定してデータ同期条件とすることにより、具体的なＬＳＩ機能のシミュレーションに適したデータ同期条件が容易になり、並列シミュレーションの速度向上効果を得ることができる。
【００７４】
（実施の形態３）
本発明の第３の態様は、実施の形態１の並列シミュレーション方法において、データ同期条件として特定の外部入力信号の変化を判定するものである。シミュレーション実行時には、特定の外部入力信号が変化したときに並列動作しているシミュレーション間のデータ同期処理を実行する。
【００７５】
図９は本発明の実施の形態３に係る並列シミュレーション装置の構成を示すブロック図である。図９において、並列シミュレーション装置９００は、ＬＳＩの内部機能のシミュレーションを分担するコンピュータ１１０およびコンピュータ１２０と、外部同期処理部９３０と、外部同期処理部９３０とコンピュータ１１０、１２０の間をそれぞれ接続するネットワーク９１０、９２０とで構成されている。
【００７６】
コンピュータ１１０では、１０ＭＨｚで動作する高速機能のシミュレーション５１１と、やはり１０ＭＨｚで動作する高速機能のシミュレーション５２１を実行する。他方、コンピュータ１２０では、１０ｋＨｚで動作する低速機能のシミュレーション５１２と、やはり１０ｋＨｚで動作する低速機能のシミュレーション５２２を実行する。
【００７７】
外部同期処理部９３０は、特定の外部入力信号を監視するとともに、ネットワーク９１０とネットワーク９２０を通してコンピュータ１１０とコンピュータ１２０の処理を監視し、同期信号およびデータの交換を制御する。
【００７８】
図１４は本発明の実施の形態３に係る並列シミュレーション方法のフローチャートである。コンピュータ１１０とコンピュータ１２０のそれぞれに、ＬＳＩの機能をシミュレーションするために、クロックに相当するクロックカウンタ変数を用意する。
【００７９】
コンピュータ１１０においては、まず、１０ＭＨｚで動作する高速機能のシミュレーション５１１と高速機能のシミュレーション５２１を実行する。ステップ４０２でクロックカウンタ変数をインクリメントした後、ステップ１４０３でデータ同期条件かどうかの判定を行う。
【００８０】
ここで、データ同期条件は特定の外部入力信号の変化である。ステップ１４０３で特定の外部入力信号が変化したか否かを判定し、判定結果が真の場合はステップ４０４でコンピュータ１２０とのデータ同期処理を行い、判定結果が偽の場合はデータ同期処理を行わない。
【００８１】
次に、ステップ４０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ５１１に戻る。
【００８２】
コンピュータ１２０においては、１０ＭＨｚで動作する高速機能のシミュレーションの代わりに、１０ｋＨｚで動作する低速機能のシミュレーション５１２と低速機能のシミュレーション５２２を実行する点以外は、コンピュータ１１０における処理と同様である。
【００８３】
このように、特定の外部入力信号の変化を判定してデータ同期条件とすることにより、外部から並列シミュレーションのデータ同期を制御することができるため、多様な並列シミュレーションの実行が可能となる。
【００８４】
（実施の形態４）
本発明の第４の態様は、前記実施の形態１〜４の並列シミュレーション方法において、データ同期時に一度にすべてのデータの同期処理を行うものである。
【００８５】
図１５は本発明の実施の形態４に係る並列シミュレーション方法のフローチャートである。本実施の形態の並列シミュレーション装置は図２あるいは図６の構成をとり、ここでは図６を用いて説明する。
【００８６】
コンピュータ１１０とコンピュータ１２０のそれぞれに、ＬＳＩの機能をシミュレーションするために、クロックに相当するクロックカウンタ変数を用意する。
【００８７】
コンピュータ１１０においては、まず、１０ＭＨｚで動作する高速機能のシミュレーション５１１と高速機能のシミュレーション５２１を実行する。
【００８８】
ステップ４０２でクロックカウンタ変数をインクリメントした後、ステップ４０３でデータ同期条件かどうかの判定を行う。判定結果が真の場合はステップ１５０４でコンピュータ１２０とのデータ同期処理を行う。その際、一度に全てのデータの同期処理を行う。判定結果が偽の場合はデータ同期処理を行わない。
【００８９】
次に、ステップ４０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ５１１に戻る。
【００９０】
コンピュータ１２０においては、１０ＭＨｚで動作する高速機能のシミュレーションの代わりに、１０ｋＨｚで動作する低速機能のシミュレーション５１２と低速機能のシミュレーション５２２を実行する点以外は、コンピュータ１１０における処理と同様である。
【００９１】
このように、データ同期時に一度にすべてのデータの同期処理を行うことにより、例えば、データ同期条件の抽出が困難な場合に、それを考慮せずに機能ブロックの並列配置することが可能となり、並列シミュレーションの適応性を増すことができる。
【００９２】
（実施の形態５）
本発明の第５の態様は、前記実施の形態１〜４の並列シミュレーション方法において、データ同期時に、同期が必要なデータのみについて同期処理を行うものである。
【００９３】
図１６は本発明の実施の形態５に係る並列シミュレーション方法のフローチャートである。本実施の形態の並列シミュレーション装置は図２あるいは図６の構成をとり、ここでは図６を用いて説明する。
【００９４】
コンピュータ１１０とコンピュータ１２０のそれぞれに、ＬＳＩの機能をシミュレーションするために、クロックに相当するクロックカウンタ変数を用意する。
【００９５】
コンピュータ１１０においては、まず、１０ＭＨｚで動作する高速機能のシミュレーション５１１と高速機能のシミュレーション５２１を実行する。
【００９６】
ステップ４０２でクロックカウンタ変数をインクリメントした後、ステップ４０３でデータ同期条件かどうかの判定を行う。判定結果が真の場合はステップ１６０４でコンピュータ１２０とのデータ同期処理を行う。その際、同期が必要なデータのみについて同期処理を行う。判定結果が偽の場合はデータ同期処理を行わない。
【００９７】
次に、ステップ４０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ５１１に戻る。
【００９８】
コンピュータ１２０においては、１０ＭＨｚで動作する高速機能のシミュレーションの代わりに、１０ｋＨｚで動作する低速機能のシミュレーション５１２と低速機能のシミュレーション５２２を実行する点以外は、コンピュータ１１０における処理と同様である。
【００９９】
このように、データ同期時に同期が必要なデータのみについて同期処理を行うことにより、データ同期時の転送データ量を最小限に減らすことが可能となり、並列シミュレーションの速度向上効果を得ることができる。なお、同期が必要なデータの選択については、予め指定する方法や、実行時に動的に決定される方法などがある。
【０１００】
（実施の形態６）
本発明の第６の態様は、前記実施の形態１〜４の並列シミュレーション方法において、データ同期条件をファイル入力等により予め指定するものである。
【０１０１】
図１０は本発明の実施の形態６に係る並列シミュレーション方法のフローチャートである。本実施の形態の並列シミュレーション装置は図２あるいは図６の構成をとり、ここでは図２を用いて説明する。
【０１０２】
コンピュータ１１０とコンピュータ１２０のそれぞれに、ＬＳＩの機能をシミュレーションするために、クロックに相当するクロックカウンタ変数を用意する。
【０１０３】
コンピュータ１１０においては、まず、ステップ１００１でデータ同期条件を指定するファイルを読み込む。図１１はデータ同期条件を指定するファイルの構成例を示す図である。この実施例では、シミュレーションする各機能１１０１について、同期条件１１０２と同期処理を行うデータ１１０３が指定される。
【０１０４】
次に、コンピュータ１１０では、高速機能のシミュレーション１１１と高速機能のシミュレーション１２１を実行する。
【０１０５】
ステップ４０２でクロックカウンタ変数をインクリメントした後、ステップ４０３で、ステップ１００１で読み込んだデータ同期条件により条件判定を行う。判定結果が真の場合はステップ４０４でコンピュータ１２０とのデータ同期処理を行い、判定結果が偽の場合はデータ同期処理を行わない。
【０１０６】
次に、ステップ４０５で終了条件に達したかどうかを判定する。判定結果が真の場合はシミュレーションを終了し、判定結果が偽の場合はステップ１１１に戻る。
【０１０７】
コンピュータ１２０においては、最初にステップ１０１１でデータ同期条件を指定するファイルを読み込む点と、高速クロックで動作する高速機能のシミュレーションの代わりに、低速クロックで動作する低速機能のシミュレーション１１２と低速機能のシミュレーション１２２を実行する点以外は、コンピュータ１１０における処理と同様である。
【０１０８】
このように、データ同期条件をファイル入力等により予め指定することにより、データ同期条件とそれに伴う処理を最適に設定することが可能となり、並列シミュレーションの速度向上効果を得ることができる。
【０１０９】
（実施の形態７）
図７は本発明の実施の形態７に係る並列シミュレーション装置の構成を示すブロック図である。図７において、並列シミュレーション装置７００は１台のコンピュータ７０１で構成され、そのコンピュータ７０１が、ＬＳＩの内部機能のシミュレーション分担するＣＰＵ７１０およびＣＰＵ７２０と、それらを接続するバス７３０とで構成されている。
【０１１０】
ＣＰＵ７１０は高速クロックで動作する機能のシミュレーション５１１とシミュレーション５２１を実行し、ＣＰＵ７２０は低速クロックで動作する機能のシミュレーション５１２とシミュレーション５２２を実行する。
【０１１１】
図７を図６に対比させると、ＣＰＵ７１０がコンピュータ１１０に対応し、ＣＰＵ７２０がコンピュータ１２０に対応し、バス７３０がネットワーク１３０に対応している。
【０１１２】
このように並列シミュレーション装置を構成することにより、ネットワークで接続された２台のコンピュータで構成された並列シミュレーション装置に比べて、バス接続された２つのＣＰＵを含む１台のコンピュータで前記各実施の形態の並列シミュレーション方法を実行することができるため、高速に動作する並列シミュレーション装置を実現することができる。
【０１１３】
（実施の形態８）
図８は本発明の実施の形態８に係る並列シミュレーション装置の構成を示すブロック図である。図８において、並列シミュレーション装置８００は、ＬＳＩの内部機能のシミュレーションを分担するハードウェアエミュレータ８１０およびコンピュータ１２０と、それらを接続するネットワーク１３０とで構成されている。
【０１１４】
ハードウェアエミュレータ８１０は１０ＭＨｚで動作する機能のシミュレーション５１１とシミュレーション５２１を実行し、さらに１００ＭＨｚで動作する機能のシミュレーション８１１を実行する。コンピュータ１２０は１０ｋＨｚで動作する機能のシミュレーション５１２とシミュレーション５２２を実行する。
【０１１５】
図７を図６に対比させると、コンピュータ１１０に代えてハードウェアエミュレータ８１０を採用したことにより、コンピュータ１１０が分担していた１０ＭＨｚで動作する機能のシミュレーション５１１とシミュレーション５２１に加えて、１００ＭＨｚで動作する機能のシミュレーション８１１を処理できるようになっている。
【０１１６】
このように、ハードウェアエミュレータを採用して並列シミュレーション装置を構成することにより、同一のコンピュータで構成された並列シミュレーション装置に比べて、より高速なシミュレーションの実行が可能な並列シミュレーション装置を実現することができる。
【０１１７】
（実施の形態９）
図１２は本発明の実施の形態９に係る並列シミュレーション装置の構成を示すブロック図である。図９において、並列シミュレーション装置１２００は、実施の形態７における並列シミュレーション装置のコンピュータ７０１と、コンピュータ１２１０、１２２０と、それらを接続するネットワーク１３０とで構成されている。
【０１１８】
コンピュータ７０１は、１０ＭＨｚで動作する機能のシミュレーション５１１とシミュレーション５２１、および１０ｋＨｚで動作する機能のシミュレーション５１２とシミュレーション５２２を実行する。
【０１１９】
コンピュータ１２１０は高速な１００ＭＨｚで動作する機能のシミュレーション１２１１を実行し、コンピュータ１２２０は低速の３２ｋＨｚで動作する機能のシミュレーション１２２１とシミュレーション１２２２を実行する。
【０１２０】
このように、複合型の並列シミュレーション装置を構成することにより、同一のコンピュータで構成された並列シミュレーション装置に比べて、より多様な並列シミュレーションの構成が可能となり、並列度を増した高速シミュレーションが可能な並列シミュレーション装置を実現することができる。
【産業上の利用可能性】
【０１２１】
本発明の並列シミュレーション装置および並列シミュレーション方法は、複数クロックを有するＬＳＩ機能の並列シミュレーションにおいて、それぞれのクロック周波数毎にＬＳＩ機能を分割して並列にシミュレーションを行うことにより、クロック周波数の違い吸収するための分周周期に係る処理が不要になるため、その処理に起因するシミュレーション速度の低下を招くことが無くなるという効果を有し、複数周波数のクロックを有するＬＳＩ機能を並列シミュレーションするための並列シミュレーション装置および並列シミュレーション方法等として有用である。
【図面の簡単な説明】
【０１２２】
【図１】従来法による並列シミュレーション装置の実施形態を示すブロック図。
【図２】本発明の実施の形態１に係る並列シミュレーション装置の構成を示すブロック図。
【図３】従来法による並列シミュレーションのフローチャート。
【図４】本発明の実施の形態１に係る並列シミュレーション方法を示すフローチャート。
【図５】従来法による並列シミュレーション装置の実施形態を示すブロック図。
【図６】本発明の実施の形態１に係る並列シミュレーション装置の構成を示すブロック図。
【図７】本発明の実施の形態７に係る並列シミュレーション装置の構成を示すブロック図。
【図８】本発明の実施の形態８に係る並列シミュレーション装置の構成を示すブロック図。
【図９】本発明の実施の形態３に係る並列シミュレーション装置の構成を示すブロック図。
【図１０】本発明の実施の形態６に係る並列シミュレーション方法を示すフローチャート。
【図１１】データ同期条件を指定するファイルの構成例を示す図。
【図１２】本発明の実施の形態９に係る並列シミュレーション装置の構成を示すブロック図。
【図１３】本発明の実施の形態２に係る並列シミュレーション方法を示すフローチャート。
【図１４】本発明の実施の形態３に係る並列シミュレーション方法を示すフローチャート。
【図１５】本発明の実施の形態４に係る並列シミュレーション方法を示すフローチャート。
【図１６】本発明の実施の形態５に係る並列シミュレーション方法を示すフローチャート。
【符号の説明】
【０１２３】
１００、２００、５００、６００、７００、８００、９００、１２００  並列シミュレーション装置
１１０、１２０、７０１、１２１０、１２２０  コンピュータ
１１１、１２１  高速機能のシミュレーション
１１２、１２２  低速機能のシミュレーション
１３０、９１０、９２０  ネットワーク
３０１〜３０６、３１１〜３１６、４０２〜４０５、４１２〜４１５、１００１、１０１１、１３０３、１３１３、１４０３、１４１３、１５０４、１５１４、１６０４、１６１４  ステップ
５１１、５２１  １０ＭＨｚで動作する機能のシミュレーション
５１２、５２２  １０ｋＨｚで動作する機能のシミュレーション
７１０、７２０  ＣＰＵ
７３０  バス
８１０  ハードウェアエミュレータ
８１１、１２１１  １００ＭＨｚで動作する機能のシミュレーション
９３０  外部同期処理部
ステップ
１１０１  シミュレーションする機能
１１０２  同期条件
１１０３  同期処理を行うデータ
１２２１、１２２２  ３２ｋＨｚで動作する機能のシミュレーション
【図１】
2005063002.tif 000003
【図２】
2005063002.tif 000004
【図３】
2005063002.tif 000005
【図４】
2005063002.tif 000006
【図５】
2005063002.tif 000007
【図６】
2005063002.tif 000008
【図７】
2005063002.tif 000009
【図８】
2005063002.tif 000010
【図９】
2005063002.tif 000011
【図１０】
2005063002.tif 000012
【図１１】
2005063002.tif 000013
【図１２】
2005063002.tif 000014
【図１３】
2005063002.tif 000015
【図１４】
2005063002.tif 000016
【図１５】
2005063002.tif 000017
【図１６】
2005063002.tif 000018