(57)【要約】【課題】  バス上でトランザクションの順序が入れ替わった場合に、順序の入れ替わったトランザクションを容易に確認できるようにする。【解決手段】  システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置において、バス上でトランザクションの順序が入れ替わった場合に、該順序が入れ替わったトランザクションに関する情報をハードウェアにマッピングされないアトリビュート情報としてトランザクションに設定し、設定されたハードウェアにマッピングされないアトリビュート情報を履歴情報として記録する。【選択図】      図７
2006221474.tif 000002
【特許請求の範囲】
【請求項１】
システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、
バス上でトランザクションの順序が入れ替わった場合に、該順序が入れ替わったトランザクションに関する情報をハードウェアにマッピングされないアトリビュート情報として前記トランザクションに設定する設定手段と、
前記設定された前記ハードウェアにマッピングされないアトリビュート情報を履歴情報として記録する記録手段とを有することを特徴とするシミュレーション装置。
【請求項２】
前記履歴情報は、少なくとも追い抜かれたトランザクションのＩＤ、追い抜いたトランザクションのＩＤ、追い抜かれたトランザクションの数、追い抜いたトランザクションの数、トランザクション発行時刻を含むことを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
前記履歴情報を表示手段に表示することを特徴とする請求項１記載のシミュレーション装置。
【請求項４】
システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置の履歴情報記録方法であって、
バス上でトランザクションの順序が入れ替わった場合に、該順序が入れ替わったトランザクションに関する情報をハードウェアにマッピングされないアトリビュート情報として前記トランザクションに設定する設定工程と、
前記設定された前記ハードウェアにマッピングされないアトリビュート情報を履歴情報として記録する記録工程とを有することを特徴とするシミュレーション装置の履歴情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路から構成されるハードウェアシステムを、システム記述言語により高速シミュレーション可能なモデルとして高い抽象度で記述されたシミュレーション装置に関するものである。
【背景技術】
【０００２】
プロセス技術の進歩によりＬＳＩの集積度が増大し、これまではボードで実現していたシステムをシステムＬＳＩとして１チップ上に搭載することが可能となっている。また、チップ上に搭載する機能モジュールも多様化し、回路規模も増大している。これに伴い、システムＬＳＩを効率的に設計するための手法として、従来のVerilog-HDLやVHDL（VHSIC Hardware Description Language）といったハードウェア記述言語を使用した設計から、SystemCやSpecCといったシステム記述言語による設計が普及してきている。
【０００３】
システム記述言語による設計支援ツールとしては、Synopsys社のCoCentricやCoWare社のConvergenSCが知られている。そして、システム記述言語により記述したモジュールをブロック図入力画面で入力し、システムＬＳＩの設計を行うことが可能になっている。
【０００４】
このシステムＬＳＩの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行い、設計したシステムＬＳＩの機能や性能を確認することができる。即ち、実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避している。
【０００５】
上述のシステム記述言語によるモジュール記述には、記述の抽象度により以下の３種類の記述レベルが一般に知られている。
【０００６】
トランザクションレベル（TL）：
モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
【０００７】
ARM社による定義では、更に細かく分類されておりPV（プログラマーズビュー）、PVT（プログラマーズビュー＋タイミング）、CL（サイクルレベル）に相当する。
【０００８】
バスサイクルアキュレート（BCA）：
モジュールの入力及び出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対して、入力及び出力部で正確にシミュレートすることができる。
【０００９】
ARM社による定義では、CC（サイクルコーラブル）に相当する。
【００１０】
レジスタトランスファレベル（RTL）：
レジスタファイル間の同期転送を捉えて回路を記述する抽象度レベルである。動作クロックに対して、正確に機能動作をシミュレートすることができ、精度が非常に高い。１クロック毎に機能をシミュレートするため、シミュレーション速度は非常に遅い。
【００１１】
ARM社による定義ではRT（RTLイベントドリブン）に相当する。
【００１２】
一般的に、抽象度が高いほどシミュレーション速度は速くなり、また抽象度が低いほどシミュレーション精度は高くなる。
【００１３】
システムのシミュレーションを行うためのシミュレーションモデルは、トランザクションレベルにより記述される。
【００１４】
トランザクションレベルによるシミュレーションモデルとして、ARM社により公開されているAMBAバスモデルが広く知られている（非特許文献１）。
【００１５】
図１は、AHB CLIで定義されているバストランザクションを示す図である。図１に示すトランザクションメソッドは、AMBA AHBバスプロトコルで規定されたハードウェア信号に対応させることができる。図２は、トランザクションメソッド、アトリビュート、ハードウェアの対応を示す図である。図２に示すように、アトリビュート及びメソッド自身が、少なくとも１つのハードウェア信号に対応している。これらのメソッドを使用してバスの動作をシミュレーションすることが可能である。
【００１６】
図３、図４を用いてバスの動作をシミュレーションする方法を説明する。図３は、トランザクションメソッドと信号波形の対応を示す図である。図４は、トランザクションメソッドを用いたシミュレーションを説明するための図である。
【００１７】
時刻Ｔ１において、バスマスタ１がバスへのリクエスト要求を行う。このとき、バスマスタ１はrequest()メソッドを呼び出し、バスに対して発行する。これはHBUSREQ_M1信号のアサートに相当する。また、バスはアービターに対してアービトレーションを開始させる（arbitrate()）。また、バスからマスタに対してresponse()[OKAY,READY]メソッドが発行される。これはHREADY及びHRESP信号に相当する。
【００１８】
時刻Ｔ２において、マスタ２がバスへのリクエスト要求を行う（request()）。これはHBUSREQ_M2信号のアサートに相当する。同時に、バスからマスタ１に対してグラントが与えられる（arbitrate()[grant M1]）。これはHGRANT_M1のアサートに相当する。
【００１９】
時刻Ｔ３において、マスタ１はグラントを検知（has_grant()[TRUE]）し、バスへのリクエストを取り下げる（end_request()）。これはHBUSREQ_M1信号のデアサートに相当する。また、トランザクションを開始する（set_protection()、init_transaction()）。これらはHPROTO、HTRANS、HADDR、HBURST、HWRITE、HSIZEといった信号に相当する。また同時に、バスはアドレスデコードを行い、スレーブに対してトランザクションを発行する（write()[address A1]、control_info[NONSEQ,INCR4]）。
【００２０】
時刻Ｔ４からＴ７でマスタ１は、バスに対してデータを送る（set_data()）。これはHWDATA信号に相当する。そして、バスは、スレーブに対してマスタからのデータを送付する（set_data()）。
【００２１】
時刻Ｔ６でバスはマスタ２に対してグラントを与える（arbitrate()[grant M2]）。時刻Ｔ７でマスタ２はグラントを検知し、バスアクセスを開始する。
【００２２】
このように、各トランザクションメソッドは、ハードウェア信号の挙動と同じ機能を有しており、メソッド及びアトリビュートはハードウェア信号にマッピングできるものであることがわかる。
【００２３】
AHB CLIでは、トランザクションメソッドの他にバスのコンフィギュレーションを変更するためのメソッドが用意されている。このメソッドにより、バスのアドレス幅、データ幅、アドレスマップを変更することが可能である。
【００２４】
図５は、ハードウェアコンフィギュレーションメソッドを示す図である。図５に示すようにシミュレータがシステムモデルを読み出すエラボレーション時に実行されるメソッドと、シミュレーション実行時に使用することができるメソッドとに分けられる。ここで、シミュレーション実行を行いながら、バスのコンフィギュレーションを変更するメソッドは、デコーダのinitialize_map()及びアービターのpriority()、set_default_master()である。
【００２５】
これらは、実際のハードウェアの動作に関係しており、initialize_map()はremap信号に相当し、priority()、set_dafulat_maste()はアービター内のレジスタアクセス信号に相当する。
【００２６】
また、AHB CLIには、検証目的で使用するメソッドが用意されている。ハードウェアの検証に一般的に使用されているバックドア機能に対応するメソッドである。バスのプロトコルとは無関係に、指定したアドレスのデータを直接読書きすることが可能である。
【００２７】
図６は、検証メソッドを示す図である。マスタが使用する引数はアドレス、データへのポインタ、転送サイズの３つであり、ハードウェアと関連したものである。スレーブが使用する引数は、マスタＩＤ、アドレス、データへのポインタ、転送サイズの４つであり、これらもハードウェアと関連したものである。
【００２８】
また、システムの検証には、上記のシミュレーションモデルの他に、バス上で発生する各トランザクションを監視するモニタを用意し、発生したトランザクションの情報の履歴を作成する方法が知られている。更に、バス上で発生するトランザクション情報を波形としてダンプし、観測する方法も知られている。
【非特許文献１】AMBA AHB Cycle Level Interface (AHB CLI) Specification, 2003年7月15日公開
【発明の開示】
【発明が解決しようとする課題】
【００２９】
しかしながら、上記従来の技術では、バス上でトランザクションの順序が入れ替わる、アウト・オブ・オーダーが発生した場合、システムのシミュレーションによる膨大な履歴や波形を目視で確認を行っているため、アウト・オブ・オーダーの発生個所を見つけるのが困難であった。
【００３０】
また、アウト・オブ・オーダーの発生個所を見つけた後、どのトランザクションとどのトランザクションが入れ替わっているのか確認するための作業も煩雑であった。
【００３１】
本発明は上記課題を解決するためになされたもので、バス上でトランザクションの順序が入れ替わった場合に、順序の入れ替わったトランザクションを容易に確認できるようにすることを目的とする。
【課題を解決するための手段】
【００３２】
本発明は、システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、バス上でトランザクションの順序が入れ替わった場合に、該順序が入れ替わったトランザクションに関する情報をハードウェアにマッピングされないアトリビュート情報として前記トランザクションに設定する設定手段と、前記設定された前記ハードウェアにマッピングされないアトリビュート情報を履歴情報として記録する記録手段とを有することを特徴とする。
【００３３】
また、本発明は、システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置の履歴情報記録方法であって、バス上でトランザクションの順序が入れ替わった場合に、該順序が入れ替わったトランザクションに関する情報をハードウェアにマッピングされないアトリビュート情報として前記トランザクションに設定する設定工程と、前記設定された前記ハードウェアにマッピングされないアトリビュート情報を履歴情報として記録する記録工程とを有することを特徴とする。
【発明の効果】
【００３４】
本発明によれば、バス上でトランザクションの順序が入れ替わった場合に、その順序の入れ替わったトランザクションを容易に確認することができる。
【発明を実施するための最良の形態】
【００３５】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００３６】
図７は、リードデータトランザクションの構成の一例を示す図である。図７において、７００はリードデータトランザクションであり、バスにより通信され、マスタ或いはバスからのスレーブに対するリードアクセス要求に対してリードデータを送信するトランザクションである。
【００３７】
このリードデータトランザクション７００において、７０１〜７０６はハードウェアにおける信号に置き換えられないアトリビュート情報であり、本実施形態では以下のような情報が設定される。
【００３８】
即ち、バス上で通信順序が入れ替わるアウト・オブ・オーダーの発生時に、追い抜かれたトランザクションのＩＤ７０１、追い抜いたトランザクションのＩＤ７０２、追い抜かれたトランザクションの数７０３、追い抜いたトランザクションの数７０４、アウトオブオーダー発生フラグ７０５、トランザクションが発行された時刻であるトランザクション発行時刻７０６が設定される。
【００３９】
７０７、７０８はハードウェアにおける信号に置き換えることが可能なアトリビュートであり、リードトランザクションＩＤ７０７、リードデータ７０８である。
【００４０】
７１０はアトリビュートがハードウェアにおける信号に置き換えられるアトリビュートであることを示すフラグ（ハードウェアマッピングフラグ）である。この例では、黒丸で示されるアトリビュート（７０７、７０８）がハードウェアにマッピングされることを、黒丸で示されていないアトリビュート（７０１〜７０６）がハードウェアにマッピングされないことを示している。
【００４１】
図８は、ライトデータトランザクションの構成の一例を示す図である。図８において、８００はライトデータトランザクションであり、バスにより通信され、マスタ或いはバスからのスレーブに対するライトアクセス要求に合わせてスレーブに対してライトデータを送信するトランザクションである。
【００４２】
このライトデータトランザクション８００において、８０１〜８０６はハードウェアにおける信号に置き換えられないアトリビュート情報であり、本実施形態では以下のような情報が設定される。
【００４３】
即ち、バス上で通信順序が入れ替わるアウト・オブ・オーダーの発生時に、追い抜かれたトランザクションのＩＤ８０１、追い抜いたトランザクションのＩＤ８０２、追い抜かれたトランザクションの数８０３、追い抜いたトランザクションの数８０４、アウトオブオーダー発生フラグ８０５、トランザクションが発行された時刻であるトランザクション発行時刻８０６が設定される。
【００４４】
８０７、８０８はハードウェアにおける信号に置き換えることが可能なアトリビュートであり、ライトトランザクションＩＤ８０７、ライトデータ８０８である。
【００４５】
８１０はアトリビュートがハードウェアにおける信号に置き換えられるアトリビュートであることを示すフラグ（ハードウェアマッピングフラグ）である。この例では、黒丸で示されるアトリビュート（８０７、８０８）がハードウェアにマッピングされることを、黒丸で示されていないアトリビュート（８０１〜８０６）がハードウェアにマッピングされないことを示している。
【００４６】
図９は、アドレストランザクションの構成の一例を示す図である。図９において、９００はアドレストランザクションであり、バスにより通信され、マスタ或いはバスからのスレーブに対するアクセス要求に相当するトランザクションである。
【００４７】
このアドレストランザクション９００において、９０１はハードウェアにおける信号に置き換えられないアトリビュート情報であり、本実施形態ではトランザクションの発行された時刻（トランザクション発行時刻）が設定される。
【００４８】
９０２〜９０６はハードウェアにおける信号に置き換えることが可能なアトリビュートであり、本実施形態ではアドレストランザクションＩＤ９０２、バースト長９０３、バイトイネーブル９０４、アドレス９０５、リード／ライト９０６である。
【００４９】
９１０はアトリビュートがハードウェアにおける信号に置き換えられるアトリビュートであることを示すフラグ（ハードウェアマッピングフラグ）である。この例では、黒丸で示されるアトリビュート（９０２〜９０６）がハードウェアにマッピングされることを、黒丸で示されていないアトリビュート（９０１）がハードウェアにマッピングされないことを示している。
【００５０】
図１０は、実施形態におけるシミュレーションモデルのシステム構成の一例を示す図である。図１０において、１００１はクロック生成器であり、システムの各機能モジュール（後述する第１のマスタ、第２のマスタ、第１のスレーブ、第２のスレーブ）に対して、それぞれクロックを供給する。
【００５１】
１００２は第１のマスタであり、バスに対してトランザクションを発行し、スレーブからのトランザクションを受信する。１００３は第２のマスタであり、バスに対してトランザクションを発行し、スレーブからのトランザクションを受信する。
【００５２】
１００４は第１のスレーブであり、バスからのトランザクションを受信し、リードに相当するトランザクションに対してはリードデータに相当するトランザクションを発行する。１００５は第２のスレーブであり、バスからのトランザクションを受信し、リードに相当するトランザクションに対してはリードデータに相当するトランザクションを発行する。
【００５３】
１００６はバスであり、第１のマスタ１００２又は第２のマスタ１００３からのトランザクションを受信し、バスのアービトレーション及びアドレスデコードを行い、アービトレーションにより選択された第１のマスタ１００２又は第２のマスタ１００３のトランザクションを、第１のスレーブ１００４又は第２のスレーブ１００５に対して中継する。
【００５４】
１００７はトランザクションにより通信を行うポートである。第１のマスタ１００２、第２のマスタ１００３、第１のスレーブ１００４、第２のスレーブ１００５及びバス１００６にそれぞれ存在する。１００８は信号ポートであり、クロック生成器１００１からのクロックを受信するポートである。
【００５５】
そして、１００９はバスモニタであり、バス上で発生するトランザクション情報履歴を保持し、記録する。
【００５６】
図１１は、バス１００６におけるトランザクション履歴１１０１を示す図である。バス１００６を介して通信されるトランザクションの履歴情報である。バスモニタ１００９により保持され、記録される。
【００５７】
以上の構成において、図１２を用いて第１のマスタ１００２と第２のマスタ１００３とが第１のスレーブ１００４からデータの読み出しを行う際に、第１のスレーブ１００４でリードデータのアウト・オブ・オーダーが発生した場合の処理について説明する。
【００５８】
図１２は、各機能モジュールのシミュレーションを示すフローチャートである。まず、シミュレーションが開始されると、ステップＳ１２０１において、第１のマスタ１００２がバス１００６に対してトランザクションを発行できる状態であればステップＳ１２０２へ進み、アドレストランザクションの発行を開始する。
【００５９】
このステップＳ１２０２において、第１のマスタ１００２はアドレストランザクション９００のハードウェアにマッピングされる（置き換え可能な）アトリビュート情報９０２〜９０６の値を以下のように設定する。
【００６０】
ADDRESS_TRA_ID = 0x0;
BURST_LENGTH = 0x1;
BYTE_ENABLE = 0xffff;
ADDRESS = 0xff00_0004;
W_OR_R = READ;
また、第１のマスタ１００２はアドレストランザクション９００のハードウェアにマッピングされない（置き換え不可能な）アトリビュート情報９０１にトランザクション発行時刻を以下のように設定する。
【００６１】
CURRENT_TIME = 13:13:10;
尚、ハードウェアマッピングフラグ９１０は固定情報であり、第１のマスタ１００２が変更することはできない。
【００６２】
次に、ステップＳ１２０３において、アウト・オブ・オーダーが発生しているか否かを判定する。ここで、アウト・オブ・オーダーが発生していなければステップＳ１２０５へ進むが、アウト・オブ・オーダーが発生していればステップＳ１２０４へ進み、アウト・オブ・オーダーに対するアトリビュート情報と付加情報の設定を行う。
【００６３】
尚、このアドレストランザクション９００は、リードデータトランザクション７００、ライトデータトランザクション８００と異なり、アウト・オブ・オーダーに対するアトリビュート情報を持たないので、たとえアウト・オブ・オーダーが発生していたとしても、他にアトリビュート情報を設定することはない。
【００６４】
次に、第１のマスタ１００２が上述したハードウェアに置き換え可能なアトリビュート情報９０２〜９０６とハードウェアに置き換え不可能なアトリビュート情報９０１の設定を行うと、ステップＳ１２０５へ進み、バス１００６に対してアドレストランザクション９００を発行する。
【００６５】
これにより、バス１００６がアービトレーションを開始し、第１のマスタ１００２に対してバス権を与えると、バス１００６は第１のマスタ１００２からのアドレストランザクション９００を受け取る。
【００６６】
次に、バス１００６は、そのアドレストランザクション９００のハードウェアに置き換え不可能なアトリビュート情報９０１と、ハードウェアに置き換え可能なアトリビュート情報９０２〜９０６とを読み出す。
【００６７】
そして、バス１００６は、アトリビュート情報９０２〜９０６のうち、アドレス９０５をデコードし、デコードの結果、第１のスレーブ１００４に対して第１のマスタ１００２からのトランザクション９００を中継する。
【００６８】
ここで、バスモニタ１００９がアドレストランザクション９００の内容を図１１に示すようにトランザクション履歴１１０１に追加する。
【００６９】
一方、第１のスレーブ１００４がバス１００６からのアドレストランザクション９００を受け取ると、ハードウェアに置き換え可能なアトリビュート情報９０２〜９０６に設定されている情報を読み取り、リードデータを送信できるまで保持する。
【００７０】
第１のスレーブ１００４がリードデータを第１のマスタ１００２に送信できるまで保持している状態を図１５に示す。
【００７１】
次に、第２のマスタ１００３がバス１００６に対してアドレストランザクション９００の発行を行う。尚、この処理は上述した第１のマスタ１００２からのアドレストランザクション９００の発行と同じである。
【００７２】
そして、バス１００６がアービトレーションを開始し、第２のマスタ１００３にバス権を与えると、第２のマスタ１００３からのアドレストランザクション９００を受け取る。これ以降の処理は、上述したバス１００６の動作と同じである。
【００７３】
ここで、バスモニタ１００９はトランザクション履歴１１０１に第２のマスタ１００３からのアドレストランザクション９００の情報を追加する。
【００７４】
次に、第１のスレーブ１００４がバス１００６からのアドレストランザクション９００を受け取り、ハードウェアに置き換え可能なアトリビュート情報９０２〜９０６の情報を読み取り、リードデータを送信できるまで保持する。
【００７５】
第１のスレーブ１００４がリードデータを第２のマスタ１００３に送信できるまで保持している状態を図１６に示す。
【００７６】
この状態で、第１のスレーブ１００４が第２のマスタ１００３からのリードアクセスに対してリードデータを送信できるようになると（ステップＳ１２０１のＹｅｓ）、第１のスレーブ１００４はバス１００６に対してリードデータトランザクション７００の発行を開始する。
【００７７】
まずステップＳ１２０２で、第１のスレーブ１００４はリードデータトランザクション７００のハードウェアに置き換え可能なアトリビュート情報７０８にリードデータを以下のように設定する。
【００７８】
RDATA = 0xAAAA;
ここで、第１のマスタ１００２からのリードアクセスと、第２のマスタ１００３からのリードアクセスに対して第１のスレーブ１００４は第２のマスタ１００３へリードデータを送信することにより送信順序に変更が生じたので、アウト・オブ・オーダーが発生したことになる（ステップＳ１２０３のＹｅｓ）。
【００７９】
これにより、ステップＳ１２０４において、第１のスレーブ１００４は、保持しているアドレストランザクション９００の情報からアウト・オブ・オーダーに対するアトリビュート情報を図１７に示すように作成し、保持しているアドレストランザクション９００の情報を変更する。
【００８０】
そして、第１のスレーブ１００４は、リードデータトランザクション７００のアウト・オブ・オーダーに対するアトリビュート情報７０１〜７０６の値を以下のように設定する。
【００８１】
ID_OF_TRA1 = -;
ID_OF_TRA0 = 0;
NO_OF_TRA1 = 0;
NO_OF_TRA0 = 1;
OUT_OF_ORDER = Y;
CURRENT_TIME = 13:13:30;
尚、ハードウェアマッピングフラグ７１０は固定情報であり、第１のスレーブ１００４が変更することはできない。
【００８２】
次に、第１のスレーブ１００４は、ハードウェアに置き換え可能なアトリビュート情報７０７、７０８と、アウト・オブ・オーダーに対するアトリビュート情報７０１〜７０６の設定を終了すると、ステップＳ１２０５において、バス１００６に対してリードデータトランザクション７００を発行する。
【００８３】
これにより、バス１００６が、第１のスレーブ１００４からのリードデータトランザクション７００を受け取り、第２のマスタ１００３に対して第１のスレーブ１００４からのリードデータトランザクション７００を中継する。そして、バス１００６を監視するバスモニタ１００９は、図１１に示すトランザクション履歴１１０１にリードデータトランザクション７００の情報を追加する。
【００８４】
尚、本実施形態では、同一スレーブ内においてリードデータのアウト・オブ・オーダーが発生した場合を例に説明を行ったが、同一マスタからのライトデータトランザクション８００でアウト・オブ・オーダーが発生した場合も動作は同一である。この場合、マスタでアウト・オブ・オーダーに対するアトリビュート情報８０１〜８０６が付加される。
【００８５】
また、異なるスレーブへのリードアクセスでリードデータのアウト・オブ・オーダーが発生した場合も動作は同一である。この場合は、バスにおいてアウト・オブ・オーダーに対するアトリビュート情報７０１〜７０６を付加し、マスタへのリードデータトランザクション７００に反映する。
【００８６】
上述のシミュレーションが終了すると、設計者はトランザクション履歴１１０１によりシステムが所望の動作を得られたことを確認することができる。特に、設計者は、アウト・オブ・オーダー発生フラグにより、アウト・オブ・オーダーが発生した個所を特定し、バス上で通信順序が入れ替わったトランザクションを容易に確認することができる。
【００８７】
また、トランザクション履歴１１０１をモニタに表示しながら動作の確認を行うことも可能である。
【００８８】
図１３は、トランザクション履歴表示装置の構成の一例を示す図である。また、図１４は、トランザクション履歴１１０１の波形表示の一例を示す図である。
【００８９】
図１３において、トランザクション履歴表示制御部１３０１は、トランザクション履歴データベース１３０２に格納されたトランザクション履歴１１０１を読出し、表示のための制御を行う。また、トランザクション履歴表示制御部１３０１はトランザクション履歴１１０１からトランザクションの時系列的な変化を抽出し、波形として表示を行う。
【００９０】
トランザクション履歴表示制御部１３０１は、トランザクション強調表示制御部１３１１、トランザクション選択制御部１３１２を備えている。トランザクション強調表示制御部１３１１は、波形表示されたトランザクションのうち、１つ以上のトランザクションが選択された場合に、トランザクション履歴１１０１からアウト・オブ・オーダーに対する情報を抽出する。また、トランザクション強調表示制御部１３１１は、トランザクション選択制御部１３１２により、抽出されたアウト・オブ・オーダーに対する情報から、選択されたトランザクションと通信順序が入れ替わったトランザクションの表示を強調させる。
【００９１】
ユーザインタフェース制御部１３０３は、トランザクション履歴表示制御部１３０１との間でデータの送受信を制御するインターフェースであり、出力部１３０４を介してモニタ１３０５へトランザクション履歴を波形表示し、また入力部１３０６を介して設計者からの入力を受け付ける。出力部１３０４は、モニタ１３０５へ設計情報を表示する。入力部１３０６は、設計者がキーボード１３０７及びマウス１３０８から入力した情報を受けてユーザインタフェース制御部１３０３へ送出する。
【００９２】
キーボード１３０７及びマウス１３０８は、設計者が波形表示されたトランザクション情報を確認し、複数のトランザクションから１つ以上のトランザクションを選択するために使用される。
【００９３】
トランザクション履歴データベース１３０２は、トランザクション履歴１１０１を記憶するものである。
【００９４】
図１４において、設計者が波形表示されたトランザクションのうちの１つを選択すると、トランザクション選択制御部１３１２によりトランザクション履歴１１０１から、選択されたトランザクション１４０１と通信順序が入れ替わったトランザクション１４０２が抽出される。
【００９５】
トランザクション強調表示制御部１３１１は、抽出されたトランザクション１４０１、１４０２の表示を変更し、アウト・オブ・オーダーにより通信順序が入れ替わったことを強調表示する。
【００９６】
本実施形態によれば、バスを介して通信されるトランザクションにハードウェアの信号に相当することを示すハードウェアマッピングフラグと、アウト・オブ・オーダーに対するアトリビュート情報とを設け、トランザクションを発行するモジュールにおいてアウト・オブ・オーダーに対するアトリビュート情報を生成し、バスモニタによりトランザクションの履歴を記録すると共に、画面上に表示を行い、設計者がトランザクションのうちの少なくとも１つを選択すると、該トランザクションに関連し、アウト・オブ・オーダーにより通信順序が入れ替わったトランザクションを強調して表示することで、以下のような効果がある。
（１）アウト・オブ・オーダーに対する情報をシミュレーション履歴に蓄積でき、アウト・オブ・オーダーの発生を容易に検索しやすくすることができる。従って、検証にかかる時間を短縮することができる。
（２）画面に波形表示させ、更に、設計者が選択したトランザクションに関連し、アウト・オブ・オーダーにより通信順序が入れ替わったトランザクションを強調するため、通信順序の入れ替わりを容易に視認できる。従って、検証効率を向上させることができる。
【００９７】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００９８】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００９９】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１００】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１０１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０２】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０３】
【図１】AHB CLIで定義されているバストランザクションを示す図である。
【図２】トランザクションメソッド、アトリビュート、ハードウェアの対応を示す図である。
【図３】トランザクションメソッドと信号波形の対応を示す図である。
【図４】トランザクションメソッドを用いたシミュレーションを説明するための図である。
【図５】ハードウェアコンフィギュレーションメソッドを示す図である。
【図６】検証メソッドを示す図である。
【図７】リードデータトランザクションの構成の一例を示す図である。
【図８】ライトデータトランザクションの構成の一例を示す図である。
【図９】アドレストランザクションの構成の一例を示す図である。
【図１０】実施形態におけるシミュレーションモデルのシステム構成の一例を示す図である。
【図１１】バス１００６におけるトランザクション履歴１１０１を示す図である。
【図１２】各機能モジュールのシミュレーションを示すフローチャートである。
【図１３】トランザクション履歴表示装置の構成の一例を示す図である。
【図１４】トランザクション履歴１１０１の波形表示の一例を示す図である。
【図１５】リードデータを送信できるまで保持している状態を示す図である。
【図１６】リードデータを送信できるまで保持している状態を示す図である。
【図１７】アトリビュート情報を示す図である。
【符号の説明】
【０１０４】
７００  リードデータトランザクション
７０１  追い抜かれたトランザクションのＩＤ
７０２  追い抜いたトランザクションのＩＤ
７０３  追い抜かれたトランザクションの数
７０４  追い抜いたトランザクションの数
７０５  アウトオブオーダー発生フラグ
７０６  トランザクション発行時刻
７０７  リードトランザクションＩＤ
７０８  リードデータ
７１０  ハードウェアマッピングフラグ
８００  ライトデータトランザクション
８０１  追い抜かれたトランザクションのＩＤ
８０２  追い抜いたトランザクションのＩＤ
８０３  追い抜かれたトランザクションの数
８０４  追い抜いたトランザクションの数
８０５  アウトオブオーダー発生フラグ
８０６  トランザクション発行時刻
８０７  ライトトランザクションＩＤ
８０８  ライトデータ
８１０  ハードウェアマッピングフラグ
９００  アドレストランザクション
９０１  トランザクション発行時刻
９０２  アドレストランザクションＩＤ
９０３  バースト長
９０４  バイトイネーブル
９０５  アドレス
９０６  リード／ライト
９１０  ハードウェアマッピングフラグ
１００１  クロック生成器
１００２  第１のマスタ
１００３  第２のマスタ
１００４  第１のスレーブ
１００５  第２のスレーブ
１００６  バス
１００７  トランザクションポート
１００８  信号ポート
１１０１  トランザクション履歴
【図１】
2006221474.tif 000003
【図２】
2006221474.tif 000004
【図３】
2006221474.tif 000005
【図４】
2006221474.tif 000006
【図５】
2006221474.tif 000007
【図６】
2006221474.tif 000008
【図７】
2006221474.tif 000009
【図８】
2006221474.tif 000010
【図９】
2006221474.tif 000011
【図１０】
2006221474.tif 000012
【図１１】
2006221474.tif 000013
【図１２】
2006221474.tif 000014
【図１３】
2006221474.tif 000015
【図１４】
2006221474.tif 000016
【図１５】
2006221474.tif 000017
【図１６】
2006221474.tif 000018
【図１７】
2006221474.tif 000019