(57)【要約】【課題】タイミング・チェックにおいて発生する大量の擬似エラーを抑制し、きめ細かな設定が可能な論理シミュレータを得ること。【解決手段】論理シミュレータは、遅延シミュレーション用標準セルライブラリ３０に規定されているタイミング制約の許容値を違反した場合、タイミングエラー制約指定情報５０の処理にしたがって、遅延付きネットリスト２０で定義されるデジタル回路のセルの出力およびエラーメッセージ７０に出力するエラーメッセージを決定する。【選択図】　　　図１
2004030186.tif 000002
【特許請求の範囲】
【請求項１】
セルを定義するためのセル情報とセル間の接続を示すセル接続情報と該セル接続情報のゲート遅延および配線遅延とが定義されている遅延付きネットリストの検証を行う論理シミュレータにおいて、
遅延シミュレーション用標準セルライブラリに規定されているタイミング制約の許容値を違反した場合の処理を指定するタイミングエラー制約指定情報を定義可能とし、
前記タイミング制約の許容値を違反したセルを検出した場合、前記タイミングエラー制約指定情報の処理にしたがって、前記遅延付きネットリストで定義されるデジタル回路のセルの出力およびエラーメッセージの出力を決定することを特徴とする論理シミュレータ。
【請求項２】
前記タイミングエラー制約指定情報に特定のセルの端子を指定した場合、該特定のセルの端子で検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないことを特徴とする請求項１に記載の論理シミュレータ。
【請求項３】
前記タイミングエラー制約指定情報に特定のセルの端子を指定した場合、該特定のセルの端子にタイミング制約の許容値の違反を検出すると該特定のセルの出力のみを不定にして次段のセルに伝搬させることを特徴とする請求項１または２に記載の論理シミュレータ。
【請求項４】
前記タイミングエラー制約指定情報に所定時間を指定した場合、該所定時間内に発生したタイミング制約の許容値の違反を全て無効とし、エラーメッセージを出力しないことを特徴とする請求項１〜３の何れか一つに記載の論理シミュレータ。
【請求項５】
前記タイミングエラー制約指定情報に特定のセルの端子および所定時間を指定した場合、該所定時間内に特定のセルの端子について検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないことを特徴とする請求項１〜４の何れか一つに記載の論理シミュレータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路のシミュレータに関するものであり、特に、非同期回路において発生するタイミングエラーを考慮した論理シミュレータに関するものである。
【０００２】
【従来の技術】
デジタル回路は、コンピュータだけでなく、テレビ、ビデオ、オーディオなどの一般家電にも広く用いられている。デジタル回路技術は、急激に進歩し、複雑化の一途をたどっている。そのため、人手による回路図作成に基づいた論理設計は不可能となり、ＶＨＤＬ（Ｖｈｓｉｃ　Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）やＶｅｒｉｌｏｇ−ＨＤＬ（Ｖｅｒｉｌｏｇ　Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）などのハードウエア記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）と論理合成プログラムを用いたトップダウン設計手法による回路設計が常識となっている。トップダウン設計は、デジタル回路全体の動作や機能を決定し、徐々に回路化していく回路設計手法である。
【０００３】
図９のフローチャートを参照して、トップダウン設計による回路設計の手順を説明する。図９において、９０はＲＴＬ論理シミュレーションで検証されたＲＴＬ（ｒｅｇｉｓｔｅｒ　ｔｒａｎｓｆｅｒ　ｌｅｖｅｌ）記述、９１は論理合成プログラムで論理合成されたネットリスト、９２は自動配置配線を行いネットリスト９１に配線遅延が付加された遅延付きネットリスト、９３は遅延シミュレーションを実行した時に発生したエラーメッセージ、９４は論理合成用標準セルライブラリ、９５は配置配線用標準セルライブラリ、９６は遅延シミュレーション用標準セルライブラリである。論理合成用標準セルライブラリ９４、配置配線用標準セルライブラリ９５、遅延シミュレーション用標準セルライブラリ９６は、たとえば、半導体集積回路の場合は、その半導体集積回路を製造するプロセスのライブラリであり、半導体メーカなどから供給される。
【０００４】
設計者は、論理合成可能なＲＴＬ論理回路をＨＤＬで記述し回路設計を行う（ステップＳ１００）。ＨＤＬで記述したＲＴＬ論理回路が所望の機能を実現しているかＲＴＬ論理シミュレーションを行う（ステップＳ１１０）。シミュレータを用いてＲＴＬ論理回路を検証し、所望の機能が実現されるまで、ＲＴＬ論理回路の修正、ＲＴＬ論理シミュレーションを繰り返す（ステップＳ１００〜Ｓ１２０）。
【０００５】
設計者は、ＲＴＬ論理回路が所望の機能を実現していると判断すると、論理合成プログラムを用いて論理合成を行う（ステップＳ１３０）。論理合成プログラムは、論理合成用標準セルライブラリ９４に基づいて、ＲＴＬ論理シミュレーションを行った回路ＲＴＬ記述９０の論理合成を行う。論理合成プログラムは、ＲＴＬ記述９０の回路を論理変換し、論理合成用標準セルライブラリ９４に用意されているセルのみを用いて回路を構成する。論理合成プログラムは、論理合成用標準セルライブラリ９４に登録されているセルとその入出力端子の接続情報であるネットリスト９１を出力する。
【０００６】
論理合成が終了すると、設計者は、自動配置配線プログラムを用いて自動配置配線を行う（ステップＳ１４０）。自動配置配線プログラムは、配置配線用標準セルライブラリ９５に基づいて、ネットリスト９１のセルの配置配線を行う。自動配置配線プログラムは、例えば、設計者によって指定されたタイミング制約を満足するようにネットリスト９１に定義されているセルの配置配線を行う。自動配置配線プログラムは、配線長から、それぞれの配線容量や抵抗値を抽出し、遅延計算プログラムは、これら配線容量や抵抗値を元にネットリスト９１に定義されている接続情報に対応した配線の配線遅延を算出する（ステップＳ１５０）。遅延計算プログラムは、算出した配線遅延を付加した遅延付きネットリスト９２を出力する。
【０００７】
設計者は、論理シミュレータを用いて、遅延シミュレーションを行う（ステップＳ１６０）。論理シミュレータは、遅延シミュレーション用標準セルライブラリ９６に基づき、遅延付きネットリスト９２で定義されている回路のセル遅延および配線遅延を含めたシミュレーションを実行し、シミュレーション結果とエラーメッセージ９３を出力する。
【０００８】
エラーメッセージ９３には、タイミング・チェックを実行した時に、遅延シミュレーション用標準セルライブラリ９６に定義されているセットアップ・タイム，ホールド・タイム，リカバリ・タイム，リムーバル・タイム，パルス幅などの許容値を満たしていない場合に出力される。エラーメッセージ９３は、例えば、エラーの種類、発生したセル名とその端子名、タイミングエラーを検出した信号の変化時間などの情報が含まれている。設計者は、エラーメッセージ９３の情報に基づいてそのタイミングエラーが回路動作に影響があるか否かを判断する。エラーメッセージ９３には、回路動作に影響があるタイミングエラー（真のエラー）については、自動配置配線、論理合成、ＲＴＬ記述の修正などの工程に戻って回路や配線長を変更する必要があるが、回路動作に影響がないタイミングエラー（擬似エラー）についてはその必要が無い。したがって、エラーメッセージ９３に出力されるタイミングエラーが擬似エラーのみになるまで自動配置配線、論理合成、ＲＴＬ記述の修正などの工程を繰り返し、回路設計を完了する（ステップＳ１７０）。
【０００９】
このように、トップダウン設計では、論理合成プログラムや自動配置配線プログラムを用いることで、回路設計期間を短縮することが可能となった。特に、論理合成プログラムを用いることで、機能設計が終了すると論理回路のネットリスト９１が生成されるため、設計者自身が論理設計を行い、ネットリストを作成する必要が無くなった。これにより、回路設計において設計者が行う作業は、シミュレータを用いた検証、すなわち、ＲＴＬ記述９０の回路が所望の動作をしているかの判断と、遅延シミュレーションによる遅延付きネットリスト９２がＲＴＬ記述９０の回路と同一の動作を実現しているかの判断と、タイミング・チェック時に発生するタイミングエラーが真のエラーであるのか擬似エラーであるのかの判断がほとんどとなる。
【００１０】
【発明が解決しようとする課題】
しかしながら、論理合成プログラムは、非同期信号の最適化が行われないため、遅延シミュレーションにおいてタイミング・チェックを行うと、たとえば、メタステーブルや非同期セット／リセットに起因するタイミングエラーの発生を避けることはできない。また、遅延シミュレーションを行う従来の論理シミュレータは、これらのタイミングエラーが擬似エラーであるのか真のエラーであるのかを判定することはできない。そのため、遅延シミュレーション用標準セルライブラリ９６に定義されているセットアップ・タイム，ホールド・タイム，リカバリ・タイム，リムーバル・タイム，パルス幅などの許容値を満たしていない場合にはすべてエラー情報をエラーメッセージ９３に出力する。したがって、設計者は、大量のエラー情報を１つずつ真のエラーであるのか、擬似エラーであるのかを判断しなければならない。すなわち、大量の擬似エラーが発生するために、擬似エラーと真のエラーとの識別を困難にするという問題があった。
【００１１】
また、従来の論理シミュレータは、タイミング・チェック時のエラーメッセージの抑制や、タイミングエラーが発生した場合、その出力を不定“Ｘ”として出力するか否かの設定は、回路全体に対する指定であり、回路の一部という詳細な指定を行うことはできないという問題もあった。すなわち、不定の出力を指定すると、タイミングエラーが発生した全てのセルの出力が“Ｘ”として次段のセルに伝搬されてしまっていた。
【００１２】
この発明は上記に鑑みてなされたもので、タイミング・チェックにおいて発生する大量の擬似エラーを抑制し、きめ細かな設定が可能な論理シミュレータを得ることを目的としている。
【００１３】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかる論理シミュレータは、セルを定義するためのセル情報とセル間の接続を示すセル接続情報と該セル接続情報のゲート遅延および配線遅延とが定義されている遅延付きネットリストの検証を行う論理シミュレータにおいて、遅延シミュレーション用標準セルライブラリに規定されているタイミング制約の許容値を違反した場合の処理を指定するタイミングエラー制約指定情報を定義可能とし、前記タイミング制約の許容値を違反したセルを検出した場合、前記タイミングエラー制約指定情報の処理にしたがって、前記遅延付きネットリストで定義されるデジタル回路のセルの出力およびエラーメッセージの出力を決定することを特徴とする。
【００１４】
この発明によれば、論理シミュレータは、遅延シミュレーション用標準セルライブラリに規定されているタイミング制約の許容値を違反した場合、タイミングエラー制約指定情報の処理にしたがって、遅延付きネットリストで定義されるデジタル回路のセルの出力およびエラーメッセージの出力を決定するようにしている。
【００１５】
つぎの発明にかかる論理シミュレータは、上記の発明において、前記タイミングエラー制約指定情報に特定のセルの端子を指定した場合、該特定のセルの端子で検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないことを特徴とする。
【００１６】
この発明によれば、タイミングエラー制約指定情報に予め擬似エラーが発生するとわかっている特定のセルの端子を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定されたセルの端子において検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないようにしている。
【００１７】
つぎの発明にかかる論理シミュレータは、上記の発明において、前記タイミングエラー制約指定情報に特定のセルの端子を指定した場合、該特定のセルの端子にタイミング制約の許容値の違反を検出すると該特定のセルの出力のみを不定にして次段のセルに伝搬させることを特徴とする。
【００１８】
この発明によれば、タイミングエラー制約指定情報に特定のセルの端子を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定されたセルの端子においてタイミング制約の許容値の違反が検出された場合に、そのセルの出力を不定にして次段のセルに伝搬させるようにしている。
【００１９】
つぎの発明にかかる論理シミュレータは、上記の発明において、前記タイミングエラー制約指定情報に所定時間を指定した場合、該所定時間内に発生したタイミング制約の許容値の違反を全て無効とし、エラーメッセージを出力しないことを特徴とする。
【００２０】
この発明によれば、タイミングエラー制約指定情報に所定時間の指定をしておき、論理シミュレータは、タイミングエラー制約指定情報に指定された所定時間内に発生したタイミング制約の許容値の違反を全て無効とし、エラーメッセージを出力しないようにしている。
【００２１】
つぎの発明にかかる論理シミュレータは、上記の発明において、前記タイミングエラー制約指定情報に特定のセルの端子および所定時間を指定した場合、該所定時間内に特定のセルの端子について検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないことを特徴とする。
【００２２】
この発明によれば、タイミングエラー制約指定情報に特定のセルの端子および所定時間を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定された所定時間内に特定のセルの端子について検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないようにしている。
【００２３】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる論理シミュレータの好適な実施の形態を詳細に説明する。
【００２４】
実施の形態１．
図１〜図８を用いて本発明の実施の形態１を説明する。図１は、実施の形態１の論理シミュレータの構成図である。図１において、１０は論理シミュレータ、２０は遅延付きネットリスト、３０は遅延シミュレーション用標準セルライブラリ、４０はテストベンチ、５０はタイミングエラー制約指定情報、６０はシミュレーション結果、７０はエラーメッセージである。
【００２５】
遅延付きネットリスト２０は、上述したトップダウン設計手順にしたがって遅延計算プログラムが生成したネットリストである。具体的には、セルを定義するセル情報と、セル間の接続を示すセル接続情報と、セル接続情報に対応したゲート遅延および配線遅延情報が定義される。配線遅延は、自動配置配線プログラムが配置配線を行った配線長からそれぞれの配線容量や抵抗値を抽出して算出される。
【００２６】
遅延シミュレーション用標準セルライブラリ３０には、遅延シミュレーションを実行するために必要なセルのタイミング情報とリカバリ・タイム，リムーバル・タイム，セットアップ・タイム，ホールド・タイム，パルス幅などのタイミング制約の許容値が記述される。タイミング制約は、フリップフロップやラッチなど状態保持回路の入力端子毎に登録される。
【００２７】
ここで、図２に示した非同期リセットＲを有するフリップフロップを例にあげて、タイミング制約について説明する。このフリップフロップのリセットＲはローアクティブ、すなわち、リセットＲに“Ｌ”が入力されると、フリップフロップはリセットされる。リセットＲが“Ｈ”の場合、クロックＴの立ち上がりエッジでデータＤの信号を保持し、その信号を出力Ｑに出力する。
【００２８】
リカバリ・タイムは、図３に示すように、リセットＲがネゲートに変化（この場合は“Ｌ”から“Ｈ”）してから、クロックＴが有効になるまでに必要な時間ΔＴｍｉｎである。フリップフロップは、リセットＲの立ち上がりエッジとクロックＴの立ち上がりエッジが、このリカバリ・タイム未満である場合、データＤの値が保持する動作の保証がない。すなわち、リセットＲとクロックＴの信号の関係がリカバリ・タイムの許容値を満たしていなければ、フリップフロップは不安定になる。
【００２９】
リムーバル・タイムは、リセットＲがアサートに変化（この場合“Ｈ”から“Ｌ”）してから、クロックＴの立ち上がりエッジが無効になるまでに必要な時間である。リカバリ・タイム同様に、リセットＲとクロックＴの信号の関係がリムーバル・タイムの許容値を満たしていなければ、フリップフロップの動作は不安定になる。
【００３０】
セットアップ・タイムおよびホールド・タイムは、クロックＴとデータＤのタイミング関係についての制約である。フリップフロップは、クロックＴの立ち上がりエッジでデータＤの信号を保持する。このとき、フリップフロップは、データＤがクロックＴの立ち上がりエッジの前後一定時間安定していなければ、データＤの信号を保持する保証がない。セットアップ・タイムは、クロックＴの立ち上がりエッジに先立ってデータＤが確定していなければいけない時間である。また、ホールド・タイムは、クロックＴの立ち上がりエッジからデータＤの信号を保持しておかなければならない時間である。セットアップ・タイムおよびホールド・タイムが許容値を満たしていなければ、フリップフロップの動作は不安定になる。
【００３１】
また、リセットＲが有効に動作するためには、図５に示すように一定時間Δｔｍｉｎのパルス幅が必要である。このリセットＲのアサート（この場合“Ｌ”）の時間がΔｔｍｉｎ未満であると、リセットＲが有効になる保証がない。すなわち、フリップフロップの動作は不安定になる。同様に、クロックＴについても一定のパルス幅が必要である。
【００３２】
図４は、リセットＲに対するリカバリ・タイムのタイミング制約の記述例を示している。図４の場合は、リカバリ・タイムの許容値を１．０ｎｓとしている。図６は、リセットＲのパルス幅のタイミング制約の記述例を示している。図６の場合は、リセットＲのパルス幅の許容値を１．０ｎｓとしている。
【００３３】
このように遅延シミュレーション用標準セルライブラリ３０の状態保持回路には、リカバリ・タイム，リムーバル・タイム，セットアップ・タイム，ホールド・タイム，パルス幅などのタイミング制約の許容値が記述される。
【００３４】
テストベンチ４０には、遅延付きネットリスト２０に定義されている論理回路に対してシミュレーション用の入力信号や観測する出力信号などが記述される。
【００３５】
タイミングエラー制約指定情報５０には、論理シミュレータ１０がシミュレーションを実行する場合の動作モードと、タイミング・チェックを実行するか否かと、タイミング・チェックを実行した場合に発生するタイミングエラーを無効にするインスタンス名を指定する。たとえば、図７に示す自己帰還形非同期リセット回路の場合、フリップフロップ８０の出力Ｑが“Ｈ”に変化すると、インバータ８１を介してリセットＲに“Ｌ”が入力される。そして、リセットＲが有効になると出力Ｑは“Ｌ”になり、インバータ８１を介してリセットＲには“Ｈ”が入力される。この場合、リセットＲが“Ｌ”である期間は、遅延シミュレーション用標準セルライブラリ３０に規定されているリセットＲのパルス幅のタイミング制約に違反する。しかし、この違反は、フリップフロップ８０がリセットを正常に感知したために発生する。すなわち、パルス幅のタイミング制約の許容値に違反していても、フリップフロップ８０の動作は正しく行われている。しがたって、リセットＲに対するパルス幅のタイミングエラーは擬似エラーである。
【００３６】
また、図８に示すメタステーブル対策を施している回路についても同様である。クロック入力に対して非同期入力の場合は、フリップフロップ８２のセットアップ・タイムおよびホールド・タイムの許容値に違反する可能性が大きい。このような場合、フリップフロップ８２の出力Ｑがｔｈｒｅｓｈｏｌｄ付近の電位にとどまるメタステーブルが発生する。２つのフリップフロップ８２とフリップフロップ８３を直列に接続し、後段のフリップフロップ８３のクロックＴにはインバータ８４を介してフリップフロップ８２のクロックＴと逆相のクロックを入力することで、メタステーブルの発生を実用上影響が無いようにすることができる。すなわち、メタステーブル対策を施しているフリップフロップ８２に関してセットアップ・タイムおよびホールド・タイムのタイミングエラーは回路の動作に影響のない擬似エラーである。
【００３７】
タイミングエラー制約指定情報５０には、このように予め擬似エラーが発生することがわかっているインスタンス名を指定する。たとえば、図７に示したフリップフロップ８０のインスタンス名がＣＥＬＬ１の場合、リセットＲに対するタイミングエラーを無効にするためには「ｉｇｎｏｒｅ＿ｔｉｍｉｎｇ＿ｃｈｅｃｋ＿ｏｎ　−ｉｎｓｔ　“ＣＥＬＬ１”　−ｐｉｎ　“Ｒ”」と記述する。また、図８のフリップフリップ８２のインスタンス名がＣＥＬＬ２の場合、タイミングエラーを無効にするためには、「ｉｇｎｏｒｅ＿ｔｉｍｉｎｇ＿ｃｈｅｃｋ＿ｏｎ
−ｉｎｓｔ　“ＣＥＬＬ２”　−ｐｉｎ　“Ｔ”」と記述する。
【００３８】
つぎに、実施の形態１の論理シミュレータ１０の動作について説明する。論理シミュレータ１０は、テストベンチ４０に記述されている入力パタンにより遅延付きネットリスト２０の外部入力端子の値を検出する。検出した値が変化すると、論理シミュレータ１０は、入力端子が変化したセルに対して遅延シミュレーション用標準セルライブラリ３０に登録されているセル固有の遅延に基づきタイミング演算を行う。論理シミュレータ１０は、タイミング演算で算出された時間をおいて、入力が変化したセルの論理演算を行い、そのセルの論理出力を決定する。論理出力が決定すると、遅延付きネットリスト２０の接続情報に基づき、論理出力が決定したセルのゲート遅延演算を行う。ゲート遅延およびそのセルの出力信号の配線遅延時間をおいて、論理出力が決定したセルが接続されているセルの入力端子の値を変化させる。
【００３９】
論理シミュレータ１０は、タイミングエラー制約指定情報５０においてタイミング・チェックの実行が指定されている場合、遅延演算が終了した時点で、遅延シミュレーション用標準セルライブラリ３０にタイミング制約の許容値が登録されているセルに対して、タイミング制約の許容値の違反があるか否かを判定する。具体的には、たとえば、図７のフリップフロップ８０のリセットＲの値が“Ｈ”から“Ｌ”に変化した時間とクロックＴが“Ｌ”から“Ｈ”に変化した時間の差が遅延シミュレーション用標準セルライブラリ３０に登録されているリカバリ・タイムの許容値１．０ｎｓ以上あるかなどの判定をおこなう。タイミング制約の許容値に違反しているセルを検出した場合、論理シミュレータ１０は、エラーメッセージ７０にエラーの種類、発生したセル名とその端子名、タイミングエラーを検出した信号の変化時間などの情報を出力する。このときに、論理シミュレータ１０は、タイミングエラーが発生したセルが、タイミングエラー制約指定情報５０に指定されているインスタンス名の端子に関するタイミングエラーか否かを判定する。そして、タイミングエラー制約指定情報５０に指定されているインスタンス名の端子のタイミングエラー（この場合、インスタンス名Ｃｅｌｌ１のリセットＲのタイミングエラーとインスタンス名Ｃｅｌｌ２のクロックＴのタイミングエラー）であった場合、論理シミュレータ１０は、そのタイミングエラーを無効にしてエラーメッセージ７０にタイミングエラーを出力しない。
【００４０】
このように論理シミュレータ１０は、外部入力端子の値が変化すると、タイミング演算、論理演算、遅延演算を繰り返して、遅延付きネットリスト２０の接続情報に基づいて、回路を構成しているセルに信号の変化を伝達して外部出力端子の値を決定する。そして、その値をシミュレーション結果６０に出力する。論理シミュレータ１０は、上述した動作をテストベンチ４０の入力パタンが終了するまで繰り返す。
【００４１】
以上説明したようにこの実施の形態１では、予め擬似エラーが発生するとわかっているセルのインスタンス名と端子名をタイミングエラー制約指定情報５０に登録しておき、論理シミュレータ１０は、タイミングエラーを検出した場合、そのタイミングエラーが、タイミングエラー制約指定情報５０に登録されているセルの場合にはタイミングエラーの情報をエラーメッセージ７０に出力しないようにしているため、エラーメッセージ７０に出力されるタイミングエラーの情報の擬似エラーを削減することができる。これにより、設計者がエラーメッセージ７０に出力されるエラーメッセージから真のエラーと擬似エラーの識別をしやすくなり、設計効率を上げることができる。
【００４２】
実施の形態２．
実施の形態１では、予め擬似エラーが発生するとわかっているセルのインスタンス名と端子名をタイミングエラー制約指定情報５０に登録しておき、論理シミュレータ１０は、タイミングエラーを検出した場合、そのタイミングエラーが、タイミングエラー制約指定情報５０に登録されているセルの場合にはタイミングエラーの情報をエラーメッセージ７０に出力しないようにした。しかし、エラーメッセージ７０に出力されるタイミングエラー情報が真のエラーであるのか擬似エラーであるのか判定が困難な場合がある。
【００４３】
この実施の形態２では、このような問題を解決するために、遅延付きネットリスト２０の特定のセルに対してのみ、タイミングエラーが発生した場合に、その出力を不定にするか否かを指定するものである。
【００４４】
実施の形態２の論理シミュレータの構成は図１に示すものと同様となるのでここではその説明を省略する。
【００４５】
タイミングエラー制約指定情報５０には、論理シミュレータ１０がシミュレーションを実行しタイミングエラーが発生した場合に、その出力を不定にするか否かを指定する。この指定は、回路全体に対してタイミングエラーが発生した場合にそれらの出力を全て不定“Ｘ”を伝搬するようにするか否かと、回路全体に対しては不定“Ｘ”を伝搬しないようにして、特定のセルのみ不定“Ｘ”を伝搬するような指定が可能である。特定のセルのみ不定“Ｘ”を伝搬する指定は、具体的には、たとえば、図７に示したフリップフロップ８０のインスタンス名がＣｅｌｌ１の場合「Ｘ＿ｏｕｔｐｕｔ＿ｏｎ“Ｃｅｌｌ１”−ｗｉｔｈ＿ｐｉｎ　“Ｒ”」と記述する。
【００４６】
つぎに、実施の形態２の論理シミュレータ１０の動作について説明する。論理シミュレータ１０は、実施の形態１と同様に、テストベンチ４０に記述されている入力パタンにより遅延付きネットリスト２０の外部入力端子の値を検出し、タイミング演算，論理演算，遅延演算を行う。
【００４７】
論理シミュレータ１０は、タイミングエラーを検出した場合、タイミングエラー情報をエラーメッセージ７０に出力し、タイミングエラー制約指定情報５０の指定にしたがってタイミングエラーが発生したセルの出力を決定する。すなわち、タイミングエラー制約指定情報５０において回路全体で不定“Ｘ”を伝搬するように指定されている場合にはタイミングエラーが発生したセルの出力を不定“Ｘ”にして次段のセルに伝搬する。また、特定のセルのみ不定“Ｘ”を伝搬するよう指定されている場合は、指定されたセルにタイミングエラーが発生した場合のみ、その出力を不定“Ｘ”にして次段のセルに伝搬する。具体的には、タイミングエラー制約指定情報５０に「Ｘ＿ｏｕｔｐｕｔ＿ｏｎ“Ｃｅｌｌ１”−ｗｉｔｈ＿ｐｉｎ　“Ｒ”」が指定されていた場合、インスタンス名Ｃｅｌｌ１のリセットＲにタイミングエラーが発生した場合、インスタンス名Ｃｅｌｌ１の出力Ｑを不定“Ｘ”にして遅延付きネットリスト２０の接続情報に基づいて次段のセルの入力端子に伝搬する。
【００４８】
このように論理シミュレータ１０は、外部入力端子の値が変化すると、タイミング演算、論理演算、遅延演算を繰り返して、遅延付きネットリスト２０の接続情報に基づいて、回路を構成しているセルに信号の変化を伝達して外部出力端子の値を決定する。そして、その値をシミュレーション結果６０に出力する。論理シミュレータ１０は、上述した動作をテストベンチ４０の入力パタンが終了するまで繰り返す。
【００４９】
以上説明したようにこの実施の形態２では、論理シミュレータ１０は、タイミングエラーが発生した場合にそのセルの出力を不定“Ｘ”にするか否かの設定を回路全体だけではなく、インスタンス名を用いて特定のセルのみの指定を可能にしてシミュレーションを行うようにしている。これにより、設計者は、タイミングエラー制約指定情報５０において特定のセルのみタイミングエラーが発生した場合に不定“Ｘ”を出力するように指定し、その不定“Ｘ”が回路全般に伝搬されてしまうのか、途中で不定“Ｘ”の伝搬が消滅するのかの検証を行い、タイミングエラー制約指定情報５０において特定のセルのみタイミングエラーが発生した場合に不定“Ｘ”を出力するように指定したにもかかわらず、その不定“Ｘ”の伝搬が回路の途中で消滅した場合には、このタイミングエラーは擬似エラーであることを容易に判断することができる。
【００５０】
実施の形態３．
実施の形態１では、予め擬似エラーが発生するとわかっているセルのインスタンス名と端子名をタイミングエラー制約指定情報５０に登録しておき、論理シミュレータ１０は、タイミングエラーを検出した場合、そのタイミングエラーが、タイミングエラー制約指定情報５０に登録されているセルの場合にはタイミングエラーの情報をエラーメッセージ７０に出力しないようにした。しかし、特定の期間だけ、タイミングエラーを抑制することはできい。すなわち、遅延付きネットリスト２０で定義されている回路の初期設定の期間などに発生するタイミングエラーのみを抑制することができない。そのため、大量の擬似エラーが発生してしまう。
【００５１】
この実施の形態３では、このような問題を解決するために、特定のシミュレーション期間に関してのみ発生するタイミングエラーの出力を抑制するものである。
【００５２】
実施の形態３の論理シミュレータの構成は図１に示すものと同様となるのでここではその説明を省略する。
【００５３】
タイミングエラー制約指定情報５０には、論理シミュレータ１０がシミュレーションを実行しタイミングエラーが発生した場合に、そのタイミングエラーを無効にするシミュレーション時間を設定する。具体的には、たとえば、シミュレーション時間Ｔ１からＴ２までの期間に発生する全てのタイミングエラーを無効にする場合「ｉｇｎｏｒｅ＿ｔｉｍｉｎｇ＿ｃｈｅｃｋ　−ａｌｌ＿ｃｅｌｌｓ　−ｆｒｏｍ　Ｔ１　−ｔｏ　Ｔ２」と記述する。
【００５４】
つぎに、実施の形態３の論理シミュレータ１０の動作について説明する。論理シミュレータ１０は、実施の形態１と同様に、テストベンチ４０に記述されている入力パタンにより遅延付きネットリスト２０の外部入力端子の値を検出し、タイミング演算，論理演算，遅延演算を行う。
【００５５】
論理シミュレータ１０は、タイミングエラーを検出した場合、現在のシミュレーション時刻がタイミングエラー制約指定情報５０に設定されている時刻Ｔ１からＴ２の期間であるか否かを判定する。タイミングエラーを検出した時刻が、時刻Ｔ１からＴ２の期間である場合、論理シミュレータ１０は、タイミングエラーを無効にし、タイミングエラー情報をエラーメッセージ７０に出力しない。また、タイミングエラーを検出した時刻が、時刻Ｔ１からＴ２の期間以外である場合、論理シミュレータ１０は、タイミングエラー情報をエラーメッセージ７０に出力する。
【００５６】
このように論理シミュレータ１０は、外部入力端子の値が変化すると、タイミング演算、論理演算、遅延演算を繰り返して、遅延付きネットリスト２０の接続情報に基づいて、回路を構成しているセルに信号の変化を伝達して外部出力端子の値を決定する。そして、その値をシミュレーション結果６０に出力する。論理シミュレータ１０は、上述した動作をテストベンチ４０の入力パタンが終了するまで繰り返す。
【００５７】
以上説明したようにこの実施の形態３では、論理シミュレータ１０は、タイミングエラーを検出した場合にその検出時間がタイミングエラー制約指定情報５０に設定されている期間内であるか否かを判定し、期間内である場合には、そのタイミングエラーを無効にしてタイミングエラー情報をエラーメッセージ７０に出力しないようにしている。これにより、遅延付きネットリスト２０に定義されている回路の初期設定を行う期間など、予め回路動作に影響が無いとわかっている期間に発生する擬似エラーをエラーメッセージ７０から削除することができ、設計者が判断しなければならないエラーメッセージが減少し、設計効率を上げることができる。
【００５８】
実施の形態４．
実施の形態３では、タイミングエラー制約指定情報５０に特定の期間を指定することで、指定した期間に関してのみタイミングエラーの出力を抑制し、擬似エラーを削減することができた。しかし、特定の端子について特定の時間だけエラーメッセージを抑制することはできない。たとえば、マイクロコンピュータの入力クロック切り替えのように、クロック切り替えを行った後、再度初期設定を行うため、クロックがタイミング制約のパルス幅の許容値を違反しても問題がない場合の擬似エラーのエラーメッセージを削減することはできない。
【００５９】
この実施の形態４では、このような問題を解決するために、特定の端子について特定の時間だけエラーメッセージを抑制するものである。
【００６０】
実施の形態４の論理シミュレータの構成は図１に示すものと同様となるのでここではその説明を省略する。
【００６１】
タイミングエラー制約指定情報５０には、論理シミュレータ１０がシミュレーションを実行しタイミングエラーを検出した場合に、そのタイミングエラーを無効にするインスタンス名およびシミュレーション時間を設定する。具体的には、たとえば、インスタンス名Ｃｅｌｌ３のクロックＴで検出されるタイミングエラーをシミュレーション時間Ｔ１からＴ２までの期間だけ無効にする場合「ｉｇｎｏｒｅ＿ｔｉｍｉｎｇ＿ｃｈｅｃｋ＿ｏｎ　−ｉｎｓｔ“Ｃｅｌｌ３”　−ｐｉｎ“Ｔ”　−ｆｒｏｍ　Ｔ１　−ｔｏ　Ｔ２」と記述する。
【００６２】
つぎに、実施の形態４の論理シミュレータ１０の動作について説明する。論理シミュレータ１０は、実施の形態１と同様に、テストベンチ４０に記述されている入力パタンにより遅延付きネットリスト２０の外部入力端子の値を検出し、タイミング演算，論理演算，遅延演算を行う。
【００６３】
論理シミュレータ１０は、タイミングエラーを検出した場合、そのタイミングエラーがタイミングエラー制約指定情報５０に設定されているインスタンス名のセルであるか否かを判定する。検出したタイミングエラーがタイミングエラー制約指定情報５０に設定されているインスタンス名のセルであった場合、現在のシミュレーション時刻がタイミングエラー制約指定情報５０に設定されている時刻Ｔ１からＴ２の期間であるか否かを判定する。タイミングエラーを検出した時刻が、時刻Ｔ１からＴ２の期間である場合、論理シミュレータ１０は、タイミングエラーを無効にし、タイミングエラー情報をエラーメッセージ７０に出力しない。また、タイミングエラーを検出したセルがタイミングエラー制約指定情報５０に指定されたセル以外である場合、または、タイミングエラーを検出したセルがタイミングエラー制約指定情報５０に指定されたセルであるが、タイミングエラーの検出時刻が、時刻Ｔ１からＴ２の期間以外である場合、論理シミュレータ１０は、タイミングエラー情報をエラーメッセージ７０に出力する。
【００６４】
このように論理シミュレータ１０は、外部入力端子の値が変化すると、タイミング演算、論理演算、遅延演算を繰り返して、遅延付きネットリスト２０の接続情報に基づいて、回路を構成しているセルに信号の変化を伝達して外部出力端子の値を決定する。そして、その値をシミュレーション結果６０に出力する。論理シミュレータ１０は、上述した動作をテストベンチ４０の入力パタンが終了するまで繰り返す。
【００６５】
以上説明したようにこの実施の形態４では、論理シミュレータ１０は、タイミングエラーを検出すると、そのタイミングエラーがタイミングエラー制約指定情報５０に設定されているセルで、かつ、検出時間がタイミングエラー制約指定情報５０に設定されている期間内の場合には、検出したタイミングエラーを無効にしてタイミングエラー情報をエラーメッセージ７０に出力しないようにしている。これにより、特定のセルに対して特定の期間に発生する擬似エラーをエラーメッセージ７０から削除することができ、設計者が判断しなければならないエラーメッセージが減少し、設計効率を上げることができる。
【００６６】
【発明の効果】
以上説明したように、この発明によれば、論理シミュレータは、遅延シミュレーション用標準セルライブラリに規定されているタイミング制約の許容値を違反した場合、タイミングエラー制約指定情報の処理にしたがって、遅延付きネットリストで定義されるデジタル回路のセルの出力およびエラーメッセージの出力を決定するようにしているため、タイミング制約の許容値の違反により発生するエラーメッセージを抑制し、設計者が判断するエラーメッセージの数を削減することができ、設計効率を上げることができる。
【００６７】
つぎの発明によれば、タイミングエラー制約指定情報に予め擬似エラーが発生するとわかっている特定のセルの端子を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定されたセルの端子において検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないようにしているため、擬似エラーを削減し、設計効率を上げることができる。
【００６８】
つぎの発明によれば、タイミングエラー制約指定情報に特定のセルの端子を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定されたセルの端子においてタイミング制約の許容値の違反が検出された場合に、そのセルの出力を不定にして次段のセルに伝搬させるようにしているため、真のエラーと擬似エラーの判別が容易になり、設計効率を上げることができる。
【００６９】
つぎの発明によれば、タイミングエラー制約指定情報に所定時間の指定をしておき、論理シミュレータは、タイミングエラー制約指定情報に指定された所定時間内に発生したタイミング制約の許容値の違反を全て無効とし、エラーメッセージを出力しないようにしているため、予め回路動作に影響のない期間に発生する擬似エラーを削除することができる。
【００７０】
つぎの発明によれば、タイミングエラー制約指定情報に特定のセルの端子および所定時間を指定しておき、論理シミュレータは、タイミングエラー制約指定情報に指定された所定時間内に特定のセルの端子について検出されたタイミング制約の許容値の違反を無効とし、エラーメッセージを出力しないようにしているため、予め回路動作に影響のない特定のセルの特定の期間に発生する擬似エラーを削除することができる。
【図面の簡単な説明】
【図１】実施の形態１の論理シミュレータの構成を示す図である。
【図２】非同期リセットを有するフリップフロップを示す図である。
【図３】リカバリ・タイムのタイミング制約を説明するための図である。
【図４】リカバリ・タイムのタイミング制約を規定する記述の一例を示す図である。
【図５】パルス幅のタイミング制約を説明するための図である。
【図６】パルス幅のタイミング制約を規定する記述の一例を示す図である。
【図７】自己帰還形非同期リセット回路を説明するための図である。
【図８】メタステーブル対策を施した回路を説明するための図である
【図９】トップダウン設計の手順を説明するためのフローチャートである。
【符号の説明】
１０　論理シミュレータ、２０，９２　遅延付きネットリスト、３０，９６　遅延シミュレーション用標準セルライブラリ、４０　テストベンチ、５０　タイミングエラー制約指定情報、６０　シミュレーション結果、７０，９３　エラーメッセージ、８０，８２，８３　フリップフロップ、８１，８４　インバータ、９０　ＲＴＬ記述、９１　ネットリスト、９４　論理合成用標準セルライブラリ、９５　配置配線用標準セルライブラリ。
【図１】
2004030186.tif 000003
【図２】
2004030186.tif 000004
【図３】
2004030186.tif 000005
【図４】
2004030186.tif 000006
【図５】
2004030186.tif 000007
【図６】
2004030186.tif 000008
【図７】
2004030186.tif 000009
【図８】
2004030186.tif 000010
【図９】
2004030186.tif 000011