(57)【要約】【課題】  検証対象のＬＳＩの動作をシミュレーションにより正しく再現する。【解決手段】  シミュレーション装置は、トランザクションの実行を指示するトランザクション要求をそれぞれ発行する複数の制御部と、トランザクション要求を調停する調停部と、調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行する処理部と、調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、次のトランザクション要求に対応する仮のトランザクション要求を発行する先行発行部とを備え、調停部は、調停により仮のトランザクション要求を選択した場合、仮のトランザクション要求が発行された後に受信する次のトランザクション要求を処理部へ出力する。【選択図】    図１
2016218677.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションの実行を指示するトランザクション要求をそれぞれ発行する複数の制御部と、
前記トランザクション要求を調停する調停部と、
前記調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行する処理部と、
前記調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、前記次のトランザクション要求に対応する仮のトランザクション要求を発行する先行発行部と
を備え、
前記調停部は、調停により前記仮のトランザクション要求を選択した場合、前記仮のトランザクション要求が発行された後に受信する前記次のトランザクション要求を前記処理部へ出力すること
を特徴とするシミュレーション装置。
【請求項２】
前記調停部は、前記トランザクション要求を調停する調停処理の完了に基づいて前記仮のトランザクション要求の発行指示を前記先行発行部に出力し、
前記先行発行部は、前記発行指示に基づいて、所定の待ち時間後に前記仮のトランザクション要求を発行すること
を特徴とする請求項１記載のシミュレーション装置。
【請求項３】
前記所定の待ち時間は、前記調停処理の完了から前記複数の制御部の各々が次のトランザクション要求を発行するまでの準備時間に対応すること
を特徴とする請求項２記載のシミュレーション装置。
【請求項４】
前記複数の制御部の各々から発行される前記トランザクション要求は、前記仮のトランザクション要求の発行を抑止する抑止情報を含み、
前記調停部は、選択したトランザクション要求が前記抑止情報を含む場合、前記発行指示の出力を抑止すること
を特徴とする請求項２または請求項３記載のシミュレーション装置。
【請求項５】
前記調停部は、前記トランザクション要求を調停する調停処理を開始してから所定時間が経過するまでに前記仮のトランザクション要求に対応するトランザクション要求を受信しない場合、前記仮のトランザクション要求を調停処理から除外すること
を特徴とする請求項１記載のシミュレーション装置。
【請求項６】
前記調停部は、前記仮のトランザクション要求が発行される前に前記処理部からトランザクションの処理結果を受信した場合、前記仮のトランザクション要求の発行を抑止させる指示を前記先行発行部に出力すること
を特徴とする請求項１ないし請求項５のいずれか１項記載のシミュレーション装置。
【請求項７】
複数の制御部、調停部、処理部、および先行発行部として機能するプロセッサを有するコンピュータによるシミュレーション方法であって、
前記複数の制御部が、トランザクションの実行を指示するトランザクション要求をそれぞれ発行し、
前記調停部が、前記トランザクション要求を調停し、
前記処理部が、前記調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行し、
前記先行発行部が、前記調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、前記次のトランザクション要求に対応する仮のトランザクション要求を発行し、
前記調停部が調停により前記仮のトランザクション要求を選択した場合、前記調停部が、前記仮のトランザクション要求が発行された後に受信する前記次のトランザクション要求を前記処理部へ出力すること
を特徴とするシミュレーション方法。
【請求項８】
複数の制御部、調停部、処理部、および先行発行部としてコンピュータを機能させるシミュレーションプログラムであって、
前記複数の制御部に、トランザクションの実行を指示するトランザクション要求をそれぞれ発行させ、
前記調停部に、前記トランザクション要求を調停させ、
前記処理部に、前記調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行させ、
前記先行発行部に、前記調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、前記次のトランザクション要求に対応する仮のトランザクション要求を発行させ、
前記調停部が調停により前記仮のトランザクション要求を選択した場合、前記調停部に、前記仮のトランザクション要求が発行された後に受信する前記次のトランザクション要求を前記処理部へ出力させる
処理をコンピュータに実行させることを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムに関する。
【背景技術】
【０００２】
ＴＬＭ（Transaction Level Modeling）は、システムＬＳＩ（Large Scale Integration）等に搭載されるシステムの動作を検証するシミュレーション装置に採用されている。ＴＬＭにおけるＬＴ（Loosely-timed）モデル（高速モード）は、ＴＬＭにおけるＡＴ（Approximately-timed）モデル（高精細モード）に比べて、抽象度が高く処理速度が速い。高速モードと高精細モードとを切り替えて、高速モードによる高速な検証と高精細モードによる詳細な検証とを併用することで、所定の精度を保ちながらシミュレーションの高速化を図るシミュレーション装置が提案されている（例えば、特許文献１参照）。この種のシミュレーション装置では、高精度モードから高速モードに切り替えられた場合、高精度モードで受け付け済みのトランザクションを、高速モードで新たに受け付けるトランザクションよりも優先的に実行することで、誤動作が抑止される。
【０００３】
プロセッサに接続されるバスの動作をシミュレーションするバスシミュレータでは、バスに発行される複数のトランザクションをテーブルに記録し、記録したトランザクションのいずれかを選択することで、バスの調停が実行される（例えば、特許文献２参照）。
【０００４】
ＬＴモデルを採用したシミュレーション装置では、バスマスタは、バススレーブが実行したトランザクションの結果を受信した後、予め設定された時間後に次のトランザクション要求を調停部に発行する。例えば、バススレーブによるトランザクションの処理時間に基づいて、バスマスタが次のトランザクション要求を発行するまでの時間間隔を調停部に算出させ、バスマスタに通知することで、トランザクション要求の発行間隔は短くなる（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１９６２４５号公報
【特許文献２】特開２００３−１５９６８号公報
【特許文献３】特開２０１４−２４１０１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
トランザクションの処理時間がトランザクション要求の発行間隔より長いと、調停部が算出した時間間隔は負値になる場合がある。時間間隔の負値は、検証対象のＬＳＩのバスマスタが、バススレーブによるトランザクションの実行中に次のトランザクション要求を発行する動作に対応する。時間間隔が負値の場合、シミュレーション装置上のバスマスタは、時間を遡ってトランザクション要求を発行することが困難であるため、トランザクションの処理結果を受信した次のサイクルで次のトランザクション要求を発行する。一方、調停部は、バススレーブから転送されるトランザクションの処理結果をバスマスタに転送したことに基づいて、次のトランザクション要求の調停処理を開始するため、バスマスタからの次のトランザクション要求は、調停処理に間に合わない。したがって、トランザクションの処理時間がトランザクション要求の発行間隔より長い場合、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することは困難である。
【０００７】
１つの側面では、本件開示のシミュレーション装置、シミュレーション方法およびシミュレーションプログラムは、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することを目的とする。
【課題を解決するための手段】
【０００８】
一つの観点によれば、シミュレーション装置は、トランザクションの実行を指示するトランザクション要求をそれぞれ発行する複数の制御部と、トランザクション要求を調停する調停部と、調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行する処理部と、調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、次のトランザクション要求に対応する仮のトランザクション要求を発行する先行発行部とを備え、調停部は、調停により仮のトランザクション要求を選択した場合、仮のトランザクション要求が発行された後に受信する次のトランザクション要求を処理部へ出力する。
【０００９】
別の観点によれば、複数の制御部、調停部、処理部、および先行発行部として機能するプロセッサを有するコンピュータによるシミュレーション方法は、複数の制御部が、トランザクションの実行を指示するトランザクション要求をそれぞれ発行し、調停部が、トランザクション要求を調停し、処理部が、調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行し、先行発行部が、調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、次のトランザクション要求に対応する仮のトランザクション要求を発行し、調停部が調停により仮のトランザクション要求を選択した場合、調停部が、仮のトランザクション要求が発行された後に受信する次のトランザクション要求を処理部へ出力する。
【００１０】
さらなる別の観点によれば、複数の制御部、調停部、処理部、および先行発行部としてコンピュータを機能させるシミュレーションプログラムは、複数の制御部に、トランザクションの実行を指示するトランザクション要求をそれぞれ発行させ、調停部に、トランザクション要求を調停させ、処理部に、調停部による調停で選択されたトランザクション要求に基づいてトランザクションを実行させ、先行発行部に、調停部による調停で選択されたトランザクション要求を発行した制御部が次のトランザクション要求を発行する前に、次のトランザクション要求に対応する仮のトランザクション要求を発行させ、調停部が調停により仮のトランザクション要求を選択した場合、調停部に、仮のトランザクション要求が発行された後に受信する次のトランザクション要求を処理部へ出力させる処理をコンピュータに実行させる。
【発明の効果】
【００１１】
本件開示のシミュレーション装置、シミュレーション方法およびシミュレーションプログラムでは、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。
【図面の簡単な説明】
【００１２】
【図１】シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの一実施形態を示す図である。
【図２】図１に示すシミュレーション装置の動作の例を示す図である。
【図３】シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す図である。
【図４】図３に示すシミュレーション装置の動作の例を示す図である。
【図５】図３に示すシミュレーション装置の動作の例（図４の続き）を示す図である。
【図６】図３に示す先行発行部を持たないシミュレーション装置の動作の例を示す図である。
【図７】図４に示すシミュレーション装置の動作において時刻保持部に保持される情報の変化の例を示す図である。
【図８】図４に示すシミュレーション装置の動作において時刻保持部に保持される情報の変化の例（図７の続き）を示す図である。
【図９】図３に示す調停部における調停処理の例を示す図である。
【図１０】図３に示す調停部における結果処理の例を示す図である。
【図１１】図３に示す先行発行部の動作の例を示す図である。
【図１２】シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す図である。
【図１３】図１２に示すシミュレーション装置の動作の例を示す図である。
【図１４】図１２に示すシミュレーション装置の動作の例（図１３の続き）を示す図である。
【図１５】シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す図である。
【図１６】図１５に示すシミュレーション装置の動作の例を示す図である。
【図１７】シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す図である。
【図１８】図１７に示すシミュレーション装置の動作の例を示す図である。
【図１９】図１、図３、図１２、図１５および図１７に示すシミュレーション装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。
【００１４】
図１は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの一実施形態を示す。例えば、シミュレーション装置ＳＩＭ１は、複数のＩＰコア（Intellectual Property Core）を含むＬＳＩの機能の検証に使用される。例えば、ＩＰコアが、メモリと、メモリにアクセスするコントローラとの場合、シミュレーション装置ＳＩＭ１は、メモリに対する読み出し動作および書き込み動作などを１つのトランザクションを単位として、検証を実行する。例えば、シミュレーション装置ＳＩＭ１は、ＴＬＭにおけるＬＴモデルを採用し、トランザクションレベルで検証を実行する。
【００１５】
シミュレーション装置ＳＩＭ１は、複数の制御部１０（１０ａ、１０ｂ）、調停部２０、処理部３０および先行発行部４０を有する。各制御部１０ａ、１０ｂは、ＣＰＵ（Central Processing Unit）またはＤＭＡＣ（Direct Memory Access Controller）などのマスタデバイスの入出力インタフェースの機能と等価の機能を有する。処理部３０は、メモリ、通信回路、タイマまたはＡＤＣ（Analog to Digital Converter）などのスレーブデバイスの入出力インタフェースの機能と等価の機能を有する。調停部２０は、ＬＳＩ上で制御部１０と処理部３０とを接続するバスに伝達される信号の伝搬遅延時間を定義する機能を有する。
【００１６】
制御部１０、調停部２０、処理部３０および先行発行部４０は、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよい。制御部１０、調停部２０、処理部３０および先行発行部４０がソフトウェアにより実現される場合、シミュレーション装置ＳＩＭ１は、シミュレーションプログラムを実行するコンピュータを含む。そして、制御部１０、調停部２０、処理部３０および先行発行部４０の機能は、コンピュータがシミュレーションプログラムを実行することにより実現される。なお、検証対象のＬＳＩが複数のスレーブデバイスを含む場合、シミュレーション装置ＳＩＭ１は、スレーブデバイス毎に処理部３０を有する。
【００１７】
各制御部１０は、トランザクションの実行を指示するトランザクション要求ＴＲＱ（ＴＲＱａ、ＴＲＱｂ）を、調停部２０を介して処理部３０に発行する。
【００１８】
調停部２０は、制御部１０ａ、１０ｂのそれぞれに割り当てられた優先順位にしたがってトランザクション要求ＴＲＱを調停し、調停により選択したトランザクション要求ＴＲＱを処理部３０に転送する。また、調停部２０は、処理部３０からの処理結果ＴＲＳＬＴ（ＴＲＳＬＴａ、ＴＲＳＬＴｂ）を制御部１０に転送する。
【００１９】
例えば、調停部２０は、制御部１０ａ、１０ｂのいずれかが発行したトランザクション要求ＴＲＱを選択した場合、選択したトランザクション要求ＴＲＱを処理部３０に出力する。また、調停部２０は、仮のトランザクション要求ＰＴＲＱを選択した場合、制御部１０ａ、１０ｂのいずれかから発行される次のトランザクション要求ＴＲＱを受信した後に、受信したトランザクション要求ＴＲＱを処理部３０に出力する。仮のトランザクション要求ＰＴＲＱは、未発行の次のトランザクション要求ＴＲＱの代わりに調停部２０に対して発行される。調停部２０は、仮のトランザクション要求ＰＴＲＱを受信した場合、未発行の次のトランザクション要求ＴＲＱを予約する。また、調停部２０は、トランザクション要求ＴＲＱの選択に基づいて、先行発行部４０に仮のトランザクション要求ＰＴＲＱを生成させる発行指示ＰＲＥＱを出力する。
【００２０】
先行発行部４０は、発行指示ＰＲＥＱを受信してから所定の待ち時間（図２に示すｔＴＲＱＰａ）後に、次に発行するトランザクション要求ＴＲＱに対応する仮のトランザクション要求ＰＴＲＱを発行する。
【００２１】
処理部３０は、トランザクション要求ＴＲＱに応答してトランザクションを実行し、トランザクションの実行結果である処理結果ＴＲＳＬＴ（ＴＲＳＬＴａ、ＴＲＳＬＴｂ）を、調停部２０を介して制御部１０に出力する。例えば、制御部１０がＣＰＵの機能を有し、処理部３０がメモリの機能を有する場合、トランザクション要求ＴＲＱの１つは、読み出し要求であり、処理結果ＴＲＳＬＴの１つは、メモリから読み出される読み出しデータである。
【００２２】
図２は、図１に示すシミュレーション装置ＳＩＭ１の動作の例を示す。すなわち、図２は、シミュレーション装置ＳＩＭ１が動作することにより実現されるシミュレーション方法の例を示す。例えば、シミュレーション方法は、シミュレーション装置ＳＩＭ１がシミュレーションプログラムを実行することで実現される。
【００２３】
図２に示す例では、制御部１０ａ、１０ｂがトランザクション要求ＴＲＱａ、ＴＲＱｂを順次に発行した後、制御部１０ａがトランザクション要求ＴＲＱａを発行する（図２（ａ）、（ｂ）、（ｃ））。
【００２４】
調停部２０の動作において、網掛けで示す矩形は、調停部２０がトランザクション要求ＴＲＱの優先順を判定し、判定結果に基づいて処理部３０にトランザクション要求ＴＲＱを転送する調停処理を示す。調停部２０の動作において、白抜きで示す矩形は、トランザクションを実行した処理部３０からの処理結果ＴＲＳＬＴを制御部１０に転送する結果処理を示す。
【００２５】
まず、調停部２０は、制御部１０ａからのトランザクション要求ＴＲＱａを受信し、他のトランザクション要求ＴＲＱを受信していないため、調停処理によりトランザクション要求ＴＲＱａを選択する（図２（ｄ））。例えば、トランザクション要求ＴＲＱａは、制御部１０ａによるトランザクション要求ＴＲＱの発行間隔ｔＴＲＱＰａを示す情報を含む。発行間隔ｔＴＲＱＰａは、調停部２０による調停処理の完了から制御部１０ａが次のトランザクション要求ＴＲＱを発行するまでの準備時間である。検証対象のＬＳＩでは、調停部２０は、調停処理の完了時に、選択したトランザクション要求ＴＲＱを発行した制御部１０にアクノリッジを返す。発行間隔ｔＴＲＱＰａは、制御部１０ａがアクノリッジを受信してから次のトランザクション要求ＴＲＱａを発行するまでの準備時間でもある。
【００２６】
調停部２０は、トランザクション要求ＴＲＱａを処理部３０へ転送する前に、制御部１０ｂからトランザクション要求ＴＲＱｂを受信する。調停部２０は、トランザクション要求ＴＲＱａを選択済みのため、トランザクション要求ＴＲＱｂを保持し、選択したトランザクション要求ＴＲＱａを処理部３０に転送する（図２（ｅ））。処理部３０は、調停部２０からのトランザクション要求ＴＲＱａに応答してトランザクションを実行する（図２（ｆ））。
【００２７】
また、調停部２０は、トランザクション要求ＴＲＱａの処理部３０への転送に基づいて、仮のトランザクションＰＴＲＱを発行させる発行指示ＰＲＥＱを先行発行部４０に出力する（図２（ｇ））。発行指示ＰＲＥＱは、発行指示ＰＲＥＱの契機となったトランザクション要求ＴＲＱａを発行した制御部１０ａに設定された発行間隔ｔＴＲＱＰａを含む。
【００２８】
先行発行部４０は、発行指示ＰＲＥＱに基づいて、発行指示ＰＲＥＱに含まれる発行間隔ｔＴＲＱＰａを計測し、発行間隔ｔＴＲＱＰａ後に仮のトランザクション要求ＰＴＲＱを発行する（図２（ｈ））。上述したように、発行間隔ｔＴＲＱＰａは、調停部２０による調停処理の完了から制御部１０ａが次のトランザクション要求ＴＲＱを発行するまでの準備時間であり、制御部１０ａに固有の値である。発行指示ＰＲＥＱにトランザクション要求ＴＲＱａの発行間隔ｔＴＲＱＰａを含めることで、制御部１０ａ、１０ｂ毎に仮のトランザクション要求ＰＴＲＱの発行タイミングを設定することができる。この結果、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。
【００２９】
図２に示す例では、仮のトランザクション要求ＰＴＲＱは、未発行の次のトランザクション要求ＴＲＱａの代わりに調停部２０に対して発行されるため、優先順位は、トランザクション要求ＴＲＱｂより高い。調停部２０は、仮のトランザクション要求ＰＴＲＱを、未だ受信していない次のトランザクション要求ＴＲＱａとして保持する。すなわち、未だ受信していない次のトランザクション要求ＴＲＱａが、調停部２０に予約される。
【００３０】
処理部３０がトランザクション要求ＴＲＱａに対応するトランザクションを実行している期間が転送間隔ｔＴＲＱＰａより長い場合、調停部２０は、仮のトランザクション要求ＰＴＲＱａを受信した後に、処理結果ＴＲＳＬＴａを受信する（図２（ｉ））。調停部２０は、仮のトランザクション要求ＰＴＲＱａより後に処理結果ＴＲＳＬＴａを処理部３０から受信した場合、時間間隔を待たずに次のトランザクション要求ＴＲＱａを発行させる指示を処理結果ＴＲＳＬＴａに含めて制御部１０ａに転送する（図２（ｊ））。
【００３１】
調停部２０は、処理結果ＴＲＳＬＴａの制御部１０ａへの転送に基づいて、調停処理を開始する（図２（ｋ））。調停部２０は、優先順位に基づいて、既に受信しているトランザクション要求ＴＲＱｂの選択を保留し、仮のトランザクション要求ＰＴＲＱを選択する。そして、調停部２０は、選択した仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱａの受信を待ち、受信したトランザクション要求ＴＲＱａを処理部３０へ転送する（図２（ｌ））。処理部３０は、調停部２０からのトランザクション要求ＴＲＱａに応答してトランザクションを実行する（図２（ｍ））。
【００３２】
このように、調停部２０は、未発行の次のトランザクション要求ＴＲＱａの代わりに、仮のトランザクション要求ＰＴＲＱを用いて調停処理を実行するため、制御部１０ａから発行される次のトランザクション要求ＴＲＱａを含めて、優先順を判定することができる。これにより、トランザクションの処理時間がトランザクション要求ＴＲＱａの発行間隔ｔＴＲＱＰａより長い場合にも、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。すなわち、トランザクションの処理中に次のトランザクション要求ＴＲＱａが発行されるＬＳＩの動作をシミュレーションにより再現することができる。
【００３３】
調停部２０は、トランザクション要求ＴＲＱａの処理部３０への転送に基づいて、仮のトランザクションＰＴＲＱを発行させる発行指示ＰＲＥＱを先行発行部４０に出力する（図２（ｎ））。先行発行部４０は、発行指示ＰＲＥＱに含まれる発行間隔ｔＴＲＱＰａを計測し、発行間隔ｔＴＲＱＰａの経過後に仮のトランザクション要求ＰＴＲＱを発行する（図２（ｏ））。
【００３４】
以上、図１および図２に示す実施形態では、未発行の次のトランザクション要求ＴＲＱａの代わりに、仮のトランザクション要求ＰＴＲＱを用いて調停処理を実行することで、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。すなわち、トランザクションの処理中に次のトランザクション要求ＴＲＱａが発行されるＬＳＩの動作をシミュレーションにより再現することができる。
【００３５】
図３は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す。例えば、シミュレーション装置ＳＩＭ２は、図１に示すシミュレーション装置ＳＩＭ１と同様に、複数のＩＰコアを含むＬＳＩの機能の検証に使用される。例えば、シミュレーション装置ＳＩＭ２は、図１に示すシミュレーション装置ＳＩＭ１と同様に、ＴＬＭにおけるＬＴモデル等を採用し、トランザクションレベルで検証を実行する。
【００３６】
シミュレーション装置ＳＩＭ２は、ｎ個（ｎは２以上の整数）のマスタＭＳＴ（ＭＳＴ１、ＭＳＴ２、...、ＭＳＴｎ）、ｍ個（ｍは２以上の整数）のスレーブＳＬＶ（ＳＬＶ１、ＳＬＶ２、...、ＳＬＶｍ）、調停部ＡＲＢおよび先行発行部ＰＲＥを有する。なお、マスタＭＳＴおよびスレーブＳＬＶは、検証対象のＬＳＩに搭載されるＩＰコアに対応しており、検証対象のＬＳＩに搭載されるＩＰコアの機能に合わせて、シミュレーション装置ＳＩＭ２内に構築される。
【００３７】
マスタＭＳＴ、スレーブＳＬＶ、調停部ＡＲＢおよび先行発行部ＰＲＥは、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよい。マスタＭＳＴ、スレーブＳＬＶ、調停部ＡＲＢおよび先行発行部ＰＲＥがソフトウェアにより実現される場合、シミュレーション装置ＳＩＭ２は、シミュレーションプログラムを実行するコンピュータを含む。そして、マスタＭＳＴ、スレーブＳＬＶ、調停部ＡＲＢおよび先行発行部ＰＲＥの機能は、コンピュータがシミュレーションプログラムを実行することにより実現される。
【００３８】
各マスタＭＳＴは、ＣＰＵまたはＤＭＡＣなどのマスタデバイスの入出力インタフェースの機能と等価の機能を有する。マスタＭＳＴは、調停部ＡＲＢにそれぞれ接続される。各マスタＭＳＴは、トランザクション要求ＴＲＱを発行し、トランザクション要求ＴＲＱに基づいてスレーブＳＬＶのいずれかで実行されるトランザクションの処理結果ＴＲＳＬＴを受信する。各マスタＭＳＴは、トランザクションの実行を指示するトランザクション要求ＴＲＱを発行する制御部の一例である。
【００３９】
各スレーブＳＬＶは、メモリ、通信回路、タイマまたはＡＤＣなどのスレーブデバイスの入出力インタフェースの機能と等価の機能を有する。スレーブＳＬＶは、バスＢＵＳを介して調停部ＡＲＢに接続される。各スレーブＳＬＶは、トランザクション要求ＴＲＱに基づいてトランザクションを実行し、処理結果ＴＲＳＬＴをバスＢＵＳおよび調停部ＡＲＢを介してトランザクション要求ＴＲＱの発行元のマスタＭＳＴに転送する。各スレーブＳＬＶは、トランザクション要求ＴＲＱに応答してトランザクションを実行し、トランザクションの処理結果ＴＲＳＬＴを出力する処理部の一例である。
【００４０】
調停部ＡＲＢは、トランザクション制御部ＴＲＣＮＴ、優先権保持部ＰＲＨＬＤ、トランザクション調整部ＴＡＤＪ、時間間隔算出部ＮＥＸＴＣおよび時刻保持部ＴＨＬＤを有する。調停部ＡＲＢの動作の例は、図４、図５、図９および図１０に示す。
【００４１】
トランザクション制御部ＴＲＣＮＴは、マスタＭＳＴの少なくともいずれかからトランザクション要求ＴＲＱを受信した場合に、優先権保持部ＰＲＨＬＤにより定められる優先順にしたがってトランザクション要求ＴＲＱを調停する。トランザクション制御部ＴＲＣＮＴは、調停により選択したトランザクション要求ＴＲＱを、バスＢＵＳを介して指定されたスレーブＳＬＶに転送する。トランザクション制御部ＴＲＣＮＴは、トランザクション要求ＴＲＱのバスＢＵＳおよびスレーブＳＬＶへの転送時刻ｔＴＲＱを示す情報を時刻保持部ＴＨＬＤに書き込む。トランザクション制御部ＴＲＣＮＴは、トランザクション要求ＴＲＱをバスＢＵＳへ転送したことをトランザクション調整部ＴＡＤＪに通知する。
【００４２】
また、トランザクション制御部ＴＲＣＮＴは、バスＢＵＳを介して各スレーブＳＬＶから処理結果ＴＲＳＬＴを受信した場合に、時間間隔算出部ＮＥＸＴＣに時間間隔ｔＮＥＸＴを算出させ、算出させた時間間隔ｔＮＥＸＴを時刻保持部ＴＨＬＤに書き込む。時間間隔ｔＮＥＸＴは、処理結果ＴＲＳＬＴを受信してから次のトランザクション要求ＴＲＱをマスタＭＳＴが発行するまでの時間を示す。そして、トランザクション制御部ＴＲＣＮＴは、処理結果ＴＲＳＬＴを時間間隔算出部ＮＥＸＴＣにより算出された時間間隔ｔＮＥＸＴとともに、トランザクション要求ＴＲＱを発行したマスタＭＳＴに転送する。
【００４３】
トランザクション制御部ＴＲＣＮＴは、処理結果ＴＲＳＬＴをマスタＭＳＴに転送した後、マスタＭＳＴから受信したトランザクション要求ＴＲＱを優先順にしたがって選択する。この際、トランザクション制御部ＴＲＣＮＴは、仮のトランザクション要求ＰＴＲＱを先行発行部ＰＲＥから受信した場合、トランザクション要求ＴＲＱと仮のトランザクション要求ＰＴＲＱとを優先順にしたがって選択する。そして、トランザクション制御部ＴＲＣＮＴは、仮のトランザクション要求ＰＴＲＱを選択した場合、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱがマスタＭＳＴから転送されるのを待つ。トランザクション制御部ＴＲＣＮＴは、転送されたトランザクション要求ＴＲＱを、バスＢＵＳを介して指定されたスレーブＳＬＶに転送する。このように、仮のトランザクション要求ＰＴＲＱは、未だ受信していないトランザクション要求ＴＲＱを予約し、優先順の判定に加えるために使用される。
【００４４】
トランザクション制御部ＴＲＣＮＴは、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱに応答する処理結果ＴＲＳＬＴをスレーブＳＬＶから受信した場合、処理結果ＴＲＳＬＴの受信をトランザクション調整部ＴＡＤＪに通知する。
【００４５】
優先権保持部ＰＲＨＬＤは、マスタＭＳＴ１−ＭＳＴｎの優先順を示す情報を保持する。トランザクション制御部ＴＲＣＮＴは、優先権保持部ＰＲＨＬＤに保持された情報を参照することにより、トランザクション要求ＴＲＱの優先順を判定する。優先順の判定については、図４および図５で説明する。
【００４６】
トランザクション調整部ＴＡＤＪは、トランザクション要求ＴＲＱをバスＢＵＳに転送したことを示す通知をトランザクション制御部ＴＲＣＮＴから受信した場合、仮のトランザクション要求ＰＴＲＱを発行させる発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する。なお、トランザクション調整部ＴＡＤＪは、トランザクション要求ＴＲＱに含まれる生成フラグＦＬＧが仮のトランザクションＰＴＲＱの発行の禁止を示す場合、発行指示ＰＲＥＱの先行発行部ＰＲＥへの出力を抑止する。生成フラグＦＬＧは、トランザクション制御部ＴＲＣＮＴによって時刻保持部ＴＨＬＤに書き込まれる。トランザクション調整部ＴＡＤＪは、先行発行部ＰＲＥから仮のトランザクションＰＴＲＱを受信した場合、受信した仮のトランザクションＰＴＲＱをトランザクション制御部ＴＲＣＮＴに転送する。
【００４７】
トランザクション調整部ＴＡＤＪは、仮のトランザクション要求ＰＴＲＱに対応する処理結果ＴＲＳＬＴをトランザクション制御部ＴＲＣＮＴが受信した場合、仮のトランザクションＰＴＲＱの応答ＲＥＴを先行発行部ＰＲＥに出力する。また、トランザクション調整部ＴＡＤＪは、仮のトランザクション要求ＰＴＲＱに対応する処理結果ＴＲＳＬＴをトランザクション制御部ＴＲＣＮＴが受信した場合、仮のトランザクションＰＴＲＱを削除する削除指示ＤＥＬを先行発行部ＰＲＥに出力する。
【００４８】
時間間隔算出部ＮＥＸＴＣは、トランザクション制御部ＴＲＣＮＴによる処理結果ＴＲＳＬＴの受信に基づいて、トランザクション要求ＴＲＱを発行したマスタＭＳＴが発行可能な次のトランザクション要求ＴＲＱの時間間隔ｔＮＥＸＴを算出する。例えば、時間間隔算出部ＮＥＸＴＣは、式（１）を用いて、発行間隔ｔＴＲＱＰ、転送時刻ｔＴＲＱ、ｔＴＲＳＬＴから時間間隔ｔＮＥＸＴを算出する。
ｔＮＥＸＴ＝ｔＴＲＱＰ−（ｔＴＲＳＬＴ−ｔＴＲＱ）  ‥‥  （１）
式（１）において、発行間隔ｔＴＲＱＰは、例えば、調停処理の完了に基づいて調停部ＡＲＢからマスタＭＳＴにアクノリッジが出力されてから、マスタＭＳＴが次のトランザクション要求ＴＲＱを発行するまでの準備時間である。転送時刻ｔＴＲＱは、調停部ＡＲＢがバスＢＵＳにトランザクション要求ＴＲＱを発行した時刻であり、転送時刻ｔＴＲＳＬＴは、調停部ＡＲＢがバスＢＵＳから処理結果ＴＲＳＬＴを受信した時刻である。
【００４９】
時間間隔ｔＮＥＸＴは、式（１）に示すように、予め設定されたマスタＭＳＴ毎の発行間隔ｔＴＲＱＰから、転送時刻ｔＴＲＳＬＴと転送時刻ｔＴＲＱとの差を差し引いて求められる。すなわち、時間間隔ｔＮＥＸＴは、調停部ＡＲＢがトランザクション要求ＴＲＱを転送してから処理結果ＴＲＳＬＴを受信してマスタＭＳＴへ処理結果ＴＲＳＬＴを発行するまでの応答時間と、発行間隔ｔＴＲＱＰとの差を示す。時間間隔ｔＮＥＸＴは、応答時間が発行間隔ｔＴＲＱＰより短い場合、正の値になり、応答時間が発行間隔ｔＴＲＱＰより長い場合、負の値になる。
【００５０】
時刻保持部ＴＨＬＤは、発行間隔ｔＴＲＱＰ、生成フラグＦＬＧ、転送時刻ｔＴＲＱ、ｔＴＲＳＬＴおよび時間間隔ｔＮＥＸＴを保持する領域を、マスタＭＳＴ毎に有する。生成フラグＦＬＧは、マスタＭＳＴからのトランザクション要求ＴＲＱに含まれる情報であり、仮のトランザクション要求ＰＴＲＱの発行の許可または抑止を示す。トランザクション調整部ＴＡＤＪは、時刻保持部ＴＨＬＤに保持された生成フラグＦＬＧに基づいて、仮のトランザクション要求ＰＴＲＱを先行発行部ＰＲＥに発行させる発行指示ＰＲＥＱを出力するか否かを判断する。
【００５１】
以降の説明では、符号ｔＴＲＱＰ、ｔＴＲＱ、ｔＴＲＳＬＴ、ｔＮＥＸＴは、発行間隔ｔＴＲＱＰ、転送時刻ｔＴＲＱ、ｔＴＲＳＬＴ、時間間隔ｔＮＥＸＴを保持する時刻保持部ＴＨＬＤの領域の名称として使用される場合がある。発行間隔ｔＴＲＱＰおよび転送時刻ｔＴＲＱ、ｔＴＲＳＬＴが時刻保持部ＴＨＬＤに集中して保持されることにより、時間間隔算出部ＮＥＸＴＣは、時刻保持部ＴＨＬＤにアクセスすることで、時間間隔ｔＮＥＸＴを求めることができる。
【００５２】
なお、時刻保持部ＴＨＬＤは、シミュレーション装置ＳＩＭ２の内部で、調停部ＡＲＢの外部に配置されてもよい。また、シミュレーション装置ＳＩＭ２が、図１９に示すハードウェア構成を有し、時刻保持部ＴＨＬＤがシミュレーションプログラムによりアクセスされる場合、時刻保持部ＴＨＬＤは、ＣＰＵがアクセス可能なワーク領域等に割り当てられる。この場合、マスタＭＳＴ、調停部ＡＲＢおよびスレーブＳＬＶは、タイムラグを発生することなく、互いに共通のサイクル数で時刻保持部ＴＨＬＤにアクセス可能である。
【００５３】
先行発行部ＰＲＥは、タイマＴＭＲ１を有する先行制御部ＰＣＮＴと、先行生成部ＰＧＥＮと、先行削除部ＰＤＥＬと、仮のトランザクションＰＴＲＱを保持する保持部ＰＨＬＤとを有する。先行制御部ＰＣＮＴは、トランザクション調整部ＴＡＤＪからの発行指示ＰＲＥＱに基づいて、タイマＴＭＲ１を起動する。先行制御部ＰＣＮＴは、タイマＴＭＲ１が所定時間を計測したことに基づいて、仮のトランザクション要求ＰＴＲＱの生成を先行生成部ＰＧＥＮに指示する。タイマＴＭＲ１が計測する所定時間は、発行間隔ｔＴＲＱＰにより示される時間であり、マスタＭＳＴ毎に異なる。先行生成部ＰＧＥＮは、先行制御部ＰＣＮＴからの指示に基づいて仮のトランザクション要求ＰＴＲＱを生成し、生成した仮のトランザクションＰＴＲＱを保持部ＰＨＬＤに格納する。
【００５４】
先行制御部ＰＣＮＴは、保持部ＰＨＬＤに格納された仮のトランザクション要求ＰＴＲＱをトランザクション調整部ＴＡＤＪに出力する。先行制御部ＰＣＮＴは、トランザクション調整部ＴＡＤＪからの削除指示ＤＥＬに基づいて、保持部ＰＨＬＤに保持された仮のトランザクション要求ＰＴＲＱを削除する指示を先行削除部ＰＤＥＬに出力する。先行削除部ＰＤＥＬは、先行制御部ＰＣＮＴからの指示に基づいて、保持部ＰＨＬＤに保持された仮のトランザクションＰＴＲＱを削除する。なお、仮のトランザクション要求ＰＴＲＱの削除は、先行削除部ＰＤＥＬの代わりに先行制御部ＰＣＮＴにより実行されてもよい。この場合、先行発行部ＰＲＥは、先行削除部ＰＤＥＬを持たない。
【００５５】
図４は、図３に示すシミュレーション装置ＳＩＭ２の動作の例を示す。すなわち、図４は、シミュレーション装置ＳＩＭ２が動作することにより実現されるシミュレーション方法の例を示す。例えば、シミュレーション方法は、シミュレーション装置ＳＩＭ２がシミュレーションプログラムを実行することで実現される。図２と同様の動作については、詳細な説明は省略する。
【００５６】
図３に示す優先権保持部ＰＲＨＬＤによるトランザクション要求ＴＲＱの優先度は、マスタＭＳＴ１、マスタＭＳＴ２、...、マスタＭＳＴｎの順に設定される。例えば、マスタＭＳＴ１からのトランザクション要求ＴＲＱは、他のマスタＭＳＴ２−ＭＳＴｎからのトランザクション要求ＴＲＱよりも優先して選択される。図２と同様に、調停部ＡＲＢの動作において、網掛けで示す矩形は、調停部ＡＲＢがトランザクション要求ＴＲＱの優先順を判定し、判定結果に基づいてスレーブＳＬＶにトランザクション要求ＴＲＱを転送する調停処理を示す。調停部ＡＲＢの動作において、白抜きで示す矩形は、トランザクションを実行したスレーブＳＬＶからの処理結果ＴＲＳＬＴをマスタＭＳＴに転送する結果処理を示す。
【００５７】
図４に示す例では、マスタＭＳＴ１、ＭＳＴ２からトランザクション要求ＴＲＱ１１、ＴＲＱ２１が順次に発行され、この後、マスタＭＳＴ１からトランザクション要求ＴＲＱ１２、ＴＲＱ１３が順次に発行される。トランザクション要求ＴＲＱの末尾に示す２桁の数値の各桁は、マスタＭＳＴの番号と、マスタＭＳＴ毎のトランザクション要求ＴＲＱの発行順序とを示す。図４に示す時刻ｔ０１から時刻ｔ１７は、図７および図８で使用される。
【００５８】
まず、調停部ＡＲＢは、マスタＭＳＴ１からスレーブＳＬＶ１に対するトランザクション要求ＴＲＱ１１を受信し、調停処理を開始する（図４（ａ））。調停部ＡＲＢは、他のトランザクション要求ＴＲＱを受信していないため、トランザクション要求ＴＲＱ１１を選択する。トランザクション要求ＴＲＱ１１は、仮のトランザクション要求ＰＴＲＱの発行を許可する生成フラグＦＬＧ（＝１）を含む。トランザクション要求ＴＲＱ１１がスレーブＳＬＶ１に対するものであることは、トランザクション要求ＴＲＱ１１に含まれるアドレス等の情報から判断される。また、トランザクション要求ＴＲＱ１１は、マスタＭＳＴ１によるトランザクション要求ＴＲＱの発行間隔ｔＴＲＱＰを示す情報を含む。
【００５９】
調停部ＡＲＢは、トランザクション要求ＴＲＱ１１をスレーブＳＬＶ１へ転送する準備中に、マスタＭＳＴ２からのスレーブＳＬＶ２に対するトランザクション要求ＴＲＱ２１を受信する（図４（ｂ））。トランザクション要求ＴＲＱ２１は、仮のトランザクション要求ＰＴＲＱの発行を許可する生成フラグＦＬＧ（＝１）を含む。調停部ＡＲＢは、優先権保持部ＰＲＨＬＤを参照して、マスタＭＳＴ２の優先度がマスタＭＳＴ１の優先度の次に高いことを確認する。調停部ＡＲＢは、トランザクション要求ＴＲＱ２１をスレーブＳＬＶ２に転送するまで保持する。例えば、トランザクション要求ＴＲＱ２１は、調停部ＡＲＢ内に設けられる要求保持部に保持される。
【００６０】
調停部ＡＲＢは、トランザクション要求ＴＲＱ１１を、バスＢＵＳを介してスレーブＳＬＶ１に転送する。スレーブＳＬＶ１は、調停部ＡＲＢからのトランザクション要求ＴＲＱ１１に応答してトランザクションを実行する（図４（ｃ））。また、調停部ＡＲＢは、トランザクション要求ＴＲＱ１１に含まれる生成フラグＦＬＧ（＝１）に基づいて、仮のトランザクションＰＴＲＱを発行させる発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する。
【００６１】
先行発行部ＰＲＥは、発行指示ＰＲＥＱに基づいて、発行指示ＰＲＥＱに含まれる発行間隔ｔＴＲＱＰ１を計測し、発行間隔ｔＴＲＱＰ１後に仮のトランザクション要求ＰＴＲＱを発行する（図４（ｄ））。発行間隔ｔＴＲＱＰ１は、図２に示す発行間隔ｔＴＲＱＰａと同様に、調停部ＡＲＢによる調停処理の完了からマスタＭＳＴ１が次のトランザクション要求ＴＲＱを発行するまでの準備時間である。
【００６２】
調停部ＡＲＢは、発行指示ＰＲＥＱをマスタＭＳＴ１からのトランザクション要求ＴＲＱ１１に基づいて出力したため、仮のトランザクション要求ＰＴＲＱがマスタＭＳＴ１からの次のトランザクション要求ＴＲＱに対応することを認識している。仮のトランザクション要求ＰＴＲＱは、マスタＭＳＴ１から発行される次のトランザクション要求ＴＲＱ１２の代わりに事前に発行されるため、既に受信しているマスタＭＳＴ２からのトランザクション要求ＴＲＱ２１より優先順位が高い。調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを未だ受信していない次のトランザクション要求ＴＲＱ１２として保持する。すなわち、未だ受信していない次のトランザクション要求ＴＲＱ１２が、調停部ＡＲＢに予約される。
【００６３】
図４に示す例では、スレーブＳＬＶ１がトランザクション要求ＴＲＱ１１に対応するトランザクションを実行している期間は、転送間隔ｔＴＲＱＰ１より長い。このため、調停部ＡＲＢは、トランザクション要求ＴＲＱ１１に対応する処理結果ＴＲＳＬＴ１１を受信する前に、仮のトランザクション要求ＰＴＲＱを受信する。調停部ＡＲＢは、スレーブＳＬＶ１から処理結果ＴＲＳＬＴ１１を受信し、処理結果ＴＲＳＬＴ１１をマスタＭＳＴ１に転送する結果処理を実行する（図４（ｅ））。例えば、結果処理は、バスＢＵＳ上を伝達される信号の伝搬遅延時間を含む。
【００６４】
調停部ＡＲＢは、時間間隔算出部ＮＥＸＴＣに時間間隔ｔＮＥＸＴを計算させる。時間間隔算出部ＮＥＸＴＣは、式（１）を用いて時間間隔ｔＮＥＸＴ（負値）を求める。調停部ＡＲＢは、時間間隔算出部ＮＥＸＴＣが求めた時間間隔ｔＮＥＸＴとともに処理結果ＴＲＳＬＴ１１をマスタＭＳＴ１に転送する（図４（ｆ））。
【００６５】
調停部ＡＲＢは、処理結果ＴＲＳＬＴ１１のマスタＭＳＴ１への転送後に、次の調停処理を開始し、仮のトランザクション要求ＰＴＲＱの応答ＲＥＴを先行発行部ＰＲＥに出力し、削除指示ＤＥＬを先行発行部ＰＲＥに出力する（図４（ｇ）、（ｈ））。先行発行部ＰＲＥは、削除部ＤＥＬに基づいて、保持部ＰＨＬＤに保持されている仮のトランザクション要求ＰＴＲＱを削除する（図４（ｉ））。
【００６６】
調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを受信した場合、調停処理において、仮のトランザクション要求ＰＴＲＱと、既に受信しているトランザクション要求ＴＲＱ２１とを優先順に基づいて調停する。この例では、未発行の次のトランザクション要求ＴＲＱ１２の代わりに発行された仮のトランザクション要求ＰＴＲＱが選択される。
【００６７】
マスタＭＳＴ１は、処理結果ＴＲＳＬＴ１１とともに受信する時間間隔ｔＮＥＸＴが負値であるため、処理結果ＴＲＳＬＴ１１を受信後に時間間隔を空けずに次のトランザクション要求ＴＲＱ１２を発行する（図４（ｊ））。例えば、時刻ｔ０９は、処理結果ＴＲＳＬＴ１１を受信したサイクル（時刻ｔ０６）の次のサイクルである。トランザクション要求ＴＲＱ１２は、仮のトランザクション要求ＰＴＲＱの発行を許可する生成フラグＦＬＧ（＝１）を含む。
【００６８】
調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱ１２の受信に基づき、受信したトランザクション要求ＴＲＱ１２を、バスＢＵＳを介してスレーブＳＬＶ１へ転送する（図４（ｋ））。スレーブＳＬＶ１は、調停部ＡＲＢからのトランザクション要求ＴＲＱ１２に応答してトランザクションを実行する（図４（ｌ））。
【００６９】
このように、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを用いて、発行される前のトランザクション要求ＴＲＱ１２を予約することで、マスタＭＳＴ１から発行される前のトランザクション要求ＴＲＱ１２を含めて、優先順を判定することができる。すなわち、時間間隔ｔＮＥＸＴが負値の場合に、調停部ＡＲＢが、トランザクション要求ＴＲＱ１２を含めずに優先順の判定を実行し、トランザクション要求ＴＲＱ２１を選択することを抑止することができる。この結果、時間間隔ｔＮＥＸＴが負値の場合のおける検証対象のＬＳＩの動作をトランザクションレベルのシミュレーションにより正しく再現することができる。
【００７０】
調停部ＡＲＢは、トランザクション要求ＴＲＱ１２に含まれる生成フラグＦＬＧ（＝１）に基づいて、仮のトランザクションＰＴＲＱを発行させる発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する。先行発行部ＰＲＥは、発行指示ＰＲＥＱに基づいて、トランザクション要求ＴＲＱ１２を発行したマスタＭＳＴ１に設定された発行間隔ｔＴＲＱＰ１を計測し、発行間隔ｔＴＲＱＰ１後に仮のトランザクション要求ＰＴＲＱを発行する（図４（ｍ））。
【００７１】
調停部ＡＲＢは、処理結果ＴＲＳＬＴ１２の受信に伴い、処理結果ＴＲＳＬＴ１２をマスタＭＳＴ１に転送し、転送後に開始する調停処理において、応答ＲＥＴおよび削除指示ＤＥＬを先行発行部ＰＲＥに出力する（図４（ｎ））。調停部ＡＲＢは、優先順に基づいて、仮のトランザクション要求ＰＴＲＱを選択し、既に受信しているトランザクション要求ＴＲＱ２１の選択を保留する。
【００７２】
マスタＭＳＴ１は、処理結果ＴＲＳＬＴ１２とともに受信する時間間隔ｔＮＥＸＴが負値であるため、処理結果ＴＲＳＬＴ１２を受信後に時間間隔を空けずに次のトランザクション要求ＴＲＱ１３を発行する（図４（ｏ））。ここで、トランザクション要求ＴＲＱ１３は、連続して処理する所定数のトランザクションのうち、最後のトランザクションに対応する。この場合、マスタＭＳＴ１は、仮のトランザクション要求ＰＴＲＱの発行を抑止する生成フラグＦＬＧ（＝０）を含むトランザクション要求ＴＲＱ１３を調停部ＡＲＢに発行する。論理０の生成フラグＦＬＧは、抑止情報の一例である。
【００７３】
調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱ１３の受信に基づき、受信したトランザクション要求ＴＲＱ１３を、バスＢＵＳを介してスレーブＳＬＶ１へ転送する（図４（ｐ））。スレーブＳＬＶ１は、調停部ＡＲＢからのトランザクション要求ＴＲＱ１３に応答してトランザクションの実行を開始する（図４（ｑ））。
【００７４】
トランザクション要求ＴＲＱ１３に含まれる生成フラグＦＬＧが、仮のトランザクション要求ＰＴＲＱの発行の抑止を示すため、調停部ＡＲＢは、発行指示ＰＲＥＱを先行発行部ＰＲＥに出力しない（図４（ｒ））。このため、先行発行部ＰＲＥは、仮のトランザクション要求ＰＴＲＱを発行しない。これにより、調停部ＡＲＢが、マスタＭＳＴ１から発行されないトランザクション要求ＴＲＱ１４を待ち続けることを抑止することができ、シミュレーションの進行が停止することを抑止することができる。
【００７５】
図５は、図３に示すシミュレーション装置ＳＩＭ２の動作の例（図４の続き）を示す。図４と同一または同様の動作については、詳細な説明は省略する。
【００７６】
調停部ＡＲＢは、スレーブＳＬＶ１からの処理結果ＴＲＳＬＴ１３を受信し、処理結果ＴＲＳＬＴ１３をマスタＭＳＴ１に転送する（図５（ａ））。調停部ＡＲＢは、トランザクション要求ＴＲＱ１３の次のトランザクション要求ＴＲＱに対応する仮のトランザクション要求ＰＴＲＱを受信していないため、応答ＲＥＴおよび削除指示ＤＥＬを先行発行部ＰＲＥに出力しない。調停部ＡＲＢは、調停処理における優先順の判定に基づいて、既に保持しているトランザクション要求ＴＲＱ２１を選択し、選択したトランザクション要求ＴＲＱ２１を、バスＢＵＳを介してスレーブＳＬＶ２に転送する（図５（ｂ））。スレーブＳＬＶ２は、調停部ＡＲＢからのトランザクション要求ＴＲＱ２１に応答してトランザクションを実行する（図５（ｃ））。
【００７７】
調停部ＡＲＢは、トランザクション要求ＴＲＱ２１に含まれる生成フラグＦＬＧ（＝１）に基づいて、マスタＭＳＴ２に対応する仮のトランザクションＰＴＲＱを発行させる発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する（図５（ｄ））。先行発行部ＰＲＥは、発行指示ＰＲＥＱに基づいて、トランザクション要求ＴＲＱ２１を発行したマスタＭＳＴ１２に設定された発行間隔ｔＴＲＱＰ２後に仮のトランザクション要求ＰＴＲＱを発行する（図５（ｅ））。発行間隔ｔＴＲＱＰ２は、発行間隔ｔＴＲＱＰ１と同様に、調停部ＡＲＢによる調停処理の完了からマスタＭＳＴ２が次のトランザクション要求ＴＲＱを発行するまでの準備時間である。この後、調停部ＡＲＢは、マスタＭＳＴ１からトランザクション要求ＴＲＱ１４（ＦＬＧ＝１）を受信する（図５（ｆ））。
【００７８】
調停部ＡＲＢは、スレーブＳＬＶ２から処理結果ＴＲＳＬＴ２１を受信し、処理結果ＴＲＳＬＴ２１をマスタＭＳＴ２に転送する。調停部ＡＲＢは、調停処理を開始し、優先順に基づいて、トランザクション要求ＴＲＱ２２に対応する仮のトランザクション要求ＰＴＲＱの選択を保留し、トランザクション要求ＴＲＱ１４を選択する。また、調停部ＡＲＢは、応答ＲＥＴおよび削除指示ＤＥＬを先行発行部ＰＲＥに出力する（図５（ｇ））。このように、優先順がマスタＭＳＴ１より低いマスタＭＳＴ２に対応する仮のトランザクション要求ＰＴＲＱが発行された場合にも、検証対象のＬＳＩの動作をトランザクションレベルのシミュレーションにより正しく再現することができる。
【００７９】
マスタＭＳＴ２は、処理結果ＴＲＳＬＴ２１とともに受信する時間間隔ｔＮＥＸＴが負値であるため、処理結果ＴＲＳＬＴ２１を受信後に時間間隔を空けずに次のトランザクション要求ＴＲＱ２２を発行する（図５（ｈ））。トランザクション要求ＴＲＱ２２は、仮のトランザクション要求ＰＴＲＱの発行を許可する生成フラグＦＬＧ（＝１）を含む。調停部ＡＲＢは、トランザクション要求ＴＲＱ２２の受信に基づいて、仮のトランザクション要求ＰＴＲＱの代わりにトランザクション要求ＴＲＱ２２を保持する。すなわち、仮のトランザクション要求ＰＴＲＱが調停により選択される前に、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱ２２が発行された場合、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを破棄する。
【００８０】
そして、調停部ＡＲＢは、選択したトランザクション要求ＴＲＱ１４を、バスＢＵＳを介してスレーブＳＬＶ１へ転送する（図５（ｉ））。スレーブＳＬＶ１は、調停部ＡＲＢからのトランザクション要求ＴＲＱ１４に応答してトランザクションを実行する（図５（ｊ））。調停部ＡＲＢは、トランザクション要求ＴＲＱ１４に対応するトランザクションの処理結果ＴＲＳＬＴ１４を、バスＢＵＳを介してスレーブＳＬＶ１から受信する（図５（ｋ））。
【００８１】
図５に示す例では、スレーブＳＬＶ１がトランザクション要求ＴＲＱ１４に対応するトランザクションを実行している期間は、転送間隔ｔＴＲＱＰ１より短い。このため、調停部ＡＲＢがトランザクション要求ＴＲＱ１４に対応する処理結果ＴＲＳＬＴ１４を受信したとき、先行発行部ＰＲＥのタイマＴＭＲ１は、転送間隔ｔＲＴＱＰ１を計測中である。
【００８２】
調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを受信する前に、処理結果ＴＲＳＬＴ１４を受信した場合、先行発行部ＰＲＥに、応答ＲＥＴを出力することなく、削除指示ＤＥＬを出力する（図５（ｌ））。先行発行部ＰＲＥは、タイマＴＭＲ１の起動中に削除指示ＤＥＬを受信した場合、タイマＴＭＲ１を停止する。換言すれば、式（１）により示される時間間隔ｔＮＥＸＴが正値の場合、タイマＴＭＲ１は停止され、仮のトランザクション要求ＰＴＲＱの発行は抑止される。これにより、時間間隔ｔＮＥＸＴが正値の場合、正規のトランザクション要求ＴＲＱ１５が発行された後に、仮のトランザクション要求ＰＴＲＱが発行されることを抑止することができる。この結果、シミュレーション装置ＳＩＭ２の誤動作を抑止することができる。
【００８３】
調停部ＡＲＢは、時間間隔ｔＮＥＸＴ（正値）を示す情報を含む処理結果ＴＲＳＬＴ１４をマスタＭＳＴ１に出力する（図５（ｍ））。調停部ＡＲＢは、調停処理において、既に保持しているトランザクション要求ＴＲＱ２２を選択する。マスタＭＳＴ１は、処理結果ＴＲＳＬＴ１４の受信から時間間隔ｔＮＥＸＴを置いて、次のトランザクション要求ＴＲＱ１５を発行する（図５（ｎ））。調停部ＡＲＢは、調停処理により選択したトランザクション要求ＴＲＱ２２をバスＢＵＳに転送し、スレーブＳＬＶ２は、トランザクション要求ＴＲＱ２２に対応するトランザクションを実行する（図５（ｏ）、（ｐ））。
【００８４】
調停部ＡＲＢは、トランザクション要求ＴＲＱ２２に含まれる生成フラグＦＬＧ（＝１）に基づいて、発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する。先行発行部ＰＲＥは、発行指示ＰＲＥＱに基づいて、トランザクション要求ＴＲＱ２２を発行したマスタＭＳＴ２に設定された発行間隔ｔＴＲＱＰ２を計測し、発行間隔ｔＴＲＱＰ２後に仮のトランザクション要求ＰＴＲＱを発行する（図５（ｑ））。
【００８５】
調停部ＡＲＢは、処理結果ＴＲＳＬＴ２２の受信に伴い、処理結果ＴＲＳＬＴ２２をマスタＭＳＴ２に転送する。次に、調停部ＡＲＢは、調停処理において、トランザクション要求ＴＲＱ２３に対応する仮のトランザクション要求ＰＴＲＱの選択を保留し、トランザクション要求ＴＲＱ１５を選択する。また、調停部ＡＲＢは、応答ＲＥＴおよび削除指示ＤＥＬを先行発行部ＰＲＥに出力する（図５（ｒ））。マスタＭＳＴ２は、処理結果ＴＲＳＬＴ２２とともに受信する時間間隔ｔＮＥＸＴが負値であるため、処理結果ＴＲＳＬＴ２２を受信後に時間間隔を空けずに次のトランザクション要求ＴＲＱ２３を発行する（図５（ｓ））。調停部ＡＲＢは、トランザクション要求ＴＲＱ２３の受信に基づいて、仮のトランザクション要求ＰＴＲＱの代わりにトランザクション要求ＴＲＱ２３を保持する。
【００８６】
調停部ＡＲＢは、調停処理により選択したトランザクション要求ＴＲＱ１５をバスＢＵＳに転送し、スレーブＳＬＶ１は、トランザクション要求ＴＲＱ１５に対応するトランザクションを実行する（図５（ｔ）、（ｕ））。トランザクション要求ＴＲＱ１５は、生成フラグＦＬＧ（＝１）を含むため、この後、発行指示ＰＲＥＱが生成され、仮のトランザクション要求ＰＴＲＱが発行される（図５（ｖ）、（ｗ））。
【００８７】
図６は、図３に示す先行発行部ＰＲＥを持たないシミュレーション装置の動作の例を示す。図４と同一または同様の動作については、詳細な説明は省略する。スレーブＳＬＶ１から出力される処理結果ＴＲＳＬＴ１１が調停部ＡＲＢを介してマスタＭＳＴ１に転送されるまでの動作は、先行発行部ＰＲＥに関する動作がないことを除き、図４と同様である。すなわち、先行発行部ＰＲＥを持たないシミュレーション装置では、調停部ＡＲＢは、図４に示す発行指示ＰＲＥＱを出力せず、仮のトランザクション要求ＰＴＲＱを受信しない（図６（ａ））。
【００８８】
マスタＭＳＴ１は、処理結果ＴＲＳＬＴ１１とともに受信する時間間隔ｔＮＥＸＴが負値であるため、処理結果ＴＲＳＬＴ１１を受信後に時間間隔を空けずに次のトランザクション要求ＴＲＱ１２を発行する（図６（ｂ））。しかし、調停部ＡＲＢによるトランザクション要求ＴＲＱの優先順を判定する調停処理は、処理結果ＴＲＳＬＴ１１のマスタＭＳＴ１への転送に基づいて開始されるため、トランザクション要求ＴＲＱ１２は、調停処理に間に合わない（図６（ｃ））。
【００８９】
このため、調停部ＡＲＢは、調停処理において、トランザクション要求ＴＲＱ１２ではなく、既に受信しているトランザクション要求ＴＲＱ２１を選択し、選択したトランザクション要求ＴＲＱ２１をバスＢＵＳに転送する（図６（ｄ））。
【００９０】
この後、調停部ＡＲＢは、処理結果ＴＲＳＬＴ２１をマスタＭＳＴ２に転送した後の調停処理において、マスタＭＳＴ１からのトランザクション要求ＴＲＱ１２を選択し、選択したトランザクション要求ＴＲＱ１２をバスＢＵＳに転送する（図６（ｅ））。
【００９１】
このように、時間間隔ｔＮＥＸＴが負値である場合、検証対象のＬＳＩでは優先的に選択されるトランザクション要求ＴＲＱ１２の代わりにトランザクション要求ＴＲＱ２１が選択される。すなわち、先行発行部ＰＲＥを持たないシミュレーション装置では、検証対象のＬＳＩの動作をトランザクションレベルのシミュレーションにより再現することは困難である。
【００９２】
図７および図８は、図４に示すシミュレーション装置ＳＩＭ２の動作において、時刻保持部ＴＨＬＤに保持される情報の変化の例を示す。図７および図８に示す時刻ｔ０１から時刻ｔ１７は、図４および図５に示す時刻ｔ０１から時刻ｔ１７に対応する。図７および図８において、時刻保持部ＴＨＬＤ内の太枠で示す領域は、括弧内に示す時刻に書き込まれる情報を示す。
【００９３】
図７および図８において、一番上の欄は、マスタＭＳＴと調停部ＡＲＢとの間でトランザクション要求ＴＲＱおよび処理結果ＴＲＳＬＴが転送される場合の時刻保持部ＴＨＬＤの状態の変化を示す。一番下の欄は、調停部ＡＲＢ、バスＢＵＳおよびスレーブＳＬＶの間でトランザクション要求ＴＲＱおよび処理結果ＴＲＳＬＴが転送される場合の時刻保持部ＴＨＬＤの状態の変化を示す。中央の欄は、調停部ＡＲＢと先行発行部ＰＲＥとの間で転送される発行指示ＰＲＥＱ、仮のトランザクション要求ＰＴＲＱ、応答ＲＥＴおよび削除指示ＤＥＬを示す。中央の欄は、図４および図５に示す動作との対応を分かりやすくするためのものである。
【００９４】
時刻保持部ＴＨＬＤは、発行間隔ｔＴＲＱＰ（ｔＴＲＱＰ１、ｔＴＲＱＰ２）、生成フラグＦＬＧ、転送時刻ｔＴＲＱ、ｔＴＲＳＬＴおよび時間間隔ｔＮＥＸＴを格納する領域をマスタＭＳＴ１−ＭＳＴｎ毎に有する。時刻保持部ＴＨＬＤにおいて、領域ｔＴＲＱＰおよび領域ＦＬＧには、マスタＭＳＴが発行するトランザクション要求ＴＲＱに含まれる発行間隔ｔＴＲＱＰおよび生成フラグＦＬＧがそれぞれ格納される。領域ｔＴＲＱ（Ａ）には、調停部ＡＲＢがトランザクション要求ＴＲＱをバスＢＵＳに転送する時刻が格納され、領域ｔＴＲＱ（Ｂ）には、バスＢＵＳがトランザクション要求ＴＲＱをスレーブＳＬＶに転送する時刻が格納される。
【００９５】
領域ｔＴＲＳＬＴ（Ｓ）には、スレーブＳＬＶが処理結果ＴＲＳＬＴをバスＢＵＳに転送する時刻が格納され、領域ｔＴＲＳＬＴ（Ｂ）には、バスＢＵＳが処理結果ＴＲＳＬＴを調停部ＡＲＢに転送する時刻が格納される。領域ｔＴＲＳＬＴ（Ａ）には、調停部ＡＲＢが処理結果ＴＲＳＬＴをマスタＭＳＴに転送する時刻が格納される。領域ｔＮＥＸＴには、調停部ＡＲＢの時間間隔算出部ＮＥＸＴＣが算出した時間間隔ｔＮＥＸＴが格納される。
【００９６】
転送時刻ｔＴＲＱは、調停部ＡＲＢがバスＢＵＳにトランザクション要求ＴＲＱを転送する時刻ｔＴＲＱ（Ａ）、およびバスＢＵＳがスレーブＳＬＶにトランザクション要求ＴＲＱを転送する時刻ｔＴＲＱ（Ｂ）を含む。この例では、調停部ＡＲＢからバスＢＵＳに転送されるトランザクション要求ＴＲＱの転送時刻ｔＴＲＱ（Ａ）は、バスＢＵＳによる信号の伝搬遅延時間を含んで設定されるため、転送時刻ｔＴＲＱ（Ａ）、ｔＴＲＱ（Ｂ）は、互いに同じに設定される。
【００９７】
転送時刻ｔＴＲＳＬＴは、スレーブＳＬＶがバスＢＵＳに処理結果ＴＲＳＬＴを出力する時刻ｔＴＲＳＬＴ（Ｓ）、バスＢＵＳが調停部ＡＲＢに処理結果ＴＲＳＬＴを出力する時刻ｔＴＲＳＬＴ（Ｂ）を含む。また、転送時刻ｔＴＲＳＬＴは、調停部ＡＲＢがマスタＭＳＴに処理結果ＴＲＳＬＴを出力する時刻ｔＴＲＳＬＴ（Ａ）を含む。この例では、調停部ＡＲＢからマスタＭＳＴに転送される処理結果ＴＲＳＬＴの転送時刻ｔＴＲＳＬＴ（Ａ）は、バスＢＵＳによる信号の伝搬遅延時間を含んで設定されるため、転送時刻ｔＴＲＳＬＴ（Ｓ）、ｔＴＲＳＬＴ（Ｂ）は、互いに同じに設定される。
【００９８】
図９は、図３に示す調停部ＡＲＢにおける調停処理の例を示す。図９に示すフローは、シミュレーション装置ＳＩＭ２に搭載されるＣＰＵ等のコンピュータがシミュレーションプログラムを実行することで実現される。なお、調停部ＡＲＢがハードウェアにより実現される場合、図９は、調停部ＡＲＢ内の回路の動作を示す。調停処理は、トランザクション要求ＴＲＱを最初に受信した場合に開始され、または、スレーブＳＬＶから受信した処理結果ＴＲＳＬＴをマスタＭＳＴに転送したことに基づいて開始される。
【００９９】
まず、ステップＳ１０２において、調停部ＡＲＢは、優先権保持部ＰＲＨＬＤを参照し、受信しているトランザクション要求ＴＲＱおよび仮のトランザクション要求ＰＴＲＱの優先順を判定する。そして、調停部ＡＲＢは、優先順の判定結果に基づいて、スレーブＳＬＶに転送するトランザクション要求ＴＲＱ（ＰＴＲＱ）を選択する。
【０１００】
次に、ステップＳ１０４において、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを選択した場合、処理をステップＳ１０６に移行し、トランザクション要求ＴＲＱを選択した場合、処理をステップＳ１１６に移行する。
【０１０１】
ステップＳ１０６において、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱを発行するマスタＭＳＴの番号を保持し、処理をステップＳ１０８に移行する。ステップＳ１０８において、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱに対応する応答ＲＥＴを先行発行部ＰＲＥに出力する。次に、ステップＳ１１０において、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱを削除する削除指示ＤＥＬを先行発行部ＰＲＥに出力する。
【０１０２】
次に、ステップＳ１１２において、調停部ＡＲＢは、番号を保持しているマスタＭＳＴから発行されるトランザクション要求ＴＲＱを、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱとして待つ。トランザクション要求ＴＲＱを受信した場合、処理はステップＳ１１４に移行される。
【０１０３】
ステップＳ１１４において、調停部ＡＲＢは、ステップＳ１０６で保持したマスタＭＳＴの番号を削除し、処理をステップＳ１２２に移行する。
【０１０４】
一方、ステップＳ１０２でトランザクション要求ＴＲＱを抽出した場合、ステップＳ１１６において、調停部ＡＲＢは、選択しなかった仮のトランザクション要求ＰＴＲＱを保持しているか否かを判定する。選択しなかった仮のトランザクション要求ＰＴＲＱを保持している場合、処理はステップＳ１１８に移行され、選択しなかった仮のトランザクション要求ＰＴＲＱを保持していない場合、処理はステップＳ１２２に移行される。
【０１０５】
ステップＳ１１８において、調停部ＡＲＢは、選択しなかった仮のトランザクション要求ＰＴＲＱに対応する応答ＲＥＴを先行発行部ＰＲＥに出力する。次に、ステップＳ１２０において、調停部ＡＲＢは、選択しなかった仮のトランザクション要求ＰＴＲＱを削除する削除指示ＤＥＬを先行発行部ＰＲＥに出力する。例えば、ステップＳ１１８、Ｓ１２０の処理は、図５（ｅ）および図５（ｇ）において、優先度がトランザクション要求ＴＲＱ１４より低く、調停部ＡＲＢにより選択されなかった仮のトランザクション要求ＰＴＲＱに対する処理である。
【０１０６】
ステップＳ１２２において、調停部ＡＲＢは、トランザクション要求ＴＲＱをバスＢＵＳに転送し、処理をステップＳ１２４に移行する。ステップＳ１２４において、調停部ＡＲＢは、トランザクション要求ＴＲＱに含まれる生成フラグＦＬＧが”１”に設定されている場合、処理をステップＳ１２６に移行し、生成フラグＦＬＧが”０”に設定されている場合、調停処理を終了する。ステップＳ１２６において、調停部ＡＲＢは、仮のトランザクション要求ＰＴＲＱの発行を指示する発行指示ＰＲＥＱを先行発行部ＰＲＥに出力し、調停処理を終了する。
【０１０７】
図１０は、図３に示す調停部ＡＲＢにおける結果処理の例を示す。図１０に示すフローは、シミュレーション装置ＳＩＭ２に搭載されるＣＰＵ等のコンピュータがシミュレーションプログラムを実行することで実現される。なお、調停部ＡＲＢがハードウェアにより実現される場合、図１０は、調停部ＡＲＢ内の回路の動作を示す。結果処理は、スレーブＳＬＶから処理結果ＴＲＳＬＴを受信したことに基づいて開始される。
【０１０８】
まず、ステップＳ２０２において、調停部ＡＲＢは、式（１）を用いて時間間隔ｔＮＥＸＴを算出し、処理をステップＳ２０４に移行する。ステップＳ２０４において、調停部ＡＲＢは、時間間隔ｔＮＥＸＴが正値の場合、処理をステップＳ２０６に移行し、時間間隔ｔＮＥＸＴが”０”以下の場合（例えば、負値）、処理をステップＳ２０８に移行する。
【０１０９】
ステップＳ２０６において、調停部ＡＲＢは、削除指示ＤＥＬを先行発行部ＰＲＥに出力し、処理をステップＳ２０８に移行する。ステップＳ２０８において、調停部ＡＲＢは、処理結果ＴＲＳＬＴおよび時間間隔ｔＮＥＸＴをマスタＭＳＴに転送し、処理を終了する。
【０１１０】
図１１は、図３に示す先行発行部ＰＲＥの動作の例を示す。図１１に示すフローは、シミュレーション装置ＳＩＭ２に搭載されるＣＰＵ等のコンピュータがシミュレーションプログラムを実行することで実現される。なお、先行発行部ＰＲＥがハードウェアにより実現される場合、図１１は、先行発行部ＰＲＥ内の回路の動作を示す。図１１に示す動作は、シミュレーション装置ＳＩＭ２が実行するシミュレーションの基本の単位であるサイクル毎に実行される。
【０１１１】
まず、ステップＳ３０２において、先行発行部ＰＲＥは、タイマＴＭＲ１による計測が完了したか否かを判定する。タイマＴＭＲ１による計測が完了した場合、処理はステップＳ３０４に移行され、タイマＴＭＲ１が計測中の場合、またはタイマＴＭＲ１が計測を実行していない場合、処理はステップＳ３０６に移行される。
【０１１２】
ステップＳ３０４において、先行発行部ＰＲＥは、仮のトランザクション要求ＰＴＲＱを調停部ＡＲＢに発行し、処理を終了する。ステップＳ３０６において、先行発行部ＰＲＥは、調停部ＡＲＢから発行指示ＰＲＥＱを受信した場合、処理をステップＳ３０８に移行し、調停部ＡＲＢから発行指示ＰＲＥＱを受信していない場合、処理をステップＳ３１２に移行する。
【０１１３】
ステップＳ３０８において、先行発行部ＰＲＥは、発行指示ＰＲＥＱに含まれる発行間隔ｔＴＲＱＰをタイマＴＭＲ１にセットし、処理をステップＳ３１０に移行する。ステップＳ３１０において、先行発行部ＰＲＥは、タイマＴＭＲ１を起動し、処理を終了する。
【０１１４】
ステップＳ３１２において、先行発行部ＰＲＥは、調停部ＡＲＢから削除指示ＤＥＬを受信した場合、処理をステップＳ３１４に移行し、調停部ＡＲＢから削除指示ＤＥＬを受信していない場合、処理を終了する。ステップＳ３１４において、先行発行部ＰＲＥは、タイマＴＭＲ１が起動中の場合、タイマＴＭＲ１を停止することで、仮のトランザクション要求ＰＴＲＱの発行を抑止し、処理を終了する。
【０１１５】
以上、図３から図１１に示す実施形態においても、図１から図２に示す実施形態と同様に、仮のトランザクション要求ＰＴＲＱを用いて調停処理を実行することで、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。この際、発行指示ＰＲＥＱにトランザクション要求ＴＲＱの発行間隔ｔＴＲＱＰを含めることで、マスタＭＳＴ毎に仮のトランザクション要求ＰＴＲＱの発行タイミングを設定することができる。
【０１１６】
さらに、図３から図１１に示す実施形態では、優先順がマスタＭＳＴ１より低いマスタＭＳＴ２に対応する仮のトランザクション要求ＰＴＲＱが発行された場合にも、検証対象のＬＳＩの動作をシミュレーションにより再現することができる。
【０１１７】
トランザクション要求ＴＲＱに含まれる生成フラグＦＬＧに基づいて、仮のトランザクション要求ＰＴＲＱの発行を抑止させることができ、マスタＭＳＴ１から発行されないトランザクション要求ＴＲＱを調停部ＡＲＢが待ち続けることを抑止することができる。この結果、シミュレーションの進行が停止する誤動作を抑止することができる。
【０１１８】
仮のトランザクション要求ＰＴＲＱを受信する前に処理結果ＴＲＳＬＴを受信した場合、タイマＴＭＲ１を停止することで、正規のトランザクション要求ＴＲＱが発行された後に、仮のトランザクション要求ＰＴＲＱが発行されることを抑止することができる。この結果、シミュレーション装置ＳＩＭ２の誤動作を抑止することができる。
【０１１９】
図１２は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す。図３から図１１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。例えば、シミュレーション装置ＳＩＭ３は、図１に示すシミュレーション装置ＳＩＭ１と同様に、複数のＩＰコアを含むＬＳＩの機能の検証に使用される。
【０１２０】
シミュレーション装置ＳＩＭ３は、調停部ＡＲＢに設けられるトランザクション調整部ＴＡＤＪおよび時刻保持部ＴＨＬＤが、図３に示すトランザクション調整部ＴＡＤＪおよび時刻保持部ＴＨＬＤと相違する。シミュレーション装置ＳＩＭ３のその他の構成は、図３に示すシミュレーション装置ＳＩＭ２と同様である。すなわち、ｎ個のマスタＭＳＴ１−ＭＳＴｎは、調停部ＡＲＢに接続され、調停部ＡＲＢは、トランザクション制御部ＴＲＣＮＴ、優先権保持部ＰＲＨＬＤ、トランザクション調整部ＴＡＤＪ、時間間隔算出部ＮＥＸＴＣおよび時刻保持部ＴＨＬＤを有する。なお、図３と同様に、マスタＭＳＴおよびスレーブＳＬＶは、検証対象のＬＳＩに搭載されるＩＰコアに対応しており、検証対象のＬＳＩに搭載されるＩＰコアに合わせて、シミュレーション装置ＳＩＭ３内に構築される。
【０１２１】
トランザクション調整部ＴＡＤＪは、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱのタイムアウトを検出するタイマＴＭＲ２を有する。時刻保持部ＴＨＬＤは、生成フラグＦＬＧを格納する領域を持たないことを除き、図３に示す時刻保持部ＴＨＬＤと同様である。また、マスタＭＳＴから発行される各トランザクション要求ＴＲＱは、生成フラグＦＬＧの情報を持たない
図１３は、図１２に示すシミュレーション装置ＳＩＭ３の動作の例を示す。図４と同一または同様の動作については、詳細な説明は省略する。
【０１２２】
シミュレーション装置ＳＩＭ３では、調停部ＡＲＢは、トランザクション要求ＴＲＱのバスＢＵＳへの転送毎に、発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する（図１３（ａ）、（ｂ）、（ｃ））。すなわち、図４と異なり、時刻ｔ１７において、調停部ＡＲＢは、発行指示ＰＲＥＱを先行発行部ＰＲＥに出力する。マスタＭＳＴから発行される各トランザクション要求ＴＲＱは、図４に示す生成フラグＦＬＧの情報を持たない（図１３（ｄ）、（ｅ）、（ｆ）、（ｇ））。なお、図４と同様に、トランザクション要求ＴＲＱ１３は、連続して処理する所定数のトランザクションのうち、最後のトランザクションに対応する。このため、マスタＭＳＴ１は、トランザクション要求ＴＲＱ１３を発行してからしばらくの間、次のトランザクション要求ＴＲＱ１４を発行しない。
【０１２３】
調停部ＡＲＢは、処理結果ＴＲＳＬＴのマスタＭＳＴへの転送に基づいて、タイマＴＭＲ２を起動し、タイマＴＭＲ２は、タイムアウト時間ｔＴＯを計測する（図１３（ｈ）、（ｉ））。そして、調停部ＡＲＢは、タイムアウト時間ｔＴＯの計測中に、既に受信している仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱを受信した場合、仮のトランザクション要求ＰＴＲＱを含めた優先順の判定結果を採用する。そして、調停部ＡＲＢは、優先順の判定結果に基づいて選択したトランザクション要求ＴＲＱをバスＢＵＳに転送する（図１３（ｊ）、（ｋ））。
【０１２４】
一方、調停部ＡＲＢは、タイムアウト時間ｔＴＯの計測中に、既に受信している仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱを受信しない場合、仮のトランザクション要求ＰＴＲＱを優先順の判定結果から除外する。仮のトランザクション要求ＰＴＲＱが優先順の判定結果から除外される例は、図１４で説明する。
【０１２５】
図１４は、図１２に示すシミュレーション装置ＳＩＭ３の動作の例（図１３の続き）を示す。図５と同一または同様の動作については、詳細な説明は省略する。
【０１２６】
図１４では、処理結果ＴＲＳＬＴ１３に対応するタイムアウト時間ｔＴＯに、仮のトランザクション要求ＴＲＱに対応するトランザクション要求ＴＲＱ１４がマスタＭＳＴ１から発行されないため、調停部ＡＲＢは、タイムアウトを検出する（図１４（ａ））。調停部ＡＲＢは、タイムアウトを検出した場合、応答ＲＥＴおよび削除指示ＤＥＬを先行発行部ＰＲＥに出力する（図１４（ｂ））。そして、調停部ＡＲＢは、トランザクション要求ＴＲＱを伴わない仮のトランザクション要求ＰＴＲＱを調停処理から除外する。調停部ＡＲＢは、既に受信しているトランザクション要求ＴＲＱ（この例では、ＴＲＱ２１）の優先順を判定し、判定結果に基づいて選択したトランザクション要求ＴＲＱをバスＢＵＳに転送する（図１４（ｃ））。その後の動作は、図５と同様である。
【０１２７】
タイムアウト時間ｔＴＯの判定により、調停部ＡＲＢが、仮のトランザクション要求ＰＴＲＱに対応するトランザクション要求ＴＲＱ１４を待ち続けることを避けることができ、シミュレーション装置ＳＩＭ３の誤動作を抑止することができる。すなわち、トランザクション要求ＴＲＱ１４を待ち続けた場合、調停部ＡＲＢは、トランザクション要求ＴＲＱ２１を選択することなく、トランザクション要求ＴＲＱ１４を選択して、バスＢＵＳに転送する。この結果、検証対象のＬＳＩの動作（図５に示す動作）と異なる動作がシミュレーションにより実行される。
【０１２８】
以上、図１２から図１４に示す実施形態においても、図３から図１１に示す実施形態と同様に、のトランザクション要求ＰＴＲＱを用いて調停処理を実行することで、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。
【０１２９】
さらに、図１２から図１４に示す実施形態では、調停部ＡＲＢにより検出されるタイムアウトに基づいて仮のトランザクション要求ＰＴＲＱを削除することで、シミュレーション装置ＳＩＭ３の誤動作を抑止することができる。
【０１３０】
図１５は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す。図３から図１１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。例えば、シミュレーション装置ＳＩＭ４は、図３に示すシミュレーション装置ＳＩＭ２と同様に、複数のＩＰコアを含むＬＳＩの機能の検証に使用される。
【０１３１】
シミュレーション装置ＳＩＭ４は、図３に示すスレーブＳＬＶ１−ＳＬＶｍの代わりに、ｉ個（ｉは１以上の整数）のスレーブＳＬＶａ（ＳＬＶａ１−ＳＬＶａｉ）とｊ個（ｊは１以上の整数）のスレーブＳＬＶｂ（ＳＬＶｂ１−ＳＬＶｂｊ）を有する。なお、”ｉ”が”１”の場合、シミュレーション装置ＳＩＭ４は、１つのスレーブＳＬＶａを有し、”ｊ”が”１”の場合、シミュレーション装置ＳＩＭ４は、１つのスレーブＳＬＶｂを有する。スレーブＳＬＶａ１−ＳＬＶａｉは、バスを介することなく調停部ＡＲＢに接続され、スレーブＳＬＶｂ１−ＳＬＶｂｊは、バスＢＵＳを介して調停部ＡＲＢに接続される。
【０１３２】
シミュレーション装置ＳＩＭ４のその他の構成は、図３に示すシミュレーション装置ＳＩＭ２と同様である。すなわち、ｎ個のマスタＭＳＴ１−ＭＳＴｎは、調停部ＡＲＢに接続され、調停部ＡＲＢは、トランザクション制御部ＴＲＣＮＴ、優先権保持部ＰＲＨＬＤ、トランザクション調整部ＴＡＤＪ、時間間隔算出部ＮＥＸＴＣおよび時刻保持部ＴＨＬＤを有する。なお、図３と同様に、マスタＭＳＴおよびスレーブＳＬＶは、検証対象のＬＳＩに搭載されるＩＰコアに対応しており、検証対象のＬＳＩに搭載されるＩＰコアに合わせて、シミュレーション装置ＳＩＭ４内に構築される。
【０１３３】
図１６は、図１５に示すシミュレーション装置ＳＩＭ４の動作の例を示す。図４と同様の動作については、詳細な説明は省略する。図１６に示す例においても、優先権保持部ＰＲＨＬＤによる優先度は、マスタＭＳＴ１、マスタＭＳＴ２、...、マスタＭＳＴｎの順に設定される。
【０１３４】
図１６では、トランザクション要求ＴＲＱ１１は、スレーブＳＬＶａ１に対して発行され、トランザクション要求ＴＲＱ１２、ＴＲＱ１３は、スレーブＳＬＶｂ１に対して発行される。トランザクション要求ＴＲＱ１１、ＴＲＱ１２、ＴＲＱ１３に基づくシミュレーション装置ＳＩＭ４の動作は、トランザクションを実行するスレーブＳＬＶが異なることを除き、図４と同様である。
【０１３５】
以上、図１５および図１６に示す実施形態においても、図３から図１１に示す実施形態と同様に、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。
【０１３６】
図１７は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムの別の実施形態を示す。図３から図１１に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。例えば、シミュレーション装置ＳＩＭ５は、図３に示すシミュレーション装置ＳＩＭ２と同様に、複数のＩＰコアを含むＬＳＩの機能の検証に使用される。
【０１３７】
シミュレーション装置ＳＩＭ５は、バスＢＵＳｃを介してスレーブＳＬＶ１に接続されたｋ個（ｋは１以上の整数）のスレーブＳＬＶｃ（ＳＬＶｃ１−ＳＬＶｃｋ）を有する。シミュレーション装置ＳＩＭ５のその他の構成は、図３に示すシミュレーション装置ＳＩＭ２と同様である。すなわち、ｎ個のマスタＭＳＴ１−ＭＳＴｎは、調停部ＡＲＢに接続され、調停部ＡＲＢは、トランザクション制御部ＴＲＣＮＴ、優先権保持部ＰＲＨＬＤ、トランザクション調整部ＴＡＤＪ、時間間隔算出部ＮＥＸＴＣおよび時刻保持部ＴＨＬＤを有する。なお、図３と同様に、マスタＭＳＴおよびスレーブＳＬＶは、検証対象のＬＳＩに搭載されるＩＰコアに対応しており、検証対象のＬＳＩに搭載されるＩＰコアに合わせて、シミュレーション装置ＳＩＭ５内に構築される。
【０１３８】
図１８は、図１７に示すシミュレーション装置ＳＩＭ５の動作の例を示す。図４と同様の動作については、詳細な説明は省略する。図１８に示す例においても、優先権保持部ＰＲＨＬＤによる優先度は、マスタＭＳＴ１、マスタＭＳＴ２、...、マスタＭＳＴｎの順に設定される。
【０１３９】
図１８では、トランザクション要求ＴＲＱ１１は、バスＢＵＳを介してスレーブＳＬＶ１に発行され、トランザクション要求ＴＲＱ１２、ＴＲＱ１３は、バスＢＵＳ、スレーブＳＬＶ１およびバスＢＵＳｃを介してスレーブＳＬＶｃ１に発行される。このため、時刻保持部ＴＨＬＤは、スレーブＳＬＶ１がバスＢＵＳｃを介してスレーブＳＬＶｃ１にトランザクション要求ＴＲＱ１１を転送する時刻を保持する領域を有する。また、時刻保持部ＴＨＬＤは、スレーブＳＬＶｃ１がバスＢＵＳｃを介してスレーブＳＬＶ１に処理結果ＴＲＳＬＴ１１を転送する時刻を保持する領域を有する。トランザクション要求ＴＲＱ１１、ＴＲＱ１２、ＴＲＱ１３に基づくシミュレーション装置ＳＩＭ５の動作は、トランザクションを実行するスレーブＳＬＶが異なること、および時刻保持部ＴＨＬＤが保持する情報が異なることを除き、図４と同様である。
【０１４０】
以上、図１７および図１８に示す実施形態においても、図３から図１１に示す実施形態と同様に、検証対象のＬＳＩの動作をシミュレーションにより正しく再現することができる。
【０１４１】
図１９は、図１、図３、図１２、図１５および図１７に示すシミュレーション装置ＳＩＭ１（またはＳＩＭ２、ＳＩＭ３、ＳＩＭ４、ＳＩＭ５）のハードウェア構成の一例を示す。シミュレーション装置ＳＩＭ２、ＳＩＭ３、ＳＩＭ４、ＳＩＭ５のハードウェア構成は、シミュレーション装置ＳＩＭ１のハードウェア構成と同一または同様のため、以下では、シミュレーション装置ＳＩＭ１について説明する。
【０１４２】
例えば、シミュレーション装置ＳＩＭ１は、プリント基板ＰＷＢおよび光学ドライブ装置ＯＤＤ、ハードディスク装置ＨＤＤ、入力装置ＩＮＤおよび出力装置ＯＵＴＤを有するコンピュータである。プリント基板ＰＷＢ上には、ＣＰＵ、メモリＭＥＭ、光学ドライブコントローラＯＤＣ、ハードディスクコントローラＨＤＣ、入力インタフェースＩＮＩＦ、出力インタフェースＯＵＴＩＦおよびネットワークインタフェースＮＷＩＦが搭載される。ＣＰＵ、メモリＭＥＭ、光学ドライブコントローラＯＤＣ、ハードディスクコントローラＨＤＣ、入力インタフェースＩＮＩＦ、出力インタフェースＯＵＴＩＦおよびネットワークインタフェースＮＷＩＦは、システムバスＳＢＵＳに接続される。なお、ＣＰＵ、メモリＭＥＭ、光学ドライブコントローラＯＤＣ、ハードディスクコントローラＨＤＣ、入力インタフェースＩＮＩＦ、出力インタフェースＯＵＴＩＦおよびネットワークインタフェースＮＷＩＦのうちの幾つかは、半導体チップに搭載されてもよい。
【０１４３】
ＣＰＵは、メモリＭＥＭに格納されたシミュレーションプログラムを実行することで、図１から図１８で説明した動作を実現する。例えば、メモリＭＥＭは、ＲＡＭ（Random Access Memory）であり、シミュレーションプログラムを格納する領域や、ワークデータを格納する領域が割り当てられる。なお、シミュレーション装置ＳＩＭ２、ＳＩＭ３、ＳＩＭ４、ＳＩＭ５においても、ＣＰＵは、メモリＭＥＭに格納されたシミュレーションプログラムを実行することで、上述した動作を実現する。
【０１４４】
光学ドライブコントローラＯＤＣは、光学ドライブ装置ＯＤＤに接続され、光学ドライブ装置ＯＤＤに装着される記録媒体ＲＭにアクセス可能である。シミュレーションプログラムおよびシミュレーションで使用するデータ等は、記録媒体ＲＭに格納されてもよい。この場合、シミュレーションプログラムおよびシミュレーションで使用するデータ等は、光学ドライブ装置ＯＤＤを介して記録媒体ＲＭからハードディスク装置ＨＤＤにダウンロードされる。なお、ＣＰＵは、ハードディスク装置ＨＤＤを介することなく、記録媒体ＲＭからメモリＭＥＭにシミュレーションプログラムをダウンロードしてもよい。
【０１４５】
ハードディスクコントローラＨＤＣは、ハードディスク装置ＨＤＤに接続される。例えば、シミュレーション装置ＳＩＭ１の電源が起動されたときに、ＣＰＵは、ハードディスク装置ＨＤＤに格納されているシミュレーションプログラムをメモリＭＥＭに転送し、メモリＭＥＭに転送されたプログラムを実行することで動作する。
【０１４６】
入力インタフェースＩＮＩＦは、キーボードやマウス等の入力デバイスＩＮＤに接続される。出力インタフェースＯＵＴＩＦは、ディスプレイやプリンタ等の出力デバイスＯＵＴＤに接続される。ネットワークインタフェースＮＷＩＦは、ネットワークＮＷに接続される。ＣＰＵは、ネットワークＮＷ上の装置に格納されたシミュレーションプログラムを、ネットワークＮＷを介してハードディスク装置ＨＤＤやメモリＭＥＭにダウンロードしてもよい。
【０１４７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１４８】
１０ａ、１０ｂ…制御部；２０…調停部；３０…処理部；４０…先行発行部；ＡＲＢ…調停部；ＢＵＳ、ＢＵＳｃ…バス；ＤＥＬ…削除指示；ＦＬＧ…生成フラグ；ＨＤＣ…ハードディスクコントローラ；ＨＤＤ…ハードディスク装置；ＩＮＤ…入力装置；ＩＮＩＦ…入力インタフェース；ＭＥＭ…メモリ；ＭＳＴ…マスタ；ＮＥＸＴＣ…時間間隔算出部；ＮＷＩＦ…ネットワークインタフェース；ＯＤＣ…光学ドライブコントローラ；ＯＤＤ…光学ドライブ装置；ＯＵＴＩＦ…出力インタフェース；ＯＵＴＤ…出力装置；ＰＣＮＴ…先行制御部；ＰＤＥＬ…先行削除部；ＰＨＬＤ…保持部；ＰＧＥＮ…先行生成部；ＰＲＥ…先行発行部；ＰＲＥＱ…発行指示；ＰＲＨＬＤ…優先権保持部；ＰＴＲＱ…仮のトランザクション要求；ＰＷＢ…プリント基板；ＲＥＴ…応答；ＲＭ…記録媒体；ＳＢＵＳ…システムバス；ＳＩＭ１、ＳＩＭ２、ＳＩＭ３、ＳＩＭ４、ＳＩＭ５…シミュレーション装置；ＳＬＶ…スレーブ；ＴＡＤＪ…トランザクション調整部；ＴＨＬＤ…時刻保持部；ＴＭＲ１、ＴＭＲ２…タイマ；ｔＮＥＸＴ…時間間隔；ＴＲＣＮＴ…トランザクション制御部；ＴＲＱ…トランザクション要求；ＴＲＳＬＴ…処理結果；ｔＴＲＱ…転送時刻；ｔＴＲＱＰ…発行間隔；ｔＴＲＳＬＴ…転送時刻
【図１】
2016218677.tif 000003
【図２】
2016218677.tif 000004
【図３】
2016218677.tif 000005
【図４】
2016218677.tif 000006
【図５】
2016218677.tif 000007
【図６】
2016218677.tif 000008
【図７】
2016218677.tif 000009
【図８】
2016218677.tif 000010
【図９】
2016218677.tif 000011
【図１０】
2016218677.tif 000012
【図１１】
2016218677.tif 000013
【図１２】
2016218677.tif 000014
【図１３】
2016218677.tif 000015
【図１４】
2016218677.tif 000016
【図１５】
2016218677.tif 000017
【図１６】
2016218677.tif 000018
【図１７】
2016218677.tif 000019
【図１８】
2016218677.tif 000020
【図１９】
2016218677.tif 000021