JP4557337B2 - Xリストに基づく多重エラー及び故障を診断する方法並びにシステム - Google Patents
Xリストに基づく多重エラー及び故障を診断する方法並びにシステム Download PDFInfo
- Publication number
- JP4557337B2 JP4557337B2 JP29280699A JP29280699A JP4557337B2 JP 4557337 B2 JP4557337 B2 JP 4557337B2 JP 29280699 A JP29280699 A JP 29280699A JP 29280699 A JP29280699 A JP 29280699A JP 4557337 B2 JP4557337 B2 JP 4557337B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- list
- output
- main
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
- G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
- G01R31/31835—Analysis of test coverage or failure detectability
Description
【発明の属する技術分野】
本発明は、一般的に、コンピュータ支援設計(CAD)システム及び方法に係わり、特に、デジタル回路を検証、テストするシステム並びに方法に関する。
【0002】
【従来の技術】
デジタル回路及びその他の複雑なデジタルシステムのコンピュータ支援設計は広く普及している。回路若しくはシステムの要件は、回路若しくはシステムの抽象モデルによって定義される。抽象モデルは、多数の中間段階に巧みに変換される。中間モデルには、ブロック構造行動設計を表現するレジスタ・トランスファー・レベルと、システムの論理レベルの記述である構造的モデルとが含まれる。
最終的に、トランジスタ・ネット・リスト、すなわち、回路若しくはシステムの物理的なレイアウトが獲得される。
【0003】
回路若しくはシステムの設計は、一般的な要求レベルから、多数の中間レベルを介して、物理的設計の下位詳細レベルまで進む。設計の連続的な各レベルは、回路若しくはシステムが設計仕様に適合することを保証するため、テスト又は検証される。
設計検証ステップが失敗した場合、典型的に、故障の考えられる原因を判定するため診断が呼び出される。回路を実際に物理的に実現する前の設計段階中に行われる診断は、一般的にエラー診断と呼ばれる。回路の物理的な実現後に行われる診断は、一般的に故障診断と呼ばれる。このようなエラー診断若しくは故障診断は、設計者並びにプロセスエンジニアに貴重な情報をフィードバックする。診断は、設計若しくは回路中の潜在的なエラー発生箇所を識別することができる。特定の設計若しくは回路は多数の素子を含み、検証段階では適切な挙動を実現するために調整を必要とする素子に関する情報が殆ど得られないので、潜在的なエラー発生場所の識別は役に立つ。これにより訂正が行われるべき候補の集合が制限されるので、設計若しくは回路を訂正する操作の時間及び複雑さが著しく軽減される。
【0004】
【発明が解決しようとする課題】
従来技術において、エラー診断は、主として信号エラーの診断に集中している。また、エラー診断方法は、屡々、見つけられるエラーのタイプに関して制限される。したがって、エラー診断方法は範囲が限られている。また、このエラー診断方法を多重エラーの診断に拡張することにより、エラー箇所検出に間違いが発生し、エラー箇所検出を実行するため余分な時間が必要になる。
【0005】
上記の通り、故障診断は、設計フローの製作段階のデジタル回路内で故障箇所を見つけるプロセスである。故障診断は、回路内の故障の原因を判定するためデジタル回路の特定の部分を検査する。集積回路のシリコンに導入された塵粒子による短絡、不適切なはんだ付け、或いは、間違った配線のような製造誤差若しくは製作欠陥は、故障の例である。
【0006】
従来の故障診断の方法は、エラー診断の方法と類似した制限がある。これらの方法は、単一の故障若しくはエラーを識別するが、多数の故障若しくはエラーを正確に識別することは難しい。しかし、多数のエラー若しくは故障を取り扱う診断の能力は、デジタル回路が複雑化すると共に重要性が増加し始めている。
本発明は、回路設計内の潜在的なエラー若しくは故障個所を判定する方法及び装置の提供を目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載された発明は、所定のテストベクトルを回路設計及び回路仕様に与えたときに、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが上記回路設計内で起こり得る箇所を判定するコンピュータを使用する方法であって、
上記回路設計内で候補ノードのリストを作成する段階と、
上記回路設計にテストベクトルを与える段階と、
0と1とXの3値論理システムの論理値Xを上記候補ノードに設定する段階と、
上記回路設計の上記出力挙動が上記候補ノードに論理値Xを設定した結果として変化したかどうかを判定する段階とを有する。
【0008】
請求項14に記載された発明は、主入力、主出力、及び、上記主入力と上記主出力の間に有る中間ノードを有する第1の回路表現内で起こり得るエラー箇所に関する情報を判定する方法であって、
上記第1の回路表現の上記主入力にテストベクトルを与える段階と、
上記中間ノードの候補ノードの集合、上記主入力、又は、上記主出力に値Xを与える段階と、
上記テストベクトル及び上記値Xが与えられた結果として得られた上記主出力を、上記テストベクトルが与えられた第2の回路表現の主出力と比較する段階とを有する。
【0009】
請求項20に記載された発明は、論理値が割り当てられたノードを含む論理関数によって相互連結された主入力の集合及び主出力の集合を有する回路設計におけるエラー箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力に特定のテストベクトルに対応した値が割り当てられたときに、上記回路設計の少なくとも1個の主出力に対する所望の応答を指定させるコードと、
上記特定のテストベクトルに対応した値を上記主入力に割り当てさせるコードと、
ノードの候補集合の論理値を、3値論理システムの3種類の値の中のいずれかの値である値Xに変更させるコードと、
上記少なくとも1個の主出力を評価させるコードとを有する。
【0010】
請求項21に記載された発明は、ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力からの論理値を上記回路を通じて上記主出力に伝搬させるコードと、
上記主入力の伝搬のシミュレーションの間にノードの集合における論理値を値Xで置換させるコードと、
3値論理シミュレーションによって上記値Xを次の論理部品に伝搬させるコードと、
候補ノードをランク付けさせるコードと、
上記候補ノードから診断推論を導出させるコードとを有する。
【0011】
請求項22に記載された発明は、ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
Xリストの集合を作成させるコードと、
理想的な条件及びXリストによる影響を受けたテスト条件における上記回路の上記主出力を検査させるコードと、
理想的な条件及びテスト条件における上記主出力を比較することによって示されたエラー若しくは故障箇所を見つけさせるコードとを有する。
【0012】
請求項23に記載された発明は、ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるコンピュータシステムであって、
論理値に関してエラー若しくは故障をカバーする手段と、
エラー及び故障を含まない上記回路の上記主出力での予測応答を指定する手段と、
上記回路の上記主入力に刺激を与える手段と、
論理値に関して上記主入力が上記回路を通って上記主出力に達する伝搬を表現する手段と、
上記主入力の伝搬のシミュレーション中にノードの集合での論理値を値Xで置換する手段と、
3値論理シミュレーションによって上記値Xを次の論理部品に伝搬する手段と、
候補ノードをランク付けする手段と、
上記ランク付けされた候補ノードからエラー及び故障箇所を見つける手段とを有する。
【0013】
請求項37に記載された発明は、主入力及び主出力を有する回路設計において、所定のテストベクトルを上記回路設計及び回路仕様に適用した場合に、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが起こり得る箇所を判定するためコンピュータを使用する方法であって、
テストベクトルを上記回路設計に適用する段階と、
上記回路設計内で、少なくとも一部の入力が上記テストベクトルによって決定され、少なくとも一部の上記主出力が少なくとも一部の出力の値に依存する値を有するような入力及び出力を有する候補ノードのリストを作成する段階と、
上記回路仕様の出力挙動と一致した上記回路設計の出力挙動を得るため上記出力の要求された値を決定する段階とを含む。
【0014】
エラー若しくは故障が存在する場合、所定のテストベクトルが回路設計及び回路仕様の両方に適用されたときに、回路設計の出力挙動は回路仕様の出力挙動と一致しない。一実施例において、候補ノードのリストが作成され、このリストは回路設計内のノードにより構成される。テストベクトルは回路設計に適用され、候補ノードは、値Xに設定される。この値Xは、0,1,Xの3値論理システムの論理値である。テストベクトルを適用した後の回路の出力挙動は、候補ノードをXに設定することにより判定される。エラー確率は、回路設計の出力挙動が候補ノードをXに設定する結果として変化するかどうかに依存して候補ノードのリストに割り当てられる。エラー確率は出力挙動が変化する場合に増加し、出力挙動が変化しない場合に減少する。
【0015】
別の候補ノードのリストが作成され、テストベクトルは回路設計に適用され、別の候補ノードはXに設定される。回路設計の出力挙動は再度判定され、エラー確率が別の候補ノードの割り当てられる。この処理は、他の候補ノード及び他のテストベクトルに対し繰り返され、回路設計の出力挙動が判定され、エラー確率が割り当てられる。本発明の種々の実施例において、出力挙動の比較は、回路設計、物理的設計、及び、回路仕様の種々の組合せの間で行われる。
【0016】
一部の実施例の場合に、候補ノードは、領域ベースモデル、トポロジカルベースモデル、カットベースモデル、レジスタ・トランスファー・レベル・ベースモデルを含むエラーモデルを使用して決められる。回路内のエラー若しくは故障を識別するモデルの信頼性のレベルは、誤り確率の割り当ての際に使用される。エラー若しくは故障モデルと関連して、本発明の方法及びシステムは、例えば、モデルがエラー若しくは誤りを正確に包含する場合に、エラー若しくは誤りがノードの集合で完全に得られることを保証する。
【0017】
本発明の一実施例において、候補ノードは入力及び出力を有し、上記入力の少なくとも一部分は上記テストベクトルによって決定され、主入力の少なくとも一部分は上記出力の少なくとも一部分の値に依存した値を有する。回路仕様の出力挙動と一致した回路設計の出力挙動を得るために要求される出力の値が決められる。上記入力の少なくとも一部分と上記出力の少なくとも一部分の間の関係が決定され、その関係を用いて上記テストベクトルの適用時に要求された値を有する上記出力の少なくとも一部分が得られる。
【0018】
別のテストベクトルが回路設計に適用され、回路仕様の出力挙動と一致する回路設計の出力挙動を得るため要求される別の出力の値が決められる。上記入力の少なくとも一部分と上記出力の少なくとも一部分との間の別の関係が決定され、その別の関係を用いて上記別のテストベクトルの適用時に要求された別の値を有する上記出力の少なくとも一部分が得られる。誤り確率は候補ノードのリストに割り当てられる。誤り確率は、上記テストベクトル及び上記別のテストベクトルの適用時に、上記入力の少なくとも一部分と上記出力の一部分との間の一貫性に依存する。
【0019】
この処理は、決定されたテストベクトルの適用時の上記入力の少なくとも一部分と上記出力の少なくとも一部分との間の関係、並びに、割り当てられた誤り確率を用いて、他のテストベクトル及び他の候補ノードのリストに対して繰り返される。また、記号論理変数と二分決定グラフは、上記出力の少なくとも一部分に対し要求された値を決定するため使用される。
【0020】
【発明の実施の形態】
本発明の上記特徴並びに他の特徴は、添付図面と共に以下の詳細な説明を参照することによって明らかになり、より良く理解される。
I. 概説
本発明の課題は、回路又はシステム内で起こり得るエラー若しくは故障箇所、特に、多数の設計上のエラー若しくは故障を含む可能性がある領域を見つける方法及びシステムである。本発明の方法は、ランク付けされたノードの集合を生成し、最高ランクのノード又はノード集合はエラー若しくは故障箇所である可能性が最も高い。本発明の方法及びシステムは、ノード集合で起こり得るすべてのエラー若しくは故障を解析するため、3値論理シミュレーション又は記号論理シミュレーションを使用する。本発明の方法及びシステムは、エラー若しくは故障モデルと組み合わされて、モデルがエラー若しくは故障を厳密に包含する場合に、ノード集合におけるエラー若しくは故障が識別されることを保証する。本発明の方法及びシステムは、すべての起こり得るエラー若しくは故障について解析された識別された候補ノード集合を使用する。本発明の方法及びシステムによって得られる結果は、潜在的なエラー若しくは故障箇所に関して設計者に貴重なフィードバック情報を与え、自動回路訂正を行う訂正ツールと組み合わせて使用することができる。フィードバック情報は、実装上の回路の挙動が仕様上の回路の挙動と一致することを保証するため訂正が行われ得る候補集合を制限する。
【0021】
A. Xリストベース解析について
Xリストベース解析は、Xリストと称されるノード集合が、エラー若しくは故障に起因した誤りのある挙動を生成するかどうかを判定する。Xリストとは、実際の値がシミュレーション中にX値によって置換されるノードの集合(ノード集合)である。ノード集合は、回路上の同一領域内に存在する必要はなく、回路全体に点在していても構わない。X値は、3状態論理システムの一つの状態であり、他の二つの状態は0及び1である。このX値は非可算的である(数えられない)。したがって、多様な発生源からの論理演算の結果に関する結論を出す必要がない。X値は数え上げても良いが、解析の複雑さを増大させるので、好ましくはない。システムシミュレーション中に、X値は、3値論理シミュレーションを使用して次のノードに伝搬される。論理シミュレーションの値は、仕様、設計、若しくは、回路のいずれかのシステムを介して仕様、設計、若しくは、回路の主出力まで伝搬する論理値0、1又はXを有する信号を意味する。
【0022】
図1には、Xリストによって識別された領域又はノード集合を含む設計表現が示されている。この設計表現には、0若しくは1の何れかに設定される多数の主入力13が含まれる。回路の領域11はXリストにより構成され、領域内のすべてのノードはXリストのメンバーである。濃淡を付けられた領域の出力は、すべてXに設定される。したがって、回路の出力15は、値0、値1若しくは値Xを取る。
【0023】
回路の主入力、同一若しくは他のXリストからの出力、又は、3種類すべての出所側からの出力は、Xリストへの入力を与えることができる。Xリストからの出力は、回路の主出力への入力、同一若しくは他のXリストへの入力、又は、3種類すべての宛先側への入力に供給することができる。
回路設計は、屡々、テストベクトルと称される値の集合を設計の主入力に供給することによってテストされる。各テストベクトルは主出力側で予測される応答と関連する。主出力側の実際の応答が予測応答と一致しない場合、設計は、個の設計用の仕様と一致しない。
【0024】
Xリストによって定義された領域を含む回路の主入力側に与えられたテストベクトルは、起こり得るエラー箇所に関する情報を提供する主出力側応答を生成する。ノード集合であるXリストを含む回路の出力応答が予測出力応答の応答とは逆の場合に、Xリストはテストベクトルによって表現されるエラー若しくは故障を全く含まない。Xリストを含む回路の応答がXである場合、Xリストはエラー若しくは故障を含む。その理由は、ノード上の信号値の組合せはX値によって包含されるからである。
【0025】
また、Xリスト1及びXリスト2の2個のXリストが選択され、Xリスト1から回路の主出力までのあらゆるパスがXリスト2を通過しなければならない場合に、Xリスト1はXリスト2の支配領域内にある。一方のXリストの他方のXリストに対する支配領域によって、支配Xリストは従属Xリスト内のエラーの挙動を獲得する。例えば、Xリスト2がXリスト1を支配する場合、Xリスト1内のエラーはXリスト2で獲得される。したがって、Xリスト2内のエラーをテストすることにより、Xリスト1内のエラーが必ずテストされる。
【0026】
このように、Xリストを使用することにより、重要な診断推論がエラー若しくは故障の起こり得る箇所、並びに、特定のテストベクトルによって表現されたエラー若しくは故障を含まない箇所に関して導出される。これにより、テストベクトルの組は、ある程度まで回路の設計をカバーし、エラー若しくは故障の無い回路若しくは設計の部分に関する情報と、エラー若しくは故障を含む設計若しくは回路の部分に関する情報とが取得される。説明の都合上、以下、用語「故障」及び「エラー」は互換的に使用される。
【0027】
1. エラー解析の例について
図2の(A)〜(D)には、Xリストを用いることにより導出される診断推論がよりよく理解されるように設計及びXリストの例が示されている。図2の(A)〜(D)には、4種類のシミュレーションが示される。
図2の(A)には、主入力22aが指定された値に設定されたときに主出力22bの予測挙動を与える仕様21のシミュレーションが示されている。同図に示されるように、第2の主出力22cは、主入力が特定のテストベクトルで与えられる場合に、論理0をとると予測される。
【0028】
図2の(B)には、同図の(A)に示された仕様に対し、故障を含む実装、すなわち、回路のシミュレーションが示されている。図2の(B)の故障を含む実装の場合に、第2の出力24cは、主入力にテストベクトルが与えられたときに論理1である。したがって、図2の(B)の故障を含む実装は、少なくとも1個のエラーを含む。
【0029】
図2の(C)には、図2の(B)の故障を含む実装がXリストによって識別されるノード集合を含む場合のシミュレーションが示されている。XリストAによって識別されたノード集合の影響のため、第2の主出力26cは、主入力に特定のテストベクトルが与えられた場合に論理Xである。
図2の(D)には、図2の(B)の故障を含む実装が第2のXリストBによって識別される第2のノード集合を含む場合のシミュレーションが示されている。この故障を含む実装の第2の主出力28cは、主入力に特定のテストベクトルが与えられた場合に論理1に設定される。
【0030】
故障のある実装23と、XリストBを含む故障のある実装の両方の第2の主出力は一致するため、領域B内のノードだけによって構成される多重エラーの組合せは、回路内のエラーを説明できない。エラーがXリストBの領域内のノードで生じたとき、領域内のノードをX値に変更することによって、シミュレーションはX値を第2の主出力に伝搬させる。したがって、故障のある実装のシミュレーション27は、XリストB内のノードが特定のテストベクトルを用いて識別されたエラーを説明できないという情報を与える。また、故障のある実装のXリストAを使用するシミュレーションは、XリストA領域内のノードが特定のテストベクトルによって識別できるエラーを説明できることを示唆する。
【0031】
同様の理由から、仕様シミュレーション21及びXリストBを使用する故障のある実装のシミュレーション27の第2の主出力の比較は、エラーがXリストB内に存在しないかどうかを判定するため実行され得る。仕様シミュレーション21及びXリストBシミュレーション27の第2の主出力が一致しない場合、領域B内のノードだけにより構成される多重エラーの組合せは、回路内のエラーを説明できない。この推論は、故障シミュレーション23の主出力をXリストによって影響された仕様シミュレーション主出力と比較する場合に拡張することができる。この場合、故障シミュレーション23及びXリストによる影響を受けた仕様シミュレーションの主出力が一致しないならば、Xリスト内のノードだけによって構成された多重エラーの組合せは回路内のエラーを説明できない。しかし、故障回路を仕様に一致させようとするのではなく、仕様が故障回路に一致するように操作される。
【0032】
2. 故障解析の例について
図3には回路設計の例が示されている。この回路は、PI1 〜PI5 と表記された第1〜第5の入力51a〜55aと、PO1 及びPO2 と表記された第1及び第2の出力56a及び57bを含む。第1〜第6のNANDゲート61a〜66aは、主入力と主出力の間に設けられる。第1のNANDゲート61aは、入力として第1の入力PI1 及び第3の入力PI3 を受信し、出力として第1の中間信号INT1 70を有する。第2のNANDゲート62aは、入力として第3の主入力PI3 及び第4の主入力PI4 を有し、出力として第2の中間信号INT2 72を有する。第3のNANDゲート63aは、入力として第2の主入力PI2 及び第2の中間信号INT2 を有し、出力として第3の中間信号INT3 74を有する。第4のNANDゲート64aは、入力として第5の主入力PI5 及び第2の中間信号INT2 を有し、出力として第4の中間信号INT4 76を有する。第5のNANDゲート65aは、入力として第1の中間信号INT1 及び第4の中間信号INT4 を有し、出力として第1の主出力PO1 を有する。第6のNANDゲート66aは、入力として第3の中間信号INT3 及び第4の中間信号INT4 を有し、出力として第2の主出力PO2 を有する。
【0033】
図4には、図3に示された回路設計に故障が含まれる場合の実装が示されている。図4の実装の場合に、第3のNANDゲートは、故障に起因してANDゲート61に代わっている。それ以外の点で図3の回路設計と図4の回路実装は同一である。
本発明を説明するため、2組のテストベクトルが設計及び実装の主入力に導入される。テストベクトルの適用によって、設計及び実装内に信号が伝搬する。第1のテストベクトルは01111である。換言すると、第1の主入力PI1 は0に設定され、第2の主入力PI2 は1に設定され、第3の主入力PI3 は1に設定され、第4の主入力PI4 は1に設定され、第5の主入力PI5 は1に設定される。第1のテストベクトルの適用によって、第3のNANDゲート63aの出力側のノード74が論理1に設定される。また、第1のテストベクトルの適用よって、第1の中間信号INT1 は1に設定され、第2の中間信号INT2 は0に設定され、第4の中間信号INT4 は1に設定される。したがって、第1の主出力PO1 は0に設定され、第2の主出力PO2 は0に設定される。
【0034】
しかし、第1のテストベクトルを図4の実装に適用すると、主出力に異なる応答が生じる。第1のテストベクトルを適用することにより、ANDゲート61の出力側のノード91bは1ではなく0に設定され、その結果として、第1の主出力PO1 は0に設定され、第2の主出力PO2 は1に設定される。
同様に、第2のテストベクトル01000を設計及び実装の主入力に適用することによって、主出力の挙動に異なる結果が生じる。第2のテストベクトルを設計に適用することによって、第1の主出力は0に設定され、第2の主出力は1に設定される。しかし、実装の場合に、第2のテストベクトルを適用することによって、第1の主出力は0に設定され、第2の主出力は0に設定される。
【0035】
ノード91bの信号が不明、すなわち、X値とされた場合、ノード91bで起こり得るすべての誤りのある挙動が捕捉される。第1又は第2の何れかのテストベクトルが故障回路に与えられ、ノード91bの信号がX値で保持されるとき、第1の主出力PO1 は論理0であり、第2の主出力PO2 は値Xである。したがって、主出力PO1 及びPO2 の起こり得る誤りの組合せを含むすべての論理値の組合せは、ノード91bのX値によって捕捉される。
【0036】
これに対し、従来の数通りの故障診断方法は、単一のノードが0(s−a−0)又は1(s−a−1)に保持されたときに回路の応答を検査する。換言すると、ノード91bにおける信号は、1又は0の固定した論理値に設定、或いは、保持される。
ノード91bの信号が論理0に保持された場合、第1のテストベクトル01111及び第2のテストベクトル01000が図4の故障回路の主入力に与えられたとき、第1の主出力PO1 は論理0であり、第2の主出力PO2 は論理1である。或いは、ノード91bの信号が論理1に保持されると、第1のテストベクトル01111及び第2のテストベクトル01000のいずれか一方が図4の故障回路の主入力に与えれたとき、主出力PO1 及びPO2 は共に論理0である。
【0037】
ノード91bの信号が論理0に保持された故障モデルは、第2のテストベクトル01000が故障回路に与えられたときに、論理0に設定された第2の主出力PO2 を捕捉できない。逆に、ノード91bの信号が論理1に保持された故障モデルは、第1のテストベクトル01111が故障回路に与えられたときに、論理1に設定された第2の主出力PO2 を捕捉できない。そのため、ノード91bで起こり得るすべての誤った挙動は、1に保持された故障診断モデル、或いは、0に保持された故障診断モデルのいずれによっても包含されない。
【0038】
表1には、図3及び4の例示的な回路の種々の故障診断に対する応答が要約されている。表1は、優良な回路、故障回路、ノード91bが0に保持された故障回路、ノード91bが1に保持された故障回路、及び、Xリストを含む故障回路によって生成された主出力応答が列挙されている。Xリスト解析技術は、デジタル回路内にエラー若しくは故障が含まれる場合と等価的に機能する。
【0039】
【表1】
【0040】
B. エラー若しくは故障モデルについて
Xリストを用いることによって生成される強力な診断推論は、エラー若しくは故障モデルを使用することによって更に支援される。エラー若しくは故障モデルの使用によって、回路内のエラー箇所の識別に関する改良された結果が得られる。エラーモデルはノードを選択するために使用される。エラーモデルの例には、トポロジカルエラーモデルと老域ベースエラーモデルの2種類のエラーモデルが含まれる。トポロジカルエラーモデルは回路内のノードの位相的な分類に基づいている。領域ベースエラーモデルは、ノードの周辺領域内の一定したファンの範囲内のゲートに基づいている。
【0041】
位相的に制限されたエラーに対し、回路のノードに基づいて位相的な順序T、T=(t1 ,t2 ,...,tn )が指定される。
集合E内のノードにおける論理関数が誤りを含み、ノードが以下の条件を満たすとき、エラーは位相的に制限されたエラーと呼ばれる。
E=(e1 ,e2 ,...,ek )
かつ
∃i,j(1≦i≦j≦n)に対し、
{i≦el ≦j,∀l|1≦l≦k}
整数i,jはエラーが存在する下限及び上限を表し、j−i+1はエラーの範囲と称される。
【0042】
領域ベースエラーは、ノードの論理関数が不正確であり、エラーが回路内のノードの半径Rの構造的距離内に存在する場合のエラーである。このモデルの場合に、領域は、ノード間の構造的距離に基づいて互いに近接したノードを含む回路内で定義される。
集合E内のノードの論理関数が間違いであり、ノードが以下の条件を満たす場合に、エラーは半径rの領域ベースエラーと呼ばれる。
【0043】
E=(e1 ,e2 ,...,ek )
かつ
∃p(1≦p≦n)に対し、
構造的距離(el ,p)≦r
エラーモデルの別の例は、カットベースエラーモデル及びレジスタトランスファーレベル(RTL)ベースエラーモデルである。
【0044】
RTLベースエラーは、ノードの論理関数が間違いであり、エラーが階層的設計内の回路の下位レベルモジュール又は上位レベルモジュールに存在する場合に生ずるエラーである。
カットベースエラーは、ノードの論理関数が間違いであり、ノードが回路にカット領域を形成する回路内の一定の部分集合の範囲内に存在するときに生ずるエラーである。カット領域とは、回路の任意の主入力からの信号が回路の任意の主出力に到達するため通過しなければならない領域である。
【0045】
Xリストを発生させるためには、領域ベースエラーモデル、トポロジカルエラーモデル、カットベースエラーモデル、若しくは、RTLベースエラーモデルのいずれのエラーモデルを使用してもよい。後述するように、すべてのエラー箇所を含むノード集合を判定することは、診断中のエラーがエラーモデルによって表現されたタイプのエラーである場合に実現可能である。
【0046】
また、診断中のエラーがエラーモデルによって表現されたタイプのエラーではなくても、有用な情報がXリスト診断アプローチを用いて提供される。
II. 診断について
上記の通り、解析技術は、エラー診断及び故障診断のため巧く動作する。本質的な診断方法は相違しない。しかし、エラー診断と故障診断を設計フローの異なる段階で呼び出すことは、ある種の微妙な差を診断プロセスに加える可能性がある。
【0047】
表2には、エラー箇所診断を実行するプロセスが示されている。このプロセスは、複数のXリスト及びテストベクトルが与えられる。このプロセスは、テストベクトルと関連したすべてのエラーを含むXリストの尤度(もっともらしさ)を示すスコアをXリスト毎に付与し、Xリストにすべてのエラーが含まれている可能性が無いということを示すスコアが付与されたXリストを考慮しない。
【0048】
【表2】
【0049】
A. エラー診断について
エラー診断は、回路が実際に製作若しくは製造される前の設計フローの段階で、回路設計にエラーが有る場合に呼び出される。したがって、エラーは、回路の要求条件を指定する仕様中の主出力応答を、回路のコンピュータ表現、すなわち、設計の主出力応答と比較することにより判定される。仕様とは、一般に、設計者によって作成された文書であり、仕様回路の主出力の期待される応答が記述されている。仕様は文書に制限されないが、C言語プログラム、ハードウェア記述言語の形式、或いは、その他の類似した形式による回路表現でもよい。いかなる形式であっても、仕様は仕様回路の期待される応答を記述する。
【0050】
回路のコンピュータ表現は、ハードウェア記述言語若しくは他の類似した手段を用いて回路を記述するコンピュータ表現である。コンピュータモデル回路の主出力の応答は、コンピュータモデル回路の主入力をシミュレーションし、回路に論理値を伝搬させ、回路の主出力を検査するシミュレーションツールによって判定される。シミュレーションツールは、従来技術において公知であり、3値論理若しくは記号論理を取り扱うことができる任意のシミュレーションツールをこのプロセスと共に使用することができる。シミュレーションツールは、クロックによって指定された時間周期、或いは、クロックで指定されていない時間周期に亘って回路全体の論理値を判定することができる。また、シミュレーションツールは、ノードにおける値をX値に置き換える。したがって、仕様の主出力と、Xリストの影響を受けたコンピュータ表現回路の主出力の比較は、コンピュータで容易に実現される。
【0051】
一実施例において、32個の主出力が疑似並列形式で同時に検査される。勿論、最大32個の出力の処理によってすべての主出力が検査されるならば、プロセスのこの部分は完全に並列的である。
図5には、Xリストを使用して多重設計エラー若しくは故障の箇所を見つけるプロセスのフローチャートが示されている。回路又は設計は、ステップ61で検証される。検証は、自動テストプログラムツール、或いは、形式検証技術を用いて行われる。ステップ63において、テスト中のユニットの検証が成功したかどうかが判定される。テスト中ユニットが検証ステップのテストに合格した場合、このプロセスは終了する。一方、テスト中のユニットが1個以上の故障若しくはエラーを含む場合、このプロセスはステップ65に進み、Xリストが作成される。Xリストは、トポロジカルエラーモデル、領域エラーモデル、又は、その他の技術を用いて作成される。ステップ67において、このプロセスは、既にテストベクトルの組が存在するならば、テストベクトルを選択する。テストベクトルの組が利用できない場合には、このような組を作成する必要はない。ステップ69において、このプロセスはXリストを選択する。ステップ71において、このプロセスは、ステップ69で選択されたXリストを利用してテスト中のユニットを評価する。テスト中ユニットが物理的な回路である場合、Xリストはこの回路の表現に必ず適用されるべきである。図6を参照してより詳細に説明されるこの評価ステップは、テストベクトルを回路又は設計に適用し、このテストベクトルをXリストが適用される設計に適用する。テストベクトルの適用後、2個のエントリーの主出力が比較される。
【0052】
ステップ71においてテスト中ユニットを評価した後、プロセスは、ステップ73でXリストの相対ランク付けを更新する。所定の設計回路内のすべてのエラーを含む可能性が最も高いXリストは最上位にランク付けされ、すべてのエラーを含む可能性が最も低いXリストは最下位にランク付けされる。ステップ75において、このプロセスは、すべてのXリストが1個のテストベクトルに対して使用されたかどうかを判定する。評価用のXリストが未だ残っている場合、プロセスはステップ69に戻る。特定のテストベクトルに関して別の評価用のXリストが未だ残っている場合、このプロセスは、テストベクトルの組の中のすべてのテストベクトルが評価のため使用されたかどうかを判定する。テスト用の別のベクトルが未だ残っている場合、プロセスはステップ67に戻る。それ以外の場合、このプロセスは終了する。
【0053】
図6には、テスト中ユニットを評価するプロセスのフローチャートが示されている。ステップ81において、このプロセスは、テストベクトルをテスト中のユニットの仕様に適用する。ステップ83において、このプロセスは、テストベクトルを、Xリストが適用された故障実装に適用する。ステップ85において、プロセスは、仕様及び故障実装から対応した主出力を選択する。ステップ87において、このプロセスは仕様から選択された主出力を、実装から選択された対応した主出力と比較する。仕様の主出力が実装の主出力と一致する場合、このプロセスは、ステップ88において、一致カウントをXリストスコアに追加する。仕様の主出力と実装の主出力の間の一致は、実装側の主出力が正しいということを示す。実装の主出力の値がX値であり、実装の主出力が仕様の主出力と部分的に一致する場合、プロセスは、ステップ89において、部分一致カウントをXリストスコアに追加する。仕様の主出力が実装の主出力と一致しない場合、或いは、仕様の主出力が実装の主出力の反転である場合、プロセスは、ステップ90において、不一致カウントをXリストスコアから減算する。
【0054】
ステップ92において、このプロセスは、Xリストスコアがある閾値を超えるかどうかを判定する。Xリストスコアが閾値を超えるとき、このプロセスは終了し、このプロセスの呼び出し側に戻る。さもなければ、このプロセスは、ステップ94において、すべての主出力が検査されたかどうかを判定する。検査されるべき別の主出力が未だ残っている場合、プロセスはステップ85に戻る。さもなければ、このプロセスは呼び出し側に戻る。
【0055】
コンピュータモデル回路の主出力を、Xリストの影響を受けている同じコンピュータモデル回路の主出力と比較することは、診断プロセスでも使用され得る。主要な相違点は、一致の定義が変わることである。図6を再度参照して、診断プロセスの場合について説明すると、ステップ81及び83において、故障実装と、Xリストの影響を受けた故障実装との間で比較が行われる。したがって、ステップ81において、仕様の代わりに故障実装応答が比較される。一致と不一致の定義も逆になる。一致は、(0,1)若しくは(1,0)の値の組合せの場合に生じ、不一致は、(0,0)若しくは(1,1)の値の組合せの場合に生ずる。しかし、故障実装とXリストの影響を受けた故障実装との間の差はXリストしかないので、一致が生じることはない。X値は、故障実装の出力応答を反転させることはない。X値は、故障実装にXの出力応答を生成させるだけである。
【0056】
このプロセスは、一致及び不一致の値を反転させ、不一致を減算するのではなくスコアに加算し、一致をスコアに加算する代わりにスコアから減算することによっても変更することが可能である。この場合、一致及び不一致の定義を変更する必要はない。したがって、図6に示されたプロセスには、Xリスト候補のスコアを得るために、故障実装とXリストの影響を受けた故障実装との比較、仕様とXリストの影響を受けた故障実装との比較、及び、故障実装とXリストの影響を受けた仕様との比較などを使用する多数の変形例が存在する。しかし、このプロセス内の各変形は、比較の一致若しくは不一致が、Xリスト内のノードだけにより構成された多数のエラーの組合せは回路内のエラーの原因にはなり得ないことを表現するという一つの主要な診断推論を強調する。その結果として、このXリストは残りのXリストよりも低いスコアを受ける。
【0057】
B. 故障診断について
故障診断は、故障が設計フローの製作又は製造段階で見つかったときに呼び出される。診断プロセスは、Xリストによる影響を受けた回路のコンピュータ表現の主出力応答を、故障回路の主出力応答と比較することによりエラーを判定する。製造段階において、回路のコンピュータ表現の主出力応答は、エラーを含まない回路である仕様の主出力応答と一致する。故障回路は、回路設計から作成された物理的なチップである。故障チップは故障若しくは多数の故障を含む。
【0058】
エラー診断の場合と同様に、回路のコンピュータ表現は、ハードウェア記述言語又は他の類似した手段を用いて回路を記述するコンピュータモデルである。コンピュータモデル回路の主出力の応答は、コンピュータモデル回路の主入力をシミュレーションし、回路内に論理値を伝搬させ、回路の主入力を検査するシミュレーションツールによって決定される。シミュレーションツールは、ノードの値をX値に置換する。したがって、故障回路の主出力と、Xリストの影響を受けた回路のコンピュータ表現の主入力との比較は、コンピュータによって容易に実現される。Xリストを実際の物理的回路に適用することに困難さが生じるのに伴って、Xリストは設計に適用される。それ以外の場合に、故障診断方法はエラー診断アルゴリズムと類似している。
【0059】
他の例の場合に、仕様の主出力応答は、Xリストの影響を受けた故障回路の主出力応答と比較される。実装は、Xリストによる影響を受けた回路のコンピュータ表現の主出力応答を故障回路の主出力応答と比較する上記の実装と類似している。
図6のステップ88、89及び90に示された一致カウント、部分一致カウント、不一致ペナルティは、入力パラメータを表わす。3個の入力パラメータに値を割り当てることにより、エラーモデルの確信度が診断プロセスに与えられる。一致カウント及び不一致ペナルティに大きい値を割り当てることは、高い確信度が所定のエラーモデルに関連付けられていることを診断プロセスに知らせる。逆に、小さい値が一致カウント及び不一致ペナルティに割り当てられていることは、低い確信度がエラーモデルに関連付けられていることを示す。エラーモデルの確信度が高いということは、回路のエラーがエラーモデルによって捕捉されることを意味する。エラーモデルの確信度が低いということは、回路内のエラーのタイプが不確実であることを意味する。
【0060】
図6のステップ92における閾値限界は別の入力パラメータを表現する。この閾値限界は、不一致が発生したとき後にXリストのランク付けを終了させるように設定することが可能である。閾値限界の実際の数値は可変である。しかし、エラーのマッチングを行うモデルの確信度が高い場合、閾値限界は、不一致が1回発生した後に終了するように設定され得る。これにより、特定のXリストに対し診断プロセスの高速トラバースが実現される。
【0061】
また、閾値限界は、2回以上の不一致、或いは、一致、部分一致及び不一致の他の組合せを許容するように調節し得る。ランク付け中のスコアが閾値限界よりも低下しない限り、図6に示されるように、エラー若しくは故障診断のためのXリストのランク付けが継続する。
C. Xリストに基づく診断プロセスにおける位相的に制限されたエラーモデルの使用について
位相的にkで制限された多数のエラー若しくは故障が存在する場合、以下に定義されるような重複Xリストを選択することによって、エラー箇所であるすべてのノードを含むあらゆるXリストのスコアは、候補Xリストの中で最高スコアであることが保証される。
【0062】
(1, 2, ..., 2k)
(k+1, k+2, ..., 3k)
(2k+1, 2k+2, ..., 4k)
(3k+1, 3k+2, ..., 5k)
・・・・・・・・・・・・・・・・・・・・
(([n/2k]+1)k+1, ...., n)
任意の位相的に制限されたエラー(i+1,...,i+k)を考えると、エラーの各ノードを包含する少なくとも1個のXリストが存在する。上記の入力パラメータを設定することにより、不一致だけにペナルティが科されることが保証される。Xリストの定義によって、すべてのエラーノードを含むXリストに不一致は発生しないことが保証される。最低ノードがi+1以下であり、最高ノードがi+k以上であるXリストが存在する場合に、すべてのエラーノードを含むXリストが見つかったことが保証される。そのようなXリストが存在しない場合、末尾の指数がi+1とi+kの間に収まるXリストが存在する。したがって、このようなXリストに関する制限は、以下のように表される。
【0063】
[i+p−(2k−1),i+p] 但し、1≦p≦k−1
これは、重複Xリスト構造の場合に、以下のように制限される別のXリストが存在することを意味する。
[i+p−(k−1),i+p+k] 但し、1≦p≦k−1
これにより、このXリストは、選択されたエラーからのすべてのノードを含むことが保証される。その理由は、
k≧2,1≦p≦k−1
であるとき、
領域[i+p−(k−1),i+p+k]
は、
領域[i+1,i+k]
を包含するからである。
【0064】
D. Xリストに基づく診断プロセスにおけるRTLベースエラーモデルの使用について
階層的な設計の場合に、設計若しくは回路は、高レベルモジュールに分割される。高レベルモジュール内に葉、下位レベルモジュールが含まれる。これらの下位レベルモジュールは、更なる下位レベルモジュールを含み、以下同様である。上位レベルモジュール内の下位レベルモジュールの挙動は、上位レベルモジュールによって捕捉される。
【0065】
しかし、下位レベルモジュール内の回路の複雑さに起因して、多数のエラー若しくは故障が設計の下位レベル箇所を見つけることを困難にさせる。高レベルモジュールの出力をカバーするXリストを作成することにより、下位レベルモジュールの間違った挙動が捕捉される。下位レベルモジュールがエラーを含む場合、その下位レベルモジュールが属している上位レベルモジュールのすべての出力を含むRTLベースXリストのスコアはすべての候補Xリストの中で最高位であることが保証される。
【0066】
また、ハイレベルモジュールの各出力をカバーするXリストの集合を作成することにより、下位レベルモジュールの間違った挙動を含む起こり得るすべての挙動が捕捉される。したがって、エラーを含まない下位レベルモジュールは、エラーを含む下位レベルモジュールを分離することを考慮することによって直ちに除去される。
【0067】
E. Xリストに基づく診断プロセスにおけるカットベースエラーモデルの使用について
カット若しくは設計はカット領域を形成するため分割され得る。カット領域は、回路の主入力からの入力信号が回路の任意の主出力に到達するために必ず通過しなければならない回路の一部分を表わす。
【0068】
カット領域、又は、カット領域によって支配された領域の一部分がエラーを含む場合に、そのエラーがノードの部分集合内に収まるならば、カット領域内でノードの部分集合を含むカットベースXリストのスコアは、候補Xリストの中の最高位であることが保証される。
また、各カット領域を包含するXリストの集合は、カット領域の別の部分集合と、カット領域全体を一体的にカバーするXリストの集合とをカバーするため作成される。したがって、Xリストの集合は、カット領域の間違った挙動を含む起こり得るすべての挙動を捕捉し得る。
【0069】
F. Xリストに基づく診断プロセスにおける領域ベースエラーモデルの使用について
回路内にノードiと半径rとが存在し、エラー集合内の各ノードからノードiまでの距離がr以下であるような多数のエラー若しくは故障が存在する場合を考える。回路内の各ノードで半径rによって領域ベースXリストを選択することにより、ノードiに中心が置かれたXリストは、すべてのXリストの中で最高位ランク付けスコアを達成することが保証される。
【0070】
少なくとも1個のXリストにすべてのエラー箇所を包含させることにより、すべてのエラーノードを含むXリストに不一致が生じないことを保証できる。したがって、ノードiに中心が置かれたXリストは最高位ランク付けスコアを獲得する。
このため、診断中のエラーのモデルタイプが既知であるとき、正確なエラー診断が実施可能である。この場合、エラーモデルの高い確信度は診断プロセスに伝搬される。入力パラメータを、一致カウント(match count) =0、部分一致カウント(partial match count) =0、及び、不一致ペナルティ(mismatch penalty)=∞のように設定することにより、高い確信度レベルが診断プロセスに伝搬される。エラーモデルによってモデル化されたエラーが見つけられることが保証されるだけではなく、これらのエラーを識別するために必要な時間が削減される。
【0071】
しかし、所定のテストベクトルの集合が不適当な場合に、最高位にランク付けされたXリストの起こり得る数は、実際の見通しよりも多い。この問題を解決するため、入力パラメータは、一致の方が不一致よりも優良でるという直観と、不一致を与えるXリストを上回る不一致を与えないXリストをランク付けするための実践的なアプローチとに基づく診断プロセスを取り扱うための柔軟性を与える。不一致カウントが10、部分一致カウントが5、不一致ペナルティが1000の入力パラメータは、診断プロセスに上記の直観性と実践性の混合を与える。
【0072】
また、テスト中のユニットの知識を含むエンジニアの専門知識は、設計者のような明示的なガイダンスの下でテストベクトルを選択することにより直接的に利用してもよい。設計者若しくは技術者は、回路動作、既知若しくは非常に確実な設計中の欠陥、又は、既知若しくは非常に確実な製作プロセス中の欠陥を含む多数の規準に基づいてテストベクトルを選択する。選択されたテストベクトルは、テスト中ユニットの主入力に与えられ、Xリストに基づいて多数の故障及びエラーを箇所を見つけるためシステムに導入される。テストベクトルは、自動テストツールによって自動的に生成されても構わない。
【0073】
さらに、技術者若しくは設計者の知識は、上記の如く、一致カウント、部分一意カウント、不一致ペナルティ、及び、閾値限界などの診断プロセスの入力パラメータを設定することにより直接的に使用されてもよい。
III. 多重エラー及び故障診断の一例について
図5及び6に示されたプロセスは、1個の付加的な故障を含むように図4に変更が加えられた図7の(A)〜(D)に示された故障回路の故障個所を判定するため使用される。図4と図7の(A)〜(D)との相違点である一つの付加的な故障とは、第6のNANDゲートがORゲートに置換されている点である。
【0074】
図7の(A)を参照するに、図4の回路の適用された2個のテストベクトルを図7の(A)の回路に適用することによって、図7の(A)の回路の主出力にエラーが生じる。特に、01111であるテストベクトルV1が故障回路に適用された場合、回路の第1の主出力は0に設定され、回路の第2の主出力は1に設定される。図3を参照して詳細に説明された回路仕様は、第1のテストベクトルV1が回路に適用されたときに第2の主出力が0になることを要求するので、図7の(A)の回路は故障している。また、01000に一致する第2のテストベクトルV2をこの回路に適用することにより、第1の主出力は0に設定され、第2の主出力は1に設定される。これは、図3を参照して詳細に説明された回路仕様の要求条件に適合している。
【0075】
図7の(A)のマルチ回路には、回路内の起こり得るエラー箇所を判定するため、3個のXリストが適用される。第1のXリストAは、第1のNANDゲートと第5のNANDゲートとにより形成されたノードを含む。第2のXリストBは、ANDゲートとORゲートとにより形成されたノードを含む。第3のXリストCは、第2のNANDゲートと第4のNANDゲートとにより形成されたノードを含む。
【0076】
図7の(B)には、第1及び第2のテストベクトルをXリストAを含む故障回路の適用する例が示されている。このXリストAは、第1及び第2の両方のテストベクトルに対し第5の主出力をXに設定する。このXリストAは第2の主出力のファンイン中にノードを含まない。したがって、第2の主出力の出力は故障回路の出力から変化しないまま保たれる。図7の(B)の回路で要求された主出力を、第1及び第2のテストベクトルに対し仕様によって要求された主出力と比較することにより、第1の主出力は、第1及び第2の両方のテストベクトルに対する仕様と部分的に一致することがわかる。その理由は、Xが0又は1と部分的に一致するからである。しかし、図7の(B)の回路の第2の主出力と、第1のテストベクトルV1が適用された仕様によって要求される第2の主出力との間に不一致が発生する。第2の主出力は、第2のテストベクトルV2が適用された仕様の第2の主出力と一致しない。したがって、第1及び第2のテストベクトルを適用することによって、2個の部分不一致と、1個の不一致と、1個の一致とが得られる。不一致の値が1000、部分一致の値が5、一致の値が10であるとき、XリストAによって得られるスコアは−980である。
【0077】
図7の(C)には、図7の(A)の故障回路にXリストBが適用された場合の例が示されている。XリストBを故障回路に適用しても、XリストBは第1の主出力のファンインの完全に外側にあるので、第1の主出力に影響は生じない。しかし、XリストBは、第2の主出力を生成するゲートを含む。かくして、第2の主出力は、XリストBが故障回路に適用されるとき常に値Xである。このため、図7の(C)回路の第1の主出力は、第1又は第2の何れかのテストベクトルが回路に適用されたとき値0である。図7の(C)の回路の第2の主出力は、第1又は第2の何れかのテストベクトルが回路に適用されたとき値Xである。このとき、第1の主出力は、第1及び第2の両方のテストベクトルに対し仕様応答と一致し、第2の主出力は、第1及び第2の両方のテストベクトルに対し仕様と部分的に一致する。図7の(B)の回路に関して使用された数値と同じ数値を、一致、部分一致、及び、不一致に適用することによって、XリストBはスコア30を有する。
【0078】
図7の(D)には、図7の(A)の故障回路にXリストCが適用された場合の例が示されている。第1のテストベクトルV1をこの回路に適用することにより、第1のNANDゲートの出力は値1に設定され、第4のNANDゲートの出力は、XリストCの適用によって値Xに設定される。したがって、第1の主出力に対応した信号を形成する第5のNANDゲートは、入力に応じて値1と値Xとをとる。NANDゲートの出力は、NANDゲートへの何れかの入力が値0であるときに、値1であることが保証されているので、第5のNANDゲートの出力は不確定、すなわち、値Xである。同様に、ANDゲートの出力は、ANDゲートへの何れかの入力が値0であるときに値0である。第1のテストテストベクトルV1を適用することにより、ANDゲートは入力として1及びXを有する。したがって、ANDゲートの出力はXである。ORゲートへの入力は、XリストCを適用した場合、Xである。第2のテストベクトルV2を使用することにより、第5のNANDゲートへの入力として、値1及び値Xが与えられ、ORゲートへの入力として、値X及び値Xが与えられる。したがって、XリストCが適用された図7の(D)の回路の主出力は常にXである。そのため、図7の(D)の主出力は、第1又は第2のテストベクトルが適用された仕様と常に部分的に一致する。先の例と同じ値を一致、部分一致、及び、不一致に対し使用することにより、XリストCにはスコア20が与えられる。
【0079】
【表3】
【0080】
図7の(A)の故障回路にXリストA、XリストB及びXリストCを使用した結果が表3に示されている。最高スコアを有するXリストBは、すべての故障ノードを含む可能性が最も高いXリストとしてランク付けされる。XリストCは2番目にランク付けされ、XリストAは明らかに関係が無いものとして示される。したがって、このプロセスは、すべての故障ノードを含むXリストを最尤候補として正確に識別する。また、この結果から、一致と不一致は区別する方が望ましいことがわかる。
【0081】
IV. 診断プロセスの正確度の改善について
ランク付けされ、分類されたXリストの集合が与えられた場合に、ランク付けされたXリストは一つずつ検査され、設計(若しくは回路)内のエラー(若しくは故障)の全部は含まないXリストが除去される。Xリストのノードがすべてのエラーを含む場合、要求された回路挙動を実現するためXリストのノードに訂正が行われる。これらのノードに訂正を行えないとき、Xリストはエラーの全部は含まないであろう。
【0082】
設計の主入力に導入された任意のテストベクトルは、シミュレーションを用いて設計中に伝搬される。
設計内の定義された領域において、このテストベクトルの伝搬によって、領域に値が与えられる。また、この伝搬によって、領域は値を出力し、別の値が主出力に伝搬する。
【0083】
一般的に、テストベクトルの部分集合であるテストベクトルの集合に対し、各テストベクトルは、同じ明瞭な値の集合を領域の入力に与える。この領域は、同じ入力値が与えられたとき、必ずしも異なる出力値を生成し得ない。したがって、適当な回路動作のため、同じ入力に対し異なる出力を生成するよう要求される設計内の領域を識別するXリストは、特定のテストベクトルによって表現されたエラーの全部を含み得ない。
【0084】
換言すると、Xリストによって定義された領域への入力を検査し、テストベクトルが設計に与えられたときに設計要求条件に適合するように領域に要求される出力を判定することにより、設計が設計要求条件に適合するような領域用の訂正関数が決められ得る。
しかし、テストベクトルがその領域に対し同じ入力ベクトルの集合を生成し、訂正関数を決めるために使用された出力とは異なる領域出力を必要とすることが判明した場合、そのXリストによって定義された領域に対し訂正関数は作成できない。その結果として、Xリスト領域内だけの変更では要求された主出力挙動を生成できないので、エラーの全部をXリスト内に格納することができない。
【0085】
以下の表4には、Xリストを考慮対象から除去し、訂正関数を形成するプロセスが示されている。このプロセスは複数のXリスト及びテストベクトルが与えられる。このプロセスは、k番目のXリストn対するm個のテストベクトルの特定のテストベクトル集合用の訂正関数、
Xk OpsStSpecEqImplForVecSetkm
を作成する。また、このプロセスは、k番目のXリストに対するテストベクトル集合Vのj番目のエスとベクトル用の訂正関数
Xk OpsStSpecEqImplForVecvj
を作成する。この訂正関数
Xk OpsStSpecEqImplForVecvj
は、二分決定グラフ(BDD)を用いて構築され、Bijk はk番目のXリストのj番目のテストベクトルに対する故障回路のi番目の主出力に関して構築された二分決定グラフである。二分決定グラフを構築する方法は、従来技術において公知であり、例えば、参考のため引用される文献:R.E. Bryant, Graph-Based Algorithms For Boolean Functgion Manipulation, IEEE Trans. Computer C-35(8): 667-691, August 1986 に記載されている。
【0086】
両方の訂正関数は、XリストXk の出力値を保存し、特定の回路及び故障回路の主出力は、j番目のテストベクトルVj に対し一致する。k番目のXリストに対し訂正関数:
Xk OpsStSpecEqImplForVecSetkm
及び
Xk OpsStSpecEqImplForVecvj
の有効性をテストすることにより、このXリストは考慮され、或いは、考慮されない。訂正関数が有効であるとみなされるのは、Xリスト出力が回路の主出力をテストベクトルの提供された仕様回路の主出力に一致させるように、Xリスト入力からXリスト出力への関係が導出され得る場合である。
【0087】
【表4】
【0088】
図8には、設計のエラーのすべては含まないXリストを除去するプロセスのフローチャートが示されている。このプロセスは、Xリストのランク付けのプロセスが実行されている場合を想定している。但し、図8に示されたプロセスはこのようなランク付けを行わずに実行しても構わない。
ステップ200において、Xリストのリストから一つのXリストが選択される。ステップ210において、Xリストによって定義された領域に別個の入力を与えるテストベクトルが決められる。Xリスト領域への入力は、テストベクトルによって値が定義された主入力を用いてXリスト入力用の二分決定グラフを構築するような従来技術において公知のシミュレーション若しくは他の方法によって決められ得る。ステップ230において、訂正関数がステップ210で集められたテストベクトルの各集合に対し作成される。ステップ250において、このプロセスは、Xリストが表現されたエラーの全部を包含できないかどうかを判定する。ステップ260において、このプロセスは、検査されるべきXリストが未だ残っているかどうかを判定する。更なるXリストが検査を必要とする場合、ステップ200、210、230及び250が繰り返し実行される。さもなければ、このプロセスは終了する。
【0089】
図9には、図8のステップ250の詳細なステップのフローチャートが示されている。ステップ251において、このプロセスはテストベクトルを選択する。ステップ300において、このプロセスは、選択されたテストベクトルを用いて故障設計をシミュレーションし、故障回路の各主出力に対する二分決定グラフを構築する。二分決定グラフは、主入力が選択されたテストベクトルによって既知の状態であるときに、Xリスト領域の出力だけを用いて主出力を表現する。kのような相関を行う別の方法も知られており、それらを使用してもよい。
【0090】
ステップ400において、選択されたテストベクトルを使用することにより、このプロセスは、仕様に適合する設計をシミュレーションする。主出力応答は検査され、ステップ300で展開された二分決定グラフを用いて、新しい訂正関数が作成される。勿論、適合する設計をシミュレーションする以外の方法を用いて、所定のテストベクトルに対する正しい主出力応答を決定してもよい。
【0091】
ステップ500において、このプロセスは、新しい訂正関数が有効であることを保証するため新しい訂正関数をテストする。ステップ253における検査の際に、新しい訂正関数が有効であるならば、このプロセスは継続する。有効ではないならば、このプロセスは別のXリストの処理を始めるために戻る。ステップ255において、別のテストベクトルを検査する必要がある場合に、次のテストベクトルがステップ251で選択され、ステップ300、400、500、253及び255が繰り返し行われる。すべてのテストベクトルが検査されたとき、今プロセスは別のXリストを処理するため戻る。
【0092】
図10には、選択されたテストベクトルに対し故障回路の主出力毎に二分決定グラフを作成する図9のステップ300の詳細ステップのフローチャートが示されている。図10のステップ301において、このプロセスは故障設計をシミュレーションする。故障設計において、選択されたXリスト領域出力には記号変数が割り当てられる。このプロセスは、ステップ303において回路の主出力を選択する。ステップ305において、このプロセスは選択された主出力用の二分決定グラフを構築する。選択されたテストベクトルに対する主入力はわかっているので、二分決定グラフは記号変数を用いて表現される。ステップ307において、このプロセスは、更なる主出力を検査すべきかどうかを判定する。検査されるべき更なる主出力が未だ残っている場合、次の主出力がステップ303で選択され、ステップ305及び307が繰り返し実行される。すべての主出力が検査された場合、このプロセスは図9のステップ400に戻る。
【0093】
図11には図9のプロセスのステップ400の詳細ステップのフローチャートが示されている。図9のプロセスのステップ400において、新しい訂正関数が作成される。図11のステップ401において、仕様回路に適合する設計がシミュレーションされる。このプロセスは、ステップ403において、回路の主出力を選択する。ステップ405において、新しい訂正関数が先に構築された二分決定グラフを用いて作成される。訂正関数が既に存在する場合、新しい訂正関数は、前の訂正関数と、図10のステップ305で構築された二分決定グラフとから作成される。ステップ407において、すべての主出力が検査されたと判定された場合、このサブプロセスは図9のステップ500に戻る。ステップ407において、検査されるべき主出力が未だ残っていると判定された場合、ステップ403、405及び407が繰り返し実行される。
【0094】
図12には、図9のステップ500の詳細ステップのフローチャートが示されている。図9のプロセスのステップ500は、訂正関数が有効であるかどうかを判定する。図9のステップ400で作成された現在のテストベクトルに対する訂正関数が図12のステップ501で検査される。この訂正関数が有効である場合、すなわち、Xリストのノードにおけるエラー若しくは故障を訂正する場合、プロセスは継続する。訂正関数が無効であるとき、すなわち、Xリストのノード内のエラー若しくは故障を訂正しないとき、このXリストは、ステップ511において、ランク付けされたXリストのリストから除去され、プロセスは図9の次のステップ253に戻る。
【0095】
図8のステップ230において、テストベクトル集合に対する訂正関数は予め決められている。テストベクトル集合用の新しい訂正関数は、ステップ203で作成された前の訂正関数と、図9のステップ400で作成された現在のテストベクトルに対する訂正関数とを操作することによりステップ507において作成される。新しい訂正関数は、現在のテストベクトルによって表現された付加的な要求条件を取り込むため、減縮若しくは拡張される。ステップ509において、テストベクトル集合用の新しい訂正関数の有効性が検査される。このテストベクトル集合用の新しい訂正関数が有効である場合、すなわち、テストベクトル集合のためのXリストのノード内のエラー若しくは故障を訂正する場合、図9のステップ500は終了し、次のベクトルが図9のステップ251で選択される。このテストベクトル集合に対する新しい訂正関数が無効であるとき、Xリストは、ステップ511においてランク付けされたXリストの集合から除去され、図9のステップ500が実行され、次のXリストが図8のステップ200で選択される。
【0096】
A. その他の診断プロセス
診断プロセスは、3値論理シミュレーションを使用する方式だけには制限されない。上記の3値論理シミュレーションは3値記号シミュレーションで置換してもよい。一実施例において、3端子(0,1,X)を有する二分決定グラフが使用される。3端子二分決定グラフの使用法及び構成法は、従来技術において公知であり、特に、例えば、参考のため引用された文献: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 に記載されている。3値記号シミュレーションを実現するため、多重端子決定グラフ(MTDD)、算術的決定グラフ(ADD)、及び、半数値決定グラフ(SNDD)のような数種類の他のタイプの決定グラフを使用することが可能である。
【0097】
X値を用いる二分決定グラフは多数の形で使用され得る。一実施例では、X値が割り当てられたゲート毎に、ダミー変数XVが導入される。ダミー変数XVに関するすべての操作は、関数とx値との間の論理操作として行われる。ダミー変数XVは順序木の底で置換してもよく、二分決定グラフ構築が完了した後に、端子Xで置換してもよい。
【0098】
また、決定グラフは、各ノードが3個の出力側エッジ0、1、Xを有する場面で使用され得る。二分決定グラフ内の各変数は、3個の出力側エッジを備えたノード、或いは、X値だけが割り当てられたノードによって表現され、処理される。上記の説明は、ブール値(0,1)以外の値、例えば、値Xが関数操作の間に用いられる決定グラフが使用される場面で多数の実施例が実現可能であることを示している。
【0099】
図5及び6に示された3値論理シミュレーションのためのランク付け処理と同じ処理を利用することによって、Xリストは3値記号シミュレーションを用いてランク付けすることが可能である。回路表現、すなわち、故障回路と回路仕様の主出力応答は、各回路表現毎にテストベクトルに対し作成された二分決定グラフの等価性をテストする(XOR演算する)ことによって比較される。その結果として、複数のテストベクトルを適用することによって、一致、部分一致及び不一致のスコア評価は、端子0、端子1及び端子Xに到達したテストベクトルの数をカウントすることによって判定される。したがって、3値論理シミュレーションの場合と同様に、ランクがXリストに割り当てられる。
【0100】
図13及び14には、エラー/故障の発生源ではないXリストを除去するプロセスの他の実施例のフローチャートが示されている。
図13は、他のプロセスのフローチャートである。このプロセスは、ステップ111においてXリストを選択する。ステップ113において、このプロセスはテストベクトルを選択する。テストベクトルは、Xリストの影響を受けた回路の主入力に適用される。テストベクトルは、先に説明した診断プロセスで使用されたシミュレーションと類似したコンピュータシミュレーションによって、回路を通って回路の主出力に伝搬される。ステップ115において、テストベクトルに対する主出力が仕様を検査することによって判定される。既に説明したように、仕様は回路の挙動を記述し、それ自体で、回路の主入力に導入された所定のテストベクトルの集合が対応して生成する予測主出力を決定する。ステップ117において、Xリストへの入力は、シミュレーション結果を検査することにより決められる。Xリストの出力は、ステップ119でも決められる。Xリスト出力は、シミュレーション結果を検査することにより、若しくは、二分決定グラフを使用することによって決定され得る。ステップ121において、Xリストへの入力と、Xリストの出力との間の矛盾関係が、現在のテストベクトル及び先に検査されたテストベクトルに対し検査される。
【0101】
図14には、Xリスト入力のXリスト出力に対する関係を判定するプロセスの詳細なフローチャートが示されている。図14のステップ141において、現在のXリストに対し前のテストベクトルによって生成されたXリスト入力及びXリスト出力が記憶手段、すなわち、過去入出力Xテーブルから一つずつ獲得される。ステップ141において、検査すべき前のXリスト入力又はXリスト出力が存在しない場合、ステップ147において、現在のXリスト入力及びXリスト出力が記憶され、すなわち、過去入出力Xテーブルに追加される。ステップ147の後に、図13のステップ121に対し“no”(否定)応答が生成され、現在のテストベクトルからのXリスト入力及びXリスト出力と、前のテストベクトルからのXリスト入力及びXリスト出力との間に矛盾が発生していないことが示される。前のXリスト入力及びXリスト出力が存在する場合に、ステップ143が呼び出され、現在のXリスト入力が前のXリスト入力と比較される。現在のXリスト入力が前のXリスト入力と対応しない場合、前のXリスト入力及びXリスト出力の次の集合がステップ141で取り出される。しかし、現在のXリスト入力が前のXリスト入力に対応する場合、ステップ145において、現在のXリスト出力が前のXリスト出力と比較される。
【0102】
ステップ145において、現在のXリスト出力が前のXリスト出力に対応する場合、前のXリスト入力及びXリスト出力の次の集合がステップ141で取り出される。ステップ145において、現在のXリスト出力が前のXリスト出力と対応しない場合、“yes”(肯定)応答が図13のステップ121に対し生成される。その結果として、現在のテストベクトルによって生成されたXリスト入力及び出力と、前のテストベクトルによって生成されたXリスト入力及び出力との間に矛盾が発生する。
【0103】
図13のステップ123において、ステップ121からの応答、すなわち、本質的に図14のプロセスからの応答がテストされる。矛盾が認定された場合、ステップ125において、ランク付けされたXリストが変更される。現在のXリストのランク付けは低下され、或いは、現在のXリストはランク付けされたリストから除去され得る。矛盾の発生は、Xリストに対し行われた変更とは無関係に、予測主出力が仕様に定義されるようなテストベクトルの所定の集合を用いて生成できないことを示す。したがって、エラー若しくは故障はXリスト中に存在しない。ランク付けされたXリストを変更した後、このプロセスは、ステップ129で判定されるような別のXリストを用いてステップ111に戻る。ステップ129で、これ以上Xリストが無いと判定された場合、プロセスは終了する。
【0104】
しかし、矛盾が発生しない場合、ステップ131で判定されるように更にテストベクトルが検査され、Xリストを含む回路の主入力に与えられる。ステップ113、115、117、119、121、及び123が繰り返されて、現在のテストベクトルによって生成されたXリスト入力及び出力と、前のテストベクトルによって生成されたXリスト入力及び出力との間の関係が判定される。ステップ131において、これ以上別のテストベクトルを利用できないことが判定されると、ステップ127において、訂正手段が使用され、所定のXリスト内のエラーを修理する。訂正手段は、ステップ117からのXリストへの入力と、ステップ119からのXリストへの出力とがわかるならば、二分決定グラフを用いて決定される。二分決定グラフを使用して、ブール関数を作成することができる。ブール関数の場合に、コンピュータは、Xリスト内のゲートを置換するブール関数を表現するゲートの集合を発生させ得る。ステップ127において、エラーを訂正するための上記の他の通常の方法が使用され得る。
【0105】
したがって、本発明は、3値論理シミュレーション及び記号論理シミュレーションに基づく非可算解析技術と、エラー箇所の位置的な面を表わすエラーモデルとから開発されたシステム及び方法論を提供する。上記の説明では、本発明は、幾つかの具体的な実施例に関して説明されているが、当業者は、上記の実施例に対し付加的な変更及び変形を容易になし得るであろう。したがって、本発明は、具体的に説明された態様以外の形でも実施されることに注意する必要がある。また、本発明の実施例は、あらゆる局面において例示としてみなされるべきものであり、本発明を限定するものではない。本発明の範囲は、上記の詳細な説明によって示されるのでなく、特許請求の範囲に記載された事項によって定まる。
【0106】
【発明の効果】
本発明によれば、デジタル回路を検証、テストするコンピュータ支援設計(CAD)システム及び方法において、多数のエラー若しくは故障の箇所を素早く、かつ、正確に検出できるようになる。
【図面の簡単な説明】
【図1】Xリストによる回路の抽象モデルの説明図である。
【図2】(A)は故障若しくはエラーを含まない回路の抽象モデル、(B)はエラーを含む回路の抽象モデル、(C)はXリストAを備えたエラーを含む回路の抽象モデル、及び、(D)はXリストBを備えたエラーを含む回路の抽象モデルの説明図である。
【図3】故障或いはエラーを含まない回路の一例の説明図である。
【図4】故障のある回路の一例の説明図である。
【図5】Xリストを用いるエラー/故障診断の概略を示すフローチャートである。
【図6】候補Xリストのランク付けのフローチャートである。
【図7】(A)は、故障と、XリストA、XリストB、及び、XリストCとを含む故障回路の説明図、(B)は、故障とXリストAとを含む故障回路、(C)は、故障とXリストBとを含む故障回路、並びに、(D)は、故障とXリストCとを含む故障回路の説明図である。
【図8】診断プロセスの確信度を改善する処理の概略を示すフローチャートである。
【図9】エラー若しくは故障を含まないXリストを除去する処理の一実施例のフローチャートである。
【図10】Xリストを除去する処理中の故障回路応答検査及び二分決定グラフ構築ステップの詳細なフローチャートである。
【図11】 Xリストを除去する処理中の仕様上の回路応答検査ステップの詳細なフローチャートである。
【図12】 Xリストを除去する処理中の訂正機能検査ステップの詳細なフローチャートである。
【図13】エラー若しくは故障を含むXリストを除去する処理の他の実施例のフローチャートである。
【図14】矛盾判定ステップの詳細なフローチャートである。
Claims (7)
- 所定のテストベクトルを回路設計及び回路仕様に与えたときに、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが上記回路設計内で起こり得る箇所を判定する、コンピュータを使用する方法であって、
上記回路設計内で候補ノードのリストを作成する段階と、
上記回路設計にテストベクトルを与える段階と、
0と1とXの3値論理システムの論理値Xを上記候補ノードに設定する段階と、
上記回路設計の上記出力挙動が上記候補ノードに論理値Xを設定した結果として変化したかどうかを判定する段階と、
上記回路設計の上記出力挙動が上記候補ノードに論理値Xを設定した結果として変化したかどうかに依存するエラー確率を上記候補ノードのリストに割り当て、上記候補ノードのリストをランク付けする段階と
を有する方法。 - 主入力、主出力、及び、上記主入力と上記主出力の間に有る中間ノードを有する第1の回路表現内で起こり得るエラー箇所に関する情報を判定する方法であって、
上記第1の回路表現の上記主入力にテストベクトルを与える段階と、
上記中間ノードの候補ノードの集合、上記主入力、又は、上記主出力に値Xを与える段階と、
上記テストベクトル及び上記値Xが与えられた結果として得られた上記主出力を、上記テストベクトルが与えられた第2の回路表現の主出力と比較する段階と、
上記比較に応じたエラー確率を上記候補ノードのリストに割り当て、上記候補ノードのリストをランク付けする段階と
を有する方法。 - 論理値が割り当てられたノードを含む論理関数によって相互連結された主入力の集合及び主出力の集合を有する回路設計におけるエラー箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力に特定のテストベクトルに対応した値が割り当てられたときに、上記回路設計の少なくとも1個の主出力に対する所望の応答を指定させるコードと、
上記特定のテストベクトルに対応した値を上記主入力に割り当てさせるコードと、
ノードの候補集合の論理値を、3値論理システムの3種類の値の中のいずれかの値である値Xに変更させるコードと、
上記少なくとも1個の主出力を評価させるコードと
上記回路設計の上記主出力が上記ノードの候補集合に論理値Xを設定した結果として変化したかどうかに依存するエラー確率を上記ノードの候補集合に割り当て、上記ノードの候補集合をランク付けする段階と
を有する、記録媒体。 - ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
上記主入力からの論理値を上記回路を通じて上記主出力に伝搬させるコードと、
上記主入力の伝搬のシミュレーションの間にノードの集合における論理値を値Xで置換させるコードと、
3値論理シミュレーションによって上記値Xを次の論理部品に伝搬させるコードと、
上記値Xで置換した結果として上記回路の上記主出力が変化したかどうかに依存するエラー確率を候補ノードに割り当てて、上記候補ノードをランク付けさせるコードと、
上記候補ノードから診断推論を導出させるコードと
を有する、記録媒体。 - ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるプログラムを記録したコンピュータが読み取り可能な記録媒体であって、上記プログラムは、
Xリストの集合を作成させるコードと、
理想的な条件及びXリストによる影響を受けたテスト条件における上記回路の上記主出力を検査させるコードと、
理想的な条件及びテスト条件における上記主出力を比較することによってエラー確率を上記Xリストに割り当て、上記Xリストをランク付けするコードとを有する、記録媒体。 - ノードによって相互連結された主入力及び主出力の集合並びに論理部品の集合を含む回路内で起こり得る多数のエラー若しくは故障を一つずつ明示的に考慮することなく、多数のエラー及び故障箇所を見つけるコンピュータシステムであって、
論理値に関してエラー若しくは故障をカバーする手段と、
エラー及び故障を含まない上記回路の上記主出力での予測応答を指定する手段と、
上記回路の上記主入力に刺激を与える手段と、
論理値に関して上記主入力が上記回路を通って上記主出力に達する伝搬を表現する手段と、
上記主入力の伝搬のシミュレーション中にノードの集合での論理値を値Xで置換する手段と、
3値論理シミュレーションによって上記値Xを次の論理部品に伝搬する手段と、
上記値Xで置換した結果として上記回路の上記主出力が変化したかどうかに依存するエラー確率を候補ノードに割り当てて、上記候補ノードをランク付けする手段と、
上記ランク付けされた候補ノードからエラー及び故障箇所を見つける手段とを有する、コンピュータシステム。 - 主入力及び主出力を有する回路設計において、所定のテストベクトルを上記回路設計及び回路仕様に適用した場合に、上記回路設計の出力挙動が上記回路仕様の出力挙動と一致しないエラーが起こり得る箇所を判定するためコンピュータを使用する方法であって、
テストベクトルを上記回路設計に適用する段階と、
上記回路設計内で、少なくとも一部の入力が上記テストベクトルによって決定され、少なくとも一部の上記主出力が少なくとも一部の出力の値に依存する値を有するような入力及び出力を有する候補ノードのリストを作成する段階と、
上記回路仕様の出力挙動と一致した上記回路設計の出力挙動を得るため上記出力の要求された値を決定する段階と
別のテストベクトルを上記回路設計に適用する段階と、
上記回路仕様の出力挙動と一致した上記回路設計の出力挙動を得るため上記出力の別の要求された値を決定する段階と、
上記別のテストベクトルが適用されたときに上記少なくとも一部の出力が上記別の要求された値を有する場合に、上記少なくとも一部の入力と上記少なくとも一部の出力との間の別の関係を表現する段階と、
上記テストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係が、上記別のテストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係と矛盾するかどうかを判定する段階と、
上記テストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係と、上記別のテストベクトルが適用されたときの上記少なくとも一部の入力と上記少なくとも一部の出力との間の関係の無矛盾性に依存するエラー確率を、上記候補ノードのリストに割り当て、上記候補ノードのリストをランク付けする段階と
を含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US173962 | 1998-10-16 | ||
US09/173,962 US6532440B1 (en) | 1998-10-16 | 1998-10-16 | Multiple error and fault diagnosis based on Xlists |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000132417A JP2000132417A (ja) | 2000-05-12 |
JP4557337B2 true JP4557337B2 (ja) | 2010-10-06 |
Family
ID=22634245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29280699A Expired - Fee Related JP4557337B2 (ja) | 1998-10-16 | 1999-10-14 | Xリストに基づく多重エラー及び故障を診断する方法並びにシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6532440B1 (ja) |
JP (1) | JP4557337B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072819B2 (en) * | 2000-01-14 | 2006-07-04 | Zhe Li | Method for locating functional mistakes in digital circuit designs |
US6721914B2 (en) * | 2001-04-06 | 2004-04-13 | International Business Machines Corporation | Diagnosis of combinational logic circuit failures |
AU2003235491A1 (en) * | 2002-05-14 | 2003-12-02 | Logicvision (Canada), Inc. | Method of and program product for performing gate-level diagnosis of failing vectors |
US6876934B2 (en) * | 2002-08-14 | 2005-04-05 | Atrenta Inc. | Method for determining fault coverage from RTL description |
US6920621B1 (en) * | 2003-08-20 | 2005-07-19 | Xilinx, Inc. | Methods of testing for shorts in programmable logic devices using relative quiescent current measurements |
CA2510556C (en) * | 2004-07-01 | 2013-02-19 | Cae Inc. | Method and system for simulation-based troubleshooting and fault verification in operator-controlled complex systems |
US7219287B1 (en) | 2004-09-29 | 2007-05-15 | Xilinx, Inc. | Automated fault diagnosis in a programmable device |
US7970594B2 (en) * | 2005-06-30 | 2011-06-28 | The Mathworks, Inc. | System and method for using model analysis to generate directed test vectors |
US7509551B2 (en) * | 2005-08-01 | 2009-03-24 | Bernd Koenemann | Direct logic diagnostics with signature-based fault dictionaries |
JP4490366B2 (ja) * | 2005-12-13 | 2010-06-23 | 富士通株式会社 | リソース割当て方法及び,これを用いた演算回路の診断システム |
JP4562713B2 (ja) * | 2006-10-05 | 2010-10-13 | ルネサスエレクトロニクス株式会社 | 論理回路における多重故障の故障箇所推定システム、故障箇所推定方法および故障箇所推定用プログラム |
US20080127009A1 (en) * | 2006-11-03 | 2008-05-29 | Andreas Veneris | Method, system and computer program for automated hardware design debugging |
US7954075B2 (en) * | 2008-06-06 | 2011-05-31 | Advanced Micro Devices, Inc. | Vector sequence simplification for circuit verification |
US20100313175A1 (en) * | 2009-06-05 | 2010-12-09 | Advanced Micro Devices, Inc. | Verification systems and methods |
CN102859457B (zh) * | 2010-04-26 | 2015-11-25 | 株式会社日立制作所 | 时序数据诊断压缩方法 |
US8181131B2 (en) | 2010-04-30 | 2012-05-15 | International Business Machines Corporation | Enhanced analysis of array-based netlists via reparameterization |
US8146034B2 (en) | 2010-04-30 | 2012-03-27 | International Business Machines Corporation | Efficient Redundancy Identification, Redundancy Removal, and Sequential Equivalence Checking within Designs Including Memory Arrays. |
US8566764B2 (en) | 2010-04-30 | 2013-10-22 | International Business Machines Corporation | Enhanced analysis of array-based netlists via phase abstraction |
US8478574B2 (en) | 2010-04-30 | 2013-07-02 | International Business Machines Corporation | Tracking array data contents across three-valued read and write operations |
US8336016B2 (en) | 2010-05-07 | 2012-12-18 | International Business Machines Corporation | Eliminating, coalescing, or bypassing ports in memory array representations |
US8307313B2 (en) | 2010-05-07 | 2012-11-06 | International Business Machines Corporation | Minimizing memory array representations for enhanced synthesis and verification |
US8291359B2 (en) | 2010-05-07 | 2012-10-16 | International Business Machines Corporation | Array concatenation in an integrated circuit design |
US9569582B2 (en) | 2014-01-03 | 2017-02-14 | International Business Machines Corporation | Template matching for resilience and security characteristics of sub-component chip designs |
WO2018052015A1 (ja) * | 2016-09-14 | 2018-03-22 | 日本電気株式会社 | システムの分析支援装置、システムの分析支援方法及びプログラム |
CN107870832B (zh) * | 2016-09-23 | 2021-06-18 | 伊姆西Ip控股有限责任公司 | 基于多维度健康诊断方法的多路径存储设备 |
US11604969B2 (en) * | 2018-09-18 | 2023-03-14 | Nec Corporation | Performance prediction from communication data |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04165573A (ja) * | 1990-10-30 | 1992-06-11 | Hokuriku Nippon Denki Software Kk | 論理検証装置 |
JPH08262111A (ja) * | 1995-03-22 | 1996-10-11 | Hitachi Ltd | 多重故障の故障位置指摘方法およびそれを用いた半導体集積回路装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410551A (en) * | 1992-01-02 | 1995-04-25 | Andahl Corporation | Net verification method and apparatus |
US5475695A (en) * | 1993-03-19 | 1995-12-12 | Semiconductor Diagnosis & Test Corporation | Automatic failure analysis system |
US5406502A (en) * | 1993-06-29 | 1995-04-11 | Elbit Ltd. | System and method for measuring the operation of a device |
US6132109A (en) * | 1994-04-12 | 2000-10-17 | Synopsys, Inc. | Architecture and methods for a hardware description language source level debugging system |
US5587919A (en) * | 1994-04-22 | 1996-12-24 | Lucent Technologies, Inc. | Apparatus and method for logic optimization by redundancy addition and removal |
US6202181B1 (en) * | 1996-11-04 | 2001-03-13 | The Regents Of The University Of California | Method for diagnosing bridging faults in integrated circuits |
US6086626A (en) * | 1997-05-16 | 2000-07-11 | Fijutsu Limited | Method for verification of combinational circuits using a filtering oriented approach |
US6212669B1 (en) * | 1997-11-05 | 2001-04-03 | Fujitsu Limited | Method for verifying and representing hardware by decomposition and partitioning |
-
1998
- 1998-10-16 US US09/173,962 patent/US6532440B1/en not_active Expired - Lifetime
-
1999
- 1999-10-14 JP JP29280699A patent/JP4557337B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04165573A (ja) * | 1990-10-30 | 1992-06-11 | Hokuriku Nippon Denki Software Kk | 論理検証装置 |
JPH08262111A (ja) * | 1995-03-22 | 1996-10-11 | Hitachi Ltd | 多重故障の故障位置指摘方法およびそれを用いた半導体集積回路装置 |
Also Published As
Publication number | Publication date |
---|---|
US6532440B1 (en) | 2003-03-11 |
JP2000132417A (ja) | 2000-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4557337B2 (ja) | Xリストに基づく多重エラー及び故障を診断する方法並びにシステム | |
JP5570701B2 (ja) | 集積回路の故障モード・影響分析を実行するための方法、およびそのためのコンピュータプログラム製品 | |
US7770080B2 (en) | Using neighborhood functions to extract logical models of physical failures using layout based diagnosis | |
Venkataraman et al. | A technique for logic fault diagnosis of interconnect open defects | |
Huang et al. | Fault diagnosis of analog circuits based on machine learning | |
KR100337696B1 (ko) | 모델 검사를 위한 동작 환경을 자동적으로 생성하는 방법 | |
US5640403A (en) | Fault diagnosis method for a sequential circuit | |
US20160342720A1 (en) | Method, system, and computer program for identifying design revisions in hardware design debugging | |
Chen et al. | Fast node merging with don't cares using logic implications | |
CN113626267A (zh) | 复杂电子系统不确定性故障诊断效能评估方法 | |
US9404972B2 (en) | Diagnosis and debug with truncated simulation | |
Pomeranz et al. | On error correction in macro-based circuits | |
US8402421B2 (en) | Method and system for subnet defect diagnostics through fault compositing | |
Mittal et al. | Test chip design for optimal cell-aware diagnosability | |
Wotawa | Debugging VHDL designs using model-based reasoning | |
Hariharan et al. | From rtl liveness assertions to cost-effective hardware checkers | |
JP5371963B2 (ja) | 故障診断装置 | |
Bodhe et al. | Diagnostic Fail Data Minimization Using an $ N $-Cover Algorithm | |
Sheppard et al. | Improving the accuracy of diagnostics provided by fault dictionaries | |
JP5256286B2 (ja) | メタ解析による動的ドメイン抽出 | |
Amati et al. | An incremental approach to functional diagnosis | |
Franco | Experiences gained using the navy's IDSS weapon system testability analyzer | |
Zilch et al. | A versatile test set generation tool for structural analog circuit testing | |
Biswal et al. | A discrete event system approach to on-line testing of digital circuits with measurement limitation | |
Timo et al. | Using imprecise test oracles modelled by FSM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060414 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090421 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100713 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100720 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130730 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |