JPH06332974A - 論理シミュレーション方法 - Google Patents
論理シミュレーション方法Info
- Publication number
- JPH06332974A JPH06332974A JP5116805A JP11680593A JPH06332974A JP H06332974 A JPH06332974 A JP H06332974A JP 5116805 A JP5116805 A JP 5116805A JP 11680593 A JP11680593 A JP 11680593A JP H06332974 A JPH06332974 A JP H06332974A
- Authority
- JP
- Japan
- Prior art keywords
- output
- delay
- event
- time
- information
- 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
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【構成】イベントの情報に従って論理回路のシミュレー
ションを行う論理シミュレーション方法において、イベ
ントの情報として遅延の種類の識別番号108を持ち、
素子の情報として各出力端子毎に、遅延の種類数と同数
の出力値133と素子の遅延値134を持ち、シミュレ
ーション実行時に、各イベントの遅延の種類の識別番号
に対応した出力値と素子遅延値について、イベントの伝
播と、信号値変化に伴う新たなイベントの生成を行う。 【効果】任意の種類の遅延を各素子に仮定した論理シミ
ュレーションを同時に処理することが可能になり、遅延
のばらつきによる論理回路の誤動作を容易に発見でき
る。
ションを行う論理シミュレーション方法において、イベ
ントの情報として遅延の種類の識別番号108を持ち、
素子の情報として各出力端子毎に、遅延の種類数と同数
の出力値133と素子の遅延値134を持ち、シミュレ
ーション実行時に、各イベントの遅延の種類の識別番号
に対応した出力値と素子遅延値について、イベントの伝
播と、信号値変化に伴う新たなイベントの生成を行う。 【効果】任意の種類の遅延を各素子に仮定した論理シミ
ュレーションを同時に処理することが可能になり、遅延
のばらつきによる論理回路の誤動作を容易に発見でき
る。
Description
【0001】
【産業上の利用分野】本発明は、論理回路の動作を計算
機上で模擬する論理シミュレーション方法に係り、特
に、論理素子に複数種類の遅延を割り当ててシミュレー
ションを行う方法に関する。
機上で模擬する論理シミュレーション方法に係り、特
に、論理素子に複数種類の遅延を割り当ててシミュレー
ションを行う方法に関する。
【0002】
【従来の技術】論理回路を計算機で模擬する論理シミュ
レーションの方法としてイベント法が知られている。イ
ベント法では論理素子の信号値変化をイベントと呼び、
このイベントを信号値変化が伝播する時刻の順番に評価
して行くことで処理を行う。従来のイベント法ではイベ
ントの情報として、図2(a)に示すように、信号の伝
播する時刻,信号の伝播する素子情報の識別子,信号が
伝播する出力端子の識別番号,伝播する信号値を持つ。
また、論理素子の情報も図2(b)に示すように素子種
の識別番号,素子固有名称,入力端子数,各入力端子毎
の接続先ポインタと出力端子番号のリスト,出力端子
数,各出力端子毎の接続先数と接続先ポインタのリスト
と出力値と素子の遅延値を持つ。
レーションの方法としてイベント法が知られている。イ
ベント法では論理素子の信号値変化をイベントと呼び、
このイベントを信号値変化が伝播する時刻の順番に評価
して行くことで処理を行う。従来のイベント法ではイベ
ントの情報として、図2(a)に示すように、信号の伝
播する時刻,信号の伝播する素子情報の識別子,信号が
伝播する出力端子の識別番号,伝播する信号値を持つ。
また、論理素子の情報も図2(b)に示すように素子種
の識別番号,素子固有名称,入力端子数,各入力端子毎
の接続先ポインタと出力端子番号のリスト,出力端子
数,各出力端子毎の接続先数と接続先ポインタのリスト
と出力値と素子の遅延値を持つ。
【0003】また、図3に示すように、素子の出力端子
に信号の伝播する時刻は入力端子に信号変化が伝播した
時刻XTに各素子固有の遅延時間Dを加えた時刻XT+
Dで与えられる。この素子固有の遅延時間は製造時のば
らつきにより、ある範囲の値を取る。そこでより正確な
論理シミュレーションを行うために、素子に遅延時間の
最小値,最大値、あるいは標準値を設定してそれぞれ論
理シミュレーションを実施し、遅延時間のばらつきによ
らず論理回路が正しく動作するか否かを検証する。
に信号の伝播する時刻は入力端子に信号変化が伝播した
時刻XTに各素子固有の遅延時間Dを加えた時刻XT+
Dで与えられる。この素子固有の遅延時間は製造時のば
らつきにより、ある範囲の値を取る。そこでより正確な
論理シミュレーションを行うために、素子に遅延時間の
最小値,最大値、あるいは標準値を設定してそれぞれ論
理シミュレーションを実施し、遅延時間のばらつきによ
らず論理回路が正しく動作するか否かを検証する。
【0004】このような目的のために、例えば特開平2
−105232 号公報では、最小遅延と最大遅延の2種類の
遅延時間を同時に処理する方法が述べられている。この
方法は、最小遅延によるイベントと最大遅延によるイベ
ントをそれぞれ独立に保持し、各時刻に於てその時刻に
伝播する最小遅延によるイベントの評価と最大遅延によ
るイベントの評価をそれぞれ行うものである。この方法
によれば、最大遅延と最小遅延双方を同時に処理するた
め論理シミュレーション起動の作業が簡素化されるだけ
でなく、最大遅延と最小遅延の論理シミュレーション結
果の比較を随時行うことが可能になる。
−105232 号公報では、最小遅延と最大遅延の2種類の
遅延時間を同時に処理する方法が述べられている。この
方法は、最小遅延によるイベントと最大遅延によるイベ
ントをそれぞれ独立に保持し、各時刻に於てその時刻に
伝播する最小遅延によるイベントの評価と最大遅延によ
るイベントの評価をそれぞれ行うものである。この方法
によれば、最大遅延と最小遅延双方を同時に処理するた
め論理シミュレーション起動の作業が簡素化されるだけ
でなく、最大遅延と最小遅延の論理シミュレーション結
果の比較を随時行うことが可能になる。
【0005】
【発明が解決しようとする課題】従来の方法では、遅延
の種類(例えば、最小遅延,最大遅延,標準遅延)に応
じてイベントを格納するデータ構造と各遅延の種類毎の
イベント評価をプログラムの中にあらかじめ組み込んで
おく必要があった。
の種類(例えば、最小遅延,最大遅延,標準遅延)に応
じてイベントを格納するデータ構造と各遅延の種類毎の
イベント評価をプログラムの中にあらかじめ組み込んで
おく必要があった。
【0006】また、イベントを評価する処理を専用のハ
ードウェアで並列に行う場合、各時刻に伝播する複数の
イベントを並列に処理する対象とする。しかし、従来の
方法をそのままこのようなハードウェアで実現しようと
する場合、最大遅延のイベントと最小遅延のイベントを
それぞれ独立に評価する必要があるため、一度に並列処
理する対象となるイベントの数が少なくなり、並列処理
の効果が減少するという問題点がある。
ードウェアで並列に行う場合、各時刻に伝播する複数の
イベントを並列に処理する対象とする。しかし、従来の
方法をそのままこのようなハードウェアで実現しようと
する場合、最大遅延のイベントと最小遅延のイベントを
それぞれ独立に評価する必要があるため、一度に並列処
理する対象となるイベントの数が少なくなり、並列処理
の効果が減少するという問題点がある。
【0007】本発明の目的は、任意の数の遅延の種類に
対応でき、複数の種類の遅延によるイベントを同時に一
括して処理することが可能な論理シミュレーション方法
を提供することにある。
対応でき、複数の種類の遅延によるイベントを同時に一
括して処理することが可能な論理シミュレーション方法
を提供することにある。
【0008】更に、複数の種類の遅延,複数の種類のテ
ストベクトル(テストデータ、あるいはテストパタンと
呼ぶ場合もある)による論理シミュレーションを一括し
て同時に処理する方法を提供することにある。
ストベクトル(テストデータ、あるいはテストパタンと
呼ぶ場合もある)による論理シミュレーションを一括し
て同時に処理する方法を提供することにある。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、従来のイベントの情報に遅延の種類の識別番号を付
加する。また、従来の素子情報の出力値と遅延値の情報
も、各出力端子毎に、遅延の種類の数だけ保持するもの
とする。そして、論理シミュレーションの各時刻におい
て、各イベントの遅延の種類の識別番号に対応した素子
出力値と素子遅延値について、イベントの伝播と、信号
値変化に伴う新たなイベントの生成を行う。
に、従来のイベントの情報に遅延の種類の識別番号を付
加する。また、従来の素子情報の出力値と遅延値の情報
も、各出力端子毎に、遅延の種類の数だけ保持するもの
とする。そして、論理シミュレーションの各時刻におい
て、各イベントの遅延の種類の識別番号に対応した素子
出力値と素子遅延値について、イベントの伝播と、信号
値変化に伴う新たなイベントの生成を行う。
【0010】また、各遅延の種類毎の論理シミュレーシ
ョンの結果を比較するために、あらかじめ指定した観測
対象の素子出力端子の識別情報と観測周期情報に従い、
該当するシミュレーション時刻に、観測対象素子の出力
の全ての遅延の種類に対応する素子の出力値が全て等し
いか否かを判定し、その結果を出力する。
ョンの結果を比較するために、あらかじめ指定した観測
対象の素子出力端子の識別情報と観測周期情報に従い、
該当するシミュレーション時刻に、観測対象素子の出力
の全ての遅延の種類に対応する素子の出力値が全て等し
いか否かを判定し、その結果を出力する。
【0011】更に、テストベクトルを全ての遅延の種類
に対して評価するために、与えられたテストベクトルに
対して、全ての遅延の種類の識別番号を持つイベントを
発生させる。
に対して評価するために、与えられたテストベクトルに
対して、全ての遅延の種類の識別番号を持つイベントを
発生させる。
【0012】あるいは、この方法を利用して複数のテス
トベクトルを同時に処理するために、与えられた複数の
テストベクトルに対して、それぞれ異なる遅延の種類の
番号を持つイベントを同時に発生させる。
トベクトルを同時に処理するために、与えられた複数の
テストベクトルに対して、それぞれ異なる遅延の種類の
番号を持つイベントを同時に発生させる。
【0013】
【作用】イベントの情報に遅延の種類の識別番号を付加
することにより、遅延の種類毎にイベント情報を保持す
る必要がなくなる。また、素子情報の出力値と遅延値の
情報も、各出力端子毎に、遅延の種類の数だけ保持する
ことによりイベント情報に格納されている遅延の種類番
号に対応した出力値に対してイベント情報を伝播し、更
に遅延の種類番号に対応した遅延値を用いて新たなイベ
ントの発生を行うことにより、遅延の種類毎にそれぞれ
独立にイベントを評価する必要がなくなる。その結果、
同一時刻のイベントを遅延の種類によらず同時に一括し
て評価を行うことが可能になり、並列処理でも効率良く
処理を行うことができる。
することにより、遅延の種類毎にイベント情報を保持す
る必要がなくなる。また、素子情報の出力値と遅延値の
情報も、各出力端子毎に、遅延の種類の数だけ保持する
ことによりイベント情報に格納されている遅延の種類番
号に対応した出力値に対してイベント情報を伝播し、更
に遅延の種類番号に対応した遅延値を用いて新たなイベ
ントの発生を行うことにより、遅延の種類毎にそれぞれ
独立にイベントを評価する必要がなくなる。その結果、
同一時刻のイベントを遅延の種類によらず同時に一括し
て評価を行うことが可能になり、並列処理でも効率良く
処理を行うことができる。
【0014】また、あらかじめ指定した観測対象の素子
出力端子の識別情報と観測周期情報に従い、全ての遅延
の種類に対応する素子の出力値を比較することにより、
素子遅延のばらつきによる回路の誤動作の発見が容易に
なる。
出力端子の識別情報と観測周期情報に従い、全ての遅延
の種類に対応する素子の出力値を比較することにより、
素子遅延のばらつきによる回路の誤動作の発見が容易に
なる。
【0015】更に、与えられたテストベクトルに対し
て、全ての遅延の種類の識別番号を持つイベントを発生
させることにより、テストベクトルを全ての遅延の種類
に対して評価することが可能になる。
て、全ての遅延の種類の識別番号を持つイベントを発生
させることにより、テストベクトルを全ての遅延の種類
に対して評価することが可能になる。
【0016】あるいは与えられた複数のテストベクトル
に対して、それぞれ異なる遅延の種類の番号を持つイベ
ントを同時に発生させることにより、複数のテストベク
トルを同時に処理することが可能になる。この方法によ
れば、各素子に遅延の種類番号によらない共通の遅延時
間を設定することにより、全く独立した複数種類のテス
トベクトルによるシミュレーションを一括して処理する
ことが可能になる。
に対して、それぞれ異なる遅延の種類の番号を持つイベ
ントを同時に発生させることにより、複数のテストベク
トルを同時に処理することが可能になる。この方法によ
れば、各素子に遅延の種類番号によらない共通の遅延時
間を設定することにより、全く独立した複数種類のテス
トベクトルによるシミュレーションを一括して処理する
ことが可能になる。
【0017】
【実施例】以下、本発明の実施例を図1,図4ないし図
28を用いて説明する。まず、図1と図4ないし図8を
用いて、個々の素子に複数種類の遅延を割り当て、一つ
のテストベクトルに対し、複数種類の遅延に基づいた論
理シミュレーションを一括して同時に処理する方法(以
下、多重遅延論理シミュレーションと呼ぶ)の実施例を
説明する。次に図9を用いて複数のテストベクトルに対
する論理シミュレーションを一括して同時に処理する方
法(以下、多重テスト論理シミュレーション方法と呼
ぶ)の実施例を説明する。更に、図10ないし図28を
用いて多重遅延論理シミュレーションの動作を例題を用
いて説明する。
28を用いて説明する。まず、図1と図4ないし図8を
用いて、個々の素子に複数種類の遅延を割り当て、一つ
のテストベクトルに対し、複数種類の遅延に基づいた論
理シミュレーションを一括して同時に処理する方法(以
下、多重遅延論理シミュレーションと呼ぶ)の実施例を
説明する。次に図9を用いて複数のテストベクトルに対
する論理シミュレーションを一括して同時に処理する方
法(以下、多重テスト論理シミュレーション方法と呼
ぶ)の実施例を説明する。更に、図10ないし図28を
用いて多重遅延論理シミュレーションの動作を例題を用
いて説明する。
【0018】本実施例では論理値として0,1,不定値
Xの3値を扱い、各素子に遅延時間を想定した論理シミ
ュレーションのモデルを採用する。また本実施例では本
発明とは直接関係のない部分、例えば論理シミュレーシ
ョンに必要な論理回路の構造を解析しシミュレーション
に必要なデータ構造を作る処理やシミュレーションの結
果をユーザに理解できる形式で出力する処理の説明は省
略し、論理シミュレーションの実行部分についてのみ説
明する。
Xの3値を扱い、各素子に遅延時間を想定した論理シミ
ュレーションのモデルを採用する。また本実施例では本
発明とは直接関係のない部分、例えば論理シミュレーシ
ョンに必要な論理回路の構造を解析しシミュレーション
に必要なデータ構造を作る処理やシミュレーションの結
果をユーザに理解できる形式で出力する処理の説明は省
略し、論理シミュレーションの実行部分についてのみ説
明する。
【0019】また、本実施例の説明では複数の要素を持
つデータの最初の要素を0番目の要素,その次の要素を
1番目の要素、というように何番目という数え方の場合
は0を先頭とする。
つデータの最初の要素を0番目の要素,その次の要素を
1番目の要素、というように何番目という数え方の場合
は0を先頭とする。
【0020】図1は多重遅延論理シミュレーションを実
現するデータ構造の説明図である。図1(a)はイベン
ト情報を格納するデータ構造である。101は従来から
イベント法による論理シミュレーションで用いられてい
るタイムホイールと呼ばれるデータ構造である。タイム
ホイールはイベントを信号伝播時刻により分類して保持
する。各イベント情報102はリンクポインタ103で
接続し、順次読みだすことが可能になっている。
現するデータ構造の説明図である。図1(a)はイベン
ト情報を格納するデータ構造である。101は従来から
イベント法による論理シミュレーションで用いられてい
るタイムホイールと呼ばれるデータ構造である。タイム
ホイールはイベントを信号伝播時刻により分類して保持
する。各イベント情報102はリンクポインタ103で
接続し、順次読みだすことが可能になっている。
【0021】イベント情報は104〜108の五つの情
報により構成される。一つのイベントの情報は、「ある
素子の出力端子がある時刻にある値に変化する」という
情報である。信号伝播時刻104はイベントが伝播する
時刻、信号伝播素子105はイベントが伝播する素子の
識別子、伝播出力106はイベントが伝播する出力端子
の識別子、伝播信号値107はイベントにより伝播する
素子出力の信号値、遅延種類番号108はそのイベント
が対象とする遅延の種類の番号である。
報により構成される。一つのイベントの情報は、「ある
素子の出力端子がある時刻にある値に変化する」という
情報である。信号伝播時刻104はイベントが伝播する
時刻、信号伝播素子105はイベントが伝播する素子の
識別子、伝播出力106はイベントが伝播する出力端子
の識別子、伝播信号値107はイベントにより伝播する
素子出力の信号値、遅延種類番号108はそのイベント
が対象とする遅延の種類の番号である。
【0022】図1(b)は論理素子の情報を格納するデ
ータ構造である。111は複数の入力端子,複数の出力
端子を持つ一つの論理素子の情報を表現している。論理
シミュレーション時には論理素子の数だけ111のデー
タ構造を用意する。図1(b)において、素子種識別番号
112は素子の種類の識別子、素子固有名称113は素
子111が表現する素子の固有名称、入力端子数114
は素子の入力端子の数、115は入力端子情報リストの
格納領域を指すポインタ、出力端子数116は素子の出
力端子の数、117は出力端子情報リストの格納領域を
指すポインタである。
ータ構造である。111は複数の入力端子,複数の出力
端子を持つ一つの論理素子の情報を表現している。論理
シミュレーション時には論理素子の数だけ111のデー
タ構造を用意する。図1(b)において、素子種識別番号
112は素子の種類の識別子、素子固有名称113は素
子111が表現する素子の固有名称、入力端子数114
は素子の入力端子の数、115は入力端子情報リストの
格納領域を指すポインタ、出力端子数116は素子の出
力端子の数、117は出力端子情報リストの格納領域を
指すポインタである。
【0023】入力端子情報リストの格納領域は、入力接
続先ポインタ121と出力番号122により構成され、そ
れらの要素数123は入力端子数114に等しい。入力
接続先ポインタ121は素子111の入力端子の先に接
続する素子情報の先頭を指すポインタ、出力番号122
は入力端子の先に接続する素子の出力端子の番号であ
る。
続先ポインタ121と出力番号122により構成され、そ
れらの要素数123は入力端子数114に等しい。入力
接続先ポインタ121は素子111の入力端子の先に接
続する素子情報の先頭を指すポインタ、出力番号122
は入力端子の先に接続する素子の出力端子の番号であ
る。
【0024】出力端子情報リストの格納領域は、出力接
続先接続数124,出力先ポインタ領域の先頭を指すポ
インタ125,遅延の種類毎の出力値と遅延値を格納す
る領域の先頭を指すポインタ126により構成され、そ
れらの要素数127は出力端子数116に等しい。出力
接続先接続数124は各出力端子に接続する素子の個数
である。ポインタ125が指す出力先ポインタ領域13
1は出力接続先の素子情報を格納する領域の先頭を指す
ポインタにより構成され、その要素数132は出力接続
先数124に等しい。ポインタ126が指す遅延の種類
毎の出力値と遅延値を格納する領域は、各出力端子毎の
出力信号値133と遅延時間値134により構成され、
それらの要素数135は遅延の種類の数に等しい。そし
て、その要素は遅延の種類の番号順に格納されている。
続先接続数124,出力先ポインタ領域の先頭を指すポ
インタ125,遅延の種類毎の出力値と遅延値を格納す
る領域の先頭を指すポインタ126により構成され、そ
れらの要素数127は出力端子数116に等しい。出力
接続先接続数124は各出力端子に接続する素子の個数
である。ポインタ125が指す出力先ポインタ領域13
1は出力接続先の素子情報を格納する領域の先頭を指す
ポインタにより構成され、その要素数132は出力接続
先数124に等しい。ポインタ126が指す遅延の種類
毎の出力値と遅延値を格納する領域は、各出力端子毎の
出力信号値133と遅延時間値134により構成され、
それらの要素数135は遅延の種類の数に等しい。そし
て、その要素は遅延の種類の番号順に格納されている。
【0025】図4は本発明を実施する論理シミュレーシ
ョンの処理の説明図である。図4の処理は、シミュレー
ション対象の論理回路の素子と接続情報をあらかじめ図
1の111の形式で作成した後に開始される。初期状態
では図1(a)のイベント情報を格納するタイムホイー
ル中にはイベント情報は格納されていない。
ョンの処理の説明図である。図4の処理は、シミュレー
ション対象の論理回路の素子と接続情報をあらかじめ図
1の111の形式で作成した後に開始される。初期状態
では図1(a)のイベント情報を格納するタイムホイー
ル中にはイベント情報は格納されていない。
【0026】まず、401にてシミュレーションの時刻
XTを初期化する。402のループは処理403〜40
7をシミュレーション時刻XTが終了時刻に達するまで
繰り返す。テストベクトルの追加処理403はシミュレ
ーション時に与えられるテストベクトルをイベントとし
て追加する処理である。テストベクトルの追加処理は多
重遅延論理シミュレーションと多重テスト論理シミュレ
ーションで異なる。
XTを初期化する。402のループは処理403〜40
7をシミュレーション時刻XTが終了時刻に達するまで
繰り返す。テストベクトルの追加処理403はシミュレ
ーション時に与えられるテストベクトルをイベントとし
て追加する処理である。テストベクトルの追加処理は多
重遅延論理シミュレーションと多重テスト論理シミュレ
ーションで異なる。
【0027】図5は多重遅延論理シミュレーションにお
けるテストベクトルの追加処理、図9は多重テスト論理
シミュレーションにおけるテストベクトルの追加処理で
ある。
けるテストベクトルの追加処理、図9は多重テスト論理
シミュレーションにおけるテストベクトルの追加処理で
ある。
【0028】イベント伝播処理404はタイムホイール
に保持された時刻XTのイベントの情報に従い、イベン
トを各素子に伝播する処理である。イベント伝播処理の
詳細を図6に示す。素子出力値評価処理405はイベン
トの伝播した、即ち出力信号の値が変化した素子の出力
端子に接続する素子、即ち入力信号が変化した素子につ
いて、新たな入力信号値をもとに新たな出力信号値を求
め、新たな出力信号値がそれまでの出力信号値と異なる
場合に、その変化をイベントとしてタイムホイールに追
加する。素子出力値評価処理の詳細を図7に示す。出力
値比較処理406は一定の時間間隔で、指定された素子の
出力端子について、全ての遅延の種類の出力値を参照
し、それらが一致しているか否かを調べ、その結果を出
力する。この処理は本発明の請求項2の実施例で、図8
に詳細を示す。407ではシミュレーション時刻XTを
次の時刻に更新する。
に保持された時刻XTのイベントの情報に従い、イベン
トを各素子に伝播する処理である。イベント伝播処理の
詳細を図6に示す。素子出力値評価処理405はイベン
トの伝播した、即ち出力信号の値が変化した素子の出力
端子に接続する素子、即ち入力信号が変化した素子につ
いて、新たな入力信号値をもとに新たな出力信号値を求
め、新たな出力信号値がそれまでの出力信号値と異なる
場合に、その変化をイベントとしてタイムホイールに追
加する。素子出力値評価処理の詳細を図7に示す。出力
値比較処理406は一定の時間間隔で、指定された素子の
出力端子について、全ての遅延の種類の出力値を参照
し、それらが一致しているか否かを調べ、その結果を出
力する。この処理は本発明の請求項2の実施例で、図8
に詳細を示す。407ではシミュレーション時刻XTを
次の時刻に更新する。
【0029】図5はテストベクトルの追加処理403を
説明する図である。図5(a)のテストベクトル情報5
00はテストベクトルを格納するデータ構造の例を示し
ている。このデータ構造は、テストベクトルの1要素を
参照するための参照ポインタP501,テストベクトル
を格納するテーブル502により構成される。テーブル
502はテストベクトルを回路の入力へ伝播する時刻5
03,伝播する入力の識別番号504,伝播する信号値
505から構成される。
説明する図である。図5(a)のテストベクトル情報5
00はテストベクトルを格納するデータ構造の例を示し
ている。このデータ構造は、テストベクトルの1要素を
参照するための参照ポインタP501,テストベクトル
を格納するテーブル502により構成される。テーブル
502はテストベクトルを回路の入力へ伝播する時刻5
03,伝播する入力の識別番号504,伝播する信号値
505から構成される。
【0030】本実施例では図10の例に示すように、回
路の入力は仮想的な素子(仮想入力素子)の出力端子と
して考え、入力用に図1の111の形式の素子情報を用
意する。この仮想入力素子には入力端子はなく、出力端
子のみが存在し、回路中にただ一つ存在する。本実施例
ではテストベクトルを仮想入力素子の出力を変化させる
イベントとして処理する。テーブル502にはテストベ
クトルの信号変化情報を時刻の順に格納する。
路の入力は仮想的な素子(仮想入力素子)の出力端子と
して考え、入力用に図1の111の形式の素子情報を用
意する。この仮想入力素子には入力端子はなく、出力端
子のみが存在し、回路中にただ一つ存在する。本実施例
ではテストベクトルを仮想入力素子の出力を変化させる
イベントとして処理する。テーブル502にはテストベ
クトルの信号変化情報を時刻の順に格納する。
【0031】図5(b)のテストベクトルの追加処理4
03では511のループでテーブル502のうち、時刻
503が現在の時刻XTと等しい要素について、かつ参
照ポインタPがテーブル502の範囲内を指す限り51
2〜514の処理を行う。ループ512では参照ポイン
タPが指すテストベクトルの1要素について513の処
理を遅延の種類の数だけ行う。513では、Pが指す要
素の時刻503を信号伝播時刻104,仮想入力素子へ
のポインタを信号伝播素子105,Pが指す要素の入力
番号504を伝播出力106,Pが指す要素の伝播値5
05を伝播信号値107,ループ512のカウンタ値
(0〜遅延の種類の数−1までの値)を遅延の種類番号1
08とするイベントを生成し、タイムホイールに登録す
る。514では参照ポインタを次の要素を指す値に更新
する。
03では511のループでテーブル502のうち、時刻
503が現在の時刻XTと等しい要素について、かつ参
照ポインタPがテーブル502の範囲内を指す限り51
2〜514の処理を行う。ループ512では参照ポイン
タPが指すテストベクトルの1要素について513の処
理を遅延の種類の数だけ行う。513では、Pが指す要
素の時刻503を信号伝播時刻104,仮想入力素子へ
のポインタを信号伝播素子105,Pが指す要素の入力
番号504を伝播出力106,Pが指す要素の伝播値5
05を伝播信号値107,ループ512のカウンタ値
(0〜遅延の種類の数−1までの値)を遅延の種類番号1
08とするイベントを生成し、タイムホイールに登録す
る。514では参照ポインタを次の要素を指す値に更新
する。
【0032】図6は、図4におけるイベント伝播処理4
04の詳細の説明図である。図6(a)はイベント伝播
処理により作成される出力先接続素子情報600のデー
タ構造の説明図である。イベント伝播処理では、タイム
ホイールに格納されたイベントを素子に伝播する、そし
て、イベントが伝播した素子の出力端子に接続する素子
を指すポインタを図6(a)に示すテーブルに列挙す
る。
04の詳細の説明図である。図6(a)はイベント伝播
処理により作成される出力先接続素子情報600のデー
タ構造の説明図である。イベント伝播処理では、タイム
ホイールに格納されたイベントを素子に伝播する、そし
て、イベントが伝播した素子の出力端子に接続する素子
を指すポインタを図6(a)に示すテーブルに列挙す
る。
【0033】図6(a)は参照ポインタQ601と出力
先接続素子テーブル602により構成される。テーブル
602は素子情報の先頭を指すポインタである出力先接
続ポインタ603と遅延種類番号604により構成され
る。
先接続素子テーブル602により構成される。テーブル
602は素子情報の先頭を指すポインタである出力先接
続ポインタ603と遅延種類番号604により構成され
る。
【0034】図6(b)はイベント伝播処理の手順の説
明図である。まず611で参照ポインタQをテーブル6
02の先頭を指すように設定する。ループ612はタイ
ムホイール中に格納されている現在のシミュレーション
時刻XTに伝播する全てのイベントについて繰り返す。
613でイベントEをタイムホイールから取り出す。6
14で、Eの信号伝播素子105が指す素子Xについ
て、Eの伝播出力106が示す番号(EO番目とする)
の出力端子の、Eの遅延種類番号108が示す番号の位
置の出力値を、Eの伝播信号値107とする。ループ6
15は、素子XのEO番目の出力端子の接続先数だけ6
16,617の処理を繰り返す。616では参照ポイン
タQが指すテーブル602の要素に、素子XのEO番目
の出力端子のj番目(jはループ615のループカウン
タで、0から素子XのEO番目の出力端子の出力接続先
数−1までの値)の出力接続先ポインタ131を出力接
続先ポインタ603として、Eの遅延種類番号を遅延種
類番号604としてそれぞれ格納する。617では参照
ポインタQを次の要素を指す値に更新する。
明図である。まず611で参照ポインタQをテーブル6
02の先頭を指すように設定する。ループ612はタイ
ムホイール中に格納されている現在のシミュレーション
時刻XTに伝播する全てのイベントについて繰り返す。
613でイベントEをタイムホイールから取り出す。6
14で、Eの信号伝播素子105が指す素子Xについ
て、Eの伝播出力106が示す番号(EO番目とする)
の出力端子の、Eの遅延種類番号108が示す番号の位
置の出力値を、Eの伝播信号値107とする。ループ6
15は、素子XのEO番目の出力端子の接続先数だけ6
16,617の処理を繰り返す。616では参照ポイン
タQが指すテーブル602の要素に、素子XのEO番目
の出力端子のj番目(jはループ615のループカウン
タで、0から素子XのEO番目の出力端子の出力接続先
数−1までの値)の出力接続先ポインタ131を出力接
続先ポインタ603として、Eの遅延種類番号を遅延種
類番号604としてそれぞれ格納する。617では参照
ポインタQを次の要素を指す値に更新する。
【0035】図7は、図4における素子評価処理405
の詳細の説明図である。図の処理手順ではまず701で
図6(a)の出力先接続情報を格納するテーブル602
を指すポインタRを、テーブル602の先頭を指すよう
に初期化する。ループ702はポインタRがテーブル6
02の要素の範囲、即ち、イベント伝播処理404で登
録した個数だけ703〜707の処理を繰り返す。ルー
プ703はRが指す先の要素の出力接続先ポインタの6
03が指す素子Yの出力端子の数だけ704〜706を
繰り返す。
の詳細の説明図である。図の処理手順ではまず701で
図6(a)の出力先接続情報を格納するテーブル602
を指すポインタRを、テーブル602の先頭を指すよう
に初期化する。ループ702はポインタRがテーブル6
02の要素の範囲、即ち、イベント伝播処理404で登
録した個数だけ703〜707の処理を繰り返す。ルー
プ703はRが指す先の要素の出力接続先ポインタの6
03が指す素子Yの出力端子の数だけ704〜706を
繰り返す。
【0036】704では素子Yの入力端子に接続する素
子、即ち接続先ポインタ121が指す素子の、素子Yに
接続する出力端子、即ち素子Yの出力番号122番目の
出力端子の、Rの指す先の要素の遅延種類番号604番
目(RD番目とする)の出力値と、素子Yの素子種識別
番号112から、素子Yの各出力端子の新しい出力値V
kを求める(kはループ703のループカウンタ)。
子、即ち接続先ポインタ121が指す素子の、素子Yに
接続する出力端子、即ち素子Yの出力番号122番目の
出力端子の、Rの指す先の要素の遅延種類番号604番
目(RD番目とする)の出力値と、素子Yの素子種識別
番号112から、素子Yの各出力端子の新しい出力値V
kを求める(kはループ703のループカウンタ)。
【0037】705では704で求めた新しい出力値V
kと素子Yの各出力端子のRD番目の出力値が等しくな
い場合に706の処理を行う。706では、現在のシミ
ュレーション時刻XTに、素子Yのk番目の出力のRD
番目の遅延値134を加えた値を信号伝播時刻104,
素子Yの情報を格納する領域の先頭を指すポインタ値を
信号伝播素子105,kを伝播出力106,Vkを伝播
信号値107,RDを遅延の種類番号108とするイベ
ントをタイムホイールに追加する。
kと素子Yの各出力端子のRD番目の出力値が等しくな
い場合に706の処理を行う。706では、現在のシミ
ュレーション時刻XTに、素子Yのk番目の出力のRD
番目の遅延値134を加えた値を信号伝播時刻104,
素子Yの情報を格納する領域の先頭を指すポインタ値を
信号伝播素子105,kを伝播出力106,Vkを伝播
信号値107,RDを遅延の種類番号108とするイベ
ントをタイムホイールに追加する。
【0038】図8は出力値比較処理406の説明図であ
る。
る。
【0039】図8(a)は観測対象の素子とその出力端
子の情報808とそれらを観測する周期の情報807を
格納するデータ構造を説明する図である。観測開始時刻
XS801は観測を開始するシミュレーション時刻、観
測周期XP802は観測を行う周期を格納する。ポイン
タS803は観測対象の素子とその出力端子の情報を格
納するテーブル806の要素を参照するポインタであ
る。テーブル806は観測対象の素子情報111を参照
するポインタ804と観測対象素子の出力端子の番号8
05を要素とする。
子の情報808とそれらを観測する周期の情報807を
格納するデータ構造を説明する図である。観測開始時刻
XS801は観測を開始するシミュレーション時刻、観
測周期XP802は観測を行う周期を格納する。ポイン
タS803は観測対象の素子とその出力端子の情報を格
納するテーブル806の要素を参照するポインタであ
る。テーブル806は観測対象の素子情報111を参照
するポインタ804と観測対象素子の出力端子の番号8
05を要素とする。
【0040】図8(b)は出力値比較処理の手順の説明
図である。811では観測開始時刻XSと観測周期XP
により指定される時刻、すなわち、現在のシミュレーシ
ョン時刻XTがXSよりも大きく、かつXTとXSの差
分とXPの剰余が0の場合にのみ812ないし822の
処理を行う。812ではポインタS803をテーブル8
06の先頭の要素を指すように初期化する。813のル
ープではSがテーブル806の要素を参照する間(テー
ブル806の要素数に等しい回数だけ)814ないし8
22の処理を繰り返す。
図である。811では観測開始時刻XSと観測周期XP
により指定される時刻、すなわち、現在のシミュレーシ
ョン時刻XTがXSよりも大きく、かつXTとXSの差
分とXPの剰余が0の場合にのみ812ないし822の
処理を行う。812ではポインタS803をテーブル8
06の先頭の要素を指すように初期化する。813のル
ープではSがテーブル806の要素を参照する間(テー
ブル806の要素数に等しい回数だけ)814ないし8
22の処理を繰り返す。
【0041】814ではカウンタC0,C1,CXを0
に初期化する。815のループはSが指す要素の素子ポ
インタ804が指す素子Zの、Sが指す要素の出力端子
番号805番目(SO番目とする)の出力端子につい
て、遅延の種類の数だけ816〜822の処理を繰り返
す。816では素子ZのSO番目の出力端子のm番目の
出力値(mはループ815のループカウンタ)が0の場
合,1の場合,不定値Xの場合にそれぞれカウンタC
0,C1,CXをインクリメントする(817ないし8
19)。820ではカウンタC0,C1,CXのうち複
数のカウンタが同時に0でない場合、すなわち、出力に
不一致が存在する場合に821を行う。821では時刻X
Tにおいて素子ZのSO番目の出力に不一致が存在する
ことを出力する。822ではポインタSを次の要素を指
す値に更新する。
に初期化する。815のループはSが指す要素の素子ポ
インタ804が指す素子Zの、Sが指す要素の出力端子
番号805番目(SO番目とする)の出力端子につい
て、遅延の種類の数だけ816〜822の処理を繰り返
す。816では素子ZのSO番目の出力端子のm番目の
出力値(mはループ815のループカウンタ)が0の場
合,1の場合,不定値Xの場合にそれぞれカウンタC
0,C1,CXをインクリメントする(817ないし8
19)。820ではカウンタC0,C1,CXのうち複
数のカウンタが同時に0でない場合、すなわち、出力に
不一致が存在する場合に821を行う。821では時刻X
Tにおいて素子ZのSO番目の出力に不一致が存在する
ことを出力する。822ではポインタSを次の要素を指
す値に更新する。
【0042】図9は多重テスト論理シミュレーションに
おけるテストベクトルの追加処理403の説明図であ
る。この処理では複数種類のテストベクトルを同時に扱
う。図9(a)はテストベクトルを格納するデータ構造
の例である。このデータ構造はベクトルの種類906が
テーブル902に追加されている以外は図5(a)と同
じである。ベクトルの種類906にはその要素がどのテ
ストベクトルのものであるかを識別するための番号を格
納する。テーブル902にはテストベクトルの信号変化
情報をテストベクトルの種類によらず時刻の順に格納す
る。
おけるテストベクトルの追加処理403の説明図であ
る。この処理では複数種類のテストベクトルを同時に扱
う。図9(a)はテストベクトルを格納するデータ構造
の例である。このデータ構造はベクトルの種類906が
テーブル902に追加されている以外は図5(a)と同
じである。ベクトルの種類906にはその要素がどのテ
ストベクトルのものであるかを識別するための番号を格
納する。テーブル902にはテストベクトルの信号変化
情報をテストベクトルの種類によらず時刻の順に格納す
る。
【0043】図9(b)の処理では511のループでテ
ーブル902のうち、時刻503が現在のシミュレーシ
ョン時刻XTと等しい要素について、かつ参照ポインタ
Pがテーブル902の範囲内を指す限り913,514
の処理を行う。913では、Pが指す要素の時刻503
を信号伝播時刻104,仮想入力素子へのポインタを信
号伝播素子105,Pが指す要素の入力番号504を伝
播出力106,Pが指す要素の伝播値505を伝播信号
値107,Pが指す要素のベクトルの種類番号906を
遅延の種類番号108とするイベントを生成し、タイム
ホイールに登録する。514では参照ポインタを次の要
素に更新する。多重テスト論理シミュレーションは図9
に示すテストベクトルの追加処理以外の部分は図1,図
4,図6ないし図8で示した、多重遅延論理シミュレー
ションの実施例と同じである。
ーブル902のうち、時刻503が現在のシミュレーシ
ョン時刻XTと等しい要素について、かつ参照ポインタ
Pがテーブル902の範囲内を指す限り913,514
の処理を行う。913では、Pが指す要素の時刻503
を信号伝播時刻104,仮想入力素子へのポインタを信
号伝播素子105,Pが指す要素の入力番号504を伝
播出力106,Pが指す要素の伝播値505を伝播信号
値107,Pが指す要素のベクトルの種類番号906を
遅延の種類番号108とするイベントを生成し、タイム
ホイールに登録する。514では参照ポインタを次の要
素に更新する。多重テスト論理シミュレーションは図9
に示すテストベクトルの追加処理以外の部分は図1,図
4,図6ないし図8で示した、多重遅延論理シミュレー
ションの実施例と同じである。
【0044】図10以降では図4ないし図8にて説明し
た本発明の実施例の動作を説明する。図10は説明に利
用する論理回路の例を示す図である。図10(a)は実
際の論理回路、図10(b)はシミュレーション実行時
の回路である。
た本発明の実施例の動作を説明する。図10は説明に利
用する論理回路の例を示す図である。図10(a)は実
際の論理回路、図10(b)はシミュレーション実行時
の回路である。
【0045】図10(a)の1001ないし1003は
回路の入力端子、1004はG1という固有名称を持つ
素子で、その種類はAND、そして3と5の2種類の遅
延時間を持つ。1005は素子1004の出力信号、1
006はG2という固有名称を持つ素子で、その種類は
OR、そして2と4の2種類の遅延時間を持つ。1007は
素子1006の出力信号である。回路の入力端子100
1,1002は素子1004の入力端子に接続してい
る。1004の出力信号1005は素子1006の入力端子
に接続している。回路の入力端子1003は素子100
6のもう一つの入力端子に接続している。素子1006
の出力信号1007はどこにも接続していない。
回路の入力端子、1004はG1という固有名称を持つ
素子で、その種類はAND、そして3と5の2種類の遅
延時間を持つ。1005は素子1004の出力信号、1
006はG2という固有名称を持つ素子で、その種類は
OR、そして2と4の2種類の遅延時間を持つ。1007は
素子1006の出力信号である。回路の入力端子100
1,1002は素子1004の入力端子に接続してい
る。1004の出力信号1005は素子1006の入力端子
に接続している。回路の入力端子1003は素子100
6のもう一つの入力端子に接続している。素子1006
の出力信号1007はどこにも接続していない。
【0046】図10(b)には、前記したように仮想入
力素子1010が付加されるが、その他の回路の構造は
図10(a)と同じである。仮想入力素子1010の固
有名称はG0とする。素子1014は0番と1番の二つ
の入力端子をもち、それぞれ仮想入力素子1010の0
番の出力端子と1番の出力端子に、信号線1011と信
号線1012を介して接続している。素子1016も0
番と1番の二つの入力端子をもち、それぞれ素子101
4の0番の出力端子と仮想入力素子1010の2番の出
力端子に、信号線1015と信号線1013を介して接
続している。素子1016の0番の出力端子に接続する
信号線1017はどこにも接続していない。
力素子1010が付加されるが、その他の回路の構造は
図10(a)と同じである。仮想入力素子1010の固
有名称はG0とする。素子1014は0番と1番の二つ
の入力端子をもち、それぞれ仮想入力素子1010の0
番の出力端子と1番の出力端子に、信号線1011と信
号線1012を介して接続している。素子1016も0
番と1番の二つの入力端子をもち、それぞれ素子101
4の0番の出力端子と仮想入力素子1010の2番の出
力端子に、信号線1015と信号線1013を介して接
続している。素子1016の0番の出力端子に接続する
信号線1017はどこにも接続していない。
【0047】図11は図10の回路を図1(b)の11
1に示すデータ構造に基づいて表現した例である。図1
0の回路は仮想入力素子も含めて三つの素子で構成され
るので111の形式のデータ構造も3個必要になる。
1に示すデータ構造に基づいて表現した例である。図1
0の回路は仮想入力素子も含めて三つの素子で構成され
るので111の形式のデータ構造も3個必要になる。
【0048】1101は仮想入力素子を表現している。
その情報を格納する先頭のアドレスを0とする。110
2は素子種を識別する番号で仮想入力素子に対応する値
(ここでは0)を格納する。1103は素子の固有名称
であるG0を格納する。1104は仮想入力素子の入力端子
の数を表す。仮想入力端子には入力端子が存在しないの
で1104は0で、入力の接続先のポインタリストへの
ポインタ1105はどこも指していない。1106は仮
想入力素子の出力端子の数、3を格納する。
その情報を格納する先頭のアドレスを0とする。110
2は素子種を識別する番号で仮想入力素子に対応する値
(ここでは0)を格納する。1103は素子の固有名称
であるG0を格納する。1104は仮想入力素子の入力端子
の数を表す。仮想入力端子には入力端子が存在しないの
で1104は0で、入力の接続先のポインタリストへの
ポインタ1105はどこも指していない。1106は仮
想入力素子の出力端子の数、3を格納する。
【0049】1107は仮想入力素子の出力の接続先ポ
インタリスト1109へのポインタを格納する。110
9は1106の数と等しい三つの要素を持ち、一つの要
素は三つのフィールド、即ち1113,1114,11
15からなる。
インタリスト1109へのポインタを格納する。110
9は1106の数と等しい三つの要素を持ち、一つの要
素は三つのフィールド、即ち1113,1114,11
15からなる。
【0050】1113には出力が接続する素子の数を格
納する。仮想入力素子は各出力はそれぞれ一つの出力先
を持つので1113の値は三つとも1である。1114
には出力が接続する素子の情報を格納する領域へのポイ
ンタ(先頭アドレス)のリストを格納する。仮想入力素子
の0番の出力は素子G1に接続するのでその情報を格納
する先頭アドレス6を1116に格納する。同様に11
20にも6,1124には12を格納する。1115に
は各出力端子の出力値と遅延時間を遅延の種類毎に格納
する。この例では2種類の遅延を扱うので1117,1
121,1125はそれぞれ二つの要素を持つ。
納する。仮想入力素子は各出力はそれぞれ一つの出力先
を持つので1113の値は三つとも1である。1114
には出力が接続する素子の情報を格納する領域へのポイ
ンタ(先頭アドレス)のリストを格納する。仮想入力素子
の0番の出力は素子G1に接続するのでその情報を格納
する先頭アドレス6を1116に格納する。同様に11
20にも6,1124には12を格納する。1115に
は各出力端子の出力値と遅延時間を遅延の種類毎に格納
する。この例では2種類の遅延を扱うので1117,1
121,1125はそれぞれ二つの要素を持つ。
【0051】各要素は1118,1119(あるいは1
122,1123、又は1126,1127)の二つの
フィールドからなり、1118(1122,1126)
には出力値を、1119(1123,1127)には遅
延時間を格納する。ここでは仮想入力素子の出力値、即
ち、回路の入力端子の初期値を0とするので1118,
1122,1126の値は全て0である。また仮想入力
素子には入力端子が存在しないので入力から出力までの
遅延時間は存在しない、ここでは1119,1123,
1127の遅延値を仮に0とする。
122,1123、又は1126,1127)の二つの
フィールドからなり、1118(1122,1126)
には出力値を、1119(1123,1127)には遅
延時間を格納する。ここでは仮想入力素子の出力値、即
ち、回路の入力端子の初期値を0とするので1118,
1122,1126の値は全て0である。また仮想入力
素子には入力端子が存在しないので入力から出力までの
遅延時間は存在しない、ここでは1119,1123,
1127の遅延値を仮に0とする。
【0052】1131は素子G1を表現している。11
32はANDの素子種を表す11を格納する。1133
には素子の固有名称G1を格納する。1134には素子
の入力端子の数である2を格納する。1135は素子の
入力の接続先へのポインタリストを格納する領域113
8へのポインタを格納する。1138は素子の入力端子
の数に等しい要素を持つ。一つの要素は1141,11
42の二つのフィールドからなる。1141は接続先の
素子の情報を格納する領域を指すポインタで、G1の入
力はどちらも仮想入力素子に接続するのでその先頭アド
レス0を格納する。1142は入力が接続する先の素子
の出力端子番号を格納する。
32はANDの素子種を表す11を格納する。1133
には素子の固有名称G1を格納する。1134には素子
の入力端子の数である2を格納する。1135は素子の
入力の接続先へのポインタリストを格納する領域113
8へのポインタを格納する。1138は素子の入力端子
の数に等しい要素を持つ。一つの要素は1141,11
42の二つのフィールドからなる。1141は接続先の
素子の情報を格納する領域を指すポインタで、G1の入
力はどちらも仮想入力素子に接続するのでその先頭アド
レス0を格納する。1142は入力が接続する先の素子
の出力端子番号を格納する。
【0053】G1の入力は仮想入力素子の0番の出力端
子と1番の出力端子に接続するので1142には0と1
を格納する。1136は素子G1の出力端子の数1を格
納する。1137には素子G1の出力の接続先ポインタ
リスト1139へのポインタを格納する。1139は出
力端子の数1に等しい数の要素を持つ。1143は出力
が接続する素子の数1を格納する。1144は出力の接
続する素子の情報を格納する領域の先頭アドレスを格納
する。素子G1の出力に接続する素子G2の先頭アドレ
ス12を1144に格納する。1145は出力値と遅延
値を格納する領域1147を指すポインタを格納する。
1147は遅延の種類の数2に等しい要素を持つ。出力
値1148は初期値0を格納する。遅延値1149は素
子G1の遅延時間3と5を格納する。
子と1番の出力端子に接続するので1142には0と1
を格納する。1136は素子G1の出力端子の数1を格
納する。1137には素子G1の出力の接続先ポインタ
リスト1139へのポインタを格納する。1139は出
力端子の数1に等しい数の要素を持つ。1143は出力
が接続する素子の数1を格納する。1144は出力の接
続する素子の情報を格納する領域の先頭アドレスを格納
する。素子G1の出力に接続する素子G2の先頭アドレ
ス12を1144に格納する。1145は出力値と遅延
値を格納する領域1147を指すポインタを格納する。
1147は遅延の種類の数2に等しい要素を持つ。出力
値1148は初期値0を格納する。遅延値1149は素
子G1の遅延時間3と5を格納する。
【0054】1161は素子G2を表現している。11
62はORの素子種を表す21を格納する。1163に
は素子の固有名称G2を格納する。1164には素子の
入力端子の数である2を格納する。1165は素子の入
力の接続先へのポインタリストを格納する領域1168
へのポインタを格納する。1168は素子の入力端子の
数に等しい要素を持つ。1171は接続先の素子の情報
を格納する領域を指すポインタで、G2の入力は素子G
1と仮想入力素子に接続するのでその先頭アドレス6と
0を格納する。1172は入力が接続する先の素子の出
力端子番号を格納する。G2の入力はG1の0番の出力
端子と仮想入力素子の2番の出力端子に接続するので1
172には0と2を格納する。1166は素子G2の出
力端子の数、すなわち1を格納する。1167には素子
G2の出力の接続先ポインタリスト1169へのポイン
タを格納する。1169は出力端子の数、すなわち1に
等しい数の要素を持つ。1173は出力の接続先素子の
数0を格納する。1174はG2に接続する素子がない
ので何も格納しない。1175は出力値と遅延値を格納
する領域1177を指すポインタを格納する。1177
は遅延の種類の数2に等しい要素を持つ。出力値117
8は初期値0を格納する。遅延値1179は素子G2の
遅延時間2と4を格納する。
62はORの素子種を表す21を格納する。1163に
は素子の固有名称G2を格納する。1164には素子の
入力端子の数である2を格納する。1165は素子の入
力の接続先へのポインタリストを格納する領域1168
へのポインタを格納する。1168は素子の入力端子の
数に等しい要素を持つ。1171は接続先の素子の情報
を格納する領域を指すポインタで、G2の入力は素子G
1と仮想入力素子に接続するのでその先頭アドレス6と
0を格納する。1172は入力が接続する先の素子の出
力端子番号を格納する。G2の入力はG1の0番の出力
端子と仮想入力素子の2番の出力端子に接続するので1
172には0と2を格納する。1166は素子G2の出
力端子の数、すなわち1を格納する。1167には素子
G2の出力の接続先ポインタリスト1169へのポイン
タを格納する。1169は出力端子の数、すなわち1に
等しい数の要素を持つ。1173は出力の接続先素子の
数0を格納する。1174はG2に接続する素子がない
ので何も格納しない。1175は出力値と遅延値を格納
する領域1177を指すポインタを格納する。1177
は遅延の種類の数2に等しい要素を持つ。出力値117
8は初期値0を格納する。遅延値1179は素子G2の
遅延時間2と4を格納する。
【0055】図12はシミュレーション時に与えるテス
トベクトルの例の説明図である。図10(a)のテスト
ベクトル1200は回路の入力端子1001,100
2,1003に与えられる。1001は時刻2において
0から1に変化し、1002は時刻5において0から1
に変化する。1003は変化しない。このテストベクト
ルの情報を図5(a)のデータ構造に格納すると図12
(b)のようになる。1201はテストベクトル格納情
報502で1202が503,1203が504,1204
が505にそれぞれ対応する。1202の時刻には信号
が変化する時刻2と5を格納する。1203には入力端
子の番号、即ち、1001,1002に対応する仮想入
力素子の出力端子番号0と1を格納する。1204には
伝播する値、即ち、1を格納する。
トベクトルの例の説明図である。図10(a)のテスト
ベクトル1200は回路の入力端子1001,100
2,1003に与えられる。1001は時刻2において
0から1に変化し、1002は時刻5において0から1
に変化する。1003は変化しない。このテストベクト
ルの情報を図5(a)のデータ構造に格納すると図12
(b)のようになる。1201はテストベクトル格納情
報502で1202が503,1203が504,1204
が505にそれぞれ対応する。1202の時刻には信号
が変化する時刻2と5を格納する。1203には入力端
子の番号、即ち、1001,1002に対応する仮想入
力素子の出力端子番号0と1を格納する。1204には
伝播する値、即ち、1を格納する。
【0056】図13は図8に示した出力値比較処理に利
用する観測周期と観測素子情報の例である。観測開始時
刻XS1301は時刻12、観測周期XP1302は2
0である。また観測する素子はポインタ値6(130
4)の素子G1の番号0(1305)の出力端子とポインタ値
12(1304)の素子G2の番号0(1305)の出
力端子である。
用する観測周期と観測素子情報の例である。観測開始時
刻XS1301は時刻12、観測周期XP1302は2
0である。また観測する素子はポインタ値6(130
4)の素子G1の番号0(1305)の出力端子とポインタ値
12(1304)の素子G2の番号0(1305)の出
力端子である。
【0057】図14ないし図27では、シミュレーショ
ンが進行する様子を時刻順に説明する。またシミュレー
ションは図12(a)の図の範囲である時刻15まで行
うものとする。
ンが進行する様子を時刻順に説明する。またシミュレー
ションは図12(a)の図の範囲である時刻15まで行
うものとする。
【0058】図4の処理に従い、シミュレーションは時
刻XTを0にして開始する。図4の403ないし406
の処理は、時刻XTに伝播するテストベクトルまたはイ
ベントが存在しなければ何も行わない。407では時刻
XTを1ずつ進める。タイムホイールには初期段階では
何も登録されていないので、最初のテストベクトルが伝
播する時刻である時刻XTが2になるまで図4のループ
402は空回りすることになる。
刻XTを0にして開始する。図4の403ないし406
の処理は、時刻XTに伝播するテストベクトルまたはイ
ベントが存在しなければ何も行わない。407では時刻
XTを1ずつ進める。タイムホイールには初期段階では
何も登録されていないので、最初のテストベクトルが伝
播する時刻である時刻XTが2になるまで図4のループ
402は空回りすることになる。
【0059】時刻2において、図12(b)1201の
テストベクトル情報の最初の要素が図4の403のテス
トベクトルの追加処理の対象となる。図5に示すテスト
ベクトルの追加処理により一つのテストベクトル要素か
ら遅延の種類の数に等しい二つのイベントが作成され、
タイムホイールに追加される。図14に時刻2において
処理403で追加するイベントを示す。図5の513で
登録されるイベントはテストベクトル要素の時刻2(1
202)を信号伝播時刻(1404,1414),仮想入
力素子の先頭アドレス0を信号伝播素子(1405,1
415),テストベクトル要素の入力番号1203を伝
播出力(1406,1416),テストベクトル要素の
伝播値1204を伝播信号値(1407,1417),
0番と1番を遅延の種類番号(1408,1409)と
する。時刻が2のイベントがタイムホイールに登録され
たため図4のイベント伝播処理404が行われる。
テストベクトル情報の最初の要素が図4の403のテス
トベクトルの追加処理の対象となる。図5に示すテスト
ベクトルの追加処理により一つのテストベクトル要素か
ら遅延の種類の数に等しい二つのイベントが作成され、
タイムホイールに追加される。図14に時刻2において
処理403で追加するイベントを示す。図5の513で
登録されるイベントはテストベクトル要素の時刻2(1
202)を信号伝播時刻(1404,1414),仮想入
力素子の先頭アドレス0を信号伝播素子(1405,1
415),テストベクトル要素の入力番号1203を伝
播出力(1406,1416),テストベクトル要素の
伝播値1204を伝播信号値(1407,1417),
0番と1番を遅延の種類番号(1408,1409)と
する。時刻が2のイベントがタイムホイールに登録され
たため図4のイベント伝播処理404が行われる。
【0060】図6に示すイベント伝播処理では図14に
示す二つの時刻2のイベントが対象となる。図6の処理
613で一つのイベントを取り出し、614で素子の出
力に信号値を伝播する。614の処理ではイベント14
02の場合、1405の値である0を先頭アドレスとす
る素子、即ち、仮想入力素子1101の1406の値で
ある0番目の出力端子について1408の値である0番
目の遅延の種類に対応する出力値、即ち、図11の11
18の第1の要素を1407の値である1に変更する。
続いて図6の615の処理で0番の出力端子に接続する
素子のリストを出力先接続素子情報602に格納する。
0番の出力に接続する素子は一つでその先頭アドレスは
6であるので出力先接続素子情報の出力先接続ポインタ
603は6となる。遅延の種類番号604は0である。
イベント1412についても同様の処理を行う。
示す二つの時刻2のイベントが対象となる。図6の処理
613で一つのイベントを取り出し、614で素子の出
力に信号値を伝播する。614の処理ではイベント14
02の場合、1405の値である0を先頭アドレスとす
る素子、即ち、仮想入力素子1101の1406の値で
ある0番目の出力端子について1408の値である0番
目の遅延の種類に対応する出力値、即ち、図11の11
18の第1の要素を1407の値である1に変更する。
続いて図6の615の処理で0番の出力端子に接続する
素子のリストを出力先接続素子情報602に格納する。
0番の出力に接続する素子は一つでその先頭アドレスは
6であるので出力先接続素子情報の出力先接続ポインタ
603は6となる。遅延の種類番号604は0である。
イベント1412についても同様の処理を行う。
【0061】その結果、仮想入力素子の情報は図15に
示すように0番の出力端子の出力値1518が1に変わ
る。
示すように0番の出力端子の出力値1518が1に変わ
る。
【0062】また出力先接続素子情報は図16に示すよ
うに出力先接続ポインタの値が6,遅延の種類番号が0
と1の二つの要素が格納される。続いて時刻2における
素子出力評価処理、図4の405を行う。
うに出力先接続ポインタの値が6,遅延の種類番号が0
と1の二つの要素が格納される。続いて時刻2における
素子出力評価処理、図4の405を行う。
【0063】図7に示す素子出力評価処理では出力先接
続素子情報の要素数だけ703ないし707の処理を繰
り返す。出力先接続素子情報の出力先接続ポインタの指
す素子の各出力端子について、素子の入力信号値と素子
の種類を基に新しい出力値Vkを求める(ステップ70
4)。
続素子情報の要素数だけ703ないし707の処理を繰
り返す。出力先接続素子情報の出力先接続ポインタの指
す素子の各出力端子について、素子の入力信号値と素子
の種類を基に新しい出力値Vkを求める(ステップ70
4)。
【0064】図16の1602の最初の要素の場合、出
力先接続ポインタ値6は図11の1131(素子G1)
に対応する。1131の入力端子数は2(1134)
で、その接続先は素子ポインタ値0の出力番号0番と素
子ポインタ値0の出力番号1番の端子である(1138
の1141と1142)。そこで、素子ポインタ値0で
ある1101(仮想入力素子)の情報の0番の出力端子
と1番の出力端子について、1602の第1の要素の遅
延の種類番号(1604)番目(0番目)の出力値を参
照する。出力値は時刻2において図15に示すように0
番の出力端子の0番目の出力値は1、1番の出力端子の
0番目の出力値は0である。さらに1602の第1の要素の
出力先接続ポインタが指す素子の素子種識別番号11
(1132)、即ち論理積ANDから入力値0と1につい
て論理積演算を行うと新しい出力値Vkは0となる。7
05でVkである0と現在の出力値、即ち1131の0
番の出力端子の0番目の出力値(1148の0番目)で
ある0を比較する。この場合、両者の値が等しいので7
06は行わない。
力先接続ポインタ値6は図11の1131(素子G1)
に対応する。1131の入力端子数は2(1134)
で、その接続先は素子ポインタ値0の出力番号0番と素
子ポインタ値0の出力番号1番の端子である(1138
の1141と1142)。そこで、素子ポインタ値0で
ある1101(仮想入力素子)の情報の0番の出力端子
と1番の出力端子について、1602の第1の要素の遅
延の種類番号(1604)番目(0番目)の出力値を参
照する。出力値は時刻2において図15に示すように0
番の出力端子の0番目の出力値は1、1番の出力端子の
0番目の出力値は0である。さらに1602の第1の要素の
出力先接続ポインタが指す素子の素子種識別番号11
(1132)、即ち論理積ANDから入力値0と1につい
て論理積演算を行うと新しい出力値Vkは0となる。7
05でVkである0と現在の出力値、即ち1131の0
番の出力端子の0番目の出力値(1148の0番目)で
ある0を比較する。この場合、両者の値が等しいので7
06は行わない。
【0065】図16の1602の2番目の要素について
も同様の処理を行う。この場合もVkが0、現在の出力
値が0となり、706は行わない。この結果時刻2の素
子出力評価処理では新しいイベントは登録されない。
も同様の処理を行う。この場合もVkが0、現在の出力
値が0となり、706は行わない。この結果時刻2の素
子出力評価処理では新しいイベントは登録されない。
【0066】続く図4の406,出力値比較処理では図
8に示すように811で現在の時刻とXS,XPとを比
較する。図13に示すようにXS値12は現在の時刻
(XT)2より大きいため812以降の処理は行わない。
ここまでで時刻2における403〜406の処理は終了
し、407において時刻XTは3となる。
8に示すように811で現在の時刻とXS,XPとを比
較する。図13に示すようにXS値12は現在の時刻
(XT)2より大きいため812以降の処理は行わない。
ここまでで時刻2における403〜406の処理は終了
し、407において時刻XTは3となる。
【0067】時刻3,時刻4では伝播するテストベクト
ルまたはイベントが存在しないので何もしない。
ルまたはイベントが存在しないので何もしない。
【0068】時刻5において、テストベクトル情報12
01の第2の要素がテストベクトルの追加処理403の
対象となる。時刻2の処理と同様に図17に示す二つの
イベントがタイムホイールに登録される。イベント伝播
処理404では仮想入力素子の1番の出力端子に図17
の二つのイベントが伝播する。その結果更新される素子
情報を図18に示す。図18の1822の部分が更新さ
れ、0から1に変化する。また図19に示す二つの出力
先接続素子情報が作成される。この情報の内容は時刻2
における出力先接続素子情報(図16)と全く同じであ
る。
01の第2の要素がテストベクトルの追加処理403の
対象となる。時刻2の処理と同様に図17に示す二つの
イベントがタイムホイールに登録される。イベント伝播
処理404では仮想入力素子の1番の出力端子に図17
の二つのイベントが伝播する。その結果更新される素子
情報を図18に示す。図18の1822の部分が更新さ
れ、0から1に変化する。また図19に示す二つの出力
先接続素子情報が作成される。この情報の内容は時刻2
における出力先接続素子情報(図16)と全く同じであ
る。
【0069】続いて時刻5における素子出力評価処理、
図4の405を行う。この処理も時刻2の場合と同様に
行うが、時刻5では1902の第1の要素の遅延の種類
番号(1904)番目(0番目)の出力値を参照する。
図4の405を行う。この処理も時刻2の場合と同様に
行うが、時刻5では1902の第1の要素の遅延の種類
番号(1904)番目(0番目)の出力値を参照する。
【0070】出力値は図18に示すように0番の出力端
子の0番目の出力値は1、1番の出力端子の0番目の出
力値も1である。入力値1と1について11(113
2)、即ち、論理積ANDの演算を行うと新しい出力値
Vkは1となり、現在の出力値0と異なるため706で
イベントの登録処理を行う。
子の0番目の出力値は1、1番の出力端子の0番目の出
力値も1である。入力値1と1について11(113
2)、即ち、論理積ANDの演算を行うと新しい出力値
Vkは1となり、現在の出力値0と異なるため706で
イベントの登録処理を行う。
【0071】図20に登録されるイベントの情報を示
す。現在の時刻5(XT)にk番目の出力端子の、19
02の第1の要素の遅延の種類番号(1904)番目
(0番目)の遅延値である3を加えた8を信号伝播時刻2
004,1903が示す出力先接続ポインタの値6を信
号伝播素子2005,0番の出力端子を対象としている
ので0を伝播出力2006,新しい出力値Vk(値は
1)を伝播信号値2007,1904が示す遅延種類番
号を遅延の種類番号2008とする。次のイベントも同
様であるが、伝播時刻は1902の第2の要素の遅延の
種類番号(1904)番目(1番目)の遅延値である5
を加えた10となり、遅延の種類番号も1となる。時刻
5における出力値比較処理、図4の406も時刻2の場
合と同様に図8の811の条件が成立しないため実行さ
れない。
す。現在の時刻5(XT)にk番目の出力端子の、19
02の第1の要素の遅延の種類番号(1904)番目
(0番目)の遅延値である3を加えた8を信号伝播時刻2
004,1903が示す出力先接続ポインタの値6を信
号伝播素子2005,0番の出力端子を対象としている
ので0を伝播出力2006,新しい出力値Vk(値は
1)を伝播信号値2007,1904が示す遅延種類番
号を遅延の種類番号2008とする。次のイベントも同
様であるが、伝播時刻は1902の第2の要素の遅延の
種類番号(1904)番目(1番目)の遅延値である5
を加えた10となり、遅延の種類番号も1となる。時刻
5における出力値比較処理、図4の406も時刻2の場
合と同様に図8の811の条件が成立しないため実行さ
れない。
【0072】時刻6,時刻7では伝播するテストベクト
ルまたはイベントが存在しないので何もしない。
ルまたはイベントが存在しないので何もしない。
【0073】時刻8ではテストベクトルの追加処理は該
当するテストベクトル情報が存在しないため行われな
い。イベント伝播処理で時刻5で登録した図20の20
02のイベントを伝播する。イベント2002は先頭ア
ドレスが6の素子(G1)の0番の出力端子の0番目の
遅延番号の出力値を1とするイベントである。
当するテストベクトル情報が存在しないため行われな
い。イベント伝播処理で時刻5で登録した図20の20
02のイベントを伝播する。イベント2002は先頭ア
ドレスが6の素子(G1)の0番の出力端子の0番目の
遅延番号の出力値を1とするイベントである。
【0074】イベント2002により更新された素子情
報を図21に示す。図中の2148の部分が更新部分で
ある。更に、図22に示す出力先接続情報2202が作
成される。2203はG1の0番の出力端子に接続する
素子(G2)の先頭アドレス12を格納する。2204
はイベント2002の遅延の種類番号0を格納する。時
刻8の素子出力評価処理、図4の405は先頭アドレス
12の素子(G2)について処理を行う。図11の11
68の情報から先頭アドレス12の素子の二つの入力端
子は先頭アドレス6の素子(G1)の0番の出力と先頭
アドレス0の素子(仮想入力素子)の2番の出力に接続
していることがわかる。それらの出力の2204に格納
されている0番の遅延の種類番号番目の出力値を参照す
るとG1の0番の出力値は1であり(図21)、仮想入
力素子の2番の出力値は0である。更にG2の素子種識
別番号は21、即ち論理和ORであるためVkは1と0
の論理和の1となる。
報を図21に示す。図中の2148の部分が更新部分で
ある。更に、図22に示す出力先接続情報2202が作
成される。2203はG1の0番の出力端子に接続する
素子(G2)の先頭アドレス12を格納する。2204
はイベント2002の遅延の種類番号0を格納する。時
刻8の素子出力評価処理、図4の405は先頭アドレス
12の素子(G2)について処理を行う。図11の11
68の情報から先頭アドレス12の素子の二つの入力端
子は先頭アドレス6の素子(G1)の0番の出力と先頭
アドレス0の素子(仮想入力素子)の2番の出力に接続
していることがわかる。それらの出力の2204に格納
されている0番の遅延の種類番号番目の出力値を参照す
るとG1の0番の出力値は1であり(図21)、仮想入
力素子の2番の出力値は0である。更にG2の素子種識
別番号は21、即ち論理和ORであるためVkは1と0
の論理和の1となる。
【0075】時刻8におけるG2の0番の出力端子の0
番目の出力は0でVkと一致しないため、図23に示す
イベント2302が生成される。イベント2302は、
現在の時刻8にG2の0番の出力端子の0番目の遅延時
間2を加えた10を伝播値2304,G2の素子情報の
先頭アドレス12を伝播素子2305,出力端子番号0
を伝播出力2306,Vk値1を伝播信号値2307,
2204の遅延の種類番号をそのまま遅延の種類番号2
308とする。時刻8における出力値比較処理も図8の
811の条件が成立しないため実行されない。
番目の出力は0でVkと一致しないため、図23に示す
イベント2302が生成される。イベント2302は、
現在の時刻8にG2の0番の出力端子の0番目の遅延時
間2を加えた10を伝播値2304,G2の素子情報の
先頭アドレス12を伝播素子2305,出力端子番号0
を伝播出力2306,Vk値1を伝播信号値2307,
2204の遅延の種類番号をそのまま遅延の種類番号2
308とする。時刻8における出力値比較処理も図8の
811の条件が成立しないため実行されない。
【0076】時刻9では伝播するテストベクトルまたは
イベントが存在しないので何もしない。
イベントが存在しないので何もしない。
【0077】時刻10では時刻5で作成されたイベン
ト、2012と時刻8で作成されたイベント、2302
が伝播する。その結果、図24の2448と2478の
部分が更新される。更に図25に示す出力先接続情報2
502が作成される。これはイベント2012に対応し
て作成されるもので出力先接続ポインタ値2503はG
2の素子情報の先頭アドレス12であり、遅延の種類番
号2504はイベント2012の遅延の種類番号201
8と等しい1である。イベント2302に対応した出力
先接続情報はイベント2302が対象とする素子G2の
出力には何も接続していないため作成されない。出力先
接続情報2502に対応して素子出力値評価処理でG2
の0番の出力端子の1番目の新しい出力値Vkを求め
る。この値は、入力値1と0、素子種番号21(論理和
OR)から1と求まる。
ト、2012と時刻8で作成されたイベント、2302
が伝播する。その結果、図24の2448と2478の
部分が更新される。更に図25に示す出力先接続情報2
502が作成される。これはイベント2012に対応し
て作成されるもので出力先接続ポインタ値2503はG
2の素子情報の先頭アドレス12であり、遅延の種類番
号2504はイベント2012の遅延の種類番号201
8と等しい1である。イベント2302に対応した出力
先接続情報はイベント2302が対象とする素子G2の
出力には何も接続していないため作成されない。出力先
接続情報2502に対応して素子出力値評価処理でG2
の0番の出力端子の1番目の新しい出力値Vkを求め
る。この値は、入力値1と0、素子種番号21(論理和
OR)から1と求まる。
【0078】Vkは現在の出力値0と異なるため、図2
6に示すイベント2602が作成される。イベント26
02は、現在の時刻10にG2の0番の出力端子の1番
目の遅延値4を加えた14を伝播時刻2604,G2の
素子情報の先頭アドレス12を伝播素子2605,出力
端子番号0を伝播出力2606,Vk値1を伝播信号値
2607,2504の遅延の種類番号をそのまま遅延の
種類番号2608とする。時刻10における出力値比較
処理も図8の811の条件が成立しないため実行されな
い。
6に示すイベント2602が作成される。イベント26
02は、現在の時刻10にG2の0番の出力端子の1番
目の遅延値4を加えた14を伝播時刻2604,G2の
素子情報の先頭アドレス12を伝播素子2605,出力
端子番号0を伝播出力2606,Vk値1を伝播信号値
2607,2504の遅延の種類番号をそのまま遅延の
種類番号2608とする。時刻10における出力値比較
処理も図8の811の条件が成立しないため実行されな
い。
【0079】時刻11では伝播するテストベクトルまた
はイベントが存在しないので何もしない。
はイベントが存在しないので何もしない。
【0080】時刻12では伝播するテストベクトルもイ
ベントも存在しないが、図8の811の条件が成立するた
め出力値比較処理が行われる。812ではポインタSを
観測素子情報(例では図13の1306)の先頭の要素
を指す様に初期化する。ループ813では観測素子情報
の全ての要素について814〜822の処理を繰り返
す。1306の最初の要素は素子情報の先頭アドレス
(1304)が6の素子、即ちG1の0番の出力端子
(1305)について、その出力端子の全ての遅延の種
類について出力値を比較する。図24の2447より、
時刻12におけるG1の0番の出力値は0番の遅延、1
番の遅延とも1であり、等しい値であることがわかる
(時刻10以降、イベントの伝播は無いので素子の出力
値は変化していない)。一方、1306の次の要素は素
子情報の先頭アドレス(1304)が12の素子、即
ち、G2の0番の出力端子(1305)である。この場
合は図24の2477より、時刻12におけるG2の0
番の出力値は0番の遅延が1、1番の遅延が0と異なる
値であることがわかる。値が異なる場合は図8の820
の条件が成立するため821の処理を行う。821では
時刻12において、素子G2の0番の出力に不一致が存
在することを出力する。
ベントも存在しないが、図8の811の条件が成立するた
め出力値比較処理が行われる。812ではポインタSを
観測素子情報(例では図13の1306)の先頭の要素
を指す様に初期化する。ループ813では観測素子情報
の全ての要素について814〜822の処理を繰り返
す。1306の最初の要素は素子情報の先頭アドレス
(1304)が6の素子、即ちG1の0番の出力端子
(1305)について、その出力端子の全ての遅延の種
類について出力値を比較する。図24の2447より、
時刻12におけるG1の0番の出力値は0番の遅延、1
番の遅延とも1であり、等しい値であることがわかる
(時刻10以降、イベントの伝播は無いので素子の出力
値は変化していない)。一方、1306の次の要素は素
子情報の先頭アドレス(1304)が12の素子、即
ち、G2の0番の出力端子(1305)である。この場
合は図24の2477より、時刻12におけるG2の0
番の出力値は0番の遅延が1、1番の遅延が0と異なる
値であることがわかる。値が異なる場合は図8の820
の条件が成立するため821の処理を行う。821では
時刻12において、素子G2の0番の出力に不一致が存
在することを出力する。
【0081】時刻13では伝播するテストベクトルまた
はイベントが存在しないので何もしない。
はイベントが存在しないので何もしない。
【0082】時刻14では時刻10で作成されたイベン
ト、図26の2602が伝播する。その結果、図27の
2778の部分が更新される。しかしイベント2602
が対象とする素子G2の出力に何も接続していないため
出力先接続情報は作成されず、素子出力評価処理も行わ
れない。出力値比較処理は811の条件が成立しないた
め行われない。
ト、図26の2602が伝播する。その結果、図27の
2778の部分が更新される。しかしイベント2602
が対象とする素子G2の出力に何も接続していないため
出力先接続情報は作成されず、素子出力評価処理も行わ
れない。出力値比較処理は811の条件が成立しないた
め行われない。
【0083】時刻15では伝播するテストベクトルまた
はイベントが存在しないので何もしない。時刻15は、
シミュレーションの終了時刻であるので図4の402の
ループを終了し、図4に示したシミュレーションの処理
を終了する。
はイベントが存在しないので何もしない。時刻15は、
シミュレーションの終了時刻であるので図4の402の
ループを終了し、図4に示したシミュレーションの処理
を終了する。
【0084】以上のシミュレーションの結果を図28に
示す。G1の出力端子0番の遅延番号0番の出力値は時
刻5の入力変化に対応して時刻8において1に変化し、
G1の出力端子0番の遅延番号1番の出力値は時刻5の
入力変化に対応して時刻10において1に変化する。ま
たG2の出力端子0番の遅延番号0番の出力値は時刻8
の入力変化に対応して時刻10において1に変化し、G
2の出力端子0番の遅延番号1番の出力値は時刻10の
入力変化に対応して時刻14において1に変化する。時
刻12(2801)における出力値比較処理の結果、G
1の出力値は二つとも等しく1であるが(2802)G
2の出力値は1と0と異なる値となり(2803)、シ
ミュレーションのユーザにその結果が報告される事にな
る。
示す。G1の出力端子0番の遅延番号0番の出力値は時
刻5の入力変化に対応して時刻8において1に変化し、
G1の出力端子0番の遅延番号1番の出力値は時刻5の
入力変化に対応して時刻10において1に変化する。ま
たG2の出力端子0番の遅延番号0番の出力値は時刻8
の入力変化に対応して時刻10において1に変化し、G
2の出力端子0番の遅延番号1番の出力値は時刻10の
入力変化に対応して時刻14において1に変化する。時
刻12(2801)における出力値比較処理の結果、G
1の出力値は二つとも等しく1であるが(2802)G
2の出力値は1と0と異なる値となり(2803)、シ
ミュレーションのユーザにその結果が報告される事にな
る。
【0085】本実施例によれば、一つの素子に複数種類
の遅延を割り当てた多重遅延シミュレーションを同時に
行い、更にあらかじめ指定した観測時刻と観測素子出力
について遅延の種類毎の出力値に不一致が存在する事を
調べることが可能になる。
の遅延を割り当てた多重遅延シミュレーションを同時に
行い、更にあらかじめ指定した観測時刻と観測素子出力
について遅延の種類毎の出力値に不一致が存在する事を
調べることが可能になる。
【0086】また、図9の実施例の多重テスト論理シミ
ュレーションにより複数のテストパタンを同時に処理す
ることが可能になる。
ュレーションにより複数のテストパタンを同時に処理す
ることが可能になる。
【0087】本実施例においてテストベクトルの追加処
理403,イベント伝播処理404,素子出力値評価処
理405,出力値比較処理406におけるループ、51
1,612,702,813はそれぞれ毎回のループで
の処理が独立に行われるため、ループを展開してベクト
ル計算機などでの並列処理が可能である。
理403,イベント伝播処理404,素子出力値評価処
理405,出力値比較処理406におけるループ、51
1,612,702,813はそれぞれ毎回のループで
の処理が独立に行われるため、ループを展開してベクト
ル計算機などでの並列処理が可能である。
【0088】
【発明の効果】本発明によれば、任意の種類の遅延を各
素子に仮定した論理シミュレーションを同時に処理する
ことが可能になり、遅延のばらつきによる論理回路の誤
動作を容易に発見できるようになる.また従来は遅延の
種類を変える毎に論理シミュレーションを実行する必要
があったが本発明では複数の遅延の種類を一括してシミ
ュレーションできるため、シミュレーション起動の手間
を省くことができる。
素子に仮定した論理シミュレーションを同時に処理する
ことが可能になり、遅延のばらつきによる論理回路の誤
動作を容易に発見できるようになる.また従来は遅延の
種類を変える毎に論理シミュレーションを実行する必要
があったが本発明では複数の遅延の種類を一括してシミ
ュレーションできるため、シミュレーション起動の手間
を省くことができる。
【0089】また、本発明によれば複数のテストベクト
ルに対して一括して同時に論理シミュレーションを行う
ことが可能であり、この場合もシミュレーション起動の
手間を省くことができる。
ルに対して一括して同時に論理シミュレーションを行う
ことが可能であり、この場合もシミュレーション起動の
手間を省くことができる。
【0090】更に、複数の遅延による論理シミュレーシ
ョンを同時に処理することにより、並列処理可能な同一
時刻のイベントの数が増えるため、単一の遅延による論
理シミュレーションを繰り返すのに比べて並列処理によ
る高速化の効果が大きくなる。
ョンを同時に処理することにより、並列処理可能な同一
時刻のイベントの数が増えるため、単一の遅延による論
理シミュレーションを繰り返すのに比べて並列処理によ
る高速化の効果が大きくなる。
【図1】本発明の一実施例の説明図。
【図2】従来の論理シミュレーション用のデータ構造の
説明図。
説明図。
【図3】素子の遅延のモデルの説明図。
【図4】本発明の実施例の論理シミュレーションの処理
の説明図。
の説明図。
【図5】本発明の第三実施例のテストベクトルの追加処
理の説明図。
理の説明図。
【図6】イベント伝播処理の説明図。
【図7】素子出力評価処理の説明図。
【図8】本発明の第二実施例の出力値比較処理の説明
図。
図。
【図9】本発明の第四実施例のテストベクトルの追加処
理の説明図。
理の説明図。
【図10】本発明の実施例の動作を説明するための論理
回路図。
回路図。
【図11】図10の回路の素子情報の説明図。
【図12】テストベクトルの例の説明図。
【図13】観測周期と観測素子情報の例の説明図。
【図14】時刻2に追加されるイベント情報の説明図。
【図15】時刻2に変更される素子情報の説明図。
【図16】時刻2に作成される出力先接続情報の説明
図。
図。
【図17】時刻5に追加されるイベント情報の説明図。
【図18】時刻5に変更される素子情報の説明図。
【図19】時刻5に作成される出力先接続情報の説明
図。
図。
【図20】時刻5に作成されるイベント情報の説明図。
【図21】時刻8に変更される素子情報の説明図。
【図22】時刻8に作成される出力先接続情報の説明
図。
図。
【図23】時刻8に作成されるイベント情報の説明図。
【図24】時刻10に変更される素子情報の説明図。
【図25】時刻10に作成される出力先接続情報の説明
図。
図。
【図26】時刻10に作成されるイベント情報の説明
図。
図。
【図27】時刻14に変更される素子情報の説明図。
【図28】シミュレーションの結果の説明図。
101…タイムホイール、102…イベント、103…
リンクポインタ、123,127,132,135…要素
数。
リンクポインタ、123,127,132,135…要素
数。
Claims (5)
- 【請求項1】イベントの情報として、信号の伝播する時
刻,信号の伝播する素子情報の識別子,信号が伝播する
出力端子の識別番号,伝播する信号の値を持ち、素子の
情報として、素子種の識別番号,素子固有名称,入力端
子数,各入力端子毎の接続先ポインタと出力端子番号の
リスト,出力端子数,各出力端子毎の接続先数と接続先
ポインタのリストを持ち、イベントの情報に従って論理
回路のシミュレーションを行う論理シミュレーション方
法において、 イベントの情報として、遅延の種類の識別番号を持ち、
素子の情報として、各出力端子毎に、遅延の種類数と同
数の出力値と素子の遅延値を持ち、シミュレーション実
行時に、各イベントの遅延の種類の識別番号に対応した
出力値と素子遅延値について、イベントの伝播と、信号
値変化に伴う新たなイベントの生成を行うことを特徴と
する論理シミュレーション方法。 - 【請求項2】請求項1において、 観測する素子、及びその素子の観測出力端子を識別する
情報と、観測周期情報を持ち、観測周期情報に従ったシ
ミュレーション時刻に、指定した観測出力端子の全ての
遅延の種類に関して出力値が全て等しいか、否かを判定
し、その結果を出力する論理シミュレーション方法。 - 【請求項3】請求項1において、 与えられたテストベクトルに対応して、全ての遅延の種
類の識別番号を持つイベントを発生する論理シミュレー
ション方法。 - 【請求項4】請求項1において、 与えられた複数のテストベクトルに対応して、それぞれ
異なる遅延の種類の識別番号を持つイベントを発生する
論理シミュレーション方法。 - 【請求項5】請求項1に記載の前記論理シミュレーショ
ン方法を複数の演算機構を持つ並列計算機上で行う論理
シミュレータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5116805A JPH06332974A (ja) | 1993-05-19 | 1993-05-19 | 論理シミュレーション方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5116805A JPH06332974A (ja) | 1993-05-19 | 1993-05-19 | 論理シミュレーション方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06332974A true JPH06332974A (ja) | 1994-12-02 |
Family
ID=14696103
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5116805A Pending JPH06332974A (ja) | 1993-05-19 | 1993-05-19 | 論理シミュレーション方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06332974A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012038060A (ja) * | 2010-08-06 | 2012-02-23 | Fujitsu Semiconductor Ltd | 情報処理装置、プログラム、および設計支援方法 |
-
1993
- 1993-05-19 JP JP5116805A patent/JPH06332974A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012038060A (ja) * | 2010-08-06 | 2012-02-23 | Fujitsu Semiconductor Ltd | 情報処理装置、プログラム、および設計支援方法 |
| US8683401B2 (en) | 2010-08-06 | 2014-03-25 | Fujitsu Semiconductor Limited | Information processing device and design supporting method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04211871A (ja) | 論理設計の検証支援システム | |
| JPH07200642A (ja) | 半導体集積回路の遅延時間計算装置 | |
| US4965758A (en) | Aiding the design of an operation having timing interactions by operating a computer system | |
| JPH0669474A (ja) | 半導体集積回路装置の製造装置及び製造方法並びに電子回路装置 | |
| JPH0561931A (ja) | シミユレーシヨン装置 | |
| US4885712A (en) | Method and apparatus for partial test-cause generation | |
| JP2508620B2 (ja) | 論理回路シミュレ―ション装置 | |
| US6968523B2 (en) | Design method of logic circuit using data flow graph | |
| JP3002066B2 (ja) | 機能図と回路図との対応関係保存方法 | |
| JP2003156544A (ja) | 集積回路のテストのための圧縮テストプランの生成、テスト系列生成およびテスト | |
| US5910901A (en) | Logic simulator | |
| JP2924222B2 (ja) | 論理シミュレータ | |
| JP2855603B2 (ja) | ワークステーシヨンシユミレーター | |
| JPS6311715B2 (ja) | ||
| JP2748396B2 (ja) | 論理シミュレーション方式 | |
| JP2729061B2 (ja) | シミュレーション装置のゼロ遅延演算処理方式 | |
| JPH09198415A (ja) | 論理シミュレータ | |
| KR19980016176A (ko) | 플래시백 시뮬레이터 | |
| JPH029370B2 (ja) | ||
| JPH0778195A (ja) | 回路設計cadにおけるデータ更新方式 | |
| EP0592076A2 (en) | Compilation mechanism for a simulation model | |
| JPH07129636A (ja) | 論理シミュレーション方法 | |
| JPH01106265A (ja) | 自動配線ネットのオーダリング指定方法 | |
| JP2000353185A (ja) | 論理回路の故障シミュレーション方法及び装置 | |
| JPH056406A (ja) | スキヤンパス論理検証方式 |