(57)【要約】【課題】  システムＬＳＩ内部のハードウェア動作を正確に把握してソフトウェアを効率的に開発・デバッグすることができるようにする。【解決手段】  システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含むシステムＬＳＩシミュレーションにおいて、複数モジュールの連携動作デバッグ情報を容易に得ることができる、また、デバッグ機能を汎用性高く開発でき、様々なシステムにおいて再利用性できるシステムＬＳＩシミュレーション装置等、を提供する。【選択図】  図１
2006309575.tif 000002
【特許請求の範囲】
【請求項１】
システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含むシステムＬＳＩシミュレーション装置であって、
前記複数のシミュレーションモデルは、ハードウェアにマッピングされる動作記述部と、
前記動作記述部を監視するハードウェアにマッピングされないデバッグ動作記述部と、
ハードウェアにマッピングされないインターフェイスとを有し、
前記インターフェイスを用いてデバッグ情報を転送し、デバッグ動作を行うことを特徴とするシステムＬＳＩシミュレーション装置。
【請求項２】
前記複数のシミュレーションモデルの一つが、前記ハードウェアにマッピングされないデバッグ動作記述部によって抽出された前記デバッグ情報を前記ハードウェアにマッピングされないインターフェイスを介して送信し、
前記複数のシミュレーションモデルの一つが、前記ハードウェアにマッピングされないインターフェイスを介して受信した前記デバッグ情報に応じて前記デバッグ動作を行うことを特徴とする請求項１に記載のシステムＬＳＩシミュレーション装置。
【請求項３】
前記ハードウェアにマッピングされないインターフェイスを介して転送される前記デバッグ情報は、前記デバッグ情報の種類を識別するデバッグ情報ＩＤと、前記デバッグ情報ＩＤの内容に応じて付随するパラメータの数を示すパラメータ数と、前記パラメータ数分のパラメータであることを特徴とする請求項２に記載のシステムＬＳＩシミュレーション装置。
【請求項４】
前記デバッグ動作は、複数のシミュレーションモデルの連携動作結果を表示することを特徴とする請求項２に記載のシステムＬＳＩシミュレーション装置。
【請求項５】
前記デバッグ動作は、複数のシミュレーションモデルの連携動作制約を表示することを特徴とする請求項２に記載のシステムＬＳＩシミュレーション装置。
【請求項６】
前記デバッグ情報を転送するハードウェアにマッピングされないバスを有し、前記複数のシミュレーションモデルのうち少なくとも一つが、前記ハードウェアにマッピングされないインターフェイスを前記ハードウェアにマッピングされないバスに接続し、前記ハードウェアにマッピングされないデバッグ動作記述部によって抽出された前記デバッグ情報を前記ハードウェアにマッピングされないバスへ送信し、前記複数のシミュレーションモデルのうち少なくとも一つが、前記ハードウェアにマッピングされないインターフェイスを前記ハードウェアにマッピングされないバスに接続し、前記ハードウェアにマッピングされないバスを経由して受信した前記デバッグ情報に応じて前記デバッグ動作を行うことを特徴とする請求項１に記載のシステムＬＳＩシミュレーション装置。
【請求項７】
前記ハードウェアにマッピングされないバスにおいて転送される前記デバッグ情報は、前記デバッグ情報を受信するシミュレーションモデルの種類を識別する受信対象モデルＩＤと、前記デバッグ情報の種類を識別するデバッグ情報ＩＤと、前記デバッグ情報ＩＤの内容に応じて付随するパラメータの数を示すパラメータ数と、前記パラメータ数分のパラメータであることを特徴とする請求項６に記載のシステムＬＳＩシミュレーション装置。
【請求項８】
前記デバッグ情報を転送するハードウェアにマッピングされないバスは、前記受信対象モデルＩＤを使用して前記デバッグ情報を受信するシミュレーションモデルを特定することを特徴とする請求項７に記載のシステムＬＳＩシミュレーション装置。
【請求項９】
前記デバッグ情報を転送するハードウェアにマッピングされないバスは、前記デバッグ情報ＩＤと、前記デバッグ情報ＩＤと受信対象モデルとが関連付けられた受信対象モデル関連情報とを使用して前記デバッグ情報を受信するシミュレーションモデルを特定することを特徴とする請求項７に記載のシステムＬＳＩシミュレーション装置。
【請求項１０】
前記デバッグ情報を転送するハードウェアにマッピングされないバスは、前記デバッグ情報ＩＤと、前記デバッグ情報ＩＤと前記受信対象モデルとが関連付けられた受信対象モデル関連情報と、前記ハードウェアの接続状態を示すハードウェア接続情報と、前記デバッグ情報に付随するパラメータを使用して前記デバッグ情報を受信するシミュレーションモデルとを特定することを特徴とする請求項７に記載のシステムＬＳＩシミュレーション装置。
【請求項１１】
前記デバッグ情報を転送するハードウェアにマッピングされないバスは、前記ハードウェア接続情報に応じて、前記デバッグ情報に付随するパラメータを修正することを特徴とする請求項１０に記載のシステムＬＳＩシミュレーション装置。
【請求項１２】
システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含むシステムＬＳＩシミュレーション方法であって、
ハードウェアにマッピングされないインターフェイスを用いてデバッグ情報を転送し、
転送された前記デバッグ情報に対してデバッグ動作を行うことを特徴とするシステムＬＳＩシミュレーション方法。
【請求項１３】
請求項１２の方法の各工程をコンピュータにて実施させるプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項１４】
請求項１２の方法の各工程をコンピュータにて実施させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムＬＳＩシミュレーション装置に関し、特に、システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含み、複数モジュールの連携デバッグ動作を行うために用いて好適な技術に関する。
【背景技術】
【０００２】
従来、プロセス技術の進歩によりＬＳＩの集積度が増大し、これまでボードで実現していたシステムをシステムＬＳＩとして１チップ上に搭載することが可能となった。チップ上に搭載する機能モジュールも多様化し、回路規模が増大している。これに伴い、システムＬＳＩを効率的に設計する手法として、従来の「Verilog-HDL」や「VHDL」といったハードウェア記述言語を使用した設計から、「SystemC」や「SpecC」といったシステム記述言語による設計が普及してきた。こういったシステム記述言語によるＬＳＩの設計を行う従来例として、例えば特許文献１などがある。
【０００３】
システム記述言語による設計支援ツールとして、Synopsys社の「CoCentric」や、CoWare社の「ConvergenSC」が知られている。システム記述言語により記述したモジュールを、ブロック図入力画面で入力し、システムＬＳＩの設計を行うことが可能になっている。 システムＬＳＩの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行いシステムＬＳＩの機能や性能を確認できるものである。実際のハードウェアを作成する前に、シミュレーションによりシステムの評価を行うことにより、仕様の不具合や性能不足を回避する。
【０００４】
システム記述言語によるモジュール記述には、記述の抽象度により以下の３種類の記述レベルが一般に知られている。
トランザクションレベル（ＴＬ）：モジュール間のバス通信を捉えて機能を記述する抽象度レベルである。通信の開始および終了の時間、通信データにより動作するため、クロックに対する精度は低い。イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。システムとしての動作が実際のハードウェアと一致するため、システム全体の評価に適している。ＡＲＭ社による定義では、さらに細かく分類すれておりＰＶ(プログラマーズビュー)、ＰＶＴ(プログラマーズビュー＋タイミング)、ＣＬ(サイクルレベル)が相当する。
【０００５】
バスサイクルアキュレート（ＢＣＡ）：モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力および出力部で正確にシミュレートすることができる。ＡＲＭ社による定義では、ＣＣ(サイクルコーラブル)が相当する。
【０００６】
レジスタトランスファレベル（ＲＴＬ）：レジスタファイル間の同期転送を捉えて、回路を記述する抽象度レベルである。動作クロックに対し、正確に機能動作をシミュレートすることができ精度が非常に高い。１クロックごとに機能をシミュレートするため、シミュレーション速度は非常に遅い。ＡＲＭ社による定義ではＲＴ(ＲＴＬイベントドリブン)が相当する。
【０００７】
システムＬＳＩの設計を目的としたシミュレーションは、そのシステムＬＳＩを制御するソフトウェアの開発にも利用される。ソフトウェア開発では、シミュレーション速度が高速であることが重視される一方、シミュレーション精度はシステムとしての動作が実際のハードウェアと一致していれば、動作クロックに対しある程度低くても構わない。よって、ソフトウェア開発を行うためのシミュレーションは、トランザクションレベルにより記述されたモデルが用いられる。
【０００８】
前記シミュレーションにおいて、ソフトウェア開発者が、ソフトウェアを効率的に開発・デバッグするには、システムＬＳＩ内部のハードウェア動作を正確に把握する必要がある。特に、機能別にモジュール化設計された複数のハードウェアモジュールが連携して動作する場合は、個々のモジュール動作を把握しただけでは不十分であり、あるモジュールの動作が関連するモジュールに対し、どのような影響を与えるかまで把握しなければならない。
【０００９】
【特許文献１】特開２００４−１３８５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、複数モジュールの連携動作デバッグ情報を得るには、複数モジュールの内部状態を監視し、その動作内容を理解できる複雑なデバッグ機能が必要となる。システムＬＳＩ内部には多くの連携動作の組み合わせがあり、それぞれの組み合わせに応じて複雑なデバッグ機能を実装するには多大な負荷がかかる。
【００１１】
また、機能別にモジュール化設計されているため汎用性の高い機能モジュールは、様々なシステムで再利用されることが多く、そのようなモジュールに付随するデバッグ機能も同様に、汎用性が高く、メンテナンス及び再利用し易いことが求められている。
【００１２】
本発明は前述の問題点にかんがみ、システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含むシステムＬＳＩシミュレーションにおいて、複数モジュールの連携動作デバッグ情報を容易に得ることができる、また、デバッグ機能を汎用性高く開発でき、様々なシステムにおいて再利用できるようにすることを目的としている。
【課題を解決するための手段】
【００１３】
前記課題を解決するために本発明は、システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含むシステムＬＳＩシミュレーション装置であって、前記複数のシミュレーションモデルは、ハードウェアにマッピングされる動作記述部と、前記動作記述部を監視するハードウェアにマッピングされないデバッグ動作記述部と、ハードウェアにマッピングされないインターフェイスを有し、前記インターフェイスを用いてデバッグ情報を転送し、デバッグ動作を行うことを特徴とするシステムＬＳＩシミュレーション装置等、を提供する。
【発明の効果】
【００１４】
本発明によれば、システム記述言語によりトランザクションレベルで記述された複数のシミュレーションモデルを含むシステムＬＳＩシミュレーションにおいて、複数モジュールの連携動作デバッグ情報を容易に得ることができるので、ソフトウェア開発者が、システムＬＳＩ内部のハードウェア動作を正確に把握することができ、ソフトウェアを効率的に開発・デバッグすることができる。
【００１５】
また、デバッグ機能を汎用性高く開発でき、様々なシステムにおいて再利用性できるので、システムＬＳＩシミュレーション装置そのものの開発効率が向上する。
【発明を実施するための最良の形態】
【００１６】
（第１の実施の形態）
図１は、本発明のシステムＬＳＩシミュレーション装置において、デバッグ情報を送信するシミュレーションモデルと受信するシミュレーションモデルを示すブロック図である。尚、以下本実施の形態において、システム記述言語で記述されたシミュレーションモデル内のハードウェアにマッピングされない部分は、合成用コンパイラに対する明示的な合成対象外である指示の記述があるものとする。
【００１７】
デバッグ情報送信側モデル１０は、ハードウェアにマッピングされないデバッグ動作記述部１１と、ハードウェアにマッピングされない送信インターフェイス１２と、ハードウェアにマッピングされる動作記述部１３と、ハードウェアにマッピングされるバスインターフェイス１４で構成される。
【００１８】
ハードウェアにマッピングされないデバッグ動作記述部１１は、ハードウェアにマッピングされる動作記述部１３の内部状態を監視し、内部状態に変化があればシミュレータの標準出力等にデバッグメッセージを表示する。さらに、内部状態の変化によってデバッグ情報送信側モデル１０の出力が変化する場合、ハードウェアにマッピングされない送信インターフェイス１２に対してデバッグ情報送信側モデル１０内で発生したデバッグ情報の送信指示を出す。
【００１９】
ハードウェアにマッピングされない送信インターフェイス１２は、ハードウェアにマッピングされないデバッグ動作記述部１１からのデバッグ情報を、予め接続されたハードウェアにマッピングされない受信インターフェイス１７に対して送信する。ハードウェアにマッピングされる動作記述部１３は、デバッグ情報送信側モデル１０のハードウェア機能が実装されている。ハードウェアにマッピングされるバスインターフェイス１４は、トランザクションレベルのシステムバスに接続するためのバスインターフェイスである。
【００２０】
デバッグ情報受信側モデル１５は、ハードウェアにマッピングされないデバッグ動作記述部１６と、ハードウェアにマッピングされない受信インターフェイス１７と、ハードウェアにマッピングされる動作記述部１８と、ハードウェアにマッピングされるバスインターフェイス１９で構成される。
【００２１】
ハードウェアにマッピングされないデバッグ動作記述部１６は、ハードウェアにマッピングされる動作記述部１８の内部状態を監視し、内部状態に変化があればシミュレータの標準出力等にデバッグメッセージを表示する。さらに、ハードウェアにマッピングされない受信インターフェイス１７を介してデバッグ情報送信側モデル１０内で発生したデバッグ情報を受信した場合、受信したデバッグ情報に基づいてシミュレータの標準出力等に連携動作デバッグメッセージを表示する。
【００２２】
ハードウェアにマッピングされない受信インターフェイス１７は、予め接続されたハードウェアにマッピングされない送信インターフェイス１２からのデバッグ情報を受信し、ハードウェアにマッピングされないデバッグ動作記述部１６へ渡す。
【００２３】
ハードウェアにマッピングされる動作記述部１８は、デバッグ情報受信側モデル１５のハードウェア機能が実装されている。ハードウェアにマッピングされるバスインターフェイス１９は、トランザクションレベルのシステムバスに接続するためのバスインターフェイスである。
【００２４】
図２は、ハードウェアにマッピングされない送信インターフェイス１２からハードウェアにマッピングされない受信インターフェイス１７へ転送されるデバッグ情報のフォーマットを示す図である。
【００２５】
デバッグ情報１００は、デバッグ情報の種類を識別するデバッグ情報ＩＤ１０１と、デバッグ情報１００に付随するパラメータの数を示すパラメータ数１０２と、デバッグ情報１００に付随するパラメータ数１０２が示すN個のパラメータ１０３とで構成される。
【００２６】
デバッグ情報ＩＤ１０１は、デバッグ情報送信側モデル１０内で発生したハードウェア動作の識別子であり、ハードウェアにマッピングされないデバッグ動作記述部１１と１６の双方が識別するために使用される。パラメータ数１０２とパラメータ１０３は、デバッグ情報ＩＤ１０１の内容に応じてパラメータ数及びパラメータ内容が変化する。
【００２７】
図３は、本発明のシステムＬＳＩシミュレーション装置で連携動作のデバッグ情報を表示するシミュレーションモデルにおいて、デバッグ情報を送信するシミュレーションモデルがクロックジェネレータモデル、デバッグ情報を受信するシミュレーションモデルがタイマーモデルである具体例を示すブロック図である。
【００２８】
クロックジェネレータモデル２０は、ハードウェアにマッピングされないデバッグ動作記述部２１と、ハードウェアにマッピングされない送信インターフェイス２２と、ハードウェアにマッピングされる動作記述部２３と、ハードウェアにマッピングされるバスインターフェイス２４で構成される。
【００２９】
ハードウェアにマッピングされないデバッグ動作記述部２１は、ハードウェアにマッピングされる動作記述部２３の内部状態を監視し、内部状態に変化があればシミュレータの標準出力等にデバッグメッセージを表示する。さらに、内部状態の変化によってクロックジェネレータモデル２０のクロック出力が変化する場合、ハードウェアにマッピングされない送信インターフェイス２２に対してクロックジェネレータモデル２０内で発生したデバッグ情報の送信指示を出す。
【００３０】
ハードウェアにマッピングされない送信インターフェイス２２は、ハードウェアにマッピングされないデバッグ動作記述部２１からのデバッグ情報を、予め接続されたハードウェアにマッピングされない受信インターフェイス２７に対して送信する。
【００３１】
ハードウェアにマッピングされる動作記述部２３は、クロックジェネレータモデル２０のハードウェア機能（制御レジスタ、クロック生成回路等）が実装されており、タイマーモデル２５に対してタイマー用クロックを供給する。
【００３２】
ハードウェアにマッピングされるバスインターフェイス２４は、トランザクションレベルのシステムバスに接続するためのバスインターフェイスで、制御レジスタへのアクセスを行うスレーブ機能のみを有する。
【００３３】
タイマーモデル２５は、ハードウェアにマッピングされないデバッグ動作記述部２６と、ハードウェアにマッピングされない受信インターフェイス２７と、ハードウェアにマッピングされる動作記述部２８と、ハードウェアにマッピングされるバスインターフェイス２９で構成される。
【００３４】
ハードウェアにマッピングされないデバッグ動作記述部２６は、タイマーモデル２５の内部状態を監視し、内部状態に変化があればシミュレータの標準出力等にデバッグメッセージを表示する。さらに、ハードウェアにマッピングされない受信インターフェイス２７を介して受信したクロックジェネレータモデル２０内で発生したデバッグ情報を受信した場合、受信したデバッグ情報に基づいてシミュレータの標準出力等に連携動作デバッグメッセージを表示する。
【００３５】
ハードウェアにマッピングされない受信インターフェイス２７は、予め接続されたハードウェアにマッピングされない送信インターフェイス２２からのデバッグ情報を受信し、ハードウェアにマッピングされないデバッグ動作記述部２６へ渡す。
【００３６】
ハードウェアにマッピングされる動作記述部２８は、タイマーモデル２５のハードウェア機能（制御レジスタ、タイマー回路等）が実装されており、クロックジェネレータモデル２０から供給されるタイマー用クロックで動作する。
【００３７】
ハードウェアにマッピングされるバスインターフェイス２９は、トランザクションレベルのシステムバスに接続するためのバスインターフェイスで、制御レジスタへのアクセスを行うスレーブ機能のみを有する。
【００３８】
図４は、本発明のシステムＬＳＩシミュレーション装置で連携動作のデバッグ情報を表示するシミュレーションモデルのシステム全体の具体例を示すブロック図である。システム全体は、システムＬＳＩモデル４１と、システムＬＳＩモデル４１の制御プログラム等が格納された不揮発性のＲＯＭモデル４２、システムＬＳＩモデル４１が動作時にワークメモリ領域として使用するＤＲＡＭモデル４３で構成される。
【００３９】
システムＬＳＩモデル４１は、トランザクションレベルのシステムバスを有し、システムＬＳＩモデル４１全体を制御するＣＰＵモデル５１と、ＲＯＭモデル４２に対してデータの読み出し制御を行うＲＯＭコントローラモデル５２と、各モジュールの割り込みをＣＰＵモデル５１へ通知する割り込みコントローラモデル５３と、ＤＲＡＭモデル４３に対してデータの読み書き制御を行うＤＲＡＭコントローラモデル５４と、クロックジェネレータモデル２０と、タイマーモデル２５とで構成される。
【００４０】
次に動作について、ＣＰＵモデル５１がクロックジェネレータモデル２０の制御レジスタを操作し、タイマーモデル２５に供給されるクロックの周波数を変更する連携動作の場合を説明する。
【００４１】
例えば、ＣＰＵモデル５１の制御レジスタ操作によってチャネル１番のタイマークロックが１０ＭＨｚから２０ＭＨｚに変更された場合、クロックジェネレータモデル２０の内部状態を監視しているハードウェアにマッピングされないデバッグ動作記述部２１が以下のクロックジェネレータモデル２０内で発生したデバッグ情報１００−１をハードウェアにマッピングされない送信インターフェイス２２に対して送信指示を出す。
デバッグ情報１００−１、
デバッグ情報ＩＤ：  ID_TIMER_CLOCK_CHANGE、
パラメータ数    ：  ３、
パラメータＡ    ：  １、
パラメータＢ    ：  １０、
パラメータＣ    ：  ２０。
【００４２】
前記デバッグ情報１００−１において、デバッグ情報ＩＤはタイマー用クロック周波数変更イベントを示すＩＤである。パラメータ数は３なので、デバッグ情報に付随するパラメータはパラメータＡとパラメータＢとパラメータＣである。パラメータＡは、タイマーのチャネル番号、パラメータＢとパラメータＣは、それぞれ変更前及び変更後のクロック周波数を示す。
【００４３】
ハードウェアにマッピングされない受信インターフェイス２７は、デバッグ情報１００−１を受信し、ハードウェアにマッピングされないデバッグ動作記述部２６へ渡す。ハードウェアにマッピングされないデバッグ動作記述部２６は、デバッグ情報１００−１のデバッグ情報ＩＤとパラメータ内容からチャネル１番のタイマークロックが１０ＭＨｚから２０ＭＨｚに変更されたことを認識し、チャネル１番のタイマー動作状態に応じてシミュレータの標準出力等にデバッグメッセージを表示する。
【００４４】
チャネル１番のタイマー動作状態が動作中であって、１０ＭＨｚクロックで１０００カウント計測する１００ｍｓタイマとして動作する設定であった場合、２０ＭＨｚクロックに変更すると５０ｍｓタイマとして動作してしまうため以下のデバッグメッセージを表示する。
「[時刻xxx]  タイマーチャネル１番のクロックが動作中に１０ＭＨｚから２０ＭＨｚ  に変更されました」、
「[時刻xxx]  タイマー動作周期が１００ｍｓから５０ｍｓに変更されました」。
【００４５】
ソフトウェア開発者は、前記デバッグメッセージよりタイマークロック設定変更動作が意図したものか否か、その変更内容が正しいものか否かを容易に確認することができる。仮に、ソフトウェアに問題があり正しい動作でない場合、ハードウェアの挙動が変化した時点（クロック周波数が変更された直後）が容易に特定できるため、問題解析も効率的に行うことができる。
【００４６】
また、タイマークロック起動・停止変更タイミングに関して、クロックジェネレータとタイマーのハードウェア仕様が以下であったとする。
「クロックジェネレータは、任意のクロックを任意のタイミングで起動・停止することができる」、
「タイマーのチャネル１番は、任意のタイミングで入力されるクロックを起動・停止することができる」、
「タイマーのチャネル２〜４番は、タイマー動作停止時においてのみ入力されるクロックを停止することができる」。
【００４７】
前記内容は、クロックジェネレータ及びタイマーの仕様書等に記載される事項で、クロックジェネレータにとっては任意のタイミングでタイマーのチャネル２〜４番に供給しているクロックを起動・停止しても良いが、タイマーにとってはタイマー動作中に前記クロックを停止してはいけない、という連携動作上の制約があることを示している。
【００４８】
例えば、ＣＰＵモデル５１の制御レジスタ操作によってチャネル２番のタイマークロックを停止した場合、クロックジェネレータモデル２０の内部状態を監視しているハードウェアにマッピングされないデバッグ動作記述部２１が以下のクロックジェネレータモデル２０内で発生したデバッグ情報１００−２をハードウェアにマッピングされない送信インターフェイス２２に対して送信指示を出す。
デバッグ情報１００−２、
デバッグ情報ＩＤ：  ID_TIMER_CLOCK_STOP、
パラメータ数    ：  １、
パラメータＡ    ：  ２。
【００４９】
前記デバッグ情報１００−２において、デバッグ情報ＩＤはタイマー用クロック停止イベントを示すＩＤである。パラメータ数は１なので、デバッグ情報に付随するパラメータはパラメータＡである。パラメータＡは、タイマーのチャネル番号を示す。
【００５０】
ハードウェアにマッピングされない受信インターフェイス２７は、デバッグ情報１００−２を受信し、ハードウェアにマッピングされないデバッグ動作記述部２６へ渡す。ハードウェアにマッピングされないデバッグ動作記述部２６は、デバッグ情報１００−２のデバッグ情報ＩＤとパラメータ内容からチャネル２番のタイマークロックが停止したことを認識し、チャネル２番のタイマー動作状態に応じてシミュレータの標準出力等にデバッグメッセージを表示する。
「[時刻yyy]  タイマーチャネル２番は、タイマー動作中のクロック停止は禁止です。  」
【００５１】
ソフトウェア開発者にとって、このような連携動作上の制約は、両方の仕様書を十分に理解しないと気付かないこと多く、一方の制御（クロックジェネレータ側）はハードウェア仕様に則した正しい動作であるため、問題の原因特定が難しい。前記デバッグメッセージにより連携動作上の制約も容易に確認することができる。
【００５２】
以上説明したように本実施の形態によれば、デバッグ情報送信側モデルからデバッグ情報受信側モデルにデバッグ情報送信側モデル内で発生したデバッグ情報を送信することで、デバッグ情報受信側モデルがデバッグ情報送信側モデルのハードウェア動作を把握することができ、デバッグ情報送信側モデルとデバッグ情報受信側モデルとの連携動作デバッグ情報を容易に表示することができる。
【００５３】
（第２の実施の形態）
次に第２の実施の形態について説明する。以下では、第１の実施の形態と異なる点を中心に説明し、同一である部分は説明を省略する。
第１の実施の形態では、デバッグ情報が、デバッグ情報送信側モデルのハードウェアにマッピングされない送信インターフェイスからデバッグ情報受信側モデルのハードウェアにマッピングされない受信インターフェイスへ直接転送され、連携動作のデバッグ情報表示が行われている。
【００５４】
しかし、デバッグ情報送信側モデル及びデバッグ情報受信側モデルのいずれかが複数になった場合、その数に応じてそれぞれハードウェアにマッピングされない送信インターフェイス及びハードウェアにマッピングされない受信インターフェイスを増やす必要がある。
【００５５】
そこで、本実施の形態ではデバッグ情報送信側モデル及びデバッグ情報受信側モデルがハードウェアにマッピングされないバス（以下デバッグ情報バス）に接続され、デバッグ情報バスを経由して、デバッグ情報を転送し、連携動作のデバッグ情報表示を行う。
【００５６】
図５は、本発明のシステムＬＳＩシミュレーション装置において、デバッグ情報バスを経由して、デバッグ情報を送信するシミュレーションモデルと受信するシミュレーションモデルを示すブロック図である。
【００５７】
ハードウェアにマッピングされない送信インターフェイス１２は、ハードウェアにマッピングされないデバッグ動作記述部１１からのデバッグ情報に、受信対象を識別する識別子を付加して、デバッグ情報バス２００に対して送信する。
【００５８】
ハードウェアにマッピングされない受信インターフェイス１７は、デバッグ情報バス２００からデバッグ情報を受信し、ハードウェアにマッピングされないデバッグ動作記述部１６へ渡す。
【００５９】
ハードウェアにマッピングされないデバッグ情報バス２００は、ハードウェアにマッピングされない送信インターフェイス１２からのデバッグ情報送信要求に対し、デバッグ情報に付加された受信対象識別子に応じて、デバッグ情報の受信対象となるハードウェアにマッピングされない受信インターフェイス１７へデバッグ情報を転送する。
【００６０】
図６は、ハードウェアにマッピングされない送信インターフェイス１２からデバッグ情報バス２００へ送信される受信対象を識別する識別子が付加されたデバッグ情報のフォーマットを示す図である。デバッグ情報２０１は、受信対象を識別する受信モデルＩＤ２０２と、第１の実施の形態における図２と同様のデバッグ情報１００とで構成される。
【００６１】
図７は、本発明のシステムＬＳＩシミュレーション装置で、デバッグ情報バスを経由して、連携動作のデバッグ情報を表示するシミュレーションモデルのシステム全体の具体例を示すブロック図である。
【００６２】
システムＬＳＩモデル２１１は、ハードウェアにマッピングされないデバッグ情報バス２００を有し、デバッグ情報送信側モデルがクロックジェネレータモデル２０、また、デバッグ情報受信側モデルがＣＰＵモデル５１、ＲＯＭコントローラモデル５２、割り込みコントローラモデル５３、ＤＲＡＭコントローラモデル５４、タイマーモデル２５である例を示す。
【００６３】
次に動作について説明する。第１の実施の形態と異なる点は、次の２点である。
（１）デバッグ情報が送信される際、その受信対象モデルを識別するＩＤが付加され、デバッグ情報バスへ送信されること。
（２）デバッグ情報バスにおいて、付加された受信対象モデルＩＤに応じてデバッグ情報を受信対象モデルへ転送すること。
【００６４】
従って、第１の実施の形態と同様の連携動作例の場合、クロックジェネレータモデル２０は、デバッグ情報１００−１に対応する以下のデバッグ情報２０１−１を、ハードウェアにマッピングされない送信インターフェイス２２からデバッグ情報バス２００に対して送信指示を出す。
デバッグ情報２０１−１、
受信モデルＩＤ  ：  ID_MODEL_TIMER、
デバッグ情報ＩＤ：  ID_TIMER_CLOCK_CHANGE、
パラメータ数    ：  ３、
パラメータＡ    ：  １、
パラメータＢ    ：  １０、
パラメータＣ    ：  ２０。
【００６５】
デバッグ情報バス２００は、デバッグ情報２０１−１の受信対象モデルＩＤから受信対象モデルをタイマーモデル２５であると特定し、タイマーモデル２５のハードウェアにマッピングされない受信インターフェイス２７へデバッグ情報を転送する。ハードウェアにマッピングされない受信インターフェイス２７がデバッグ情報を受信した以降の動作は、第１の実施の形態と同様に連携動作結果や連携動作制約が表示される。
【００６６】
また、ＣＰＵモデル５１がクロックジェネレータモデル２０の制御レジスタを操作し、ＤＲＡＭコントローラモデル５４に供給されるクロックを停止した場合、以下のデバッグ情報２０１−２が、クロックジェネレータモデル２０からデバッグ情報バス２００を経由して、ＤＲＡＭコントローラモデル５４へ転送される。ＤＲＡＭコントローラモデル５４は、デバッグ情報２０１−２を受信した状態に応じて、所定の連携動作結果や連携動作制約を表示する。
デバッグ情報２０１−２、
受信モデルＩＤ  ：  ID_MODEL_DRAM_CONTROLLER、
デバッグ情報ＩＤ：  ID_DRAM_CLOCK_STOP、
パラメータ数    ：  ０。
【００６７】
また、クロックジェネレータモデル２０からＣＰＵモデル５１、ＲＯＭコントローラモデル５２、割り込みコントローラモデル５３にデバッグ情報が転送される場合も、前記説明と同様に受信モデルＩＤが付加されデバッグ情報バス２００を経由し、受信対象モデルにデバッグ情報が転送される。
【００６８】
以上説明したように本実施の形態によれば、デバッグ情報受信側モデルが複数になった場合でも、デバッグ情報送信側モデルがデバッグ情報に受信対象モデルＩＤを付加し、ハードウェアにマッピングされないデバッグ情報バスを経由してデバッグ情報を転送することで、デバッグ情報送信側モデルのハードウェアにマッピングされない送信インターフェイスを増やす必要がなく、モデルのデバッグ機能における汎用性、メンテナンス性が向上する。
【００６９】
尚、前記説明ではデバッグ情報受信側モデルが複数になった場合を例に説明したが、デバッグ情報送信側モデルが複数になった場合も同様に適用可能である。
【００７０】
（第３の実施の形態）
次に第３の実施の形態について説明する。以下では、第１、第２の実施の形態と異なる点を中心に説明し、同一である部分は説明を省略する。第２の実施の形態では、デバッグ情報バスにおける受信対象モデルを特定する方法として、受信対象モデルＩＤを使用したが、デバッグ情報送信側モデルに受信対象モデルＩＤを付加する機能を追加する必要がある。前記機能はモデルが実装されるシステムに依存した機能であり、モデルの汎用性が失われ、再利用し辛くなる。
【００７１】
そこで、本実施の形態ではデバッグ情報送信側モデルに受信対象モデルＩＤを付加する機能を追加することなく、デバッグ情報バスを経由して、デバッグ情報を転送し、連携動作のデバッグ情報表示を行う。
【００７２】
図８は、図７のシステムＬＳＩモデル２１１において、使用されるデバッグ情報ＩＤと受信対象モデルが関連付けられた受信対象モデル関連情報である。受信対象モデル関連情報２１２では、デバッグ情報ＩＤから一意に受信対象モデルが特定できる。
【００７３】
例えば、第１の実施の形態と同様の連携動作例の場合、クロックジェネレータモデル２０は、デバッグ情報１００−１を、ハードウェアにマッピングされない送信インターフェイス２２からデバッグ情報バス２００に対して送信指示を出す。
【００７４】
デバッグ情報バス２００は、デバッグ情報１００−１のデバッグ情報ＩＤと図８の受信対象モデル関連情報から受信対象モデルがタイマーモデル２５であると特定し、タイマーモデル２５のハードウェアにマッピングされない受信インターフェイス２７へデバッグ情報を転送する。ハードウェアにマッピングされない受信インターフェイス２７がデバッグ情報を受信した以降の動作は、第１の実施の形態と同様に連携動作結果や連携動作制約が表示される。
【００７５】
次に、図９のシステムのように、同一のタイマーモデルが複数（タイマーモデルＡ２５−１とタイマーモデルＢ２５−２）存在する場合の説明をする。
図１０は、図９のシステムＬＳＩモデル２２１において、使用されるデバッグ情報ＩＤと受信対象モデルが関連付けられた受信対象モデル関連情報である。受信対象モデル関連情報２２２では、タイマーモデルＡ２５−１とタイマーモデルＢ２５−２の連携動作において、同一のデバッグ情報ＩＤが使用されている。
【００７６】
図１１は、クロックジェネレータモデル２０とタイマーモデルＡ２５−１及びタイマーモデルＢ２５−２との間のタイマー用クロック接続状態を示すハードウェア接続情報である。ハードウェア接続情報２２３において、クロックジェネレータモデル２０は計８チャネルのタイマークロック出力を有し、チャネル０〜３までがタイマーモデルＡ２５−１のチャネル０〜３、チャネル４〜７までがタイマーモデルＢ２５−２のチャネル０〜３に接続されている。
【００７７】
例えば、ＣＰＵモデル５１の制御レジスタ操作によってチャネル５番（タイマーモデルＢ２５−２のチャネル１番に接続されているクロック）のタイマークロックが１０ＭＨｚから２０ＭＨｚに変更された場合、クロックジェネレータモデル２０の内部状態を監視しているハードウェアにマッピングされないデバッグ動作記述部２１が以下のクロックジェネレータモデル２０内で発生した以下のデバッグ情報１００−３を、ハードウェアにマッピングされない送信インターフェイス２２からデバッグ情報バス２００に対して送信指示を出す。
デバッグ情報１００−３、
デバッグ情報ＩＤ：  ID_TIMER_CLOCK_CHANGE、
パラメータ数    ：  ３、
パラメータＡ    ：  ５、
パラメータＢ    ：  １０、
パラメータＣ    ：  ２０。
【００７８】
デバッグ情報バス２００は、デバッグ情報１００−３のデバッグ情報ＩＤと受信対象モデル関連情報２２２だけで受信対象モデルを特定できないため、ハードウェア接続情報２２３とパラメータＡで示されるチャネル番号から受信対象モデルがタイマーモデルＢ２５−２であることを特定する。
【００７９】
さらに、パラメータＡの値もクロックジェネレータモデル２０にとってはチャネル５番であるが、タイマーモデルＢ２５−２にとってはチャネル１番に相当するため、ハードウェア接続情報２２３に従いパラメータＡの値を５から１へ修正する。
【００８０】
最終的に、タイマーモデルＢ２５−２へ以下のデバッグ情報１００−４が転送される。デバッグ情報転送後の動作は、第１の実施の形態と同様に連携動作結果や連携動作制約が表示される。
デバッグ情報１００−４、
デバッグ情報ＩＤ：  ID_TIMER_CLOCK_CHANGE、
パラメータ数    ：  ３、
パラメータＡ    ：  １、
パラメータＢ    ：  １０、
パラメータＣ    ：  ２０、
【００８１】
尚、前記説明において、タイマーモデルＡ２５−１が受信対象となるデバッグ情報であった場合、図１１のハードウェア接続情報ではチャネル番号が一致しているため、パラメータＡの値は修正されない。
【００８２】
また、図９のシステムＬＳＩモデル２２１において、クロックジェネレータモデル２０とタイマーモデルＡ２５−１及びタイマーモデルＢ２５−２との間のタイマー用クロック接続状態が図１２のようなシステム構成に変更されても、前記説明と同様に、デバッグ情報バス２００は、デバッグ情報ＩＤ、受信対象モデル関連情報２２２、ハードウェア接続情報２２４、パラメータＡで示されるチャネル番号から受信対象モデルを特定し、パラメータＡの値を必要に応じて修正する。
【００８３】
この場合、システム構成に依存する受信対象モデルの特定、及び、パラメータ修正は、デバッグ情報バス２００において行われるので、クロックジェネレータモデル２０及びタイマーモデルＡ２５−１、タイマーモデルＢ２５−２は修正をすることなく再利用できる。
【００８４】
以上説明したように本実施例によれば、受信対象モデルＩＤを使用せず受信対象モデルを特定することができるので、デバッグ情報送信側モデルに受信対象モデルＩＤを付加する機能を追加することなく再利用ができる。
【００８５】
また、システム構成に変更があった場合、受信対象モデルの特定、及び、デバッグ情報のパラメータ修正が、デバッグ情報バスを経由する際に行われるので、デバッグ情報送信側モデル、及び、デバッグ情報受信側モデルを修正することなく、再利用できる。
【図面の簡単な説明】
【００８６】
【図１】本発明のシステムＬＳＩシミュレーション装置において、デバッグ情報を送信するシミュレーションモデルと受信するシミュレーションモデルを示すブロック図である。
【図２】デバッグ情報のフォーマットを示す図である。
【図３】デバッグ情報を送信するシミュレーションモデルがクロックジェネレータモデル、デバッグ情報を受信するシミュレーションモデルがタイマーモデルである具体例を示すブロック図である。
【図４】シミュレーションモデルのシステム全体の具体例を示すブロック図である。
【図５】第２の実施の形態におけるデバッグ情報を送信するシミュレーションモデルと受信するシミュレーションモデルを示すブロック図である。
【図６】第２の実施の形態におけるデバッグ情報のフォーマットを示す図である。
【図７】第２の実施の形態におけるシミュレーションモデルのシステム全体の具体例を示すブロック図である。
【図８】システムＬＳＩモデル２１１におけるデバッグ情報ＩＤと受信対象モデルが関連付けられた図である。
【図９】第３の実施の形態におけるシミュレーションモデルのシステム全体の具体例を示すブロック図である。
【図１０】システムＬＳＩモデル２２１におけるデバッグ情報ＩＤと受信対象モデルが関連付けられた図である。
【図１１】タイマークロック接続状態を示す図である。
【図１２】タイマークロック接続状態を示す図である。
【符号の説明】
【００８７】
１０  デバッグ情報送信側モデル
１１、１６、２１、２６  ハードウェアにマッピングされないデバッグ動作記述部
１２、２２  ハードウェアにマッピングされない送信インターフェイス
１３、１８、２３、２８  ハードウェアにマッピングされる動作記述部
１４、１９、２４、２９  ハードウェアにマッピングされるバスインターフェイス
１５  デバッグ情報受信側モデル
１７、２７  ハードウェアにマッピングされない受信インターフェイス
２０  クロックジェネレータモデル
２５  タイマーモデル
１００  デバッグ情報
１０１  デバッグ情報ＩＤ
１０２  パラメータ数
１０３  パラメータ
２００  デバッグ情報バス
２０１  受信対象モデルＩＤを含むデバッグ情報
２０２  受信対象モデルＩＤ
【図１】
2006309575.tif 000003
【図２】
2006309575.tif 000004
【図３】
2006309575.tif 000005
【図４】
2006309575.tif 000006
【図５】
2006309575.tif 000007
【図６】
2006309575.tif 000008
【図７】
2006309575.tif 000009
【図８】
2006309575.tif 000010
【図９】
2006309575.tif 000011
【図１０】
2006309575.tif 000012
【図１１】
2006309575.tif 000013
【図１２】
2006309575.tif 000014