(57)【特許請求の範囲】
【請求項１】
メモリを有するプロセッシングユニットと、論理回路における論理セルのうちタイミング検証を必要とする論理セルに付加されるセル用タイミング検証定義データが前記論理回路の論理回路データとは分離された状態で記憶されているデータベースとを備えた論理シミュレータを用い、論理セル及びマクロを含みかつ階層構造をなす論理回路についてのデータと、その論理回路に入力されるべき信号のデータとに基づいて、イベント法に従い、設計された論理回路の論理シミュレーションを行う方法であって、
前記プロセッシングユニットは、
設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証を実行するための検証指示信号が入力されたとき、その検証指示信号に基づいて、前記指示されたマクロに含まれる各論理セルに対応する前記セル用タイミング検証定義データを前記データベースから読み出して取り込み、その取り込んだセル用タイミング検証定義データに基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを前記論理回路データに付加して前記メモリに格納する処理と、
論理シミュレーション中に前記セル用ダミー素子データを用いてタイミング検証を行う処理と
を実行する論理シミュレーション方法。
【請求項２】
メモリを有するプロセッシングユニットと、論理回路におけるマクロのうちタイミング検証を必要とするマクロに付加されるマクロ用タイミング検証定義データが前記論理回路の論理回路データとは分離された状態で記憶されているデータベースとを備えた論理シミュレータを用い、論理セル及びマクロを含みかつ階層構造をなす論理回路についてのデータと、その論理回路に入力されるべき信号のデータとに基づいて、イベント法に従い、設計された論理回路の論理シミュレーションを行う方法であって、
前記マクロ用タイミング検証定義データにはタイミング検証を開始する条件に関する開始条件データ及びタイミング検証を継続する条件に関する継続条件データ及びタイミング検証を終了する条件に関する終了条件データが含まれており、
前記プロセッシングユニットは、
設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証を実行するための検証指示信号が入力されたとき、その検証指示信号に基づいて、前記指示されたマクロに対応する前記マクロ用タイミング検証定義データを前記データベースから読み出して取り込み、その取り込んだマクロ用タイミング検証定義データに含まれている前記開始条件データ及び継続条件データ及び終了条件データに基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを前記論理回路データに付加して前記メモリに格納する処理と、
論理シミュレーション中に前記マクロ用ダミー素子データを用いてタイミング検証を行う処理と
を実行する論理シミュレーション方法。
【請求項３】
メモリを有するプロセッシングユニットと、論理回路における論理セルのうちタイミング検証を必要とする論理セルに付加されるセル用タイミング検証定義データ及び前記論理回路におけるマクロのうちタイミング検証を必要とするマクロに付加されるマクロ用タイミング検証定義データが前記論理回路の論理回路データとは分離された状態で記憶されているデータベースとを備えた論理シミュレータを用い、論理セル及びマクロを含みかつ階層構造をなす論理回路についてのデータと、その論理回路に入力されるべき信号のデータとに基づいて、イベント法に従い、設計された論理回路の論理シミュレーションを行う方法であって、
前記プロセッシングユニットは、
設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証を実行するための検証指示信号が入力されたとき、その検証指示信号に基づいて、前記指示されたマクロに含まれる各論理セルに対応する前記セル用タイミング検証定義データを前記データベースから読み出して取り込み、その取り込んだセル用タイミング検証定義データに基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを前記論理回路データに付加して前記メモリに格納し、同じく前記指示されたマクロに対応する前記マクロ用タイミング検証定義データを前記データベースから読み出して取り込み、その取り込んだマクロ用タイミング検証定義データに基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを前記論理回路データに付加して前記メモリに格納する処理と、
論理シミュレーション中に前記セル用ダミー素子データ及びマクロ用ダミー素子データを用いてタイミング検証を行う処理と
を実行する論理シミュレーション方法。
【請求項４】
論理セル及びマクロを含む論理回路の論理回路データと、その論理回路に入力されるべき信号のデータとに基づいて、設計された論理回路の論理シミュレーションを行うための論理シミュレータであって、
論理セル及びマクロを含む論理回路の論理回路データを記憶する回路データ記憶手段と、
前記論理回路における論理セルのうち、タイミング検証が必要な論理セルについてのセル用のタイミング検証定義を記憶するライブラリファイルと、
前記回路データ記憶手段及び前記ライブラリファイルに接続され、設計された論理回路のタイミング検証を実行するためのプロセッシングユニットと、
設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証の実行が指示されたとき、その検証指示に基づいて、前記ライブラリファイルから前記指示されたマクロに含まれる各論理セルに対応するセル用のタイミング検証定義を取り込み、その取り込んだセル用のタイミング検証定義に基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを前記論理回路データに付加するためのダミー素子生成部と
を備える論理シミュレータ。
【請求項５】
論理セル及びマクロを含む論理回路の論理回路データと、その論理回路に入力されるべき信号のデータとに基づいて、設計された論理回路の論理シミュレーションを行うための論理シミュレータであって、
論理セル及びマクロを含む論理回路の論理回路データと、論理回路におけるマクロのうち、タイミング検証が必要なマクロについての、タイミング検証を開始する条件に関する開始条件データ及びタイミング検証を継続する条件に関する継続条件データ及びタイミング検証を終了する条件に関する終了条件データが含まれているマクロ用のタイミング検証定義とを記憶する回路データ記憶手段と、
前記回路データ記憶手段に接続され、設計された論理回路のタイミング検証を実行するためのプロセッシングユニットと、
設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証の実行が指示されたとき、その検証指示に基づいて、前記回路データ記憶手段から前記指示されたマクロに対応するマクロ用のタイミング検証定義を取り込み、その取り込んだマクロ用のタイミング検証定義に含まれる前記開始条件データ及び継続条件データ及び終了条件データに基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを前記論理回路データに付加するためのダミー素子生成部と
を備える論理シミュレータ。
【請求項６】
論理セル及びマクロを含む論理回路の論理回路データと、その論理回路に入力されるべき信号のデータとに基づいて、設計された論理回路の論理シミュレーションを行うための論理シミュレータであって、
論理セル及びマクロを含む論理回路の論理回路データと、論理回路におけるマクロのうち、タイミング検証が必要なマクロについてのマクロ用のタイミング検証定義とを記憶する回路データ記憶手段と、
前記論理回路における論理セルのうち、タイミング検証が必要な論理セルについてのセル用のタイミング検証定義を記憶するライブラリファイルと、
前記回路データ記憶手段及び前記ライブラリファイルに接続され、設計された論理回路のタイミング検証を実行するためのプロセッシングユニットと、
設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証の実行が指示されたとき、その検証指示に基づいて、前記ライブラリファイルから前記指示されたマクロに含まれる各論理セルに対応するセル用のタイミング検証定義を取り込み、その取り込んだセル用のタイミング検証定義に基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを前記論理回路データに付加し、同じく前記データベースから前記指示されたマクロに対応するマクロ用のタイミング検証定義を取り込み、その取り込んだマクロ用のタイミング検証定義に基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを前記論理回路データに付加するためのダミー素子生成部と
を備える論理シミュレータ。
【請求項７】
前記プロセッシングユニットは、
論理シミュレーションのために論理回路に入力されるべき外部信号のデータを信号データファイルから当該プロセッシングユニットに導入するための信号入力部と、
論理シミュレーションにおける内部時刻を提供するための内部時刻記憶部と、
前記内部時刻記憶部によって提供された内部時刻及び前記ダミー素子生成部を経由して前記回路データ記憶手段から読み込んだ前記論理回路データ及び前記信号入力部から提供される外部信号データに基づいてイベント法に従って作動するとともに、特定の内部時刻におけるイベントとしての外部信号の変化及び論理回路内部における信号の変化の少なくとも何れか一方に基づいてその内部時刻以降に論理回路内部において発生する信号の変化を計算してその新たに発生した内部信号変化をイベントとして新たに登録するイベント処理・登録部と、
前記イベント処理・登録部が前記特定の内部時刻において処理すべき全てのイベントの処理を完了したときに、前記内部時刻記憶部に内部時刻の更新を命じる時刻更新部と、
前記信号入力部によって当該プロセッシングユニットに導入された外部信号データにおける各信号の変化時刻を記憶しておく入力時刻記憶部と
を含んで構成されており、前記信号入力部は、前記内部時刻記憶部が示す内部時刻と前記入力時刻記憶部が示す外部信号の変化時刻とが一致したときに前記外部信号データの信号変化に関するデータを前記イベント処理・登録部に供給することを特徴とする請求項４〜６のいずれか一項に記載の論理シミュレータ。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、半導体集積回路、特に大規模集積回路（ＬＳＩ）の設計における論理シミュレーション方法及び論理シミュレータに関する。
【０００２】
一般に、ＬＳＩの設計はＣＡＤ(computer aided design) システムを用いて行われる。更に、設計した回路が正常に動作するかどうかを検証するために、ＣＡＤシステムに組み込まれた論理シミュレータを用いて、論理シミュレーションが行われる。このシミュレーションにおいて、フリップフロップ回路のような順序回路ではセットアップタイム及びホールドタイムのタイミング検証(timing simulation) も重要である。このタイミング検証にも論理シミュレータが使用される。
【０００３】
特に、近年のＬＳＩの更なる大規模化、微細化、及び動作速度の高速化に伴い、タイミング検証は欠くことのできないシミュレーション項目となっている。そのため、論理シミュレータはタイミング検証を正確に実行できることが要求されている。
【０００４】
【従来の技術】
半導体集積回路の設計は、図１６に示すＣＡＤシステム内のライブラリファイル７３に記録されているデータを使用して行われる。ライブラリファイル７３は、種々の論理セルのデータを記憶している。ライブラリファイル７３を作成するために、まず、ライブラリの設計者はテキスト形式からなるセル定義情報７１を作成する。このセル定義情報７１は、セル論理定義と、タイミング検証定義とを含む。セル論理定義は、論理セルを構成する素子及びネットに関するデータからなっている。タイミング検証定義は、論理セルを構成する素子のうち、タイミング検証を必要とする素子に付加されるべきダミー素子に関するデータである。
【０００５】
セル定義情報７１のテキストデータは、ライブラリ作成用のアプリケーションプログラム７２によって論理シミュレータが取り扱える形式のデータに変換され、その変換されたデータはライブラリファイル７３に登録される。図１７はライブラリファイル７３における一例のフリップフロップセル７４のデータの概念図を示し、フリップフロップセル７４はプリミティブフリップフロップ回路７５と、そのタイミング検証を行うためのダミー素子７６とを含む。プリミティブフリップフロップ回路７５はクロックピンＣＫ及びデータピンＤの入力信号のタイミング検証を必要とする素子であるから、ピンＣＫ，Ｄに対してダミー素子７６が並列的に接続される。プリミティブフリップフロップ回路７５及びダミー素子７６は分離することができない。
【０００６】
従って、ライブラリファイル７３内のデータを使用してユーザ（回路設計者）が論理回路を設計する場合、一つのセル内のタイミングを検証すべき箇所にダミー素子が挿入される。図１８は、設計されたセル８０の一例を示す。セル８０はＡＮＤ回路８１、インバータ８２，８４及びフリップフロップ回路８３を含む。この場合、フリップフロップ回路８３はクロックピンＣＫ及びデータピンＤの入力信号のタイミング検証を必要とする素子であるから、ピンＣＫ，Ｄに対してダミー素子８５が並列的に接続される。ただし、この設計されたセル８０をディスプレイ画面上に表示しても、ダミー素子８５は通常、表示されない。
【０００７】
従来のタイミング検証によれば、論理シミュレータがダミー素子を含んだ回路のデータに基づいてシミュレーションをする。論理シミュレータ内には、ダミー素子の入力ピンにおける又は入力ピン間における信号のタイミングを検証するための条件が登録されている。タイミング検証の結果が、定義された条件を満たさない場合、論理シミュレータはタイミングエラーと判定する。
【０００８】
【発明が解決しようとする課題】
従来のタイミング検証方法によれば、設計当初からセルの設計データはダミー素子に関するデータを内蔵しなければならない。そのため、設計の初期段階において提案された論理回路が所望の動作をするか否かを確認する論理シミュレーションの際でも、常にタイミング検証が行われる。このことは、シミュレーション速度を低下させる。一般に、ダミー素子は、回路内のクロック素子のような比較的頻繁に駆動する回路素子に接続されることが多い。このことは、論理シミュレータの負荷を大きなものとする。
【０００９】
また、個々のダミー素子はそれ独自の動作を行うから、ダミー素子の種類の数だけ素子の動作がある。従って、ある素子において検査すべき項目が追加された場合、別のタイプのダミー素子がその素子に追加される必要がある。このことは、シミュレーション速度の改善を妨げる。
【００１０】
また、従来の方法は個々のセルに対して適用され得るのみなので、セル間のタイミング検証を行うことは原理的に不可能である。近年、半導体集積回路の大規模化の進展によるシミュレーション速度の低下が懸念されている。それ故、回路設計の初期段階において、タイミング検証を行うことなくシミュレーションを素早く実行できることが要求されている。
【００１１】
更に、シミュレーションの対象となる回路のデータ規模を小さくするために、セルを真理値表化することが試みられている。この場合には、セルを構成する個々の素子にダミー素子を付加することが不可能であるため、図１９に示すように、真理値表化されたセル８６の外部ピン８６ａ，８６ｂ，８６ｃに対してダミー素子８７が接続されなければならない。このことは、真理値表化されたセル８６に対して従来のダミー素子を使用することができないことを示し、結果として、新規なダミー素子の開発が必要になる。このように、ケースバイケースで新しいダミー素子を準備していくと、ダミー素子の種類が増大する。このことは、ダミー素子の管理を困難にする。
【００１２】
あるダミー素子について論理シミュレータがエラーを検出した場合、ダミー素子の出力信号を‘Ｘ’信号として回路の外部端子まで伝播させることにより、エラーの発生を観測する方法も提案されている。しかし、この場合でも、エラーの発生の仕方は個々のセルの構造に依存するため、目的に応じたダミー素子が個々に必要となり、結局はダミー素子の種類を増大させる。
【００１３】
本発明は上記問題点を解決するためになされたものであって、その目的は、タイミング検証に関する検証定義を、ＣＡＤシステムを用いて論理回路を設計する設計者が取り扱い可能とすることによって、ダミー素子の種類の増加を抑制することにある。
【００１４】
本発明の別の目的は、タイミング検証が求められていない場合において論理シミュレーションの対象となる回路データの数を最小化し、論理シミュレーション速度の改善を図ることにある。
【００１５】
【課題を解決するための手段】
上記目的を達成するため、請求項１の発明は、論理回路における論理セルのうちタイミング検証を必要とする論理セルに付加されるセル用タイミング検証定義データが論理回路の論理回路データとは分離された状態でデータベースに記憶されている。設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証を実行するための検証指示信号が入力されたとき、その検証指示信号に基づいて、データベースから指示されたマクロに含まれる各論理セルに対応するセル用タイミング検証定義データを取り込み、その取り込んだセル用タイミング検証定義データに基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを論理回路データに付加する。そして、論理シミュレーション中にセル用ダミー素子データを用いてタイミング検証を行うようにした。
【００１６】
請求項２の発明は、論理回路におけるマクロのうちタイミング検証を必要とするマクロに付加されるマクロ用タイミング検証定義データが論理回路のデータとは分離された状態でデータベースに記憶されている。設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証を実行するための検証指示信号が入力されたとき、その検証指示信号に基づいて、データベースから指示されたマクロに対応するマクロ用タイミング検証定義データを取り込み、その取り込んだマクロ用タイミング検証定義データに含まれている開始条件データ及び継続条件データ及び終了条件データに基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを論理回路データに付加する。そして、論理シミュレーション中にマクロ用ダミー素子データを用いてタイミング検証を行うようにした。
【００１７】
請求項３の発明は、論理回路における論理セルのうちタイミング検証を必要とする論理セルに付加されるセル用タイミング検証定義データ及び論理回路におけるマクロのうちタイミング検証を必要とするマクロに付加されるマクロ用タイミング検証定義データが論理回路のデータとは分離された状態でデータベースに記憶されている。設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証を実行するための検証指示信号が入力されたとき、その検証指示信号に基づいて、データベースから指示されたマクロに含まれる各論理セルに対応するセル用タイミング検証定義データを取り込み、その取り込んだセル用タイミング検証定義データに基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを論理回路データに付加し、同じくデータベースから指示されたマクロに対応するマクロ用タイミング検証定義データを取り込み、その取り込んだマクロ用タイミング検証定義データに基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを論理回路データに付加する。そして、論理シミュレーション中にセル用ダミー素子データ及びマクロ用ダミー素子データを用いてタイミング検証を行うようにした。
【００１８】
請求項４の発明は、論理セル及びマクロを含む論理回路の論理回路データを記憶する回路データ記憶手段と、論理回路における論理セルのうち、タイミング検証が必要な論理セルについてのセル用のタイミング検証定義を記憶するライブラリファイルと、回路データ記憶手段及びライブラリファイルに接続され、設計された論理回路のタイミング検証を実行するためのプロセッシングユニットと、設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証の実行が指示されたとき、その検証指示に基づいて、ライブラリファイルから指示されたマクロに含まれる各論理セルに対応するセル用のタイミング検証定義を取り込み、その取り込んだセル用のタイミング検証定義に基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを論理回路データに付加するためのダミー素子生成部とを設けた。
【００１９】
請求項５の発明は、論理セル及びマクロを含む論理回路の論理回路データと、論理回路におけるマクロのうち、タイミング検証が必要なマクロについての、タイミング検証を開始する条件に関する開始条件データ及びタイミング検証を継続する条件に関する継続条件データ及びタイミング検証を終了する条件に関する終了条件データが含まれているマクロ用のタイミング検証定義とを記憶する回路データ記憶手段と、回路データ記憶手段に接続され、設計された論理回路のタイミング検証を実行するためのプロセッシングユニットと、設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証の実行が指示されたとき、その検証指示に基づいて、回路データ記憶手段から指示されたマクロに対応するマクロ用のタイミング検証定義を取り込み、その取り込んだマクロ用のタイミング検証定義に含まれる開始条件データ及び継続条件データ及び終了条件データに基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを論理回路データに付加するためのダミー素子生成部とを設けた。
【００２０】
請求項６の発明は、論理セル及びマクロを含む論理回路の論理回路データと、論理回路におけるマクロのうち、タイミング検証が必要なマクロについてのマクロ用のタイミング検証定義とを記憶する回路データ記憶手段と、論理回路における論理セルのうち、タイミング検証が必要な論理セルについてのセル用のタイミング検証定義を記憶するライブラリファイルと、回路データ記憶手段及びライブラリファイルに接続され、設計された論理回路のタイミング検証を実行するためのプロセッシングユニットと、設計された論理回路の論理シミュレーションの開始時に、その設計された論理回路における所定のマクロのタイミング検証の実行が指示されたとき、その検証指示に基づいて、ライブラリファイルから指示されたマクロに含まれる各論理セルに対応するセル用のタイミング検証定義を取り込み、その取り込んだセル用のタイミング検証定義に基づいてセル用ダミー素子データを生成してその生成したセル用ダミー素子データを論理回路データに付加し、同じくデータベースから指示されたマクロに対応するマクロ用のタイミング検証定義を取り込み、その取り込んだマクロ用のタイミング検証定義に基づいてマクロ用ダミー素子データを生成してその生成したマクロ用ダミー素子データを論理回路データに付加するためのダミー素子生成部とを設けた。
【００２１】
【作用】
請求項１の発明では、論理セルのタイミングを検証するためのセル用のタイミング検証定義が論理セルのデータとは分離されているため、タイミング検証定義が指定されなければダミー素子のデータは生成されず、タイミング検証が行われることはなく論理シミュレーションが高速化される。
【００２２】
請求項２の発明では、論理回路を構成するセル間及びマクロ間のタイミングを検証するためのマクロ用のタイミング検証定義を回路設計者に解放することによって、論理セルの設計者が管理すべきダミー素子の種類の増加が抑制され、ダミー素子の管理の複雑化が抑制される。また、同じくマクロ用のタイミング検証定義を回路設計者に解放することによって、マクロ用のタイミング検証定義に基づいて回路設計者が所望するマクロのタイミング検証を行うためのダミー素子が生成される。
【００２３】
請求項３の発明では、請求項１の発明の作用に加えて、請求項２の発明の作用がある。
請求項４の発明では、請求項１の発明と同様の作用がある。
【００２４】
請求項５の発明では、請求項２の発明と同様の作用がある。
請求項６の発明では、請求項４の発明の作用に加えて、請求項５の発明の作用がある。
【００２５】
【実施例】
本発明に従う第１実施例を図１〜図１５に従って説明する。
図１は半導体集積回路の設計用のＣＡＤシステムに組み込まれた論理シミュレータ１を示す。図１に示すように、論理シミュレータ１は、データベースとしての回路ファイル２、信号データファイル３及びライブラリファイル４を備えている。また、論理シミュレータ１は更に、コンピュータ及びコンピュータ上で動作する各プログラムで構成されるプロセッシングユニット１５を備えている。このプロセッシングユニット１５は、信号入力部５、入力時刻記憶部６、内部時刻記憶部７及び時刻更新部８、イベント処理・登録部９、イベントカウンタ１０、ダミー素子生成部１１、半導体メモリ１２及び信号出力部１３を含んでいる。
【００２６】
ライブラリファイル４は、基本的な論理セルのデータを内蔵するとともに、論理回路における論理セルのうち、タイミング検証が必要な論理セルについてのセル用のタイミング検証定義を内蔵している。ライブラリファイル４におけるこれらのデータは、ライブラリの設計者によって予め準備されている。ライブラリファイル４を作成するために、まず、ライブラリの設計者はテキスト形式からなるセル論理定義６０と、同じくテキスト形式からなるタイミング検証定義６１とを別々に作成する。
【００２７】
セル論理定義６０は、論理セルを構成する素子及びネットに関するデータからなっている。タイミング検証定義６１は、論理セルを構成する素子のうち、タイミング検証を必要とする素子及び素子間に付加されるべきダミー素子に関するデータであり、タイミング検証を開始するための開始条件、タイミング検証を継続するための継続条件及びタイミング検証を終了するための終了条件を含む。開始条件、継続条件及び終了条件は、タイミング検証を必要とする素子の端子名及びその端子の信号のレベルにて定義される。タイミング検証定義６１は論理セル毎に定義される。このタイミング検証定義６１は、タイミング検証の結果が正しいかどうかを判定するための規格値、タイミングエラーを生じる動作を定めたエラー動作定義及びそのエラーに対応するメッセージの定義を含む。
【００２８】
セル論理定義６０及びタイミング検証定義６１のテキストデータは、ライブラリ作成用のアプリケーションプログラム６２によってそれぞれ論理シミュレータが取り扱える形式のデータに変換され、その変換されたデータはライブラリファイル４に登録される。図６はライブラリファイル４における一例のフリップフロップセル６６のデータと、同セル６６用のダミー素子に関するタイミング検証定義６７のデータの概念図を示す。フリップフロップセル６６のデータとタイミング検証定義６７とは別々であるが、フリップフロップセル６６のデータに基づいて同セル６６に対応するタイミング検証定義６７を検索することができる。
【００２９】
回路ファイル２は回路データ記憶手段を構成し、回路ファイル２は複数の論理素子データ、マクロのデータ及びネットデータを含むＬＳＩ用の論理回路データ（ネットリスト）を記憶するとともに、論理回路におけるマクロのうち、タイミング検証が必要なマクロについてのマクロ用のタイミング検証定義を記憶する。図９は、回路ファイル２に登録された回路データに対応する論理回路５０の一例を示す。論理回路５０はその下位階層に論理セル５１を備え、論理セル５１は素子５２，５３及びネットＮ１〜Ｎ５で形成されている。
【００３０】
回路ファイル２のデータは図７に示す手順で作成される。まず、ユーザ（回路設計者）は、テキスト形式からなるユーザ論理定義６３及びタイミング検証定義６４を作成する。ユーザ論理定義６３は、ライブラリファイル４中にある所望の機能（例えば、判定、ＮＡＮＤ）に関するデータを指定することにより作成される。
【００３１】
ＬＳＩの設計データは、階層構造を持つ。タイミング検証定義６４はＬＳＩの各階層におけるマクロ毎に定義される。このタイミング検証定義６４は、タイミング検証を開始するための開始条件、タイミング検証を継続するための継続条件及びタイミング検証を終了するための終了条件を含む。開始条件、継続条件及び終了条件は、タイミング検証を必要とするマクロの端子名及びその端子の信号のレベルにて定義される。例えば、図８に示すチップＣＰは、下位の階層にマクロＡ０２を備えている。マクロＡ０２は入力端子Ｉｎと論理セルＡ０１とを備えている。このマクロＡ０２についてタイミング検証が必要とされる場合には、マクロＡ０２の入力端子Ｉｎが、例えば、「Ａ０２♯Ｉｎ」として定義され、これが開始条件における端子名として指定される。また、タイミング検証定義６４は、タイミング検証の結果が正しいかどうかを判定するための規格値、タイミングエラーを生じる動作を定めたエラー動作定義及びそのエラーに対応するメッセージの定義を含む。
【００３２】
図７に示すように、図示しない回路データ作成装置は、回路データ作成プログラム６５に基づいて、ユーザ論理定義６３に指定されているデータをライブラリファイル４から読み出し、その読み出されたデータを論理回路データとして回路ファイル２に記憶する。タイミング検証定義６４は、回路データ作成プログラム６５によって論理シミュレータ１が取り扱える形式のデータに変換され、回路ファイル２に記憶される。
【００３３】
信号データファイル３は信号データ記憶手段を構成し、ＬＳＩの動作を調べるべくＬＳＩに入力される外部信号のデータ及びストローブ信号のデータを記憶する。
【００３４】
論理シミュレータ１は、回路ファイル２から読み出した論理回路データと、信号ファイル３から読み出した外部信号データとに基づいて、ＬＳＩの論理シミュレーションを実行する。
【００３５】
この論理シミュレーションでは、論理シミュレータ１にとっての内部時刻における外部信号の変化及び／又はＬＳＩ内部での信号変化がイベントとして定義され、かつ、登録される。データとしてのイベントは、信号の立ち上がりエッジ又は立ち下がりエッジのいずれであるかを示すデータと、そのイベントが回路のどの箇所に到達したかを示す着信箇所に関するデータと、その着信箇所への着信の時刻（内部時刻）に関するデータとを内包している。
【００３６】
特定の内部時刻における各イベントに基づいて、その特定時刻以後に発生するＬＳＩ内部での信号変化が計算され、その内部信号変化が新たなイベントとして登録される。その特定の内部時刻におけるすべてのイベントについての計算処理が終了すると、内部時刻が更新される。そして、更新された次の内部時刻に登録されているイベントについて、前記と同様の計算処理が行われる。
【００３７】
また、本実施例によれば、この論理シミュレーションの間において、指示された論理セルについてのタイミング検証も実行される。
次に、論理シミュレータ１の各構成部について説明する。
【００３８】
内部時刻記憶部７は、論理シミュレーションにおけるある特定の内部時刻（以下、現在時刻という）に関するデータを記憶する。内部時刻記憶部７は、現在時刻に関するデータを信号入力部５及びイベント処理・登録部９に提供する。
【００３９】
入力時刻記憶部６は、信号入力部５を介してプロセッシングユニット１５に入力される外部信号データにおける各信号変化（即ち、信号の立ち上がり又は立ち下がり）の時刻に関するデータを順次記憶する。入力時刻記憶部６は、そこに保持する信号の変化時刻のデータを信号入力部５及び時刻更新部８に出力する。
【００４０】
信号入力部５は、内部時刻記憶部７の現在時刻データと入力時刻記憶部６の信号変化時刻データとを入力する。現在時刻データと変化時刻データとが一致したときに、信号入力部５は外部信号データの信号変化（立ち上がり又は立ち下がりエッジ）のデータを入力し、これをイベント処理・登録部９に提供する。
【００４１】
ダミー素子生成部１１は、回路ファイル２及びライブラリファイル４と接続されるとともに、生成部１１には論理回路のタイミング検証を行うか否かを指示する検証指示信号が図示しないキーボード等の入力回路から入力される。この検証指示は論理回路の各階層におけるマクロについて行われる。
【００４２】
論理シミュレーションの開始時において、検証指示信号が入力されておらず、いずれの階層のマクロのタイミング検証も指示されていない場合に、ダミー素子生成部１１は回路ファイル２から論理回路データを読み出し、その読み出した論理回路データをメモリ１２に格納する。また、いずれの階層のタイミング検証も指示されていないため、ダミー素子生成部１１は回路ファイル２から前記タイミング検証定義６４に基づくデータは読み出さない。
【００４３】
また、論理シミュレーションの開始時において、検証指示信号が入力されて論理回路データの最上位階層（チップ）を含むいずれかの階層のマクロのタイミング検証が指示されているとする。この場合、ダミー素子生成部１１は回路ファイル２から論理回路データを読み出し、読み出された論理回路データをメモリ１２に格納する。また、ダミー素子生成部１１は、タイミング検証が指示された階層のマクロに含まれるすべての論理セルを検索し、その検索した各セルに対応するタイミング検証定義のデータをライブラリファイル４から読み出す。ダミー素子生成部１１はライブラリファイル４から読み出したタイミング検証定義のデータの開始条件、継続条件及び終了条件に定義された各端子に接続される端子を備えたダミー素子を生成し、そのダミー素子を論理回路データに付加してメモリ１２に格納する。例えば、図９に示すマクロとしての論理回路５０のタイミング検証が指示された場合、論理セル５３がタイミング検証すべき論理セルとして検索されると、ダミー素子生成部１１はその論理セル５３に対応するタイミング検証定義をライブラリファイル４から読み出す。そして、ダミー素子生成部１１はその検証定義に基づいてダミー素子５４を生成し、そのダミー素子５４を論理セル５３の入力ピン５３ａ，５３ｂ及び５３ｃに対して接続することによりダミー素子５４を論理セル５３に付加する。
【００４４】
さらに、ダミー素子生成部１１は、回路ファイル２に記憶された前記タイミング検証定義６４に基づくデータのうち、タイミング検証が指示された階層のマクロに対応するデータを読み出す。ダミー素子生成部１１はそのデータの開始条件、継続条件及び終了条件に定義された各端子に接続される端子を備えたダミー素子を生成し、そのダミー素子を前記マクロのデータに付加してメモリ１２に格納する。
【００４５】
イベント処理・登録部９は、メモリ１２から論理回路データを入力するとともに、信号入力部５から信号変化に関するデータを入力し、さらに、内部時刻記憶部７から現在時刻データを入力する。処理・登録部９は、現在時刻における外部信号の変化及び／又はＬＳＩ内部での信号変化をそれぞれイベントとしてイベントテーブル（図示せず）に設定する。更に、処理・登録部９は、現在時刻における各イベントに基づいて現在時刻以降に発生するＬＳＩの内部信号変化を計算するとともに、その新たに発生した内部信号変化を新たなイベントとして登録する。
【００４６】
処理・登録部９に備えられたイベントカウンタ１０は、イベントの数を管理しており、論理シミュレーションの開始以降に新たにイベントが発生するたびにイベントのカウント数を増加させ、処理・登録部９によってイベントが処理されるたびにカウント数を減少させる。そして、カウンタ１０は、時刻更新部８にそのときどきのイベント数に関するデータを出力する。
【００４７】
処理・登録部９が現在時刻において処理すべき全てのイベントの処理を終了すると、信号出力部１３は、処理・登録部９による処理結果と、その処理に関し期待される結果とを比較するストローブ処理を実行する。また、信号出力部１３は、信号変化の検出を外部装置へ通知するためのトレース処理を実行し、そのトレース処理に基づいて図示しないプリンタにトレースリスト１４を出力させる。
【００４８】
信号出力部１３による現在時刻における処理が終了した時点におけるイベントカウンタ１０のカウント値に応じて、時刻更新部８が時刻更新動作を行う。即ち、そのカウント値が零のとき、時刻更新部８は、内部時刻記憶部７の現在時刻を入力時刻記憶部６に記憶された次の時刻に更新する。カウント値が零以外の値のとき、時刻更新部８は、内部時刻記憶部７の現在時刻をその現在時刻に一定時間だけ加算した時刻に更新する。
【００４９】
次に、本実施例に従う論理シミュレータ１が、ある時刻において実施する処理を図２に示すメインルーチンに従って説明する。ステップ２１でイベント処理が処理・登録部９によって実行される。ステップ２２で前述のストローブ処理が信号出力部１３によって実行される。ステップ２３で信号変化の検出を外部装置へ通知するトレース処理が信号出力部１３によって実行される。
【００５０】
その後、ステップ２４で時刻更新部８は、イベントカウンタ１０のカウント値が零か否かを判定する。そして、このカウント値が零であるときには、ステップ２５にて現在の内部時刻が次の外部信号の変化時刻に更新される。カウント値が零以外の値であるときには、ステップ２６にて現在時刻がその現在時刻に一定時間だけ加算した時刻に更新される。
【００５１】
ステップ２７で処理・登録部９は、内部時刻が終了時刻に達したか否かを判定する。終了時刻でない場合、ステップ２１〜２７の処理が繰り返される。ステップ２７で終了時刻に達したと判定されると、図２に示す処理が終了する。
【００５２】
図３は、図２のステップ２１において処理・登録部９が実行するイベント処理の詳細を示す。この処理は、イベント法(event driven simulation method)に基づいている。ステップ３１で処理・登録部９は、そこへの信号入力があるか否か、即ち、外部信号データの信号変化があるか否かを判定する。ステップ３１の判定がイエスの場合、その入力信号がイベントとしてイベントテーブル（図示せず）に登録される（ステップ３２）。その後、イベントカウンタ１０のカウント値が「１」だけ増加される（ステップ３３）。ステップ３１〜３３の処理は信号入力の数だけ繰り返し実行される。
【００５３】
ステップ３４で処理・登録部９は、現在時刻において処理すべきイベントがあるか、即ち、入力信号又はＬＳＩ内部での信号変化があるか否かを判定する。そして、処理すべきイベントがある場合、ステップ３５でイベントカウンタ１０のカウント値が「１」だけ減少される。ステップ３６にてそのイベントに基づく信号変化演算が行われ、現在時刻以降に発生するＬＳＩの内部信号変化が計算される。メモリ１２内のデータとしての論理回路にタイミング検証を行うべきダミー素子が付加されている場合、ステップ３６において図４に示すタイミング検証処理が実行される。
ステップ３７で処理・登録部９は、ＬＳＩでの信号変化が発生し、その結果、新たにイベントが発生したか否かを判定する。新たにイベントが発生した場合、その発生したイベントが登録され（ステップ３８）、イベントカウンタ１０のカウント値が「１」だけ増加する（ステップ３９）。ステップ３４〜３９の処理が、現在時刻において処理すべきイベントの数だけ繰り返し実行される。
【００５４】
次に、処理・登録部９が実行するタイミング検証処理を図４に従って説明する。この検証処理は、前記メモリ１２内に蓄えられたデータとしての各ダミー素子について行われる。まず、ステップ４１でイベントが継続条件を満たしているか否かが判定される。継続条件が満たされていない場合、タイミング検証は初期状態（即ち、検証の待機状態）に移行する（ステップ４９）。ステップ４１で継続条件を満たしていると判定されると、ステップ４２においてイベントが開始条件を満たしているか否かが判定される。開始条件を満たしている場合、ステップ４３でそのイベントの時刻が測定開始時刻として登録され、処理・登録部９は測定モードに移行する。
【００５５】
ステップ４３での処理の後、又は、ステップ４２で開始条件を満たしていないと判定された場合、ステップ４４で、イベントが終了条件を満たしているか否かが判定される。終了条件を満たしていない場合、そのときの状態（測定モード又はタイミング検証の待機状態）が維持される。終了条件を満たしている場合、ステップ４５で、タイミングを測定中か否かが判定される。タイミングを測定中でない場合、そのときの状態（測定モード又はタイミング検証の待機状態）が維持される。
【００５６】
タイミングを測定中である場合、ステップ４６で、その測定結果が規格値と比較され、タイミングエラーが生じたか否かが判定される。タイミングエラーであると判定されると、ステップ４７でエラーメッセージを図示しないディスプレイに出力し、後述するようなエラー動作を実行する。ステップ４７での処理の後、又は、ステップ４６でタイミングエラーなしと判定されると、タイミング検証は初期状態（即ち、検証の待機状態）に移行する（ステップ４８）。
【００５７】
次に、本実施例においてタイミング検証がどのようにして行われるかを、例を用いて説明する。図１０は、タイミング検証が必要なクリア端子ＣＬＲ、クロック端子ＣＬＫ、データ端子ＤＡＴを持つフリップフロップ回路（以下、ＦＦという）５６の一例を示す。このようなＦＦ５６ではセットアップタイム及びホールドタイムのタイミング検証が必要となるため、ＦＦ５６に対してダミー素子が並列的に接続される。
【００５８】
図１１（ａ）にはＦＦ５６のセットアップタイムの検証が示されている。検証の開始条件はデータ端子ＤＡＴの信号が変化すること、継続条件はクリア端子ＣＬＲの信号がＨレベルであること、さらに、終了条件はクロック端子ＣＬＫの信号がＬレベルからＨレベルに立ち上がることである。セットアップタイムの測定値が規格値よりも小さい場合、エラー動作としてＦＦ５６の出力端子Ｑに‘Ｘ’信号の設定が行われる。また、エラー動作時には、セットアップタイム違反を警告するメッセージがディスプレイに出力される。
【００５９】
時刻ｔ１でクリア端子ＣＬＲの信号がＨレベルとなると、継続条件が満たされる。このとき、データ端子ＤＡＴの信号は変化しないので、開始条件は満たされず、現在の状態（タイミングの測定モード又はタイミング検証の待機状態）が保持される。
【００６０】
時刻ｔ２でデータ端子ＤＡＴの信号が変化する。このとき、クリア端子ＣＬＲの信号がＨレベルであるので、継続条件が満たされる。データ端子ＤＡＴの信号が変化しているので、開始条件が満たされる。そのため、この時刻ｔ２が計測開始時刻として登録され、測定モードが開始する。また、時刻ｔ２において、クロック端子ＣＬＫの信号がＨレベルであるため、終了条件が満たされず、タイミングの測定モードが保持される。
【００６１】
時刻ｔ３でクロック端子ＣＬＫの信号がＬレベルからＨレベルに変化する。このとき、クリア端子ＣＬＲの信号がＨレベルであるので、継続条件が満たされる。データ端子ＤＡＴの信号が変化していないので、開始条件は満たされない。クロック端子ＣＬＫの信号の立ち上がりのために、終了条件が満たされる。従って、測定モードが終了し、タイミング検証は待機状態となる。時刻ｔ２から時刻ｔ３までの時間がセットアップタイムとして求められる。時間（ｔ３−ｔ２）が規格時間未満であるとき、タイミングエラーと判定され、セットアップタイム違反のメッセージが出力されるとともに、出力端子Ｑに‘Ｘ’信号を設定するエラー動作が実行される。
【００６２】
図１１（ｂ）にはＦＦ５６のホールドタイムの検証が示されている。検証の開始条件はクロック端子ＣＬＫの信号がＬレベルからＨレベルに立ち上がること、継続条件はクリア端子ＣＬＲの信号がＨレベルであること、さらに、終了条件はデータ端子ＤＡＴの信号が変化することである。ホールドタイムの測定値が規格値よりも小さい場合、エラー動作としてＦＦ５６の出力端子Ｑに‘Ｘ’信号の設定が行われる。また、エラー動作時には、ホールドタイム違反を警告するメッセージがディスプレイに出力される。
【００６３】
時刻ｔ３でクロック端子ＣＬＫの信号がＬレベルからＨレベルに変化する。このとき、クリア端子ＣＬＲの信号がＨレベルであるので、継続条件が満たされる。クロック端子ＣＬＫの信号の立ち上がりのために開始条件が満たされる。そのため、この時刻ｔ３が計測開始時刻として登録され、測定モードが始まる。また、時刻ｔ３において、データ端子ＤＡＴの信号は変化しないため、終了条件は満たされず、測定モードが保持される。
【００６４】
時刻ｔ４でデータ端子ＤＡＴの信号が変化する。このとき、クリア端子ＣＬＲの信号がＨレベルであるので、継続条件が満たされる。クロック端子ＣＬＫの信号はＨレベルを維持するため、開始条件が満たされない。データ端子ＤＡＴの信号の変化のために終了条件が満たされ、測定モードが終了し、タイミング検証は待機状態となる。時刻ｔ３から時刻ｔ４までの時間がホールドタイムとして求められる。時間（ｔ４−ｔ３）が規格時間未満である場合、エラーと判定され、ホールドタイム違反のメッセージが出力されるとともに、出力端子Ｑへの‘Ｘ’信号の設定がエラー動作として実行される。
【００６５】
図１２は、２つの入力端子Ｉ，Ｉバーを持つ差動入力の論理セル５７の一例を示す。このような論理セル５７では、第１の端子Ｉに入力される信号のレベルと、第２の端子Ｉバーに入力される信号のレベルとが等しくかつオーバーラップする期間に関するタイミング検証が必要であり、そのために論理セル５７に対してダミー素子が付加される。
【００６６】
このオーバーラップ期間の検証の開始条件は、入力端子Ｉ，Ｉバーの信号のレベルが同一レベルであることであり、終了条件は、第１端子Ｉへの入力信号の反転信号のレベルと、第２端子Ｉバーの信号のレベルとが同一であること、即ち、第１及び第２端子Ｉ，Ｉバーの入力信号が互いに異なるレベルとなることである。この検証において、継続条件は存在しない。また、オーバーラップ期間の測定値が規格値よりも大きい場合、エラー動作として論理セル５７の一出力端子Ｏへの‘Ｘ’信号の設定が行われる。エラー動作時には、位相違反を警告するメッセージがディスプレイに出力される。
【００６７】
図１３には、論理セル５７の第１及び第２端子Ｉ，Ｉバーに入力される信号のオーバーラップ期間の検証が示されている。時刻ｔ７で第１入力端子Ｉの信号がＨレベルに変化し、第２入力端子Ｉバーの信号はＨレベルである。そのため、時刻ｔ７で開始条件が満たされ、この時刻ｔ７が計測開始時刻として登録され、測定モードが開始する。また、時刻ｔ７では、入力端子Ｉ，Ｉバーの信号レベルは同一であるから、終了条件は満たされず、測定モードが保持される。
【００６８】
時刻ｔ８で第２入力端子Ｉバーの信号がＨレベルからＬレベルに変化するため、終了条件が満たされる。それによって、測定モードが終了し、タイミング検証の待機状態となる。時刻ｔ７から時刻ｔ８までの時間がオーバーラップ期間として求められる。時間（ｔ８−ｔ７）が規格時間以上であると、エラーと判定され、位相違反のメッセージが出力されるとともに、出力端子Ｏに‘Ｘ’信号を設定するエラー動作が実行される。
【００６９】
時刻ｔ９，ｔ１０間、及び時刻ｔ１１，ｔ１２間の各オーバーラップ期間についても、同様にしてタイミング検証が実行される。
さらに、図１４は、入力端子Ｉ及び出力端子Ｏを有するクロックバッファ５８の一例を示す。このようなバッファ５８では、入力端子Ｉに供給されるクロック信号のＨ及びＬレベルの各パルスの幅に関するタイミング検証が必要であり、バッファ５８に対してダミー素子が付加される。
【００７０】
Ｌレベルのパルス幅の検証の開始条件は、入力端子Ｉの信号がＬレベルであることであり、終了条件は入力端子Ｉの信号がＨレベルとなることである。この検証において、継続条件は存在しない。また、パルス幅の測定値が規格幅未満であると、エラー動作として出力端子Ｏに対する‘Ｘ’信号の設定が行われる。エラー動作時には、Ｌパルス幅違反を警告するメッセージがディスプレイに出力される。
【００７１】
Ｈレベルパルスの幅の検証の開始条件は、入力端子Ｉの信号がＨレベルであることであり、終了条件は入力端子Ｉの信号がＬレベルとなることである。この検証にも継続条件は存在しない。パルス幅の測定値が規格幅未満であると、エラー動作として出力端子Ｏに対する‘Ｘ’信号の設定が行われる。エラー動作時には、Ｈパルス幅違反を警告するメッセージがディスプレイに出力される。
【００７２】
図１５には、このパルス幅の検証が示されている。時刻ｔ１３で入力端子Ｉの信号がＨレベルであるので、Ｈレベルのパルス幅検証の開始条件が満たされる。この時刻ｔ１３が計測開始時刻として登録され、測定モードが始まる。このとき、入力端子ＩがＨレベルであるため、終了条件は満たされず、測定モードが保持される。
【００７３】
時刻ｔ１４で入力端子Ｉの信号がＬレベルに変化するため、終了条件が満たされ、測定モードが終了する。時刻ｔ１３から時刻ｔ１４までの時間がパルス幅として求められる。パルス幅（ｔ１４−ｔ１３）が規格幅未満である場合、エラーと判定され、Ｈパルス幅違反のメッセージが出力されるとともに、出力端子Ｏに‘Ｘ’信号を設定するエラー動作が実行される。
【００７４】
時刻ｔ１４で入力端子Ｉの信号がＬレベルであるので、Ｌレベルのパルス幅の検証の開始条件が満たされる。この時刻ｔ１４が計測開始時刻として登録され、測定モードが始まる。また、入力端子ＩがＬレベルであるため、終了条件が満たされず、測定モードが保持される。
【００７５】
時刻ｔ１５で入力端子Ｉの信号がＨレベルに変化する。従って、終了条件が満たされ、測定モードが終了する。時刻ｔ１４から時刻ｔ１５までの時間がパルス幅として求められる。パルス幅（ｔ１５−ｔ１４）が規格幅未満であると、エラーと判定され、Ｌパルス幅違反のメッセージが出力されるとともに、出力端子Ｏに‘Ｘ’信号を設定するエラー動作が実行される。
【００７６】
このように本実施例では、図５，６に示すように、論理セルを構成する素子及びネットに関するデータからなるセル論理定義６０と、論理セルを構成しかつタイミング検証を必要とする素子に付加されるべきダミー素子に関するデータであるタイミング検証定義６１とが分離して準備される。そのため、従って、ユーザは、タイミング検証が必要な階層のマクロのみを検証指示信号にて指定することができ、結果として、論理シミュレーションの際に、論理シミュレータ１の内部で、タイミング検証が指定された階層のマクロのみに含まれる各論理セルに対応してダミー素子が生成される。そのため、論理シミュレーションの対象となる論理回路データの数が最小化される。このことは、論理シミュレーションを高速で行うことを可能とし、ＬＳＩの論理設計期間を短縮することができる。
【００７７】
また、本実施例では、図７に示すように、マクロ用のタイミング検証定義６４をユーザ（回路設計者）に解放することによって、回路のユーザ論理定義６３と、ユーザが取り扱うことができるマクロ用のタイミング検証定義６４とが分離して準備される。従って、ユーザは、ＬＳＩを構成する各階層のマクロ毎にタイミング検証定義６４を指定することによって各マクロに１つのダミー素子データを付加でき、そのマクロ用ダミー素子データに基づいてマクロのタイミング検証を行うことができる。また、複数のマクロについてタイミング検証定義６４が作成されたとしても、論理シミュレーションの際に、検証指示信号にて指定されたマクロについてのみダミー素子生成部１１によってダミー素子が生成される。このことによっても、論理シミュレーションの対象となる論理回路データの数の増加を抑制でき、論理シミュレーションを高速で行うことを可能とし、ＬＳＩの論理設計期間を短縮することができる。
【００７８】
また、マクロ用のタイミング検証定義６４をユーザに解放することによって、セル（ライブラリファイル）の設計者が管理すべきダミー素子の種類の増加を抑制することができ、ダミー素子の管理が容易になる。
【００７９】
さらに、本実施例では、論理シミュレータの内部にイベントがない場合、イベント処理の実行が阻止される。このことは、論理シミュレーションに要する時間を短縮化することができる。
【００８０】
なお、上記実施例では、回路ファイル２には論理回路データ（ネットリスト）及びマクロ用のタイミング検証定義を記憶したが、回路ファイル２には論理回路データのみを記憶するようにしてもよい。
【００８１】
上記の実施例から把握できる請求項以外の技術的思想について、以下に記載する。
（イ）前記セル用タイミング検証定義は、タイミング検証を開始する条件、タイミング検証を継続する条件、及び、タイミング検証を終了する条件を含む請求項１又は３に記載の論理シミュレーション方法。この構成によれば、セル用タイミング検証定義を容易に作成できる。
【００８２】
（ロ）前記セル用タイミング検証定義は、タイミング検証の結果が正しいかどうかを判定するための規格値、タイミングにエラーがある場合の処理手順、及び、エラーメッセージに関する情報を含む請求項１又は３に記載の論理シミュレーション方法。
【００８３】
（ハ）前記マクロ用タイミング検証定義は、タイミング検証を開始する条件、タイミング検証を継続する条件、及び、タイミング検証を終了する条件を含む論理シミュレーション方法。この構成によれば、マクロ用タイミング検証定義を容易に作成できる。
【００８４】
（ニ）前記マクロ用タイミング検証定義は、タイミング検証の結果が正しいかどうかを判定するための規格値、タイミングにエラーがある場合の処理手順、及び、エラーメッセージに関する情報を含む請求項２又は３に記載の論理シミュレーション方法。
【００８５】
（ホ）前記セル用タイミング検証定義は、タイミング検証を開始する条件、タイミング検証を継続する条件、及び、タイミング検証を終了する条件を含む請求項４，６，７のいずれか一項に記載の論理シミュレータ。この構成によれば、セル用タイミング検証定義を容易に作成できる。
【００８６】
（ヘ）前記セル用タイミング検証定義は、タイミング検証の結果が正しいかどうかを判定するための規格値、タイミングにエラーがある場合の処理手順、及び、エラーメッセージに関する情報を含む請求項４，６，７のいずれか一項に記載の論理シミュレータ。
【００８７】
（ト）前記マクロ用タイミング検証定義は、タイミング検証を開始する条件、タイミング検証を継続する条件、及び、タイミング検証を終了する条件を含む論理シミュレータ。この構成によれば、マクロ用タイミング検証定義を容易に作成できる。
【００８８】
（チ）前記マクロ用タイミング検証定義は、タイミング検証の結果が正しいかどうかを判定するための規格値、タイミングにエラーがある場合の処理手順、及び、エラーメッセージに関する情報を含む請求項５〜７のいずれか一項に記載の論理シミュレータ。
【００８９】
【発明の効果】
以上詳述したように請求項１の発明は、セル用のタイミング検証定義を論理セルと分離することにより、タイミング検証の実行が指示されない場合、論理シミュレーションの対象となる回路データの増加を抑制でき、論理シミュレーションの高速化を図ることができる。
【００９０】
請求項２の発明は、マクロ用のタイミング検証定義を回路設計者に解放することによって、セル設計者が管理すべきダミー素子の種類の増加を抑制することができる。また、同じくマクロ用のタイミング検証定義を回路設計者に解放することによって、回路設計者が所望するマクロのタイミング検証を行うためのダミー素子を生成できる。
【００９１】
請求項３の発明は、請求項１の発明の効果に加えて、請求項２の発明の効果がある。
請求項４の発明は、請求項１の発明と同様の効果がある。
【００９２】
請求項５の発明は、請求項２の発明と同様の効果がある。
請求項６の発明は、請求項４の発明の効果に加えて、請求項５の発明の効果がある。
【図面の簡単な説明】
【図１】一実施例の論理シミュレータを示すブロック図
【図２】図１の論理シミュレータによる一時刻の処理を示すフローチャート
【図３】図１のイベント処理・登録部による処理を示すフローチャート
【図４】イベント処理・登録部のタイミング検証処理を示すフローチャート
【図５】図１のライブラリファイルの作成手順を示す説明図
【図６】図１のライブラリファイルに格納されたデータの構成を示す概念図
【図７】図１の回路ファイルの作成手順を示す説明図
【図８】ＬＳＩの階層を示すレイアウト図
【図９】論理回路の一例を示すレイアウト図
【図１０】クリア端子付きのフリップフロップ回路の説明図
【図１１】（ａ）は図１０のフリップフロップ回路のセットアップタイムの検証を示すタイムチャート、（ｂ）は図１０のフリップフロップ回路のホールドタイムの検証を示すタイムチャート
【図１２】差動入力用の論理セルを示す説明図
【図１３】論理セルの同相信号の継続期間の検証を示すタイムチャート
【図１４】クロックバッファを示す説明図
【図１５】クロックバッファのパルス幅の検証を示すタイムチャート
【図１６】従来のライブラリファイルの作成手順を示す説明図
【図１７】図１６のライブラリファイルに格納されたデータの構成を示す概念図
【図１８】従来の方法で設計されたセルの一例を示すレイアウト図
【図１９】従来の方法に従い真理値表化されたセルの一例のレイアウト図
【符号の説明】
２  データベース及び回路データ記憶手段を構成する回路ファイル
３  信号データ記憶手段としての信号データファイル
４  データベースを構成するライブラリファイル
６  入力時刻記憶部
７  内部時刻記憶部
８  時刻更新部
９  イベント処理・登録部
１１  ダミー素子生成部
１５  プロセッシングユニット
【図１】
0003654941.tif 000002
【図２】
0003654941.tif 000003
【図３】
0003654941.tif 000004
【図４】
0003654941.tif 000005
【図５】
0003654941.tif 000006
【図６】
0003654941.tif 000007
【図７】
0003654941.tif 000008
【図８】
0003654941.tif 000009
【図９】
0003654941.tif 000010
【図１０】
0003654941.tif 000011
【図１１】
0003654941.tif 000012
【図１２】
0003654941.tif 000013
【図１３】
0003654941.tif 000014
【図１４】
0003654941.tif 000015
【図１５】
0003654941.tif 000016
【図１６】
0003654941.tif 000017
【図１７】
0003654941.tif 000018
【図１８】
0003654941.tif 000019
【図１９】
0003654941.tif 000020