(57)【特許請求の範囲】
【請求項１】
所定のテストベクトルを回路設計及び回路仕様に与えたときに、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが上記回路設計内で起こり得る箇所を判定する、コンピュータを使用する方法であって、
上記回路設計内で候補ノードのリストを作成する段階と、
上記回路設計にテストベクトルを与える段階と、
０と１とＸの３値論理システムの論理値Ｘを上記候補ノードに設定する段階と、
上記回路設計の上記出力挙動が上記候補ノードに論理値Ｘを設定した結果として変化したかどうかを判定する段階と、
上記回路設計の上記出力挙動が上記候補ノードに論理値Ｘを設定した結果として変化したかどうかに依存するエラー確率を上記候補ノードのリストに割り当て、上記候補ノードのリストをランク付けする段階と
を有する方法。
【請求項２】
主入力、主出力、及び、上記主入力と上記主出力の間に有る中間ノードを有する第１の回路表現内で起こり得るエラー箇所に関する情報を判定する方法であって、
上記第１の回路表現の上記主入力にテストベクトルを与える段階と、
上記中間ノードの候補ノードの集合、上記主入力、又は、上記主出力に値Ｘを与える段階と、
上記テストベクトル及び上記値Ｘが与えられた結果として得られた上記主出力を、上記テストベクトルが与えられた第２の回路表現の主出力と比較する段階と、
上記比較に応じたエラー確率を上記候補ノードのリストに割り当て、上記候補ノードのリストをランク付けする段階と
を有する方法。
【請求項３】
論理値が割り当てられたノードを含む論理関数によって相互連結された主入力の集合及び主出力の集合を有する回路設計におけるエラー箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力に特定のテストベクトルに対応した値が割り当てられたときに、上記回路設計の少なくとも１個の主出力に対する所望の応答を指定させるコードと、
上記特定のテストベクトルに対応した値を上記主入力に割り当てさせるコードと、
ノードの候補集合の論理値を、３値論理システムの３種類の値の中のいずれかの値である値Ｘに変更させるコードと、
上記少なくとも１個の主出力を評価させるコードと
上記回路設計の上記主出力が上記ノードの候補集合に論理値Ｘを設定した結果として変化したかどうかに依存するエラー確率を上記ノードの候補集合に割り当て、上記ノードの候補集合をランク付けする段階と
を有する、記録媒体。
【請求項４】
ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力からの論理値を上記回路を通じて上記主出力に伝搬させるコードと、
上記主入力の伝搬のシミュレーションの間にノードの集合における論理値を値Ｘで置換させるコードと、
３値論理シミュレーションによって上記値Ｘを次の論理部品に伝搬させるコードと、
上記値Ｘで置換した結果として上記回路の上記主出力が変化したかどうかに依存するエラー確率を候補ノードに割り当てて、上記候補ノードをランク付けさせるコードと、
上記候補ノードから診断推論を導出させるコードと
を有する、記録媒体。
【請求項５】
ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
Ｘリストの集合を作成させるコードと、
理想的な条件及びＸリストによる影響を受けたテスト条件における上記回路の上記主出力を検査させるコードと、
理想的な条件及びテスト条件における上記主出力を比較することによってエラー確率を上記Ｘリストに割り当て、上記Ｘリストをランク付けするコードとを有する、記録媒体。
【請求項６】
ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるコンピュータシステムであって、
論理値に関してエラー若しくは故障をカバーする手段と、
エラー及び故障を含まない上記回路の上記主出力での予測応答を指定する手段と、
上記回路の上記主入力に刺激を与える手段と、
論理値に関して上記主入力が上記回路を通って上記主出力に達する伝搬を表現する手段と、
上記主入力の伝搬のシミュレーション中にノードの集合での論理値を値Ｘで置換する手段と、
３値論理シミュレーションによって上記値Ｘを次の論理部品に伝搬する手段と、
上記値Ｘで置換した結果として上記回路の上記主出力が変化したかどうかに依存するエラー確率を候補ノードに割り当てて、上記候補ノードをランク付けする手段と、
上記ランク付けされた候補ノードからエラー及び故障箇所を見つける手段とを有する、コンピュータシステム。
【請求項７】
主入力及び主出力を有する回路設計において、所定のテストベクトルを上記回路設計及び回路仕様に適用した場合に、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが起こり得る箇所を判定するためコンピュータを使用する方法であって、
テストベクトルを上記回路設計に適用する段階と、
上記回路設計内で、少なくとも一部の入力が上記テストベクトルによって決定され、少なくとも一部の上記主出力が少なくとも一部の出力の値に依存する値を有するような入力及び出力を有する候補ノードのリストを作成する段階と、
上記回路仕様の出力挙動と一致した上記回路設計の出力挙動を得るため上記出力の要求された値を決定する段階と
別のテストベクトルを上記回路設計に適用する段階と、
上記回路仕様の出力挙動と一致した上記回路設計の出力挙動を得るため上記出力の別の要求された値を決定する段階と、
上記別のテストベクトルが適用されたときに上記少なくとも一部の出力が上記別の要求された値を有する場合に、上記少なくとも一部の入力と上記少なくとも一部の出力との間の別の関係を表現する段階と、
上記テストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係が、上記別のテストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係と矛盾するかどうかを判定する段階と、
上記テストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係と、上記別のテストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係の無矛盾性に依存するエラー確率を、上記候補ノードのリストに割り当て、上記候補ノードのリストをランク付けする段階と
を含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に、コンピュータ支援設計（ＣＡＤ）システム及び方法に係わり、特に、デジタル回路を検証、テストするシステム並びに方法に関する。
【０００２】
【従来の技術】
デジタル回路及びその他の複雑なデジタルシステムのコンピュータ支援設計は広く普及している。回路若しくはシステムの要件は、回路若しくはシステムの抽象モデルによって定義される。抽象モデルは、多数の中間段階に巧みに変換される。中間モデルには、ブロック構造行動設計を表現するレジスタ・トランスファー・レベルと、システムの論理レベルの記述である構造的モデルとが含まれる。
最終的に、トランジスタ・ネット・リスト、すなわち、回路若しくはシステムの物理的なレイアウトが獲得される。
【０００３】
回路若しくはシステムの設計は、一般的な要求レベルから、多数の中間レベルを介して、物理的設計の下位詳細レベルまで進む。設計の連続的な各レベルは、回路若しくはシステムが設計仕様に適合することを保証するため、テスト又は検証される。
設計検証ステップが失敗した場合、典型的に、故障の考えられる原因を判定するため診断が呼び出される。回路を実際に物理的に実現する前の設計段階中に行われる診断は、一般的にエラー診断と呼ばれる。回路の物理的な実現後に行われる診断は、一般的に故障診断と呼ばれる。このようなエラー診断若しくは故障診断は、設計者並びにプロセスエンジニアに貴重な情報をフィードバックする。診断は、設計若しくは回路中の潜在的なエラー発生箇所を識別することができる。特定の設計若しくは回路は多数の素子を含み、検証段階では適切な挙動を実現するために調整を必要とする素子に関する情報が殆ど得られないので、潜在的なエラー発生場所の識別は役に立つ。これにより訂正が行われるべき候補の集合が制限されるので、設計若しくは回路を訂正する操作の時間及び複雑さが著しく軽減される。
【０００４】
【発明が解決しようとする課題】
従来技術において、エラー診断は、主として信号エラーの診断に集中している。また、エラー診断方法は、屡々、見つけられるエラーのタイプに関して制限される。したがって、エラー診断方法は範囲が限られている。また、このエラー診断方法を多重エラーの診断に拡張することにより、エラー箇所検出に間違いが発生し、エラー箇所検出を実行するため余分な時間が必要になる。
【０００５】
上記の通り、故障診断は、設計フローの製作段階のデジタル回路内で故障箇所を見つけるプロセスである。故障診断は、回路内の故障の原因を判定するためデジタル回路の特定の部分を検査する。集積回路のシリコンに導入された塵粒子による短絡、不適切なはんだ付け、或いは、間違った配線のような製造誤差若しくは製作欠陥は、故障の例である。
【０００６】
従来の故障診断の方法は、エラー診断の方法と類似した制限がある。これらの方法は、単一の故障若しくはエラーを識別するが、多数の故障若しくはエラーを正確に識別することは難しい。しかし、多数のエラー若しくは故障を取り扱う診断の能力は、デジタル回路が複雑化すると共に重要性が増加し始めている。
本発明は、回路設計内の潜在的なエラー若しくは故障個所を判定する方法及び装置の提供を目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載された発明は、所定のテストベクトルを回路設計及び回路仕様に与えたときに、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが上記回路設計内で起こり得る箇所を判定するコンピュータを使用する方法であって、
上記回路設計内で候補ノードのリストを作成する段階と、
上記回路設計にテストベクトルを与える段階と、
０と１とＸの３値論理システムの論理値Ｘを上記候補ノードに設定する段階と、
上記回路設計の上記出力挙動が上記候補ノードに論理値Ｘを設定した結果として変化したかどうかを判定する段階とを有する。
【０００８】
請求項１４に記載された発明は、主入力、主出力、及び、上記主入力と上記主出力の間に有る中間ノードを有する第１の回路表現内で起こり得るエラー箇所に関する情報を判定する方法であって、
上記第１の回路表現の上記主入力にテストベクトルを与える段階と、
上記中間ノードの候補ノードの集合、上記主入力、又は、上記主出力に値Ｘを与える段階と、
上記テストベクトル及び上記値Ｘが与えられた結果として得られた上記主出力を、上記テストベクトルが与えられた第２の回路表現の主出力と比較する段階とを有する。
【０００９】
請求項２０に記載された発明は、論理値が割り当てられたノードを含む論理関数によって相互連結された主入力の集合及び主出力の集合を有する回路設計におけるエラー箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力に特定のテストベクトルに対応した値が割り当てられたときに、上記回路設計の少なくとも１個の主出力に対する所望の応答を指定させるコードと、
上記特定のテストベクトルに対応した値を上記主入力に割り当てさせるコードと、
ノードの候補集合の論理値を、３値論理システムの３種類の値の中のいずれかの値である値Ｘに変更させるコードと、
上記少なくとも１個の主出力を評価させるコードとを有する。
【００１０】
請求項２１に記載された発明は、ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力からの論理値を上記回路を通じて上記主出力に伝搬させるコードと、
上記主入力の伝搬のシミュレーションの間にノードの集合における論理値を値Ｘで置換させるコードと、
３値論理シミュレーションによって上記値Ｘを次の論理部品に伝搬させるコードと、
候補ノードをランク付けさせるコードと、
上記候補ノードから診断推論を導出させるコードとを有する。
【００１１】
請求項２２に記載された発明は、ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
Ｘリストの集合を作成させるコードと、
理想的な条件及びＸリストによる影響を受けたテスト条件における上記回路の上記主出力を検査させるコードと、
理想的な条件及びテスト条件における上記主出力を比較することによって示されたエラー若しくは故障箇所を見つけさせるコードとを有する。
【００１２】
請求項２３に記載された発明は、ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるコンピュータシステムであって、
論理値に関してエラー若しくは故障をカバーする手段と、
エラー及び故障を含まない上記回路の上記主出力での予測応答を指定する手段と、
上記回路の上記主入力に刺激を与える手段と、
論理値に関して上記主入力が上記回路を通って上記主出力に達する伝搬を表現する手段と、
上記主入力の伝搬のシミュレーション中にノードの集合での論理値を値Ｘで置換する手段と、
３値論理シミュレーションによって上記値Ｘを次の論理部品に伝搬する手段と、
候補ノードをランク付けする手段と、
上記ランク付けされた候補ノードからエラー及び故障箇所を見つける手段とを有する。
【００１３】
請求項３７に記載された発明は、主入力及び主出力を有する回路設計において、所定のテストベクトルを上記回路設計及び回路仕様に適用した場合に、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが起こり得る箇所を判定するためコンピュータを使用する方法であって、
テストベクトルを上記回路設計に適用する段階と、
上記回路設計内で、少なくとも一部の入力が上記テストベクトルによって決定され、少なくとも一部の上記主出力が少なくとも一部の出力の値に依存する値を有するような入力及び出力を有する候補ノードのリストを作成する段階と、
上記回路仕様の出力挙動と一致した上記回路設計の出力挙動を得るため上記出力の要求された値を決定する段階とを含む。
【００１４】
エラー若しくは故障が存在する場合、所定のテストベクトルが回路設計及び回路仕様の両方に適用されたときに、回路設計の出力挙動は回路仕様の出力挙動と一致しない。一実施例において、候補ノードのリストが作成され、このリストは回路設計内のノードにより構成される。テストベクトルは回路設計に適用され、候補ノードは、値Ｘに設定される。この値Ｘは、０，１，Ｘの３値論理システムの論理値である。テストベクトルを適用した後の回路の出力挙動は、候補ノードをＸに設定することにより判定される。エラー確率は、回路設計の出力挙動が候補ノードをＸに設定する結果として変化するかどうかに依存して候補ノードのリストに割り当てられる。エラー確率は出力挙動が変化する場合に増加し、出力挙動が変化しない場合に減少する。
【００１５】
別の候補ノードのリストが作成され、テストベクトルは回路設計に適用され、別の候補ノードはＸに設定される。回路設計の出力挙動は再度判定され、エラー確率が別の候補ノードの割り当てられる。この処理は、他の候補ノード及び他のテストベクトルに対し繰り返され、回路設計の出力挙動が判定され、エラー確率が割り当てられる。本発明の種々の実施例において、出力挙動の比較は、回路設計、物理的設計、及び、回路仕様の種々の組合せの間で行われる。
【００１６】
一部の実施例の場合に、候補ノードは、領域ベースモデル、トポロジカルベースモデル、カットベースモデル、レジスタ・トランスファー・レベル・ベースモデルを含むエラーモデルを使用して決められる。回路内のエラー若しくは故障を識別するモデルの信頼性のレベルは、誤り確率の割り当ての際に使用される。エラー若しくは故障モデルと関連して、本発明の方法及びシステムは、例えば、モデルがエラー若しくは誤りを正確に包含する場合に、エラー若しくは誤りがノードの集合で完全に得られることを保証する。
【００１７】
本発明の一実施例において、候補ノードは入力及び出力を有し、上記入力の少なくとも一部分は上記テストベクトルによって決定され、主入力の少なくとも一部分は上記出力の少なくとも一部分の値に依存した値を有する。回路仕様の出力挙動と一致した回路設計の出力挙動を得るために要求される出力の値が決められる。上記入力の少なくとも一部分と上記出力の少なくとも一部分の間の関係が決定され、その関係を用いて上記テストベクトルの適用時に要求された値を有する上記出力の少なくとも一部分が得られる。
【００１８】
別のテストベクトルが回路設計に適用され、回路仕様の出力挙動と一致する回路設計の出力挙動を得るため要求される別の出力の値が決められる。上記入力の少なくとも一部分と上記出力の少なくとも一部分との間の別の関係が決定され、その別の関係を用いて上記別のテストベクトルの適用時に要求された別の値を有する上記出力の少なくとも一部分が得られる。誤り確率は候補ノードのリストに割り当てられる。誤り確率は、上記テストベクトル及び上記別のテストベクトルの適用時に、上記入力の少なくとも一部分と上記出力の一部分との間の一貫性に依存する。
【００１９】
この処理は、決定されたテストベクトルの適用時の上記入力の少なくとも一部分と上記出力の少なくとも一部分との間の関係、並びに、割り当てられた誤り確率を用いて、他のテストベクトル及び他の候補ノードのリストに対して繰り返される。また、記号論理変数と二分決定グラフは、上記出力の少なくとも一部分に対し要求された値を決定するため使用される。
【００２０】
【発明の実施の形態】
本発明の上記特徴並びに他の特徴は、添付図面と共に以下の詳細な説明を参照することによって明らかになり、より良く理解される。
Ｉ．  概説
本発明の課題は、回路又はシステム内で起こり得るエラー若しくは故障箇所、特に、多数の設計上のエラー若しくは故障を含む可能性がある領域を見つける方法及びシステムである。本発明の方法は、ランク付けされたノードの集合を生成し、最高ランクのノード又はノード集合はエラー若しくは故障箇所である可能性が最も高い。本発明の方法及びシステムは、ノード集合で起こり得るすべてのエラー若しくは故障を解析するため、３値論理シミュレーション又は記号論理シミュレーションを使用する。本発明の方法及びシステムは、エラー若しくは故障モデルと組み合わされて、モデルがエラー若しくは故障を厳密に包含する場合に、ノード集合におけるエラー若しくは故障が識別されることを保証する。本発明の方法及びシステムは、すべての起こり得るエラー若しくは故障について解析された識別された候補ノード集合を使用する。本発明の方法及びシステムによって得られる結果は、潜在的なエラー若しくは故障箇所に関して設計者に貴重なフィードバック情報を与え、自動回路訂正を行う訂正ツールと組み合わせて使用することができる。フィードバック情報は、実装上の回路の挙動が仕様上の回路の挙動と一致することを保証するため訂正が行われ得る候補集合を制限する。
【００２１】
Ａ．  Ｘリストベース解析について
Ｘリストベース解析は、Ｘリストと称されるノード集合が、エラー若しくは故障に起因した誤りのある挙動を生成するかどうかを判定する。Ｘリストとは、実際の値がシミュレーション中にＸ値によって置換されるノードの集合（ノード集合）である。ノード集合は、回路上の同一領域内に存在する必要はなく、回路全体に点在していても構わない。Ｘ値は、３状態論理システムの一つの状態であり、他の二つの状態は０及び１である。このＸ値は非可算的である（数えられない）。したがって、多様な発生源からの論理演算の結果に関する結論を出す必要がない。Ｘ値は数え上げても良いが、解析の複雑さを増大させるので、好ましくはない。システムシミュレーション中に、Ｘ値は、３値論理シミュレーションを使用して次のノードに伝搬される。論理シミュレーションの値は、仕様、設計、若しくは、回路のいずれかのシステムを介して仕様、設計、若しくは、回路の主出力まで伝搬する論理値０、１又はＸを有する信号を意味する。
【００２２】
図１には、Ｘリストによって識別された領域又はノード集合を含む設計表現が示されている。この設計表現には、０若しくは１の何れかに設定される多数の主入力１３が含まれる。回路の領域１１はＸリストにより構成され、領域内のすべてのノードはＸリストのメンバーである。濃淡を付けられた領域の出力は、すべてＸに設定される。したがって、回路の出力１５は、値０、値１若しくは値Ｘを取る。
【００２３】
回路の主入力、同一若しくは他のＸリストからの出力、又は、３種類すべての出所側からの出力は、Ｘリストへの入力を与えることができる。Ｘリストからの出力は、回路の主出力への入力、同一若しくは他のＸリストへの入力、又は、３種類すべての宛先側への入力に供給することができる。
回路設計は、屡々、テストベクトルと称される値の集合を設計の主入力に供給することによってテストされる。各テストベクトルは主出力側で予測される応答と関連する。主出力側の実際の応答が予測応答と一致しない場合、設計は、個の設計用の仕様と一致しない。
【００２４】
Ｘリストによって定義された領域を含む回路の主入力側に与えられたテストベクトルは、起こり得るエラー箇所に関する情報を提供する主出力側応答を生成する。ノード集合であるＸリストを含む回路の出力応答が予測出力応答の応答とは逆の場合に、Ｘリストはテストベクトルによって表現されるエラー若しくは故障を全く含まない。Ｘリストを含む回路の応答がＸである場合、Ｘリストはエラー若しくは故障を含む。その理由は、ノード上の信号値の組合せはＸ値によって包含されるからである。
【００２５】
また、Ｘリスト１及びＸリスト２の２個のＸリストが選択され、Ｘリスト１から回路の主出力までのあらゆるパスがＸリスト２を通過しなければならない場合に、Ｘリスト１はＸリスト２の支配領域内にある。一方のＸリストの他方のＸリストに対する支配領域によって、支配Ｘリストは従属Ｘリスト内のエラーの挙動を獲得する。例えば、Ｘリスト２がＸリスト１を支配する場合、Ｘリスト１内のエラーはＸリスト２で獲得される。したがって、Ｘリスト２内のエラーをテストすることにより、Ｘリスト１内のエラーが必ずテストされる。
【００２６】
このように、Ｘリストを使用することにより、重要な診断推論がエラー若しくは故障の起こり得る箇所、並びに、特定のテストベクトルによって表現されたエラー若しくは故障を含まない箇所に関して導出される。これにより、テストベクトルの組は、ある程度まで回路の設計をカバーし、エラー若しくは故障の無い回路若しくは設計の部分に関する情報と、エラー若しくは故障を含む設計若しくは回路の部分に関する情報とが取得される。説明の都合上、以下、用語「故障」及び「エラー」は互換的に使用される。
【００２７】
１．  エラー解析の例について
図２の（Ａ）〜（Ｄ）には、Ｘリストを用いることにより導出される診断推論がよりよく理解されるように設計及びＸリストの例が示されている。図２の（Ａ）〜（Ｄ）には、４種類のシミュレーションが示される。
図２の（Ａ）には、主入力２２ａが指定された値に設定されたときに主出力２２ｂの予測挙動を与える仕様２１のシミュレーションが示されている。同図に示されるように、第２の主出力２２ｃは、主入力が特定のテストベクトルで与えられる場合に、論理０をとると予測される。
【００２８】
図２の（Ｂ）には、同図の（Ａ）に示された仕様に対し、故障を含む実装、すなわち、回路のシミュレーションが示されている。図２の（Ｂ）の故障を含む実装の場合に、第２の出力２４ｃは、主入力にテストベクトルが与えられたときに論理１である。したがって、図２の（Ｂ）の故障を含む実装は、少なくとも１個のエラーを含む。
【００２９】
図２の（Ｃ）には、図２の（Ｂ）の故障を含む実装がＸリストによって識別されるノード集合を含む場合のシミュレーションが示されている。ＸリストＡによって識別されたノード集合の影響のため、第２の主出力２６ｃは、主入力に特定のテストベクトルが与えられた場合に論理Ｘである。
図２の（Ｄ）には、図２の（Ｂ）の故障を含む実装が第２のＸリストＢによって識別される第２のノード集合を含む場合のシミュレーションが示されている。この故障を含む実装の第２の主出力２８ｃは、主入力に特定のテストベクトルが与えられた場合に論理１に設定される。
【００３０】
故障のある実装２３と、ＸリストＢを含む故障のある実装の両方の第２の主出力は一致するため、領域Ｂ内のノードだけによって構成される多重エラーの組合せは、回路内のエラーを説明できない。エラーがＸリストＢの領域内のノードで生じたとき、領域内のノードをＸ値に変更することによって、シミュレーションはＸ値を第２の主出力に伝搬させる。したがって、故障のある実装のシミュレーション２７は、ＸリストＢ内のノードが特定のテストベクトルを用いて識別されたエラーを説明できないという情報を与える。また、故障のある実装のＸリストＡを使用するシミュレーションは、ＸリストＡ領域内のノードが特定のテストベクトルによって識別できるエラーを説明できることを示唆する。
【００３１】
同様の理由から、仕様シミュレーション２１及びＸリストＢを使用する故障のある実装のシミュレーション２７の第２の主出力の比較は、エラーがＸリストＢ内に存在しないかどうかを判定するため実行され得る。仕様シミュレーション２１及びＸリストＢシミュレーション２７の第２の主出力が一致しない場合、領域Ｂ内のノードだけにより構成される多重エラーの組合せは、回路内のエラーを説明できない。この推論は、故障シミュレーション２３の主出力をＸリストによって影響された仕様シミュレーション主出力と比較する場合に拡張することができる。この場合、故障シミュレーション２３及びＸリストによる影響を受けた仕様シミュレーションの主出力が一致しないならば、Ｘリスト内のノードだけによって構成された多重エラーの組合せは回路内のエラーを説明できない。しかし、故障回路を仕様に一致させようとするのではなく、仕様が故障回路に一致するように操作される。
【００３２】
２．  故障解析の例について
図３には回路設計の例が示されている。この回路は、ＰＩ1 〜ＰＩ5 と表記された第１〜第５の入力５１ａ〜５５ａと、ＰＯ1 及びＰＯ2 と表記された第１及び第２の出力５６ａ及び５７ｂを含む。第１〜第６のＮＡＮＤゲート６１ａ〜６６ａは、主入力と主出力の間に設けられる。第１のＮＡＮＤゲート６１ａは、入力として第１の入力ＰＩ1 及び第３の入力ＰＩ3 を受信し、出力として第１の中間信号ＩＮＴ1   ７０を有する。第２のＮＡＮＤゲート６２ａは、入力として第３の主入力ＰＩ3 及び第４の主入力ＰＩ4 を有し、出力として第２の中間信号ＩＮＴ2   ７２を有する。第３のＮＡＮＤゲート６３ａは、入力として第２の主入力ＰＩ2 及び第２の中間信号ＩＮＴ2 を有し、出力として第３の中間信号ＩＮＴ3   ７４を有する。第４のＮＡＮＤゲート６４ａは、入力として第５の主入力ＰＩ5 及び第２の中間信号ＩＮＴ2 を有し、出力として第４の中間信号ＩＮＴ4   ７６を有する。第５のＮＡＮＤゲート６５ａは、入力として第１の中間信号ＩＮＴ1 及び第４の中間信号ＩＮＴ4 を有し、出力として第１の主出力ＰＯ1 を有する。第６のＮＡＮＤゲート６６ａは、入力として第３の中間信号ＩＮＴ3 及び第４の中間信号ＩＮＴ4 を有し、出力として第２の主出力ＰＯ2 を有する。
【００３３】
図４には、図３に示された回路設計に故障が含まれる場合の実装が示されている。図４の実装の場合に、第３のＮＡＮＤゲートは、故障に起因してＡＮＤゲート６１に代わっている。それ以外の点で図３の回路設計と図４の回路実装は同一である。
本発明を説明するため、２組のテストベクトルが設計及び実装の主入力に導入される。テストベクトルの適用によって、設計及び実装内に信号が伝搬する。第１のテストベクトルは０１１１１である。換言すると、第１の主入力ＰＩ1 は０に設定され、第２の主入力ＰＩ2 は１に設定され、第３の主入力ＰＩ3 は１に設定され、第４の主入力ＰＩ4 は１に設定され、第５の主入力ＰＩ5 は１に設定される。第１のテストベクトルの適用によって、第３のＮＡＮＤゲート６３ａの出力側のノード７４が論理１に設定される。また、第１のテストベクトルの適用よって、第１の中間信号ＩＮＴ1 は１に設定され、第２の中間信号ＩＮＴ2 は０に設定され、第４の中間信号ＩＮＴ4 は１に設定される。したがって、第１の主出力ＰＯ1 は０に設定され、第２の主出力ＰＯ2 は０に設定される。
【００３４】
しかし、第１のテストベクトルを図４の実装に適用すると、主出力に異なる応答が生じる。第１のテストベクトルを適用することにより、ＡＮＤゲート６１の出力側のノード９１ｂは１ではなく０に設定され、その結果として、第１の主出力ＰＯ1 は０に設定され、第２の主出力ＰＯ2 は１に設定される。
同様に、第２のテストベクトル０１０００を設計及び実装の主入力に適用することによって、主出力の挙動に異なる結果が生じる。第２のテストベクトルを設計に適用することによって、第１の主出力は０に設定され、第２の主出力は１に設定される。しかし、実装の場合に、第２のテストベクトルを適用することによって、第１の主出力は０に設定され、第２の主出力は０に設定される。
【００３５】
ノード９１ｂの信号が不明、すなわち、Ｘ値とされた場合、ノード９１ｂで起こり得るすべての誤りのある挙動が捕捉される。第１又は第２の何れかのテストベクトルが故障回路に与えられ、ノード９１ｂの信号がＸ値で保持されるとき、第１の主出力ＰＯ1 は論理０であり、第２の主出力ＰＯ2 は値Ｘである。したがって、主出力ＰＯ1 及びＰＯ2 の起こり得る誤りの組合せを含むすべての論理値の組合せは、ノード９１ｂのＸ値によって捕捉される。
【００３６】
これに対し、従来の数通りの故障診断方法は、単一のノードが０（ｓ−ａ−０）又は１（ｓ−ａ−１）に保持されたときに回路の応答を検査する。換言すると、ノード９１ｂにおける信号は、１又は０の固定した論理値に設定、或いは、保持される。
ノード９１ｂの信号が論理０に保持された場合、第１のテストベクトル０１１１１及び第２のテストベクトル０１０００が図４の故障回路の主入力に与えられたとき、第１の主出力ＰＯ1 は論理０であり、第２の主出力ＰＯ2 は論理１である。或いは、ノード９１ｂの信号が論理１に保持されると、第１のテストベクトル０１１１１及び第２のテストベクトル０１０００のいずれか一方が図４の故障回路の主入力に与えれたとき、主出力ＰＯ1 及びＰＯ2 は共に論理０である。
【００３７】
ノード９１ｂの信号が論理０に保持された故障モデルは、第２のテストベクトル０１０００が故障回路に与えられたときに、論理０に設定された第２の主出力ＰＯ2 を捕捉できない。逆に、ノード９１ｂの信号が論理１に保持された故障モデルは、第１のテストベクトル０１１１１が故障回路に与えられたときに、論理１に設定された第２の主出力ＰＯ2 を捕捉できない。そのため、ノード９１ｂで起こり得るすべての誤った挙動は、１に保持された故障診断モデル、或いは、０に保持された故障診断モデルのいずれによっても包含されない。
【００３８】
表１には、図３及び４の例示的な回路の種々の故障診断に対する応答が要約されている。表１は、優良な回路、故障回路、ノード９１ｂが０に保持された故障回路、ノード９１ｂが１に保持された故障回路、及び、Ｘリストを含む故障回路によって生成された主出力応答が列挙されている。Ｘリスト解析技術は、デジタル回路内にエラー若しくは故障が含まれる場合と等価的に機能する。
【００３９】
【表１】
0004557337.tif 000002
【００４０】
Ｂ．  エラー若しくは故障モデルについて
Ｘリストを用いることによって生成される強力な診断推論は、エラー若しくは故障モデルを使用することによって更に支援される。エラー若しくは故障モデルの使用によって、回路内のエラー箇所の識別に関する改良された結果が得られる。エラーモデルはノードを選択するために使用される。エラーモデルの例には、トポロジカルエラーモデルと老域ベースエラーモデルの２種類のエラーモデルが含まれる。トポロジカルエラーモデルは回路内のノードの位相的な分類に基づいている。領域ベースエラーモデルは、ノードの周辺領域内の一定したファンの範囲内のゲートに基づいている。
【００４１】
位相的に制限されたエラーに対し、回路のノードに基づいて位相的な順序Ｔ、Ｔ＝（ｔ1 ，ｔ2 ，．．．，ｔn ）が指定される。
集合Ｅ内のノードにおける論理関数が誤りを含み、ノードが以下の条件を満たすとき、エラーは位相的に制限されたエラーと呼ばれる。
Ｅ＝（ｅ1 ，ｅ2 ，．．．，ｅk ）
かつ
∃ｉ，ｊ（１≦ｉ≦ｊ≦ｎ）に対し、
｛ｉ≦ｅl ≦ｊ，∀ｌ｜１≦ｌ≦ｋ｝
整数ｉ，ｊはエラーが存在する下限及び上限を表し、ｊ−ｉ＋１はエラーの範囲と称される。
【００４２】
領域ベースエラーは、ノードの論理関数が不正確であり、エラーが回路内のノードの半径Ｒの構造的距離内に存在する場合のエラーである。このモデルの場合に、領域は、ノード間の構造的距離に基づいて互いに近接したノードを含む回路内で定義される。
集合Ｅ内のノードの論理関数が間違いであり、ノードが以下の条件を満たす場合に、エラーは半径ｒの領域ベースエラーと呼ばれる。
【００４３】
Ｅ＝（ｅ1 ，ｅ2 ，．．．，ｅk ）
かつ
∃ｐ（１≦ｐ≦ｎ）に対し、
構造的距離（ｅl ，ｐ）≦ｒ
エラーモデルの別の例は、カットベースエラーモデル及びレジスタトランスファーレベル（ＲＴＬ）ベースエラーモデルである。
【００４４】
ＲＴＬベースエラーは、ノードの論理関数が間違いであり、エラーが階層的設計内の回路の下位レベルモジュール又は上位レベルモジュールに存在する場合に生ずるエラーである。
カットベースエラーは、ノードの論理関数が間違いであり、ノードが回路にカット領域を形成する回路内の一定の部分集合の範囲内に存在するときに生ずるエラーである。カット領域とは、回路の任意の主入力からの信号が回路の任意の主出力に到達するため通過しなければならない領域である。
【００４５】
Ｘリストを発生させるためには、領域ベースエラーモデル、トポロジカルエラーモデル、カットベースエラーモデル、若しくは、ＲＴＬベースエラーモデルのいずれのエラーモデルを使用してもよい。後述するように、すべてのエラー箇所を含むノード集合を判定することは、診断中のエラーがエラーモデルによって表現されたタイプのエラーである場合に実現可能である。
【００４６】
また、診断中のエラーがエラーモデルによって表現されたタイプのエラーではなくても、有用な情報がＸリスト診断アプローチを用いて提供される。
ＩＩ．  診断について
上記の通り、解析技術は、エラー診断及び故障診断のため巧く動作する。本質的な診断方法は相違しない。しかし、エラー診断と故障診断を設計フローの異なる段階で呼び出すことは、ある種の微妙な差を診断プロセスに加える可能性がある。
【００４７】
表２には、エラー箇所診断を実行するプロセスが示されている。このプロセスは、複数のＸリスト及びテストベクトルが与えられる。このプロセスは、テストベクトルと関連したすべてのエラーを含むＸリストの尤度（もっともらしさ）を示すスコアをＸリスト毎に付与し、Ｘリストにすべてのエラーが含まれている可能性が無いということを示すスコアが付与されたＸリストを考慮しない。
【００４８】
【表２】
0004557337.tif 000003
【００４９】
Ａ．  エラー診断について
エラー診断は、回路が実際に製作若しくは製造される前の設計フローの段階で、回路設計にエラーが有る場合に呼び出される。したがって、エラーは、回路の要求条件を指定する仕様中の主出力応答を、回路のコンピュータ表現、すなわち、設計の主出力応答と比較することにより判定される。仕様とは、一般に、設計者によって作成された文書であり、仕様回路の主出力の期待される応答が記述されている。仕様は文書に制限されないが、Ｃ言語プログラム、ハードウェア記述言語の形式、或いは、その他の類似した形式による回路表現でもよい。いかなる形式であっても、仕様は仕様回路の期待される応答を記述する。
【００５０】
回路のコンピュータ表現は、ハードウェア記述言語若しくは他の類似した手段を用いて回路を記述するコンピュータ表現である。コンピュータモデル回路の主出力の応答は、コンピュータモデル回路の主入力をシミュレーションし、回路に論理値を伝搬させ、回路の主出力を検査するシミュレーションツールによって判定される。シミュレーションツールは、従来技術において公知であり、３値論理若しくは記号論理を取り扱うことができる任意のシミュレーションツールをこのプロセスと共に使用することができる。シミュレーションツールは、クロックによって指定された時間周期、或いは、クロックで指定されていない時間周期に亘って回路全体の論理値を判定することができる。また、シミュレーションツールは、ノードにおける値をＸ値に置き換える。したがって、仕様の主出力と、Ｘリストの影響を受けたコンピュータ表現回路の主出力の比較は、コンピュータで容易に実現される。
【００５１】
一実施例において、３２個の主出力が疑似並列形式で同時に検査される。勿論、最大３２個の出力の処理によってすべての主出力が検査されるならば、プロセスのこの部分は完全に並列的である。
図５には、Ｘリストを使用して多重設計エラー若しくは故障の箇所を見つけるプロセスのフローチャートが示されている。回路又は設計は、ステップ６１で検証される。検証は、自動テストプログラムツール、或いは、形式検証技術を用いて行われる。ステップ６３において、テスト中のユニットの検証が成功したかどうかが判定される。テスト中ユニットが検証ステップのテストに合格した場合、このプロセスは終了する。一方、テスト中のユニットが１個以上の故障若しくはエラーを含む場合、このプロセスはステップ６５に進み、Ｘリストが作成される。Ｘリストは、トポロジカルエラーモデル、領域エラーモデル、又は、その他の技術を用いて作成される。ステップ６７において、このプロセスは、既にテストベクトルの組が存在するならば、テストベクトルを選択する。テストベクトルの組が利用できない場合には、このような組を作成する必要はない。ステップ６９において、このプロセスはＸリストを選択する。ステップ７１において、このプロセスは、ステップ６９で選択されたＸリストを利用してテスト中のユニットを評価する。テスト中ユニットが物理的な回路である場合、Ｘリストはこの回路の表現に必ず適用されるべきである。図６を参照してより詳細に説明されるこの評価ステップは、テストベクトルを回路又は設計に適用し、このテストベクトルをＸリストが適用される設計に適用する。テストベクトルの適用後、２個のエントリーの主出力が比較される。
【００５２】
ステップ７１においてテスト中ユニットを評価した後、プロセスは、ステップ７３でＸリストの相対ランク付けを更新する。所定の設計回路内のすべてのエラーを含む可能性が最も高いＸリストは最上位にランク付けされ、すべてのエラーを含む可能性が最も低いＸリストは最下位にランク付けされる。ステップ７５において、このプロセスは、すべてのＸリストが１個のテストベクトルに対して使用されたかどうかを判定する。評価用のＸリストが未だ残っている場合、プロセスはステップ６９に戻る。特定のテストベクトルに関して別の評価用のＸリストが未だ残っている場合、このプロセスは、テストベクトルの組の中のすべてのテストベクトルが評価のため使用されたかどうかを判定する。テスト用の別のベクトルが未だ残っている場合、プロセスはステップ６７に戻る。それ以外の場合、このプロセスは終了する。
【００５３】
図６には、テスト中ユニットを評価するプロセスのフローチャートが示されている。ステップ８１において、このプロセスは、テストベクトルをテスト中のユニットの仕様に適用する。ステップ８３において、このプロセスは、テストベクトルを、Ｘリストが適用された故障実装に適用する。ステップ８５において、プロセスは、仕様及び故障実装から対応した主出力を選択する。ステップ８７において、このプロセスは仕様から選択された主出力を、実装から選択された対応した主出力と比較する。仕様の主出力が実装の主出力と一致する場合、このプロセスは、ステップ８８において、一致カウントをＸリストスコアに追加する。仕様の主出力と実装の主出力の間の一致は、実装側の主出力が正しいということを示す。実装の主出力の値がＸ値であり、実装の主出力が仕様の主出力と部分的に一致する場合、プロセスは、ステップ８９において、部分一致カウントをＸリストスコアに追加する。仕様の主出力が実装の主出力と一致しない場合、或いは、仕様の主出力が実装の主出力の反転である場合、プロセスは、ステップ９０において、不一致カウントをＸリストスコアから減算する。
【００５４】
ステップ９２において、このプロセスは、Ｘリストスコアがある閾値を超えるかどうかを判定する。Ｘリストスコアが閾値を超えるとき、このプロセスは終了し、このプロセスの呼び出し側に戻る。さもなければ、このプロセスは、ステップ９４において、すべての主出力が検査されたかどうかを判定する。検査されるべき別の主出力が未だ残っている場合、プロセスはステップ８５に戻る。さもなければ、このプロセスは呼び出し側に戻る。
【００５５】
コンピュータモデル回路の主出力を、Ｘリストの影響を受けている同じコンピュータモデル回路の主出力と比較することは、診断プロセスでも使用され得る。主要な相違点は、一致の定義が変わることである。図６を再度参照して、診断プロセスの場合について説明すると、ステップ８１及び８３において、故障実装と、Ｘリストの影響を受けた故障実装との間で比較が行われる。したがって、ステップ８１において、仕様の代わりに故障実装応答が比較される。一致と不一致の定義も逆になる。一致は、（０，１）若しくは（１，０）の値の組合せの場合に生じ、不一致は、（０，０）若しくは（１，１）の値の組合せの場合に生ずる。しかし、故障実装とＸリストの影響を受けた故障実装との間の差はＸリストしかないので、一致が生じることはない。Ｘ値は、故障実装の出力応答を反転させることはない。Ｘ値は、故障実装にＸの出力応答を生成させるだけである。
【００５６】
このプロセスは、一致及び不一致の値を反転させ、不一致を減算するのではなくスコアに加算し、一致をスコアに加算する代わりにスコアから減算することによっても変更することが可能である。この場合、一致及び不一致の定義を変更する必要はない。したがって、図６に示されたプロセスには、Ｘリスト候補のスコアを得るために、故障実装とＸリストの影響を受けた故障実装との比較、仕様とＸリストの影響を受けた故障実装との比較、及び、故障実装とＸリストの影響を受けた仕様との比較などを使用する多数の変形例が存在する。しかし、このプロセス内の各変形は、比較の一致若しくは不一致が、Ｘリスト内のノードだけにより構成された多数のエラーの組合せは回路内のエラーの原因にはなり得ないことを表現するという一つの主要な診断推論を強調する。その結果として、このＸリストは残りのＸリストよりも低いスコアを受ける。
【００５７】
Ｂ．  故障診断について
故障診断は、故障が設計フローの製作又は製造段階で見つかったときに呼び出される。診断プロセスは、Ｘリストによる影響を受けた回路のコンピュータ表現の主出力応答を、故障回路の主出力応答と比較することによりエラーを判定する。製造段階において、回路のコンピュータ表現の主出力応答は、エラーを含まない回路である仕様の主出力応答と一致する。故障回路は、回路設計から作成された物理的なチップである。故障チップは故障若しくは多数の故障を含む。
【００５８】
エラー診断の場合と同様に、回路のコンピュータ表現は、ハードウェア記述言語又は他の類似した手段を用いて回路を記述するコンピュータモデルである。コンピュータモデル回路の主出力の応答は、コンピュータモデル回路の主入力をシミュレーションし、回路内に論理値を伝搬させ、回路の主入力を検査するシミュレーションツールによって決定される。シミュレーションツールは、ノードの値をＸ値に置換する。したがって、故障回路の主出力と、Ｘリストの影響を受けた回路のコンピュータ表現の主入力との比較は、コンピュータによって容易に実現される。Ｘリストを実際の物理的回路に適用することに困難さが生じるのに伴って、Ｘリストは設計に適用される。それ以外の場合に、故障診断方法はエラー診断アルゴリズムと類似している。
【００５９】
他の例の場合に、仕様の主出力応答は、Ｘリストの影響を受けた故障回路の主出力応答と比較される。実装は、Ｘリストによる影響を受けた回路のコンピュータ表現の主出力応答を故障回路の主出力応答と比較する上記の実装と類似している。
図６のステップ８８、８９及び９０に示された一致カウント、部分一致カウント、不一致ペナルティは、入力パラメータを表わす。３個の入力パラメータに値を割り当てることにより、エラーモデルの確信度が診断プロセスに与えられる。一致カウント及び不一致ペナルティに大きい値を割り当てることは、高い確信度が所定のエラーモデルに関連付けられていることを診断プロセスに知らせる。逆に、小さい値が一致カウント及び不一致ペナルティに割り当てられていることは、低い確信度がエラーモデルに関連付けられていることを示す。エラーモデルの確信度が高いということは、回路のエラーがエラーモデルによって捕捉されることを意味する。エラーモデルの確信度が低いということは、回路内のエラーのタイプが不確実であることを意味する。
【００６０】
図６のステップ９２における閾値限界は別の入力パラメータを表現する。この閾値限界は、不一致が発生したとき後にＸリストのランク付けを終了させるように設定することが可能である。閾値限界の実際の数値は可変である。しかし、エラーのマッチングを行うモデルの確信度が高い場合、閾値限界は、不一致が１回発生した後に終了するように設定され得る。これにより、特定のＸリストに対し診断プロセスの高速トラバースが実現される。
【００６１】
また、閾値限界は、２回以上の不一致、或いは、一致、部分一致及び不一致の他の組合せを許容するように調節し得る。ランク付け中のスコアが閾値限界よりも低下しない限り、図６に示されるように、エラー若しくは故障診断のためのＸリストのランク付けが継続する。
Ｃ．  Ｘリストに基づく診断プロセスにおける位相的に制限されたエラーモデルの使用について
位相的にｋで制限された多数のエラー若しくは故障が存在する場合、以下に定義されるような重複Ｘリストを選択することによって、エラー箇所であるすべてのノードを含むあらゆるＸリストのスコアは、候補Ｘリストの中で最高スコアであることが保証される。
【００６２】
（１，  ２，  ．．．，  ２ｋ）
（ｋ＋１，  ｋ＋２，  ．．．，  ３ｋ）
（２ｋ＋１，  ２ｋ＋２，  ．．．，  ４ｋ）
（３ｋ＋１，  ３ｋ＋２，  ．．．，  ５ｋ）
・・・・・・・・・・・・・・・・・・・・
（（［ｎ／２ｋ］＋１）ｋ＋１，  ．．．．，  ｎ）
任意の位相的に制限されたエラー（ｉ＋１，．．．，ｉ＋ｋ）を考えると、エラーの各ノードを包含する少なくとも１個のＸリストが存在する。上記の入力パラメータを設定することにより、不一致だけにペナルティが科されることが保証される。Ｘリストの定義によって、すべてのエラーノードを含むＸリストに不一致は発生しないことが保証される。最低ノードがｉ＋１以下であり、最高ノードがｉ＋ｋ以上であるＸリストが存在する場合に、すべてのエラーノードを含むＸリストが見つかったことが保証される。そのようなＸリストが存在しない場合、末尾の指数がｉ＋１とｉ＋ｋの間に収まるＸリストが存在する。したがって、このようなＸリストに関する制限は、以下のように表される。
【００６３】
［ｉ＋ｐ−（２ｋ−１），ｉ＋ｐ］  但し、１≦ｐ≦ｋ−１
これは、重複Ｘリスト構造の場合に、以下のように制限される別のＸリストが存在することを意味する。
［ｉ＋ｐ−（ｋ−１），ｉ＋ｐ＋ｋ］  但し、１≦ｐ≦ｋ−１
これにより、このＸリストは、選択されたエラーからのすべてのノードを含むことが保証される。その理由は、
ｋ≧２，１≦ｐ≦ｋ−１
であるとき、
領域［ｉ＋ｐ−（ｋ−１），ｉ＋ｐ＋ｋ］
は、
領域［ｉ＋１，ｉ＋ｋ］
を包含するからである。
【００６４】
Ｄ．  Ｘリストに基づく診断プロセスにおけるＲＴＬベースエラーモデルの使用について
階層的な設計の場合に、設計若しくは回路は、高レベルモジュールに分割される。高レベルモジュール内に葉、下位レベルモジュールが含まれる。これらの下位レベルモジュールは、更なる下位レベルモジュールを含み、以下同様である。上位レベルモジュール内の下位レベルモジュールの挙動は、上位レベルモジュールによって捕捉される。
【００６５】
しかし、下位レベルモジュール内の回路の複雑さに起因して、多数のエラー若しくは故障が設計の下位レベル箇所を見つけることを困難にさせる。高レベルモジュールの出力をカバーするＸリストを作成することにより、下位レベルモジュールの間違った挙動が捕捉される。下位レベルモジュールがエラーを含む場合、その下位レベルモジュールが属している上位レベルモジュールのすべての出力を含むＲＴＬベースＸリストのスコアはすべての候補Ｘリストの中で最高位であることが保証される。
【００６６】
また、ハイレベルモジュールの各出力をカバーするＸリストの集合を作成することにより、下位レベルモジュールの間違った挙動を含む起こり得るすべての挙動が捕捉される。したがって、エラーを含まない下位レベルモジュールは、エラーを含む下位レベルモジュールを分離することを考慮することによって直ちに除去される。
【００６７】
Ｅ．  Ｘリストに基づく診断プロセスにおけるカットベースエラーモデルの使用について
カット若しくは設計はカット領域を形成するため分割され得る。カット領域は、回路の主入力からの入力信号が回路の任意の主出力に到達するために必ず通過しなければならない回路の一部分を表わす。
【００６８】
カット領域、又は、カット領域によって支配された領域の一部分がエラーを含む場合に、そのエラーがノードの部分集合内に収まるならば、カット領域内でノードの部分集合を含むカットベースＸリストのスコアは、候補Ｘリストの中の最高位であることが保証される。
また、各カット領域を包含するＸリストの集合は、カット領域の別の部分集合と、カット領域全体を一体的にカバーするＸリストの集合とをカバーするため作成される。したがって、Ｘリストの集合は、カット領域の間違った挙動を含む起こり得るすべての挙動を捕捉し得る。
【００６９】
Ｆ．  Ｘリストに基づく診断プロセスにおける領域ベースエラーモデルの使用について
回路内にノードｉと半径ｒとが存在し、エラー集合内の各ノードからノードｉまでの距離がｒ以下であるような多数のエラー若しくは故障が存在する場合を考える。回路内の各ノードで半径ｒによって領域ベースＸリストを選択することにより、ノードｉに中心が置かれたＸリストは、すべてのＸリストの中で最高位ランク付けスコアを達成することが保証される。
【００７０】
少なくとも１個のＸリストにすべてのエラー箇所を包含させることにより、すべてのエラーノードを含むＸリストに不一致が生じないことを保証できる。したがって、ノードｉに中心が置かれたＸリストは最高位ランク付けスコアを獲得する。
このため、診断中のエラーのモデルタイプが既知であるとき、正確なエラー診断が実施可能である。この場合、エラーモデルの高い確信度は診断プロセスに伝搬される。入力パラメータを、一致カウント(match count) ＝０、部分一致カウント(partial match count) ＝０、及び、不一致ペナルティ(mismatch penalty)＝∞のように設定することにより、高い確信度レベルが診断プロセスに伝搬される。エラーモデルによってモデル化されたエラーが見つけられることが保証されるだけではなく、これらのエラーを識別するために必要な時間が削減される。
【００７１】
しかし、所定のテストベクトルの集合が不適当な場合に、最高位にランク付けされたＸリストの起こり得る数は、実際の見通しよりも多い。この問題を解決するため、入力パラメータは、一致の方が不一致よりも優良でるという直観と、不一致を与えるＸリストを上回る不一致を与えないＸリストをランク付けするための実践的なアプローチとに基づく診断プロセスを取り扱うための柔軟性を与える。不一致カウントが１０、部分一致カウントが５、不一致ペナルティが１０００の入力パラメータは、診断プロセスに上記の直観性と実践性の混合を与える。
【００７２】
また、テスト中のユニットの知識を含むエンジニアの専門知識は、設計者のような明示的なガイダンスの下でテストベクトルを選択することにより直接的に利用してもよい。設計者若しくは技術者は、回路動作、既知若しくは非常に確実な設計中の欠陥、又は、既知若しくは非常に確実な製作プロセス中の欠陥を含む多数の規準に基づいてテストベクトルを選択する。選択されたテストベクトルは、テスト中ユニットの主入力に与えられ、Ｘリストに基づいて多数の故障及びエラーを箇所を見つけるためシステムに導入される。テストベクトルは、自動テストツールによって自動的に生成されても構わない。
【００７３】
さらに、技術者若しくは設計者の知識は、上記の如く、一致カウント、部分一意カウント、不一致ペナルティ、及び、閾値限界などの診断プロセスの入力パラメータを設定することにより直接的に使用されてもよい。
ＩＩＩ．  多重エラー及び故障診断の一例について
図５及び６に示されたプロセスは、１個の付加的な故障を含むように図４に変更が加えられた図７の（Ａ）〜（Ｄ）に示された故障回路の故障個所を判定するため使用される。図４と図７の（Ａ）〜（Ｄ）との相違点である一つの付加的な故障とは、第６のＮＡＮＤゲートがＯＲゲートに置換されている点である。
【００７４】
図７の（Ａ）を参照するに、図４の回路の適用された２個のテストベクトルを図７の（Ａ）の回路に適用することによって、図７の（Ａ）の回路の主出力にエラーが生じる。特に、０１１１１であるテストベクトルＶ１が故障回路に適用された場合、回路の第１の主出力は０に設定され、回路の第２の主出力は１に設定される。図３を参照して詳細に説明された回路仕様は、第１のテストベクトルＶ１が回路に適用されたときに第２の主出力が０になることを要求するので、図７の（Ａ）の回路は故障している。また、０１０００に一致する第２のテストベクトルＶ２をこの回路に適用することにより、第１の主出力は０に設定され、第２の主出力は１に設定される。これは、図３を参照して詳細に説明された回路仕様の要求条件に適合している。
【００７５】
図７の（Ａ）のマルチ回路には、回路内の起こり得るエラー箇所を判定するため、３個のＸリストが適用される。第１のＸリストＡは、第１のＮＡＮＤゲートと第５のＮＡＮＤゲートとにより形成されたノードを含む。第２のＸリストＢは、ＡＮＤゲートとＯＲゲートとにより形成されたノードを含む。第３のＸリストＣは、第２のＮＡＮＤゲートと第４のＮＡＮＤゲートとにより形成されたノードを含む。
【００７６】
図７の（Ｂ）には、第１及び第２のテストベクトルをＸリストＡを含む故障回路の適用する例が示されている。このＸリストＡは、第１及び第２の両方のテストベクトルに対し第５の主出力をＸに設定する。このＸリストＡは第２の主出力のファンイン中にノードを含まない。したがって、第２の主出力の出力は故障回路の出力から変化しないまま保たれる。図７の（Ｂ）の回路で要求された主出力を、第１及び第２のテストベクトルに対し仕様によって要求された主出力と比較することにより、第１の主出力は、第１及び第２の両方のテストベクトルに対する仕様と部分的に一致することがわかる。その理由は、Ｘが０又は１と部分的に一致するからである。しかし、図７の（Ｂ）の回路の第２の主出力と、第１のテストベクトルＶ１が適用された仕様によって要求される第２の主出力との間に不一致が発生する。第２の主出力は、第２のテストベクトルＶ２が適用された仕様の第２の主出力と一致しない。したがって、第１及び第２のテストベクトルを適用することによって、２個の部分不一致と、１個の不一致と、１個の一致とが得られる。不一致の値が１０００、部分一致の値が５、一致の値が１０であるとき、ＸリストＡによって得られるスコアは−９８０である。
【００７７】
図７の（Ｃ）には、図７の（Ａ）の故障回路にＸリストＢが適用された場合の例が示されている。ＸリストＢを故障回路に適用しても、ＸリストＢは第１の主出力のファンインの完全に外側にあるので、第１の主出力に影響は生じない。しかし、ＸリストＢは、第２の主出力を生成するゲートを含む。かくして、第２の主出力は、ＸリストＢが故障回路に適用されるとき常に値Ｘである。このため、図７の（Ｃ）回路の第１の主出力は、第１又は第２の何れかのテストベクトルが回路に適用されたとき値０である。図７の（Ｃ）の回路の第２の主出力は、第１又は第２の何れかのテストベクトルが回路に適用されたとき値Ｘである。このとき、第１の主出力は、第１及び第２の両方のテストベクトルに対し仕様応答と一致し、第２の主出力は、第１及び第２の両方のテストベクトルに対し仕様と部分的に一致する。図７の（Ｂ）の回路に関して使用された数値と同じ数値を、一致、部分一致、及び、不一致に適用することによって、ＸリストＢはスコア３０を有する。
【００７８】
図７の（Ｄ）には、図７の（Ａ）の故障回路にＸリストＣが適用された場合の例が示されている。第１のテストベクトルＶ１をこの回路に適用することにより、第１のＮＡＮＤゲートの出力は値１に設定され、第４のＮＡＮＤゲートの出力は、ＸリストＣの適用によって値Ｘに設定される。したがって、第１の主出力に対応した信号を形成する第５のＮＡＮＤゲートは、入力に応じて値１と値Ｘとをとる。ＮＡＮＤゲートの出力は、ＮＡＮＤゲートへの何れかの入力が値０であるときに、値１であることが保証されているので、第５のＮＡＮＤゲートの出力は不確定、すなわち、値Ｘである。同様に、ＡＮＤゲートの出力は、ＡＮＤゲートへの何れかの入力が値０であるときに値０である。第１のテストテストベクトルＶ１を適用することにより、ＡＮＤゲートは入力として１及びＸを有する。したがって、ＡＮＤゲートの出力はＸである。ＯＲゲートへの入力は、ＸリストＣを適用した場合、Ｘである。第２のテストベクトルＶ２を使用することにより、第５のＮＡＮＤゲートへの入力として、値１及び値Ｘが与えられ、ＯＲゲートへの入力として、値Ｘ及び値Ｘが与えられる。したがって、ＸリストＣが適用された図７の（Ｄ）の回路の主出力は常にＸである。そのため、図７の（Ｄ）の主出力は、第１又は第２のテストベクトルが適用された仕様と常に部分的に一致する。先の例と同じ値を一致、部分一致、及び、不一致に対し使用することにより、ＸリストＣにはスコア２０が与えられる。
【００７９】
【表３】
0004557337.tif 000004
【００８０】
図７の（Ａ）の故障回路にＸリストＡ、ＸリストＢ及びＸリストＣを使用した結果が表３に示されている。最高スコアを有するＸリストＢは、すべての故障ノードを含む可能性が最も高いＸリストとしてランク付けされる。ＸリストＣは２番目にランク付けされ、ＸリストＡは明らかに関係が無いものとして示される。したがって、このプロセスは、すべての故障ノードを含むＸリストを最尤候補として正確に識別する。また、この結果から、一致と不一致は区別する方が望ましいことがわかる。
【００８１】
ＩＶ．  診断プロセスの正確度の改善について
ランク付けされ、分類されたＸリストの集合が与えられた場合に、ランク付けされたＸリストは一つずつ検査され、設計（若しくは回路）内のエラー（若しくは故障）の全部は含まないＸリストが除去される。Ｘリストのノードがすべてのエラーを含む場合、要求された回路挙動を実現するためＸリストのノードに訂正が行われる。これらのノードに訂正を行えないとき、Ｘリストはエラーの全部は含まないであろう。
【００８２】
設計の主入力に導入された任意のテストベクトルは、シミュレーションを用いて設計中に伝搬される。
設計内の定義された領域において、このテストベクトルの伝搬によって、領域に値が与えられる。また、この伝搬によって、領域は値を出力し、別の値が主出力に伝搬する。
【００８３】
一般的に、テストベクトルの部分集合であるテストベクトルの集合に対し、各テストベクトルは、同じ明瞭な値の集合を領域の入力に与える。この領域は、同じ入力値が与えられたとき、必ずしも異なる出力値を生成し得ない。したがって、適当な回路動作のため、同じ入力に対し異なる出力を生成するよう要求される設計内の領域を識別するＸリストは、特定のテストベクトルによって表現されたエラーの全部を含み得ない。
【００８４】
換言すると、Ｘリストによって定義された領域への入力を検査し、テストベクトルが設計に与えられたときに設計要求条件に適合するように領域に要求される出力を判定することにより、設計が設計要求条件に適合するような領域用の訂正関数が決められ得る。
しかし、テストベクトルがその領域に対し同じ入力ベクトルの集合を生成し、訂正関数を決めるために使用された出力とは異なる領域出力を必要とすることが判明した場合、そのＸリストによって定義された領域に対し訂正関数は作成できない。その結果として、Ｘリスト領域内だけの変更では要求された主出力挙動を生成できないので、エラーの全部をＸリスト内に格納することができない。
【００８５】
以下の表４には、Ｘリストを考慮対象から除去し、訂正関数を形成するプロセスが示されている。このプロセスは複数のＸリスト及びテストベクトルが与えられる。このプロセスは、ｋ番目のＸリストｎ対するｍ個のテストベクトルの特定のテストベクトル集合用の訂正関数、
Ｘk ＯｐｓＳｔＳｐｅｃＥｑＩｍｐｌＦｏｒＶｅｃＳｅｔkm
を作成する。また、このプロセスは、ｋ番目のＸリストに対するテストベクトル集合Ｖのｊ番目のエスとベクトル用の訂正関数
Ｘk ＯｐｓＳｔＳｐｅｃＥｑＩｍｐｌＦｏｒＶｅｃvj
を作成する。この訂正関数
Ｘk ＯｐｓＳｔＳｐｅｃＥｑＩｍｐｌＦｏｒＶｅｃvj
は、二分決定グラフ（ＢＤＤ）を用いて構築され、Ｂijk はｋ番目のＸリストのｊ番目のテストベクトルに対する故障回路のｉ番目の主出力に関して構築された二分決定グラフである。二分決定グラフを構築する方法は、従来技術において公知であり、例えば、参考のため引用される文献：R.E. Bryant,  Graph-Based Algorithms For Boolean Functgion Manipulation, IEEE Trans. Computer C-35(8): 667-691, August 1986 に記載されている。
【００８６】
両方の訂正関数は、ＸリストＸk の出力値を保存し、特定の回路及び故障回路の主出力は、ｊ番目のテストベクトルＶj に対し一致する。ｋ番目のＸリストに対し訂正関数：
Ｘk ＯｐｓＳｔＳｐｅｃＥｑＩｍｐｌＦｏｒＶｅｃＳｅｔkm
及び
Ｘk ＯｐｓＳｔＳｐｅｃＥｑＩｍｐｌＦｏｒＶｅｃvj
の有効性をテストすることにより、このＸリストは考慮され、或いは、考慮されない。訂正関数が有効であるとみなされるのは、Ｘリスト出力が回路の主出力をテストベクトルの提供された仕様回路の主出力に一致させるように、Ｘリスト入力からＸリスト出力への関係が導出され得る場合である。
【００８７】
【表４】
0004557337.tif 000005
【００８８】
図８には、設計のエラーのすべては含まないＸリストを除去するプロセスのフローチャートが示されている。このプロセスは、Ｘリストのランク付けのプロセスが実行されている場合を想定している。但し、図８に示されたプロセスはこのようなランク付けを行わずに実行しても構わない。
ステップ２００において、Ｘリストのリストから一つのＸリストが選択される。ステップ２１０において、Ｘリストによって定義された領域に別個の入力を与えるテストベクトルが決められる。Ｘリスト領域への入力は、テストベクトルによって値が定義された主入力を用いてＸリスト入力用の二分決定グラフを構築するような従来技術において公知のシミュレーション若しくは他の方法によって決められ得る。ステップ２３０において、訂正関数がステップ２１０で集められたテストベクトルの各集合に対し作成される。ステップ２５０において、このプロセスは、Ｘリストが表現されたエラーの全部を包含できないかどうかを判定する。ステップ２６０において、このプロセスは、検査されるべきＸリストが未だ残っているかどうかを判定する。更なるＸリストが検査を必要とする場合、ステップ２００、２１０、２３０及び２５０が繰り返し実行される。さもなければ、このプロセスは終了する。
【００８９】
図９には、図８のステップ２５０の詳細なステップのフローチャートが示されている。ステップ２５１において、このプロセスはテストベクトルを選択する。ステップ３００において、このプロセスは、選択されたテストベクトルを用いて故障設計をシミュレーションし、故障回路の各主出力に対する二分決定グラフを構築する。二分決定グラフは、主入力が選択されたテストベクトルによって既知の状態であるときに、Ｘリスト領域の出力だけを用いて主出力を表現する。ｋのような相関を行う別の方法も知られており、それらを使用してもよい。
【００９０】
ステップ４００において、選択されたテストベクトルを使用することにより、このプロセスは、仕様に適合する設計をシミュレーションする。主出力応答は検査され、ステップ３００で展開された二分決定グラフを用いて、新しい訂正関数が作成される。勿論、適合する設計をシミュレーションする以外の方法を用いて、所定のテストベクトルに対する正しい主出力応答を決定してもよい。
【００９１】
ステップ５００において、このプロセスは、新しい訂正関数が有効であることを保証するため新しい訂正関数をテストする。ステップ２５３における検査の際に、新しい訂正関数が有効であるならば、このプロセスは継続する。有効ではないならば、このプロセスは別のＸリストの処理を始めるために戻る。ステップ２５５において、別のテストベクトルを検査する必要がある場合に、次のテストベクトルがステップ２５１で選択され、ステップ３００、４００、５００、２５３及び２５５が繰り返し行われる。すべてのテストベクトルが検査されたとき、今プロセスは別のＸリストを処理するため戻る。
【００９２】
図１０には、選択されたテストベクトルに対し故障回路の主出力毎に二分決定グラフを作成する図９のステップ３００の詳細ステップのフローチャートが示されている。図１０のステップ３０１において、このプロセスは故障設計をシミュレーションする。故障設計において、選択されたＸリスト領域出力には記号変数が割り当てられる。このプロセスは、ステップ３０３において回路の主出力を選択する。ステップ３０５において、このプロセスは選択された主出力用の二分決定グラフを構築する。選択されたテストベクトルに対する主入力はわかっているので、二分決定グラフは記号変数を用いて表現される。ステップ３０７において、このプロセスは、更なる主出力を検査すべきかどうかを判定する。検査されるべき更なる主出力が未だ残っている場合、次の主出力がステップ３０３で選択され、ステップ３０５及び３０７が繰り返し実行される。すべての主出力が検査された場合、このプロセスは図９のステップ４００に戻る。
【００９３】
図１１には図９のプロセスのステップ４００の詳細ステップのフローチャートが示されている。図９のプロセスのステップ４００において、新しい訂正関数が作成される。図１１のステップ４０１において、仕様回路に適合する設計がシミュレーションされる。このプロセスは、ステップ４０３において、回路の主出力を選択する。ステップ４０５において、新しい訂正関数が先に構築された二分決定グラフを用いて作成される。訂正関数が既に存在する場合、新しい訂正関数は、前の訂正関数と、図１０のステップ３０５で構築された二分決定グラフとから作成される。ステップ４０７において、すべての主出力が検査されたと判定された場合、このサブプロセスは図９のステップ５００に戻る。ステップ４０７において、検査されるべき主出力が未だ残っていると判定された場合、ステップ４０３、４０５及び４０７が繰り返し実行される。
【００９４】
図１２には、図９のステップ５００の詳細ステップのフローチャートが示されている。図９のプロセスのステップ５００は、訂正関数が有効であるかどうかを判定する。図９のステップ４００で作成された現在のテストベクトルに対する訂正関数が図１２のステップ５０１で検査される。この訂正関数が有効である場合、すなわち、Ｘリストのノードにおけるエラー若しくは故障を訂正する場合、プロセスは継続する。訂正関数が無効であるとき、すなわち、Ｘリストのノード内のエラー若しくは故障を訂正しないとき、このＸリストは、ステップ５１１において、ランク付けされたＸリストのリストから除去され、プロセスは図９の次のステップ２５３に戻る。
【００９５】
図８のステップ２３０において、テストベクトル集合に対する訂正関数は予め決められている。テストベクトル集合用の新しい訂正関数は、ステップ２０３で作成された前の訂正関数と、図９のステップ４００で作成された現在のテストベクトルに対する訂正関数とを操作することによりステップ５０７において作成される。新しい訂正関数は、現在のテストベクトルによって表現された付加的な要求条件を取り込むため、減縮若しくは拡張される。ステップ５０９において、テストベクトル集合用の新しい訂正関数の有効性が検査される。このテストベクトル集合用の新しい訂正関数が有効である場合、すなわち、テストベクトル集合のためのＸリストのノード内のエラー若しくは故障を訂正する場合、図９のステップ５００は終了し、次のベクトルが図９のステップ２５１で選択される。このテストベクトル集合に対する新しい訂正関数が無効であるとき、Ｘリストは、ステップ５１１においてランク付けされたＸリストの集合から除去され、図９のステップ５００が実行され、次のＸリストが図８のステップ２００で選択される。
【００９６】
Ａ．  その他の診断プロセス
診断プロセスは、３値論理シミュレーションを使用する方式だけには制限されない。上記の３値論理シミュレーションは３値記号シミュレーションで置換してもよい。一実施例において、３端子（０，１，Ｘ）を有する二分決定グラフが使用される。３端子二分決定グラフの使用法及び構成法は、従来技術において公知であり、特に、例えば、参考のため引用された文献：Ross, Functional calculations using Ordered Partial Multi-Decision Diagrams, Ph.D Dissertation, Dept. of Electrical and Computer Engineering, University of Texas at Austin, 1990 に記載されている。論理最小化用の類似した二分決定グラフは、参考のため引用した文献：Matsunaga, Fujita and Kakuda, Multi-level logic minimization across latch boundaries, ICCAD, 1990 に記載されている。３値記号シミュレーションを実現するため、多重端子決定グラフ（ＭＴＤＤ）、算術的決定グラフ（ＡＤＤ）、及び、半数値決定グラフ（ＳＮＤＤ）のような数種類の他のタイプの決定グラフを使用することが可能である。
【００９７】
Ｘ値を用いる二分決定グラフは多数の形で使用され得る。一実施例では、Ｘ値が割り当てられたゲート毎に、ダミー変数ＸＶが導入される。ダミー変数ＸＶに関するすべての操作は、関数とｘ値との間の論理操作として行われる。ダミー変数ＸＶは順序木の底で置換してもよく、二分決定グラフ構築が完了した後に、端子Ｘで置換してもよい。
【００９８】
また、決定グラフは、各ノードが３個の出力側エッジ０、１、Ｘを有する場面で使用され得る。二分決定グラフ内の各変数は、３個の出力側エッジを備えたノード、或いは、Ｘ値だけが割り当てられたノードによって表現され、処理される。上記の説明は、ブール値（０，１）以外の値、例えば、値Ｘが関数操作の間に用いられる決定グラフが使用される場面で多数の実施例が実現可能であることを示している。
【００９９】
図５及び６に示された３値論理シミュレーションのためのランク付け処理と同じ処理を利用することによって、Ｘリストは３値記号シミュレーションを用いてランク付けすることが可能である。回路表現、すなわち、故障回路と回路仕様の主出力応答は、各回路表現毎にテストベクトルに対し作成された二分決定グラフの等価性をテストする（ＸＯＲ演算する）ことによって比較される。その結果として、複数のテストベクトルを適用することによって、一致、部分一致及び不一致のスコア評価は、端子０、端子１及び端子Ｘに到達したテストベクトルの数をカウントすることによって判定される。したがって、３値論理シミュレーションの場合と同様に、ランクがＸリストに割り当てられる。
【０１００】
図１３及び１４には、エラー／故障の発生源ではないＸリストを除去するプロセスの他の実施例のフローチャートが示されている。
図１３は、他のプロセスのフローチャートである。このプロセスは、ステップ１１１においてＸリストを選択する。ステップ１１３において、このプロセスはテストベクトルを選択する。テストベクトルは、Ｘリストの影響を受けた回路の主入力に適用される。テストベクトルは、先に説明した診断プロセスで使用されたシミュレーションと類似したコンピュータシミュレーションによって、回路を通って回路の主出力に伝搬される。ステップ１１５において、テストベクトルに対する主出力が仕様を検査することによって判定される。既に説明したように、仕様は回路の挙動を記述し、それ自体で、回路の主入力に導入された所定のテストベクトルの集合が対応して生成する予測主出力を決定する。ステップ１１７において、Ｘリストへの入力は、シミュレーション結果を検査することにより決められる。Ｘリストの出力は、ステップ１１９でも決められる。Ｘリスト出力は、シミュレーション結果を検査することにより、若しくは、二分決定グラフを使用することによって決定され得る。ステップ１２１において、Ｘリストへの入力と、Ｘリストの出力との間の矛盾関係が、現在のテストベクトル及び先に検査されたテストベクトルに対し検査される。
【０１０１】
図１４には、Ｘリスト入力のＸリスト出力に対する関係を判定するプロセスの詳細なフローチャートが示されている。図１４のステップ１４１において、現在のＸリストに対し前のテストベクトルによって生成されたＸリスト入力及びＸリスト出力が記憶手段、すなわち、過去入出力Ｘテーブルから一つずつ獲得される。ステップ１４１において、検査すべき前のＸリスト入力又はＸリスト出力が存在しない場合、ステップ１４７において、現在のＸリスト入力及びＸリスト出力が記憶され、すなわち、過去入出力Ｘテーブルに追加される。ステップ１４７の後に、図１３のステップ１２１に対し“ｎｏ”（否定）応答が生成され、現在のテストベクトルからのＸリスト入力及びＸリスト出力と、前のテストベクトルからのＸリスト入力及びＸリスト出力との間に矛盾が発生していないことが示される。前のＸリスト入力及びＸリスト出力が存在する場合に、ステップ１４３が呼び出され、現在のＸリスト入力が前のＸリスト入力と比較される。現在のＸリスト入力が前のＸリスト入力と対応しない場合、前のＸリスト入力及びＸリスト出力の次の集合がステップ１４１で取り出される。しかし、現在のＸリスト入力が前のＸリスト入力に対応する場合、ステップ１４５において、現在のＸリスト出力が前のＸリスト出力と比較される。
【０１０２】
ステップ１４５において、現在のＸリスト出力が前のＸリスト出力に対応する場合、前のＸリスト入力及びＸリスト出力の次の集合がステップ１４１で取り出される。ステップ１４５において、現在のＸリスト出力が前のＸリスト出力と対応しない場合、“ｙｅｓ”（肯定）応答が図１３のステップ１２１に対し生成される。その結果として、現在のテストベクトルによって生成されたＸリスト入力及び出力と、前のテストベクトルによって生成されたＸリスト入力及び出力との間に矛盾が発生する。
【０１０３】
図１３のステップ１２３において、ステップ１２１からの応答、すなわち、本質的に図１４のプロセスからの応答がテストされる。矛盾が認定された場合、ステップ１２５において、ランク付けされたＸリストが変更される。現在のＸリストのランク付けは低下され、或いは、現在のＸリストはランク付けされたリストから除去され得る。矛盾の発生は、Ｘリストに対し行われた変更とは無関係に、予測主出力が仕様に定義されるようなテストベクトルの所定の集合を用いて生成できないことを示す。したがって、エラー若しくは故障はＸリスト中に存在しない。ランク付けされたＸリストを変更した後、このプロセスは、ステップ１２９で判定されるような別のＸリストを用いてステップ１１１に戻る。ステップ１２９で、これ以上Ｘリストが無いと判定された場合、プロセスは終了する。
【０１０４】
しかし、矛盾が発生しない場合、ステップ１３１で判定されるように更にテストベクトルが検査され、Ｘリストを含む回路の主入力に与えられる。ステップ１１３、１１５、１１７、１１９、１２１、及び１２３が繰り返されて、現在のテストベクトルによって生成されたＸリスト入力及び出力と、前のテストベクトルによって生成されたＸリスト入力及び出力との間の関係が判定される。ステップ１３１において、これ以上別のテストベクトルを利用できないことが判定されると、ステップ１２７において、訂正手段が使用され、所定のＸリスト内のエラーを修理する。訂正手段は、ステップ１１７からのＸリストへの入力と、ステップ１１９からのＸリストへの出力とがわかるならば、二分決定グラフを用いて決定される。二分決定グラフを使用して、ブール関数を作成することができる。ブール関数の場合に、コンピュータは、Ｘリスト内のゲートを置換するブール関数を表現するゲートの集合を発生させ得る。ステップ１２７において、エラーを訂正するための上記の他の通常の方法が使用され得る。
【０１０５】
したがって、本発明は、３値論理シミュレーション及び記号論理シミュレーションに基づく非可算解析技術と、エラー箇所の位置的な面を表わすエラーモデルとから開発されたシステム及び方法論を提供する。上記の説明では、本発明は、幾つかの具体的な実施例に関して説明されているが、当業者は、上記の実施例に対し付加的な変更及び変形を容易になし得るであろう。したがって、本発明は、具体的に説明された態様以外の形でも実施されることに注意する必要がある。また、本発明の実施例は、あらゆる局面において例示としてみなされるべきものであり、本発明を限定するものではない。本発明の範囲は、上記の詳細な説明によって示されるのでなく、特許請求の範囲に記載された事項によって定まる。
【０１０６】
【発明の効果】
本発明によれば、デジタル回路を検証、テストするコンピュータ支援設計（ＣＡＤ）システム及び方法において、多数のエラー若しくは故障の箇所を素早く、かつ、正確に検出できるようになる。
【図面の簡単な説明】
【図１】Ｘリストによる回路の抽象モデルの説明図である。
【図２】（Ａ）は故障若しくはエラーを含まない回路の抽象モデル、（Ｂ）はエラーを含む回路の抽象モデル、（Ｃ）はＸリストＡを備えたエラーを含む回路の抽象モデル、及び、（Ｄ）はＸリストＢを備えたエラーを含む回路の抽象モデルの説明図である。
【図３】故障或いはエラーを含まない回路の一例の説明図である。
【図４】故障のある回路の一例の説明図である。
【図５】Ｘリストを用いるエラー／故障診断の概略を示すフローチャートである。
【図６】候補Ｘリストのランク付けのフローチャートである。
【図７】（Ａ）は、故障と、ＸリストＡ、ＸリストＢ、及び、ＸリストＣとを含む故障回路の説明図、（Ｂ）は、故障とＸリストＡとを含む故障回路、（Ｃ）は、故障とＸリストＢとを含む故障回路、並びに、（Ｄ）は、故障とＸリストＣとを含む故障回路の説明図である。
【図８】診断プロセスの確信度を改善する処理の概略を示すフローチャートである。
【図９】エラー若しくは故障を含まないＸリストを除去する処理の一実施例のフローチャートである。
【図１０】Ｘリストを除去する処理中の故障回路応答検査及び二分決定グラフ構築ステップの詳細なフローチャートである。
【図１１】    Ｘリストを除去する処理中の仕様上の回路応答検査ステップの詳細なフローチャートである。
【図１２】    Ｘリストを除去する処理中の訂正機能検査ステップの詳細なフローチャートである。
【図１３】エラー若しくは故障を含むＸリストを除去する処理の他の実施例のフローチャートである。
【図１４】矛盾判定ステップの詳細なフローチャートである。
【図１】
0004557337.tif 000006
【図２】
0004557337.tif 000007
【図３】
0004557337.tif 000008
【図４】
0004557337.tif 000009
【図５】
0004557337.tif 000010
【図６】
0004557337.tif 000011
【図７】
0004557337.tif 000012
【図８】
0004557337.tif 000013
【図９】
0004557337.tif 000014
【図１０】
0004557337.tif 000015
【図１１】
0004557337.tif 000016
【図１２】
0004557337.tif 000017
【図１３】
0004557337.tif 000018
【図１４】
0004557337.tif 000019