(57)【要約】【課題】  論理回路を構成する回路モジュール（ＩＰ）の信号線の入出力のタイミングも含めた動作モデルを提供する。【解決手段】 ータ処理を行う関数をデータ処理宣言部１０１で宣言し、宣言された関数をデータ処理実装部１０２で実装する。続いて、データの入出力を制御するとともに、データ処理宣言部１０１において宣言された関数を介してデータ処理実装部１０２を制御するデータ処理制御部１０３を生成する。最後に、データ処理制御部１０３の構成に依存し、データ処理実装部１０２への参照を有する動作モデル１０４を生成する。【選択図】 図１
2006163523.tif 000002
【特許請求の範囲】
【請求項１】
論理回路に含まれる回路モジュールの動作モデルを生成する動作モデル生成方法であって、
前記回路モジュールに関連する所定のデータ処理を実行する関数を宣言するデータ処理宣言部を生成するステップと、
生成された前記データ処理宣言部において宣言されている前記関数を実装するデータ処理実装部を生成するステップと、
前記回路モジュールに関連するデータの入出力を制御するとともに、前記データ処理宣言部において宣言されている前記関数を介して前記データ処理実装部を制御するデータ処理制御部を生成するステップと、
前記データ処理制御部の構成に依存するとともに、前記データ処理実装部への参照を有する動作モデルを生成するステップと
を含むことを特徴とする動作モデル生成方法。
【請求項２】
前記データ処理実装部は、前記動作モデル内で実体化されることを特徴とする請求項１に記載の動作モデル生成方法。
【請求項３】
前記データ処理制御部は、前記データの入出力や前記データ処理に係る制御タイミングを司る時間情報を集約して保持することを特徴とする請求項１または２に記載の動作モデル生成方法。
【請求項４】
前記動作モデルを生成するステップには、予め定義されている複数のデータ処理制御部のうちから少なくとも１つのデータ処理制御部を選択するステップと、選択された前記データ処理制御部に基づいて前記動作モデルを導出するステップが含まれることを特徴とする請求項１ないし３の何れかに記載の動作モデル生成方法。
【請求項５】
前記動作モデルを生成するステップには、予め定義されている複数のデータ処理実装部のうちから少なくとも１つのデータ処理実装部を選択するステップがさらに含まれることを特徴とする請求項１ないし３のいずれかに記載の動作モデル生成方法。
【請求項６】
請求項１ないし請求項５のいずれかにに記載の動作モデル生成方法により生成された前記動作モデルを用いて前記回路モジュールの検証を行う回路モジュールの検証方法。
【請求項７】
請求項１ないし請求項５のいずれかにに記載の動作モデル生成方法により生成された前記動作モデルを用いて前記回路モジュールの検証を行う回路モジュールの検証装置。
【請求項８】
論理回路に含まれる回路モジュールの動作モデルを生成する動作モデル生成装置であって、
前記回路モジュールに関連する所定のデータ処理を実行する関数を宣言するデータ処理宣言部を生成する手段と、
生成された前記データ処理宣言部の構成に依存するとともに、該データ処理宣言部において宣言されている前記関数を実装するデータ処理実装部を生成する手段と、
前記回路モジュールに関連するデータの入出力を制御するとともに、前記データ処理宣言部において宣言されている前記関数を介して前記データ処理実装部を制御するデータ処理制御部を生成する手段と、
前記データ処理制御部の構成に依存するとともに、前記データ処理実装部への参照を有する動作モデルを生成する手段と
を含むことを特徴とする動作モデル生成装置。
【請求項９】
論理回路に含まれる回路モジュールに関連する所定のデータ処理を実行する関数を宣言するデータ処理宣言部と、
前記データ処理宣言部の構成に依存するとともに、該データ処理宣言部において宣言されている前記関数を実装するデータ処理実装部と、
前記回路モジュールに関連するデータの入出力を制御するとともに、前記データ処理宣言部において宣言されている前記関数を介して前記データ処理実装部を制御するデータ処理制御部と
が生成された上で生成される、回路モジュールの動作モデルであって、
前記データ処理制御部の構成に依存するとともに、前記データ処理実装部への参照を有することを特徴とする回路モジュールの動作モデル。
【請求項１０】
論理回路に含まれる回路モジュールの動作モデルを生成するためのコンピュータプログラムであって、記憶装置と制御装置とを含むコンピュータに対し、
前記制御装置により、前記回路モジュールに関連する所定のデータ処理を実行する関数を宣言するデータ処理宣言部を生成して前記記憶装置に記憶するステップと、
前記制御装置により、前記データ処理宣言部の構成に依存するとともに、該データ処理宣言部において宣言されている前記関数を実装するデータ処理実装部を生成して前記記憶装置に記憶するステップと、
前記制御装置により、前記回路モジュールに関連するデータの入出力を制御するとともに、前記データ処理宣言部において宣言されている前記関数を介して前記データ処理実装部を制御するデータ処理制御部を生成して前記記憶装置に記憶するステップと、
前記制御装置により、前記データ処理制御部の構成に依存するとともに、前記データ処理実装部への参照を有する動作モデルを生成して記憶するステップと
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の設計または検証を行う際に必要となる動作モデルを生成する技術に関するものである。
【背景技術】
【０００２】
従来、システムＬＳＩの設計には、いわゆるレジスタ転送レベル（以下、ＲＴＬ：Ｒｅｇｉｓｔｅｒ Ｔｒａｎｓｆｅｒ Ｌｅｖｅｌと称す。）モデルが用いられてきた。このＲＴＬモデルは、ハードウエア記述言語（ＨＤＬ）を用いて、システムＬＳＩを構成する回路モジュール（以下ではＩＰ：Ｉｎｔｅｌｌｅｃｔｕａｌ Ｐｒｏｐｅｒｔｙと称す。）の動作と構造を記述したものである。
【０００３】
しかしながら、ＲＴＬモデルを用いた設計では、多くの工数が必要となること、設計仕様の変更による手戻りが大きいこと、および回路規模に比例してシミュレーション時間が膨大になるといった課題があった。
【０００４】
上記課題を回避するため、近年ではより抽象度が高いトランザクションレベル（ＴＬ）モデルを用いて、システムＬＳＩの設計が行われるようになってきている。ＴＬモデルは、ＩＰの動作を処理単位毎に記述したモデルである。そのため、ＲＴＬモデルに比べその記述量がはるかに少ないという利点がある。
【０００５】
ＩＰの動作をＣやＣ＋＋などの汎用プログラム言語で記述してＴＬモデルを作成し、作成されたＴＬモデルを用いて計算機上でシミュレーションすることにより、システムＬＳＩが正しく設計されていることを検証できる。
【特許文献１】特開２００２−７３７１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＴＬモデルではＩＰの動作のみが記述されるため、信号の入出力タイミングも含めた動作を検証することができないという問題がある。
【課題を解決するための手段】
【０００７】
本発明は、たとえば、論理回路に含まれる回路モジュールの動作モデルを生成する動作モデル生成方法であって、前記回路モジュールに関連する所定のデータ処理を実行する関数を宣言するデータ処理宣言部を生成するステップと、生成された前記データ処理宣言部の構成に依存するとともに、該データ処理宣言部において宣言されている前記関数を実装するデータ処理実装部を生成するステップと、前記回路モジュールに関連するデータの入出力を制御するとともに、前記データ処理宣言部において宣言されている前記関数を介して前記データ処理実装部を制御するデータ処理制御部を生成するステップと、前記データ処理制御部の構成に依存するとともに、前記データ処理実装部への参照を有する動作モデルを生成するステップとを含むことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、データの入出力のタイミングを制御するデータ処理制御部を動作モデルに継承させることで、回路モジュールおける信号線の入出力のタイミングを含む動作モデルを生成することができる。これにより、信号の入出力タイミングも含めた動作を検証することができるようになる。
【発明を実施するための最良の形態】
【０００９】
以下に本発明の上位概念、中位概念および下位概念の理解に役立つ一実施形態を示す。なお、以下の実施形態に含まれる概念について、そのすべてが特許請求の範囲に記載されているとは限らない。ただし、これは特許発明の技術的範囲から意識的に除外したのではなく、特許発明と均等の関係にあるため特許請求の範囲には記載していない場合があることを理解していただきたい。
【００１０】
図１は、実施形態に係る動作モデルの基本的な構成例を示す図である。データ処理宣言部１０１は、動作モデル１０４のデータ処理を行う関数を宣言するためのコンポーネントである。データ処理実装部１０２は、データ処理宣言部１０１において宣言された関数を実装するよう設計されたコンポーネントである。データ処理制御部１０３は、データの入出力を制御するとともに、データ処理宣言部１０１において宣言された関数を介してデータ処理実装部１０２を制御するよう設計されたコンポーネントである。
【００１１】
動作モデル１０４は、前記データ処理制御部の構成に依存するコンポーネントである。動作モデル１０４は、前記データ処理制御部から導出されるコンポーネントでもある。すなわち、動作モデル１０４は、データ処理制御部１０３を継承するとともに、データ処理実装部１０２への参照を有するコンポーネントである。
【００１２】
なお、これらのコンポーネントは、Ｃ＋＋など汎用のプログラム言語を用いて記述することができる。ただし、データ処理制御部に関しては、時間概念を実装できる記述言語によって記述することが望ましい。
【００１３】
このように本実施形態によれば、データ処理制御部１０３がデータの入出力のタイミングを制御し、かつ、データ処理制御部１０３を動作モデル１０４が継承するため、信号線の入出力のタイミングを含む動作モデル１０４を生成することができる利点がある。
【００１４】
また、データ処理制御部は、データの入出力やデータ処理に係る制御タイミングを司る時間情報を集約して保持することができる。すなわち、データ処理制御部１０３がデータの入出力のタイミングを制御しているため、データ処理制御部１０３におけるデータの入出力方法を変更することで、様々な入出力を行うデータ処理制御部１０３を生成することができる利点がある。
【００１５】
また、動作モデル１０４はデータ処理制御部１０３を継承するように設計されているので、データ処理制御部１０３を変更すれば多様な入出力に対応する動作モデル１０４を生成することができる。
【００１６】
さらに、本実施形態によれば、データ処理実装部１０２は、動作モデル１０４内で実体化される。従って、データ処理実装部１０２において実装するデータ処理の内容を変更することにより、様々な処理を行うデータ処理実装部１０２を生成することができる。すなわち、データ処理実装部１０２は、動作モデル１０４により参照されるので、データ処理実装部１０２を変更することにより、多様な処理を行う動作モデル１０４を生成することができるのである。
【００１７】
さらに、それぞれ入出力の内容が異なる複数のデータ処理制御部と、それぞれデータ処理内容が異なる複数のデータ処理実装部とを予めライブラリ化しておくことも可能である。このようにすれば、動作モデル１０４を設計する際に、ライブラリから必要なデータ処理実装部１０２とデータ処理制御部１０３とを選択して用いることできるようになるので、動作モデル１０４を生成することが容易になろう。またこれにより、動作モデル１０４を生成する際にかかる工数を大幅に削減することができるようになる。さらに、データ処理制御部１０３とデータ処理実装部１０２との再利用性も向上しよう。
【００１８】
図２は、実施形態に係る動作モデル生成処理を実行可能なコンピュータの一例を示す図である。ＣＰＵ２０１は、コンピュータ２００の各部を統括的に制御する制御装置である。ＲＯＭ２０２は、ブートプログラムなどを記憶する不揮発性の記憶装置である。ＲＡＭ２０３は、ワークエリアとして機能する揮発性の記憶装置である。ハードディスクドライブ（ＨＤＤ）２０４は、大容量の記憶装置であり、動作モデル生成プログラム２１１、データ処理宣言部１０１の記述情報２１２、データ処理実装部１０２の記述情報２１３、データ処理制御部１０３の記述情報２１４、および動作モデル１０４の記述情報２１５などが記憶される。これらの記述情報は、ソースコードやオブジェクトコードであってもよいし、ライブラリ化されたファイルであってもよい。表示制御部２０５は、表示装置２０６の表示制御を実行する制御回路である。表示装置２０６は、ＣＲＴや液晶表示装置などである。入力制御部２０７は、入力装置２０８の入力制御を実行する制御回路である。入力装置２０８は、キーボードやポインティングデバイスなどである。
【００１９】
なお、検証プログラム２２０は、本実施形態に係る動作モデルを用いてＩＰの動作を検証するコンピュータプログラムである。ＣＰＵ２０１が、当該検証プログラム２２０を実行することにより、ＰＣ２００は、ＩＰの検証装置として機能する。
【００２０】
図３は、実施形態に係る動作モデル生成方法の例示的なフローチャートである。この動作モデル生成方法は、たとえば、ＣＰＵ２０１が動作モデル生成プログラム２１１を実行することにより実現される。
【００２１】
ステップＳ３０１において、ＣＰＵ２０１は、入力装置２０８から入力された情報に基づいて、動作モデル１０４が実行するデータ処理を実装するための関数を宣言するデータ処理宣言部１０１を生成する。ＣＰＵ２０１は、生成されたデータ処理宣言部１０１の記述情報２１２をＨＤＤ２０４に記憶する。
【００２２】
ステップＳ３０２において、ＣＰＵ２０１は、入力装置２０８から入力された情報に基づいて、データ処理宣言部１０１において宣言された関数に、動作モデル１０４が行うデータ処理の内容を実装するデータ処理実装部１０２を生成する。ＣＰＵ２０１は、生成されたデータ処理実装部１０２の記述情報２１３をＨＤＤ２０４に記憶する。なお、ＣＰＵ２０１は、それぞれデータ処理内容が異なる複数のデータ処理実装部を生成してＨＤＤ２０４に記憶してもよい。これにより、複数のデータ処理実装部をライブラリ化しておくことができる。
【００２３】
ステップＳ３０３において、ＣＰＵ２０１は、入力装置２０８から入力された情報に基づいて、動作モデル１０４におけるデータの入出力とデータ処理宣言部１０１で宣言された関数を介してデータ処理実装部１０２の動作を制御するデータ処理制御部１０３を生成する。ＣＰＵ２０１は、生成されたデータ処理制御部１０３の記述情報２１４をＨＤＤ２０４に記憶する。なお、ＣＰＵ２０１は、それぞれ入出力の内容が異なる複数のデータ処理制御部を生成してＨＤＤ２０４に記憶しておいてもよい。これにより、複数のデータ処理制御部をライブラリ化しておくことができる。
【００２４】
ステップＳ３０４において、ＣＰＵ２０１は、入力装置２０８から入力された情報に基づいて、データ処理実装部１０２とデータ処理制御部１０３とを用いて動作モデル１０４を生成する。ＣＰＵ２０１は、生成された動作モデル１０４の記述情報２１５をＨＤＤ２０４に記憶する。
【００２５】
なお、ステップＳ３０４において、予め定義されている複数のデータ処理制御部のうちから少なくとも１つのデータ処理制御部を選択し、選択されたデータ処理制御部に基づいて動作モデルを導出してもよい。
【００２６】
また、ステップＳ３０４において、予め定義されている複数のデータ処理実装部のうちから少なくとも１つのデータ処理実装部を選択してもよい。
【００２７】
これらにより、動作モデル１０４を生成する際にかかる工数を大幅に削減することができるようになる。さらに、データ処理制御部１０３やデータ処理実装部１０２の再利用性も向上しよう。
【００２８】
図４は、実施形態に係る動作モデル生成方法を半導体ＩＰの開発に適用した場合の動作モデルを示す図である。ここで言う半導体ＩＰとは、システムＬＳＩに含まれるＩＰを半導体で生成したものである。
【００２９】
図４を用いて、ＩＰ動作モデル４０４の構造について説明する。ＡＰＩ（アプリケーション・プログラミング・インタフェース）４０１は、ＩＰ動作モデル４０４が実行するデータ処理を実装するための関数を宣言するコンポーネントである。ラップドアルゴリズム４０２は、ＡＰＩ４０１を継承し、ＩＰ動作モデル４０４のデータ処理の内容を実装するコンポーネントである。アダプタ４０３は、データ入出力を制御するとともに、ＡＰＩ４０１において宣言された関数を介してラップドアルゴリズム４０２を制御するコンポーネントである。ＩＰ動作モデル４０４は、アダプタ４０３を継承し、ラップドアルゴリズム４０２をインスタンス化（実体化）し、そしてラップドアルゴリズム４０２に対するポインタを有するコンポーネントである。
【００３０】
ここで、ＡＰＩ４０１は、上述のデータ処理宣言部１０１に対応している。ラップドアルゴリズム４０２は、上述のデータ処理実装部１０２に対応している。アダプタ４０３は、上述のデータ処理制御部１０３に対応している。ＩＰ動作モデル１０４は、上述の動作モデル１０４に対応している。
【００３１】
ところで、アダプタ４０３は、データの入出力や半導体ＩＰのデータ処理を制御するコンポーネントであるので、タイミングなどの時間情報を含んでいる。一方で、ＡＰＩ４０１、ラップドアルゴリズム４０２、およびＩＰ動作モデル４０４には時間情報が含まれていない。よって、アダプタ４０３は、例えば、ＳｙｓｔｅｍＣに代表される時間概念を実装できる記述言語で記述する必要がある。ちなみに、ＳｙｓｔｅｍＣは、Ｃ＋＋のクラスを用いてハードウエアを記述できるようにしたシステム設計言語である。
【００３２】
このように、本実施形態では、時間情報をアダプタ４０３に集約したので、ＡＰＩ４０１、ラップドアルゴリズム４０２、およびＩＰ動作モデル４０４については、一般的なＣ＋＋やＪＡＶＡ（登録商標）のようなオブジェクト指向言語で記述できる利点がある。
【００３３】
図５は、実施形態に係るＡＰＩ４０１において宣言されるいくつかの関数をＣ＋＋で記述した例を示す図である。図５に示すように、ＡＰＩ４０１では、データ処理を行う関数を純粋仮想関数として宣言している。このため、ＡＰＩ４０１は、直接インスタンス化することはできない。
【００３４】
図５を用いて、ＡＰＩ４０１に宣言されている関数についてさらに説明する。この例では、４つの関数が宣言されている。５０１の記述部分では、演算処理を行うためにデータをセットするｓｅｔ＿ｄａｔａ関数が宣言されている。５０２の記述部分では、演算処理を行うｏｐｅｒａｔｅ関数が宣言されている。５０３の記述部分では、演算結果をアダプタ４０３に返すｇｅｔ＿ｒｅｓｕｌｔ関数が宣言されている。５０４の記述部分では、リセット時の処理を行うｒｅｓｅｔ＿ａｌｌ関数が宣言されている。ここで、５０１〜５０３の記述部分で宣言されている各関数は、予定されている処理が行われなかった場合にｆａｌｓｅを返す関数であるが、予定されたエラーの発生した場合と予定外のエラーが発生した場合とを区別できるようにするためにｂｏｏｌ型ととしている。
【００３５】
図６は、実施形態に係るラップドアルゴリズム４０２の一部をＣ＋＋で記述した例を示す図である。ラップドアルゴリズム４０２は、ＡＰＩ４０１において宣言された関数を継承し、実装することは既に説明したとおりである。図６を用いて、ラップドアルゴリズム４０２についてさらに詳しく説明する。
【００３６】
ラップドアルゴリズム４０２のソースコード中、６０１の記述部分は、図５の１０１に宣言しているｓｅｔ＿ｄａｔａ関数を継承し、実装することを示している。この例では、Ｃ＋＋の標準テンプレートライブラリ（ＳＴＬ：Ｓｔａｎｄａｒｄ Ｔｅｍｐｌａｔｅ Ｌｉｂｒａｒｙ）において定義されているクラスであるｖｅｃｔｏｒのｉｎｐｕｔ＿ｄａｔａから入力データを読み込み、Ｃ＋＋のＳＴＬに定義されているクラスであるｄｅｑｕｅのｉｎｐｕｔＦＩＦＯに読み込んだデータを書き込むことを示している。この例では、６０１の記述部分で実装された関数からｉｎｐｕｔＦＩＦＯ を介して６０２の記述部分で実装される関数にデータを渡すように記述されている。
【００３７】
６０２の記述部分には、図５の記述部分５０２において宣言されているｏｐｅｒａｔｅ関数を継承し、実装することが記述されている。この例では、始めに６０１の記述部分でｉｎｐｕｔＦＩＦＯに書き込まれたデータを読み込むように記述されている。次に、演算処理を行い、最後にＣ＋＋のＳＴＬに定義されているクラスであるｄｅｑｕｅのｏｕｔｐｕｔＦＩＦＯに演算結果を書き込むように記述されている。この例では、６０２の記述部分で実装されている関数からｏｕｔｐｕｔＦＩＦＯを介して、６０３の記述部分で実装されている関数に演算結果を渡すように記述されている。
【００３８】
６０３の記述部分には、図５の５０３の記述部分において宣言されているｇｅｔ＿ｒｅｓｕｌｔ関数を継承し、実装することが記述されている。この例では、ｏｕｔｐｕｔＦＩＦＯからデータを読み込み、読み込んだデータをＣ＋＋のＳＴＬにおいて定義されているクラスであるｖｅｃｔｏｒのｏｕｔｐｕｔ＿ｄａｔａに書き込むことが記述されている。
【００３９】
６０４の記述部分には、図５の５０４の記述部分において宣言されているｒｅｓｅｔ＿ａｌｌ関数を継承し、実装することが記述されている。この例では、６０１の記述部分から６０２の記述部分にデータを渡すときに介されるｉｎｐｕｔＦＩＦＯに書き込まれているデータをクリアするとともにと、６０２の記述部分から６０３の記述部分にデータを渡すときに介されるｏｕｔｐｕｔＦＩＦＯに書き込まれているデータをクリアすることが記述されている。
【００４０】
図７は、実施形態に係るアダプタ４０３の演算処理についての例示的なフローチャートである。図７を用いて、アダプタ４０３の動作について説明する。
【００４１】
Ｓ７０１において、アダプタ４０３は、入力ＦＩＦＯや入力バスなどから半導体ＩＰで処理の対象となるデータを読み出す。
【００４２】
Ｓ７０２において、アダプタ４０３は、５０１の記述部分で宣言されたｓｅｔ＿ｄａｔａ関数を介して、Ｓ７０１で取得したデータをラップドアルゴリズム４０２に渡す。
【００４３】
Ｓ７０３において、アダプタ４０３は、５０２の記述部分で宣言されたｏｐｅｒａｔｅ関数を介して、ラップドアルゴリズム４０２に演算処理を行うように命令を送出する。
【００４４】
Ｓ７０４において、アダプタ４０３は、Ｓ７０３での演算結果を、５０３の記述部分で宣言されたｇｅｔ＿ｒｅｓｕｌｔ関数を介してラップドアルゴリズム４０２から取得する。
【００４５】
Ｓ７０５において、アダプタ４０３は、出力ＦＩＦＯや出力バスなどにＳ７０４において取得された演算結果を書き込む。
【００４６】
Ｓ７０６において、アダプタ４０３は、次の動作を始める条件が成立するまで待機する。以上説明したように、アダプタ４０３は、半導体ＩＰのデータ処理を制御している。
【００４７】
図８は、実施形態に係るＩＰ動作モデル４０４をＣ＋＋で記述した一例を示す図である。図８を用いてＩＰ動作モデル４０４について説明する。
【００４８】
８０１の記述部分には、アダプタ４０３を継承することが記述されている。８０２の記述部分には、ラップドアルゴリズム４０２をインスタンス化することが記述されている。８０３の記述部分には、ラップドアルゴリズム４０２に対するポインタを生成することが記述されている。上述したように、ＡＰＩ４０１を直接インスタンス化することはできない。しかしながら、ＡＰＩ４０１を継承し、ＡＰＩ４０１で宣言された関数を実装したラップドアルゴリズム４０２をインスタンス化することで、アダプタ４０３を継承したＩＰ動作モデル４０４が、ＡＰＩ４０１で宣言された関数を使用することができるようになる。
【００４９】
以上説明したように、本実施形態によれば、データの入出力や半導体ＩＰのデータ処理を制御するアダプタ４０３と、半導体ＩＰの詳細なデータ処理を実装するラップドアルゴリズム４０２とを別々に生成し、生成されたアダプタ４０３とラップドアルゴリズム４０２とを用いてＩＰ動作モデル４０４を生成するようにした。
【００５０】
これによって、設計対象となるＩＰの入出力インタフェースが変更された場合はアダプタ４０３を変更することで、新しいＩＰの設計仕様の要求を満たすＩＰ動作モデル４０４を生成することができる。また、データ処理の内容が変更された場合はラップドアルゴリズム４０２を変更することで、新しいＩＰの設計仕様の要求を満たすＩＰ動作モデル４０４を生成することができる。
【００５１】
従って、ＩＰの設計仕様に変更があったとしても、従来のようにＩＰ動作モデル４０４の記述を大幅に変更する必要はなくなるので、本実施形態に係る発明は、従来のＴＬモデルよりも再利用性が向上している。
【００５２】
また、ＩＰ動作モデル４０４を生成する際に継承するアダプタ４０３と、参照するラップドアルゴリズム４０２とを変更することにより、様々な入出力インタフェースとアルゴリズムとに対応したＩＰ動作モデル４０４を生成することができるようになる利点もある。
【００５３】
また、アダプタ４０３とラップドアルゴリズム４０２とをそれぞれライブラリ化しておいてもよい。ＩＰ動作モデル４０４を設計する際には、ＩＰ動作モデル４０４の設計者が必要なアダプタ４０３とラップドアルゴリズム４０２とをライブラリから選択して用いることで、ＩＰ動作モデル４０４を生成する際にかかる工数を大幅に減らすことができる。
【００５４】
以上、本発明に係るモデル生成方法を半導体ＩＰの開発に適用したいくつかの実施形態を説明したが、これらはあくまで本発明の一例に過ぎない。
【００５５】
［他の実施形態］
以上、様々な実施形態を詳述したが、本発明の上述の各機能は、それぞれハードウエア回路によって実現してもよいし、一部またはすべてをソフトウエアによって実現してもよい。後者の場合は、各機能を実現するソフトウェアプログラムをＲＯＭなどの記憶装置に記憶しておき、それをＣＰＵが実行することになる。
【００５６】
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００５７】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【００５８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００５９】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００６０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００６１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００６２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００６４】
【図１】実施形態に係る動作モデルの基本的な構成例を示す図である。
【図２】実施形態に係る動作モデル生成処理を実行可能なコンピュータの一例を示す図である。
【図３】実施形態に係る動作モデル生成方法の例示的なフローチャートである。
【図４】実施形態に係る動作モデル生成方法を半導体ＩＰの開発に適用した場合の動作モデルのクラスを示す図である。
【図５】実施形態に係るＡＰＩ４０１において宣言されるいくつかの関数をＣ＋＋で記述した例を示す図である。
【図６】実施形態に係るラップドアルゴリズム４０２の一部をＣ＋＋で記述した例を示す図である。
【図７】実施形態に係るアダプタ４０３の演算処理についての例示的なフローチャートである。
【図８】実施形態に係るＩＰ動作モデル４０４をＣ＋＋で記述した一例を示す図である。
【符号の説明】
【００６５】
１０１：データ処理宣言部
１０２：データ処理実装部
１０３：データ処理制御部
１０４：動作モデル
【図１】
2006163523.tif 000003
【図２】
2006163523.tif 000004
【図３】
2006163523.tif 000005
【図４】
2006163523.tif 000006
【図５】
2006163523.tif 000007
【図６】
2006163523.tif 000008
【図７】
2006163523.tif 000009
【図８】
2006163523.tif 000010