JPH0498366A - 論理シミュレーション方法 - Google Patents

論理シミュレーション方法

Info

Publication number
JPH0498366A
JPH0498366A JP2210342A JP21034290A JPH0498366A JP H0498366 A JPH0498366 A JP H0498366A JP 2210342 A JP2210342 A JP 2210342A JP 21034290 A JP21034290 A JP 21034290A JP H0498366 A JPH0498366 A JP H0498366A
Authority
JP
Japan
Prior art keywords
record
value
operator
event
signal
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.)
Pending
Application number
JP2210342A
Other languages
English (en)
Inventor
Yoshio Takamine
高嶺 美夫
Takashi Suzuki
敬 鈴木
Tomohiko Sugita
智彦 杉田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2210342A priority Critical patent/JPH0498366A/ja
Publication of JPH0498366A publication Critical patent/JPH0498366A/ja
Priority to US08/341,115 priority patent/US5592655A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は論理シミュレーション方法に係り、特に論理装
置の動作をレジスタ転送レベルで模擬するに好適な論理
シミュレーション方法に関する。
〔従来の技術〕
従来、アトパンシス・イン・シーニーデイ−・フォー・
プイレルレスアイ、第2巻、第145頁から第146頁
(Advances in CAD for VLSI
Vol、2.pp、145−146.July、198
6)に論じられているように、論理シミュレーションを
高速に実行する方法として、セレクティブ・トレース方
式、およびセレクティブ・イベント方式が知られている
。セレクティブ・トレース方式では、その木刀ピンの信
号値が変化、すなわちイベントが発生した素子について
のみ出力値算出処理を行なうことにより処理イベント数
を削減し、シミュレーション時間を大幅に削減すること
が可能である。一方セレクチイブ・イベント方式では、
例えばANDゲートにおいてその少なくとも1つの入力
ピンの信号値が○である場合には他の入力ピンの信号値
が変化しても出力信号値は0のままであるという性質を
利用し、入力ピンの信号値が変化、すなわちイベントが
発生した場合でも他の入力ピンの信号値によっては素子
の出力信号値算出を行わないという方法により、前記セ
レクテイブ・トレース方式にもまして処理イベント数を
削減することができる。
また第24回デザイン・オートメーション・コンファレ
ンス・プロシーデインゲス、第181頁から第187頁
(24th Design AutomationCo
nference Proceedings、 p p
 、 181−187 。
June、 1987)には、デマンド・ドリブン方式
について述べられている6デマンド・ドリブン方式では
シミュレーション結果を得たい任意時刻の任意信号から
処理を開始し、その結果を得るために必要な信号値を、
論理の結線関係および時刻をさかのぼって順次求めてい
く方法により不要な評価を抑止し、シミュレーション時
間の削減を図っている。
〔発明が解決しようとする課題〕
前記セレクティブ・トレース方式では、シミュレーショ
ン対象回路を構成する各素子の出力値算出が、イベント
、すなわち当該素子の入力値の変化#のみに起因してお
り、新たに算出した出力値を他の部分回路に含まれる素
子が参照するか否かはまったく関知していない。したが
っである時点で出力値を算出した後、その出力値を他の
部分回路に含まれる素子が参照する前に新たなイベント
が発生すると、再度出力値算出を行なうことにより、直
前の出力値算出が無駄になるという問題があった。例え
ば第11図に示す論理回路のシミュレーションを考える
。セレクティブ・トレース方式では、第12図に示すよ
うに、組合せ回路11の評価はその入力信号A、B、C
,D、E、Fの変化に起因して実行される。しかるに後
段のレジスタRの値更新は、制御信号CTLが正で、か
つクロック信号KOが立ち上がったときに行なわれる。
したがって制御信号CTLが負の場合には。
第11図における組合せ回路11の出力値Xの算出は無
効となる。またセレクティブ・イベント方式では、ある
素子の入力ピンの信号値が変化、すなわちイベントが発
生した時、素子タイプ、および他の入力ピンの信号値を
も読み出さねばならず。
前記セレクティブ・トレース方式に比へ多くの処理オー
バヘットを必要とする。さらにデマンド・ドリブン方式
では、同時刻の同一信号を何回も評価してしまう等、再
帰的な処理によるオーバヘッドを必要とする。
本発明の目的は前記問題点を解決し、無駄な出力値算出
処理を抑止できる高速な論理シミュレーション方法を提
供することにある。
〔課題を解決するための手段〕
本発明の目的は、シミュレーション対象回路を構成する
各素子、あるいは複数の素子をまとめた部分回路毎に、
その入力信号の変化すなわちイベントを保持し、他の部
分回路に含まれる素子が前記素子あるいは部分回路の出
力値を参照するタイミング、すなわち要求を検出するこ
とにより、達成される。
〔作用〕
ある素子、あるいは部分回路に発生したイベントはただ
ちに評価されずに、素子、あるいは部分回路毎に保持さ
れる。他の部分回路に含まれる素子が、当該素子、ある
いは部分回路の出力値を必要とする場合、すなわち要求
を検出した時点に、それ以前に発生したイベントを評価
することにより、無駄な出力値算出処理を抑止すること
が可能となる。
〔実施例〕
以下、本発明の3種類の実施例を説明するが、その前に
実施例の概要、および入力となるシミュレーション・モ
デルの記述方法を説明する。
初めに第1図、第2図を用いて、実施例の概要を説明す
る。
第1図は実施例の構成の概要を示した図である。
実施例では、大枠で囲んだ部分14を仮想的な論理とし
て追加する。仮想的に追加される論理は、イベント・フ
ラグ15とANDゲート16からなる。第1図では、イ
ベント・フラグ15とA N Dゲート16は組合せ回
路11に対応して1つずっ存在するが、組合せ回路を構
成實る演算子に対応してイベント・フラグおよびAND
ゲートを配置することも可能である。
次に実施例の動作の概要を、第2図を用いて説明する。
実施例の動作は、互いに独立な2つの動作、イベント保
留処理と要求検出処理よりなる。
第2図(a)に示したイベント保留処理では、まず処理
201 ニよす入力信号A t B t C+ D +
 E +Fを監視し、その少なくとも1つの信号値が変
