(57)【要約】【課題】ハードウェアモデルの開発を効率的に行う。【解決手段】ハードウェア開発支援装置は、入力されたハードウェア外部仕様情報１４１に基づいて、ポート定義ファイル生成部７１において、システム記述言語により記述されたポート定義ファイル１３１を生成し、ポート間接続定義ファイル生成部７２において、システム記述言語により記述されたポート間接続定義ファイル１３２を生成し、ポート連動関数定義ファイル生成部７３において、システム記述言語により記述されたポート連動関数定義ファイル１３３を生成し、ハードウェアモデル入出力関数生成部７４において、システム記述言語により記述されたハードウェアモデル入出力関数定義ファイル１３４を生成する。本発明は、パーソナルコンピュータに適用することができる。【選択図】      図５
2004220223.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアおよびソフトウェアにより構成されるＳＯＣの開発に用いられる、前記ハードウェアに対応するハードウェアモデルを開発する情報処理装置において、
前記ハードウェアの外部仕様情報を入力する入力手段と、
前記入力手段により入力された前記外部仕様情報に基づいて、前記ハードウェアモデルのポートを定義するポート定義情報、前記ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、前記ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、前記ハードウェアモデルへの入出力関数と、前記ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つを、所定のプログラム言語を用いて生成する第１の生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記所定のプログラム言語は、システム記述言語である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記外部仕様情報は、デバイスの種類を定義するデバイス情報、前記デバイスで構成されるハードウェアブロックとして設定されるレジスタに関する情報であるレジスタ情報、および、前記ハードウェアブロックのポートを定義する情報であるハードウェア間ポート情報により構成される
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の生成手段が前記ポート定義情報を生成する場合、
前記第１の生成手段は、
前記デバイス情報に基づいて、前記ポート定義情報に含まれる、前記ハードウェアモデルのポートの定義の開始を示すポート定義開始記述を生成する第２の生成手段と、
前記レジスタ情報に基づいて、前記ポート定義情報に含まれる、前記レジスタのポートを定義するレジスタポート定義記述を生成する第３の生成手段と、
前記ハードウェア間ポート情報に基づいて、前記ポート定義情報に含まれる、前記ハードウェアブロックのポートを定義するハードウェア間ポート定義記述を生成する第４の生成手段と、
前記ポート定義情報に含まれる、前記ポートの定義の終了を示すポート定義終了記述を生成する第５の生成手段と
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１の生成手段が前記ポート間接続定義情報を生成する場合、
前記第１の生成手段は、
前記デバイス情報に基づいて、前記ポート間接続定義情報に含まれる、前記ハードウェアモデルのポートに関する、結合状態の定義の開始を示すポート間接続定義開始記述を生成する第２の生成手段と、
前記レジスタ情報に基づいて、前記ポート間接続定義情報に含まれる、前記ハードウェアモデルのポートに関する、結合状態を定義する第１の形式の接続記述を生成する第３の生成手段と、
前記ハードウェア間ポート情報に基づいて、前記ポート間接続定義情報に含まれる、前記デバイス情報に対応する前記ハードウェアブロックが制御するポートに関する、結合状態を定義する第２の形式の接続記述を生成する第４の生成手段と、
前記ハードウェア間ポート情報に基づいて、前記ポート間接続定義情報に含まれる、前記デバイス情報に対応する前記ハードウェアブロックが制御しないポートに関する、結合状態を定義する第３の形式の接続記述を生成する第５の生成手段と、
前記デバイス情報に基づいて、前記ポート間接続定義情報に含まれる、前記ハードウェアモデルのポートに関する、結合状態の定義の終了を示すポート間接続定義終了記述を生成する第６の生成手段と、
前記ポート間接続定義情報に含まれる、ＣＰＵブロックのモデルのポートに関する、結合状態の定義の開始を示すポート間接続定義開始記述を生成する第７の生成手段と、
前記レジスタ情報に基づいて、前記ポート間接続定義情報に含まれる、前記ＣＰＵブロックのモデルのポートに関する、結合状態を定義する第４の形式の接続記述を生成する第８の生成手段と、
前記ハードウェア間ポート情報に基づいて、前記ポート間接続定義情報に含まれる、前記ＣＰＵブロックが制御しないポートに関する、結合状態を定義する第２の形式の接続記述を生成する第９の生成手段と、
前記ハードウェア間ポート情報に基づいて、前記ポート間接続定義情報に含まれる、前記ＣＰＵブロックが制御するポートに関する、結合状態を定義する第３の形式の接続記述を生成する第１０の生成手段と、
前記ポート間接続定義情報に含まれる、前記ＣＰＵブロックのモデルのポートに関する、結合状態の定義の終了を示すポート間接続定義終了記述を生成する第１１の生成手段と
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記第１の生成手段が前記ポート連動関数定義情報を生成する場合、
前記第１の生成手段は、
前記レジスタ情報に基づいて、前記ポート連動関数定義情報に含まれる、前記ＣＰＵブロックによりアクセスされた場合に起動される関数の定義記述を生成する第２の生成手段と、
前記ハードウェア間ポート情報に基づいて、前記ポート連動関数定義情報に含まれる、前記ハードウェアモデルが能動的に起動する関数、および前記ハードウェアモデルが受動的に起動する関数の定義記述を生成する第３の生成手段と
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記第１の生成手段が前記ハードウェアモデル入出力関数定義情報を生成する場合、
前記第１の生成手段は、
前記ハードウェアモデル入出力関数定義情報に含まれる、所定のコンパイル条件を指定する第１の条件コンパイル記述を生成する第２の生成手段と、
前記デバイス情報に基づいて、前記ハードウェアモデル入出力関数定義情報に含まれる、前記デバイスの機能を表現するメモリ空間の開始アドレスを定義するデバイスベースアドレス定義記述を生成する第３の生成手段と、
前記レジスタ情報に基づいて、前記ハードウェアモデル入出力関数定義情報に含まれる、前記レジスタの開始アドレスを定義するレジスタアドレス定義記述を生成する第４の生成手段と、
前記レジスタ情報に基づいて、前記ハードウェアモデル入出力関数定義情報に含まれる、前記レジスタ情報に対応する前記ハードウェアへのアクセス関数を定義する第１のレジスタアクセス関数定義記述を生成する第５の生成手段と、
前記ハードウェアモデル入出力関数定義情報に含まれる、所定のコンパイル条件を指定する第２の条件コンパイル記述を生成する第６の生成手段と、
前記レジスタ情報に基づいて、前記ハードウェアモデル入出力関数定義情報に含まれる、前記レジスタ情報に対応する前記ハードウェアモデルへのアクセス関数を定義する第２のレジスタアクセス関数定義記述を生成する第７の生成手段と
を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項８】
ハードウェアおよびソフトウェアにより構成されるＳＯＣの開発に用いられる、前記ハードウェアに対応するハードウェアモデルを開発する情報処理装置の情報処理方法であって、
前記ハードウェアの外部仕様情報に基づいて、前記ハードウェアモデルのポートを定義するポート定義情報、前記ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、前記ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、前記ハードウェアモデルへの入出力関数と、前記ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つを、所定のプログラム言語を用いて生成する生成ステップと
を含むことを特徴とする情報処理方法。
【請求項９】
ハードウェアおよびソフトウェアにより構成されるＳＯＣの開発に用いられる、前記ハードウェアに対応するハードウェアモデルを開発する処理をコンピュータに行わせるプログラムにおいて、
前記ハードウェアの外部仕様情報に基づいて、前記ハードウェアモデルのポートを定義するポート定義情報、前記ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、前記ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、前記ハードウェアモデルへの入出力関数と、前記ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つを、所定のプログラム言語を用いて生成する生成ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、ハードウェアモデルの開発を効率的に行うことができるようにした情報処理装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
近年、電子機器の小型化やコストの削減等を目的として、マイクロプロセッサ、チップセット、ビデオチップ、またはメモリ等のあらゆる機能を集積したＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ）の開発が盛んになってきている。
【０００３】
ＳＯＣは、ハードウェアおよびソフトウェアを実装し、各種の機能を実現する。そのため、ＳＯＣ開発においては、ハードウェア開発者によるハードウェアの開発と、ソフトウェア開発者によるソフトウェアの開発とが行われる。その際、開発期間短縮の為に、ハードウェア開発とソフトウェア開発を並行して行うのが望ましいが、開発したソフトウェアを検証する工程においては、少なくとも、ハードウェアの、ソフトウェアとのインタフェースに関するモデルが必要であり、そのためには、ソフトウェア検証の工程は、ハードウェアの仕様が決定し、ハードウェア記述言語等によるハードウェアのモデル設計が完了した後に行われる。（例えば、特許文献１参照）。
【０００４】
これに対して、さらなる開発期間の短縮のために、ハードウェアの仕様の開発と同時にソフトウェア開発を行う方法が考えられる。その場合、ＳＯＣの開発工程は、例えば、図１のように進められる。
【０００５】
最初に、ハードウェアの開発工程として、ハードウェア設計者は、ハードウェア記述言語等を用いて論理回路等の仕様を設計するハードウェア開発１１を開始する。ハードウェア開発１１が終了すると、ハードウェア開発者は、ハードウェア検証１２において、開発したハードウェアの仕様の検証を行い、それが完了すると、ハードウェアを含むＳＯＣのモデルを検証するための評価ボードを作成する評価ボード開発１３を行う。
【０００６】
ハードウェア開発１１に並行して、ソフトウェアの開発工程として、ソフトウェア開発者は、Ｃ言語等のプログラム言語を用いてプログラム等を作成するソフトウェア開発２１を開始する。ハードウェア開発１１において、ハードウェアの外部仕様が決定されると、ソフトウェア開発者は、その外部仕様に基づいて、ソフトウェアの開発工程で利用するためのハードウェアモデルを、システム記述言語を用いて設計するハードウェアモデル開発３１を開始する。
【０００７】
そして、ソフトウェア開発２１およびハードウェアモデル開発３１が完了すると、ソフトウェア開発者は、ソフトウェアについて、ハードウェアモデルを用いて検証するソフトウェア検証２２を行う。
【０００８】
そして、評価ボード開発１３およびソフトウェア検証２２の工程が完了すると、ハードウェア設計者およびソフトウェア設計者は、設計したハードウェアとソフトウェアを統合させ、ＳＯＣの仕様として検証する工程である、ハードウェアとソフトウェアの統合検証４１を開始する。そして、ハードウェアとソフトウェアの統合検証４１が完了すると、図示は省略するが、実装するための設計工程が行われる。
【０００９】
【特許文献１】
特開平９−１５３０７７号公報（第９−１０ページ、図６および図７）
【００１０】
【発明が解決しようとする課題】
しかしながら、以上のような方法において、ハードウェアモデル開発者は、ハードウェアの仕様の開発中にハードウェアモデルを作成するために、ハードウェアの仕様変更に合わせて、ハードウェアモデルも正確に更新しなければならず、煩雑な作業を伴う場合があるという課題があった。特に、近年においては、ハードウェアの回路規模も増大しており、ハードウェアモデルとハードウェア仕様の整合性を取ることは困難になっている。
【００１１】
また、上述したハードウェアモデルを利用した場合、高速化を目的としてプロセッサモデルを利用しない場合、ハードウェアモデルへのアクセスはシステム記述言語に依存したものとなり、開発したソフトウェアを実ハードウェアで動作させるには、そのシステム記述言語依存部分を置き換える必要があるという課題もあった。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、ハードウェアモデルの開発を効率的に行うことができるようにしたものである。
【００１３】
【課題を解決するための手段】
本発明の情報処理装置は、ハードウェアの外部仕様情報を入力する入力手段と、入力手段により入力された外部仕様情報に基づいて、ハードウェアモデルのポートを定義するポート定義情報、ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、ハードウェアモデルへの入出力関数と、ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つを、所定のプログラム言語を用いて生成する第１の生成手段とを備えることを特徴とする。
【００１４】
前記所定のプログラム言語は、システム記述言語であるようにすることができる。
【００１５】
前記外部仕様情報は、デバイスの種類を定義するデバイス情報、デバイスで構成されるハードウェアブロックとして設定されるレジスタに関する情報であるレジスタ情報、および、ハードウェアブロックのポートを定義する情報であるハードウェア間ポート情報により構成されるようにすることができる。
【００１６】
前記第１の生成手段がポート定義情報を生成する場合、第１の生成手段は、デバイス情報に基づいて、ポート定義情報に含まれる、ハードウェアモデルのポートの定義の開始を示すポート定義開始記述を生成する第２の生成手段と、レジスタ情報に基づいて、ポート定義情報に含まれる、レジスタのポートを定義するレジスタポート定義記述を生成する第３の生成手段と、ハードウェア間ポート情報に基づいて、ポート定義情報に含まれる、ハードウェアブロックのポートを定義するハードウェア間ポート定義記述を生成する第４の生成手段と、ポート定義情報に含まれる、ポートの定義の終了を示すポート定義終了記述を生成する第５の生成手段とを備えるようにすることができる。
【００１７】
前記第１の生成手段がポート間接続定義情報を生成する場合、第１の生成手段は、デバイス情報に基づいて、ポート間接続定義情報に含まれる、ハードウェアモデルのポートに関する、結合状態の定義の開始を示すポート間接続定義開始記述を生成する第２の生成手段と、レジスタ情報に基づいて、ポート間接続定義情報に含まれる、ハードウェアモデルのポートに関する、結合状態を定義する第１の形式の接続記述を生成する第３の生成手段と、ハードウェア間ポート情報に基づいて、ポート間接続定義情報に含まれる、デバイス情報に対応するハードウェアブロックが制御するポートに関する、結合状態を定義する第２の形式の接続記述を生成する第４の生成手段と、ハードウェア間ポート情報に基づいて、ポート間接続定義情報に含まれる、デバイス情報に対応するハードウェアブロックが制御しないポートに関する、結合状態を定義する第３の形式の接続記述を生成する第５の生成手段と、デバイス情報に基づいて、ポート間接続定義情報に含まれる、ハードウェアモデルのポートに関する、結合状態の定義の終了を示すポート間接続定義終了記述を生成する第６の生成手段と、ポート間接続定義情報に含まれる、ＣＰＵブロックのモデルのポートに関する、結合状態の定義の開始を示すポート間接続定義開始記述を生成する第７の生成手段と、レジスタ情報に基づいて、ポート間接続定義情報に含まれる、ＣＰＵブロックのモデルのポートに関する、結合状態を定義する第４の形式の接続記述を生成する第８の生成手段と、ハードウェア間ポート情報に基づいて、ポート間接続定義情報に含まれる、ＣＰＵブロックが制御しないポートに関する、結合状態を定義する第２の形式の接続記述を生成する第９の生成手段と、ハードウェア間ポート情報に基づいて、ポート間接続定義情報に含まれる、ＣＰＵブロックが制御するポートに関する、結合状態を定義する第３の形式の接続記述を生成する第１０の生成手段と、ポート間接続定義情報に含まれる、ＣＰＵブロックのモデルのポートに関する、結合状態の定義の終了を示すポート間接続定義終了記述を生成する第１１の生成手段とを備えるようにすることができる。
【００１８】
前記第１の生成手段がポート連動関数定義情報を生成する場合、第１の生成手段は、レジスタ情報に基づいて、ポート連動関数定義情報に含まれる、ＣＰＵブロックによりアクセスされた場合に起動される関数の定義記述を生成する第２の生成手段と、ハードウェア間ポート情報に基づいて、ポート連動関数定義情報に含まれる、ハードウェアモデルが能動的に起動する関数、およびハードウェアモデルが受動的に起動する関数の定義記述を生成する第３の生成手段とを備えるようにすることができる。
【００１９】
前記第１の生成手段がハードウェアモデル入出力関数定義情報を生成する場合、第１の生成手段は、ハードウェアモデル入出力関数定義情報に含まれる、所定のコンパイル条件を指定する第１の条件コンパイル記述を生成する第２の生成手段と、デバイス情報に基づいて、ハードウェアモデル入出力関数定義情報に含まれる、デバイスの機能を表現するメモリ空間の開始アドレスを定義するデバイスベースアドレス定義記述を生成する第３の生成手段と、レジスタ情報に基づいて、ハードウェアモデル入出力関数定義情報に含まれる、レジスタの開始アドレスを定義するレジスタアドレス定義記述を生成する第４の生成手段と、レジスタ情報に基づいて、ハードウェアモデル入出力関数定義情報に含まれる、レジスタ情報に対応するハードウェアへのアクセス関数を定義する第１のレジスタアクセス関数定義記述を生成する第５の生成手段と、ハードウェアモデル入出力関数定義情報に含まれる、所定のコンパイル条件を指定する第２の条件コンパイル記述を生成する第６の生成手段と、レジスタ情報に基づいて、ハードウェアモデル入出力関数定義情報に含まれる、レジスタ情報に対応するハードウェアモデルへのアクセス関数を定義する第２のレジスタアクセス関数定義記述を生成する第７の生成手段とを備えるようにすることができる。
【００２０】
本発明の情報処理方法は、ハードウェアの外部仕様情報に基づいて、ハードウェアモデルのポートを定義するポート定義情報、ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、ハードウェアモデルへの入出力関数と、ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つを、所定のプログラム言語を用いて生成する生成ステップとを含むことを特徴とする。
【００２１】
本発明のプログラムは、ハードウェアの外部仕様情報に基づいて、ハードウェアモデルのポートを定義するポート定義情報、ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、ハードウェアモデルへの入出力関数と、ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つを、所定のプログラム言語を用いて生成する生成ステップとをコンピュータに実現させることを特徴とする。
【００２２】
本発明の情報処理装置および方法、並びにプログラムにおいては、ハードウェアの外部仕様情報が入力され、入力された外部仕様情報に基づいて、ハードウェアモデルのポートを定義するポート定義情報、ハードウェアモデルのポートの結合状態を表現するポート間接続定義情報、ハードウェアモデルの機能を表現するポート連動関数を定義するポート連動関数定義情報、または、ハードウェアモデルへの入出力関数と、ハードウェアへの入出力関数との対応関係を示すハードウェアモデル入出力関数定義情報のうち、少なくとも１つが、所定のプログラム言語を用いて生成される。
【００２３】
【発明の実施の形態】
図２は、本発明を適用したハードウェアモデル開発支援装置の内部の構成例を表すブロック図である。
【００２４】
ハードウェアモデル開発支援装置５１のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６２に記憶されているプログラム、または記憶部９３からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ６３にはまた、ＣＰＵ６１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００２５】
ＣＰＵ６１、ＲＯＭ６２、およびＲＡＭ６３は、バス８０を介して相互に接続されている。このバス８０にはまた、後述するように、ハードウェアブロックのポートについて定義するポート定義ファイルを生成するポート定義ファイル生成部７１、ポート定義ファイルにおいて定義されているポート間の接続を定義するポート間接続定義ファイルを生成するポート間接続定義ファイル生成部７２、ハードウェアブロックの機能を表すポート連動関数を定義するポート連動関数定義ファイル７３、および、ハードウェアモデル入出力関数を生成するハードウェアモデル入出力関数生成部７４が接続されている。
【００２６】
ポート定義ファイル生成部７１、ポート間接続定義ファイル生成部７２、ポート連動関数定義ファイル７３、およびハードウェアモデル入出力関数生成部７４は、それぞれ、制御部、演算処理部、ＲＯＭ、およびＲＡＭ等（いずれも図示せず）により構成され、ＣＰＵ６１に制御され、後述するように、入力されたハードウェア外部仕様情報より所定の定義ファイルを生成し、出力する。
【００２７】
バス８０にはさらにまた、入出力インタフェース９０も接続されている。
【００２８】
入出力インタフェース９０には、キーボード、マウスなどよりなる入力部９１、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ）などよりなるディスプレイ、並びにスピーカなどよりなる出力部９２、ハードディスクなどより構成される記憶部９３、モデムなどより構成される通信部９４が接続されている。通信部９４は、インターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む各種のネットワークを介しての通信処理を行う。
【００２９】
入出力インタフェース９０にはまた、必要に応じてドライブ９５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア９６が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部９３にインストールされる。
【００３０】
以上のようなハードウェアモデル開発支援装置５１を用いて、図３に示されるようなＳＯＣ１００の開発を行う場合について説明する。
【００３１】
図３において、ＳＯＣ１００は、開発対象ＳＯＣであり、各部を制御するＣＰＵ１０１、バス１０５を介してＣＰＵ１０１に制御されて、所定の処理を実行するハードウェアブロックＡ１０２、ハードウェアブロックＢ１０３、およびハードウェアブロックＣ１０４により構成されている。
【００３２】
ＣＰＵ１０１は、制御部、演算処理部、ＲＯＭ、およびＲＡＭ等（いずれも図示せず）により構成されており、予めＲＯＭに記憶されておりプログラムを実行し、バス１０５を介して、それぞれ、所定の論理回路により構成され、所定の処理を実行するハードウェアブロックＡ１０２、ハードウェアブロックＢ１０３、およびハードウェアブロックＣ１０４を制御したり、各部に演算結果を供給したり、各部より処理結果を取得したりする。
【００３３】
以上のような構成のＳＯＣ１００の開発において、ハードウェア開発者は、ハードウェアブロックＡ１０２、ハードウェアブロックＢ１０３、およびハードウェアブロックＣ１０４を開発し、ソフトウェア開発者は、ＣＰＵ１０１に内蔵されるＲＯＭに記憶されるプログラムを開発する。
【００３４】
その際、ハードウェアモデル開発者は、図３のＳＯＣ１００のハードウェアモデルとして、図４に示されるようなハードウェアモデルを開発する。図４のＳＯＣ１１０は、図３のＳＯＣ１００のハードウェアモデルであり、ＣＰＵ１０１に対応するＣＰＵ１１１、ハードウェアブロックＡ１０２のモデルであるハードウェアブロックモデルＡ１１２、ハードウェアブロックＢ１０３のモデルであるハードウェアブロックモデルＢ１１３、およびハードウェアブロックＣのモデルであるハードウェアブロックモデルＣ１１４により構成される。
【００３５】
図４において、各ハードウェアブロックモデルは、図３のバス１０５によって接続される代わりに、各ブロックの、黒四角で示される出力ポート１２１−１乃至１２１−１１と、白四角で示される入力ポート１２２−１乃至１２２−１１がそれぞれ、チャネル１２３−１乃至１２３−１１によって接続されている。
【００３６】
図２に示されるハードウェア開発支援装置５１が、図４に示されるようなハードウェアモデルを開発する場合、ハードウェア開発支援装置５１は、図５に示されるように、入力されたハードウェア外部仕様情報１４１に基づいて、ポート定義ファイル生成部７１においてポート定義ファイル１３１を生成し、ポート間接続定義ファイル生成部７２においてポート間接続定義ファイル１３２を生成し、ポート連動関数定義ファイル生成部７３においてポート連動関数定義ファイル１３３を生成し、ハードウェアモデル入出力関数生成部７４においてハードウェアモデル入出力関数定義ファイル１３４を生成する。
【００３７】
ポート定義ファイル１３１、ポート間接続定義ファイル１３２、ポート連動関数定義ファイル１３３、およびハードウェアモデル入出力関数定義ファイル１３４は、入力されたハードウェア外部仕様情報に定義されるハードウェアに対応するハードウェアモデルを構成するファイルである。
【００３８】
ポート定義ファイル１３１は、ハードウェアブロックモデルのポートを定義する情報により構成され、ポート間接続定義ファイル１３２は、ポート定義ファイル１３１において定義されている複数のポート間の結合状態を定義し、ハードウェアモデルのポートの結合状態を表現する情報により構成され、ポート連動関数定義ファイル１３３は、各ハードウェアモデルにおいて起動される関数を定義し、ハードウェアモデルの機能を表現する情報により構成され、ハードウェアモデル入出力関数定義ファイル１３４は、ハードウェアブロックに入出力される関数と、ハードウェアブロックモデルに入出力される関数との対応関係を定義する情報により構成されている。
【００３９】
これらの定義ファイルは、例えば、ＳｐｅｃＣ、ＳｙｓｔｅｍＣ、またはＣｏＷａｒｅＣ等のような所定のシステム記述言語により記述されており、ソフトウェアが指定したハードウェアレジスタ名で特定される関数名に対応する、システム記述言語に依存した、ハードウェアモデルの入出力関数を呼び出し、所定の処理結果をソフトウェアに出力するためのファイルである。
【００４０】
これらの定義ファイルは、ソフトウェア開発工程において、ソフトウェアの検証時に、ソフトウェア側から見たハードウェアブロックの機能を再現するために使用される。
【００４１】
ハードウェア外部仕様情報１４１は、ハードウェア開発者によってハードウェア開発工程において生成される、ハードウェアブロックの外部仕様に関する情報である。
【００４２】
図６に示されるように、ハードウェア外部仕様情報１４１は、デバイス情報１５１、レジスタ情報１６１、およびハードウェア間ポート情報１７１からなる。
【００４３】
デバイス情報１５１は、ハードウェアブロックの名前を示すデバイス名１５２と、そのハードウェアブロックとして設定されるレジスタのアドレス情報であるベースアドレス１５３により構成されており、デバイス（すなわち、ハードウェアブロックの種類）を定義する情報である。
【００４４】
図６の場合、デバイス情報１５１は、デバイス名「ＤＭＡＣ」のハードウェアブロックのレジスタが、アドレス「０ｘ１０００」から始まるアドレス空間に設定されていることを示している。
【００４５】
レジスタ情報１６１は、特定のハードウェアブロックとして設定されるレジスタに関する情報であり、そのハードウェアブロックとして設定されるレジスタの名前であるレジスタ１６２、そのレジスタのアドレスの、ベースアドレス１５３からのオフセットを示すアドレスオフセット１６３、そのレジスタのビット幅を示すレジスタ幅１６４、およびそのレジスタのタイプを示すレジスタタイプ１６５等により構成されている。
【００４６】
図６の場合、レジスタ情報１６１は、デバイス名「ＤＭＡＣ」のハードウェアブロックの１つとして設定されるレジスタのレジスタ名が「ＤＭＡＣ＿Ａ」であり、そのレジスタが、ベースアドレスからのオフセット「０ｘ００００」から始まるアドレス空間に、３２ビットの幅で設定されており、そのレジスタのタイプが「Ｒ／Ｗ」であり、読み取りと書き込みを行うことができることを示している。
【００４７】
ハードウェア間ポート情報１７１は、ポートの名前を示すポート名１７２、ポートの種類を示すポートタイプ１７３、ビット幅を定義するポート幅１７４、並びに、ハードウェアブロックの接続関係を示すマスターポートブロック名１７５およびスレーブポートブロック名１７６により構成され、各ハードウェアブロックを接続するポートを定義する情報である。
【００４８】
図６の場合、ハードウェア間ポート情報１７２は、ポート名「Ｉｎｔ＿ＤＭＡＣ＿ＣＰＵ＿ＩＮＴ」のポートのポートタイプが「Ｗ」であり、書き込みを行うためのポートであり、そのポート幅は１ビットであり、そのポートのマスターポートブロック名が「ＤＭＡＣ」で、スレーブポートブロック名が「ＣＰＵ」であることを示している。すなわち、ポート名「Ｉｎｔ＿ＤＭＡＣ＿ＣＰＵ＿ＩＮＴ」のポートは、「ＤＭＡＣ」が「ＣＰＵ」に対して書き込みを行うための、１ビット幅のポートであることが示されている。
【００４９】
以上のような構成のハードウェア外部仕様情報１４１は、ハードウェア開発工程において、ハードウェア開発者により作成され、図２に示されるハードウェア開発支援装置５１に入力される。例えば、ソフトウェア開発者がキーボードやマウスを操作することにより、ハードウェア外部仕様情報１４１は、入力部９１を介して入力される。
【００５０】
なお、ハードウェア外部仕様情報１４１は、上述した以外にも、ハードウェア外部仕様情報１４１が記憶されたリムーバブルメディア９６をドライブ９５に装着することにより、ＣＰＵ６１の制御に基づいて、ハードウェアモデル開発支援装置５１に入力されるようにしてもよいし、通信部９４を介して、他の装置より入力されるようにしてもよい。
【００５１】
以上のようにして、入力されたハードウェア外部仕様情報１４１は、ＲＡＭ６３に一次保持されたり、記憶部９３に記憶されたりした後、ＣＰＵ６１に制御され、ポート定義ファイル生成部７１に供給される。
【００５２】
ハードウェア外部仕様情報１４１を供給されたポート定義ファイル生成部７１は、システム記述言語を用いてポート定義ファイル１３１を生成する。図７のフローチャートを参照して、ハードウェアモデル開発支援装置５１によるポート定義ファイル生成処理を説明する。
【００５３】
最初に、ステップＳ１において、ポート定義ファイル生成部７１は、入力されたハードウェア外部仕様情報１４１のデバイス情報１５１よりデバイス名１５２を取得し、ステップＳ２において、そのデバイス名を用いて、図８に示されるように、ハードウェアモデルのポートの定義の開始を示すポート定義開始記述を生成し、出力する。
【００５４】
図８は、ポート定義ファイル生成部７１より出力されるポート定義ファイル１３１のデータの構成例を示す図である。図８において、上から第１行目の記述１８１「ｂｌｏｃｋｄｅｆ  Ｗｒａｐｐｅｒ＿ＤＭＡＣ（」がステップＳ２において出力されるポート定義開始記述である。
【００５５】
ポート定義開始記述を出力したポート定義ファイル生成部７１は、ステップＳ３において、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２、レジスタ幅１６４、およびレジスタタイプ１６５を取得し、ステップＳ４において、取得した情報に基づいて、レジスタのポートを定義するレジスタポート定義記述を生成し、ステップＳ５において、生成したレジスタポート定義記述を出力する。このとき、ポート定義ファイル生成部７１は、ポート属性を「ｉｎｓｌａｖｅ」に定義する。
【００５６】
図８において、上から第２行目の記述１８２「ｂｏｏｌ［３２］  ｐｓ＿ｉｏ＿Ｒｅｇ＿ＤＭＡＣ＿Ａ：  ｉｎｓｌａｖｅ，」がステップＳ４において生成されるレジスタポート定義記述である。
【００５７】
そして、ステップＳ６において、ポート定義ファイル生成部７１は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ポート定義ファイル生成部７１は、処理をステップＳ４に戻し、それ以降の処理を繰り返す。すなわち、ポート定義ファイル生成部７１は、図８に示されるように、レジスタ情報１６１に記述されている全てのレジスタに対してレジスタポート定義記述を生成し、出力する。
【００５８】
ステップＳ６において、全てのレジスタについてレジスタポート定義記述を出力した（未処理のレジスタが存在しない）と判定した場合、ポート定義ファイル生成部７１は、処理をステップＳ７に進め、ハードウェア外部仕様情報１４１のハードウェア間ポート情報１７１よりポート名１７２、ポートタイプ１７３、ポート幅１７４、マスターポートブロック名１７５、およびスレーブポートブロック名１７６を取得し、ステップＳ８において、取得した情報に基づいて、ハードウェアブロックのポートを定義するハードウェア間ポート定義記述を生成し、ステップＳ９において、そのハードウェア間ポート定義記述を出力する。
【００５９】
図８において、下から第２行目の記述１８３「ｂｏｏｌ  ｐｍ＿ｏ＿Ｉｎｔ＿ＤＭＡＣ＿ＣＰＵ＿ＩＮＴ：  ｏｕｔｍａｓｔｅｒ」がステップＳ８において生成されるハードウェア間ポート定義記述である。
【００６０】
そして、ステップＳ１０において、ポート定義ファイル生成部７１は、ハードウェア間ポート情報１７１に記述されているポートのうち、未処理のポートが存在するか否かを判定する。未処理のポートが存在すると判定した場合、ポート定義ファイル生成部７１は、処理をステップＳ８に戻し、それ以降の処理を繰り返す。すなわち、ポート定義ファイル生成部７１は、図８に示されるように、ハードウェア間ポート情報１７１に記述されている全てのポートに対してハードウェア間ポート定義記述を生成し、出力する。
【００６１】
ステップＳ１０において、全てのポートについてハードウェア間ポート定義記述を出力した（未処理のポートが存在しない）と判定した場合、ポート定義ファイル生成部７１は、処理をステップＳ１１に進め、ポートの定義の終了を示すポート定義終了記述を生成し、出力する。
【００６２】
図８において、下から第１行目の記述１８４「）ｂｅｇｉｎ」がステップＳ１１において生成されるポート定義終了記述であり、ポート定義ファイル１３１におけるポートの定義に関する記述の終了を示す。
【００６３】
ポート定義終了記述を出力したポート定義ファイル生成部７１は、ポート定義ファイル生成処理を終了する。
【００６４】
以上のようにポート定義ファイル生成処理が実行され、出力されたポート定義ファイル１３１は、ＲＡＭ６３により一時的に保持されたり、記憶部９３に記憶されたりする。
【００６５】
また、入力されたハードウェア外部仕様情報１４１は、ＲＡＭ６３に一次保持されたり、記憶部９３に記憶されたりした後、ＣＰＵ６１に制御され、ポート間接続定義ファイル生成部７２にも供給される。
【００６６】
ところで、ハードウェア外部仕様情報１４１を供給されたポート間接続定義ファイル生成部７２は、システム記述言語を用いてポート間接続定義ファイル１３２を生成する。図９および図１０のフローチャートを参照して、ハードウェアモデル開発支援装置５１によるポート間接続定義ファイル生成処理を説明する。
【００６７】
最初に、ポート間接続定義ファイル生成部７２は、ステップＳ３１において、ハードウェア外部仕様情報１４１のデバイス情報１５１よりデバイス名１５２を取得し、ステップＳ３２において、取得したデバイス名１５２に基づいて、ハードウェアモデルのポートに関する、結合状態の定義の開始を示すポート間接続定義開始記述を生成し、出力する。
【００６８】
図１１は、ポート間接続定義ファイル生成部７２より出力されるポート間接続定義ファイル１３２のデータの構成例を示す図である。図１１において、上から第１行目の記述１９１「ｉ＿Ｗｒａｐｐｅｒ＿ＤＭＡＣ（」がステップＳ３２において出力されるポート間接続定義開始記述である。
【００６９】
ポート間接続定義開始記述を出力したポート間接続定義ファイル生成部７２は、ステップＳ３３において、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２およびレジスタタイプ１６５を取得し、ステップＳ３４において、取得した情報に基づいて、ハードウェアモデルのポートに関する、結合状態を定義する、「ｐｓ＿｛レジスタタイプ｝＿Ｒｅｇ＿｛レジスタ名｝  ＝＞  ｃ＿Ｒｅｇ＿｛レジスタ名｝，」という書式の、第１の形式の接続記述を生成し、ステップＳ３５において、その第１の形式の接続記述を出力する。
【００７０】
図１１において、上から第２行目の記述１９２「ｐｓ＿ｉｏ＿Ｒｅｇ＿ＤＭＡＣ＿Ａ  ＝＞  ｃ＿Ｒｅｇ＿ＤＭＡＣ＿Ａ」がステップＳ３４において生成される第１の形式の接続記述である。
【００７１】
そして、ステップＳ３６において、ポート間接続定義ファイル生成部７２は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ３４に戻し、それ以降の処理を繰り返す。すなわち、ポート間接続定義ファイル生成部７２は、図１１に示されるように、レジスタ情報１６１に記述されている全てのレジスタに対して、上述した第１の形式の接続記述を生成し、出力する。
【００７２】
ステップＳ３６において、全てのレジスタについて第１の形式の接続記述を出力した（未処理のレジスタが存在しない）と判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ３７に進め、ハードウェア外部仕様情報１４１のハードウェア間ポート情報１７１よりポート名１７２、ポートタイプ１７３、マスターポートブロック名１７５、およびスレーブポートブロック名１７６を取得し、ステップＳ３８において、取得したマスターポートブロック名が、ステップＳ３１において取得したデバイス名と一致するか否かを判定する。
【００７３】
取得したマスターポートブロック名が、ステップＳ３１において取得したデバイス名１５２と一致すると判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ３９に進め、取得した情報に基づいて、デバイス名１５２に対応するハードウェアブロックが制御するポートに関する結合状態を定義する、「ｐｍ＿｛ポートタイプ｝＿｛ポート名｝  ＝＞  ｃ＿｛ポート名｝，」という書式の、第２の形式の接続記述を生成し、出力する。
【００７４】
図１１において、上から第４行目の記述１９３「ｐｍ＿ｏ＿Ｉｎｔ＿ＤＭＡＣ＿ＴＥ＿ＥＮＤ  ＝＞  ｃ＿Ｉｎｔ＿ＤＭＡＣ＿ＴＥ＿ＥＮＤ」がステップＳ３９において生成される第２の形式の接続記述である。第２の形式の接続記述を生成し、出力したポート間接続定義ファイル生成部７２は、処理をステップＳ４１に進める。
【００７５】
ステップＳ３８において、取得したマスターポートブロック名が、ステップＳ３１において取得したデバイス名１５２と一致しないと判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ４０に進め、取得した情報に基づいて、デバイス名１５２に対応するハードウェアブロックが制御しないポートに関する結合状態を定義する、「ｐｓ＿｛ポートタイプ｝＿｛ポート名｝  ＝＞  ｃ＿｛ポート名｝，」という書式の、第３の形式の接続記述を生成し、出力する。第３の形式の接続記述を生成し、出力したポート間接続定義ファイル生成部７２は、処理をステップＳ４１に進める。
【００７６】
第２の形式、または第３の形式の接続記述を出力したポート間接続定義ファイル生成部７２は、ステップＳ４１において、ハードウェア間ポート情報１７１に記述されているポートのうち、未処理のポートが存在するか否かを判定する。未処理のポートが存在すると判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ３８に戻し、それ以降の処理を繰り返す。すなわち、ポート間接続定義ファイル生成部７２は、図１１に示されるように、ハードウェア間ポート情報１７１に記述されている全てのポートに対して第２の形式、または第３の形式の接続記述を生成し、出力する。
【００７７】
ステップＳ４１において、全てのポートについて接続記述を出力した（未処理のポートが存在しない）と判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ４２に進め、ハードウェアモデルのポートに関する、結合状態の定義の終了を示すポート間接続定義終了記述を生成し、出力する。
【００７８】
図１１において、上から第５行目の記述１９４「）；」がステップＳ４２において生成されるポート間接続定義終了記述であり、ポート間接続定義ファイル１３２における、ＣＰＵ１１１以外のハードウェアブロックのポート間接続定義に関する記述の終了を示す。
【００７９】
ポート間接続定義終了記述を出力したポート間接続定義ファイル生成部７２は、ＣＰＵ１１１に関するポート間接続定義に関する記述を生成するために、図１０のステップＳ４３に処理を進める。
【００８０】
図１０のステップＳ４３において、ポート間接続定義ファイル生成部７２は、所定の書式の、ＣＰＵ１１１のモデルのポートに関する、結合状態の定義の開始を示す、ＣＰＵブロックポート間接続定義開始記述を生成し、出力する。
【００８１】
図１１において、上から第６行目の記述１９５「ｉ＿Ｗｒａｐｐｅｒ＿ＣＰＵ（」がステップＳ４３において出力されるＣＰＵブロックポート間接続定義開始記述である。
【００８２】
ＣＰＵブロックポート間接続定義開始記述を出力したポート間接続定義ファイル生成部７２は、ステップＳ４４において、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２およびレジスタタイプ１６５を取得し、ステップＳ４５において、取得した情報に基づいて、ＣＰＵ１１１のモデルのポートに関する結合状態を定義する、「ｐｍ＿｛レジスタタイプ｝＿Ｒｅｇ＿｛レジスタ名｝  ＝＞  ｃ＿Ｒｅｇ＿｛レジスタ名｝，」という書式の、第４の形式の接続記述を生成し、ステップＳ４６において、その第４の形式の接続記述を出力する。
【００８３】
図１１において、上から第７行目の記述１９６「ｐｍ＿ｉｏ＿Ｒｅｇ＿ＤＭＡＣ＿Ａ  ＝＞  ｃ＿Ｒｅｇ＿ＤＭＡＣ＿Ａ」がステップＳ４５において生成される第４の形式の接続記述である。
【００８４】
そして、ステップＳ４７において、ポート間接続定義ファイル生成部７２は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ４５に戻し、それ以降の処理を繰り返す。
【００８５】
ステップＳ４７において、全てのレジスタについて第４の形式の接続記述を出力した（未処理のレジスタが存在しない）と判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ４８に進め、ハードウェア外部仕様情報１４１のハードウェア間ポート情報１７１よりポート名１７２、ポートタイプ１７３、マスターポートブロック名１７５、およびスレーブポートブロック名１７６を取得し、ステップＳ４９において、取得したスレーブポートブロック名が、ＣＰＵ１１１と一致するか否かを判定する。
【００８６】
取得したスレーブポートブロック名が、ＣＰＵ１１１と一致すると判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ５０に進め、取得した情報に基づいて、ＣＰＵ１１１が制御するポートに関する結合状態を定義する、上述した書式の、第３の形式の接続記述を生成し、出力する。
【００８７】
図１１において、下から第２行目の記述１９７「ｐｓ＿ｏ＿Ｉｎｔ＿ＤＭＡＣ＿ＣＰＵ＿ＩＮＴ  ＝＞  ｃ＿Ｉｎｔ＿ＤＭＡＣ＿ＣＰＵ＿ＩＮＴ」がステップＳ５０において生成される第３の形式の接続記述である。第３の形式の接続記述を生成し、出力したポート間接続定義ファイル生成部７２は、処理をステップＳ５２に進める。
【００８８】
ステップＳ４９において、取得したスレーブポートブロック名が、ＣＰＵ１１１と一致しないと判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ５１に進め、取得した情報に基づいて、ＣＰＵ１１１が制御しないポートに関する結合状態を定義する、上述した書式の、第２の形式の接続記述を生成し、出力する。第２の形式の接続記述を生成し、出力したポート間接続定義ファイル生成部７２は、処理をステップＳ５２に進める。
【００８９】
第２の形式、または第３の形式の接続記述を出力したポート間接続定義ファイル生成部７２は、ステップＳ５２において、ハードウェア間ポート情報１７１に記述されているポートのうち、未処理のポートが存在するか否かを判定する。未処理のポートが存在すると判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ４９に戻し、それ以降の処理を繰り返す。
【００９０】
ステップＳ５２において、全てのポートについて接続記述を出力した（未処理のポートが存在しない）と判定した場合、ポート間接続定義ファイル生成部７２は、処理をステップＳ５３に進め、ＣＰＵ１１１のモデルのポートに関する、結合状態の定義の終了を示す、ＣＰＵブロックポート間接続定義終了記述を生成し、出力する。
【００９１】
図１１において、下から第１行目の記述１９８「）；」がステップＳ５３において生成されるＣＰＵブロックポート間接続定義終了記述であり、ポート間接続定義ファイル１３２における、ＣＰＵ１１１のポート間接続定義に関する記述の終了を示す。
【００９２】
ＣＰＵブロックポート間接続定義終了記述を出力したポート間接続定義ファイル生成部７２は、ポート間接続定義ファイル生成処理を終了する。
【００９３】
以上のようにポート間接続定義ファイル生成処理が実行され、出力されたポート間接続定義ファイル１３２は、ＲＡＭ６３により一時的に保持されたり、記憶部９３に記憶されたりする。
【００９４】
同様に、入力されたハードウェア外部仕様情報１４１は、ＲＡＭ６３に一次保持されたり、記憶部９３に記憶されたりした後、ＣＰＵ６１に制御され、ポート連動関数定義ファイル生成部７３にも供給される。
【００９５】
ハードウェア外部仕様情報１４１を供給されたポート連動関数定義ファイル生成部７３は、システム記述言語を用いてポート連動関数定義ファイル１３３を生成する。図１２のフローチャートを参照して、ハードウェアモデル開発支援装置５１によるポート連動関数定義ファイル生成処理を説明する。
【００９６】
最初に、ポート連動関数定義ファイル生成部７３は、ステップＳ７１において、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２、レジスタ幅１６４、およびレジスタタイプ１６５を取得し、ステップＳ７２において、ＣＰＵ１１１よりアクセスされた場合に起動される関数の定義記述を生成し、出力する。
【００９７】
図１３は、ポート連動関数定義ファイル生成部７３より出力されるポート連動関数定義ファイル１３３のデータの構成例を示す図である。図１３において、上から第１行目乃至第６行目の記述２０１、上から第７行目乃至第１０行目の記述２０２、および、上から第１１行目乃至第１４行目の記述２０３がステップＳ７２において出力される、ＣＰＵ１１１よりアクセスされた場合に起動される関数の定義記述である。
【００９８】
そして、ステップＳ７３において、ポート連動関数定義ファイル生成部７３は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ポート連動関数定義ファイル生成部７３は、処理をステップＳ７２に戻し、それ以降の処理を繰り返す。すなわち、ポート連動関数定義ファイル生成部７３は、レジスタ情報１６１に記述されている全てのレジスタに対して、上述した、ＣＰＵ１１１よりアクセスされた場合に起動される関数の定義記述を生成し、出力する。
【００９９】
ステップＳ７３において、全てのレジスタについてＣＰＵ１１１よりアクセスされた場合に起動される関数の定義記述を出力した（未処理のレジスタが存在しない）と判定した場合、ポート連動関数定義ファイル生成部７３は、処理をステップＳ７４に進め、ハードウェア外部仕様情報１４１のハードウェア間ポート情報１７１よりポート名１７２、ポートタイプ１７３、およびポート幅１７４を取得し、ステップＳ７５において、ハードウェアモデルが能動的に起動する関数、および受動的に起動される関数の定義記述を生成し、出力する。
【０１００】
図１３において、上から第１５行目乃至第１８行目の記述２０４がステップＳ７５において出力される、受動的に起動される関数の定義記述である。
【０１０１】
そして、ステップＳ７６において、ポート連動関数定義ファイル生成部７３は、ハードウェア間ポート情報１７１に記述されているポートのうち、未処理のポートが存在するか否かを判定する。未処理のポートが存在すると判定した場合、ポート連動関数定義ファイル生成部７３は、処理をステップＳ７５に戻し、それ以降の処理を繰り返す。すなわち、ポート連動関数定義ファイル生成部７３は、ハードウェア間ポート情報１７１に記述されている全てのポートに対して、上述した、ハードウェアモデルが能動的に起動する関数、および受動的に起動される関数の定義記述を生成し、出力する。
【０１０２】
ステップＳ７６において、全てのポートについて、ハードウェアモデルが能動的に起動する関数、および受動的に起動される関数の定義記述を出力した（未処理のポートが存在しない）と判定した場合、ポート連動関数定義ファイル生成部７３は、ポート間連動関数定義ファイル生成処理を終了する。
【０１０３】
以上のようにポート連動関数定義ファイル生成処理が実行され、出力されたポート連動関数定義ファイル１３３は、ＲＡＭ６３により一時的に保持されたり、記憶部９３に記憶されたりする。
【０１０４】
また、入力されたハードウェア外部仕様情報１４１は、ＲＡＭ６３に一次保持されたり、記憶部９３に記憶されたりした後、ＣＰＵ６１に制御され、ハードウェアモデル入出力関数生成部７４にも供給される。
【０１０５】
ハードウェア外部仕様情報１４１を供給されたハードウェアモデル入出力関数生成部７４は、システム記述言語を用いてハードウェアモデル入出力関数定義ファイル１３４を生成する。図１４および図１５のフローチャートを参照して、ハードウェアモデル開発支援装置５１によるハードウェアモデル入出力関数生成処理を説明する。
【０１０６】
最初に、ステップＳ９１において、ハードウェアモデル入出力関数生成部７４は、図１６に示されるような、所定のコンパイル条件を指定する、第１の条件コンパイル記述を生成し、出力する。
【０１０７】
図１６は、ハードウェアモデル入出力関数生成部７４より出力されるハードウェアモデル入出力関数定義ファイル１３４のデータの構成例を示す図である。図１６において、上から第１行目の記述２１１「＃ｉｆｄｅｆ＿ＴＡＲＧＥＴ／＊ＦＯＲ  ＴＡＲＧＥＴ＊／」がステップＳ９１において出力される第１の条件コンパイル記述である。
【０１０８】
ステップＳ９２において、ハードウェアモデル入出力関数生成部７４は、ハードウェア外部仕様情報１４１のデバイス情報１５１よりデバイス名１５２およびベースアドレス１５３を取得し、ステップＳ９３において、取得した情報に基づいて、デバイスの機能を表現するメモリ空間の開始アドレスを定義するデバイスベースアドレス定義記述を生成し、ステップＳ９４において、そのデバイスベースアドレス定義記述を出力する。
【０１０９】
図１６において、上から第３行目の記述２１２「＃ｄｅｆｉｎｅ  ＴＡＤＲ＿ＤＭＡＣ＿ＲＥＧ＿ＢＡＳＥ（ｖｏｌａｔｉｌｅ  ＵＢ＊）０ｘ１０００」がステップＳ９４において出力されるデバイスベースアドレス定義記述である。
【０１１０】
デバイスベースアドレス定義記述を出力したハードウェアモデル入出力関数生成部７４は、ステップＳ９５において、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２、レジスタ幅１６４、およびアドレスオフセット１６３を取得し、ステップＳ９６において、取得した情報に基づいて、レジスタの開始アドレスを定義するレジスタアドレス定義記述を生成し、ステップＳ９７において、そのレジスタアドレス定義記述を出力する。
【０１１１】
図１６において、上から第４行目の記述２１３「＃ｄｅｆｉｎｅ  ＴＡＤＲ＿ＤＭＡＣ＿ＤＭＡＣ＿Ａ    （ｖｏｌａｔｉｌｅ  ＵＷ＊）（ＴＡＤＲ＿ＤＭＡＣ＿ＲＥＧ＿ＢＡＳＥ  ＋  ０ｘ００００）」がステップＳ９６において生成されるレジスタアドレス定義記述である。
【０１１２】
そして、ステップＳ９８において、ハードウェアモデル入出力関数生成部７４は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ハードウェアモデル入出力関数生成部７４は、処理をステップＳ９６に戻し、それ以降の処理を繰り返す。すなわち、ハードウェアモデル入出力関数生成部７４は、図１６に示されるように、レジスタ情報１６１に記述されている全てのレジスタに対して、上述したレジスタアドレス定義記述を生成し、出力する。
【０１１３】
ステップＳ９８において、全てのレジスタについてレジスタアドレス定義記述を出力した（未処理のレジスタが存在しない）と判定した場合、ハードウェアモデル入出力関数生成部７４は、処理をステップＳ９９に進め、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２、レジスタ幅１６４、およびレジスタタイプ１６５を取得し、ステップＳ１００において、取得した情報に基づいて、レジスタ情報に対応するハードウェアへのアクセス関数を定義する、ハードウェアのレジスタアクセス関数定義記述を生成し、ステップＳ１０１において、そのハードウェアのレジスタアクセス関数定義記述を出力する。
【０１１４】
図１６において、上から第７行目の記述２１４「＃ｄｅｆｉｎｅ  ｄｍａｃ＿ｒｅｗ＿ｄｍａｃ＿ａ（）  ｓｉｌ＿ｒｅｗ＿ｂｅｍ（ＴＡＤＲ＿ＤＭＡＣ＿ＤＭＡＣ＿Ａ）」がステップＳ１００において生成される、ハードウェアのレジスタアクセス関数定義記述である。
【０１１５】
そして、ステップＳ１０２において、ハードウェアモデル入出力関数生成部７４は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ハードウェアモデル入出力関数生成部７４は、処理をステップＳ１００に戻し、それ以降の処理を繰り返す。すなわち、ハードウェアモデル入出力関数生成部７４は、図１６に示されるように、レジスタ情報１６１に記述されている全てのレジスタに対して、上述した、ハードウェアのレジスタアクセス関数定義記述を生成し、出力する。
【０１１６】
ステップＳ１０２において、全てのレジスタについて、ハードウェアのレジスタアクセス関数定義記述を出力した（未処理のレジスタが存在しない）と判定した場合、ハードウェアモデル入出力関数生成部７４は、処理を図１５のステップＳ１０３に進め、図１６に示されるような、所定のコンパイル条件を指定する、第２の条件コンパイル記述を生成し、出力する。
【０１１７】
図１６において、上から第１２行目の記述２１１「＃ｅｌｓｅ」がステップＳ１０３において出力される第２の条件コンパイル記述である。
【０１１８】
図１５のステップＳ１０４において、ハードウェアモデル入出力関数生成部７４は、ハードウェア外部仕様情報１４１のレジスタ情報１６１よりレジスタ名１６２、レジスタ幅１６４、およびレジスタタイプ１６５を取得し、ステップＳ１０５において、取得した情報に基づいて、レジスタ情報に対応するハードウェアモデルへのアクセス関数を定義する、ハードウェアモデルのレジスタアクセス関数定義記述を生成し、ステップＳ１０６において、そのハードウェアモデルのレジスタアクセス関数定義記述を出力する。
【０１１９】
図１６において、上から第１３行目の記述２１６「＃ｄｅｆｉｎｅ  ｄｍａｃ＿ｒｅｗ＿ｄｍａｃ＿ａ（）      ｐｄｍ＿ｉ＿Ｗｒａｐｐｅｒ＿ｐｍ＿ｉｏ＿Ｒｅｇ＿ＤＭＡＣ＿Ａ（）」がステップＳ１００において生成される、ハードウェアモデルのレジスタアクセス関数定義記述である。
【０１２０】
そして、ステップＳ１０７において、ハードウェアモデル入出力関数生成部７４は、レジスタ情報１６１に記述されているレジスタのうち、未処理のレジスタが存在するか否かを判定する。未処理のレジスタが存在すると判定した場合、ハードウェアモデル入出力関数生成部７４は、処理をステップＳ１０５に戻し、それ以降の処理を繰り返す。すなわち、ハードウェアモデル入出力関数生成部７４は、図１６に示されるように、レジスタ情報１６１に記述されている全てのレジスタに対して、上述した、ハードウェアモデルのレジスタアクセス関数定義記述を生成し、出力する。
【０１２１】
ステップＳ１０７において、全てのレジスタについて、ハードウェアのレジスタアクセス関数定義記述を出力した（未処理のレジスタが存在しない）と判定した場合、ハードウェアモデル入出力関数生成部７４は、ハードウェアモデル入出力関数生成処理を終了する。
【０１２２】
以上のようにハードウェアモデル入出力関数生成処理が実行され、出力されたハードウェアモデル入出力関数定義ファイル１３４は、ＲＡＭ６３により一時的に保持されたり、記憶部９３に記憶されたりする。
【０１２３】
図１６に示されるように、ハードウェアモデル入出力関数生成部７４より出力されたハードウェアモデル入出力関数定義ファイル１３４は、ハードウェアのレジスタアクセス関数定義記述により構成される実ハードウェア用コード２２１と、ハードウェアモデルのレジスタアクセス関数定義記述により構成されるハードウェアモデル用コード２２２とを含んでおり、システム記述言語に依存したハードウェアモデルへの入出力関数をハードウェアレジスタ名で特定される入出力関数名に変換することで、システム記述言語を利用者より隠蔽した形になる。
【０１２４】
従って、以上のように開発されたハードウェアモデルを用いてソフトウェアを開発した場合、ハードウェアモデルへの入出力関数を、特定のシステム記述言語に依存しない形式にすることができ、ソフトウェア開発者の利便性を向上させることができる。
【０１２５】
以上のようにして、ハードウェアモデル開発支援装置５１は、ハードウェア外部仕様情報１４１より、ポート定義ファイル１３１、ポート間接続定義ファイル１３２、ポート連動関数定義ファイル１３３、およびハードウェアモデル入出力関数定義ファイル１３４を生成する。
【０１２６】
これにより、ソフトウェア開発者は、ハードウェア開発者が生成したハードウェア外部仕様情報１４４をハードウェアモデル開発支援装置５１に供給することにより、従来、システム記述言語を用いて手入力で作成していたハードウェアモデルを、容易に開発することができる。
【０１２７】
すなわち、ハードウェア開発工程において、ハードウェアの外部仕様が変更された場合においても、ソフトウェア開発者は、ハードウェアモデル開発支援システム５１を用いて、実ハードウェアに正確に対応するハードウェアモデルを、容易に開発することができる。
【０１２８】
以上において、ハードウェアモデル開発支援装置５１に入力されたハードウェア外部仕様情報１４１は、ＲＡＭ６３に一次保持されたり、記憶部９３に記憶されたりするように説明したが、これに限らず、ポート定義ファイル生成部７１、ポート間接続定義ファイル生成部７２、ポート連動関数定義ファイル生成部７３、または、ハードウェアモデル入出力関数生成部７４に供給されるようにしてもよい。
【０１２９】
また、ポート定義ファイル生成部７１、ポート間接続定義ファイル生成部７２、ポート連動関数定義ファイル生成部７３、または、ハードウェアモデル入出力関数生成部７４より出力される各定義ファイルは、ＲＡＭ６３により一時的に保持されたり、記憶部９３に記憶されたりするように説明したが、これに限らず、例えば、出力部９２を介してディスプレイ等に表示されたり、通信部９４を介して他の装置に供給されたり、ドライブ９５に装着されたリムーバブルメディア９６に記憶されるようにしてもよい。
【０１３０】
さらに、以上において、ポート定義ファイル生成部７１、ポート間接続定義ファイル生成部７２、ポート連動関数定義ファイル生成部７３、およびハードウェアモデル入出力関数生成部７４は、互いに別体として構成するように説明したが、これに限らず、それらの機能の一部または全部が１つのブロックとして構成されるようにしてもよいし、それらの機能の一部または全部がＣＰＵ６１に含まれるようにしてもよい。
【０１３１】
また、ハードウェアモデル開発支援装置５１は、１つの装置として構成されるように説明したが、これに限らず、上述したハードウェアモデル開発支援装置５１の全ての機能を、複数の装置により構成されるシステムとして実現するようにしてもよい。
【０１３２】
なお、以上の処理は、ハードウェアにより実行することができるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１３３】
この記録媒体は、図２に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア９６により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ６２や、記憶部９３に含まれるハードディスクなどで構成される。
【０１３４】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１３５】
【発明の効果】
以上のように、本発明によれば、ファイルを生成することができる。特に、ハードウェアモデルの開発を効率的に行うことができる。
【図面の簡単な説明】
【図１】ＳＯＣの開発工程の例を示す図である。
【図２】本発明を適用したハードウェアモデル開発支援装置の内部の構成例を表すブロック図である。
【図３】ハードウェアモデルの開発対象のＳＯＣの例を示すブロック図である。
【図４】図３のＳＯＣのハードウェアモデルの例を示すブロック図である。
【図５】図２のハードウェアモデル開発支援装置の入出力ファイルの例を示す模式図である。
【図６】図５のハードウェア外部仕様情報のデータの構成例を示す模式図である。
【図７】ハードウェアモデル開発支援装置によるポート定義ファイル生成処理を説明するフローチャートである。
【図８】図５のポート定義ファイルのデータの構成例を示す図である。
【図９】図２のハードウェアモデル開発支援装置によるポート間接続定義ファイル生成処理を説明するフローチャートである。
【図１０】図２のハードウェアモデル開発支援装置によるポート間接続定義ファイル生成処理を説明する、図９に続くフローチャートである。
【図１１】図５のポート間接続定義ファイルのデータの構成例を示す図である。
【図１２】図２のハードウェアモデル開発支援装置によるポート連動関数定義ファイル生成処理を説明するフローチャートである。
【図１３】図５のポート連動関数定義ファイルのデータの構成例を示す図である。
【図１４】図２のハードウェアモデル開発支援装置によるハードウェアモデル入出力関数生成処理を説明するフローチャートである。
【図１５】図２のハードウェアモデル開発支援装置によるハードウェアモデル入出力関数生成処理を説明する、図１４に続くフローチャートである。
【図１６】
図５のハードウェアモデル入出力関数定義ファイルのデータの構成例を示す図である。
【符号の説明】
５１  ハードウェアモデル開発支援装置，  ７１  ポート定義ファイル生成部，  ７２  ポート間接続定義ファイル生成部，  ７３  ポート連動関数定義ファイル，  ７４  ハードウェアモデル入出力関数生成部，  １００  ＳＯＣ，  １０１  ＣＰＵ，  １０２  ハードウェアブロックＡ，  １０３  ハードウェアブロックＢ，  １０４  ハードウェアブロックＣ，  １１０  ＳＯＣ，  １１１  ＣＰＵ，  １１２  ハードウェアブロックモデルＡ，  １１３  ハードウェアブロックモデルＢ，  １１４  ハードウェアブロックモデルＣ，  １２１−１乃至１２１−１１  出力ポート，  １２２−１乃至１２２−１１  チャネル，  １２３−１乃至１２３−１１  入力ポート，  １３１  ポート定義ファイル，  １３２  ポート間接続定義ファイル，  １３３  ポート連動関数定義ファイル，  １３４  ハードウェアモデル入出力関数定義ファイル，  １４１  ハードウェア外部仕様情報
【図１】
2004220223.tif 000003
【図２】
2004220223.tif 000004
【図３】
2004220223.tif 000005
【図４】
2004220223.tif 000006
【図５】
2004220223.tif 000007
【図６】
2004220223.tif 000008
【図７】
2004220223.tif 000009
【図８】
2004220223.tif 000010
【図９】
2004220223.tif 000011
【図１０】
2004220223.tif 000012
【図１１】
2004220223.tif 000013
【図１２】
2004220223.tif 000014
【図１３】
2004220223.tif 000015
【図１４】
2004220223.tif 000016
【図１５】
2004220223.tif 000017
【図１６】
2004220223.tif 000018