(57)【特許請求の範囲】
【請求項１】
機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、
資源の制約の下で、前記機能合成部が、回路モジュールの機能を変数を用いて表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成するステップと、
前記クロックレベル検証部が、前記状態遷移制御モデルと前記対応テーブルを用いてクロックレベルアルゴリズムモデルを生成するステップとを具備し、
前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、
前記対応テーブルは、前記資源の制約の下で単位クロック毎の前記資源への前記変数の割当ての状態を表わし、
前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述に含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記クロックレベル検証部が、前記単位クロックに基づいて、前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションするステップと、
前記クロックレベル検証部が、前記シミュレーションにおいて、前記資源に割当てられた前記変数の値を表示するステップとを更に具備する
シミュレーション方法。
【請求項２】
前記クロックレベルアルゴリズムモデルは、前記単位クロックに相当する前記状態内に当該状態内で演算されるデータパスを更に有している請求項１に記載のシミュレーション方法。
【請求項３】
前記クロックレベルアルゴリズムモデルでは、前記変数に前記資源の一部としてレジスタが割当てられている請求項１に記載のシミュレーション方法。
【請求項４】
機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、
資源の制約の下で、前記機能合成部が、回路モジュールの機能を変数を用いて表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成するステップと、
前記クロックレベル検証部が、前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報を用いてクロックレベルアルゴリズムモデルを生成するステップとを具備し、
前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、
前記対応テーブルは、前記資源の制約の下で単位クロック毎の前記資源への前記変数の割当ての状態を表わし、かつ前記単位クロック毎の前記状態と当該状態に対応する前記変数の演算処理を示す前記アルゴリズム記述のソース行との対応関係を表わし、
前記クロックレベルアルゴリズムモデルは、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記クロックレベル検証部が、単位クロックに基づいて、前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションするステップと、
前記クロックレベル検証部が、前記シミュレーションにおいて、現在の前記単位クロックにおける前記アルゴリズム記述の前記ソース行を表示するステップとを更に具備する
シミュレーション方法。
【請求項５】
前記クロックレベルアルゴリズムモデルは、データを入出力するＩ／Ｏ部と、前記単位クロック毎の前記資源の動作を制御するデータパス記述部とを有する請求項４に記載のシミュレーション方法。
【請求項６】
前記クロックレベルアルゴリズムモデルでは、前記資源のうちの１つが前記変数のうちの複数により共有される請求項１乃至５のいずれかに記載のシミュレーション方法。
【請求項７】
前記シミュレーションモデルは、前記回路モジュール内のＣＰＵの動作に対応し、前記単位クロックに基づいて動作するクロックレベルＣＰＵモデルを含む請求項１乃至６のいずれか一項に記載のシミュレーション方法。
【請求項８】
請求項１乃至７のいずれか一項に記載のシミュレーション方法を実現するための、計算機により実行可能なプログラムが記録された記録媒体。
【請求項９】
資源の制約の下で、回路モジュールの機能を変数を用いて表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成する機能合成部と、前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源の制約の下で単位クロック毎の前記資源への前記変数の割当ての状態を表わし、かつ前記単位クロック毎の前記状態と当該状態に対応する前記変数の演算処理を示す前記アルゴリズム記述のソース行との対応関係を表わし、
前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報を用いてクロックレベルアルゴリズムモデルを生成するクロックレベル検証部と、
表示部と
を具備し、
前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述に含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記クロックレベル検証部は、前記シミュレーションの結果において、現在の前記単位クロックにおける、前記アルゴリズム記述の前記ソース行と前記資源に割当てられた前記変数の値を前記表示部に表示する
シミュレーション装置。
【請求項１０】
回路の機能を変数を用いて表現するアルゴリズム記述モデルを含む、前記回路のアルゴリズムレベルシミュレーションモデルをシミュレーションするアルゴリズムレベル検証部と、
資源の制約の下、前記アルゴリズム記述モデルから生成されたクロックレベルアルゴリズムモデルを含むクロックレベルシミュレーションモデルをシミュレーションするクロックレベル検証部と、前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述モデルに含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記資源の制約の下、前記アルゴリズム記述モデルから生成された前記回路のＲＴレベルアルゴリズムモデルを含むＲＴレベルシミュレーションモデルをシミュレーションするＲＴレベル検証部と、
表示部と
を具備し、
前記対応テーブルは、前記単位クロック毎の前記状態と当該状態に対応する前記変数の演算処理を示す前記アルゴリズム記述のソース行との対応関係を表わし、
前記クロックレベル検証部は、前記シミュレーションの結果において、現在の前記単位クロックにおける、前記アルゴリズム記述の前記ソース行と前記資源に割当てられた前記変数の値を前記表示部に表示する
シミュレーション装置。
【請求項１１】
前記アルゴリズムレベルシミュレーションモデルは、前記回路内のＣＰＵの動作を表すＣＰＵモデルを含み、
前記クロックレベルシミュレーションモデルは、単位クロック毎の前記ＣＰＵの動作を表すクロックレベルＣＰＵモデルを含み、
前記ＲＴレベルシミュレーションモデルは、ＲＴレベルで前記ＣＰＵの動作を表すＲＴレベルＣＰＵモデルを含む請求項１０に記載のシミュレーション装置。
【請求項１２】
前記クロックレベルシミュレーションモデルのシミュレーション時間は、前記ＲＴレベルシミュレーションモデルのシミュレーション時間より短い請求項１１に記載のシミュレーション装置。
【請求項１３】
シミュレーション装置が、変数を用いて回路の機能を表現するアルゴリズム記述の全体機能を部分機能に分解するステップと、
前記シミュレーション装置が、前記変数の許容される状態遷移の単位で単位クロックに基づいて前記部分機能をスケジューリングするステップと、
前記シミュレーション装置が、資源制約条件の下で、前記スケジュールされた機能の各々に資源を割当てるステップと、
前記シミュレーション装置が、前記部分機能を組み立ててクロックレベルシミュレーションモデルを生成するステップと、
前記シミュレーション装置が、単位クロックに基づいて、前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションするステップと、
前記シミュレーション装置が、前記シミュレーションにおいて、前記資源に割当てられた前記変数の値を表示するステップと
を具備し、
前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述に含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルである
シミュレーションモデル生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シミュレーション方法、シミュレーションモデル、これらに対応する記録媒体、それらの記述の生成方法に関し、特に、アルゴリズム記述とＲＴレベル記述との間でシミュレーションを適宜に切り換えて高速度で所望の段階でシミュレーションモデルを生成してアルゴリズムを高速に又は詳細にシミュレートするシミュレーション方法、シミュレーションモデル、それらに対応する記録媒体、それらの記述の生成方法に関する。
【０００２】
【従来の技術】
大規模回路は、自動設計装置により設計される。自動設計装置の設計フローは、Ｃ言語のような汎用プログラム言語、専用の動作レベル記述言語により所望の動作フローが記述された最高位レベル記述をレジスタ、加算器のようなハードウエア資源を用いてよりハードウエア化されるＲＴレベル記述のような低位レベル記述に書き下すステップを有している。このようにレベルが異なる抽象度の複数のシミュレーションモデルのシミュレーションは、図１３（ａ），（ｂ）に示されるように、抽象度が高い動作レベルシミュレーションモデル１０１では、初めから終わりまでこれだけがシミュレートされ、そのシミュレーションの途中で、ＲＴレベルシミュレーションモデル１０２のシミュレーションは行われえず、また、抽象度が低いＲＴレベルシミュレーションモデル１０２では、初めから終わりまでこれだけがシミュレートされ、そのシミュレーションの途中で、動作レベルシミュレーションモデル１０１のシミュレーションは行われなかった。
【０００３】
このように、動作レベルシミュレーションモデル１０１とＲＴレベルシミュレーションモデル１０２は、互いに独立していて別個のものとして扱われ、シミュレーションの途中で一方のシステムシミュレーションから他方のシステムシミュレーションに切り換えることは不可能であった。一般的には、速度が重要な局面では高速な上位シミュレーションモデルが用いられ、精度が重要な局面ではＲＴレベル、精度が更に細かく要求される局面ではレベルが更に低い他の低位シミュレーションモデルがそれぞれに用いられていた。
【０００４】
しかし、機能検証のシミュレーションを行う場合、ある時刻ｔ１から他のある時刻ｔ２の間を特に詳しく調べたいという要望がある。そのような場合にも時刻ｔ０から時刻ｔ２までの検証のために高精度のシミュレータを使用すると、機能検査に多大な時間がかかってしまう。
【０００５】
このような問題を解決する技術として、異なる抽象度の複数・シミュレーションモデルの間で切り換えを行うようにしたミックス・シミュレーション技術が、特開平５−６１９３４号、論文「並列論理シミュレータＷＩＺＤＯＭ」（情報処理学会第５７回全国大会、１９９８）で知られている。ここで開示されている切り換えは、命令レベルシミュレーションモデルとハードウエアシミュレータ、ＲＴレベルシミュレーションモデルのような抽象度が異なるシミュレーションモデルとの間の切り換えである。このような切り換えが可能になっている根拠は、双方のモデルがレジスタ等で共通する構造を持っていることにある。また、ゲートレベルと電子回路レベルの間でのシミュレーション切り換えが行われる技術が、特開平７−１１０８２６号で知られている。この切り換えで双方の情報のトランスファーは、ゲート回路の端子と電子回路の端子が１対１に対応していることを利用することにより、回路端子のレベルのアナログ・ディジタル変換によって行っている。また、特開平１０−２６１００２号は、ある回路記述形式を用いてその回路の動きを詳しい定義モデルと粗い定義モデルとで表現し、そのモデルの間での切り換えを開示している。このような１対１対応の高低レベル間の切り換え、詳細度の異なるものの共通の記述形式を用いた同一レベル間の切り換えが知られている。
【０００６】
しかし、動作記述レベルといわれる最高位のプログラム言語記述レベルと下位記述レベルであるＲＴレベルの間では、シミュレーション状態を保持する構造が１対１に対応しておらず、両レベル間でデータの受け渡しができないため、従来、これらのレベル間の切り換えシミュレーションが不可能であった。シミュレーションをより適正に高速化し且つ詳細化するために、このように１対１に対応する記述がなされていないレベル間のシミュレーションモデルの切換技術の確立が特に望まれた。
【０００７】
本発明者は、そのような技術の確立のために、論理回路の処理フローを記述した動作レベル記述を機能合成ツールによりＲＴレベル記述に変換し、その動作レベル記述とＲＴレベル記述をそれぞれに対応するコンパイラに入力して動作レベルシミュレーションモデル構造とＲＴレベルシミュレーションモデル構造を生成し、動作レベルシミュレーションモデル構造とＲＴレベルシミュレーションモデル構造の対応手段を生成し、動作レベルシミュレーションモデル構造とＲＴレベルシミュレーションモデル構造に基づいて動作レベルシミュレーションとＲＴレベルシミュレーションを対応手段を介して切り換えて実行するように、両レベル間でレジスタの変数値を共有させるようにしたシミュレーション方法を提案している（参照：特願平１１−０５７０４０号）。
【０００８】
このようなシミュレーション方法によるシミュレーションの実行過程で、本発明者は、動作モデルである最高位の抽象度を持つアルゴリズム記述から自動生成される従来のＲＴレベル記述は、ソースであるアルゴリズム記述から遠くかけ離れ、両記述の間に大きな抽象度の落差が存在していることに気づいた。両記述の間に潜み両記述のそれぞれの抽象度の中間にある抽象度の記述の発見が望まれ、その記述により、アルゴリズム記述より抽象度が低くＲＴレベルより抽象度が高い言語レベルでシミュレーションモデルを動作レベルより精細に且つＲＴレベルより高速にシミュレートすることが望まれる。
【０００９】
【発明が解決しようとする課題】
本発明の課題は、アルゴリズムレベルより抽象度が高くＲＴレベルよりも抽象度が低いレベルの言語を用いてそれに基づくシミュレーションモデル、その記述とその生成の方法を提供することにある。
【００１０】
本発明の他の課題は、アルゴリズムレベルより抽象度が高くＲＴレベルよりも抽象度が低い記述に基づいて、アルゴリズム記述のシミュレーションよりもより精細に、且つ、ＲＴレベル記述のシミュレーションよりもより高速にシミュレートすることができるシミュレーションモデル、その記述とその生成の方法を提供することにある。
【００１１】
【課題を解決するための手段】
本発明のシミュレーションモデルの生成方法では、機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、資源の制約の下で、前記機能合成部が、回路モジュールを表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成し、前記クロックレベル検証部が、前記状態遷移制御モデルと前記対応テーブルからクロックレベル記述のクロックレベルアルゴリズムモデルを生成する。前記クロックレベル記述は、単位クロックでの前記資源の各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述であり、前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源、及び前記単位クロック毎の前記アルゴリズム記述内の変数と前記資源の対応関係を表す。
【００１２】
前記クロックレベルアルゴリズムモデルは、前記単位クロック毎の前記資源の動作を制御するデータパス記述部とを有する。
【００１３】
また、本発明のシミュレーションモデルの生成方法では、機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、資源の制約の下で、前記機能合成部が、回路モジュールを表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成し、前記クロックレベル検証部が、前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報からクロックレベル記述のクロックレベルアルゴリズムモデルを生成してもよい。前記クロックレベル記述は、単位クロックでの前記資源の各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述であり、前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源、及び前記単位クロック毎の前記アルゴリズム記述内の変数と前記資源の対応関係を表す。
【００１４】
前記クロックレベルアルゴリズムモデルは、データを入出力するＩ／Ｏ部と、前記単位クロック毎の前記資源の動作を制御するデータパス記述部とを有してもよい。
【００１５】
いずれの場合も、前記クロックレベル記述では、前記資源のうちの１つが前記複数の変数により共有されることが好ましい。
【００１６】
本発明のシミュレーション方法では、前記クロックレベル検証部が、前記単位クロックに基づいて、請求項１乃至５のいずれかに記載される前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションしてもよい。このとき、前記シミュレーションモデルは、ＣＰＵの動作に対応するクロックレベルＣＰＵモデルを含んでもよい。
【００１７】
また、前記クロックレベル検証部が、前記シミュレーションの結果に基づいて、前記資源の前記状態と前記アルゴリズム記述とを対応づけ、前記アルゴリズム記述の記述行毎の前記資源の使用状況を表示すことが好ましい。また、前記クロックレベル検証部が、前記シミュレーションモデルに含まれる前記クロックレベル記述と、前記資源の使用状況を示す資源使用対応表とを用いて、前記アルゴリズム記述と当該シミュレーションにより得られる変数値の対応を表示することが好ましい。
【００１８】
前記資源の使用状況の表示では、前記クロックレベル検証部が、前記クロックレベル記述の前記単位クロックの状態遷移が起これば前記状態遷移が起こった前記アルゴリズム記述の前記記述行と前記資源の使用状況を表示し、前記変数値の対応の表示では、前記クロックレベル検証部が、前記クロックレベル記述の前記単位クロックの状態遷移が起これば前記状態遷移が起こった前記レジスタ記述の前記記述行と前記変数値を表示することが好ましい。前記変数値は、前記資源のうちのレジスタ又はメモリの値である。
【００１９】
本発明のシミュレーション装置では、資源の制約の下で、回路モジュールを表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成する機能合成部と、前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報からクロックレベル記述のクロックレベルアルゴリズムモデルを生成するクロックレベル検証部とを具備する。前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源、及び前記単位クロック毎の前記アルゴリズム記述内の変数と前記資源の対応関係を表し、前記クロックレベル記述は、前記単位クロックでの前記資源の各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述である。
【００２０】
シミュレーション装置は、表示部を更に具備してもよく、前記クロックレベル検証部は、前記シミュレーションの結果に基づいて、前記資源の前記状態と前記アルゴリズム記述とを対応づけ、前記アルゴリズム記述の記述行毎の前記資源の使用状況を前記表示部に表示し、前記クロックレベルシミュレーションモデルに含まれる前記クロックレベル記述と前記資源使用対応表とを用いて、前記アルゴリズム記述の前記記述行と当該シミュレーションにより得られる変数値の対応を前記表示部に表示する。前記クロックレベル検証部は、前記クロックレベル記述の前記クロック単位の状態遷移が起これば前記状態遷移が起こった前記アルゴリズム記述の前記記述行と前記資源の使用状況を前記表示部に表示し、前記クロックレベル記述の前記クロック単位の前記状態遷移が起これば前記状態遷移が起こった前記レジスタ記述の前記記述行と前記変数値を表示することが好ましい。
【００２１】
また、シミュレーション装置では、回路の論理動作を表すハードウエアモデルを含む、前記回路のアルゴリズムレベルシミュレーションモデルをシミュレーションするアルゴリズムレベル検証部と、資源の制約の下、前記ハードウエアモデルから生成されたクロックレベルアルゴリズムモデルを含むクロックレベルシミュレーションモデルをシミュレーションするクロックレベル検証部と、前記クロックレベルアルゴリズムモデルは、単位クロックでの前記資源の各々の動作を表し、前記資源の制約の下、前記ハードウエアモデルから生成された前記回路のＲＴレベルアルゴリズムモデルを含むＲＴレベルシミュレーションモデルをシミュレーションするＲＴレベル検証部とを具備する。
【００２２】
前記アルゴリズムレベルシミュレーションモデルは、前記回路内のＣＰＵの動作を表すＣＰＵモデルを含み、前記クロックレベルシミュレーションモデルは、単位クロック毎の前記ＣＰＵの動作を表すクロックレベルＣＰＵモデルを含み、前記ＲＴレベルシミュレーションモデルは、ＲＴレベルで前記ＣＰＵの動作を表すＲＴレベルＣＰＵモデルを含んでもよい。前記クロックレベルシミュレーションモデルのシミュレーション時間は、前記ＲＴレベルシミュレーションモデルのシミュレーション時間より短い。シミュレーション装置は、更に、表示部を具備し、前記クロックレベル検証部は、前記クロックレベルアルゴリズムモデルと前記クロックレベルＣＰＵモデルのシミュレーションの結果に基づいて、前記資源の前記状態と前記アルゴリズム記述とを対応づけ、前記アルゴリズム記述の記述行毎の前記資源の使用状況を前記表示部に表示し、資源の使用状況を表す資源使用対応表とを用いて、前記アルゴリズム記述の前記記述行と当該シミュレーションにより得られる変数値の対応を前記表示部に表示する。
【００２３】
【発明の実施の形態】
本発明によるシミュレーションモデルの記述生成方法は、資源の制約の下で、アルゴリズム記述（３）をクロックレベル記述（８）に低位化することを含み、その低位化することは、アルゴリズム記述（３）の複数機能を単位クロックの中で動作が可能である部分機能に分解することと、その複数機能を回復するためにその部分機能を組み立てることとを備える。そのような複数機能は、クロックレベル記述であるクロックレベルシミュレータ（８）として、後述されるレジスタを変数とする言語により表現されている。レジスタを変数とする言語は、本発明者により発見された低位プログラミング記述言語である。
【００２４】
クロックレベル記述は、資源のうちの複数レジスタの内のある１つのレジスタを異なる複数単位クロックのうちで動作させる記述を備える。このようなクロック間でレジスタの共有化が行われ、レジスタが変数として言語化される。
【００２５】
本発明によるシミュレーションモデルは、更に、既述のこのようなシミュレーションモデルの記述生成方法により記述されたクロックレベル記述（８）と、そのクロックレベル記述に対応するアルゴリズム記述（３）とが対応する対応表（２２，２３）とを含む。
【００２６】
本発明によるシミュレーション方法は、このようなシミュレーションモデルを用いて単位クロックで部分機能を動作させることにより複数機能をシミュレートすることを含み、更に、そのようにシミュレートすることの結果に基づいて、アルゴリズム記述（３）をデバッグすることを含む。更には、シミュレーションモデルに含まれるクロックレベル記述と対応表とを用いて、アルゴリズム記述の行数とシミュレーションにより得られる変数値の対応を表示することを含む。
【００２７】
本発明によるシミュレーションモデルの生成方法は、資源の制約の下で、アルゴリズム記述（３）をクロックレベル記述（８）に低位化することを含み、その低位化することは、アルゴリズム記述（３）の複数機能を単位クロックの中で動作が可能である部分機能に分解することと、複数機能を回復するためにその部分機能を組み立てることとを備え、クロックレベル記述（８）は、その資源のうちの複数レジスタの内のある１つのレジスタを異なるクロックのうちでそれぞれに動作させる記述を備え、更に、クロックレベル記述（８）とクロックレベル記述（８）のうちのレジスタ（Ｒｅｇ１〜５）に関するレジスタ記述との対応表（２２，２３）を作成することと、クロックレベル記述（８）のクロック単位の状態遷移が起こればその状態遷移が起こったアルゴリズム記述部分を表示することと、クロックレベル記述（８）のクロック単位の状態遷移が起こればその状態遷移が起こったレジスタ記述部分のレジスタ（Ｒｅｇ１〜５）の変数値（Ｒ）を表示することとを含む。このような対応表の作成によって、両レベル間の移行が可能である。このようなシミュレーションモデルの生成方法に含まれる全記述がコンピュータにより読み取り可能であることは当然であり、それは記録媒体化されて利用に供される。
【００２８】
本発明によるシミュレーションモデルは、アルゴリズム記述（３）と、アルゴリズム記述（３）よりも抽象度が低いＲＴレベル記述（１７）と、アルゴリズム記述（３）よりも抽象度が低く、且つ、ＲＴレベル記述（１７）よりも抽象度が高いクロックレベル記述（８）を含み、クロックレベル記述（８）はアルゴリズム記述（３）からクロック単位で自動生成される記述であり、アルゴリズム記述（３）と、クロックレベル記述（８）と、ＲＴレベル記述（１７）とは、クロックレベル記述（８）に含まれて記述されるレジスタ（Ｒｅｇ１〜５）の変数値（Ｒ）を共有する。このような共有により、３つのレベル間で移行が可能である。
【００２９】
更に、シミュレーションモデルは、アルゴリズム記述（３）と、アルゴリズム記述（３）よりも抽象度が低いクロックレベル記述（８）を含み、クロックレベル記述（８）は、時間軸に直交する単位クロックごとの断面上で記述されるレジスタの演算記述である。ここで、断面とは、１単位クロック内で同時的に動作が進行する一連の記述の連鎖である。アルゴリズム記述よりも抽象度が低く、且つ、時間軸に直交する単位クロックごとの断面上でレジスタに関して記述される言語は、コンピュータにより読み取り可能に表現されて記録媒体化され得る。このような媒体をコピーすることにより、同時並行的に多様なシミュレーションが可能である。アルゴリズム記述よりも抽象度が低く、且つ、時間軸に直交する単位クロックごとの断面上でレジスタに関して記述されるシミュレーションモデル用記述言語は、Ｒｅｇ１＋Ｒｅｇ２のように複数レジスタが用語として多変数化されている。アルゴリズム記述（３）は数の演算を含んでいる場合には、その演算を時間軸上で進行するクロックの単位の中で実行する関数の変数がレジスタになって表現されている。
【００３０】
このように、中間レベルの抽象度の言語には、レジスタの動作がクロック単位で現れる変数が潜んでいる。
【００３１】
図１に一致対応して、本発明によるシミュレーションモデルの実施の形態は、アルゴリズム検証部とＲＴレベル検証部との間で、新たにクロックレベル検証部が設けられていることを特徴としている。そのアルゴリズム検証部１は、図１に示されるように、アルゴリズムシステム２から形成されている。アルゴリズムシステム２は、最も抽象度が高いＨ／Ｗモデルであるアルゴリズム記述３と、Ｃ言語で記述されＳ／ＷモデルであるＣ−プログラム４とを備えている。アルゴリズムシステム２は、Ｃ−コンパイラによりアルゴリズムシミュレータ５に変換される。アルゴリズムシステム２は、アルゴリズムシミュレータ５によりシミュレートされる。
【００３２】
そのクロックレベル検証部６は、クロックレベルシステム７から形成されている。クロックレベルシステム７は、クロックレベル記述であるクロックレベルシミュレーションモデル８と、クロックレベルＣＰＵモデル９とを備えている。クロックレベルシステム７は、組込用Ｃコンパイラ１１により自動生成されて記述変換され、その記述変換には、慣用の機能合成ツール１２が持つツールであるレジスタが用語（単語又は一次変数）として用いられる。アルゴリズム記述３は、機能合成ツール１２で記述されるツールを持つモデル変換ツール１３によりクロックレベルシミュレーションモデル８に記述変換される。クロックレベルＣＰＵモデル９は、組込用Ｃコンパイラ１１によりＣ−プログラム４から自動生成される。クロックベースシミュレータ１４は、クロックレベルシミュレーションモデル８とクロックレベルＣＰＵモデル９とから形成されている。
【００３３】
そのＲＴレベル検証部１５は、ＲＴレベルシステム１６から形成されている。ＲＴレベルシステム１６は、ＲＴＬ−ＨＤＬ１７と、ＲＴレベルＣＰＵモデル１８とを備えている。ＲＴＬ−ＨＤＬ１７は、機能合成ツール１２によりアルゴリズム記述３から自動生成される。ＨＤＬシミュレータ１９は、ＲＴＬ−ＨＤＬ１７とＲＴレベルＣＰＵモデル１８とから形成されている。
【００３４】
図２は、クロックレベルシミュレーションモデル８を自動生成するモデル作成のツール構成とその作成フローを示している。機能合成ツール１２は、定数、変数の最適化機能と、スケジューリング機能と、アロケーション機能と、レジスタシェアリング機能と、ＨＤＬ生成機能とを有している。レジスタシェアリング機能は、下記３つの作成を実行する機能を有している：
（１）資源制約下で用いられる複数レジスタ資源の状態遷移の繰返しをデータパス制御により制御するＦＳＭ／ＤａｔａＰａｔｈモデル２１の作成
（２）変数とレジスタと状態位置との対応である変数／レジスタ／状態位置対応表２２の作成
（３）アルゴリズム記述のソース行とその状態位置との対応であるソース行／状態位置対応表２３の作成
モデルＩ／Ｆ情報２４は、機能合成ツール１２とモデル変換ツール１３に入力される。モデル変換ツール１３は、モデルＩ／Ｆ情報２４とＦＳＭ／ＤａｔａＰａｔｈモデル２１と変数／レジスタ／状態位置対応表２２とに基づいて動作し、アルゴリズム記述３をクロックレベルシミュレーションモデル８に記述変換して、クロックレベルシミュレーションモデル８を自動生成する。モデル変換ツール１３には、その自動生成のために、モデル機能ライブラリのデバッグ機能ライブラリ２５とモデルＩ／Ｆライブラリ２６からそれらのライブラリ情報が入力される。
【００３５】
図３は、クロックレベルシミュレーションモデル８の記述構造を示している。クロックレベルシミュレーションモデル８は、Ｂｕｓシミュレーションモデル３１を備えている。Ｂｕｓシミュレーションモデル３１は、モジュールＩＯ部３２とデータパス記述部３３とから形成されている。モジュールＩＯ部３２には、複数ＩＯレジスタ３４と複数ＩＯメモリー３５とが記述され、モデルＩ／Ｆ情報２４から作成され、当該シミュレーションモデルの入出力端子を通して組込ソフトウエアから読み書きされるＩＯレジスタ構造と、ＩＯメモリー構造を有している。クロックレベルシミュレーションモデル８は、モジュールＩＯ部を介して、他のモジュールと信号伝達を行う。データパス記述部３３は、後述されるように、複数ＩＯレジスタと複数演算子との関係を記述するデータパスと、その演算のクロック単位の動作を制御する制御構造とを有している。
【００３６】
データパス記述部３３に、シミュレーションコントローラ３６が接続している。シミュレーションコントローラ３６は、シミュレータ本体からクロック入力３７を受けてデータパス記述部３３のクロックを１つずつ進める演算動作遷移３８の循環歩進制御（ＦＳＭ制御）を行う。シミュレーションコントローラ３６から出力されるＦＳＭ制御信号３９は、データパス記述部３３に入力される。
【００３７】
データパス記述部３３は、ＧＵＩコントローラ４１に接続している。データパス記述部３３は、レジスタ値Ｒと演算遷移位置である状態位置値Ｓとを出力する。レジスタ値Ｒと状態位置値Ｓとは、ＧＵＩコントローラ４１に入力される。リセット信号がシミュレーションコントローラ３６に入力されると、データパス記述部３３のレジスタ値Ｒと状態位置値Ｓとは初期化される。
【００３８】
ＧＵＩコントローラ４１は、現在の遷移状態位置のレジスタとアルゴリズムレベル記述による変数との対応を図２に示される変数／レジスタ／状態位置対応表２２から得ることができる。ＧＵＩコントローラ４１は、更に、現在の遷移状態位置のアルゴリズムレベル記述によるソース行をソース行／状態位置対応表２３から得ることができる。
【００３９】
ＧＵＩコントローラ４１は、アルゴリズムレベル記述変数値表示ウインドウ４２と、アルゴリズムレベル記述ソース実行行表示ウインドウ４３に接続している。アルゴリズムレベル記述変数値表示ウインドウ４２には、レジスタのレジスタ値Ｒが、その遷移状態位置で、アルゴリズムレベル記述変数値として変数／レジスタ／状態位置対応表２２に基づく対応関係が与えられて表示される。複数レジスタが部分的に異なる遷移状態間で共有されることにより一時的にレジスタとの対応が消えてしまうアルゴリズムレベル記述変数の値は、ＧＵＩコントローラ４１に保持されることにより、アルゴリズムレベル記述変数値表示ウインドウ４２には、常に最新の遷移状態の最新の変数値が表示される。
【００４０】
他方で、アルゴリズムレベル記述ソース実行行表示ウインドウ４３には、現在の状態遷移位置に対応するアルゴリズムレベル記述のソース行位置値Ｓが、現在の遷移状態位置で、ソース行／状態位置対応表２３に基づく対応関係が与えられて、ハイライト表示される。更に、ＧＵＩコントローラ４１は、アルゴリズム記述変数、及び、レジスタ、クロック単位の変化の回数、状態遷移の各状態に遷移した回数、遷移元、遷移先が、シミュレーション中に計測されることにより、変数、レジスタ変化、状態変化の網羅率が測定される。このような網羅率は、テストパタンによりどれ程網羅的な検証が行われ得たかの指標になる。
【００４１】
アルゴリズム検証：
システム内に含まれるハードウエアモデルとソフトウエアモデルは、共にプログラミング言語で記述されている。そのハードウエアモデルは、ハードウエアのアルゴリズムを表現し、そのソフトウエアモデルは組み込みソフロウエアを表現している。これらのプログラミング言語記述をＣコンパイラにかけることにより、アルゴリズムレベルのシミュレータが作成される。ハードウエアに関する情報がないアルゴリズムレベルで検証可能な項目は、下記（１），（２）に示されるように、純粋に論理的な動作のみであるが、そのシミュレーションは非常に高速である。
（１）各モジュールの論理的な動作の検証
（２）システムの論理的な動作の検証
【００４２】
クロックレベル検証：
ハードウエアモデルのアルゴリズム記述を機能合成ツール、モデル変換ツールで処理することにより、クロックレベルのシミュレーションモデルが作成される。ソフトウエアモデルは、ＣＰＵのシミュレーションモデル上に組込ソフトウエアとして読み込まれ、実際のＣＰＵと同等な動作タイミングを実現する。これらのハードウエア、ソフトウエアモデルは、クロックレベルで実際のＬＳＩシステムと同等のタイミング精度を持つため、クロックレベルシミュレータ上でシミュレーションを行うことにより、下記のような項目の見積もり、検証が可能である。
（１）各モジュールのクロックレベルの動作タイミング検証
（２）各モジュールのインターフェースの概略検証（ＩＯレジスタ、ＩＯメモリ、ＩＯ端子の構成、名称、ビット幅等）
（３）各モジュール、バスの動作クロックの周波数見積もり
（４）キャッシュアクセスの見積もり（キャッシュヒット率、アクセス率、ライトバック回数等）
（５）アクセスの見積もり（バスの占有率、バスのトランザクションごとのＡｄｒｓ、Ｄａｔａ、Ｍａｓｔｅｒ、Ｓｌａｖｅ、Ｒｅａｄ／Ｗｒｉｔｅ、Ｃｏｍｍａｎｄ、語数、占有時間等）
（６）Ｂｕｓ、Ａｒｂｉｔｅｒのアルゴリズムの検証
（７）メモリ／ＩＦのトラフィックの見積もり
（８）データ処理のＴｈｒｏｕｇｈ  Ｐｕｔの見積もり（モジュール毎、バス毎、システム全体）
（９）バッファ、スタックサイズの見積もり
（１０）画質、音質の見積もり
（１１）アドレスマップ、端子、ｂｉｔ幅等モジュール間接続Ｉ／Ｆの整合性の検証
（１２）浮動小数点を固定小数点に変換した場合の見積もり
（１３）組み込みソフトウエアの開発、デバッグ
（１４）消費電力の概略見積もり
【００４３】
ＲＴレベル検証：
ハードウエアモデルは機能合成ツールが作成するＲＴＬ−ＨＤＬモデルが用いられる。このモデルは、クロックレベルよりも詳細に非同期的動作を含むタイミングの精度を持つ。ソフトウエアモデルは、クロックレベルシミュレーションと同様にＣＰＵのシミュレーションモデル上に組み込みソフトウエアとして読み込まれる。これらのＲＴＬ−ＨＤＬモデルとＣＰＵモデルをＨＤＬシミュレータ上でシミュレートすることにより、以下のような項目の検証と見積もりを行うことができる。
（１）各モジュールのインターフェースの詳細検証（制御、アドレス、データ端子のタイミング動作）
（２）各モジュールの詳細タイミングの検証
（３）消費電力の詳細見積もり
（４）テスタ向けパタン作成
【００４４】
【実施例】
図１０は、本発明によるシミュレーションモデル作成方法の実施の形態を示している。図１０に示すフロー図にそって、図４に示されるアルゴリズム記述から後述するＦＳＭ／ＤａｔａＰａｔｈモデル記述及び図８に示される変数／レジスタ／状態位置対応表、図９に示されるソース行／状態位置対応表を作成し、クロックレベルシミュレーションモデルを作成する方法を以下に述べる。
【００４５】
図４は、アルゴリズム記述３（図２参照）を例示している。機能合成ツール１２は、このアルゴリズム記述及び回路を構成する資源の制約条件を入力とする。この場合の資源制約条件は、下記の通りとする。
レジスタ：５個
加算器  ：１個
図４に示されるアルゴリズム記述中に、変数はａ、ｂ、ｃ、ｄ、Ｘの５個、加算は３個が含まれる。資源制約条件から同時に使うことができる加算器は１つであるため、演算処理は時分割され、図５に示されるようになる。図５のＣｌｏｃｋ１ではａとｂの加算を行い、その結果をＸに代入する。Ｃｌｏｃｋ２では、Ｃｌｏｃｋ１と同じ加算器を用いて、ｃとｄの加算を行い、その加算結果を一時的に保持するために、変数ｔ２を新たに作成して代入する。更に、Ｃｌｏｃｋ３ではＣｌｏｃｋ１，２と同じ加算器を用いてＸ及びｔ２の加算を行い、その加算結果をＸに代入する。このような処理を演算器のスケジューリングと呼ぶ（ステップＳ２）。
【００４６】
演算器のスケジューリングにより図４のアルゴリズム記述で示される処理を加算器１個の制約下で実現するためには、３クロックを要し、変数はａ，ｂ，ｃ，ｄ，Ｘ，ｔ２の６個を要することが分かる。レジスタに関する資源制約によれば、同時に利用できるレジスタは５個までとなっているため、レジスタについても共有化を行う必要がある。レジスタ共有化では、まずＣｌｏｃｋ１の変数ａ，ｂ及びＣｌｏｃｋ２の変数Ｘ，ｃ，ｄにレジスタ制約で許されるＲｅｇ１からＲｅｇ５までを割り当てる。Ｃｌｏｃｋ３の変数ｔ２については、Ｒｅｇ１からＲｅｇ５のうちのどれかを使い回す必要がある。Ｃｌｏｃｋ１で変数ａ，ｂに割り当てられていたＲｅｇ１、Ｒｅｇ２は、Ｃｌｏｃｋ２のＸが得られれば、その内容を保持する必要がないため、Ｃｌｏｃｋ２以降であれば使い回すことが可能である。ここでは、Ｃｌｏｃｋ３の変数ｔ２に割り当てるためＲｅｇ２を用いることにする。最後の演算結果変数Ｘについても同様にＣｌｏｃｋ３以降で使い回しができるＲｅｇ５を割り当てる。このようにして与えられたレジスタ制約の元でレジスタの共有を行う（ステップＳ３）。図４のアルゴリズム記述にステップＳ１、ステップＳ２、ステップＳ３の処理を行った結果得られるモデルをプログラミング言語で記述したものが下記に示されＦＳＭ／ＤａｔａＰａｔｈモデルとなる。
【００４７】
図８は、変数／レジスタ／状態位置対応表２２を示している。変数／レジスタ／状態位置対応表２２は、図５に示される変数と、Ｃｌｏｃｋの対応、及び、図６に示されるレジスタとクロックの対応から作成される。図５及び図６のＣｌｏｃｋ１かＣｌｏｃｋ３は、図８の状態１〜３に対応する。図８の状態１即ち図５、図６のＣｌｏｃｋ１では、レジスタＲｅｇ１は変数ａの値を持ち、レジスタＲｅｇ２は変数ｂの値を持つ。状態２では、レジスタＲｅｇ３は変数Ｘ、レジスタＲｅｇ４はｃ、レジスタＲｅｇ５はｄの値を持つ。状態３では、レジスタＲｅｇ２はｔ２、レジスタＲｅｇ３はＸ、状態４では、レジスタＲｅｇ５はＸの値を持つ。更に、初期状態として全てのレジスタに変数の割り当てがない状態０を作成する。このように各状態（即ちＣｌｏｃｋ）における変数とレジスタの対応を示したのが変数／レジスタ／状態位置対応表２２である（ステップＳ５）。
【００４８】
図９は、ソース行／状態位置対応表２３を示している。Ｃｌｏｃｋ１における変数ａとｂの加算は、図４のアルゴリズム記述では３行目に当たる。Ｃｌｏｃｋ２における変数ｃとｄの加算は、図４のアルゴリズム記述では４行目に当たる。Ｃｌｏｃｋ３における変数Ｘとｔ２の加算も４行目に当たる。最終の演算結果Ｘが得られる状態は、図４のアルゴリズム記述の５行目に当たる。図８と同様に図９の状態１〜３は、図５、図６のＣｌｏｃｋ１〜３に対応する。このようにして得られるアルゴリズム記述中の行位置と状態の対応関係を示したのが、ソース行／状態位置対応表２３である。モデル変換ツール１３にモデルＩ／Ｆ情報２４、ＦＳＭ／ＤａｔａＰａｔｈモデル２１、変数／レジスタ／状態位置対応表２２、ソース行／状態位置対応表２３から、クロックレベルシミュレーションモデル８が作成される（ステップＳ７）。ここで、モデルＩ／Ｆ情報２４は、アルゴリズム記述３で表現される回路モジュールと外部とのインターフェースを定義する情報を持つ。その内容としてはバスからアクセス可能なコマンドレジスタや状態レジスタ、データメモリの構成、更には、他のモジュールとの間のデータ転送路のビット幅、同期方式などが含まれる。
【００４９】
公知慣用のＲＴレベルシステム１６のＲＴＬ−ＨＤＬ１７は、図７に示されるように、機能合成ツール１２により自動生成される。公知ツールによりこのように自動生成されるハードウエア構成は、５つのレジスタ１〜５と、７つのマルチプレクサ１〜７と、５つのスイッチＳＷ１〜５とから形成される。クロックレベル記述モデルよりも抽象度が低いこのようなハードウエアモデルでは、レジスタの値を保持するためにレジスタの出力をデータ入力にフィードバックさせるフィードバック機能とマルチプレクサとが必要であり、更に、全てのレジスタに常にクロック信号を供給するためのクロック制御と、各マルチプレクサを制御する制御信号４４とが必要であり、更に、演算器の共有化のために入力となる複数のレジスタから１つのレジスタを選択するためにもマルチプレクサが必要である。ハードウエアモデルは、後述されるように、その他の各種多様なハード部品とそれを制御する制御信号線が必要である。
【００５０】
クロックレベルシミュレーションモデル８は、クロック単位で動作する言語として論理レベルの記述言語であるクロックレベル記述が下記ようになされる。
int DataPath (int a,b,c,d, rest)
{
static int FSM position;
static int Reg1, Reg2, Reg3, Reg4, Reg5;
if ( rest = = 1 ){
FSM position = 0;
return (0);
}
switch (FSM position) {
case 0:
Reg1 = a; Reg2 = b; Reg3 = Reg1 + Reg2;
FSM position = 1;
break;
case 1:
Reg4 = c; Reg5 = d; Reg2 = Reg4 + Reg5;
FSM position = 2;
break;
case 2:
Reg5 = a; Reg3 + Reg2;
FSM position = 3;
break;
case3:
X = Reg5;
FSM position = 0;
break;
Ｃａｓｅ１はクロック１のステップに一致し、Ｃａｓｅ２はクロック２のステップに一致し、Ｃａｓｅ３はクロック３のステップに一致している。このようにクロック単位で、レジスタ１〜５が分割されて使用されるクロックレベル記述が生成される。このクロックレベル記述は、図４に示されるアルゴリズム記述による表現よりも表現がより詳細になっているが、後記されるＲＴレベル記述から見れば、簡素化されている。そのアルゴリズムの内容によるが、アルゴリズム記述のシミュレーション時間はクロックレベル記述のシミュレーション時間に比べて概ね５００分の１であり、クロックレベル記述の動作時間はＲＴレベル記述の動作時間に比べて概ね５００分の１であることが本発明者により確認されている。
【００５１】
図７に対応するＶＨＤＬ記述が、参考のために下記に記載される。
ＲＴハードウエア記述１：
【００５２】
【数１】
0003779651.tif 000002
ＲＴハードウエア記述２：
【００５３】
【数２】
0003779651.tif 000003
ＲＴハードウエア記述３：
【００５４】
【数３】
0003779651.tif 000004
ＲＴハードウエア記述４：
【００５５】
【数４】
0003779651.tif 000005
ＲＴハードウエア記述５：
【００５６】
【数５】
0003779651.tif 000006
ＲＴハードウエア記述６：
【００５７】
【数６】
0003779651.tif 000007
ＲＴハードウエア記述７：
【００５８】
【数７】
0003779651.tif 000008
ＲＴハードウエア記述８：
【００５９】
【数８】
0003779651.tif 000009
ＲＴハードウエア記述９：
【００６０】
【数９】
0003779651.tif 000010
ＲＴハードウエア記述１０：
【００６１】
【数１０】
0003779651.tif 000011
ＲＴハードウエア記述１１：
【００６２】
【数１１】
0003779651.tif 000012
ＲＴハードウエア記述１２：
【００６３】
【数１２】
0003779651.tif 000013
ＲＴハードウエア記述１３：
【００６４】
【数１３】
0003779651.tif 000014
ＲＴハードウエア記述１４：
【００６５】
【数１４】
0003779651.tif 000015
このような記述には、コントローラに関する記述は含まれていない。ＲＴハードウエア記述１４の最初の６行はＦＦレジスタに関する記述部分であり、その次の６行はマルチプレクサに関する記述部分であり、更にその次の記述はａｄｄｅｒによる加算に関する記述部分である。両レベルの記述の両分量は、概ね、両レベルのシミュレーションにかかる時間の長さに対応している。
【００６６】
図１１は、アルゴリズムレベル記述ソース実行行表示ウインドウ４３にアルゴリズム記述ソースを表示する方法を示している。状態遷移が起こる毎に（ステップＳ１１）、ＧＵＩコントロール部４１は、現在の状態位置をＦＳＭ／ＤａｔａＰａｔｈ部３３に問い合わせる（ステップＳ１２）。例えば、現在の状態位置が状態２であった場合、ソース行／状態位置対応表２３から、対応するソースファイルがｆｉｌｅ１．ｃで行数が４行目であることが分かる（ステップＳ１３）。このようにして得られたソースファイルをＧＵＩ上で表示し、更に現在の状態位置に対応する行をハイライト表示することにより、ユーザーはアルゴリズムレベル記述上での現在の実行位置を示すことができる（ステップＳ１４）。
【００６７】
図１２は、アルゴリズム記述中の変数をアルゴリズムレベル記述変数値表示ウインドウ４２に表示する方法を示している。状態遷移が起こる毎に（ステップＳ２１）、ＧＵＩコントロール部４１は、現在の状態位置をＦＳＭ／ＤａｔａＰａｔｈ部３３に問い合わせる（ステップＳ２２）。例えば、現在の状態位置が状態３であった場合、変数／レジスタ／状態位置対応表２２から、状態３で使われる変数はｔ２とＸであり、対応するレジスタがそれぞれＲｅｇ２とＲｅｇ３であることが分かる（ステップＳ２３）。ＧＵＩコントローラ部４１は、Ｒｅｇ２とＲｅｇ３の値をＦＳＭ／ＤａｔａＰａｔｈ部３３から得て、開けられている。アルゴリズム記述変数表示ウインドウ４２にはそれぞれｔ２及びＸの値として表示する（ステップＳ２４）。これにより、ユーザーはレジスタ共有が行われていても、ＧＵＩ上ではクロックレベルシミュレーションモデル中のレジスタ値の変化をアルゴリズムレベル記述上の変数の値の変化として観測することが可能になる。
【００６８】
クロックレベルシミュレーションモデルは、図７の構造を持つＲＴＬ−ＨＤＬモデルに比べて、以下のシミュレーションが省略される。
（１）ＲＴＬ−ＨＤＬモデルは、レジスタ値を保持してそれを出力するためのフィードバックとマルチプレクサが必要であるが、プログラミング言語で実現されるクロックレベルシミュレーションモデルでは変数値の保持は代入が起こらない限りにおいて、フィードバックとマルチプレクサが不要である。
（２）ＲＴＬ−ＨＤＬモデルは、全てのレジスタに常にクロック信号が供給されるためレジスタ値は新しいデータ入力値又はそのレジスタが保持していた値に常に更新されるようになるが、クロックレベルシミュレーションモデルでは新しいデータ入力があった変数のみが更新されるため、不要な更新処理がなくシミュレーションが高速化され得る。
（３）ＲＴＬ−ＨＤＬモデルは、演算器の共有が行われるため、入力となる複数のレジスタから１つのレジスタを選択するマルチプレクサが必要であるが、クロックレベルシミュレーションモデルでは演算器に制限がなくそのような共有化が不要であり、演算器の入力を選択するマルチプレクサが不要である。
（４）クロックレベルシミュレーションモデルでは演算器共有化のためのマルチプレクサが不要であるので、マルチプレクサに必要であった制御入力を作成する回路が不要である。
（５）ＲＴＬ−ＨＤＬモデルは、全レジスタに非同期リセット信号がつくが、クロックレベルシミュレーションモデルではクロック周期単位の動作のみを扱うので、非同期的な動作を行う必要がない。
（６）ＲＴＬ−ＨＤＬモデルは、レジスタ、マルチプレクサ、演算器等のサブモジュールを利用した構造を持ち、そのサブモジュールは端子を持ち、その内部には信号線、制御機構等も持っているが、クロックレベルシミュレーションモデルでは、レジスタはプログラミング言語の変数に、マルチプレクサは条件文に、演算器は演算子で表現されるため、シミュレーション処理は大幅に簡略化される。（７）ＲＴＬ−ＨＤＬモデルは、実際のハードウエア通りに束線のビット位置の昇降順、符号のありなし、整数型／ビットベクタ型等の信号型の区別、又は、これらの間の変換を厳密に表現する必要があるが、このような区別は、クロックレベルシミュレーションモデルでは厳密に行われない。
（８）ＲＴＬ−ＨＤＬモデル内にある各サブモジュール間の動作の並列性は厳密に表現されるが、クロックレベルシミュレーションモデルでは各サブモジュールの厳密な動作タイミングの差に基づいた検証は行われないため、並列性を厳密に表現する必要がない。
（９）ＲＴＬ−ＨＤＬモデルは、クロックの変化タイミング以外にも例えばリセット信号が変化した時点の動作を厳密に表現するが、クロックレベルシミュレーションモデルではクロック単位の動作のみを扱うので、非同期的な動作に対する処理を簡略化することができる。
【００６９】
【発明の効果】
本発明によるシミュレーションモデル、その記述とその生成の方法は、アルゴリズムレベルより抽象度が低くＲＴレベルよりも抽象度が高いレベルの言語の発見により、中間レベルのシミュレーションが可能になる。アルゴリズムレベルより抽象度が低くＲＴレベルよりも抽象度が高い記述に基づいて、アルゴリズム記述のシミュレーションよりもより精細に、且つ、ＲＴレベル記述のシミュレーションよりもより高速にシミュレートすることができる。一般的には、より物理的でありより詳細に記述されるハード部品のシミュレーション言語を論理化してハード部品を変数とするプログラミング言語を作成することが可能であり、公知の複数レベルの記述の中間言語を作成することができる。
【図面の簡単な説明】
【図１】図１は、本発明による論理シミュレーションシステムの実施の形態を示すシステム図である。
【図２】図２は、本発明によるシミュレーションモデル生成方法の実施の形態を示すブロックフロー図である。
【図３】図３は、２レベル間の移行のための対応を示す論理ブロック図である。
【図４】図４は、アルゴリズム記述の実施例を示す論理式である。
【図５】図５は、クロックレベルのスケジューリングをしめす動作時間表である。
【図６】図６は、クロックレベルのレジスタの動作を示す動作時間表である。
【図７】図７は、公知のハードウエア記述を示す回路図である。
【図８】図８は、状態遷移位置数とレジスタ変数値の対応を示すテーブルである。
【図９】図９は、状態遷移位置数とソース行との対応を示すテーブルである。
【図１０】図１０は、本発明による論理シミュレーション方法の動作の実施の形態を示すフローチャートである。
【図１１】図１１は、本発明による論理シミュレーション方法の他の動作を示すフローチャートである。
【図１２】図１２は、本発明による論理シミュレーション方法の更に他の動作を示すフローチャートである。
【図１３】図１３は、公知の論理シミュレーション方法を示すシステムフロー図である。
【符号の説明】
３…アルゴリズム記述
８…クロックレベル記述（クロックレベルシミュレーションモデル）
２２，２３…対応表
２２…変数／レジスタ／状態位置対応表
２３…ソース行／状態位置対応表
１７…ＲＴレベル記述
Ｒ…変数値
Ｒｅｇ１〜５…レジスタ
【図１】
0003779651.tif 000016
【図２】
0003779651.tif 000017
【図３】
0003779651.tif 000018
【図４】
0003779651.tif 000019
【図５】
0003779651.tif 000020
【図６】
0003779651.tif 000021
【図７】
0003779651.tif 000022
【図８】
0003779651.tif 000023
【図９】
0003779651.tif 000024
【図１０】
0003779651.tif 000025
【図１１】
0003779651.tif 000026
【図１２】
0003779651.tif 000027
【図１３】
0003779651.tif 000028