(57)【要約】【課題】本発明の課題は、集積回路の多数の品種毎のシミュレータを自動生成するシミュレータ開発システムを提供すことを目的とする。【解決手段】上記課題は、集積回路のシミュレータを開発するシミュレータ開発システムであって、前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手段と、前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手段とを有することを特徴とするシミュレータ開発システムにより達成される。【選択図】  図２
2008204369.tif 000002
【特許請求の範囲】
【請求項１】
集積回路のシミュレータを開発するシミュレータ開発システムであって、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手段と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手段とを有することを特徴とするシミュレータ開発システム。
【請求項２】
前記シミュレータ生成手段は、
前記品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種の仕様を記述した文書ファイルを生成することを特徴とする請求項１記載のシミュレータ開発システム。
【請求項３】
前記シミュレータ生成手段は、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータのプログラムソースを生成するプログラムソース生成手段と、
前記プログラムソースをコンパイルして実行プログラムを生成して、テストプログラムを用いて前記実行プログラムを評価する実行プログラム評価手段と、
前記実行プログラム評価手段による評価結果が前記データファイル管理手段で管理される前記データファイルへのフィードバックが必要な状態を示すか否かを判断し、その判断結果に基づいて該フィードバックに係る内容を表示ユニットに表示させる判断手段とを有することを特徴とする請求項２記載のシミュレータ開発システム。
【請求項４】
前記判断手段は、
前記判断結果が前記実行プログラムがユーザへ提供できる製品版であることを示す場合、該実行プログラムを製品版の実行プログラムとして記憶領域に格納することを特徴とする請求項３記載のシミュレータ開発システム。
【請求項５】
前記データファイル管理手段は、
前記集積回路の各品種の前記品種名に対応させて該集積回路の入出力部の振舞を定義するマクロの組み合わせを該マクロを特定するマクロ名で示す第一ファイルが更新される毎に新規に作成し、更新された日時を含むファイル名で記憶領域に蓄積する第一ファイル蓄積手段と、
各マクロの初期値のリストを示す第二ファイルが更新される毎に新規に作成し、更新された日時を含むファイル名で記憶領域に蓄積する第二ファイル蓄積手段と、
前記マクロ毎に該マクロの振舞を示す抽象的概念図を格納する第三ファイルが更新される毎に新規に作成し、更新された日時を含むファイル名で記憶領域に蓄積する第三ファイル蓄積手段とを有することを特徴とする請求項２乃至４のいずれか一項記載のシミュレータ開発システム。
【請求項６】
前記データファイル管理手段は、
前記第一ファイルを新規に作成する場合、日時を該第一ファイルのファイル名に付加して前記第一ファイル蓄積手段に該第一ファイルを蓄積し、
前記第二ファイルを新規に作成する場合、日時を該第二ファイルのファイル名に付加して前記第二ファイル蓄積手段に該第二ファイルを蓄積し、
前記第三ファイルを新規に作成する場合、日時を該第三ファイルのファイル名に付加して前記第三ファイル蓄積手段に該第三ファイルを蓄積することを特徴とする請求項５記載のシミュレータ開発システム。
【請求項７】
前記プログラムソース生成手段は、
前記第一ファイル蓄積手段から最も日時の新しいファイル名を持つ前記第一ファイルを選択して、前記選択された品種名を用いて前記マクロの組み合わせから前記マクロ名を取得するマクロ名取得手段と、
前記第二ファイル蓄積手段から最も日時の新しいファイル名を持つ前記第二ファイルを選択して、前記マクロ名取得手段によって取得したマクロ名を用いて前記マクロの組み合わせにおける各マクロの初期値のリストを取得する初期値取得手段と、
前記マクロ名取得手段によって取得したマクロ名で特定されるマクロの前記抽象的概念図を格納する前記第三ファイルのうち最も日時の新しいファイル名を持つ第三ファイルを選択して、該第三ファイルに格納されている該抽象的概念図を所定プログラムソースに変換するマクロ振舞プログラム生成手段とを有することを特徴とする請求項５又は６記載のシミュレータ開発システム。
【請求項８】
前記マクロ振舞プログラム生成手段は、前記最も日時の新しいファイル名を持つ第三ファイルに格納されている該抽象的概念図を前記文書ファイルに記述することを特徴とする請求項７記載のシミュレータ開発システム。
【請求項９】
集積回路のシミュレータを開発するシミュレータ開発システムとしてコンピュータに機能させるためのコンピュータ実行可能なプログラムであって、該コンピュータに、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手順と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手順とを実行させることを特徴とするコンピュータ実行可能なプログラム。
【請求項１０】
コンピュータが集積回路のシミュレータを開発するシミュレータ開発方法であって、該コンピュータが、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手順と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手順とを実行することを特徴とするシミュレータ開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の多数の品種毎のシミュレータを自動生成するシミュレータ開発システム及びシミュレータ開発方法に関する。
【背景技術】
【０００２】
マイクロプロセッサ（或いはＭＰＵ:Micro Processing Unit）の開発では、処理全体の制御を司る制御部を同一としながらも、Ｉ／Ｏ部の変更や複数のＩ／Ｏ部の組み合わせ方によって多品種を開発するという方法が行われている。そのようにして開発されたマイクロプロセッサは、Ｉ／Ｏシミュレータを用いて検証されている。
【０００３】
一方で、開発されたマイクロプロセッサのハードウェア仕様に基づいて、Ｉ／Ｏシミュレータを開発しておく必要がある。Ｉ／Ｏシミュレータは、開発されたマイクロプロセッサの品種のＩ／Ｏ部をオブジェクト指向言語で、専門的知識のあるソフトウェアツール開発者によって手動で開発されている。
【０００４】
シミュレータ開発者による開発負担を低減するために、仕様から作成したテキストデータに基づいてオブジェクト指向言語のオブジェクトとしてモデル化してテストベンチを自動生成することが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平２００２−３５４０３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来より、図１に示すように、ＬＳＩハードウェア開発者１は、ＬＳＩ２ｂを開発する際には、開発したＬＳＩ２ｂを利用するユーザの為に、ＬＳＩ仕様書２ａも作成している。ＬＳＩ仕様書２ａは、マニュアルであってもよい。
【０００６】
ソフトウェアツール開発者３は、ＬＳＩ２ｂが完成するまで、ユーザ４がＬＳＩ２ｂを利用したユーザプログラム４ｂを開発することができるように、ＬＳＩ２ｂをシミュレートするＩ／Ｏシミュレータエンジン４ａをユーザ４に提供する。Ｉ／Ｏシミュレータエンジン４ａを提供するために、ソフトウェアツール開発者３は、ＬＳＩ仕様書２ａに基づいて、Ｉ／Ｏレジスタの初期値等のパラメータデータを定義したＩ／Ｏ関連データ３ａを作成し、また、開発したＬＳＩ２ｂの振舞をシミュレートするＩ／Ｏ振舞部シミュレータ３ｂをプログラム開発する。そして、ソフトウェアツール開発者３は、Ｉ／Ｏ関連データ３ａとＩ／Ｏ振舞部シミュレータ３ｂとを用いてＩ／Ｏシミュレータエンジン４ａを生成して、ユーザ４へ提供する。
【０００７】
ユーザ４は、ＬＳＩ２ｂの完成を待つことなく、ソフトウェアツール開発者３から提供されるＩ／Ｏシミュレータエンジン４ａを用いて独自のユーザプログラム４ｂを開発及び検証することができる。
【０００８】
しかしながら、処理全体の制御を司る制御部を同一としながらも、Ｉ／Ｏ部の変更や複数のＩ／Ｏ部の組み合わせ方によって多品種のＬＳＩ２ｂが開発されており、ソフトウェアツール開発者３は、品種毎にＩ／Ｏ関連データ３ａと、Ｉ／Ｏ振舞部シミュレータ３ｂと、Ｉ／Ｏシミュレータエンジン４ａとを作成しなければならず、その開発負担が増大している。
【０００９】
また、ＬＳＩ仕様書２ａは、ＬＳＩハードウェア開発者２によって作成される文書であり、人為的な記載漏れ、誤記等によってソフトウェアツール開発者３による開発の遅延や、ＬＳＩ２ｂの完成品に忠実なＩ／Ｏシミュレータエンジン４ａをユーザ４へ提供できないなどの問題があった。また、ソフトウェアツール開発者３は、ＬＳＩハードウェア開発者２によってＬＳＩ仕様書２ａが作成されてから、Ｉ／Ｏ振舞部シミュレータ３ｂを開発するため完成時期が遅れた場合、ユーザ４は、Ｉ／Ｏ振舞部シミュレータ３ｂに基づくＩ／Ｏシミュレータエンジン４ａを使うことなく、ＬＳＩ２ｂの完成品を用いてユーザプログラム４ｂの検証を開始してしまうことがあった。
【００１０】
よって、本発明の目的は、集積回路の多数の品種毎のシミュレータを自動生成するシミュレータ開発システムを提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は、集積回路のシミュレータを開発するシミュレータ開発システムであって、前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手段と、前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手段とを有するように構成される。
【００１２】
このようなシミュレータ開発システムでは、更新毎に更新された日時を含むファイル名でデータファイルが作成され、その日時に基づいてシミュレータが自動生成される。従って、品種毎にシミュレータを開発する開発者の開発負担を軽減することができる。また、データファイルを更新するのみで、集積回路の多数の品種に関するデータを管理することができる。
【００１３】
上記手段を機能としてコンピュータが実行するシミュレーション開発方法、上記手段を機能としてコンピュータに実行させるためのコンピュータ実行可能なプログラム、及び、そのプログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【００１４】
本願発明は、集積回路の多数の品種毎のシミュレータの開発を自動的に行うことが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１６】
図２は、本発明の一実施例に係るシミュレータ開発システムの機能構成を示す図である。図２において、シミュレータ開発システム１００は、データファイル管理部１０と、品種対応処理部２０と、実行プログラム生成部３０とを有する。
【００１７】
シミュレータ開発システム１００は、１つのコンピュータ装置で実現されてもよいし、２又は３のコンピュータ装置で実現されてもよい。例えば、２つのコンピュータ装置で実現される場合、データファイル管理部１０と品種対応処理部２０とが１つのコンピュータ装置で実現され、実行プログラム生成部３０はもう１つのコンピュータ装置で実現される。或いは、データファイル管理部１０が１つのコンピュータ装置で実現され、品種対応処理部２０と実行プログラム生成部３０とがもう１つのコンピュータ装置で実現されてもよい。更に、データファイル管理部１０と、品種対応処理部２０と、実行プログラム生成部３０とが各々異なる３つのコンピュータ装置で実現されてもよい。
【００１８】
データファイル管理部１０は、ＬＳＩハードウェア開発者２によって作成される種々データを所定記憶領域に格納して管理する処理部であり、品種・マクロ組合テーブル１０ａと、Ｉ／Ｏ関連データ１０ｂと、Ｉ／Ｏ振舞部図形データ１０ｃとを有する。
【００１９】
品種・マクロ組合テーブル１０ａは、ＬＳＩ２ｂの品種毎にＩ／Ｏ部のインタフェースを記述した内蔵マクロの組み合わせを定義しているテーブルである。Ｉ／Ｏ関連データ１０ｂは、内蔵マクロ毎にＩ／Ｏレジスタ等のパラメータの初期値を定義しているテーブルである。Ｉ／Ｏ振舞部図形データ１０ｃは、内蔵マクロ毎に状態遷移を抽象的概念図で定義しているデータである。抽象的概念図とは、各マクロの振舞によって変化する状態間の関連を図を用いて表現した図形データであり、例えば、ＣＡＳＥ（Computer Aided Software Enginerring）ツールを用いて表現されたＵＭＬ（Unified Modeling Language）、クラス図、シーケンス図などである。
【００２０】
品種対応処理部２０は、ＬＳＩハードウェア開発者２又はソフトウェアツール開発者３によって選択されたＬＳＩ２ｂの品種（以後、選択された品種を品種Ｘという）に対応するデータを自動生成する処理部であり、自動プログラムソース生成部２１を有し、品種Ｘ−ＬＳＩ仕様書２０ａと、品種Ｘ−Ｉ／Ｏ関連データ２０ｂと、品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃとを自動生成する。
【００２１】
自動プログラムソース生成部２１は、品種・マクロ組合テーブル１０ａに格納されている品種・マクロ組合テーブル１０ａと、Ｉ／Ｏ関連データ１０ｂと、Ｉ／Ｏ振舞部図形データ１０ｃとを読み込んで、所定アルゴリズムに従って、選択された品種Ｘに対応する品種Ｘ−ＬＳＩ仕様書２０ａと、品種Ｘ−Ｉ／Ｏ関連データ２０ｂと、品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃとを自動的に生成する。
【００２２】
例えば、自動プログラムソース生成部２１は、ドキュメント形式のファイルで品種Ｘの機能及び動作を説明した品種Ｘ−ＬＳＩ仕様書２０ａを出力し、定義ファイルのプログラムソースで品種Ｘ−Ｉ／Ｏ関連データ２０ｂを出力し、そして、品種Ｘの各Ｉ／Ｏ部の振舞をシミュレーションするプログラムソースで品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃを出力する。
【００２３】
例えば、自動プログラムソース生成部２１は、抽象的概念図からプログラムソースを生成するために、ＣＡＳＥツールを用いて、Ｉ／Ｏ振舞部図形データ１０ｃから品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃのプログラムソースを生成する。
【００２４】
実行プログラム生成部３０は、自動評価プログラム生成部３１と、試作版のＩ／Ｏシミュレータエンジン３０ａと、ユーザ４への提供用の製品版プログラムとなるＩ／Ｏシミュレータエンジン３０ｂと、テストプログラム３０ｕと、判断処理部３２とを有する。
【００２５】
自動評価プログラム生成部３１は、品種対応処理部２０で生成されたＩ／Ｏ関連データ１０ｂと、Ｉ／Ｏ振舞部図形データ１０ｃとを読み込んで、所定アルゴリズムに従って、試作版のＩ／Ｏシミュレータエンジン３０ａを自動生成する。また、自動評価プログラム生成部３１は、ソフトウェアツール開発者３が予め用意したユーザ４が開発する製品に対応できているか否かを評価するためのテストプログラム３０ｕを用いて、自動生成した試作版のＩ／Ｏシミュレータエンジン３０ａを評価し、その評価結果を出力する。
【００２６】
判断処理部３２は、自動評価プログラム生成部３１が出力した最新の評価結果を検索して、その検索した最新の評価結果に基づいて、ＬＳＩハードウェア開発者２へのフィードバックの内容をソフトウェアツール開発者３に通知、又は、試作版のＩ／Ｏシミュレータエンジン３０ａを提供用のＩ／Ｏシミュレータエンジン３０ｂとして設定する。
【００２７】
上述したように、ソフトウェアツール開発者３は、必要に応じて最新の評価結果のみを確認するだけでよい。従って、ユーザ４へ提供可能なＩ／Ｏシミュレータエンジン３０ｂの開発の負荷を低減させることができ、ユーザ４へより早い段階でＩ／Ｏシミュレータエンジン３０ｂを提供することができる。ユーザ４へ提供可能なＩ／Ｏシミュレータエンジン３０ｂをＬＳＩハードウェア開発者２へ提供することもできる。
【００２８】
また、試作版のＩ／Ｏシミュレータエンジン３０ａを自動的に評価することができるため、ＬＳＩハードウェア開発者２へのフィードバックを効率的に行なうことができる。
【００２９】
シミュレータ開発システム１００からＩ／Ｏシミュレータエンジン３０ｂの提供を受けるユーザシステム４０側では、ＬＳＩ２ｂを搭載した製品のプログラム開発をするユーザ４が、Ｉ／Ｏシミュレータエンジン３０ｂを用いて開発したユーザプログラム４０ｕの動作確認を行なう。動作確認が完了した後、ＬＳＩ２ｂとユーザプログラム４０ｕとが組み込まれた製品が生産される。
【００３０】
シミュレータ開発システム１００を実現する１乃至３のコンピュータ装置は、図３に示すようなハードウェア構成を有する。図３は、本発明の一実施例に係るシミュレータ開発システムを実現するコンピュータ装置のハードウェア構成を示す図である。
【００３１】
図３において、シミュレータ開発システム１００を実現するコンピュータ装置１００ａは、コンピュータによって制御される装置であって、ＣＰＵ（Central Processing Unit）１１と、メモリユニット１２と、表示ユニット１３と、入力ユニット１５と、記憶装置１７と、ドライバ１８とで構成され、システムバスＢに接続される。
【００３２】
ＣＰＵ１１は、メモリユニット１２に格納されたプログラムに従ってコンピュータ装置１００ａを制御する。メモリユニット１２は、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等にて構成され、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、メモリユニット１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００３３】
表示ユニット１３は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。入力ユニット１５は、マウス、キーボード等を有し、ユーザがコンピュータ装置１００ａが処理を行なうための必要な各種情報を入力するために用いられる。
【００３４】
記憶装置１７は、例えば、ハードディスクユニットにて構成され、各種処理を実行するプログラム等のデータを格納する。
【００３５】
コンピュータ装置１００ａによって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）等の記憶媒体１９によってコンピュータ装置１００ａに提供される。即ち、プログラムが保存された記憶媒体１９がドライバ１８にセットされると、ドライバ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがシステムバスＢを介して記憶装置１７にインストールされる。そして、プログラムが起動されると、記憶装置１７にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。
【００３６】
尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ装置１００ａが外部とのネットワーク通信を行う通信ユニットを有する場合には、本発明に係る処理を実現するプログラムを通信ユニットによってネットワークを介してダウンロードし、記憶装置１７にインストールするようにしても良い。また、コンピュータ装置１００ａが外部記憶装置との接続を行うＵＳＢ（Universal Serial Bus）等のインタフェースを有する場合には、ＵＳＢ接続によって外部記憶媒体からプログラムを読み込んでもよい。
【００３７】
次に、ＬＳＩハードウェア開発者２によって作成される品種・マクロ組合テーブル１０ａと、Ｉ／Ｏ関連データ１０ｂと、Ｉ／Ｏ振舞部図形データ１０ｃとについて図４、図５及び図６で説明する。
【００３８】
図４は、品種・マクロ組合テーブルの例を示す図である。図４に示す品種・マクロ組合テーブル１０ａには、品種を特定するための品種名毎にＬＳＩ２ｂ内に組み込まれる内蔵マクロの組合せを対応させて記録したマクロリストファイル１１ａが格納されている。品種名の追加、削除、内蔵マクロの変更などの更新毎に新たにマクロリストファイル１１ａが生成されて品種・マクロ組合テーブル１０ａに蓄積されていく。
【００３９】
マクロリストファイル１１ａのファイル名として、生成された日付及び時間とマクロリストファイル１１ａを示す特定の名称との組合せが設定される。例えば、ファイル名として、「200602171115-macrolist.txt」が設定される。
【００４０】
マクロリストファイル１１ａは、品種名と内蔵マクロ種類等の項目で構成される。例えば、ファイル名「200602171115-macrolist.txt」のマクロリストファイル１１ａでは、品種名「９０５９５」のＬＳＩ２ｂには、内蔵マクロ「Ａ」、「Ｂ」及び「Ｄ」が組み合わされ、品種名「９０５４５」のＬＳＩ２ｂには、内蔵マクロ「Ａ」、「Ｃ」及び「Ｄ」が組み合わされ、品種名「９０３４５」のＬＳＩ２ｂには、内蔵マクロ「Ｃ」、「Ｄ」、「Ｅ」及び「Ｇ」が組み合わされることが示される。
【００４１】
図５は、Ｉ／Ｏ関連データの例を示す図である。図５に示すＩ／Ｏ関連データ１０ｂには、内蔵マクロ毎にレジスタを特定するレジスタ名とそのレジスタに設定される初期値とを記録したパラメータリストファイル１１ｂが格納されている。内蔵マクロの追加、削除、レジスタの追加、削除、初期値の変更などの更新毎に新たにパラメータリストファイル１１ｂが生成されてＩ／Ｏ関連データ１０ｂに蓄積されていく。
【００４２】
パラメータリストファイル１１ｂのファイル名として、生成された日付及び時間とパラメータリストファイル１１ｂを示す特定の名称との組合せが設定される。例えば、ファイル名として、「200602171121-paramlist.txt」が設定される。
【００４３】
パラメータリストファイル１１ｂは、内蔵マクロ毎にレジスタ名に対応させた初期値を示すひな型を記述したファイルである。例えば、ファイル名「200602171121-paramlist.txt」のパラメータリストファイル１１ｂによって、内蔵マクロ「Ａ」のレジスタと初期値に関して、レジスタ「Reg1」の初期値は「５」であり、レジスタ「Reg2」の初期値は「３３」であり、レジスタ「Reg3」の初期値は「１２８」であり、レジスタ「Reg4」の初期値は「３」であることが定義されている。
【００４４】
図６は、Ｉ／Ｏ振舞部図形データの例を示す図である。図６に示すＩ／Ｏ振舞部図形データ１０ｃには、１つの内蔵マクロの振舞を示す状態遷移モデルを図形データで記録した状態遷移モデルファイル１１ｃが格納されている。状態遷移の変更などの更新毎に新たな状態遷移モデルファイル１１ｃが生成されてＩ／Ｏ振舞部図形データ１０ｃに蓄積されていく。
【００４５】
状態遷移モデルファイル１１ｃのファイル名として、生成された日付及び時間と内蔵マクロを特定するマクロ名と、状態遷移モデルファイル１１ｃを示す特定の名称との組合せが設定される。例えば、ファイル名として、「200602171121-A-behavior.stm」が設定される。
【００４６】
状態遷移モデルファイル１１ｃは、状態遷移モデルを作成するツールを用いて１つの内蔵マクロの振舞のひな型を描画したファイルである。例えば、ファイル名「200602171121-A-behavior.stm」の状態遷移モデルファイル１１ｃによって、内蔵マクロ「Ａ」には、状態Ｓ１と、状態Ｓ２と、状態Ｓ３とが存在することが定義されている。
【００４７】
上述した品種・マクロ組合テーブル１０ａと、Ｉ／Ｏ関連データ１０ｂと、Ｉ／Ｏ振舞部図形データ１０ｃとを用いた自動プログラムソース生成部２１での処理について図７で説明する。図７は、自動プログラムソース生成部での処理を説明するためのフローチャート図である。
【００４８】
図７において、自動プログラムソース生成部２１は、図９（Ｂ）に示すようなシミュレータ自動開発画面７２からユーザが選択したＬＳＩ２ｂの品種名を取得する（ステップＳ２０１）。
【００４９】
そして、自動プログラムソース生成部２１は、品種・マクロ組合テーブル１０ａに蓄積されているマクロリストファイル１１ａからファイル名の日時に基づいて、最新のマクロリストファイル１１ａを選択して開く（ステップＳ２０２）。自動プログラムソース生成部２１は、最新のマクロリストファイル１１ａからステップＳ２０１で取得した品種名に対応する内蔵マクロを特定する（ステップＳ２０３）。例えば、品種名が「９０５９５」である場合、内蔵マクロ「Ａ」、「Ｂ」及び「Ｄ」が特定される。
【００５０】
続けて、自動プログラムソース生成部２１は、Ｉ／Ｏ関連データ１０ｂに蓄積されているパラメータリストファイル１１ｂからファイル名の日時に基づいて、最新のパラメータリストファイル１１ｂを選択して開く（ステップＳ２０４）。
【００５１】
自動プログラムソース生成部２１は、最新のパラメータリストファイル１１ｂの内容からステップＳ２０３で特定した各内蔵マクロの定義リストを抽出して、現在の日時と品種名とを含むファイル名形式（例えば、日付品種名．ｈの形式）をファイル名とする品種Ｘ−Ｉ／Ｏ関連データ２０ｂを生成する（ステップＳ２０５）。生成された品種Ｘ−Ｉ／Ｏ関連データ２０ｂは、記憶領域内に蓄積される。
【００５２】
また、自動プログラムソース生成部２１は、Ｉ／Ｏ振舞部図形データ１０ｃに蓄積されているステップＳ２０３で特定した各内蔵マクロの状態遷移モデルファイル１１ｃからファイル名の日時に基づいて、各内蔵マクロの最新の状態遷移モデルファイル１１ｃを選択して開く（ステップＳ２０６）。
【００５３】
自動プログラムソース生成部２１は、各内蔵マクロの最新の状態遷移モデルファイル１１ｃに示される状態遷移図をドキュメントファイルに書き出して品種Ｘ−ＬＳＩ仕様書２０ａを作成し、ファイル名に現在日時を付加する（ステップＳ２０７）。作成された品種Ｘ−ＬＳＩ仕様書２０ａは、記憶領域内に蓄積される。
【００５４】
更に、自動プログラムソース生成部２１は、状態遷移図をＣソースプログラムに変換して品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃを生成し、ファイル名に現在日時を付加する（ステップＳ２０８）。品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃは、記憶領域内に蓄積される。
【００５５】
自動プログラムソース生成部２１によって生成された品種Ｘ−Ｉ／Ｏ関連データ２０ｂと品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃとを用いた実行プログラム生成部３０による処理について図８（Ａ）及び図８（Ｂ）で説明する。
【００５６】
図８（Ａ）は、自動評価プログラム生成部での処理を説明するためのフローチャート図である。図８（Ａ）において、自動評価プログラム生成部３１は、前回の処理日時より新しい品種Ｘ−Ｉ／Ｏ関連データ２０ｂ及び品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃを検出し、検出したか否かを判断する（ステップＳ３０１）。品種Ｘ−Ｉ／Ｏ関連データ２０ｂ及び品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃが検出されなかった場合、自動評価プログラム生成部３１による処理が終了される。
【００５７】
ステップＳ３０１にて、品種Ｘ−Ｉ／Ｏ関連データ２０ｂ及び品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃが検出された場合、自動評価プログラム生成部３１は、ファイル名に品種Ｘを示す最新の日付の品種Ｘ−Ｉ／Ｏ関連データ２０ｂ及び品種Ｘ−Ｉ／Ｏ振舞部シミュレータ２０ｃをコンパイルするために、現在日時を示すファイル名でｍａｋｅファイルを新規に作成するバッチ処理を実行する（ステップＳ３０２）。
【００５８】
そして、自動評価プログラム生成部３１は、ステップＳ３０２で作成されたｍａｋｅファイルを起動して（ステップＳ３０３）、コンパイル及びリンクの終了後、現在日時を示すファイル名で品種Ｘ用の実行ファイルとして新しい試作版のＩ／Ｏシミュレータエンジン３０ａを作成する（ステップＳ３０４）。
【００５９】
自動評価プログラム生成部３１は、最新の試作版のＩ／Ｏシミュレータエンジン３０ａを起動し、テストデータと期待値とを羅列したテストプログラム３０ｕを入力して、テストデータに基づく最新の試作版のＩ／Ｏシミュレータエンジン３０ａの実行結果とテストプログラム３０ｕの期待値とを比較することによって、最新の試作版のＩ／Ｏシミュレータエンジン３０ａを評価する（ステップＳ３０５）。
【００６０】
実行結果と期待値とが一致した場合、評価結果は、テストプログラム３０ｕによるテストが正常に終了したことを示す正常終了情報を示す。一方、実行結果と期待値とが一致しなかった場合、評価結果は、テストプログラム３０ｕによるテストが正常に終了せず、ＬＳＩハードウェア開発者２へのフィードバックが必要であることを示す異常終了情報を示す。異常終了情報には、実行結果と期待値とが一致しなかったテスト項目と、実行結果と、期待値とを含むようにしてもよい。
【００６１】
自動評価プログラム生成部３１は、ステップＳ３０５での評価結果を、現在日時を示すファイル名の新しい評価結果ファイルに出力する（ステップＳ３０６）。評価結果ファイルは、記憶領域に蓄積される。
【００６２】
判断処理部３２は、自動評価プログラム生成部３１の処理終了に応じて、図８（Ｂ）に示す処理を実行する。図８（Ｂ）は、判断処理部での処理を説明するためのフローチャート図である。図８（Ｂ）において、判断処理部３２は、最新の評価結果ファイルを検索して評価結果を取得して（ステップＳ３２１）、取得した評価結果が正常終了を示しているか否かを判断する（ステップＳ３２３）。
【００６３】
評価結果が正常終了を示す場合、判断処理部３２は、正常終了であったことを表示ユニット１３に表示してソフトウェア開発者３に通知し、Ｉ／Ｏシミュレータエンジン３０ａをユーザ４に提供可能な製品版のＩ／Ｏシミュレータエンジン３０ｂとして記憶領域に格納して（ステップＳ３２４）、処理を終了する。
【００６４】
一方、評価結果が異常終了を示す場合、判断処理部３２は、ＬＳＩハードウェア開発者２へのフィードバックが必要であることを表示ユニット１３に表示してソフトウェア開発者３に通知して（ステップＳ３２４−２）、処理を終了する。
【００６５】
シミュレータ開発システム１００によって表示される画面について図９（Ａ）及び図９（Ｂ）で説明する。図９（Ａ）は、ＬＳＩハードウェア開発者のための編集メニュー画面の例を示す図である。図９（Ａ）において、編集メニュー画面７１は、データファイル管理部１０によって、ＬＳＩハードウェア開発者２が管理されるデータを編集するためのメニュー画面である。
【００６６】
編集メニュー画面７１は、品種・マクロ組合テーブル１０ａから最新のマクロリストファイル１１ａを編集するためのボタン７１ａと、Ｉ／Ｏ関連データ１０ｂから最新のパラメータリストファイル１１ｂを編集するためのボタン７１ｂと、Ｉ／Ｏ振舞部図形データ１０ｃから最新の品種Ｘの状態遷移モデルファイル１１ｃを編集するためのボタン７１ｃとで構成される。
【００６７】
ＬＳＩハードウェア開発者２がボタン７１ａを選択すると、データファイル管理部１０は、品種・マクロ組合テーブル１０ａから最新のマクロリストファイル１１ａを選択して、ＬＳＩハードウェア開発者２によって編集可能なマクロリスト画面８１ａに内容を表示する。ＬＳＩハードウェア開発者２によって編集されたマクロリストファイル１１ａは、新たなマクロリストファイル１１ａとして品種・マクロ組合テーブル１０ａに蓄積される。
【００６８】
ＬＳＩハードウェア開発者２がボタン７１ｂを選択すると、データファイル管理部１０は、Ｉ／Ｏ関連データ１０ｂから最新のパラメータリストファイル１１ｂを選択して、ＬＳＩハードウェア開発者２によって編集可能なパラメータリスト画面８１ｂに内容を表示する。ＬＳＩハードウェア開発者２によって編集されたパラメータリストファイル１１ｂは、新たなパラメータリストファイル１１ｂとしてＩ／Ｏ関連データ１０ｂに蓄積される。
【００６９】
ＬＳＩハードウェア開発者２がボタン７１ｃを選択すると、データファイル管理部１０は、ＬＳＩハードウェア開発者２に所望の品種Ｘの入力を促し、所定入力域に入力された所望の品種Ｘの品種名に基づいて、Ｉ／Ｏ振舞部図形データ１０ｃから最新の品種Ｘの状態遷移モデルファイル１１ｃを選択して、ＬＳＩハードウェア開発者２によって編集可能な状態遷移画面８１ｃに内容を表示する。ＬＳＩハードウェア開発者２によって編集された品種Ｘの状態遷移モデルファイル１１ｃは、新たな品種Ｘの状態遷移モデルファイル１１ｃとしてＩ／Ｏ振舞部図形データ１０ｃに蓄積される。
【００７０】
図９（Ｂ）は、ソフトウェアツール開発者のためのシミュレータ自動開発画面の例を示す図である。図９（Ｂ）において、シミュレータ自動開発画面７２は、自動プログラム生成部２１によって、ソフトウェアツール開発者３から所望の品種Ｘの品種名を取得するための画面である。
【００７１】
シミュレータ自動開発画面７２は、作成したいシミュレータの品種名を選択するための選択域７２ａと、選択した品種名でシミュレータを生成するための実行ボタン７２ｂと、シミュレータの生成状況を示す表示域７２ｃと、生成したシミュレータの評価結果を表示する表示域７２ｄとで構成される。
【００７２】
図９（Ａ）に示す編集メニュー画面７１と図９（Ｂ）に示すシミュレータ自動開発画面７２とは、１つの画面に構成するようにしてもよい。
【００７３】
上述より、本発明に係るシミュレータ開発システム１００では、ＬＳＩハードウェア開発者２が、品種・マクロ組合テーブル１０ａと、Ｉ／Ｏ関連データ１０ｂと、Ｉ／Ｏ振舞部図形データ１０ｃとを作成するのみで、ユーザへ提供するＬＳＩ２ｂの品種に応じたＩ／Ｏシミュレータエンジン３０ａを自動的に生成し、かつ、評価することができる。また、ユーザへ提供するＬＳＩ２ｂの品種に応じた品種Ｘ−ＬＳＩ仕様書２０ａも自動的に生成することができる。
【００７４】
従って、品種Ｘ−ＬＳＩ仕様書２０ａが自動生成されると略同時に、Ｉ／Ｏシミュレータエンジン３０ａが自動生成及び評価されるため、Ｉ／Ｏシミュレータエンジン３０ａの評価が完了するまでの開発を短期間で行なうことができる。
【００７５】
また、評価によってＬＳＩハードウェア開発者２へのフィードバックが必要であるか否かも自動的に検出するため、ソフトウェアツール開発者３による評価作業の負担を軽減することができる。また、早期にＬＳＩハードウェア開発者２へフィードバックをすることができるため、品種Ｘ−ＬＳＩ仕様書２０ａの記載漏れや誤記などの訂正などを迅速に行うことができる。ＬＳＩハードウェア開発者２への早期のフィードバックにより、より評価レベルの高いＩ／Ｏシミュレータエンジン３０ａをより速く生成することができる。
【００７６】
更に、ＬＳＩハードウェア開発者２は、文書を作成することなく、短に、データを入力するのみであるので特定品種毎の品種Ｘ−ＬＳＩ仕様書２０ａを短期間で容易に作成することができる。ＬＳＩハードウェア開発者２は、多種の品種毎に文書作成をする必要がない。一方で、品種の追加などによる管理を容易に行なうことができるため、ＬＳＩハードウェア開発者２は、多種の品種のハードウェア開発に専念することができる。
【００７７】
また、既存の内蔵マクロを流用する場合、Ｉ／Ｏ関連データ１０ｂの変更のみでよく、Ｉ／Ｏ振舞部図形データ１０ｃに蓄積されている最新の状態遷移モデルファイル１１ｃが自動的に選択される。
【００７８】
更に、品種・マクロ組合テーブル１０ａ、Ｉ／Ｏ関連データ１０ｂ及びＩ／Ｏ振舞部図形データ１０ｃに各々蓄積されるマクロリストファイル１１ａ、パラメータリストファイル１１ｂ、及び状態遷移モデルファイル１１ｃのファイル名の先頭に、日時を付加することによって、最新のファイルの検索を容易とし、過去のファイルも蓄積されているため、時間順に管理することができ、特別なバージョン管理用のツールを導入する必要がない。
【００７９】
以上の説明に関し、更に以下の項を開示する。
（付記１）
集積回路のシミュレータを開発するシミュレータ開発システムであって、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手段と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手段とを有することを特徴とするシミュレータ開発システム。
（付記２）
前記シミュレータ生成手段は、
前記品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種の仕様を記述した文書ファイルを生成することを特徴とする付記１記載のシミュレータ開発システム。
（付記３）
前記シミュレータ生成手段は、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータのプログラムソースを生成するプログラムソース生成手段と、
前記プログラムソースをコンパイルして実行プログラムを生成して、テストプログラムを用いて前記実行プログラムを評価する実行プログラム評価手段と、
前記実行プログラム評価手段による評価結果が前記データファイル管理手段で管理される前記データファイルへのフィードバックが必要な状態を示すか否かを判断し、その判断結果に基づいて該フィードバックに係る内容を表示ユニットに表示させる判断手段とを有することを特徴とする付記２記載のシミュレータ開発システム。
（付記４）
前記判断手段は、
前記判断結果が前記実行プログラムがユーザへ提供できる製品版であることを示す場合、該実行プログラムを製品版の実行プログラムとして記憶領域に格納することを特徴とする付記３記載のシミュレータ開発システム。
（付記５）
前記データファイル管理手段は、
前記集積回路の各品種の前記品種名に対応させて該集積回路の入出力部の振舞を定義するマクロの組み合わせを該マクロを特定するマクロ名で示す第一ファイルが更新される毎に新規に作成し、更新された日時を含むファイル名で記憶領域に蓄積する第一ファイル蓄積手段と、
各マクロの初期値のリストを示す第二ファイルが更新される毎に新規に作成し、更新された日時を含むファイル名で記憶領域に蓄積する第二ファイル蓄積手段と、
前記マクロ毎に該マクロの振舞を示す状態遷移図を格納する第三ファイルが更新される毎に新規に作成し、更新された日時を含むファイル名で記憶領域に蓄積する第三ファイル蓄積手段とを有することを特徴とする付記２乃至４のいずれか一項記載のシミュレータ開発システム。
（付記６）
前記データファイル管理手段は、
前記第一ファイルを新規に作成する場合、日時を該第一ファイルのファイル名に付加して前記第一ファイル蓄積手段に該第一ファイルを蓄積し、
前記第二ファイルを新規に作成する場合、日時を該第二ファイルのファイル名に付加して前記第二ファイル蓄積手段に該第二ファイルを蓄積し、
前記第三ファイルを新規に作成する場合、日時を該第三ファイルのファイル名に付加して前記第三ファイル蓄積手段に該第三ファイルを蓄積することを特徴とする付記５記載のシミュレータ開発システム。
（付記７）
前記プログラムソース生成手段は、
前記第一ファイル蓄積手段から最も日時の新しいファイル名を持つ前記第一ファイルを選択して、前記選択された品種名を用いて前記マクロの組み合わせから前記マクロ名を取得するマクロ名取得手段と、
前記第二ファイル蓄積手段から最も日時の新しいファイル名を持つ前記第二ファイルを選択して、前記マクロ名取得手段によって取得したマクロ名を用いて前記マクロの組み合わせにおける各マクロの初期値のリストを取得する初期値取得手段と、
前記マクロ名取得手段によって取得したマクロ名で特定されるマクロの前記状態遷移図を格納する前記第三ファイルのうち最も日時の新しいファイル名を持つ第三ファイルを選択して、該第三ファイルに格納されている該状態遷移図を所定プログラムソースに変換するマクロ振舞プログラム生成手段とを有することを特徴とする付記５又は６記載のシミュレータ開発システム。
（付記８）
前記マクロ振舞プログラム生成手段は、前記最も日時の新しいファイル名を持つ第三ファイルに格納されている該状態遷移図を前記文書ファイルに記述することを特徴とする付記７記載のシミュレータ開発システム。
（付記９）
集積回路のシミュレータを開発するシミュレータ開発システムとしてコンピュータに機能させるためのコンピュータ実行可能なプログラムであって、該コンピュータに、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手順と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手順とを実行させることを特徴とするコンピュータ実行可能なプログラム。
（付記１０）
コンピュータが集積回路のシミュレータを開発するシミュレータ開発方法であって、該コンピュータが、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手順と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手順とを実行することを特徴とするシミュレータ開発方法。
（付記１１）
集積回路のシミュレータを開発するシミュレータ開発システムとしてコンピュータに機能させるためのプログラムを記憶したコンピュータ読取可能な記憶媒体であって、該コンピュータに、
前記集積回路の複数の品種に関するデータを格納したデータファイルを更新毎に作成し、更新された日時を含むファイル名で管理するデータファイル管理手順と、
前記集積回路の品種名の選択に応じて、前記ファイル名の日時を参照することによって、該品種名で検索される前記データファイルのうち最も新しいデータファイルを用いて該品種名で特定される前記集積回路の品種に対応する前記シミュレータを生成するシミュレータ生成手順とを実行させることを特徴とするプログラムを記憶したコンピュータ読取可能な記憶媒体。
【図面の簡単な説明】
【００８０】
【図１】従来のシミュレータ開発方法を説明するための図である。
【図２】本発明の一実施例に係るシミュレータ開発システムの機能構成を示す図である。
【図３】本発明の一実施例に係るシミュレータ開発システムを実現するコンピュータ装置のハードウェア構成を示す図である。
【図４】品種・マクロ組合テーブルの例を示す図である。
【図５】Ｉ／Ｏ関連データの例を示す図である。
【図６】Ｉ／Ｏ振舞部図形データの例を示す図である。
【図７】自動プログラムソース生成部での処理を説明するためのフローチャート図である。
【図８】実行プログラム生成部による処理を説明するためのフローチャート図である。
【図９】シミュレータ開発システムによって表示される画面の例を示す図である。
【符号の説明】
【００８１】
２            ＬＳＩハードウェア開発者
２ａ          ＬＳＩ仕様書
２ｂ          ＬＳＩ
３            ソフトウェアツール開発者
３ａ          Ｉ／Ｏ関連データ
３ｂ          Ｉ／Ｏ振舞部シミュレータ
４            ユーザ
４ａ          ユーザプログラム
４ｂ          Ｉ／Ｏシミュレータエンジン
１０          データファイル管理部
１０ａ        品種・マクロ組合テーブル
１０ｂ        Ｉ／Ｏ関連データ
１０ｃ        Ｉ／Ｏ振舞部図形データ
１１          ＣＰＵ
１２          メモリユニット
１３          表示ユニット
１５          入力ユニット
１７          記憶装置
１８          ドライバ
１９          記憶媒体
２０          品種対応処理部
２０ａ        品種Ｘ−ＬＳＩ仕様書
２０ｂ        品種Ｘ−Ｉ／Ｏ関連データ
２０ｃ        品種Ｘ−Ｉ／Ｏ振舞部シミュレータ
２１          自動プログラムソース生成部
３０          実行プログラム生成部
３０ａ        Ｉ／Ｏシミュレータエンジン（試作版プログラム）
３０ｂ        Ｉ／Ｏシミュレータエンジン（製品版プログラム）
３０ｕ        テストプログラム
３１          自動評価プログラム生成部
３２          判断処理部
４０          ユーザシステム
４０ｕ        ユーザプログラム
１００        シミュレータ開発システム
【図１】
2008204369.tif 000003
【図２】
2008204369.tif 000004
【図３】
2008204369.tif 000005
【図４】
2008204369.tif 000006
【図５】
2008204369.tif 000007
【図６】
2008204369.tif 000008
【図７】
2008204369.tif 000009
【図８】
2008204369.tif 000010
【図９】
2008204369.tif 000011