化した場合には処理202に進み、変化がない場合には
引続き処理201を行う。処理202ではイベント・フ
ラグ15に1をセットし、ただちに処理201へ進む6
第2図(b)に示した要求検出処理では、まず処理21
1によりレジスタRに対するセット信号、すなわちゲー
ト12の出力信号を監視し、値が1に変化した場合には
処理212に進み、出力信号の値に変化がない場合には
引続き処理211を行う。処理212ではイベント・フ
ラグ15の内容を調へ、その内容が1である場合には組
合せ回路11の入力信号A、B、C,D。
E、Fの少なくとも1つの信号値が既に変化しているの
で処理213に進み、そうでない場合には入力信号値は
変化していないので処理214に進む。処理213では
、ゲート16の出力信号値を1とし、組合せ回路11の
内部の評価を行って新たな出力値Xを算出する。またイ
ベント・フラグ15に0をセントし、処理214に進む
。処理214では組合せ回路11の出力値Xをレジスタ
Rに書込み、再び処理211に進む。
以上で実施例の概要の説明を終わる。
次に第3図を用いて、入力となるシミュレーション・モ
デルの記述方法を説明する。
シミュレーション・モデルは、第3図に示すように動作
レベル、すなわちレジスタへの転送動作を中心にその動
作を実行すべき条件とレジスタに転送すべき値とを、信
号名あるいは論理式により記述する。第3図において、
 1nputで始まる第1行は、入力信号の宣ffi、
 registerで始まる第2行はレジスタの宣言で
ある。1fで始まる第3行は、次のthenで始まる第
4行に記述された動作を実行する条件を指定している。
すなわちクロック信号KOのタイミングで信号CTLの
値が正である場合に、 then以下の動作を実行する
。クロック信号も通常の信号と同様にとらえれば、1f
以下をrCTL  &  KQJ と記述しても同し意
味である。then以下の動作は、レジスタRへのデー
タ書込み、すなわちレジスタRに対する転送動作を示し
ている。記号::の右辺はレジスタRに書込む値を論理
式を用いて記述している。第3図に示した論理式は、信
号Aと信号Bとの論理和を取り。
次にその論理和、信号りと信号Eとの一致、および信号
Cとの論理積を取り、最後にその論理積と信号Fとの論
理和を取ることを意味している。
以上でシミュレーション・モデルの記述方法についての
説明を終わる。
次に第4図から第6図までを用いて、レジスタに対する
データ転送動作が実?テされる時に組み合わせ回路の論
理式を評価し、1つの論理式に1つのイベントフラグを
設けた第1の実施例を詳細に説明する。
初めに第4図を用いて、本実施例に用いるデータ構造を
説明する。各テーブルの左にあって、シャープ記号(#
)に続く数字は、テーブル内の各レコードを識別するた
めのレコード番号を示す。
レコード番号は、当該レコードがどのテーブルに属する
かを区別するために、すべてのテーブルを通じて一意で
ある。
第4図に示した各テーブルのうち、第4図(a)。
(b)および(e)はシミュレーションの対象となる回
路の構成および信号値を表し、第4図(C)。
(d)および(f)はシミュレーション時の動作を記録
するテーブルである。
入力信号テーブル41は、各入力信号毎の情報を持つ。
レジスタ・テーブル42は各レジスタ毎の情報を持つ。
転送動作テーブル43はレジスタへの転送動作単位の情
報を持つ。論理式テーブル44は、組合せ回路部分の内
容を表す論理式毎の情報を持つ。演算子テーブル45は
、論理式を構成する演算子毎の情報を持つ。ある論理式
に対しては、論理式テーブル44のレコードを1つ作成
し、当該論理式を構成する演算子に対応した1つ以上の
レコードを演算子テーブル45に展開する。
実行リスト46は、実行可能な転送動作を一時的に保持
する作業用領域である。登録数カウンタ460は実行リ
ストに登録した転送動作の数を示す。
次に各テーブルの内容について説明する。
第4図(a)に示す入力信号テーブル41の各レコード
は、それぞれ2つのフィールドを持つ。
第1のフィールドは対応する入力信号の信号値を持つ。
第2のフィールドは当該入力信号値を参照する論理式を
指示し、第4図(cl)に示す論理式テーブル44内の
レコード番号を持つ。
第4図(b)に示すレジスタ・テーブル42の各レコー
ドはそれぞれ2つのフィールドを持つ。
第1のフィールドは対応するレジスタの格納値を持つ。
第2のフィールドは当該レジスタの格納値を参照する論
理式を指示し、論理式テーブル44内のレコード番号を
持つ。
第4図(c)に示す転送動作テーブル43の各レコード
は、それぞれ3つのフィールドからなる。
第1のフィールドは当該転送動作の転送先レジスタを表
しており、レジスタ・テーブル42内のレコード番号を
持つ。第2のフィールドおよび第3のフィールドは、そ
れぞれ当該転送動作の実行条件、および当該転送動作に
おいて転送すべき値を示しており、入力信号値テーブル
41.レジスタ・テーブル42.あるいは論理式テーブ
ル44のレコード番号を持つ。
第4図(d)に示す論理式テーブル44の各レコードは
、それぞれ3つのフィールドよりなる。
第1のフィールドは当該論理式の入力信号にイベントが
発生したことを示す。すなわちイベントが未発生の場合
にはOを持ち、イベントが発生した場合にはO以外の値
を持つ。第2のフィールド、および第3のフィールドは
、当該論理式に対応して演算子テーブル45に展開され
た一連のレコードの、先頭のレコードおよび最後のレコ
ードを指示するレコード番号を持つ。
第4図(e)に示す演算子テーブル45の各レコードは
、それぞれ3つのフィールドからなる。
第1のフィールドはシミュレーション実行中の当該演算
子の出力値を持つ。第2のフィールドは当該演算子の種
類を持つ。第3のフィールドは当該演算子の入力信号値
の格納先を指示する入力信号テーブル41、レジスタ・
テーブル42、あるいは演算子テーブル45のレコード
番号を持つ。
演算子テーブル45内で1つの論理式に対応する複数の
レコードは、当該論理式の値を評価する場合の演算の優
先順位にしたがって並へる。すなわち1つの論理式に対
応する複数のレコードの中の任意のレコードは、その下
に存在するどのレコードよりも演算の優先順位が低くな
ることは無い。
レコードをこのように順序付けることにより、当該論理
式の値を評価する場合には、レコード番号の小さいレコ
ードから順に処理を行うことで、自然に最終的な出力値
が得られる。
第4図において各テーブルの内容は、第3図に示したシ
ミュレーション・モデルの記述例に従っている。記述例
では、入力信号およびレジスタはそれぞれは8個および
1個宣言されている。第4図の入力信号テーブル41の
レコード411から418までは、それぞれ入力信号K
O,CTL。
A、B、C,D、E、Fに対応しており、レジスタ・テ
ーブル42のレコード421は、レジスタRに対応して
いる。また第3図に示した記述例では、レジスタRに対
する転送動作が1つ記述されており、第4図(C)の転
送動作テーブル43のレコード431が対応している。
また第3図に示した記述例では、論理式は2つ記述され
ている。
1つは第3行の1f以下のrCTL  at  KOJ
なる記述であり、rCTL  &  KOJと解釈する
もう1つはレジスタRに対する転送動作の記述の中の:
=の右辺である。それぞれ論理式テーブル44のレコー
ド441および442が対応している。2つの論理式は
それぞれ1個および4個の演算子からなり、演算子テー
ブル45のレコード451、およびレコード452から
455までが対応している。論理式テーブル44のレコ
ード441と442の第2フィールド441−2と44
2−2、およびそれぞれの第3フィールド441−3と
442−3は、それぞれ対応する演算子テーブル45内
の開始レコード、すなわちレコード番号51のレコード
451とレコード番号52のレコード452、および終
了レコード、すなわちレコード番号51のレコード45
1とレコード番号55のレコード455を指示している
演算子テーブル45において、たとえばレコード番号5
4のレコード454はファンインが3つのAND演算を
示しており、そのファンインはレコード454の第3フ
ィールド454−3の内容が示している。すなわちレコ
ード番号が52である演算子テーブル45のレコード4
52、レコード番号が15である入力信号テーブル41
のレコード415、およびレコード番号が53である演
算子テーブル45のレコード453である。このうち入
力信号テーブル41のレコード415は、第3図に示し
た例における入力信号Cに対応しており、他のファンイ
ンは同−論理式内の他の演算子の出力を参照している。
以上で本実施例のデータ構造の説明を終わる。
次に本実施例の処理を第5図を用いて説明する。
処理501では、シミュレーション実行用のテーブルを
作成し、各信号値の初期化を行う。処理502では、実
行サイクル数等により指定されたシミュレーション終了
条件を満たしたかどうかを調べ、満たしている場合には
処理を終了し2そうでない場合には処理503へ進む。
処理503では、クロック信号の信号値更新を行い、シ
ミュレション時刻を進める。処理504では、シミュレ
ーション対象論理に対し、その外部から印加される信号
値をシミュレーション時刻の進捗に応じて更新する。
クロックが更新されるたびに、第5図に示す処理504
から513に示す処理がシミュレーションの対象となる
回路全体に対して実行される。あるクロックし、の時に
第1図に示す組み合わせ回路11に対する人力信号が更
新され、その時はまだレジスタRへの書き込み信号がセ
ントされていないとする。このような状態では、組み合
わせ回路11のシミュレーションは行なわれず、出力値
Xも出力されない。次のクロックt2 の時に、レジス
タRへの書き込み信号がセットされると、組み合わせ回
路1]のシミュレーションが行なわれ、出力値Xがレジ
スタRに暑き込まれる。
ここで、上記のレジスタRへの書き込み信号のセントは
、この書き込み信号を生成するゲートが含まれる他の組
み合わせ回路に対するシミュレーションが行なわれた時
に実行される。
以下、処理505から処理509まてを、第4図におけ
る転送動作テーブル43のすへてのレコードについて実
施する。特に、処理506,507および508は第2
図(b)に示した要求検出処理に相当し、そこで得られ
た結果は転送動作テーブル43に登録される。処理50
5では、転送動作テーブル43のすへてのレコードにつ
いて処理が終了したかどうかを判定する。処理が終了し
た場合には処理510に進み、終了していない場合には
処理506に進む。処理506では、転送動作テーブル
43の処理中のレコード、例えばレコ−ド431におい
て、第2フィールド431−2の内容がさす信号または
論理式の値を評価する。
信号または論理式の値の評価の方法は後述する。
処理507では、処理506における評価結果の値がO
である場合には当該動作は現時刻においては実行不可で
あると判定し、処理509へ進む60でない場合には実
行可能と判定し、処理508へ進む。処理508では、
処理中のレコード、例えばレコード431のレコード番
号を、実行リスト46に追加書きし、登録数カウンタ4
60の内容を1増す。処理509では転送動作テーブル
43内の次のレコードに処理を進める。
処理505において転送動作テーブル43に関する処理
が終了したと判定されると、処理510に進み、以下処
理510から処理513までの処理を、処理508で登
録された実行リスト46の内容が空になるまで繰返し実
行する。特に、処理511.506および513は第2
図(a)に示したイベント保留処理に相当し、データの
転送動作が実行された時に、その結果がイベントの発生
として保持される。処理510では、実行リスト46が
空になったかどうか、すなわち登録数カウンタ460の
内容がOであるか否かを判定する。
0である場合には処理502へ進み、Oでない場合には
処理511へ進む。処理511では、登録数カウンタ4
60の内容を1減じ、実行リスト46からその内容、す
なわち転送動作テーブル43のレコードをさすレコード
番号を1つ取出す。
処理506では、処理511で取り出したレコード番号
が指示する転送動作テーブル43内のレコード、例えば
レコード431の第3フィールド431−3を参照し、
その内容が指示する信号または論理式の値を評価する。
処理513では、処理511で取り出したレコード番号
が指示する転送動作テーブル43内のレコード、例えば
レコード431の第1フィールド431−1を参照し、
その内容が指示するレジスタ・テーブル42内のレコー
ド、例えばレコード421の第1フィールド421−1
に、処理506の評価結果の値を書き込む。さらに処理
513では、第2フィールド421−2を参照し、その
内容が指示する論理式テーブル44内のレコードの第1
のフィールドすなわち、イベントフラグ、例えばフィー
ルド441−1の内容を1とする。処理513実行後再
び処理510に進む。
処理506     −  において、信号または論理
式の値の評価は、以下のようにして行なう。
すなわち転送動作テーブル43の処理中のレコード、例
えばレコード431の第2フィールド431−2.ある
いは第3フィールド431−3の内容が入力信号テーブ
ル41.あるいはレジスタ・テーブル42を指示する場
合には信号の値の評価を行ない、そうでない場合、すな
わち論理式テーブル44を指示する場合には、論理式の
値の評価を行なう。信号の値の評価とは、入力信号テー
ブル41、あるいはレジスタ・テーブル42内の指示さ
れたレコードの第1フイールドの内容を。
信号値として読み出すことである。論理式の値の評価方
法は、第6図を用いて詳細に説明する。
処理601では、論理式テーブル44内の処理中のレコ
ード、例えばレコード442の第1フイールドすなわち
、イベントフラグ4.42−1を参照し、その内容が0
である場合には対応する論理式の入力信号値が変化して
いないので処理602へ進み、そうでない場合には処理
603へ進む。
処理602では、第3フィールド442−3を参照し、
その内容が指示する演算子テーブル45内のレコード、
すなわちレコード455を取り出し、後続する処理60
8の処理対象とし、処理608へ進む。処理603では
、論理式テーブル44内の処理中のレコードに含まれる
イベントフラグ、例えばレコード442の第1フィール
ド442−1の内容をOとする。処理604では、第2
フィールド442−2を参照し、その内容が指示する演
算子テーブル45内のレコード、例えばレコード452
を取り出し、後続する処理605の処理対象とする。処
理605から607までは、実際に値を評価する処理で
ある。処理605では、演算子テーブル45内の処理中
のレコード、例えばレコード452の第3フィールド4
52−3を参照し、その内容が指示する入力信号テーブ
ル41゜レジスタ・テーブル42、あるいは演算子テー
ブル45内のレコードから、信号値を取り出す。さらに
処理605では、第2フィールド452−2を参照し、
その内容にしたがった演算を、先に取り出した信号値に
対して行う。演算した結果は、同じレコードの第3フィ
ールド452−1に格納する。処理606では、演算子
テーブル45内の処理中のレコードのレコード番号が、
論理式テーブル44内の処理中のレコード、例えばレコ
ード442の第3フィールド442−3の内容すなわち
、終了ポインタに一致しているかどうかを調へ、一致し
ている場合には論理式に対応する一連の演算子の処理が
終了したので処理608へ進み、そうでない場合には処
理607へ進む。処理607では、演算子テーブル45
内の次のレコードへ処理を進める。処理608では、演
算子テーブル45内の処理中のレコード、例えばレコー
ド455の第1フィールド455−1の内容を取り出し
、論理式の値の評価結果として返す。
以上で論理式の値の評価方法の説明を終わる。
以上で第1の実施例の説明を終わる。
本実施例によれば、組合せ回路部分に対応する論理式の
値の評価は、その値を参照するレジスタに対するデータ
転送動作が実行される時に限られるため、無効となるイ
ベント評価を抑止することができる。
次に第7図、第8図を用いて、本発明の第2の実施例を
説明する。第2の実施例は、1つの論理式に含まれる複
数の演算子ごとにイベントフラグを設け、各演算子ごと
の入力値が変化するたびにその値を評価する実施例であ
る。
初めに第7図を用いて、本実施例に用いるデータ構造を
説明する。
第7図(a)に示す入力信号テーブル71は、各入力信
号毎の情報を持ち、第1の実施例において第4図(a)
に示した入力信号テーブル41と同一の構造である。第
7図(c)に示す転送動作テーブル73は、レジスタへ
の転送動作単位の情報を持ち、第1の実施例において第
4図(C)に示した転送動作テーブル43と同一の構造
である。
第7図(b)に示す演算子テーブル75は、組合せ回路
部分の内容を表す論理式を構成する演算子毎の情報を持
つ。第7図(b)は、第1の実施例において第4図(e
)に示した演算子テーブル45を拡張した構造である。
本実施例では、第1の実施例において第4図(d)に示
した論理式テーブル44に相当するテーブルは使用しな
い。人力信号テーブル71の各レコードの第2フイール
ドは、当該入力信号値を参照する演算子を指示し。
演算子テーブル75内のレコード番号を持つ。また転送
動作テーブル73の各レコードの第2フイールドおよび
第3フイールドは、入力信号テーブル71.第4図(b
)に示したレジスタ・テーブル、あるいは演算子テーブ
ル75内のレコード番号を持つ。
演算子テーブル75の各レコードはそれぞれ5つのフィ
ールドからなる。第1のフィールドは当該演算子の入力
信号にイベントが発生したことを示す。すなわちイベン
トが未発生の場合にはOを持ち、イベントが発生した場
合には0以外の値を持つ。第2のフィールドは、当該レ
コードに対応する演算子を含む論理式に対応して展開さ
れた一連のレコードの中の最後のレコードであることを
示す終了フラグである。すなわち最後のレコードでない
場合にはOを持ち、最後のレコードである場合には0以
外の値を持つ。第3のフィールドから第5のフィールド
は、第1の実施例において第4図(e)に示した演算子
テーブル45の第1フイールドから第3フイールドまで
と同一である。
すなわち第3のフィールドはシミュレーション実行中の
当該演算子の出力値を持つ。第4のフィールドは当該演
算子の種類を持つ。第5のフィールドは当該演算子の入
力信号値の格納先を指示し、入力信号テーブル71、第
4図(b)に示したレジスタ・テーブル5あるいは演算
子テーブル75内のレコード番号を持つ。演算子テーブ
ル75内で1つの論理式に対応する複数のレコードは、
第1の実施例と同様、演算の優先順位にしたがって順序
付けられる。
本実施例では5以上説明した入力信号テーブル71、転
送動作テーブル73.演算子テーブル75のほかに、レ
ジスタ・テーブル、実行リストを用いるが、その構造は
第1の実施例において第4図に示したものと同一である
以上で本実施例のデータ構造の説明を終わる。
本実施例の処理の概要は、第1の実施例において第5図
に示したものと同一である。本実施例では論理式の値の
評価の処理が第6図に示した第1の実施例と異なるので
、次にその処理を第8図を用いて説明する。
第7図の転送動作テーブル73の処理中のレコード、例
えばレコード731の第2フィールド731−2、ある
いは第3フィールド731−3の内容が演算子テーブル
75をさす場合、指示されたレコード、例えばレコード
752から論理式評価処理を行う。
第8図の処理801から処理803までは、演算子テー
ブル75内の、第1フイールドの内容が0でないレコー
ドが出現するまで、レコードの読み飛ばしを行う。処理
801では、演算子テーブル75内の処理中のレコード
、例えばレコード752の第1フィールド752−1を
参照し、その内容がOである場合には、対応する演算子
の入力信号値が変化していないので処理802へ進み、
そうでない場合には処理804へ進む。処理802では
、第2のフィールド752−2を参照し、その内容がO
である場合には処理803へ進み、そうでない場合には
、当該レコードは対応する論理式を構成する最終レコー
ドであるので処理808へ進む。処理803では、演算
子テーブル75内の次のレコードへ処理を進める。
処理804以降は、実際に値を評価する処理である。処
理804では、処理中のレコード、例えばレコード75
2の第1フィールド752−1の内容すなわち、イベン
トフラグをOとする。処理805では、第5フィールド
752−5を参照し、その内容が指示する入力信号テー
ブル71、レジスタ・テーブル、あるいは演算子テーブ
ル75内のレコードから信号値を取り出す。さらに処理
805では、第4フィールド752−4を参照し、その
内容にしたがった演算を、先に取り出した信号値に対し
て行う。演算した結果は同しレコードの第3フィールド
752−3に格納する。処理806では、処理802と
同様に処理中のレコード、例えばレコード752の第2
フィールド752−2を参照し、その内容がOである場
合には処理807に進み、そうでない場合には処理80
8に進む。処理808では、演算子テーブル75内の次
のレコードへ、処理を進める。処理808では、処理中
のレコード、例えばレコード755の第3フィールド7
55−3の内容を取り出し、これを論理式の値の評価結
果として返す。
以上で第2の実施例の論理式評価処理の説明を終わる。
以上で第2の実施例の説明を終わる。
本実施例によれば、第1の実施例と同様、組合せ回路部
分に対応する論理式の値の評価は、その値を参照するレ
ジスタに対する転送動作が実行される時に限られるため
、無効となるイベント評価を抑止することができる。し
かも論理式の値の評価は、その論理式を構成する各演算
子毎に、その入力値が変化したもの、もしくは先行する
演算子が評価されたものに限って実施するため、第1の
実施例以上に演算子の値の評価回数を削減することが可
能である。
次に第9図、第10図を用いて、本発明の第3の実施例
を説明する。第3の実施例は第2の実施例に示した入力
値の変化に加え、出力値が変化したものに限って各演算
子毎の評価を行なう例である。すなわち、1つの論理式
の評価に関連する演算子の評価も行なう実施例である。
初めに第9図を用いて、本実施例に用いるデータ構造を
説明する。
演算子テーブル95は、第2の実施例における演算子テ
ーブル75を拡張したものである。ある論理式を展開す
る際のレコードの順序付けも、先の実施例と同様である
。演算子テーブル9Sの各レコードは、それぞれ6つの
フィールドからなる。
第1のフィールドから第5のフィールドまでは。
第2の実施例の第7図に示した演算子テーブル75の各
レコードの第1フイールドから第5フイールドまでと同
一である。第6のフィールドは、ある論理式を展開した
結果である一連のレコードの中で、当該演算子の出力値
を参照するレコードのレコード番号を持つ。
本実施例で用いる演算子テーブル95以外のデータ構造
は、第2の実施例において説明したものと同一である。
以上で、本実施例に用いるデータ構造の説明を終わる。
本実施例の処理の概要は、先の実施例で第5図に示した
ものと同一である。
本実施例では、論理式の値の評価の処理が、第1および
第2の実施例と異なるので、次にその処理を第10図を
用いて説明する。
処理101では、演算子テーブル95内の処理中のレコ
ード、例えばレコード952の第1フィルト952−1
を参照し、その内容すなわち、イベントフラグがOであ
る場合には、対応する演算子の入力信号値が変化してい
ないので処理106へ進み、そうでない場合には処理1
02へ進む。
処理102では、第1フィールド952−1の内容をO
とする。処理103は、先の第2の実施例における第8
図の処理805と同様である。評価結果は処理中のレコ
ード、例えばレコード952の第3フィールド952−
3に格納するが、後続する処理104のために、フィー
ルド952−3の内容が変化したかどうかを調べる。処
31104では、先行する処理103によってフィール
ド952−3の内容が変化した場合には処理105に進
み、変化していない場合には処理106に進む。処理1
05では、論理式内でのイベント伝播のために第6フイ
ールド952−6の内容を参照し、その内容が指示する
レコード、例えばレコード954の第1フィールド95
4−1の内容すなわち、イベントフラグを1とする。処
理106では処理中のレコード、例えばレコード952
の第2フィールド952−2を参照し、その内容がOで
ある場合には処理107へ進み、そうでない場合には処
理108へ進む。処理107では、演算子テーブル95
内の次のレコードへ処理を進める。
処理108では処理中のレコード、例えばレコード95
5の第3フィールド955−3の内容を取り出し、論理
式の値の評価結果として返す。
以上で第3の実施例の論理式評価処理の説明を終わる。
以上で第3の実施例の説明を終わる。
第13図は1本発明を実施した時の各信号の変化を示す
タイミングチャートである。
入力信号(D)の変化だけでなく、レジスタRの書き込
み要求信号であるクロック信号(KO)の変化も検出し
、それにもとづいて、論理シミュレーションを行なって
、出力信号Xを出力しでいる。その結果、第12図に示
した、無効となる評価をなくすことができる。
本実施例によれば、第1.第2の実施例と同様、組合せ
回路部分に対応する論理式の値の評価は、その値を参照
するレジスタに対する転送動作が実行される時に限られ
るため、無効となる評価を抑止することができる。しか
も論理式の値の評価は、その論理式を構成する各演算子
毎に、その入力値および出力値が変化したものに限って
実施するため、演算子の評価回数を、第1.第2の実施
例以上に削減することが可能である。
〔発明の効果〕
本発明によれば、ある素子、あるいは部分回路に発生し
たイベントはただちに評価されずに、他の部分回路に含
まれる素子が、当該素子、あるいは部分回路の出力値を
必要とする場合に、それ以前に発生したイベントを評価
することにより、無駄な出力値算出処理を抑止すること
が可能となる。
したがってセレクティブ・トレース方式において、シミ
ュレーション対象回路を構成する各素子の出力値算出が
イベントにのみ起因しており、他の部分回路に含まれて
いる素子が、新たに算出した出力値を参照するか否かは
まったく関知しておらず、出力値算出が無駄になる場合
があるという問題点を解決し、高速な論理シミュレーシ
ョン方法を提供することができる。また第1の実施例に
よれば論理式の値の評価の際は、その論理式を構成する
すべての演算子を評価するものの、イベント・フラグの
参照は論理式に対して1回で済み、演算子毎のイベント
発生率が比較的高い場合に他の2つの実施例よりシミュ
レーション処理を高速化することが可能である。さらに
第1の実施例では、演算子に対応するテーブル、すなわ
ち演算子テーブルのレコード長が短いので、他の2つの
実施例に比べ、必要メモリ量を削減することができる。
また第2の実施例によれば論理式の値の評価はその論理
式を構成する各演算子毎に、その入力値が変化したもの
、もしくは先行する演算子が評価されたものに限って実
施されるため、第1の実施例以上に演算子の値の評価回
数を削減することが可能である。また第3の実施例によ
れば各演算子の信号値算出後、ファンアウト側のイベン
ト・フラグをセントする処理が必要となるものの、論理
式の値の評価はその論理式を構成する各演算子毎しこ、
その入力値が変化したものに限って実施されるため、第
1.第2の実施例以上に演算子の値の評価回数を削減す
ることが可能であり、演算子毎のイベント発生率が低い
場合に、第1.第2の実施例よりシミュレーション処理
を高速化することが可能である。
【図面の簡単な説明】
第1図、第2図は本発明の実施例の概要を示す図、第3
図はシミュレーション・モデルの記述方法を示す図、第
4図は第1の実施例のデータ構造を示す図、第5図は実
施例の処理を示す図、第6図は第1の実施例の論理式評
価処理を示す図、第7図は第2の実施例のデータ構造を
示す図、第8図は第2の実施例の論理式評価処理を示す
図、第9図は第3の実施例のデータ構造を示す図、第1
0図は第3の実施例の論理式評価処理を示す図、第11
図、第12図は本発明が解決しようとする問題点を説明
するための図、第13図は本発明を実施した時のタイミ
ングチャートである。 41 ・第1の実施例における入力信号テーブル、42
・・レジスタ・テーブル、43・第1の実施例における
転送動作テーブル、44・・論理式テーブル、45−第
1の実施例における演算子テーブル、46・−実行リス
ト、71・・第2、第3の実施例における入力信号テー
ブル、73・・−第2、第3の実施例における転送動作
テーブル、75−・第2の実施例における演算子テーブ
ル、95 第3の実施第1図 クロック信号KO 第2図 (a)イベント保留処理 第3図 1nput: KO,CTL、 A、 B、 C,D、
 E、 Fregister日 it CTL a+ KO jhenR−((AjB)&C&(D=E))第4図 第4図 第5図 第8図 第7図 第9図 第10図 第1 1図 第12図

