(57)【要約】【課題】同一のシミュレータで同じ処理を複数回実行することを回避することにより、論理検証時間の短縮を図ることが可能な論理検証装置および論理検証方法を提供する。【解決手段】命令レベルシミュレータ１で、試験プログラム内の前処理命令群について第１の命令レベルシミュレーションを実行し、その実行結果を命令レベルシミュレーション結果格納部３に格納し、論理シミュレータ４と命令レベルシミュレータ１のそれぞれが、命令レベルシミュレーション結果格納部３に格納した実行結果を用いて試験対象命令群を実行するシミュレーションを行う。【選択図】      図１
2004272524.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１と第２の命令を含む試験プログラム内の第２の命令に基づき、装置モデルの論理シミュレーションを実行する論理シミュレータと、
前記試験プログラム内の第１の命令に基づき、前記試験プログラム内の第２の命令を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行するとともに、前記試験プログラム内の第２の命令に基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する命令レベルシミュレータと、
前記論理シミュレータによる論理シミュレーションの実行結果と前記命令レベルシミュレータによる第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証手段と、
前記命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果を格納する格納手段とを含み、
前記論理シミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、前記装置モデルの論理シミュレーションを実行し、
前記命令レベルシミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、前記第２の命令レベルシミュレーションを実行する
ことを特徴とする論理検証装置。
【請求項２】
少なくとも前処理命令群と試験対象命令群とを含む試験プログラム内の試験対象命令群に基づき、装置モデルの論理シミュレーションを実行する論理シミュレータと、
前記試験プログラム内の前処理命令群に基づき、前記試験プログラム内の試験対象命令群を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行するとともに、前記試験プログラム内の試験対象命令群に基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する命令レベルシミュレータと、
前記論理シミュレータによる論理シミュレーションの実行結果と前記命令レベルシミュレータによる第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証手段と、
前記命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果を格納する格納手段とを含み、
前記論理シミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、前記装置モデルの論理シミュレーションを実行し、
前記命令レベルシミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、前記第２の命令レベルシミュレーションを実行する
ことを特徴とする論理検証装置。
【請求項３】
請求項２に記載の論理検証装置において、前記命令レベルシミュレータは、前記比較検証手段による装置モデルの検証の終了に応じて、前記試験プログラムが有する後処理命令群に基づく第３の命令レベルシミュレーションを１回のみ実行することを特徴とする論理検証装置。
【請求項４】
少なくとも第１と第２の命令を含む試験プログラム内の第１の命令に基づき、前記試験プログラム内の第２の命令を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行する第１の命令レベルシミュレーション実行ステップと、
前記第１の命令レベルシミュレーション実行ステップで実行した第１の命令レベルシミュレーションの実行結果を格納する格納ステップと、
前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、装置モデルの論理シミュレーションを実行する論理シミュレーション実行ステップと、
前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する第２の命令レベルシミュレーション実行ステップと、
前記論理シミュレーション実行ステップで実行した論理シミュレーションの実行結果と前記第２の命令レベルシミュレーション実行ステップで実行した第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証ステップと
を含むことを特徴とする論理検証方法。
【請求項５】
少なくとも前処理命令群と試験対象命令群とを含む試験プログラム内の前処理命令群に基づき、前記試験プログラム内の試験対象命令群を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行する第１の命令レベルシミュレーション実行ステップと、
前記第１の命令レベルシミュレーション実行ステップで実行した第１の命令レベルシミュレーションの実行結果を格納する格納ステップと、
前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、装置モデルの論理シミュレーションを実行する論理シミュレーション実行ステップと、
前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する第２の命令レベルシミュレーション実行ステップと、
前記論理シミュレーション実行ステップで実行した論理シミュレーションの実行結果と前記第２の命令レベルシミュレーション実行ステップで実行した第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証ステップと
を含むことを特徴とする論理検証方法。
【請求項６】
請求項５に記載の論理検証方法において、
前記比較検証ステップによる装置モデルの検証の終了に応じて、前記試験プログラムが有する後処理命令群に基づく第３の命令レベルシミュレーションを１回のみ実行する第３の命令レベルシミュレーション実行ステップをさらに含むことを特徴とする論理検証方法。
【請求項７】
請求項４ないし６のいずれか１つに記載された論理検証方法をコンピュータに実行させるプログラム。
【請求項８】
請求項４ないし６のいずれか１つに記載された論理検証方法をコンピュータに実行させるプログラムを記録してあることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機械語命令を組み合わせた試験プログラムを用いた論理検証装置および論理検証方法に関し、特には、命令レベルシミュレーションと論理シミュレーションの両シミュレーションの実行結果を比較して、論理回路等の装置モデルの誤設計を検出するための論理検証装置および論理検証方法に関する。
【０００２】
【従来の技術】
従来、前処理命令群と試験対象命令群と後処理命令群を含む試験プログラムのような、機械語命令を組み合わせた試験プログラムを用いて、情報処理装置が有する論理回路モデルを検証する論理検証装置がある。
【０００３】
具体的には、情報処理装置に搭載予定の論理回路のモデルを用いて試験プログラム内の命令を実行する論理シミュレータと、試験プログラム内の命令を命令レベルで高速に実行する命令レベルシミュレータとを用い、両シミュレータで同じ試験プログラムを実行して、その実行結果を比較することにより、論理回路モデルの設計ミスを検出している。
【０００４】
また、特許文献１（特開平７−３６７３２号公報）には、論理シミュレータを用いて試験プログラムを実行する際、試験プログラムの一部の命令を論理シミュレータで実行し、試験プログラムの他の部分の命令を命令レベルシミュレータで実行する論理検証技術が記載されている。
【０００５】
特許文献１に記載の論理検証技術では、論理シミュレータと命令レベルシミュレータとの協働による試験プログラムの実行結果を論理シミュレータの実行結果とし、これを命令レベルシミュレータのみによる試験プログラムの実行結果とを比較して、論理回路モデルの設計ミスを検出している。
【０００６】
なお、論理シミュレータと命令レベルシミュレータとの協働により試験プログラムを実行する動作等、論理シミュレータを用いて試験プログラムを実行する動作を「論理シミュレーション」と称する。また、命令レベルシミュレータのみを用いて試験プログラムを実行する動作を、「命令レベルシミュレーション」と称することとする。
【０００７】
特許文献１に記載の技術についてさらに述べると、論理シミュレーションにおいて、論理シミュレータと命令レベルシミュレータとが協働して試験プログラムを実行する動作は、論理シミュレータと命令レベルシミュレータが必要なデータを交換しながら同期を取って並列動作するものである。
【０００８】
具体的には、論理シミュレーション実行時に、試験プログラムのうち、試験対象命令群のみを論理シミュレータで重点的に実行し、その他の命令群（前処理命令群と後処理命令群）を命令レベルシミュレータだけで高速に実行することにより、論理シミュレーション実行時の論理検証効率を向上させている。
【０００９】
しかしながら、論理シミュレータと命令レベルシミュレータの両方が正しく動作していても、実効命令列の分岐を生じさせる非同期割り込みの発生タイミングが両シミュレータで異なると、論理シミュレーションと命令レベルシミュレーションとの実行命令列に差分が生じてしまい、実行結果の比較が難しくなるという問題が生じる。
【００１０】
特許文献２（特許第３１５２２０５号公報）には、両シミュレータに対する非同期割り込みの発生タイミングの違いにより実行命令列に差分が生じることにより実行結果の比較が難しくなるという問題を回避する論理検証技術が記載されている。
【００１１】
特許文献２に記載の論理検証技術は、論理シミュレーション実行時の非同期割り込み情報を記録しておき、記憶した非同期割り込み情報を命令レベルシミュレーション実行時に参照して、命令レベルシミュレーション実行時の非同期割り込みの発生タイミングを論理シミュレーション実行時の非同期割り込みの発生タイミングと合致させるというものである。
【００１２】
特許文献２に記載の論理検証技術によれば、命令レベルシミュレーション実行時の非同期割り込みの発生タイミングを、論理シミュレーション実行時の非同期割り込みの発生タイミングと合致させることが可能となるので、実行命令列の差分を解消可能となり、実行結果の比較が容易となる。
【００１３】
【特許文献１】
特開平７−６５０４７号公報（段落００１４）
【特許文献２】
特許第３１５２２０５号公報
【００１４】
【発明が解決しようとする課題】
特許文献２に記載の論理検証技術では、試験プログラム内の試験対象命令群についての論理シミュレーションを実行した後に、試験プログラム内の試験対象命令群についての命令レベルシミュレーションが実行される。
【００１５】
また、試験プログラム内の前処理命令群と後処理命令群については、論理シミュレーションと命令レベルシミュレーションのそれぞれで実行される。
【００１６】
しかしながら、論理シミュレーション実行時の論理検証効率を図るため、論理シミュレーション実行時に前処理命令群または後処理命令群あるいは前処理命令群と後処理命令群を命令レベルシミュレータで実行する場合、命令レベルシミュレータは、前処理命令群または後処理命令群あるいは前処理命令群と後処理命令群を各シミュレーション実行時にそれぞれ実行することになる。
【００１７】
したがって、命令レベルシミュレータは、同じ命令群に対する処理を複数回実行する場合があり、シミュレーション実行時間が増大し、論理検証効率が低下するという問題が生じる。
【００１８】
なお、命令レベルシミュレータ、さらに言えば同一のシミュレータが、同じ命令群に対する処理を複数回実行することにより、シミュレーション実行時間が増大し、論理検証効率が低下するという問題は、特許文献２に記載の論理検証技術に限定される問題ではなく、同一のシミュレータが、同じ命令群に対する処理を複数回実行する論理検証技術に共通する問題である。
【００１９】
図４は、シミュレーション実行時間が増大する問題を説明するための図であり、特には、論理シミュレーション実行時の命令レベルシミュレータと論理シミュレータとの動作関係と、命令レベルシミュレーション実行時の命令レベルシミュレータの動作を示すための図である。
【００２０】
図４において、試験プログラム１０１は、命令ａ１〜命令ａｎを備えた前処理命令群Ａ、命令ｂ１〜命令ｂｎを備えた試験対象命令群Ｂおよび命令ｃ１〜命令ｃｎを備えた後処理命令群Ｃとを含む。
【００２１】
前処理命令群Ａと試験対象命令群Ｂと後処理命令群Ｃのうち、試験対象命令群Ｂが論理回路モデルの検証したい部分を動作させる命令群であり、論理シミュレーションにおいて論理シミュレータが実行する対象となる命令群となる。
【００２２】
１０２は、論理シミュレーション実行時の命令レベルシミュレータと論理シミュレータとの動作関係を説明するための説明線、１０３は、命令レベルシミュレーション実行時の命令レベルシミュレータの動作を説明するための説明線である。
【００２３】
次に、図４を参照して、シミュレーション実行時間が増大するという問題を簡単に説明する。
【００２４】
まず、論理シミュレーションについて説明する。
【００２５】
試験プログラム１０１についての論理シミュレーションが始まると、試験プログラム１０１の前処理命令群Ａの命令ａ１〜命令ａｎは、命令レベルシミュレータで実行される（説明線１０２参照）。
【００２６】
続いて、試験プログラム１０１の試験対象命令群Ｂの命令ｂ１〜命令ｂｎが論理シミュレータで実行され、その後、試験プログラム１０１の後処理命令群Ｃの命令ｃ１〜命令ｃｎが命令レベルシミュレータで実行される（説明線１０２参照）。
【００２７】
一方、試験プログラム１０１についての命令レベルシミュレーションは、試験プログラム１０１が有するすべての命令を、命令レベルシミュレータで実行する。
【００２８】
図４に示すように、論理シミュレーションと命令レベルシミュレーションとにおいて、前処理命令群Ａと後処理命令群Ｃは、ともに命令レベルシミュレータで実行されることになり、同一のシミュレータである命令レベルシミュレータが同じ処理を複数回実行するので、シミュレーション実行時間が増大してしまう。
【００２９】
本発明の目的は、同一のシミュレータで同じ処理を複数回実行することを回避することにより、論理検証時間の短縮を図ることが可能な論理検証装置および論理検証方法を提供することである。
【００３０】
【課題を解決するための手段】
上記目的を達成するため、本発明の論理検証装置は、少なくとも第１と第２の命令を含む試験プログラム内の第２の命令に基づき、装置モデルの論理シミュレーションを実行する論理シミュレータと、前記試験プログラム内の第１の命令に基づき、前記試験プログラム内の第２の命令を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行するとともに、前記試験プログラム内の第２の命令に基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する命令レベルシミュレータと、前記論理シミュレータによる論理シミュレーションの実行結果と前記命令レベルシミュレータによる第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証手段と、前記命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果を格納する格納手段とを含み、前記論理シミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、前記装置モデルの論理シミュレーションを実行し、前記命令レベルシミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、前記第２の命令レベルシミュレーションを実行することを特徴とする。
【００３１】
上記の発明によれば、論理シミュレータが、格納された第１の命令レベルシミュレーションの実行結果と第２の命令とに基づき装置モデルの論理シミュレーションを実行し、命令レベルシミュレータが、格納された第１の命令レベルシミュレーションの実行結果と第２の命令とに基づき論理シミュレーションの正解値を生成するので、第１の命令レベルシミュレーションを１回実行すればよくなる。
【００３２】
したがって、命令レベルシミュレータが、第１の命令レベルシミュレーションを１回のみの実行とすることが可能となり、同一のシミュレータが第１の命令レベルシミュレーションを複数回実行する場合に比べて、論理検証時間の短縮化が可能となる。
【００３３】
また、本発明の論理検証装置は、少なくとも前処理命令群と試験対象命令群とを含む試験プログラム内の試験対象命令群に基づき、装置モデルの論理シミュレーションを実行する論理シミュレータと、前記試験プログラム内の前処理命令群に基づき、前記試験プログラム内の試験対象命令群を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行するとともに、前記試験プログラム内の試験対象命令群に基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する命令レベルシミュレータと、前記論理シミュレータによる論理シミュレーションの実行結果と前記命令レベルシミュレータによる第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証手段と、前記命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果を格納する格納手段とを含み、前記論理シミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、前記装置モデルの論理シミュレーションを実行し、前記命令レベルシミュレータは、前記格納手段に格納された命令レベルシミュレータによる第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、前記第２の命令レベルシミュレーションを実行することを特徴とする。
【００３４】
上記の発明によれば、論理シミュレータが、格納された第１の命令レベルシミュレーション実行結果と試験対象命令群に基づき装置モデルの論理シミュレーションを実行し、命令レベルシミュレータが、格納された第１の命令レベルシミュレーション実行結果と試験対象命令群に基づき論理シミュレーションの正解値を生成するので、第１の命令レベルシミュレーションを１回実行すればよくなる。
【００３５】
したがって、命令レベルシミュレータが、第１の命令レベルシミュレーションを１回のみ実行することが可能となり、同一のシミュレータが第１の命令レベルシミュレーションを複数回実行する場合に比べて、論理検証時間の短縮化が可能となる。
【００３６】
また、本発明の論理検証装置は、前記命令レベルシミュレータは、前記比較検証手段による装置モデルの検証の終了に応じて、前記試験プログラムが有する後処理命令群に基づく第３の命令レベルシミュレーションを１回のみ実行することを特徴とする。
【００３７】
上記の発明によれば、比較検証手段による装置モデルの検証の終了に応じて、後処理命令群に基づく第３の命令レベルシミュレーションを１回しか実行しないので、後処理命令群に基づく命令レベルシミュレーションを複数回繰り返す場合に比べて、論理検証時間の短縮化が図れる。
【００３８】
また、本発明の論理検証方法は、少なくとも第１と第２の命令を含む試験プログラム内の第１の命令に基づき、前記試験プログラム内の第２の命令を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行する第１の命令レベルシミュレーション実行ステップと、前記第１の命令レベルシミュレーション実行ステップで実行した第１の命令レベルシミュレーションの実行結果を格納する格納ステップと、前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、装置モデルの論理シミュレーションを実行する論理シミュレーション実行ステップと、前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の第２の命令とに基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する第２の命令レベルシミュレーション実行ステップと、前記論理シミュレーション実行ステップで実行した論理シミュレーションの実行結果と前記第２の命令レベルシミュレーション実行ステップで実行した第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証ステップとを含むことを特徴とする。
【００３９】
上記の発明によれば、格納した第１の命令レベルシミュレーションの実行結果と第２の命令に基づき装置モデルの論理シミュレーションを実行し、格納した第１の命令レベルシミュレーションの実行結果と第２の命令に基づき論理シミュレーションの正解値を生成するので、第１の命令レベルシミュレーションを１回実行すればよくなる。
【００４０】
したがって、上記の発明によれば、第１の命令レベルシミュレーションを１回のみの実行とすることが可能となり、同一のシミュレータが第１の命令レベルシミュレーションを複数回実行する場合に比べて、論理検証時間の短縮化が可能となる。
【００４１】
また、本発明の論理検証方法は、少なくとも前処理命令群と試験対象命令群とを含む試験プログラム内の前処理命令群に基づき、前記試験プログラム内の試験対象命令群を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行する第１の命令レベルシミュレーション実行ステップと、前記第１の命令レベルシミュレーション実行ステップで実行した第１の命令レベルシミュレーションの実行結果を格納する格納ステップと、前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、装置モデルの論理シミュレーションを実行する論理シミュレーション実行ステップと、前記格納ステップで格納した第１の命令レベルシミュレーションの実行結果と前記試験プログラム内の試験対象命令群とに基づき、前記論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する第２の命令レベルシミュレーション実行ステップと、前記論理シミュレーション実行ステップで実行した論理シミュレーションの実行結果と前記第２の命令レベルシミュレーション実行ステップで実行した第２の命令レベルシミュレーションの実行結果とを比較して前記装置モデルの検証を行う比較検証ステップとを含むことを特徴とする。
【００４２】
上記の発明によれば、格納した第１の命令レベルシミュレーションの実行結果と試験対象命令群に基づき装置モデルの論理シミュレーションを実行し、格納した第１の命令レベルシミュレーションの実行結果と試験対象命令群に基づき第２の命令レベルシミュレーションを実行するので、第１の命令レベルシミュレーションを１回実行すればよくなる。
【００４３】
したがって、上記の発明によれば、第１の命令レベルシミュレーションを１回のみの実行とすることが可能となり、同一のシミュレータが第１の命令レベルシミュレーションを複数回実行する場合に比べて、論理検証時間の短縮化が可能となる。
【００４４】
また、本発明の論理検証方法は、前記比較検証ステップによる装置モデルの検証の終了に応じて、前記試験プログラムが有する後処理命令群に基づく第３の命令レベルシミュレーションを１回のみ実行する第３の命令レベルシミュレーション実行ステップをさらに含むことを特徴とする。
【００４５】
上記の発明によれば、比較検証ステップによる前記装置モデルの検証の終了に応じて、前記試験プログラムが有する後処理命令群に基づく第３の命令レベルシミュレーションを１回のみ実行するので、後処理命令群に基づく命令レベルシミュレーションを複数回実行する場合に比べて、論理検証時間の短縮化が図れる。
【００４６】
また、本発明のプログラムは、請求項４ないし６のいずれか１つに記載された論理検証方法をコンピュータに実行させることを特徴とする。
【００４７】
上記の発明によれば、上記プログラムをコンピュータに実行させることによって、上記の装置や方法を容易に実現することが可能になる。
【００４８】
また、本発明のコンピュータ読み取り可能な記録媒体は、請求項４ないし６のいずれか１つに記載された論理検証方法をコンピュータに実行させるプログラムを記録してあることを特徴とする。
【００４９】
上記の発明によれば、記録媒体の記録内容であるプログラムをコンピュータに読み取らせることによって、上記の装置や方法を容易に実現することが可能になる。
【００５０】
【発明の実施の形態】
以下、本発明の実施の形態を図面に示す一実施例に基づき説明する。
【００５１】
図１は、本発明の一実施例の論理検証装置を示すブロック図である。
【００５２】
図１において、本実施例の論理検証装置は、命令レベルシミュレータ１と、論理シミュレーション結果格納部２と、命令レベルシミュレーション結果格納部３と、論理シミュレータ４とを含む。
【００５３】
命令レベルシミュレータ１は、機械語命令を組み合わせた試験プログラムの命令を命令レベルで実行する命令レベルシミュレーションを実行して、論理シミュレータ４による論理シミュレーションの正解値等を生成する。
【００５４】
論理シミュレータ４は、論理検証対象としても装置モデルを用いて試験プログラムの命令を実行する論理シミュレーションを行う。なお、本実施例では、装置モデルとして論理回路モデルを用いる。
【００５５】
論理シミュレーション結果格納部２は、論理シミュレータ４で実行された論理シミュレーションの実行結果が格納される。
【００５６】
格納手段としての命令レベルシミュレーション結果格納部３は、命令レベルシミュレータ１による命令レベルシミュレーションの実行結果が格納される。
【００５７】
命令レベルシミュレータ１は、命令レベルシミュレーション結果入力部１１と、命令レベルシミュレーション実行部１２と、シミュレーション結果比較部１３と、命令レベルシミュレーション結果出力部１４とを含み、論理シミュレータ４は、命令レベルシミュレーション結果入力部４１と、論理シミュレーション実行部４２と、論理シミュレーション結果出力部４３とを含む。
【００５８】
命令レベルシミュレーション結果入力部１１は、論理シミュレーション結果格納部２に格納された論理シミュレーションの実行結果と命令レベルシミュレーション結果格納部３に格納された命令レベルシミュレーションの実行結果とを入力する。
【００５９】
命令レベルシミュレーション結果入力部１１は、入力した論理シミュレーションの実行結果をシミュレーション結果比較部１３に出力し、入力した命令レベルシミュレーションの実行結果を命令レベルシミュレーション実行部１２に出力する。
【００６０】
命令レベルシミュレーション実行部１２は、論理機能モデルを用いて機械語命令を組み合わせた試験プログラムの命令を命令セットレベルで実行することにより、論理シミュレータ４が論理シミュレーションを実行するのに必要となる情報を生成する第１の命令レベルシミュレーションを実行し、生成した情報を命令レベルシミュレーション結果出力部１４に出力する。
【００６１】
なお、論理シミュレータ４が論理シミュレーションを実行するのに必要となる情報は、命令レベルシミュレーション実行部１２が論理シミュレータ４による論理シミュレーションの正解値を生成するのに必要となる情報でもある。
【００６２】
さらに、命令レベルシミュレーション実行部１２は、命令レベルシミュレーション結果入力部１１から入力する命令レベルシミュレーションの実行結果と試験プログラムの命令とに基づき、論理シミュレータ４による論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行し、生成した正解値をシミュレーション結果比較部１３に出力する。
【００６３】
さらに、命令レベルシミュレーション実行部１２は、シミュレーション結果比較部１３の比較検証動作の終了に応じて、試験プログラムの命令に基づく第３の命令レベルシミュレーションを実行する。
【００６４】
比較検証手段としてのシミュレーション結果比較部１３は、命令レベルシミュレーション結果入力部１１が論理シミュレーション結果格納部２から読み込んだ論理シミュレーションの実行結果と、命令レベルシミュレーション実行部１２が実行した第２の命令レベルシミュレーションの実行結果を比較する。
【００６５】
シミュレーション結果比較部１３は、論理シミュレーションの実行結果と第２の命令レベルシミュレーションの実行結果とが一致しない場合、論理回路モデルに設計ミスがあると判断して、エラーレポートを不図示の検証結果処理部等に出力し、両シミュレーション実行結果が一致した場合、エラーがない旨のレポートを不図示の検証結果処理部等に出力する。
【００６６】
命令レベルシミュレーション結果出力部１４は、命令レベルシミュレーション実行部１２から入力される第１の命令レベルシミュレーションの実行結果を、命令レベルシミュレーション結果格納部３に格納する。
【００６７】
命令レベルシミュレーション結果入力部４１は、命令レベルシミュレーション結果格納部３に格納された第１の命令レベルシミュレーションの実行結果を入力する。
【００６８】
論理シミュレーション実行部４２は、命令レベルシミュレーション結果入力部４１から入力する第１の命令レベルシミュレーションの実行結果と試験プログラムの命令とに基づき、論理検証対象としての論理回路モデルを用いて試験プログラムの命令を実行する論理シミュレーションを行う。
【００６９】
論理シミュレーション結果出力部４３は、論理シミュレーション実行部４２が実行した論理シミュレーションの実行結果を、論理シミュレーション結果格納部２に格納する。
【００７０】
なお、図１に示した本実施例では、比較検証手段としてのシミュレーション結果比較部１３を命令レベルシミュレータ１が含む構成としているが、シミュレーション結果比較部１３を命令レベルシミュレータ１と別構成してもよい。
【００７１】
シミュレーション結果比較部１３を命令レベルシミュレータ１と別構成とした場合、命令レベルシミュレータ１は、図１に示した構成からシミュレーション結果比較部１３を除いた構成となる、命令レベルシミュレーション結果入力部１１と命令レベルシミュレーション実行部１２と命令レベルシミュレーション結果出力部１４とからなる構成としてもよい。
【００７２】
次に、図１を参照して、本実施例の動作の概要を説明する。
【００７３】
ここでは、本実施例が用いる試験プログラムとして、第１の命令と第２の命令と第３の命令を含む試験プログラムを用いた場合の動作を説明する。
【００７４】
第１の命令は、論理シミュレータ４が第２の命令に基づき論理シミュレーションを実行する際および命令レベルシミュレータ１が論理シミュレーションの正解値を生成する際に必要となる情報を生成するための命令である。
【００７５】
第２の命令は、論理回路モデルの検証したい部分を動作させる命令で、論理シミュレータ４が論理シミュレーションを実行する対象となる命令である。さらに、第２の命令は、命令レベルシミュレータ１が論理シミュレーションの正解値を生成する際に実行する対象となる命令である。
【００７６】
第３の命令は、第２の命令の実行が終了した後に、命令レベルシミュレータ１により実行される命令である。
【００７７】
試験プログラムは、第１の命令の次に第２の命令があり、第２の命令の次に第３の命令がある。
【００７８】
命令レベルシミュレータ１は、試験プログラム内の第１の命令に基づき、第１の命令レベルシミュレーションを実行し、論理シミュレータ４が試験プログラム内の第２の命令に基づき論理シミュレーションを実行する際および命令レベルシミュレータ１が試験プログラム内の第２の命令に基づき論理シミュレーションの正解値を生成する際に必要となる情報を生成する。
【００７９】
命令レベルシミュレータ１は、第１の命令レベルシミュレーションの実行により生成した情報である第１の命令レベルシミュレーションの実行結果を、命令レベルシミュレーション結果格納部３に格納する。
【００８０】
論理シミュレータ４は、命令レベルシミュレーション結果格納部３に格納された第１の命令レベルシミュレーションの実行結果を読み込み、読み込んだ第１の命令レベルシミュレーションの実行結果と試験プログラム内の第２の命令に基づき、検証対象としての論理回路モデルに関して論理シミュレーションを実行する。
【００８１】
論理シミュレータ４は、論理シミュレーションの実行結果を、論理シミュレーション結果格納部２に格納する。
【００８２】
命令レベルシミュレータ１は、論理シミュレーション結果格納部２に格納された論理シミュレーションの実行結果と命令レベルシミュレーション結果格納部３に格納されている第１の命令レベルシミュレーションの実行結果とを読み込む。
【００８３】
命令レベルシミュレータ１は、読み込んだ第１の命令レベルシミュレーションの実行結果と試験プログラム内の第２の命令に基づき、論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する。
【００８４】
シミュレーション結果比較部１３は、論理シミュレーションの実行結果と命令レベルシミュレータ１が実行した第２の命令レベルシミュレーションの実行結果とを比較する。
【００８５】
シミュレーション結果比較部１３は、論理シミュレーションの実行結果と第２の命令レベルシミュレーションの実行結果とが一致しない場合、論理回路モデルに設計ミスがあると判断して、エラーレポートを不図示の検証結果処理部等に出力する。
【００８６】
シミュレーション結果比較部１３は、論理シミュレーションの実行結果と第２の命令レベルシミュレーションの実行結果とが一致した場合、エラーがない旨のレポートを不図示の検証結果処理部等に出力する。
【００８７】
命令レベルシミュレータ１は、シミュレーション結果比較部１３による比較検証の終了に応じて、試験プログロム内の第３の命令に基づく第３の命令レベルシミュレーションを１回だけ実行し、試験プログラムの実行を終了する。
【００８８】
本実施例は、論理シミュレーションと第２の命令レベルシミュレーションを実行する際、命令レベルシミュレーション結果格納部３に格納された第１の命令レベルシミュレーションの実行結果をともに用いるので、第１の命令レベルシミュレーションを一回実行すれば、その実行結果を論理シミュレーションと第２の命令レベルシミュレーションとで使用可能となる。
【００８９】
したがって、第１の命令レベルシミュレーションを一回だけ実行することで論理シミュレーションと第２の命令レベルシミュレーションを実行可能となり、第１の命令レベルシミュレーションを複数回実行する場合に比べて、シミュレーション時間を短くすることが可能となり、論理検証効率を向上できる。
【００９０】
また、本実施例は、シミュレーション結果比較部１３の比較検証動作の終了に応じて、試験プログロム内の第３の命令に基づく第３の命令レベルシミュレーションを１回だけ実行して試験プログラムの実行を終了するので、比較検証の終了に応じて、第３の命令に基づく命令レベルシミュレーションを複数回実行する場合に比べて、シミュレーション時間を短縮でき、論理検証効率の向上が図れる。
【００９１】
したがって、本実施例によれば、論理シミュレーションの対象外である命令（第１の命令と第３の命令）については１回のみシミュレーションすれば済むようになるため、論理検証効率が向上する。
【００９２】
また、本実施例は、論理シミュレーションの実行後に論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行するので、特許文献２に記載された論理検証技術を用いることが可能となる。
【００９３】
具体的には、本実施例において、論理シミュレーション実行時の非同期割り込み情報を記憶手段に記録し、記憶した非同期割り込み情報を第２の命令レベルシミュレーション実行時に命令レベルシミュレーション実行部１２が参照し、第２の命令レベルシミュレーション実行時の非同期割り込みの発生タイミングを論理シミュレーション実行時の非同期割り込みの発生タイミングと合致させる。
【００９４】
本実施例に対して特許文献２に記載された論理検証技術を用いると、実行命令列の差分が解消可能となるとともに、論理シミュレーションの対象外である命令（第１の命令と第３の命令）については１回のみシミュレーションすれば済むようになるため、論理検証効率が向上する。
【００９５】
次に、図１ないし図３を参照して、本実施例の動作を詳細に説明する。
【００９６】
図２は、本実施例の動作を説明するためのフローチャートであり、図３は、本実施例で使用する試験プログラムの一例を示すフローチャートである。
【００９７】
図３において、試験プログラム２０１は、命令ａ１〜命令ａｎを備えた前処理命令群Ａと、命令ｂ１〜命令ｂｎを備えた試験対象命令群Ｂと、命令ｃ１〜命令ｃｎを備えた後処理命令群Ｃとを含む。
【００９８】
第１の命令としての前処理命令群Ａと、第２の命令としての試験対象命令群Ｂと、第３の命令としての後処理命令群Ｃのうち、試験対象命令群Ｂが、装置モデルとしての論理回路モデルの検証したい部分を動作させる命令群である。
【００９９】
試験対象命令群Ｂは、論理シミュレーションの実行時に、論理シミュレータ４が実行対象とする命令群であるとともに、論理シミュレーションの正解値を生成するための第２の命令レベルシミュレーションの実行時に、命令レベルシミュレータ１が実行対象とする命令群である。
【０１００】
続いて、図２を参照して、本実施例の具体的な動作を説明する。
【０１０１】
まず、命令レベルシミュレータ１が、試験プログラム２０１の前処理命令群Ａを実行する。具体的には、命令レベルシミュレーション実行部１２が、前処理命令群Ａである命令ａ１〜命令ａｎについて第１の命令レベルシミュレーションを実行する（ステップＡ０１  ）。
【０１０２】
第１の命令レベルシミュレーションの実行結果には、命令ｂ１以降の命令群を実行するために必要なデータ（情報）、具体的には、論理シミュレータ４が論理シミュレーションを実行するのに必要となる情報であり、かつ命令レベルシミュレーション実行部１２が論理シミュレータ４による論理シミュレーションの正解値を生成するのに必要となる情報が含まれる。
【０１０３】
前処理命令群Ａの実行後、命令レベルシミュレーション結果出力部１４は、前処理命令群Ａについて命令レベルシミュレーション実行部１２が実行した第１の命令レベルシミュレーションの実行結果を、命令レベルシミュレーション結果格納部３に格納する（ステップＡ０２）。
【０１０４】
よって、命令レベルシミュレーション結果格納部３には、命令ｂ１以降の命令群を実行するために必要なデータ（情報）、具体的には、論理シミュレータ４が論理シミュレーションを実行するのに必要となる情報であり、かつ命令レベルシミュレーション実行部１２が論理シミュレータ４による論理シミュレーションの正解値を生成するのに必要となる情報が格納される。
【０１０５】
ステップＡ０２の終了後、命令レベルシミュレータ１はシミュレーションを停止する。
【０１０６】
続いて、論理シミュレータ４が、前処理命令群Ａに続く試験対象命令群Ｂを実行する。
【０１０７】
論理シミュレータ４による試験対象命令群Ｂの実行は、命令レベルシミュレーション結果入力部４１が、命令レベルシミュレーション結果格納部３に格納されている第１の命令レベルシミュレーションの実行結果を入力することから始まる（ステップＡ０３）。
【０１０８】
なお、命令レベルシミュレータ１と論理シミュレータ４とで扱うデータ形式が異なるため、命令レベルシミュレーション結果入力部４１が第１の命令レベルシミュレーションの実行結果を入力する際、第１の命令レベルシミュレーションの実行結果のデータ形式を、命令レベルシミュレータ１のデータ形式から論理シミュレータ４のデータ形式へ変換する。
【０１０９】
次に、論理シミュレーション実行部４２は、命令レベルシミュレーション結果入力部４１が入力した第１の命令レベルシミュレーションの実行結果と試験対象命令群Ｂである命令ｂ１〜命令ｂｎに基づき、論理検証対象として装置モデルである論理回路モデルを用いて論理シミュレーションを実行する（ステップＡ０４）。
【０１１０】
論理シミュレーションの実行に際して、前処理命令群Ａの実行結果である第１の命令レベルシミュレーションの実行結果を用いることにより、論理シミュレーション実行部４２は、命令ｂ１から論理シミュレーションを開始することが可能となる。
【０１１１】
したがって、論理シミュレーション実行部４２は、命令レベルシミュレータ１により再度前処理命令群Ａについての第１の命令レベルシミュレーションを実行させることなく、試験対象命令群Ｂを用いた論理シミュレーションを実行でき、再度の第１の命令レベルシミュレーションを実行する場合に比べて、シミュレーション時間の短縮が図れ、論理検証効率を向上可能となる。
【０１１２】
論理シミュレーション実行部４２による試験対象命令群Ｂについての論理シミュレーションの実行が終了すると、論理シミュレーション結果出力部４３は、論理シミュレーションの実行結果を、論理シミュレーション結果格納部２に格納する（ステップＡ０５）。
【０１１３】
論理シミュレーション結果出力部４３は、論理シミュレーションの実行結果を論理シミュレーション結果格納部２に格納する際、論理シミュレーションの実行結果のデータ形式を、論理シミュレータ４のデータ形式から命令レベルシミュレータ１のデータ形式へ変換し、変換した論理シミュレーションの実行結果を論理シミュレーション結果格納部２に格納する。
【０１１４】
ステップＡ０５の終了後、論理シミュレータ４はシミュレーションを停止する。
【０１１５】
続いて、命令レベルシミュレータ１は、前処理命令群Ａに続く試験対象命令群Ｂを実行することにより、論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する。
【０１１６】
命令レベルシミュレータ１による第２の命令レベルシミュレーションの実行に際して、命令レベルシミュレーション結果入力部１１は、命令レベルシミュレーション結果格納部３に格納されている前処理命令群Ａについての第１の命令レベルシミュレーションの実行結果と論理シミュレーション結果格納部２に格納されている論理シミュレーションの実行結果を入力する（ステップＡ０６  ）。
【０１１７】
なお、ステップＡ０６で入力される第１の命令レベルシミュレーションの実行結果は、ステップＡ０３で論理シミュレータ４に入力されたものと同一である。
【０１１８】
次に、命令レベルシミュレーション実行部１２は、命令レベルシミュレーション結果入力部１１が入力した第１の命令レベルシミュレーションの実行結果と試験対象命令群Ｂである命令ｂ１〜命令ｂｎに基づき、論理シミュレーションの正解値を生成する第２の命令レベルシミュレーションを実行する（ステップＡ０７）。
【０１１９】
第２の命令レベルシミュレーションの実行に際して、前処理命令群Ａの実行結果である第１の命令レベルシミュレーション結果を用いることにより、命令レベルシミュレーション実行部１２は、命令ｂ１から第２の命令レベルシミュレーションを開始することが可能となる。
【０１２０】
したがって、命令レベルシミュレーション実行部１２は、再度前処理命令群Ａについての第１の命令レベルシミュレーションを実行することなく、試験対象命令群Ｂについての第２の命令レベルシミュレーションを実行でき、、再度第１の命令レベルシミュレーションを実行する場合に比べて、シミュレーション時間の短縮が図れ、論理検証効率を向上可能となる。
【０１２１】
命令レベルシミュレーション実行部１２による第２の命令レベルシミュレーションが終了すると、シミュレーション結果比較部１３は、命令レベルシミュレーション結果入力部１１が論理シミュレーション結果格納部２から読み込んだ論理シミュレーションの実行結果と命令レベルシミュレーション実行部１２による第２の命令レベルシミュレーションの実行結果とを比較する。
【０１２２】
シミュレーション結果比較部１３は、論理シミュレーションの実行結果と第２の命令レベルシミュレーションの実行結果とが一致しない場合、論理回路モデルに設計ミスがあると判断して、エラーレポートを不図示の検証結果処理部等に出力し、両シミュレーションの実行結果が一致した場合、エラーがない旨のレポートを不図示の検証結果処理部等に出力する（ステップＡ０８）。
【０１２３】
シミュレーション結果比較部１３による比較検証が終了すると、命令レベルシミュレーション実行部１２は、後処理命令群Ｃである命令ｃ１〜命令ｃｎに基づく第３の命令レベルシミュレーションを１回だけ実行する（ステップＡ０９）。
【０１２４】
命令レベルシミュレーション実行部１２は、試験プログラム２０１中の全命令（本実施例では、前処理命令群Ａと試験対象命令群Ｂと後処理命令群Ｃ）の実行終了後、シミュレーション処理を終了する。
【０１２５】
本実施例は、シミュレーション結果比較部１３による比較検証の終了に伴い、命令レベルシミュレーション実行部１２が第３の命令レベルシミュレーションを１回だけ実行するので、比較検証の終了に応じて第３の命令に基づく命令レベルシミュレーションを複数回実行する場合に比べて、シミュレーション時間を短縮でき、論理検証効率の向上が図れる。
【０１２６】
なお、本実施例では、前処理命令群Ａと試験対象命令群Ｂと後処理命令群Ｃとで構成されるひとつのテストケースからなる試験プログラムを用いているが、試験プログラムは、これに限るものではない。
【０１２７】
例えば、試験プログラムとして、前処理命令群Ａと試験対象命令群Ｂと後処理命令群Ｃとで構成されるテストケースを複数種類有する試験プログラムを用いて、本実施例の論理検証をテストケース毎に繰り返すようにしてもよい。また、試験プログラムとしてＯＳ（オペレーティングシステム）を用いてもよい。
【０１２８】
なお、図２に示す動作は、命令レベルシミュレータ１と論理シミュレータ４とが、不図示のメモリに格納されたプログラムを実行することでも実現できる。
【０１２９】
また、本発明の目的は、本実施例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、コンピュータを備えたシステムや装置に供給し、そのコンピュータが記録媒体に格納されたプログラムコードを読み出し、実行することによっても、達成されることは言うまでもない。
【０１３０】
プログラムを用いた場合、ソフトウェアのプログラムコード自体が本実施例の機能を実現するので、そのプログラムおよびそのプログラムコードを記録した記録媒体が本発明を構成することになる。
【０１３１】
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【０１３２】
【発明の効果】
本発明によれば、第１の命令に基づき、第２の命令を実行するのに必要な情報を生成する第１の命令レベルシミュレーションを実行し、その実行結果を格納し、論理シミュレータと命令レベルシミュレータのそれぞれが、格納した実行結果を用いて第２の命令をそれぞれ実行するので、論理シミュレータの実行対象でない第１の命令については、１回のみシミュレーションすれば済むようになる。
【０１３３】
したがって、本発明は、論理シミュレータの実行対象でない命令については、命令レベルシミュレータによる１回だけのシミュレーションとすることが可能となり、論理シミュレータの実行対象でない命令を複数回実行する場合に比べて、シミュレーション時間の短縮を図ることができ、論理検証効率が向上する。
【図面の簡単な説明】
【図１】本発明の一実施例を示したブロック図。
【図２】図１の動作説明のためのフローチャート。
【図３】本発明の一実施例で用いる試験プログラムの一例を示すフローチャート。
【図４】従来の論理検証方法を説明するための説明図。
【符号の説明】
１      命令レベルシミュレータ
１１    命令レベルシミュレーション結果入力部
１２    命令レベルシミュレーション実行部
１３    シミュレーション結果比較部
１４    命令レベルシミュレーション結果出力部
２      論理シミュレーション結果格納部
３      命令レベルシミュレーション結果格納部
４      論理シミュレータ
４１    命令レベルシミュレーション結果入力部
４２    論理シミュレーション実行部
４３    論理シミュレーション結果出力部
【図１】
2004272524.tif 000003
【図２】
2004272524.tif 000004
【図３】
2004272524.tif 000005
【図４】
2004272524.tif 000006