(57)【要約】      （修正有）【課題】シミュレーション実行時、状態内の条件分岐文の実行状況を動作レベル記述のソース行で表示可能とする装置と方法の提供。【解決手段】動作レベル記述を含むソースファイル１０を入力し、動作レベル記述から有限状態マシン（ＦＳＭ）構造を含むシミュレーションモデルを生成するシミュレーションモデル生成部１１は、状態内の条件分岐文に対応させて識別情報（分岐ＩＤ）を付与したシミュレーションモデル１２を生成し、動作レベル記述ソース行−分岐ＩＤ対応表１３を生成する。シミュレーションモデルを入力しシミュレーションを行うシミュレータ１４と、シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出し、動作レベル記述ソース行−分岐ＩＤ対応表１３から、抽出した分岐ＩＤに対応する動作レベル記述のソース行番号を取得し、取得した行番号の動作レベル記述のソース行を他の行と区別がつく形態で表示装置１６に表示するように制御するシミュレーションモニタ１５を備える。【選択図】図１
2006099678.tif 000002
【特許請求の範囲】
【請求項１】
複数行からなる動作レベル記述を含むソースファイルを入力し、前記動作レベル記述から有限状態マシン構造を含むシミュレーションモデルを生成する合成部と、
前記シミュレーションモデルの状態内の条件分岐文に対応させて識別情報（「分岐ＩＤ」という）を付与する分岐ＩＤ管理付与部と、
を備えている、ことを特徴とするシミュレーションモデル生成装置。
【請求項２】
前記分岐ＩＤと、前記動作レベル記述のソースの行番号との対応関係を表形式で生成する表作成部を備えている、ことを特徴とする請求項１記載のシミュレーションモデル生成装置。
【請求項３】
前記分岐ＩＤ管理付与部は、前記条件分岐文の前記条件が成立した場合の分岐先、及び／又は、前記条件が非成立の場合の分岐先に、分岐ＩＤを割当てる、ことを特徴とする請求項１記載のシミュレーションモデル生成装置。
【請求項４】
前記分岐ＩＤ管理付与部は、前記条件分岐文を含まない状態に対して１つの分岐ＩＤを付与する、ことを特徴とする請求項１記載のシミュレーションモデル生成装置。
【請求項５】
前記シミュレーションモデルに付与される分岐ＩＤは、前記シミュレーションモデルの実行時、前記分岐ＩＤが挿入された箇所が実行されるたびに、前記分岐ＩＤが追加格納される記憶構造として定義されている、ことを特徴とする請求項１記載のシミュレーションモデル生成装置。
【請求項６】
複数行からなる動作モデル記述から動作合成され有限状態マシン構造を含むシミュレーションモデルであって、状態内の条件分岐文に対応して識別情報（「分岐ＩＤ」という）が付与されたシミュレーションモデルを入力しシミュレーションを実行するシミュレータと、
前記分岐ＩＤと、前記動作レベル記述のソースの行番号との対応関係を記憶した記憶部と、
前記シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出し、前記記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出した分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得し、前記複数行からなる動作モデル記述のソースを出力装置に出力するにあたり、前記取得した行番号の前記動作レベル記述のソース行を、他の行と区別がつく形態で出力する制御部と、
を備えている、ことを特徴とするシミュレーション装置。
【請求項７】
シミュレーションの実行を停止させるブレークポイントをなす分岐ＩＤを記憶するブレーク分岐ＩＤ記憶部をさらに備え、
前記制御部は、シミュレーションの実行時、前記抽出された分岐ＩＤが、前記ブレーク分岐ＩＤ記憶部に記憶されている分岐ＩＤと一致したものであるか比較判定し、一致している場合には、前記シミュレーションの実行を停止するように制御する、ことを特徴とする請求項６記載のシミュレーション装置。
【請求項８】
シミュレーションの実行時、前記分岐ＩＤが抽出されるたびに、前記抽出された分岐ＩＤの実行回数を累積した値を分岐ＩＤ毎に保持する分岐ＩＤ累積部をさらに備え、
前記制御部は、前記記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得するとともに、前記分岐ＩＤ累積部より前記分岐ＩＤに対応する実行回数を取得し、前記取得した行番号の動作レベル記述のソース行に対応させて前記実行回数を前記出力装置に出力する、ことを特徴とする請求項６記載のシミュレーション装置。
【請求項９】
複数行からなる動作レベル記述のソースファイルを記憶した第１の記憶部と、
前記動作レベル記述のソースの行番号との対応関係を記憶するための第２の記憶部と、
前記第１の記憶部より前記動作レベル記述のソースファイルを入力し、前記動作レベル記述から有限状態マシン構造を含むシミュレーションモデルを生成する合成部と、前記合成部によって生成された前記シミュレーションモデルの状態内の条件分岐文に対応させて識別情報（「分岐ＩＤ」という）を付与する分岐ＩＤ管理付与部と、前記分岐ＩＤと前記動作レベル記述のソースの行番号との対応関係を表形式で生成して前記第２の記憶部に格納する表作成部と、を含むシミュレーションモデル生成部と、
前記分岐ＩＤが付与された前記シミュレーションモデルを入力してシミュレーションを実行するシミュレータと、
前記シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出し、前記第２の記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述の行番号との対応関係から、前記抽出した分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得し、前記複数行からなる動作モデル記述のソースを出力装置に出力するにあたり、前記取得した行番号の動作レベル記述のソース行を、他の行と区別がつく形態で出力する制御を行うシミュレーションモニタと、
を備えている、ことを特徴とするシミュレーション・システム。
【請求項１０】
前記シミュレーションモデルに付与される分岐ＩＤは、前記シミュレーションモデルの実行時、前記分岐ＩＤが挿入された箇所が実行されるたびに、前記分岐ＩＤが追加格納される記憶構造として定義されている、ことを特徴とする請求項９記載のシミュレーション・システム。
【請求項１１】
シミュレーションの実行を停止させるブレークポイントをなす分岐ＩＤを記憶するブレーク分岐ＩＤ記憶部をさらに備え、
前記シミュレータによるシミュレーションの実行時、前記シミュレーションモニタは、前記抽出された分岐ＩＤが、前記ブレーク分岐ＩＤ記憶部に記憶されている分岐ＩＤと一致したものであるか比較判定し、一致している場合には、前記シミュレータによるシミュレーションの実行を停止するように制御する、ことを特徴とする請求項９記載のシミュレーション・システム。
【請求項１２】
シミュレーションの実行時、前記分岐ＩＤが抽出されるたびに、前記分岐ＩＤの実行回数を累積した値を分岐ＩＤ毎に保持する分岐ＩＤ累積部をさらに備え、
前記シミュレーションモニタは、前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得するとともに、前記分岐ＩＤ累積部より前記分岐ＩＤに対応する実行回数を取得し、前記取得した行番号の動作レベル記述のソース行に対応させて、前記実行回数を前記出力装置に出力する、ことを特徴とする請求項９記載のシミュレーション・システム。
【請求項１３】
コンピュータを用いてシミュレーションモデルを生成する方法であって、
複数行よりなる動作レベル記述を含むソースファイルを記憶した記憶部より動作レベル記述を入力して動作合成し、有限状態マシン構造を含むシミュレーションモデルを生成する工程と、
前記生成されたシミュレーションモデルの状態内の条件分岐文に対応させて識別情報（「分岐ＩＤ」という）を付与する工程と、
を含む、ことを特徴とするシミュレーションモデル生成方法。
【請求項１４】
前記分岐ＩＤと、前記動作レベル記述のソースの行番号との対応関係を表形式で生成し記憶部に格納する工程を含む、ことを特徴とする請求項１３記載のシミュレーションモデル生成方法。
【請求項１５】
複数行からなる動作モデル記述から動作合成され有限状態マシン構造を含むシミュレーションモデルであって、状態内の条件分岐文に対応して識別情報（「分岐ＩＤ」という）が付与されたシミュレーションモデルを入力してシミュレーションを実行する工程と、
前記シミュレータの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出する工程と、
分岐ＩＤと動作レベル記述のソース行番号との対応を記憶した記憶部を参照して、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソースの行番号を取得する工程と、  前記複数行の動作レベル記述のソースを出力装置に出力するにあたり、前記行番号に対応する前記動作レベル記述のソース行を、他の行と区別がつく形態で出力する工程と、
を含む、ことを特徴とするシミュレーション方法。
【請求項１６】
シミュレーションの実行を停止させるブレークポイントをなす分岐ＩＤを記憶部に予め設定しておき、
シミュレーションの実行時、前記抽出された分岐ＩＤが、前記ブレークポイントとして記憶されている分岐ＩＤと一致したものであるか比較判定し、一致している場合には、前記シミュレーションの実行を停止するように制御する工程を含む、ことを特徴とする請求項１５記載のシミュレーション方法。
【請求項１７】
シミュレーションの実行時、前記分岐ＩＤが抽出されるたびに、前記分岐ＩＤの実行回数を累積し、
前記記憶部に記憶されている、前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得するとともに、前記分岐ＩＤに対応する実行回数を取得し、前記取得した行番号の動作レベル記述のソースに対応させて前記実行回数を表示する、ことを特徴とする請求項１５記載のシミュレーション方法。
【請求項１８】
複数行よりなる動作レベル記述を含むソースファイルを記憶した記憶部を備えたコンピュータに、
前記記憶部より前記ソースファイルを入力し、前記動作レベル記述から、有限状態マシン構造を含むシミュレーションモデルを生成する処理と、
前記生成されたシミュレーションモデルの状態内の条件分岐に識別情報（「分岐ＩＤ」という）を付与する処理と、
を実行させるプログラム。
【請求項１９】
請求項１８記載のプログラムにおいて、
前記分岐ＩＤと、前記動作レベル記述のソースの行番号との対応関係を表形式で生成する処理を、前記コンピュータに実行させるプログラム。
【請求項２０】
複数行からなる動作モデル記述から動作合成され有限状態マシン構造を含むシミュレーションモデルであって、状態内の条件分岐文に対応して識別情報（「分岐ＩＤ」という）が付与されたシミュレーションモデルを記憶した第１の記憶部と、
前記シミュレーションモデルの前記分岐ＩＤと、前記動作レベル記述のソース行番号との対応を記憶した第２の記憶部と、を少なくとも含む記憶装置と、
出力装置と、を備えたコンピュータに、
前記第１の記憶部から前記シミュレーションモデルを入力してシミュレーションを行う処理と、
前記シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態内の分岐ＩＤを抽出する処理と、
前記第２の記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述のソース行番号の対応関係から、前記抽出した分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得する処理と、
前記複数行からなる動作モデル記述のソースを前記出力装置に出力するにあたり、前記取得した行番号に対応する前記動作レベル記述のソース行を、他の行と区別がつく形態で出力する処理と、
を実行させるプログラム。
【請求項２１】
請求項２０記載のプログラムにおいて、
シミュレーションの実行を停止させるブレークポイントをなす分岐ＩＤを予めブレーク分岐ＩＤ記憶部に設定しておき、
シミュレーションの実行時、前記抽出された分岐ＩＤが、前記ブレークポイントとして前記ブレーク分岐ＩＤ記憶部に記憶されている分岐ＩＤと一致したものであるか比較判定し、一致している場合には、前記シミュレーションの実行を停止するように制御する処理を、前記コンピュータに実行させるプログラム。
【請求項２２】
請求項２０記載のプログラムにおいて、
シミュレーションの実行時、前記分岐ＩＤが抽出されるたびに、前記分岐ＩＤの実行回数を分岐ＩＤごとに累積する処理と、
前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得するとともに、前記分岐ＩＤに対応する実行回数を取得し、前記取得した行番号の動作レベル記述のソース行に対応させて、前記実行回数を前記出力装置に出力する処理を、前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路のシミュレーション技術に関し、特に、動作レベル記述を動作合成してシミュレーションモデルを作成する方法と装置並びにコンピュータプログラム並びにシミュレーションモデルを用いてシミュレーションを実行する方法と装置並びにコンピュータプログラムに関する。
【背景技術】
【０００２】
ハードウェア記述として動作レベル記述（アルゴリズム記述）を用い、動作レベル記述よりなるソースファイルを入力して動作合成し、有限状態遷移マシン（Finite  State  Machine）／データパスモデル記述、及び、変数／レジスタ／状態位置対応表、動作レベル記述のソース行／状態位置対応表を作成しシミュレーションモデルとして作成し、クロックレベルシミュレーションを行う技術が、本願出願人によって提案されている（例えば特許文献１参照）。
【０００３】
この特許文献１には、状態遷移が起こったら、現在の状態位置を取得し、行情報テーブルから状態位置に対応するソース行を取得し、実行表示ウインドウ等のＧＵＩ（Graphical User Interface）上でソース行を、図１８に示すように、ハイライト表示（あるいは輝度反転）することで、動作レベル記述上での現在の実行位置を示すことができるような構成が開示されている。また動作レベル記述から、有限状態マシン（Finite  State  Machine）／データパスモデル記述の作成、動作レベル記述のソース行／状態位置対応表の作成等については、本願出願人による後記特許文献２の記載も参照される。
【０００４】
【特許文献１】特開２００１−１０９７８８号公報（第９図、第１１図）
【特許文献２】特開２００３−６７４３８号公報（第２図、第５図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１、２等に記載された方法のように、動作レベル記述を含むハードウェア記述のシミュレーションにおいて、シミュレーション実行状況と、動作レベル記述ソースとの対応を利用者に認識可能とする手法は、回路設計工程等において有効である。
【０００６】
ところで、前記特許文献１に記載された方法においては、有限状態マシン構造のシミュレーションモデルにおいて、状態１は例えばソースファイルＦｉｌｅ１．ｃの第３行、状態２は例えばソースファイルＦｉｌｅ２．ｃの第４行、状態３は例えばソースファイルＦｉｌｅ３．ｃの第４行といった具合に、シミュレーション実行状況と、動作レベル記述ソース行との対応を、もっぱら、状態遷移単位で行っている（特許文献１の第９図参照）。
【０００７】
シミュレーションモデルにおいて、遷移した状態の中に条件分岐が含まれる場合がある（例えば図１８のｉｆ文参照）。そして、ハードウェア記述において、条件分岐部分にバグが潜む可能性が相対的に高いことが知られている。
【０００８】
よって、シミュレーション実行状況と動作レベル記述ソース行との対応を、状態遷移単位で行うのではなく、状態遷移単位よりも粒度が細い条件分岐文単位で対応をとり、利用者に認識可能たらしめることで、デバックの精度があがり、回路設計の効率化に資すること大であることを、本発明者は知見した。
【０００９】
さらに、本発明者は、シミュレーション実行状況と動作レベル記述ソース行との対応を状態遷移単位で管理する上記特許文献１に記載された手法に、所定の改良を施すことで、動作レベル記述に含まれる条件分岐文とシミュレーション実行状況との対応をとる機能が実現可能であることを見出した。
【００１０】
したがって、本発明は、本発明者の上記知見に基づき創案されたものであって、その主たる目的は、動作レベル記述を動作合成してシミュレーションモデルを生成する方法及び装置並びにシステムとプログラムにおいて、動作レベル記述に含まれる条件分岐文とシミュレーション実行状況との対応をとることを可能とする方法及び装置並びにシステムとプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本願で開示される発明は、上記目的を達成するため、概略以下の構成とされる。
【００１２】
本発明の１つのアスペクト（側面）に係るシミュレーションモデル生成装置は、複数行からなる動作レベル記述を含むソースファイルを入力し、前記動作レベル記述から有限状態マシン構造を含むシミュレーションモデルを生成する合成部と、前記シミュレーションモデルの状態内の条件分岐文に対応させて識別情報（「分岐ＩＤ」という）を付与する分岐ＩＤ管理付与部と、を備えている。
【００１３】
本発明に係るシミュレーションモデル生成装置においては、前記分岐ＩＤと、前記動作レベル記述のソースの行番号との対応関係を表形式で生成する表作成部を備えている。
【００１４】
本発明に係るシミュレーションモデル生成装置においては、前記分岐ＩＤ管理付与部は、前記条件分岐文の前記条件が成立した場合の分岐先、及び／又は、前記条件が非成立の場合の分岐先に、分岐ＩＤを割当てる。また、本発明においては、前記分岐ＩＤ管理付与部は、前記条件分岐文を含まない状態に対して１つの分岐ＩＤを付与するようにしてもよい。
【００１５】
本発明の他のアスペクトに係るシミュレーション装置は、複数行からなる動作モデル記述から動作合成され有限状態マシン構造を含むシミュレーションモデルであって、状態内の条件分岐文に対応して識別情報（「分岐ＩＤ」という）が付与されたシミュレーションモデルを入力しシミュレーションを実行するシミュレータと、前記分岐ＩＤと、前記動作レベル記述のソースの行番号との対応関係を記憶した記憶部と、前記シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出し、前記記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出した分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得し、前記複数行からなる動作モデル記述のソースを出力装置に出力するにあたり、前記取得した行番号の前記動作レベル記述のソース行を、他の行と区別がつく形態で出力する制御部と、を備え、シミュレーション実行時における条件の成立の有無を、前記動作レベル記述のソース行単位で、判別可能としている。
【００１６】
本発明に係るシミュレーション装置においては、シミュレーションの実行を停止させるブレークポイントをなす分岐ＩＤを記憶するブレーク分岐ＩＤ記憶部をさらに備え、前記制御部は、シミュレーションの実行時、前記抽出された分岐ＩＤが、前記ブレーク分岐ＩＤ記憶部に記憶されている分岐ＩＤと一致したものであるか比較判定し、一致している場合には、前記シミュレーションの実行を停止するように制御する構成としてもよい。
【００１７】
本発明に係るシミュレーション装置においては、シミュレーションの実行時、前記分岐ＩＤが抽出されるたびに、前記抽出された分岐ＩＤの実行回数を累積した値を分岐ＩＤ毎に保持する分岐ＩＤ累積部をさらに備え、前記制御部は、前記記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述のソース行番号との対応関係から、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得するとともに、前記分岐ＩＤ累積部より前記分岐ＩＤに対応する実行回数を取得し、前記取得した行番号の動作レベル記述のソース行に対応させて前記実行回数を前記出力装置に出力する構成としてもよい。
【００１８】
本発明の他のアスペクトに係るシステムは、
複数行からなる動作レベル記述のソースファイルを記憶した第１の記憶部と、
前記動作レベル記述のソースの行番号との対応関係を記憶するための第２の記憶部と、
前記第１の記憶部より前記動作レベル記述のソースファイルを入力し、前記動作レベル記述から有限状態マシン構造を含むシミュレーションモデルを生成する合成部と、前記合成部によって生成された前記シミュレーションモデルの状態内の条件分岐文に対応させて識別情報（「分岐ＩＤ」という）を付与する分岐ＩＤ管理付与部と、前記分岐ＩＤと前記動作レベル記述のソースの行番号との対応関係を表形式で生成して前記第２の記憶部に格納する表作成部と、を含むシミュレーションモデル生成部と、
前記分岐ＩＤが付与された前記シミュレーションモデルを入力してシミュレーションを実行するシミュレータと、
前記シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出し、前記第２の記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述の行番号との対応関係から、前記抽出した分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得し、前記複数行からなる動作モデル記述のソースを出力装置に出力するにあたり、前記取得した行番号の動作レベル記述のソース行を、他の行と区別がつく形態で出力する制御を行うシミュレーションモニタと、を備えている。本発明において、シミュレータは、好ましくは、サイクルベースのシミュレーションを行う。
【００１９】
本発明のさらに他のアスペクトに係るシミュレーションモデル生成方法は、
（ａ１）複数行よりなる動作レベル記述を含むソースファイルを記憶した記憶部より動作レベル記述を入力して動作合成し、有限状態マシン構造を含むシミュレーションモデルを生成する工程と、
（ａ２）前記生成されたシミュレーションモデルの状態内の条件分岐文に対応させて識別情報（「分岐ＩＤ」という）を付与する工程と、
を含む。
【００２０】
本発明に係るシミュレーションモデル生成方法は、前記分岐ＩＤと、前記ソースファイルの前記動作レベル記述の行番号との対応を表形式で生成する工程を含む。
【００２１】
本発明のさらに他のアスペクトに係るシミュレーション方法は、
（ｂ１）複数行からなる動作モデル記述から動作合成され有限状態マシン構造を含むシミュレーションモデルであって、状態内の条件分岐文に対応して識別情報（「分岐ＩＤ」という）が付与されたシミュレーションモデルを入力してシミュレーションを実行する工程と、
（ｂ２）前記シミュレータの実行を監視し、状態が遷移した場合、遷移した状態中の分岐ＩＤを抽出する工程と、
（ｂ３）分岐ＩＤと動作レベル記述のソース行番号との対応を記憶した記憶部を参照して、前記抽出された分岐ＩＤに対応する前記動作レベル記述のソースの行番号を取得する工程と、
（ｂ４）前記複数行の動作レベル記述のソースを出力装置に出力するにあたり、前記行番号に対応する前記動作レベル記述のソース行を、他の行と区別がつく形態で出力する工程と、
を含む。
【００２２】
本発明のさらに他のアスペクトに係るコンピュータプログラムは、複数行よりなる動作レベル記述を含むソースファイルを記憶した記憶部を備えたコンピュータに、
（ｃ１）前記記憶部より前記ソースファイルを入力し、前記動作レベル記述から、有限状態マシン構造を含むシミュレーションモデルを生成する処理と、
（ｃ２）前記生成されたシミュレーションモデルの状態内の条件分岐に識別情報（「分岐ＩＤ」という）を付与する処理と、
を実行させるプログラムよりなる。
【００２３】
本発明のさらに他のアスペクトに係るコンピュータプログラムは、
複数行からなる動作モデル記述から動作合成され有限状態マシン構造を含むシミュレーションモデルであって、状態内の条件分岐文に対応して識別情報（「分岐ＩＤ」という）が付与されたシミュレーションモデルを記憶した第１の記憶部と、
前記シミュレーションモデルの前記分岐ＩＤと、前記動作レベル記述のソース行番号との対応を記憶した第２の記憶部と、を少なくとも含む記憶装置と、
出力装置と、を備えたコンピュータに、
（ｄ１）前記第１の記憶部から前記シミュレーションモデルを入力してシミュレーションを行う処理と、
（ｄ２）前記シミュレーションの実行を監視し、状態が遷移した場合、遷移した状態内の分岐ＩＤを抽出する処理と、
（ｄ３）前記第２の記憶部に記憶されている前記分岐ＩＤと前記動作レベル記述のソース行番号の対応関係から、前記抽出した分岐ＩＤに対応する前記動作レベル記述のソース行番号を取得する処理と、
（ｄ４）前記複数行からなる動作モデル記述のソースを前記出力装置に出力するにあたり、前記取得した行番号に対応する前記動作レベル記述のソース行を、他の行と区別がつく形態で出力する処理と、
を実行させるプログラムよりなる。
【発明の効果】
【００２４】
本発明によれば、動作レベル記述内の条件分岐文と、シミュレーションの実行状況との対応を把握可能とすることで、回路設計のデバッグ効率を向上し、回路設計を効率化、容易化する。
【００２５】
また、本発明によれば、分岐ＩＤ単位のブレークポイントの設定、あるいは、分岐ＩＤの累積実行回数を把握可能とすることで、回路設計の効率化、容易化を促進している。
【００２６】
さらに、本発明によれば、既存のシミュレーション・システム、コンピュータ・プログラム製品等に対して、機能を付加する形態で実施可能とされ、開発コストの増大を抑止低減しながら、デバック精度の向上を図るシステムを実現することができる。
【発明を実施するための最良の形態】
【００２７】
本発明を実施するための最良の形態について説明する。図１は、本発明の一実施の形態のシミュレーション・システムの全体構成を説明するための図である。図１を参照すると、この実施の形態に係るシミュレーション・システムは、複数行からなる動作レベル記述（アルゴリズム記述）を用いてハードウェア回路を記述したソースファイル１０を入力して動作合成し、有限状態マシン構造（ＦＳＭ）を含むシミュレーションモデル１２を生成するシミュレーションモデル生成部１１を備えている。シミュレーションモデル生成部１１は、シミュレーションモデルの状態内の条件分岐文に分岐ＩＤを付与し、付与した分岐ＩＤと動作レベル記述のソース行との対応表である動作レベル記述ソース行−分岐ＩＤ対応表１３を生成する。シミュレーションモデル生成部１１から出力されるシミュレーションモデル１２は、状態の条件分岐文に分岐ＩＤが付与されている。
【００２８】
そして、状態の条件分岐文に分岐ＩＤが付与されたシミュレーションモデル１２を入力し、好ましくはサイクルベースのシミュレーションを行うシミュレータ１４を備えている。さらに、シミュレータ１４によるシミュレーションの実行を監視し、状態が遷移した場合、遷移した状態と分岐ＩＤを抽出し、動作レベル記述ソース行−分岐ＩＤ対応表１３から、抽出した分岐ＩＤに対応する動作レベル記述のソース行番号を取得する。そして動作レベル記述のソース行を、表示装置１６に表示するにあたり、取得した行番号に対応する動作レベル記述のソース行をハイライト表示等して、他の行と容易に判別がつく表示形態にて出力する制御を行うシミュレーションモニタ１５を備えている。なお、図１では、シミュレーションモデル生成部１１が生成する変数名、レジスタ/ＩＯ対応表等は、本発明の主題に直接関係しないため、省略されている。以下実施例に即して詳細に説明する。
【実施例】
【００２９】
図２は、本発明の一実施例の構成を示す図であり、動作レベル記述からシミュレーションモデルを生成するシミュレーションモデル生成部（図１の１１参照）の構成及び動作の一例を説明するための図である。図２を参照すると、本実施例のシミュレーションモデル生成部は、動作レベル記述のソースファイルを格納した記憶部１０１と、合成制約を記憶した記憶部１０２と、スケジューリング部１０３と、有限状態マシン（ＦＳＭ）／データパス割り付け部１０４と、分岐ＩＤ管理付与部１０５と、分岐ＩＤと動作レベル記述ソース行対応表作成部１０６と、生成されたシミュレーションモデルを記憶する記憶部１０７と、分岐ＩＤと動作レベル記述ソース行との対応表を記憶する記憶部１０８と、を備えている。記憶部１０１、１０２、１０７、１０８は、同一のストレージ装置内に設けてもよいし、別々のストレージ装置であってもよい。スケジューリング部１０３、ＦＳＭ／データパス割り付け部１０４は、シミュレーションモデルを自動生成する動作合成部をなしている。なお、図１のシミュレーションモデル生成部１１は、定数、変数の最適化機能（不図示）と、スケジューリング機能（図２の１０３）と、アロケーション機能と、レジスタシェアリング機能と、ＨＤＬ（Hardware Description Language）生成機能とを有した構成としてもよい。このうちレジスタシェアリング機能は、図２のＦＳＭ／データパス割り付け部１０４に対応しており、（１）資源制約下で用いられる複数レジスタ資源の状態遷移の繰返しをデータパス制御により制御するＦＳＭ／データパスモデルの作成、（２）変数とレジスタと状態位置との対応である変数／レジスタ／状態位置対応表の作成、（３）アルゴリズム記述のソース行とその状態位置との対応であるソース行／状態位置対応表の作成を行う（上記特許文献２第２図参照）。
【００３０】
図４は、動作レベル記述のソースファイルの一例を示す図である。特に制限されないが、本実施例において、動作レベル記述のシンタックスはＣ言語仕様にしたがう。図４において、行１から３は、入力端子の定義であり、行４は、出力レジスタの定義である。行６から１７のプロセスｍａｉｎにおいて、回路が動作レベルで記述されており、このうち行７から９では、ローカル変数Ａ、Ｂ、Ｃが定義されている。行１１では、ローカル変数Ａ，Ｂに、入力端子ｉ２、ｉ３の値が設定され、行１２から１５の条件分岐文では、ｉｆ文の条件（ｉ１！＝０）が成立する場合（すなわち、ｉ１が０以外の値の場合）、Ｃ＝Ａ＋１０が実行され、それ以外の場合（ｉ１が０の場合）、ｅｌｓｅ文のＣ＝Ｂ＋２０が実行され、行１６では、レジスタｏ１にＡ＋Ｂ＋Ｃをセットしている。なお、図４に示した例は、あくまで説明のためのものであり、本発明がかかる動作レベル記述に制限されるものでないことは勿論である。
【００３１】
記憶部１０２の合成規則としては、資源制約情報を含む。資源制約において、例えば同時に使うことができる演算器（加算器）は例えば２個とされる。
【００３２】
スケジューリング部１０３は、図４の動作レベル記述（アルゴリズム記述）のソースファイルを読み込み、演算器のスケジューリングにより、図４の動作レベル記述で示される処理を、同時に使うことができる加算器２個の制約下で実現するために、演算処理を時分割し、例えば図５に示すような処理、すなわち、４クロックを要し、変数Ａ、Ｂ、Ｃを要する処理を作成する。状態１乃至４は、クロック１乃至クロック４に対応しいる。状態２（ＳＴ２）において、変数Ａと１０を加算器（＋）で加算した結果と、変数Ｂと２０を加算器（＋）で加算した結果の一方を、ｉ１の値に基づきセレクタで選択し、状態３（ＳＴ３）では、セレクタの出力を変数Ｃにセットし、変数ＡとＢの加算結果とＣとを加算し、状態４（ＳＴ４）において、レジスタｏ１は、加算結果（Ａ＋Ｂ）＋Ｃをラッチしている。
【００３３】
図６は、図５の状態１（ＳＴ１）から状態４（ＳＴ４）に関する状態間の遷移を示す状態遷移図である。図５に状態２（ＳＴ２）の中に条件分岐が設けられている。なお、図４に示した動作レベル記述から、図５に示したスケジューリングの生成の詳細については、上記特許文献２の記載が参照される。
【００３４】
図７は、ＦＳＭデータパス割り付け後のシミュレーションモデル（図４の動作レベル記述から動作合成されたモデル）に、分岐ＩＤ管理付与部１０５が、分岐ＩＤを挿入したシミュレーションモデルの一例を示す図である。
【００３５】
図７において、１行目の＃ｄｅｆｉｎｅ文は、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（ｐｏｓ）が、ＣｙｓｉｍＣｈａｎｇｅＬｉｓｔ［ＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘ＋＋］＝ｐｏｓよりなることを定義している。シミュレータ（図１の１４）によるこのシミュレーションモデルの実行により、最初にＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（０）が実行されると、リストＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの要素０（ＣｙｓｉｍＣｈａｎｇｅＬｉｓｔ［０］）に分岐ＩＤとして０が格納されインデクッスＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘが１つインクリメントされ、再び、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（０）が実行されると、リストＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの現在のＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘの位置に分岐ＩＤとして０が格納されＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘが１つインクリメントされる。特に制限されないが、本実施例においては、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（ｐｏｓ）は、実行される分岐ＩＤの値ｐｏｓが順次末尾に追加されるリスト構造ＣｙｓｉｍＣｈａｎｇｅＬｉｓｔとして定義されている。なお、分岐ＩＤを記憶できる構成であれば、リスト構造、配列構造に限定されるものでなく、他の任意の構成を用いることができる。
【００３６】
シミュレーションモデルの状態ＳＴ１からＳＴ４は、スイッチ文（ＳＷＩＴＣＨ）の変数ＳＴＡＴＥの値にしたがって選択的に実行される。
【００３７】
状態ＳＴ１は、条件分岐文を含まないが、分岐ＩＤ管理付与部（図２の１０５）によって挿入されたＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（０）により、分岐ＩＤとして０が付与される。そして、状態ＳＴ１内のＳＴＡＴＥ＝ＳＴ２の実行により、状態ＳＴ１から状態ＳＴ２に遷移する。このように、本実施例においては、条件分岐を含まない状態ＳＴ１に対して１つの分岐ＩＤが割り付けられる。
【００３８】
状態ＳＴ２では、”ｉｆ  ｔｈｅｎ  ｅｌｓｅ”の条件分岐文において、ｉｆ文の条件（ｉ１！＝０）が成立時の分岐先（Ｒｅｇ＿Ｃ＝Ｒｅｇ＿Ａ＋１０）に対して、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（１）が挿入され、条件（ｉ１！＝０）が非成立時の分岐先（Ｒｅｇ＿Ｃ＝Ｒｅｇ＿Ｂ＋２０）に対して、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（２）が挿入されている。すなわち、”ｉｆ  ｔｈｅｎ  ｅｌｓｅ”文の”ｔｈｅｎ”と”ｅｌｓｅ”の各部に分岐ＩＤがそれぞれ１つずつ割り付けられる。ｉｆ文の条件（ｉ１！＝０）が成立したときは、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（１）、条件（ｉ１！＝０）が非成立のときは、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（２）が実行される。そして、状態ＳＴ２の末尾のＳＴＡＴＥ＝ＳＴ３の実行により状態ＳＴ３への状態遷移が行われる。
【００３９】
状態ＳＴ３は、状態ＳＴ１と同様、条件分岐文を含まないが、分岐ＩＤ管理付与部（図２の１０５）によってＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（３）が挿入されており、分岐ＩＤとして３が付与される。状態ＳＴ３の末尾では、ＳＴＡＴＥ＝ＳＴ４の実行により状態ＳＴ４への状態遷移が行われる。
【００４０】
状態ＳＴ４も、状態ＳＴ１と同様、条件分岐文を含まないが、分岐ＩＤ管理付与部（図２の１０５）によってＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（４）が挿入され、分岐ＩＤとして４が付与される。状態ＳＴ４の末尾でＳＴＡＴＥ＝ＳＴ１の実行により状態ＳＴ１への状態遷移が行われる（図６参照）。
【００４１】
各状態において、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤが実行されるごとに、リスト構造ＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの最後（インデックスＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘが示す位置）に、引数ｐｏｓで引き渡される分岐ＩＤの値が順次格納される。したがって、例えばＣｙｓｉｍＣｈａｎｇｅＬｉｓｔのインデックス０からＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘまでの間に、値１のＩＤが１０個格納されている場合、状態２の（ｉ１！＝０）が１０回成立したことになる。なお、分岐ＩＤは一義的であればよく、特に制限されないが、本実施例では、分岐ＩＤは、シミュレーションモデルに対して、０から通番で割り付けられている。
【００４２】
図８は、分岐ＩＤと動作レベル記述ソース行対応表作成部１０６が作成した、動作レベル記述のソース行（図４参照）と分岐ＩＤとの対応関係の表の一例を示す図である。状態番号（ＳｔａｔｅＮｍ）、状態ＩＤ（ＳｔａｔｅＩＤ）、条件分岐ＩＤ（ＣｏｎｄＩＤ）、ソースの行（Ｓｏｕｒｃｅ：ｌｉｎｅ）の対応が一覧が表形式で作成される。
【００４３】
図８を参照すると、状態ＳＴ１は、割り付けられた条件分岐ＩＤ（ＣｏｎｄＩＤ）が０であり、対応するソースの行はｍａｉｎ．ｂｄｌの１１行目（図４参照）である。状態ＳＴ２において、割り付けられた条件分岐ＩＤは１であり、対応するソースの行はｍａｉｎ．ｂｄｌの１２、１３行目であり、条件分岐ＩＤ＝２に対応する、ソース行はｍａｉｎ．ｂｄｌの１４、１５行目である。状態ＳＴ３は、割り付けられた条件分岐ＩＤが３であり、対応するソース行はｍａｉｎ．ｂｄｌの１６行目である。状態ＳＴ４は、割り付けられた条件分岐ＩＤが４であり、対応するソース行はｍａｉｎ．ｂｄｌの１６行目である。
【００４４】
上記した本実施例のシミュレーションモデル生成部（図１の１１）の各処理は、コンピュータで実行されるプログラムにより実現してもよい。
【００４５】
以上、シミュレーションモデルの生成について説明した。次に、生成されたシミュレーションモデルを用いてシミュレーションを行うシミュレーション手法について説明する。
【００４６】
図３は、本発明の一実施例のシミュレーションの手順を示す流れ図であり、図１のシミュレータ１４とシミュレーションモニタ１５による処理手順を表している。
【００４７】
図３を参照して、本発明の一実施例のシミュレーションについて説明する。サイクルベースのシミュレータ（図１の１４）によりクロックベースのシミュレーションを実行する（ステップＳ１１）。シミュレーションモニタ（図１の１５）は、シミュレーションの実行結果を監視し、またシミュレーションの起動・停止／再開等を制御する。
【００４８】
そして、シミュレーションモデルを実行した結果、状態遷移が起こった場合（ステップＳ１２のＹ分岐）、シミュレーションモニタ（図１の１５）は、該状態と分岐ＩＤを抽出し、抽出した分岐ＩＤを記憶部１０９（「分岐ＩＤ記憶部」ともいう）に格納する（ステップＳ１３）。なお、シミュレーションモニタ（図１の１５）は、図７に示したシミュレーションモデルの変数ＳＴＡＴＥの値を監視し、変数ＳＴＡＴＥの値の変化を検出した場合、ステップＳ１２において、状態遷移が起こったことを認識する。この場合、遷移先の状態は、変数ＳＴＡＴＥにあらたに設定された値である。また抽出される分岐ＩＤは、状態内で実行されるＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（ｐｏｓ）の引数ｐｏｓの値に対応する。
【００４９】
次に、シミュレーションモニタ（図１の１５）は、動作レベル記述ソース行と分岐ＩＤ対応表を記憶した記憶部１０８（「動作レベル記述ソース行−分岐ＩＤ対応表記憶部」ともいう）を検索して、記憶部１０９に保持されている分岐ＩＤに対応するソース行番号を検索して取得する。表示装置（図１の１６）の画面上に、分岐ＩＤに対応するソース行を、ハイライト表示（輝度反転表示）する（ステップＳ１４）。以上の処理を、シミュレーションが終了するまで行う（ステップＳ１５）。
【００５０】
例えば図７の状態ＳＴ１からＳＴ２へ遷移し、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（１）が実行されると（分岐ＩＤ＝１）、状態ＳＴ２と、分岐ＩＤ＝１が抽出され、図８に示した表から、分岐ＩＤ＝１は、動作レベル記述（図４参照）のソースの１２、１３行に対応していることがわかる。よって、表示装置（図１の１６）の画面（あるいはウィンドウ）には、図９に示すように、動作レベル記述のソースの行として第１２行と第１３行が、ハイライト表示される。
【００５１】
本実施例において、抽出された分岐ＩＤに対応するソース行の表示は、他の行と区別がつくものであればよく、当該行を、輝度反転表示、他と区別するカラー表示としてもよく、あるいは所定の記号を付して表示するようにしてもよい。なお、本発明において、抽出された分岐ＩＤに対応するソース行を、他の行と区別がつく形態で出力する場合、出力デバイスは、表示装置に制限されるものでなく、印刷装置、ファイル装置等であってもよいことは勿論である。
【００５２】
このように、本実施例によれば、シミュレーション実行下での条件分岐に対応させて動作レベル記述を表示することができるため、デバッグ、動作検証等に有効である。
【００５３】
本発明の比較例として上記特許文献１に記載されたシステムのハイライト表示例を、図１８に示す。シミュレーションで状態ＳＴ１から状態ＳＴに遷移した場合、図１８に示すように、状態単位での表示であり、このため、ｉｆ文の条件（ｉ１！＝０）が成立しているのか、あるいは、該条件（ｉ１！＝０）が不成立でｅｌｓｅ文が実行されたのかについての情報を、画面表示結果から得ることはできない。
【００５４】
本発明の一実施例についてさらに説明する。図１０は、本発明の一実施例の動作レベル記述の別の例を示す図であり、条件分岐が入れ子構造となっている。すなわち、ｉｆ文の条件（ｉ１！＝０）が成立した場合、さらに入れ子のｉｆ文の条件（ｉ４！＝０）の成立の有無が判定される。図１１は、図１０の動作レベル記述を、シミュレーションモデル生成部（図１の１１）により動作合成して得られたシミュレーションモデル（分岐ＩＤ挿入済み）の一例を示す図である。なお、分岐ＩＤは、図７と同様、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（ｐｏｓ）によって定義されている。
【００５５】
図１１を参照すると、状態ＳＴ２において、ｉｆ文の条件（ｉ１！＝０）が成立し、且つ（ｉ４！＝０）が成立した場合、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（１）が実行され分岐ＩＤとして値１がＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの末尾に登録され、（ｉ１！＝０）が成立し、且つ（ｉ４！＝０）が不成立の場合、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（２）が実行され分岐ＩＤとして値２がＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの末尾に登録され、ｉｆ文の条件（ｉ１！＝０）が不成立の場合、ＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（３）が実行され分岐ＩＤとして値３がＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの末尾に登録される。条件分岐を出たところでＣＭ＿ＣＨＡＮＧＥ＿ＡＰＰＥＮＤ（４）が実行され分岐ＩＤとして値４がＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの末尾に登録される。状態ＳＴ１、ＳＴ３、ＳＴ４では、条件分岐文はないが、分岐ＩＤとして０、５、６がそれぞれ割り付けられており、各状態に遷移すると対応する分岐ＩＤの値がＣｙｓｉｍＣｈａｎｇｅＬｉｓｔの末尾に登録される。図１２は、図１０の動作記述ソース行と分岐ＩＤの対応表を示す図である。
【００５６】
シミュレータ（図１の１４）が、図１１のシミュレーションモデルを実行し、状態ＳＴ１からＳＴ２への遷移において、分岐ＩＤ＝２、分岐ＩＤ＝４、すなわち、動作レベル記述のソースの１４、１５行目と、動作レベル記述の１８行目が成立した場合、図１３に示すように、ソース表示箇所が、同時に、複数箇所表示される。
【００５７】
次に、本発明の第２の実施例について説明する。図１４は、本発明の第２の実施例のシミュレーションの手順を示す図である。なお、本実施例のシステムの基本構成は、図１に示した構成とされる。本発明の第２の実施例では、分岐ＩＤ単位でのブレークポイントの設定／解除を可能としている。
【００５８】
図１４を参照すると、シミュレーションが実行され（ステップＳ２１）、状態の遷移が起こると（ステップＳ２２のＹ分岐）、シミュレーションモニタ（図１の１５）は、状態と分岐ＩＤを抽出し、分岐ＩＤを記憶部１０９に保持し、分岐ＩＤに対応したソース行のハイライト表示等が行われる（ステップＳ２４）。ここまでの処理は、前記実施例と同様である。
【００５９】
本実施例では、シミュレーションを停止させたい分岐ＩＤを、ブレーク分岐ＩＤ記憶部１１０に予めＧＵＩ（Graphical User Interface）等を介して設定登録しておく。該分岐ＩＤのブレークポイントを解除するには、ＧＵＩ等を介して、ブレーク分岐ＩＤ記憶部１１０から当該分岐ＩＤを削除すればよい。
【００６０】
分岐ＩＤに対応したソース行を表示した後、シミュレーションモニタ（図１の１５）は、ステップＳ２３で抽出された分岐ＩＤが、ブレーク分岐ＩＤ記憶部１１０に予め記憶設定されている分岐ＩＤと一致するか否か比較判定し（ステップＳ２５）、一致する場合には、当該分岐ＩＤをブレークポイントとして、シミュレーションを一旦停止（ブレーク）する。そして、必要に応じて変数、レジスタ等の内容のダンプ等の解析が行われる。一方、ステップＳ２５で、抽出分岐ＩＤが、ブレーク分岐ＩＤと一致しない場合には、シミュレーションが終える場合以外（ステップＳ２６のＮ分岐）、ステップＳ２１からの処理を続ける。本実施例において、ブレークポイント間（例えば分岐ＩＤ毎に）をステップ実行するようにしてもよいことは勿論である。
【００６１】
次に、本発明の第３の実施例について説明する。図１５は、本発明の第３の実施例のシミュレーションの処理手順を示す図である。なお、本実施例のシステムの基本構成は、図１に示した構成とされる。本発明の第３の実施例では、指定された条件分岐ＩＤ単位での実行の回数を累算しておき、当該分岐がシミュレーション中何回実行されたかを表示できるようにしている。シミュレータ（図１の１４）によるシミュレーションモデルのシミュレーションが実行され（ステップＳ３１）、シミュレーションモニタ（図１の１５）は該シミュレーションの実行を監視し、状態の遷移が起こると（ステップＳ３２のＹ分岐）、シミュレーションモニタが状態と分岐ＩＤを抽出し（ステップＳ３３）、分岐ＩＤを記憶部１０９に保持し、ソース行のハイライト表示（ステップＳ３４）が行われることは、前記実施例と同様である。
【００６２】
本実施例では、ステップＳ３３で抽出された分岐ＩＤの回数を１つインクリメントして、記憶部よりなる分岐ＩＤ累積部１１１に累積する処理が行われる。
【００６３】
図１６は、分岐ＩＤ累積部１１１の内容の一例を示す図である。分岐ＩＤ累積部１１１には、分岐ＩＤに対応して累積実行回数が格納される。
【００６４】
例えば図１１に示したシミュレーションモデルを実行すると、リストＣｙｓｉｍＣｈａｎｇｅＬｉｓｔにおいてインデクス０からＣｙｓｉｍＣｈａｎｇｅＴａｂｌｅＭａｘまでの要素に分岐ＩＤの値が格納されている。したがって、リストＣｙｓｉｍＣｈａｎｇｅＬｉｓｔに格納されている分岐ＩＤの個数を分岐ＩＤの値０、１、２、３、４、５、６のそれぞれについて集計し、表形式に出力することで、図１６に示した分岐ＩＤ累積部１１１の内容を得ることができる。
【００６５】
そして、本実施例においては、図１５のステップＳ３４において、例えば図１７に示すように、分岐ＩＤに対応する動作レベル記述ソース（ハイライト表示される）の行番号の脇に、当該分岐ＩＤの累積実行回数を表示する。
【００６６】
なお、シミュレーション終了時等に、分岐ＩＤごとに累積した実行回数を、シミュレーションモデル中のすべての分岐ＩＤに対応する動作レベル記述ソースの行に対して表示するようにしてもよい。また、本発明の第２及び第３の実施例を組み合わせてもよいことは勿論である。なお、前記第２、第３の実施例で説明したシミュレータ１４とシミュレーションモニタ１５の処理は、コンピュータ上で実行されるプログラムにより実現するようにしてもよい。
【００６７】
以上本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施の形態のシステム構成を示す図である。
【図２】本発明の一実施例のシミュレーションモデルの作成を示す図である。
【図３】本発明の一実施例のシミュレーション実行手順を示す流れ図である。
【図４】本発明の一実施例の動作レベル記述（ソースファイル）の一例を示す図である。
【図５】図４から生成されたスケジューリングの一例を示す図である。
【図６】図５の状態遷移の一例を示す図である。
【図７】本発明の一実施例におけるシミュレーションモデルの一例を示す図である。
【図８】本発明の一実施例における動作レベル記述ソース行ー分岐ＩＤ対応表の一例を示す図である。
【図９】本発明の一実施例におけるソース表示の一例を示す図である。
【図１０】本発明の一実施例の動作レベル記述のソースの別の例を示す図である。
【図１１】本発明の一実施例におけるシミュレーションモデルの別の例を示す図である。
【図１２】本発明の一実施例における動作レベル記述ソース行ー分岐ＩＤ対応表の別の例を示す図である。
【図１３】本発明の一実施例におけるソース表示の別の例を示す図である。
【図１４】本発明の第２の実施例のシミュレーション実行手順を示す流れ図である。
【図１５】本発明の第３の実施例のシミュレーション実行手順を示す流れ図である。
【図１６】本発明の第３の実施例の分岐ＩＤ累積保存例を示す図である。
【図１７】本発明の第３の実施例におけるソース表示例を示す図である。
【図１８】比較例として特許文献１のソース表示例を示す図である。
【符号の説明】
【００６９】
１０  動作レベル記述ソースファイル
１１  シミュレーションモデル生成部
１２  シミュレーションモデル
１３  動作レベル記述ソース行−分岐ＩＤ対応表
１４  シミュレータ
１５  シミュレーションモニタ
１６  表示装置
１０１  動作レベル記述のソースファイルの記憶部
１０２  合成制約の記憶部
１０３  スケジューリング部
１０４  ＦＳＭ／データパス割り付け部
１０５  分岐ＩＤ管理付与部
１０６  分岐ＩＤと動作レベル記述ソース行対応表作成部
１０７  シミュレーションモデルの記憶部
１０８  動作レベル記述ソース行−分岐ＩＤ対応表記憶部
１０９  分岐ＩＤ記憶部
１１０  ブレーク分岐ＩＤ記憶部
１１１  分岐ＩＤ累積部
【図１】
2006099678.tif 000003
【図２】
2006099678.tif 000004
【図３】
2006099678.tif 000005
【図４】
2006099678.tif 000006
【図５】
2006099678.tif 000007
【図６】
2006099678.tif 000008
【図７】
2006099678.tif 000009
【図８】
2006099678.tif 000010
【図９】
2006099678.tif 000011
【図１０】
2006099678.tif 000012
【図１１】
2006099678.tif 000013
【図１２】
2006099678.tif 000014
【図１３】
2006099678.tif 000015
【図１４】
2006099678.tif 000016
【図１５】
2006099678.tif 000017
【図１６】
2006099678.tif 000018
【図１７】
2006099678.tif 000019
【図１８】
2006099678.tif 000020