(57)【要約】【課題】  トランザクションレベルのシミュレーションにおいて、デバッグ機構や監視機構への指示命令をトランザクションに含むことによりシミュレーションを効率的に行う。【解決手段】  システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信し、そのトランザクションを送信する。そして、ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時のデバッグ機構への指示命令を含む。【選択図】      図７
2006079464.tif 000002
【特許請求の範囲】
【請求項１】
システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、
ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する受信手段と、
前記トランザクションを送信する送信手段とを備え、
前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時のデバッグ機構への指示命令を含むことを特徴とするシミュレーション装置。
【請求項２】
前記指示命令は、少なくともシミュレーションの実行を中断する命令及び該中断の条件であることを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
前記ハードウェアにマッピングしないアトリビュート情報に、前記指示命令を実行する装置名称を含み、当該装置名称の装置がシミュレーション実行時のデバッグ機構への指示命令を行うことを特徴とする請求項１記載のシミュレーション装置。
【請求項４】
システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、
ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する受信手段と、
前記トランザクションを送信する送信手段とを備え、
前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時の監視機構への指示命令を含むことを特徴とするシミュレーション装置。
【請求項５】
前記指示命令は、少なくともアドレスデコードエラーに関する命令であることを特徴とする請求項４記載のシミュレーション装置。
【請求項６】
前記指示命令は、少なくともデータリードエラーに関する命令であることを特徴とする請求項４記載のシミュレーション装置。
【請求項７】
システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置のシミュレーション方法であって、
ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する工程と、
前記トランザクションを送信する工程とを有し、
前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時のデバッグ機構への指示命令を含むことを特徴とするシミュレーション方法。
【請求項８】
システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置のシミュレーション方法であって、
ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する工程と、
前記トランザクションを送信する工程とを有し、
前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時の監視機構への指示命令を含むことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路から構成されるハードウェアシステムを、システム記述言語により高速シミュレーション可能なモデルとして高い抽象度で記述されたシミュレーション装置に関するものである。
【背景技術】
【０００２】
プロセス技術の進歩によりＬＳＩの集積度が増大し、これまではボードで実現していたシステムをシステムＬＳＩとして１チップ上に搭載することが可能となっている。また、チップ上に搭載する機能モジュールも多様化し、回路規模も増大している。これに伴い、システムＬＳＩを効率的に設計するための手法として、従来のVerilog-HDLやVHDLといったハードウェア記述言語を使用した設計から、SystemCやSpecCといったシステム記述言語による設計が普及してきている。
【０００３】
システム記述言語による設計支援ツールとしては、Synopsys社のCoCentricやCoWare社のConvergenSCが知られている。そして、システム記述言語により記述したモジュールをブロック図入力画面で入力し、システムＬＳＩの設計を行うことが可能になっている。
【０００４】
このシステムＬＳＩの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行い、設計したシステムＬＳＩの機能や性能を確認することができる。即ち、実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避している。
【０００５】
上述のシステム記述言語によるモジュール記述には、記述の抽象度により以下の３種類の記述レベルが一般に知られている。
【０００６】
トランザクションレベル（TL）：
モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始及び終了の時間、通信データにより動作するため、クロックに対する精度は低い。イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。
【０００７】
ARM社による定義では、更に細かく分類されておりPV（プログラマーズビュー）、PVT（プログラマーズビュー＋タイミング）、CL（サイクルレベル）に相当する。
【０００８】
バスサイクルアキュレート（BCA）：
モジュールの入力及び出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対して、入力及び出力部で正確にシミュレートすることができる。
【０００９】
ARM社による定義では、CC（サイクルコーラブル）に相当する。
【００１０】
レジスタトランスファレベル（RTL）：
レジスタファイル間の同期転送を捉えて回路を記述する抽象度レベルである。動作クロックに対して、正確に機能動作をシミュレートすることができ、精度が非常に高い。１クロック毎に機能をシミュレートするため、シミュレーション速度は非常に遅い。
【００１１】
ARM社による定義ではRT（RTLイベントドリブン）に相当する。
【００１２】
一般的に、抽象度が高いほどシミュレーション速度は速くなり、また抽象度が低いほどシミュレーション精度は高くなる。
【００１３】
システムのシミュレーションを行うためのシミュレーションモデルは、トランザクションレベルにより記述される。
【００１４】
トランザクションレベルによるシミュレーションモデルとして、ARM社により公開されているAMBAバスモデルが広く知られている（AMBA AHB Cycle Level Interface (AHB CLI) Specification, 2003年7月15日公開）。
【００１５】
図１は、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日公開
【発明の開示】
【発明が解決しようとする課題】
【００２８】
しかしながら、上記従来の技術では、システムや各モジュールの検証を行うために、各トランザクションを監視するためのモニタを別途作成する必要があった。一般的に、より低い抽象度であるRTLにおいても、検証用にモニタを作成する必要があり、モニタ開発が二度手間になるという問題があった。
【００２９】
また、一般的に、モニタはそれ自体が一つのモジュールとして実装されるが、モニタの対象とする情報の解析に機能モジュールのみが保持している情報を必要とする場合がある。例えば、バスモデルは内部にアドレスデコーダの機能が含まれるが、アドレスマップの情報は外側からトランザクションを観測しても取得することはできない。このような場合には、機能モジュールとモニタとの間で情報の共有を必要とし、このようなモニタを実装することは非常に手間がかかる。
【００３０】
また、トランザクションレベルでは、各モジュールのメソッドと呼ばれる関数を呼び出すことにより行われるため、容易にモニタを作成することはできなかった。AHB CLIでは、モニタのためのメソッドが用意されているが、モニタ用のメソッドが用意されていないことが殆どである。
【００３１】
また、AHB CLIにあるように検証用のメソッドが定義されていることもあるが、実際のハードウェア動作のシミュレーションを実行している間に、シミュレーション結果に影響を及ぼさないように、メソッドを呼び出す必要があり、これらのメソッドを使用して検証を行うのは手間がかかるものであった。
【００３２】
また、メソッドを多用して検証を行うことは、シミュレーション時のイベントの増加を招き、シミュレーション速度への影響が大きくなり、結果としてシミュレーション速度を低下させるものであった。
【００３３】
一方、システムや各モジュールの検証にメソッドを使わない方法として、各モジュールのトランザクション情報を波形としてダンプし、その波形を観測する方法が知られているが、システムの膨大なシミュレーション結果を波形により検証していくのはほぼ不可能に近い状況であった。また、波形情報をファイルに保持していくためには、膨大なディスク容量を必要とし、充分な時間シミュレーションを実行させることが困難であるという問題もあった。
【００３４】
近年のシステムＬＤＩの大規模化、高機能化により、システム内部に存在する機能モジュール数、バスの本数は増大している。このような複雑なシステムを性能解析及び検証していくのには、上で挙げた従来の手法では非常に困難である。
【００３５】
本発明は、トランザクションレベルのシミュレーションにおいて、デバッグ機構や監視機構への指示命令をトランザクションに含むことによりシミュレーションを効率的に行うことを目的とする。
【００３６】
また、本発明は、トランザクションレベルのシミュレーションにおいて、大規模、且つ複雑なシステムに対応でき、性能解析及び検証を容易に行うことを目的とする。
【課題を解決するための手段】
【００３７】
本発明は、システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する受信手段と、前記トランザクションを送信する送信手段とを備え、前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時のデバッグ機構への指示命令を含むことを特徴とする。
【００３８】
また、本発明は、システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置であって、ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する受信手段と、前記トランザクションを送信する送信手段とを備え、前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時の監視機構への指示命令を含むことを特徴とする。
【００３９】
更に、本発明は、システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置のシミュレーション方法であって、ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する工程と、前記トランザクションを送信する工程とを有し、前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時のデバッグ機構への指示命令を含むことを特徴とする。
【００４０】
更に、本発明は、システム記述言語によりバス上の通信をトランザクションにより行うトランザクションレベルで記述されたシミュレーション装置のシミュレーション方法であって、ハードウェアにマッピングする情報であるか否かを示す情報と、ハードウェアにマッピングしないアトリビュート情報を含むトランザクションを受信する工程と、前記トランザクションを送信する工程とを有し、前記ハードウェアにマッピングしないアトリビュート情報に、シミュレーション実行時の監視機構への指示命令を含むことを特徴とする。
【発明の効果】
【００４１】
本発明によれば、トランザクションレベルのシミュレーションにおいて、デバッグ機構や監視機構への指示命令をトランザクションに含むことにより、シミュレーションを効率的に行うことができる。
【発明を実施するための最良の形態】
【００４２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【実施例１】
【００４３】
実施例１では、トランザクションに、ハードウェアにマッピングしないアトリビュート情報としてシミュレーション実行時のデバッグ機構への指示命令（ブレーク指示）を付加するものである。
【００４４】
図７は、実施例１におけるシミュレーションモデルで使用するトランザクションの構成の一例を示す図である。図７において、７００はアドレストランザクションであり、バスにより通信され、マスタもしくはバスからスレーブに対するアクセス要求に相当するトランザクションである。このアドレストランザクション７００において、７０１〜７０３はハードウェアであるバス信号にマッピングされないアトリビュート情報であり、実施例１では以下の情報が保持される。
【００４５】
即ち、指示命令を受信し、デバッグ機構への指示命令の発行を行う機能モジュール名称である指示命令送信先モデル名称７０１、シミュレーションの実行中断を要求するか否かの情報であるブレーク指示オン／オフ７０２、及びシミュレーションの実行中断を指示する際の条件に関する情報であるブレーク条件７０３が保持される。
【００４６】
７０４〜７０８はハードウェアであるバス信号にマッピングされるアトリビュート情報である。アトリビュート情報７０４〜７０８はバスのプロトコルに依存するものであり、バスの種類によってアドレストランザクション７００に含まれるアトリビュート情報も異なってくる。
【００４７】
７０９はハードウェアマッピングフラグであり、アトリビュート情報７０１〜７０８がハードウェアであるバス信号にマッピングされるか否かを示すフラグである。実施例１では、ハードウェアマッピングフラグ７０９において、黒丸で示されるものがハードウェアにマッピングされることを、黒丸が無いものがハードウェアにマッピングされないことを示している。
【００４８】
７１０はリードデータトランザクションであり、バスにより通信され、マスタもしくはバスからのリードアクセス要求に対するリードデータに相当するトランザクションである。このリードデータトランザクション７１０において、７１１〜７１３は上述した７０１〜７０３に対応するアトリビュート情報である。７１４はハードウェアであるバス信号にマッピングされるアトリビュート情報である。７１９は上述した７０９に対応するハードウェアマッピングフラグである。
【００４９】
図８は、実施例１におけるシミュレーションモデルのシステム構成の一例を示す図である。図８において、８０１はクロック生成器であり、システムの各機能モジュール（後述する第１のマスタ、第２のマスタ、第１のスレーブ、第２のスレーブ、ブリッジなど）に対してクロックを供給する。８１１、８１２は対象とするシステムを構成する第１、第２のバスであり、バスに対してマスタとして接続する機能モジュールからのトランザクションを受信し、バスのアービトレーション、アドレスデコードを行い、アービトレーションによって選択された機能モジュールのトランザクションを、バスに対してスレーブとして接続する機能モジュールに対して中継する。
【００５０】
８０２はシステムを構成する機能モジュールの１つである第１のマスタであり、第１のバス８１１に対してマスタとして接続し、第１のバス８１１に対してトランザクションを発行又はスレーブからのトランザクションを受信する。
【００５１】
８０３はシステムを構成する機能モジュールの１つである第２のマスタであり、第２のバス８１２に対してマスタとして接続し、第２のバス８１２に対してトランザクションを発行又はスレーブからのトランザクションを受信する。
【００５２】
８０５はシステムを構成する機能モジュールの１つである第１のスレーブであり、第１のバス８１１に対してスレーブとして接続し、第１のバス８１１からトランザクションを受信又はマスタからのリードに相当するトランザクションに対してはリードデータに相当するトランザクションを発行する。
【００５３】
８０６はシステムを構成する機能モジュールの１つである第２のスレーブであり、第２のバス８１２に対してスレーブとして接続し、第２のバス８１２からトランザクションを受信又はマスタからのリードに相当するトランザクションに対してはリードデータに相当するトランザクションを発行する。
【００５４】
８０８はシステムを構成する機能モジュールの１つである第１のブリッジであり、第１のバス８１１に対してスレーブとして接続し、第２のバス８１２に対してはマスタとして接続している。そして、第１のバス８１１から受信したトランザクションを、第２のバス８１２に適合したトランザクション形式として第２のバス８１２に対して発行する。また第２のバス８１２から受信したリードデータに相当するトランザクションを、第１のバス８１１に適合したトランザクション形式として第１のバス８１１に対して発行する。
【００５５】
８１４はトランザクションにより通信を行うポートであり、第１のマスタ８０２、第２のマスタ８０３、第１のスレーブ８０５、第２のスレーブ８０６、第１のブリッジ８０８、第１のバス８１１、及び第２のバス８１２に存在する。
【００５６】
８１５はクロック生成器８０１からのクロックを受信するポートであり、第１のマスタ８０２、第２のマスタ８０３、第１のスレーブ８０５、第２のスレーブ８０６、及び第１のブリッジ８０８に存在する。
【００５７】
［データ書き込み］
以上の構成において、まず、第１のマスタ８０２が第１のブリッジ８０８を介して第２のスレーブ８０６に対してライト要求のトランザクションの転送を行い、第２のスレーブ８０６がシミュレーションの実行中断をデバッグ機構に指示するか否かを決定する場合の処理について説明する。
【００５８】
図９は、トランザクションを受け取った機能モジュールがシミュレーションの実行中断を指示するか否かを決定する処理を示すフローチャートである。
【００５９】
シミュレーションが開始されると、第１のマスタ８０２が、第１のバス８１１に対してトランザクションを発行できる状態であれば、アドレストランザクション７００の発行を行う。第１のマスタ８０２は、アドレストランザクション７００におけるハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値を以下のように設定する。
【００６０】
transaction.read_write.value    = WRITE;
transaction.address.value       = 0x08000000;
transaction.write_data.value[0] = 0x76543210;
transaction.byte_enable.value   = 0xf;
transaction.burst_length.value  = 1;
また、第１のマスタ８０２はアドレストランザクション７００におけるハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を以下のように設定する。
【００６１】
transaction.dest_model_name.value  = SLAVE2;
transaction.break.value            = ON;
transaction.break_condition.value  = NULL;
即ち、実施例１では、指示命令送信先モデル名称７０１に第２のスレーブ８０６を設定し、ブレーク指示オン／オフ７０２にオンを設定し、ブレーク条件７０３にヌル（NULL）を設定する。
【００６２】
尚、アドレストランザクション７００におけるハードウェアマッピングフラグ７０９は読み出し専用情報として以下に示す値が予め保持されており、第１のマスタ８０２が変更することはできない。
【００６３】
transaction.read_write.hw_flag      == true
transaction.address.hw_flag         == true
transaction.write_data.hw_flag      == true
transaction.byte_enable.hw_flag     == true
transaction.burst_length.hw_flag    == true
transaction.dest_model_name.hw_flag == false
transaction.break.hw_flag           == false
transaction.break_condition.hw_flag == false
第１のマスタ８０２は、ハードウェアにマッピングされるアトリビュート情報７０４〜７０８と、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３の設定を行うと、第１のバス８１１に対してアドレストランザクション７００を発行する。
【００６４】
これにより、第１のバス８１１は第１のマスタ８０２からのアドレストランザクション７００を受け取り、アドレストランザクション７００におけるハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値とハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を読み出す。
【００６５】
そして、第１のバス８１１はハードウェアにマッピングされるアトリビュート情報７０４〜７０８のうちアドレス７０５の値をデコードし、第１のブリッジ８０８に対して第１のマスタ８０２からのアドレストランザクション７００を中継する。
【００６６】
一方、第１のブリッジ８０８では、第１のバス８１１からのトランザクションを受け取り可能な状態であればアドレストランザクション７００を受け取り、そのアドレストランザクション７００におけるハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値と、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を読み出す（Ｓ９０１）。
【００６７】
ここで、第１のブリッジ８０８は、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３のうち、デバッグ機構への指示命令の発行を行う機能モジュール名称７０１と第１のブリッジ８０８自身のモデル名称とを比較する（Ｓ９０２）。ここでは、今回受け取ったアドレストランザクション７００において、デバッグ機構への指示命令の発行を行う機能モジュール名称７０１が“SLAVE2”と設定され、第１のブリッジ８０８自身のモデル名称が“BRIDGE1”のため、比較の結果は不一致となり（Ｓ９０２のＮＯ）、デバッグに関する処理は行わない。
【００６８】
そして、第１のブリッジ８０８は、第２のバス８１２に対してトランザクションを発行できる状態であれば、受け取ったアドレストランザクション７００を第２のバス８１２に対して発行する。
【００６９】
第２のバス８１２がバスアービトレーションを開始し、第１のブリッジ８０８に対してバス権を与えると、第１のブリッジ８０８からのアドレストランザクション７００を受け取り、アドレストランザクション７００におけるハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値と、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を読み出す。
【００７０】
次に、第２のバス８１２はハードウェアにマッピングされるアトリビュート情報７０４〜７０８のうちアドレス７０５の値をデコードし、第２のスレーブ８０６に対して第１のブリッジ８０８からのアドレストランザクション７００を中継する。
【００７１】
一方、第２のスレーブ８０６では、第２のバス８１２からのトランザクションを受け取り可能な状態であればアドレストランザクション７００を受け取り、そのアドレストランザクション７００におけるハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値と、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を読み出す（Ｓ９０１）。
【００７２】
ここで、第２のスレーブ８０６は、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３のうち、デバッグ機構への指示命令の発行を行う機能モジュール名称７０１と第２のスレーブ８０６自身のモデル名称とを比較する（Ｓ９０２）。ここでは、今回受け取ったアドレストランザクション７００において、デバッグ機構への指示命令の発行を行う機能モジュール名称７０１が“SLAVE2”と設定され、第２のスレーブ８０６自身のモデル名称が“SLAVE2”のため、比較の結果は一致となる。
【００７３】
ここで比較結果が一致すると（Ｓ９０２のＹＥＳ）、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３のうち、シミュレーションの実行中断を要求するか否かの情報７０２を判定する（Ｓ９０３）。ここでは、今回受け取ったアドレストランザクション７００において、シミュレーションの実行中断を要求するか否かの情報７０２が“オン”と設定されているので、シミュレーションの実行中断の要求があると判定する。
【００７４】
次に、シミュレーションの実行中断の要求があると判定した場合（Ｓ９０３のＹＥＳ）、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３のうち、シミュレーションの実行中断を指示する際の条件に関する情報７０３の確認を行う。ここでは、今回受け取ったアドレストランザクション７００において、シミュレーションの実行中断を指示する際の条件に関する情報７０３が“NULL”と設定されているので、シミュレーションの実行中断を指示する際の条件が特に無いことを確認し、シミュレーションの実行中断の指示をシミュレータに対して行う（Ｓ９０４）。
【００７５】
尚、シミュレーションの実行中断を指示する際の条件に関する情報７０３には、様々な条件を設定することができ、例えばそのトランザクションが到達する時間に着目し、ある時間よりも到達した時間が遅い場合、シミュレーションの実行中断を指示する、
transaction.break_condition.value  = sim_time ＞ 2000;
や、第２のスレーブ８０６の状態に着目し、あるアドレスへのデータの書き込みが２度目以降であったらシミュレーションの実行を中断する、
transaction.break_condition.value  = data_exists(address);
といった条件を設定することが考えられる。
【００７６】
尚、トランザクションの到達時間は、例えば第１のマスタ８０２から第１のスレーブ８０５へ転送する場合などは第１のマスタ８０２が容易に予測することができるが、第１のマスタ８０２から第１のブリッジ８０８を介して第２のスレーブ８０６に転送を行う場合などは第２のマスタ８０３からの転送要求との関連で予測することが難しいため、所定の転送が到達した際の時間によりシミュレーションの実行を中断するか否かを判定するのが効果的である。
【００７７】
また、第１のマスタ８０２から第２のスレーブ８０６へデータを転送した後に、第２のマスタ８０３から第２のスレーブ８０６へ転送されたデータを上書きしないか否かを判定する場合など、あるモデル名称のアドレスへのデータの書き込みが２度目以降である場合に、シミュレーションの実行を中断するか否かを判定するのが効果的である。
【００７８】
そして、第２のスレーブ８０６は、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３のうち、デバッグ機構への指示命令の発行を行う機能モジュール名称７０１と第２のスレーブ８０６自身のモデル名称との比較が一致しなかった場合、もしくはシミュレーションの実行中断から復帰した場合、ハードウェアにマッピングされるアトリビュート情報のアドレス７０５、ライトデータ７０６、バイトイネーブル７０７、バースト長７０８に従って該当するアドレスへデータを書き込む。
【００７９】
このように、アドレストランザクション７００を受け取った機能モジュールが、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３によりシミュレーションの実行中断を指示するか否かを決定し、デバッグ機構へ指示することができる。
【００８０】
［データ読み出し］
次に、第１のマスタ８０２が第１のブリッジ８０８を介して第２のスレーブ８０６に対してリード要求のトランザクションの転送を行い、第１のマスタ８０２に転送されるべきリードデータトランザクション７１０が間違えて第２のマスタ８０３に転送され、第２のマスタ８０３にてシミュレーションの実行中断が発行される場合について説明する。
【００８１】
上述したライトの場合のトランザクションと同様に、シミュレーションが開始されると、第１のマスタ８０２が第１のバス８１１に対してトランザクションを発行できる状態であればアドレストランザクション７００の発行を行う。ここで、第１のマスタ８０２は、そのアドレストランザクション７００のハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値を以下のように設定する。
【００８２】
transaction.read_write.value    = READ;
transaction.address.value       = 0x08000000;
transaction.write_data.value    = 
transaction.byte_enable.value   = 0xf;
transaction.burst_length.value  = 1;
ここでは、read_write７０４の値にリードを設定し、write_data７０６の値は不定とし、他は上述したライトの場合のトランザクションと同じ値を設定するものとする。
【００８３】
また、第１のマスタ８０２はアドレストランザクション７００におけるハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を以下のように設定する。
【００８４】
transaction.dest_model_name.value  = NULL;
transaction.break.value            = OFF;
transaction.break_condition.value  = NULL;
ここでは、デバッグ機構への指示命令に関する設定は、全て“無効”の設定を行うこととする。
【００８５】
第１のマスタ８０２は、ハードウェアにマッピングされるアトリビュート情報７０４〜７０８と、ハードウェアにマッピングされないアトリビュート情報７０１〜７０３の設定を行うと、上述したライトの場合のトランザクションと同様に、第１のバス８１１に対してアドレストランザクション７００を発行する。そして、第１のブリッジ８０８、第２のバス８１２を介して第２のスレーブ８０６にアドレストランザクション７００を転送する。ここでは、デバッグ機構への指示命令に関する設定は全て無効になっているので、このトランザクションによるシミュレーションの実行中断は発生しない。
【００８６】
次に、第２のスレーブ８０６にアドレストランザクション７００が転送されると、第２のスレーブ８０６はアドレストランザクション７００のハードウェアにマッピングされるアトリビュート情報７０４〜７０８の値とハードウェアにマッピングされないアトリビュート情報７０１〜７０３の値を読み出す。
【００８７】
そして、ハードウェアにマッピングされるアトリビュート情報７０４〜７０８のうちアドレス７０５、バイトイネーブル７０７、バースト長７０８に従って該当するアドレスのデータを読み出す。
【００８８】
その後、第２のスレーブ８０６は、第２のバス８１２に対してリードデータトランザクション７１０の発行を開始する。
【００８９】
第２のスレーブ８０６は、リードデータトランザクション７１０におけるハードウェアにマッピングされるアトリビュート情報７１４の値を以下のように設定する。
【００９０】
transaction1.read_data.value[0]  = 0x76543210;
また、リードデータトランザクション７１０のハードウェアにマッピングされないアトリビュート情報７１１〜７１３の値も以下のように設定する。
【００９１】
transaction1.dest_model_name.value  = MASTER2;
transaction1.break.value            = ON;
transaction1.break_condition.value  = NULL;
尚、リードトランザクション７１０におけるハードウェアマッピングフラグ７１９は読み出し専用情報として以下に示す値が予め保持されており、第２のスレーブ２０６が変更することはできない。
【００９２】
transaction1.read_data.hw_flag      == true
transaction1.model_name.hw_flag     == false
transaction.break.hw_flag           == false
transaction.break_condition.hw_flag == false
第２のスレーブ８０６は、ハードウェアにマッピングされるアトリビュート情報７１４と、ハードウェアにマッピングされないアトリビュート情報７１１〜７１３の設定を行うと、第２のバス８１２に対してリードデータトランザクション７１０を発行する。
【００９３】
これにより、第２のバス８１２は第２のスレーブ８０６からのリードデータトランザクション７１０を受け取り、第１のブリッジ８０８にリードデータトランザクション７１０の中継を行うはずが、第２のバス８１２におけるアービトレーションの失敗などにより、リードデータトランザクション７１０が第２のマスタ８０３に転送される。
【００９４】
一方、第２のマスタ８０３は、第２のバス８１２からのリードデータトランザクション７１０を受け取り、ハードウェアにマッピングされるアトリビュート情報７１４の値と、ハードウェアにマッピングされないアトリビュート情報７１１〜７１３の値を読み出す（Ｓ９０１）。
【００９５】
ここで、第２のマスタ８０３はハードウェアにマッピングされないアトリビュート情報７１１〜７１３のうち、デバッグ機構への指示命令の発行を行う機能モジュール名称７１１と第２のマスタ８０３自身のモデル名称とを比較する（Ｓ９０２）。ここでは、今回受け取ったリードデータトランザクション７１０において、デバッグ機構への指示命令の発行を行う機能モジュール名称７１１は“MASTER2”と設定され、第２のマスタ８０３自身のモデル名称も“MASTER2”のため、比較の結果は一致となる。
【００９６】
ここで比較結果が一致すると（Ｓ９０３のＹＥＳ）、ハードウェアにマッピングされないアトリビュート情報７１１〜７１３のうち、シミュレーションの実行中断を要求するか否かの情報７１２を判定する（Ｓ９０３）。ここでは、今回受け取ったリードデータトランザクション７１０において、シミュレーションの実行中断を要求するか否かの情報７１２が“オン”と設定されているので、シミュレーションの実行中断の要求があると判定する。
【００９７】
次に、シミュレーションの実行中断の要求があると判定した場合（Ｓ９０３のＹＥＳ）、ハードウェアにマッピングされないアトリビュート情報７１１〜７１３のうち、シミュレーションの実行中断を指示する際の条件に関する情報７１３の確認を行う。ここでは、今回受け取ったリードデータトランザクション７１０において、シミュレーションの実行中断を指示する際の条件に関する情報７１３は“NULL”と設定されているので、シミュレーションの実行中断を指示する際の条件が特に無いことを確認し、シミュレーションの実行中断の指示をシミュレータに対して行う（Ｓ９０４）。
【００９８】
実施例１では、デバッグ機構への指示命令の発行を行う機能モジュール名称を１つ設定して行う形で説明を行ったが、複数の機能モジュール名称を設定するようにしても良い。また、第１のブリッジ及び第１のマスタ（BRIDGE1 and MASTER1）以外というような設定ができるようにしても良い。このような設定を行うことにより、本来転送するつもりではない機能モジュールにトランザクションが到達した際に、シミュレーションの実行中断の指示をシミュレータに対して行うことができる。
【実施例２】
【００９９】
次に、図面を参照しながら本発明にかかる実施例２について詳細に説明する。実施例２では、トランザクションに、ハードウェアにマッピングしないアトリビュート情報としてシミュレーション実行時の監視機構への指示命令を付加するものである。
【０１００】
図１０は、実施例２におけるシミュレーションモデルで使用するトランザクションの構成の一例を示す図である。図１０に示す構成は、図７に示した構成とほぼ同じであるが、リードデータトランザクション７１０におけるハードウェアであるバス信号にマッピングされるアトリビュート情報としてread error１０１５を追加したものである。またハードウェアであるバス信号にマッピングされないアトリビュート情報としてシミュレーション時の監視機能に対する設定を行う各機能モジュールの名称１００１、その機能モジュールにおける監視項目１００２、その監視項目に対する設定値１００３をトランザクションに保持するものである。
【０１０１】
また、実施例２の説明においても、実施例１の説明で用いた図８に示すシステム構成を用いる。
【０１０２】
まず、第１のマスタ８０２が第１のブリッジ８０８を介して第２のバス８１２のアドレス領域へトランザクションの転送を行う際に、第２のバス８１２が監視機構に対する設定を制御する場合について説明する。
【０１０３】
尚、トランザクションを受信した機能モジュールがハードウェアにマッピングされないアトリビュート情報１０００の監視項目１００２を実行する機能モジュールか否かの判定は、実施例１と同様に、モデル名称１００１を参照して判定するものとする。
【０１０４】
シミュレーションが開始されると、第１のマスタ８０２が、第１のバス８１１に対してトランザクションを発行できる状態であれば、アドレストランザクション１０００の発行を行う。第１のマスタ８０２は、アドレストランザクション１０００におけるハードウェアにマッピングされるアトリビュート情報１００４〜１００８の値を以下のように設定する。
【０１０５】
transaction.read_write.value   = READ;
transaction.address.value      = 0x09000000;
transaction.byte_enable.value  = 0xf;
transaction.burst_length.value = 1;
また、第１のマスタ８０２はアドレストランザクション１０００におけるハードウェアにマッピングされないアトリビュート情報１００１〜１００３の値を以下のように設定する。
【０１０６】
transaction.dest_model_name.value    = BUS2;
transaction.monitoring_item.value    = ADDRESS_ERROR;
transaction.monitoring_setting.value = BYPASS;
尚、実施例１と同様に、アドレストランザクション１０００のハードウェアマッピングフラグ１００９は読み出し専用情報として以下に示す値が予め保持されており、第１のマスタ８０２が変更することはできない。
【０１０７】
transaction.read_write.hw_flag         == true
transaction.address.hw_flag            == true
transaction.write_data.hw_flag         == true
transaction.byte_enable.hw_flag        == true
transaction.burst_length.hw_flag       == true
transaction.dest_model_name.hw_flag    == false
transaction.monitoring_item.hw_flag    == false
transaction.monitoring_setting.hw_flag == false
第１のマスタ８０２は、ハードウェアにマッピングされるアトリビュート情報１００４〜１００８と、ハードウェアにマッピングされないアトリビュート情報１００１〜１００３の設定を行うと、第１のバス８１１に対してアドレストランザクション１０００を発行する。
【０１０８】
これにより、第１のバス８１１は第１のマスタ８０２からのアドレストランザクション１０００を受け取り、アドレストランザクション１０００におけるハードウェアにマッピングされるアトリビュート情報１００４〜１００８の値と、ハードウェアにマッピングされないアトリビュート情報１００１〜１００３の値を読み出す。
【０１０９】
ここで、第１のバス８１１は、ハードウェアにマッピングされないアトリビュート情報１００１〜１００３のうち、シミュレーション時の監視機能に対する設定を行う各機能モジュールの名称１００１と第１のバス８１１自身のモデル名称とを比較する。ここでは、今回受け取ったアドレストランザクション１０００において、シミュレーション時の監視機能に対する設定を行う機能モジュール名称が“BUS2”と設定され、第１のバス８１１自身のモデル名称が“BUS1”のため、比較の結果は不一致となり、第１のバス８１１が有しているシミュレーション時の監視機能に対する設定処理は行わない。
【０１１０】
そして、第１のバス８１１はハードウェアにマッピングされるアトリビュート情報１００４〜１００８のうちアドレス１００５の値をデコードし、第１のブリッジ８０８に対して第１のマスタ８０２からのトランザクション１０００を中継する。
【０１１１】
一方、第１のブリッジ８０８では、第１のバス８１１からのアドレストランザクション１０００が受け取り可能な状態であればアドレストランザクション１０００を受け取り、そのアドレストランザクション１０００におけるハードウェアにマッピングされるアトリビュート情報１００４〜１００８の値と、ハードウェアにマッピングされないアトリビュート情報１００１〜１００３の値を読み出す。
【０１１２】
ここで、第１のブリッジ８０８は、第１のバス８１１と同様に、ハードウェアにマッピングされないアトリビュート情報１００１〜１００３のうち、シミュレーション時の監視機能に対する設定を行う各機能モジュールの名称１００１と第１のブリッジ８０８自身のモデル名称とを比較する。ここで、第１のブリッジ８０８自身のモデル名称が“BRIDGE1”のため、比較の結果は不一致となり、第１のブリッジ８０８が有しているシミュレーション時の監視機能に対する設定処理は行わない。
【０１１３】
そして、第１のブリッジ８０８は、第２のバス８１２に対してトランザクションを発行できる状態であれば、受け取ったアドレストランザクション１０００を第２のバス８１２に対する発行する。
【０１１４】
第２のバス８１２がバスアービトレーションを開始し、第１のブリッジ８０８に対してバス権を与えると、第１のブリッジ８０８からのアドレストランザクション１０００を受け取り、アドレストランザクション１０００におけるハードウェアにマッピングされるアトリビュート情報１００４〜１００８の値と、ハードウェアにマッピングされないアトリビュート情報１００１〜１００３の値を読み出す。
【０１１５】
次に、第２のバス８１２はハードウェアにマッピングされないアトリビュート情報１００１〜１００３のうちシミュレーション時の監視機能に対する設定を行う各機能モジュールの名称１００１と第２のバス８１２自身のモデル名称とを比較する。ここでは、今回受け取ったアドレストランザクション１０００において、シミュレーション時の監視機能に対する設定を行う機能モジュール名称が“BUS2”と設定され、第２のバス８１２自身のモデル名称が“BUS2”のため、比較の結果は一致となる。
【０１１６】
ここで比較結果が一致すると、次にハードウェアにマッピングされないアトリビュート情報１００１〜１００３のうち、その機能モジュールにおける監視項目とその監視項目に対する設定値を用いて、その機能モジュールにおける監視項目の設定を行う。
【０１１７】
ここで、今回受け取ったアドレストランザクション１０００において、監視項目１００２がADDRESS_ERROR、監視項目設定１００３の値がBYPASSとなっているので、第２のバス８１２が有しているアドレストランザクション時の、例えば転送先が定義されていないことにより発生する、アドレスデコードエラーに対する監視機能に対して、この転送に関しては監視処理を行わないことにするという設定を行う。
【０１１８】
ここで、第２のバス８１２はハードウェアにマッピングされるアトリビュート情報１００４〜１００８のうちアドレス１００５の値をデコードし、その結果、転送先が、例えば第２のスレーブ８０６というように正しく選択されれば、上述した実施例１と同様に第２のスレーブ８０６に対して第１のブリッジ８０８からのトランザクション１０００を中継し、第２のスレーブ８０６は第２のバス８１２に対してリードデータトランザクション１０１０の発行を行う。しかし、実施例２では、第２のバス８１２におけるアドレスのデコードの結果、転送先が定義されていないことが判明し、第２のバス８１２はアドレスデコードエラーを検知し、シミュレーションの停止を要請するということになる。
【０１１９】
しかし、第２のバス８１２に対する監視機能、ここではアドレスデコードエラーに対する監視機能をこの転送に関しては処理を行わないように設定したので、実際にはアドレスコードエラーによるシミュレーションの停止要請は発行されず、シミュレーションが継続して実行されることになる。
【０１２０】
また、ここで、第２のバス８１２は、他の第２のバスに接続するスレーブの代わりに、リードデータトランザクション１０１０を第１のブリッジ８０８に対して発行する。この時、リードデータトランザクション１０１０のハードウェアにマッピングされるアトリビュート情報１０１４、１０１５の値を以下のように設定する。
【０１２１】
transaction1.read_data.value[0]  = 0x00000000;
transaction1.read_error.value    = 0x1;
また、リードデータトランザクション１０１０のハードウェアにマッピングされないアトリビュート情報１００１〜１００３の値も以下のように設定する。
【０１２２】
transaction1.dest_model_name.value    = NULL;
transaction1.monitoring_item.value    = NULL;
transaction1.monitoring_setting.value = NULL;
このトランザクションは、第１のブリッジ８０８、第１のバス８１１を介して、第１のマスタ８０２に転送され、リード時のエラーとして伝えられる。
【０１２３】
上述の手法を用いることにより、バスの機能として実装されているデフォルトスレーブの機能など、シミュレーションの強制終了を伴うような特殊なハードウェアの状態を確認するような事項を、テストシーケンスの一部として容易に行うことができる。
【０１２４】
以上説明したように、実施例によれば、バスを介して通信されるトランザクションに、ハードウェアの信号に相当することを示すハードウェアマッピングフラグを設け、ハードウェアの信号に無関係な情報を付加できるようにし、トランザクションを発行するモジュールにおいて情報を付加し、トランザクションを受信したモジュールにおいて付加情報を利用できるようにしたため、以下のような効果が得られる。
（１）複数のバス及びブリッジを有するようなシステムのシミュレーションにおいても、シミュレーションの実行中断要求などデバッガへの指示が、実行時間による指定やプログラムのステップによる指示といった方法でなく、特定のトランザクションが特定の位置に転送されたときというような、より詳細な指示が行えるようになる。このため、シミュレーションにおけるデバッグや性能検証、機能検証作業にかかる時間を短縮することが可能である。
（２）バス及び機能モジュール内に保持されている情報を用いなければ発見できないような間違いを、バスモニタを一切使うこと無く、シミュレーション中に動的に発見することが可能である。
（３）バス及び機能モジュールに、必要な情報を取得するためのモニタ専用メソッドを用意することなく、既存のトランザクション操作メソッドを拡張することで、設計者がシミュレーション中のバス及び機能モジュール内の必要な情報を確認することが可能となる。また、これによってモニタ専用メソッドを呼ぶことによるイベントの増加、更にはシミュレーション速度の低下を避けることが可能となる。
（４）バス及び機能モジュールが、トランザクション処理と同時にその内部の情報を利用してエラーチェック等の処理を行うことができ、シミュレーション後ではなくシミュレーション中に動的にそれらの情報を設計者に通知することが可能となる。また、これによってエラー発生後の無駄なシミュレーション実行を回避し、設計時間の短縮が可能となる。
（５）バス及び機能モジュールが所持する監視機能の設定を、実行時間による指定やプログラムのステップによる指示といった方法でなく、特定のトランザクションが特定の位置に転送されたときというような、より詳細な指示が行えるようになる。このため、シミュレーションにおけるデバッグや機能検証作業にかかる時間を短縮することが可能である。
【０１２５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【０１２６】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１２７】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１２８】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１２９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３０】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１３１】
【図１】AHB CLIで定義されているバストランザクションを示す図である。
【図２】トランザクションメソッド、アトリビュート、ハードウェアの対応を示す図である。
【図３】トランザクションメソッドと信号波形の対応を示す図である。
【図４】トランザクションメソッドを用いたシミュレーションを説明するための図である。
【図５】ハードウェアコンフィギュレーションメソッドを示す図である。
【図６】検証メソッドを示す図である。
【図７】実施例１におけるシミュレーションモデルで使用するトランザクションの構成の一例を示す図である。
【図８】実施例１におけるシミュレーションモデルのシステム構成の一例を示す図である。
【図９】トランザクションを受け取った機能モジュールがシミュレーションの実行中断を指示するか否かを決定する処理を示すフローチャートである。
【図１０】実施例２におけるシミュレーションモデルで使用するトランザクションの構成の一例を示す図である。
【符号の説明】
【０１３２】
７００  アドレストランザクション
７０１  指示命令送信先モデル名称
７０２  ブレーク指示オン／オフ
７０３  ブレーク条件
７０４  リード／ライト
７０５  アドレス
７０６  ライトデータ
７０７  バイトイネーブル
７０８  バースト長
７０９  ハードウェアマッピングフラグ
７１０  リードデータトランザクション
７１１  指示命令送信先モデル名称
７１２  ブレーク指示オン／オフ
７１３  ブレーク条件
７１４  リードデータ
７１９  ハードウェアマッピングフラグ
８０１  クロック生成器
８０２  第１のマスタ
８０３  第２のマスタ
８０５  第１のスレーブ
８０６  第２のスレーブ
８０８  第１のブリッジ
８１１  第１のバス
８１２  第２のバス
８１４  トランザクションポート
８１５  信号ポート
【図１】
2006079464.tif 000003
【図２】
2006079464.tif 000004
【図３】
2006079464.tif 000005
【図４】
2006079464.tif 000006
【図５】
2006079464.tif 000007
【図６】
2006079464.tif 000008
【図７】
2006079464.tif 000009
【図８】
2006079464.tif 000010
【図９】
2006079464.tif 000011
【図１０】
2006079464.tif 000012