(57)【特許請求の範囲】
【請求項１】
論理検証装置にて実行される論理素子の論理的動作を検証する論理検証方法であって、
前記論理検証装置は、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、
その論理回路に入力されるべき信号のデータと、を記憶装置から入力し、
その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証方法において、
前記論理検証装置は、
前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、
自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、
そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するようにした論理検証方法。
【請求項２】
請求項１に記載の論理検証方法において、
発振機能を備えた論理素子は、一定の発振周期の発振信号を出力する固定周期発振器素子、又は、発振周期が可変する発振信号を出力する可変発振器素子である論理検証方法。
【請求項３】
請求項２に記載の論理検証方法において、
可変発振器素子は、外部クロック信号と帰還信号を入力しその両信号の位相差に基づいて発振周期が可変する発振信号を出力するＰＬＬ素子であって、前記論理検証装置はその２つの信号の少なくともいずれかの信号が変化する時に前記位相差に基づく発振周期を求めるための演算を行い、前記新たな自己着信イベントの着信時刻はその演算された前記発振周期の発振による信号変化の時刻を現在処理している自己着信イベントの着信時刻に加算した時刻にするようにした論理検証方法。
【請求項４】
請求項３に記載の論理検証方法において、
前記論理検証装置は、前記位相差に基づく発振周期を、その時の位相差に対して予め定めたパラメタを乗算した値を補正値とし、その補正値を用いて先の発振周期を補正して求めた論理検証方法。
【請求項５】
複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータを記録した論理データファイルと、
その論理回路に入力されるべき信号データを記録した信号データファイルと、
その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証装置において、
前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、
自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、
そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するイベント処理を行うイベント処理・生成部を備えた論理検証装置。
【請求項６】
論理検証装置が、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、
その論理回路に入力されるべき信号のデータと、を入力し、
その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する処理を実行するための論理検証プログラムを格納する記録媒体であって、
前記論理検証装置が、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、
自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、
そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成する、処理を実行するための論理検証プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体集積回路を設計する際に論理回路の検証作業に使用される論理検証方法、論理検証装置及び記録媒体に関するものである。
【０００２】
半導体集積回路の検証作業は論理回路の論理動作をできる限り模擬することが求められている。この論理回路を構成する論理セルの数は、物理上の動作を可能な限り模擬しようとすると増大する。論理セル数の増大は、論理シミュレーション時間の増大に直結する。
【０００３】
又、発振器素子等を含む論理回路のように論理動作が複雑な場合、その論理セルの動作を物理動作に近づけようとしても、モデリングできない場合や実用上有意な規模で表現できない場合がある。このような場合、論理検証装置は要求される動作に対して最大公約数的な機能を新規に提供して論理セルの作成を支援することが求められている。
【０００４】
【従来の技術】
従来、半導体集積回路を設計する際、論理回路の検証作業が行なわれる。この検証作業には、一般的にイベント駆動方式の論理検証装置が使用される。この種の論理検証装置は、現在処理時刻から将来に渡る時間軸上に登録された着信時刻、着信箇所及び更新信号値等からなるイベントの集合を設定する。そして、論理検証装置はイベントの集合の中から現在の処理時刻に該当するイベントの部分集合を求め、そのイベントの部分集合の中の個々のイベントついて着信処理を行なう。この着信処理では、新たなイベントの発生を検査し、発生させた新たなイベントを現在又は将来の時刻に登録する。
【０００５】
この着信/ 生成処理は、現在時刻に処理すべきイベントがなくなるまで繰り返される。処理すべきイベントがなくなると、論理検証装置は現在時刻を更新し、次のイベントがある時刻について前記と同様な着信処理を繰り返す。
【０００６】
この着信処理を図１１の論理回路に基づいて説明する。図１２はその着信処理に基づいて生成されるイベントの生成の概念を示す。
時刻ｔｋ０において、第１インバータ５１の出力端子Ｘ１から出力される信号が「１」から「０」に変化する時、着信時刻が時刻ｔｋ０、着信箇所が出力端子Ｘ１、更新信号値が「０」となる第１イベントＩＶ１が登録されている。
【０００７】
現在時刻が時刻ｔｋ０となり第１イベントＩＶ１が選択され着信処理が実行されるとする。論理検証装置は、第１インバータ５１の出力端子Ｘ１（着信箇所）の信号値を「０」にする。
【０００８】
続いて、インバータ５１のファンアウト数を設定した後に、最初のファンアウトピンＰ１の信号値（次段の第２インバータ５２の入力端子の入力信号）を「０」の更新信号値に設定する。続いて、ファンアウトピンＰ１の信号値に基づく第２インバータ５２の出力端子Ｘ２の新しい信号値を求める。
【０００９】
第２インバータ５２の出力端子Ｘ２において、この新しい信号値が現在時刻（時刻ｔｋ０）の信号値と相違するかどうかチェックする。相違する値に更新される場合には、その第２インバータ５２の立ち上がり遅延時間ｔｄ１０を論理回路データから求める。続いて、現在時刻ｔｋ０から立ち上がり遅延時間ｔｄ１０後の時刻ｔｋ１を着信時刻、第２インバータ５２の出力端子Ｘ２を着信箇所とする第２イベントＩＶ２を新たに生成する。
【００１０】
最初のファンアウトピンＰ１に対しての着信処理が終了すると、次のファンアウトピンＰ２に対して同様な方法で新たな将来の時刻又は現在時刻イベントを生成する。
【００１１】
因みに、ファンアウトピンＰ２に対する第３インバータ５３の出力端子Ｘ３が、「０」から「１」に反転動作する場合には、その第３インバータ５３の立ち上がり遅延時間ｔｄ２０とすると、現在時刻ｔｋ０から立ち下がり遅延時間ｔｄ２０後の時刻ｔｋ２を着信時刻、第３インバータ５３の出力端子Ｘ３を着信箇所とする第３イベントＩＶ３が新たに生成される。
【００１２】
そして、現在時刻ｔｋ０の全てのイベントに対する着信処理が終了し、処理すべきイベントがなくなると、論理検証装置は現在時刻を更新し、次のイベントがある時刻について前記と同様な着信処理を実行する。
【００１３】
従って、イベントは、出力端子の信号変化検出時に生成され、次段（ファンアウト先）の入力ピンに向かって信号変化を伝達するために用いられる。
【００１４】
【発明が解決しようとする課題】
ところで、論理回路には、例えば図１３に示すような奇数個のインバータ６１〜６５を直列に接続するとともに反転出力を入力に帰還するように接続した固定周期発振器素子６０を含むものがある。このような論理回路の論理検証を上記イベント駆動方式の論理検証装置で行なう場合以下のように行なわれる。
【００１５】
検証開始時の固定周期発振器素子６０の回路の信号値が不確定な箇所は全て不確定信号で初期化されて発振せず安定してしまう。そのため、開始時に発振動作をさせるために、「１」又は「０」の発振開始信号を該発振器素子６０に印加させる必要がある。その結果、図１４に示すように、固定周期発振器素子６０に開始信号入力用の擬似入力端子６６を設け、該擬似入力端子６６から発振開始時に「１」又は「０」の発振開始信号を外部から入力させることで発振を開始させるようにしていた。
【００１６】
しかしながら、この種の固定周期発振器素子６０においては初期化信号のために擬似入力端子６６が必要となり、論理モデルは物理モデルとその素子構成が一致しない。固定周期発振器素子６０を含むセルの論理モデルと物理モデルの不一致は、セルライブラリの管理が面倒となる。つまり、セルの論理レベルと物理モデルは、端子構成が共通なことを利用して単一のマスタライブラリに格納し、そのマスターライブラリの中に論理モデルのライブラリと物理モデルのライブラリを管理している。そして、論理モデルのライブラリと物理モデルのライブラリの間の不整合を防止している。
【００１７】
従って、固定周期発振器素子６０を含む論理回路のように論理モデルと物理モデルの端子構成が相違する場合には単一のマスタライブラリに管理することができず、別々に管理しなければならない。その結果、個別管理された物理、論理の両モデル間の検証作業、同期更新作業が必要となる問題がある。
【００１８】
又、半導体集積回路には、可変発振器素子、例えばＰＬＬ（Phase-Locked Loop ）素子が含まれたものがある。この論理回路の検証作業においてもＰＬＬ素子を含む論理検証が必要である。ＰＬＬ素子については、素子機能自体を実現するために電圧制御発振器（ＶＣＯ）の電圧に対する発振周波数についてその分解能に基づいた多数の発振周期のＶＣＯのモデルを用意することが考えられる。そして、比較信号入力端子に入力される比較信号と帰還信号入力端子に入力される帰還信号の位相差に基づいてその多数のモデルの中から最適なモデルを適宜選択して切り換えることが考えられる。
【００１９】
図１５は、そのＶＣＯのモデルの一例を示す。図１５において、発振周期の相違する奇数個のインバータよりなる固定周期発振器素子６０を多数個形成し、その各固定周期発振器素子６０の出力信号を選択回路６７に出力する。選択回路６７は、比較信号と帰還信号の位相差に応じてその位相差に対応する発振周期の信号を出力する固定周期発振器素子６０を選択し出力させる。
【００２０】
しかしながら、検証すべきＰＬＬ素子を含む論理回路は、ＰＬＬ素子の構成要素（ＶＣＯのモデル）が大部分を占めることになり実用的ではない。従って、従来ではＰＬＬ素子の発振周期及び比較信号に対する帰還信号の遅延時間が回路構成により固定されることに着目して、特開平９−５３９７号公報において、帰還経路の遅延を予め測定した結果に基づきクロック入力タイミングを調整して論理検証を行なっている。
【００２１】
又、従来のＰＬＬ素子を含む論理回路の論理検証では、帰還経路の遅延を回路変更の度に測定しなければならない。
そこで、図１６に示すように、ＰＬＬ素子７０の最終発振周期に対してプラス方向に時間ｄだけずれた第１発振器７１とマイナス方向に時間ｄだけずれた第２発振器７２を用いる。詳述すると、第１発振器７１は、ノア回路７４、アンド回路７５、２個のインバータ７６，７７及びアンド回路７８を含み、位相比較器７３から比較信号としての外部クロックＲＥＦが帰還信号ＦＢに遅れている旨の信号Ｓ１を入力して最終発振周期を長くする方向にする信号Ｓ３を出力する。第２発振器７２は、ノア回路７４、アンド回路７５、２個のインバータ７６，７７及びアンド回路７９を含み、位相比較器７３から外部クロックＲＥＦが帰還信号ＦＢに進んでいる旨の信号Ｓ２を入力して最終発振周期を短くする信号Ｓ３を出力する。そして、帰還経路上に形成された回路８０の遅延によらず自発的な位相を調整することが試みられている。
【００２２】
しかし、帰還経路上に形成された回路８０の遅延により、発振周期の変更が帰還信号入力端子に到達する時間の間、発振は遅れ或いは進み続けることから満足な位相調整機能が動作しない。
【００２３】
さらに、物理上のＰＬＬ素子は、帰還経路上に形成された回路８０内の論理的誤りにより帰還信号ＦＢが停止する場合がある。この場合、ＰＬＬ素子７０は帰還経路上の分周器８１の分周比が大きいと判断し次第に発振周期を短くする。逆に、比較信号ＲＥＦが停止する場合には、ＰＬＬ素子７０は、次第に発振周期を長くする。
【００２４】
しかしながら、図１６に示すＰＬＬ素子７０に対して２つの発振器７１，７２を用いたモデルでは、第１及び第２発振器７１，７２の周期で固定されることから、帰還信号ＦＢが停止した場合でも、論理回路は正しい周期で動作し続ける。従って、帰還経路上に形成された回路８０内の論理的誤りを見逃す危険のある論理検証となる。これは、特開平９−５３９７号公報で示すＰＬＬ素子の場合でも同様な問題を含んでいた。
【００２５】
さらに、特開平９−５３９７号公報及び図１６のいずれのＰＬＬ素子の場合にも、発振周期は、回路構成に基づいて決定されるため、外部クロックＲＥＦ、帰還経路内に挿入される分周器８１の分周比の切り換えに対して追従することには不可能であった。
【００２６】
このように、論理検証する上で、ＰＬＬ素子を実現する場合、論理的に動作が決定される素子と相違してＰＬＬ素子がアナログ的な性質であることから直接的に適用することが困難であった。しかも、ＰＬＬ素子は発振器を搭載していることから、さらに論理検証は困難なものになっている。
【００２７】
本発明の目的は、発振機能を備えた論理素子の論理モデルをその論理素子の物理モデルとその端子構成が一致するモデルに形成することができ、発振機能を備えた論理素子を構成が簡単な論理モデルにしてその論理検証を容易に行えるようにした論理検証方法、論理検証装置及び記録媒体を提供することにある。
【００２８】
【課題を解決するための手段】
請求項１に記載の発明は、論理検証装置にて実行される論理素子の論理的動作を検証する論理検証方法であって、前記論理検証装置は、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、その論理回路に入力されるべき信号のデータと、を記憶装置から入力し、その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証方法において、前記論理検証装置は、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するようにした。
【００２９】
請求項２に記載の発明は、請求項１に記載の論理検証方法において、発振機能を備えた論理素子は一定の発振周期の発振信号を出力する固定周期発振器素子、又は、発振周期が可変する発振信号を出力する可変発振器素子である。
【００３１】
請求項３に記載の発明は、請求項２に記載の論理検証方法において、可変発振器素子は、外部クロック信号と帰還信号を入力しその両信号の位相差に基づいて発振周期が可変する発振信号を出力するＰＬＬ素子であって、前記論理検証装置はその２つの信号の少なくともいずれかの信号が変化する時に前記位相差に基づく発振周期を求めるための演算を行い、前記新たな自己着信イベントの着信時刻はその演算された前記発振周期の発振による信号変化の時刻を現在処理している自己着信イベントの着信時刻に加算した時刻にするようにした。
【００３２】
請求項４に記載の発明は、請求項３に記載の論理検証方法において、前記論理検証装置は、前記位相差に基づく発振周期を、その時の位相差に対して予め定めたパラメタを乗算した値を補正値とし、その補正値を用いて先の発振周期を補正して求めた。
【００３３】
請求項５に記載の発明は、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータを記録した論理データファイルと、その論理回路に入力されるべき信号データを記録した信号データファイルと、その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証装置において、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するイベント処理を行うイベント処理・生成部を備えた。
【００３４】
請求項６に記載の発明は、論理検証装置が、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、その論理回路に入力されるべき信号のデータと、を入力し、その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する処理を実行するための論理検証プログラムを格納する記録媒体であって、前記論理検証装置が、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成する、処理を実行するための論理検証プログラムを記録した。
【００３５】
（作用）
請求項１に記載の発明によれば、論理検証装置が発振機能を備えた論理素子に対する自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントが生成されるとともに、そのイベント処理している自己着信イベントと同じ着信箇所であってイベント処理している自己着信イベントの着信時刻にその発振機能を備えた論理素子の発振による信号変化の時刻よりも後の時刻を着信時刻とする新たな自己着信イベントが生成されるようにした。従って、発振機能を備えた論理素子の論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易にすることができる。
【００３６】
請求項２に記載の発明によれば、発振機能を備えた論理素子は、一定の発振周期の発振信号を出力する固定周期発振器素子、又は、発振周期が可変する発振信号を出力する可変発振器素子であるため、それらの論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易にすることができる。
【００３８】
請求項３及び請求項４に記載の発明によれば、ＰＬＬ素子に対する自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントが生成されるとともに、そのイベント処理している自己着信イベントと同じ着信箇所であってその自己着信イベントの着信時刻にそのＰＬＬ素子の位相差に基づいて演算された発振周期の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントが生成されるようにした。従って、ＰＬＬ素子の論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易することができる。
【００３９】
請求項５に記載の発明によれば、イベント処理・生成部は発振機能を備えた論理素子自身の発振の信号変化を示すための自己着信イベントを生成し、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻にその発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成する。
【００４０】
従って、発振機能を備えた論理素子の論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易に行うことができる。
【００４１】
請求項６に記載の発明によれば、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻にその発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するための論理検証プログラムを記録媒体から読み出し例えば論理検証装置で実行させることにより、発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルに形成して論理検証をさせることができる。
【００４２】
【発明の実施の形態】
（第１実施形態）
図１は半導体集積回路装置の論理検証装置（以下、シミュレータという）のシステム構成を示す。シミュレータ１は磁気ディスク装置２を備えている。又、シミュレータ１は、キーボード７、表示装置８及び印字装置９を備えている。
【００４３】
磁気ディスク装置２には、論理回路データファイル３、入出力信号データファイル４、論理検証プログラムファイル５、及び、検証結果データファイル６が記録されている。
【００４４】
論理回路データファイル３には、ユーザ（回路設計者）から提供された半導体集積回路の論理回路データが記録されている。論理回路データは、その提供された半導体集積回路の論理回路であって、その論理回路を構成する多数の論理素子のデータ及びその多数の論理素子がファンイン−ファンアウト構造のネットリストで表現されたデータとで構成されている。
【００４５】
そして、各論理素子の論理素子データには、遅延時間データが付加されている。遅延時間データは、論理素子の入力端子ピンに入力される信号の変化に対して該素子の出力端子（ファンアウト）から出力される信号が変化する場合、その入力信号の変化に対して出力される信号が変化するのに要する時間（遅延時間）のデータである。
【００４６】
この遅延時間データは、立ち下がり遅延時間ｔｄHLと立ち上がり遅延時間ｔｄLHの２つのデータとから構成されている。立ち下がり遅延時間ｔｄHLは、入力信号の変化に対して出力信号が「１」から「０」に変化（ＨレベルからＬレベルに立ち下がる）するのに要する時間である。立ち上がり遅延時間ｔｄLHは、入力信号の変化に対しては出力信号が「０」から「１」に変化（ＬレベルからＨレベルに立ち上がる）するに要する時間である。
【００４７】
例えば、図２に示す発振機能を備えない論理素子からなる論理回路において、第１インバータ素子１１の立ち下がり遅延時間ｔｄHLが７ナノ秒、立ち上がり遅延時間ｔｄLHが８ナノ秒であるならば、その７ナノ秒の立ち下がり遅延時間ｔｄHLのデータと、８ナノ秒の立ち上がり遅延時間ｔｄLHのデータとからなる遅延時間データが、第１インバータ素子１１の論理素子データに付加されている。
【００４８】
又、論理素子が図３に示す固定周期発振器素子２１である場合には、その論理素子データは自身が固定周期発振器素子２１である旨（発振機能を備えた論理素子である旨）を定義したデータが付加されているとともに、その発振周期Ｔｋのデータが付加されている。例えば、図３に示す固定周期発振素子２１を含む論理回路において、固定周期発振器素子２１の発振周期Ｔｋが、例えば３０マイクロ秒であるならば、その３０マイクロ秒の発振周期Ｔｋの周期データが、該発振器素子２１の論理素子データに付加されている。
【００４９】
さらに、当該論理素子が図４に示すＰＬＬ素子３１である場合には、その論理素子データは自身がＰＬＬ素子３１である旨（発振機能を備えた論理素子である旨）を定義したデータが付加されている。ＰＬＬ素子３１の論理素子データは、比較信号としての外部クロックＲＥＦと帰還信号ＦＢとの位相差±ｄｔに対する新たな発振周期Ｔn+1 （＝Ｔn ±ｒ×ｄｔ）を演算するための位相差±ｄｔに対する発振周期の補正値（＝±ｒ×ｄｔ）を決定するパラメタｒのデータが付加されている。尚、Ｔn は先の発振周期である。
【００５０】
入出力信号データファイル４には、入出力信号データが記録されている。入出力信号データは、入力信号データと出力信号データが記録されている。
入力信号データは、提供された半導体集積回路の論理回路に外部から入力するための予め提供された外部入力信号Ｓinのデータであって、外部入力信号Ｓinが変化（「１」から「０」に変化又は「０」から「１」に変化）する時刻（信号変化時刻）ｔｉｃのデータと、その信号変化時刻ｔｃにおける入力信号の信号更新値（「１」から「０」に変化したときには「０」の値又は「０」から「１」に変化とたときには「１」の値）のデータとからなる。
【００５１】
因みに、外部入力信号Ｓinが図５に示すよう信号であるならば、信号変化時刻ｔｉｃは、検証開始時刻（ｔ＝０秒）から、時刻ｔic1 、時刻ｔic2 、時刻ｔic3 、時刻ｔic4 、時刻ｔic5 、時刻ｔic6 、時刻ｔic7 、時刻ｔic8 ……となる。そして、その各信号変化時刻ｔｉｃにおける信号更新値は、時刻ｔic1 の時「１」、時刻ｔic2 の時「０」、時刻ｔic3 の時「１」、時刻ｔic4 の時「０」、時刻ｔic5 の時「１」、時刻ｔic6 の時「０」、時刻ｔic7 の時「１」、時刻ｔic8 の時「０」となる。
【００５２】
出力信号データは、前記した外部入力信号Ｓinに対してユーザが要求する該半導体集積回路の論理回路から出力される予め提供された外部出力信号Ｓout のデータであって、外部出力信号Ｓout の変化（「１」から「０」に変化又は「０」から「１」に変化）する時刻ｔｏｃのデータと、その変化した時刻における出力信号の値（「１」から「０」に変化したときには「０」の値又は「０」から「１」に変化とたときには「１」の値）のデータとからなる。
【００５３】
因みに、出力信号が図５に示すよう信号であるとき、変化する時刻ｔｏｃは、検証開始時刻（ｔ＝０秒）から、時刻ｔoc1 、時刻ｔoc2 、時刻ｔoc3 、時刻ｔoc4 ……となる。そして、その各変化時刻ｔｏｃにおける値は、時刻ｔoc1 の時「１」、時刻ｔoc2 の時「０」、時刻ｔoc3 の時「１」、時刻ｔoc4 の時「０」……となる。
【００５４】
論理検証プログラムファイル５には、論理検証プログラムが記録されている。論理検証プログラムは、シミュレータ１に論理検証を実行させるためのプログラムデータであって、イベント駆動方式によりユーザが提供した論理回路データを論理検証するためのプログラムである。
【００５５】
検証結果データファイル６は、シミュレータ１が行った論理検証の結果のデータがシミュレータ１にて記録される。又、シミュレータ１は、論理検証の結果を表示装置８に表示したり、印字装置９を駆動して用紙に印字する。
【００５６】
シミュレータ１は、前記論理検証プログラムファイル５から論理検証プログラムを読み出す。シミュレータ１は、その論理検証プログラムに従って前記論理回路データ及び入出力信号データを使用して論理回路の論理検証を実行する。
【００５７】
シミュレータ１は、論理検証プログラムに従って、論理回路データファイル３からユーザから提供された半導体集積回路の論理回路データを読み出す。シミュレータ１は、その読み出した論理回路データを同シミュレータ１内のメモリ部１ａに記憶するようになっている。即ち、メモリ部１ａには、論理回路を構成する論理素子データ及びネットリストのデータが記憶される。
【００５８】
シミュレータ１は、論理検証プログラムに従って、入出力信号データファイル４からユーザから提供された半導体集積回路の論理回路に対する入力信号データと出力信号データを読み出す。シミュレータ１は、その読み出した入力信号データ及び出力信号データを同シミュレータ１内のメモリ部１ａに記憶するようになっている。即ち、メモリ部１ａには、入力信号データについては前記した各信号変化時刻ｔｉｃとその各信号変化時刻ｔｉｃにおける信号更新値が記憶される。又、メモリ部１ａには、出力信号データについては前記した各信号変化時刻ｔｏｃとその各信号変化時刻ｔｏｃにおける信号更新値が記憶される。
【００５９】
シミュレータ１はイベント処理・生成部１ｂを備えている。イベント処理・生成部１ｂは、論理検証において現在時刻から将来に渡る時間軸上に登録された着信時刻、着信箇所及び更新信号値よりなるイベントの集合の中から現在時刻のイベントの部分集合を求める。イベント処理・生成部１ｂは、そのイベントの部分集合の中のイベントについて着信処理を行う。この着信処理では、新たなイベントの発生を検査し、発生させた新たなイベントを現在又は将来の時刻に登録する。
【００６０】
又、イベント処理・生成部１ｂは、イベントを生成する際にイベントの種別を示す情報をその生成するイベントに付加する。イベントの種別は、通常イベントと特殊イベント（自己着信イベント）とからなる。イベント処理・生成部１ｂは、インバータ素子、オア回路素子、アンド回路素子、ノア回路素子、ナンド回路素子、排他的論理和回路素子、フリップフロップ素子等の論理的動作が決まっている論理素子に対して生成されるイベントに通常イベントの情報を付加する。又、イベント処理・生成部１ｂは、固定周期発振器素子２１、ＰＬＬ素子のように発振機能を備えた論理素子に対して生成されるイベントに特殊イベントの情報を付加する。
【００６１】
そして、通常イベントは次段の論理素子に信号変化を伝達するための生成されるイベントあり、特殊イベントは発振機能を備えた論理素子自身の発振による信号変化を示すため生成されるイベントである。この通常イベントと特殊イベントの決定について、イベント処理・生成部１ｂはイベントを生成する際に論理素子データに付加される前記論理素子を定義したデータに基づいて決定している。
【００６２】
この着信処理を図６に示すフローチャートに従って説明する。
まず、図２に示す発振機能を備えた論理素子を含まない論理回路における着信処理について説明する。尚、図７は図２に示す論理回路の各出力端子Ｘ１１，Ｘ１２，Ｘ１３，Ｘ１４を着信箇所としたイベントの生成概念を示す。
【００６３】
さて、現在時刻ｔｋ０が、第１インバータ素子１１の入力信号が変化（この場合、「１」から「０」に変化）してその変化に基づいて同インバータ素子１１の出力端子Ｘ１１（着信箇所）が「０」から「１」に更新される時刻とする。
【００６４】
そして、この現在時刻ｔｋ０を着信時刻、第１インバータ素子１１の出力端子Ｘ１１を着信箇所とする第１通常イベントＩＶ１１が選択されると、イベント処理・生成部１ｂは図６に示す処理を実行する。
【００６５】
ステップ１において、イベント処理・生成部１ｂは該第１通常イベントＩＶ１１が特殊イベントかどうか判断する。そして、この場合、その第１通常イベントＩＶ１１は第１インバータ素子１１の出力端子Ｘ１１に対する通常イベントであって特殊イベントではないので、イベント処理・生成部１ｂはステップ２に移る。
【００６６】
ステップ２において、イベント処理・生成部１ｂは出力端子Ｘ１１を「１」に更新する。続いて、ステップ３において、ファンアウトピン数カウンタの内容ｉを「１」にセットする。ファンアウトピン数は、該インバータ素子１１のファンアウトの数であって、該第１インバータ１１の出力端子との結線を示す前記ネットリストデータから求められる。そして、従って、図２から明らかなように、この第１インバータ素子１１におけるファンアウトピン数は「３」となる。続いて、ステップ４において、ファンアウトピン数カウンタの内容ｉが第１インバータ素子１１のファンアウトの数を超える値になったかをチェックする。そして、超えていないことから、ステップ５に移る。
【００６７】
ステップ５において、イベント処理・生成部１ｂは、ネットリストデータに基づいて、最初のファンアウトピンＰ１１の信号値（次段の第２インバータ１２の入力端子に入力信号）を「１」に更新する。
【００６８】
続いて、ステップ６において、ファンアウトピンＰ１１の信号値の更新に基づいて第２インバータ素子１２を動作させた時、その動作に基づく該第２インバータＩＶ１２の出力端子Ｘ１２の新しい信号値（更新信号値）を求める。
【００６９】
ステップ７において、この更新信号値が現在時刻（時刻ｔｋ０）における信号値と相違するかどうかチェックする。この場合、動作に基づいて出力端子Ｘ１２は「１」から「０」に更新されることから、ステップ８に移る。
【００７０】
ステップ８において、その第２インバータ素子１２の遅延時間データ（この場合、立ち下がり遅延時間ｔｄHL12）を該第２インバータ素子１２の論理素子データから求める。
【００７１】
続いて、ステップ９において、現在時刻ｔｋ０から立ち下がり遅延時間ｔｄHL12後の時刻ｔｋ１を着信時刻、第２インバータ素子１２の出力端子Ｘ１２を着信箇所とする新たな第２通常イベントＩＶ１２を生成する。これにより、最初のファンアウトピンＰ１１に対する着信処理は終了する。
【００７２】
最初のファンアウトピンＰ１１に対しての着信処理が終了すると、ステップ１０において、ファンアウトピン数カウンタの内容ｉを１つ加算して「２」とした後、前記ステップ４に移る。
【００７３】
そして、次のファンアウトピンＰ１２に対して前記したステップ４〜ステップ９の処理方法で新たなイベントを生成する。因みに、ファンアウトピンＰ１２に対するセル１３の出力端子Ｘ１３が、「０」から「１」に反転動作する場合には、そのセル１３の遅延時間データ（この場合、立ち上がり遅延時間ｔｄLH13）を該セル１３の論理素子データから求める。続いて、現在時刻ｔｋ０から立ち上がり遅延時間ｔｄLH13後の時刻ｔｋ２を着信時刻、セル１３の出力端子Ｘ１３を着信箇所とする新たな第３通常イベントＩＶ１３を生成する。
以下、同様に、セル１４の出力端子Ｘ１４に発生する第４通常イベントＩＶ１４が生成される。この時、セル１４がファンアウトピンＰ１３の「０」から「１」への更新信号値に対して立ち下がり遅延時間ｔｄHL14（＜ｔｄLH13）だけ遅れて出力端子Ｘ１４が「１」から「０」に更新されるとき、現在時刻ｔｋ０から立ち上がり遅延時間ｔｄHL14後の時刻ｔｋ３を着信時刻、セル１４の出力端子Ｘ１４を着信箇所とする新たな第４通常イベントＩＶ１４が生成される。
【００７４】
そして、ステップ１０において、ファンアウトピン数カウンタの内容ｉが「４」となり、ステップ４において、現在時刻ｔｋ０における第１通常イベントＩＶ１１に対する着信処理を終了する。そして、現在時刻ｔｋ０において、第１通常イベントＩＶ１１以外の別のイベントがある場合には、この別のイベントについて前記と同様な着信処理を行い現在時刻ｔｋ０における全てのイベントが終了するまで同様な着信処理を行う。又、現在時刻ｔｋ０において、第１通常イベントＩＶ１１以外の別のイベントがない場合、又は、現在時刻ｔｋ０における全てのイベントの着信処理が終了すると、イベント処理・生成部１ｂは、現在時刻ｔｋ０を更新し、現在時刻ｔｋ０に最も近い将来の時刻のベントがある時刻について前記と同様な着信処理を実行する。
【００７５】
次に、図３に示す論理回路内に固定周期発振器素子２１が構成されている場合、その固定周期発振器素子２１に対する着信処理について説明する。尚、図８は図３に示す論理回路の各出力端子Ｘ２１，Ｘ２２を着信箇所としたイベントの生成概念を示す。
【００７６】
今、論理回路の初期化が完了された状態で、固定周期発振器素子２１の発振開始時刻ｔｆ０を着信時刻、その発振器素子２１の出力端子Ｘ２１を着信箇所とした初期自己着信イベントＩＶｉｎが生成されている。又、出力端子Ｘ２１には、「０」の初期信号値が与えられている（この初期信号値は初期化の時に決まる値であって、初期化によって「１」となる。）。そして、この初期自己着信イベントＩＶｉｎについては、図２で示したインバータ素子１１と相違して固定周期発振器素子２１であるため、インバータ素子等の論理素子の前記した第１〜第４通常イベントＩＶ１１〜ＩＶ１４と区別され特殊イベントである。特殊イベントかどうかは、前記した固定周期発振器素子２１の論理素子データに付加された自身が発振器素子である旨を定義したデータに基づいて決定されている。
【００７７】
そして、現在時刻が発振開始時期ｔｆ０において、イベント処理・生成部１ｂは、この現在時刻ｔｆ０を着信時刻、固定周期発振器素子２１の出力端子Ｘ２１を着信箇所とする初期自己着信イベントＩＶｉｎが選択されると、ステップ１において、該イベントが特殊イベントかどうかをチェックする。このチェックは、前記したイベントに付加された情報に基づいて判断される。この場合、初期自己着信イベントＩＶｉｎは特殊イベントなので、ステップ１１の処理に移る。
【００７８】
ステップ１１において、イベント処理・生成部１ｂは次段のインバータ素子２２に信号変化を伝達するための第１通常イベントＩＶｓｔ１を生成する。この第１通常イベントＩＶｓｔ１は、着信時刻が現在時刻ｔｆ０、着信箇所が該固定周期発振器素子２１の出力端子Ｘ２１、更新信号値が前記初期値を反転させた値（「１」）となる通常イベントである。通常イベントの生成が終了すると、イベント処理・生成部１ｂはステップ１２に移る。
【００７９】
ステップ１２において、イベント処理・生成部１ｂは、自己着信イベントＩＶｉｄ１を生成する。自己着信イベントＩＶｉｄ１は、着信時刻が現在時刻ｔｆ０に該固定周期発振器素子２１の固定周期Ｔｋの二分の一の周期を加算した時刻ｔｆ１（＝ｔｆ０＋（Ｔｋ／２））、着信箇所が該固定周期発振器素子２１の出力端子Ｘ２１となるイベントとなる。尚、この自己着信イベントＩＶｉｄ１については、更新信号値は登録しない。
【００８０】
自己着信イベントＩＶｉｄ１の着信時刻を現在時刻に該固定周期発振器素子２１の固定周期Ｔｋの二分の一の周期を加算した時刻とした理由は、以下のとおりである。該固定周期発振器素子２１から出力される出力信号は、デューティー比５０％，周期Ｔｋの発振信号であり、１／２周期（＝Ｔｋ／２）ごとに値が反転する。従って、発振器素子２１を発振動作させるためには、値が反転する時刻に新たなイベントが発生させる必要があるからである。尚、デューティー比５０％でない場合は、その反転する時刻をその時のデューティー比と周期とで加算する時刻が求められている。
【００８１】
そして、この自己着信イベントＩＶｉｄ１を特殊イベントとして同イベントＩＶｉｄに情報を付加して自己着信イベントＩＶｉｄ１の生成は終了する。
このステップ１１にて生成された第１通常イベントＩＶｓｔ１に基づく着信処理は以下のように行われる。
【００８２】
ステップ１１にて生成された第１通常イベントＩＶｓｔ１は、着信時刻が現在時刻ｔｆ０である。従って、第１通常イベントＩＶｓｔ１は、先に行ったステップ１１及びステップ１２の処理と同じ時刻（現在時刻ｔｆ０）である。その結果、その第１通常イベントＩＶｓｔ１は先に行ったステップ１１及びステップ１２の処理が行われた後であって、現在時刻ｔｆ０で着信処理が行われる。
【００８３】
そして、現在時刻ｔｆ０において、第１通常イベントＩＶｓｔ１が着信処理のために選択されると、イベント処理・生成部１ｂは、該第１通常イベントＩＶｓｔ１が特殊イベントかどうかをチェックする。この場合、第１通常イベントＩＶｓｔ１は、特殊イベントではないのでステップ２の処理に移る。
【００８４】
そして、第１通常イベントＩＶｓｔ１の着信処理を前記したステップ２〜ステップ１０の処理を実行し新たな通常のイベントの発生を検査し生成する。
因み、この図３においては、次段のインバータ素子２２の出力端子Ｘ２２を着信箇所、現在時刻ｔｆ０にインバータ素子２２の立ち下がり遅延時間ｔｄHL22を加算した時刻ｔｆ０ａを着信時刻とする第２通常イベントＩＶｓｔ２が新たに生成され登録される。
【００８５】
やがて、時刻が経過して現在時刻が先のステップ１２にて生成した自己着信イベントＩＶｉｄ１の着信時刻ｔｆ１（＝ｔｆ０＋（Ｔｋ／２））となる。そして、その現在時刻ｔｆ１において、自己着信イベントＩＶｉｄ１が着信処理のために選択されると、イベント着信・生成部１ｂは、ステップ１にて該イベントＩＶｉｄ１が特殊イベントかどうかをチェックする。この場合、自己着信イベントＩＶｉｄ１は、特殊イベントなのでステップ１１の処理に移る。
【００８６】
そして、ステップ１１において、この自己着信イベントＩＶｉｄ１に対する新たな第３通常イベントＩＶｓｔ３を生成する。この第３通常イベントＩＶｓｔ３は、着信時刻が現在時刻ｔｆ１、着信箇所が該固定周期発振器素子２１の出力端子Ｘ２１、更新信号値が現在時刻ｔｆ０の反転値の「０」となるイベントである。第３通常イベントＩＶｓｔ３の生成が終了すると、イベント処理・生成部１ｂはステップ１２に移る。
【００８７】
ステップ１２において、新たな第２自己着信イベントＩＶｉｄ２を生成する。この第２自己着信イベントＩＶｉｄ２は、着信時刻が現在時刻ｔｆ１に該固定周期発振器素子２１の固定周期Ｔｋの二分の一の周期を加算した時刻ｔｆ２（＝ｔｆ１＋（Ｔｋ／２））、着信箇所が該固定周期発振器素子２１の出力端子Ｘ２１となる特殊イベントとなる。尚、この第２自己着信イベントＩＶｉｄ２については、前記自己着信イベントＩＶｉｄと同様に更新信号値は登録しない。
【００８８】
そして、この第２自己着信イベントＩＶｉｄ２を特殊イベントとして同イベントＩＶｉｄ２に情報を付加して第２自己着信イベントＩＶｉｄ２の生成は終了する。
【００８９】
このように、以後同様な処理を行って、新たな通常イベントと自己着信イベントを生成しそれを繰り返すことにより、固定同期発振器素子２１は、一定の同期Ｔｋで発振し続ける。
【００９０】
因みに、図８に示すように、着信時刻が時刻ｔｆ３、出力端子Ｘ２１を着信箇所とする第３自己着信イベントＩＶｉｄ３が形成される。以後、（Ｔｋ／２）周期を間隔とする時刻毎に出力端子Ｘ２１を着信箇所とする自己着信イベントと通常イベントが生成され登録される。又、自己着信イベントＩＶｉｄ１，ＩＶｉｄ２，ＩＶｉｄ３と同じ着信時刻の通常イベントＩＶｓｔ３，ＩＶｓｔ５，ＩＶｓｔ７…に基づく着信処理によって、インバータ２２の出力端子Ｘ２２を着信箇所とする通常イベントＩＶｓｔ４，ＩＶｓｔ６…が順次生成される。
【００９１】
つまり、初期信号及び発振時刻ｔｆ０を設定し、自己着信イベントを生成することにより、固定同期発振器素子２１は一定の同期Ｔｋで発振し続ける。従って、固定周期発振器素子２１の論理モデルは、従来のように初期化信号のための本来存在しない入力端子を形成しなくても発振させることができる。その結果、固定周期発振器素子２１の論理レベルと物理モデルは、端子構成が共通となり単一のマスタライブラリに格納することができる。
【００９２】
又、固定周期発振器素子２１の論理モデルを１つのセルにて構成することがてきるため、複数のセルから構成してなる発振器素子に比べて論理子シミュレーション速度の向上が図れる。
【００９３】
次に、図４に示す、ＰＬＬ素子３１を含んだ論理回路が構成されている場合、そのＰＬＬ素子３１に対するイベント処理・生成部１ｂが行う着信処理ついて説明する。ＰＬＬ（Phase-Locked Loop ）素子３１を含んだ論理回路は、上記したフローチャートに従って前記と同様に着信処理を行うことができる。尚、図１０は図４に示すＰＬＬ素子３１の出力端子Ｘ３１を着信箇所としたイベントの生成概念を示す。
【００９４】
図４において、ＰＬＬ素子は、比較信号としての外部クロックＲＥＦを入力する比較信号入力端子と、帰還信号ＦＢを入力する帰還信号入力端子を備えている。ＰＬＬ素子３１の発振出力端子Ｘ３１は、帰還経路上に形成された回路３２に接続されている。そして、回路３２は、発振出力端子ｘ３１からの発振出力を分周器３３に出力する。分周器３３は、該回路３２から遅延して入力された発振出力を分周して帰還信号ＦＢとしてＰＬＬ素子３１の帰還信号入力端子に入力する。
【００９５】
図９は、ＰＬＬ素子３１の等価回路を示す。ＰＬＬ素子３１は、位相比較器３１ａ、チャージポンプ３１ｂ、ローパスフィルタ３１ｃ、電圧制御発振器（ＶＣＯ）３１ｄを含む。そして、ＰＬＬ素子３１は、位相比較器３１ａが検出した位相差±ｄｔにより、ＶＣＯ３１ｄに印加する電圧を制御し、発振周期を制御するものである。
【００９６】
そして、このＰＬＬ素子３１について、位相差±ｄｔに対するＶＣＯ３１ｄの発振周期変位を一次関数で近似した時のＶＣＯ特性傾きパラメタｒで表す。
そして、イベント処理・生成部１ｂは、その時々の位相差±ｄｔに対するＶＣＯ３１ｄの発振周期Ｔn+1 を先の発振周期Ｔn に対して以下の［Ａ］〜［Ｉ］の場合分けして決定している。尚、外部クロックＲＥＦの周期をＴref 、帰還信号ＦＢの周期をＴfbとする。
［Ａ］．待機状態から外部クロックＲＥＦの立ち上がり生じた場合。
【００９７】
１．Ｔref を更新する。
２．その立ち上がった時刻（現在時刻）をＭに登録。
［Ｂ］．外部クロックＲＥＦが立ち上がった後に、帰還信号ＦＢが立ち上がった場合。
【００９８】
つまり、外部クロックＲＥＦが帰還信号ＦＢより位相が進んだ場合である。
１．Ｔfbを更新する。
２．ｄｔ＝現在時刻−Ｍ（但し、［Ａ］の２で登録した時刻）、を求める。
【００９９】
３．Ｔref ＞Ｔfb、又は、Ｔfbが未測定の時、
Ｔn+1 ＝Ｔn                       …（１）
４．Ｔref ＜Ｔfb、又は、Ｔref ＝Ｔfbの時、
Ｔn+1 ＝Ｔn −ｒ×ｄｔ              …（２）
ｄｔはその位相差である。
［Ｃ］．外部クロックＲＥＦが立ち上がった後に再び外部クロックＲＥＲが立ち上がった場合。
【０１００】
つまり、依然として外部クロックＲＥＦが帰還信号ＦＢより位相が進んでいる場合か、帰還信号ＦＢが出力停止している場合のいずれかである。
１．Ｔref を更新する。
【０１０１】
２．ｄｔ＝現在時刻−Ｍ（但し、［Ａ］の２又は［Ｃ］の４で登録した時刻）、を求める。
３．Ｔn+1 ＝Ｔn −ｒ×ｄｔ              …（３）
４．その立ち上がった時刻（現在時刻）をＭに登録。
【０１０２】
ｄｔは外部クロックＲＥＦの周期となる。
［Ｄ］．外部クロックＲＥＦが立ち上がった後に、同時に外部クロックＲＥＲと帰還信号ＦＢが立ち上がった場合。
【０１０３】
つまり、外部クロックＲＥＦが帰還信号ＦＢより位相より進んだ状態から位相差がなくなり待機状態になった場合である。
１．Ｔref 及びＴfbを更新する。
【０１０４】
２．ｄｔ＝現在時刻−Ｍ（但し、［Ａ］の２又は［Ｃ］の４で登録した時刻）、を求める。
３．Ｔref ＞Ｔfb、又は、Ｔfbが未測定の時、
Ｔn+1 ＝Ｔn     …（４）
４．Ｔref ＜Ｔfb、又は、Ｔref ＝Ｔfbの時、
Ｔn+1 ＝Ｔn −ｒ×ｄｔ              …（５）
ｄｔは位相差である。
［Ｅ］．前記待機状態から帰還信号ＦＢが立ち上がった場合。
【０１０５】
つまり、待機状態から外部クロックＲＥＦが帰還信号ＦＢより位相が遅れる位相差が発生した場合である。
１．Ｔfbを更新する。
【０１０６】
２．その立ち上がった時刻（現在時刻）をＭに登録。
［Ｆ］．帰還信号ＦＢが立ち上がった後に、外部クロックＲＥＦが立ち上がった場合。
【０１０７】
つまり、外部クロックＲＥＦが帰還信号ＦＢより位相が遅れた場合である。
１．Ｔref を更新する。
２．ｄｔ＝現在時刻−Ｍ（但し、［Ｅ］の２で登録した時刻）、を求める。
【０１０８】
３．Ｔref ＜Ｔfb、又は、Ｔfbが未測定の時、
Ｔn+1 ＝Ｔn                       …（６）
４．Ｔref ＞Ｔfb、又は、Ｔref ＝Ｔfbの時、
Ｔn+1 ＝Ｔn ＋ｒ×ｄｔ              …（７）
ｄｔは位相差である。
［Ｇ］．帰還信号ＦＢが立ち上がった後、に再び帰還信号ＦＢが立ち上がった場合。
【０１０９】
つまり、依然として外部クロックＲＥＦが帰還信号ＦＢより位相が遅れている場合か、外部クロックＲＥＦが出力停止している場合のいずれかである。
１．Ｔfbを更新する。
【０１１０】
２．ｄｔ＝現在時刻−Ｍ（但し、［Ｅ］の２又は［Ｇ］の４で登録した時刻）、を求める。
３．Ｔn+1 ＝Ｔn ＋ｒ×ｄｔ              …（８）
４．その立ち上がった時刻（現在時刻）をＭに登録。
【０１１１】
ｄｔは帰還信号ＦＢの周期となる。
［Ｈ］．帰還信号ＦＢが立ち上がった後に、同時に外部クロックＲＥＲと帰還信号ＦＢが立ち上がった場合。
【０１１２】
つまり、外部クロックＲＥＦが帰還信号ＦＢより位相より遅れた状態から位相差がなくなり待機状態になった場合である。
１．Ｔref 及びＴfbを更新する。
【０１１３】
２．ｄｔ＝現在時刻−Ｍ（但し、［Ｅ］の２又は［Ｇ］の４で登録した時刻）、を求める。
３．Ｔref ＜Ｔfbの時、
Ｔn+1 ＝Ｔn     …（９）
４．Ｔref ＞Ｔfb、又は、Ｔref ＝Ｔfbの時、
Ｔn+1 ＝Ｔn ＋ｒ×ｄｔ              …（１０）
ｄｔは位相差である。
【０１１４】
［Ｉ］．前記待機状態から同時に外部クロックＲＥＲと帰還信号ＦＢが立ち上がった場合。
つまり、外部クロックＲＥＲと帰還信号ＦＢの位相が一致する待機状態の場合である。
【０１１５】
１．Ｔref 及びＴfbを更新する。
２．Ｔn+1 ＝Ｔn                       …（１１）
今、論理回路の初期化が完了された状態で、ＰＬＬ素子３１の発振開始時刻ｔｐ０を着信時刻、そのＰＬＬ素子３１の出力端子Ｘ３１を着信箇所とした初期自己着信イベントＩＶｉｎｐが生成されている。又は、出力端子Ｘ３１には、「１」又は「０」の初期信号値が与えられている。この場合、説明の便宜上、初期信号は「０」とする。
【０１１６】
そして、この初期自己着信イベントＩＶｉｎｐは、前記固定周期発振素子２１と同様に、ＰＬＬ素子３１の論理素子データに付加された自身がＰＬＬ素子３１である旨を定義したデータに基づいて特殊イベントとしての付加情報として付加される。
【０１１７】
そして、現在時刻が発振開始時期ｔｐ０において、イベント処理・生成部１ｂは、この現在時刻ｔｐ０を着信時刻、ＰＬＬ素子３１の出力端子Ｘ３１を着信箇所とする初期自己着信イベントＩＶｉｎｐが選択されると、ステップ１において、該イベントが特殊イベントかどうかをチェックする。このチェックは、前記したイベントに付加された情報に基づいて判断される。そして、イベント処理・生成部１ｂはステップ１１の処理に移る。
【０１１８】
ステップ１１において、イベント処理・生成部１ｂは、次段の回路３２に信号変化を伝達するための通常イベントＩＶｓｔｐ１を生成する。この通常イベントＩＶｓｔｐ１は、着信時刻が現在時刻ｔｐ０、着信箇所が該ＰＬＬ素子３１の出力端子Ｘ３１、更新信号値が前記初期値を反転させた値（「１」）となるイベントである。通常イベントＩＶｓｔｐ１の生成が終了すると、イベント処理・生成部１ｂはステップ１２に移る。
【０１１９】
ステップ１２において、イベント処理・生成部１ｂは、自己着信イベントＩＶｉｄｐ１を生成する。自己着信イベントＩＶｉｄｐ１は、着信時刻が現在時刻ｔｐ０に該ＰＬＬ素子３１のその時の周期Ｔn+1 の二分の一の周期を加算した時刻ｔｐ１（＝ｔｐ０＋（Ｔn+1 ／２））、着信箇所が該ＰＬＬ素子３１の出力端子Ｘ３１となる特殊イベントである。尚、該ＰＬＬ素子３１は、現在時刻ｔｐ０（発振開始時刻）では予め定めた初期値の周期Ｔｉｎｐで発振する。従って、現在時刻ｔｐ０では、ＰＬＬ素子３１のその時の周期Ｔn+1 は、Ｔｉｎｐとなる。その結果、時刻ｔｐ１は、
ｔｐ０＝ｔｐ０＋（Ｔn+1 ／２）＝ｔｐ０＋（Ｔｉｎｐ／２）
なる。
【０１２０】
又、この自己着信イベントＩＶｉｄｐ１については、更新信号値は登録しない。
自己着信イベントＩＶｉｄｐ１の着信時刻を現在時刻に該ＰＬＬ素子３１の周期Ｔn+1 （この場合は、初期周期Ｔｉｎｐ）の二分の一の周期を加算した時刻とした理由は、以下のとおりである。該ＰＬＬ素子３１から出力される出力信号は、周期Ｔn+1 の発振信号であり、１／２周期（＝Ｔn+1 ／２）ごとに値が反転する。従って、ＰＬＬ素子３１を発振動作させるためには、値が反転する時刻に新たなイベントを発生させる必要があるからである。
【０１２１】
尚、初期値の周期Ｔｉｎｐは、例えば外部クロックＲＥＦを計測し、その時の外部クロックＲＥＦの周期を用いて実施してもよい。そして、その外部クロックＲＥＦの周期を計測するまでの間は、外部クロックＲＥＦを発振信号として出力させるようにして実施してもよい。
【０１２２】
そして、この自己着信イベントＩＶｉｄｐ１を特殊イベントとして同イベントＩＶｉｄｐ１に情報を付加して自己着信イベントＩＶｉｄｐ１の生成は終了する。
【０１２３】
このステップ１１、ステップ１２にて生成された通常イベントＩＶｓｔｐ１に基づく着信処理は以下のように行われる。
ステップ１１にて生成された通常イベントＩＶｓｔｐ１は、着信時刻が現在時刻ｔｐ０である。従って、通常イベントＩＶｓｔｐ１は、先に行われたステップ１１及びステップ１２の処理が行われる同じ時刻（現在時刻ｔｐ０）である。その結果、その通常イベントＩＶｓｔｐ１は先のステップ１１及びステップ１２の処理が行われた後であって、現在時刻ｔｐ０で着信処理の行われる。
【０１２４】
そして、現在時刻ｔｐ０において、通常イベントＩＶｓｔｐ１が着信処理のために選択されると、イベント処理・生成部１ｂは、該イベントＩＶｓｔｐ１が特殊イベントかどうかをチェックする。この場合、通常イベントＩＶｓｔｐ１は、特殊イベントではないのでステップ２の処理に移る。
【０１２５】
そして、通常イベントＩＶｓｔｐ１の着信処理を前記したステップ２〜ステップ１０の処理を実行し新たな通常のイベントの発生を検査し生成する。
因み、この図４においては、次段の回路３２内の論理セルに対するイベントが新たに生成され登録されることになる。
【０１２６】
又、現在時刻が先のステップ１２にて生成した自己着信イベントＩＶｉｄｐ１の着信時刻ｔｐ１（＝ｔｐ０＋（Ｔｉｎｐ／２））となる前の時刻に、ＰＬＬ素子３１に入力される外部クロックＲＥＦ又は帰還信号ＦＢに変化が生じる時には、新たな発振周期Ｔn+1 の演算を行うようになっている。
【０１２７】
イベント処理・生成部１ｂは、その変化が前記した［Ａ］〜［Ｉ］のどこに属する変化であるか判断し、外部クロックＲＥＦ又は帰還信号ＦＢの周期Ｔref ，Ｔfbを更新する。そして、その変化が前記した［Ｂ］〜［Ｉ］のいずれかに属する場合には、イベント処理・生成部１ｂは、式（１）〜式（１１）を使用してＰＬＬ素子３１の新たな発振周期Ｔn+1 を設定する。
【０１２８】
やがて、時刻が経過して現在時刻がステップ１２にて生成した自己着信イベントＩＶｉｄｐ１の着信時刻ｔｐ１となる。そして、その現在時刻ｔｐ１において、自己着信イベントＩＶｉｄｐ１が着信処理のために選択されると、イベント処理・生成部１ｂは、該イベントＩＶｉｄｐ１が特殊イベントかどうかをチェックする。この場合、自己着信イベントＩＶｉｄｐ１は、特殊イベントなのでステップ１１の処理に移る。
【０１２９】
そして、ステップ１１において、この自己着信イベントＩＶｉｄｐ１に対する新たな第２通常イベントＩＶｓｔｐ２を生成する。この第２通常イベントＩＶｓｔｐ２は、着信時刻が現在時刻ｔｐ１、着信箇所が該ＰＬＬ素子３１の出力端子Ｘ３１、更新信号値が現在時刻ｔｐ０の反転値の「０」の値となるイベントである。第２通常イベントＩＶｓｔｐ２の生成が終了すると、イベント処理・生成部１ｂはステップ１２に移る。
【０１３０】
ステップ１２において、新たな第２自己着信イベントＩＶｉｄｐ２を生成する。この第２自己着信イベントＩＶｉｄｐ２は、着信時刻が現在時刻ｔｐ１に該ＰＬＬ素子３１の発振周期Ｔn+1 の二分の一の周期を加算した時刻ｔｐ２（＝ｔｐ１＋（Ｔn+1 ／２））、着信箇所が該ＰＬＬ素子３１の出力端子Ｘ３１となる特殊イベントである。この着信時刻ｔｐ２の演算に使用された発振周期Ｔn+1 は、この第２自己着信イベントＩＶｉｄｐ２の着信時刻ｔｐ１の前にイベント処理・生成部１ｂが前記式（１）〜式（１１）を使用して求めた発振周期Ｔn+1 が使用される。
【０１３１】
尚、この第２自己着信イベントＩＶｉｄｐ２については、前記自己着信イベントＩＶｉｄｐ１と同様に更新信号値は登録しない。
そして、この第２自己着信イベントＩＶｉｄｐ２を特殊イベントとして同イベントＩＶｉｄｐ２に情報を付加して第２自己着信イベントＩＶｉｄｐ２の生成は終了する。
【０１３２】
このように、以後同様な処理を行って、新たな自己着信イベントを生成しそれを繰り返すことにより、ＰＬＬ素子３１は、外部クロックＲＥＦと帰還信号ＦＢの位相差±ｄｔに基づいて式（１）〜式（１１）にて決まる発振周期Ｔn+1 がその時々で設定される。そして、その時々設定される発振周期Ｔn+1 で発振し続けるための自己着信イベントＩＶｉｄｐ１，ＩＶｉｄｐ２，……と通常イベントＩＶｓｔｐ１，ＩＶｓｔ２，ＩＶｓｔ３，……が生成される。
つまり、初期信号及び発振時刻ｔｐ０を設定し、自己着信イベントを生成することにより、ＰＬＬ素子３１は外部クロックＲＥＦと帰還信号ＦＢの位相差±ｄｔに基づいて決まる発振周期Ｔn+1 で発振し続ける。従って、ＰＬＬ素子３１の論理モデルは、図１５及び図１６に示すＰＬＬの場合のように、従来のように初期化信号のための本来存在しない入力端子を形成しなくても発振させることができる。その結果、ＰＬＬ素子３１の論理レベルと物理モデルは、端子構成が共通となり単一のマスタライブラリに格納することができる。
【０１３３】
又、ＰＬＬ素子３１の論理モデルを１つのセルにて構成することがてきるため、複数のセルから構成してなる発振器素子に比べて論理子シミュレーション速度の向上が図れる。
【０１３４】
しかも、このＰＬＬ素子３１の論理モデルは、自発的な発振周期を調整、即ち、外部クロックＲＥＦと帰還信号ＦＢの位相差±ｄｔに対して式（１）〜式（１１）を使用して発振周期Ｔn+1 を設定することができる。従って、ＰＬＬ素子３１を含む論理回路の論理検証において、外部クロックＲＥＦ及び分周器３３の分周比に追従する論理検証が行うことができる。
【０１３５】
さらに、ＰＬＬ素子３１を含む論理回路の論理検証において、帰還経路に形成された回路３２の中の論理誤りで発生する帰還信号ＦＢの停止した時にはその停止に即した発振周期Ｔn+1 の信号を出力する。その結果、その停止に即した発振周期Ｔn+1 の信号をみることで、帰還経路に形成された回路３２の中の論理誤りを発見することができる。
【０１３６】
【発明の効果】
請求項１に記載の発明によれば、論理検証において発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして検証することができる。
【０１３７】
請求項２に記載の発明によれば、論理検証において固定周期発振器素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして検証することができる。
【０１３９】
請求項３及び請求項４に記載の発明によれば、論理検証においてＰＬＬ素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして検証することができる。
【０１４０】
請求項５に記載の発明によれば、論理検証において発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして論理検証を行うことができる。
【０１４１】
請求項６に記載の発明によれば、論理検証において発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして論理検証をさせることができる。
【図面の簡単な説明】
【図１】論理検証装置のシステム構成を示す図
【図２】半導体集積回路の一部論理回路図
【図３】固定周期発振器素子を含む一部論理回路図
【図４】ＰＬＬ素子を含む論理回路図
【図５】論理検証に使用する外部入力信号と外部出力信号を説明するための図
【図６】着信処理動作を説明するためのフローチャート
【図７】論理回路の各出力端子Ｘ１１〜Ｘ１４を着信箇所とするイベントの生成の概念を説明するための図
【図８】固定周期発振器素子を含む論理回路の各出力端子Ｘ２１，Ｘ２２を着信箇所とするイベントの生成の概念を説明するための図
【図９】ＰＬＬ素子の等価回路を説明するための図
【図１０】ＰＬＬ素子の出力端子Ｘ２１を着信箇所とするイベントの生成の概念を説明するための図
【図１１】従来の着信処理を説明するための一部論理回路図
【図１２】従来の着信処理におけるイベントの生成の概念を説明するための図
【図１３】固定周期発振器素子の論理セルの構成を示す図
【図１４】従来の論理検証で使用される固定周期発振器素子の論理セルモデルを示す図
【図１５】従来のＶＣＯの論理モデルを説明するための図
【図１６】従来のＰＬＬ素子の論理モデルを説明するための図
【符号の説明】
１  論理検証装置（シミュレータ）
１ｂ  イベント処理・生成部
２  磁気ディスク装置
３  論理回路データファイル
４  入出力信号データファイル
５  論理検証プログラムファイル
１１  第１インバータ素子
１２  第２インバータ素子
１３，１４  セル
２１  固定周期発振器素子
３１  ＰＬＬ素子
【図１】
0003992786.tif 000002
【図２】
0003992786.tif 000003
【図３】
0003992786.tif 000004
【図４】
0003992786.tif 000005
【図５】
0003992786.tif 000006
【図６】
0003992786.tif 000007
【図７】
0003992786.tif 000008
【図８】
0003992786.tif 000009
【図９】
0003992786.tif 000010
【図１０】
0003992786.tif 000011
【図１１】
0003992786.tif 000012
【図１２】
0003992786.tif 000013
【図１３】
0003992786.tif 000014
【図１４】
0003992786.tif 000015
【図１５】
0003992786.tif 000016
【図１６】
0003992786.tif 000017