(57)【要約】【課題】  抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示する。【解決手段】  抽象度の異なるシミュレーションモデルのシミュレーション結果を解析し、解析したシミュレーション結果に基づいて、抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示させる。これにより、シミュレーション途中の累積誤差を容易に把握でき、比較対象となるシミュレーションモデルの精度を、より正確に、効率良く得ることができる。【選択図】      図１
2007207119.tif 000002
【特許請求の範囲】
【請求項１】
抽象度の異なるシミュレーションモデルのシミュレーション結果を比較し、シミュレーション時間の累積誤差を表示する表示装置であって、
抽象度の異なるシミュレーションモデルのシミュレーション結果を解析するシミュレーション結果解析手段と、
前記解析したシミュレーション結果に基づいて、前記抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示させる表示制御手段と、
を有することを特徴とする表示装置。
【請求項２】
前記シミュレーション結果解析手段は、前記抽象度の異なるシミュレーションモデルのシミュレーション結果からハードウェアイベントの発生時間とシミュレーション時間の累積誤差を解析することを特徴とする請求項１に記載の表示装置。
【請求項３】
前記表示制御手段は、前記ハードウェアイベントの発生時間とシミュレーション時間の累積誤差から、横軸を基準となるシミュレーション結果の経過時間とし、縦軸を比較対象となるシミュレーション結果のシミュレーション時間の累積誤差とするグラフを表示することを特徴とする請求項２に記載の表示装置。
【請求項４】
前記ハードウェアイベントは、前記抽象度の異なるシミュレーションモデル内のシステムバス上で発生することを特徴とする請求項２又は３に記載の表示装置。
【請求項５】
前記シミュレーション時間の累積誤差は、基準となるシミュレーション結果を切り替えて表示されることを特徴とする請求項３に記載の表示装置。
【請求項６】
前記シミュレーション結果解析手段は、前記ハードウェアイベントが発生時に活性状態又は不活性状態になるモジュールを判別することを特徴とする請求項３に記載の表示装置。
【請求項７】
前記表示制御手段は、前記ハードウェアイベントが発生時のモジュールの活性状態又は不活性状態情報から、前記グラフの横軸と並行してモジュールの活性状態情報をグラフ化することを特徴とする請求項６に記載の表示装置。
【請求項８】
前記表示制御手段は、前記モジュール毎の活性状態を示す情報に基づいて前記累積誤差を各モジュールで色分けして表示させることを特徴とする請求項６に記載の表示装置。
【請求項９】
抽象度の異なるシミュレーションモデルのシミュレーション結果を比較し、シミュレーション時間の累積誤差を表示する表示方法であって、
抽象度の異なるシミュレーションモデルのシミュレーション結果を解析するシミュレーション結果解析工程と、
前記解析したシミュレーション結果に基づいて、前記抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示させる表示制御工程と、
を有することを特徴とする表示方法。
【請求項１０】
請求項９に記載の表示方法をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、抽象度の異なるシミュレーションモデルのシミュレーション結果を比較し、シミュレーション時間の累積誤差をハードウェアイベント毎に表示する技術に関するものである。
【背景技術】
【０００２】
プロセス技術の進歩によりＬＳＩの集積度が増大し、これまではボードで実現していたシステムをシステムＬＳＩとして１チップ上に搭載することが可能となっている。また、チップ上に搭載する機能モジュールも多様化し、回路規模も増大している。これに伴い、システムＬＳＩを効率的に設計するための手法として、ハードウェア記述言語を使用した設計からSystemCやSpecCといったシステム記述言語による設計が普及してきている。
【０００３】
尚、ハードウェア記述言語として、Verilog-HDLやVHDL（VHSIC Hardware Description Language）などがある。
【０００４】
システム記述言語による設計支援ツールとしては、Synopsys社のCoCentricやCoWare社のConvergenSCが知られている。そして、システム記述言語により記述したモジュールをブロック図入力画面で入力し、システムＬＳＩの設計を行うことが可能になっている。
【０００５】
このシステムＬＳＩの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行い、設計したシステムＬＳＩの機能や性能を確認することができる（例えば、特許文献１参照）。即ち、実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避している。
【０００６】
上述のシステム記述言語によるモジュール記述には、記述の抽象度により以下の３種類の記述レベルが一般に知られている。
【０００７】
トランザクションレベル（ＴＬ）：
モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
【０００８】
バスサイクルアキュレート（ＢＣＡ）：
モジュールの入力及び出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対して、入力及び出力部で正確にシミュレートすることができる。
【０００９】
レジスタトランスファレベル（ＲＴＬ）：
レジスタファイル間の同期転送を捉えて回路を記述する抽象度レベルである。動作クロックに対して、正確に機能動作をシミュレートすることができ、精度が非常に高い。１クロック毎に機能をシミュレートするため、シミュレーション速度は非常に遅い。
【００１０】
一般的に、抽象度が高いほどシミュレーション速度は速くなり、また抽象度が低いほどシミュレーション精度は高くなる。そのため、上述のようにシミュレーション速度の速いＴＬ記述されたシミュレーションモデルを使用して、ＬＳＩシステムの性能評価やアーキテクチャ検討を行うことが多い。
【００１１】
しかしながら、ＴＬ記述されたシミュレーションモデルはクロックに対する精度は低く、一方ＲＴＬ記述されたシミュレーションモデルはシミュレーション速度は遅いが、精度はサイクルレベルで実際のＬＳＩと一致する。そこで、ＲＴＬシミュレーションモデルとＴＬシミュレーションモデルのサイクルレベルでの精度比較を行い、その結果をＴＬシミュレーションモデルの完成度向上やＬＳＩシステムの性能見積りにフィードバックする。これにより、ＴＬシミュレーションモデルを用いたＬＳＩシステムの性能評価やアーキテクチャ検討の信頼性を高めることができる。
【００１２】
以上の理由から、ＲＴＬシミュレーションモデルとＴＬシミュレーションモデルの精度比較を行う必要がある。
【特許文献１】特開2004-157646号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ＲＴＬシミュレーションモデルとＴＬシミュレーションモデルの精度を比較するために、シミュレーションの終了時間を比較する方法がある。しかし、終了時間を比較するだけではシミュレーション途中の誤差の累積過程を把握することができない。例えば、ＲＴＬシミュレーションの終了時間が100msであり、ＴＬシミュレーションの終了時間が110msであった場合に、ＲＴＬシミュレーションに対するＴＬシミュレーションの誤差は+10msとなる。この+10msの誤差は最終的な累積結果であるが、シミュレーション途中では+20msになる可能性も、-5msになる可能性もある。
【００１４】
この例のように、誤差が一時的に広がったとしても、別の要因により、誤差が縮まり、途中の誤差を隠蔽してしまうことがある。そのため、比較対象となるシミュレーションモデルの精度を、より正確に得るために、誤差の累積過程を把握する必要がある。
【００１５】
シミュレーション途中の累積誤差を比較するために、２つのシミュレーション結果となる波形を比較する方法があるが、通常は目視で行っているため、非常に効率が悪い。また、シミュレーションモデル内にモニタを設け、必要なハードウェアイベントのログを抽出し、ログの比較結果をテキストとして表示する方法もあるが、シミュレーション全体の誤差の累積過程を把握することは難しい。
【００１６】
本発明は、抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示することを目的とする。
【課題を解決するための手段】
【００１７】
本発明は、抽象度の異なるシミュレーションモデルのシミュレーション結果を比較し、シミュレーション時間の累積誤差を表示する表示装置であって、抽象度の異なるシミュレーションモデルのシミュレーション結果を解析するシミュレーション結果解析手段と、前記解析したシミュレーション結果に基づいて、前記抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示させる表示制御手段とを有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、抽象度の異なるシミュレーションモデルのシミュレーション時間の累積誤差を表示することで、シミュレーション途中の累積誤差を容易に把握でき、比較対象となるシミュレーションモデルの精度を、より正確に、効率良く得ることができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２０】
［第１の実施形態］
図１は、第１の実施形態におけるシミュレーション結果比較表示装置の構成の一例を示す図である。図１において、１０１はＲＴＬシミュレータであり、ハードウェア記述言語を用いてＲＴＬの抽象度レベルとして記述されたＲＴＬシミュレーションモデルの動作をシミュレートする。１０２はＴＬシミュレータであり、ハードウェア記述言語或いはシステム記述言語を用いてＴＬの抽象度レベルとして記述されたＴＬシミュレーションモデルの動作をシミュレートする。１０３はＲＴＬシミュレーション結果ファイルであり、ＲＴＬシミュレータ１０１でのシミュレーション結果が記述されたファイルである。１０４はＴＬシミュレーション結果ファイルであり、ＴＬシミュレータ１０２でのシミュレーション結果が記述されたファイルである。
【００２１】
１０５はシミュレーション結果解析部であり、２つの結果ファイル１０３、１０４からハードウェアイベントが発生したシミュレーション時間と該シミュレーション時間の累積誤差を解析する。１０６は表示制御部であり、シミュレーション結果解析部１０５の解析結果に基づいて、横軸を基準となるシミュレーションの経過時間とし、縦軸を比較対象となるシミュレーション時間の累積誤差とするグラフを作成する。１０７は表示部であり、表示制御部１０６で作成されたグラフを表示する。
【００２２】
次に、図１に示すシミュレーション結果比較表示装置の動作を説明するために、ＲＴＬシミュレータ１０１で用いるＲＴＬシミュレーションモデル及びＴＬシミュレータ１０２で用いるＴＬシミュレーションモデルについて説明する。
【００２３】
図２は、ＲＴＬシミュレーションモデルの構成の一例を示すブロック図である。図２において、ＣＰＵ２０１は内部演算とシステムバス２０４を介してＲＯＭ２０６内のデータの読み出しと、ＳＤＲＡＭ２０８内のデータの読み出し又はＳＤＲＡＭ２０８内へデータの書き込みを行う。アービタ２０２はシステムバス２０４に接続されるマスタ機器にバスの使用権を許可する。デコーダ１０２はＣＰＵ２０１から発行されるアドレスをデコードする。モニタ２４１はシステムバス２０４上で発生するハードウェアイベントを監視する。
【００２４】
ＲＯＭコントローラ２０５はＣＰＵ２０１がＲＯＭ２０６からデータを読み出す際に、その読み出しの制御を行う。ＳＤＲＡＭコントローラ２０７はＣＰＵ２０１がＳＤＲＡＭ２０８に対してデータの読み出し又は書き込みの際に、そのアクセス制御を行う。ＲＯＭ２０６は読み出しのみが可能で、実行されるプログラムであるＣＰＵ命令とデータが格納される。ＳＤＲＡＭ２０８は読み出しと書き込みが可能で、ＣＰＵ命令を実行するために必要なデータが格納される。
【００２５】
図３は、ＴＬシミュレーションモデルの構成の一例を示すブロック図である。図３において、ＣＰＵ３０１は内部演算とシステムバス３０２を介してＲＯＭ３０３内のデータの読み出しと、ＳＤＲＡＭ３０４内のデータの読み出し又はＳＤＲＡＭ３０４内へデータの書き込みを行う。モニタ３２１はシステムバス３０２上で発生するハードウェアイベントを監視する。
【００２６】
ＲＯＭ３０３はＲＯＭレイテンシ設定部３３１とＲＯＭデータ格納部３３２からなり、ＲＯＭレイテンシ設定部３３１ではＲＯＭのレイテンシサイクル数を設定する。同様に、ＳＤＲＡＭ３０４はＳＤＲＡＭレイテンシ設定部３４１とＳＤＲＡＭデータ格納部３４２からなり、ＳＤＲＡＭレイテンシ設定部３４１ではＳＤＲＡＭのレイテンシサイクル数を設定する。ＲＯＭデータ格納部３３２は読み出しのみが可能で、実行されるプログラムであるＣＰＵ命令とデータが格納される。ＳＤＲＡＭデータ格納部３４２は読み出しと書き込みが可能で、ＣＰＵ命令を実行するために必要なデータが格納される。
【００２７】
図２に示すように、ＲＴＬシミュレーションモデルは、システムバス２０４、アービタ２０２、デコーダ２０３がそれぞれ別のモジュールとして実装されている。一方、図３に示すＴＬシミュレーションモデルは、アービタ及びデコーダの機能がシステムバス２０４の内部に実装され、抽象度を上げている。
【００２８】
また、ＲＴＬシミュレーションモデルのＲＯＭコントローラ２０５とＲＯＭ２０６とが別のモジュールであるのに対して、ＴＬシミュレーションモデルでは２つのモジュールの機能がＲＯＭ３０３として１つのモジュールで実装されている。ここで、ＲＯＭ３０３内のＲＯＭレイテンシ設定部３３１では転送サイズ、バースト長の組み合わせによって固定サイクル数のメモリアクセスレイテンシを与えることにより動作の簡易化を行い、抽象度を上げている。
【００２９】
一方、ＲＴＬシミュレーションモデルのＲＯＭコントローラ２０５は内部のレジスタ値を設定することによりメモリアクセスレイテンシを含むＲＯＭ２０６へのアクセス制御を行う。尚、メモリアクセスレイテンシは、ＲＴＬシミュレーションモデルとＴＬシミュレーションモデルとで一致させることが可能である。即ち、ＲＴＬシミュレーションモデルのＲＯＭコントローラ２０５とＲＯＭ２０６に対して、同機能でシミュレーション時間の誤差が無いＲＯＭ３０３を作成することが可能となる。
【００３０】
ＲＴＬシミュレーションモデルのＳＤＲＡＭコントローラ２０７とＳＤＲＡＭ２０８とが別のモジュールであるのに対して、ＴＬシミュレーションモデルでは２つのモジュールの機能がＳＤＲＡＭ３０４として１つのモジュールで実装されている。ここで、ＳＤＲＡＭ３０４内のＳＤＲＡＭレイテンシ設定部３４１では転送種別、バースト長の組み合わせによって固定サイクル数のメモリアクセスレイテンシを与えることにより動作の簡易化を行い、抽象度を上げている。
【００３１】
一方、ＲＴＬシミュレーションモデルのＳＤＲＡＭコントローラ２０７は内部のレジスタ値を設定することによりメモリアクセスレイテンシを含むＳＤＲＡＭ２０８へのアクセス制御を行う。そして、ＳＤＲＡＭ２０８では、転送種別とバースト長の組み合わせだけでレイテンシサイクル数が決定されるのではなく、アクセス順序に依存したページミスによるプリチャージや周期毎に発生するリフレッシュ動作でもレイテンシサイクル数は変化する。ＴＬシミュレーションモデルのＳＤＲＡＭ３０４では、高速にシミュレーションを実行させるために、転送種別とバースト長の組み合わせのみで固定レイテンシサイクル数を与えている。そのため、ＲＴＬシミュレーションモデルのＳＤＲＡＭコントローラ２０７とＳＤＲＡＭ２０８に対して、作成されるＴＬシミュレーションモデルのＳＤＲＡＭ３０４は、シミュレーション時間の誤差が発生する。
【００３２】
第１の実施形態では、図２に示すＲＴＬシミュレーションモデルをＲＴＬシミュレータ１０１でシミュレートした結果と、図３に示すＴＬシミュレーションモデルをＴＬシミュレータ１０２でシミュレートした結果とを比較する。ここで、比較するのはＲＴＬシミュレーションモデルのシステムバス２０４内のモニタ２４１とＴＬシミュレーションモデルのシステムバス３０２内のモニタ３２１で検出されるハードウェアイベントである。
【００３３】
尚、検出するハードウェアイベントはデータ転送の開始と終了とする。ＲＴＬシミュレーションモデルのモニタ２４１では信号レベルのハードウェアイベントを検出可能であるのに対して、ＴＬシミュレーションモデルのモニタ３２１ではトランザクションレベルのハードウェアイベントを検出可能である。そのため、ＲＴＬシミュレーションモデルのモニタ２４１とＴＬシミュレーションモデルのモニタ３２１は同等のハードウェアイベントを検出する機能を有する。
【００３４】
ＲＴＬシミュレーションモデルのシステムバス２０４上のデータ転送開始は、アドレスフェーズであることを示すバス上の信号がアクティブになる時で、データ転送終了は次の転送が可能であることを示すバス上の信号がアクティブになる時と一致する。このＲＴＬシミュレーションモデルに組み込まれたモニタ２４１は、２種類のハードウェアイベントのＩＤ（#event_ID）と発生時間（#RTL_time）とをＲＴＬシミュレーション結果ファイル１０３として出力する。
【００３５】
図４は、第１の実施形態におけるＲＴＬシミュレーション結果ファイル１０３の一例を示す図である。図４に示すように、１つのハードウェアイベントが上から発生した順序で記述される。４０１はハードウェアイベントＩＤであり、４０２はハードウェアイベントＩＤ４０１で示されるハードウェアイベントが発生したＲＴＬシミュレーション内の経過時間である。
【００３６】
一方、ＴＬシミュレーションモデルのシステムバス３０２上のデータ転送開始及び終了は、データ転送トランザクション（読み出しトランザクション、書き込みトランザクション）の開始及び終了と一致する。このＴＬシミュレーションモデルに組み込まれたモニタ３２１は、２種類のハードウェアイベントのＩＤ（#event_ID）と発生時間（#TL_time）とをＴＬシミュレーション結果ファイル１０４として出力する。
【００３７】
図５は、第１の実施形態におけるＴＬシミュレーション結果ファイル１０４の一例を示す図である。図５に示すように、１つのハードウェアイベントが上から発生した順序で記述される。５０１はハードウェアイベントＩＤであり、５０２はハードウェアイベントＩＤ５０１で示されるハードウェアイベントが発生したＴＬシミュレーション内の経過時間を表す。
【００３８】
次に、上述のＲＴＬシミュレーション結果ファイル１０３とＴＬシミュレーション結果ファイル１０４とを解析し、その解析結果を出力するシミュレーション結果解析部１０５の動作について説明する。
【００３９】
まず、シミュレーション結果解析部１０５では、ＲＴＬシミュレーション結果ファイル１０３とＴＬシミュレーション結果ファイル１０４からハードウェアイベントを抽出し、ハードウェアイベントが発生したシミュレーション時間の累積誤差を抽出する。ここでは、ＲＴＬシミュレーション結果ファイル１０３のハードウェアイベントＩＤ４０１とＴＬシミュレーション結果ファイル１０４ハードウェアイベントＩＤ５０１が一致するハードウェアイベントを抽出する。そして、そのハードウェアイベントが発生したＲＴＬシミュレーションの経過時間４０２とＴＬシミュレーションの経過時間５０２とから累積誤差を抽出する。
【００４０】
第１の実施形態では、シミュレーション結果解析部１０５で行われた解析結果をハードウェアイベント解析ファイル（図６）として出力する。
【００４１】
図６は、第１の実施形態におけるハードウェアイベント解析ファイルの一例を示す図である。図６に示すハードウェアイベント解析ファイル６００は一行が１つのハードウェアイベントの解析結果を表している。６０１はハードウェアイベントＩＤであり、６０２はそのハードウェアイベントのＲＴＬシミュレーション結果ファイル１０３での発生時間である。６０３はそのハードウェアイベントのＴＬシミュレーション結果ファイル１０４での発生時間である。６０４はＲＴＬシミュレーションを基準とするシミュレーション時間の累積誤差である。即ち、累積誤差６０４はＴＬシミュレーションモデルで発生した発生時間６０３からＲＴＬシミュレーションモデルで発生した発生時間６０２を減算したものである。６０５はＴＬシミュレーションを基準とするシミュレーション時間の累積誤差である。即ち、累積誤差６０５はＲＴＬシミュレーションモデルで発生した発生時間６０２からＴＬシミュレーションモデルで発生した発生時間６０３を減算したものである。
【００４２】
次に、シミュレーション結果解析部１０５の解析結果に基づいてグラフを作成する表示制御部１０６の動作について説明する。
【００４３】
表示制御部１０６は、シミュレーション結果解析部１０５の解析結果に基づいてハードウェアイベント毎にシミュレーション時間の累積誤差を表すグラフを作成する。尚、作成するグラフの横軸は基準となるシミュレーションの経過時間を意味し、縦軸は比較対象となるシミュレーション時間の累積誤差を意味する。
【００４４】
また、ハードウェアイベント毎に発生したシミュレーション時間の累積誤差を表す座標をプロットし、プロットされた座標を結ぶことでグラフ作成する。ここでプロットされた点のＹ座標が、基準となるシミュレーション経過時間である横軸から離れれば離れるほど比較対象となるシミュレーション時間の累積誤差が大きくなることを表す。
【００４５】
図７は、第１の実施形態における表示制御部１０６の処理手順を示すフローチャートである。この処理は、シミュレーション結果解析部１０５からのハードウェアイベント解析ファイル６００を用いて座標をプロットする処理である。
【００４６】
まず、ステップＳ７０１において、表示制御部１０６は、ＲＴＬシミュレーション結果とＴＬシミュレーション結果から基準となるシミュレーション結果を選択する。そして、ステップＳ７０２において、ハードウェアイベント解析ファイル６００から一行（１つのイベント）を抽出する。次に、ステップＳ７０３において、基準となるシミュレーションがＲＴＬかＴＬかを判定し、ＲＴＬであればステップＳ７０４へ進み、またＴＬであればステップＳ７０５へ進む。
【００４７】
このステップＳ７０４では、基準となるシミュレーション（ＲＴＬ）で発生したハードウェアイベントの時間に対して、比較対象となるシミュレーション（ＴＬ）で同じハードウェアイベントが発生したときのシミュレーション時間の累積誤差をプロットする。また、ステップＳ７０５では、基準となるシミュレーション（ＴＬ）で発生したハードウェアイベントの時間に対して、比較対象となるシミュレーション（ＲＴＬ）で同じハードウェアイベントが発生したときのシミュレーション時間の累積誤差をプロットする。そして、ステップＳ７０６において、最後のハードウェアイベントまで処理を行ったか否かを判定し、ハードウェアイベントが残っていればステップＳ７０２に戻り、上述のプロット処理を繰り返す。
【００４８】
図８は、ハードウェアイベント解析ファイル６００から、ＲＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。このグラフが作成される手順を図７に示すフローチャートに従って説明する。
【００４９】
まず、ステップＳ７０１で、ＲＴＬシミュレーション結果を基準に選択し、ステップＳ７０２で一つ目のハードウェアイベントを抽出する。そして、基準のシミュレーションがＲＴＬなのでステップＳ７０３からステップＳ７０４へ進み、座標ＴＳ１（20.832, 0）をプロットする。
【００５０】
次に、ステップＳ７０６で、ハードウェアイベントが残っているため、再度ステップＳ７０２でハードウェアイベントを抽出する。その後、４つ目のハードウェアイベントまで、この処理を繰り返し、ステップＳ７０４でプロットされる座標は、以下のようになる。そして、プロットされた座標間を順に結ぶことで図８に示すグラフが作成される。
【００５１】
TE1（239.568, 20.832）、TS2（270.816, 20.832）、TE2（489.552, 10.416）
図９は、ハードウェアイベント解析ファイル６００から、ＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。このグラフが作成される手順を図７に示すフローチャートに従って説明する。
【００５２】
まず、ステップＳ７０１で、ＴＬシミュレーション結果を基準に選択し、ステップＳ７０２で一つ目のハードウェアイベントを抽出する。そして、基準のシミュレーションがＴＬなのでステップＳ７０３からステップＳ７０５へ進み、座標ＴＳ１（20.832, 0）をプロットする。
【００５３】
次に、ステップＳ７０６で、ハードウェアイベントが残っているため、再度ステップＳ７０２でハードウェアイベントを抽出する。その後、４つ目のハードウェアイベントまで、この処理を繰り返し、ステップＳ７０４でプロットされる座標は、以下のようになる。そして、プロットされた座標間を順に結ぶことで図９に示すグラフが作成される。
【００５４】
TE1（260.400, -20.832）、TS2（291.648, -20.832）、TE2（499.968, -10.416）
図１０は、ハードウェアイベント解析ファイル６００の全てのハードウェアイベントに対して、図８に示すグラフと同様に、ＲＴＬシミュレーション結果を基準として作成したグラフを示す図である。図１０に示すように、終了時間を比較すると、シミュレーション時間の誤差は無い。しかし、シミュレーション時間の誤差の累積過程を見ると、-10msから+20msの間を推移していることを読み取ることができる。
【００５５】
以上のように、ＲＴＬシミュレーション結果とＴＬシミュレーション結果のシミュレーション時間の累積誤差をグラフ表示することで、波形を目視で比較するよりも容易にシミュレーション途中で発生したシミュレーション時間の誤差を把握することができる。また、比較結果をテキストファイルで表示するよりも、シミュレーション全体でのシミュレーション時間の誤差の累積過程を把握することが容易になる。
【００５６】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。尚、第２の実施形態では、図１１〜図１６を用いて第１の実施形態と異なる部分を説明する。また、第２の実施形態で用いる図１１〜図１６は、第１の実施形態で用いた図４〜図９に示す構成や処理動作に対して、新たな構成要素や処理動作が加えられている。
【００５７】
また、第２の実施形態におけるシミュレーション結果比較表示装置の基本構成及び処理動作は、前述した第１の実施形態における図１〜図３と同一であり、以下では図１〜図３を適宜参照して説明する。
【００５８】
第２の実施形態は、解析されたハードウェアイベントによって活性状態もしくは不活性状態となるモジュールの状態を、第１の実施形態で作成されるグラフと並行して識別可能に表示するものである。
【００５９】
図１１は、第２の実施形態におけるＲＴＬシミュレーション結果ファイルの一例を示す図である。図１１に示すように、ＲＴＬシミュレーション結果ファイル１１００は一行が１つのハードウェアイベントを表している。１１０１、１１０２は図４に示す第１の実施形態と同様に、ハードウェアイベントＩＤ、発生時間である。１１０３は#slaveであり、そのハードウェアイベントによって活性状態もしくは不活性状態になるモジュールとそれらの状態を表すものである。
【００６０】
例えば、“ＲＯＭ＿Ｓ”はＲＯＭの活性状態がＴＳ１のハードウェアイベントによって開始されたことを意味し、“ＲＯＭ＿Ｅ”は終了したことを意味する。尚、この意味は、後述する図１２及び図１３においても同様である。
【００６１】
図１２は、第２の実施形態におけるＴＬシミュレーション結果ファイルの一例を示す図である。図１２に示すように、ＴＬシミュレーション結果ファイル１２００は一行が１つのハードウェアイベントを表している。１２０１、１２０２は図５に示す第１の実施形態と同様に、ハードウェアイベントＩＤ、発生時間である。１２０３は#slaveであり、そのハードウェアイベントによって活性状態もしくは不活性状態になるモジュールとそれらの状態を表すものである。
【００６２】
次に、上述したＲＴＬシミュレーション結果ファイル１１００とＴＬシミュレーション結果ファイル１２００とを解析し、その解析結果を出力するシミュレーション結果解析部１０５の動作について説明する。
【００６３】
まず、シミュレーション結果解析部１０５では、ＲＴＬシミュレーション結果ファイル１１００とＴＬシミュレーション結果ファイル１２００からハードウェアイベントを抽出し、ハードウェアイベントが発生したシミュレーション時間の累積誤差を抽出する。更に、第２の実施形態では、上述のハードウェアイベントで活性状態もしくは不活性状態になるモジュールの情報も抽出する。そして、その結果をハードウェアイベント解析ファイル（図１３）として出力する。
【００６４】
図１３は、第２の実施形態におけるハードウェアイベント解析ファイルの一例を示す図である。このハードウェアイベント解析ファイル１３００は、シミュレーション結果解析部１０５でＲＴＬシミュレーション結果ファイル１１００とＴＬシミュレーション結果ファイル１２００をハードウェアイベント毎に解析した結果として作成される。尚、図１３において、１３０１〜１３０５は第１の実施形態で説明した図６に示す６０１〜６０５に相当するものである。１３０６は#slaveであり、ハードウェアイベントで活性状態もしくは不活性状態になるモジュールとそれらの状態を表す。
【００６５】
次に、シミュレーション結果解析部１０５の解析結果に基づいてグラフを作成する表示制御部１０６の動作について説明する。
【００６６】
第２の実施形態の表示制御部１０６は、第１の実施形態で作成した累積誤差のグラフと横軸を共有して、スレーブモジュールが活性状態もしくは不活性状態のどちらであるかを表すグラフも作成する。ハードウェアイベントによって各スレーブモジュールの活性状態と不活性状態は変化する。
【００６７】
図１４は、第２の実施形態における表示制御部１０６の処理手順を示すフローチャートである。まず、図１４に示すステップＳ１４０１〜Ｓ１４０５までの処理は、第１の実施形態で説明した図７に示すステップＳ７０１〜Ｓ７０５までの処理に相当する。つまり、シミュレーション結果解析部１０５で作成されたハードウェアイベント解析ファイル１３００を用いて累積誤差を表す座標をプロットする処理である。
【００６８】
次に、ステップＳ１４０６又はＳ１４０７では、ハードウェアイベントによって変化したスレーブモジュールとそれらの状態が識別できるように表示する。第２の実施形態では、帯状で表された状態が活性状態を表し、線状で表された状態が不活性状態を表すものとする。
【００６９】
図１５は、ハードウェアイベント解析ファイル１３００から、ＲＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。尚、累積誤差のグラフを作成する処理は、第１の実施形態と同様であり、その説明は省略し、ここではモジュール毎に活性状態もしくは不活性状態を表すグラフを作成する手順を説明する。
【００７０】
まず、モジュール毎に累積誤差グラフの横軸と並行な軸を準備する。この軸の表示が、帯状表示であれば、対応するモジュールが活性状態であることを表し、また直線であれば、対応するモジュールが不活性状態であることを表すものとする。
【００７１】
図１５に示す例では、ＲＯＭ、ＳＤＲＡＭの初期状態は不活性状態であるが、一つ目のハードウェアイベントＴＳ１で、ＲＯＭが活性状態に変化するため、ステップＳ１４０６でＲＯＭの軸表示を帯状表示に変化させる。
【００７２】
次に、ハードウェアイベントＴＥ１では、ＲＯＭが不活性状態となるため、ＲＯＭの軸表示を直線に変化させる。これにより、ＲＯＭの状態は、ハードウェアイベントＴＳ１とＴＥ１の間で活性状態を表す帯状表示のグラフとなる。
【００７３】
次に、ハードウェアイベントＴＳ２で、ＳＤＲＡＭが活性状態となり、ＴＥ２で不活性状態になるため、ＲＯＭと同様に、ＳＤＲＡＭの状態はＴＳ２とＴＥ２の間で活性状態を表す帯状表示のグラフとなる。
【００７４】
そして、プロットされた座標間を順に結び、各モジュールの状態を表すグラフの時間軸を累積誤差グラフと同様にすることで図１５のグラフが作成される。
【００７５】
図１５に示すグラフより、ＲＯＭが活性状態である間にＲＴＬシミュレーションに対してＴＬシミュレーションは +20.832 nsの誤差が生じ、ＳＤＲＡＭが活性状態である間に -10.416 nsの誤差が生じることが読み取れる。
【００７６】
図１６は、ハードウェアイベント解析ファイル１３００から、ＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。尚、累積誤差のグラフを作成する処理は、第１の実施形態と同様で、モジュール毎に活性状態もしくは不活性状態を表すグラフを作成する手順も同様であるため、説明は省略する。
【００７７】
図１６に示すグラフより、ＲＯＭが活性状態である間にＴＬシミュレーションに対してＲＴＬシミュレーションは -20.832 nsの誤差が生じ、ＳＤＲＡＭが活性状態である間に +10.416 nsの誤差が生じることが読み取れる。
【００７８】
第２の実施形態では、これまでモジュールの活性状態もしくは不活性状態を表すグラフを累積誤差グラフとは別に作成していた。しかし、各モジュールの活性状態時に累積誤差グラフを色付けすることで、累積誤差とモジュールの状態を同時にグラフ表示することも可能である。
【００７９】
図１７は、ＲＴＬシミュレーション結果を基準にし、これまでの説明と同様の手順で、各モジュールの活性状態時にグラフを色付けした場合のグラフを示す図である。図１７において、赤色はＲＯＭが活性状態であることを表し、青色はＳＤＲＡＭが活性状態であることを表す。
【００８０】
第２の実施形態によれば、グラフと共に各モジュールの活性状態情報を可視化したことにより、シミュレーションモデル内の誤差の原因となるモジュールを容易に発見することができる。
【００８１】
第１及び第２の実施形態では、ＲＴＬシミュレーションモデルとＴＬシミュレーションモデルを例に挙げて説明したが、本発明はこれに限らず、他の抽象レベルの異なる２つのシミュレーションモデルに適用しても良い。
【００８２】
また、ＲＴＬシミュレーション結果ファイル１０３及びＴＬシミュレーション結果ファイル１０４は、必ずしも図４、図５、図１１、図１２と同じ記述形式で作成される必要はない。例えば、システムバス上の全ての信号変化とその時間が記述されている場合でも、シミュレーション結果解析部１０５が対象となるハードウェアイベントの発生時間の抽出を行うことは容易であるため、本発明を適用することができる。
【００８３】
更に、シミュレーション結果解析部１０５が図６、図１３に示すハードウェアイベント解析ファイルを作成しなくても、本発明を適用可能である。その場合、ＲＴＬシミュレーションとＴＬシミュレーション中で発生する比較対象となるハードウェアイベントの発生時間が把握できれば良い。これにより、表示制御部１０６が容易にグラフを作成することができる。
【００８４】
尚、本発明は複数の機器（例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【００８５】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００８６】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００８７】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００８８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【００８９】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９０】
【図１】第１の実施形態におけるシミュレーション結果比較表示装置の構成の一例を示す図である。
【図２】ＲＴＬシミュレーションモデルの構成の一例を示すブロック図である。
【図３】ＴＬシミュレーションモデルの構成の一例を示すブロック図である。
【図４】第１の実施形態におけるＲＴＬシミュレーション結果ファイル１０３の一例を示す図である。
【図５】第１の実施形態におけるＴＬシミュレーション結果ファイル１０４の一例を示す図である。
【図６】第１の実施形態におけるハードウェアイベント解析ファイルの一例を示す図である。
【図７】第１の実施形態における表示制御部１０６の処理手順を示すフローチャートである。
【図８】ハードウェアイベント解析ファイル６００から、ＲＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。
【図９】ハードウェアイベント解析ファイル６００から、ＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。
【図１０】ハードウェアイベント解析ファイル６００の全てのハードウェアイベントに対して、図８に示すグラフと同様に、ＲＴＬシミュレーション結果を基準として作成したグラフを示す図である。
【図１１】第２の実施形態におけるＲＴＬシミュレーション結果ファイルの一例を示す図である。
【図１２】第２の実施形態におけるＴＬシミュレーション結果ファイルの一例を示す図である。
【図１３】第２の実施形態におけるハードウェアイベント解析ファイルの一例を示す図である。
【図１４】第２の実施形態における表示制御部１０６の処理手順を示すフローチャートである。
【図１５】ハードウェアイベント解析ファイル１３００から、ＲＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。
【図１６】ハードウェアイベント解析ファイル１３００から、ＴＬシミュレーション結果を基準に選択した場合に作成されるグラフを示す図である。
【図１７】ＲＴＬシミュレーション結果を基準にし、これまでの説明と同様の手順で、各モジュールの活性状態時にグラフを色付けした場合のグラフを示す図である。
【符号の説明】
【００９１】
１０１  ＲＴＬシミュレータ
１０２  ＴＬシミュレータ
１０３  ＲＴＬシミュレーション結果ファイル
１０４  ＴＬシミュレーション結果ファイル
１０５  シミュレーション結果解析部
１０６  表示制御部
１０７  表示部
２０１  ＣＰＵ
２０２  アービタ
２０３  デコーダ
２０４  システムバス
２０５  ＲＯＭコントローラ
２０６  ＲＯＭ
２０７  ＳＤＲＡＭコントローラ
２０８  ＳＤＲＡＭ
２４１  モニタ
３０１  ＣＰＵ
３０２  システムバス
３０３  ＲＯＭ
３０４  ＳＤＲＡＭ
３２１  モニタ
３３１  ＲＯＭレイテンシ設定部
３３２  ＲＯＭデータ格納部
３４１  ＳＤＲＡＭレイテンシ設定部
３４２  ＳＤＲＡＭデータ格納部
【図１】
2007207119.tif 000003
【図２】
2007207119.tif 000004
【図３】
2007207119.tif 000005
【図４】
2007207119.tif 000006
【図５】
2007207119.tif 000007
【図６】
2007207119.tif 000008
【図７】
2007207119.tif 000009
【図８】
2007207119.tif 000010
【図９】
2007207119.tif 000011
【図１０】
2007207119.tif 000012
【図１１】
2007207119.tif 000013
【図１２】
2007207119.tif 000014
【図１３】
2007207119.tif 000015
【図１４】
2007207119.tif 000016
【図１５】
2007207119.tif 000017
【図１６】
2007207119.tif 000018
【図１７】
2007207119.tif 000019