(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換装置において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する状態遷移テーブル作成手段と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した１つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定するノード設定手段と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー／フォルスの２値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクするノードリンク手段と、を有し、前記決定グラフは機能レベルの決定グラフであることを特徴とする論理回路の決定グラフへの変換装置。
【請求項２】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬのｐｒｏｃｅｓｓ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロックが含まれている場合に、第１及び第２の状態からなる状態遷移テーブルを作成し、前記第１の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第２の状態では、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理を割り当て、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理が終了すると前記第１の状態へ遷移することを特徴とする請求項１に記載の論理回路の決定グラフへの変換装置。
【請求項３】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックが含まれている場合に、第３及び第４の状態からなる状態遷移テーブルを作成し、前記第３の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第４の状態では、前記ｉｎｉｔｉａｌブロック内に記述された処理を割り当て、前記ｉｎｉｔｉａｌブロック内に記述された処理の終了によって全ての処理が終了することを特徴とする請求項１に記載の論理回路の決定グラフへの変換装置。
【請求項４】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗｈｉｌｅ文が含まれている場合に、第５乃至第７の状態からなる状態遷移テーブルを作成し、前記第５の状態では、ループ条件を割り当ててトゥルー／フォルスの２値で評価し、トゥルーであれば前記第６の状態へ遷移し、フォルスであれば前記第７の状態へ遷移し、前記第６の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第６の状態を維持し、フォルスであれば前記第７の状態へ遷移し、前記第７の状態では、前記第５の状態へ遷移することを特徴とする請求項１乃至３のいずれか１項に記載の論理回路の決定グラフへの変換装置。
【請求項５】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのシーケンシャル信号代入文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文が含まれている場合に、第８及び第９の状態からなる状態遷移テーブルを作成し、前記第８の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第９の状態へ遷移し、前記第９の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することを特徴とする請求項１乃至４のいずれか１項に記載の論理回路の決定グラフへの変換装置。
【請求項６】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｆｏｒ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの＃文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する前に、前記ｗａｉｔ  ｆｏｒ文又は＃文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたｗｈｉｌｅ文に変換することを特徴とする請求項４に記載の論理回路の決定グラフへの変換装置。
【請求項７】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｕｎｔｉｌ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗａｉｔ文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する前に、前記ｗａｉｔ  ｕｎｔｉｌ文又はｗａｉｔ文の条件を判定条件としたｗｈｉｌｅ文に変換することを特徴とする請求項４に記載の論理回路の決定グラフへの変換装置。
【請求項８】
ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換方法において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する工程と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した１つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定する工程と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー／フォルスの２値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクする工程と、を有し、前記決定グラフは機能レベルの決定グラフであることを特徴とする論理回路の決定グラフへの変換方法。
【請求項９】
前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬのｐｒｏｃｅｓｓ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロックが含まれている場合に、第１及び第２の状態からなる状態遷移テーブルを作成する工程を有し、前記第１の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第２の状態では、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理を割り当て、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理が終了すると前記第１の状態へ遷移することを特徴とする請求項８に記載の論理回路の決定グラフへの変換方法。
【請求項１０】
前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックが含まれている場合に、第３及び第４の状態からなる状態遷移テーブルを作成する工程を有し、前記第３の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第４の状態では、前記ｉｎｉｔｉａｌブロック内に記述された処理を割り当て、前記ｉｎｉｔｉａｌブロック内に記述された処理の終了によって全ての処理が終了することを特徴とする請求項８に記載の論理回路の決定グラフへの変換方法。
【請求項１１】
前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗｈｉｌｅ文が含まれている場合に、第５乃至第７の状態からなる状態遷移テーブルを作成する工程を有し、前記第５の状態では、ループ条件を割り当ててトゥルー／フォルスの２値で評価し、トゥルーであれば前記第６の状態へ遷移し、フォルスであれば前記第７の状態へ遷移し、前記第６の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第６の状態を維持し、フォルスであれば前記第７の状態へ遷移し、前記第７の状態では、前記第５の状態へ遷移することを特徴とする請求項８乃至１０のいずれか１項に記載の論理回路の決定グラフへの変換方法。
【請求項１２】
前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのシーケンシャル信号代入文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文が含まれている場合に、第８及び第９の状態からなる状態遷移テーブルを作成する工程を有し、前記第８の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第９の状態へ遷移し、前記第９の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することを特徴とする請求項８乃至１１のいずれか１項に記載の論理回路の決定グラフへの変換方法。
【請求項１３】
前記状態遷移テーブル作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｆｏｒ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの＃文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する工程の前に、前記ｗａｉｔ  ｆｏｒ文又は＃文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたｗｈｉｌｅ文に変換する工程を有することを特徴とする請求項１１に記載の論理回路の決定グラフへの変換方法。
【請求項１４】
前記状態遷移テーブル作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｕｎｔｉｌ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗａｉｔ文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する工程の前に、前記ｗａｉｔ  ｕｎｔｉｌ文又はｗａｉｔ文の条件を判定条件としたｗｈｉｌｅ文に変換する工程を有することを特徴とする請求項１１に記載の論理回路の決定グラフへの変換方法。
【請求項１５】
ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する手順と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した１つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定する手順と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー／フォルスの２値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクする手順と、を有する処理をコンピュータに実行させ、前記決定グラフは機能レベルの決定グラフであることを特徴とする論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記状態遷移テーブルを作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬのｐｒｏｃｅｓｓ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロックが含まれている場合に、第１及び第２の状態からなる状態遷移テーブルを作成する手順を有し、前記第１の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第２の状態では、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理を割り当て、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理が終了すると前記第１の状態へ遷移することを特徴とする請求項１５に記載の論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックが含まれている場合に、第３及び第４の状態からなる状態遷移テーブルを作成する手順を有し、前記第３の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第４の状態では、前記ｉｎｉｔｉａｌブロック内に記述された処理を割り当て、前記ｉｎｉｔｉａｌブロック内に記述された処理の終了によって全ての処理が終了することを特徴とする請求項１５に記載の論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗｈｉｌｅ文が含まれている場合に、第５乃至第７の状態からなる状態遷移テーブルを作成する手順を有し、前記第５の状態では、ループ条件を割り当ててトゥルー／フォルスの２値で評価し、トゥルーであれば前記第６の状態へ遷移し、フォルスであれば前記第７の状態へ遷移し、前記第６の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第６の状態を維持し、フォルスであれば前記第７の状態へ遷移し、前記第７の状態では、前記第５の状態へ遷移することを特徴とする請求項１５乃至１７のいずれか１項に記載の論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのシーケンシャル信号代入文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文が含まれている場合に、第８及び第９の状態からなる状態遷移テーブルを作成する手順を有し、前記第８の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第９の状態へ遷移し、前記第９の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することを特徴とする請求項１５乃至１８のいずれか１項に記載の論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｆｏｒ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの＃文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する手順の前に、前記ｗａｉｔ  ｆｏｒ文又は＃文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたｗｈｉｌｅ文に変換する手順を有することを特徴とする請求項１８に記載の論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２１】
前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｕｎｔｉｌ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗａｉｔ文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する手順の前に、前記ｗａｉｔ  ｕｎｔｉｌ文又はｗａｉｔ文の条件を判定条件としたｗｈｉｌｅ文に変換する手順を有することを特徴とする請求項１８に記載の論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、機能レベルで故障箇所を推定する際にハードウェア記述言語で記述された論理回路の決定グラフへの変換に好適な論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に、大規模化及び多層配線化する論理回路に対して短時間で決定グラフに変換することが可能な論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
故障箇所推定における決定グラフへの変換方法は、機能レベルで論理回路の故障箇所を推定するシステムにおいて、ハードウェア記述言語で記述された論理回路を決定グラフへ変換する方法である。
【０００３】
従来の故障箇所推定方法では、図１９に示すように、故障シミュレータを用いて予め故障辞書を作成し（ステップＳ１０１）、実際にＬＳＩをテストしてフェイル情報を取得し（ステップＳ１０２）、テスト結果のフェイル情報から前記故障辞書を検索し（ステップＳ１０３）、そして、故障箇所を推定している（ステップＳ１０４）。
【０００４】
故障シミュレータは、ＬＳＩ内部に故障を仮定して機能シミュレーション又は論理シミュレーションを行い、その結果と期待値とを照合し、仮定した故障箇所とその故障を検出したテストベクタとを対応付けた故障辞書を作成する。そして、実際にＬＳＩをテストした結果のフェイル情報から前記故障辞書を検索し、仮定した故障箇所を求め、複数のフェイル情報及びパス情報を用いて複数得られる仮定故障の中から優先順位付けを行い、故障箇所の推定を行うものである。
【０００５】
また、他の故障箇所推定方法として、前述の手順を階層的に行い、かつ電子ビームテスタでの内部観測を行うものがある。この方法は、上の階層から順に前述の手順にて故障箇所を推定し、その階層の境界で電子ビームテスタを用いて内部を観測し、下の階層へと故障箇所を絞り込んでいくものである。
【０００６】
また、更に他の故障箇所推定方法として、特開平８−１４６０９３号公報に開示されたものがある。この方法は、ゲートレベルで故障箇所を推定する方法である。故障出力に故障を伝搬する可能性のある組合せ回路をダイナミックに抽出して、組合せ回路毎に論理状態及び故障の伝搬する経路を推定し、入力方向に溯ることにより、故障箇所を推定している。論理状態とは、一つの信号線の論理値だけでなく、回路内部の全ノード、即ち、信号線、ゲート、ゲート端子及び入出力端子が０、１、Ｘ（Ｄｏｎ’ｔ  Ｃａｒｅ）、Ｚ（ハイインピーダンス）又はＵ（不定）等の論理値を持っている状態のことである。
【０００７】
【発明が解決しようとする課題】
しかしながら、故障シミュレータを使用した故障箇所の推定方法では、故障辞書を予め作成しておく必要があるが、故障辞書の作成には多大な故障シミュレーション時間を要するため、ＬＳＩが大規模化すればするほど計算時間が膨大となり、また、故障辞書のファイルも極めて大きくなるという問題点がある。更に、故障シミュレーションで用いる故障モデルは単一縮退故障が一般的であるため、ブリッジ故障等の多重故障では実際と一致しないこともあり、故障シミュレーションモデルを多重故障に拡張すると、故障シミュレーションの処理時間の点で実用的でないという問題点もある。
【０００８】
階層的な故障シミュレーションと電子ビームテスタとを併用する方法は、推定箇所を逐次観測しながら絞り込んでいくため有効な方法ではあるが、ＬＳＩが大規模化して多層配線となると、下層の電位が観測不可能になるという問題点がある。
【０００９】
ゲートレベルでの故障箇所推定方法は、ゲートレベルで故障箇所を推定できるため有効な方法ではあるが、ゲート単位での推定処理のため、大規模ＬＳＩに対する精度が十分とはいえず、また、処理時間が長くなるという問題点がある。
【００１０】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、大規模化及び多層配線化する論理回路に対して、短時間に、機能レベルでの故障箇所を推定するための、ハードウェア記述言語で記述された論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録した記録媒体を提供することにある。
【００１１】
【課題を解決するための手段】
本発明に係る論理回路の決定グラフへの変換装置は、ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換装置において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する状態遷移テーブル作成手段と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した１つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定するノード設定手段と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー／フォルスの２値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクするノードリンク手段と、を有し、前記決定グラフは機能レベルの決定グラフであることを特徴とする。
【００１２】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ（VHSIC HDL: very high speed integrated circuit hardware description language）のｐｒｏｃｅｓｓ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬ（verilog-hardware description language）のａｌｗａｙｓブロックが含まれている場合に、第１及び第２の状態からなる状態遷移テーブルを作成することができ、この場合、前記第１の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第２の状態では、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理を割り当て、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理が終了すると前記第１の状態へ遷移することができる。
【００１３】
また、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックが含まれている場合に、第３及び第４の状態からなる状態遷移テーブルを作成することができ、この場合、前記第３の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第４の状態では、前記ｉｎｉｔｉａｌブロック内に記述された処理を割り当て、前記ｉｎｉｔｉａｌブロック内に記述された処理の終了によって全ての処理が終了することができる。
【００１４】
更に、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗｈｉｌｅ文が含まれている場合に、第５乃至第７の状態からなる状態遷移テーブルを作成することができ、この場合、前記第５の状態では、ループ条件を割り当ててトゥルー／フォルスの２値で評価し、トゥルーであれば前記第６の状態へ遷移し、フォルスであれば前記第７の状態へ遷移し、前記第６の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第６の状態を維持し、フォルスであれば前記第７の状態へ遷移し、前記第７の状態では、前記第５の状態へ遷移することができる。
【００１５】
更にまた、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのシーケンシャル信号代入文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文が含まれている場合に、第８及び第９の状態からなる状態遷移テーブルを作成することができ、この場合、前記第８の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第９の状態へ遷移し、前記第９の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することができる。
【００１６】
また、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｆｏｒ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの＃文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する前に、前記ｗａｉｔ  ｆｏｒ文又は＃文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたｗｈｉｌｅ文に変換してもよく、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｕｎｔｉｌ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗａｉｔ文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する前に、前記ｗａｉｔ  ｕｎｔｉｌ文又はｗａｉｔ文の条件を判定条件としたｗｈｉｌｅ文に変換してもよい。
【００１７】
本発明に係る論理回路の決定グラフへの変換方法は、ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換方法において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する工程と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した１つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定する工程と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー／フォルスの２値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクする工程と、を有し、前記決定グラフは機能レベルの決定グラフであることを特徴とする。
【００１８】
前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬのｐｒｏｃｅｓｓ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロックが含まれている場合に、第１及び第２の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第１の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第２の状態では、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理を割り当て、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理が終了すると前記第１の状態へ遷移することができる。
【００１９】
また、前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックが含まれている場合に、第３及び第４の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第３の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第４の状態では、前記ｉｎｉｔｉａｌブロック内に記述された処理を割り当て、前記ｉｎｉｔｉａｌブロック内に記述された処理の終了によって全ての処理が終了することができる。
【００２０】
更に、前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗｈｉｌｅ文が含まれている場合に、第５乃至第７の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第５の状態では、ループ条件を割り当ててトゥルー／フォルスの２値で評価し、トゥルーであれば前記第６の状態へ遷移し、フォルスであれば前記第７の状態へ遷移し、前記第６の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第６の状態を維持し、フォルスであれば前記第７の状態へ遷移し、前記第７の状態では、前記第５の状態へ遷移することができる。
【００２１】
更にまた、前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのシーケンシャル信号代入文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文が含まれている場合に、第８及び第９の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第８の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第９の状態へ遷移し、前記第９の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することができる。
【００２２】
また、前記状態遷移テーブル作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｆｏｒ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの＃文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する工程の前に、前記ｗａｉｔ  ｆｏｒ文又は＃文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたｗｈｉｌｅ文に変換する工程を有することができ、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｕｎｔｉｌ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗａｉｔ文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する工程の前に、前記ｗａｉｔ  ｕｎｔｉｌ文又はｗａｉｔ文の条件を判定条件としたｗｈｉｌｅ文に変換する工程を有することができる。
【００２３】
本発明に係る論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体は、ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する手順と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した１つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定する手順と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー／フォルスの２値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクする手順と、を有する処理をコンピュータに実行させ、前記決定グラフは機能レベルの決定グラフであることを特徴とする。
【００２４】
前記状態遷移テーブルを作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬのｐｒｏｃｅｓｓ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロックが含まれている場合に、第１及び第２の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第１の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第２の状態では、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理を割り当て、前記ｐｒｏｃｅｓｓ文又はａｌｗａｙｓブロック内に記述された処理が終了すると前記第１の状態へ遷移することができる。
【００２５】
また、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックが含まれている場合に、第３及び第４の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第３の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第２の状態へ遷移し、前記第４の状態では、前記ｉｎｉｔｉａｌブロック内に記述された処理を割り当て、前記ｉｎｉｔｉａｌブロック内に記述された処理の終了によって全ての処理が終了することができる。
【００２６】
更に、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語ＶＨＤＬ又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗｈｉｌｅ文が含まれている場合に、第５乃至第７の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第５の状態では、ループ条件を割り当ててトゥルー／フォルスの２値で評価し、トゥルーであれば前記第６の状態へ遷移し、フォルスであれば前記第７の状態へ遷移し、前記第６の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第６の状態を維持し、フォルスであれば前記第７の状態へ遷移し、前記第７の状態では、前記第５の状態へ遷移することができる。
【００２７】
更にまた、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのシーケンシャル信号代入文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文が含まれている場合に、第８及び第９の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第８の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第９の状態へ遷移し、前記第９の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することができる。
【００２８】
また、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｆｏｒ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬの＃文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する手順の前に、前記ｗａｉｔ  ｆｏｒ文又は＃文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたｗｈｉｌｅ文に変換する手順を有することができ、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語ＶＨＤＬのｗａｉｔ  ｕｎｔｉｌ文又はハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのｗａｉｔ文が含まれている場合に、前記第５乃至第７の状態からなる状態遷移テーブルを作成する手順の前に、前記ｗａｉｔ  ｕｎｔｉｌ文又はｗａｉｔ文の条件を判定条件としたｗｈｉｌｅ文に変換する手順を有することができる。
【００２９】
論理回路の入出力ポート及びラッチにおいて、本発明で作成した決定グラフに基づいて推定した状態推定値と、テスタでのテスト結果と機能シミュレーションにより得られる期待値とを比較し、フェイル伝搬経路を推定して故障の推定を行うことができる。また、ゲートレベルでの故障推定と比較すると、基本要素が少なくなるため、推定の処理数が減少し、推定処理の時間が短縮される。
【００３０】
【発明の実施の形態】
以下、本発明の実施例に係る論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体について、添付の図面を参照して具体的に説明する。図１は本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の構成を示すブロック図である。
【００３１】
本実施例には、キーボード等の入力装置１、ハードウェア記述言語で記述された論理回路を決定グラフに変換するデータ処理装置２、ハードディスク又はメモリ等からなり情報を記憶する記憶装置３、及び表示装置又は印刷装置等の出力装置４が設けられている。
【００３２】
データ処理装置２には、ループ処理又はタイミング制御に関して、状態数及び各状態における処理を割り当てる前処理手段が設けられている。また、データ処理装置２には、論理回路の処理順序に従って、状態番号、判定条件、次の状態番号及び動作内容から構成される状態遷移テーブルを作成する後処理手段が設けられている。前処理手段及び後処理手段から状態遷移テーブル作成手段１１が構成されている。更に、データ処理装置２には、決定グラフのノードを設定するノード設定手段１２及び各ノード間をリンクするノードリンク手段１３が設けられている。
【００３３】
ノード設定手段１２は、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定する。また、ノード設定手段１２は、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定する。更に、ノード設定手段１２は、ハードウェア記述言語内で使用されている演算子を操作ノードとして設定すると共に、与えられた組の中からｔｒｕｅ（トゥルー）状態に対応した１つの値を選択し、選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定する。
【００３４】
ノードリンク手段１３は、状態遷移テーブル作成手段１により作成された状態遷移テーブルに基づいて、読み出しノードと操作ノードとをデータフローとしてリンクすることにより、出力値及び出力値に対応するｔｒｕｅ／ｆａｌｓｅ（フォルス）の２値で与えられる状態結果を計算し、出力値と状態結果との組を割当て決定ノードにリンクし、割当て決定ノードを書き込みノードにリンクする。
【００３５】
記憶装置３には、論理回路の決定グラフ及びその構成を記憶する回路構成記憶部（図示せず）が備えられている。
【００３６】
次に、上述のように構成された本実施例の変換装置の動作、即ち論理回路の故障箇所の推定における決定グラフへの変換方法について説明する。図２は本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の動作を示すフローチャートである。
【００３７】
先ず、状態遷移テーブル作成手段１１が、前工程として、ループ処理又はタイミング制御に関して、状態数及び各状態における処理を割り当てる。その後、状態遷移テーブル作成手段１１が、後工程として、論理回路の処理順序に従って、状態番号、判定条件、次の状態番号及び動作の内容から構成される状態遷移テーブルを作成する（ステップＳ１１）。
【００３８】
次に、ノード設定手段１２が決定グラフのノードを設定する（ステップＳ１２）。具体的には、ノード設定手段１２は、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定する。ノード設定手段１２は、また、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定する。ノード設定手段１２は、更に、ハードウェア記述言語内で使用されている演算子を操作ノードとして設定すると共に、与えられた組の中からｔｒｕｅ状態に対応した１つの値を選択し、選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定する。
【００３９】
次いで、ノードリンク手段１３が各ノード間をリンクする（ステップＳ１３）。具体的には、ノードリンク手段１３は、状態遷移テーブル作成手段１１により作成された状態遷移テーブルに基づいて、読み出しノードと操作ノードとをデータフローとしてリンクすることにより、出力値及び出力値に対応するｔｒｕｅ／ｆａｌｓｅの２値で与えられる状態結果を計算する。ノードリンク手段１３は、また、出力値と状態結果との組を割当て決定ノードにリンクし、割当て決定ノードを書き込みノードにリンクする。
【００４０】
次に、具体的にハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬで表現されたカウンタ回路の故障箇所推定における決定グラフへの変換方法について説明する。このカウンタ回路はクロック信号ｃｌｋが「１」になったときにカウントアップし、信号ｏｕｔにカウントを出力する回路であるとする。図３はカウンタ回路をハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬで表現したものを示す図であり、図４はこのカウンタ回路の状態遷移テーブルであり、図５はこのカウンタ回路の決定グラフである。
【００４１】
先ず、状態遷移テーブル作成手段１１の動作について説明する。
【００４２】
本実施例では、図３に示すように、ａｌｗａｙｓブロック及びノンブロッキング代入文が記述されている。このため、状態遷移テーブル作成手段１１は、図４に示すように、ａｌｗａｙｓブロックのイベント発生の判断処理が割り当てたられた状態ＳＴ０、ａｌｗａｙｓブロック内に記述された処理が割り当てられ、ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入する処理が割り当てられた状態ＳＴ１、及び状態ＳＴ１で一時的なレジスタに保持した値をノンブロッキング代入式の左辺の信号へ代入する処理を割り当てた状態ＳＴ２の３つの状態を示す状態遷移テーブルを作成する。
【００４３】
状態ＳＴ０における処理が終了すると、次の状態として状態ＳＴ１へ遷移し、状態ＳＴ１における処理が終了すると、次の状態として状態ＳＴ２へ遷移し、状態ＳＴ２における処理が終了すると、次の状態として状態ＳＴ０へ遷移する。
【００４４】
次に、ノード設定手段１２の動作について説明する。
【００４５】
ノード設定手段１２は、入力ポートであるｃｌｋ及びｃｉを読み出しノードとして設定する。また、状態変数ＳＴＡＴＥ、状態番号ＳＴ０、ＳＴ１及びＳＴ２も読み出しノードとして設定する。更に、条件式における変数及び定数であるｃｋｌ、「１」、ｏｕｔ及び「１１１１」も読み出しノードとして設定する。更にまた、代入式の右辺において式の評価で使用されている変数及び定数である「００００」、ｏｕｔ、ｃｉ及びｒｅｇも読み出しノードとして設定する。
【００４６】
また、ノード設定手段１２は、出力ポートであるｏｕｔを書き込みノードとして設定する。また、状態変数ＳＴＡＴＥも書き込みノードとして設定し、代入式の左辺において代入される変数であるｒｅｇ及びｏｕｔも書き込みノードとして設定する。
【００４７】
更に、ノード設定手段１２は、状態遷移テーブル内で使用されている演算子として等号「＝」、加算「＋」、否定「！」及び論理演算子ａｎｄ「∩」を操作ノードとして設定する。
【００４８】
更にまた、ノード設定手段１２は、書き込みノードｏｕｔ、ＳＴＡＴＥ及びｒｅｇの夫々に対応したＳＴＡＴＥ＿ａ、ｒｅｇ＿ａ及びｏｕｔ＿ａを割当て決定ノードとして設定する。
【００４９】
次に、ノードリンク手段１３の動作について、状態番号ＳＴ２に対応する動作を例にして説明する。
【００５０】
ノードリンク手段１３は、状態変数である読み出しノードＳＴＡＴＥと状態番号である読み出しノードＳＴ２とを操作ノードである等号「＝」でリンクする。また、ノードリンク手段１３は、読み出しノードｒｅｇと出力値として割当て決定ノードｒｅｇ＿ａとをリンクすると共に、割当て決定ノードｒｅｇ＿ａと出力先としての書き込みノードｒｅｇとをリンクする。ここで、出力値であるｒｅｇに対応した状態結果として、読み出しノードＳＴ２とリンクした等号「＝」が割当て決定ノードｒｅｇ＿ａとがリンクされる。
【００５１】
また、ノードリンク手段１３は、書き込みノードＳＴＡＴＥと出力先としての割当て決定ノードＳＴＡＴＥ＿ａとをリンクする。ノードリンク手段１３は、割当て決定ノードＳＴＡＴＥ＿ａと出力値としての状態番号である読み出しノードＳＴ０、ＳＴ１及びＳＴ２とをリンクする。ここで、状態ＳＴ２の次状態は状態ＳＴ０であるため、割当て決定ノードＳＴＡＴＥ＿ａの出力値ＳＴ０に対応した状態結果として、読み出しノードＳＴ２とリンクした等号「＝」が割当て決定ノードＳＴＡＴＥ＿ａとリンクされる。
【００５２】
状態遷移テーブルの状態ＳＴ０及び状態１における各ノードを同様にしてリンクすることにより、図５に示す決定グラフが作成される。
【００５３】
次に、ループ処理として、ハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのデータにａｌｗａｙｓブロックが含まれているか、又はハードウェア記述言語ＶＨＤＬのデータにｐｒｏｃｅｓｓ文が含まれている場合の状態遷移テーブル作成手段１１の動作例について、図６及び図７を参照して説明する。図６はｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロック及びＶＨＤＬのｐｒｏｃｅｓｓ文の例を示す図であり、図７は状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【００５４】
図６に示すようなａｌｗａｙｓブロック又はｐｒｏｃｅｓｓ文が含まれている場合、信号ｃｌｏｃｋに変化があったときに信号ｙの値が信号ｘに代入される。
【００５５】
ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロック及びＶＨＤＬのｐｒｏｃｅｓｓ文では、状態遷移テーブルは２状態からなる。状態ＳＴ０では、イベント発生の判断処理として、「信号ｃｌｏｃｋの変化」が割り当てられ、信号ｃｌｏｃｋが変化すると次の状態として状態ＳＴ１へ遷移するとする。状態ＳＴ１では、ａｌｗａｙｓブロック又はｐｒｏｃｅｓｓ文内に記述された処理として、代入式ｘ＝ｙが割り当てられ、処理が終了すると、状態ＳＴ０へ遷移するとする。
【００５６】
次に、ハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのデータにｉｎｉｔｉａｌブロックが含まれている場合の状態遷移テーブル作成手段１１の動作例について、図８及び図９を参照して説明する。図８はｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックの例を示す図であり、図９は状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【００５７】
図８に示すようなｉｎｉｔｉａｌブロックが含まれている場合、ｒｅｓｅｔ信号が１に変化した場合に信号ａの値に０が代入される。
【００５８】
ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉｌａブロック文では、状態遷移テーブルは２状態からなる。状態ＳＴ０では、イベント発生の判断処理として、「信号ｒｅｓｅｔの１への変化」が割り当てられ、信号ｒｅｓｅｔが１に変化すると次の状態として状態ＳＴ１へ遷移するとする。状態ＳＴ１では、ｉｎｉｔｉａｌブロック内に記述された処理として、代入式ａ＝０が割り当てられ、状態ＳＴ１の処理の終了によって全ての処理を終了とする。
【００５９】
次に、ハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのデータ又はハードウェア記述言語ＶＨＤＬのデータにｗｈｉｌｅ文が含まれている場合の変換装置による決定グラフへの変換について、図１０、図１１及び図１２を参照して説明する。図１０はｖｅｒｉｌｏｇ−ＨＤＬ及びＶＨＤＬのｗｈｉｌｅ文の例を示す図であり、図１１は状態遷移テーブル作成手段１１により作成される状態遷移テーブルであり、図１２は最終的に作成される決定グラフである。
【００６０】
図１０に示すようなｗｈｉｌｅ文が含まれている場合、信号ａ及び信号ｂに対して、「ａ＜ｂ」が成立する間、「ｂ−ａ」の値が信号ｂに代入される。
【００６１】
状態遷移テーブル作成手段１１が作成する状態遷移テーブルは３つの状態から構成される。状態０ＳＴでは、ループ条件である「ａ＜ｂ」が割り当てられ、「ａ＜ｂ」がｔｒｕｅであれば、次の状態として状態ＳＴ１へと遷移する。一方、ｆａｌｓｅであれば次の状態として状態ＳＴ２へと遷移する。状態ＳＴ１では、ループ条件がｔｒｕｅの場合の処理として、「ｂ＝ｂ−ａ」の処理が行われる。次に、ループ条件「ａ＜ｂ」の判定処理が行われ、次の状態として、ｔｒｕｅであれば、状態ＳＴ１を維持し、ｆａｌｓｅであれば、状態ＳＴ２へと遷移する。状態ＳＴ２では，次の状態として状態ＳＴ０へ遷移するとする。
【００６２】
ノード設定手段１２は、状態変数、状態番号、条件式における変数、並びに代入式の右辺において式の評価で使用されている変数であるＳＴＡＴＥ、ＳＴ０、ＳＴ１、ＳＴ２、ａ及びｂを読み出しノードとして設定する。また、状態変数、並びに代入式の左辺において代入される変数であるＳＴＡＴＥ及びｂを書き込みノードとして設定する。更に、状態遷移テーブル内で使用されている演算子として、等号「＝」、否定「！」、減算「−」、不等号「＜」並びに論理演算子ａｎｄ「∩」及びｏｒ「∪」を操作ノードとして設定する。更にまた、書き込みノードＳＴＡＴＥ及びｂの夫々に対応したＳＴＡＴＥ＿ａ及びｂ＿ａを割当て決定ノードとして設定する。
【００６３】
ノードリンク手段１３は、状態遷移テーブルの状態ＳＴ１に対応した箇所では、状態変数である読み出しノードＳＴＡＴＥと状態番号である読み出しノードＳＴ１とを操作ノードである等号「＝」でリンクする。割当て決定ノードｂ＿ａは出力先として、書き込みノードｂとリンクする。「ｂ−ａ」の計算値が割当て決定ノードｂ＿ａの出力値であるため、読み出しノードａ及びｂを操作ノードである減算「−」とリンクする。操作ノードである減算「−」は、割当て決定ノードｂ＿ａへの出力値としてリンクする。ここで、出力値である「ｂ−ａ」の計算値に対応した状態結果として、読み出しノードＳＴ１とリンクした等号「＝」が割当て決定ノードｂ＿ａとリンクされる。
【００６４】
また、ノードリンク手段１３は、書き込みノードＳＴＡＴＥを割当て決定ノードＳＴＡＴＥ＿ａの出力先としてリンクする。割当て決定ノードＳＴＡＴＥ＿ａは、出力値として状態番号である読み出しノードＳＴ０、ＳＴ１及びＳＴ２とリンクする。ここで、状態ＳＴ０又は状態ＳＴ１において、ループ条件「ａ＜ｂ」がｔｒｕｅの場合，次状態は状態１である。割当て決定ノードＳＴＡＴＥ＿ａの出力値ＳＴ１に対応した状態結果として，「ａ＜ｂ」かつ「ＳＴＡＴＥ＝ＳＴ０」、又は「ａ＜ｂ」かつ「ＳＴＡＴＥ＝ＳＴ１」をデータフローで接続し、割当て決定ノードＳＴＡＴＥ＿ａとリンクされる。
【００６５】
状態ＳＴ０及び状態ＳＴ２についても、同様にして、各ノードをリンクすることにより、図１２に示す決定グラフが作成される。ここで、図中の「∪」は、論理演算子ｏｒを意味する。
【００６６】
次に、タイミング制御として、ハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのデータに手続的ノンブロッキング代入文が含まれているか、又はハードウェア記述言語ＶＨＤＬのデータにシーケンシャル信号代入文が含まれている場合の状態遷移テーブル作成手段１１の動作例について、図１３及び図１４を参照して説明する。図１３はｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文及びＶＨＤＬのシーケンシャル信号代入文の例を示す図であり、図１４は状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【００６７】
図１３に示すような手続的ノンブロッキング文又はシーケンシャル信号代入文が含まれている場合、信号ｃｔの値を一時的なレジスタに保持しておき、次に、ｃｔが「１１１１」と等しいか否かによって、「００００」又は「ｃｔ＋１」がｃｔに代入される。そして、一時的にレジスタに保持していたｃｔの値が信号ｃｏｕｎｔに代入される。
【００６８】
ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文及びＶＨＤＬのシーケンシャル信号代入文では、状態遷移テーブルは２状態からなる。状態ＳＴ０では、ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文及びＶＨＤＬのシーケンシャル信号代入文における右辺の式の評価ｃｔを一時的なレジスタｒｅｇに代入する。次に、ｃｔが「１１１１」と等しいか否かによって、「００００」又は「ｃｔ＋１」の値をｃｔに代入する。そして、次の状態として状態ＳＴ１へ遷移する。状態ＳＴ１では、状態ＳＴ０で一時的なレジスタｒｅｇの値をｃｏｕｎｔへ代入する。
【００６９】
次に、タイミング制御として、ハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのデータに＃文が含まれているか、又はハードウェア記述言語ＶＨＤＬのデータにｗａｉｔ  ｆｏｒ文が含まれている場合に、状態遷移テーブル作成手段１１がこれらの文をｗｈｉｌｅ文へ変換する動作について、図１５及び図１６を参照して説明する。
【００７０】
図１５に示す＃文及び図１６に示すｗａｉｔ  ｆｏｒ文は、１００ｎ秒の時間だけプロセスの実行をストップする動作を記述したものである。また、図１５及び図１６に示すｗｈｉｌｅ文は、いずれもクロックの間隔が１０ｎ秒であった場合のｗｈｉｌｅ文への変換結果を示している。１０クロックサイクル数分だけｗｈｉｌｅループを処理することとすれば、時間にして１００ｎ秒だけプロセスの実行がストップし、＃文又はｗａｉｔ  ｆｏｒ文と等価な動作が得られる。
【００７１】
このようにして＃文又はｗａｉｔ  ｆｏｒ文をｗｈｉｌｅ文へ変換した後、状態遷移テーブル作成手段１１、ノード設定手段１２及びノードリンク手段１３による処理を実施することにより、ｗｈｉｌｅ文を決定グラフへ変換することができる。
【００７２】
次に、タイミング制御として、ハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬのデータにｗａｉｔ文が含まれているか、又はハードウェア記述言語ＶＨＤＬのデータにｗａｉｔ  ｕｎｔｉｌ文が含まれている場合に、状態遷移テーブル作成手段１１がこれらの文をｗｈｉｌｅ文へ変換する動作について、図１７及び図１８を参照して説明する。
【００７３】
図１７に示すｗａｉｔ文及び図１８に示すｗａｉｔ  ｕｎｔｉｌ文は、信号ｃの値が「１」と等しくなるまでプロセスの実行をストップする動作を記述したものである。また、図１７及び図１８に示すｗｈｉｌｅ文は、いずれもｗｈｉｌｅ文への変換結果を示している。信号ｃの値が「１」と等しくなるまでの期間、ｗｈｉｌｅループを処理することとすれば、信号ｃの値が「１」と等しくなるまでプロセスの実行がストップされ、ｗａｉｔ文又はｗａｉｔ  ｕｎｔｉｌ文と等価な動作が得られる。
【００７４】
このようにしてｗａｉｔ文又はｗａｉｔ  ｕｎｔｉｌ文をｗｈｉｌｅ文へ変換した後、状態遷移テーブル作成手段１１、ノード設定手段１２及びノードリンク手段１３による処理を実施することにより、ｗｈｉｌｅ文を決定グラフへ変換することができる。
【００７５】
そして、これらの実施例により作成された決定グラフを用いて論理回路の入出力ポート及びラッチの状態を推定して得られる状態推定値と、テスタでのテスト結果及び機能シミュレーションにより得られる期待値とを比較し、フェイル伝搬経路を推定することにより、機能レベルでの故障箇所を推定することができる。
【００７６】
なお、状態遷移テーブル作成手段１１、ノード設定手段１２及びノードリンク手段１３による各処理は、例えばハードウェア記述言語で記述された論理回路を決定グラフに変換する装置を構成するコンピュータでプログラムを実行することで実現することができる。このプログラムを記録したコンピュータで読み取り可能な記録媒体、例えば磁気ディスク、光ディスク及び半導体メモリからそのプログラムをハードウェア記述言語で記述された論理回路を決定グラフに変換する装置のコンピュータに読み取り、主記憶部にロードして実行することにより、本発明を実施することができる。また、プログラムを記録した記録媒体を備えたサーバ等から通信回線を介してプログラムをハードウェア記述言語で記述された論理回路を決定グラフに変換する装置のコンピュータにダウンロードするようにしてもよい。このように記録媒体を用いることにより、プログラムの管理が容易となる。
【００７７】
【発明の効果】
以上詳述したように、本発明によれば、論理回路を適切に決定グラフに変換できる。そして、論理回路の入出力ポート及びラッチにおいて、本発明で作成した決定グラフに基づいて推定した状態推定値と、機能シミュレーションにより得られる期待値とを比較し、フェイル伝搬経路を推定して故障の推定を行うことができる。つまり、機能レベルで故障が発生する箇所を推定することができる。従って、故障シミュレーションによる故障辞書を作成する必要がなく、短時間で故障箇所を推定することができる。また、ゲートレベルでの故障推定と比較しても、基本要素が少なくなるため、推定の処理数が減少し、推定処理の時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の構成を示すブロック図である。
【図２】本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の動作を示すフローチャートである。
【図３】カウンタ回路をハードウェア記述言語ｖｅｒｉｌｏｇ−ＨＤＬで表現したものを示す図である。
【図４】図３に示すカウンタ回路の状態遷移テーブルである。
【図５】図３に示すこのカウンタ回路の決定グラフである。
【図６】ｖｅｒｉｌｏｇ−ＨＤＬのａｌｗａｙｓブロック及びＶＨＤＬのｐｒｏｃｅｓｓ文の例を示す図である。
【図７】状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【図８】ｖｅｒｉｌｏｇ−ＨＤＬのｉｎｉｔｉａｌブロックの例を示す図である。
【図９】状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【図１０】ｖｅｒｉｌｏｇ−ＨＤＬ及びＶＨＤＬのｗｈｉｌｅ文の例を示す図である。
【図１１】状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【図１２】最終的に作成される決定グラフである。
【図１３】ｖｅｒｉｌｏｇ−ＨＤＬの手続的ノンブロッキング代入文及びＶＨＤＬのシーケンシャル信号代入文の例を示す図である。
【図１４】状態遷移テーブル作成手段１１により作成される状態遷移テーブルである。
【図１５】＃文とｗｈｉｌｅ文との関係を示す図である。
【図１６】ｗａｉｔ  ｆｏｒ文とｗｈｉｌｅ文との関係を示す図である。
【図１７】ｗａｉｔ文とｗｈｉｌｅ文との関係を示す図である。
【図１８】ｗａｉｔ  ｕｎｔｉｌ文とｗｈｉｌｅ文との関係を示す図である。
【図１９】従来の故障箇所推定における決定グラフへ変換する方法を示すフローチャートである。
【符号の説明】
１；入力装置
２；データ処理装置
３；記憶装置
４；出力装置
１１；状態遷移テーブル作成手段
１２；ノード設定手段
１３；ノードリンク手段
【図１】
0003957507.tif 000002
【図２】
0003957507.tif 000003
【図３】
0003957507.tif 000004
【図４】
0003957507.tif 000005
【図５】
0003957507.tif 000006
【図６】
0003957507.tif 000007
【図７】
0003957507.tif 000008
【図８】
0003957507.tif 000009
【図９】
0003957507.tif 000010
【図１０】
0003957507.tif 000011
【図１１】
0003957507.tif 000012
【図１２】
0003957507.tif 000013
【図１３】
0003957507.tif 000014
【図１４】
0003957507.tif 000015
【図１５】
0003957507.tif 000016
【図１６】
0003957507.tif 000017
【図１７】
0003957507.tif 000018
【図１８】
0003957507.tif 000019
【図１９】
0003957507.tif 000020