JP2902972B2 - 論理シミュレータ及びハードウエア記述変換装置 - Google Patents

論理シミュレータ及びハードウエア記述変換装置

Info

Publication number
JP2902972B2
JP2902972B2 JP7082033A JP8203395A JP2902972B2 JP 2902972 B2 JP2902972 B2 JP 2902972B2 JP 7082033 A JP7082033 A JP 7082033A JP 8203395 A JP8203395 A JP 8203395A JP 2902972 B2 JP2902972 B2 JP 2902972B2
Authority
JP
Japan
Prior art keywords
signal
type
resolution
hardware description
storage unit
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
Application number
JP7082033A
Other languages
English (en)
Other versions
JPH08255191A (ja
Inventor
雄一 黒澤
奈穂美 武田
浩 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP7082033A priority Critical patent/JP2902972B2/ja
Publication of JPH08255191A publication Critical patent/JPH08255191A/ja
Application granted granted Critical
Publication of JP2902972B2 publication Critical patent/JP2902972B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ハードウェアの設計を
支援するCAD(計算機支援設計)システムに関わり、
特に論理シミュレータ(機能・論理シミュレータ)及び
ハードウエア記述変換装置に関する。
【0002】
【従来の技術】
(1)近年、LSI等の設計対象ハードウェアの大規模
化に伴い、設計効率の向上を目的として機能設計のよう
な設計の上位工程から設計を支援するCADシステムが
開発されている。
【0003】CADシステムの入力データとしては、V
HDL、Verilog HDL等のハードウェア設計
用のハードウェア記述言語(以下、HDLと記す)が用
いられる。
【0004】これらのHDLでは、ディレイや非同期動
作を扱うことを可能としているため、イベントドリブン
シミュレーションの概念に基づき言語仕様が設計されて
いる。ここで、イベントドリブンシミュレーションと
は、ある時刻においてあるモジュールの出力信号値が変
化したときのみ、前記出力信号を入力とするモジュール
について演算処理を行ない、シミュレーションを進めて
いく方式である。この方式は、上記のディレイや非同期
動作を扱う一般的な手法として広く用いられている。
【0005】イベントドリブンシミュレーションの代表
的な手順は、以下の通りである。 step0:初期プロセス実行 全ての並列動作単位(以下、プロセスと呼ぶ)を動作さ
せ、信号値更新要求のタイムホイールへの登録(以下、
信号代入予約と呼ぶ)を行なう。
【0006】step1:時刻更新 現時刻における信号値更新要求が存在するなら次のst
ep2へ移る。存在しないなら、存在するところまで時
刻を進めてから、次のstep2へ移る。 step2:信号代入 現時刻における信号値更新を実行する。 step3:プロセス実行 上記のstep2の信号が駆動するプロセスを動作さ
せ、信号代入予約を行う。そして、上記のstep1へ
戻る。
【0007】ところで、イベントドリブンシミュレーシ
ョンにおける信号には、以下に示すような種々の性質を
持つものが混在する。 1.プロセスを起動する駆動信号として働く信号と働か
ない信号 2.未来の複数の時刻に対する代入要求を同時に持つ信
号と、未来の時刻における代入要求を多くとも一つしか
持たない信号 3.シミューレーション実行中に収集すべき属性情報が
存在する信号と存在しない信号 4.1ワードで値表現できる型(例えばBIT型やCH
ARACTER型等)の信号と、2ワード必要な型(例
えばTIME型)の信号 以下、上記のそれぞれについて例をあげる。
【0008】1.図15およびその続きの図16に示す
VHDLで記述されたシミュレーションモデルにおい
て、Rにイベントが発生するとプロセスP0が起動され
る。このように、Rは駆動信号として働く。一方、Dの
値は参照されるが、Dにイベントが発生したことによっ
て起動されるプロセスはない。
【0009】2.図17に示すシミュレーションモデル
において、信号E,CLKは常に未来の時刻における代
入予約を一つだけ持つ。しかし、信号Dは最大で同時に
未来の8時刻分の信号代入予約が存在する。
【0010】3.図15および図16のCKは、CK´
eventという参照があるので、信号代入時にその時
刻でイベントが発生したかどうかという情報をセットす
る必要がある。また、図18のDINは、DIN´la
st_valueという参照があるので、一つ前の過去
の値を保持しておく必要がある。
【0011】4.VHDLにはTIME型という標準型
が存在し、その値は最少単位fs(フェムトセカンド)
から、最大単位hr(時間)まで取り得る。TIME型
の全ての単位を扱えるようにするには、TIME型の信
号の値を表現する際、2ワード必要である。例えば、図
19に示す記述において、信号Aはbit型であるた
め、代入処理などで値の変更を行うのは1ワード分の処
理で良いが、信号DELAYは2ワード分の変更が必要
になる。
【0012】従来の論理シミュレータでは、上記のよう
な信号の性質を考慮せずに、全ての信号について同じよ
うに処理を行っている。したがって、駆動信号として働
かない信号についても駆動処理を行い、代入要求を一つ
しか持たない信号についても代入要求(波形)の更新処
理を行い、あるいは属性情報を保持しなくても良い信号
についても属性情報を記憶するような、必要のない処理
も行っていた。これが、シミュレーションの高速化を妨
げる原因となていた。
【0013】一方、プロセスの中には、駆動信号が特定
の値であるときのみ動作するものとどのような値であっ
ても動作するものが混在する。例えば、図20のVHD
L記述におけるプロセスは、制御信号CLKの値が
“1”のとき値の転送が行われるが、“0”のときは何
も動作しない。一方、図21のプロセスはCLKの値が
“1”のときでも、“0”のときでも値の転送が発生す
る。
【0014】従来の論理シミュレータでは、このような
プロセスを区別せずに、同じようにプロセス起動の処理
を行っており、これがシミュレーションの高速化を妨げ
る原因となていた。
【0015】(2)近年、LSI等の設計対象ハードウ
ェアの大規模化に伴い、設計効率の向上を目的として機
能設計のような設計の上位工程から設計を支援するCA
Dシステムが開発されている。
【0016】CADシステムの入力データとしては、V
HDL、Verilog HDL等のハードウェア設計
用のハードウェア記述言語が用いられており、特にVH
DLはIEEE標準化され広く用いられつつある。図4
8に、VHDLの記述例を示す。
【0017】VHDLでは、同一のHDL記述に対し
て、シミュレータ毎にシミュレーション結果が異なり、
互換性が無い場合が起こるという従来のHDLの問題点
を考慮し、言語仕様においてシミュレーション方式を含
めて厳密に定義されている。このような、項目の1つに
レゾリューションがある。
【0018】レゾリューションとは、図48の記述中の
信号Sのように、信号値の代入源(ソース)となるプロ
セスや下階層のコンポーネントが2個以上ある信号(図
48では、Sは、プロセスP1とコンポーネントインス
タンス文B0の出力ポートの2個の代入源をもつ)の値
を決定するメカニズムである。レゾリューション信号の
値は、これらの代入源の値をもとにレゾリューション関
数と呼ばれる関数をコールすることによって得られる。
【0019】レゾリューション関数は、信号のデータタ
イプに対して定義される。そして、レゾリューション関
数の定義されないデータタイプの信号のソースは、1個
以下でなければならないという規則が設けられている。
【0020】図48の信号Sのデータタイプstd_l
ogicについては、例えば図49のようなレゾリュー
ション関数が定義される。すなわち、std_logi
cは、9値データタイプであるstd_ulogicタ
イプに対して、レゾリューションを可能としたサブタイ
プである。図49の関数resolvedの引数sは、
ソースの配列であり、途中結果resultとソース間
で図49のresolution_tableに従って
演算を順次行って結果を求めて行くものである。特に、
ソース数が1個の場合は、IF文のTHEN側の処理に
よって、レゾリューション結果は、そのソースの値とな
る。
【0021】レゾリューションは、典型的には、ハード
ウエアのバス構造をモデル化する場合に使用される。多
くのハードウエアモジュールは、チップ外部のバスとイ
ンターフェースをとり、あるいは内部にバスをもつた
め、ユーザがVHDLによってハードウエアの構造を意
識したレベルの仕様記述、例えばレジスタトランスファ
レベルやゲートレベルの仕様記述を書く場合、使用する
データタイプはレゾリューション可能なデータタイプ、
例えばstd_logicとなる。この場合、全ての信
号について、ソースが1個の場合も含めて、レゾリュー
ション関数が呼ばれることになる。
【0022】ところが、本来レゾリューションを必要と
するバスなどの信号は、回路のごく一部分であるため、
その他の信号に対するレゾリューション処理、すなわち
図49のようなソース自身の値を返す関数呼出し処理
は、シミュレーション時のオーバヘッドとなるという問
題があった。特に、大規模な回路のシミュレーションが
高速に実行できない原因の1つとなっていた。
【0023】
【発明が解決しようとする課題】
(1)シミュレーションモデルおいては、上述したよう
な様々な性質を持つ信号やプロセスが混在しているが、
従来の論理シミュレータでは、信号の性質を考慮せずに
全ての信号に対して画一的な処理を行っており、ある種
の信号やプロセスについては無駄な処理も行っていたた
め、高速にシミュレーションを行うことができないとい
う問題があった。
【0024】本発明は、上記事情に鑑みてなされたもの
であり、各信号やプロセスの有する性質に応じた処理を
行なって、無駄な処理を省き、シミュレーションの高速
化を可能にする論理シミュレータを提供することを目的
とする。
【0025】(2)ハードウエアの仕様記述において、
大部分の信号はレゾリューションを必要としない信号で
あるにもかかわらず、バス構造を表す信号などの一部の
信号がレゾリューションを必要とするために、上記した
ようなハードウエア記述はレゾリューションのためのデ
ータタイプを用いて書かれ、その結果、従来の論理シミ
ュレータでは、本来レゾリューションを必要としないソ
ースが1個の信号代入に対してもレゾリューション関数
が呼び出され、シミュレーションにおけるオーバヘッド
となっているという問題があった。
【0026】本発明は、上記事情に鑑みてなされたもの
であり、レゾリューション処理が本来不要な信号を検出
し、当該信号に対するレゾリューション処理を省略し
て、シミュレーションの高速化を可能にした論理シミュ
レータおよびハードウエア記述変換装置を提供すること
を目的とする。
【0027】
【課題を解決するための手段】本発明(請求項1)に係
る論理シミュレータは、信号またはプロセスの少なくと
一方のオブジェクトについて、該オブジェクトに属す
る各要素と、信号については、その参照のされ方、代入
のされ方、プロセス駆動信号となるか否かまたは値領域
サイズの少なくとも一つを含む、該信号に必要な処理と
不要な処理とを選別可能な所定の性質に基づき、プロセ
スについては、該プロセスが駆動される条件を含む、該
信号に必要な処理と不要な処理とを選別可能な所定の性
質に基づいて分類したオブジェクト種別との対応を記憶
するオブジェクト種別記憶手段と、信号については代
入、プロセスについては起動となる、前記オブジェクト
の要素実行を行う際に、前記オブジェクト種別記憶手
段を参照して該実行するオブジェクトの要素のオブジェ
クト種別を求め、オブジェクト種別毎に定義された処理
手順に従って、該オブジェクトの要素の処理を行なうシ
ミュレーション処理手段と備えたことを特徴とする。
【0028】オブジェクトに属する各要素とは、例えば
オブジェクトが信号オブジェクトである場合、各信号の
ことである。
【0029】オブジェクトの性質には、例えば、信号に
対するイベントや代入の起こったシミュレーションサイ
クルや時刻、信号の過去の値などに関連する属性情報の
有無、信号に対する未来における値更新要求からなる波
形の更新処理の有無、信号へのイベントで起動すべきプ
ロセス(並列動作単位)の有無、プロセスを起動する信
号に関する条件などがある。
【0030】本発明(請求項2)に係る論理シミュレー
タは、請求項1の論理シミュレータにおいて、シミュレ
ーション対象となるハードウェア記述に基づいて、前記
オブジェクト種別記憶手段に記憶する前記オブジェクト
の要素と該オブジェクトの要素に対応するオブジェクト
種別を決定するオブジェクト種別決定手段をさらに備え
たことを特徴とする。
【0031】また、本発明に係る論理シミュレーション
方法は、少なくとも1種類のオブジェクトについて、該
オブジェクトに属する各要素と該オブジェクトをその性
質により分類したオブジェクト種別との対応を記憶し、
前記オブジェクトの要素を実行する際に、記憶した前記
対応から該実行するオブジェクトの要素のオブジェクト
種別を求め、オブジェクト種別毎に定義された処理手順
に従って、該オブジェクトの要素の処理を行なうことを
特徴とする。
【0032】また、本発明に係る論理シミュレーション
方法は、シミュレーション対象となるハードウェア記述
に基づいて、少なくとも1種類のオブジェクトについ
て、該オブジェクトに属する各要素と該オブジェクトを
その性質により分類したオブジェクト種別との対応を決
定し、前記オブジェクトの要素を実行する際に、決定し
た前記対応から該実行するオブジェクトの要素のオブジ
ェクト種別を求め、オブジェクト種別毎に定義された処
理手順に従って、該オブジェクトの要素の処理を行なう
ことを特徴とする。
【0033】また、本発明(請求項3)に係る論理シミ
ュレータは、シミュレーション対象となるハードウェア
記述中で使用される信号のソース数を求める解析手段
と、レゾリューション処理を省略する対象となるデータ
タイプの信号でかつ前記解析手段により求められたソー
ス数が1個である信号に対する信号代入文に対しては、
レゾリューション信号自身に直接代入するコードを生成
するコード生成手段とを備えたことを特徴とする。
【0034】また、本発明(請求項4)に係る論理シミ
ュレータは、シミュレーション対象となるハードウェア
記述中で使用される信号のソース数を求める解析手段
と、レゾリューション処理を省略する対象となるデータ
タイプであり、前記解析手段により求められたソース数
が1個であり、かつ、該ソースに接続される下位コンポ
ーネントの出力ポートまたは入出力ポートが存在する場
合、当該ポートをレゾリューション信号自身に直接接続
するコードを生成するコード生成手段と備えたことを特
徴とする。
【0035】また、本発明(請求項5)に係るハードウ
ェア記述変換装置は、ハードウエア記述言語による仕様
記述を記憶するハードウエア記述記憶手段と、前記ハー
ドウエア記述記憶手段に記憶されているハードウエア記
述中の信号のソース数を求める解析手段と、レゾリュー
ション処理を省略する対象となるデータタイプの信号で
かつ前記解析手段により求められたソース数が1個であ
る信号宣言を、非レゾリューションタイプの信号宣言に
置き換えたハードウエア記述を生成するハードウエア記
述変換手段とを備えたことを特徴とする。
【0036】好ましくは、前記ハードウエア記述言語中
の信号代入文に基づいて、レゾリューションタイプの信
号宣言を非レゾリューションタイプの信号宣言に置き換
えることを特徴とする。また、好ましくは、前記ハード
ウエア記述言語中のコンポーネントインスタンス文に基
づいて、レゾリューションタイプの信号宣言を非レゾリ
ューションタイプの信号宣言に置き換えることを特徴と
する。また、好ましくは、前記ハードウエア記述言語中
の信号代入文およびコンポーネントインスタンス文に基
づいて、レゾリューションタイプの信号宣言を非レゾリ
ューションタイプの信号宣言に置き換えることを特徴と
する。
【0037】また、本発明に係る論理シミュレーション
方法は、レゾリューション処理を省略する対象となるデ
ータタイプを記憶し、シミュレーション対象となるハー
ドウエア記述中で使用される信号のソース数を求め、記
憶したデータタイプの信号でかつ求められたソース数が
1個である信号に対する信号代入文に対しては、レゾリ
ューション信号自身に直接代入するコードを生成するこ
とを特徴とする。
【0038】また、本発明に係る論理シミュレーション
方法は、レゾリューション処理を省略する対象となるデ
ータタイプを記憶し、シミュレーション対象となるハー
ドウエア記述中で使用される信号のソース数を求め、記
憶したデータタイプであり、求められたソース数が1個
であり、かつ、該ソースに接続される下位コンポーネン
トの出力ポートまたは入出力ポートが存在する場合、当
該ポートをレゾリューション信号自身に直接接続するコ
ードを生成することを特徴とする。
【0039】また、本発明に係るハードウエア記述変換
方法は、レゾリューション処理を省略する対象となるデ
ータイプを記憶し、シミュレーション対象となるハード
ウエア記述中の信号のソース数を求め、該ハードウエア
記述中において、記憶したデータタイプの信号でかつ求
められたソース数が1個である信号宣言を、非レゾリュ
ーションタイプの信号宣言に置き換えたハードウエア記
述を生成することを特徴とする。
【0040】
【作用】本発明(請求項1)では、信号またはプロセス
の少なくとも一方のオブジェクトについて、該オブジェ
クトに属する各要素と、信号については、その参照のさ
れ方、代入のされ方、プロセス駆動信号となるか否かま
たは値領域サイズの少なくとも一つを含む、該信号に必
要な処理と不要な処理とを選別可能な所定の性質に基づ
き、プロセスについては、該プロセスが駆動される条件
を含む、該信号に必要な処理と不要な処理とを選別可能
な所定の性質に基づいて分類したオブジェクト種別との
対応を記憶しており、オブジェクトの要素である各信号
などを実行する際に、オブジェクト種別記憶手段から該
実行するオブジェクトの要素のオブジェクト種別を求
め、オブジェクト種別毎に定義された処理手順に従っ
て、該オブジェクトの要素の処理を行なう。
【0041】したがって、本発明によれば、論理シミュ
レーション中に信号、プロセスなどの種別に応じた処理
(すなわち該種別に不要な処理を省略した処理)を行
い、シミュレーションを高速に行うことが可能となる。
【0042】これによって、シミュレーション時間を短
縮したシミュレーション環境を提供することができ、設
計者が論理シミュレーションを行なう上で、回路の設計
効率・デバッグ作業効率の向上を計ることができる。
【0043】また、請求項2では、オブジェクト種別決
定手段を設けることによって、設計者が信号オブジェク
トやプロセス・オブジェクトの種別を設定しなくても、
オブジェクトの種別を自動的に決定できる。そして、こ
の自動的に決定されたオブジェクトの種別により、該種
別に応じた処理(すなわち該種別に不要な処理を省略し
た処理)を行って、シミュレーションを高速に行うこと
が可能となる。
【0044】また、本発明(請求項3)では、シミュレ
ーション対象となるハードウエア記述中で使用される信
号のソース数を求め、レゾリューション処理を省略する
対象となるデータタイプの信号でかつ求められたソース
数が1個である信号に対する信号代入文に対しては、レ
ゾリューション信号自身に直接代入するコードを生成す
る。
【0045】したがって、本発明によれば、論理シミュ
レーション中にソースが1個の信号については、レゾリ
ューション処理を省略することができ、シミュレーショ
ンを高速に行うことが可能となる。
【0046】本発明(請求項4)では、シミュレーショ
ン対象となるハードウエア記述中で使用される信号のソ
ース数を求め、レゾリューション処理を省略する対象と
なるデータタイプであり、求められたソース数が1個で
あり、かつ、該ソースに接続される下位コンポーネント
の出力ポートまたは入出力ポートが存在する場合、当該
ポートをレゾリューション信号自身に直接接続するコー
ドを生成する。
【0047】このように、本発明によれば、コンポーネ
ントインスタンス文のoutまたはinoutポートの
接続先信号のソースが1個の場合に、当該ポートにレゾ
リューション信号自身を接続することによって、下位階
層からの当該ポートへの信号代入文の実行において、レ
ゾリューション処理を省略することができ、シミュレー
ションを高速化することが可能となる。
【0048】本発明(請求項5)では、シミュレーショ
ン対象となるハードウエア記述中の信号のソース数を求
め、レゾリューション処理を省略する対象となるデータ
タイプの信号でかつ求められたソース数が1個である信
号宣言を、非レゾリューションタイプの信号宣言に置き
換えたハードウエア記述を生成する。
【0049】したがって、本発明によれば、レゾリュー
ションタイプであって、ソース数が1個である信号を検
出し、この信号については、信号のデータタイプを非レ
ゾリューションタイプに変更することによって、レゾリ
ューション処理を省略し、シミュレーションを高速に行
うことができるようになる。
【0050】このように、本発明によれば、シミュレー
ション時間を短縮したシミュレーション環境を提供する
ことができる。よって、設計者が機能・論理シミュレー
ションを行なう上で、回路の設計効率・デバッグ作業効
率の向上を計ることができる。
【0051】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。
【0052】(1)(実施例1) まず、実施例1を説明する。
【0053】<実施例1の主な構成・作用>本実施例に
係る機能・論理シミュレータは、シミュレーション対象
となるハードウェア記述から生成された信号やプロセス
などのオブジェクトを記憶するオブジェクト記憶部
(3)と、各オブジェクト(例えば信号ID)とオブジ
ェクトをその種々の性質により分類したオブジェクト種
別との対応を記憶するオブジェクト種別記憶部(1)
と、前記オブジェクト記憶部(3)に記憶されたオブジ
ェクトの処理(信号に対する信号値更新処理やプロセス
に対するプロセス実行処理等)を実行する際に、前記オ
ブジェクト種別記憶部(1)に記憶された該オブジェク
トの種別を参照し、オブジェクトの種別毎に定められた
必要最小限の項目について、該オブジェクトの処理を実
行するシミュレーション処理部(2)とを備える。
【0054】本実施例では、シミュレーションを行なう
ときに、オブジェクトごとに記憶された信号種別を用い
ることにより、信号値更新処理手順やプロセス実行処理
手順を、当該種別を割り当てられた信号やプロセスに必
要な最低限の処理に留める。
【0055】(効果)従来のシミュレータでは、全ての
信号やプロセス等のオブジェクトについて、その性質に
かかわらず同一の処理を行っていたため、無駄な処理を
実行することが多く、シミュレーションの高速化を妨げ
ていた。
【0056】本実施例によれば、信号やプロセス等のオ
ブジェクトに種別を設け、オブジェクトを実行する際
に、その種別を参照し、種別毎に定められた必要最小限
の処理だけを行うようにすることにより、シミュレーシ
ョンを高速に行うことができる。
【0057】(具体的説明)本発明は、任意のオブジェ
クト、例えば信号、プロセス、信号とプロセスの両方な
どに適用することができるが、実施例1では本発明を信
号に対して適用したものを具体例として挙げている。ま
た、本発明をオブジェクトの1つであるプロセスに対し
て適用した例は変形例で説明する。
【0058】図1に、本実施例の機能・論理シミュレー
タの構成を示す。この機能・論理シミュレータは、オブ
ジェクト種別記憶部1、オブジェクト記憶部3およびシ
ミュレーション処理部2を備える。オブジェクト記憶部
3は、内部に、信号記憶部30およびプロセス記憶部3
1を有し、シミュレーション処理部2は、内部に、信号
代入実行部20およびプロセス実行部21を有する。
【0059】オブジェクト記憶部3は、信号記憶部30
内に、シミュレーション対象となるハードウェア記述か
ら生成されたオブジェクトの1つである信号を記憶し、
同様にプロセス記憶部31内にプロセスを記憶する。
【0060】オブジェクト種別記憶部1は、各オブジェ
クトとそのオブジェクト種別の対応を記憶する。ここで
は、各信号について、後述する信号種別を記憶するもの
とする。
【0061】シミュレーション処理部2は、信号に対し
ては、信号代入実行部20により信号値更新処理を行な
い、プロセスに対しては、プロセス実行部21によりプ
ロセス実行処理を行なう。その際、オブジェクト種別記
憶部1に記憶されたオブジェクトの種別を参照し、オブ
ジェクト記憶部3に記憶されたオブジェクトに対し、そ
のオブジェクト種別について定められた処理項目のみに
ついて、当該オブジェクトの処理を行う。
【0062】ここでは、オブジェクト種別記憶部1に信
号種別が記憶されているので、シミュレーション処理部
2は、信号に対して信号代入実行部20により信号値更
新処理を行なう際に、当該信号のオブジェクト種別をオ
ブジェクト種別記憶部1を参照して求め、得られた該信
号の信号種別について定められた処理項目についての
み、当該オブジェクトの処理を行う。
【0063】ここで、本実施例では、取り扱う信号の性
質として、 1.プロセスの駆動信号となるか否か 2.代入予約が複数発生する可能性の有無 3.シミュレーション中に参照される信号属性情報の有
無 に着目する。そして、上記3つの性質の組合わせによっ
て、図2のように8通りの信号種別を定義するものとす
る。
【0064】さて、例えば図3に示すような記述が含ま
れるシミュレーションモデルに対してシミュレーション
を行う際は、オブジェクト種別記憶部1には、図4のよ
うに信号の種別が記憶される。図4では、種別を図2の
ような信号の性質に基づいて、8通りの信号種別を0か
ら7までの数値としてコード化している。例えば、図3
中に記述されている信号Aは、プロセスP2の駆動信号
であり、プロセスP0中で波形代入があるため代入予約
が複数発生し、かつ、プロセスP2中でシミュレーショ
ン中に属性情報への参照があるので一つ前の値を保持し
ておく必要があることから、“7”とコード化してい
る。一方、図3中に記述されている信号Fは、いずれの
プロセスの駆動信号にもならず、プロセスP3において
波形代入要求があるが、属性情報の参照はない。このこ
とから、信号Fを、“2”とコード化している。
【0065】なお、信号の種別の決定には上記のような
方法以外に、信号の性質に種別決定の優先度を設けて分
類する方法が考えられる。例えば、図5のように、図2
の信号の性質(3)を持つものを優先的に種別1にし、
種別1以外のもので性質(2)を持つものを2にし、そ
れ以外で性質(1)を持つものを3、持たない残りのも
のを4とするなどのようにして、決定してもよい。この
場合、シミュレーション中に信号の属性情報参照のある
信号はその他の性質に依存せずに種別1とするため、例
えば図3中に記述されている信号Aや信号C等は、優先
的に種別が1とされる。
【0066】本実施例では、オブジェクト種別に基づい
て信号の代入処理を行うシミュレーション処理部2の信
号代入実行部20は、図6およびその続きの図7のよう
な処理を行なう。
【0067】信号代入実行部20は、シミュレーション
実行中に、オブジェクト種別記憶部1に記憶されている
その信号の信号種別を参照し、図6および図7にしたが
って信号代入処理を行う。この場合、その信号で行うべ
き必要最小限の処理のみを行うので、シミュレーション
を高速に行うことができる。
【0068】例えば、信号の代入処理で信号Aの処理を
行う場合、図4を参照すると、オブジェクト種別記憶部
1に記憶されている種別が7であるので、図6および図
7のcase7から、信号の属性情報のセット、信号値
の更新、プロセス起動、代入要求の更新を全て行なう。
【0069】同様に、信号Bの処理を行う場合、信号B
の種別は6であるから、case6のように、信号値の
更新、プロセス起動、代入要求の更新を行う。この場
合、信号の属性情報のセットは行わない。
【0070】また、信号Cでは、種別は5であるから、
case5のように、信号の属性情報のセット、信号値
の更新、プロセス起動を行う。この場合、代入要求の更
新は行わない。
【0071】信号Dの種別は4であるから、case4
のように、信号値の更新、プロセス起動を行う。この場
合、代入要求の更新、信号の属性情報のセットは行わな
い。
【0072】信号Eの種別は3であるから、case3
のように、信号の属性情報のセット、信号値の更新、代
入要求の更新を行う。この場合、プロセス起動は行わな
い。
【0073】信号Fの種別は2であるから、case2
のように、信号の信号値の更新、代入要求の更新を行
う。この場合、プロセス起動、信号の属性情報のセット
は行わない。
【0074】信号Gの種別は1であるから、case1
のように、信号の属性情報のセット、信号値の更新を行
う。この場合、代入要求の更新、プロセス起動は行わな
い。
【0075】信号Hの種別は8であるから、case0
のように、信号値の更新のみ行う。この場合、信号の属
性情報のセット、プロセス起動、代入要求の更新は行わ
ない。
【0076】このように、本実施例によれば、信号やプ
ロセス等のオブジェクトに種別を設け、オブジェクトを
実行する際に、その種別を参照し、種別毎に定められた
必要最小限の処理だけを行うようにすることにより、シ
ミュレーションを高速に行うことができる。
【0077】<実施例1の変形その1>以上述べてきた
実施例1では、信号の性質として、 1.プロセスの駆動信号となるか否か 2.代入予約が複数発生する可能性の有無 3.シミュレーション中に参照される信号属性情報の有
無 に着目した種別に対する代入処理の例を挙げたが、この
他にも種別を決定するときに利用される性質が考えられ
る。
【0078】例えば、VHDLでは、TIMEという標
準型が存在し、この値は最小単位はfsから最大単位は
hr(時間)までとり得る。TIME型の全ての単位を
扱えるようにするには、TIME型の信号の値を表現す
る際、2ワード必要である。図19に示す記述におい
て、信号A,CLKはbit型であるので、値は1ワー
ドで表現できるが、DELAYはTIME型であるので
値表現には2ワード必要である。
【0079】このように、「値の代入で2ワードの代入
を行わなければならないもの」、「1ワードの代入のみ
で良いもの」、という性質に着目して、1ワードの代入
実行を行うべき信号の種別を1とし、2ワードの代入実
行を行うべき信号の種別を2とする。この場合、信号代
入処理部20の処理は、例えば図8に示すようになる。
信号Aは種別1であり、信号DELAYは種別2である
ので、それぞれ、1ワード分だけの値の代入処理、2ワ
ード分の値の代入の処理が行われる。
【0080】<実施例1の変形その2>実施例1では、
オブジェクト種別記憶部1に種別を記憶するオブジェク
トを信号として、信号種別によって信号代入処理部20
が信号代入処理を高速化する例を示したが、信号の種別
に応じて処理を行なう代わりに、あるいは信号の種別に
応じて処理を行なうのに加えて、プロセスの種別をオブ
ジェクト種別記憶部1に記憶し、プロセスの種別によっ
てプロセス実行処理部21のプロセス起動処理を高速化
することもできる。
【0081】例えば、図9のように記述されたプロセス
に対して、図10に示す性質から得られる図11の種別
をオブジェクト種別記憶部1に記憶した場合、プロセス
の種別に応じて不必要なプロセスの起動を抑制し、シミ
ュレーションを高速化することが可能になる。
【0082】例えば、プロセスP1は駆動信号CLKの
値が“1”の時のみ意味のある動作をし、“0”の時は
起動されてもifでfalseとなるので、何も処理さ
れない。このようなプロセスには、種別1を割り当て
る。そして、種別1のプロセス起動処理において駆動信
号の値が“1”の時のみ起動し、それ以外の場合は起動
を行わない。このようにして、無駄な起動を省略するこ
とができる。
【0083】(実施例2)次に、実施例2を説明する。 <実施例2の主な構成・作用>本実施例に係る機能・論
理シミュレータは、シミュレーション対象となるハード
ウェア記述を記憶する記述記憶部(4)と、記憶された
ハードウェア記述中の信号やプロセスなどのオブジェク
トについてその種々の性質により分類したオブジェクト
種別を決定するオブジェクト種別決定部(8)と、各オ
ブジェクト(例えば信号ID)と前記オブジェクト種別
決定部(8)により決定されたオブジェクト種別との対
応を記憶するオブジェクト種別記憶部(1)と、前記ハ
ードウェア記述から生成された信号やプロセスなどのオ
ブジェクトを記憶するオブジェクト記憶部(3)と、前
記オブジェクト記憶部(3)に記憶されたオブジェクト
の処理(信号に対する信号値更新処理やプロセスに対す
るプロセス実行処理等)を実行する際に、前記オブジェ
クト種別記憶部(1)に記憶された該オブジェクトの種
別を参照し、オブジェクトの種別毎に定められた必要最
小限の項目について、該オブジェクトの処理を実行する
シミュレーション処理部(2)とを備える。また、オブ
ジェクト種別決定部(8)は、記述記憶部(4)に記憶
されたハードウェア記述からオブジェクト種別決定に用
いられる特徴(性質)を抽出する特徴抽出部(6)、抽
出した特徴を記憶する特徴記憶部(7)、記憶された特
徴からオブジェクト種別を決定するオブジェクト種別決
定部(5)を有する。すなわち、本実施例は、実施例1
やその変形例の構成に加えて、記述記憶部(4)とるオ
ブジェクト種別決定部(8)をさらに設けたものであ
る。
【0084】本実施例では、オブジェクト種別決定部
(8)は、記述記憶部(4)に記憶されたシミュレーシ
ョン対象となるハードウェア記述からオブジェクトのオ
ブジェクト種別を決定し、これが実施例1やその変形例
で説明したオブジェクト種別記憶部(1)に記憶され
る。それ以降は、実施例1やその変形例と同様に、オブ
ジェクト種別を参照しながら、シミュレーションが進め
られて行く。
【0085】(効果)本実施例によれば、設計者が信号
オブジェクトやプロセス・オブジェクトの種別を設定し
なくても、オブジェクトの種別を自動的に決定できる。
そして、この自動的に決定されたオブジェクトの種別に
より、実施例1やその変形例に示したものと同様の効果
を得ることができる。
【0086】(具体的説明)本発明は、任意のオブジェ
クト、例えば信号オブジェクト、プロセス・オブジェク
ト、信号オブジェクトとプロセス・オブジェクの両方な
どに適用することができる。ここでは、本発明を信号オ
ブジェクトに対して適用したものを具体例として挙げて
いる。
【0087】図12に、本実施例の機能・論理シミュレ
ータの構成を示す。
【0088】この機能・論理シミュレータは、記述記憶
部4、オブジェクト種別決定部8、オブジェクト種別記
憶部1、シミュレーション処理部2、オブジェクト記憶
部3を備える。オブジェクト記憶部3は、内部に、信号
記憶部30およびプロセス記憶部31を有し、シミュレ
ーション処理部2は、内部に、信号代入実行部20およ
びプロセス実行部21を有する。すなわち、実施例1や
その変形例の構成に、記述記憶部4とオブジェクト種別
決定部8をさらに設けたものである。
【0089】記述記憶部4は、シミュレーション対象と
なるハードウェア記述を記憶する。
【0090】オブジェクト種別決定部8は、記憶された
シミュレーションモデルのハードウェア記述から信号ま
たはプロセス等のオブジェクトのうち少くとも1つの種
別を自動的に決定する。この決定された種別は、オブジ
ェクト種別記憶部1に記憶される。
【0091】特徴抽出部6は、記述記憶部4に記憶され
たハードウェア記述からオブジェクト種別決定に用いら
れる特徴を抽出する。特徴記憶部7は、抽出した特徴を
記憶する。オブジェクト種別決定部5は、記憶された特
徴からオブジェクト種別を決定する。
【0092】オブジェクト種別記憶部1、シミュレーシ
ョン処理部2、オブジェクト記憶部3、信号代入実行部
20、プロセス実行部21、信号記憶部30、プロセス
記憶部31の構成や働きは、実施例1やその変形例と同
様であるので、ここでの説明は省略する。
【0093】さて、例えば記述記憶部4に、先に示した
図3のようなシミュレーションモデルの記述が記憶され
ているものとする。このとき、特徴抽出部6は、信号の
特徴を抽出し、特徴記憶部7に記憶する。例えば、先に
示したテーブル図2を作成し、テーブル形式で記憶す
る。
【0094】例えば、信号AはプロセスP2のセンシテ
ィビティリストになっているので、プロセスの駆動信号
となるという性質がある。また、プロセスP0で波形代
入されており、プロセスP2でlast_valueを
参照しているので、代入予約が複数発生する可能性があ
り、かつ、シミュレーション実行中に属性情報の参照が
あることがわかる。したがって、図2に示すテーブルで
は、(1)(2)(3)の性質は、それぞれ○,○,○
となる。一方信号Gは、どのプロセスの駆動信号にもな
らず、波形代入も存在しないが、属性情報が参照される
という性質があることがわかる。したがって、図2に示
すテーブルでは、×,×,○となる。
【0095】種別決定部5は、このようにして抽出され
た特徴から種別を決定する。種別決定部5のアルゴリズ
ムの一例を図13に、他の例を図14に夫々示す。
【0096】種別決定部5で図13のアルゴリズムを用
いる場合、種別は図4のように決定される。図13のア
ルゴリズムでは、性質1,性質2,性質3の夫々が成り
立つ場合に、その種別コードの下位2ビット目,1ビッ
ト目,0ビット目の夫々に1を立てるものである。従っ
て、例えば、信号Aについては性質1,2,3の全てが
成り立っているので、その種別コードは2進数111
(2) すなわち7となる。また、信号Fについては性質2
のみが成り立っているので、そのコードは010(2)
すなわち2となる。
【0097】種別決定部5のアルゴリズムが図14であ
る場合には、種別は図5のように決定される。例えば、
信号Bの場合には、性質3は×である(図2参照)の
で、1行目のifはfalseとなる。性質2は○であ
るので4行目はtrueとなり5行めで種別は2とな
る。
【0098】このように決定された種別をオブジェクト
種別記憶部1に記憶し、実施例1やその変形例で述べた
ように信号代入処理やプロセス起動処理を行うことによ
って、シミュレーション中の無駄を省きシミュレーショ
ンを高速化することができる。
【0099】<実施例2の変形その1>上記の実施例2
では、一度記憶された信号の種別はシミュレーションの
途中で変化することはないが、シミュレーション途中で
デバッグのために、last_value等の信号の属
性を途中から参照する場合に属性情報を記憶するように
信号の種別を書き換えたり、その後、参照を止めて高速
にシミュレーションする場合に元の種別に戻したりし
て、属性を変化させて利用する方法もある。
【0100】<実施例2の変形その2>実施例2では、
記述記憶部4にVHDL記述が記憶されているとした
が、シミュレーションモデルの信号、プロセス等のオブ
ジェクトの特徴を抽出できるものならなんでも良い。ま
た、解析木、図面なども含む。
【0101】<実施例1、2の変形その1>以上、実施
例1、2で述べてきたものは、VHDL記述の例であ
り、イベントドリブン法の場合として述べているが、本
発明は、レベルソート法でシミュレーションする場合に
も適用できる。
【0102】<実施例1、2の変形その2>また、上記
では、一階層に記述された例を挙げたが、複数の階層に
またがって記述されたシミュレーションモデルにおいて
も同様に適用できる。
【0103】(2)(実施例3) 次に、実施例3を説明する。 <実施例3の主な構成・作用>本実施例に係る論理シミ
ュレータは、シミュレーションモデルにおける信号のソ
ース数を求める解析部(113)と、レゾリューション
処理を省略する対象となるデータタイプを記憶するデー
タタイプ記憶部(112)と、前記データタイプ記憶部
(112)に記憶されているデータタイプの信号でかつ
求められたソース数が1である信号に対する代入文に対
して、レゾリューションのソースではなくレゾリューシ
ョン信号自身に直接代入するコードを生成するコード生
成部(114)とを備える。
【0104】本実施例では、コード生成部(114)
は、解析部(113)による解析結果をもとに、データ
タイプ記憶部(112)に記憶されているタイプの信号
でかつソース数が1である信号に対して、レゾリューシ
ョンを省いた、より高速なコードを生成する。
【0105】<効果>従来のシミュレータでは、レゾリ
ューションタイプ全ての信号について、ソースが1個の
場合であっても、レゾリューション処理を行っていた。
【0106】本実施例によれば、レゾリューションタイ
プであって、ソース数が1個である信号を検出し、この
信号については、レゾリューションを行わないシミュレ
ーションコードを生成することにより、シミュレーショ
ンを高速に行うことができるようになる。
【0107】<具体的説明>以下、コンパイル方式シミ
ュレータの場合を例にとって説明する。
【0108】図22に、本実施例の論理シミュレータの
構成を示す。この論理シミュレータは、ハードウエア記
述記憶部111、データタイプ記憶部112、解析部1
13、コード生成部114、コード記憶部115を備え
る。
【0109】ハードウエア記述記憶部111は、図48
のようなVHDL言語などで書かれたソースプログラム
を記述するためのものである。
【0110】データタイプ記憶部112は、レゾリュー
ション省略可能なデータタイプを記憶する。当該データ
タイプは、ソースが1個の場合にそのソースの値を返す
レゾリューション関数を持つデータタイプであり、例え
ば、IEEEパッケージで定義されたstd_logi
cタイプが相当する。先に示した図49は、レゾリュー
ション関数の一例である。当該データタイプは、例え
ば、レゾリューション関数を、すべての1スカラー要素
入力についてシミュレーションし、結果が入力と一致す
るか否かを調べることで、自動的に検出することも可能
である。例えば、4値データタイプであれば、それら4
通りの入力パターンに対するシミュレーション結果を入
力と比較すればよい。
【0111】データタイプ記憶部112には、このよう
にして得られたデータタイプを記憶しておく。ここで
は、データタイプ記憶部112には、std_logi
cタイプが記憶されているものとする。
【0112】解析部113は、データタイプ記憶部11
1にあるVHDL記述を解析して、レゾリューション信
号を検出し、信号名とそのソース数およびデータタイプ
の対応をテーブルに登録する。図23に、このテーブル
の一例を示す。
【0113】コード生成部114は、解析部113が作
成したテーブルを参照しながら、VHDL記述に対応す
るCプログラムとして、VHDL記述のエラボレーショ
ンを行うコードとステートメントの実行を行うコードを
生成する。
【0114】コード記憶部115は、生成されたCプロ
グラムを記憶する。
【0115】シミュレータ実行モジュールは、コード記
憶部115に記憶されたCプログラムと予め作成された
シミュレーションライブラリをリンクすることによって
生成される。
【0116】以下、図48のVHDL記述の場合につい
て説明する。
【0117】図24に、解析部113の処理の流れを示
す。
【0118】ステップS31で、各コンカレント文につ
いて調べる。図48では、プロセス文P0、コンカレン
ト信号代入文P1、コンポーネントインスタンス文B
0,B1が順に取出される。
【0119】ステップS33でコンポーネントインスタ
ンス文とそれ以外の場合で分岐する。図48では、P
0,P1の場合、ステップS33でNOとなり、ステッ
プS38に進む。
【0120】ステップS38では、コンカレント文の中
で代入されている信号、すなわちP0におけるS0、お
よびP1におけるSを、図23の形式のテーブルに登録
する。このテーブルは、レゾリューションタイプの信号
名とデータタイプ、ソース数を記憶する。
【0121】ここで、図25にテーブル登録処理の流れ
を示す。
【0122】ステップS41では、信号がベクトル信号
ならば、それをスカラー要素にに分解する。例えば、図
48では、S1がベクトル信号であり、これをスカラー
要素S1(0),S1(1)に分解する。
【0123】ステップS42からステップS44のルー
プでは、分解された信号をテーブルに登録する。したが
って、P0,P1を処理した段階で、S0,S1のエン
トリを作成し、そのデータタイプにstd_logic
を、ソース数に1を夫々セットする。なお、ベクトル信
号をスカラーに分解した場合は、VHDLのデータタイ
プの定義を辿ってそのスカラー要素のタイプを登録す
る。例えば、図22のstd_logic_vecto
rであれば、そのスカラー要素のタイプであるstd_
logicを登録する。
【0124】さて、ステップS33で、B0,B1のよ
うにコンポーネントインスタンス文であった場合、その
各ポートの接続関係を調べ(ステップS34)、out
またはinoutポートに接続する信号をテーブルに登
録する(ステップS36,37)。したがって、B0に
おいてはSおよびS1(0)が、B1においてはS1
(0)およびS1(1)が、上記の図25のフローにし
たがってテーブルに登録される。
【0125】この結果、解析部113のテーブルの内容
が、図23のように設定されることとなる。テーブル
中、SおよびS1(0)は、夫々2回登録されたため、
ソース数が2となっている。
【0126】次に、コード生成部14は、解析部13の
テーブルを参照しながら、シミュレーションのためのC
プログラムを生成する。Cプログラムには、2種類のも
のが存在する。1つはVHDL記述内のプロセス、信号
などのオブジェクトを生成するエラボレーションコード
であり、他の1つはVHDL記述内のステートメントを
実行するコードである。図26とその続きの図27にコ
ード生成部14が生成するエラボレーションコードの一
例を示し、図28にコード生成部14が生成する実行コ
ードの一例を示す。ただし、図26および図27のエラ
ボレーションコードについては、本発明に関連する部分
のみを図示する。
【0127】図26の20行は、図48のVHDL記述
の階層に対応するデータ構造hを生成する。22行から
26行と44行(図27)は、ポート、信号、レゾリュ
ーション情報、プロセスに関する情報を第一引数の個数
だけ生成するコードである。
【0128】これらの構造体に含まれる情報を図29〜
32に示す。図29はプロセス構造体の一例を、図30
はポート構造体の一例を、図31は信号構造体の一例
を、図31はレゾリューション構造体の一例を示す。
【0129】図48の記述は、ポート、信号、プロセス
(コンカレント代入文を含む)をそれぞれ1個、4個、
2個持つため、上記の実引数によってコードが生成され
る。また、図23より、レゾリューションタイプの信号
は4個存在するため、レゾリューション情報は4個生成
する。
【0130】31行目(図26)の関数st_f21
は、図31の信号構造体のf21のフィールドに対応す
るレゾリューション情報をセットする。48行目(図2
7)のst_f22も、同様に、f22フィールドにセ
ットするものである。
【0131】27行目は、レゾリューションのソースに
対応する信号構造体をさすためのポインタ列を引数の個
数分生成する。解析部13のテーブル(図23)によっ
て、ソース数の合計は6個であるため、当該実引数は6
となる。
【0132】61行目、74行目は、コンポーネントイ
ンスタンス文B0,B1による階層構造を生成する。
【0133】47行目、54行目、76行目は、プロセ
スやコンポーネントインスタンスによって作られるレゾ
リューションのソースを生成する。ソースは、図31に
示す信号構造体を使用する。
【0134】51行目、58行目、66行目、67行
目、79行目、80行目は、上記信号ポインタ列とソー
スに対する構造体を結合する。
【0135】図26および図27の関数を実行させたと
きにできるメモリ上のデータ構造間のリンクを、図33
と図34に示す。
【0136】図33は、レゾリューション信号Sとその
ソース間のリンクを示す。図中の93は信号Sであり、
Sはレゾリューション信号であるため、レゾリューショ
ン構造体(図中920)を持ち、そこから、各ポインタ
(図中の921,922)を介して各ソース(図中の9
7,98)と接続する。
【0137】図34は、プロセスと信号の関係を示す。
プロセス構造体のフィールドf0,f1,f2はそれぞ
れポート、信号、プロセスによって作られたソース列の
先頭を指す。図27の70行目、83行目は、ポートマ
ップによって指定されたポートの接続先信号構造体を実
引数として、当該コンポーネントの下階層を展開する関
数bind_buftの呼出しである。
【0138】当該関数のスカラーoutまたはinou
tポートに接続する実引数を生成するフローを図35に
示す。ベクトルポートについては、例えば、複数のスカ
ラーポートとみなすことによって、同様に扱うことがで
きる。
【0139】例えば、コンポーネントインスタンス文B
1のポートDO1については、ステップS110で接続
先S1(0)を得て、ステップS111においてそのデ
ータタイプstd_logicはタイプは記憶部12に
記憶されているデータタイプであるのでYESとなり、
ステップS112において図23のテーブルを参照する
とソース数は2であるので、ステップS114へ進み、
Sのソースの信号構造体cmpnt_srcsig+0
を第二実引数として渡す。
【0140】一方、ポートDO2については、ステップ
S110で接続先S1(1)が得られ、ステップS11
1,S112へと進むが、図23のテーブルを参照する
とソース数は1であるので、ステップS113へ進み、
S1(1)のソースではなく、S1(1)自身の信号構
造体intsig+3を第三実引数として渡す。
【0141】上記のbind_buftの呼出しによっ
て生成されるデータ構造を図36に示す。図中121か
ら123は、コンポーネントインスタンスB1のポート
DI、DO1、DO2を表す。DO1のf10フィール
ドはS1(0)のソースへ接続するが、DO2のf10
フィールドはS1(1)のソースではなく、S1(1)
自身に接続する。
【0142】このように、コンポーネントインスタンス
文のoutまたはinoutポートの接続先信号のソー
スが1個の場合に、当該ポートにレゾリューション信号
自身を接続することによって、下位階層からの当該ポー
トへの信号代入文の実行において、レゾリューション処
理を省略することができ、シミュレーションを高速化す
ることが可能となる。
【0143】なお、inポートへの接続においては、常
に対応する信号構造体自身を接続する。
【0144】ここで、図36の124の点線により従来
手法によるポートDO2の接続関係を示す。すなわち、
従来手法では、ソースが1個の信号についてもそのソー
スをポートの接続先とする。このため、当該ポートへの
信号代入は、ソースへの代入となり、後のシミュレーシ
ョンサイクルにおいてレゾリューション関数呼出しが行
われ、シミュレーションのオーバヘッドとなっている。
【0145】次に、コード生成部14による実行コード
生成を説明する。
【0146】実行コードでは、プロセス構造体のf0,
f1,f2が示す先頭アドレスを基準として、オブジェ
クトをアクセスする。したがって、プロセス(図34中
91)のf1フィールドの指す先をintsigとする
と、信号S(図34中93),S0はそれぞれints
ig+0,intsig+1でアクセスできる。また、
f2フィールドの指す先をsrcsigとすると、P1
によるSのソース(図34中97)はsrcsig+0
となる。
【0147】本発明に関連するのは、信号代入文のコー
ドのみであるため、信号代入文のコード生成について述
べる。
【0148】図37に、スカラー要素に対する信号代入
文のコード生成のフローを示す。
【0149】ベクトルについては、例えば、スカラー要
素毎に上記のコード生成のフローを適用すればよい。例
えば、図48の22行目のS0への代入文の変換につい
ては、ステップS130で代入先の信号名S0が取り出
され、ステップS131では、当該データタイプは記憶
部12に記憶されているデータタイプであるのでYES
となり、ステップS132において図23のテーブルを
参照するとソース数は1以下であるので、ステップS1
33へ進み、S0の信号構造体へ代入するコードを生成
する。前記のように、S0はプロセスP0のf1フィー
ルドの指すアドレスintsigを基準として、int
sig+1となるため、信号代入実行関数をassig
n_inertialとすると、assign_ine
rtial(intsig+1,3,0)となる。ここ
で、上記関数の引数は順に、代入先の信号構造体の先頭
へのポインタ代入値(シミュレータ内部コードにコード
化されたもの)遅延である。
【0150】このように、S0はソースが1個であるた
め、ソースを表す信号構造体srcsig+0(ここ
で、pをプロセス構造体として、srcsig = 1
p−>f2)には代入せずに、直接、S0を表す信号構
造体に代入する。これにより、S0に対するレゾリュー
ション関数の実行を省略することができ、シミュレーシ
ョンを高速化することが可能となる。
【0151】図28は、プロセスP0全体の実行コード
の一例である。引数pは当該プロセス構造体へのポイン
タ、exec_wait_forはwait文の実行関
数である。
【0152】一方、コンカレント代入文P1について
は、図37のステップS133において図23のテーブ
ルを参照するとソース数は2であるのでNOとなり、ス
テップS135へ進み、Sのソースに代入する図38の
コードを生成する。図38のコードによってプロセス実
行時には、S0のソースsrcsig+0に値更新要求
がセットされ、次のシミュレーションサイクルのレゾリ
ューションフェーズにS0のレゾリューション関数実行
と値更新が行われる。
【0153】ここで、本発明を使用しない場合の、従来
手法によるプロセスP0の実行コードを図39に示す。
図39の場合、S0のソース数が1個であるにもかかわ
らず、図38と同様にS0のソースの信号構造体src
sig+0に対して代入を行うため、次のシミュレーシ
ョンサイクルのレゾリューションフェーズにS0のレゾ
リューション関数が呼び出され、assign_ine
rtialの第2引数の値がセットされることになる。
したがって、引数自身の値を返すレゾリューション関数
の呼び出しは、シミュレーションのオーバヘッドとな
る。
【0154】以上のように、本実施例によれば、レゾリ
ューションタイプであって、ソース数が1個である信号
を検出し、この信号については、レゾリューションを行
わないシミュレーションコードを生成することにより、
シミュレーションを高速に行うことができるようにな
る。
【0155】<実施例3の変形その1>実施例3におい
て、コード生成部14で生成される図26および図27
のエラボレーションコードでは、ソースが1個の信号に
対しても当該ソースに対応する信号構造体を作成してい
たが、本発明によれば、これらはシミュレーション時に
アクセスしないため、コード生成部14が当該構造体を
作成しないような最適化されたエラボレーションコード
を出力することも可能である。
【0156】図40とその続きの図41に、このような
最適化コードを示す。コード生成部14は、図23のテ
ーブルを参照しながら、26行目、27行目のように、
new_resinf,new_sigpの実引数とし
てそれぞれ、テーブルに登録されたソースを2個以上も
つ信号の個数、それらの信号のソース数の合計を与えた
コードを生成する。また、46行目、55行目、68行
目のように、テーブルに登録されたソースを1個しかも
たない信号については、必要となるソースの信号構造体
数から除外して、コードを生成する。
【0157】以上のように、最適化したコードを生成す
ることにより、シミュレーションに必要なメモリ量も削
減することができる。
【0158】<実施例3の変形その2>実施例3は、コ
ンパイル方式シミュレータの場合を説明したが、本発明
は、インタープリタ方式シミュレータにも適用可能であ
る。
【0159】図42に、この場合の論理シミュレータの
構成を示す。この論理シミュレータは、ハードウエア記
述記憶部171、データタイプ記憶部172、解析部1
73、回路データ生成部174、コード生成部176、
回路データ構造記憶部175、コード記憶部177を備
える。
【0160】図42において、ハードウエア記述記憶部
171、データタイプ記憶部172、解析部173は、
図22のハードウエア記述記憶部111、データタイプ
記憶部112、解析部113とそれぞれ同様である。
【0161】インタプリタ方式では、回路データ生成部
174とコード生成部176が図22のコード生成部1
4に対応する。す11なわち、回路データ生成部174
は、図33、図34、図36に示すようなネットワーク
データ構造を生成し、回路データ構造記憶部175に記
憶する。コード生成部176は、プロセスに対する実行
コードのみをシミュレータが解釈可能な命令として生成
し、コード記憶部177に記憶する。
【0162】ここで、回路データ生成部174は、解析
部173における図23のようなテーブルを参照し、コ
ンポーネントインスタンス文のoutまたはinout
ポートの接続先信号がデータタイプ記憶部12のタイプ
を持ち、かつソース数が1である場合に、当該ポートに
ソースの信号構造体でなく、レゾリューション信号自身
を接続したデータ構造を生成する。また、コード生成部
176は、ソース数が1であるデータタイプ記憶部17
2のタイプの信号への代入文を、ソースの信号構造体で
なく当該信号自信へ代入する命令列に変換する。そし
て、回路データ記憶部175に記憶された回路データと
コード記憶部177に記憶された命令をメモリ上にロー
ドし、当該命令を順次実行して行く。
【0163】このように、インタープリタ方式シミュレ
ータの場合にも、同様に、レゾリューション処理を必要
最小限に抑え、シミュレーションを高速化することがで
きる。 <実施例3の変形その3>実施例3やその変形
例において、コード生成部114,176、回路データ
生成部174は、ベクトル信号に対して、それを要素の
スカラー信号毎に分解し、要素毎にレゾリューションを
行うべきか否かを判断しているが、ベクトル信号の全て
の要素が1個以下のソースをもつときのみ、レゾリュー
ションを行わないコードを生成するようにしてもよい。
【0164】(実施例4)次に、実施例4を説明する。 <実施例4の主な構成・作用>本実施例に係る論理シミ
ュレータは、ハードウエア記述言語による仕様記述を記
憶するハードウエア記述記憶部(181)と、このハー
ドウエア記述記憶部(181)に記憶されている記述中
の信号のソース数を求める解析部(183)と、レゾリ
ューション処理を省略する対象となるデータタイプを記
憶するデータタイプ記憶部(182)と、このデータタ
イプ記憶部(182)に記憶されているデータタイプの
信号でかつ求められたソース数が1である信号宣言を、
非レゾリューションタイプの信号宣言に置き換えたハー
ドウエア記述を生成するハードウエア記述変換部(18
4)を備える。
【0165】本実施例では、ハードウエア記述変換部
(184)は、解析部(183)による解析結果をもと
に、データタイプ記憶部(182)に記憶されているタ
イプの信号でかつ求められたソース数が1である信号を
非レゾリューションタイプとして扱ったハードウエア記
述を生成する。
【0166】<効果>従来のシミュレータでは、レゾリ
ューションタイプ全ての信号について、ソースが1個の
場合であっても、レゾリューション処理を行っていた。
【0167】本実施例によれば、レゾリューションタイ
プであって、ソース数が1個である信号を検出し、この
信号については、信号のデータタイプを非レゾリューシ
ョンタイプに変更することによって、レゾリューション
処理を省略し、シミュレーションを高速に行うことがで
きるようになる。
【0168】<具体的説明>以下、コンパイル方式シミ
ュレータの場合を例にとって説明する。
【0169】図43に本実施例の論理シミュレータの構
成を示す。この論理シミュレータは、第1のハードウエ
ア記述記憶部181、データタイプ記憶部182、解析
部183、ハードウエア記述変換部184、第2のハー
ドウエア記述記憶部185、コード生成部186、コー
ド記憶部187を備える。
【0170】図43の第1のハードウエア記述記憶部1
81、データタイプ記憶部182、解析部183は、実
施例3(図22)のハードウエア記述記憶部111、デ
ータタイプ記憶部112、解析部113とそれぞれ同様
である。
【0171】ハードウエア記述変換部184は、ハード
ウエア記述記憶部181に記述された信号について、そ
れがデータタイプ記憶部182に記憶されたレゾリュー
ションタイプであってかつ解析部183によるソース数
の解析結果が1個以下である信号について、そのデータ
タイプを当該レゾリューションタイプのベースタイプで
ある非レゾリューションタイプである信号宣言に置き換
える。また、必要であれば、変更前の信号とその信号を
参照している部分を新しい信号名で置き換えた記述に変
換し、その結果を第2のハードウエア記述記憶部185
に記憶する。
【0172】コード生成部186は、第2のハードウエ
ア記述記憶部185に記憶されたVHDL記述に対応す
るCプログラムとして、VHDL記述のエラボレーショ
ンを行うコードとステートメントの実行を行うコードを
生成し、コード記憶部187に記憶する。
【0173】以下、第1のハードウエア記述記憶部18
1に図48のVHDL記述が記憶され、データタイプ記
憶部182には、std_logicタイプが記憶され
ているとしている場合を例にとって説明する。
【0174】解析部183は、実施例3と同様にして、
図23のテーブルを生成する。
【0175】ハードウエア記述変換部184は、前述の
ように、図48のVHDL記述の信号宣言と当該信号の
参照を変換する。
【0176】1個の信号宣言に対する変換部184の処
理フローを図44に示す。
【0177】ハードウエア記述変換部184は、全ての
信号宣言について、上記の処理フローを適用する。例え
ば、図48の信号S0については、ステップS191,
S192,S193,S194と進み、ステップS19
4において、図23のテーブルを参照して、YESとな
るため、ステップS195へ進んでS0のデータタイプ
std_logicをベースタイプであるstd_ul
ogicに変更した宣言signal S0 : st
d_ulogic ; を出力する。
【0178】次に、ベクトル信号S1については、それ
をスカラー要素毎に分解して、ステップS196からス
テップS1914のループで処理する。まず、S1
(0)については、そのデータタイプはstd_log
icであるため、ステップS198においてYESとな
り、ステップS199において新しい名前を生成する。
例えば、信号名と要素番号を“_”介して結合し、S1
_0とする。ステップS1910において、S1(0)
のソース数は2であるため、ステップS1912,S1
913と進んで、データタイプの変更はせずに宣言si
gnal S1_0: std_logic ; を出
力する。
【0179】ステップS1914においては、後のステ
ートメントの変換のために、新旧信号名を図45のよう
に登録する。
【0180】一方、S1(1)については、ステップS
198,S199と進むが、ステップS1910におい
てYESとなるため、ステップS1911において当該
信号のデータタイプをstd_ulogicに変更し、
ステップS1913において、宣言 signal S
1_1 : std_ulogic ; を出力する。
【0181】また、ステップS1914において、新旧
信号名を図45のように登録する。ステートメント部分
の変換は、図45の対応表を参照しながら、信号参照名
を置きかえて行く。例えば、コンポーネントインスタン
ス文B0においては、参照S1(0)をS1_0に置き
換え、コンポーネントインスタンス文B1においては、
参照S1(0),S1(1)をそれぞれ、S1_0、S
1_1に置き換える。
【0182】この結果、図46のVHDL記述が第2の
ハードウエア記述記憶部185に記憶される。
【0183】以上のように、本実施例では、データタイ
プ記憶部182に記憶されているレゾリューションタイ
プの信号で、かつソース数が1以下の信号を非レゾリュ
ーションデータタイプの信号にVHDL記述レベルであ
らかじめ変換しておいた上で、シミュレータに入力す
る。
【0184】この結果、実施例3と同様に、レゾリュー
ション処理を必要最小限に抑え、シミュレーションを高
速化することができる。
【0185】<実施例4の変形その1>実施例4は、コ
ンパイル方式シミュレータの場合を説明したが、本発明
は、インタープリタ方式シミュレータにも適用可能であ
る。
【0186】図47にこの場合の論理シミュレータの構
成を示す。この論理シミュレータは、第1のハードウエ
ア記述記憶部221、データタイプ記憶部222、解析
部223、ハードウエア記述変換部224、第2のハー
ドウエア記述記憶部225、回路データ生成部226、
回路データ記憶部227、コード生成部228、コード
記憶部229を備える。
【0187】図47おいて、第1のハードウエア記述記
憶部221、データタイプ記憶部222、解析部22
3、ハードウエア記述変換部224、第2のハードウエ
ア記述記憶部225は、それぞれ図43の第1のハード
ウエア記述記憶部181、データタイプ記憶部182、
解析部183、ハードウエア記述変換部184、第2の
ハードウエア記述記憶部185と同様である。
【0188】回路データ生成部226は、図33、図3
4、図36に示すようなネットワークデータ構造を生成
し、回路データ構造記憶部227に記憶する。
【0189】コード生成部228は、プロセスに対する
実行コードのみをシミュレータが解釈可能な命令として
生成し、コード記憶部229に記憶する。
【0190】このように、インタープリタ方式シミュレ
ータの場合にも、同様に、レゾリューション処理を必要
最小限に抑え、シミュレーションを高速化することがで
きる。
【0191】<実施例4の変形その2>実施例4やその
変形例その1では、ハードウエア記述変換部184,2
24において、データタイプ記憶部182,222に記
憶されたレゾリューションデータタイプのベクトル信号
をスカラー要素毎の信号に変換していたが、当該信号の
全ての要素が変換対象となる場合、全ての信号の要素が
変換対象とならない場合は、ベクトル信号としてそのま
ま残しておき、前者の場合のみ、ベクトルデータタイプ
を非レゾリューションタイプに変換するようにしてもよ
い。
【0192】例えば、signal T:std_lo
gic_vector(1to8);をsignal
T:std_ulogic_vector(1to
8);に変換するようにしてもよい。
【0193】また、ハードウエア記述変換部184,2
24は、ベクトル信号については、当該信号の全ての要
素が変換対象となる場合にのみ、非レゾリューションタ
イプに変換するようにしてもよい。
【0194】また、本発明は上述した各実施例に限定さ
れるものではなく、その要旨を逸脱しない範囲で、種々
変形して実施することができる。
【0195】
【発明の効果】
(1)本発明によれば、シミュレーションモデルの信号
やプロセスなどのオブジェクトに対して設計者が設定し
た種別あるいは自動的に決定された種別をシミュレーシ
ョン中に参照することにより、シミュレーション中の処
理を種別に応じた無駄のない最適なものにすることがで
きる。これにより、シミュレーションを高速に実行する
ことが可能となる。
【0196】(2)本発明によれば、ソースが1個の場
合にそのソースの値を返すようなレゾリューション関数
をもつレゾリューションデータタイプの信号に対して、
当該信号が、ソースを1個だけもつ場合に、当該信号に
対するレゾリューション処理を省略することができ、シ
ミュレーションを高速化することができる。
【0197】また、レゾリューションに必要となるデー
タ構造の記憶領域を削減することもできる。
【図面の簡単な説明】
【図1】本発明の実施例1に係る論理シミュレータの構
成を示す図
【図2】信号の種別を決定するための信号の性質の一例
を示す図
【図3】シミュレーションモデル例を示す図
【図4】信号の種別の一例を示す図
【図5】信号の種別の他の例を示す図
【図6】信号種別に基づく信号代入処理アルゴリズムの
一例を示すフローチャート
【図7】信号種別に基づく信号代入処理アルゴリズムの
一例を示すフローチャート
【図8】信号種別に基づく信号代入処理アルゴリズムの
他の例を示す図
【図9】シミュレーションモデル例を示す図
【図10】プロセスの種別を決定するための性質の一例
を示す図
【図11】プロセスの種別の一例を示す図
【図12】本発明の実施例2に係る論理シミュレータの
構成を示す図
【図13】信号種別決定アルゴリズムの一例を示すフロ
ーチャート
【図14】信号種別決定アルゴリズムの他の例を示すフ
ローチャート
【図15】シミュレーションモデル例を示す図
【図16】シミュレーションモデル例を示す図
【図17】シミュレーションモデル例を示す図
【図18】シミュレーションモデル例を示す図
【図19】シミュレーションモデル例を示す図
【図20】シミュレーションモデル例を示す図
【図21】シミュレーションモデル例を示す図
【図22】本発明の実施例3に係る論理シミュレータの
構成を示す図
【図23】解析部のテーブルの一例を示す図
【図24】解析部の処理の流れを示すフローチャート
【図25】解析部のテーブル登録処理の流れを示すフロ
ーチャート
【図26】コード生成部により生成されるエラボレーシ
ョンコードの一例を示す図
【図27】コード生成部により生成されるエラボレーシ
ョンコードの一例を示す図
【図28】コード生成部により生成される実行コードの
一例を示す図
【図29】プロセス構造体に含まれる情報の一例を示す
【図30】ポート構造体に含まれる情報の一例を示す図
【図31】信号構造体に含まれる情報の一例を示す図
【図32】レゾリューションの各構造体に含まれる情報
の一例を示す図
【図33】レゾリューション信号とそのソース間のリン
クを示す図
【図34】プロセスと信号の関係を示す図
【図35】下位コンポーネントの展開を行う関数の実引
数生成処理の流れを示すフローチャート
【図36】下位コンポーネントの展開関数bind_b
uftの呼出しによって生成されるデータ構造の一例を
示す図
【図37】コード生成部におけるスカラー要素に対する
信号代入文のコード生成処理の流れを示すフローチャー
【図38】コード生成部により生成されるプロセス実行
コードの一例を示す図
【図39】従来手法によるプロセスP0の実行コードの
一例を示す図
【図40】最適化されたエラボレーションコードの一例
を示す図
【図41】最適化されたエラボレーションコードの一例
を示す図
【図42】本発明をインタープリタ方式のシミュレータ
に適用した場合の構成の一例を示す図
【図43】本発明の実施例4に係る論理シミュレータの
構成を示す図
【図44】信号宣言に対する変換部の処理の流れを示す
フローチャート
【図45】信号名の変換における対応表の一例を示す図
【図46】コード生成部により生成されコード記憶部に
出力されるVHDL記述の一例を示す図
【図47】本発明をインタープリタ方式のシミュレータ
に適用した場合の構成の一例を示す図
【図48】VHDL記述の一例を示す図
【図49】図48の記述中のレゾリューションデータタ
イプstd_logicのレゾリューション関数の一例
を示す図
【符号の説明】
1…オブジェクト記憶部、2…シミュレーション処理
部、20…信号代入実行部、21…プロセス実行部、3
…オブジェクト種別記憶部、30…信号記憶部、31…
プロセス記憶部、4…記述記憶部、5…オブジェクト種
別決定部、6…特徴抽出部、7…特徴記憶部、8…オブ
ジェクト種別決定部 111…ハードウエア記述記憶部、112…データタイ
プ記憶部、113…解析部、114…コード生成部、1
15…コード記憶部、171…ハードウエア記述記憶
部、172…データタイプ記憶部、173…解析部、1
74…回路データ生成部、175…回路データ構造記憶
部、176…コード生成部、177…コード記憶部、1
81…第1のハードウエア記述記憶部、182…データ
タイプ記憶部、183…解析部、184…ハードウエア
記述変換部、185…第2のハードウエア記述記憶部、
186…コード生成部、187…コード記憶部、221
…第1のハードウエア記述記憶部、222…データタイ
プ記憶部、223…解析部、224…ハードウエア記述
変換部、225…第2のハードウエア記述記憶部、22
6…回路データ生成部、227…回路データ記憶部、2
28…コード生成部、229…コード記憶部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−258002(JP,A) 特開 平5−216952(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 17/50

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】信号またはプロセスの少なくとも一方のオ
    ブジェクトについて、該オブジェクトに属する各要素
    と、信号については、その参照のされ方、代入のされ
    方、プロセス駆動信号となるか否かまたは値領域サイズ
    の少なくとも一つを含む、該信号に必要な処理と不要な
    処理とを選別可能な所定の性質に基づき、プロセスにつ
    いては、該プロセスが駆動される条件を含む、該信号に
    必要な処理と不要な処理とを選別可能な所定の性質に基
    づいて分類したオブジェクト種別との対応を記憶するオ
    ブジェクト種別記憶手段と、信号については代入、プロセスについては起動となる、
    前記 オブジェクトの要素実行を行う際に、前記オブジ
    ェクト種別記憶手段を参照して該実行するオブジェクト
    の要素のオブジェクト種別を求め、オブジェクト種別毎
    に定義された処理手順に従って、該オブジェクトの要素
    の処理を行なうシミュレーション処理手段と備えたこと
    を特徴とする論理シミュレータ。
  2. 【請求項2】シミュレーション対象となるハードウェア
    記述に基づいて、前記オブジェクト種別記憶手段に記憶
    する前記オブジェクトの要素と該オブジェクトの要素に
    対応するオブジェクト種別を決定するオブジェクト種別
    決定手段をさらに備えたことを特徴とする請求項1に記
    載の論理シミュレータ。
  3. 【請求項3】シミュレーション対象となるハードウェア
    記述中で使用される信号のソース数を求める解析手段
    と、 レゾリューション処理を省略する対象となるデータタイ
    プの信号でかつ前記解析手段により求められたソース数
    が1個である信号に対する信号代入文に対しては、レゾ
    リューション信号自身に直接代入するコードを生成する
    コード生成手段とを備えたことを特徴とする論理シミュ
    レータ。
  4. 【請求項4】シミュレーション対象となるハードウェア
    記述中で使用される信号のソース数を求める解析手段
    と、 レゾリューション処理を省略する対象となるデータタイ
    プであり、前記解析手段により求められたソース数が1
    個であり、かつ、該ソースに接続される下位コンポーネ
    ントの出力ポートまたは入出力ポートが存在する場合、
    当該ポートをレゾリューション信号自身に直接接続する
    コードを生成するコード生成手段と備えたことを特徴と
    する論理シミュレータ。
  5. 【請求項5】ハードウエア記述言語による仕様記述を記
    憶するハードウエア記述記憶手段と、 前記ハードウエア記述記憶手段に記憶されているハード
    ウエア記述中の信号のソース数を求める解析手段と、 レゾリューション処理を省略する対象となるデータタイ
    プの信号でかつ前記解析手段により求められたソース数
    が1個である信号宣言を、非レゾリューションタイプの
    信号宣言に置き換えたハードウエア記述を生成するハー
    ドウエア記述変換手段とを備えたことを特徴とするハー
    ドウエア記述変換装置。
  6. 【請求項6】前記ハードウエア記述言語中の信号代入文
    に基づいて、レゾリューションタイプの信号宣言を非レ
    ゾリューションタイプの信号宣言に置き換えることを特
    徴とする請求項5に記載のハードウエア記述変換装置。
  7. 【請求項7】前記ハードウエア記述言語中のコンポーネ
    ントインスタンス文に基づいて、レゾリューションタイ
    プの信号宣言を非レゾリューションタイプの信号宣言に
    置き換えることを特徴とする請求項5に記載のハードウ
    エア記述変換装置。
  8. 【請求項8】前記ハードウエア記述言語中の信号代入文
    およびコンポーネントインスタンス文に基づいて、レゾ
    リューションタイプの信号宣言を非レゾリューションタ
    イプの信号宣言に置き換えることを特徴とする請求項5
    に記載のハードウエア記述変換装置。
JP7082033A 1995-03-15 1995-03-15 論理シミュレータ及びハードウエア記述変換装置 Expired - Fee Related JP2902972B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7082033A JP2902972B2 (ja) 1995-03-15 1995-03-15 論理シミュレータ及びハードウエア記述変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7082033A JP2902972B2 (ja) 1995-03-15 1995-03-15 論理シミュレータ及びハードウエア記述変換装置

Publications (2)

Publication Number Publication Date
JPH08255191A JPH08255191A (ja) 1996-10-01
JP2902972B2 true JP2902972B2 (ja) 1999-06-07

Family

ID=13763225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7082033A Expired - Fee Related JP2902972B2 (ja) 1995-03-15 1995-03-15 論理シミュレータ及びハードウエア記述変換装置

Country Status (1)

Country Link
JP (1) JP2902972B2 (ja)

Also Published As

Publication number Publication date
JPH08255191A (ja) 1996-10-01

Similar Documents

Publication Publication Date Title
US5557774A (en) Method for making test environmental programs
EP0688448B1 (en) Incremental build system
US5325533A (en) Engineering system for modeling computer programs
US6606734B2 (en) Simulation method and compiler for hardware/software programming
US6135647A (en) System and method for representing a system level RTL design using HDL independent objects and translation to synthesizable RTL code
US6292931B1 (en) RTL analysis tool
US6848085B2 (en) System for converting hardware designs in high-level programming languages to hardware implementations
US6836877B1 (en) Automatic synthesis script generation for synopsys design compiler
US20040117167A1 (en) Simulation of software objects generated from a hardware description
JP5039130B2 (ja) シミュレーション結果を表示するための信号の仕様をサポートする方法、システム、およびプログラム製品
US7350180B1 (en) Search algorithm for inheriting clock contexts in hardware description language translation tools
US6922665B1 (en) Method and system for device-level simulation of a circuit design for a programmable logic device
JPH0765040A (ja) 機能データインターフェース方法および機能データインターフェース装置
US8881074B2 (en) Device and method for refactoring hardware code
JP2001522084A (ja) 機械語記述からisaシミュレータとアセンブラを生成する方法
US7590951B1 (en) Plug-in component-based dependency management for partitions within an incremental implementation flow
JPH06274568A (ja) 階層図形データの展開方法
JP2902972B2 (ja) 論理シミュレータ及びハードウエア記述変換装置
US5453936A (en) Computer aided hardware design support system and method for processing manual and automatic functional element blocks
US6877140B1 (en) Method and system for generating a schematic representing bus structures
JP2003534603A (ja) オブジェクト指向を用いた電子回路設計のモデリングとシミュレーション環境を高める方法及び装置
JP2990882B2 (ja) 機能シミュレーション装置
JP2001188673A (ja) ソフトウェア再利用支援装置
Seban An overview of object-oriented design and C++
Fujita et al. Object-oriented analysis and design of hardware/software co-designs with dependence analysis for design reuse

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees