JP3992786B2 - 論理検証方法、論理検証装置及び記録媒体 - Google Patents
論理検証方法、論理検証装置及び記録媒体 Download PDFInfo
- Publication number
- JP3992786B2 JP3992786B2 JP14951997A JP14951997A JP3992786B2 JP 3992786 B2 JP3992786 B2 JP 3992786B2 JP 14951997 A JP14951997 A JP 14951997A JP 14951997 A JP14951997 A JP 14951997A JP 3992786 B2 JP3992786 B2 JP 3992786B2
- Authority
- JP
- Japan
- Prior art keywords
- event
- logic
- incoming
- time
- oscillation
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design 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)
- Tests Of Electronic Circuits (AREA)
Description
【発明の属する技術分野】
本発明は半導体集積回路を設計する際に論理回路の検証作業に使用される論理検証方法、論理検証装置及び記録媒体に関するものである。
【0002】
半導体集積回路の検証作業は論理回路の論理動作をできる限り模擬することが求められている。この論理回路を構成する論理セルの数は、物理上の動作を可能な限り模擬しようとすると増大する。論理セル数の増大は、論理シミュレーション時間の増大に直結する。
【0003】
又、発振器素子等を含む論理回路のように論理動作が複雑な場合、その論理セルの動作を物理動作に近づけようとしても、モデリングできない場合や実用上有意な規模で表現できない場合がある。このような場合、論理検証装置は要求される動作に対して最大公約数的な機能を新規に提供して論理セルの作成を支援することが求められている。
【0004】
【従来の技術】
従来、半導体集積回路を設計する際、論理回路の検証作業が行なわれる。この検証作業には、一般的にイベント駆動方式の論理検証装置が使用される。この種の論理検証装置は、現在処理時刻から将来に渡る時間軸上に登録された着信時刻、着信箇所及び更新信号値等からなるイベントの集合を設定する。そして、論理検証装置はイベントの集合の中から現在の処理時刻に該当するイベントの部分集合を求め、そのイベントの部分集合の中の個々のイベントついて着信処理を行なう。この着信処理では、新たなイベントの発生を検査し、発生させた新たなイベントを現在又は将来の時刻に登録する。
【0005】
この着信/ 生成処理は、現在時刻に処理すべきイベントがなくなるまで繰り返される。処理すべきイベントがなくなると、論理検証装置は現在時刻を更新し、次のイベントがある時刻について前記と同様な着信処理を繰り返す。
【0006】
この着信処理を図11の論理回路に基づいて説明する。図12はその着信処理に基づいて生成されるイベントの生成の概念を示す。
時刻tk0において、第1インバータ51の出力端子X1から出力される信号が「1」から「0」に変化する時、着信時刻が時刻tk0、着信箇所が出力端子X1、更新信号値が「0」となる第1イベントIV1が登録されている。
【0007】
現在時刻が時刻tk0となり第1イベントIV1が選択され着信処理が実行されるとする。論理検証装置は、第1インバータ51の出力端子X1(着信箇所)の信号値を「0」にする。
【0008】
続いて、インバータ51のファンアウト数を設定した後に、最初のファンアウトピンP1の信号値(次段の第2インバータ52の入力端子の入力信号)を「0」の更新信号値に設定する。続いて、ファンアウトピンP1の信号値に基づく第2インバータ52の出力端子X2の新しい信号値を求める。
【0009】
第2インバータ52の出力端子X2において、この新しい信号値が現在時刻(時刻tk0)の信号値と相違するかどうかチェックする。相違する値に更新される場合には、その第2インバータ52の立ち上がり遅延時間td10を論理回路データから求める。続いて、現在時刻tk0から立ち上がり遅延時間td10後の時刻tk1を着信時刻、第2インバータ52の出力端子X2を着信箇所とする第2イベントIV2を新たに生成する。
【0010】
最初のファンアウトピンP1に対しての着信処理が終了すると、次のファンアウトピンP2に対して同様な方法で新たな将来の時刻又は現在時刻イベントを生成する。
【0011】
因みに、ファンアウトピンP2に対する第3インバータ53の出力端子X3が、「0」から「1」に反転動作する場合には、その第3インバータ53の立ち上がり遅延時間td20とすると、現在時刻tk0から立ち下がり遅延時間td20後の時刻tk2を着信時刻、第3インバータ53の出力端子X3を着信箇所とする第3イベントIV3が新たに生成される。
【0012】
そして、現在時刻tk0の全てのイベントに対する着信処理が終了し、処理すべきイベントがなくなると、論理検証装置は現在時刻を更新し、次のイベントがある時刻について前記と同様な着信処理を実行する。
【0013】
従って、イベントは、出力端子の信号変化検出時に生成され、次段(ファンアウト先)の入力ピンに向かって信号変化を伝達するために用いられる。
【0014】
【発明が解決しようとする課題】
ところで、論理回路には、例えば図13に示すような奇数個のインバータ61〜65を直列に接続するとともに反転出力を入力に帰還するように接続した固定周期発振器素子60を含むものがある。このような論理回路の論理検証を上記イベント駆動方式の論理検証装置で行なう場合以下のように行なわれる。
【0015】
検証開始時の固定周期発振器素子60の回路の信号値が不確定な箇所は全て不確定信号で初期化されて発振せず安定してしまう。そのため、開始時に発振動作をさせるために、「1」又は「0」の発振開始信号を該発振器素子60に印加させる必要がある。その結果、図14に示すように、固定周期発振器素子60に開始信号入力用の擬似入力端子66を設け、該擬似入力端子66から発振開始時に「1」又は「0」の発振開始信号を外部から入力させることで発振を開始させるようにしていた。
【0016】
しかしながら、この種の固定周期発振器素子60においては初期化信号のために擬似入力端子66が必要となり、論理モデルは物理モデルとその素子構成が一致しない。固定周期発振器素子60を含むセルの論理モデルと物理モデルの不一致は、セルライブラリの管理が面倒となる。つまり、セルの論理レベルと物理モデルは、端子構成が共通なことを利用して単一のマスタライブラリに格納し、そのマスターライブラリの中に論理モデルのライブラリと物理モデルのライブラリを管理している。そして、論理モデルのライブラリと物理モデルのライブラリの間の不整合を防止している。
【0017】
従って、固定周期発振器素子60を含む論理回路のように論理モデルと物理モデルの端子構成が相違する場合には単一のマスタライブラリに管理することができず、別々に管理しなければならない。その結果、個別管理された物理、論理の両モデル間の検証作業、同期更新作業が必要となる問題がある。
【0018】
又、半導体集積回路には、可変発振器素子、例えばPLL(Phase-Locked Loop )素子が含まれたものがある。この論理回路の検証作業においてもPLL素子を含む論理検証が必要である。PLL素子については、素子機能自体を実現するために電圧制御発振器(VCO)の電圧に対する発振周波数についてその分解能に基づいた多数の発振周期のVCOのモデルを用意することが考えられる。そして、比較信号入力端子に入力される比較信号と帰還信号入力端子に入力される帰還信号の位相差に基づいてその多数のモデルの中から最適なモデルを適宜選択して切り換えることが考えられる。
【0019】
図15は、そのVCOのモデルの一例を示す。図15において、発振周期の相違する奇数個のインバータよりなる固定周期発振器素子60を多数個形成し、その各固定周期発振器素子60の出力信号を選択回路67に出力する。選択回路67は、比較信号と帰還信号の位相差に応じてその位相差に対応する発振周期の信号を出力する固定周期発振器素子60を選択し出力させる。
【0020】
しかしながら、検証すべきPLL素子を含む論理回路は、PLL素子の構成要素(VCOのモデル)が大部分を占めることになり実用的ではない。従って、従来ではPLL素子の発振周期及び比較信号に対する帰還信号の遅延時間が回路構成により固定されることに着目して、特開平9−5397号公報において、帰還経路の遅延を予め測定した結果に基づきクロック入力タイミングを調整して論理検証を行なっている。
【0021】
又、従来のPLL素子を含む論理回路の論理検証では、帰還経路の遅延を回路変更の度に測定しなければならない。
そこで、図16に示すように、PLL素子70の最終発振周期に対してプラス方向に時間dだけずれた第1発振器71とマイナス方向に時間dだけずれた第2発振器72を用いる。詳述すると、第1発振器71は、ノア回路74、アンド回路75、2個のインバータ76,77及びアンド回路78を含み、位相比較器73から比較信号としての外部クロックREFが帰還信号FBに遅れている旨の信号S1を入力して最終発振周期を長くする方向にする信号S3を出力する。第2発振器72は、ノア回路74、アンド回路75、2個のインバータ76,77及びアンド回路79を含み、位相比較器73から外部クロックREFが帰還信号FBに進んでいる旨の信号S2を入力して最終発振周期を短くする信号S3を出力する。そして、帰還経路上に形成された回路80の遅延によらず自発的な位相を調整することが試みられている。
【0022】
しかし、帰還経路上に形成された回路80の遅延により、発振周期の変更が帰還信号入力端子に到達する時間の間、発振は遅れ或いは進み続けることから満足な位相調整機能が動作しない。
【0023】
さらに、物理上のPLL素子は、帰還経路上に形成された回路80内の論理的誤りにより帰還信号FBが停止する場合がある。この場合、PLL素子70は帰還経路上の分周器81の分周比が大きいと判断し次第に発振周期を短くする。逆に、比較信号REFが停止する場合には、PLL素子70は、次第に発振周期を長くする。
【0024】
しかしながら、図16に示すPLL素子70に対して2つの発振器71,72を用いたモデルでは、第1及び第2発振器71,72の周期で固定されることから、帰還信号FBが停止した場合でも、論理回路は正しい周期で動作し続ける。従って、帰還経路上に形成された回路80内の論理的誤りを見逃す危険のある論理検証となる。これは、特開平9−5397号公報で示すPLL素子の場合でも同様な問題を含んでいた。
【0025】
さらに、特開平9−5397号公報及び図16のいずれのPLL素子の場合にも、発振周期は、回路構成に基づいて決定されるため、外部クロックREF、帰還経路内に挿入される分周器81の分周比の切り換えに対して追従することには不可能であった。
【0026】
このように、論理検証する上で、PLL素子を実現する場合、論理的に動作が決定される素子と相違してPLL素子がアナログ的な性質であることから直接的に適用することが困難であった。しかも、PLL素子は発振器を搭載していることから、さらに論理検証は困難なものになっている。
【0027】
本発明の目的は、発振機能を備えた論理素子の論理モデルをその論理素子の物理モデルとその端子構成が一致するモデルに形成することができ、発振機能を備えた論理素子を構成が簡単な論理モデルにしてその論理検証を容易に行えるようにした論理検証方法、論理検証装置及び記録媒体を提供することにある。
【0028】
【課題を解決するための手段】
請求項1に記載の発明は、論理検証装置にて実行される論理素子の論理的動作を検証する論理検証方法であって、前記論理検証装置は、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、その論理回路に入力されるべき信号のデータと、を記憶装置から入力し、その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証方法において、前記論理検証装置は、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するようにした。
【0029】
請求項2に記載の発明は、請求項1に記載の論理検証方法において、発振機能を備えた論理素子は一定の発振周期の発振信号を出力する固定周期発振器素子、又は、発振周期が可変する発振信号を出力する可変発振器素子である。
【0031】
請求項3に記載の発明は、請求項2に記載の論理検証方法において、可変発振器素子は、外部クロック信号と帰還信号を入力しその両信号の位相差に基づいて発振周期が可変する発振信号を出力するPLL素子であって、前記論理検証装置はその2つの信号の少なくともいずれかの信号が変化する時に前記位相差に基づく発振周期を求めるための演算を行い、前記新たな自己着信イベントの着信時刻はその演算された前記発振周期の発振による信号変化の時刻を現在処理している自己着信イベントの着信時刻に加算した時刻にするようにした。
【0032】
請求項4に記載の発明は、請求項3に記載の論理検証方法において、前記論理検証装置は、前記位相差に基づく発振周期を、その時の位相差に対して予め定めたパラメタを乗算した値を補正値とし、その補正値を用いて先の発振周期を補正して求めた。
【0033】
請求項5に記載の発明は、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータを記録した論理データファイルと、その論理回路に入力されるべき信号データを記録した信号データファイルと、その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証装置において、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するイベント処理を行うイベント処理・生成部を備えた。
【0034】
請求項6に記載の発明は、論理検証装置が、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、その論理回路に入力されるべき信号のデータと、を入力し、その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する処理を実行するための論理検証プログラムを格納する記録媒体であって、前記論理検証装置が、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成する、処理を実行するための論理検証プログラムを記録した。
【0035】
(作用)
請求項1に記載の発明によれば、論理検証装置が発振機能を備えた論理素子に対する自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントが生成されるとともに、そのイベント処理している自己着信イベントと同じ着信箇所であってイベント処理している自己着信イベントの着信時刻にその発振機能を備えた論理素子の発振による信号変化の時刻よりも後の時刻を着信時刻とする新たな自己着信イベントが生成されるようにした。従って、発振機能を備えた論理素子の論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易にすることができる。
【0036】
請求項2に記載の発明によれば、発振機能を備えた論理素子は、一定の発振周期の発振信号を出力する固定周期発振器素子、又は、発振周期が可変する発振信号を出力する可変発振器素子であるため、それらの論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易にすることができる。
【0038】
請求項3及び請求項4に記載の発明によれば、PLL素子に対する自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントが生成されるとともに、そのイベント処理している自己着信イベントと同じ着信箇所であってその自己着信イベントの着信時刻にそのPLL素子の位相差に基づいて演算された発振周期の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントが生成されるようにした。従って、PLL素子の論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易することができる。
【0039】
請求項5に記載の発明によれば、イベント処理・生成部は発振機能を備えた論理素子自身の発振の信号変化を示すための自己着信イベントを生成し、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻にその発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成する。
【0040】
従って、発振機能を備えた論理素子の論理モデルは、構成が簡単で物理モデルとその端子構成が一致するモデルにすることができるとともに論理検証を容易に行うことができる。
【0041】
請求項6に記載の発明によれば、自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻にその発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するための論理検証プログラムを記録媒体から読み出し例えば論理検証装置で実行させることにより、発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルに形成して論理検証をさせることができる。
【0042】
【発明の実施の形態】
(第1実施形態)
図1は半導体集積回路装置の論理検証装置(以下、シミュレータという)のシステム構成を示す。シミュレータ1は磁気ディスク装置2を備えている。又、シミュレータ1は、キーボード7、表示装置8及び印字装置9を備えている。
【0043】
磁気ディスク装置2には、論理回路データファイル3、入出力信号データファイル4、論理検証プログラムファイル5、及び、検証結果データファイル6が記録されている。
【0044】
論理回路データファイル3には、ユーザ(回路設計者)から提供された半導体集積回路の論理回路データが記録されている。論理回路データは、その提供された半導体集積回路の論理回路であって、その論理回路を構成する多数の論理素子のデータ及びその多数の論理素子がファンイン−ファンアウト構造のネットリストで表現されたデータとで構成されている。
【0045】
そして、各論理素子の論理素子データには、遅延時間データが付加されている。遅延時間データは、論理素子の入力端子ピンに入力される信号の変化に対して該素子の出力端子(ファンアウト)から出力される信号が変化する場合、その入力信号の変化に対して出力される信号が変化するのに要する時間(遅延時間)のデータである。
【0046】
この遅延時間データは、立ち下がり遅延時間tdHLと立ち上がり遅延時間tdLHの2つのデータとから構成されている。立ち下がり遅延時間tdHLは、入力信号の変化に対して出力信号が「1」から「0」に変化(HレベルからLレベルに立ち下がる)するのに要する時間である。立ち上がり遅延時間tdLHは、入力信号の変化に対しては出力信号が「0」から「1」に変化(LレベルからHレベルに立ち上がる)するに要する時間である。
【0047】
例えば、図2に示す発振機能を備えない論理素子からなる論理回路において、第1インバータ素子11の立ち下がり遅延時間tdHLが7ナノ秒、立ち上がり遅延時間tdLHが8ナノ秒であるならば、その7ナノ秒の立ち下がり遅延時間tdHLのデータと、8ナノ秒の立ち上がり遅延時間tdLHのデータとからなる遅延時間データが、第1インバータ素子11の論理素子データに付加されている。
【0048】
又、論理素子が図3に示す固定周期発振器素子21である場合には、その論理素子データは自身が固定周期発振器素子21である旨(発振機能を備えた論理素子である旨)を定義したデータが付加されているとともに、その発振周期Tkのデータが付加されている。例えば、図3に示す固定周期発振素子21を含む論理回路において、固定周期発振器素子21の発振周期Tkが、例えば30マイクロ秒であるならば、その30マイクロ秒の発振周期Tkの周期データが、該発振器素子21の論理素子データに付加されている。
【0049】
さらに、当該論理素子が図4に示すPLL素子31である場合には、その論理素子データは自身がPLL素子31である旨(発振機能を備えた論理素子である旨)を定義したデータが付加されている。PLL素子31の論理素子データは、比較信号としての外部クロックREFと帰還信号FBとの位相差±dtに対する新たな発振周期Tn+1 (=Tn ±r×dt)を演算するための位相差±dtに対する発振周期の補正値(=±r×dt)を決定するパラメタrのデータが付加されている。尚、Tn は先の発振周期である。
【0050】
入出力信号データファイル4には、入出力信号データが記録されている。入出力信号データは、入力信号データと出力信号データが記録されている。
入力信号データは、提供された半導体集積回路の論理回路に外部から入力するための予め提供された外部入力信号Sinのデータであって、外部入力信号Sinが変化(「1」から「0」に変化又は「0」から「1」に変化)する時刻(信号変化時刻)ticのデータと、その信号変化時刻tcにおける入力信号の信号更新値(「1」から「0」に変化したときには「0」の値又は「0」から「1」に変化とたときには「1」の値)のデータとからなる。
【0051】
因みに、外部入力信号Sinが図5に示すよう信号であるならば、信号変化時刻ticは、検証開始時刻(t=0秒)から、時刻tic1 、時刻tic2 、時刻tic3 、時刻tic4 、時刻tic5 、時刻tic6 、時刻tic7 、時刻tic8 ……となる。そして、その各信号変化時刻ticにおける信号更新値は、時刻tic1 の時「1」、時刻tic2 の時「0」、時刻tic3 の時「1」、時刻tic4 の時「0」、時刻tic5 の時「1」、時刻tic6 の時「0」、時刻tic7 の時「1」、時刻tic8 の時「0」となる。
【0052】
出力信号データは、前記した外部入力信号Sinに対してユーザが要求する該半導体集積回路の論理回路から出力される予め提供された外部出力信号Sout のデータであって、外部出力信号Sout の変化(「1」から「0」に変化又は「0」から「1」に変化)する時刻tocのデータと、その変化した時刻における出力信号の値(「1」から「0」に変化したときには「0」の値又は「0」から「1」に変化とたときには「1」の値)のデータとからなる。
【0053】
因みに、出力信号が図5に示すよう信号であるとき、変化する時刻tocは、検証開始時刻(t=0秒)から、時刻toc1 、時刻toc2 、時刻toc3 、時刻toc4 ……となる。そして、その各変化時刻tocにおける値は、時刻toc1 の時「1」、時刻toc2 の時「0」、時刻toc3 の時「1」、時刻toc4 の時「0」……となる。
【0054】
論理検証プログラムファイル5には、論理検証プログラムが記録されている。論理検証プログラムは、シミュレータ1に論理検証を実行させるためのプログラムデータであって、イベント駆動方式によりユーザが提供した論理回路データを論理検証するためのプログラムである。
【0055】
検証結果データファイル6は、シミュレータ1が行った論理検証の結果のデータがシミュレータ1にて記録される。又、シミュレータ1は、論理検証の結果を表示装置8に表示したり、印字装置9を駆動して用紙に印字する。
【0056】
シミュレータ1は、前記論理検証プログラムファイル5から論理検証プログラムを読み出す。シミュレータ1は、その論理検証プログラムに従って前記論理回路データ及び入出力信号データを使用して論理回路の論理検証を実行する。
【0057】
シミュレータ1は、論理検証プログラムに従って、論理回路データファイル3からユーザから提供された半導体集積回路の論理回路データを読み出す。シミュレータ1は、その読み出した論理回路データを同シミュレータ1内のメモリ部1aに記憶するようになっている。即ち、メモリ部1aには、論理回路を構成する論理素子データ及びネットリストのデータが記憶される。
【0058】
シミュレータ1は、論理検証プログラムに従って、入出力信号データファイル4からユーザから提供された半導体集積回路の論理回路に対する入力信号データと出力信号データを読み出す。シミュレータ1は、その読み出した入力信号データ及び出力信号データを同シミュレータ1内のメモリ部1aに記憶するようになっている。即ち、メモリ部1aには、入力信号データについては前記した各信号変化時刻ticとその各信号変化時刻ticにおける信号更新値が記憶される。又、メモリ部1aには、出力信号データについては前記した各信号変化時刻tocとその各信号変化時刻tocにおける信号更新値が記憶される。
【0059】
シミュレータ1はイベント処理・生成部1bを備えている。イベント処理・生成部1bは、論理検証において現在時刻から将来に渡る時間軸上に登録された着信時刻、着信箇所及び更新信号値よりなるイベントの集合の中から現在時刻のイベントの部分集合を求める。イベント処理・生成部1bは、そのイベントの部分集合の中のイベントについて着信処理を行う。この着信処理では、新たなイベントの発生を検査し、発生させた新たなイベントを現在又は将来の時刻に登録する。
【0060】
又、イベント処理・生成部1bは、イベントを生成する際にイベントの種別を示す情報をその生成するイベントに付加する。イベントの種別は、通常イベントと特殊イベント(自己着信イベント)とからなる。イベント処理・生成部1bは、インバータ素子、オア回路素子、アンド回路素子、ノア回路素子、ナンド回路素子、排他的論理和回路素子、フリップフロップ素子等の論理的動作が決まっている論理素子に対して生成されるイベントに通常イベントの情報を付加する。又、イベント処理・生成部1bは、固定周期発振器素子21、PLL素子のように発振機能を備えた論理素子に対して生成されるイベントに特殊イベントの情報を付加する。
【0061】
そして、通常イベントは次段の論理素子に信号変化を伝達するための生成されるイベントあり、特殊イベントは発振機能を備えた論理素子自身の発振による信号変化を示すため生成されるイベントである。この通常イベントと特殊イベントの決定について、イベント処理・生成部1bはイベントを生成する際に論理素子データに付加される前記論理素子を定義したデータに基づいて決定している。
【0062】
この着信処理を図6に示すフローチャートに従って説明する。
まず、図2に示す発振機能を備えた論理素子を含まない論理回路における着信処理について説明する。尚、図7は図2に示す論理回路の各出力端子X11,X12,X13,X14を着信箇所としたイベントの生成概念を示す。
【0063】
さて、現在時刻tk0が、第1インバータ素子11の入力信号が変化(この場合、「1」から「0」に変化)してその変化に基づいて同インバータ素子11の出力端子X11(着信箇所)が「0」から「1」に更新される時刻とする。
【0064】
そして、この現在時刻tk0を着信時刻、第1インバータ素子11の出力端子X11を着信箇所とする第1通常イベントIV11が選択されると、イベント処理・生成部1bは図6に示す処理を実行する。
【0065】
ステップ1において、イベント処理・生成部1bは該第1通常イベントIV11が特殊イベントかどうか判断する。そして、この場合、その第1通常イベントIV11は第1インバータ素子11の出力端子X11に対する通常イベントであって特殊イベントではないので、イベント処理・生成部1bはステップ2に移る。
【0066】
ステップ2において、イベント処理・生成部1bは出力端子X11を「1」に更新する。続いて、ステップ3において、ファンアウトピン数カウンタの内容iを「1」にセットする。ファンアウトピン数は、該インバータ素子11のファンアウトの数であって、該第1インバータ11の出力端子との結線を示す前記ネットリストデータから求められる。そして、従って、図2から明らかなように、この第1インバータ素子11におけるファンアウトピン数は「3」となる。続いて、ステップ4において、ファンアウトピン数カウンタの内容iが第1インバータ素子11のファンアウトの数を超える値になったかをチェックする。そして、超えていないことから、ステップ5に移る。
【0067】
ステップ5において、イベント処理・生成部1bは、ネットリストデータに基づいて、最初のファンアウトピンP11の信号値(次段の第2インバータ12の入力端子に入力信号)を「1」に更新する。
【0068】
続いて、ステップ6において、ファンアウトピンP11の信号値の更新に基づいて第2インバータ素子12を動作させた時、その動作に基づく該第2インバータIV12の出力端子X12の新しい信号値(更新信号値)を求める。
【0069】
ステップ7において、この更新信号値が現在時刻(時刻tk0)における信号値と相違するかどうかチェックする。この場合、動作に基づいて出力端子X12は「1」から「0」に更新されることから、ステップ8に移る。
【0070】
ステップ8において、その第2インバータ素子12の遅延時間データ(この場合、立ち下がり遅延時間tdHL12)を該第2インバータ素子12の論理素子データから求める。
【0071】
続いて、ステップ9において、現在時刻tk0から立ち下がり遅延時間tdHL12後の時刻tk1を着信時刻、第2インバータ素子12の出力端子X12を着信箇所とする新たな第2通常イベントIV12を生成する。これにより、最初のファンアウトピンP11に対する着信処理は終了する。
【0072】
最初のファンアウトピンP11に対しての着信処理が終了すると、ステップ10において、ファンアウトピン数カウンタの内容iを1つ加算して「2」とした後、前記ステップ4に移る。
【0073】
そして、次のファンアウトピンP12に対して前記したステップ4〜ステップ9の処理方法で新たなイベントを生成する。因みに、ファンアウトピンP12に対するセル13の出力端子X13が、「0」から「1」に反転動作する場合には、そのセル13の遅延時間データ(この場合、立ち上がり遅延時間tdLH13)を該セル13の論理素子データから求める。続いて、現在時刻tk0から立ち上がり遅延時間tdLH13後の時刻tk2を着信時刻、セル13の出力端子X13を着信箇所とする新たな第3通常イベントIV13を生成する。
以下、同様に、セル14の出力端子X14に発生する第4通常イベントIV14が生成される。この時、セル14がファンアウトピンP13の「0」から「1」への更新信号値に対して立ち下がり遅延時間tdHL14(<tdLH13)だけ遅れて出力端子X14が「1」から「0」に更新されるとき、現在時刻tk0から立ち上がり遅延時間tdHL14後の時刻tk3を着信時刻、セル14の出力端子X14を着信箇所とする新たな第4通常イベントIV14が生成される。
【0074】
そして、ステップ10において、ファンアウトピン数カウンタの内容iが「4」となり、ステップ4において、現在時刻tk0における第1通常イベントIV11に対する着信処理を終了する。そして、現在時刻tk0において、第1通常イベントIV11以外の別のイベントがある場合には、この別のイベントについて前記と同様な着信処理を行い現在時刻tk0における全てのイベントが終了するまで同様な着信処理を行う。又、現在時刻tk0において、第1通常イベントIV11以外の別のイベントがない場合、又は、現在時刻tk0における全てのイベントの着信処理が終了すると、イベント処理・生成部1bは、現在時刻tk0を更新し、現在時刻tk0に最も近い将来の時刻のベントがある時刻について前記と同様な着信処理を実行する。
【0075】
次に、図3に示す論理回路内に固定周期発振器素子21が構成されている場合、その固定周期発振器素子21に対する着信処理について説明する。尚、図8は図3に示す論理回路の各出力端子X21,X22を着信箇所としたイベントの生成概念を示す。
【0076】
今、論理回路の初期化が完了された状態で、固定周期発振器素子21の発振開始時刻tf0を着信時刻、その発振器素子21の出力端子X21を着信箇所とした初期自己着信イベントIVinが生成されている。又、出力端子X21には、「0」の初期信号値が与えられている(この初期信号値は初期化の時に決まる値であって、初期化によって「1」となる。)。そして、この初期自己着信イベントIVinについては、図2で示したインバータ素子11と相違して固定周期発振器素子21であるため、インバータ素子等の論理素子の前記した第1〜第4通常イベントIV11〜IV14と区別され特殊イベントである。特殊イベントかどうかは、前記した固定周期発振器素子21の論理素子データに付加された自身が発振器素子である旨を定義したデータに基づいて決定されている。
【0077】
そして、現在時刻が発振開始時期tf0において、イベント処理・生成部1bは、この現在時刻tf0を着信時刻、固定周期発振器素子21の出力端子X21を着信箇所とする初期自己着信イベントIVinが選択されると、ステップ1において、該イベントが特殊イベントかどうかをチェックする。このチェックは、前記したイベントに付加された情報に基づいて判断される。この場合、初期自己着信イベントIVinは特殊イベントなので、ステップ11の処理に移る。
【0078】
ステップ11において、イベント処理・生成部1bは次段のインバータ素子22に信号変化を伝達するための第1通常イベントIVst1を生成する。この第1通常イベントIVst1は、着信時刻が現在時刻tf0、着信箇所が該固定周期発振器素子21の出力端子X21、更新信号値が前記初期値を反転させた値(「1」)となる通常イベントである。通常イベントの生成が終了すると、イベント処理・生成部1bはステップ12に移る。
【0079】
ステップ12において、イベント処理・生成部1bは、自己着信イベントIVid1を生成する。自己着信イベントIVid1は、着信時刻が現在時刻tf0に該固定周期発振器素子21の固定周期Tkの二分の一の周期を加算した時刻tf1(=tf0+(Tk/2))、着信箇所が該固定周期発振器素子21の出力端子X21となるイベントとなる。尚、この自己着信イベントIVid1については、更新信号値は登録しない。
【0080】
自己着信イベントIVid1の着信時刻を現在時刻に該固定周期発振器素子21の固定周期Tkの二分の一の周期を加算した時刻とした理由は、以下のとおりである。該固定周期発振器素子21から出力される出力信号は、デューティー比50%,周期Tkの発振信号であり、1/2周期(=Tk/2)ごとに値が反転する。従って、発振器素子21を発振動作させるためには、値が反転する時刻に新たなイベントが発生させる必要があるからである。尚、デューティー比50%でない場合は、その反転する時刻をその時のデューティー比と周期とで加算する時刻が求められている。
【0081】
そして、この自己着信イベントIVid1を特殊イベントとして同イベントIVidに情報を付加して自己着信イベントIVid1の生成は終了する。
このステップ11にて生成された第1通常イベントIVst1に基づく着信処理は以下のように行われる。
【0082】
ステップ11にて生成された第1通常イベントIVst1は、着信時刻が現在時刻tf0である。従って、第1通常イベントIVst1は、先に行ったステップ11及びステップ12の処理と同じ時刻(現在時刻tf0)である。その結果、その第1通常イベントIVst1は先に行ったステップ11及びステップ12の処理が行われた後であって、現在時刻tf0で着信処理が行われる。
【0083】
そして、現在時刻tf0において、第1通常イベントIVst1が着信処理のために選択されると、イベント処理・生成部1bは、該第1通常イベントIVst1が特殊イベントかどうかをチェックする。この場合、第1通常イベントIVst1は、特殊イベントではないのでステップ2の処理に移る。
【0084】
そして、第1通常イベントIVst1の着信処理を前記したステップ2〜ステップ10の処理を実行し新たな通常のイベントの発生を検査し生成する。
因み、この図3においては、次段のインバータ素子22の出力端子X22を着信箇所、現在時刻tf0にインバータ素子22の立ち下がり遅延時間tdHL22を加算した時刻tf0aを着信時刻とする第2通常イベントIVst2が新たに生成され登録される。
【0085】
やがて、時刻が経過して現在時刻が先のステップ12にて生成した自己着信イベントIVid1の着信時刻tf1(=tf0+(Tk/2))となる。そして、その現在時刻tf1において、自己着信イベントIVid1が着信処理のために選択されると、イベント着信・生成部1bは、ステップ1にて該イベントIVid1が特殊イベントかどうかをチェックする。この場合、自己着信イベントIVid1は、特殊イベントなのでステップ11の処理に移る。
【0086】
そして、ステップ11において、この自己着信イベントIVid1に対する新たな第3通常イベントIVst3を生成する。この第3通常イベントIVst3は、着信時刻が現在時刻tf1、着信箇所が該固定周期発振器素子21の出力端子X21、更新信号値が現在時刻tf0の反転値の「0」となるイベントである。第3通常イベントIVst3の生成が終了すると、イベント処理・生成部1bはステップ12に移る。
【0087】
ステップ12において、新たな第2自己着信イベントIVid2を生成する。この第2自己着信イベントIVid2は、着信時刻が現在時刻tf1に該固定周期発振器素子21の固定周期Tkの二分の一の周期を加算した時刻tf2(=tf1+(Tk/2))、着信箇所が該固定周期発振器素子21の出力端子X21となる特殊イベントとなる。尚、この第2自己着信イベントIVid2については、前記自己着信イベントIVidと同様に更新信号値は登録しない。
【0088】
そして、この第2自己着信イベントIVid2を特殊イベントとして同イベントIVid2に情報を付加して第2自己着信イベントIVid2の生成は終了する。
【0089】
このように、以後同様な処理を行って、新たな通常イベントと自己着信イベントを生成しそれを繰り返すことにより、固定同期発振器素子21は、一定の同期Tkで発振し続ける。
【0090】
因みに、図8に示すように、着信時刻が時刻tf3、出力端子X21を着信箇所とする第3自己着信イベントIVid3が形成される。以後、(Tk/2)周期を間隔とする時刻毎に出力端子X21を着信箇所とする自己着信イベントと通常イベントが生成され登録される。又、自己着信イベントIVid1,IVid2,IVid3と同じ着信時刻の通常イベントIVst3,IVst5,IVst7…に基づく着信処理によって、インバータ22の出力端子X22を着信箇所とする通常イベントIVst4,IVst6…が順次生成される。
【0091】
つまり、初期信号及び発振時刻tf0を設定し、自己着信イベントを生成することにより、固定同期発振器素子21は一定の同期Tkで発振し続ける。従って、固定周期発振器素子21の論理モデルは、従来のように初期化信号のための本来存在しない入力端子を形成しなくても発振させることができる。その結果、固定周期発振器素子21の論理レベルと物理モデルは、端子構成が共通となり単一のマスタライブラリに格納することができる。
【0092】
又、固定周期発振器素子21の論理モデルを1つのセルにて構成することがてきるため、複数のセルから構成してなる発振器素子に比べて論理子シミュレーション速度の向上が図れる。
【0093】
次に、図4に示す、PLL素子31を含んだ論理回路が構成されている場合、そのPLL素子31に対するイベント処理・生成部1bが行う着信処理ついて説明する。PLL(Phase-Locked Loop )素子31を含んだ論理回路は、上記したフローチャートに従って前記と同様に着信処理を行うことができる。尚、図10は図4に示すPLL素子31の出力端子X31を着信箇所としたイベントの生成概念を示す。
【0094】
図4において、PLL素子は、比較信号としての外部クロックREFを入力する比較信号入力端子と、帰還信号FBを入力する帰還信号入力端子を備えている。PLL素子31の発振出力端子X31は、帰還経路上に形成された回路32に接続されている。そして、回路32は、発振出力端子x31からの発振出力を分周器33に出力する。分周器33は、該回路32から遅延して入力された発振出力を分周して帰還信号FBとしてPLL素子31の帰還信号入力端子に入力する。
【0095】
図9は、PLL素子31の等価回路を示す。PLL素子31は、位相比較器31a、チャージポンプ31b、ローパスフィルタ31c、電圧制御発振器(VCO)31dを含む。そして、PLL素子31は、位相比較器31aが検出した位相差±dtにより、VCO31dに印加する電圧を制御し、発振周期を制御するものである。
【0096】
そして、このPLL素子31について、位相差±dtに対するVCO31dの発振周期変位を一次関数で近似した時のVCO特性傾きパラメタrで表す。
そして、イベント処理・生成部1bは、その時々の位相差±dtに対するVCO31dの発振周期Tn+1 を先の発振周期Tn に対して以下の[A]〜[I]の場合分けして決定している。尚、外部クロックREFの周期をTref 、帰還信号FBの周期をTfbとする。
[A].待機状態から外部クロックREFの立ち上がり生じた場合。
【0097】
1.Tref を更新する。
2.その立ち上がった時刻(現在時刻)をMに登録。
[B].外部クロックREFが立ち上がった後に、帰還信号FBが立ち上がった場合。
【0098】
つまり、外部クロックREFが帰還信号FBより位相が進んだ場合である。
1.Tfbを更新する。
2.dt=現在時刻−M(但し、[A]の2で登録した時刻)、を求める。
【0099】
3.Tref >Tfb、又は、Tfbが未測定の時、
Tn+1 =Tn …(1)
4.Tref <Tfb、又は、Tref =Tfbの時、
Tn+1 =Tn −r×dt …(2)
dtはその位相差である。
[C].外部クロックREFが立ち上がった後に再び外部クロックRERが立ち上がった場合。
【0100】
つまり、依然として外部クロックREFが帰還信号FBより位相が進んでいる場合か、帰還信号FBが出力停止している場合のいずれかである。
1.Tref を更新する。
【0101】
2.dt=現在時刻−M(但し、[A]の2又は[C]の4で登録した時刻)、を求める。
3.Tn+1 =Tn −r×dt …(3)
4.その立ち上がった時刻(現在時刻)をMに登録。
【0102】
dtは外部クロックREFの周期となる。
[D].外部クロックREFが立ち上がった後に、同時に外部クロックRERと帰還信号FBが立ち上がった場合。
【0103】
つまり、外部クロックREFが帰還信号FBより位相より進んだ状態から位相差がなくなり待機状態になった場合である。
1.Tref 及びTfbを更新する。
【0104】
2.dt=現在時刻−M(但し、[A]の2又は[C]の4で登録した時刻)、を求める。
3.Tref >Tfb、又は、Tfbが未測定の時、
Tn+1 =Tn …(4)
4.Tref <Tfb、又は、Tref =Tfbの時、
Tn+1 =Tn −r×dt …(5)
dtは位相差である。
[E].前記待機状態から帰還信号FBが立ち上がった場合。
【0105】
つまり、待機状態から外部クロックREFが帰還信号FBより位相が遅れる位相差が発生した場合である。
1.Tfbを更新する。
【0106】
2.その立ち上がった時刻(現在時刻)をMに登録。
[F].帰還信号FBが立ち上がった後に、外部クロックREFが立ち上がった場合。
【0107】
つまり、外部クロックREFが帰還信号FBより位相が遅れた場合である。
1.Tref を更新する。
2.dt=現在時刻−M(但し、[E]の2で登録した時刻)、を求める。
【0108】
3.Tref <Tfb、又は、Tfbが未測定の時、
Tn+1 =Tn …(6)
4.Tref >Tfb、又は、Tref =Tfbの時、
Tn+1 =Tn +r×dt …(7)
dtは位相差である。
[G].帰還信号FBが立ち上がった後、に再び帰還信号FBが立ち上がった場合。
【0109】
つまり、依然として外部クロックREFが帰還信号FBより位相が遅れている場合か、外部クロックREFが出力停止している場合のいずれかである。
1.Tfbを更新する。
【0110】
2.dt=現在時刻−M(但し、[E]の2又は[G]の4で登録した時刻)、を求める。
3.Tn+1 =Tn +r×dt …(8)
4.その立ち上がった時刻(現在時刻)をMに登録。
【0111】
dtは帰還信号FBの周期となる。
[H].帰還信号FBが立ち上がった後に、同時に外部クロックRERと帰還信号FBが立ち上がった場合。
【0112】
つまり、外部クロックREFが帰還信号FBより位相より遅れた状態から位相差がなくなり待機状態になった場合である。
1.Tref 及びTfbを更新する。
【0113】
2.dt=現在時刻−M(但し、[E]の2又は[G]の4で登録した時刻)、を求める。
3.Tref <Tfbの時、
Tn+1 =Tn …(9)
4.Tref >Tfb、又は、Tref =Tfbの時、
Tn+1 =Tn +r×dt …(10)
dtは位相差である。
【0114】
[I].前記待機状態から同時に外部クロックRERと帰還信号FBが立ち上がった場合。
つまり、外部クロックRERと帰還信号FBの位相が一致する待機状態の場合である。
【0115】
1.Tref 及びTfbを更新する。
2.Tn+1 =Tn …(11)
今、論理回路の初期化が完了された状態で、PLL素子31の発振開始時刻tp0を着信時刻、そのPLL素子31の出力端子X31を着信箇所とした初期自己着信イベントIVinpが生成されている。又は、出力端子X31には、「1」又は「0」の初期信号値が与えられている。この場合、説明の便宜上、初期信号は「0」とする。
【0116】
そして、この初期自己着信イベントIVinpは、前記固定周期発振素子21と同様に、PLL素子31の論理素子データに付加された自身がPLL素子31である旨を定義したデータに基づいて特殊イベントとしての付加情報として付加される。
【0117】
そして、現在時刻が発振開始時期tp0において、イベント処理・生成部1bは、この現在時刻tp0を着信時刻、PLL素子31の出力端子X31を着信箇所とする初期自己着信イベントIVinpが選択されると、ステップ1において、該イベントが特殊イベントかどうかをチェックする。このチェックは、前記したイベントに付加された情報に基づいて判断される。そして、イベント処理・生成部1bはステップ11の処理に移る。
【0118】
ステップ11において、イベント処理・生成部1bは、次段の回路32に信号変化を伝達するための通常イベントIVstp1を生成する。この通常イベントIVstp1は、着信時刻が現在時刻tp0、着信箇所が該PLL素子31の出力端子X31、更新信号値が前記初期値を反転させた値(「1」)となるイベントである。通常イベントIVstp1の生成が終了すると、イベント処理・生成部1bはステップ12に移る。
【0119】
ステップ12において、イベント処理・生成部1bは、自己着信イベントIVidp1を生成する。自己着信イベントIVidp1は、着信時刻が現在時刻tp0に該PLL素子31のその時の周期Tn+1 の二分の一の周期を加算した時刻tp1(=tp0+(Tn+1 /2))、着信箇所が該PLL素子31の出力端子X31となる特殊イベントである。尚、該PLL素子31は、現在時刻tp0(発振開始時刻)では予め定めた初期値の周期Tinpで発振する。従って、現在時刻tp0では、PLL素子31のその時の周期Tn+1 は、Tinpとなる。その結果、時刻tp1は、
tp0=tp0+(Tn+1 /2)=tp0+(Tinp/2)
なる。
【0120】
又、この自己着信イベントIVidp1については、更新信号値は登録しない。
自己着信イベントIVidp1の着信時刻を現在時刻に該PLL素子31の周期Tn+1 (この場合は、初期周期Tinp)の二分の一の周期を加算した時刻とした理由は、以下のとおりである。該PLL素子31から出力される出力信号は、周期Tn+1 の発振信号であり、1/2周期(=Tn+1 /2)ごとに値が反転する。従って、PLL素子31を発振動作させるためには、値が反転する時刻に新たなイベントを発生させる必要があるからである。
【0121】
尚、初期値の周期Tinpは、例えば外部クロックREFを計測し、その時の外部クロックREFの周期を用いて実施してもよい。そして、その外部クロックREFの周期を計測するまでの間は、外部クロックREFを発振信号として出力させるようにして実施してもよい。
【0122】
そして、この自己着信イベントIVidp1を特殊イベントとして同イベントIVidp1に情報を付加して自己着信イベントIVidp1の生成は終了する。
【0123】
このステップ11、ステップ12にて生成された通常イベントIVstp1に基づく着信処理は以下のように行われる。
ステップ11にて生成された通常イベントIVstp1は、着信時刻が現在時刻tp0である。従って、通常イベントIVstp1は、先に行われたステップ11及びステップ12の処理が行われる同じ時刻(現在時刻tp0)である。その結果、その通常イベントIVstp1は先のステップ11及びステップ12の処理が行われた後であって、現在時刻tp0で着信処理の行われる。
【0124】
そして、現在時刻tp0において、通常イベントIVstp1が着信処理のために選択されると、イベント処理・生成部1bは、該イベントIVstp1が特殊イベントかどうかをチェックする。この場合、通常イベントIVstp1は、特殊イベントではないのでステップ2の処理に移る。
【0125】
そして、通常イベントIVstp1の着信処理を前記したステップ2〜ステップ10の処理を実行し新たな通常のイベントの発生を検査し生成する。
因み、この図4においては、次段の回路32内の論理セルに対するイベントが新たに生成され登録されることになる。
【0126】
又、現在時刻が先のステップ12にて生成した自己着信イベントIVidp1の着信時刻tp1(=tp0+(Tinp/2))となる前の時刻に、PLL素子31に入力される外部クロックREF又は帰還信号FBに変化が生じる時には、新たな発振周期Tn+1 の演算を行うようになっている。
【0127】
イベント処理・生成部1bは、その変化が前記した[A]〜[I]のどこに属する変化であるか判断し、外部クロックREF又は帰還信号FBの周期Tref ,Tfbを更新する。そして、その変化が前記した[B]〜[I]のいずれかに属する場合には、イベント処理・生成部1bは、式(1)〜式(11)を使用してPLL素子31の新たな発振周期Tn+1 を設定する。
【0128】
やがて、時刻が経過して現在時刻がステップ12にて生成した自己着信イベントIVidp1の着信時刻tp1となる。そして、その現在時刻tp1において、自己着信イベントIVidp1が着信処理のために選択されると、イベント処理・生成部1bは、該イベントIVidp1が特殊イベントかどうかをチェックする。この場合、自己着信イベントIVidp1は、特殊イベントなのでステップ11の処理に移る。
【0129】
そして、ステップ11において、この自己着信イベントIVidp1に対する新たな第2通常イベントIVstp2を生成する。この第2通常イベントIVstp2は、着信時刻が現在時刻tp1、着信箇所が該PLL素子31の出力端子X31、更新信号値が現在時刻tp0の反転値の「0」の値となるイベントである。第2通常イベントIVstp2の生成が終了すると、イベント処理・生成部1bはステップ12に移る。
【0130】
ステップ12において、新たな第2自己着信イベントIVidp2を生成する。この第2自己着信イベントIVidp2は、着信時刻が現在時刻tp1に該PLL素子31の発振周期Tn+1 の二分の一の周期を加算した時刻tp2(=tp1+(Tn+1 /2))、着信箇所が該PLL素子31の出力端子X31となる特殊イベントである。この着信時刻tp2の演算に使用された発振周期Tn+1 は、この第2自己着信イベントIVidp2の着信時刻tp1の前にイベント処理・生成部1bが前記式(1)〜式(11)を使用して求めた発振周期Tn+1 が使用される。
【0131】
尚、この第2自己着信イベントIVidp2については、前記自己着信イベントIVidp1と同様に更新信号値は登録しない。
そして、この第2自己着信イベントIVidp2を特殊イベントとして同イベントIVidp2に情報を付加して第2自己着信イベントIVidp2の生成は終了する。
【0132】
このように、以後同様な処理を行って、新たな自己着信イベントを生成しそれを繰り返すことにより、PLL素子31は、外部クロックREFと帰還信号FBの位相差±dtに基づいて式(1)〜式(11)にて決まる発振周期Tn+1 がその時々で設定される。そして、その時々設定される発振周期Tn+1 で発振し続けるための自己着信イベントIVidp1,IVidp2,……と通常イベントIVstp1,IVst2,IVst3,……が生成される。
つまり、初期信号及び発振時刻tp0を設定し、自己着信イベントを生成することにより、PLL素子31は外部クロックREFと帰還信号FBの位相差±dtに基づいて決まる発振周期Tn+1 で発振し続ける。従って、PLL素子31の論理モデルは、図15及び図16に示すPLLの場合のように、従来のように初期化信号のための本来存在しない入力端子を形成しなくても発振させることができる。その結果、PLL素子31の論理レベルと物理モデルは、端子構成が共通となり単一のマスタライブラリに格納することができる。
【0133】
又、PLL素子31の論理モデルを1つのセルにて構成することがてきるため、複数のセルから構成してなる発振器素子に比べて論理子シミュレーション速度の向上が図れる。
【0134】
しかも、このPLL素子31の論理モデルは、自発的な発振周期を調整、即ち、外部クロックREFと帰還信号FBの位相差±dtに対して式(1)〜式(11)を使用して発振周期Tn+1 を設定することができる。従って、PLL素子31を含む論理回路の論理検証において、外部クロックREF及び分周器33の分周比に追従する論理検証が行うことができる。
【0135】
さらに、PLL素子31を含む論理回路の論理検証において、帰還経路に形成された回路32の中の論理誤りで発生する帰還信号FBの停止した時にはその停止に即した発振周期Tn+1 の信号を出力する。その結果、その停止に即した発振周期Tn+1 の信号をみることで、帰還経路に形成された回路32の中の論理誤りを発見することができる。
【0136】
【発明の効果】
請求項1に記載の発明によれば、論理検証において発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして検証することができる。
【0137】
請求項2に記載の発明によれば、論理検証において固定周期発振器素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして検証することができる。
【0139】
請求項3及び請求項4に記載の発明によれば、論理検証においてPLL素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして検証することができる。
【0140】
請求項5に記載の発明によれば、論理検証において発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして論理検証を行うことができる。
【0141】
請求項6に記載の発明によれば、論理検証において発振機能を備えた論理素子の論理モデルを構成が簡単で物理モデルとその端子構成が一致するモデルにして論理検証をさせることができる。
【図面の簡単な説明】
【図1】論理検証装置のシステム構成を示す図
【図2】半導体集積回路の一部論理回路図
【図3】固定周期発振器素子を含む一部論理回路図
【図4】PLL素子を含む論理回路図
【図5】論理検証に使用する外部入力信号と外部出力信号を説明するための図
【図6】着信処理動作を説明するためのフローチャート
【図7】論理回路の各出力端子X11〜X14を着信箇所とするイベントの生成の概念を説明するための図
【図8】固定周期発振器素子を含む論理回路の各出力端子X21,X22を着信箇所とするイベントの生成の概念を説明するための図
【図9】PLL素子の等価回路を説明するための図
【図10】PLL素子の出力端子X21を着信箇所とするイベントの生成の概念を説明するための図
【図11】従来の着信処理を説明するための一部論理回路図
【図12】従来の着信処理におけるイベントの生成の概念を説明するための図
【図13】固定周期発振器素子の論理セルの構成を示す図
【図14】従来の論理検証で使用される固定周期発振器素子の論理セルモデルを示す図
【図15】従来のVCOの論理モデルを説明するための図
【図16】従来のPLL素子の論理モデルを説明するための図
【符号の説明】
1 論理検証装置(シミュレータ)
1b イベント処理・生成部
2 磁気ディスク装置
3 論理回路データファイル
4 入出力信号データファイル
5 論理検証プログラムファイル
11 第1インバータ素子
12 第2インバータ素子
13,14 セル
21 固定周期発振器素子
31 PLL素子
Claims (6)
- 論理検証装置にて実行される論理素子の論理的動作を検証する論理検証方法であって、
前記論理検証装置は、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、
その論理回路に入力されるべき信号のデータと、を記憶装置から入力し、
その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証方法において、
前記論理検証装置は、
前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、
自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、
そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するようにした論理検証方法。 - 請求項1に記載の論理検証方法において、
発振機能を備えた論理素子は、一定の発振周期の発振信号を出力する固定周期発振器素子、又は、発振周期が可変する発振信号を出力する可変発振器素子である論理検証方法。 - 請求項2に記載の論理検証方法において、
可変発振器素子は、外部クロック信号と帰還信号を入力しその両信号の位相差に基づいて発振周期が可変する発振信号を出力するPLL素子であって、前記論理検証装置はその2つの信号の少なくともいずれかの信号が変化する時に前記位相差に基づく発振周期を求めるための演算を行い、前記新たな自己着信イベントの着信時刻はその演算された前記発振周期の発振による信号変化の時刻を現在処理している自己着信イベントの着信時刻に加算した時刻にするようにした論理検証方法。 - 請求項3に記載の論理検証方法において、
前記論理検証装置は、前記位相差に基づく発振周期を、その時の位相差に対して予め定めたパラメタを乗算した値を補正値とし、その補正値を用いて先の発振周期を補正して求めた論理検証方法。 - 複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータを記録した論理データファイルと、
その論理回路に入力されるべき信号データを記録した信号データファイルと、
その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する論理検証装置において、
前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、
自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、
そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成するイベント処理を行うイベント処理・生成部を備えた論理検証装置。 - 論理検証装置が、複数の論理素子がファンイン−ファンアウト構造のネットリストで表現された論理回路のデータと、
その論理回路に入力されるべき信号のデータと、を入力し、
その両データに基づいて前記各論理素子の論理的動作をイベント駆動方法にて検証する処理を実行するための論理検証プログラムを格納する記録媒体であって、
前記論理検証装置が、前記複数の論理素子の内、発振機能を備えた論理素子に対して、次段の論理素子に信号変化を伝達するための通常イベントに加えて、発振機能を備えた論理素子自身の発振による信号変化を示すための自己着信イベントを設け、
自己着信イベントに基づくイベント着信処理を行う際、そのイベント処理している自己着信イベントの着信時刻及び着信箇所を同じとする通常イベントを生成するとともに、
そのイベント処理している自己着信イベントと同じ着信箇所であって、イベント処理している自己着信イベントの着信時刻に前記発振機能を備えた論理素子の発振による信号変化の時刻を加算した時刻を着信時刻とする新たな自己着信イベントを生成する、処理を実行するための論理検証プログラムを記録した記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14951997A JP3992786B2 (ja) | 1997-06-06 | 1997-06-06 | 論理検証方法、論理検証装置及び記録媒体 |
US09/026,530 US6032277A (en) | 1997-06-06 | 1998-02-20 | Method and apparatus for logic testing an integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14951997A JP3992786B2 (ja) | 1997-06-06 | 1997-06-06 | 論理検証方法、論理検証装置及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10340279A JPH10340279A (ja) | 1998-12-22 |
JP3992786B2 true JP3992786B2 (ja) | 2007-10-17 |
Family
ID=15476921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14951997A Expired - Lifetime JP3992786B2 (ja) | 1997-06-06 | 1997-06-06 | 論理検証方法、論理検証装置及び記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6032277A (ja) |
JP (1) | JP3992786B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226765B1 (en) * | 1999-02-26 | 2001-05-01 | Advantest Corp. | Event based test system data memory compression |
US7171602B2 (en) | 2001-12-31 | 2007-01-30 | Advantest Corp. | Event processing apparatus and method for high speed event based test system |
AU2002345446A1 (en) * | 2002-07-03 | 2004-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Phase locked loop circuit, electronic device including a phase locked loop circuit and method for generating a periodic signal |
KR100910086B1 (ko) | 2004-12-29 | 2009-07-30 | 텔레폰악티에볼라겟 엘엠 에릭슨(펍) | 위상 고정 루프 회로, 위상 고정 루프 회로를 포함하는전자 장치 및 주기 신호를 발생시키는 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5212443A (en) * | 1990-09-05 | 1993-05-18 | Schlumberger Technologies, Inc. | Event sequencer for automatic test equipment |
JPH095397A (ja) * | 1995-06-21 | 1997-01-10 | Fujitsu Ltd | 論理シミュレーション方法 |
-
1997
- 1997-06-06 JP JP14951997A patent/JP3992786B2/ja not_active Expired - Lifetime
-
1998
- 1998-02-20 US US09/026,530 patent/US6032277A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH10340279A (ja) | 1998-12-22 |
US6032277A (en) | 2000-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3094977B2 (ja) | Pll回路 | |
US5771264A (en) | Digital delay lock loop for clock signal frequency multiplication | |
JP3323054B2 (ja) | 周波数逓倍回路 | |
JP7417718B2 (ja) | 制御信号パルス幅抽出に基づくフェーズロック加速回路及びフェーズロックループシステム | |
JP2001007698A (ja) | データpll回路 | |
US9647642B2 (en) | Clock phase adjustment mechanism of a ring oscillator using a phase control signal | |
US6066988A (en) | Phase locked loop circuit with high stability having a reset signal generating circuit | |
US6859106B2 (en) | PLL circuit and phase difference detecting circuit that can reduce phase pull-in time and adjust a skew at a higher precision | |
JPH0311689B2 (ja) | ||
US6897691B2 (en) | Phase locked loop with low steady state phase errors and calibration circuit for the same | |
JP3992786B2 (ja) | 論理検証方法、論理検証装置及び記録媒体 | |
JPH11312962A (ja) | 逓倍回路 | |
US6298104B1 (en) | Clock recovery circuit | |
JP2919378B2 (ja) | Pll回路 | |
KR20220096555A (ko) | 기준 클록 생성 회로를 포함하는 듀티 사이클 보정 회로 | |
KR100294517B1 (ko) | 위상조정기능을갖는반도체집적회로및이를사용하는시스템 | |
JP2002280881A (ja) | 逓倍クロック発生回路 | |
JP3693930B2 (ja) | Pll回路のシミュレーション方法およびシミュレーション・プログラム | |
JP2020202439A (ja) | 位相同期回路、電子装置、および、位相同期回路の制御方法 | |
JP7410823B2 (ja) | デジタルpll回路 | |
JP2723748B2 (ja) | タイマ回路 | |
CN111934674A (zh) | 一种误差校准装置、方法、锁相环以及芯片 | |
JP4463441B2 (ja) | Pll回路 | |
JP3506732B2 (ja) | タイミング再生回路 | |
JP2794931B2 (ja) | ディジタル処理形位相同期回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040604 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040604 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070417 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070613 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070724 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070725 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100803 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110803 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120803 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130803 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |