(57)【要約】  論理回路モデルに、０又は１を表す第１の論理値Ａと、第１の論理値Ａのそれぞれに対応する反転値として１又は０を表す第２の論理値Ｂとの組み合わせによるテストパターンを与えて論理演算により論理回路モデルの出力を算出し、テストパターンに対する期待値とを比較して等しい場合には、論理回路モデルの動作が正しいと判断する。第１の論理値が０を表す場合には第２の論理値Ｂは１を表し、第１の論理値Ａが１を表す場合には第２の論理値Ｂは０を表すものとして、論理回路モデルの論理演算を行う。
2009050805.tif 000002
【特許請求の範囲】
【請求項１】
論理回路モデルの入力に所定の論理値の組み合わせによるテストパターンを与え、前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較して前記論理回路モデルの動作を検証する論理回路モデルの検証方法において、
論理回路モデルに、０又は１を表す第１の論理値と、前記第１の論理値のそれぞれに対応する反転値として１又は０を表す第２の論理値との組み合わせによるテストパターンを与えるステップと、
前記論理回路モデルを用いて論理演算を行い、前記論理回路モデルの出力を算出するステップと、
前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較するステップと、
前記論理回路モデルの出力と前記期待値とが等しい場合には、前記論理回路モデルの動作が正しいと判断するステップとを有することを特徴とする検証方法。
【請求項２】
前記論理回路モデルの出力を算出するステップは、
前記第１の論理値が０を表す場合には前記第２の論理値は１を表し、前記第１の論理値が１を表す場合には前記第２の論理値は０を表すものとして、前記論理回路モデルの論理演算を行うことを特徴とする請求項１記載の検証方法。
【請求項３】
前記所定の論理値組み合わせは、０、１、第１の不定値又は高インピーダンスのいずれかの組み合わせであることを特徴とする請求項１又は２記載の検証方法。
【請求項４】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
論理積演算回路における一の入力の論理値が０である場合に、前記論理積演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理積演算回路が０を出力し、
前記論理積演算回路における一の入力の論理値が１、第１の不定値又は高インピーダンスのいずれかである場合に、前記論理積演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理積演算回路が前記第３の論理値を出力することを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項５】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
論理和演算回路における一の入力の論理値が１である場合に、前記論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理和演算回路が１を出力し、
前記論理和演算回路における一の入力の論理値が０、第１の不定値又は高インピーダンスのいずれかである場合に、前記論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理和演算回路が前記第３の論理値を出力することを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項６】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
前記排他的論理和演算回路における一の入力の論理値が０、１、第１の不定値又は高インピーダンスのいずれかである場合に、前記排他的論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記排他的論理和演算回路が前記第３の論理値を出力することを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項７】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
２つの出力を結合した場合における前記出力の論理値を演算するドット演算において、
一の出力が０、１、第１の不定値又は高インピーダンスのいずれかである場合に、前記第３の論理値を他の出力の論理値としたときに前記第３の論理値が出力されることを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項８】
論理回路モデルの入力に所定の論理値の組み合わせによるテストパターンを与え、前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較して前記論理回路モデルの動作を検証する論理回路モデルの動作検証装置において、
論理回路モデルに、０又は１を表す第１の論理値と、前記第１の論理値のそれぞれに対応する反転値として１又は０を表す第２の論理値との組み合わせによるテストパターンを与えるスケジュール部と、
前記論理回路モデルを用いて論理演算を行い、前記論理回路モデルの出力を算出する出力算出部と、
前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較する比較部と、
前記論理回路モデルの出力と前記期待値とが等しい場合には、前記論理回路モデルの動作が正しいと判断する判断部とを有することを特徴とする動作検証装置。
【請求項９】
前記論理回路モデルの出力を算出する出力算出部は、
前記第１の論理値が０を表す場合には前記第２の論理値は１を表し、前記第１の論理値が１を表す場合には前記第２の論理値は０を表すものとして、前記論理回路モデルの論理演算を行うことを特徴とする請求項８記載の動作検証装置。
【請求項１０】
前記所定の論理値組み合わせは、０、１、第１の不定値又は高インピーダンスのいずれかの組み合わせであることを特徴とする請求項８又は９記載の動作検証装置。
【請求項１１】
前記検証装置はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
論理積演算回路における一の入力の論理値が０である場合に、前記論理積演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理積演算回路が０を出力し、
前記論理積演算回路における一の入力の論理値が１、第１の不定値又は高インピーダンスのいずれかである場合に、前記論理積演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理積演算回路が前記第３の論理値を出力することを特徴とする請求項８乃至１０のいずれかに記載の動作検証装置。
【請求項１２】
前記検証装置はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
論理和演算回路における一の入力の論理値が１である場合に、前記論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理和演算回路が１を出力し、
前記論理和演算回路における一の入力の論理値が０、第１の不定値又は高インピーダンスのいずれかである場合に、前記論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理和演算回路が前記第３の論理値を出力することを特徴とする請求項８乃至１０のいずれかに記載の動作検証装置。
【請求項１３】
前記検証装置はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
前記排他的論理和演算回路における一の入力の論理値が０、１、第１の不定値又は高インピーダンスのいずれかである場合に、前記排他的論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記排他的論理和演算回路が前記第３の論理値を出力することを特徴とする請求項８乃至１０のいずれかに記載の動作検証装置。
【請求項１４】
前記検証装置はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
２つの出力を結合した場合における前記出力の論理値を演算するドット演算において、
一の出力が０、１、第１の不定値又は高インピーダンスのいずれかである場合に、前記第３の論理値を他の出力の論理値としたときに前記第３の論理値が出力されることを特徴とする請求項８乃至１０のいずれかに記載の動作検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の設計で用いられる論理回路モデルの検証方法及び動作検証装置に関し、特に論理シミュレータによりゲートレベルの論理回路モデルの動作を検証する論理回路モデルの検証方法及び装置に関する。
【背景技術】
【０００２】
従来、コンピュータ支援による大規模集積回路の設計作業にあっては、システム設計、機能設計、論理設計、レイアウト設計といった処理過程を経て最終的にマスクデータを生成するようにしている。【０００３】
このうち論理設計にあっては、機能設計で生成されたＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）の論理回路から論理合成ツールを使用してゲートレベル論理回路（ネットリスト）を生成し、論理シミュレータにより動作を確認している。【０００４】
このような論理シミュレータは、通常、イベントドリブン方式のシミュレーションを行う。イベントドリブン方式のシミュレーションは、信号の変化（イベント）のある論理ゲートなどの素子（プリミティブ）に着目し、イベントの発生した素子の次段の素子のみを真理値表に基づいて演算し、素子の出力が変化している場合に、信号の変化を次段に順次伝え、ターゲットとした素子に設定した期待値が得られるか否か検証している。【０００５】
従来の論理シミュレータが用いるステートは、通常、０，１，Ｘ，Ｚの４値である。ここで、Ｘは不定、Ｚは高インピーダンスである。【０００６】
これら４値のステートを用いてパスの接続検証や値の伝播確認などを行う場合は、ドライバとなるピンに値を設定して、複数回シミュレーションを行って検証する。
【特許文献１】特開平６−３１４１８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような従来の論理シミュレータにあっては、例えばパスの１対Ｎ活性化チェックを行う場合、ドライバであるピンに０又は１をスケジュールし、レシーバであるチェック対象のピンに期待している値が到達しているかをチェックするため、あるパスの活性化試験を行うには、期待値０，１と２つ用意し、２度シミュレーションが行う必要がある。また通常の４値ステートでは、本当に伝播元の値が伝播先に到達しているかを検証するのが非常に困難である。【０００８】
またパスの貫通確認検証（貫通チェック）を行う場合には、ドライバであるピンに０又は１をスケジュールしても、他パスからの論理から伝播ステートがＸになってしまったり、また回路が複雑になればなるほど本当にドライバのピンから値が到達しているかを判断することが非常に難しく、検証に手間と時間がかかるという問題がある。【０００９】
本発明は、ゲートレベルの論理回路モデルにおける論理シミュレーションの効率化と検証結果を容易に確認可能とする論理回路モデルの検証方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は論理回路モデルの検証方法を提供する。本発明は、論理回路モデルの入力に所定の論理値の組み合わせによるテストパターンを与え、論理回路モデルの出力と前記テストパターンに対する期待値とを比較して論理回路モデルの動作を検証する論理回路モデルの検証方法において、
論理回路モデルに、０又は１を表す第１の論理値Ａと、第１の論理値Ａのそれぞれに対応する反転値として１又は０を表す第２の論理値Ｂとの組み合わせによるテストパターンを与えるステップと、
論理回路モデルを用いて論理演算を行い、論理回路モデルの出力を算出するステップと、
論理回路モデルの出力とテストパターンに対する期待値とを比較するステップと、
論理回路モデルの出力と期待値とが等しい場合には、論理回路モデルの動作が正しいと判断するステップとを有することを特徴とする。【００１１】
ここで、論理回路モデルの出力を算出するステップは、第１の論理値Ａが０を表す場合には第２の論理値Ｂは１を表し、第１の論理値Ａが１を表す場合には第２の論理値Ｂは０を表すものとして、論理回路モデルの論理演算を行う。【００１２】
所定の論理値組み合わせは、０、１、第１の不定値Ｘ又は高インピーダンスＺのいずれかの組み合わせである。【００１３】
本発明の検証方法はさらに、
第１の不定値Ｘとは異なる第２の不定値を表す第３の論理値Ｋを有し、
第３の論理値Ｋは、
論理積演算回路（ＡＮＤゲート）における一の入力の論理値が０である場合に、論理積演算回路の他の入力の論理値として第３の論理値Ｋが入力されたとき、論理積演算回路が０を出力し、
論理積演算回路における一の入力の論理値が１、第１の不定値Ｘ又は高インピーダンスＺのいずれかである場合に、論理積演算回路の他の入力の論理値として第３の論理値Ｋが入力されたとき、論理積演算回路が第３の論理値Ｋを出力する。【００１４】
本発明の検証方法はさらに、
第１の不定値Ｘとは異なる第２の不定値を表す第３の論理値Ｋを有し、
第３の論理値Ｋは、
論理和演算回路（ＯＲゲート）における一の入力の論理値が１である場合に、論理和演算回路の他の入力の論理値として第３の論理値Ｋが入力されたとき、論理和演算回路が１を出力し、
論理和演算回路における一の入力の論理値が０、第１の不定値Ｘ又は高インピーダンスＺのいずれかである場合に、論理和演算回路の他の入力の論理値として第３の論理値Ｋが入力されたとき、論理和演算回路が第３の論理値Ｋを出力する。【００１５】
本発明の検証方法はさらに、
第１の不定値Ｘとは異なる第２の不定値を表す第３の論理値Ｋを有し、
第３の論理値Ｋは、
排他的論理和演算回路（ＥＯＲゲート）における一の入力の論理値が０、１、第１の不定値Ｘ又は高インピーダンスＺのいずれかである場合に、排他的論理和演算回路の他の入力の論理値として第３の論理値Ｋが入力されたとき、排他的論理和演算回路が第３の論理値Ｋを出力する。【００１６】
本発明の検証方法はさらに、
第１の不定値Ｘとは異なる第２の不定値を表す第３の論理値Ｋを有し、
第３の論理値Ｋは、
２つの出力を結合した場合における出力の論理値を演算するドット演算において、
一の出力が０、１、第１の不定値Ｘ又は高インピーダンスＺのいずれかである場合に、第３の論理値Ｋを他の出力の論理値としたときに第３の論理値Ｋが出力される。【００１７】
（装置）
本発明は論理回路モデルの検証装置を提供する。本発明は、論理回路モデルの入力に所定の論理値の組み合わせによるテストパターンを与え、論理回路モデルの出力とテストパターンに対する期待値とを比較して論理回路モデルの動作を検証する論理回路モデルの動作検証装置において、
論理回路モデルに、０又は１を表す第１の論理値Ａと、第１の論理値のそれぞれに対応する反転値として１又は０を表す第２の論理値Ｂとの組み合わせによるテストパターンを与えるスケジュール部と、
論理回路モデルを用いて論理演算を行い、論理回路モデルの出力を算出する出力算出部と、
論理回路モデルの出力とテストパターンに対する期待値とを比較する比較部と、
論理回路モデルの出力と期待値とが等しい場合には、論理回路モデルの動作が正しいと判断する判断部とを有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、０、１、第１の不定値Ｘ又は高インピーダンスＺの４値に加え、特殊ステートとして、０又は１を表す第１の論理値Ａと、第１の論理値Ａのそれぞれに対応する反転値として１又は０を表す第２の論理値Ｂとの組み合わせによるテストパターンを論理回路モデルに与えて出力を算出することにより、単独パスの活性化検証で０，１のテストパターンで必要とした２回のシミュレーションを１回で済ますことができ、また１対Ｎの複数パスの活性化検証で０，１のテストパターンで必要としたＮ回のシミュレーションを１回で済ますことができる。【００１９】
また、第１の不定値Ｘとは異なる第２の不定値を表す特殊ステートとして第３の論理値Ｋを設けてソースからターゲットまでのパスの貫通確認検証を行うことで、０，１，Ｘ，Ｚの４値のステートでは、ソースに設定した値が途中で変化してしまったり、ターゲットの値が同じであってもソースから正しく伝播してきたのかを確認することが非常に困難であったが、特殊ステートである第３の論理値Ｋを伝播させることで、０，１，Ｘ，Ｚの４値のステートと明確に区別でき、ターゲットの入力ピンに第３の論理値Ｋが到達していることで、容易に貫通確認検証ができる。【００２０】
このように０，１，Ｘ，Ｚの４値のステートに対し本発明によるＡ，Ｂ，Ｋの値の特殊ステートを追加した真理値表を使用して論理回路モデルの動作を確認することにより、シミュレーション回数の削減、接続や伝播チェックの容易化、論理検証の効率化、デザインルールチェック（ＤＲＣ）確認の容易化が実現できる。【００２１】
本願発明者は、従来の４値ステートの真理値表と本発明による特殊ステートの３値を加えた７値ステートの真理値表とを用いたシミュレーション結果を比較したところ、検証時間は約１／３に短縮でき、制御言語記述量として定義される制御性は約２０パーセント削減できることが確認されている。【００２２】
また、本発明による特殊ステートの追加によって、論理シミュレーションの検証効率化、接続チェックなどのＤＲＣが容易に確認可能になるため、論理検証（ＴＡＴ）の短縮化が可能となる。【００２３】
更に、本発明による特殊ステートの追加をＤＦＴ（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔ）の分野に適用することも可能であり、これにより通常論理だけでなく、テスト回路の品質向上も可能となる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態が適用される回路設計ＣＡＤシステムを示した説明図
【図２】図１に設けたイベントドリブン方式の論理シミュレータを使用する本実施形態の動作検証部の詳細を示した説明図
【図３】本実施形態における追加特殊ステートの定義を示した説明図
【図４】図２のシミュレーション実行部のプログラム構造を示した説明図
【図５】本実施形態のプログラムが実行されるコンピュータのハードウェア環境を示したブロック図
【図６】本実施形態におけるバッファの真理値表を示した説明図
【図７】本実施形態におけるインバータの真理値表を示した説明図
【図８】本実施形態における論理積演算回路（ＡＮＤゲート）の真理値表を示した説明図
【図９】本実施形態における論理和演算回路（ＯＲゲート）の真理値表を示した説明図
【図１０】本実施形態における排他的論理和演算回路（ＥＯＲゲート）の真理値表を示した説明図
【図１１】本実施形態におけるドット演算回路の真理値表を示した説明図
【図１２】活性化検証を行う単独パスの一例を示した回路図
【図１３】通常の４値のステートを用いた単独パスに対する従来の活性化検証を示した回路図
【図１４】本実施形態の特殊ステートを用いた単独パスに対する活性化検証を示した回路図
【図１５】本実施形態の特殊ステートを用いた複数パスに対する活性化検証を示した回路図
【図１６】本実施形態の特殊ステートを用いたパスの貫通確認検証を示した回路図
【図１７】本実施形態の論理シミュレータで用いるシミュレーションテーブルを示した説明図
【図１８】２入力１出力のＡＮＤゲートのシミュレーションテーブルを示した説明図
【図１９】本実施形態の論理シミュレータにおけるスケジュール機能を示した説明図
【図２０】本実施形態の論理シミュレータにおけるシミュレーション実行機能を示した説明図
【図２１】図２０に続くシミュレーション実行機能を示した説明図
【図２２】図２１に続くシミュレーション実行機能を示した説明図
【図２３】本実施形態の論理シミュレータにおけるシミュレーション実行処理を示したフローチャート
【発明を実施するための最良の形態】
【００２５】
図１は本実施形態による論理回路モデルの検証方法が適用される回路設計ＣＡＤシステムを示した説明図である。図１において、回路設計ＣＡＤシステムは、システム設計部１０、機能設計部１２、論理設計部１４、レイアウト設計部１６、レイアウト設計検証部１８及びマスクデータ作成部２０で構成される。【００２６】
システム設計部１０は、設計対象とするＬＳＩ全体をどのような機能のブロックに分けてどのように動作させるかを決定し、方式シミュレータと呼ばれるシミュレータが使用される。【００２７】
機能設計部１２は、レジスタトランスファーレベル（ＲＴＬ）でＬＳＩの機能ブロック内部の構造と動作を決定する設計を行うもので、設計結果の検証には機能シミュレータが使用される。【００２８】
論理設計部１４はネットリストとして知られたゲートレベル論理回路の設計を行い、動作確認に本実施形態にあってはイベントドリブン方式の論理シミュレータを使用している。【００２９】
レイアウト設計部１６は、回路図を物理的な形状と寸法を持つ素子の配置配線に変換する処理であり、自動設計に対応した配置配線プログラムなどが使用される。【００３０】
レイアウト設計検証部１８は、設計されたレイアウトに設計誤りがないかを調べる検証であり、設計寸法の規則違反を調べるデザインルールチェック（ＤＲＣ）、結線誤りを調べる結線チェック、トランジスタなどの回路素子の電気的ルールチェックなどを行う。【００３１】
マスクデータ作成部２０は、レイアウト設計検証の済んだデータからマスクデータ作成プログラムによりマスクデータを作成する。【００３２】
本実施形態の論理設計部１４は、詳細には、ＲＴＬ記述論理回路データベース２２、マイクロセルライブラリ２４、論理機能検証部２６、論理回路合成部２８、ゲートレベル論理回路データベース３０、論理機能等価検証部３２及び動作検証部３４を備えている。【００３３】
ＲＴＬ記述論理回路データベース２２には、機能設計部１２で設計されたＲＴＬ記述論理回路が格納されており、これを対象に論理機能検証部２６で論理シミュレータを使用して論理機能を検証する。続いて、論理合成ツールとして得られた論理回路合成部２８により、ＲＴＬ記述論理回路をゲートレベル論理回路（ネットリスト）に変換し、ゲートレベル論理回路データベース３０に格納する。【００３４】
ゲートレベル論理回路データベース３０のゲートレベル論理回路に対しては論理機能等価検証部３２により検証が行われ、もし誤りがあれば、この誤り結果はＲＴＬ記述論理回路データベース２２に反映される。【００３５】
本実施形態の対象となる動作検証部３４は、ゲートレベル論理回路データベース３０に格納されたゲートレベル論理回路（論理回路モデル）を対象にテストパターンを使用して動作を確認するための検証を行い、本実施形態にあってはイベントドリブン方式の論理シミュレータを使用している。【００３６】
なお論理機能検証部２６及び動作検証部３４に対しては、マイクロセルライブラリ２４よりインバータ、バッファ、ＯＲゲート、ＡＮＤゲート、ＥＯＲゲート、ドットゲートなどの回路素子の最小単位であるプリミティブに関する情報が与えられる。【００３７】
図２は図１の論理設計部１４に設けた本実施形態のイベントドリブン方式の論理シミュレータを使用した動作検証部３４の詳細を示した説明図である。【００３８】
図２の動作検証部３４は、ゲートレベル論理回路データベース３０、シミュレーションモデル生成部３８、シミュレーションモデルデータベース４０、シミュレータ用真理値定義ファイル４２、シミュレーション制御言語ファイル４４、シミュレーション実行部４６及び結果表示部４８を備えている。【００３９】
シミュレーションモデル生成部３８は、ゲートレベル論理回路データベース３０からシミュレーションに必要な論理情報を取り出し、シミュレーション実行部４６で実行可能なプリミティブレベル（基本ゲート）のシミュレーションモデルに変換し、シミュレーションモデルデータベース４０に格納する。【００４０】
続いて、シミュレーション実行部４６がシミュレーション制御言語ファイル４４に格納されているシミュレーションモデルデータベース４０の対象シミュレーション回路に入力するテストパターンの記述、シミュレーション処理手順、及びチェックなどを記述したシミュレーション制御言語と、シミュレータ用真理値定義ファイル４２に格納している本実施形態により拡張したシミュレータ用定義ファイルを用いてシミュレーションを実行する。シミュレーション実行部４６の実行結果は結果表示部４８に出力表示され、実行結果を確認可能とする。【００４１】
シミュレータ用真理値定義ファイル４２には、通常の４値のステート即ち０，１、Ｚ（高インピーダンス）及びＸ（不定値）に加え、本実施形態で新たに追加した特殊ステートとして、第１の論理値Ａ、第２の論理値Ｂ及び第３の論理値Ｋを含む７値のステートを用いたプリミティブとなる基本ゲートの真理値表、即ちバッファ、インバータ、ＡＮＤゲート、ＯＲゲート、ＥＯＲゲート及びドットゲートの真理値表を格納している。【００４２】
図３は本実施形態における追加特殊ステートの定義を示した説明図である。図３において、本実施形態の追加特殊ステート定義ファイル９０は、特殊ステートとして第１の論理値Ａ、第２の論理値Ｂ及び第３の論理値Ｋを設定している。【００４３】
第１の論理値Ａは０または１を表す論理値であり、これに対し第２の論理値Ｂは第１の論理値Ａのそれぞれに対応する反転値として１または０を表している。【００４４】
更に第３の論理値Ｋは、通常の不定値Ｘより強い不定値Ｘと定義される。なお、以下の説明において第１の論理値Ａ、第２の論理値Ｂ及び第３の論理値Ｋを、特殊ステートＡ，Ｂ，Ｋと記載する。【００４５】
再び図２を参照するに、シミュレーション実行部４６は、シミュレータ用真理値定義ファイル４２に定義されている通常の４値のステート０，１，Ｚ，Ｘに、図３のように追加した本実施形態の特殊ステートＡ，Ｂ，Ｋを加えた７値のステートを用いたプリミティブ（基本ゲート）の真理値表を用いて、シミュレーションモデルデータベース４０の論理回路モデルを対象に動作を検証する。【００４６】
このため、シミュレーション実行部４６に設けたスケジュール部５０は、検証対象とする論理回路モデルに、０または１を表す特殊ステートＡと、特殊ステートＡのそれぞれに対応する反転値として１または０を表す特殊ステートＢを含むテストパターンによるシミュレーションの実行をスケジュールする。【００４７】
出力算出部５２は、シミュレーションモデルデータベース４０から得られた論理回路モデルに対し、テストパターンに基づく論理演算を行い、論理回路モデルの出力を算出する。比較部５４は、論理回路モデルとテストパターンに対する期待値とを比較する。更に、判断部５６は、論理回路モデルの出力と期待値とが等しい場合に、対象としている論理回路モデルの動作が正しいと判断し、判断結果を結果表示部４８に出力表示させる。【００４８】
図４は図２の動作検証部３４に設けたシミュレーション実行部４６のプログラム構造を示した説明図である。【００４９】
図４のイベントドリブン方式のシミュレーション実行プログラムにあっては、外部関数５８により呼び出されるプログラムとして、シミュレーション環境初期化制御モジュール６０、時刻管理待ち行列イベントクリア制御モジュール６２、スケジュール制御モジュール６４、シミュレーション実行制御モジュール６６及びシミュレーション環境終了化制御モジュール６８を備えている。【００５０】
このようなプログラムモジュールの構成を持つシミュレーション実行プログラムはイベントドリブン型として知られており、イベントドリブン型のシミュレーション実行プログラムにあっては、信号の変化となるイベントのある論理ゲートなどの基本ゲート（プリミティブ）に着目し、イベントの発生した素子の次段の素子のみを真理値表に基づいて演算し、素子の出力が変化している場合に信号の変化を次段に順次伝え、ターゲットとした素子に設定した期待値が得られるか否かを検証している。【００５１】
図５は本実施形態のプログラムが実行されるコンピュータのハードウェア環境を示したブロック図である。図５において、ＣＰＵ７０のバス７２に対しては、ＲＡＭ７４、ＲＯＭ７６、ハードディスクドライブ７８、キーボード８２，マウス８４，ディスプレイ８６を接続するデバイスインタフェース８０、及びネットワークアダプタ８８が接続されている。【００５２】
ハードディスクドライブ７８には本実施形態のプログラムが格納されている。【００５３】
コンピュータを起動すると、図示しないＢＩＯＳシステムのブート処理により、ハードディスクドライブ７８のＯＳがＲＡＭ７４にロードされてＣＰＵ７０により実行され、ＯＳが起動すると、ハードディスクドライブ７８から本実施形態のプログラムがＲＡＭ７４に読み出され、ＣＰＵ７０により実行されることになる。【００５４】
図６は図２のシミュレータ用真理値定義ファイル４２に格納される本実施形態におけるバッファ真理値表を示した説明図である。図６において、バッファ真理値表９２は、入力値として通常の４値のステート０，Ｚ，Ｘ，１に加え、本実施形態で追加した特殊ステートＡ，Ｂ，Ｋを加えた７値のステートであり、出力もそれぞれのステートに１対１に対応した出力となっている。【００５５】
図７は本実施形態におけるインバータ真理値表を示した説明図である。図７のインバータ真理値表９４において、入力は通常の４値のステート０，Ｚ，Ｘ，１に、本実施形態の追加した特殊ステートＡ，Ｂ，Ｋを加えており、出力は入力を反転した値となる。【００５６】
このうち入力の特殊ステートＡは出力が反転により特殊ステートＢとなっており、また入力の特殊ステートＢは反転により出力の特殊ステートＡとなっており、更に特殊ステートＫは出力も同じ特殊ステートＫとなっている。【００５７】
図８は本実施形態におけるＡＮＤゲート真理値表を示した説明図である。図８において、ＡＮＤゲート真理値表９６は２入力１出力のＡＮＤゲートを例にとっており、第１入力及び第２入力に対しては、通常の４値のステート０，Ｚ，Ｘ，１に、本実施形態の特殊ステートＡ，Ｂ，Ｋを加えた７値のステートとしている。【００５８】
ここで第１入力を特殊ステートＡまたはＢとし、第２入力を通常の４値のステート０，Ｚ，Ｘ又は１とした場合の出力は、例えば第１入力を特殊ステートＡとした場合には、第２入力のステート０，Ｚ，Ｘ，１に対し出力がステート０，Ｘ，Ｘ，Ａとなっており、これは通常の４値のステートの第１入力と第２入力の組合せの出力と基本的に同じである。【００５９】
これに対し特殊ステートＫについては、第１入力と第２入力のいずれか一方が特殊ステートＫで他方がステート０の場合に出力がステート０となっている。即ち
（０，Ｋ）＝（Ｋ，０）＝０
となっている。それ以外の特殊ステートＫとの組合せの入力については、すべて出力が特殊ステートＫとなっている。【００６０】
図９は本実施形態におけるＯＲゲート真理値表を示した説明図である。図９において、ＯＲゲート真理値表９８は２入力１出力のＯＲゲートを例にとっている。【００６１】
ＯＲゲート真理値表９８にあっては、第１入力と第２入力の一方が通常の４値ステート０，Ｚ，Ｘ，１で他方が特殊ステートＡの場合、出力ステートはＡ，Ｘ，Ｘ，１となっており、これは通常の４値のステート０，Ｚ，Ｘ，１の場合と同じである。この点は特殊ステートＢについても同じである。【００６２】
これに対し特殊ステートＫについては、第１入力と第２入力のいずれか一方が特殊ステートＫで他方がステート１の場合にのみ、出力がステート１となる。即ち
（１，Ｋ）＝（Ｋ，１）＝１
となっている。それ以外の特殊ステートＫと通常のステート０，Ｚ，Ｘ，１の入力の組合せについては、出力はすべて特殊ステートＫとなっている。【００６３】
図１０は本実施形態におけるＥＯＲゲート（排他的論理和演算回路）真理値表を示した説明図である。図１０において、ＥＯＲゲートの真理値表１００は２入力１出力のＥＯＲゲートを例にとっている。【００６４】
ＥＯＲゲート真理値表１００において、第１入力と第２入力の組合せとして、いずれか一方が通常の４値のステート０，Ｚ，Ｘ，１で他方が特殊ステートＡの場合、出力のステートはＡ，Ｘ，Ｘ，Ｂとなり、これは通常の４値における一方の入力ステートを０、他方の入力ステートを０，Ｚ，Ｘ，１のいずれかとした場合と基本的に同じである。この点は特殊ステートＢについても同様である。【００６５】
これに対し特殊ステートＫについては、第１入力と第２入力のいずれか一方が特殊ステートＫで他方が通常の４値のステート０，Ｚ，Ｘ，１及び特殊ステートＡ，Ｂのいずれであっても、出力のステートは全て特殊ステートＫとなっている。【００６６】
図１１は本実施形態におけるドット演算回路の真理値表を示した説明図である。図１１のドットゲート真理値表１０２にあっては、２入力１出力のドットゲートを例にとっている。【００６７】
ドットゲート真理値表１０２において、特殊ステートＡ，Ｂについては、第１入力と第２入力のいずれか一方が特殊ステートＡ，Ｂで、他方が通常の４値のステート０，Ｚ，Ｘ，１及び特殊ステートＡ，Ｂのいずれかであった場合、その出力のステートはＸ，Ａ，Ｘ，Ｘ，Ａ，Ｘとなり、これは一方の入力をステート０または１、他方の入力をステート０，Ｚ，Ｘ，１，Ａ，Ｂとした場合と基本的に同じである。この点は特殊ステートＢについても同様である。【００６８】
これに対し特殊ステートＫについては、第１入力と第２入力のいずれか一方を特殊ステートＫとし、他方を通常の４値のステート０，Ｚ，Ｘ，１及び特殊ステートＡ，Ｂ，Ｋとした場合のすべてについて、出力は特殊ステートＫとなっている。【００６９】
次に図６乃至図１１に示した真理値表を用いた本実施形態の論理回路モデルの動作検証として、パスの活性化試験の確認検証の具体例を説明する。【００７０】
図１２は活性化検証を行う単独パスの一例を示した回路図である。この単独パスにあっては、ソース１０４のピン１１４に続いてＡＮＤゲート１０６を接続し、ＡＮＤゲート１０６に続いて、インバータ１０８を介してＯＲゲート１１０を接続し、ＯＲゲート１１０の出力をターゲット１１２のピン１１６に接続している。【００７１】
図１３は通常の４値のステートを用いた図１２の単独パスに対する従来の活性化検証を示した回路図である。図１２の単独パスに対し、活性化検証項目として
「ソース１０４の出力ピン１１４からターゲット１１２の入力ピン１１６に逆極性で活性化しているか？」
が設定されていたとする。【００７２】
このような単独パスの活性化検証項目に対し、従来の４値のステート０，Ｚ，Ｘ，１を用いた活性化検証にあっては、まず図１３（Ａ）のように、ドライバとなるソース１０４の出力ピン１１４にステート０を設定し、４値のステート０，Ｚ，Ｘ，１を持つ真理値表を用いてシミュレーションを実行する。この場合には、レシーバとなるターゲット１１２の入力ピン１１６にステート１が伝播しており、活性化検証項目を満たしている。【００７３】
続いて図１３（Ｂ）に示すように、ソース１０４の出力ピン１１４にステート１を設定してシミュレーションを実行する。この場合には、レシーバとなるターゲット１１２の入力ピン１１６にステート０が伝播しており、活性化検証項目を満足している。【００７４】
このように従来の４値のステート０，Ｚ，Ｘ，１を用いた単独パスの活性化検証にあっては、ドライバとなるソースの出力ピンにステート０と１をそれぞれ設定してシミュレーションを実行する必要があることから、２回のシミュレーションが必要となる。【００７５】
なお図１３の例にあっては、ソース１０４とターゲット１１２の間の論理が簡単な場合であるが、論理が複雑な場合には、ソース１０４の出力ピン１１４に設定した値が、レシーバとなるターゲット１１２の入力ピン１１６に本当に伝播しているか否かを確認するのは、非常に困難な作業となる。【００７６】
図１４は本実施形態で追加した特殊ステートＡ，Ｂを用いた単独パスに対する活性化検証を示した回路図である。図１４にあっては、ドライバとなるソース１０４の出力ピン１１４に例えば特殊ステートＡを設定してシミュレーションを実行し、ターゲット１１２の入力ピン１１６に特殊ステートＡの反転値である特殊ステートＢが到達していることで、活性化確認が可能となる。【００７７】
具体的には、ソース１０４の出力ピン１１４に特殊ステートＡを設定すると、次のＡＮＤゲート１０６の入力は（Ａ，１）となり、この場合の出力ステートは、図８のＡＮＤゲート真理値表からステートＡとなる。続いてインバータ１０８により、その出力がステートＢに反転する。次のＯＲゲート１１０にあっては、入力が（Ｂ，０）であり、図９のＯＲゲート真理値表９８から、その出力のステートは特殊ステートＢとなっている。【００７８】
したがって、レシーバとなるターゲット１１２の入力ピン１１６に、ドライバとなるソース１０４との出力ピン１１４の特殊ステートＡの反転値となる特殊ステートＢが到達して検証項目を満足していることが確認できる。【００７９】
このように図１４の本実施形態の特殊ステートＡまたはＢを用いた単独パスの活性化検証にあっては、１回のシミュレーションで検証項目を確認することができ、更にソース１０４の出力ピン１１４に設定した特殊ステートがターゲット１１２の入力ピン１１６に伝播しているかを確認することは、特殊ステートＡの反転値である特殊ステートＢが伝播していることを確認すればよいことから、簡単且つ容易に確認できる。【００８０】
図１５は本実施形態の特殊ステートＡ，Ｂを用いた複数パスに対する活性化検証を示した回路図である。図１５の複数パスにあっては、ドライバとなるソース１３２の出力ピン１３８から適宜の論理回路部１３４を経由して、Ｎ個のターゲット１３６−１〜１３６−Ｎの入力ピン１４０−１〜１４０−Ｎに対する１対Ｎの複数パスが存在している。【００８１】
ここで図１５の１対Ｎの複数パスに対する活性化検証項目を
「ソース１３２の出力ピン１３８からターゲット１３６−１〜１３６−Ｎのすべての入力ピン１４０−１〜１４０−Ｎに逆極性で活性化しているか？」
を設定したとする。【００８２】
このような複数パスの活性化検証項目に対し、本実施形態にあっては、ドライバとなるソース１３２の出力ピン１３８に特殊ステートＡを設定してシミュレーションを実行すると、この場合にはターゲット１３６−１〜１３６−Ｎのすべての入力ピン１４０−１〜１４０−Ｎに特殊ステートＡの反転値となる特殊ステートＢが到達しており、１対Ｎ複数パスの活性化検証項目を満たしていることを容易に確認することができる。【００８３】
なお、図１５の１対Ｎの複数パスに対する活性化検証については、ドライバとなるソース１３２の出力ピン１３８に特殊ステートＢを設定してシミュレーションを実行し、ターゲット１３６−１〜１３６−Ｎのすべての入力ピン１４０−１〜１４０−Ｎに特殊ステートＡの反転値となる特殊ステートＡが到達することを確認しても良い。【００８４】
図１６は本実施形態の特殊ステートＫを用いたパス貫通確認検証を示した回路図である。図１６（Ａ）は貫通確認検証の対象となるパスの例であり、ソース１１８の出力ピン１２８からＡＮＤゲート１２０に入力し、途中省略している論理回路を介して、インバータ１２２からＯＲゲート１２４に入力し、ＯＲゲート１２４からレシーバとなるターゲット１２６の入力ピン１３０に接続している。【００８５】
このようなパスを対象に、貫通確認検証項目として
「ターゲット１２６の入力ピン１３０は、ソース１１８の出力ピン１２８をドライバとしているか？」
が設定されたとする。【００８６】
このようなパスの貫通確認検証項目に対し、通常の４値ステート０，Ｚ，Ｘ，１では、ソース１１８の出力ピン１２８に設定した値が途中で変化してしまったり、またターゲット１２６の入力ピン１３０にソース１１８の出力ピン１２８に設定した値が到達したとしても、本当にソース１１８の出力ピン１２８から伝播してきた値かを確認することが非常に困難である。【００８７】
図１６（Ｂ）は本実施形態の特殊ステートＫを用いた貫通確認検証を示す。この場合には、ソース１１８の出力ピン１２８に特殊ステートＫを設定して、図６乃至図１１に示した通常の４値のステートに３値の特殊ステートを加えた真理値表に基づくシミュレーションを実行する。【００８８】
具体的には、ソース１１８の出力ピン１２８に特殊ステートＫを設定すると、ＡＮＤゲート１２０の入力は（Ｋ，Ｘ）となり、その出力は図８のＡＮＤゲート真理値表９６から特殊ステートＫとなる。【００８９】
更に、途中の省略した論理回路部を経由して特殊ステートＫが伝播し、インバータ１２２の入力がＫとなり、出力にもＫが伝播し、最後にＯＲゲート１２４の入力が（Ｋ，０）となり、その出力は図９のＯＲゲート真理値表から特殊ステートＫとなり、ターゲット１２６の入力ピン１３０に特殊ステートＫが伝播している。【００９０】
このように本実施形態における特殊ステートＫをソース１１８の出力ピン１２８に設定して、通常の４値のステートに本実施形態で追加した３つの特殊ステートＡ，Ｂ，Ｋを加えた７値のステートによる真理値表に基づくシミュレーションを実行することで、ターゲット１２６の入力ピン１３０に特殊ステートＫが到達することを確認することで、簡単且つ容易にパスの貫通確認検証を行うことができる。【００９１】
次に図２に示した動作検証部３４の具体的な実施形態であるイベントドリブン型の論理シミュレータの処理動作を説明する。本実施形態の動作検証部３４として機能するイベントドリブン型の論理シミュレータにあっては、検証対象とするシミュレーションモデルのデータに関して、図１７に示すようなデータ構造を持つシミュレーションテーブルを作成する。【００９２】
図１７において、具体的にはシミュレーションモデルとして、ゲート自身のステーションテーブル１４２と、ゲートの入出力ピンのそれぞれに対するステーションテーブル１４４を作成する。【００９３】
ゲート自身のステーションテーブル１４２は、ステーションテーブル番号（以下「ＳＴ番号」という）、ゲート入力または出力の種別、ファンクション番号及びゲートディレイを登録している。ゲートの入出力ピンに関するステーションテーブル１４４は、ＳＴ番号、ゲート入力または出力の種別、状態値、及び同一電位ネットＳＴ番号を登録している。【００９４】
図１８は２入力１出力のＡＮＤゲートのシミュレーションテーブルを示した説明図である。図１８において、ＡＮＤゲート１４６は第１入力ピンＩ０、第２入力ピンＩ１及び出力Ｏを持ち、それぞれＳＴ番号をＳＴ＝１０，１１，１３としている。またゲート自身のＳＴ番号はＳＴ＝１２としている。【００９５】
ＡＮＤゲート１４６の右側に、ゲート自身及び入出力ピンのそれぞれに対するステーションテーブル１４８を示している。ステーションテーブル１４８において、１行目と２行目はＳＴ＝１０，１１の第１入力ピンＩ０と第２入力ピンＩ１の内容であり、３行目がＡＮＤゲート１４６自身のＳＴ１２に関する内容であり、更に４行目が出力ＯのＳＴ＝１３の内容である。【００９６】
本実施形態のイベントドリブン型の論理シミュレータにあっては、
（１）シミュレーション値のスケジュール、
（２）シミュレーションの実行、
の２段階に分けた処理を行う。【００９７】
図１９はイベントドリブン型の論理シミュレータにおける制御の概略を示している。【００９８】
図１９（Ａ）はスケジュール対象１５０の一例であり、出力ピン１５２にＳＴ番号としてＳＴ＝１００が設定されている。このようなスケジュール対象につき、図１９（Ｂ）のステップＳ１でスケジュールファンクション関数を実行し、続いてステップＳ２でシミュレーション実行ファンクション関数を実行する。【００９９】
ステップＳ１のスケジュールファンクション関数はイベント登録関数であり、例えばスケジュールファンクション関数として
「ＳＴ＝１００に０をスケジュール：Ｓｃｈｄ（１００，０）」
であったとすると、実行段数を管理する時刻管理テーブル１５６の現時刻をイベントテーブル１５８に登録する。【０１００】
イベントテーブル１５８に登録する内容は、スケジュールファンクション関数で与えられたＳＴ番号、ＳＴ＝１００とスケジュール値０の２つである。【０１０１】
このステップＳ１でスケジュールを行った時点では、スケジュール値０はステーションテーブル１６０−１におけるＳＴ＝１００のステート値には反映されず、ステート値は以前のステートＸのままである。【０１０２】
続いてステップＳ２のシミュレーション実行ファンクション関数を処理する。このシミュレーション実行ファンクション関数の処理は、ステップＳ１のスケジュールファンクション関数の処理で与えられた１段の時刻管理テーブル１５６を対象に、イベントテーブル１５８に登録されているイベントを処理する。【０１０３】
即ち、ステップＳ２のシミュレーション実行ファンクション関数は
「登録イベントを１段実行：Ｅｘｅｃ（１）」
の処理となり、この登録イベントの１段の実行により、ステーションテーブル１６０−２に示すように、ＳＴ＝１００のステート値にスケジュールされた値「０」が反映される。【０１０４】
このようなステップＳ１のスケジュールファンクション関数の処理と、これに続くステップＳ２のシミュレーション実行ファンクション関数の処理を、指定された時刻管理テーブル１５６の段数に達するか、あるいは処理するイベントがなくなった場合に、処理を終了する。【０１０５】
次に図２０乃至図２１を参照して、本実施形態のイベントドリブン型の論理シミュレーションによる処理動作を具体的に説明する。【０１０６】
図２０のステップＳ１にあっては、その下に示すバッファ１６４，１６８、インバータ１６６及びＡＮＤゲート１７０，１７２を含む論理回路モデルを対象に、伝播元に値をスケジュールする。【０１０７】
具体的には、ステップＳ１−１に示すように、伝播元であるバッファ１６４としてのＢＬＫ１の出力ピンに値０を設定し、またバッファ１６８であるＢＬＫ３の出力ピンに値１を設定する。【０１０８】
このスケジュール処理に伴い、実行段数が１０段の時刻管理テーブル１５６の現在時刻にイベントテーブル１５８を登録し、イベントテーブル１５８の登録内容はＳＴ番号とスケジュール値の組合せでなる「１１（０），３１（１）」である。【０１０９】
続いてステップＳ２で時刻管理テーブル１５６についてシミュレーションを１０段分実行し、対象ステーションテーブルにスケジュール値を反映する。この場合、対象ステーションテーブルはバッファ１６４の出力ピンのＳＴ＝１１とバッファ１６８の出力ピンのＳＴ＝３１の２つであり、それぞれＳ１−１で設定したスケジュール値０をＳＴ＝１１に反映し、スケジュール値１をＳＴ＝３１に反映する。【０１１０】
次に図２１のステップＳ３で処理対象とするステーションテーブルのゲート番号をスタック１７４にプッシュする。具体的には、ステップＳ３−１に示すように、図２０のステップＳ２でスケジュールしたステーションテーブルの同一ネットＳＴ番号を参照し、処理ＳＴゲートとして、図２０におけるインバータ１６６のＳＴ＝２０、ＡＮＤゲート１７０のＳＴ＝４０、及びＡＮＤゲートのＳＴ＝５０を取得し、それぞれスタック１７４に示すように、ＳＴ番号＝２０，４０，５０をプッシュして登録する。【０１１１】
続いてステップＳ４で、スタック１７４からポップしたステーションテーブルのゲートのプリミティブを真理値表を基にシミュレーションを動作する。【０１１２】
即ち、ステック１７４のＳＴ２０からインバータ１６６を特定し、図７のインバータ真理値表９４を基に動作する。またスタック１７４のＳＴ＝４０からＡＮＤゲート１７０を特定し、またＳＴ＝５０からＡＮＤゲート１７２を特定し、それぞれ図８に示したＡＮＤゲート真理値表９６を基に動作する。【０１１３】
続いて図２２のステップＳ５に進み、図２１のステップＳ４で動作したプリミティブの出力でイベントの変化のあったものを、イベントテーブル１５８に登録する。【０１１４】
この場合にはステップＳ５−１、ステップＳ５−２及びステップＳ５−３に示すように、インバータ１６６、ＡＮＤゲート１７０，１７２につき動作結果が得られ、ステップＳ５−１，５−２のインバータ１６６とＡＮＤ１７０については、動作前と動作後で値が変化していることでイベントの変化が判別され、出力ゲートのディレイを条件に、イベントテーブル１５８にＡＮＤゲート１７０についてはＳＴ＝３１のＳＴ番号と動作後の値１が登録され、イベントテーブル１５８の３行目にはＡＮＤゲート１７０のＳＴ番号＝４１と動作後の値１が登録される。【０１１５】
続いてステップＳ６でシミュレーションイベント処理終了判定を行う。この処理判定はステップＳ６−１に示すように、判定終了条件として
（１）指定された時刻（実行段数）のシミュレーションを実施、
（２）イベントテーブルが空、
のどちらにも当てはまらない場合は、図２０のステップＳ２に戻り、処理を繰り返し、両方に当てはまった場合はシミュレーション処理を終了する。【０１１６】
図２３は図２０〜図２２のイベントドリブン型のシミュレーション処理の処理手順をまとめて示したフローチャートである。図２３において、シミュレーション処理にあっては、ステップＳ１で伝播元に値をスケジュールした後、ステップＳ２でシミュレーションを実行し、対象シミュレーションテーブルに値を反映する。【０１１７】
続いてステップＳ３で処理シミュレーションテーブルのゲート番号をスタックにプッシュした後、ステップＳ４でスタックからポップしたシミュレーションテーブルのゲートプリミティブの真理値表を基に動作する。続いてステップＳ５で、動作させたプリミティブの出力でイベントが変化したものをイベントテーブルに登録する。【０１１８】
続いてステップＳ６でシミュレーションイベント終了条件、即ち指定された実行段数の時刻シミュレーションの実施及びイベントテーブルが空となる条件を満たさない限り、ステップＳ２に戻り、同様な処理を繰り返し、ステップＳ６で処理終了条件が判定されると一連の処理を終了する。【０１１９】
また本発明は図５に示したコンピュータのハードウェア環境で実行されるプログラムを提供するものであり、このプログラムは図２０〜図２３に示したフローチャートの処理内容を備えている。また図２０〜図２３に示したフローチャートは同時に本実施形態における論理回路モデルの検証方法の手順を示している。【０１２０】
ここで本実施形態の通常の４値のステート０，Ｚ，Ｘ，１に３値の特殊ステートＡ，Ｂ，Ｋを加えた７値のステートによるプリミティブの真理値表を用いたイベントドリブン型の論理シミュレーションによるシミュレーション結果として、次のような結果が得られている。【０１２１】
対象ＬＳＩ：
ＵＮＩＸ（Ｒ）用サーバプロセッサ（ＳＰＡＲＣ６４−Ｖ）
検証内容：
ＬＳＩスキャン回路設計規則（ＪＴＡＧ仕様に準拠したスキャン制御検証）
シミュレーション結果：
検証時間は従来比の２．５倍短縮（従来比の６５％に短縮）、検証効率は制御性（制御言語記述量）を従来に対し１８％削減【０１２２】
なお上記の実施形態にあっては、論理回路モデルの論理シミュレーションとしてイベントドリブン型を例にとるものであったが、本発明はこれに限定されず、通常の４値のステート０，Ｚ，Ｘ，１に加え、特殊ステートであるＡ，Ｂ，Ｋの３つを加えた７値のステートによるプリミティブの真理値表を用いた論理シミュレーションであれば、適宜の論理シミュレーションを用いてもよいことはもちろんである。【０１２３】
また上記の実施形態にあっては、特殊ステートＡ，Ｂ、更に特殊ステートＫの３つを加えた７値のステートによるプリミティブの真理値表を使用しているが、特殊ステートＡ，Ｂを通常の４値のステート０，Ｚ，Ｘ，１に加えた６値の真理値表を用いてパスの活性化検証のみを行うようにしても良いし、通常の４値のステート０，Ｚ，Ｘ，１に本実施形態の特殊ステートＫを追加した５値のステートによる真理値表を用いたパスの貫通確認検証のみを行うようにしても良い。【０１２４】
また本発明はその目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【図１】
2009050805.tif 000003
【図２】
2009050805.tif 000004
【図３】
2009050805.tif 000005
【図４】
2009050805.tif 000006
【図５】
2009050805.tif 000007
【図６】
2009050805.tif 000008
【図７】
2009050805.tif 000009
【図８】
2009050805.tif 000010
【図９】
2009050805.tif 000011
【図１０】
2009050805.tif 000012
【図１１】
2009050805.tif 000013
【図１２】
2009050805.tif 000014
【図１３】
2009050805.tif 000015
【図１４】
2009050805.tif 000016
【図１５】
2009050805.tif 000017
【図１６】
2009050805.tif 000018
【図１７】
2009050805.tif 000019
【図１８】
2009050805.tif 000020
【図１９】
2009050805.tif 000021
【図２０】
2009050805.tif 000022
【図２１】
2009050805.tif 000023
【図２２】
2009050805.tif 000024
【図２３】
2009050805.tif 000025
【手続補正書】
【提出日】平成22年4月12日(2010.4.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
論理回路モデルの入力に所定の論理値の組み合わせによるテストパターンを与え、前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較して前記論理回路モデルの動作を検証する論理回路モデルの検証方法において、
論理回路モデルに、０又は１を表す第１の論理値と、前記第１の論理値のそれぞれに対応する反転値として１又は０を表す第２の論理値との組み合わせによるテストパターンを与えるステップと、
前記論理回路モデルを用いて論理演算を行い、前記論理回路モデルの出力を算出するステップと、
前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較するステップと、
前記論理回路モデルの出力と前記期待値とが等しい場合には、前記論理回路モデルの動作が正しいと判断するステップとを有することを特徴とする検証方法。
【請求項２】
前記論理回路モデルの出力を算出するステップは、
前記第１の論理値が０を表す場合には前記第２の論理値は１を表し、前記第１の論理値が１を表す場合には前記第２の論理値は０を表すものとして、前記論理回路モデルの論理演算を行うことを特徴とする請求項１記載の検証方法。
【請求項３】
前記所定の論理値組み合わせは、０、１、第１の不定値又は高インピーダンスのいずれかの組み合わせであることを特徴とする請求項１又は２記載の検証方法。
【請求項４】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
論理積演算回路における一の入力の論理値が０である場合に、前記論理積演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理積演算回路が０を出力し、
前記論理積演算回路における一の入力の論理値が１、第１の不定値又は高インピーダンスのいずれかである場合に、前記論理積演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理積演算回路が前記第３の論理値を出力することを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項５】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
論理和演算回路における一の入力の論理値が１である場合に、前記論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理和演算回路が１を出力し、
前記論理和演算回路における一の入力の論理値が０、第１の不定値又は高インピーダンスのいずれかである場合に、前記論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記論理和演算回路が前記第３の論理値を出力することを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項６】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
前記排他的論理和演算回路における一の入力の論理値が０、１、第１の不定値又は高インピーダンスのいずれかである場合に、前記排他的論理和演算回路の他の入力の論理値として前記第３の論理値が入力されたとき、前記排他的論理和演算回路が前記第３の論理値を出力することを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項７】
前記検証方法はさらに、
前記第１の不定値とは異なる第２の不定値を表す第３の論理値を有し、
前記第３の論理値は、
２つの出力を結合した場合における前記出力の論理値を演算するドット演算において、
一の出力が０、１、第１の不定値又は高インピーダンスのいずれかである場合に、前記第３の論理値を他の出力の論理値としたときに前記第３の論理値が出力されることを特徴とする請求項１乃至３のいずれかに記載の検証方法。
【請求項８】
論理回路モデルの入力に所定の論理値の組み合わせによるテストパターンを与え、前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較して前記論理回路モデルの動作を検証する論理回路モデルの動作検証装置において、
論理回路モデルに、０又は１を表す第１の論理値と、前記第１の論理値のそれぞれに対応する反転値として１又は０を表す第２の論理値との組み合わせによるテストパターンを与えるスケジュール部と、
前記論理回路モデルを用いて論理演算を行い、前記論理回路モデルの出力を算出する出力算出部と、
前記論理回路モデルの出力と前記テストパターンに対する期待値とを比較する比較部と、
前記論理回路モデルの出力と前記期待値とが等しい場合には、前記論理回路モデルの動作が正しいと判断する判断部とを有することを特徴とする動作検証装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
なお、図１５の１対Ｎの複数パスに対する活性化検証については、ドライバとなるソース１３２の出力ピン１３８に特殊ステートＢを設定してシミュレーションを実行し、ターゲット１３６−１〜１３６−Ｎのすべての入力ピン１４０−１〜１４０−Ｎに特殊ステートＢの反転値となる特殊ステートＡが到達することを確認しても良い。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
次に図２１のステップＳ３で処理対象とするステーションテーブルのゲート番号をスタック１７４にプッシュする。具体的には、ステップＳ３−１に示すように、図２０のステップＳ２でスケジュールしたステーションテーブルの同一ネットＳＴ番号を参照し、処理ＳＴゲートとして、図２０におけるインバータ１６６のＳＴ＝２０、ＡＮＤゲート１７０のＳＴ＝４０、及びＡＮＤゲート１７２のＳＴ＝５０を取得し、それぞれスタック１７４に示すように、ＳＴ番号＝２０，４０，５０をプッシュして登録する。
【手続補正書】
【提出日】平成22年6月21日(2010.6.21)
【手続補正１】
【補正対象書類名】手続補正書
【補正対象項目名】手続補正４
【補正方法】削除
【補正の内容】
【国際調査報告】
2009050805.tif 000026
2009050805.tif 000027
2009050805.tif 000028
2009050805.tif 000029