(57)【要約】【課題】より速やかに高速なエミュレーション環境を構築可能とすることを目的とする。【解決手段】検証対象の関数を含むテストベンチ・プログラム内の記述から検証対象へデータを送信すると共に、検証対象からデータを受信するデータ送受信関数を生成する生成手段と、生成手段で生成されたデータ送受信関数及び検証対象の関数をエミュレータに実装する実装手段と、を有することによって課題を解決する。【選択図】図１
2012128517.tif 000002
【特許請求の範囲】
【請求項１】
検証対象の関数を含むテストベンチ・プログラム内の記述から前記検証対象へデータを送信すると共に、前記検証対象からデータを受信するデータ送受信関数を生成する生成手段と、
前記生成手段で生成されたデータ送受信関数及び前記検証対象の関数をエミュレータに実装する実装手段と、
を有する情報処理装置。
【請求項２】
情報処理装置が実行する情報処理方法であって、
検証対象の関数を含むテストベンチ・プログラム内の記述から前記検証対象へデータを送信すると共に、前記検証対象からデータを受信するデータ送受信関数を生成する生成ステップと、
前記生成ステップで生成されたデータ送受信関数及び前記検証対象の関数をエミュレータに実装する実装ステップと、
を含む情報処理方法。
【請求項３】
コンピュータに、
検証対象の関数を含むテストベンチ・プログラム内の記述から前記検証対象へデータを送信すると共に、前記検証対象からデータを受信するデータ送受信関数を生成する生成ステップと、
前記生成ステップで生成されたデータ送受信関数及び前記検証対象の関数をエミュレータに実装する実装ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
論理回路設計では、設計した論理回路の動作の検証が必須である。検証手法の１つとして、再構成可能な論理ＩＣ（Ｉｎｔｅｇｒａｔｅｄ    Ｃｉｒｃｕｉｔ）、又は専用ＣＰＵで構成されたハードウェア・エミュレータがある。以下、ハードウェア・エミュレータをエミュレータと記述する。
一般的な検証として、検証対象の論理回路に入力データを送信し、検証対象からの出力データを受信する方法がある。エミュレータを使用した検証でも同様の方法を行う。
従来は、図１の（Ａ）のようにエミュレータ側に検証対象１１４を回路として実装していた。また、ＰＣ側にデータ送受信モデル１２０をプログラムとして実装していた。この構成で、ＰＣ側から入力データをエミュレータ側の検証対象１１４に送信し、ＰＣ側がエミュレータ側の検証対象１１４の出力データを受信する方法は知られていた。
しかしながら、この方法で検証対象１１４を検証すると、エミュレーション速度がＰＣとエミュレータとの間の通信に律速されてしまう。これは、ＰＣとエミュレータとの間のデータ転送がエミュレーションのクロックイベント単位で起きてしてしまうことによる。
【０００３】
そこで、図１の（Ｂ）のように、検証対象１１４と供にエミュレータ側にデータ送受信部１１２を回路として実装する。最初に、データ送受信部１１２が入力データを検証対象１１４に送信する。次に検証対象１１４の出力データをデータ送受信部１１２が受信する。この方法により、検証対象１１４とデータ送受信部１１２とのデータ送受信において、ＰＣとエミュレータとの間の通信の必要がなくなる。この構成により、検証の高速化を実現する方法はすでに知られている。
しかしながら、図１の（Ｂ）のような高速なエミュレーション環境を構築するには、データ送受信部１１２はレジスタ・トランスファ・レベル（ＲＴＬ）のハードウェア記述言語で手設計するしかなかった。
近年、論理回路の設計では、抽象度の高いレベルで設計し、動作合成によりＲＴＬを生成する設計手法が採用され始めている。この種の設計手法では、論理回路の所望の動作を実現する動作記述を設計し、動作合成ツールを用いて動作記述をＲＴＬに変換する。
また、設計した動作記述が回路の所望の動作を正しく実装しているかを確認する為の検証を行うことが必要である。この動作記述の検証では、Ｃ言語等の抽象度の高いレベルの動作記述でテストベンチ・プログラムを設計する。テストベンチ・プログラムは、検証対象にテストパターンを入力し、検証対象からの出力データを処理結果として受信する検証用プログラムである。
【０００４】
そこで、テストベンチ・プログラムを動作合成してエミュレータに実装するという方法が考えられる。
特許文献１では、ファイル関数の記述がある動作記述で設計したテストベンチ・プログラムに対して動作合成を適用する。動作合成をかけると、テストベンチ・プログラムのファイル関数に関する記述は、ファイル関数を含むハードウェア記述言語で記述されたデータ送受信モデルに変換される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−７８４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、生成されたファイル関数を含むデータ送受信モデルは論理合成可能ではないので、ＰＣ上に実装するしかない。この方法では、図１の（Ａ）の構成になり高速なエミュレーション環境が実現できない。
以上から、高速なエミュレーション環境を構築するには、データ送受信部１１２は手設計となり、設計工数がかかってしまう問題があった。
【０００７】
本発明はこのような問題点に鑑みなされたもので、より速やかに高速なエミュレーション環境を構築可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明の情報処理装置は、検証対象の関数を含むテストベンチ・プログラム内の記述から前記検証対象へデータを送信すると共に、前記検証対象からデータを受信するデータ送受信関数を生成する生成手段と、前記生成手段で生成されたデータ送受信関数及び前記検証対象の関数をエミュレータに実装する実装手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、より速やかに高速なエミュレーション環境を構築可能とすることができる。
【図面の簡単な説明】
【００１０】
【図１】従来技術を説明するための図である。
【図２】情報処理装置の一例である検証モデル生成装置の機能構成の一例を示す図である。
【図３】実施形態１のテストベンチ・プログラムからデータ送受信関数を生成する一例を示す図である。
【図４】コメント文の内容の一例を示す図である。
【図５】実施形態１のエミュレーション環境の構築を説明するための図である。
【図６】実施形態２のテストベンチ・プログラムからデータ送受信関数を生成する一例を示す図である。
【図７】実施形態２のエミュレーション環境の構築を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面に基づいて説明する。
【００１２】
図２は、情報処理装置の一例である検証モデル生成装置の機能構成の一例を示す図である。
図２において、１０１は、テストベンチ・プログラムでありＣ言語等で記述されている。
１０２は、検証対象であり、信号処理回路、暗号回路、誤り訂正回路、画像処理回路等のアルゴリズムでＣ言語等により記述され、テストベンチ・プログラム１０１から読み出される関数である。
１０６は、関数生成部であり、検証対象１０２を含むテストベンチ・プログラム１０１内（テストベンチ・プログラム内）の記述からデータ送受信関数１０７を生成する。
１０７は、データ送受信関数であり、検証対象１０２とデータを送受信する。
以下、本実施形態の詳細な動作については実施形態１と実施形態２とで示す。
なお、検証モデル生成装置は、ＣＰＵや記憶装置を有し、ＣＰＵが記憶装置に記憶されているプログラムに基づき処理を実行することによって、図２に示す機能や、以下で示す実施形態で示す機能（又は処理）が実現される。
【００１３】
＜実施形態１＞
実施形態１の構成と動作とについて、図３〜図５を使って説明する。
図３は、テストベンチ・プログラム１０１からデータ送受信関数１０７を生成する一例を示す図である。図３の（Ａ）は、テストベンチ・プログラム１０１である。また、図３の（Ｃ）は、データ送受信関数１０７である。以下にテストベンチ・プログラム１０１の動作の説明をする。
図３の４０１はメインのプログラムであり、図３の４０２の構造体、図３の４０３の検証対象１０２の関数を読み出している。図３の４０１の３行目は、図３の４０２の１行目から４行目までの構造体ｄｕｔ＿ｓｒｃ＿ｔのデータ型宣言であり、検証対象１０２の関数の引数として渡される。図３の４０１の４行目は、図３の４０２の６行目から８行目までの構造体ｄｕｔ＿ｄｓｔ＿ｔのデータ型宣言であり、検証対象１０２の関数の引数として渡される。
図３の４０１の７行目は、ｆｏｒ文であり、７行目から１３行目までを１０００回繰り返すことが記述されている。図３の４０１の８行目は、検証対象１０２の関数の引数として使われるｔ＿ｓｒｃ．ｄａｔａにｉを入力することが記述されている。図３の４０１の９行目は、検証対象１０２の関数の引数として使われるｔ＿ｓｒｃ．ｌｉｎｅ＿ｎｕｍに１０を入力することが記述されている。図３の４０１の１１行目は、図３の４０３の検証対象１０２の関数であり、引数としてｔ＿ｓｒｃとｔ＿ｄｓｔとを渡すことが記述されている。ｔ＿ｄｓｔは、検証対象１０２からの出力として使われるので、検証対象１０２の関数の引数にｔ＿ｄｓｔのアドレスを渡す。検証対象１０２は、論理回路の動作アルゴリズムで、動作合成可能に記述されている。図３の４０１の１２行目は、ｐ＿ｄｓｔ［ｉ］に検証対象１０２の関数の引数として使われたｔ＿ｄｓｔ．ｄａｔａを入力することが記述されている。
【００１４】
次に、ユーザは図４の表に従ってテストベンチ・プログラム１０１内のメインプログラム４０１の各ステップの末尾にコメント文を挿入する。
まず、図４の表について説明する。１の「検証対象」は、検証対象１０２の関数を読み出しているステップの末尾に「ＤＵＴ」とコメント文で記述することを示す。２の「検証対象へ送信」は、検証対象１０２の関数の引数として使われる変数へデータを入力するステップの末尾に「ＤＵＴ  ｉｎｐｕｔ」とコメント文で記述することを示す。３の「検証対象から受信」は、検証対象１０２の関数の引数として使われた変数のデータを出力するステップの末尾と、そのデータを受信する変数のデータ型宣言のステップの末尾と、に「ＤＵＴ  ｏｕｔｐｕｔ」とコメント文で記述することを示す。４の「検証対象との送受信の両方」は、２と３との両方で使われる変数に関わるステップの末尾と、その変数のデータ型宣言のステップの末尾と、に「ＤＵＴ  ｉｎｏｕｔ」とコメント文で記述することを示す。５の「検証対象の関数の引数のデータ型宣言（送信）」は、２の検証対象１０２の関数の引数で使われる変数のデータ型宣言のステップの末尾に「ＤＵＴ  ｉｎｐｕｔ  ａｒｇ」とコメント文で記述することを示す。６の「検証対象の関数の引数のデータ型宣言（受信）」は、３の検証対象１０２の関数の引数で使われる変数のデータ型宣言のステップの末尾に「ＤＵＴ  ｏｕｔｐｕｔ  ａｒｇ」とコメント文で記述することを示す。
【００１５】
次に、図４の表に基づいて、図３のテストベンチ・プログラム１０１内のメインプログラム４０１の各ステップにコメント文を挿入する説明をする。
図３の４０１の１１行目は、検証対象１０２の関数を読み出しているステップなので「ＤＵＴ」とコメント文が記述される。図３の４０１の８行目は、検証対象１０２の関数の引数として使われるｔ＿ｓｒｃ．ｄａｔａへデータを入力しているステップなので、図３の４０４のように「ＤＵＴ  ｉｎｐｕｔ」とコメント文が記述される。図３の４０１の９行目は、検証対象１０２の関数の引数として使われるｔ＿ｓｒｃ．ｌｉｎｅ＿ｎｕｍへデータを入力しているステップなので、図３の４０４のように「ＤＵＴ  ｉｎｐｕｔ」とコメント文が記述される。
次に、図３の４０１の５行目は、検証対象１０２の関数の引数として使われた変数のデータを受信するｐ＿ｄｓｔのデータ型宣言のステップなので、図３の４０４のように「ＤＵＴ  ｏｕｔｐｕｔ」とコメント文が記述される。図３の４０１の１２行目は検証対象１０２の関数の引数として使われたｔ＿ｓｒｃ．ｄａｔａを出力するステップなので、図３の４０４のように「ＤＵＴ  ｏｕｔｐｕｔ」とコメント文が記述される。
【００１６】
次に、図３の４０１の２行目はｉのデータ型宣言のステップである。ｉは８行目で検証対象１０２の関数の引数として使われるｔ＿ｓｒｃ．ｄａｔａへ入力を行い、１２行目で検証対象１０２の関数の引数として使われたｔ＿ｄｓｔ．ｄａｔａの出力の両方で使用されている。このことから、データ型宣言をしている２行目のステップに図３の４０４のように「ＤＵＴ  ｉｎｏｕｔ」とコメント文が記述される。また、図３の４０１の７行目と１３行目とは、ｉに関わるステップなので、図３の４０４のように「ＤＵＴ  ｉｎｏｕｔ」とコメント文が記述される。
次に、図３の４０１の７行目と８行目とで「ＤＵＴ  ｉｎｐｕｔ」としたｔ＿ｓｒｃは、３行目でデータ型宣言している。図３の４０１の３行目は「ＤＵＴ  ｉｎｐｕｔ  ａｒｇ」とコメント文が記述される。同様に、図３の４０１の１２行目で「ＤＵＴ  ｏｕｔｐｕｔ」としたｔ＿ｄｓｔは、４行目でデータ型宣言している。図３の４０１の４行目は「ＤＵＴ  ｏｕｔｐｕｔ  ａｒｇ」とコメント文が記述される。
以上のようにして、テストベンチ・プログラム１０１のメインプログラム４０１の各ステップにコメント文が挿入されることで図３の（Ｂ）になる。
【００１７】
次に図５の関数生成部１０６が図３の４０４のテストベンチ・プログラム１０１の各ステップのコメント文を用いて、図３の（Ｃ）のデータ送受信関数１０７の記述を生成する動作を、図５を用いて説明をする。
最初に、図３の４０８の検証対象１０２へデータ送信する関数の記述を生成する方法について以下に説明する。
関数生成部１０６は、図３の４０１の「ＤＵＴ  ｉｎｐｕｔ」のコメント文がある８行目、９行目と、「ＤＵＴ  ｉｎｏｕｔ」のコメント文がある２行目、７行目、１３行目と、「ＤＵＴ  ｉｎｐｕｔ  ａｒｇ」のコメント文がある３行目と、を用いる。
まず、関数生成部１０６は、関数名は図３の４０８のｔｅｓｔ＿ｇｅｎｅｒａｔｅ＿ｄａｔａのように固定で決める。
次に、関数生成部１０６は、関数の引数を決める。関数生成部１０６は、図３の４０４の「ＤＵＴ  ｉｎｐｕｔ  ａｒｇ」のコメント文がある３行目のデータ型宣言を、そのまま図３の４０８のデータ送信部の関数の引数にする。
次に、関数生成部１０６は、関数の中身を生成する。図３の４０４の「ＤＵＴ  ｉｎｐｕｔ」と「ＤＵＴ  ｉｎｏｕｔ」のコメント文がある２行目、７行目、８行目、９行目、１３行目を、図３の４０８の２行目から６行目へ変更せずに複製する。
次に、関数生成部１０６は、データ送信する関数なので、引数をアドレス渡しに変更する。図３の４０８の１行目のように、ポインタの記述に変更する。更に、関数生成部１０６は、４行目、５行目もポインタに合わせた記述に変更する。
以上のようにして、関数生成部１０６は、図３の４０８の検証対象１０２へデータを送信する関数を生成する。
【００１８】
同様にして、図５の関数生成部１０６が図３の４０９の検証対象１０２からデータ受信する関数の記述を生成する方法について以下に説明する。
関数生成部１０６は、図３の４０４の「ＤＵＴ  ｏｕｔｐｕｔ」のコメント文がある５行目、１２行目と、「ＤＵＴ  ｉｎｏｕｔ」のコメント文がある２行目、７行目、１３行目と、「ＤＵＴ  ｏｕｔｐｕｔ  ａｒｇ」のコメント文がある４行目と、を用いる。
まず、関数生成部１０６は、関数名は図３の４０８のｔｅｓｔ＿ｒｅｃｅｉｖｅ＿ｄａｔａのように固定で決める。
次に、関数生成部１０６は、関数の引数を決める。関数生成部１０６は、図３の４０４の「ＤＵＴ  ｏｕｔｐｕｔ  ａｒｇ」のコメント文がある４行目のデータ型宣言を、そのまま図３の４０９のデータ送信部の関数の引数にする。
次に、関数生成部１０６は、関数の中身を生成する。関数生成部１０６は、図３の４０４の「ＤＵＴ  ｏｕｔｐｕｔ」と「ＤＵＴ  ｉｎｏｕｔ」のコメント文がある２行目、５行目、７行目、１２行目、１３行目を、図３の４０８の２行目から６行目へ変更せずに複製する。
以上のようにして、関数生成部１０６は、図３の４０８の検証対象１０２からデータを受信する関数を生成する。
【００１９】
最後に、図５の関数生成部１０６が図３の４０７の検証対象１０２とデータ送受信可能なＴＯＰ関数の記述を生成する方法について以下に説明する。
関数生成部１０６は、図３の４０４の「ＤＵＴ」のコメント文がある１１行目を用いる。
まず、関数生成部１０６は、検証対象１０２の入力とデータ送受信関数１０７の出力との引数が同じになるようにする。つまり、検証対象１０２の関数の引数で、検証対象１０２への入力である図３の４０２の１行目から４行目までの構造体ｄｕｔ＿ｓｒｃ＿ｔが、データ送受信関数１０７の出力の引数になる。関数生成部１０６は、図３の４０７のＴＯＰ関数の引数ｄｕｔ＿ｓｒｃ＿ｔは、図３の４０８のデータ送信部の関数の引数に引き渡す。但し、関数生成部１０６は、データ送信をするのでアドレス渡しにする為に、図３の４０７の１行目のようにポインタの記述にする。
同様にして、関数生成部１０６は、検証対象１０２の出力がデータ送受信関数１０７の入力になるようにする。そこで、検証対象１０２の関数の引数で、検証対象１０２からの出力である図３の４０２の６行目からの構造体ｄｕｔ＿ｄｓｔ＿ｔが、データ送受信関数１０７の入力の引数となる。関数生成部１０６は、図３の４０７のＴＯＰ関数の引数ｄｕｔ＿ｄｓｔ＿ｔは、図３の４０９のデータ受信部の関数の引数に引き渡す。
以上のようにして、関数生成部１０６が図３の４０７、図３の４０８、図３の４０９のデータ送受信関数１０７を生成する。生成されたデータ送受信関数１０７は動作合成可能なＣ言語で記述されている。
【００２０】
次に図５の動作合成１１１の動作の説明をする。
動作合成１１１は、データ送受信関数１０７に動作合成をかけることで、論理合成可能なＲＴＬのハードウェア記述言語で記述された図５のデータ送受信部ＲＴＬ１０８を生成する。
また、動作合成１１１は、検証対象１０２も同様にして動作合成をかけることで、論理合成可能なＲＴＬのハードウェア記述言語で記述された図５の検証対象の関数ＲＴＬ１０４を生成する。
次に図５の論理合成１１３の動作の説明をする。
論理合成１１３は、動作合成後のデータ送受信部ＲＴＬ１０８と検証対象の関数ＲＴＬ１０４とに論理合成をかけることで、エミュレータ上に検証対象１１４やデータ送受信部１１２を回路として実装する。
【００２１】
以上のようにして、検証モデル生成装置は、エミュレータ上に検証対象１１４やデータ送受信部１１２を回路として実装する。
なお、本実施形態１では関数生成部１０６が図３の４０４のテストベンチ・プログラムの各ステップのコメント文を用いてデータ送受信関数１０７を生成した例を説明した。しかしながら、コメント文と同様に、各ステップにプラグマを埋め込み、関数生成部１０６が図３の４０４のテストベンチ・プログラムの各ステップに埋め込まれたプラグマを用いて、データ送受信関数１０７を生成するようにしてもよい。
【００２２】
＜実施形態２＞
実施形態２の構成と動作とについて、図６と図７と用いて説明する。
最初に、図６を用いて説明をする。図６（Ａ）は、テストベンチ・プログラム１０１である。ユーザはテストベンチ・プログラム１０１内の検証対象１０２の関数を読み出している１１行目のステップの末尾に、実施形態１と同様に「ＤＵＴ」とコメント文で記述する。但し、本実施形態ではテストベンチ・プログラム１０１内の検証対象１０２の関数を読み出しているステップ以外の各ステップにコメント文やプラグマ等は記述しない。
次に、図７の検証対象抽出部１０３の動作の説明をする。
検証対象抽出部１０３は、図６の６０１の「ＤＵＴ」のコメント文がある１１行目の検証対象１０２の関数を読み出しているステップを抽出する。
【００２３】
次に、図７のプログラム判別部１０５の動作の説明をする。
まず、プログラム判別部１０５は、テストベンチ・プログラム１０１内のメインプログラム６０１の各ステップが、検証対象１０２へデータ送信するステップ、検証対象１０２からデータ受信するステップ、又は検証対象１０２とのデータ送信とデータ受信との両方に関わるステップ、の何れかを判別する。
検証対象１０２へデータ送信するステップと判別するには、プログラム判別部１０５は、検証対象１０２の関数の引数として使われる変数に値が代入されているかを解析する。
図６の６０１においては、プログラム判別部１０５は、検証対象１０２の関数の引数として使われるｔ＿ｓｒｃへ入力するステップである図６の６０１の８行目、９行目の記述を検証対象１０２へデータ送信するステップと判別する。
また、検証対象１０２からデータ受信するステップと判別するには、プログラム判別部１０５は、検証対象１０２の関数の引数にとして使われる変数の値が他の変数に代入しているかを解析する。
図６の６０１においては、プログラム判別部１０５は、検証対象１０２の関数の引数として使われたｔ＿ｄｓｔから出力するステップである図６の６０１の１２行目は検証対象１０２からデータ受信するステップと判別する。
次に、検証対象１０２とのデータ送信とデータ受信との両方に関わるステップと判別するには、プログラム判別部１０５は、検証対象１０２の関数の引数として使われるｔ＿ｓｒｃとｔ＿ｄｓｔの両方に関わる変数を解析する。
最初に、図６の６０１のｔ＿ｓｒｃ  が使われている８行目とｔ＿ｄｓｔが使われている１２行目との両方のステップでｉが用いられている。そこで、プログラム判別部１０５は、ｉを解析すると、２行目で宣言され、７行目のｆｏｒ文で使用されている。以上から、プログラム判別部１０５は、図６の６０１の２行目、７行目、１３行目はｔ＿ｓｒｃとｔ＿ｄｓｔとの両方に関わっているので、検証対象１０２とのデータ送信とデータ受信との両方に関わる部分と判別する。
次に、プログラム判別部１０５は、検証対象１０２の関数の引数として使われる変数のデータ型宣言をしている部分を抽出する。まず、プログラム判別部１０５は、図６の６０１の３行目で検証対象１０２の関数の引数として使われるｔ＿ｓｒｃのデータ型宣言をしているので抽出する。次に、プログラム判別部１０５は、図６の６０１の４行目で検証対象１０２の関数の引数として使われるｐ＿ｄｓｔのデータ型宣言をしているので抽出する。
以上のようにして、プログラム判別部１０５がテストベンチ・プログラム１０１の各ステップを判別する。
【００２４】
次に、図７の関数生成部１０６の動作の説明をする。
関数生成部１０６は、プログラム判別部１０５の結果を用いてデータ送受信関数１０７を生成する。プログラム判別部１０５の結果は実施形態１のコメント文と同様の結果が得られるので、関数生成部１０６は実施形態１と同じ手段を用いてデータ送受信関数１０７を生成する。
検証モデル生成装置は、生成したデータ送受信関数１０７を実施形態１と同様の方法で、エミュレータにまで実装する。
【００２５】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００２６】
以上、上述した各実施形態によれば、従来技術に比べてより速やかに高速なエミュレーション環境を構築可能とすることができる。
なお、実施形態１と実施形態２とではテストベンチ・プログラム１０１はＣ言語の記述例を示したが、同様の手順によりＣ＋＋／ＳｙｓｔｅｍＣ等の言語でも、同様の効果が得られる。更に、動作合成ツールの記述スタイルの変更があっても、同様の効果が得られる。
また、実施形態１と実施形態２とでは検証対象１０２はＣ言語の記述例を示したが、Ｃ＋＋／ＳｙｓｔｅｍＣ等の言語でも、同様の効果が得られる。更に、動作合成ツールの記述スタイルの変更があっても、同様の効果が得られる。
また、実施形態１と実施形態２とでは関数生成部１０６で生成されるデータ送受信関数１０７はＣ言語の記述例を示した。しかしながら、Ｃ＋＋／ＳｙｓｔｅｍＣ等の言語、もしくはＶｅｒｉｌｏｇ／ＶＨＤＬ等のＲＴＬのハードウェア記述言語でも同様の効果が得られる。
以上のように、データ送受信関数を自動で生成することにより、短期間で高速なエミュレーション環境を構築することができる。
【００２７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００２８】
１０６  関数生成部
【図１】
2012128517.tif 000003
【図２】
2012128517.tif 000004
【図３】
2012128517.tif 000005
【図４】
2012128517.tif 000006
【図５】
2012128517.tif 000007
【図６】
2012128517.tif 000008
【図７】
2012128517.tif 000009