Claims (1)

  1. 【特許請求の範囲】 1、論理装置の動作を模擬する論理シミュレーション方
    法において、シミュレーション対象回路内の部分回路毎
    に入力信号値の変化、すなわちイベントを保持し、前記
    部分回路の出力信号値を他の部分回路が参照するタイミ
    ング、すなわち要求を検出し、前記要求を検出した時、
    前記イベント保持されている場合に、前記部分回路の出
    力信号値を算出することを特徴とする、論理シミュレー
    ション方法。 2、前記部分回路は組合せ回路であって、前記他の部分
    回路はデータの記憶制御を行なうことを特徴とする、特
    許請求の範囲第1項の論理シミュレーション方法。 3、論理装置の動作を模擬する論理シミュレーション方
    法において、シミュレーション対象回路内の素子毎に入
    力信号値の変化、すなわちイベントを保持し、複数の前
    記素子からなる部分回路の出力信号値を他の部分回路が
    参照するタイミング、すなわち要求を検出し、前記要求
    を検出した時、前記部分回路を構成する前記素子につい
    て前記イベントを保持している場合に、出力信号値を算
    出することを特徴とする、論理シミュレーション方法。 4、前記素子は論理ゲートであって、前記部分回路は組
    合せ回路であって、前記他の部分回路はデータの記憶素
    子であることを特徴とする、特許請求の範囲第3項の論
    理シミュレーション方法。 5、論理装置の動作を模擬する論理シミュレーション方
    法において、シミュレーション対象回路内の論理式毎に
    入力信号値の変化、すなわち、イベントを保持すること
    を特徴とする特許請求の範囲第1項記載の論理シミュレ
    ーション方法。
