"プログラミング言語やハードウェア記述言語等により記述されたシステムの動作検証を支援する装置であって、前記システムの構造を表現するためのブロック図を作成してブロック図情報を生成するブロック図作成手段と、前記ブロック図に対して前記システムにおけるデータの流れる経路を示すデータフローの表記を受け付け、データフロー情報を生成するデータフロー表記手段と、入力パターンに基づいて前記システムの動作をシミュレーションしてシミュレーション結果情報を生成するシミュレーション手段と、前記データフロー情報のデータフローの示す経路が前記シミュレーション結果情報の示す経路と同じであるかをチェックするデータフローチェック手段とを備えたことを特徴とするデータフロー検証支援装置。請求項1に記載のデータフロー検証支援装置において、前記データフロー表記手段は、前記システムを構成する要素の入出力のポートを信号が伝達する順に列挙したデータフロー情報を生成し、前記シミュレーション手段は、シミュレーションにより信号が変化する前記システムを構成する要素の入出力のポートを時系列に列挙したシミュレーション結果情報を生成し、前記データフローチェック手段は、前記データフロー情報上に列挙される前記ポートが、前記シミュレーション結果情報上に列挙される前記ポートと同じ順番で出現する場合に同じ経路であると判断することを特徴とするデータフロー検証支援装置。請求項1または2のいずれか一項に記載のデータフロー検証支援装置において、前記シミュレーション結果情報は、複数の入力パターンの個々に対応したものであり、前記データフローチェック手段は、データフロー情報の個々のデータフローに一致するシミュレーション結果情報が存在し、すべてのデータフローに対して一致するシミュレーション結果情報が存在すると判断した場合には、すべてのデータフローについて正常にシミュレーションした旨を示すチェック結果を出力することを特徴とするデータフロー検証支援装置。請求項1乃至3のいずれか一項に記載のデータフロー検証支援装置において、前記シミュレーション結果情報は、複数の入力パターンの個々に対応したものであり、前記データフローチェック手段は、一致するシミュレーション結果情報が存在しないデータフローがある場合、当該データフローを識別する情報を伴ってそのデータフローが正常にシミュレーションされていない旨のチェック結果を出力することを特徴とするデータフロー検証支援装置。請求項1乃至4のいずれか一項に記載のデータフロー検証支援装置において、前記シミュレーション結果情報は、複数の入力パターンの個々に対応したものであり、前記データフローチェック手段は、前記データフロー情報に含まれる個々のデータフローについて一致したシミュレーション結果情報を識別する情報を併せて出力することを特徴とするデータフロー検証支援装置。プログラミング言語やハードウェア記述言語等により記述されたシステムの動作検証を支援する方法であって、ブロック図作成手段が、前記システムの構造を表現するためのブロック図を作成してブロック図情報を生成するブロック図作成工程と、データフロー表記手段が、前記ブロック図に対して前記システムにおけるデータの流れる経路を示すデータフローの表記を受け付け、データフロー情報を生成するデータフロー表記工程と、シミュレーション手段が、入力パターンに基づいて前記システムの動作をシミュレーションしてシミュレーション結果情報を生成するシミュレーション工程と、データフローチェック手段が、前記データフロー情報のデータフローの示す経路が前記シミュレーション結果情報の示す経路と同じであるかをチェックするデータフローチェック工程とを備えたことを特徴とするデータフロー検証支援方法。上述したように、従来はすべてのデータの流れについて論理シミュレーションを実施したかについての確認は、目視により行われており、検証漏れの起きる可能性がある。一方、データの流れる順序をアサーション言語等により記述し、論理シミュレーション結果を用いてアサーション記述どおりにデータが流れたかを自動的にチェックする場合もある。しかし、この方法でも、アサーションは人手により記述するため、図2aと図2bのケースに対するアサーションが本当に記述さているかを保障する方法は無い。また、検証を十分に行ったかを示す指標にコードカバレッジがある。これは、ハードウェア記述言語により記述されたすべてのソースコード行が論理シミュレーション時に実行されたかを確認するものである。しかし、すべてのソースコード行が実行されたからといって、すべてのデータの流れが実行されたとは限らない。また、実施した論理シミュレーションがどのデータフローについて実施されたものかについて、シミュレーション結果から知るのは容易ではない。本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、所定のデータフローについてシミュレーションを実施したかどうかを自動的に確認することのできるデータフロー検証支援装置およびデータフロー検証支援方法を提供することにある。上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、プログラミング言語やハードウェア記述言語等により記述されたシステムの動作検証を支援する装置であって、前記システムの構造を表現するためのブロック図を作成してブロック図情報を生成するブロック図作成手段と、前記ブロック図に対して前記システムにおけるデータの流れる経路を示すデータフローの表記を受け付け、データフロー情報を生成するデータフロー表記手段と、入力パターンに基づいて前記システムの動作をシミュレーションしてシミュレーション結果情報を生成するシミュレーション手段と、前記データフロー情報のデータフローの示す経路が前記シミュレーション結果情報の示す経路と同じであるかをチェックするデータフローチェック手段とを備えるデータフロー検証支援装置を要旨としている。また、請求項2に記載されるように、請求項1に記載のデータフロー検証支援装置において、前記データフロー表記手段は、前記システムを構成する要素の入出力のポートを信号が伝達する順に列挙したデータフロー情報を生成し、前記シミュレーション手段は、シミュレーションにより信号が変化する前記システムを構成する要素の入出力のポートを時系列に列挙したシミュレーション結果情報を生成し、前記データフローチェック手段は、前記データフロー情報上に列挙される前記ポートが、前記シミュレーション結果情報上に列挙される前記ポートと同じ順番で出現する場合に同じ経路であると判断するようにすることができる。また、請求項3に記載されるように、請求項1または2のいずれか一項に記載のデータフロー検証支援装置において、前記シミュレーション結果情報は、複数の入力パターンの個々に対応したものであり、前記データフローチェック手段は、データフロー情報の個々のデータフローに一致するシミュレーション結果情報が存在し、すべてのデータフローに対して一致するシミュレーション結果情報が存在すると判断した場合には、すべてのデータフローについて正常にシミュレーションした旨を示すチェック結果を出力するようにすることができる。また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載のデータフロー検証支援装置において、前記シミュレーション結果情報は、複数の入力パターンの個々に対応したものであり、前記データフローチェック手段は、一致するシミュレーション結果情報が存在しないデータフローがある場合、当該データフローを識別する情報を伴ってそのデータフローが正常にシミュレーションされていない旨のチェック結果を出力するようにすることができる。また、請求項5に記載されるように、請求項1乃至4のいずれか一項に記載のデータフロー検証支援装置において、前記シミュレーション結果情報は、複数の入力パターンの個々に対応したものであり、前記データフローチェック手段は、前記データフロー情報に含まれる個々のデータフローについて一致したシミュレーション結果情報を識別する情報を併せて出力するようにすることができる。また、請求項6に記載されるように、プログラミング言語やハードウェア記述言語等により記述されたシステムの動作検証を支援する方法であって、ブロック図作成手段が、前記システムの構造を表現するためのブロック図を作成してブロック図情報を生成するブロック図作成工程と、データフロー表記手段が、前記ブロック図に対して前記システムにおけるデータの流れる経路を示すデータフローの表記を受け付け、データフロー情報を生成するデータフロー表記工程と、シミュレーション手段が、入力パターンに基づいて前記システムの動作をシミュレーションしてシミュレーション結果情報を生成するシミュレーション工程と、データフローチェック手段が、前記データフロー情報のデータフローの示す経路が前記シミュレーション結果情報の示す経路と同じであるかをチェックするデータフローチェック工程とを備えるデータフロー検証支援方法として構成することができる。本発明のデータフロー検証支援装置およびデータフロー検証支援方法にあっては、所定のデータフローについてシミュレーションを実施したかどうかを自動的に確認することができ、検証漏れを発見することができる。以下、本発明の好適な実施形態につき説明する。<構成>図3は本発明の一実施形態にかかるデータフロー検証支援装置1の構成例を示す図である。図3において、データフロー検証支援装置1は、機能部として、ブロック図作成部101とデータフロー表記部102と論理シミュレーション部103とデータフローチェック部104とを備えている。これらの機能部は、データフロー検証支援装置1を構成するコンピュータのCPUCentralProcessingUnit、ROMReadOnlyMemory、RAMRandomAccessMemory等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。なお、データフロー検証支援装置1は単一のコンピュータで構成される必要はなく、複数のコンピュータがネットワーク接続される形態であってもよい。この場合、各機能部は、単一のコンピュータ上に配置される必要はなく、必要に応じて分散される形態であってもよい。また、処理には、ブロック図情報111とデータフロー情報112とハードウェアシステム記述113と入力パターン114と論理シミュレーション結果情報115とが用いられる。これらのデータは、データフロー検証支援装置1内のHDDHardDiskDrive等の記憶媒体上の記憶領域に保持されるものである。ブロック図作成部101は、ユーザにブロック図作成のためのユーザインタフェースを提供してブロック図を作成させ、作成したブロック図を内部的に表現したブロック図情報111を生成して出力する機能を有している。データフロー表記部102は、ブロック図作成部101により作成中のブロック図もしくは作成済のブロック図に対し、ユーザにデータフロー追記のためのユーザインタフェースを提供し、追記されたデータフローを内部的に表現したデータフロー情報112を生成して出力する機能を有している。論理シミュレーション部103は、ブロック図に対応して別途作成されたハードウェアシステム記述113および各種の入力パターン114に基づき、論理シミュレーションを実行し、入力パターン114毎に論理シミュレーション結果情報115を生成して出力する機能を有している。データフローチェック部104は、データフロー情報112および論理シミュレーション結果情報115に基づき、ユーザが指定したデータフロー通りに論理シミュレーションが実行されたかどうかチェックし、チェック結果を生成して出力する機能を有している。<動作>データフロー検証支援装置1のユーザは、ブロック図作成部101により図1に示したようなハードウェアシステムのブロック図を作成し、作成されたブロック図はブロック図情報111として保存される。ブロック図作成部101は、従来からあるGUIGraphicalUserInterfaceを備えた回路図作成ツールやブロック図作成ツールなどの技術を使って実現することができる。ブロック図情報111は、図の要素であるブロックや配線の図形情報やポート名等の文字情報と、図上の位置情報を有している。なお、ここではハードウェアシステムを例として説明しているが、ソフトウェアシステムであってもよい。この場合、ブロックはソフトウェアにおける関数などに対応する。ブロック図作成部101によるブロック図の作成と並行して、データフロー表記部102は、ブロック図作成部101において作成し表示しているブロック図中に、データフローを図2に太線で示すような形で入力する。データフローを入力する方法の一例としては、そのデータフローが経由する各ポートをマウス等で選択する方法などがある。例えば、図2aに示したデータフローを入力する場合は、ブロックB1のポートI1、ブロックB1のポートO1、ブロックB3のポートI1、ブロックB3のポートO2、ブロックB5のポートI1、ブロックB5のポートO1の順でマウス等により指定してデータフローを入力する。この場合、マウス等の押された位置情報とブロック図情報111のポートの位置情報とを比較して指定されたポートを認識し、データフローが経由する各ポートの情報であるデータフロー情報112を生成する。図4はデータフロー情報112の例を示す図であり、図2aに示したデータフローに対応している。すなわち、ブロックB1のポートI1を示すB1.I1、ブロックB1のポートO1を示すB1.O1、ブロックB3のポートI1を示すB3.I1、ブロックB3のポートO2を示すB3.O2、ブロックB5のポートI1を示すB5.I1、ブロックB5のポートO1を示すB5.O1がデータフローの順に列記されたものとなっている。図3に戻り、論理シミュレーション部103は、VerilogHDLやSystemCといったハードウェア記述言語により記述されたハードウェアシステム記述113とそのシステムへの各種の入力パターン114を読み込んで論理シミュレーションを実施し、各入力パターン114に対する論理シミュレーション結果情報115を出力する。論理シミュレーションには従来から知られた論理シミュレーション技術を用いる。ここでは、ハードウェアシステムを例としているが、ソフトウェアシステムであってもよく、この場合、ハードウェアシステム記述113に相当する部分はプログラミング言語により記述されたソフトウェア記述となる。また、論理シミュレーション部103による論理シミュレーションに相当するものはソフトウェアの実行となる。図5は論理シミュレーション結果情報115の例を示す図である。図5では、シミュレーション上の時刻とその時刻に変化した信号名ポート名とその信号ポートの値が格納されている。図示の例では、時刻100nsにブロックB1のポートI1の値が1でブロックB2のポートI1の値が1となることを示す100nsB1.I11,B2.I11,、時刻200nsにブロックB1のポートO1の値が1でブロックB3のポートI1の値が0となったことを示す200nsB1.O11,B3.I10,、時刻300nsにブロックB3のポートO2の値が0となったことを示す300nsB3.O20,、時刻500nsにブロックB5のポートI1の値が1となったことを示す500nsB5.I11,、時刻600nsにブロックB5のポートO1の値が0となったことを示す600nsB5.O10,が時系列に列記されたものとなっている。図3に戻り、データフローチェック部104は、データフロー情報112と論理シミュレーション結果情報115を参照し、ブロック図中に表記されたデータフローについてすべてシミュレーションされたかについてチェックを実施する。例えば、図2aに示したデータフローに対しては図4で示したデータフロー情報112に列記された順に各ブロックのポートの値が変化するはずであるので、データフローチェック部104は、図5の論理シミュレーション結果情報115中においてもこの順に各ポートの値が変化しているかをチェックする。この場合、データそのものの値をチェックする場合もあれば、データの有効性を示すvalid信号などのような信号の値評価値をチェックする場合もある。図5の例では、時刻100nsにブロックB1のポートI1の値だけでなくブロックB2のポートI1の値も変化しているが、それは入力パターンとして値が与えられただけであり、その後はB1.O1→B3.O2→B5.I1→B5.O1というように、図4のデータフロー情報112と同じ順に変化しているため、図4のデータフロー情報112が示すデータフローを正常にシミュレーションしたと判断する。データフロー情報112にはユーザがデータフロー表記部102により設定した数のデータフローの情報が含まれ、論理シミュレーション結果情報115には入力パターン114に対応する数が存在するため、データフローチェック部104は、データフロー情報112の個々のデータフローに一致する論理シミュレーション結果情報115が存在し、すべてのデータフローに対して一致する論理シミュレーション結果情報115が存在すると判断した場合には、すべてのデータフローについて正常にシミュレーションした旨を示すチェック結果を出力する。また、一致する論理シミュレーション結果情報115が存在しないデータフローがある場合、そのデータフローを識別する情報を伴ってそのデータフローが正常にシミュレーションされていない旨のチェック結果を出力する。更に、データフローチェック部104は、データフロー情報112に含まれる個々のデータフローについて一致した論理シミュレーション結果情報115を識別する情報を併せて出力するようにしてもよい。これにより、論理シミュレーション結果情報115がどのデータフローに対応するのかを明確にすることができる。<総括>以上説明したように、本実施形態によれば、所定のデータフローについてシミュレーションを実施したかどうかを自動的に確認することができ、検証漏れを発見することができる。また、実施した論理シミュレーションがどのデータフローについて実施されたものかを容易に知ることができる。以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。"