(57)【要約】【課題】論理回路の故障の検出に用いられるテストパターンを効率よく生成すること。【解決手段】ＥＣＣ−ＥＯＲ回路に対する受信語ｙのビットパターンのすべての候補に対するシンドロームｓのビットパターンを計算し、計算したシンドロームｓのビットパターンを存在可能ビットパターンとして記憶して、含意されたシンドロームｓの要求ビットパターンとの比較に存在可能ビットパターンを用いることにより、含意されたビットパターンの矛盾を早期に発見し、回路の故障の検出に用いられるテストパターンを効率よく生成する。【選択図】        図１
2006170949.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の出力ビットパターンを学習するビットパターン学習プログラムであって、
前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算手順と、
前記出力ビットパターン計算手順により計算された出力ビットパターンを学習結果として記憶するビットパターン記憶手順と、
をコンピュータに実行させることを特徴とするビットパターン学習プログラム。
【請求項２】
前記論理回路の出力に対して割り当てられたビットパターンが前記ビットパターン記憶手順により記憶された出力ビットパターンに含まれているか否かを判定するビットパターン判定手順をさらにコンピュータに実行させることを特徴とする請求項１に記載のビットパターン学習プログラム。
【請求項３】
前記ビットパターン判定手順によりビットパターンが前記ビットパターン記憶手順により記憶された出力ビットパターンに含まれていると判定された場合に、前記論理回路におけるビットパターンの伝播処理を一時的に停止し、他の論理回路におけるビットパターンの伝播処理を先に実行する要求ビットパターン伝播処理手順をさらにコンピュータに実行させることを特徴とする請求項２に記載のビットパターン学習プログラム。
【請求項４】
前記ビットパターン判定手順によりビットパターンの部分が前記ビットパターン記憶手順により記憶された出力ビットパターンに部分的に含まれていると判定された場合に、該部分以外のビットパターンのビット値を出力ビットパターンのビット値に基づいて決定するビット値決定手順をさらにコンピュータに実行させることを特徴とする請求項２に記載のビットパターン学習プログラム。
【請求項５】
論理回路の出力ビットパターンを学習するビットパターン学習方法であって、
前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算工程と、
前記出力ビットパターン計算工程により計算された出力ビットパターンを学習結果として記憶する学習結果記憶工程と、
を含んだことを特徴とするビットパターン学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、論理回路の出力ビットパターンを学習するビットパターン学習プログラムおよびビットパターン学習方法に関し、特に、排他的論理和回路を含む誤り訂正回路のような論理回路において、論理回路の故障の検出に用いられるテストパターンを効率よく生成することを可能とするビットパターン学習プログラムおよびビットパターン学習方法に関するものである。
【背景技術】
【０００２】
従来、論理回路の故障を検出するために、テストパターンが一般に用いられている。このテストパターンは、回路構造が与えられれば、ＡＴＰＧ（Automatic Test Pattern Generation）と呼ばれるテストパターンの生成ツールを用いて、自動的に求めることができる。
【０００３】
ところが、ＡＴＰＧにおいては、回路が大規模になってくるにつれ、テストパターンの生成効率が悪くなってしまう。具体的には、回路規模が大きくなるにつれ、テストパターンの生成時間が急激に増加するようになる。
【０００４】
これを改善するために、従来さまざまな方法が提案されている。たとえば、必要な回路部分のみを切り出し、切り出された回路を簡約することによりテストパターンを容易に生成する手法が開発されている（たとえば、特許文献１を参照）。
【０００５】
また、静的学習／動的学習によるテストパターン生成方法や、可観測性／可制御性基準に基づくテストパターン生成方法もある。静的学習／動的学習によるテストパターン生成方法とは、回路内の任意のネットａから含意処理をおこない、ネットｂまで達した場合に、ネットａとネットｂとの間の論理値の対応関係を学習することにより、論理値の組み合わせの選択肢を狭めるものである。
【０００６】
また、可観測性／可制御性基準に基づくテストパターン生成方法は、回路内の観測しやすい部分、また、複雑な部分から含意処理をおこなってテストパターンを生成する方法である。複雑な回路においては、含意処理の途中で何らかの矛盾が生じる可能性が高く、そのような矛盾を容易に観測できる箇所から含意処理をおこなうことにより、テストパターン生成の成否を早期に検出するものである。
【０００７】
【特許文献１】特開平５−５７７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術は、ＲＡＭ（Random Access Memory）やラッチ等において用いられる誤り訂正回路（ＥＣＣ，Error Correcting Circuit）のテストパターンの生成には有効でないという問題があった。
【０００９】
具体的には、誤り訂正回路には入力値を共有する複数の排他的論理和（EOR, Exclusive OR）回路が含まれているため、ある入力値に対する複数の排他的論理和回路の出力値と、含意処理において排他的論理和回路の出力値として要求される要求値との間の矛盾が即座に判定できないという問題があった。
【００１０】
図１４は、誤り訂正回路の一例を示す図である。図１４に示すように、誤り訂正回路は、シンドローム演算部１と訂正情報演算部２とから構成される。そして、シンドローム演算部１は、ＥＯＲ回路３ａ〜３ｃにより実現され、訂正情報演算部２は、シンドローム演算部１により受信語ｙから計算されたシンドロームｓのすべてのビット成分を用いて、訂正情報語ｍの算出をおこなう。
【００１１】
この誤り訂正回路において、シンドロームｓは、以下の式により求められるものである。
ｓ＝Ｈ・ｙt （ｍｏｄ ２）
【００１２】
ここで、ｙは、シンドローム演算部１に対する入力値である受信語ベクトルであり、Ｈは、シンドローム演算部１の検査行列であり、ｙtは、ベクトルｙの転置ベクトルであり、ｍｏｄ ２は、２を法とする剰余演算子である。
【００１３】
図１４の誤り訂正回路において、たとえば、訂正情報演算部２の信号線に発生する故障に対するテストパターンを生成する場合には、故障が伝播されることによりシンドロームｓに対して要求される要求値ｓrを介して、受信語ｙの論理値を探索する処理をおこなう。
【００１４】
ところが、シンドローム演算部１のＥＯＲ回路３ａ〜３ｃは受信語ｙを部分的に共有しており、独立に出力を決定することができない。また、ＥＯＲ回路３ａ〜３ｃはすべての入力値が決定しないと出力値が決定しないゲートであるので、受信語ｙの入力値に対応するシンドロームｓyと要求値ｓrとの間に矛盾があるか否かを即座に判定することが難しくなるという問題があった。
【００１５】
より詳細に説明すると、テストパターンの生成処理において、ｎビットの受信語ｙを入力値とするＥＯＲ回路の任意の１つのネットに対して論理値を決定する場合に、ｎ−ｉ（ｉは検査行列Ｈの構成により１からｎ−１の値をとる）ビットの入力値を決定しないとシンドロームに対する要求値ｓrと受信語ｙに対応するＥＯＲ回路の出力値ｓyとの間の矛盾が判定できない場合が生じる。
【００１６】
そのため、受信語ｙの含意処理において矛盾が発生した場合には、バックトラックをおこなって含意処理を継続するが、シンドロームの要求値ｓrがそもそも出力値ｓyと矛盾するものである場合には、最終的に矛盾と判定されるまで２n-1のオーダーの探索処理をおこなう必要があるが、ビット数ｎが大きくなると処理時間が急激に増大してしまう。
【００１７】
また、静的学習／動的学習によるテストパターン生成方法については、ＥＯＲ回路は、すべての入力値が決定しなければ出力値が決定しないので、受信語ｙの１つのビット値をネットａのビット値とした場合に、ネットａのビット値により決定される論理値をもつネットｂはなく、学習される関係が存在しないという問題がある。
【００１８】
また、可観測性／可制御性基準に基づくテストパターン生成方法では、回路に対する含意処理の順番が入れ替えられるが、ＥＯＲ回路の出力値を決定するには結局すべての入力値を決定する必要があるので、含意操作の回数を減らすという効果は乏しい。
【００１９】
このようなことから、ＥＯＲ回路を含む誤り訂正回路のような論理回路において、論理回路の故障の検出に用いられるテストパターンをいかに効率よく生成することができるかが重要な問題となっている。
【００２０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ＥＯＲ回路を含む誤り訂正回路のような論理回路において、論理回路の故障の検出に用いられるテストパターンを効率よく生成することを可能とするビットパターン学習プログラムおよびビットパターン学習方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上述した課題を解決し、目的を達成するため、本発明は、論理回路の出力ビットパターンを学習するビットパターン学習プログラムであって、前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算手順と、前記出力ビットパターン計算手順により計算された出力ビットパターンを学習結果として記憶するビットパターン記憶手順と、をコンピュータに実行させることを特徴とする。
【００２２】
また、本発明は、上記発明において、前記論理回路の出力に対して割り当てられたビットパターンが前記ビットパターン記憶手順により記憶された出力ビットパターンに含まれているか否かを判定するビットパターン判定手順をさらにコンピュータに実行させることを特徴とする。
【００２３】
また、本発明は、上記発明において、前記ビットパターン判定手順によりビットパターンが前記ビットパターン記憶手順により記憶された出力ビットパターンに含まれていると判定された場合に、前記論理回路におけるビットパターンの伝播処理を一時的に停止し、他の論理回路におけるビットパターンの伝播処理を先に実行するビットパターン伝播処理手順をさらにコンピュータに実行させることを特徴とする。
【００２４】
また、本発明は、上記発明において、前記ビットパターン判定手順によりビットパターンの部分が前記ビットパターン記憶手順により記憶された出力ビットパターンに部分的に含まれていると判定された場合に、該部分以外のビットパターンのビット値を出力ビットパターンのビット値に基づいて決定するビット値決定手順をさらにコンピュータに実行させることを特徴とする。
【００２５】
また、本発明は、上記発明において、ファンアウトステムにより連結された排他的論理和回路の組を出力ビットパターンの学習対象とする論理回路の組として設定する論理回路設定手順をさらにコンピュータに実行させ、前記出力ビットパターン計算手順は、前記論理回路設定手順により設定された排他的論理和回路の組に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算することを特徴とする。
【００２６】
また、本発明は、上記発明において、前記論理回路は誤り訂正回路における排他的論理和回路であることを特徴とする。
【００２７】
また、本発明は、論理回路の出力ビットパターンを学習するビットパターン学習装置であって、前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算手段と、前記出力ビットパターン計算手段により計算された出力ビットパターンを学習結果として記憶する学習結果記憶手段と、を備えたことを特徴とする。
【００２８】
また、本発明は、論理回路の出力ビットパターンを学習するビットパターン学習方法であって、前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算工程と、前記出力ビットパターン計算工程により計算された出力ビットパターンを学習結果として記憶する学習結果記憶工程と、を含んだことを特徴とする。
【発明の効果】
【００２９】
本発明によれば、論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算し、計算した出力ビットパターンを学習結果として記憶することとしたので、含意されたビットパターンとの比較に学習結果として記憶した出力ビットパターンを用いることにより含意されたビットパターンの矛盾を早期に発見することができ、論理回路の故障の検出に用いられるテストパターンを効率よく生成することができるという効果を奏する。
【００３０】
また、本発明によれば、論理回路の出力に対して割り当てられたビットパターンが、出力ビットパターンに含まれているか否かを判定することとしたので、含意されたビットパターンの矛盾を早期にかつ効率的に発見することができ、論理回路の故障の検出に用いられるテストパターンを効率よく生成することができるという効果を奏する。
【００３１】
また、本発明によれば、記憶された出力ビットパターンにビットパターンが含まれていると判定された場合に、論理回路におけるビットパターンの伝播処理を一時的に停止し、他の論理回路におけるビットパターンの伝播処理を先に実行することとしたので、論理回路に対する入力ビットパターンが存在することが判明しているという事実に基づいて、矛盾が発生する可能性のある他の論理回路の伝播処理を先におこなうことにより、早期にかつ効率的に矛盾を発見することができるという効果を奏する。
【００３２】
また、本発明によれば、ビットパターンの部分が出力ビットパターンに部分的に含まれている場合に、その部分以外のビットパターンのビット値を出力ビットパターンのビット値に基づいて決定することとしたので、ビットパターンのすべてのビット値が未確定な場合に、矛盾しないことが判明している出力ビットパターンのビット値に基づいて未確定なビット値を決定するため、含意操作時の論理値の組み合わせの選択肢を減らして、テストパターンを効率よく生成することができるという効果を奏する。
【００３３】
また、本発明によれば、ファンアウトステムにより連結された排他的論理和回路の組を出力ビットパターンの学習対象とする論理回路の組として設定し、設定した排他的論理和回路の組に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算することとしたので、出力ビットパターンの学習対象とする論理回路の組を自動的に検出し、テストパターンを効率よく生成することができるという効果を奏する。
【００３４】
また、本発明によれば、出力ビットパターンの学習対象とする論理回路は誤り訂正回路における排他的論理和回路であることとしたので、入力値を共有する排他的論理和回路から構成されるため、テストパターンの生成が困難である誤り訂正回路に対しても、テストパターンを効率よく生成することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３５】
以下に添付図面を参照して、本発明に係るビットパターン学習プログラムおよびビットパターン学習方法の好適な実施例を詳細に説明する。
【実施例】
【００３６】
まず、本発明に係るビットパターン学習処理の概念について説明する。図１は、本発明に係るビットパターン学習処理の概念を説明する図である。図１には、図１４で説明したようなシンドローム演算部が４つのＥＯＲ回路１０ａ〜１０ｄから構成される場合を概念的に示している。そして、各ＥＯＲ回路１０ａ〜１０ｄはファンアウトステム１１ａ〜１１ｄを他のＥＯＲ回路１０ａ〜１０ｄと共有している。
【００３７】
このビットパターン学習処理においては、テストパターンを生成する場合に、ファンアウトステム１１ａ〜１１ｄに割り当てられる受信語ｙのビットパターンのすべての組み合わせに対するシンドロームｓのビットパターンを求める。図１には、受信語ｙのビットパターンのすべての組み合わせと、それに対応するシンドロームｓのビットバターンが示されている。
【００３８】
ここで、受信語ｙのビット数をｎ、シンドロームｓのビット数をｍとすると、各ＥＯＲ回路１０ａ〜１０ｄはファンアウトステム１１ａ〜１１ｄを他のＥＯＲ回路１０ａ〜１０ｄと共有するので、シンドロームｓのビット数の自由度がｎ’（≦ｎ）に後退する場合がある。
【００３９】
図１の例では、ｎ＝ｍ＝４であり、受信語ｙの組み合わせは２4＝１６通りあるが、シンドロームｓに発生するビットパターンは４通りになり、自由度がｎ’＝２に後退している。
【００４０】
そこで、このビットパターン学習処理においては、シンドロームｓに発生したビットパターンをシンドロームｓにおける存在可能ビットパターンとして学習する。そして、テストパターンの生成時にシンドロームｓに対してある要求ビットパターンが発生した場合に、この存在可能ビットパターンに要求ビットパターンが含まれるか否かを判定する。
【００４１】
これにより、要求値に矛盾があるか否かを即時に判定することができ、テストパターンを効率よく生成することができる。なお、存在可能ビットパターンに要求ビットパターンが含まれるか否かの判定は、シンドロームｓに対する要求ビットパターンのすべてのビット値が確定してからおこなわれる必要はなく、シンドロームｓに対する要求ビットパターンの一部のビット値が同一ビット位置にある存在可能ビットパターンのビット値と一致しないことが判明した場合に、要求ビットパターンが存在可能ビットパターンに含まれないものとして即座に判定をおこなう。
【００４２】
つぎに、本実施例に係るビットパターン学習装置の機能構成について説明する。図２は、本実施例に係るビットパターン学習装置の機能構成を示す図である。
【００４３】
図２に示すように、このビットパターン学習装置は、入力部２０、表示部２１、回路データ読み込み部２２、回路データ書き込み部２３、回路データ記憶部２４、テストパターン生成部２５、存在可能ビットパターンデータ記憶部３７、故障シミュレーション実行部３８、テストパターンデータ記憶部３９、テストパターンデータ読み込み部４０および制御部４１を有する。
【００４４】
入力部２０は、キーボードやマウスなどの入力デバイスである。表示部２１は、ディスプレイ装置などの表示デバイスである。回路データ読み込み部２２は、テストパターンの生成対象となる回路の構成や故障箇所のリストなどの回路データを回路データ記憶部２４から読み込む処理をおこなう。
【００４５】
回路データ書き込み部２３は、回路データ記憶部２４に回路データを書き込む処理をおこなう。回路データ記憶部２４は、ハードディスク装置などの記憶デバイスであり、回路データを記憶する。
【００４６】
テストパターン生成部２５は、回路の故障を検出するテストパターンを生成する処理をおこなう。このテストパターン生成部２５は、単にテストパターンを生成するだけでなく、シンドロームに存在可能なビットパターンをあらかじめ学習しておき、その学習結果に基づいてテストパターン生成時に発生する矛盾を早期に検出する処理をおこなう。
【００４７】
テストパターン生成部２５は、含意処理部２６、含意キャンセル部３３、故障励起部３４、Ｊフロンティア解決部３５およびＤフロンティア解決部３６を有する。含意処理部２６は、回路のある箇所に故障が励起された場合に、回路の入力側の論理値から出力側の論理値を、あるいは、回路の出力側の論理値から入力側の論理値を求める含意処理をおこなう。
【００４８】
また、含意処理部２６は、シンドロームに存在可能ビットパターンをあらかじめ学習しておき、シンドロームに対する要求値が発生した場合に、その要求値が存在可能ビットパターンに含まれるか否かを判定し、矛盾を早期に検出する処理をおこなう。
【００４９】
この含意処理部２６は、ＥＣＣ−ＥＯＲグループ設定部２７、存在可能ビットパターン学習部２８、含意処理実行部２９、要求値矛盾判定部３０、唯一値含意決定部３１および要求値伝播停止判定部３２を有する。
【００５０】
ＥＣＣ−ＥＯＲグループ設定部２７は、ファンアウトステム１１ａ〜１１ｄにより連結されたＥＯＲ回路１０ａ〜１０ｄの組をＥＣＣ回路に属するＥＯＲ回路として抽出し、グループ化する処理をおこなう。存在可能ビットパターン学習部２８は、図１で説明したような方法により、存在可能ビットパターンを検出し、存在可能ビットパターンデータ記憶部３７にそれを記憶させる。
【００５１】
含意処理実行部２９は、ゲートの入力側の論理値から出力側の論理値を、また、ゲートの出力側の論理値から入力側の論理値を算出し、その論理値を出力側または入力側に割り当てる処理をおこなう。
【００５２】
要求値矛盾判定部３０は、シンドロームに対する要求値が発生した場合に、その要求値が存在可能ビットパターンデータ記憶部３７に記憶された存在可能ビットパターンに含まれるか否かを判定する。
【００５３】
唯一値含意決定部３１は、シンドロームに対する要求値が部分的に発生した場合に、部分的に発生した要求値と存在可能ビットパターンデータ記憶部３７に記憶された存在可能ビットパターンとを比較し、要求値のうち未確定の部分のビット値を存在可能ビットパターンを参照して決定する。
【００５４】
具体的には、唯一値含意決定部３１は、要求値のうち未確定の部分のビット値の位置に対応する存在可能ビットパターンのビット値の情報を取得し、すべての存在可能ビットパターンのビット値が「０」または「１」である場合に、未確定の部分のビット値を「０」または「１」に設定する。
【００５５】
要求値伝播停止判定部３２は、シンドロームに対して発生した要求値が、存在可能ビットパターンデータ記憶部３７に記憶された存在可能ビットパターンに含まれていると要求値矛盾判定部３０により判定された場合に、シンドロームに発生した要求値の伝播処理を一時的に停止し、他の回路部分に発生した要求値の伝播処理を先に実行させる。
【００５６】
含意キャンセル部３３は、含意処理部２６により含意処理がなされることにより設定された論理値のキャンセル要求を受け付けた場合に、その論理値をキャンセルする処理をおこなう。
【００５７】
故障励起部３４は、回路に故障を励起する処理をおこなう。Ｊフロンティア解決部３５は、論理値が未確定のゲートであるＪ（Justify）フロンティアを選択し、含意処理部２６の処理対象としてＪフロンティアを設定するＪフロンティアの解決処理をおこなう。
【００５８】
Ｄフロンティア解決部３６は、故障励起部３４により励起された故障が伝播可能である場合に、故障の影響がまだ到達していないゲートであるＤ（Difference）フロンティアを選択し、Ｄフロンティアに故障の影響を伝播させるＤフロンティアの解決処理をおこなう。
【００５９】
存在可能ビットパターンデータ記憶部３７は、ハードディスク装置などの記憶デバイスであり、存在可能ビットパターン学習部２８により学習された存在可能ビットパターンを記憶する。
【００６０】
図３は、存在可能ビットパターンを説明する図である。図３に示すように、存在可能ビットパターン５０ａ〜５０ｃは、各ＥＣＣ回路のファンアウトステムを他のＥＯＲ回路と共有するＥＯＲ回路からなるＥＣＣ−ＥＯＲグループ５１ごとに記憶される。
【００６１】
ここで、存在可能ビットパターン５０ａ〜５０ｃのビット数ｉは、ＥＯＲ回路の数に一致し、また、存在可能ビットパターン５０ａ〜５０ｃのパターン数ｊは、シンドロームのビット数の自由度に応じて変化する。
【００６２】
図２の説明に戻ると、故障シミュレーション実行部３８は、テストパターン生成部２５により生成されたテストパターンの情報を取得し、そのテストパターンを用いて検出できる故障を抽出する故障シミュレーションを実行する。そして、故障シミュレーション実行部３８は、テストパターンの情報とそのテストパターンを用いて検出できる故障の情報とをテストパターンデータ記憶部３９に記憶する。
【００６３】
テストパターンデータ記憶部３９は、ハードディスク装置などの記憶デバイスであり、テストパターンの情報とそのテストパターンを用いて検出できる故障の情報とを対応付けて記憶する。
【００６４】
テストパターンデータ読み込み部４０は、テストパターンデータ記憶部３９に記憶されたテストパターンの情報およびテストパターンを用いて検出できる故障の情報を読み込んで、表示部２１などに出力する処理をおこなう。
【００６５】
制御部４１は、このビットパターン学習装置を全体制御する制御部であり、各機能部間のデータの授受を司る。
【００６６】
つぎに、本実施例に係るテストパターン生成処理の処理手順について説明する。図４は、本実施例に係るテストパターン生成処理の処理手順を示すフローチャートである。
【００６７】
図４に示すように、まず、ビットパターン学習装置の回路データ読み込み部２２は、回路データ記憶部２４から回路データを読み込む（ステップＳ１０１）。そして、テストパターン生成部２５は、回路に励起された故障を検出するテストパターンを自動生成する（ステップＳ１０２）。
【００６８】
続いて、故障シミュレーション実行部３８は、テストパターン生成部２５により生成されたテストパターンを用いて検出可能な故障を抽出する故障シミュレーションを実行する（ステップＳ１０３）。そして、テストパターンデータ記憶部３９は、テストパターンの情報をそのテストパターンにより検出される故障の情報とともに記憶する（ステップＳ１０４）。
【００６９】
その後、故障シミュレーション実行部３８は、テストパターン生成の終了条件を満足したか否かを調べる（ステップＳ１０５）。ここで、テストパターン生成の終了条件とは、テストパターン生成に要する生成時間が所定値を越えたか否か、検出率が所定値を超えたか否かあるいは、テストパターンの生成数が所定数を超えたか否かなどの条件である。
【００７０】
ここで、検出率とは、ステップＳ１０１で回路データとして読み込んだ故障箇所のリストにおける故障数に対して、ステップＳ１０３の故障シミュレーションで検出することができた故障の数の割合などにより定義されるものである。
【００７１】
そして、終了条件を満足していない場合には（ステップＳ１０５，Ｎｏ）、ステップＳ１０２に移行して、それ以後の処理を継続する。終了条件を満足した場合には（ステップＳ１０５，Ｙｅｓ）、回路データ書き込み部２３は、テストパターンの生成結果に係る情報を回路データ記憶部２４に記憶し（ステップＳ１０６）、このテストパターン生成処理を終了する。ここで、テストパターンの生成結果に係る情報とは、テストパターン生成に要した生成時間や検出率、テストパターンの生成数などの情報である。
【００７２】
つぎに、図４のステップＳ１０２で説明したテストパターン自動生成処理の処理手順について説明する。図５−１および図５−２は、テストパターン自動生成処理の処理手順を示すフローチャート（１）および（２）である。
【００７３】
図５−１に示すように、まず、ビットパターン学習装置の故障励起部３４は、回路に故障を励起することが可能か否かを調べる（ステップＳ２０１）。そして、故障を励起することができない場合には（ステップＳ２０１，Ｎｏ）、含意キャンセル部３３は、すべての含意をキャンセルし（ステップＳ２１０）、そのままこのテストパターン自動生成処理を終了する。
【００７４】
故障を励起することが可能である場合には（ステップＳ２０１，Ｙｅｓ）、故障励起部３４は故障を励起し（ステップＳ２０２）、含意処理実行部２９は、含意操作を実行する（ステップＳ２０３）。
【００７５】
そして、含意処理実行部２９は、含意操作において矛盾が発生したか否かを調べ（ステップＳ２０４）、矛盾が発生した場合には（ステップＳ２０４，Ｙｅｓ）、バックトラック処理が実行可能か否かを調べる（ステップＳ２０７）。
【００７６】
バックトラック処理が実行可能でない場合は（ステップＳ２０７，Ｎｏ）、含意キャンセル部３３は、すべての含意をキャンセルし（ステップＳ２１０）、そのままこのテストパターン自動生成処理を終了する。
【００７７】
バックトラック処理が実行可能な場合には（ステップＳ２０７，Ｙｅｓ）、含意キャンセル部３３は、矛盾が生じた含意をキャンセルする（ステップＳ２０８）。そして、Ｊフロンティア解決部３５は、直前のゲートまで戻るバックトラック処理を実行し（ステップＳ２０９）、Ｊフロンティアの解決処理を実行する（ステップＳ２０６）。Ｊフロンティアの解決処理が実行された後は、ステップＳ２０３に移行し、それ以降の処理が継続される。
【００７８】
ステップＳ２０４において、含意操作において矛盾が発生しなかった場合には（ステップＳ２０４，Ｎｏ）、Ｊフロンティア解決部３５は、解決すべきＪフロンティアがあるか否かを調べる（ステップＳ２０５）。そして、解決すべきＪフロンティアがある場合には（ステップＳ２０５，Ｙｅｓ）、ステップＳ２０６に移行して、それ以後の処理を継続する。
【００７９】
解決すべきＪフロンティアがない場合には（ステップＳ２０５，Ｎｏ）、図５−２に示すように、Ｄフロンティア解決部３６は、故障が観測可能か否かを調べる（ステップＳ２１１）。故障が観測可能な場合には（ステップＳ２１１，Ｙｅｓ）、含意処理実行部２９は、含意された値をテストパターンとして保存して（ステップＳ２１７）、図５−１のステップＳ２１０に移行し、それ以後の処理を実行する。
【００８０】
故障が観測可能でない場合には（ステップＳ２１１，Ｎｏ）、Ｄフロンティア解決部３６は、伝播可能な故障があるか否かを調べる（ステップＳ２１２）。伝播可能な故障がある場合には（ステップＳ２１２，Ｙｅｓ）、Ｄフロンティア解決部３６は、Ｄフロンティアの解決処理を実行し（ステップＳ２１３）、図５−１に示したステップＳ２０３に移行して、それ以後の処理を継続する。
【００８１】
伝播可能な故障がない場合には（ステップＳ２１２，Ｎｏ）、Ｄフロンティア解決部３６は、バックトラック処理が実行可能か否かを調べる（ステップＳ２１４）。
【００８２】
バックトラック処理が実行可能でない場合は（ステップＳ２１４，Ｎｏ）、図５−１に示したステップＳ２１０に移行して、それ以後の処理を継続する。バックトラック処理が実行可能な場合には（ステップＳ２１４，Ｙｅｓ）、含意キャンセル部３３は、伝播可能な故障が存在しない含意をキャンセルする（ステップＳ２１５）。
【００８３】
そして、Ｄフロンティア解決部３６は、直前のゲートまで戻るバックトラック処理を実行し（ステップＳ２１６）、ステップＳ２１３に移行して、それ以後の処理を継続する。
【００８４】
つぎに、図５−１のステップＳ２０３に示した含意操作について、図６から図１１を用いて詳細に説明する。図６は、存在可能ビットパターン学習処理の処理手順を示すフローチャートである。
【００８５】
図６に示すように、まず、ビットパターン学習装置のＥＣＣ−ＥＯＲグループ設定部２７は、回路内からＥＣＣ回路に含まれるＥＯＲ回路（以下、このＥＯＲ回路をＥＣＣ−ＥＯＲ回路と呼ぶ。）の候補を抽出する処理をおこない（ステップＳ３０１）、シンドロームを出力するＥＣＣ−ＥＯＲ回路の組をグループ化する（ステップＳ３０２）。
【００８６】
そして、存在可能ビットパターン学習部２８は、グループ化されたＥＣＣ−ＥＯＲ回路により出力されるシンドロームの存在可能ビットパターンを学習して存在可能ビットパターンデータ記憶部３７に記憶し（ステップＳ３０３）、この存在可能ビットパターン学習処理を終了する。
【００８７】
つぎに、図６のステップＳ３０１に示したＥＣＣ−ＥＯＲ回路の候補の抽出処理について説明する。図７は、ＥＣＣ−ＥＯＲ回路の候補抽出処理の処理手順を示すフローチャートである。
【００８８】
図７に示すように、まず、ビットパターン学習装置のＥＣＣ−ＥＯＲグループ設定部２７は、回路内にあるＥＯＲ回路の１つを選択し（ステップＳ４０１）、選択したＥＯＲ回路の入力端子の１つを選択する（ステップＳ４０２）。そして、ＥＣＣ−ＥＯＲグループ設定部２７は、ＥＯＲ回路の入力端子のバックトレースを実行する（ステップＳ４０３）。
【００８９】
続いて、ＥＣＣ−ＥＯＲグループ設定部２７は、多入力ゲートを通過することなしに、ファンアウトステムに到達可能であるか否かを調べる（ステップＳ４０４）。そして、ファンアウトステムに到達可能である場合には（ステップＳ４０４，Ｙｅｓ）、ＥＣＣ−ＥＯＲグループ設定部２７は、ＥＯＲ回路をＥＣＣ−ＥＯＲ回路の候補として設定する（ステップＳ４０５）。
【００９０】
その後、ＥＣＣ−ＥＯＲグループ設定部２７は、未処理のＥＯＲ回路の入力端子があるか否かを調べ（ステップＳ４０６）、未処理のＥＯＲ回路の入力端子がある場合には（ステップＳ４０６，Ｙｅｓ）、ステップＳ４０２に移行して、それ以後の処理を継続する。
【００９１】
未処理のＥＯＲ回路の入力端子がない場合には（ステップＳ４０６，Ｎｏ）、ＥＣＣ−ＥＯＲグループ設定部２７は、未処理のＥＯＲ回路があるか否かを調べ（ステップＳ４０７）、未処理のＥＯＲ回路がある場合には（ステップＳ４０７，Ｙｅｓ）、ステップＳ４０１に移行して、それ以後の処理を継続する。未処理のＥＯＲ回路がない場合には（ステップＳ４０７，Ｎｏ）、このＥＣＣ−ＥＯＲ回路の候補抽出処理を終了する。
【００９２】
ステップＳ４０３において、ファンアウトステムに到達可能でない場合には（ステップＳ４０４，Ｎｏ）、ステップＳ４０６に移行して、それ以後の処理を継続する。
【００９３】
つぎに、図６のステップＳ３０２に示したＥＣＣ−ＥＯＲ回路のグループ化処理について説明する。図８は、ＥＣＣ−ＥＯＲ回路のグループ化処理の処理手順を示すフローチャートである。
【００９４】
図８に示すように、まず、ビットパターン学習装置のＥＣＣ−ＥＯＲグループ設定部２７は、ＥＣＣ−ＥＯＲ回路の候補を１つ選択する（ステップＳ５０１）。そして、ＥＣＣ−ＥＯＲグループ設定部２７は、選択したＥＣＣ−ＥＯＲ回路の候補の入力端子が他のＥＣＣ−ＥＯＲ回路の候補の入力端子とファンアウトステムを共有しているか否かを調べる（ステップＳ５０２）。
【００９５】
ファンアウトステムを共有している場合には（ステップＳ５０２，Ｙｅｓ）、ＥＣＣ−ＥＯＲグループ設定部２７は、ファンアウトステムを入力端子が共有しているＥＣＣ−ＥＯＲ回路の候補をグループ化する（ステップＳ５０３）。
【００９６】
そして、ＥＣＣ−ＥＯＲグループ設定部２７は、未処理のＥＣＣ−ＥＯＲ回路の候補があるか否かを調べ（ステップＳ５０４）、未処理のＥＣＣ−ＥＯＲ回路の候補がある場合には（ステップＳ５０４，Ｙｅｓ）、ステップＳ５０１に移行して、それ以後の処理を継続する。未処理のＥＣＣ−ＥＯＲ回路の候補がない場合には（ステップＳ５０４，Ｎｏ）、このＥＣＣ−ＥＯＲ回路のグループ化処理を終了する。
【００９７】
ステップＳ５０２において、ファンアウトステムを共有していない場合には（ステップＳ５０２，Ｎｏ）、ステップＳ５０４に移行して、それ以後の処理を継続する。
【００９８】
つぎに、図６のステップＳ３０３に示した存在可能ビットパターンの記憶処理について説明する。図９は、存在可能ビットパターンの記憶処理の処理手順を示すフローチャートである。
【００９９】
図９に示すように、まず、ビットパターン学習装置の存在可能ビットパターン学習部２８は、ＥＣＣ−ＥＯＲ回路のグループを１つ選択する（ステップＳ６０１）。そして、存在可能ビットパターン学習部２８は、グループに対するファンアウトステムのビットパターンのすべての組み合わせを探索する（ステップＳ６０２）。
【０１００】
続いて、存在可能ビットパターン学習部２８は、ファンアウトステムのビットパターンの組み合わせに対応するシンドロームのビットパターンを観測し（ステップＳ６０３）、観測したシンドロームビットパターンの１つを選択する（ステップＳ６０４）。
【０１０１】
その後、存在可能ビットパターン学習部２８は、存在可能ビットパターンデータ記憶部３７にすでに同じシンドロームのビットパターンが記憶済みであるか否かを調べる（ステップＳ６０５）。
【０１０２】
同じシンドロームのビットパターンが記憶済みでない場合には（ステップＳ６０５，Ｎｏ）、存在可能ビットパターン学習部２８は、そのシンドロームのビットパターンを存在可能ビットパターンとして存在可能ビットパターンデータ記憶部３７に記憶する（ステップＳ６０６）。
【０１０３】
そして、存在可能ビットパターン学習部２８は、未選択のシンドロームビットパターンがあるか否かを調べ（ステップＳ６０７）、未選択のシンドロームビットパターンがある場合には（ステップＳ６０７，Ｙｅｓ）、ステップＳ６０４に移行して、それ以後の処理を継続する。
【０１０４】
未選択のシンドロームビットパターンがない場合には（ステップＳ６０７，Ｎｏ）、存在可能ビットパターン学習部２８は、未処理のＥＣＣ−ＥＯＲ回路のグループがあるか否かを調べ（ステップＳ６０８）、未処理のＥＣＣ−ＥＯＲ回路のグループがある場合には（ステップＳ６０８，Ｙｅｓ）、ステップＳ６０１に移行して、それ以後の処理を継続する。未処理のＥＣＣ−ＥＯＲ回路のグループがない場合には（ステップＳ６０８，Ｎｏ）、この存在可能ビットパターンの記憶処理を終了する。
【０１０５】
ステップＳ６０５において、同じシンドロームのビットパターンが記憶済みである場合には（ステップＳ６０５，Ｙｅｓ）、ステップＳ６０７に移行して、それ以後の処理を継続する。
【０１０６】
つぎに、ゲートに対してなされる含意処理の処理手順について説明する。図１０は、ゲートに対してなされる含意処理の処理手順を示すフローチャートである。
【０１０７】
図１０に示すように、まず、ビットパターン学習装置の含意処理実行部２９は、処理可能なゲートの伝播ステートがあるか否かを調べる（ステップＳ７０１）。そして、処理可能なゲートの伝播ステートがない場合には（ステップＳ７０１，Ｎｏ）、そのままこの含意処理を終了する。処理可能なゲートの伝播ステートがある場合には（ステップＳ７０１，Ｙｅｓ）、含意処理実行部２９は、ゲートがＥＣＣ−ＥＯＲ回路か否かを調べる（ステップＳ７０２）。
【０１０８】
そして、ゲートがＥＣＣ−ＥＯＲ回路でない場合には（ステップＳ７０２，Ｎｏ）、含意処理実行部２９は、ゲートの含意処理を実行し（ステップＳ７０８）、矛盾が発生したか否かを調べる（ステップＳ７０９）。
【０１０９】
そして、矛盾が発生した場合には（ステップＳ７０９，Ｙｅｓ）、この含意処理を終了する。矛盾が発生しなかった場合には（ステップＳ７０９，Ｎｏ）、ステップＳ７０１に移行して、つぎに処理可能なゲートの伝播ステートがあるか否かを調べる。
【０１１０】
ステップＳ７０２において、ゲートがＥＣＣ−ＥＯＲ回路である場合には（ステップＳ７０２，Ｙｅｓ）、要求値矛盾判定部３０は、要求値矛盾判定処理を実行する（ステップＳ７０３）。
【０１１１】
要求値矛盾判定処理とは、ＥＣＣ−ＥＯＲ回路に発生した要求値ビットパターンが存在可能ビットパターンに含まれるか否かを判定し、矛盾が発生したか否かを調べる処理である。この要求値矛盾判定処理については後に詳しく説明する。
【０１１２】
そして、要求値矛盾判定部３０は、矛盾が発生したか否かを調べ（ステップＳ７０４）、矛盾が発生した場合には（ステップＳ７０４，Ｙｅｓ）、そのままこの含意処理を終了する。
【０１１３】
矛盾が発生しなかった場合には（ステップＳ７０４，Ｎｏ）、唯一値含意決定部３１は、唯一値含意決定処理を実行する（ステップＳ７０５）。唯一値含意決定処理とは、要求値ビットパターンに未要求ビットがあり、未要求ビット位置に対応するすべての存在可能ビットパターンのビット値が「０」または「１」である場合に、未要求ビット値を「０」または「１」に設定する処理である。この唯一値含意決定処理については後に詳しく説明する。
【０１１４】
その後、要求値伝播停止判定部３２は、ＥＣＣ−ＥＯＲ回路の要求値伝播が未解決のＪフロンティアがあるか否かを調べる（ステップＳ７０６）。そして、要求値伝播が未解決のＪフロンティアがない場合には（ステップＳ７０６，Ｎｏ）、ステップＳ７０１に移行して、それ以後の処理を継続する。
【０１１５】
要求値伝播が未解決のＪフロンティアがある場合には（ステップＳ７０６，Ｙｅｓ）、要求値伝播停止判定部３２は、要求値伝播が未解決のＪフロンティアの解決順序を最後に変更し（ステップＳ７０７）、ステップＳ７０１に移行して、それ以後の処理を継続する。
【０１１６】
つぎに、図１０のステップＳ７０３で説明した要求値矛盾判定処理についてさらに詳しく説明する。図１１は、要求値矛盾判定処理の処理手順を示すフローチャートである。
【０１１７】
図１１に示すように、まず、ビットパターン学習装置の要求値矛盾判定部３０は、ＥＣＣ−ＥＯＲ回路のグループに発生する要求値ビットパターンを取得する（ステップＳ８０１）。
【０１１８】
そして、要求値矛盾判定部３０は、存在可能ビットパターンと要求値ビットパターンとの間でビット値「０」または「１」の不一致があるか否かを調べる（ステップＳ８０２）。
【０１１９】
そして、ビット値の不一致がある場合には（ステップＳ８０２，Ｙｅｓ）、要求値矛盾判定部３０は、矛盾が発生したことを検出し（ステップＳ８０４）、この要求値矛盾判定処理を終了する。
【０１２０】
ビット値の不一致がない場合には（ステップＳ８０２，Ｎｏ）、要求値矛盾判定部３０は、ビット値の不一致があるか否かの判定に用いた存在可能ビットパターンを一時的に記憶して（ステップＳ８０３）、この要求値矛盾判定処理を終了する。
【０１２１】
つぎに、図１０のステップＳ７０５で説明した唯一値含意決定処理についてさらに詳しく説明する。図１２は、唯一値含意決定処理の処理手順を示すフローチャートである。
【０１２２】
図１２に示すように、まず、ビットパターン学習装置の唯一値含意決定部３１は、要求値ビットパターンの未要求ビット位置に対応する存在可能ビットパターンのビット値を取得する（ステップＳ９０１）。
【０１２３】
そして、唯一値含意決定部３１は、未要求ビット位置に対応するすべての存在可能ビットパターンのビット値が「０」または「１」であるか否かを調べる（ステップＳ９０２）。すべての存在可能ビットパターンのビット値が「０」または「１」でない場合には（ステップＳ９０２，Ｎｏ）、この唯一値含意決定処理を終了する。
【０１２４】
すべての存在可能ビットパターンのビット値が「０」または「１」である場合には（ステップＳ９０２，Ｙｅｓ）、唯一値含意決定部３１は、要求値ビットパターンの未要求ビット値を唯一値として「０」または「１」に設定する（ステップＳ９０３）。
【０１２５】
その後、唯一値含意決定部３１は、設定されたビット値を含意操作に追加して（ステップＳ９０４）、この唯一値含意決定処理を終了する。
【０１２６】
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１３を用いて、上記各種処理を実現するプログラムを実行するコンピュータの一例について説明する。図１３は、図２に示したビットパターン学習装置となるコンピュータのハードウェア構成を示す図である。
【０１２７】
このコンピュータは、ユーザからのデータの入力を受け付ける入力装置１００、ディスプレイ１０１、ＲＡＭ（Random  Access  Memory）１０２、ＲＯＭ（Read  Only  Memory）１０３、各種プログラムを記録した記録媒体からプログラムを読み取る媒体読み取り装置１０４、ネットワークを介して他のコンピュータとの間でデータの授受をおこなうネットワークインターフェース１０５、ＣＰＵ（Central  Processing  Unit）１０６およびＨＤＤ（Hard  Disk  Drive）１０７をバス１０８で接続して構成される。
【０１２８】
そして、ＨＤＤ１０７には、ビットパターン学習装置の機能と同様の機能を発揮するプログラム、つまり、図１３に示すビットパターン学習プログラム１０７ｄが記憶されている。なお、ビットパターン学習プログラム１０７ｄについては、適宜分散して記憶することとしてもよい。
【０１２９】
そして、ＣＰＵ１０６が、ビットパターン学習プログラム１０７ｄをＨＤＤ１０７から読み出して実行することにより、ビットパターン学習プロセス１０６ａとして機能するようになる。
【０１３０】
このビットパターン学習プロセス１０６ａは、図２に示した回路データ読み込み部２２、回路データ書き込み部２３、故障シミュレーション実行部３８、テストパターン生成部２５およびテストパターンデータ読み込み部４０の各機能部に対応する。
【０１３１】
また、ＨＤＤ１０７には、回路データ１０７ａ、テストパターンデータ１０７ｂおよび存在可能ビットパターンデータ１０７ｃが記憶される。なお、回路データ１０７ａ、テストパターンデータ１０７ｂおよび存在可能ビットパターンデータ１０７ｃは、図２に示した回路データ記憶部２４、テストパターンデータ記憶部３９および存在可能ビットパターンデータ記憶部３７にそれぞれ記憶される回路データ、テストパターンデータおよび存在可能ビットパターンデータに対応する。
【０１３２】
そして、ＣＰＵ１０６は、回路データ１０７ａ、テストパターンデータ１０７ｂおよび存在可能ビットパターンデータ１０７ｃをＨＤＤ１０７に記憶する処理を実行するとともに、回路データ１０７ａ、テストパターンデータ１０７ｂおよび存在可能ビットパターンデータ１０７ｃをＨＤＤ１０７から読み出してＲＡＭ１０２に格納し、ＲＡＭ１０２に格納された回路データ１０２ａ、テストパターンデータ１０２ｂおよび存在可能ビットパターンデータ１０２ｃに基づいて各種処理を実行する。
【０１３３】
上述してきたように、本実施例では、存在可能ビットパターン学習部２８が、ＥＣＣ−ＥＯＲ回路に対する入力ビットパターンのすべての候補に対するシンドロームのビットパターンを計算し、計算したシンドロームのビットパターンを存在可能ビットパターンとして存在可能ビットパターンデータ記憶部３７に記憶することとしたので、含意されたシンドロームの要求ビットパターンとの比較に存在可能ビットパターンを用いることにより要求ビットパターンの矛盾を早期に発見することができ、回路の故障の検出に用いられるテストパターンを効率よく生成することができる。
【０１３４】
また、本実施例では、要求値矛盾判定部３０が、テストパターン生成中に回路に対して発生した要求ビットパターンが、存在可能ビットパターンに含まれているか否かを判定することとしたので、要求ビットパターンの矛盾を早期にかつ効率的に発見することができ、回路の故障の検出に用いられるテストパターンを効率よく生成することができる。
【０１３５】
また、本実施例では、要求値伝播停止判定部３２が、要求ビットパターンが存在可能ビットパターンに含まれていると判定された場合に、ＥＣＣ−ＥＯＲ回路における要求ビットパターンの伝播処理を一時的に停止し、他の論理回路における要求ビットパターンの伝播処理を先に実行することとしたので、ＥＣＣ−ＥＯＲ回路に対する入力ビットパターンが存在することが判明しているという事実に基づいて、矛盾が発生する可能性のある他の論理回路の伝播処理を先におこなうことにより、早期にかつ効率的に矛盾を発見することができる。
【０１３６】
また、本実施例では、唯一値含意決定部３１が、要求ビットパターンの部分が存在可能ビットパターンに部分的に含まれている場合に、その部分以外の要求ビットパターンのビット値を存在可能ビットパターンのビット値に基づいて決定することとしたので、要求ビットパターンのすべてのビット値が未確定な場合に、矛盾しないことが判明している存在可能ビットパターンのビット値に基づいて未確定なビット値を決定するため、含意操作時の論理値の組み合わせの選択肢を減らして、テストパターンを効率よく生成することができる。
【０１３７】
また、本発明によれば、ＥＣＣ−ＥＯＲグループ設定部２７が、ファンアウトステムにより連結されたＥＯＲ回路のグループを存在可能ビットパターンの学習対象とする論理回路のグループとして設定し、設定したＥＯＲ回路の組に対する入力ビットパターンのすべての候補に対する存在可能ビットパターンを計算することとしたので、存在可能ビットパターンの学習対象とする論理回路のグループを自動的に検出し、テストパターンを効率よく生成することができる。
【０１３８】
また、本発明によれば、存在可能ビットパターンの学習対象とする論理回路は誤り訂正回路におけるＥＯＲ回路であることとしたので、入力値を共有するＥＯＲ回路から構成されるため、テストパターンの生成が困難である誤り訂正回路に対しても、テストパターンを効率よく生成することができる。
【０１３９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１４０】
たとえば、本実施例では、存在可能ビットパターンの学習処理を誤り訂正回路におけるＥＯＲ回路に適用することとしたが、本発明はこれに限定されるものではなく、その他の論理回路に対しても同様に適用することができる。
【０１４１】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１４２】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１４３】
また、図示したビットパターン学習装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、ビットパターン学習装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１４４】
さらに、ビットパターン学習装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１４５】
（付記１）論理回路の出力ビットパターンを学習するビットパターン学習プログラムであって、
前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算手順と、
前記出力ビットパターン計算手順により計算された出力ビットパターンを学習結果として記憶するビットパターン記憶手順と、
をコンピュータに実行させることを特徴とするビットパターン学習プログラム。
【０１４６】
（付記２）前記論理回路の出力に対して割り当てられたビットパターンが前記ビットパターン記憶手順により記憶された出力ビットパターンに含まれているか否かを判定するビットパターン判定手順をさらにコンピュータに実行させることを特徴とする付記１に記載のビットパターン学習プログラム。
【０１４７】
（付記３）前記要求ビットパターン判定手順によりビットパターンが前記ビットパターン記憶手順により記憶された出力ビットパターンに含まれていると判定された場合に、前記論理回路におけるビットパターンの伝播処理を一時的に停止し、他の論理回路におけるビットパターンの伝播処理を先に実行するビットパターン伝播処理手順をさらにコンピュータに実行させることを特徴とする付記２に記載のビットパターン学習プログラム。
【０１４８】
（付記４）前記要求ビットパターン判定手順により要求ビットパターンの部分が前記ビットパターン記憶手順により記憶された出力ビットパターンに部分的に含まれていると判定された場合に、該部分以外の要求ビットパターンのビット値を出力ビットパターンのビット値に基づいて決定するビット値決定手順をさらにコンピュータに実行させることを特徴とする付記２に記載のビットパターン学習プログラム。
【０１４９】
（付記５）ファンアウトステムにより連結された排他的論理和回路の組を出力ビットパターンの学習対象とする論理回路として設定する論理回路設定手順をさらにコンピュータに実行させ、前記出力ビットパターン計算手順は、前記論理回路設定手順により設定された排他的論理和回路の組に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算することを特徴とする付記１〜４のいずれか１つに記載のビットパターン学習プログラム。
【０１５０】
（付記６）前記論理回路は誤り訂正回路における排他的論理和回路であることを特徴とする付記１〜５のいずれか１つに記載のビットパターン学習プログラム。
【０１５１】
（付記７）論理回路の出力ビットパターンを学習するビットパターン学習装置であって、
前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算手段と、
前記出力ビットパターン計算手段により計算された出力ビットパターンを学習結果として記憶する学習結果記憶手段と、
を備えたことを特徴とするビットパターン学習装置。
【０１５２】
（付記８）論理回路の出力ビットパターンを学習するビットパターン学習方法であって、
前記論理回路に対する入力ビットパターンのすべての候補に対する出力ビットパターンを計算する出力ビットパターン計算工程と、
前記出力ビットパターン計算工程により計算された出力ビットパターンを学習結果として記憶する学習結果記憶工程と、
を含んだことを特徴とするビットパターン学習方法。
【産業上の利用可能性】
【０１５３】
以上のように、本発明に係るビットパターン学習プログラムおよびビットパターン学習方法は、論理回路の故障の検出に用いられるテストパターンを効率よく生成することを可能とするビットパターン学習システムに有用である。
【図面の簡単な説明】
【０１５４】
【図１】本発明に係るビットパターン学習処理の概念を説明する図である。
【図２】本実施例に係るビットパターン学習装置の機能構成を示す図である。
【図３】存在可能ビットパターンを説明する図である。
【図４】本実施例に係るテストパターン生成処理の処理手順を示すフローチャートである。
【図５−１】テストパターン自動生成処理の処理手順を示すフローチャート（１）である。
【図５−２】テストパターン自動生成処理の処理手順を示すフローチャート（２）である。
【図６】存在可能ビットパターン学習処理の処理手順を示すフローチャートである。
【図７】ＥＣＣ−ＥＯＲ回路の候補抽出処理の処理手順を示すフローチャートである。
【図８】ＥＣＣ−ＥＯＲ回路のグループ化処理の処理手順を示すフローチャートである。
【図９】存在可能ビットパターンの記憶処理の処理手順を示すフローチャートである。
【図１０】ゲートに対してなされる含意処理の処理手順を示すフローチャートである。
【図１１】要求値矛盾判定処理の処理手順を示すフローチャートである。
【図１２】唯一値含意決定処理の処理手順を示すフローチャートである。
【図１３】ビットパターン学習装置となるコンピュータのハードウェア構成を示す図である。
【図１４】誤り訂正回路の一例を示す図である。
【符号の説明】
【０１５５】
１    シンドローム演算部
２    訂正情報演算部
３ａ〜３ｃ，１０ａ〜１０ｄ    ＥＯＲ回路
１１ａ〜１１ｄ    ファンアウトステム
２０    入力部
２１    表示部
２２    回路データ読み込み部
２３    回路データ書き込み部
２４    回路データ記憶部
２５    テストパターン生成部
２６    含意処理部
２７    ＥＣＣーＥＯＲグループ設定部
２８    存在可能ビットパターン学習部
２９    含意処理実行部
３０    要求値矛盾判定部
３１    唯一値含意決定部
３２    要求値伝播停止判定部
３３    含意キャンセル部
３４    故障励起部
３５    Ｊフロンティア解決部
３６    Ｄフロンティア解決部
３７    存在可能ビットパターンデータ記憶部
３８    故障シミュレーション実行部
３９    テストパターンデータ記憶部
４０    テストパターンデータ読み込み部
４１    制御部
５０ａ〜５０ｃ    存在可能ビットパターン
５１    ＥＣＣ−ＥＯＲグループ
【図１】
2006170949.tif 000003
【図２】
2006170949.tif 000004
【図３】
2006170949.tif 000005
【図４】
2006170949.tif 000006
【図５−１】
2006170949.tif 000007
【図５−２】
2006170949.tif 000008
【図６】
2006170949.tif 000009
【図７】
2006170949.tif 000010
【図８】
2006170949.tif 000011
【図９】
2006170949.tif 000012
【図１０】
2006170949.tif 000013
【図１１】
2006170949.tif 000014
【図１２】
2006170949.tif 000015
【図１３】
2006170949.tif 000016
【図１４】
2006170949.tif 000017