JP3779651B2 - シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 - Google Patents
シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 Download PDFInfo
- Publication number
- JP3779651B2 JP3779651B2 JP2002182246A JP2002182246A JP3779651B2 JP 3779651 B2 JP3779651 B2 JP 3779651B2 JP 2002182246 A JP2002182246 A JP 2002182246A JP 2002182246 A JP2002182246 A JP 2002182246A JP 3779651 B2 JP3779651 B2 JP 3779651B2
- Authority
- JP
- Japan
- Prior art keywords
- clock
- model
- simulation
- level
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、シミュレーション方法、シミュレーションモデル、これらに対応する記録媒体、それらの記述の生成方法に関し、特に、アルゴリズム記述とRTレベル記述との間でシミュレーションを適宜に切り換えて高速度で所望の段階でシミュレーションモデルを生成してアルゴリズムを高速に又は詳細にシミュレートするシミュレーション方法、シミュレーションモデル、それらに対応する記録媒体、それらの記述の生成方法に関する。
【0002】
【従来の技術】
大規模回路は、自動設計装置により設計される。自動設計装置の設計フローは、C言語のような汎用プログラム言語、専用の動作レベル記述言語により所望の動作フローが記述された最高位レベル記述をレジスタ、加算器のようなハードウエア資源を用いてよりハードウエア化されるRTレベル記述のような低位レベル記述に書き下すステップを有している。このようにレベルが異なる抽象度の複数のシミュレーションモデルのシミュレーションは、図13(a),(b)に示されるように、抽象度が高い動作レベルシミュレーションモデル101では、初めから終わりまでこれだけがシミュレートされ、そのシミュレーションの途中で、RTレベルシミュレーションモデル102のシミュレーションは行われえず、また、抽象度が低いRTレベルシミュレーションモデル102では、初めから終わりまでこれだけがシミュレートされ、そのシミュレーションの途中で、動作レベルシミュレーションモデル101のシミュレーションは行われなかった。
【0003】
このように、動作レベルシミュレーションモデル101とRTレベルシミュレーションモデル102は、互いに独立していて別個のものとして扱われ、シミュレーションの途中で一方のシステムシミュレーションから他方のシステムシミュレーションに切り換えることは不可能であった。一般的には、速度が重要な局面では高速な上位シミュレーションモデルが用いられ、精度が重要な局面ではRTレベル、精度が更に細かく要求される局面ではレベルが更に低い他の低位シミュレーションモデルがそれぞれに用いられていた。
【0004】
しかし、機能検証のシミュレーションを行う場合、ある時刻t1から他のある時刻t2の間を特に詳しく調べたいという要望がある。そのような場合にも時刻t0から時刻t2までの検証のために高精度のシミュレータを使用すると、機能検査に多大な時間がかかってしまう。
【0005】
このような問題を解決する技術として、異なる抽象度の複数・シミュレーションモデルの間で切り換えを行うようにしたミックス・シミュレーション技術が、特開平5−61934号、論文「並列論理シミュレータWIZDOM」(情報処理学会第57回全国大会、1998)で知られている。ここで開示されている切り換えは、命令レベルシミュレーションモデルとハードウエアシミュレータ、RTレベルシミュレーションモデルのような抽象度が異なるシミュレーションモデルとの間の切り換えである。このような切り換えが可能になっている根拠は、双方のモデルがレジスタ等で共通する構造を持っていることにある。また、ゲートレベルと電子回路レベルの間でのシミュレーション切り換えが行われる技術が、特開平7−110826号で知られている。この切り換えで双方の情報のトランスファーは、ゲート回路の端子と電子回路の端子が1対1に対応していることを利用することにより、回路端子のレベルのアナログ・ディジタル変換によって行っている。また、特開平10−261002号は、ある回路記述形式を用いてその回路の動きを詳しい定義モデルと粗い定義モデルとで表現し、そのモデルの間での切り換えを開示している。このような1対1対応の高低レベル間の切り換え、詳細度の異なるものの共通の記述形式を用いた同一レベル間の切り換えが知られている。
【0006】
しかし、動作記述レベルといわれる最高位のプログラム言語記述レベルと下位記述レベルであるRTレベルの間では、シミュレーション状態を保持する構造が1対1に対応しておらず、両レベル間でデータの受け渡しができないため、従来、これらのレベル間の切り換えシミュレーションが不可能であった。シミュレーションをより適正に高速化し且つ詳細化するために、このように1対1に対応する記述がなされていないレベル間のシミュレーションモデルの切換技術の確立が特に望まれた。
【0007】
本発明者は、そのような技術の確立のために、論理回路の処理フローを記述した動作レベル記述を機能合成ツールによりRTレベル記述に変換し、その動作レベル記述とRTレベル記述をそれぞれに対応するコンパイラに入力して動作レベルシミュレーションモデル構造とRTレベルシミュレーションモデル構造を生成し、動作レベルシミュレーションモデル構造とRTレベルシミュレーションモデル構造の対応手段を生成し、動作レベルシミュレーションモデル構造とRTレベルシミュレーションモデル構造に基づいて動作レベルシミュレーションとRTレベルシミュレーションを対応手段を介して切り換えて実行するように、両レベル間でレジスタの変数値を共有させるようにしたシミュレーション方法を提案している(参照:特願平11−057040号)。
【0008】
このようなシミュレーション方法によるシミュレーションの実行過程で、本発明者は、動作モデルである最高位の抽象度を持つアルゴリズム記述から自動生成される従来のRTレベル記述は、ソースであるアルゴリズム記述から遠くかけ離れ、両記述の間に大きな抽象度の落差が存在していることに気づいた。両記述の間に潜み両記述のそれぞれの抽象度の中間にある抽象度の記述の発見が望まれ、その記述により、アルゴリズム記述より抽象度が低くRTレベルより抽象度が高い言語レベルでシミュレーションモデルを動作レベルより精細に且つRTレベルより高速にシミュレートすることが望まれる。
【0009】
【発明が解決しようとする課題】
本発明の課題は、アルゴリズムレベルより抽象度が高くRTレベルよりも抽象度が低いレベルの言語を用いてそれに基づくシミュレーションモデル、その記述とその生成の方法を提供することにある。
【0010】
本発明の他の課題は、アルゴリズムレベルより抽象度が高くRTレベルよりも抽象度が低い記述に基づいて、アルゴリズム記述のシミュレーションよりもより精細に、且つ、RTレベル記述のシミュレーションよりもより高速にシミュレートすることができるシミュレーションモデル、その記述とその生成の方法を提供することにある。
【0011】
【課題を解決するための手段】
本発明のシミュレーションモデルの生成方法では、機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、資源の制約の下で、前記機能合成部が、回路モジュールを表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成し、前記クロックレベル検証部が、前記状態遷移制御モデルと前記対応テーブルからクロックレベル記述のクロックレベルアルゴリズムモデルを生成する。前記クロックレベル記述は、単位クロックでの前記資源の各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述であり、前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源、及び前記単位クロック毎の前記アルゴリズム記述内の変数と前記資源の対応関係を表す。
【0012】
前記クロックレベルアルゴリズムモデルは、前記単位クロック毎の前記資源の動作を制御するデータパス記述部とを有する。
【0013】
また、本発明のシミュレーションモデルの生成方法では、機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、資源の制約の下で、前記機能合成部が、回路モジュールを表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成し、前記クロックレベル検証部が、前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報からクロックレベル記述のクロックレベルアルゴリズムモデルを生成してもよい。前記クロックレベル記述は、単位クロックでの前記資源の各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述であり、前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源、及び前記単位クロック毎の前記アルゴリズム記述内の変数と前記資源の対応関係を表す。
【0014】
前記クロックレベルアルゴリズムモデルは、データを入出力するI/O部と、前記単位クロック毎の前記資源の動作を制御するデータパス記述部とを有してもよい。
【0015】
いずれの場合も、前記クロックレベル記述では、前記資源のうちの1つが前記複数の変数により共有されることが好ましい。
【0016】
本発明のシミュレーション方法では、前記クロックレベル検証部が、前記単位クロックに基づいて、請求項1乃至5のいずれかに記載される前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションしてもよい。このとき、前記シミュレーションモデルは、CPUの動作に対応するクロックレベルCPUモデルを含んでもよい。
【0017】
また、前記クロックレベル検証部が、前記シミュレーションの結果に基づいて、前記資源の前記状態と前記アルゴリズム記述とを対応づけ、前記アルゴリズム記述の記述行毎の前記資源の使用状況を表示すことが好ましい。また、前記クロックレベル検証部が、前記シミュレーションモデルに含まれる前記クロックレベル記述と、前記資源の使用状況を示す資源使用対応表とを用いて、前記アルゴリズム記述と当該シミュレーションにより得られる変数値の対応を表示することが好ましい。
【0018】
前記資源の使用状況の表示では、前記クロックレベル検証部が、前記クロックレベル記述の前記単位クロックの状態遷移が起これば前記状態遷移が起こった前記アルゴリズム記述の前記記述行と前記資源の使用状況を表示し、前記変数値の対応の表示では、前記クロックレベル検証部が、前記クロックレベル記述の前記単位クロックの状態遷移が起これば前記状態遷移が起こった前記レジスタ記述の前記記述行と前記変数値を表示することが好ましい。前記変数値は、前記資源のうちのレジスタ又はメモリの値である。
【0019】
本発明のシミュレーション装置では、資源の制約の下で、回路モジュールを表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成する機能合成部と、前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報からクロックレベル記述のクロックレベルアルゴリズムモデルを生成するクロックレベル検証部とを具備する。前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源、及び前記単位クロック毎の前記アルゴリズム記述内の変数と前記資源の対応関係を表し、前記クロックレベル記述は、前記単位クロックでの前記資源の各々の動作を記述し、前記クロックレベルアルゴリズムモデルは、前記回路モジュールの前記クロックレベル記述である。
【0020】
シミュレーション装置は、表示部を更に具備してもよく、前記クロックレベル検証部は、前記シミュレーションの結果に基づいて、前記資源の前記状態と前記アルゴリズム記述とを対応づけ、前記アルゴリズム記述の記述行毎の前記資源の使用状況を前記表示部に表示し、前記クロックレベルシミュレーションモデルに含まれる前記クロックレベル記述と前記資源使用対応表とを用いて、前記アルゴリズム記述の前記記述行と当該シミュレーションにより得られる変数値の対応を前記表示部に表示する。前記クロックレベル検証部は、前記クロックレベル記述の前記クロック単位の状態遷移が起これば前記状態遷移が起こった前記アルゴリズム記述の前記記述行と前記資源の使用状況を前記表示部に表示し、前記クロックレベル記述の前記クロック単位の前記状態遷移が起これば前記状態遷移が起こった前記レジスタ記述の前記記述行と前記変数値を表示することが好ましい。
【0021】
また、シミュレーション装置では、回路の論理動作を表すハードウエアモデルを含む、前記回路のアルゴリズムレベルシミュレーションモデルをシミュレーションするアルゴリズムレベル検証部と、資源の制約の下、前記ハードウエアモデルから生成されたクロックレベルアルゴリズムモデルを含むクロックレベルシミュレーションモデルをシミュレーションするクロックレベル検証部と、前記クロックレベルアルゴリズムモデルは、単位クロックでの前記資源の各々の動作を表し、前記資源の制約の下、前記ハードウエアモデルから生成された前記回路のRTレベルアルゴリズムモデルを含むRTレベルシミュレーションモデルをシミュレーションするRTレベル検証部とを具備する。
【0022】
前記アルゴリズムレベルシミュレーションモデルは、前記回路内のCPUの動作を表すCPUモデルを含み、前記クロックレベルシミュレーションモデルは、単位クロック毎の前記CPUの動作を表すクロックレベルCPUモデルを含み、前記RTレベルシミュレーションモデルは、RTレベルで前記CPUの動作を表すRTレベルCPUモデルを含んでもよい。前記クロックレベルシミュレーションモデルのシミュレーション時間は、前記RTレベルシミュレーションモデルのシミュレーション時間より短い。シミュレーション装置は、更に、表示部を具備し、前記クロックレベル検証部は、前記クロックレベルアルゴリズムモデルと前記クロックレベルCPUモデルのシミュレーションの結果に基づいて、前記資源の前記状態と前記アルゴリズム記述とを対応づけ、前記アルゴリズム記述の記述行毎の前記資源の使用状況を前記表示部に表示し、資源の使用状況を表す資源使用対応表とを用いて、前記アルゴリズム記述の前記記述行と当該シミュレーションにより得られる変数値の対応を前記表示部に表示する。
【0023】
【発明の実施の形態】
本発明によるシミュレーションモデルの記述生成方法は、資源の制約の下で、アルゴリズム記述(3)をクロックレベル記述(8)に低位化することを含み、その低位化することは、アルゴリズム記述(3)の複数機能を単位クロックの中で動作が可能である部分機能に分解することと、その複数機能を回復するためにその部分機能を組み立てることとを備える。そのような複数機能は、クロックレベル記述であるクロックレベルシミュレータ(8)として、後述されるレジスタを変数とする言語により表現されている。レジスタを変数とする言語は、本発明者により発見された低位プログラミング記述言語である。
【0024】
クロックレベル記述は、資源のうちの複数レジスタの内のある1つのレジスタを異なる複数単位クロックのうちで動作させる記述を備える。このようなクロック間でレジスタの共有化が行われ、レジスタが変数として言語化される。
【0025】
本発明によるシミュレーションモデルは、更に、既述のこのようなシミュレーションモデルの記述生成方法により記述されたクロックレベル記述(8)と、そのクロックレベル記述に対応するアルゴリズム記述(3)とが対応する対応表(22,23)とを含む。
【0026】
本発明によるシミュレーション方法は、このようなシミュレーションモデルを用いて単位クロックで部分機能を動作させることにより複数機能をシミュレートすることを含み、更に、そのようにシミュレートすることの結果に基づいて、アルゴリズム記述(3)をデバッグすることを含む。更には、シミュレーションモデルに含まれるクロックレベル記述と対応表とを用いて、アルゴリズム記述の行数とシミュレーションにより得られる変数値の対応を表示することを含む。
【0027】
本発明によるシミュレーションモデルの生成方法は、資源の制約の下で、アルゴリズム記述(3)をクロックレベル記述(8)に低位化することを含み、その低位化することは、アルゴリズム記述(3)の複数機能を単位クロックの中で動作が可能である部分機能に分解することと、複数機能を回復するためにその部分機能を組み立てることとを備え、クロックレベル記述(8)は、その資源のうちの複数レジスタの内のある1つのレジスタを異なるクロックのうちでそれぞれに動作させる記述を備え、更に、クロックレベル記述(8)とクロックレベル記述(8)のうちのレジスタ(Reg1〜5)に関するレジスタ記述との対応表(22,23)を作成することと、クロックレベル記述(8)のクロック単位の状態遷移が起こればその状態遷移が起こったアルゴリズム記述部分を表示することと、クロックレベル記述(8)のクロック単位の状態遷移が起こればその状態遷移が起こったレジスタ記述部分のレジスタ(Reg1〜5)の変数値(R)を表示することとを含む。このような対応表の作成によって、両レベル間の移行が可能である。このようなシミュレーションモデルの生成方法に含まれる全記述がコンピュータにより読み取り可能であることは当然であり、それは記録媒体化されて利用に供される。
【0028】
本発明によるシミュレーションモデルは、アルゴリズム記述(3)と、アルゴリズム記述(3)よりも抽象度が低いRTレベル記述(17)と、アルゴリズム記述(3)よりも抽象度が低く、且つ、RTレベル記述(17)よりも抽象度が高いクロックレベル記述(8)を含み、クロックレベル記述(8)はアルゴリズム記述(3)からクロック単位で自動生成される記述であり、アルゴリズム記述(3)と、クロックレベル記述(8)と、RTレベル記述(17)とは、クロックレベル記述(8)に含まれて記述されるレジスタ(Reg1〜5)の変数値(R)を共有する。このような共有により、3つのレベル間で移行が可能である。
【0029】
更に、シミュレーションモデルは、アルゴリズム記述(3)と、アルゴリズム記述(3)よりも抽象度が低いクロックレベル記述(8)を含み、クロックレベル記述(8)は、時間軸に直交する単位クロックごとの断面上で記述されるレジスタの演算記述である。ここで、断面とは、1単位クロック内で同時的に動作が進行する一連の記述の連鎖である。アルゴリズム記述よりも抽象度が低く、且つ、時間軸に直交する単位クロックごとの断面上でレジスタに関して記述される言語は、コンピュータにより読み取り可能に表現されて記録媒体化され得る。このような媒体をコピーすることにより、同時並行的に多様なシミュレーションが可能である。アルゴリズム記述よりも抽象度が低く、且つ、時間軸に直交する単位クロックごとの断面上でレジスタに関して記述されるシミュレーションモデル用記述言語は、Reg1+Reg2のように複数レジスタが用語として多変数化されている。アルゴリズム記述(3)は数の演算を含んでいる場合には、その演算を時間軸上で進行するクロックの単位の中で実行する関数の変数がレジスタになって表現されている。
【0030】
このように、中間レベルの抽象度の言語には、レジスタの動作がクロック単位で現れる変数が潜んでいる。
【0031】
図1に一致対応して、本発明によるシミュレーションモデルの実施の形態は、アルゴリズム検証部とRTレベル検証部との間で、新たにクロックレベル検証部が設けられていることを特徴としている。そのアルゴリズム検証部1は、図1に示されるように、アルゴリズムシステム2から形成されている。アルゴリズムシステム2は、最も抽象度が高いH/Wモデルであるアルゴリズム記述3と、C言語で記述されS/WモデルであるC−プログラム4とを備えている。アルゴリズムシステム2は、C−コンパイラによりアルゴリズムシミュレータ5に変換される。アルゴリズムシステム2は、アルゴリズムシミュレータ5によりシミュレートされる。
【0032】
そのクロックレベル検証部6は、クロックレベルシステム7から形成されている。クロックレベルシステム7は、クロックレベル記述であるクロックレベルシミュレーションモデル8と、クロックレベルCPUモデル9とを備えている。クロックレベルシステム7は、組込用Cコンパイラ11により自動生成されて記述変換され、その記述変換には、慣用の機能合成ツール12が持つツールであるレジスタが用語(単語又は一次変数)として用いられる。アルゴリズム記述3は、機能合成ツール12で記述されるツールを持つモデル変換ツール13によりクロックレベルシミュレーションモデル8に記述変換される。クロックレベルCPUモデル9は、組込用Cコンパイラ11によりC−プログラム4から自動生成される。クロックベースシミュレータ14は、クロックレベルシミュレーションモデル8とクロックレベルCPUモデル9とから形成されている。
【0033】
そのRTレベル検証部15は、RTレベルシステム16から形成されている。RTレベルシステム16は、RTL−HDL17と、RTレベルCPUモデル18とを備えている。RTL−HDL17は、機能合成ツール12によりアルゴリズム記述3から自動生成される。HDLシミュレータ19は、RTL−HDL17とRTレベルCPUモデル18とから形成されている。
【0034】
図2は、クロックレベルシミュレーションモデル8を自動生成するモデル作成のツール構成とその作成フローを示している。機能合成ツール12は、定数、変数の最適化機能と、スケジューリング機能と、アロケーション機能と、レジスタシェアリング機能と、HDL生成機能とを有している。レジスタシェアリング機能は、下記3つの作成を実行する機能を有している:
(1)資源制約下で用いられる複数レジスタ資源の状態遷移の繰返しをデータパス制御により制御するFSM/DataPathモデル21の作成
(2)変数とレジスタと状態位置との対応である変数/レジスタ/状態位置対応表22の作成
(3)アルゴリズム記述のソース行とその状態位置との対応であるソース行/状態位置対応表23の作成
モデルI/F情報24は、機能合成ツール12とモデル変換ツール13に入力される。モデル変換ツール13は、モデルI/F情報24とFSM/DataPathモデル21と変数/レジスタ/状態位置対応表22とに基づいて動作し、アルゴリズム記述3をクロックレベルシミュレーションモデル8に記述変換して、クロックレベルシミュレーションモデル8を自動生成する。モデル変換ツール13には、その自動生成のために、モデル機能ライブラリのデバッグ機能ライブラリ25とモデルI/Fライブラリ26からそれらのライブラリ情報が入力される。
【0035】
図3は、クロックレベルシミュレーションモデル8の記述構造を示している。クロックレベルシミュレーションモデル8は、Busシミュレーションモデル31を備えている。Busシミュレーションモデル31は、モジュールIO部32とデータパス記述部33とから形成されている。モジュールIO部32には、複数IOレジスタ34と複数IOメモリー35とが記述され、モデルI/F情報24から作成され、当該シミュレーションモデルの入出力端子を通して組込ソフトウエアから読み書きされるIOレジスタ構造と、IOメモリー構造を有している。クロックレベルシミュレーションモデル8は、モジュールIO部を介して、他のモジュールと信号伝達を行う。データパス記述部33は、後述されるように、複数IOレジスタと複数演算子との関係を記述するデータパスと、その演算のクロック単位の動作を制御する制御構造とを有している。
【0036】
データパス記述部33に、シミュレーションコントローラ36が接続している。シミュレーションコントローラ36は、シミュレータ本体からクロック入力37を受けてデータパス記述部33のクロックを1つずつ進める演算動作遷移38の循環歩進制御(FSM制御)を行う。シミュレーションコントローラ36から出力されるFSM制御信号39は、データパス記述部33に入力される。
【0037】
データパス記述部33は、GUIコントローラ41に接続している。データパス記述部33は、レジスタ値Rと演算遷移位置である状態位置値Sとを出力する。レジスタ値Rと状態位置値Sとは、GUIコントローラ41に入力される。リセット信号がシミュレーションコントローラ36に入力されると、データパス記述部33のレジスタ値Rと状態位置値Sとは初期化される。
【0038】
GUIコントローラ41は、現在の遷移状態位置のレジスタとアルゴリズムレベル記述による変数との対応を図2に示される変数/レジスタ/状態位置対応表22から得ることができる。GUIコントローラ41は、更に、現在の遷移状態位置のアルゴリズムレベル記述によるソース行をソース行/状態位置対応表23から得ることができる。
【0039】
GUIコントローラ41は、アルゴリズムレベル記述変数値表示ウインドウ42と、アルゴリズムレベル記述ソース実行行表示ウインドウ43に接続している。アルゴリズムレベル記述変数値表示ウインドウ42には、レジスタのレジスタ値Rが、その遷移状態位置で、アルゴリズムレベル記述変数値として変数/レジスタ/状態位置対応表22に基づく対応関係が与えられて表示される。複数レジスタが部分的に異なる遷移状態間で共有されることにより一時的にレジスタとの対応が消えてしまうアルゴリズムレベル記述変数の値は、GUIコントローラ41に保持されることにより、アルゴリズムレベル記述変数値表示ウインドウ42には、常に最新の遷移状態の最新の変数値が表示される。
【0040】
他方で、アルゴリズムレベル記述ソース実行行表示ウインドウ43には、現在の状態遷移位置に対応するアルゴリズムレベル記述のソース行位置値Sが、現在の遷移状態位置で、ソース行/状態位置対応表23に基づく対応関係が与えられて、ハイライト表示される。更に、GUIコントローラ41は、アルゴリズム記述変数、及び、レジスタ、クロック単位の変化の回数、状態遷移の各状態に遷移した回数、遷移元、遷移先が、シミュレーション中に計測されることにより、変数、レジスタ変化、状態変化の網羅率が測定される。このような網羅率は、テストパタンによりどれ程網羅的な検証が行われ得たかの指標になる。
【0041】
アルゴリズム検証:
システム内に含まれるハードウエアモデルとソフトウエアモデルは、共にプログラミング言語で記述されている。そのハードウエアモデルは、ハードウエアのアルゴリズムを表現し、そのソフトウエアモデルは組み込みソフロウエアを表現している。これらのプログラミング言語記述をCコンパイラにかけることにより、アルゴリズムレベルのシミュレータが作成される。ハードウエアに関する情報がないアルゴリズムレベルで検証可能な項目は、下記(1),(2)に示されるように、純粋に論理的な動作のみであるが、そのシミュレーションは非常に高速である。
(1)各モジュールの論理的な動作の検証
(2)システムの論理的な動作の検証
【0042】
クロックレベル検証:
ハードウエアモデルのアルゴリズム記述を機能合成ツール、モデル変換ツールで処理することにより、クロックレベルのシミュレーションモデルが作成される。ソフトウエアモデルは、CPUのシミュレーションモデル上に組込ソフトウエアとして読み込まれ、実際のCPUと同等な動作タイミングを実現する。これらのハードウエア、ソフトウエアモデルは、クロックレベルで実際のLSIシステムと同等のタイミング精度を持つため、クロックレベルシミュレータ上でシミュレーションを行うことにより、下記のような項目の見積もり、検証が可能である。
(1)各モジュールのクロックレベルの動作タイミング検証
(2)各モジュールのインターフェースの概略検証(IOレジスタ、IOメモリ、IO端子の構成、名称、ビット幅等)
(3)各モジュール、バスの動作クロックの周波数見積もり
(4)キャッシュアクセスの見積もり(キャッシュヒット率、アクセス率、ライトバック回数等)
(5)アクセスの見積もり(バスの占有率、バスのトランザクションごとのAdrs、Data、Master、Slave、Read/Write、Command、語数、占有時間等)
(6)Bus、Arbiterのアルゴリズムの検証
(7)メモリ/IFのトラフィックの見積もり
(8)データ処理のThrough Putの見積もり(モジュール毎、バス毎、システム全体)
(9)バッファ、スタックサイズの見積もり
(10)画質、音質の見積もり
(11)アドレスマップ、端子、bit幅等モジュール間接続I/Fの整合性の検証
(12)浮動小数点を固定小数点に変換した場合の見積もり
(13)組み込みソフトウエアの開発、デバッグ
(14)消費電力の概略見積もり
【0043】
RTレベル検証:
ハードウエアモデルは機能合成ツールが作成するRTL−HDLモデルが用いられる。このモデルは、クロックレベルよりも詳細に非同期的動作を含むタイミングの精度を持つ。ソフトウエアモデルは、クロックレベルシミュレーションと同様にCPUのシミュレーションモデル上に組み込みソフトウエアとして読み込まれる。これらのRTL−HDLモデルとCPUモデルをHDLシミュレータ上でシミュレートすることにより、以下のような項目の検証と見積もりを行うことができる。
(1)各モジュールのインターフェースの詳細検証(制御、アドレス、データ端子のタイミング動作)
(2)各モジュールの詳細タイミングの検証
(3)消費電力の詳細見積もり
(4)テスタ向けパタン作成
【0044】
【実施例】
図10は、本発明によるシミュレーションモデル作成方法の実施の形態を示している。図10に示すフロー図にそって、図4に示されるアルゴリズム記述から後述するFSM/DataPathモデル記述及び図8に示される変数/レジスタ/状態位置対応表、図9に示されるソース行/状態位置対応表を作成し、クロックレベルシミュレーションモデルを作成する方法を以下に述べる。
【0045】
図4は、アルゴリズム記述3(図2参照)を例示している。機能合成ツール12は、このアルゴリズム記述及び回路を構成する資源の制約条件を入力とする。この場合の資源制約条件は、下記の通りとする。
レジスタ:5個
加算器 :1個
図4に示されるアルゴリズム記述中に、変数はa、b、c、d、Xの5個、加算は3個が含まれる。資源制約条件から同時に使うことができる加算器は1つであるため、演算処理は時分割され、図5に示されるようになる。図5のClock1ではaとbの加算を行い、その結果をXに代入する。Clock2では、Clock1と同じ加算器を用いて、cとdの加算を行い、その加算結果を一時的に保持するために、変数t2を新たに作成して代入する。更に、Clock3ではClock1,2と同じ加算器を用いてX及びt2の加算を行い、その加算結果をXに代入する。このような処理を演算器のスケジューリングと呼ぶ(ステップS2)。
【0046】
演算器のスケジューリングにより図4のアルゴリズム記述で示される処理を加算器1個の制約下で実現するためには、3クロックを要し、変数はa,b,c,d,X,t2の6個を要することが分かる。レジスタに関する資源制約によれば、同時に利用できるレジスタは5個までとなっているため、レジスタについても共有化を行う必要がある。レジスタ共有化では、まずClock1の変数a,b及びClock2の変数X,c,dにレジスタ制約で許されるReg1からReg5までを割り当てる。Clock3の変数t2については、Reg1からReg5のうちのどれかを使い回す必要がある。Clock1で変数a,bに割り当てられていたReg1、Reg2は、Clock2のXが得られれば、その内容を保持する必要がないため、Clock2以降であれば使い回すことが可能である。ここでは、Clock3の変数t2に割り当てるためReg2を用いることにする。最後の演算結果変数Xについても同様にClock3以降で使い回しができるReg5を割り当てる。このようにして与えられたレジスタ制約の元でレジスタの共有を行う(ステップS3)。図4のアルゴリズム記述にステップS1、ステップS2、ステップS3の処理を行った結果得られるモデルをプログラミング言語で記述したものが下記に示されFSM/DataPathモデルとなる。
【0047】
図8は、変数/レジスタ/状態位置対応表22を示している。変数/レジスタ/状態位置対応表22は、図5に示される変数と、Clockの対応、及び、図6に示されるレジスタとクロックの対応から作成される。図5及び図6のClock1かClock3は、図8の状態1〜3に対応する。図8の状態1即ち図5、図6のClock1では、レジスタReg1は変数aの値を持ち、レジスタReg2は変数bの値を持つ。状態2では、レジスタReg3は変数X、レジスタReg4はc、レジスタReg5はdの値を持つ。状態3では、レジスタReg2はt2、レジスタReg3はX、状態4では、レジスタReg5はXの値を持つ。更に、初期状態として全てのレジスタに変数の割り当てがない状態0を作成する。このように各状態(即ちClock)における変数とレジスタの対応を示したのが変数/レジスタ/状態位置対応表22である(ステップS5)。
【0048】
図9は、ソース行/状態位置対応表23を示している。Clock1における変数aとbの加算は、図4のアルゴリズム記述では3行目に当たる。Clock2における変数cとdの加算は、図4のアルゴリズム記述では4行目に当たる。Clock3における変数Xとt2の加算も4行目に当たる。最終の演算結果Xが得られる状態は、図4のアルゴリズム記述の5行目に当たる。図8と同様に図9の状態1〜3は、図5、図6のClock1〜3に対応する。このようにして得られるアルゴリズム記述中の行位置と状態の対応関係を示したのが、ソース行/状態位置対応表23である。モデル変換ツール13にモデルI/F情報24、FSM/DataPathモデル21、変数/レジスタ/状態位置対応表22、ソース行/状態位置対応表23から、クロックレベルシミュレーションモデル8が作成される(ステップS7)。ここで、モデルI/F情報24は、アルゴリズム記述3で表現される回路モジュールと外部とのインターフェースを定義する情報を持つ。その内容としてはバスからアクセス可能なコマンドレジスタや状態レジスタ、データメモリの構成、更には、他のモジュールとの間のデータ転送路のビット幅、同期方式などが含まれる。
【0049】
公知慣用のRTレベルシステム16のRTL−HDL17は、図7に示されるように、機能合成ツール12により自動生成される。公知ツールによりこのように自動生成されるハードウエア構成は、5つのレジスタ1〜5と、7つのマルチプレクサ1〜7と、5つのスイッチSW1〜5とから形成される。クロックレベル記述モデルよりも抽象度が低いこのようなハードウエアモデルでは、レジスタの値を保持するためにレジスタの出力をデータ入力にフィードバックさせるフィードバック機能とマルチプレクサとが必要であり、更に、全てのレジスタに常にクロック信号を供給するためのクロック制御と、各マルチプレクサを制御する制御信号44とが必要であり、更に、演算器の共有化のために入力となる複数のレジスタから1つのレジスタを選択するためにもマルチプレクサが必要である。ハードウエアモデルは、後述されるように、その他の各種多様なハード部品とそれを制御する制御信号線が必要である。
【0050】
クロックレベルシミュレーションモデル8は、クロック単位で動作する言語として論理レベルの記述言語であるクロックレベル記述が下記ようになされる。
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;
Case1はクロック1のステップに一致し、Case2はクロック2のステップに一致し、Case3はクロック3のステップに一致している。このようにクロック単位で、レジスタ1〜5が分割されて使用されるクロックレベル記述が生成される。このクロックレベル記述は、図4に示されるアルゴリズム記述による表現よりも表現がより詳細になっているが、後記されるRTレベル記述から見れば、簡素化されている。そのアルゴリズムの内容によるが、アルゴリズム記述のシミュレーション時間はクロックレベル記述のシミュレーション時間に比べて概ね500分の1であり、クロックレベル記述の動作時間はRTレベル記述の動作時間に比べて概ね500分の1であることが本発明者により確認されている。
【0051】
図7に対応するVHDL記述が、参考のために下記に記載される。
RTハードウエア記述1:
【0052】
【数1】
RTハードウエア記述2:
【0053】
【数2】
RTハードウエア記述3:
【0054】
【数3】
RTハードウエア記述4:
【0055】
【数4】
RTハードウエア記述5:
【0056】
【数5】
RTハードウエア記述6:
【0057】
【数6】
RTハードウエア記述7:
【0058】
【数7】
RTハードウエア記述8:
【0059】
【数8】
RTハードウエア記述9:
【0060】
【数9】
RTハードウエア記述10:
【0061】
【数10】
RTハードウエア記述11:
【0062】
【数11】
RTハードウエア記述12:
【0063】
【数12】
RTハードウエア記述13:
【0064】
【数13】
RTハードウエア記述14:
【0065】
【数14】
このような記述には、コントローラに関する記述は含まれていない。RTハードウエア記述14の最初の6行はFFレジスタに関する記述部分であり、その次の6行はマルチプレクサに関する記述部分であり、更にその次の記述はadderによる加算に関する記述部分である。両レベルの記述の両分量は、概ね、両レベルのシミュレーションにかかる時間の長さに対応している。
【0066】
図11は、アルゴリズムレベル記述ソース実行行表示ウインドウ43にアルゴリズム記述ソースを表示する方法を示している。状態遷移が起こる毎に(ステップS11)、GUIコントロール部41は、現在の状態位置をFSM/DataPath部33に問い合わせる(ステップS12)。例えば、現在の状態位置が状態2であった場合、ソース行/状態位置対応表23から、対応するソースファイルがfile1.cで行数が4行目であることが分かる(ステップS13)。このようにして得られたソースファイルをGUI上で表示し、更に現在の状態位置に対応する行をハイライト表示することにより、ユーザーはアルゴリズムレベル記述上での現在の実行位置を示すことができる(ステップS14)。
【0067】
図12は、アルゴリズム記述中の変数をアルゴリズムレベル記述変数値表示ウインドウ42に表示する方法を示している。状態遷移が起こる毎に(ステップS21)、GUIコントロール部41は、現在の状態位置をFSM/DataPath部33に問い合わせる(ステップS22)。例えば、現在の状態位置が状態3であった場合、変数/レジスタ/状態位置対応表22から、状態3で使われる変数はt2とXであり、対応するレジスタがそれぞれReg2とReg3であることが分かる(ステップS23)。GUIコントローラ部41は、Reg2とReg3の値をFSM/DataPath部33から得て、開けられている。アルゴリズム記述変数表示ウインドウ42にはそれぞれt2及びXの値として表示する(ステップS24)。これにより、ユーザーはレジスタ共有が行われていても、GUI上ではクロックレベルシミュレーションモデル中のレジスタ値の変化をアルゴリズムレベル記述上の変数の値の変化として観測することが可能になる。
【0068】
クロックレベルシミュレーションモデルは、図7の構造を持つRTL−HDLモデルに比べて、以下のシミュレーションが省略される。
(1)RTL−HDLモデルは、レジスタ値を保持してそれを出力するためのフィードバックとマルチプレクサが必要であるが、プログラミング言語で実現されるクロックレベルシミュレーションモデルでは変数値の保持は代入が起こらない限りにおいて、フィードバックとマルチプレクサが不要である。
(2)RTL−HDLモデルは、全てのレジスタに常にクロック信号が供給されるためレジスタ値は新しいデータ入力値又はそのレジスタが保持していた値に常に更新されるようになるが、クロックレベルシミュレーションモデルでは新しいデータ入力があった変数のみが更新されるため、不要な更新処理がなくシミュレーションが高速化され得る。
(3)RTL−HDLモデルは、演算器の共有が行われるため、入力となる複数のレジスタから1つのレジスタを選択するマルチプレクサが必要であるが、クロックレベルシミュレーションモデルでは演算器に制限がなくそのような共有化が不要であり、演算器の入力を選択するマルチプレクサが不要である。
(4)クロックレベルシミュレーションモデルでは演算器共有化のためのマルチプレクサが不要であるので、マルチプレクサに必要であった制御入力を作成する回路が不要である。
(5)RTL−HDLモデルは、全レジスタに非同期リセット信号がつくが、クロックレベルシミュレーションモデルではクロック周期単位の動作のみを扱うので、非同期的な動作を行う必要がない。
(6)RTL−HDLモデルは、レジスタ、マルチプレクサ、演算器等のサブモジュールを利用した構造を持ち、そのサブモジュールは端子を持ち、その内部には信号線、制御機構等も持っているが、クロックレベルシミュレーションモデルでは、レジスタはプログラミング言語の変数に、マルチプレクサは条件文に、演算器は演算子で表現されるため、シミュレーション処理は大幅に簡略化される。(7)RTL−HDLモデルは、実際のハードウエア通りに束線のビット位置の昇降順、符号のありなし、整数型/ビットベクタ型等の信号型の区別、又は、これらの間の変換を厳密に表現する必要があるが、このような区別は、クロックレベルシミュレーションモデルでは厳密に行われない。
(8)RTL−HDLモデル内にある各サブモジュール間の動作の並列性は厳密に表現されるが、クロックレベルシミュレーションモデルでは各サブモジュールの厳密な動作タイミングの差に基づいた検証は行われないため、並列性を厳密に表現する必要がない。
(9)RTL−HDLモデルは、クロックの変化タイミング以外にも例えばリセット信号が変化した時点の動作を厳密に表現するが、クロックレベルシミュレーションモデルではクロック単位の動作のみを扱うので、非同期的な動作に対する処理を簡略化することができる。
【0069】
【発明の効果】
本発明によるシミュレーションモデル、その記述とその生成の方法は、アルゴリズムレベルより抽象度が低くRTレベルよりも抽象度が高いレベルの言語の発見により、中間レベルのシミュレーションが可能になる。アルゴリズムレベルより抽象度が低くRTレベルよりも抽象度が高い記述に基づいて、アルゴリズム記述のシミュレーションよりもより精細に、且つ、RTレベル記述のシミュレーションよりもより高速にシミュレートすることができる。一般的には、より物理的でありより詳細に記述されるハード部品のシミュレーション言語を論理化してハード部品を変数とするプログラミング言語を作成することが可能であり、公知の複数レベルの記述の中間言語を作成することができる。
【図面の簡単な説明】
【図1】図1は、本発明による論理シミュレーションシステムの実施の形態を示すシステム図である。
【図2】図2は、本発明によるシミュレーションモデル生成方法の実施の形態を示すブロックフロー図である。
【図3】図3は、2レベル間の移行のための対応を示す論理ブロック図である。
【図4】図4は、アルゴリズム記述の実施例を示す論理式である。
【図5】図5は、クロックレベルのスケジューリングをしめす動作時間表である。
【図6】図6は、クロックレベルのレジスタの動作を示す動作時間表である。
【図7】図7は、公知のハードウエア記述を示す回路図である。
【図8】図8は、状態遷移位置数とレジスタ変数値の対応を示すテーブルである。
【図9】図9は、状態遷移位置数とソース行との対応を示すテーブルである。
【図10】図10は、本発明による論理シミュレーション方法の動作の実施の形態を示すフローチャートである。
【図11】図11は、本発明による論理シミュレーション方法の他の動作を示すフローチャートである。
【図12】図12は、本発明による論理シミュレーション方法の更に他の動作を示すフローチャートである。
【図13】図13は、公知の論理シミュレーション方法を示すシステムフロー図である。
【符号の説明】
3…アルゴリズム記述
8…クロックレベル記述(クロックレベルシミュレーションモデル)
22,23…対応表
22…変数/レジスタ/状態位置対応表
23…ソース行/状態位置対応表
17…RTレベル記述
R…変数値
Reg1〜5…レジスタ
Claims (13)
- 機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、
資源の制約の下で、前記機能合成部が、回路モジュールの機能を変数を用いて表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成するステップと、
前記クロックレベル検証部が、前記状態遷移制御モデルと前記対応テーブルを用いてクロックレベルアルゴリズムモデルを生成するステップとを具備し、
前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、
前記対応テーブルは、前記資源の制約の下で単位クロック毎の前記資源への前記変数の割当ての状態を表わし、
前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述に含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記クロックレベル検証部が、前記単位クロックに基づいて、前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションするステップと、
前記クロックレベル検証部が、前記シミュレーションにおいて、前記資源に割当てられた前記変数の値を表示するステップとを更に具備する
シミュレーション方法。 - 前記クロックレベルアルゴリズムモデルは、前記単位クロックに相当する前記状態内に当該状態内で演算されるデータパスを更に有している請求項1に記載のシミュレーション方法。
- 前記クロックレベルアルゴリズムモデルでは、前記変数に前記資源の一部としてレジスタが割当てられている請求項1に記載のシミュレーション方法。
- 機能合成部とクロックレベル検証部とを具備するシミュレーション装置において、
資源の制約の下で、前記機能合成部が、回路モジュールの機能を変数を用いて表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成するステップと、
前記クロックレベル検証部が、前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報を用いてクロックレベルアルゴリズムモデルを生成するステップとを具備し、
前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、
前記対応テーブルは、前記資源の制約の下で単位クロック毎の前記資源への前記変数の割当ての状態を表わし、かつ前記単位クロック毎の前記状態と当該状態に対応する前記変数の演算処理を示す前記アルゴリズム記述のソース行との対応関係を表わし、
前記クロックレベルアルゴリズムモデルは、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記クロックレベル検証部が、単位クロックに基づいて、前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションするステップと、
前記クロックレベル検証部が、前記シミュレーションにおいて、現在の前記単位クロックにおける前記アルゴリズム記述の前記ソース行を表示するステップとを更に具備する
シミュレーション方法。 - 前記クロックレベルアルゴリズムモデルは、データを入出力するI/O部と、前記単位クロック毎の前記資源の動作を制御するデータパス記述部とを有する請求項4に記載のシミュレーション方法。
- 前記クロックレベルアルゴリズムモデルでは、前記資源のうちの1つが前記変数のうちの複数により共有される請求項1乃至5のいずれかに記載のシミュレーション方法。
- 前記シミュレーションモデルは、前記回路モジュール内のCPUの動作に対応し、前記単位クロックに基づいて動作するクロックレベルCPUモデルを含む請求項1乃至6のいずれか一項に記載のシミュレーション方法。
- 請求項1乃至7のいずれか一項に記載のシミュレーション方法を実現するための、計算機により実行可能なプログラムが記録された記録媒体。
- 資源の制約の下で、回路モジュールの機能を変数を用いて表現するアルゴリズム記述から状態遷移制御モデルと対応テーブルを生成する機能合成部と、前記状態遷移制御モデルは前記資源の各々の状態遷移を制御し、前記対応テーブルは、前記資源の制約の下で単位クロック毎の前記資源への前記変数の割当ての状態を表わし、かつ前記単位クロック毎の前記状態と当該状態に対応する前記変数の演算処理を示す前記アルゴリズム記述のソース行との対応関係を表わし、
前記状態遷移制御モデル、前記対応テーブル、及び外部とのインターフェイス情報を用いてクロックレベルアルゴリズムモデルを生成するクロックレベル検証部と、
表示部と
を具備し、
前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述に含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記クロックレベル検証部は、前記シミュレーションの結果において、現在の前記単位クロックにおける、前記アルゴリズム記述の前記ソース行と前記資源に割当てられた前記変数の値を前記表示部に表示する
シミュレーション装置。 - 回路の機能を変数を用いて表現するアルゴリズム記述モデルを含む、前記回路のアルゴリズムレベルシミュレーションモデルをシミュレーションするアルゴリズムレベル検証部と、
資源の制約の下、前記アルゴリズム記述モデルから生成されたクロックレベルアルゴリズムモデルを含むクロックレベルシミュレーションモデルをシミュレーションするクロックレベル検証部と、前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述モデルに含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルであり、
前記資源の制約の下、前記アルゴリズム記述モデルから生成された前記回路のRTレベルアルゴリズムモデルを含むRTレベルシミュレーションモデルをシミュレーションするRTレベル検証部と、
表示部と
を具備し、
前記対応テーブルは、前記単位クロック毎の前記状態と当該状態に対応する前記変数の演算処理を示す前記アルゴリズム記述のソース行との対応関係を表わし、
前記クロックレベル検証部は、前記シミュレーションの結果において、現在の前記単位クロックにおける、前記アルゴリズム記述の前記ソース行と前記資源に割当てられた前記変数の値を前記表示部に表示する
シミュレーション装置。 - 前記アルゴリズムレベルシミュレーションモデルは、前記回路内のCPUの動作を表すCPUモデルを含み、
前記クロックレベルシミュレーションモデルは、単位クロック毎の前記CPUの動作を表すクロックレベルCPUモデルを含み、
前記RTレベルシミュレーションモデルは、RTレベルで前記CPUの動作を表すRTレベルCPUモデルを含む請求項10に記載のシミュレーション装置。 - 前記クロックレベルシミュレーションモデルのシミュレーション時間は、前記RTレベルシミュレーションモデルのシミュレーション時間より短い請求項11に記載のシミュレーション装置。
- シミュレーション装置が、変数を用いて回路の機能を表現するアルゴリズム記述の全体機能を部分機能に分解するステップと、
前記シミュレーション装置が、前記変数の許容される状態遷移の単位で単位クロックに基づいて前記部分機能をスケジューリングするステップと、
前記シミュレーション装置が、資源制約条件の下で、前記スケジュールされた機能の各々に資源を割当てるステップと、
前記シミュレーション装置が、前記部分機能を組み立ててクロックレベルシミュレーションモデルを生成するステップと、
前記シミュレーション装置が、単位クロックに基づいて、前記クロックレベルアルゴリズムモデルを含むシミュレーションモデルをシミュレーションするステップと、
前記シミュレーション装置が、前記シミュレーションにおいて、前記資源に割当てられた前記変数の値を表示するステップと
を具備し、
前記クロックレベルアルゴリズムモデルは、前記アルゴリズム記述に含まれる演算子の数と同数の演算子を含み、前記変数に前記資源の一部が割当てられ、前記対応テーブルに示される前記変数の割当ての状態に従って、前記回路モジュールの前記機能を前記単位クロックでシミュレーションするモデルである
シミュレーションモデル生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002182246A JP3779651B2 (ja) | 2002-06-21 | 2002-06-21 | シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002182246A JP3779651B2 (ja) | 2002-06-21 | 2002-06-21 | シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29027699A Division JP2001109788A (ja) | 1999-10-12 | 1999-10-12 | シミュレーションモデル、その生成方法、シミュレーション方法及びその記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003067438A JP2003067438A (ja) | 2003-03-07 |
JP3779651B2 true JP3779651B2 (ja) | 2006-05-31 |
Family
ID=19195346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002182246A Expired - Fee Related JP3779651B2 (ja) | 2002-06-21 | 2002-06-21 | シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3779651B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4001584B2 (ja) * | 2004-02-26 | 2007-10-31 | 松下電器産業株式会社 | シミュレーション装置 |
JP4481783B2 (ja) | 2004-09-30 | 2010-06-16 | ルネサスエレクトロニクス株式会社 | シミュレーションモデル作成装置及びシミュレーション装置とシステム並びに方法とプログラム |
JP2007310801A (ja) * | 2006-05-22 | 2007-11-29 | Nec Electronics Corp | 検証網羅性抽出回路及び方法と半導体装置並びにエミュレーションシステム |
JP5262678B2 (ja) * | 2008-12-19 | 2013-08-14 | 日本電気株式会社 | 動作合成システム、動作合成方法、及び動作合成用プログラム |
JP5110206B2 (ja) * | 2009-07-15 | 2012-12-26 | 日本電気株式会社 | 動作合成装置、動作合成方法、ならびに、プログラム |
JP5622257B2 (ja) * | 2009-11-20 | 2014-11-12 | 日本電気株式会社 | 動作合成システム及び動作合成プログラム |
-
2002
- 2002-06-21 JP JP2002182246A patent/JP3779651B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003067438A (ja) | 2003-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001109788A (ja) | シミュレーションモデル、その生成方法、シミュレーション方法及びその記録媒体 | |
JP5842255B2 (ja) | プログラミング言語による論理回路記述から論理回路を生成するための装置及び方法 | |
KR100992025B1 (ko) | 멀티-사이클 클록 게이팅 방법 | |
JPH06208602A (ja) | 可検査性設計規則の検証方法 | |
KR20130081354A (ko) | 분산 병렬 시뮬레이션에서의 통신 방법 | |
JP2002535684A (ja) | 集積回路のリアルバージョンテストとシミュレートバージョンテストを行うシステム | |
JPS5916050A (ja) | ダイナミツクゲ−トアレイ | |
TWI291655B (en) | Formation method of parallel processing system | |
JP3896177B2 (ja) | エミュレーションシステム | |
JP2005141624A (ja) | 検証装置、検証方法およびプログラム | |
US6816828B1 (en) | Logic simulation method in which simulation is dynamically switchable between models | |
US20230120227A1 (en) | Method and apparatus having a scalable architecture for neural networks | |
JPH10171848A (ja) | アーキテクチャシステムを設計する方法 | |
JP3779651B2 (ja) | シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体 | |
JPH11502646A (ja) | Asic設計における合成シェルの生成及び使用 | |
US7228513B2 (en) | Circuit operation verification device and method | |
JP4293562B2 (ja) | ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 | |
JPH05101141A (ja) | 高位合成装置 | |
US20080300806A1 (en) | Power consumption calculating method | |
US8234613B2 (en) | Program, design apparatus, and design method for dynamic reconfigurable circuit | |
US7162403B2 (en) | System and method for efficiently tracing simulation data in hardware acceleration simulation systems | |
US7703054B2 (en) | Circuit emulation and debugging method | |
WO2001035283A2 (en) | System for performing parallel circuit simulation in a high level description language | |
US6367066B1 (en) | System for synthesizing a circuit by re-writing signed variables into unsigned variables and sharing resources for identical operations having different timing | |
JP2006309667A (ja) | 動作合成検証装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050801 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051228 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060302 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100310 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110310 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120310 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130310 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130310 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140310 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |