(57)【特許請求の範囲】
【請求項１】
装置を実際に組み立てることなく動作、機能、論理等の検証を行うシミュレーション装置において、
シミュレーションすべき装置の構成を記述したハードウエア情報の中からシミュレーション処理手順を分離し、時間の経過にともなって実行が可能となる処理である順序処理および事象の生起の有無に応じて実行が決定される事象起因処理とを得るシミュレーション処理手順分離手段と、
該シミュレーション処理手順分離手段により得られた事象起因処理より各事象起因処理とそれらを接続する遷移ベクトル情報から事象起因処理の集合である事象遷移空間を作成し、当該事象遷移空間から順序処理と事象起因処理とを分離する遷移空間限定手段と、
該遷移空間限定手段により得られた事象起因処理を順序処理に書き換える順序処理変換手段とを備えたことを特徴とするシミュレーション装置。
【請求項２】
請求項１記載のシミュレーション装置において、
上記順序処理変換手段は、
環状の待ち行列リストを記憶することにより現在のシミュレーション時間から近未来に実行される予定の事象を登録するためのリング状登録手段と、
該リング状登録手段に登録されるよりも先の未来に実行される予定の事象を登録するためのオーバー・タイム登録手段と、
時間経過を実行条件としない事象を登録するサスペンド登録手段と、
上記リング状登録手段、オーバー・タイム登録手段、およびサスペンド登録手段を制御する登録制御手段とを備えたことを特徴とするシミュレーション装置。
【請求項３】
請求項２記載のシミュレーション装置において、
上記登録制御手段は、実行条件の成立した順に上記リング状登録手段から登録された事象を取り出し、
上記オーバー・タイム登録手段に登録された事象の中で最も最近に実行される予定の事象を上記リング状登録手段に登録することを特徴とするシミュレーション装置。
【請求項４】
請求項１記載のシミュレーション装置において、
上記変換された順序処理を計算機で用いられるプログラミング言語に変換するプログラミング言語翻訳手段を備えたことを特徴とするシミュレーション装置。
【請求項５】
請求項４記載のシミュレーション装置において、
上記プログラミング言語情報を計算機が直接処理できるデータに変換するデータ変換手段を備えたことを特徴とするシミュレーション装置。
【請求項６】
請求項４または５記載のシミュレーション装置において、
ハードウエア情報と、計算機で用いられるプログラミング言語で記述された情報とが混在した記述の中からプログラミング言語情報を抽出するプログラミング言語抽出手段を備え、
上記ハードウエア情報とプログラミング言語情報とが混在した情報に基づきシミュレーションを実行可能としたことを特徴とするシミュレーション装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、シミュレーション装置に関し、特にＣＡＤ（Ｃｏｍｐｕｔｏｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ  ）において、システム装置，半導体集積回路，電子回路等の回路の動作，機能，論理を、装置を実際に組み立てることなく検証する装置に関するものである。
【０００２】
【従来の技術】
従来のシミュレーション装置は、ネットリスト情報、モデル動作情報、等を含んだ「ハードウェア記述情報」を、例えば図３に示すワークステーション等で直接解釈し実行していた。
【０００３】
図３において、１はこのようなシミュレーション処理を実行するワークステーション本体、２はこのシミュレーション処理に必要な各種の情報を記憶する記憶装置、３はシミュレーション処理に必要な各種の入力やシミュレーション処理過程およびシミュレーション処理結果等を表示する高解像度ディスプレイ、４は操作者がワークステーション本体１に対し各種の指示を入力等するための、マウス等のポインティングデバイスである。
【０００４】
そして、このワークステーションによって実現されたシミュレーション装置の具体的な処理手順は以下の通りである。
【０００５】
（１）  字句解析
ハードウェア記述情報を、その予約語、定義語、その他の字句種類に基づいて分析，分類する。
【０００６】
（２）  構文解析
分類された字句種類の接続関係より、ハードウェア記述情報をその構文規則と照らし合わせ、それが正常であるならばその接続構造を含めてシミュレーション装置の保有するデータベースに登録する。
【０００７】
（３）  内部データ接続
シミュレーションを行う際に頻繁に読み出し、または書込みされるデータ項目をあらかじめ検出し、それらをデータ的に相互に接続しておく。
【０００８】
（４）  初期化
シミュレーションを開始するにあたり、シミュレーション時間、シミュレーション中に使用される記憶装置の初期化を行う。また、一番最初に処理が必要なデータ構造をあらかじめ探しだし、それを「事象順序記憶装置」に記憶しておく。
【０００９】
（５）  事象順序記憶装置から処理対象データ構造の検索
現在時間に処理すべきデータ構造を事象順序記憶装置から読み取る。
【００１０】
（６）  実行
（５）  の検索で選ばれたデータ構造のそれぞれに関して、１）順序処理、２）事象起因処理の判断を行う。
【００１１】
１）順序処理
それぞれの順序処理を、そのデータ構造を解釈しながら順次実行する。
【００１２】
２）事象起因処理
事象が起こった条件を計算し、データ構造で指定された条件を満足してい
れば、順序処理と同等な処理を行う。
【００１３】
（７）  事象起因検査
（６）  の実行をすべて行った後、その処理の際のデータ操作に伴って事象が発生したかどうかを検査する。発生していれば、その関連するデータ構造を実行予定時間の事象順序記憶装置に記憶しておく。
【００１４】
（８）  事象順序記憶装置検査
現在時間の事象順序記憶装置の内容を検査し、処理すべきデータ構造があるなら（５）  の処理へ移る。なければ、次に実行すべき時間を事象順序記憶装置から探し、その時間を現在時間とし、（５）  の処理へ移る。
【００１５】
未来時間に実行すべきデータ構造がなくなれば、シミュレーションは終了する。
【００１６】
【発明が解決しようとする課題】
従来のシミュレーション装置は、以上のように構成されており、処理を実行する際にそのデータ構造の解釈、実行を逐次行っていたため、いわゆるインタプリタに相当する方式で処理を実行することになり、シミュレーション処理の実行時間が非常に多くかかり、大規模システムになるほど、回路の動作、機能、論理の短時間での検証が困難となっていた。
【００１７】
この発明は、上記のような従来のものの問題点を解消するためになされたもので、その処理実行時間を大幅に短縮できるシミュレーション装置を得ることを目的とする。
【００１８】
【課題を解決するための手段】
本願の請求項１記載の発明に係るシミュレーション装置は、装置を実際に組み立てることなく動作、機能、論理等の検証を行うシミュレーション装置において、シミュレーションすべき装置の構成を記述したハードウエア情報の中からシミュレーション処理手順を分離し、時間の経過にともなって実行が可能となる処理である順序処理および事象の生起の有無に応じて実行が決定される事象起因処理とを得るシミュレーション処理手順分離手段と、該シミュレーション処理手順分離手段により得られた事象起因処理より各事象起因処理とそれらを接続する遷移ベクトル情報から事象起因処理の集合である事象遷移空間を作成し、当該事象遷移空間から順序処理と事象起因処理とを分離する遷移空間限定手段と、該遷移空間限定手段により得られた事象起因処理を順序処理に書き換える順序処理変換手段とを備えるようにしたものである。
【００１９】
また、本願の請求項２記載の発明に係るシミュレーション装置は、請求項１記載のシミュレーション装置において、上記順序処理変換手段は、環状の待ち行列リストを記憶することにより現在のシミュレーション時間から近未来に実行される予定の事象を登録するためのリング状登録手段と、該リング状登録手段に登録されるよりも先の未来に実行される予定の事象を登録するためのオーバー・タイム登録手段と、時間経過を実行条件としない事象を登録するサスペンド登録手段と、上記リング状登録手段、オーバー・タイム登録手段、およびサスペンド登録手段を制御する登録制御手段とを備えるようにしたものである。
【００２０】
また、本願の請求項３記載の発明に係るシミュレーション装置は、請求項２記載のシミュレーション装置において、上記登録制御手段は、実行条件の成立した順に上記リング状登録手段から登録された事象を取り出し、上記オーバー・タイム登録手段に登録された事象の中で最も最近に実行される予定の事象を上記リング状登録手段に登録するようにしたものである。
【００２１】
また、本願の請求項４記載の発明に係るシミュレーション装置は、請求項１記載のシミュレーション装置において、上記変換された順序処理を計算機で用いられるプログラミング言語に変換するプログラミング言語翻訳手段を備えるようにしたものである。
【００２２】
また、本願の請求項５記載の発明に係るシミュレーション装置は、請求項４記載のシミュレーション装置において、上記プログラミング言語情報を計算機が直接処理できるデータに変換するデータ変換手段を備えるようにしたものである。
【００２３】
また、本願の請求項６記載の発明に係るシミュレーション装置は、請求項４または５記載のシミュレーション装置において、ハードウエア情報と、計算機で用いられるプログラミング言語で記述された情報とが混在した記述の中からプログラミング言語情報を抽出するプログラミング言語抽出手段を備え、上記ハードウエア情報とプログラミング言語情報とが混在した情報に基づきシミュレーションを実行可能としたものである。
【００２８】
【作用】
この発明においては、上述のように構成したことにより、ハードウエア情報の中から、可能なものから順に順序処理に変換するようにしたので、本質的に並列処理を含むハードウエア情報を、逐次処理方式の計算機にて実行可能とする。
【００２９】
この発明においては、上述のように構成したことにより、順序処理変換手段を実現するようにしたので、事象起因処理を順序処理に変換することを可能とする。
【００３０】
この発明においては、上述のように構成したことにより、登録制御手段がリング状登録手段に生じた事象の登録の空きを、オーバー・タイム登録手段に登録されている、最も近未来の事象で補填するようにしたので、時間順の事象の流れが作り出され、シミュレーションを順序処理にて実行することを可能にする。
【００３１】
また、この発明においては、上述のように構成したので、順序処理がプログラミング言語情報に変換されるため、計算機による実行を可能とする。
【００３２】
また、本発明においては、上述のようにプログラミング情報を計算機が直接処理できるデータに変換するため、シミュレーションを高速に実行することを可能とする。
【００３３】
また、本発明においては、上述のように構成したことにより、ハードウエア情報としては記述しにくい部分を、プログラミング言語で記述でき、そのシミュレーションを可能とする。
【００３８】
【実施例】
以下、この発明の一実施例を図について説明する。図１は本発明の一実施例によるシミュレーション装置を示し、これは例えば、図３に示すようなワークステーションによって実現されている。図において、１１は外部から入力された、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｉｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）  等のハードウェア記述情報１００のなかからシミュレーションを実行するために必要な記憶装置を抽出する記憶装置抽出手段、１２はこの記憶装置抽出手段１１により抽出された記憶装置リスト１１ａに基づき使用する記憶装置の容量を最適化する記憶装置最適化手段、１３は外部から入力されたハードウェア記述情報１００のなかから本来のシミュレーション処理手順を分離するシミュレーション処理分離手段、１４はこのシミュレーション処理分離手段１３により分離された順序処理１３ａおよび事象起因処理１３ｂのうち、事象起因処理１３ｂの遷移空間領域を限定する遷移空間領域限定手段、１５は遷移空間領域限定手段１４が出力した順序処理１４ａおよび事象起因処理１４ｂのうち、事象起因処理１４ｂを順序処理に変換する順序処理変換手段、１６は記憶装置最適化手段が出力した最適化記憶装置リスト１２ｂおよび順序処理１３ａ，１４ａ，１５ａを用いて、これをプログラミング言語に変換するプログラミング言語変換手段、１７はこのプログラミング言語変換手段１６により変換されたプログラミング言語記述情報１６ａを翻訳し計算機が実行可能な情報１７ａに変換するプログラミング言語翻訳器、１８は予めその内部に構築されている事象処理順序決定装置１９を用いて実行可能情報１７ａを実行する計算機である。なお、この計算機１８は前述のワークステーション自身であってもよいし、これ以外の他の計算機であってもよい。
【００３９】
次に動作について説明する。まず、シミュレーション処理分離手段１３により、ネットリスト情報，モデル動作情報等を含んだ「ハードウェア記述情報」１００をその処理の単位で分離し、「順序処理」１３ａ、「事象起因処理」１３ｂの２つの情報を得る。このうち、順序処理１３ａに関してはこれは順次実行可能なものであるため問題はないが、事象起因情報は、シミュレーション実行仮想時刻において並列動作をする可能性があり、かつ時間待ちまたは事象待ちによりその実行が決定されるため、これはそのままでは順序処理として扱うことができない。
【００４０】
また、事象起因処理の処理順序は、それぞれの事象起因処理中に記述された「事象発生命令」により決定されるため、それぞれの事象起因処理とそれらを接続する遷移ベクトル情報から事象遷移空間を作ることにより、事象起因処理の集合を見つけることが可能になる。その事象起因処理集合１つからは、新たに順序処理と１つの事象起因処理とにこれを分離することが可能になる（「遷移空間領域限定」）。遷移空間限定手段１４は以上の原理に基づいて事象起因処理１３ｂを順序処理１４ａと１つの事象起因処理１４ｂとに分離する作業を行なう。そして、この作業により、事象の遷移をグループ化できるので、シミュレーション処理の高速化に寄与することができる。
【００４１】
事象起因処理は、あらかじめ「事象処理順序決定装置」があると想定すれば、これを順序処理の塊として扱うことが可能である。すなわち、事象起因処理中の「事象検出命令」と「事象発生命令」の処理を「事象処理順序決定装置」との交信により行うとすれば、これを順序処理として扱うことが可能になる。従って、本質的に並列処理となりうる事象起因処理を、現行の逐次処理方式の計算機で処理できる順序処理に変換してこれを実行できる。
【００４２】
順序変換処理手段１５は以上のような原理に基づき、事象処理順序決定装置と交信することによりこれを順序処理として実行できるような記述に、事象起因処理１４ｂを書き換える。
【００４３】
ところで、この「事象処理順序決定装置」は、「タイム・ホイール」と呼ばれる１つの環状の待ち行列リストの他にそれぞれ「オーバー・タイム・キュー」，「サスペンド・キュー」と呼ばれる２つの線状の待ち行列リストを記憶する記憶装置と、それらを制御する制御機構をもつ装置であり、これは予め計算機１８側に構築されている。
【００４４】
以下、この事象処理順序決定装置の動作を、このシミュレーション装置の残りの変換処理の説明に先立って説明する。
【００４５】
事象処理順序決定装置１９において、事象は、現在のシミュレーション時間からの実行予定時間、または、実行予定条件により、タイム・ホイールか、オーバー・タイム・キュー、サスペンド・キューのいずれかに登録される。タイム・ホイールは、あらかじめその登録時間範囲が決まっており、現在のシミュレーション時間から近い未来に実行される予定である事象の登録に用いられる。それより遠い未来で実行される予定の事象は、オーバー・タイム・キューに登録される。時間経過を実行条件としない事象は、サスペンド・キューに登録される。
【００４６】
事象処理順序決定装置１９は、実行条件の成立した事象をそれぞれの待ち行列リストから外し、「事象実行装置」、即ち、計算機１８における、その全てが順序処理に変換されたシミュレーション処理にそれらの事象情報を渡す。現在のシミュレーション時間に実行すべき事象がすべて無くなったときには、次に実行すべき事象の時刻までシミュレーション時間を変更する。
【００４７】
シミュレーション時間を増加する際に、空きとなったタイム・ホイールの時間項目において、オーバー・タイム・キューにおけるもっとも最近に実行される可能性のある事象が現在の時間とタイム・ホイール・キュー分の時間を加算した時間に該当するならば、その事象をオーバー・タイム・キューから外し、空きとなったタイム・ホイール項目に登録する。
【００４８】
このような事象処理順序決定装置１９を予め計算機１８側に作成しておくことにより、一般にその実行順序が確定していない事象起因処理を、その実行順序が確定している順序処理に変換することができ、これにより全てのシミュレーション動作を、逐次処理方式の現在の計算機により実行できるものに変換できる。
【００４９】
以下、本シミュレーション装置で実行される、残りの変換処理について説明すると、ハードウェア記述情報１００は前述の処理とは別処理として、「記憶装置抽出」手段１１により、使用されている記憶装置を抽出し、記憶装置リスト１１ａを得る。記憶装置リスト１１ａは、それぞれの順序処理、事象起因処理で使用されているかどうかの判断に使用され、「記憶装置最適化」手段１２により、それらの順序処理、事象起因処理の使用記憶装置として区別される情報が「最適化記憶装置リスト」１２ｂとして得られる。この「記憶装置最適化」処理によりシミュレーション実行のために必要な記憶装置があらかじめ抽出され、その重複を検査され、最適な容量分の記憶装置が確保されるので、シミュレーション実行に際しそのアクセスを高速化でき、シミュレーション実行の高速化に寄与する。また、使用記憶容量を低減化でき、高効率のシミュレーション実行を可能とする。
【００５０】
「プログラム言語変換」手段１６は、今までの処理で得た、「最適化記憶装置リスト」１２ｂと複数個ある「順序処理」の情報１３ａ，１４ｂ，１５ｂをもとに、シミュレーションを計算機で実行させるべく、これを計算機のプログラム言語であるＣ言語のソース・ファイル（「プログラミング言語ソース・ファイル」）に変換する。
【００５１】
この生成されたプログラミング言語記述情報（プログラミング言語ソース・ファイル）１６ａは、「プログラミング言語翻訳器」１７により計算機１８が直接実行可能な情報１７ａに翻訳され、あらかじめ計算機１８側に作成されている「事象処理順序決定装置」１９と共にこれを実行することにより、シミュレーションを高速に実行することが可能となる。
【００５２】
このように、上記実施例によれば、シミュレータの入力情報であるハードウェア記述言語を事象起因処理集合の単位に分離し、それぞれの処理遷移情報を抽出し、それらの事象起因記憶処理装置を選択的に処理することにより、遷移の段階がもっとも少ない遷移木構造の情報を作成し、それらの情報から逐次処理集合を作成し、これを計算機で使用されるプログラミング言語に変換することにより、逐次解析の必要のない効率に良いシミュレーションを実行することができる。そしてこれにより、本質的に並列処理を含むシミュレーションを、逐次処理に変換してこれを効率よく実行できるので、大規模システムであってもこれを短期間で検証できる。
【００５３】
なお、本発明の他の実施例を示す図２のように、ハードウエア記述情報とプログラミング言語記述情報とが混在した情報１０１からプログラミング言語記述情報１６ｂを抽出し、これをプログラミング言語翻訳器１７に出力するプログラミング言語抽出器２０を設けるようにしてもよく、これにより、プログラミング言語に変換する際に、ハードウェア記述情報だけでなく、プログラミング言語で記述された処理機構も共に実行することが可能になる。
【００５４】
また、上述のような処理によりシミュレーションすべき内容を分析，変換する計算機と、その変換結果を実行する計算機とは別個のものであってもよく、これにより、負荷の大きい側の計算機を高性能なものとすることにより、処理を一層高速化できる。
【００５５】
また、上記実施例では、シミュレーションすべき内容を分析，変換する計算機としてワークステーションを用いたものを示したが、これに限るものでないことは言うまでもない。
【００５６】
さらに、事象処理順序決定装置のタイム・ホイール、オーバー・タイム・キュー、サスペンド・キューはハード化されたものであってもよく、これによりより一層の処理の高速化が期待できる。
【００５７】
【発明の効果】
以上のように、本発明に係るシミュレーション装置によれば、シミュレーションの入力であるハードウェア記述情報を解析し、あらかじめ計算機で直接実行可能な情報に変換することにより、シミュレーション実行を直接計算機で処理することができ、大規模シミュレーションを高速に実行することができる。
【図面の簡単な説明】
【図１】この発明の一実施例によるシミュレーション装置を示すブロック図である。
【図２】この発明の他の実施例によるシミュレーション装置を示すブロック図である。
【図３】シミュレーション装置が実現されるハードウエアを示すブロック図である。
【符号の説明】
１  ワークステーション本体
２  記憶装置
３  高解像度ディスプレイ
４  ポインティングデバイス
１１  記憶装置抽出手段
１２  記憶装置最適化手段
１３  シミュレーション処理分離手段
１４  遷移空間領域限定手段
１５  順序処理変換手段
１６  プログラミング言語変換手段
１７  プログラミング言語翻訳器
１８  計算機
１９  事象処理順序決定装置
２０  プログラミング言語抽出器
【図１】
0003620860.tif 000002
【図２】
0003620860.tif 000003
【図３】
0003620860.tif 000004