(57)【特許請求の範囲】
【請求項１】
論理回路のテスト結果から取得されたフェイル情報に基づき前記論理回路の故障箇所を推定する、論理回路の故障箇所推定方法において、
前記論理回路をハードウェア記述言語で回路ブロック単位に機能記述した記述情報に基づき機能シミュレーションしてテスト入力に対する全回路ブロックの入出力ポートまたはラッチの期待値を取得するステップと、
前記フェイル情報またはフェイル伝搬推定情報に基づき前記記述情報から接続元のフェイル出力ポートまたはフェイル推定出力ポートを検索しフェイル推定回路ブロックを抽出する抽出ステップと、
前記フェイル推定回路ブロックごとに決定グラフをそれぞれ作成する作成ステップと、
前記決定グラフを用いて前記フェイル推定回路ブロックの入出力ポートまたはラッチの期待値に基づき機能シミュレーションし前記決定グラフの全ノードの期待値をそれぞれ取得するステップと、
前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応したノードを起点としてフェイルベクタに基づき各ノードの出力推定および期待値比較により各ノードのフェイル推定を入力方向に行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録する推定ステップと、
前記フェイル伝搬元ノード全てが入力ポートと対応しないか判定し、入力ポートと対応するフェイル伝搬元ノードが有る場合、前記抽出ステップに戻る判定ステップと、
前記故障箇所推定情報をリスト出力する出力ステップとを含み、前記故障箇所推定方法は機能レベルでの故障箇所推定であることを特徴とする論理回路の故障箇所推定方法。
【請求項２】
前記作成ステップが、前記フェイル推定回路ブロックの回路記述部に対し、その処理順序に従って状態を割り当て、現状態，状態遷移条件，次の状態および動作でテーブル構成される状態テーブルを作成し、前記状態テーブルに記述された入力ポート，ラッチ，状態の変数または値を読み出す処理をそれぞれ読出ノードとして設定し、前記状態テーブルに記述された論理演算子，算術演算子，比較演算子の処理をそれぞれ操作ノードとして設定し、前記状態テーブルに記述された出力ポート，ラッチ，状態の変数への代入に対応して、前記読出ノードまたは前記操作ノードの出力の１つを他の出力の２値制御により選択割り当て決定し書き込む処理をそれぞれ割当決定ノードおよび書込ノードとして設定するステップであることを特徴とする、請求項１記載の、論理回路の故障箇所推定方法。
【請求項３】
前記推定ステップが、前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応した書込ノードを起点としてフェイルベクタに基づき、入力方向に時刻を遡って、各ノードの出力を推定し、各ノードの期待値と比較して、各ノードのフェイル推定を行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を前記故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録するステップであることを特徴とする、請求項２記載の、論理回路の故障箇所推定方法。
【請求項４】
前記出力ステップが、前記故障箇所推定情報をハードウェア記述言語の記述情報へ変換しリスト出力するステップであることを特徴とする、請求項２または３記載の、論理回路の故障箇所推定方法。
【請求項５】
論理回路のテスト結果から取得されたフェイル情報に基づき前記論理回路の故障箇所を推定する推定処理をコンピュータに実行させる、論理回路の故障箇所推定プログラムにおいて、
前記推定処理が、前記論理回路をハードウェア記述言語で回路ブロック単位に機能記述した記述情報に基づき機能シミュレーションしてテスト入力に対する全回路ブロックの入出力ポートまたはラッチの期待値を取得するステップと、
前記フェイル情報またはフェイル伝搬推定情報に基づき前記記述情報から接続元のフェイル出力ポートまたはフェイル推定出力ポートを検索しフェイル推定回路ブロックを抽出する抽出ステップと、
前記フェイル推定回路ブロックごとに決定グラフをそれぞれ作成する作成ステップと、
前記決定グラフを用いて前記フェイル推定回路ブロックの入出力ポートまたはラッチの期待値に基づき機能シミュレーションし前記決定グラフの全ノードの期待値をそれぞれ取得するステップと、
前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応したノードを起点としてフェイルベクタに基づき各ノードの出力推定および期待値比較により各ノードのフェイル推定を入力方向に行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録する推定ステップと、
前記フェイル伝搬元ノード全てが入力ポートと対応しないか判定し、入力ポートと対応するフェイル伝搬元ノードが有る場合、前記抽出ステップに戻る判定ステップと、
前記故障箇所推定情報をリスト出力する出力ステップとを含み、前記故障箇所推定プログラムは機能レベルでの故障箇所推定を実施するプログラムであることを特徴とする論理回路の故障箇所推定プログラム。
【請求項６】
前記作成ステップが、前記フェイル推定回路ブロックの回路記述部に対し、その処理順序に従って状態を割り当て、現状態，状態遷移条件，次の状態および動作でテーブル構成される状態テーブルを作成し、前記状態テーブルに記述された入力ポート，ラッチ，状態の変数または値を読み出す処理をそれぞれ読出ノードとして設定し、前記状態テーブルに記述された論理演算子，算術演算子，比較演算子の処理をそれぞれ操作ノードとして設定し、前記状態テーブルに記述された出力ポート，ラッチ，状態の変数への代入に対応して、前記読出ノードまたは前記操作ノードの出力の１つを他の出力の２値制御により選択割り当て決定し書き込む処理をそれぞれ割当決定ノードおよび書込ノードとして設定するステップであることを特徴とする、請求項５記載の、論理回路の故障箇所推定プログラム。
【請求項７】
前記推定ステップが、前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応した書込ノードを起点としてフェイルベクタに基づき、入力方向に時刻を遡って、各ノードの出力を推定し、各ノードの期待値と比較して、各ノードのフェイル推定を行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を前記故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録するステップであることを特徴とする、請求項６記載の、論理回路の故障箇所推定プログラム。
【請求項８】
前記出力ステップが、前記故障箇所推定情報をハードウェア記述言語の記述情報へ変換しリスト出力するステップであることを特徴とする、請求項５，６または７記載の、論理回路の故障箇所推定プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路の故障箇所推定方法に関し、特に、論理回路のテスト結果から取得されたフェイル情報に基づき論理回路の故障箇所を推定する、論理回路の故障箇所推定方法に関する。
【０００２】
【従来の技術】
従来、この種の論理回路の故障箇所推定方法は、論理回路の故障箇所を推定するため、一般的な構成のコンピュータに論理回路の故障箇所推定プログラムをインストールして各コマンド入力に応じて実行させることにより実施される。
【０００３】
たとえば、図５は、この従来の論理回路の故障箇所推定方法の概略処理を示す流れ図である。この従来の論理回路の故障箇所推定方法では、まず、ステップ５１において、故障シミュレータを用いて、論理回路内部に故障を仮定して機能もしくは論理シミュレーションを行い、そのシミュレーション結果と期待値とを照合し、仮定した故障箇所と、その故障を検出したテストベクタとを対応付けた故障辞書を作成し、ステップ５２において、論理回路の実際のテスト結果からフェイル情報を取得する。次に、ステップ５３において、フェイル情報のフェイルピンおよびフェイルベクタに対応して故障辞書をそれぞれ検索し、仮定の故障箇所を求め、ステップ５４において、複数得られた仮定の故障箇所の中から、優先順位付けを行って故障箇所の推定を行う。
【０００４】
また、他の従来の論理回路の故障箇所推定方法として、たとえば、電子ビームテスタを用いて、論理回路の上位階層から故障箇所を推定し、階層境界の内部信号を観測し、故障箇所を論理回路の下位階層へ順に絞り込んでいく方法もある。
【０００５】
さらに、別の従来の論理回路の故障箇所推定方法として、特開平８−１４６０９３号公報に記載されているように、論理回路をラッチと組合せ回路とに分割しゲートレベルで故障箇所を推定する方法もある。この方法では、故障出力に故障を伝搬する可能性のある組合せ回路をダイナミックに抽出して、組合せ回路毎に論理状態および故障の伝搬する経路を推定し、入力方向に溯ることにより故障箇所を推定する。ここで、組合せ回路の論理状態とは、一つの信号線の論理値だけでなく、回路内部の全ノード、すなわち、信号線、ゲート、ゲート端子、入出力端子が０／１／Ｘ「Ｄｏｎ’ｔ  Ｃａｒｅ」／Ｚ「ハイインピーダンス」／Ｕ「不定」などの論理値を持っている状態のことである。
【０００６】
【発明が解決しようとする課題】
従来の、故障シミュレータによる論理回路の故障箇所推定手法では、故障辞書を予め作成しておく必要があるが、故障辞書の作成は多大な故障シミュレーション時間を要するため、ＬＳＩが大規模化すればするほど計算時間も膨大となり、故障辞書のファイルも非常に大きくなるという問題があった。また、故障シミュレーションで用いる故障モデルは単一縮退故障が一般的であるため、ブリッジ故障などの多重故障では実際と一致しないこともあり、また、故障シミュレーションモデルを多重故障に拡張すると、故障シミュレーションの処理時間の点で実用的でないという問題が挙げられる。
【０００７】
また、従来の、電子ビームテスタを用いた論理回路の故障箇所推定方法では、論理回路の上位階層から下位階層へ故障箇所を逐次観測しながら絞り込んでいくため有効な手段であるが、ＬＳＩ化された論理回路が大規模化し、多層配線構造になると、下層配線の電位が観測不可能になるという問題がある。
【０００８】
また、従来の、ゲートレベルでの故障箇所推定手法の場合は、組合せ回路毎に故障箇所を推定できるため有効な手段であるが、ゲート単位での推定処理のため、大規模ＬＳＩに対する精度と処理時間が問題となる。
【０００９】
したがって、本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、大規模化、多層配線化する論理回路に対して、回路ブロック単位の機能レベルで、短時間に故障箇所を推定することにある。
【００１０】
【課題を解決するための手段】
そのため、本発明は、論理回路のテスト結果から取得されたフェイル情報に基づき前記論理回路の故障箇所を推定する、論理回路の故障箇所推定方法において、前記論理回路をハードウェア記述言語で回路ブロック単位に機能記述した記述情報に基づき機能シミュレーションしてテスト入力に対する全回路ブロックの入出力ポートまたはラッチの期待値を取得するステップと、前記フェイル情報またはフェイル伝搬推定情報に基づき前記記述情報から接続元のフェイル出力ポートまたはフェイル推定出力ポートを検索しフェイル推定回路ブロックを抽出する抽出ステップと、前記フェイル推定回路ブロックごとに決定グラフをそれぞれ作成する作成ステップと、前記決定グラフを用いて前記フェイル推定回路ブロックの入出力ポートまたはラッチの期待値に基づき機能シミュレーションし前記決定グラフの全ノードの期待値をそれぞれ取得するステップと、前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応したノードを起点としてフェイルベクタに基づき各ノードの出力推定および期待値比較により各ノードのフェイル推定を入力方向に行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録する推定ステップと、前記フェイル伝搬元ノード全てが入力ポートと対応しないか判定し、入力ポートと対応するフェイル伝搬元ノードが有る場合、前記抽出ステップに戻る判定ステップと、前記故障箇所推定情報をリスト出力する出力ステップとを含み、前記故障箇所推定方法は機能レベルでの故障箇所推定であることを特徴としている。
【００１１】
また、前記作成ステップが、前記フェイル推定回路ブロックの回路記述部に対し、その処理順序に従って状態を割り当て、現状態，状態遷移条件，次の状態および動作でテーブル構成される状態テーブルを作成し、前記状態テーブルに記述された入力ポート，ラッチ，状態の変数または値を読み出す処理をそれぞれ読出ノードとして設定し、前記状態テーブルに記述された論理演算子，算術演算子，比較演算子の処理をそれぞれ操作ノードとして設定し、前記状態テーブルに記述された出力ポート，ラッチ，状態の変数への代入に対応して、前記読出ノードまたは前記操作ノードの出力の１つを他の出力の２値制御により選択割り当て決定し書き込む処理をそれぞれ割当決定ノードおよび書込ノードとして設定するステップである。
【００１２】
また、前記推定ステップが、前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応した書込ノードを起点としてフェイルベクタに基づき、入力方向に時刻を遡って、各ノードの出力を推定し、各ノードの期待値と比較して、各ノードのフェイル推定を行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を前記故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録するステップである。
【００１３】
また、前記出力ステップが、前記故障箇所推定情報をハードウェア記述言語の記述情報へ変換しリスト出力するステップである。
【００１４】
また、本発明は、論理回路のテスト結果から取得されたフェイル情報に基づき前記論理回路の故障箇所を推定する推定処理をコンピュータに実行させる、論理回路の故障箇所推定プログラムにおいて、前記推定処理が、前記論理回路をハードウェア記述言語で回路ブロック単位に機能記述した記述情報に基づき機能シミュレーションしてテスト入力に対する全回路ブロックの入出力ポートまたはラッチの期待値を取得するステップと、前記フェイル情報またはフェイル伝搬推定情報に基づき前記記述情報から接続元のフェイル出力ポートまたはフェイル推定出力ポートを検索しフェイル推定回路ブロックを抽出する抽出ステップと、前記フェイル推定回路ブロックごとに決定グラフをそれぞれ作成する作成ステップと、前記決定グラフを用いて前記フェイル推定回路ブロックの入出力ポートまたはラッチの期待値に基づき機能シミュレーションし前記決定グラフの全ノードの期待値をそれぞれ取得するステップと、前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応したノードを起点としてフェイルベクタに基づき各ノードの出力推定および期待値比較により各ノードのフェイル推定を入力方向に行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録する推定ステップと、前記フェイル伝搬元ノード全てが入力ポートと対応しないか判定し、入力ポートと対応するフェイル伝搬元ノードが有る場合、前記抽出ステップに戻る判定ステップと、前記故障箇所推定情報をリスト出力する出力ステップとを含み、前記故障箇所推定プログラムは機能レベルでの故障箇所推定を実施するプログラムであることを特徴としている。
【００１５】
また、前記作成ステップが、前記フェイル推定回路ブロックの回路記述部に対し、その処理順序に従って状態を割り当て、現状態，状態遷移条件，次の状態および動作でテーブル構成される状態テーブルを作成し、前記状態テーブルに記述された入力ポート，ラッチ，状態の変数または値を読み出す処理をそれぞれ読出ノードとして設定し、前記状態テーブルに記述された論理演算子，算術演算子，比較演算子の処理をそれぞれ操作ノードとして設定し、前記状態テーブルに記述された出力ポート，ラッチ，状態の変数への代入に対応して、前記読出ノードまたは前記操作ノードの出力の１つを他の出力の２値制御により選択割り当て決定し書き込む処理をそれぞれ割当決定ノードおよび書込ノードとして設定するステップである。
【００１６】
また、前記推定ステップが、前記フェイル出力ポートおよび前記フェイル推定出力ポートに対応した書込ノードを起点としてフェイルベクタに基づき、入力方向に時刻を遡って、各ノードの出力を推定し、各ノードの期待値と比較して、各ノードのフェイル推定を行い、フェイル伝搬経路を推定し、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を前記故障箇所推定情報として登録し、対応した入力ポートの情報を前記フェイル伝搬推定情報として登録するステップである。
【００１７】
また、前記出力ステップが、前記故障箇所推定情報をハードウェア記述言語の記述情報へ変換しリスト出力するステップである。
【００２０】
【発明の実施の形態】
次に、本発明について図面を参照して説明する。本発明による論理回路の故障箇所推定方法は、従来と同じく、論理回路の故障箇所を推定するため、一般的な構成のコンピュータに論理回路の故障箇所推定プログラムをインストールして各コマンド入力に応じて実行させることにより実施される。
【００２１】
図１は、本発明による論理回路の故障箇所推定方法の実施形態を示す流れ図である。図１を参照すると、本実施形態の論理回路の故障箇所推定方法は、まず、ステップ１１において、論理回路のテスト結果からフェイル情報を取得する。このフェイル情報には、各ピンの判定／非判定，フェイルピン，フェイルベクタの情報が含まれている。
【００２２】
ステップ１２において、Ｖｅｒｉｌｏｇ  ＨＤＬ、ＶＨＤＬなどのハードウェア記述言語で論理回路を回路ブロック単位に機能記述した記述情報に基づき機能シミュレーションし、テスト入力に対する全回路ブロックの入出力ポートまたはラッチの期待値を取得する。
【００２３】
ステップ１３において、フェイル情報またはフェイル伝搬推定情報に基づき、記述情報から、接続元のフェイル出力ポートまたはフェイル推定出力ポートを検索し、フェイル出力ポートまたはフェイル推定出力ポートを有するフェイル推定回路ブロックを抽出する。
【００２４】
ステップ１４において、フェイル推定回路ブロックごとに、フェイル推定回路ブロックの回路記述部をデータ処理単位のノードおよび結線によりデータフロー表示して全条件に対する動作を決定する決定グラフをそれぞれ作成する。
【００２５】
この決定グラフとして、たとえば、テクニカルレポート，デパートメント・オブ・インフォメーション・エンド・コンピュータサイエンス，ユニバーシティ・オブ・カリフォニア，１９９２「Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ，Ｄｅａｒｔｍｅｎｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，１９９２」にアサインメント・デシジョン・ダイアグラム・フォ・ハイレベル・シンセシス「Ａｓｓｉｎｇｎｍｅｎｔ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ  ｆｏｒ  Ｈｉｇｈ−Ｌｅｖｅｌ  Ｓｙｎｔｈｅｓｉｓ」の題名の論文で発表されているＡＤＤ「Ａｓｓｉｇｎｍｅｎｔ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ」がある。
【００２６】
このとき、フェイル推定回路ブロックの回路記述部に対し、その処理順序に従って状態を割り当てて、現状態，状態遷移条件，次の状態および動作でテーブル構成される状態テーブルを作成し、この状態テーブルに記述された入力ポート，ラッチ，状態の変数または値を読み出す処理をそれぞれ読出ノードとして設定し、状態テーブルに記述された論理演算子，算術演算子，比較演算子の処理をそれぞれ操作ノードとして設定する。また、状態テーブルに記述された出力ポート，ラッチ，状態の変数への代入に対応して、読出ノードまたは操作ノードの出力の１つを他の出力の２値制御により選択割り当て決定し書き込む処理をそれぞれ割当決定ノードおよび書込ノードとして設定する。
【００２７】
ステップ１５において、決定グラフを用いて、フェイル推定回路ブロックの入出力ポートまたはラッチの期待値に基づき機能シミュレーションし、決定グラフの全ノードの期待値をそれぞれ取得する。
【００２８】
ステップ１６において、決定グラフごとに、フェイル出力ポートおよび前記フェイル推定出力ポートに対応した書込ノードを起点として、フェイルベクタに基づき、入力方向に時刻を遡って、各ノードの出力を推定し、各ノードの期待値と比較して、各ノードのフェイル推定を行い、フェイル伝搬経路を推定する。また、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を前記故障箇所推定情報として登録し、対応した入力ポートの情報をフェイル伝搬推定情報として登録する。
【００２９】
ステップ１７において、フェイル伝搬元ノード全てが入力ポートと対応しないか判定し、入力ポートと対応するフェイル伝搬元ノードが有る場合、ステップ１３に戻る。
【００３０】
ステップ１８において、故障箇所推定情報をリスト出力する。
【００３１】
次に、上述した、本実施形態の論理回路の故障箇所推定方法におけるステップ１４，１６の決定グラフ作成，フェイル伝搬推定について、具体的な回路ブロック例を用いてそれぞれ追加説明する。
【００３２】
たとえば、図２は、ＨＬＳｙｎｔｈ８９「Ｆｏｕｒｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈｉｇｈ−Ｌｅｖｅｌ  Ｓｙｎｔｈｅｓｉｓ」で用いられたベンチマーク回路ｃｏｕｎｔｅｒのＶＨＤＬ記述例を示す説明図である。図２を参照すると、このベンチマーク回路ｃｏｕｎｔｅｒの記述は、４ビットのカウンター回路を記述し、ｃｌｏｃｋ、ｃｏｕｎｔ、ｕｐ、ｃｏｕｎｔｉｎは入力ポートの変数または信号であり、ｃｏｕｎｔｏｕｔは出力ポートの変数または信号であり、また、ｉは内部のラッチの変数または信号である（以後、「変数または信号」を「変数」に統一して呼称し、場合によっては、便宜上、「変数ｉ」などを「ｉ」などと略称する）。ｃｌｏｃｋが‘１’になったら、ｉをｃｏｕｎｔｏｕｔに代入し、次に、ｃｏｕｎｔ＝‘１’の場合、ｕｐ＝‘１’ならば、ｉが４ビット・ハイか否かに対応して４ビット・ロウまたはｉ＋１を代入してカウントアップし、ｕｐ！＝‘１’ならば、ｉが４ビット・ロウか否かに対応して４ビット・ハイまたはｉ−１を代入してカウントダウンし、ｃｏｕｎｔ＝‘０’の場合は、ｃｏｕｎｔｉｎをｉに代入する。
【００３３】
図１のステップ１４では、この図２のＶＨＤＬ記述例に基づき、決定グラフが作成される。
【００３４】
まず、図２で示したベンチマーク回路ｃｏｕｎｔｅｒのＶＨＤＬ記述の処理順序に従って、状態ＳＴ０〜ＳＴ３を割り当てて、現状態，状態遷移条件，次の状態および動作でテーブル構成される状態テーブルを作成する。図３は、この状態テーブルの例を示す説明図である。
【００３５】
状態ＳＴ０では、ｃｌｏｃｋ＝‘１’の場合、次の状態ＳＴ１へ遷移し、ｃｌｏｃｋ＝‘１’でない場合、状態ＳＴ３へ遷移する。状態ＳＴ１では、ｉをｃｏｕｎｔｏｕｔへ代入し、次の状態ＳＴ２へ遷移する。状態ＳＴ２では、ｃｏｕｎｔ＝‘１’の場合、ｕｐ＝‘１’か否かを判定する。ｕｐ＝‘１’の場合、ｉ＝‘１１１１’であるか否かを判定する。ｉ＝‘１１１１’の場合、ｉに‘００００’を代入し、ｉ＝‘１１１１’でない場合、ｉにｉ＋１を代入する。また、ｕｐ＝‘１’でない場合は、ｉ＝‘００００’であるか否かを判定し、ｉ＝‘００００’の場合、ｉに‘１１１１’を代入し、ｉ＝‘００００’でない場合、ｉにｉ−１を代入する。また、ｃｏｕｎｔ＝‘１’でない場合、ｃｏｕｎｔｉｎをｉに代入する。次に、状態ＳＴ３へ遷移する。状態ＳＴ３では、次の状態ＳＴ０へ遷移する。
【００３６】
次に、この状態テーブル例に対応して決定グラフを作成する。図４は、図３の状態テーブル例に対応して作成された決定グラフ例を示す説明図である。
【００３７】
状態テーブルに記述された入力ポートの変数ｃｌｏｃｋ，ｃｏｕｎｔ，ｕｐ，ｃｏｕｎｔｉｎと、ラッチの変数ｉと、状態の変数ＳＴＡＴＥと、値ＳＴ０，ＳＴ１，ＳＴ２，ＳＴ３，‘１’，‘１１１１’，‘００００’とを読み出す処理をそれぞれ読出ノードとして設定する。また、状態テーブルに記述されたＡＮＤ，ＯＲ，ＮＯＴなどの論理演算子の処理と、＋，−，×，＝，！（ＮＯＴ  ＥＱＵＡＬ）などの算術演算子の処理と、＜，＞，＝＜，＝＞などの比較演算子の処理とをそれぞれ操作ノードとして設定する。また、状態テーブルに記述された出力ポートの変数ｃｏｕｎｔｏｕｔ、ラッチの変数ｉ、および状態の変数ＳＴＡＴＥへの代入に対応して、読出ノードまたは操作ノードの出力の１つを他の出力の２値制御により選択割り当て決定し書き込む処理をそれぞれ割当決定ノードおよび書込ノードとして設定する。
【００３８】
なお、この図３の決定グラフ例のノードには含まれていないが、２次元記憶装置などの多次元変数をインデックスに対応して書き込み／読み出す処理をノードとして設定することもできる。
【００３９】
また、図１のステップ１６では、この図３の決定グラフ例を用いてフェイル伝搬経路が推定される。
【００４０】
今、時刻ｔ−１，ｔ，ｔ＋１，ｔ＋２のＳＴＡＴＥ＝ＳＴ０でｃｌｏｃｋ＝‘１’となり、時刻ｔに、ｃｏｕｎｔｏｕｔ＝‘００１１’が出力されたとする。
【００４１】
ｃｏｕｎｔｏｕｔ＝‘００１１’となるためには、ｃｏｕｎｔｏｕｔの書込ノード前段の割当決定ノード，その入力の接続先ノードへ順に遡り、ＳＴＡＴＥ＝ＳＴ１で、ｉの読出ノードの出力を割当決定していることから、ｉの読出ノードの出力は‘００１１’と推定され、すなわち、ＳＴＡＴＥ＝ＳＴ１且つｉ＝‘００１１’と推定される。さらに、ＳＴＡＴＥ＝ＳＴ１となるためには、ＳＴＡＴＥの書込ノード，その入力の接続先ノードへ順に遡り、ｃｌｏｃｋ＝‘１’且つＳＴＡＴＥ＝ＳＴ０と推定される。
【００４２】
同様にして、ＳＴＡＴＥ＝ＳＴ０となるためには、１クロック前の時刻ｔ−１において、ＳＴＡＴＥ＝ＳＴ３と推定される。このとき、ｉの書込ノードは割当決定されていないので、ＳＴＡＴＥ＝ＳＴ３且つｉ＝‘００１１’と推定される。さらに、ＳＴＡＴＥ＝ＳＴ３となるためには、ｃｌｏｃｋ！＝‘１’且つＳＴＡＴＥ＝ＳＴ０、または、ＳＴＡＴＥ＝ＳＴ２と推定される。ここで、時刻ｔ−１のＳＴＡＴＥ＝ＳＴ０ではｃｌｏｃｋ＝‘１’、すなわち、次の時刻ｔを待っている状態であるから、時刻を遡って、時刻ｔ−１のＳＴＡＴＥ＝ＳＴ２と推定する。
【００４３】
ＳＴＡＴＥ＝ＳＴ２では、ｉの書込ノード前段の割当決定ノード，その入力の接続先ノードへそれぞれ遡り、次の５パターンの条件および動作が推定候補となる。
パターン１
「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ＝‘１’」且つ「ｕｐ＝‘１’」且つ「ｉ＝‘１１１１’」の条件で、ｉの書込ノード前段の割当決定ノードが‘００００’を割り当て決定
パターン２
「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ＝‘１’」且つ「ｕｐ＝‘１’」且つ「ｉ！＝‘１１１１’」の条件で、ｉの書込ノード前段の割当決定ノードが「ｉ＋１」を割り当て決定
パターン３
「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ＝‘１’」且つ「ｕｐ！＝‘１’」且つ「ｉ＝‘００００’」の条件で、ｉの書込ノード前段の割当決定ノードが‘１１１１’を割り当て決定
パターン４
「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ＝‘１’」且つ「ｕｐ！＝‘１’」且つ「ｉ！＝‘００００’」の条件で、ｉの書込ノード前段の割当決定ノードが「ｉ−１」を割り当て決定
パターン５
「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ！＝‘１’」の条件で、ｉの書込ノード前段の割当決定ノードがｃｏｕｎｔｉｎを割り当て決定
ここで、ＳＴＡＴＥ＝ＳＴ３且つｉ＝‘００１１’と推定されてきたので、パターン１および３の場合は成立しない。パターン２の場合は、「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ＝‘１’」且つ「ｕｐ＝‘１’」且つ「ｉ＝‘００１０’」と推定される。パターン４の場合は、「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ＝‘１’」且つ「ｕｐ！＝‘１’」且つ「ｉ＝‘０１００’」と推定される。パターン５の場合は、「ＳＴＡＴＥ＝ＳＴ２」且つ「ｃｏｕｎｔ！＝‘１’」且つ「ｃｏｕｎｔｉｎ＝‘００１１’」と推定される。
【００４４】
さらに、時刻ｔ−１でＳＴＡＴＥ＝ＳＴ２となるためには、時刻ｔ−１でＳＴＡＴＥ＝ＳＴ１が推定され、状態ＳＴ１では、ｃｏｕｎｔｏｕｔの書込ノード前段の割当決定ノードがｉを割り当て決定し、書込ノードが出力する。すなわち、１クロック前の時刻ｔ−１のｃｏｕｎｔｏｕｔが出力される。
【００４５】
以上の処理により、出力ポートに対応した書込ノードの時刻ｔの出力から、時刻ｔ−１の各ノードの出力が推定され、時刻ｔ−１のＳＴＡＴＥ＝ＳＴ１では、「ｃｏｕｎｔ＝‘１’且つｕｐ＝‘１’且つｉ＝‘００１０’」、「ｃｏｕｎｔ＝‘１’且つｕｐ！＝‘１’且つｉ＝‘０１００’」、または、「ｃｏｕｎｔ！＝‘１’且つｃｏｕｎｔｉｎ＝‘００１１’」と推定される。
【００４６】
以上のように、フェイル出力ポートまたはフェイル推定出力ポートに対応したノードおよびベクタを起点として、決定グラフの各ノードの出力を推定しながら、未推定の読出ノードの出力を順次推定し、推定結果と、フェイル情報もしくは期待値とを比較し、各ノードのフェイル推定を行い、フェイル伝搬経路を推定することができる。また、このフェイル伝搬経路のフェイル伝搬元ノードと入力ポートとの対応に基づき、対応しないノードの情報を前記故障箇所推定情報として登録し、対応した入力ポートの情報をフェイル伝搬推定情報として登録する。
【００４７】
この後のステップで、フェイル伝搬元ノード全てが入力ポートと対応しなくなるまで、フェイル伝搬のフェイル推定回路ブロックを抽出し、追加説明した決定グラフ作成およびフェイル伝搬経路推定を繰り返し、故障箇所推定情報をリスト出力する。
【００４８】
このため、本実施形態の論理回路の故障箇所推定方法は、論理回路の記述情報から抽出したフェイル推定回路ブロックごとに、決定グラフ作成と、決定グラフを用いたフェイル伝搬経路推定を行い、回路ブロック単位の機能レベルで故障箇所を推定することができ、ゲートレベルでの故障推定に比べて、基本要素が少なくなるため、推定処理数が少なくなり、推定処理時間が短縮できる。
【００４９】
なお、本実施形態の論理回路の故障箇所推定方法では、フェイル推定回路ブロックに対応した決定グラフのノードの情報を故障箇所推定情報として登録しリスト出力するとして説明したが、本実施形態の変形例として、故障箇所推定情報として登録された、決定グラフのノードの情報をハードウェア記述言語の記述情報へ変換しリスト出力することもできる。これにより、故障箇所推定結果を機能設計へフィードバックすることが容易になる。
【００５０】
【発明の効果】
以上説明したように、本発明による、論理回路の故障箇所推定方法は、論理回路をハードウェア記述言語で回路ブロック単位に機能記述した記述情報からフェイル推定回路ブロックを抽出し、抽出したフェイル推定回路ブロックごとに、決定グラフ作成と、決定グラフを用いたフェイル伝搬経路推定を行い、回路ブロック単位の機能レベルで故障箇所を推定することができ、ゲートレベルでの故障推定に比べて、基本要素が少なくなるため、推定処理数が少なくなり、推定処理時間が短縮できるなどの効果がある。
【図面の簡単な説明】
【図１】本発明による論理回路の故障箇所推定方法の実施形態を示す流れ図である。
【図２】ベンチマーク回路ｃｏｕｎｔｅｒのＶＨＤＬ記述例を示す説明図である。
【図３】  図２のＶＨＤＬ記述例に対する状態テーブルの例を示す説明図である。
【図４】図４は、図３の状態テーブル例に対応して作成された決定グラフ例を示す説明図である。
【図５】従来の論理回路の故障箇所推定方法の概略処理を示す流れ図である。
【符号の説明】
１１〜１８，５１〜５４    ステップ
【図１】
0003863423.tif 000002
【図２】
0003863423.tif 000003
【図３】
0003863423.tif 000004
【図４】
0003863423.tif 000005
【図５】
0003863423.tif 000006