JP2210342A 1990-08-10 1990-08-10 論理シミュレーション方法 Pending JPH0498366A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2210342A JPH0498366A (ja) 1990-08-10 1990-08-10 論理シミュレーション方法
US08/341,115 US5592655A (en) 1990-08-10 1994-11-18 Logic simulation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2210342A JPH0498366A (ja) 1990-08-10 1990-08-10 論理シミュレーション方法

Publications (1)

Publication Number Publication Date
JPH0498366A true JPH0498366A (ja) 1992-03-31

Family

ID=16587821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2210342A Pending JPH0498366A (ja) 1990-08-10 1990-08-10 論理シミュレーション方法

Country Status (2)

Country Link
US (1) US5592655A (ja)
JP (1) JPH0498366A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438561B1 (en) * 1998-11-19 2002-08-20 Navigation Technologies Corp. Method and system for using real-time traffic broadcasts with navigation systems
DE10037396A1 (de) * 2000-08-01 2002-02-14 Daimler Chrysler Ag Element zur Duchführung eines Programm- bzw. Testablaufs
US7231615B2 (en) * 2003-12-08 2007-06-12 Cadence Design Systems, Inc. Methods and apparatus for transforming sequential logic designs into equivalent combinational logic

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062067A (en) * 1989-03-15 1991-10-29 Vlsi Technology, Inc. Levelized logic simulator with fenced evaluation

