(57)【要約】【課題】  最適な速度および精度によるシステムシミュレーションを実行可能とするためのシミュレーションモデルを容易に生成する。【解決手段】  システム全体のシミュレーションを行うためのシミュレーションモデルを生成するために、システムを構成する少なくとも一つの機能モジュールを指定し(S401)、該指定された機能モジュールに対するシミュレーションの目的を指定し(S402)、該指定された目的に基づいて、指定された機能モジュールに対するシミュレーションモデルの抽象度を指定し(S403)、該シミュレーションモデルを用いたシミュレーションで使用するテストベクタを指定する(S404)ことによって、システム全体のシミュレーションモデル構成が生成される。【選択図】  図4
2006285860.tif 000002
【特許請求の範囲】
【請求項１】
システム全体のシミュレーションを行うためのシミュレーションモデルを生成するシミュレーションモデル生成方法であって、
システムを構成する少なくとも一つの機能モジュールを指定するモジュール指定ステップと、
該指定された機能モジュールに対するシミュレーションの目的を指定する目的指定ステップと、
該指定された目的に基づいて、前記機能モジュール指定ステップで指定された機能モジュールに対するシミュレーションモデルの抽象度を指定する抽象度指定ステップと、
前記シミュレーションモデルを用いたシミュレーションで使用するテストベクタを指定するテストベクタ指定ステップと、
を有することを特徴とするシミュレーションモデル生成方法。
【請求項２】
前記モジュール指定ステップにおいては、前記システムを構成する複数の機能モジュールから少なくとも1つを選択することを特徴とする請求項１記載のシミュレーションモデル生成方法。
【請求項３】
前記目的指定ステップにおいては、前記機能モジュール指定ステップで指定された全ての機能モジュールに対するシミュレーションの目的を指定することを特徴とする請求項１または２記載のシミュレーションモデル生成方法。
【請求項４】
前記目的指定ステップにおいては、前記機能モジュールに対するシミュレーションの目的を、所定の複数の目的から１つ選択することを特徴とする請求項３記載のシミュレーションモデル生成方法。
【請求項５】
前記抽象度指定ステップにおいては、シミュレーションの目的ごとに各機能モジュールに対するシミュレーションモデルの抽象度が記述されたテンプレートファイルを用いて、抽象度を指定することを特徴とする請求項１乃至４のいずれかに記載のシミュレーションモデル生成方法。
【請求項６】
前記抽象度指定ステップにおいては、前記機能モジュール指定ステップで指定された機能モジュールに対してユーザ指示に基づく抽象度が指定されていない場合に、前記テンプレートファイルに基づく抽象度指定を行うことを特徴とする請求項５記載のシミュレーションモデル生成方法。
【請求項７】
前記システムはシステムLSIであることを特徴とする請求項１乃至６のいずれかに記載のシミュレーションモデル生成方法。
【請求項８】
システム全体のシミュレーションを行うためのシミュレーションモデルを生成するシミュレーションモデル生成装置であって、
システムを構成する少なくとも一つの機能モジュールを指定するモジュール指定手段と、
該指定された機能モジュールに対するシミュレーションの目的を指定する目的指定手段と、
該指定された目的に基づいて、前記機能モジュール指定手段で指定された機能モジュールに対するシミュレーションモデルの抽象度を指定する抽象度指定手段と、
前記シミュレーションモデルを用いたシミュレーションで使用するテストベクタを指定するテストベクタ指定手段と、
を有することを特徴とするシミュレーションモデル生成装置。
【請求項９】
情報処理装置を制御することによって、該情報処理装置上で請求項１乃至７の何れかに記載されたシミュレーションモデル生成方法を実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシミュレーションモデル生成方法およびその装置に関し、特に、システム全体のシミュレーションを行うためのシミュレーションモデル構成を生成するシミュレーションモデル生成方法およびその装置に関する。
【背景技術】
【０００２】
プロセス技術の進歩によりLSIの集積度が増大し、これまでボードとして実現していたシステムを、システムLSIとして1チップ上に搭載することが可能となった。チップ上に搭載される機能モジュールも多様化し、その回路規模も増大している。これに伴い、システムLSIを効率的に設計する手法として、従来のVerilog-HDLやVHDLといったハードウェア記述言語を使用した設計から、SystemCやSpecCといったシステム記述言語を用いた設計へと移行しつつある。
【０００３】
システム記述言語による設計支援ツールとして、Synopsys社のCoCentricや、CoWare社のn2cが知られている。これらのシステム記述言語により記述したモジュールをブロック図入力画面で入力することによって、システムLSIの設計が行われる。システムLSIの設計が終了すると、設計支援ツールによってシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行うことによって、システムLSIの機能や性能を確認することができる。
【０００４】
システム記述言語によるモジュール記述としては一般に、記述の抽象度により以下の3種類の記述レベルが知られている。
【０００５】
i)トランザクションレベル（TL）：モジュール間の通信を捉えて機能を記述する抽象度レベルである。通信の開始および終了の時間、通信データにより動作するため、クロックに対する精度は非常に低い。イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。
【０００６】
ii)バスサイクルアキュレート（BCA）：モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力および出力部で正確にシミュレートすることができる。
【０００７】
iii)レジスタトランスファレベル（RTL）：レジスタファイル間の同期転送を捉えて、回路を記述する抽象度レベルである。動作クロックに対し、正確に機能動作をシミュレートすることができ精度が非常に高い。１クロックごとに機能をシミュレートするため、シミュレーション速度は非常に遅い。
【０００８】
このように、記述の抽象度が高いほどシミュレーション速度は速くなり、抽象度が低いほどシミュレーション精度が高くなる。システムLSIの設計では、抽象度の高い記述から抽象度の低い記述へと、モジュールの機能が徐々に詳細化されていく。システムLSIの設計者は、各種の抽象度で記述されたモジュールを選択して設計を行うことが一般的である。
例えば特許文献１には、論理回路用遅延計算装置に関し、特に論理部品を用いた詳細な回路図よりは抽象度の高い論理記法で表現する論理構造表現と、フロアプランレベルの配置に対して概略的な遅延計算を行う論理回路用遅延計算装置に関する技術が開示されている。
【特許文献１】特開平０５−１７４０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上記従来のシステムLSI設計においては、ユーザがシミュレーションの目的に合わせてシミュレーションモデルを選択する必要があった。このため、経験の浅い設計者や、設計を行わない検証技術者、ソフトウェア開発技術者等にとっては、最適なシミュレーションモデルの構成を選択することは難しく、シミュレーションの目的に合った精度でシミュレーション結果を得ることは困難であった。
【００１０】
本発明は上述した問題を解決するためになされたものであり、最適な速度および精度によるシステムシミュレーションを実行可能とするためのシミュレーションモデルを容易に生成するシミュレーションモデル生成方法およびその装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための一手法として、本発明のシミュレーションモデル生成方法は以下のステップを備える。
【００１２】
すなわち、システム全体のシミュレーションを行うためのシミュレーションモデルを生成するシミュレーションモデル生成方法であって、システムを構成する少なくとも一つの機能モジュールを指定するモジュール指定ステップと、該指定された機能モジュールに対するシミュレーションの目的を指定する目的指定ステップと、該指定された目的に基づいて、前記機能モジュール指定ステップで指定された機能モジュールに対するシミュレーションモデルの抽象度を指定する抽象度指定ステップと、前記シミュレーションモデルを用いたシミュレーションで使用するテストベクタを指定するテストベクタ指定ステップと、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ユーザがシミュレーションの目的を選択するだけで、システム全体のシミュレーションモデル構成を得ることができ、最適な速度および精度によるシミュレーションを容易に実行することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。
【００１５】
＜第1実施形態＞
まず図1に、本実施形態におけるシステムLSIのシミュレーションモデル生成処理において、ユーザインタフェースとなる画面表示例を示す。同1において、101はブロック図の入力および編集を行うブロック図表示部である。すなわち、ブロック図表示部101に示されるブロック図が、システムLSIの設計データを表している。ユーザはマウスやキーボード等を用いて、ブロック図表示部101上でシステムLSIを構成する機能モジュールの選択を行う。
【００１６】
102は、選択した機能モジュールに対するシミュレーションの目的を選択するシミュレーション目的選択部である。ユーザは、選択したモジュールに対するシミュレーション目的を選択する。シミュレーション目的選択部102は、ブロック図表示部101内のブロック図を構成するシンボルのうち、少なくとも1つ以上が選択された場合に表示される。
【００１７】
ここで図3に、ブロック図表示部101において複数の機能モジュールが選択された場合の画面表示例を示す。1つの機能モジュールが選択されている状態を示す図1との比較から分かるように、複数の機能モジュールが選択された場合に選択可能となるシミュレーション目的は、1つの機能モジュールが選択された場合とは異なる。これは、複数の機能モジュールが選択されることによって、システム評価に関する目的が増えるためである。
【００１８】
図2は、本実施形態におけるシステムLSIのシミュレーションモデル生成処理を実行するためのシステム構成を示すブロック図である。なお、本実施形態におけるシミュレーションモデル生成処理は、システムLSI設計ツールの一機能として実現されることが好ましい。
【００１９】
図2において、201はブロック図編集制御部であり、図1に示すブロック図表示に対し、システムLSIの設計データを表すブロック図の追加・削除および編集を制御し、編集された設計データを設計データベース203へ格納する。なお、ブロック図編集制御部201のブロック図入力・削除・編集の機能は、周知のCAD技術と同様であるため、ここでは詳細な説明を省略する。ブロック図編集制御部201は、その内部に画面編集制御部2011、モデル選択制御部2012、シミュレーション目的選択制御部2013を有する。
【００２０】
画面編集制御部2011は、設計対象のブロック図を構成するシンボルやラインの追加・削除や編集を制御し、機能モジュールを選択する。ここでシンボルは機能モジュールを代表し、ラインはバスや信号線を代表したものとして扱う。ブロック図表示部101上では、機能モジュールを代表するシンボルは箱状に、バスや信号線を代表するラインは線状に表示される。
【００２１】
モデル選択制御部2012は、画面編集制御部2011により追加・削除および編集された機能モジュールまたはバスに対し、各種抽象度からなるシミュレーションモデルを選択し、管理する。選択可能なシミュレーションモデルは、設計データベース203内にライブラリとして保持されている。モデル選択制御部2012で選択された抽象度のシミュレーションモデルはすなわち、ユーザによって選択された抽象度であり、これは、後述するシミュレーション目的に応じて選択されたシミュレーションモデルの抽象度に優先して保持され、他の抽象度に変更されることはない。
【００２２】
シミュレーション目的選択制御部2013は、画面編集制御部2011で選択された機能モジュールに対し、シミュレーションの目的を選択する。
【００２３】
設計データベース203は、設計情報をデータベースとして記憶する。ここで設計情報としては、ブロック図編集制御部201により作成されたブロック図、既存モジュールの設計情報、各機能モジュールに対応した各種シミュレーションモデル、バスの設計情報、バスに対応した各種シミュレーションモデル、等が格納されている。
【００２４】
202はシミュレーションモデル抽象度選択制御部である。ブロック図編集制御部201において、選択された機能モジュールに対するシミュレーションの目的が選択されると、選択されたシミュレーション目的に合わせ、テンプレートデータベース204内のテンプレートを使用して、システムを構成する各機能モジュールのシミュレーションモデルの抽象度を決定する。この決定方法については、後に詳述する。
【００２５】
ユーザインタフェース制御部205は、ユーザとブロック図編集制御部201とのインタフェースをとる。出力部206はモニタ207へ設計情報を表示するための手段、入力部208はユーザがキーボード209およびマウス210から入力した情報を受けるための手段であり、キーボード209およびマウス210は、ユーザがブロック図の追加・削除および編集を実行し、シミュレーションモデルの選択、シミュレーション目的の選択を行うための入力手段である。すなわちユーザインタフェース制御部205においては、出力部206を介してモニタ207へ設計情報を表示し、入力部208を介してユーザからの入力を受け付ける。
【００２６】
テストベクタ選択制御部211は、システムLSIのシミュレーションに使用するテストベクタの選択を行い管理する。選択可能なテストベクタは、テストデータベース212内に保持されている。
【００２７】
以下、図4を用いて本実施形態におけるシミュレーションモデルの生成処理について詳細に説明する。図4は、本実施形態におけるシミュレーションモデル生成処理の流れを示すフローチャートである。
【００２８】
まずステップS401において、ユーザがブロック図表示部101に表示されているブロック図から、ブロックを構成している機能モジュールのうち少なくとも1つを選択する。すると、選択された機能モジュールについてのシミュレーション目的選択部102が画面上に表示され、ステップS402においてユーザは該機能モジュールのシミュレーション目的を選択する。
【００２９】
するとステップS403において、シミュレーションモデル抽象度選択制御部202が選択された目的に対応するテンプレートをテンプレートデータベース204より読み出し、該読み出したテンプレートに従って、システムを構成する各機能モジュールのシミュレーションモデルの抽象度を決定する。なお、選択した機能モジュールに対するシミュレーションモデルの抽象度がユーザによって選択されている場合には、ユーザの選択が優先される。
【００３０】
ここで図5に、テンプレートデータベース204に保持されているテンプレートの記述例を示し、以下に説明する。なお図5は、選択した機能モジュールについてドライバソフト開発を目的とした例を示している。図中、「;」によって各項目を区別する。
【００３１】
まず最初に、シミュレーションの目的を記述する。目的を記述することを示す「PURPOSE」に続いて、シミュレーション目的のキーワードである「DEVICE DRIVER」が記述されている。なお、「PURPOSE」と「DEVICE DRIVER」の間は「:」で区切られる。
【００３２】
次に、各モジュールについて、シミュレーションモデルの抽象度指定を行う。図5の例ではモジュールとして「CPU」、「メモリ」、「選択されたモジュール」、「それ以外のモジュール」についての指定を行っている。ここでは、「選択されたモジュール」に対する指定を例として説明する。
【００３３】
選択されたモジュールであることを示す「SELECTED MODULE」に続き、シミュレーションモデルの抽象度が指定される。モデルの抽象度は優先度の高い順に複数個記述することができるが、最も優先度が高いのはユーザが選択した抽象度であり、キーワードとして「USER SELECTED」が記述されている。続いて、サイクル近似のトランザクションレベルモデル「CYCLE APPROXIMATE TLM」が指定され、順にサイクル精度のトランザクションレベルモデル「CYCLE ACCURATE TLM」、レジスタ精度のアンタイムモデル「REGISTER ACCURATE UT」、バスサイクル精度モデル「BCA」が指定されている。各抽象度を表すキーワードは「,」で区切られている。
【００３４】
このように各モジュールについての抽象度指定が記述された後に、指定されている抽象度のモデルが無い場合に使用される抽象度が「DEFAULT」として、レジスタトランスファレベル「RTL」が指定されている。
【００３５】
シミュレーションモデル抽象度選択制御部202は、図5のようなテンプレートに従って、設計データベース203から各機能モジュールに対するシミュレーションモデルの抽象度を決定していく。このとき、最も高い優先度で指定された抽象度のモデルが無い場合、次の優先度に指定された抽象度のモデルが選択される。さらに、最も低い優先度のモデルも無い場合には、「DEFAULT」で指定された抽象度のモデルが使用される。
【００３６】
以上のようにして各機能モジュールについてのシミュレーションモデルの抽象度が決定されると、次にステップS404において、ユーザがテストベクタの選択を実行する。すなわち、システムのシミュレーションに使用するテストベクタを、テストデータベース212から選択する。ユーザによるテストベクタの選択が終了すると、システムLSI全体のシミュレーションモデルが生成される。
【００３７】
図6に、シミュレーションモデルの記述例を示す。各機能モジュールに対し、シミュレーションモデル抽象度選択制御部202により選択された抽象度のシミュレーションモデル記述がインスタンスされ、ブロック図表示部101に表示された接続情報を反映したシミュレーションモデルが生成されていることが分かる。ユーザは、生成されたシミュレーションモデルを使用して、システムLSI全体のシミュレーションを実行することができる。
【００３８】
以上説明したように本実施形態によれば、ブロック図の追加・削除・編集が可能な設計ツールにおいて、ユーザがシミュレーションの目的を選択すれば、選択された目的に合った抽象度のシミュレーションモデルを用いてシミュレーションが実行できるような構成を実現したことにより、以下のような効果が得られる。  まず、シミュレーション目的に応じて、常に最適な抽象度のシミュレーションモデルの組合わせによるシミュレーションを実行することができる。このため、シミュレーション時間が長くかかりすぎたり、またシミュレーション時間を短くしたことにより精度が不足するといった問題が無くなる。
【００３９】
さらに、ユーザがたとえ経験の少ない設計者や設計経験の無い検証技術者、ソフトウェア開発技術者であっても、各モジュールのシミュレーションモデルの抽象度を選択する必要がないため、簡単に最適な組合わせによるシミュレーションを実行することができる。
【００４０】
＜他の実施形態＞
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体（記録媒体）等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００４１】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００４２】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００４３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【００４４】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM，DVD-R)などがある。
【００４５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【００４６】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００４７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００４８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００４９】
【図１】本発明に係る一実施形態であるシミュレーションモデル生成処理における画面表示例を示す図である。
【図２】本実施形態におけるシミュレーションモデル生成処理を実行するシステム構成を示すブロック図である。
【図３】本実施形態において複数の機能モジュールを選択した画面表示例を示す図である。
【図４】本実施形態におけるシミュレーションモデル生成処理を示すフローチャートである。
【図５】本実施形態におけるテンプレートの記述例を示す図である。
【図６】本実施形態におけるシミュレーションモデル記述例を示す図である。
【図１】
2006285860.tif 000003
【図２】
2006285860.tif 000004
【図３】
2006285860.tif 000005
【図４】
2006285860.tif 000006
【図５】
2006285860.tif 000007
【図６】
2006285860.tif 000008