(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルであって、コンピュータがシミュレータを実行することでデバッグ対象プログラムを実行するＬＳＩモデルの記述ファイルにおいて、
前記コンピュータが有する第１の記憶手段より書き込み速度が速く前記バスモデルに接続される第２の記憶手段モデルの記述と、
ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報と、前記第１の記憶手段または前記第２の記憶手段モデルのいずれかを前記ログ情報を格納するログ格納領域として指定する格納領域指定情報とを含むログ制御情報を設定するログ制御手段の記述と、
前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報として、前記格納領域指定情報の示すログ格納領域に記憶させるログ出力手段の記述と、
を有するＬＳＩモデルの記述ファイル。
【請求項２】
請求項１において、
前記デバッグ対象プログラムに記述されたログ取得指示コードが前記プロセッサモデルに処理されることによって、前記ログ制御情報の指示情報が前記バスモデルを介して前記ログ制御手段に出力され、
前記ログ制御手段は、前記ログ制御情報の指示情報に応じて前記ログ制御情報の取得要否情報を設定するＬＳＩモデルの記述ファイル。
【請求項３】
請求項１において、
前記ＬＳＩモデルに入力されたログ取得指示コードが前記プロセッサモデルに処理されることによって、前記ログ制御情報の指示情報が前記バスモデルを介して前記ログ制御手段に出力され、
前記ログ制御手段は、前記ログ制御情報の指示情報に応じて前記ログ制御情報の取得要否情報を設定するＬＳＩモデルの記述ファイル。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記ログ制御情報は、さらに、任意の数字または文字のいずれかまたは両方を有する拡張情報を含み、
前記ログ出力手段は、前記ログ制御情報が前記拡張情報である場合に、さらに前記拡張情報を前記ログ情報として前記ログ格納領域に記憶させるＬＳＩモデルの記述ファイル。
【請求項５】
ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルを実行することでデバッグ対象プログラムを実行するシミュレーションシステムにおいて、
前記ＬＳＩモデルの記述ファイルは、
前記シミュレーションシステムが有する第１の記憶手段より書き込み速度が速く前記バスモデルに接続される前記第２の記憶手段モデルの記述と、
ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報と、前記第１の記憶手段または前記第２の記憶手段モデルのいずれかを前記ログ情報を格納するログ格納領域として指定する格納領域指定情報とを含むログ制御情報を設定するログ制御手段の記述と、
前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報として、前記格納領域指定情報の示すログ格納領域に記憶させるログ出力手段の記述とを有し、
前記デバッグ対象プログラムは、
前記プロセッサモデルに処理されることによって、前記ログ制御情報の指示情報が前記バスモデルを介して前記ログ制御手段に出力されるログ取得指示コードを有し、
前記ログ制御手段の記述は、前記ログ制御情報の指示情報に応じて前記ログ制御情報の取得要否情報を設定するシミュレーションシステム。
【請求項６】
ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルを実行することでデバッグ対象プログラムを実行する前記デバッグ対象プログラムのデバッグ方法において、
ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報と、コンピュータが有する第１の記憶手段、または、前記第１の記憶手段より書き込み速度が速く前記バスモデルに接続される第２の記憶手段モデルのいずれかを前記ログ情報を格納するログ格納領域として指定する格納領域指定情報とを含むログ制御情報を設定するログ制御工程と、
前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報として、前記格納領域指定情報の示すログ格納領域に記憶させるログ出力工程と、
を有するデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩモデルの記述ファイル、シミュレーションシステム、デバッグ方法に関する。
【背景技術】
【０００２】
組み込みシステムで動作するソフトウェア（組込みソフトウェア）は、ハードウェアを制御する。このため、従来の組み込みシステムの開発では、ハードウェアが完成してから組み込みソフトウェアの開発を開始していた。ところが、近年では、ＥＳＬ（Electronic System Level）設計手法等に基づくシミュレーション環境を使用することによって、ハードウェアの完成前に組み込みソフトウェアの開発を開始することが可能となっている（例えば、特許文献１）。
【０００３】
このようなシミュレーションでは、組み込みシステム内に含まれる集積回路などのハードウェアをモデル化し、組み込みソフトをＬＳＩモデルで実行するシミュレーションが行われる。ＬＳＩモデルを記述するための言語として、例えば、ＳｙｓｔｅｍＣが使用される。
【０００４】
また、組込みソフトウェアのデバッグでは、レジスタやメモリへのアクセス、割込み発生等が検証項目とされる。そのため、シミュレーション時に、デバッガによって検証対象のコード部分にブレークポイントを設定し、ステップ単位に処理を実行させながら、検証項目を確認する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−５５１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のシミュレーションによるデバッグでは、ＬＳＩモデル内のハードウェアＩＰ間のアクセスについては、ＣＰＵ（Central Processing Unit）、即ち仮想環境ではＩＳＳ（Instruction set simulator）を介さない場合があるため、検証項目の情報を確認することができなかった。ハードウェアＩＰ間のアクセスとは、例えば、ＤＭＡ（Direct Memory Access）を使用したデータ転送やレジスタ書込みを示す。
【０００７】
また、従来のシミュレーション環境においてログ情報を取得する場合、詳細なログ出力の制御を行えないことにより、検証項目の確認のために必要なログ情報のみを取得することが困難であった。
【０００８】
本発明は、組み込みシステムで動作するソフトウェアの検証を効率化するＬＳＩモデルの記述ファイル、シミュレーションシステム、デバッグ方法を提供することにある。
【課題を解決するための手段】
【０００９】
第１の側面は、ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルであって、コンピュータがシミュレータを実行することでデバッグ対象プログラムを実行するＬＳＩモデルの記述ファイルにおいて、ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報を含むログ制御情報を設定するログ制御手段の記述と、前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報としてログ格納領域に記憶させるログ出力手段の記述と、を有する。
【発明の効果】
【００１０】
第１の側面によれば、組み込みシステムで動作するソフトウェアの検証が効率化される。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態例におけるシミュレーション装置の構成の一例を示す図である。
【図２】ソフトウェア実行形式ファイルのデバッグ工程を説明するフローチャート図である。
【図３】バーチャルプラットフォーム、ソフトウェア実行形式ファイル、ログファイルの生成処理を説明する図である。
【図４】中間ログ制御部の有するログ制御情報のレジスタの一例を説明する図である。
【図５】ソースコードに追加されるログ取得指示コードの一例について説明する図である。
【図６】中間ログファイルの一例を表す図である。
【図７】中間ログ出力部及びバスモデルのブロック図の一例を表す図である。
【図８】中間ログ出力部の処理の概要を示すフローチャート図である。
【図９】転送情報がＩＳＳから周辺回路のレジスタへのアクセスである場合のログ情報の制御処理を説明するフローチャート図である。
【図１０】転送情報が割り込み処理を示す場合のログ情報制御処理を説明するフローチャート図である。
【図１１】転送情報が周辺回路間のアクセスである場合のログ情報の制御処理を説明するフローチャート図である。
【図１２】変換前の中間ログファイルと変換後のログファイルとを示す例図である。
【図１３】中間ログファイルの変換処理を説明するフローチャート図である。
【発明を実施するための形態】
【００１２】
［シミュレーション装置］
図１は、本実施の形態例におけるシミュレーション装置１の構成の一例を示す図である。同図において、シミュレーション装置１は、ＯＳ（Operation System）１００と、ＯＳ１００上で動作するＳｙｓｔｅｍＣシミュレータＳＭ、ＩＤＥ（Integrated Development Environment）１２、ファイルシステム１３、ログ整形装置１４等を有する。ＩＤＥ１２はソフトウェアの開発環境を示し、例えば、コンパイラ２１、デバッガ２２を有する。また、シミュレーション装置１は、さらに、ＳｙｓｔｅｍＣシミュレータＳＭによってシミュレーション実行されるバーチャルプラットフォームＶＴと、当該バーチャルプラットフォームＶＴによって実行されるデバッグ対象のソフトウェア実行形式ファイル（デバッグ対象プログラム）ＰＲとを有する。
【００１３】
本実施の形態例では、ソフトウェア実行形式ファイルＰＲが動作するハードウェアが生成される前に、ソフトウェア実行形式ファイルＰＲのデバッグ処理を進める。そこで、ユーザは、ハードウェアの代わりに、ハードウェアに対応するＬＳＩモデルＭＤを有するバーチャルプラットフォームＶＴ上でデバッグ対象のソフトウェア実行形式ファイルＰＲを動作させ、検証を行う。
【００１４】
バーチャルプラットフォームＶＴは、例えば、ＳｙｓｔｅｍＣライブラリＳＬと、ＳｙｓｔｅｍＣで記述されたＬＳＩモデルＭＤとを有する。ＳｙｓｔｅｍＣライブラリＳＬは、例えば、機能単位のプログラムを他のプログラムから利用可能に部品化し、ライブラリ化したものである。ＳｙｓｔｅｍＣシミュレータＳＭは、ＳｙｓｔｅｍＣライブラリＳＬと連携して、ＬＳＩモデルＭＤをシミュレート実行する。
【００１５】
図１において、本実施の形態例におけるＬＳＩモデルＭＤは、例えば、ＩＳＳ３２、ＲＯＭ／ＲＡＭモデル３１、複数のＨＷＩＰモデルＰ１〜Ｐ３、バスモデル３３、中間ログ出力部５１、中間ログ制御部５２を有する。各構成部は、バスモデル３３を介して接続されている。ＩＳＳ３２はプロセッサモデルであり、ソフトウェア実行形式ファイルＰＲの各命令を処理すると共に、ＬＳＩモデルＭＤ全体を制御する。また、ＲＯＭ／ＲＡＭモデル３１は、中間ログ格納領域５３を有する。中間ログ出力部５１は、中間ログ制御部５２の有するログ制御情報に基づいて、バスモデル３３で処理される転送情報をログ情報として取得し、例えば、ＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３に記憶させる。
【００１６】
ソフトウェア実行形式ファイルＰＲは、ソースコード１０とヘッダファイル１１がコンパイラ２１によって実行形式のファイルに変換されたものである。ソースコード１０及びヘッダファイル１１は、例えば、Ｃ、Ｃ＋＋等の言語によって記述される。ソースコード１０には、必要に応じて、ログ取得指示コードが記述される。ログ取得指示コードの説明及び具体例については、後述する。
【００１７】
ソフトウェア実行形式ファイルＰＲがバーチャルプラットフォームＶＴ上で動作する場合、ソフトウェア実行形式ファイルＰＲの各命令（ログ取得指示コードを含む）は、ＬＳＩモデルＭＤのＩＳＳ３２によって処理される。ＩＳＳ３２は、例えば、命令に基づく指示情報、例えば、ＨＷＩＰモデルＰ１〜Ｐ３のレジスタへの書き込み／読み出し指示、ＲＯＭ／ＲＡＭモデル３１への書き込み／読み出し指示等の情報を、バスモデル３３を介して、対象のＨＷＩＰモデルＰ１〜Ｐ３やＲＯＭ／ＲＡＭモデル３１に出力する。
【００１８】
また、本実施の形態例において、ソフトウェア実行形式ファイルＰＲは、デバッグ情報を含み、デバッガ２２による制御を可能にする。デバッガ２２は、そのメモリウィンドウから、ＩＳＳ３２によって処理される命令の対象レジスタの値や、命令のパラメータ値を参照可能にすると共に、ソフトウェア実行形式ファイルＰＲの処理の実行制御を行う。デバッガ２２は、例えば、ソフトウェア実行形式ファイルＰＲの任意の命令文で処理を一時停止するブレークポイント機能や、命令文を一命令ずつ処理させるステップイン、ステップオーバー機能を有する。
【００１９】
デバッガ２２による検証において、ユーザは、ソフトウェア実行形式ファイルＰＲの処理の実行を制御しながら、命令に基づいて処理対象のレジスタやパラメータの値を参照することで、ソフトウェア実行形式ファイルＰＲの処理が適切に行われているか否かを検証する。ただし、デバッガ２２は、ＩＳＳ３２を介さない処理の情報については検知できない。このため、ユーザは、ＨＷＩＰモデルＰ１〜Ｐ３やＲＯＭ／ＲＡＭモデル３１等の周辺回路間のアクセス情報をデバッガ２２から参照することができず、ソフトウェア実行形式ファイルＰＲの検証を十分に行うことができない。
【００２０】
なお、デバッガ２２は、ＬＳＩモデルＭＤが有する各回路のレジスタに任意の値を設定することができる。ユーザは、例えば、デバッガ２２のメニューから、任意の対象のレジスタ及び、値を入力し、値の設定を指示する制御を行う。この処理についても、ソフトウェア実行形式ファイルＰＲの命令と同様にして、ＩＳＳ３２によって処理され、レジスタへのアクセス情報がバスモデル３３を介して対象回路に出力される。
【００２１】
このように、バーチャルプラットフォームＶＴ上で動作するソフトウェア実行形式ファイルＰＲの各命令、及び、デバッガ２２によるレジスタ値の設定指示は、ＬＳＩモデルＭＤのＩＳＳ３２によって処理され、バスモデル３３を介して対象の周辺回路に出力される。ところで、バスモデル３３には、ＩＳＳ３２を介さないＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１等の周辺回路間のアクセス情報も転送される。これは、例えば、ＤＭＡ（Direct Memory Access）によるデータ転送等のアクセスを指す。本実施の形態例における中間ログ出力部５１は、バスモデル３３の転送情報に基づいてログ情報を取得するため、ＩＳＳ３２を介する情報に加えて、ＩＳＳ３２を介さない情報についてもログ情報として取得できる。
【００２２】
［ソフトウェア実行形式ファイルＰＲのデバッグ工程］
図２は、本実施の形態例におけるソフトウェア実行形式ファイルＰＲのデバッグ工程を説明するフローチャート図である。第１に、ユーザは、バーチャルプラットフォームＶＴを生成する（Ｓ１）。具体的に、ユーザは、ＳｙｓｔｅｍＣで記述されたＬＳＩモデルＭＤと、ＳｙｓｔｅｍＣライブラリＳＬとをコンパイルして、バーチャルプラットフォームＶＴを生成する。本実施の形態例におけるＬＳＩモデルＭＤの記述は、ハードウェアモデルに加えて、中間ログ出力部５１、中間ログ制御部５２、中間ログ格納領域５３の記述を有する。
【００２３】
第２に、ユーザは、ソフトウェア実行形式ファイルＰＲを作成する（Ｓ２）。具体的に、ユーザは、ソースコード１０及びヘッダファイル１１をコンパイルし、ソフトウェア実行形式ファイルＰＲを生成する。デバッガ２２による制御を行う場合は、コンパイラ２１は、デバッグ情報を含むソフトウェア実行形式ファイルＰＲを生成する。
【００２４】
また、図１で述べたとおり、ソースコード１０には、必要に応じて、ログ制御情報の設定を指示するログ取得指示コードが記述される。ログ制御情報は、ログ情報の取得に係る設定情報であり、図１の中間ログ制御部５２が有するレジスタに保持される。例えば、本実施の形態例におけるログ制御情報には、ソフトウェア実行形式ファイルＰＲのログ情報を取得するか否か設定する全体のログ情報の取得要否情報、及び、ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１等の周辺回路別のログ情報の取得要否情報を有する。さらに、ログ制御情報は、例えば、ログ情報を記憶させる格納領域を指定する格納領域指定情報、拡張情報等を有する。拡張情報は、任意の数字または文字のいずれかまたは両方によって構成され、ログ情報として格納領域に記憶される。当該ログ情報は、例えば、ログ情報の見出しのような役割をなす。
【００２５】
第３に、ユーザは、バーチャルプラットフォームＶＴとデバッガ２２とを連携させる（Ｓ２）。これにより、バーチャルプラットフォームＶＴ上でソフトウェア実行形式ファイルＰＲが動作し、デバッガ２２によって制御される。例えば、ユーザは、ソフトウェア実行形式ファイルＰＲがバーチャルプラットフォームＶＴ上で動作するように、デバッガ２２の環境設定を行う。
【００２６】
そして、ソフトウェア実行形式ファイルＰＲが実行されると、ログ情報を有する中間ログファイルＬＡが格納領域に生成される。中間ログファイルＬＡは、ログ制御情報の有する格納領域指定情報の値に応じて、ＬＳＩモデルＭＤのＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３、または、ファイルシステム１３のいずれかに記憶される。
【００２７】
なお、本実施の形態例において、中間ログファイルＬＡの容量を抑えるために、中間ログファイルＬＡの各ログ情報は最小限の情報のみを有する。このため、中間ログファイルＬＡの各ログ情報の判読性は低く、ユーザは、ログ情報に基づいて直感的に情報を認識することが困難である。そこで、さらに、本実施の形態例において、ログ整形装置１４（図１）は、中間ログファイルＬＡの各ログ情報を判読性の高い情報に変換して、ログファイルＬＢを生成する（Ｓ４）。これにより、ユーザは、判読性の高いログ情報に基づいて効率的にデバッグ処理を行うことができる。
【００２８】
このようにして、ソフトウェア実行形式ファイルＰＲのログファイルＬＢが生成される。そして、ユーザは、ログファイルの各ログ情報に基づいて、ソフトウェア実行形式ファイルＰＲの処理が適切に行われているか否かを判定する。本実施の形態例のＬＳＩモデルＭＤの記述は、ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１等の周辺回路別にログ情報の取得要否を設定可能にする。また、本実施の形態例のＬＳＩモデルＭＤの記述は、任意のタイミングからログ情報の取得要否設定を変更することができる。これにより、必要なログ情報のみの取得が可能になる。
【００２９】
［バーチャルプラットフォームＶＴの生成］
図３は、バーチャルプラットフォームＶＴ、ソフトウェア実行形式ファイルＰＲ、ログファイルの生成処理を説明する図である。同図の（Ａ）には、バーチャルプラットフォームＶＴの生成について説明される。ＩＳＳ３２、バスモデル３３、ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１の記述と、ＳｙｓｔｅｍＣライブラリＳＬ、中間ログ出力部５１、中間ログ制御部５２、中間ログ格納領域５３の記述とが、例えば、Ｃ＋＋コンパイラ２１によって変換されることによって、実行形式のバーチャルプラットフォームＶＴが生成される。
【００３０】
［ソフトウェア実行形式ファイルＰＲの生成］
図３の（Ｂ）には、ソフトウェア実行形式ファイルＰＲの生成について説明される。ソフトウェア実行形式ファイルＰＲは、ソースコード１０及びヘッダファイル１１がＣ＋＋コンパイラ２１によって変換されることによって生成される。また、前述したとおり、ソースコード１０には、ログ制御情報を設定する指示するログ取得指示コードが、必要に応じて追加して記述される。
【００３１】
［中間ログファイルＬＡの変換］
図３の（Ｃ）には、ログファイルＬＢの生成について説明される。本実施の形態例におけるＬＳＩモデルＭＤによってソフトウェア実行形式ファイルＰＲが実行されると、中間ログファイルＬＡが生成される。そして、中間ログファイルＬＡと、ソフトウェア実行形式ファイルＰＲのヘッダファイル１１とを入力として、ログ整形装置１４によってログファイルＬＢが生成される。このように、ログ整形装置１４は、変換処理のための別途、定義情報を用意することなく、既存のソフトウェア実行形式ファイルＰＲのヘッダファイル１１を利用することによって、判読性の高いログファイルＬＢを生成することができる。ログ整形装置１４の処理の詳細については、後述する。
【００３２】
［ログ制御情報］
続いて、ログ取得指示コードの具体例を説明する前に、ログ制御情報について説明する。ログ制御情報は、中間ログ制御部５２の有するレジスタに保持される。中間ログ出力部５１は、中間ログ制御部５２の有するログ制御情報の値に基づいて、バスモデル３３に出力される転送情報が取得対象であるか否かを判定すると共に、ログ情報を記憶させる格納領域の情報を取得する。
【００３３】
図４は、中間ログ制御部５２の有するログ制御情報のレジスタの一例を説明する図である。同図の（Ａ）（Ｂ）（Ｃ）には、３２ビット幅のレジスタ群が３つ表されている。なお、図１には、３つのＨＷＩＰモデルＰ１〜Ｐ３を有するＬＳＩモデルＭＤを例示したが、図４の例では６４個のＨＷＩＰモデルを有する場合のログ制御情報を保持するレジスタを例示する。
【００３４】
まず、（Ａ）のレジスタ群ＬＣＲは、拡張情報ＥＸと、ソフトウェア実行形式ファイルＰＲ全体のログ情報の取得要否情報ＬＥ、ログ情報の格納領域を示す格納領域指定情報ＨＳを保持するレジスタである。具体的に、レジスタ群ＬＣＲの［０］番目のビットには全体のログ情報の取得要否情報ＬＥ、［１］番目のビットには格納領域指定情報ＨＳ、［１６〜３１］番目のビットには拡張情報ＥＸが保持される。
【００３５】
例えば、取得要否情報の値１は取得要、値０は取得不要を表す。また、格納領域指定情報ＨＳの値１はＲＯＭ／ＲＡＭモデル３１内の中間ログ格納領域５３、値０はコンピュータのファイルシステム１３にログ情報が記憶されることを表す。ＲＯＭ／ＲＡＭモデル３１への書き込み速度は、コンピュータのファイルシステム１３よりも高速である。つまり、格納領域指定情報ＨＳは、ログ情報の書き込み速度を指定する。格納領域指定情報ＨＳが値１に設定される場合、ログ情報の書き込み速度が高速になる。また、図４の例において、拡張情報は１６ビットの値を示す。拡張情報の設定が指示されると、拡張情報の値を含むログ情報が格納領域に記憶される。
【００３６】
また、（Ｂ）（Ｃ）のレジスタ群ＩＰＬＣ１Ｒ、ＩＰＬＣ２Ｒの各レジスタには、６４個の周辺回路別のログ情報の取得要否情報ＩＰ０〜ＩＰ６３が保持される。例えば、（Ｂ）のレジスタ群ＩＰＬＣ１Ｒの［０］番目のビットには、ＨＷＩＰ１のログ情報の出力要否情報ＩＰ０が保持される。なお、各周辺回路のログ情報は、当該周辺回路の取得要否情報ＩＰ０〜ＩＰ６３が値１に設定され、かつ、全体のログ情報の取得要否情報ＬＥが値１に設定されている場合に取得される。
【００３７】
例えば、全体の取得要否情報ＬＥが取得要（値１）に、格納領域指定情報ＨＳがＲＯＭ／ＲＡＭモデル３１に設定される場合（値１）、レジスタ群ＬＣＲに値「００００００００００００００００００００００００００００００１１（＝０ｘ０００００００３）」が設定される。さらに、取得要否情報ＬＥ、格納領域指定情報ＨＳに加えて、値０ｘ０００１の拡張情報ＥＸが設定されるとき、レジスタ群ＬＣＲに値「０００００００００００００００１００００００００００００００１１（＝０ｘ０００１０００３）」が設定される。このように、本実施の形態例では、レジスタ群単位にログ制御情報が設定される。
【００３８】
同様にして、ＨＷＩＰ１モデルのログ情報の取得要否情報ＩＰ０が取得要（値１）に設定される場合、レジスタ群ＩＰＬＣ１Ｒに値「０００００００００００００００００００００００００００００００１（＝０ｘ０００００００１）」が設定される。なお、このとき、全体の取得要否情報ＬＥが値１に設定されていることが前提である。
【００３９】
図４に示したレジスタ群ＬＣＲ、ＩＰＬＣ１Ｒ、ＩＰＬＣ２Ｒの保持するログ制御情報は、ログ取得指示コードによって設定される。ログ取得指示コードは、ソースコード１０に記述されるか、または、例えば、デバッガ２２等のレジスタ設定手段によって入力される。続いて、ソースコード１０に記述されるログ取得指示コードの具体例について説明する。
【００４０】
［ソースコード１０に記述されるログ取得指示コード］
図５は、ソースコード１０に追加されるログ取得指示コードの一例について説明する図である。同図のソースコード１０−１、１０−２は、ソフトウェア実行形式ファイルＰＲのソースコード１０の一例である。なお、ソースコード１０−１、１０−２の冒頭部分に記述されるコードｃ１１は、各レジスタ群ＬＣＲ、ＩＰＬＣ１Ｒ、ＩＰＬＣ２Ｒのアドレス定義である。また、関数ｆｕｎｃｔｉｏｎ＿Ａには、例えば、ＨＷＩＰ１モデルにアクセスする命令が記述される。ソースコード１０−１は、ＨＷＩＰ１モデルＰ１のログ情報の取得要否情報（図４のレジスタＩＰ０）を設定するログ取得指示コードの一例を、ソースコード１０−２は、拡張情報ＥＸを設定するログ取得指示コードの一例を表す。
【００４１】
具体的に、ソースコード１０−１の関数ｆｕｎｃｔｉｏｎ＿Ａの初めと終わりに、レジスタ群ＩＰＬＣ１Ｒの値を設定するログ取得指示コードｃ１、ｃ２が記述されている。初めのログ取得指示コードｃ１は、レジスタＩＰＬＣ１Ｒに値０ｘ０００００００２（００００００００００００００００００００００００００００００１０）を設定するコードである。これにより、ＨＷＩＰ１モデルＰ１のログ情報が取得要に設定され、ＨＷＩＰ１モデルＰ１のログ情報の取得が開始される。そして、関数ｆｕｎｃｔｉｏｎ＿Ａの終わりに記述されたログ取得指示コードｃ２は、レジスタＩＰＬＣ１Ｒに値０ｘ００００００００（００００００００００００００００００００００００００００００００）を設定するコードである。これにより、ＨＷＩＰ１モデルＰ１のログ情報が取得不要に設定され、ＨＷＩＰ１モデルＰ１のログ情報の取得が終了する。なお、この例において、全体のログ情報の取得要否情報ＬＥが取得要に設定されていることが前提である。
【００４２】
このようなログ取得指示コードｃ１、ｃ２の記述を有するソフトウェア実行形式ファイルＰＲが実行されると、関数ｆｕｎｃｔｉｏｎ＿Ａが処理されている間、ＨＷＩＰ１モデルＰ１のログ情報が取得される。ＨＷＩＰ１モデルＰ１のログ情報とは、例えば、ＩＳＳ３２からＨＷＩＰ１モデルＰ１のレジスタへの書き込み／読み出し情報や、ＨＷＩＰ１モデルＰ１と他の周辺回路間のアクセス情報や、ＨＷＩＰ１モデルＰ１で発生した割り込み処理情報等を示す。
【００４３】
続いて、拡張情報ＥＸを設定するログ取得指示コードｃ３、ｃ４について説明する。ソースコード１０−２には、関数ｆｕｎｃｔｉｏｎ＿Ａの初めと終わりに、レジスタ群ＬＣＲの値を設定するログ取得指示コードｃ３、ｃ４が記述されている。ログ取得指示コードｃ３は、レジスタＬＣＲに値０ｘ０００１０００３（０００００００００００００００１００００００００００００００１１）を設定するコードである。値０ｘ０００１０００３は、拡張情報ＥＸに値０ｘ０００１が、全体のログ情報の取得要否情報ＬＥに値１が、格納領域指定情報ＨＳに値１が設定されることを示す。これにより、ＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３に、値０ｘ０００１を有するログ情報が記憶される。
【００４４】
また、ログ取得指示コードｃ４は、レジスタＬＣＲに値０ｘ０００２０００３（００００００００００００００１１００００００００００００００１１）を設定するコードである。値０ｘ０００２０００３は、拡張情報ＥＸに値０ｘ０００２が、全体のログ情報の取得要否情報ＬＥに値１が、格納領域指定情報ＨＳに値１が設定されることを示す。これにより、ＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３に、値０ｘ０００２を示すログ情報が記憶される。
【００４５】
このようなログ取得指示コードｃ３、ｃ４の記述を有するソフトウェア実行形式ファイルＰＲが実行されると、関数ｆｕｎｃｔｉｏｎ＿Ａの処理開始、及び終了時に、各拡張情報の値を含むログ情報がそれぞれ記憶される。このため、ユーザは、拡張情報を示すログ情報に基づいて、関数ｆｕｎｃｔｉｏｎ＿Ａに対応するログ情報の範囲を容易に特定できる。
【００４６】
［デバッガ２２によるログ制御情報の設定］
また、前述したとおり、図４のレジスタ群ＬＣＲ、ＩＰＬＣ１Ｒ、ＩＰＬＣ２Ｒのログ制御情報を設定するログ取得指示コードの入力は、デバッガ２２等の入力手段によっても可能である。例えば、デバッガ２２は、図５のログ取得指示コードｃ１と同様にして、レジスタＩＰＬＣ１Ｒに値０ｘ０００００００２を設定することによって、ＨＷＩＰ１モデルＰ１のログ情報の取得を開始する。拡張情報についても、同様である。
【００４７】
このように、本実施の形態例では、図４のログ制御情報に基づいて、バスモデル３３に転送される転送情報のうち、取得対象の情報がログ情報として記憶される。ユーザは、ソースコード１０に逐一、取得したいログ情報の出力指示コードを記述する代わりに、取得したいログ情報を指示するログ取得指示コードを記述する。または、ユーザは、デバッガ２２から、取得したいログ情報を指示するログ取得指示コードを入力する。これにより、ログ情報の出力の準備に係る工数が抑えられると共に、必要とするログ情報のみを取得可能にする。
【００４８】
［中間ログファイルＬＡの具体例］
続いて、中間ログファイルＬＡの具体例について説明する。
【００４９】
図６は、図５のソースコード１０−１、１０−２に基づくソフトウェア実行形式ファイルＰＲが実行されることによって生成される中間ログファイルＬＡの一例を表す図である。また、同図下の表ＤＦは、各ログ情報の先頭に記述される識別ＩＤの説明と、当該識別ＩＤのログ情報の書式を説明する表ＤＦである。表ＤＦのように、本実施の形態例におけるログ情報には、例えば、ＩＳＳ３２から周辺回路のレジスタへの読み書き処理、周辺回路間のアクセス処理、割り込み処理、拡張情報等を示す複数種類のログ情報がある。
【００５０】
例えば、具体的に、中間ログファイルＬＡの１行目のログ情報Ｌ１の識別ＩＤは、０ｘ００である。そのため、表ＤＦによると、ログ情報Ｌ１は、３２ビット幅の書き込み処理を示し、識別ＩＤに加えて、３つのパラメータ（データ１〜３）を有する。そして、識別ＩＤの後のデータ１は書き込み先のレジスタのアドレス、その次のデータ２は書き込み対象の値、その次のデータ３は書き込み処理実行時の時間である。したがって、中間ログファイルＬＡの１行目のログ情報Ｌ１「００, ４００３８０２０, ００００ＦＦ３４, ００００００５６,」は、３２ビット幅の書き込み処理であって、時間００００００５６に、アドレス４００３８０２０のレジスタに値００００ＦＦ３４が書き込まれたことを意味する。
【００５１】
同様にして、図６の表ＤＦによると、識別ＩＤ０ｘＦ０の拡張情報ＥＸのログ情報であることを示す。このため、２行目のログ情報Ｌ２「Ｆ０, ０００１,」及び、８行目のログ情報Ｌ８「Ｆ０, ０００２,」は拡張情報のログ情報である。図５のソースコード１０−２において、関数ｆｕｎｃｔｉｏｎ＿Ａの初めに拡張情報０ｘ００１を設定するログ取得指示コードｃ３、終わりに、拡張情報０ｘ００２を設定するログ取得指示コードｃ４が記述される。従って、２、８行目のログ情報Ｌ２、Ｌ８に基づいて、２〜８行目のログ情報が関数ｆｕｎｃｔｉｏｎ＿Ａ処理中のログ情報であることが特定される。
【００５２】
［中間ログ出力部５１の処理の概要］
続いて、中間ログ出力部５１の処理の概要について説明する。中間ログ出力部５１は、バスモデル３３に出力される転送情報が、中間ログ制御部５２の有するログ制御情報に基づく取得対象の転送情報である場合に、ログ情報として格納領域指定情報に基づく格納領域に記憶させる。この処理の流れを、ブロック図とフローチャート図に基づいて説明する。
【００５３】
図７は、中間ログ出力部５１及びバスモデル３３のブロック図の一例を表す図である。本実施の形態例において、ソフトウェア実行形式ファイルＰＲは、バーチャルプラットフォームＶＴ上で動作する。そのため、ＩＳＳ３２から周辺回路へのアクセスが発生する場合や、周辺回路間のアクセスが発生する場合、バス線に信号が流れる代わりに、信号に対応するバスモデル３３のモジュールがコールされる。
【００５４】
バスモデル３３のモジュールには、例えば、３２／１６ｂｉｔＷｒｉｔｅ／Ｒｅａｄモジュールｍ１〜ｍ４、３２／１６ｂｉｔＡｃｅｓｓモジュールｍ５〜ｍ６、割り込み処理モジュールｍ７等がある。例えば、ＩＳＳ３２から周辺回路のレジスタへの書き込み／読み出しを示す転送情報がバスモデル３３に出力される場合、３２／１６ｂｉｔＷｒｉｔｅ／Ｒｅａｄモジュールｍ１〜ｍ４がコールされる。また、周辺回路間のアクセスイベントを示す転送情報がバスモデル３３に出力される場合、３２／１６ｂｉｔＡｃｅｓｓモジュールｍ５〜ｍ６がコールされる。そして、割り込み処理の発生イベントを示す転送情報がバスモデル３３に出力される場合、割り込み処理モジュールｍ７がコールされる。
【００５５】
具体的に、例えば、ＩＳＳ３２からＨＷＩＰ１モデルＰ１が有する３２ビット幅のレジスタへの書き込み処理が発生する場合、ＩＳＳ３２からバスモデル３３に、３２ｂｉｔ幅のＷｒｉｔｅ処理を指示する転送情報が出力される。そこで、バスモデル３３の３２ｂｉｔＷｒｉｔｅモジュールｍ１がコールされる。一方、ＨＷＩＰ１モデルＰ１からＨＷＩＰ２モデルＰ２に３２ビット幅のレジスタへの書き込み処理が発生した場合、バスモデル３３の３２ｂｉｔＡｃｅｓｓモジュールｍ５がコールされる。また、例えば、いずれかの周辺回路で割り込み処理が発生した場合、バスモデル３３の割り込み処理モジュールｍ７がコールされる。
【００５６】
そして、本実施の形態例ではさらに、バスモデル３３の各モジュールｍ１〜ｍ７から中間ログ出力部５１のモジュールｍ１１〜ｍ１３がコールされる。具体的に、３２／１６ｂｉｔＷｒｉｔｅ／Ｒｅａｄモジュールｍ１〜ｍ４は、さらに、中間ログ出力部５１のレジスタアクセスログ制御モジュールｍ１１をコールする。また、３２／１６ｂｉｔＡｃｅｓｓモジュールｍ５〜ｍ６は、さらに、周辺回路間アクセスログ制御モジュールｍ１２をコールする。そして、割り込み処理モジュールｍ７は、さらに、割り込み処理ログ制御モジュールｍ３をコールする。次に、中間ログ出力部５１の各モジュールｍ１１〜ｍ１３の処理の内容について、フローチャート図に基づいて説明する。
【００５７】
［中間ログ出力部５１の処理のフローチャート］
図８は、中間ログ出力部５１の処理の概要を示すフローチャート図である。前述したとおり、バスモデル３３に出力された転送情報に基づいて、対応する中間ログ出力部５１のモジュールｍ１〜ｍ７がコールされる。まず、転送情報がＩＳＳ３２から周辺回路（ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１等）のレジスタへのアクセスを示す場合（Ｓ１１のＹＥＳ）、レジスタアクセスログ制御モジュールｍ１１がコールされ、レジスタアクセスのログ情報の制御処理が行われる（Ｓ１２）。一方、転送情報が、割り込み処理の発生を示す場合（Ｓ１３のＹＥＳ）、割り込み処理ログ制御モジュールｍ１３がコールされ、割り込み処理のログ情報の制御処理が行われる（Ｓ１４）。そして、転送情報が周辺回路間のアクセスを示す場合（Ｓ１５のＹＥＳ）、周辺回路間アクセスログ制御モジュールｍ１２がコールされ、周辺回路間のアクセスログ情報の制御処理が行われる（Ｓ１６）。
【００５８】
続いて、各モジュールの処理の流れをフローチャート図に基づいて説明する。
【００５９】
［Ｓ１２：レジスタアクセスのログ情報の制御処理］
図９は、転送情報がＩＳＳ３２から周辺回路のレジスタへのアクセスである場合のログ情報の制御処理を説明するフローチャート図である。まず、中間ログ出力部５１は、中間ログ制御部５２のログ制御情報を参照し、全体の取得要否情報ＬＥが取得要に設定されているか否かを判定する（Ｓ２１）。取得要に設定されている場合（Ｓ２１のＹＥＳ）、中間ログ出力部５１は、さらに、転送情報に関連する１つまたは複数の周辺回路の取得要否情報が取得要に設定されているか否かを判定する（Ｓ２２）。取得要に設定されている場合、中間ログ出力部５１は、転送情報からレジスタへのアクセス情報を取得する（Ｓ２３）。
【００６０】
続いて、中間ログ出力部５１は、ログ制御情報に基づいて、ログ情報の格納領域指定情報ＨＳが値１か否か、即ち、ログ情報の出力が高速出力に設定されているか否かを判定する（Ｓ２４）。高速出力に設定されている場合、（Ｓ２４のＹＥＳ）、中間ログ出力部５１は、取得したアクセス情報をログ情報としてＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３に出力して記憶させる（Ｓ２５）。一方、高速出力に設定されていない場合（Ｓ２４のＮＯ）、中間ログ出力部５１は、取得したアクセス情報をログ情報として、コンピュータのファイルシステム１３に出力して記憶させる（Ｓ２５）。
【００６１】
なお、転送情報が、拡張情報ＥＸを設定するレジスタアクセス情報である場合、中間ログ出力部５１は、拡張情報ＥＸをログ情報として、ＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３または、ファイルシステム１３に出力して記憶させる。このように、ログ情報として記憶させたい情報（拡張情報ＥＸ）をログ取得指示コードとして、ソースコード１０への記述またはデバッガ２２から入力させることによって、ＩＳＳ３２から中間ログ制御部５２のレジスタへのアクセスを示す転送情報がバスモデル３３に出力される。これにより、中間ログ出力部５１は、拡張情報ＥＸを、バスモデル３３に出力された転送情報から取得することができるため、ログ情報として格納領域に記憶させる。
【００６２】
このように、ユーザは、拡張情報ＥＸのレジスタへの書き込みを示すログ取得指示コードをソースコード１０へ記述、または、デバッガ２２等から入力させるだけで、効率的に、任意のタイミングで任意の拡張情報ＥＸを格納領域に記憶させることができる。ユーザは、拡張情報ＥＸを示すログ情報に基づいて、検証対象のログ情報範囲を容易に特定することができる。
【００６３】
［Ｓ１４：割り込み処理のログ情報の制御処理］
図１０は、転送情報が割り込み処理を示す場合のログ情報制御処理を説明するフローチャート図である。同図のフローチャート図は、図９のフローチャート図と、工程Ｓ４３を除いて同様である。中間ログ出力部５１は、中間ログ制御部５２のログ制御情報を参照し、全体の取得要否情報ＬＥが取得要に設定されており（Ｓ４１のＹＥＳ）、かつ、割り込み処理が発生した周辺回路の取得要否情報が取得要に設定されている場合（Ｓ４２のＹＥＳ）、転送情報から割り込み発生情報を取得する（Ｓ４３）。
【００６４】
そして、中間ログ出力部５１は、ログ情報の出力が高速出力に設定されている場合（Ｓ４４のＹＥＳ）、取得した割り込み発生情報をログ情報として、ＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３、または、ファイルシステム１３に出力して記憶させる（Ｓ４５、Ｓ４６）。
【００６５】
［Ｓ１６：周辺回路間のアクセスログ情報の制御処理］
図１１は、転送情報が周辺回路間のアクセスである場合のログ情報の制御処理を説明するフローチャート図である。同図のフローチャート図は、図９、図１０のフローチャート図と、工程Ｓ６３を除いて同様である。中間ログ出力部５１は、中間ログ制御部５２のログ制御情報を参照し、全体の取得要否情報ＬＥが取得要に設定されており（Ｓ６１のＹＥＳ）、かつ、転送情報の関連する周辺回路の取得要否情報が取得要に設定されている場合（Ｓ６２のＹＥＳ）、転送情報から周辺回路間のアクセス情報を取得する（Ｓ６３）。
【００６６】
そして、中間ログ出力部５１は、ログ情報の出力が高速出力に設定されている場合（Ｓ６４のＹＥＳ）、取得した周辺回路間のアクセス情報をログ情報として、ＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３、または、ファイルシステム１３に出力して記憶させる（Ｓ６５、Ｓ６６）。
【００６７】
このように、本実施の形態例における中間ログ出力部５１は、バスモデル３３に出力される転送情報に基づいてログ情報を取得する。バスモデル３３に出力される転送情報には、ＩＳＳ３２から出力された転送情報に加えて、ＩＳＳ３２を介さない周辺回路（ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１等）間のアクセス情報も含まれる。このため、中間ログ出力部５１は、ＩＳＳ３２を介さない処理情報についてもログ情報として取得対象とすることができる。これにより、ユーザは、デバッガ２２が取得できない情報についても、検証対象とすることができる。また、本実施の形態例における中間ログ出力部５１、及び、中間ログ制御部５２によると、ユーザは、デバッガ２２の制御を介してソフトウェア実行形式ファイルＰＲの処理を逐一、停止／再開させながらレジスタ値等の情報を参照する必要がないため、効率的にログ情報を取得できる。
【００６８】
以上のように、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、ログ情報を取得するか否かを周辺回路モデル（ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１）別に示す取得要否情報を含むログ制御情報を設定するログ制御手段（中間ログ制御部５２）の記述と、バスモデル３３を介して転送される転送情報が、ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報としてログ格納領域に記憶させるログ出力手段（中間ログ出力部５１）の記述とを有する。
【００６９】
これにより、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、ログ制御手段、ログ出力手段の記述を有するだけで、周辺回路モデルの記述を変更することなく、ログ情報を取得することができる。また、ＬＳＩモデルＭＤの記述ファイルは、ＬＳＩモデルＭＤにおけるＩＳＳ３２（プロセッサモデル）を介さないバスモデル３３の転送情報についても、ログ情報として取得可能にする。また、ＬＳＩモデルＭＤの記述ファイルは、ＨＷＩＰモデルＰ１〜Ｐ３、ＲＯＭ／ＲＡＭモデル３１単位に、ログの取得要否情報を設定可能にすることにより、より詳細なログ情報の取得要否設定を可能にし、取得対象のログ情報のみの取得を可能にする。また、これは、ログ情報が膨大になり、ログ情報の格納領域を圧迫することを回避すると共に、ログ情報の解析を容易にする。
【００７０】
また、本実施の形態例におけるログ制御手段、ログ出力手段の記述は汎用的である。そのため、ＬＳＩモデルＭＤに新たなＨＷＩＰモデルＰ１〜Ｐ３やＲＯＭ／ＲＡＭモデル３１等の周辺回路モデルが追加された場合であっても、ＬＳＩモデルＭＤやデバッグ対象プログラムの記述に変更を行う必要がない。これにより、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、デバッグ対象プログラム（ソフトウェア実行形式ファイルＰＲ）の検証をより柔軟に行うことができる。また、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルによると、デバッガ２２の制御を介してデバッグ対象プログラムを逐一制御する必要がないため、ログ情報の取得に要するシミュレーション時間を短くすることができる。
【００７１】
さらに、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルにおいて、デバッグ対象プログラムに記述された、または、デバッガ２２等からＬＳＩモデルＭＤに入力されたログ取得指示コードをプロセッサモデルが処理することによって、バスモデル３３を介してログ制御情報の指示情報をログ制御手段に出力する。また、ログ制御手段は、ログ制御情報の指示情報に応じてログ制御情報の取得要否情報を設定する。
【００７２】
このように、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、バスモデル３３に出力される全ての転送情報をログ情報として取得可能にし、ログ取得指示コードによって、取得要の転送情報を指示するログ制御情報を設定する。これにより、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、任意のタイミングに、任意の周辺回路のログ情報を取得要否設定の制御を可能にする。
【００７３】
また、ユーザは、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルによると、出力したいログ情報の出力を指示するコード記述を、デバッグ対象プログラムのソースコード１０の出力指示箇所に逐一追加する必要がない。ユーザは、ログ取得指示コードをソースコード１０に記述、または、ＬＳＩモデルＭＤに入力するだけで、必要なログ情報を取得することができる。従って、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、ログ取得指示コードの記述または入力に要する最小限の工数に基づいて、必要なログ情報のみの取得を可能にする。
【００７４】
また、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルにおいて、ログ制御情報は、さらに、任意の数字または文字のいずれかまたは両方を有する拡張情報を含み、ログ出力手段は、ログ制御情報が拡張情報である場合に、さらに拡張情報を見出しの役割をなすログ情報としてログ格納領域に記憶させる。
【００７５】
このように、ＬＳＩモデルＭＤの記述ファイルは、拡張情報を設定するログ取得コードを記述または入力させることによって、拡張情報を有する転送情報をバスモデル３３に出力させ、ログ出力手段によって、ログ情報として格納領域に記憶させる。これにより、ユーザは、拡張情報のレジスタへの書き込みを示すログ取得指示コードをソースコード１０に記述、または、ＬＳＩモデルＭＤに入力するだけで、効率的に、任意のタイミングに任意の拡張情報を、ログ情報として記憶させることができる。これは、所望のログ情報の特定を容易にする。
【００７６】
また、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、さらに、シミュレーション環境であるコンピュータ１の記憶手段（ファイルシステム１３）より書き込み速度が速いＲＯＭ／ＲＡＭモデル３１内の中間ログ格納領域５３の記述を有する。そして、ログ制御情報は、さらに、コンピュータの記憶手段、または、中間ログ格納領域５３のいずれかをログ格納領域として指定する格納領域指定情報ＨＳを有する。そして、ＬＳＩモデルＭＤの記述ファイルのログ出力手段は、格納領域指定情報ＨＳ示すログ格納領域にログ情報を記憶させる。
【００７７】
これにより、ユーザは、ログ情報を高速に取得したい場合、ログ情報の格納領域としてＲＯＭ／ＲＡＭモデル３１の中間ログ格納領域５３を指定するログ取得指示コードをソースコード１０に追加、またはＬＳＩモデルＭＤに入力することによって、ログ情報の取得を高速にすることができる。また、本実施の形態例におけるログ情報は最小限の情報を有し、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは必要なログ情報のみを取得可能にする。これにより、ログ情報のサイズ及び総量が抑えられるため、ログ情報を高速に取得する場合、ＲＯＭ／ＲＡＭモデル３１の容量を小さく抑えることができる。
【００７８】
または、ユーザは、ログ情報を多量に取得する場合は、ログ情報の格納領域としてコンピュータの記憶手段を指定するログ取得指示コードをソースコード１０に追加、またはＬＳＩモデルＭＤに入力する。これにより、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、ログ情報が多量の場合であっても、ＬＳＩモデルＭＤ内のＲＯＭ／ＲＡＭモデル３１の容量に依存することなく、ログ情報を記憶させることができる。
【００７９】
このように、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、最小限のログ取得指示コードに基づいて、周辺回路モデル単位のログの取得要否設定、及び、ログ情報の格納領域設定を可能にすると共に、プロセッサモデルを介する転送情報に加えて、プロセッサモデルを介さない周辺回路モデル間の転送情報をログ情報として取得可能にする。これにより、ユーザは、最小限の工数に基づいて必要十分なログ情報を取得でき、ＬＳＩモデルＭＤによって実行されるデバッグ対象プログラムの検証を効率的に行うことができる。
【００８０】
また、ユーザは、デバッガ等を利用して、デバッグ対象プログラムの処理を制御しながら、レジスタ等の情報をデバッガのメモリウィンドウから逐一参照る必要がない。これにより、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルは、デバッグ工程に要する工数を抑えることができる。
【００８１】
［中間ログファイルＬＡの変換］
なお、図２のフローチャート図で説明したとおり、ログ整形装置１４は、中間ログファイルＬＡの各ログ情報を変換して、ログファイルを生成する。ログ整形装置１４による変換処理は中間ログファイルＬＡが生成された後に行われる。
【００８２】
図１２は、変換前の中間ログファイルＬＡ１と変換後のログファイルＬＢ１とを示す例図である。同図の中間ログファイルＬＡ１は、図６の中間ログファイルＬＡ１と同一である。同図の中間ログファイルＬＡ１のように、変換前の中間ログファイルＬＡ１のログ情報は判読性が低く、ログ情報の示す意味合いを認識することが困難である。一方、同図下の変換後のログファイルＬＢ１は、各数値が判読性の高い識別情報名に変換されたログ情報を有する。これにより、ユーザは、識別情報名に基づいて、ログ情報の示す意味合いを認識することができ、効率的にデバッグ処理を行うことができる。
【００８３】
続いて、ログ整形装置１４の処理について、フローチャート図に基づいて説明する。
【００８４】
図１３は、ログ整形装置１４による中間ログファイルＬＡ１の変換処理を説明するフローチャート図である。本実施の形態例において、中間ログファイルＬＡ１の変換処理は、バーチャルプラットフォームＶＴ上ではなく、コンピュータのプロセッサ上で動作するログ整形装置１４によって実行される。また、この例において、中間ログファイルＬＡ１の変換処理は、シミュレーション装置１と同一のコンピュータで行われているが、別のコンピュータで行われてもよい。
【００８５】
ログ整形装置１４は、まず、読み出した中間ログファイルＬＡ１のログ情報が、レジスタへのアクセスログ情報、割り込み処理のログ情報、周辺回路間のアクセスログ情報、拡張情報のログ情報のいずれであるかを判定する（Ｓ８１、Ｓ８２、Ｓ８３、Ｓ８４）。具体的に、ログ整形装置１４は、ログ情報の識別ＩＤが０ｘ００〜０ｘ１２（図６の表ＤＦを参照のこと）の場合に、レジスタへのアクセスログ情報であると判定する（Ｓ８１のＹＥＳ）。また、同様にして、ログ整形装置１４は、ログ情報の識別ＩＤが０ｘ２０である場合に割り込み処理のログ情報（Ｓ８２のＹＥＳ）、０ｘ３０〜０ｘ３３である場合に周辺回路間のアクセスログ情報（Ｓ８３のＹＥＳ）、０ｘＦ０である場合に拡張情報のログ情報（Ｓ８４のＹＥＳ）であると判定する。
【００８６】
ログ情報がレジスタへのアクセスログ情報である場合（Ｓ８１のＹＥＳ）、ログ整形装置１４は、識別ＩＤを識別ＩＤの示す情報名に変換すると共に、図６下の表ＤＦに示したログ情報の書式に基づいて、識別ＩＤ以外の各データの値を判読性の高い情報に変換する。例えば、レジスタへのアクセスログ情報である場合、データ１はレジスタのアドレス、データ２は値、データ３は時間を示す。そこで、ログ整形装置１４は、デバッグ対象のソフトウェア実行形式ファイルＰＲのヘッダファイル１１を参照して、データ１のアドレス値に対応するレジスタ名を取得する（Ｓ９１）。
【００８７】
ソフトウェア実行形式ファイルＰＲのヘッダファイル１１は、コンパイル時に必要となる定義、例えば、レジスタ名に対応するアドレス情報、マスタベースアドレスに対応する周辺回路マクロ名の定義を有する。そこで、ログ整形装置１４は、ヘッダファイル１１の定義を参照し、ログ情報のアドレス情報を判読性の高い情報に変換する。
【００８８】
例えば、図１２の中間ログファイルＬＡ１における１行目のログ情報Ｌ１の識別ＩＤは０ｘ００であり、３２ビット幅のレジスタへのアクセスログ情報である。ログ整形装置１４は、ヘッダファイル１１の定義に基づいて、レジスタのアドレスを示すデータ１の値４００３８０２０を、「ＣＡＮＯ ＣＴＲＬＲ（０ｘ４００３８０２０）」に変換する。続いて、ログ整形装置１４は、各情報の意味合いを判別しやすいように、ログ情報を整形してログファイルに出力し、記憶させる（Ｓ９２）。例えば、データ３は時間を示すため、ログ整形装置１４は、データ３の値００００００５６を、「Ｔｉｍｅ = ０ｘ００００００５６」のように整形する。
【００８９】
ログ情報が割り込み処理のログ情報である場合（Ｓ８２のＹＥＳ）も同様である。ログ整形装置１４は、識別ＩＤを割り込み処理を示す情報名（この例では、ＩＮＴＥＲＲＵＰＴ）に変換すると共に、識別ＩＤ以外の各データの値を判読性の高い情報に変換する。割り込み処理のログ情報の場合、データ１は割り込み番号、データ２は時間を示す。そこで、ログ整形装置１４は、ヘッダファイル１１を参照して、割り込み番号に対応する割り込み定義名を取得する（Ｓ９３）。
【００９０】
例えば、図１２の中間ログファイルＬＡ１における４行目のログ情報Ｌ４の識別ＩＤは０ｘ２０であり、割り込み処理が発生したことを示すログ情報である。ログ整形装置１４は、ヘッダファイル１１の定義に基づいて、割り込み番号を示すデータ１の値２０を、「ＣＡＮＯ＿ＩＲＱｎ（３２）」に変換する。続いて、ログ整形装置１４は、工程Ｓ９２と同様にして、ログ情報を整形してログファイルに出力し、記憶させる（Ｓ９４）。
【００９１】
そして、ログ情報が周辺回路間のアクセスログ情報である場合（Ｓ８３のＹＥＳ）、同様にして、ログ整形装置１４は、識別ＩＤを割り込み処理を示す情報名に変換すると共に、識別ＩＤ以外の各データの値を判読性の高い情報に変換する。周辺回路間のアクセスログ情報の場合、データ１はレジスタのマスタベースアドレス、データ２はレジスタのアドレス、データ３は値、データ４は時間を示す。そこで、ログ整形装置１４は、ヘッダファイル１１を参照して、データ１のマスタベースアドレス値に対応するマスタＩＰ定義名（周辺回路マクロ名）を取得する（Ｓ９５）。
【００９２】
例えば、図１２の中間ログファイルＬＡ１における７行目のログ情報Ｌ７の識別ＩＤは０ｘ３１であり、ＨＷＩＰモデルからＲＡＭモデルへの３２ビット幅のアクセスログ情報である。ログ整形装置１４は、ヘッダファイル１１の定義に基づいて、マスタベースアドレスを示すデータ１の値４００６００００を、「ＤＭＡ−＞」に変換する。続いて、ログ整形装置１４は、ヘッダファイル１１を参照し、レジスタのアドレスを示すデータ２の値２００６２０５０を、「ＣＡＮ０ ＩＦ２ＤＴＡ1＿Ｌ（０ｘ４００６２０５０）」に対変換する（Ｓ９６）。続いて、ログ整形装置１４は、工程Ｓ９２と同様にして、ログ情報を整形してログファイルに出力し、記憶させる（Ｓ９７）。
【００９３】
そして、ログ情報が拡張情報のログ情報である場合は（Ｓ８４のＹＥＳ）、ログ情報は識別ＩＤ以外のデータを有していないため、ログ整形装置１４は、ログ情報を整形してログファイルに出力し、記憶させる（Ｓ９８）。例えば、図１２の中間ログファイルＬＡ１における２行目の拡張情報を示すログ情報Ｌ２は、「Ｆ０， ０００１，」から「／／／／／ ０ｘ０００１ ／／／／／，」のように変換される。
【００９４】
このように、本実施の形態例における変換前のログ情報は識別ＩＤを含む。そして、デバッグ対象プログラム（ソフトウェア実行形式ファイルＰＲ）のコード記述であって、識別ＩＤに対応して識別情報名が対応付けられたコード記述（例えば、ヘッダファイル１１）に基づいて、ログ情報の識別ＩＤが識別情報名に変換される。また、ログ情報の識別ＩＤ以外のデータについても、ユーザが識別し易い名前に変換される。これにより、中間ログファイルＬＡの各ログ情報がユーザの判読性の高いログ情報に変換され、ログファイルが生成される。
【００９５】
本実施の形態例におけるＬＳＩモデルの記述は、前述したとおり、それぞれ最小限の情報を有するログ情報を中間ログファイルＬＡ１に出力する。そして、中間ログファイルＬＡ１の出力処理の終了後に、ログ整形装置１４によって、各ログ情報を判読性の高い情報に変換させる。このため、本実施の形態例におけるＬＳＩモデルのログ出力手段の記述は、ログ情報を逐一判読性の高い情報に整形して格納領域に記憶させる必要がないため、ログ情報の出力に係る時間を短縮すると共に、格納領域に要する容量を抑えることができる。
【００９６】
また、ログ整形装置１４は、ログ整形のための定義情報を必要とすることなく、既存のソフトウェア実行形式ファイルＰＲのヘッダファイル１１を参照することによって、ログ情報を変換する。このため、本実施の形態例におけるＬＳＩモデルＭＤの記述ファイルによって生成されるログ情報は、既存リソースであるデバッグ対象プログラムの記述を用いることによって、効率的な変換が可能である。
【００９７】
以上の実施の形態をまとめると、次の付記のとおりである。
【００９８】
（付記１）
ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルであって、コンピュータがシミュレータを実行することでデバッグ対象プログラムを実行するＬＳＩモデルの記述ファイルにおいて、
ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報を含むログ制御情報を設定するログ制御手段の記述と、
前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報としてログ格納領域に記憶させるログ出力手段の記述と、
を有するＬＳＩモデルの記述ファイル。
【００９９】
（付記２）
付記１において、
前記デバッグ対象プログラムに記述されたログ取得指示コードが前記プロセッサモデルに処理されることによって、前記ログ制御情報の指示情報が前記バスモデルを介して前記ログ制御手段に出力され、
前記ログ制御手段は、前記ログ制御情報の指示情報に応じて前記ログ制御情報の取得要否情報を設定するＬＳＩモデルの記述ファイル。
【０１００】
（付記３）
付記１において、
前記ＬＳＩモデルに入力されたログ取得指示コードが前記プロセッサモデルに処理されることによって、前記ログ制御情報の指示情報が前記バスモデルを介して前記ログ制御手段に出力され、
前記ログ制御手段は、前記ログ制御情報の指示情報に応じて前記ログ制御情報の取得要否情報を設定するＬＳＩモデルの記述ファイル。
【０１０１】
（付記４）
付記１乃至３のいずれかにおいて、
前記ログ制御情報は、さらに、任意の数字または文字のいずれかまたは両方を有する拡張情報を含み、
前記ログ出力手段は、前記ログ制御情報が前記拡張情報である場合に、さらに前記拡張情報を前記ログ情報として前記ログ格納領域に記憶させるＬＳＩモデルの記述ファイル。
【０１０２】
（付記５）
付記１乃至４のいずれかにおいて、
前記コンピュータは第１の記憶手段を有し、
前記ＬＳＩモデルの記述ファイルは、さらに、前記第１の記憶手段より書き込み速度が速く前記バスモデルに接続される第２の記憶手段モデルの記述を有し、
前記ログ制御情報は、さらに、前記第１の記憶手段または第２の記憶手段モデルのいずれかを前記ログ格納領域として指定する格納領域指定情報を含み、
前記ログ出力手段は、前記領域指定情報の示す前記ログ格納領域に前記ログ情報を記憶させるＬＳＩモデルの記述ファイル。
【０１０３】
（付記６）
付記１乃至５のいずれかにおいて、
前記ログ情報は識別情報を含み、
前記ログ情報は、前記デバッグ対象プログラムのコード記述であって、前記識別情報に対応して識別情報名が対応付けられたコード記述に基づいて、前記ログ情報の前記識別情報が前記識別情報名に変換されるＬＳＩモデルの記述ファイル。
【０１０４】
（付記７）
ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルを実行することでデバッグ対象プログラムを実行するシミュレーションシステムにおいて、
前記ＬＳＩモデルの記述ファイルは、
ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報を含むログ制御情報を設定するログ制御手段の記述と、
前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報としてログ格納領域に記憶させるログ出力手段の記述とを有し、
前記デバッグ対象プログラムは、
前記プロセッサモデルに処理されることによって、前記ログ制御情報の指示情報が前記バスモデルを介して前記ログ制御手段に出力されるログ取得指示コードを有し、
前記ログ制御手段の記述は、前記ログ制御情報の指示情報に応じて前記ログ制御情報の取得要否情報を設定するシミュレーションシステム。
【０１０５】
（付記８）
ハードウェア記述言語で記述され、バスモデルと、前記バスモデルに接続されたプロセッサモデルと複数の周辺回路モデルとを有するＬＳＩモデルの記述ファイルを実行することでデバッグ対象プログラムを実行する前記デバッグ対象プログラムのデバッグ方法において、
ログ情報を取得するか否かを前記周辺回路モデル別に示す取得要否情報を含むログ制御情報を設定するログ制御工程と、
前記バスモデルを介して転送される転送情報が、前記ログ制御情報に基づいて取得要対象である場合、当該転送情報をログ情報としてログ格納領域に記憶させるログ出力工程と、
を有するデバッグ方法。
【符号の説明】
【０１０６】
１：シミュレーション装置、１００；ＯＳ、１０：ソースコード、１１：ヘッダファイル、１２：ＩＤＥ、２１：コンパイラ、２２：デバッガ、ＰＲ：ソフトウェア実行形式ファイル、ＶＴ：バーチャルプラットフォーム、ＭＤ：ＬＳＩモデル、ＳＬ：ＳｙｓｔｅｍＣライブラリ、ＳＭ：ＳｙｓｔｅｍＣシミュレータ、１３：ファイルシステム、１４：ログ整形装置
【図１】
0005906800.tif 000002
【図２】
0005906800.tif 000003
【図３】
0005906800.tif 000004
【図４】
0005906800.tif 000005
【図５】
0005906800.tif 000006
【図６】
0005906800.tif 000007
【図７】
0005906800.tif 000008
【図８】
0005906800.tif 000009
【図９】
0005906800.tif 000010
【図１０】
0005906800.tif 000011
【図１１】
0005906800.tif 000012
【図１２】
0005906800.tif 000013
【図１３】
0005906800.tif 000014