Also Published As

Publication number Publication date
US5592655A (en) 1997-01-07

Similar Documents

Publication Publication Date Title
Delong et al. A fault injection technique for VHDL behavioral-level models
EP0021404B1 (en) Computing system for the simulation of logic operations
US6470478B1 (en) Method and system for counting events within a simulation model
US6195627B1 (en) Method and system for instrumenting simulation models
US6195629B1 (en) Method and system for selectively disabling simulation model instrumentation
JPS5975347A (ja) 論理回路のシミユレ−シヨン装置
US6040842A (en) Process control with evaluation of stored referential expressions in a multi-agent system adapted for use with virtual actors which are directed by sequentially enabled script agents
JPH03118488A (ja) 故障シミュレーション方式
US6968428B2 (en) Microprocessor cache design initialization
JPH0498366A (ja) 論理シミュレーション方法
US5446748A (en) Apparatus for performing logic simulation
US4758947A (en) List processing method and apparatus
JPS6141017B2 (ja)
JP3212709B2 (ja) ロジックシミュレーション装置
EP0440553B1 (en) Gate addressing system for logic simulation machine
JP2525393B2 (ja) 論理シミュレ−ションのテストカバレ−ジ方式
JPH0695862A (ja) 命令列最適化支援装置
JPH0576660B2 (ja)
JP2507294B2 (ja) 制御盤の検査方法
JP2813015B2 (ja) 図形処理プロセッサ
JPH03100726A (ja) 計時型データ状態表示方法
JPS63197264A (ja) シミユレ−タ
JPS63291170A (ja) シミユレ−タ
JPH05233380A (ja) 並列実行性能測定処理方法
JPH04205063A (ja) 論理シミュレーション方式