(57)【要約】【課題】シミュレーションを高速で実行することが可能な検証用モデルを生成することができるようにする。【解決手段】  ソフトウェアの検証に用いるハードウェアモデルを生成するソフトウェア検証用モデル生成装置であって、検証に用いるハードウェアの状態を記憶する場所を指定するコードを生成する記憶コード生成部１３と、検証に用いるハードウェアに対して与えられる入力情報列を基にして、検証に用いるハードウェアに対して各入力情報列を入力した場合の当該ハードウェアの動作に対応したハードウェアモデルとして入力情報列モデルを生成する入力情報列モデル生成部１１と、検証に用いるハードウェアに対して入力がないときのハードウェアの動作に対応したハードウェアモデルとして無入力時モデルを生成する無入力時モデル生成部１２とを備える。【選択図】図１
2008129914.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの検証に用いるハードウェアモデルを生成するソフトウェア検証用モデル生成装置であって、
検証に用いるハードウェアの状態を記憶する場所を指定するコードを生成する記憶コード生成部と、
前記検証に用いるハードウェアに対して与えられる入力情報列を基にして、当該検証に用いるハードウェアに対して各入力情報列を入力した場合の当該ハードウェアの動作に対応したハードウェアモデルとして入力情報列モデルを生成する入力情報列モデル生成部と、  
前記検証に用いるハードウェアに対して入力がないときの当該ハードウェアの動作に対応したハードウェアモデルとして無入力時モデルを生成する無入力時モデル生成部とを備えた
ことを特徴とするソフトウェア検証用モデル生成装置。
【請求項２】
前記入力情報列モデル及び前記無入力時モデルに対して、前記検証に用いるハードウェアの一又は二以上のレジスタの値が特定の値の場合の当該ハードウェアの動作に対応した特定状態時モデルを生成する特定状態時モデル生成部を備えた
請求項１記載のソフトウェア検証用モデル生成装置。
【請求項３】
前記無入力時モデルの一部もしくは全てのレジスタ値をレジスタ初期値や経過時間を用いた式で表現し、任意時間後のハードウェアの状態を計算する一般項化モデルを生成する一般項化モデル生成部を備えた
請求項１または請求項２記載のソフトウェア検証用モデル生成装置。
【請求項４】
前記入力情報列の入力があるときとないときとで、前記入力情報列モデルと前記無入力時モデルとを切り替えて使用することで前記ソフトウェア検証を行うシミュレーション実行手段を備えた
請求項１から請求項３のうちいずれかに記載のソフトウェア検証用モデル生成装置。
【請求項５】
ソフトウェアの検証に用いるハードウェアモデルを生成するソフトウェア検証用モデル生成方法であって、
検証に用いるハードウェアの状態を記憶する場所を指定するコードを生成する記憶コード生成ステップと、
前記検証に用いるハードウェアに対して与えられる入力情報列を基にして、当該検証に用いるハードウェアに対して各入力情報列を入力した場合の当該ハードウェアの動作に対応したハードウェアモデルとして入力情報列モデルを生成する入力情報列モデル生成ステップと、
前記検証に用いるハードウェアに対して入力がないときの当該ハードウェアの動作に対応したハードウェアモデルとして無入力時モデルを生成する無入力時モデル生成ステップと、
前記入力情報列の入力があるときとないときとで、前記入力情報列モデルと前記無入力時モデルとを切り替えて使用することで前記ソフトウェア検証を行うシミュレーション実行ステップとを有する
ことを特徴とするソフトウェア検証用モデル生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア（以下、ＨＷ）記述言語で記述されたＨＷモデルを基に、ソフトウェア検証用のモデルを生成するソフトウェア検証用モデル生成装置、及びソフトウェア検証用モデル生成方法に関する。
【背景技術】
【０００２】
従来、ソフトウェア開発においては、ソフトウェアが実際に動作するか否かをテストするため（検証）、ＨＷを組み立て、ＨＷ実機によりテストする必要がある。ここで、ＨＷ実機によるテストのみを行うのであれば、検証時間及びコストが大きな問題となる。そこで、実機によるソフトウェアの検証の前段階において、ＨＷ記述言語で記述されたＨＷモデル（仮想上のＨＷ実機を示すモデル）を基に、ソフトウェア検証用のモデルを生成する装置が用いられている。
【０００３】
例えば、特許文献１には、制約条件（信号の入力値等）を利用して、サイクルごとに実行される論理回路を動的に削減したサイクル精度のシミュレーションモデルが開示されている。
【特許文献１】特開２００１−２２８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１に記載された発明においては、サイクル精度であるため、サイクル毎にＨＷの状態を毎回計算する必要があり、また削減できる処理が少ない。さらには、論理回路を動的に削減するためのオーバーヘッドがかかり、シミュレーションを高速で行うことができないという問題を有していた。
【０００５】
本発明は、かかる問題点に鑑みてなされたもので、シミュレーションを高速で実行することが可能なソフトウェア検証用モデルを生成することができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るソフトウェア検証用モデル生成装置は、ソフトウェアの検証に用いるハードウェアモデルを生成するソフトウェア検証用モデル生成装置であって、検証に用いるハードウェアの状態を記憶する場所を指定するコードを生成する記憶コード生成部と、前記検証に用いるハードウェアに対して与えられる入力情報列を基にして、当該検証に用いるハードウェアに対して各入力情報列を入力した場合の当該ハードウェアの動作に対応したハードウェアモデルとして入力情報列モデルを生成する入力情報列モデル生成部と、前記検証に用いるハードウェアに対して入力がないときの当該ハードウェアの動作に対応したハードウェアモデルとして無入力時モデルを生成する無入力時モデル生成部とを備えたことを特徴とする。
【０００７】
また、本発明に係るソフトウェア検証用モデル生成方法は、ソフトウェアの検証に用いるハードウェアモデルを生成するソフトウェア検証用モデル生成方法であって、検証に用いるハードウェアの状態を記憶する場所を指定するコードを生成する記憶コード生成ステップと、前記検証に用いるハードウェアに対して与えられる入力情報列を基にして、当該検証に用いるハードウェアに対して各入力情報列を入力した場合の当該ハードウェアの動作に対応したハードウェアモデルとして入力情報列モデルを生成する入力情報列モデル生成ステップと、前記検証に用いるハードウェアに対して入力がないときの当該ハードウェアの動作に対応したハードウェアモデルとして無入力時モデルを生成する無入力時モデル生成ステップと、前記入力情報列の入力があるときとないときとで、前記入力情報列モデルと前記無入力時モデルとを切り替えて使用することで前記ソフトウェア検証を行うシミュレーション実行ステップとを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、シミュレーションを高速で実行することが可能な検証用モデルを生成することができるソフトウェア検証用モデル生成装置、及びソフトウェア検証用モデル生成方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
次に、図面を参照して、本発明の一実施形態に係るシミュレーションモデル生成装置（ソフトウェア検証用モデル生成装置）について説明する。
【００１０】
（第１実施形態）
図１〜図１１を参照して、本発明の第１実施形態に係るシミュレーションモデル生成装置を説明する。図１は、第１実施形態に係るシミュレーションモデル生成装置１の例を示すブロック図である。このシミュレーションモデル生成装置１は、例えば、ＣＰＵ等の演算部、ＨＤＤ等の記憶部、キーボード等の入力部を有するパーソナルコンピュータ等により実現されるものである。
【００１１】
図１に示すように、シミュレーションモデル生成装置１は、入力情報列モデルを生成する入力情報列モデル生成部１１と、無入力時のモデルを生成する無入力時モデル生成部１２と、記憶場所指定コードを生成する記憶場所指定コード生成部１３とを備える。また、シミュレーションモデル生成装置１は、ＨＤＬ（Hardware Description Language）で記述されたＨＷ（Hardware)のＲＴＬ（Register Transfer Level）モデルを受け付けるＲＴＬモデル受付部１５と、入力情報列を受け付ける入力情報列受付部１４とを備える。ここで、「入力情報列」とは、ある任意の時間内において、どの時刻にどのような信号が、ＨＷに入力されるかを記述したものである。
【００１２】
入力情報列モデル生成部１１は、入力情報列受付部１４にて受け付けた入力情報列、及びＲＴＬモデル受付部１５にて受け付けたＲＴＬモデルから、入力情報列モデルを生成し出力する。また、無入力時モデル生成部１２は、ＲＴＬモデル受付部１５にて受け付けたＲＴＬモデルから無入力時モデルを生成し出力する。記憶場所指定コード生成部１３は、受け付けたＲＴＬモデルからオブジェクト値を記憶する領域を指定するコード（記憶場所指定コード）を生成し出力する。なお、「オブジェクト」とは、ＨＷの状態を表すものであり、レジスタやポートなどを指す。
【００１３】
次に、記憶場所指定コード生成処理について、図２〜図４を参照して説明する。図２は、記憶場所指定コード生成部１３の動作を示すフローチャートである。図３は、ＨＤＬで記述されたＲＴＬモデルの一例を示した図であり、図４は、生成される記憶場所指定コードの一例を示した図である。
【００１４】
図２に示すように、記憶場所指定コード生成部１３は、記憶場所指定コードを生成する記憶場所指定コード生成処理を実行する。ここで、記憶場所指定コードは、オブジェクトの値を保存する場所を、シミュレーション実行時に指定するためのコードであり、例えば、オブジェクトの値を、メインメモリ上のどのアドレスに保存するのか指定するコードである。
【００１５】
記憶場所指定コード生成処理において、記憶場所指定コード生成部１３は、先ず、ＲＴＬモデル受付部１５が受け付けたＲＴＬモデルから、オブジェクトの情報を収集する（ステップＳ１０１）。そして、記憶場所指定コード生成部１３は、収集したオブジェクトの情報を元に、各オブジェクトの値を記憶する場所を、生成する全てのモデルがアクセス可能な場所に確保する記憶場所指定コードを生成する（ステップＳ１０２）。
【００１６】
次に、上記の記憶場所指定コード生成処理を具体的に説明する。上述したように、ステップ１０１において、記憶場所指定コード生成部１３は、ＲＴＬモデルからオブジェクトの情報を抽出する。例えば、図３のＲＴＬモデルにおけるプログラムＡ１〜Ａ６において、enable, rw, clk, clr, in, out, count, en, mode, readyがオブジェクトとして抽出される。ビット幅は、in, out, countが８ビット、それ以外のオブジェクトが１ビットである。そして、ステップＳ１０２において、記憶場所指定コード生成部１３は、各オブジェクトに対して、そのオブジェクトが持ちうる全ての値を記憶できる場所を確保する記憶場所指定コードを生成する。なお、図３のＲＴＬモデルはVerilog-ＨＤＬで記述されているが、本実施形態のシミュレーションモデル生成装置１に入力するＲＴＬモデルは、Verilog-ＨＤＬで記述されたものに限定されない。
【００１７】
上述したステップ１０２において、記憶場所指定コード生成部１３は、収集したオブジェクトの情報を元に、各オブジェクトの値を記憶する場所を、生成する全てのモデルがアクセス可能な場所に確保する記憶場所指定コードを生成する。例えば図４に示すように、図３のenable, rw, clk, clrの場所を確保する記憶場所指定コードがＢ１のように生成され、in, out, count, count_oldの場所を確保する記憶場所指定コードがそれぞれ、Ｂ２, Ｂ３, Ｂ４, Ｂ５のように生成される。また、en, mode, ready, swの場所を確保するコードがＢ６のように生成される。つまり、換言すると、enable, rw, clk, clrの値を記憶する場所を指定するコードがＢ１であり、in, out, count, count_oldの値を記憶する場所を指定するコードがそれぞれ、Ｂ２, Ｂ３, Ｂ４, Ｂ５である。また、en, mode, ready, swの値を記憶する場所を指定するコードがＢ６である。なお、図４に示すコードは、グローバルな変数の宣言コードであり、宣言された変数は全ての関数（モデル）からもアクセスが可能である。また、図４に示す例では、各オブジェクトに対応する変数の宣言により、各オブジェクトの記憶場所を確保しているが、第１実施形態における記憶場所指定コード生成処理により生成される記憶場所指定コードは、他の方法により記憶場所を確保するコードであっても構わない。
【００１８】
次に、入力情報列モデルと無入力時モデルの生成処理について説明する。図５は、入力情報列モデル生成処理を示すフローチャートである。図５に示すように、まず入力情報列モデル生成部１１は、全てのオブジェクトの値を「不明」として初期化する（ステップＳ２０１）。次に、入力情報列モデル生成部１１は、入力される値があるか否かを、入力情報列に基づき判断する（ステップＳ２０２）。ここで、入力情報列モデル生成部１１は、入力される値があると判断すると（ステップＳ２０２，Ｙ）、入力情報列に記述された値を、新しいオブジェクト値として設定する（ステップＳ２０３）。続いて、入力情報列モデル生成部１１は、オブジェクト値の変化を検出し、それにより起こるＨＷ動作の有無を判断する（ステップＳ２０４）。ここで、入力情報列モデル生成部１１は、ＨＷ動作がないと判断した場合（ステップＳ２０４，Ｎ）、再び、ステップＳ２０２の処理を実行する。
【００１９】
一方、入力情報列モデル生成部１１は、ＨＷ動作があると判断した場合（ステップＳ２０４，Ｙ）、ＨＷ動作（具体的にはＨＷ動作を示すプログラムの記述、式、値など。以下同じ。）を抽出する（ステップＳ２０５）。続いて、入力情報列モデル生成部１１は、抽出したＨＷ動作の記述にある式を評価し、その結果を基に定数置換、分岐除去等を行って、抽出したＨＷ動作を簡略化する（ステップＳ２０６）。次に、入力情報列モデル生成部１１は、ステップ２０６によって簡略化したＨＷ動作を、入力情報列が入力された場合に行う動作として登録する（ステップＳ２０７）。続いて、入力情報列モデル生成部１１は、ステップ２０６の評価結果により、値が確定したオブジェクトについて、その値を更新する（ステップＳ２０８）。
【００２０】
そして、入力情報列モデル生成部１１は、ステップＳ２０７で登録したＨＷ動作によって値が変化する可能性のあるオブジェクトが有るか否かを判断する（ステップＳ２０９）。ステップＳ２０９において、入力情報列モデル生成部１１は、該当するオブジェクトがあると判断した場合（ステップＳ２０９，Ｙ）、再び、ステップＳ２０３の処理を実行する。一方、入力情報列モデル生成部１１は、該当するオブジェクトがないと判断した場合（ステップＳ２０９，Ｎ）、再びステップＳ２０２の処理を実行する。
【００２１】
また、入力情報列モデル生成部１１は、上述したステップＳ２０２において、次に行われる入力が無いと判断した場合には（ステップＳ２０２,Ｎ）、ステップＳ２０７で登録したＨＷ動作に、同じオブジェクトへの入力が複数ある場合、最後に行うものだけを残して削除する（ステップＳ２１０）。そして、入力情報列モデル生成部１１は、残ったＨＷ動作をステップＳ２０７で登録した順番に行なうモデルを生成し（ステップＳ２１１）、本フローを終了する。
【００２２】
次に、上述した入力情報列モデル生成処理を具体的に説明する。図６は入力情報列の一例である。プログラムＣ１は、任意の時間においてオブジェクトenableに１が、オブジェクトrwに０が入力されることを示している。また、プログラムＣ２は、オブジェクトclkが１から０に変化するまで時間が経過した後、オブジェクトinに対して任意の値dataが入力されること示している。また、プログラムＣ３は、オブジェクトclkが０から１まで変化するまで時間が経過した後、オブジェクトenableに０が入力されることを示している。
【００２３】
このように入力情報列は、ある任意の（サイクル）時間内において、どの時間にどのような信号が、ＨＷに入力されるかを記述したものである。入力情報列モデル生成部１１は、この入力情報列の情報に基づき入力情報列モデルを生成する。なお、図６に示す入力情報列はVerilog-ＨＤＬで記述されているが、本発明において受け付ける入力情報列は、必ずしもVerilog-ＨＤＬで記述されている必要はない。
【００２４】
上述したように図５に示す手順により入力情報列モデルを生成する場合、入力情報列モデル生成部１１は、まず始めに全てのオブジェクトの値を「不明」とし（ステップＳ２０１）、入力情報列より、次に入力が発生するまで経過する時間と発生する入力を求める。つまり、図６に示すプログラムＣ１のように、enableに１、ｒｗに０を設定する。ｅｎａｂｌｅの値が変化した場合、図３のプログラムＡ１のように表示され、プログラムＡ１に示される情報を抽出する。enableが１なので、プログラムＡ１のenに代入する~enableは０に置き換え簡略化する。
【００２５】
そして、入力情報列モデル生成部１１は、簡略化した動作を入力情報列が入力された場合に起こる動作として登録する。図７は、図３のＲＴＬモデルから図６の入力情報列が入力された場合に起こる動作として登録される動作を示すリストである。プログラムＤ１はプログラムＡ１を簡略化した動作を示すものである。
【００２６】
次にenの値を０に更新する。プログラムＤ１により値が変る可能性があるのはenである。しかし、enの値の変化により起こる動作はないので、入力情報列から次の入力に関する情報を取得する。入力情報列のプログラムＣ２から、negedge clkが発生した後、inにdataが入力されることが分かる。negedge clkの発生はclkに０が入力されることを意味する。そこで、clkの値を０に設定し、clkの値がnegedgeとなる変化により起こる動作として、プログラムＡ２とプログラムＡ３を抽出する。プログラムＡ２の条件式を評価すると、enの値が０であることから条件判定の結果は必ず真である。従って、プログラムＡ２の条件判定は不要であり、削除することができる。また、rwの値は０であることから、modeに入力する値は０で置き換えることができる。条件判定削除とrwを定数０に置き換えて簡略化した動作を登録する。
【００２７】
そして、modeに０を、readyに１を設定する。なお、mode、readyの値の変化によって起こる動作はない。プログラムＡ４は、countの値が不明であるため、式を簡略化することはできない。プログラムＡ４をそのまま動作プログラムＤ３として登録し、countには「不明」を設定する。countの値変化によって起こる動作はないので、次の入力を処理する。inに任意の値dataが入力されると、inには「不明」を設定する。inの値の変化により起こる動作はないため、さらに次の入力を処理する。入力情報列のプログラムＣ３から、posedge clkが発生し、enableに０が入力されることが分かる。posedge clkの発生はclkに１が入力されることを意味する。clkの値を１に設定し、clkの値がposedgeとなる変換により起こる動作として、プログラムＡ３を抽出する。プログラムＡ３の最初の条件式を評価する。readyは１であることから、最初の条件判定の結果は必ず真である。従って、最初の条件式は削除できる。次に２番目の条件式を評価する。modeは０であるため、条件判定の結果は必ず真である。従って、条件式と、条件判定の結果が偽の場合の動作は削除することができる。２つの条件式と、２番目の条件が偽の場合の動作を削除し簡略化した動作としてプログラムＤ４を登録する。プログラムＤ４では、countにはinが入力される。inは「不明」であるからcountに「不明」を設定する。そしてreadyには０を設定する。countとreadyの値の変化により起こる動作はない。
【００２８】
次に入力されるオブジェクトenableに入力値０を設定する。enableの値が変化した場合、プログラムＡ１が起こるので、プログラムＡ１を抽出する。enableが０なので、プログラムＡ１のenに代入する~enableは１に置き換え簡略化する。簡略化した動作を示すプログラムＤ５を入力情報列が入力された場合に起こる動作として登録する。そして、enの値を１に更新する。プログラムＤ５により値が変る可能性があるのはenである。しかし、enの値の変化により起こる動作はない。入力情報列から、これ以上入力はないことが分かる。そこで、登録されているプログラムＤ１,Ｄ２,Ｄ３,Ｄ４,Ｄ５の動作を順に行うモデルを生成する。
【００２９】
図８は生成される入力情報列モデルの例である。プログラムＤ１,Ｄ２,Ｄ３,Ｄ４,Ｄ５の動作を順に行うよう記述されている。また、各オブジェクトの入出力は、記憶場所指定コードで記述されている記憶場所に対して行うようになっている。
【００３０】
次に、図９を参照して、無入力時モデル生成部１２による無入力時モデル生成処理を説明する。まず、無入力時モデル生成部１２は、クロック信号を受けるオブジェクト以外で、外部からの信号を受け取るオブジェクトを不変オブジェクトとして登録する（ステップＳ３０１）。不変オブジェクトとは、クロック以外の外部入力がない無入力時の間、常に値が変化しないオブジェクトである。
【００３１】
続いて、無入力時モデル生成部１２は、新たに登録された不変オブジェクトの有無を確認する（ステップＳ３０２）。ここで、無入力時モデル生成部１２は、新たに登録された不変オブジェクトがあると判断すると（ステップＳ３０２，Ｙ）、不変オブジェクトとして登録されたオブジェクトの値の変化をトリガとして起こるＨＷ動作を、削除対象として抽出する（ステップＳ３０３）。
【００３２】
続いて、無入力時モデル生成部１２は、上記のように抽出されたＨＷ動作により、値が変化する可能性があるオブジェクトを抽出する（ステップＳ３０４）。次に、無入力時モデル生成部１２は、ステップＳ３０４にて抽出されたオブジェクトが、ステップＳ３０３にて抽出された以外のＨＷ動作によって変化する可能性の有無を調べる（ステップＳ３０５）。ここで、無入力時モデル生成部１２は、オブジェクトがＨＷ動作によって変化することがないと判断すると（ステップＳ３０５，Ｎ）、そのオブジェクトを不変オブジェクトとして新たに登録する（ステップＳ３０６）。
【００３３】
続いて、無入力時モデル生成部１２は、ステップＳ３０３にて抽出した削除対象を、削除する（ステップＳ３０７）。一方、ステップＳ３０５にて、無入力時モデル生成部１２は、検出されたオブジェクトがＨＷ動作によって変化すると判断すると（ステップＳ３０５，Ｙ）、ステップＳ３０６を省略し、ステップＳ３０７を実行する。ステップＳ３０７の後、無入力時モデル生成部１２は、再びステップＳ３０２の処理を実行する。
【００３４】
また、ステップＳ３０２にて、無入力時モデル生成部１２は、新たに登録された不変オブジェクトがないと判断すると（ステップＳ３０２,Ｎ）、削除されずに残ったＨＷ動作に対応したモデルを生成する（ステップＳ３０８）。
【００３５】
以下、上述した無入力時モデル生成処理により、無入力時モデルを生成する具体例を説明する。ステップＳ３０１にて、無入力時モデル生成部１２は、clkをクロック信号が入力されるオブジェクトとする。クロック信号以外が入力されるオブジェクトはenable, rw, in, clrである。従って、これらを不変オブジェクトとして登録する。図３のモデルには、enableが変化することで起こるＨＷ動作としてプログラムＡ１が、clrの変化によって起こるＨＷ動作としてプログラムＡ５がある。そこで、この２つを削除対象として抽出する。プログラムＡ１によって値が変化する可能性があるオブジェクトはenである。enは他の動作によって値が変化することはない。従って、enを新しく不変オブジェクトとして登録する。
【００３６】
プログラムＡ５によって変化する可能性のあるオブジェクトはcountとswである。countは、プログラムＡ３、Ａ４によっても変化する可能性がある。従って、countは不変オブジェクトに登録しない。swは他の動作によって変化することはないので、不変オブジェクトに登録する。新たな不変オブジェクトの検出が終了したので、プログラムＡ１、Ａ５を削除する。
【００３７】
新たにenとswが不変値オブジェクトとして登録されているので、enとswの変化によって起きるＨＷ動作の有無を調べる。enの変化によって起こる動作はない。プログラムＡ６はswの変化によって起こるＨＷ動作であるため、削除対象として抽出する。Ａ６によって変化する可能性のあるオブジェクトはcount_oldである。count_oldも、他の処理によって変化することはない。従って、count_oldを不変オブジェクトとして登録する。そして、プログラムＡ６を削除する。今度は新しい不変オブジェクトとしてcount_oldが登録されているので、count_oldの変化によって起こるＨＷ動作の有無を調べる。しかし、count_oldの変化によって起こるＨＷ動作はない。新しく登録された不変オブジェクトはもうないので、削除されずに残った処理を行うモデル（無入力時モデル）を生成する。
【００３８】
図１０に生成される無入力時モデルの例を示す。図３のモデルと比較して、プログラムＡ１、Ａ５、Ａ６が削除されている。また入力情報列モデルと同様に、各オブジェクトの入出力は、記憶場所指定コードで記述されている記憶場所に対して行うように生成される。
【００３９】
入力情報列モデルは入力情報列が入力された場合のＨＷ動作を簡略化または、不要なＨＷ動作について削除したものである。バスプロトコルで定められているバストランザクション処理時の入力記述を、入力情報列として本発明に与えれば、バストランザクション処理にかかる数サイクル分のＨＷ動作を簡略化したモデルを、入力情報列モデルとして生成することができる。また、無入力時モデルは、クロック信号以外の入力がない場合に、必ず起こらないＨＷ動作について、そのＨＷ動作を引き起こすオブジェクト値の変化の検出処理ごと削除したものである。従って、入力情報列の入力時には入力情報列モデルを、無入力時には無入力時モデルを用いることで、サイクル精度のＲＴＬモデルを用いるよりも高速なシミュレーションが可能である。
【００４０】
また、本実施形態により生成される入力情報列モデルと無入力時モデルは、各オブジェクトの値を、同じ場所に入出力する。従って、モデルを切り替える場合に、現在のモデルで計算したオブジェクトの値、すなわちＨＷの状態を次のモデルに渡す特別な処理を必要とせず、より高速にモデル切り替えを行うことができる。
【００４１】
次に、図１１を参照して、入力情報列モデルと無入力時モデルによるシミュレーションの概念を説明する。図１１は入力情報列モデルと無入力時モデルによるシミュレーションの概念図である。
【００４２】
図１１において、時刻Ｔ１は、シミュレーションにおける仮想時間上の任意の時刻であり、時刻Ｔ２は、時刻Ｔ１以降で最初にバストランザクション処理が発生する時刻である。時刻Ｔ３は、時刻Ｔ２において発生したバストランザクション処理が終了する時刻である。時刻Ｔ４は、次のバストランザクション処理が発生する時刻であり、時刻Ｔ５は、時刻Ｔ４で発生したバストランザクション処理が終了する時刻である。時刻Ｔ１〜時刻Ｔ２、時刻Ｔ３〜時刻Ｔ４、そして時刻Ｔ５以降は無入力時である。また、時刻Ｔ２〜時刻Ｔ３、時刻Ｔ４〜時刻Ｔ５をバストランザクション処理時と呼ぶこととする。無入力時モデルＰは、シミュレーションの実行前に生成され、入力情報列モデルＱは、バストランザクション処理時の入力情報列を基に生成される。
【００４３】
シミュレーションにおける仮想時刻Ｔ１〜Ｔ２の間は無入力時である。従って、無入力時モデルＰによってサイクルごとのＨＷの状態を計算する。時刻Ｔ２〜時刻Ｔ３の間はバストランザクション処理時である。従って、使用するモデルを無入力時モデルＰから入力情報列モデルＱに切り替え、時刻Ｔ２におけるＨＷの状態から時刻Ｔ３におけるＨＷの状態を計算する。時刻Ｔ３〜時刻Ｔ４は再び無入力時である。従って、使用するモデルを入力情報列モデルＱから無入力時モデルＰに切り替え、サイクルごとのＨＷの状態を計算する。時刻Ｔ４〜時刻Ｔ５の間は、バストランザクション処理時であるため、使用するモデルを無入力時モデルＰから、入力情報列モデルＱに切り替え、時刻Ｔ４におけるＨＷの状態から時刻Ｔ５におけるＨＷの状態を計算する。時刻Ｔ５以降は無入力時である。使用するモデルを入力情報列モデルＱから無入力時モデルＰに切り替え、サイクルごとのＨＷの状態を計算する。
【００４４】
上記のように第１実施形態の構成を有するシミュレーションモデル生成装置１によれば、入力情報列モデル生成部１１と無入力時モデル生成部１２とによって、シミュレーションを高速で実行することが可能な検証用モデルを生成することができる。すなわち、入力情報列モデル生成部１１によって生成された入力情報列モデルと無入力時モデル生成部１２によって生成された無入力時モデルとを切り替えて用いることで、サイクル精度のモデルを用いるよりも高速なソフトウェア検証を実現することができる。    
【００４５】
また、モデルはＨＷ状態を共有しており、切り替え時にＨＷ状態を受け渡すための特別な処理を必要としないため、切り替え処理にかかる時間を抑えることができる。
【００４６】
なお、図４の記憶場所指定コード例や図８の入力情報列モデル例、図１０の無入力時モデル例はＣ言語で記述されているが、本発明が生成するコードやモデルは、Ｃ言語で記述されたものに限定されない。
【００４７】
（第２実施形態）
次に、本発明の第２実施形態に係るシミュレーションモデル生成装置２について説明する。なお、第２実施形態において、第１実施形態と同一の構成には、同一の符号を付し、その説明を省略する。なお、この第２実施形態においては、入力情報列モデルと無入力時モデル、両モデルの特定状態時モデルを生成する場合について説明する。
【００４８】
図１２は、第２実施形態のシミュレーションモデル生成装置２の構成を示すブロック図である。第２実施形態に係るシミュレーションモデル生成装置２は、第１実施形態の構成に加えてさらに、特定状態時モデル生成部１６、及びオブジェクト値を受け付けるオブジェクト値受付部１７を備える。特定状態時モデル生成部１６は、入力情報列モデル、無入力時モデル、及びオブジェクト値に基づき特定状態時モデルを生成し、出力する。
【００４９】
次に、図１３を参照して、第２実施形態に係るシミュレーションモデル生成装置２の動作を説明する。なお、入力するＲＴＬモデルは、上記図３に示したものであり、入力するオブジェクト初期値は、図１４に示すものとする。
【００５０】
始めに、上記第１実施形態にて説明したように、記憶場所指定コード生成部１１、入力情報列モデル生成部１２、無入力時モデル生成部１３により、記憶場所指定コード、入力情報列モデル、無入力時モデルを生成する。
【００５１】
そして、特定状態時モデル生成部１６は、オブジェクトの値を、与えられた値に設定する（ステップＳ４０１）。次に、特定状態時モデル生成部１６は、任意のオブジェクトの値の変化により起きるＨＷ動作のうちの一つを、簡略化・削除の対象として抽出する（ステップＳ４０２）。続いて、特定状態時モデル生成部１６は、抽出したＨＷ動作に対し、簡略化・削除を行う（ステップＳ４０３）。続いて、特定状態時モデル生成部１６は、未だ簡略化・削除の対象として抽出されていないＨＷ動作が有るか否かを判断する（ステップＳ４０４）。ここで、特定状態時モデル生成部１６は、未だ簡略化・削除の対象として抽出されていないＨＷ動作が有ると判断すると（ステップＳ４０４，Ｙ）、そのＨＷ動作のうち一つを、簡略化・削除の対象として抽出し（ステップＳ４０５）、再度ステップＳ４０３の処理を実行する。一方、特定状態時モデル生成部１６は、未だ簡略化・削除の対象として抽出されていないＨＷ動作が無いと判断すると（ステップＳ４０４，Ｎ）、本フローを終了する。
【００５２】
次に、上記特定状態時モデル生成処理により特定状態時モデル生成部１６によって図１５に示す無入力時の特定状態時モデルが生成される例について具体的に説明する。
【００５３】
まず、特定状態時モデル生成部１６は、図１４に示すオブジェクトの初期値を設定する。図１４における、プログラムＧ１は、オブジェクトenの初期値が１であることを示し、プログラムＧ２は、オブジェクトreadyの初期値が０であることを示している。つまり、オブジェクトenの値を１、オブジェクトreadyの値を０に設定している。記述のない他のオブジェクトについては、値を「不明」とする。
【００５４】
そして、任意のＨＷ動作について、設定したオブジェクト値を使って評価を行っていく。まず、図１０に示す無入力時モデルのプログラムＦ１に注目する。プログラムＦ１の条件式をen==０として評価すると、偽となる。従って、真の場合の処理は削除する。この削除により、プログラムＦ１で実行すべき処理は全て削除されるので、条件判定を含めプログラムＦ１の動作を全て削除する。次に図１０に示す無入力時モデルのプログラムＦ２に注目する。プログラムＦ２の最初の条件式をready==１として評価すると、偽となる。従って、真の場合の処理は削除する。この削除により、プログラムＦ２で実行すべき処理は全て削除されるので、条件判定を含めプログラムＦ２の動作を全て削除する。
【００５５】
最後に図１０に示す無入力時モデルのプログラムＦ３に注目する。プログラムＦ３の処理は、en, readyの値に関係なく実行される処理である。また、en, readyは処理に用いられないので簡略化もできない。従って、プログラムＦ３はそのまま残す。以上により、全てのＨＷ動作について評価を行ったので、残った処理を行うモデルを、特定状態時モデルとして生成する。生成する無入力時の特定状態時モデルは、例えば図１５に示すようになる。図１５に示す無入力時の特定状態モデルは、図１０に示す無入力時のモデルにおけるプログラムＦ１，Ｆ２のＨＷ動作が削除されたものとなっている。また、図１０のモデルと同様に、各オブジェクトの入出力は、記憶場所指定コードで記述されている記憶場所に対して行うように生成される。
【００５６】
次に、入力情報列の特定状態時モデルを生成する場合について説明する。図１０の入力情報列モデルの特定状態時モデルを生成する場合も、図１３に示した特定状態時モデル生成処理にて、無入力時モデルの場合と同様に、まずオブジェクトの初期値を設定する。ここでも、図１４に示されているオブジェクト初期値が与えられたとする。enの値を１、readyの値を０に設定する。記述のない他のオブジェクトについては、値を「不明」とする。そして、任意のＨＷ動作について、設定したオブジェクト値を使って評価を行っていく。
【００５７】
入力情報列に記述された入力が与えられた際に起きるＨＷ動作プログラムＥ１（図８）において、まず、プログラムＥ２に注目する。プログラムＥ２は、en, readyの値に関係なく実行される処理を示す。また、en, readyは、処理に用いられないので簡略化もできない。従って、プログラムＥ２は、そのまま残す。次に、プログラムＥ３に注目する。プログラムＥ３もプログラムＥ２と同様に、en, readyの値に関係なく実行される処理である。また、en, readyは、処理に用いられないので簡略化もできない。従って、プログラムＥ３もそのまま残す。
【００５８】
次に、プログラムＥ４に注目する。プログラムＥ４は、オブジェクトreadyに対し、初期値と同じ０を入力する処理を示す。従って、プログラムＥ４は、不要であるので削除する。最後にプログラムＥ５に注目する。プログラムＥ５は、オブジェクトenに対し、初期値と同じ１を入力する動作である。従って、プログラムＥ５の処理は不要なので削除する。
【００５９】
以上により、プログラムＥ１の全ての処理内容について評価を行ったので、残った処理を行うモデルを特定状態時モデルとして生成する。図１６は、生成された入力情報列入力時の特定状態時モデルの例である。図１６の入力情報列入力時の特定状態時モデルは、図８のモデルと比較すると、プログラムＥ４，Ｅ５にあったenとreadyへの代入式が削除されている。
【００６０】
図１５に示した無入力時の特定状態モデルと同様に、図１６に示す入力情報列入力時の特定状態モデルにおいて、各オブジェクトの入出力は、記憶場所指定コードで記述されている記憶場所に対して行うように生成されている。
【００６１】
次に、特定状態時モデルによるシミュレーションの概念を説明する。図１７は特定状態時モデルによるシミュレーションの概念図である。時刻Ｔ１’はシミュレーションにおける仮想時間上の任意の時刻であり、時刻Ｔ２’は、時刻Ｔ１’以降で最初にバストランザクション処理が発生する時刻である。時刻Ｔ３’は、時刻Ｔ２’において発生したバストランザクション処理が終了する時刻である。時刻Ｔ４’は、次のバストランザクション処理が発生する時刻であり、時刻Ｔ５’は、時刻Ｔ４’で発生したバストランザクション処理が終了する時刻である。時刻Ｔ１’から時刻Ｔ２’、時刻Ｔ３’から時刻Ｔ４’、そして時刻Ｔ５’以降は無入力時である。また、時刻Ｔ２’から時刻Ｔ３’、時刻Ｔ４’から時刻Ｔ５’をバストランザクション処理時と呼ぶこととする。また、時刻Ｔ１’から時刻Ｔ２’において、ＨＷのあるオブジェクトregAの値は０であり、時刻Ｔ３’以降において、regAの値は１であるとする。符号Ｐ’１は無入力時におけるregAの値が０であることを前提とした特定状態時モデルであり、符号Ｑ’１はバストランザクション処理時のregAの値が０であることを前提とした特定状態時モデルである。符号Ｐ’２は無入力時におけるregAの値が１であることを前提とした特定状態時モデルであり、符号Ｑ’２はバストランザクション処理時のregAの値が１であることを前提とした特定状態時モデルである。
【００６２】
上記のように、シミュレーションにおける仮想時刻Ｔ１’からＴ２’の間は無入力時であり、この間のregAの値は０である。従って、特定状態時モデルＰ’１によってサイクルごとのＨＷの状態を計算する。時刻Ｔ２’から時刻Ｔ３’の間はバストランザクション処理時であり、時刻Ｔ２’におけるregAの値は０である。従って、使用するモデルを特定状態時モデルＰ’１から、特定状態時モデルＱ’１に切り替え、時刻Ｔ２’におけるＨＷの状態から時刻Ｔ３’におけるＨＷの状態を計算する。時刻Ｔ３’から時刻Ｔ４’の間は無入力時であり、regAの値は１である。従って、使用するモデルを特定状態時モデルＰ’２に切り替え、サイクルごとのＨＷの状態を計算する。時刻Ｔ４’から時刻Ｔ５’の間は、バストランザクション処理時でありregAの値は１である。使用するモデルを特定状態時モデルＰ’２から特定状態時モデルＱ’２に切り替え、時刻Ｔ４’におけるＨＷの状態から時刻Ｔ５’におけるＨＷの状態を計算する。時刻Ｔ５’以降は再び無入力時でありregAの値は１である。使用するモデルを特定状態時モデルＰ’２から特定状態時モデルＱ’２に切り替え、サイクルごとのＨＷの状態を計算する。
【００６３】
特定状態時モデルは、オブジェクト値が特定の値であることを前提として、入力情報列モデル、または無入力状態時モデルから、さらにＨＷ動作を簡略化、削除したモデルである。従って、シミュレーション実行中にオブジェクト値が、特定状態時モデル生成に使用したオブジェクト初期値と同じになった場合、特定状態時モデルを使用することで、より高速にシミュレーションを行うことができる。また、第２実施形態において生成される特定状態時モデルは、各オブジェクトの値を、入力情報列モデルや無入力時モデルと同じ場所に入出力する。従って、モデルを切り替える場合に、現在のモデルで計算したオブジェクトの値、すなわちＨＷの状態を次のモデルに渡す特別な処理を必要とせず、より高速にモデル切り替えを行うことができる。
【００６４】
なお、図１５、図１６の特定状態時モデル例はＣ言語で記述されているが、本発明が生成するモデルは、Ｃ言語で記述されたものに限定されない。
【００６５】
（第３実施形態）
次に、図１８を参照して、本発明の第３実施形態に係るシミュレーションモデル生成装置３を説明する。なお、第１及び第２実施形態と同一の構成には同一符号を付し、その説明を省略する。シミュレーションモデル生成装置３は、略第１実施形態と同様の構成を有する。第３実施形態のシミュレーションモデル生成装置３の第１実施形態と異なる箇所は、一般項化モデル生成部１８、及び一般項化パターンを受け付ける一般項化パターン受付部１９を備えている点である。一般項化モデル生成部１８は、一般項化パターン受付部１９にて受け付けた一般項化パターン、及び無入力時モデル生成部１２にて生成した無入力時モデルに基づき一般項化モデルを生成し出力する。
【００６６】
次に、図１９を参照して、一般項化モデル生成部１８による一般項化モデル生成処理を説明する。
【００６７】
初めに、第１実施形態にて示した説明したように、記憶場所指定コード生成部１３、入力情報列モデル生成部１１、無入力時モデル生成部１２により、記憶場所指定コード、入力情報列モデル、無入力時モデルを生成する。そして、一般項化モデル生成部１８は、一般項化モデルを生成する。先ず、無入力時モデル生成部１２は、任意のオブジェクトの値の変化により起こるＨＷ動作のうちの一つを、一般項化の対象として抽出する（ステップＳ５０１）。
【００６８】
次に、無入力時モデル生成部１２は、ステップＳ５０１にて抽出したＨＷ動作を表す式とパターンのマッチングを行ない、式のパターンを求める（ステップＳ５０２）。続いて、無入力時モデル生成部１２は、ステップＳ５０１にて抽出したＨＷ動作を表した式を、ステップＳ５０２にて求めたパターンに対応した一般項に置き換える（ステップＳ５０３）。次に、無入力時モデル生成部１２は、これまでに一般項化対象として抽出されていないＨＷ動作が有るか否かを判断する（ステップＳ５０４）。ここで、無入力時モデル生成部１２は、抽出していないＨＷ動作があると判断すると（ステップＳ５０４，Ｙ）、これまでに一般項化対象として抽出されていない処理の一つを、一般項化対象として抽出し（ステップＳ５０５）、再びステップＳ５０２の処理を実行する。一方、無入力時モデル生成部１２は、抽出していないＨＷ動作がないと判断すると（ステップＳ５０４，Ｎ）、本処理を終了させる。
【００６９】
次に、図２０〜図２３を参照して、図２０に示すＲＴＬモデルと、図２１に示す一般項化パターンが入力された場合の一般項化モデル生成処理を具体的に説明する。また、ここで、図２２は、図２０に示すＲＴＬモデルが入力された際の無入力時モデルの例を示すものであり、図２３は、図２２に示す無入力モデル、及び図２１に示す一般項化パターンに基づき生成される一般項化モデルを示すものである。
【００７０】
図２１に示す一般項化パターンにおけるプログラムＩ１はパターンであり、プログラムＩ２は、プログラムＩ１のパターンに当てはまる式と置き換える一般項である。図２１に示す、$reg_aは任意のオブジェクトであり、$Cは定数を示す。同様にプログラムＩ３もパターンであり、プログラムＩ４はプログラムＩ３のパターンに当てはまる式と置き換える一般項である。
【００７１】
次に、図２２に示す無入力状態時モデルに記述された式を順番に一般項化していく、具体例を説明する。まず、図１８に示すプログラムＪ１に着目する。プログラムＨ１のbegin-endブロック内の式を解析すれば、"オブジェクト<=オブジェクト+定数"の形であることがわかる。この情報を基に、プログラムＪ２と図２１に示す入力されたパターンと照らし合わせる。まず、プログラムＪ１とプログラムＩ１とを照らし合わせた場合、プログラムＩ１のbegin-endブロック内の式は、"オブジェクト<=オブジェクト×定数"であるため、プログラムＪ１はプログラムＩ１に当てはまらないことがわかる。
【００７２】
次にプログラムＪ１とプログラムＩ３とを照らし合わせる。プログラムＩ３のbegin-endブロック内の式は、"オブジェクト<=オブジェクト+定数"であり、プログラムＪ１と同じである。従って、プログラムＪ１はプログラムＩ３のパターンであることがわかる。
【００７３】
すなわち、$reg_aはcountであり、$Cは１である。プログラムＩ３のパターンであるプログラムＪ１は、プログラムＩ４を基に、図２３に示すプログラムＫ１の様に一般項化して置換する。
【００７４】
そして、これらの処理の後、プログラムＪ２に着目する。プログラムＪ２は”オブジェクト<=オブジェクト×定数”の式を持つ。これはプログラムＩ１に当てはまる。プログラムＩ１のパターンと判断されたプログラムＪ２は、プログラムＩ２を基に、プログラムＫ２の様に一般項化し置換する。
【００７５】
以上で全てのＨＷ動作を表す式について一般項化を行ったので、図２３に示す例のように、一般項化された式を持つモデルを生成する。一般項化モデルにおける、各オブジェクトの入出力は、記憶場所指定コードで記述されている記憶場所に対して行うように生成される。
【００７６】
次に、図２４を参照して、入力情報列モデルと一般項化モデルによるシミュレーションの概念を説明する。
【００７７】
ここで、図２４において、時刻Ｔ１’’はシミュレーションにおける仮想時間上の任意の時刻であり、時刻Ｔ２’’は、時刻Ｔ１’’以降で最初にバストランザクション処理が発生する時刻である。時刻Ｔ３’’は、時刻Ｔ２’’において発生したバストランザクション処理が終了する時刻である。時刻Ｔ４’’は、次のバストランザクション処理が発生する時刻であり、時刻Ｔ５’’は、時刻Ｔ４’’で発生したバストランザクション処理が終了する時刻である。時刻Ｔ１’’から時刻Ｔ２’’、時刻Ｔ３’’から時刻Ｔ４’’、そして時刻Ｔ５’’以降は無入力時である。また、時刻Ｔ２’’から時刻Ｔ３’’、時刻Ｔ４’’から時刻Ｔ５’’をバストランザクション処理時と呼ぶこととする。また、図２４において、符号Ｐ’’は一般項化モデルであり、符号Ｑ’’はバストランザクション処理時の入力情報列を基に生成された入力情報列モデルである。
【００７８】
シミュレーションにおける仮想時刻Ｔ１’’からＴ２’’の間は無入力時である。従って、一般項化モデルＰ’’を使用するモデルとして選択する。一般項化モデルＰ’’は、時刻Ｔ１’’のＨＷ状態から、時刻Ｔ２’’におけるＨＷの状態を計算する。時刻Ｔ’’から時刻Ｔ３’’の間は、バストランザクション処理時である。従って、使用するモデルを一般項化モデルＰ’’から、入力情報列モデルＱ’’に切り替え、時刻Ｔ２’’におけるＨＷの状態から時刻Ｔ３’’におけるＨＷの状態を計算する。時刻Ｔ３’’から時刻Ｔ４’’は再び無入力時である。従って、使用するモデルを入力情報列モデルＱ’’から一般項化モデルＰ’’に切り替える。一般項化モデルＰ’’は、時刻Ｔ３’’におけるＨＷの状態から、時刻Ｔ４’’におけるＨＷの状態を計算する。時刻Ｔ４’’から時刻Ｔ５’’の間は、バストランザクション処理時であるため、使用するモデルを一般項化モデルＰ’’から、入力情報列モデルＱ’’に切り替え、時刻Ｔ４’’におけるＨＷの状態から時刻Ｔ５’’におけるＨＷの状態を計算する。時刻Ｔ５’’以降は無入力時である。使用するモデルを入力情報列モデルＱ’’から、一般項化モデルＰ’’に切り替える。一般項化モデルＰ’’は、時刻Ｔ５’’以降に無入力時が終了した場合、時刻Ｔ５’’のＨＷ状態から、無入力時終了時点でのＨＷ状態を計算する。
【００７９】
上述したように第３実施形態に係るシミュレーションモデル生成装置３によれば、一般項化モデルは、経過時間を与え、式を一度計算するだけで、無入力状態終了時のオブジェクトの値を求めることができる。従って、無入力状態時モデルのように、サイクルごとにオブジェクト値を計算する必要がなく、一般項化モデルを用いることで、無入力状態時モデルを用いるよりも、さらに高速なシミュレーションが可能となる。また、一般項化モデルと、バスプロトコルで定められているバストランザクション処理時の入力記述を、入力情報列として生成した入力情報列モデルとを切り替えて用いることで、トランザクション精度のシミュレーションが可能となる。
【００８０】
第３実施形態に係るシミュレーションモデル生成装置３で生成される一般項化モデルは、各オブジェクトの値を、入力情報列モデルと同じ場所に入出力する。従って、モデルを切り替える場合に、現在のモデルで計算したオブジェクトの値、すなわちＨＷの状態を次のモデルに渡す特別な処理を必要とせず、より高速にモデル切り替えを行うことができる。
【００８１】
なお、図２３の一般項化モデル例は、Ｃ言語で記述されているが、本発明が生成するモデルは、Ｃ言語で記述されたものに限定されない。
【００８２】
なお、上述した各実施の形態においては、記憶場所指定コード生成処理を実行するタイミングについて特に言及していないが、そのタイミングは、シミュレーションにおいて記憶場所指定コードを使用する前までであればいつであってもよく、モデルの生成前であってもモデルの生成後であってもよい。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１実施形態に係るシミュレーションモデル生成装置１のブロック構成図である。
【図２】本発明の第１実施形態に係るシミュレーションモデル生成装置１における記憶場所指定コード生成処理を示すフローチャートである。
【図３】本発明の第１実施形態のＲＴＬモデル受付部１５により受け付けるＨＤＬで記述されたＲＴＬモデルの一例を示す図である。
【図４】本発明の第１実施形態に係る記憶場所指定コード生成部１３により生成される記憶場所指定コードの一例を示す図である。
【図５】本発明の第１実施形態に係るシミュレーションモデル生成装置１における入力情報列モデル生成処理を示すフローチャートである。
【図６】本発明の第１実施形態の入力情報列モデル受付部１４により受け付ける入力情報列の一例を示す図である。
【図７】本発明の第１実施形態の入力情報列モデル生成部１１により抽出される入力情報列の入力時のＨＷ動作の一例を示す図である。
【図８】本発明の第１実施形態の入力情報列モデル生成部１１により生成される入力情報列モデルの一例を示す図である。
【図９】本発明の第１実施形態に係るシミュレーションモデル生成装置１における無入力時モデル生成処理を示すフローチャートである。
【図１０】本発明の第１実施形態の無入力時モデル生成部１２により生成される無入力時モデルの一例を示す図である。
【図１１】本発明の第１実施形態に係るシミュレーションモデル生成装置１における入力情報列モデルと無入力時モデルによるシミュレーションの概念図である。
【図１２】本発明の第２実施形態に係るシミュレーションモデル生成装置２のブロック構成図である。
【図１３】本発明の第２実施形態に係るシミュレーションモデル生成装置１における特定状態時モデル生成処理を示すフローチャートである。
【図１４】本発明の第２実施形態のオブジェクト値受付部１７に受け付けるオブジェクト値の初期値の一例を示す図である。
【図１５】本発明の第２実施形態の特定状態時モデル生成部１６により生成される、無入力状態時の特定状態時モデルの一例を示す図である。
【図１６】本発明の第２実施形態の特定状態時モデル生成部１６により生成される、入力情報列入力時の特定状態時モデルの一例を示す図である。
【図１７】本発明の第２実施形態のシミュレーションモデル生成装置２による特定状態時モデルにおけるシミュレーションの概念図である。
【図１８】本発明の第３実施形態に係るシミュレーションモデル生成装置３のブロック構成図である。
【図１９】本発明の第３実施形態に係るシミュレーションモデル生成装置３における一般項化モデル生成処理を示すフローチャートである。
【図２０】本発明の第３実施形態のＲＴＬモデル受付部１５により受け付けるＲＴＬモデルの一例を示す図である。
【図２１】本発明の第３実施形態の一般項化パターン受付部１９により受け付ける一般項化パターンの一例を示す図である。
【図２２】本発明の第３実施形態の無入力時モデル生成部１２により生成する無入力時モデルの一例を示す図である。
【図２３】本発明の第３実施形態の一般項化モデル生成部１９により生成する一般項化モデルの一例を示す図である。
【図２４】本発明の第３実施形態のシミュレーションモデル生成装置３による入力情報列モデルと一般項化モデルによるシミュレーションの概念図である。
【符号の説明】
【００８４】
１，２，３…シミュレーションモデル生成装置、１１…入力情報列モデル生成部、１２…無入力時モデル生成部、１３…記憶場所指定コード生成部、１４…入力情報列受付部、１５…ＲＴＬモデル受付部、１６…特定状態時モデル生成部、１７…オブジェクト値受付部、１８…一般項化モデル生成部、１９…一般項化パターン受付部。
【図１】
2008129914.tif 000003
【図２】
2008129914.tif 000004
【図３】
2008129914.tif 000005
【図４】
2008129914.tif 000006
【図５】
2008129914.tif 000007
【図６】
2008129914.tif 000008
【図７】
2008129914.tif 000009
【図８】
2008129914.tif 000010
【図９】
2008129914.tif 000011
【図１０】
2008129914.tif 000012
【図１１】
2008129914.tif 000013
【図１２】
2008129914.tif 000014
【図１３】
2008129914.tif 000015
【図１４】
2008129914.tif 000016
【図１５】
2008129914.tif 000017
【図１６】
2008129914.tif 000018
【図１７】
2008129914.tif 000019
【図１８】
2008129914.tif 000020
【図１９】
2008129914.tif 000021
【図２０】
2008129914.tif 000022
【図２１】
2008129914.tif 000023
【図２２】
2008129914.tif 000024
【図２３】
2008129914.tif 000025
【図２４】
2008129914.tif 000026