JP3957507B2 - Device for converting logic circuit into decision graph, conversion method, and recording medium recording conversion program - Google Patents
Device for converting logic circuit into decision graph, conversion method, and recording medium recording conversion program Download PDFInfo
- Publication number
- JP3957507B2 JP3957507B2 JP2001397504A JP2001397504A JP3957507B2 JP 3957507 B2 JP3957507 B2 JP 3957507B2 JP 2001397504 A JP2001397504 A JP 2001397504A JP 2001397504 A JP2001397504 A JP 2001397504A JP 3957507 B2 JP3957507 B2 JP 3957507B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- description language
- hardware description
- statement
- logic circuit
- 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
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、機能レベルで故障箇所を推定する際にハードウェア記述言語で記述された論理回路の決定グラフへの変換に好適な論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に、大規模化及び多層配線化する論理回路に対して短時間で決定グラフに変換することが可能な論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
故障箇所推定における決定グラフへの変換方法は、機能レベルで論理回路の故障箇所を推定するシステムにおいて、ハードウェア記述言語で記述された論理回路を決定グラフへ変換する方法である。
【0003】
従来の故障箇所推定方法では、図19に示すように、故障シミュレータを用いて予め故障辞書を作成し(ステップS101)、実際にLSIをテストしてフェイル情報を取得し(ステップS102)、テスト結果のフェイル情報から前記故障辞書を検索し(ステップS103)、そして、故障箇所を推定している(ステップS104)。
【0004】
故障シミュレータは、LSI内部に故障を仮定して機能シミュレーション又は論理シミュレーションを行い、その結果と期待値とを照合し、仮定した故障箇所とその故障を検出したテストベクタとを対応付けた故障辞書を作成する。そして、実際にLSIをテストした結果のフェイル情報から前記故障辞書を検索し、仮定した故障箇所を求め、複数のフェイル情報及びパス情報を用いて複数得られる仮定故障の中から優先順位付けを行い、故障箇所の推定を行うものである。
【0005】
また、他の故障箇所推定方法として、前述の手順を階層的に行い、かつ電子ビームテスタでの内部観測を行うものがある。この方法は、上の階層から順に前述の手順にて故障箇所を推定し、その階層の境界で電子ビームテスタを用いて内部を観測し、下の階層へと故障箇所を絞り込んでいくものである。
【0006】
また、更に他の故障箇所推定方法として、特開平8−146093号公報に開示されたものがある。この方法は、ゲートレベルで故障箇所を推定する方法である。故障出力に故障を伝搬する可能性のある組合せ回路をダイナミックに抽出して、組合せ回路毎に論理状態及び故障の伝搬する経路を推定し、入力方向に溯ることにより、故障箇所を推定している。論理状態とは、一つの信号線の論理値だけでなく、回路内部の全ノード、即ち、信号線、ゲート、ゲート端子及び入出力端子が0、1、X(Don’t Care)、Z(ハイインピーダンス)又はU(不定)等の論理値を持っている状態のことである。
【0007】
【発明が解決しようとする課題】
しかしながら、故障シミュレータを使用した故障箇所の推定方法では、故障辞書を予め作成しておく必要があるが、故障辞書の作成には多大な故障シミュレーション時間を要するため、LSIが大規模化すればするほど計算時間が膨大となり、また、故障辞書のファイルも極めて大きくなるという問題点がある。更に、故障シミュレーションで用いる故障モデルは単一縮退故障が一般的であるため、ブリッジ故障等の多重故障では実際と一致しないこともあり、故障シミュレーションモデルを多重故障に拡張すると、故障シミュレーションの処理時間の点で実用的でないという問題点もある。
【0008】
階層的な故障シミュレーションと電子ビームテスタとを併用する方法は、推定箇所を逐次観測しながら絞り込んでいくため有効な方法ではあるが、LSIが大規模化して多層配線となると、下層の電位が観測不可能になるという問題点がある。
【0009】
ゲートレベルでの故障箇所推定方法は、ゲートレベルで故障箇所を推定できるため有効な方法ではあるが、ゲート単位での推定処理のため、大規模LSIに対する精度が十分とはいえず、また、処理時間が長くなるという問題点がある。
【0010】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、大規模化及び多層配線化する論理回路に対して、短時間に、機能レベルでの故障箇所を推定するための、ハードウェア記述言語で記述された論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録した記録媒体を提供することにある。
【0011】
【課題を解決するための手段】
本発明に係る論理回路の決定グラフへの変換装置は、ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換装置において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する状態遷移テーブル作成手段と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した1つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定するノード設定手段と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー/フォルスの2値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクするノードリンク手段と、を有し、前記決定グラフは機能レベルの決定グラフであることを特徴とする。
【0012】
前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語VHDL(VHSIC HDL: very high speed integrated circuit hardware description language)のprocess文又はハードウェア記述言語verilog−HDL(verilog-hardware description language)のalwaysブロックが含まれている場合に、第1及び第2の状態からなる状態遷移テーブルを作成することができ、この場合、前記第1の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第2の状態へ遷移し、前記第2の状態では、前記process文又はalwaysブロック内に記述された処理を割り当て、前記process文又はalwaysブロック内に記述された処理が終了すると前記第1の状態へ遷移することができる。
【0013】
また、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語verilog−HDLのinitialブロックが含まれている場合に、第3及び第4の状態からなる状態遷移テーブルを作成することができ、この場合、前記第3の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第2の状態へ遷移し、前記第4の状態では、前記initialブロック内に記述された処理を割り当て、前記initialブロック内に記述された処理の終了によって全ての処理が終了することができる。
【0014】
更に、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語VHDL又はハードウェア記述言語verilog−HDLのwhile文が含まれている場合に、第5乃至第7の状態からなる状態遷移テーブルを作成することができ、この場合、前記第5の状態では、ループ条件を割り当ててトゥルー/フォルスの2値で評価し、トゥルーであれば前記第6の状態へ遷移し、フォルスであれば前記第7の状態へ遷移し、前記第6の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第6の状態を維持し、フォルスであれば前記第7の状態へ遷移し、前記第7の状態では、前記第5の状態へ遷移することができる。
【0015】
更にまた、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのシーケンシャル信号代入文又はハードウェア記述言語verilog−HDLの手続的ノンブロッキング代入文が含まれている場合に、第8及び第9の状態からなる状態遷移テーブルを作成することができ、この場合、前記第8の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第9の状態へ遷移し、前記第9の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することができる。
【0016】
また、前記状態遷移テーブル作成手段は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのwait for文又はハードウェア記述言語verilog−HDLの#文が含まれている場合に、前記第5乃至第7の状態からなる状態遷移テーブルを作成する前に、前記wait for文又は#文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたwhile文に変換してもよく、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのwait until文又はハードウェア記述言語verilog−HDLのwait文が含まれている場合に、前記第5乃至第7の状態からなる状態遷移テーブルを作成する前に、前記wait until文又はwait文の条件を判定条件としたwhile文に変換してもよい。
【0017】
本発明に係る論理回路の決定グラフへの変換方法は、ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換方法において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する工程と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した1つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定する工程と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー/フォルスの2値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクする工程と、を有し、前記決定グラフは機能レベルの決定グラフであることを特徴とする。
【0018】
前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語VHDLのprocess文又はハードウェア記述言語verilog−HDLのalwaysブロックが含まれている場合に、第1及び第2の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第1の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第2の状態へ遷移し、前記第2の状態では、前記process文又はalwaysブロック内に記述された処理を割り当て、前記process文又はalwaysブロック内に記述された処理が終了すると前記第1の状態へ遷移することができる。
【0019】
また、前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語verilog−HDLのinitialブロックが含まれている場合に、第3及び第4の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第3の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第2の状態へ遷移し、前記第4の状態では、前記initialブロック内に記述された処理を割り当て、前記initialブロック内に記述された処理の終了によって全ての処理が終了することができる。
【0020】
更に、前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語VHDL又はハードウェア記述言語verilog−HDLのwhile文が含まれている場合に、第5乃至第7の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第5の状態では、ループ条件を割り当ててトゥルー/フォルスの2値で評価し、トゥルーであれば前記第6の状態へ遷移し、フォルスであれば前記第7の状態へ遷移し、前記第6の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第6の状態を維持し、フォルスであれば前記第7の状態へ遷移し、前記第7の状態では、前記第5の状態へ遷移することができる。
【0021】
更にまた、前記状態遷移テーブルを作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのシーケンシャル信号代入文又はハードウェア記述言語verilog−HDLの手続的ノンブロッキング代入文が含まれている場合に、第8及び第9の状態からなる状態遷移テーブルを作成する工程を有することができ、前記第8の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第9の状態へ遷移し、前記第9の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することができる。
【0022】
また、前記状態遷移テーブル作成する工程は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのwait for文又はハードウェア記述言語verilog−HDLの#文が含まれている場合に、前記第5乃至第7の状態からなる状態遷移テーブルを作成する工程の前に、前記wait for文又は#文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたwhile文に変換する工程を有することができ、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのwait until文又はハードウェア記述言語verilog−HDLのwait文が含まれている場合に、前記第5乃至第7の状態からなる状態遷移テーブルを作成する工程の前に、前記wait until文又はwait文の条件を判定条件としたwhile文に変換する工程を有することができる。
【0023】
本発明に係る論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体は、ハードウェア記述言語で記述された論理回路を決定グラフに変換する論理回路の決定グラフへの変換プログラムを記録したコンピュータ読み取り可能な記録媒体において、ループ処理又はタイミング制御に関して状態数及び各状態における処理を割り当て、前記論理回路の処理順序に従って状態番号、判定条件、次の状態番号及び動作の内容を含む状態遷移テーブルを作成する手順と、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定し、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定し、前記ハードウェア記述言語内で使用されている演算子を操作ノードとして設定し、与えられた組の中からトゥルー状態に対応した1つの値を選択しこの選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定することにより、決定グラフのノードを設定する手順と、前記状態遷移テーブルに基づいて、前記読み出しノードと前記操作ノードとをデータフローとしてリンクすることにより、出力値とこの出力値に対応するトゥルー/フォルスの2値で与えられる状態結果とを計算し、前記出力値と前記状態結果との組を割当て決定ノードにリンクし、前記割当て決定ノードを書き込みノードにリンクすることにより、各ノード間をリンクする手順と、を有する処理をコンピュータに実行させ、前記決定グラフは機能レベルの決定グラフであることを特徴とする。
【0024】
前記状態遷移テーブルを作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語VHDLのprocess文又はハードウェア記述言語verilog−HDLのalwaysブロックが含まれている場合に、第1及び第2の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第1の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第2の状態へ遷移し、前記第2の状態では、前記process文又はalwaysブロック内に記述された処理を割り当て、前記process文又はalwaysブロック内に記述された処理が終了すると前記第1の状態へ遷移することができる。
【0025】
また、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路にハードウェア記述言語verilog−HDLのinitialブロックが含まれている場合に、第3及び第4の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第3の状態では、イベント発生の判断処理を割り当て、前記イベントが発生すると前記第2の状態へ遷移し、前記第4の状態では、前記initialブロック内に記述された処理を割り当て、前記initialブロック内に記述された処理の終了によって全ての処理が終了することができる。
【0026】
更に、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記ループ処理としてハードウェア記述言語VHDL又はハードウェア記述言語verilog−HDLのwhile文が含まれている場合に、第5乃至第7の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第5の状態では、ループ条件を割り当ててトゥルー/フォルスの2値で評価し、トゥルーであれば前記第6の状態へ遷移し、フォルスであれば前記第7の状態へ遷移し、前記第6の状態では、ループ条件がトゥルーの場合の処理及びループ条件を割り当て、トゥルーの場合の処理の後にループ条件がトゥルーであれば前記第6の状態を維持し、フォルスであれば前記第7の状態へ遷移し、前記第7の状態では、前記第5の状態へ遷移することができる。
【0027】
更にまた、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのシーケンシャル信号代入文又はハードウェア記述言語verilog−HDLの手続的ノンブロッキング代入文が含まれている場合に、第8及び第9の状態からなる状態遷移テーブルを作成する手順を有することができ、前記第8の状態では、シーケンシャル信号代入式又は手続的ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入した上で前記第9の状態へ遷移し、前記第9の状態では、前記一時的なレジスタの値をシーケンシャル信号代入式又は手続的ノンブロッキング代入式の左辺の信号へ代入することができる。
【0028】
また、前記状態遷移テーブル作成する手順は、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのwait for文又はハードウェア記述言語verilog−HDLの#文が含まれている場合に、前記第5乃至第7の状態からなる状態遷移テーブルを作成する手順の前に、前記wait for文又は#文で示された待機時間をクロックサイクル数に換算して前記クロックサイクル数を判断条件としたwhile文に変換する手順を有することができ、前記ハードウェア記述言語で記述された論理回路に前記タイミング制御としてハードウェア記述言語VHDLのwait until文又はハードウェア記述言語verilog−HDLのwait文が含まれている場合に、前記第5乃至第7の状態からなる状態遷移テーブルを作成する手順の前に、前記wait until文又はwait文の条件を判定条件としたwhile文に変換する手順を有することができる。
【0029】
論理回路の入出力ポート及びラッチにおいて、本発明で作成した決定グラフに基づいて推定した状態推定値と、テスタでのテスト結果と機能シミュレーションにより得られる期待値とを比較し、フェイル伝搬経路を推定して故障の推定を行うことができる。また、ゲートレベルでの故障推定と比較すると、基本要素が少なくなるため、推定の処理数が減少し、推定処理の時間が短縮される。
【0030】
【発明の実施の形態】
以下、本発明の実施例に係る論理回路の決定グラフへの変換装置、変換方法及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体について、添付の図面を参照して具体的に説明する。図1は本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の構成を示すブロック図である。
【0031】
本実施例には、キーボード等の入力装置1、ハードウェア記述言語で記述された論理回路を決定グラフに変換するデータ処理装置2、ハードディスク又はメモリ等からなり情報を記憶する記憶装置3、及び表示装置又は印刷装置等の出力装置4が設けられている。
【0032】
データ処理装置2には、ループ処理又はタイミング制御に関して、状態数及び各状態における処理を割り当てる前処理手段が設けられている。また、データ処理装置2には、論理回路の処理順序に従って、状態番号、判定条件、次の状態番号及び動作内容から構成される状態遷移テーブルを作成する後処理手段が設けられている。前処理手段及び後処理手段から状態遷移テーブル作成手段11が構成されている。更に、データ処理装置2には、決定グラフのノードを設定するノード設定手段12及び各ノード間をリンクするノードリンク手段13が設けられている。
【0033】
ノード設定手段12は、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定する。また、ノード設定手段12は、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定する。更に、ノード設定手段12は、ハードウェア記述言語内で使用されている演算子を操作ノードとして設定すると共に、与えられた組の中からtrue(トゥルー)状態に対応した1つの値を選択し、選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定する。
【0034】
ノードリンク手段13は、状態遷移テーブル作成手段1により作成された状態遷移テーブルに基づいて、読み出しノードと操作ノードとをデータフローとしてリンクすることにより、出力値及び出力値に対応するtrue/false(フォルス)の2値で与えられる状態結果を計算し、出力値と状態結果との組を割当て決定ノードにリンクし、割当て決定ノードを書き込みノードにリンクする。
【0035】
記憶装置3には、論理回路の決定グラフ及びその構成を記憶する回路構成記憶部(図示せず)が備えられている。
【0036】
次に、上述のように構成された本実施例の変換装置の動作、即ち論理回路の故障箇所の推定における決定グラフへの変換方法について説明する。図2は本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の動作を示すフローチャートである。
【0037】
先ず、状態遷移テーブル作成手段11が、前工程として、ループ処理又はタイミング制御に関して、状態数及び各状態における処理を割り当てる。その後、状態遷移テーブル作成手段11が、後工程として、論理回路の処理順序に従って、状態番号、判定条件、次の状態番号及び動作の内容から構成される状態遷移テーブルを作成する(ステップS11)。
【0038】
次に、ノード設定手段12が決定グラフのノードを設定する(ステップS12)。具体的には、ノード設定手段12は、入力ポート、状態変数、状態番号、条件式における変数及び定数、並びに代入式の右辺において式の評価で使用されている変数及び定数を読み出しノードとして設定する。ノード設定手段12は、また、出力ポート、状態変数、及び代入式の左辺において代入される変数を書き込みノードとして設定する。ノード設定手段12は、更に、ハードウェア記述言語内で使用されている演算子を操作ノードとして設定すると共に、与えられた組の中からtrue状態に対応した1つの値を選択し、選択した値を書き込みノードに割り当てるための各書き込みノードに対応した割当て決定ノードを設定する。
【0039】
次いで、ノードリンク手段13が各ノード間をリンクする(ステップS13)。具体的には、ノードリンク手段13は、状態遷移テーブル作成手段11により作成された状態遷移テーブルに基づいて、読み出しノードと操作ノードとをデータフローとしてリンクすることにより、出力値及び出力値に対応するtrue/falseの2値で与えられる状態結果を計算する。ノードリンク手段13は、また、出力値と状態結果との組を割当て決定ノードにリンクし、割当て決定ノードを書き込みノードにリンクする。
【0040】
次に、具体的にハードウェア記述言語verilog−HDLで表現されたカウンタ回路の故障箇所推定における決定グラフへの変換方法について説明する。このカウンタ回路はクロック信号clkが「1」になったときにカウントアップし、信号outにカウントを出力する回路であるとする。図3はカウンタ回路をハードウェア記述言語verilog−HDLで表現したものを示す図であり、図4はこのカウンタ回路の状態遷移テーブルであり、図5はこのカウンタ回路の決定グラフである。
【0041】
先ず、状態遷移テーブル作成手段11の動作について説明する。
【0042】
本実施例では、図3に示すように、alwaysブロック及びノンブロッキング代入文が記述されている。このため、状態遷移テーブル作成手段11は、図4に示すように、alwaysブロックのイベント発生の判断処理が割り当てたられた状態ST0、alwaysブロック内に記述された処理が割り当てられ、ノンブロッキング代入式における右辺の式の評価を一時的なレジスタに代入する処理が割り当てられた状態ST1、及び状態ST1で一時的なレジスタに保持した値をノンブロッキング代入式の左辺の信号へ代入する処理を割り当てた状態ST2の3つの状態を示す状態遷移テーブルを作成する。
【0043】
状態ST0における処理が終了すると、次の状態として状態ST1へ遷移し、状態ST1における処理が終了すると、次の状態として状態ST2へ遷移し、状態ST2における処理が終了すると、次の状態として状態ST0へ遷移する。
【0044】
次に、ノード設定手段12の動作について説明する。
【0045】
ノード設定手段12は、入力ポートであるclk及びciを読み出しノードとして設定する。また、状態変数STATE、状態番号ST0、ST1及びST2も読み出しノードとして設定する。更に、条件式における変数及び定数であるckl、「1」、out及び「1111」も読み出しノードとして設定する。更にまた、代入式の右辺において式の評価で使用されている変数及び定数である「0000」、out、ci及びregも読み出しノードとして設定する。
【0046】
また、ノード設定手段12は、出力ポートであるoutを書き込みノードとして設定する。また、状態変数STATEも書き込みノードとして設定し、代入式の左辺において代入される変数であるreg及びoutも書き込みノードとして設定する。
【0047】
更に、ノード設定手段12は、状態遷移テーブル内で使用されている演算子として等号「=」、加算「+」、否定「!」及び論理演算子and「∩」を操作ノードとして設定する。
【0048】
更にまた、ノード設定手段12は、書き込みノードout、STATE及びregの夫々に対応したSTATE_a、reg_a及びout_aを割当て決定ノードとして設定する。
【0049】
次に、ノードリンク手段13の動作について、状態番号ST2に対応する動作を例にして説明する。
【0050】
ノードリンク手段13は、状態変数である読み出しノードSTATEと状態番号である読み出しノードST2とを操作ノードである等号「=」でリンクする。また、ノードリンク手段13は、読み出しノードregと出力値として割当て決定ノードreg_aとをリンクすると共に、割当て決定ノードreg_aと出力先としての書き込みノードregとをリンクする。ここで、出力値であるregに対応した状態結果として、読み出しノードST2とリンクした等号「=」が割当て決定ノードreg_aとがリンクされる。
【0051】
また、ノードリンク手段13は、書き込みノードSTATEと出力先としての割当て決定ノードSTATE_aとをリンクする。ノードリンク手段13は、割当て決定ノードSTATE_aと出力値としての状態番号である読み出しノードST0、ST1及びST2とをリンクする。ここで、状態ST2の次状態は状態ST0であるため、割当て決定ノードSTATE_aの出力値ST0に対応した状態結果として、読み出しノードST2とリンクした等号「=」が割当て決定ノードSTATE_aとリンクされる。
【0052】
状態遷移テーブルの状態ST0及び状態1における各ノードを同様にしてリンクすることにより、図5に示す決定グラフが作成される。
【0053】
次に、ループ処理として、ハードウェア記述言語verilog−HDLのデータにalwaysブロックが含まれているか、又はハードウェア記述言語VHDLのデータにprocess文が含まれている場合の状態遷移テーブル作成手段11の動作例について、図6及び図7を参照して説明する。図6はverilog−HDLのalwaysブロック及びVHDLのprocess文の例を示す図であり、図7は状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【0054】
図6に示すようなalwaysブロック又はprocess文が含まれている場合、信号clockに変化があったときに信号yの値が信号xに代入される。
【0055】
verilog−HDLのalwaysブロック及びVHDLのprocess文では、状態遷移テーブルは2状態からなる。状態ST0では、イベント発生の判断処理として、「信号clockの変化」が割り当てられ、信号clockが変化すると次の状態として状態ST1へ遷移するとする。状態ST1では、alwaysブロック又はprocess文内に記述された処理として、代入式x=yが割り当てられ、処理が終了すると、状態ST0へ遷移するとする。
【0056】
次に、ハードウェア記述言語verilog−HDLのデータにinitialブロックが含まれている場合の状態遷移テーブル作成手段11の動作例について、図8及び図9を参照して説明する。図8はverilog−HDLのinitialブロックの例を示す図であり、図9は状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【0057】
図8に示すようなinitialブロックが含まれている場合、reset信号が1に変化した場合に信号aの値に0が代入される。
【0058】
verilog−HDLのinitilaブロック文では、状態遷移テーブルは2状態からなる。状態ST0では、イベント発生の判断処理として、「信号resetの1への変化」が割り当てられ、信号resetが1に変化すると次の状態として状態ST1へ遷移するとする。状態ST1では、initialブロック内に記述された処理として、代入式a=0が割り当てられ、状態ST1の処理の終了によって全ての処理を終了とする。
【0059】
次に、ハードウェア記述言語verilog−HDLのデータ又はハードウェア記述言語VHDLのデータにwhile文が含まれている場合の変換装置による決定グラフへの変換について、図10、図11及び図12を参照して説明する。図10はverilog−HDL及びVHDLのwhile文の例を示す図であり、図11は状態遷移テーブル作成手段11により作成される状態遷移テーブルであり、図12は最終的に作成される決定グラフである。
【0060】
図10に示すようなwhile文が含まれている場合、信号a及び信号bに対して、「a<b」が成立する間、「b−a」の値が信号bに代入される。
【0061】
状態遷移テーブル作成手段11が作成する状態遷移テーブルは3つの状態から構成される。状態0STでは、ループ条件である「a<b」が割り当てられ、「a<b」がtrueであれば、次の状態として状態ST1へと遷移する。一方、falseであれば次の状態として状態ST2へと遷移する。状態ST1では、ループ条件がtrueの場合の処理として、「b=b−a」の処理が行われる。次に、ループ条件「a<b」の判定処理が行われ、次の状態として、trueであれば、状態ST1を維持し、falseであれば、状態ST2へと遷移する。状態ST2では,次の状態として状態ST0へ遷移するとする。
【0062】
ノード設定手段12は、状態変数、状態番号、条件式における変数、並びに代入式の右辺において式の評価で使用されている変数であるSTATE、ST0、ST1、ST2、a及びbを読み出しノードとして設定する。また、状態変数、並びに代入式の左辺において代入される変数であるSTATE及びbを書き込みノードとして設定する。更に、状態遷移テーブル内で使用されている演算子として、等号「=」、否定「!」、減算「−」、不等号「<」並びに論理演算子and「∩」及びor「∪」を操作ノードとして設定する。更にまた、書き込みノードSTATE及びbの夫々に対応したSTATE_a及びb_aを割当て決定ノードとして設定する。
【0063】
ノードリンク手段13は、状態遷移テーブルの状態ST1に対応した箇所では、状態変数である読み出しノードSTATEと状態番号である読み出しノードST1とを操作ノードである等号「=」でリンクする。割当て決定ノードb_aは出力先として、書き込みノードbとリンクする。「b−a」の計算値が割当て決定ノードb_aの出力値であるため、読み出しノードa及びbを操作ノードである減算「−」とリンクする。操作ノードである減算「−」は、割当て決定ノードb_aへの出力値としてリンクする。ここで、出力値である「b−a」の計算値に対応した状態結果として、読み出しノードST1とリンクした等号「=」が割当て決定ノードb_aとリンクされる。
【0064】
また、ノードリンク手段13は、書き込みノードSTATEを割当て決定ノードSTATE_aの出力先としてリンクする。割当て決定ノードSTATE_aは、出力値として状態番号である読み出しノードST0、ST1及びST2とリンクする。ここで、状態ST0又は状態ST1において、ループ条件「a<b」がtrueの場合,次状態は状態1である。割当て決定ノードSTATE_aの出力値ST1に対応した状態結果として,「a<b」かつ「STATE=ST0」、又は「a<b」かつ「STATE=ST1」をデータフローで接続し、割当て決定ノードSTATE_aとリンクされる。
【0065】
状態ST0及び状態ST2についても、同様にして、各ノードをリンクすることにより、図12に示す決定グラフが作成される。ここで、図中の「∪」は、論理演算子orを意味する。
【0066】
次に、タイミング制御として、ハードウェア記述言語verilog−HDLのデータに手続的ノンブロッキング代入文が含まれているか、又はハードウェア記述言語VHDLのデータにシーケンシャル信号代入文が含まれている場合の状態遷移テーブル作成手段11の動作例について、図13及び図14を参照して説明する。図13はverilog−HDLの手続的ノンブロッキング代入文及びVHDLのシーケンシャル信号代入文の例を示す図であり、図14は状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【0067】
図13に示すような手続的ノンブロッキング文又はシーケンシャル信号代入文が含まれている場合、信号ctの値を一時的なレジスタに保持しておき、次に、ctが「1111」と等しいか否かによって、「0000」又は「ct+1」がctに代入される。そして、一時的にレジスタに保持していたctの値が信号countに代入される。
【0068】
verilog−HDLの手続的ノンブロッキング代入文及びVHDLのシーケンシャル信号代入文では、状態遷移テーブルは2状態からなる。状態ST0では、verilog−HDLの手続的ノンブロッキング代入文及びVHDLのシーケンシャル信号代入文における右辺の式の評価ctを一時的なレジスタregに代入する。次に、ctが「1111」と等しいか否かによって、「0000」又は「ct+1」の値をctに代入する。そして、次の状態として状態ST1へ遷移する。状態ST1では、状態ST0で一時的なレジスタregの値をcountへ代入する。
【0069】
次に、タイミング制御として、ハードウェア記述言語verilog−HDLのデータに#文が含まれているか、又はハードウェア記述言語VHDLのデータにwait for文が含まれている場合に、状態遷移テーブル作成手段11がこれらの文をwhile文へ変換する動作について、図15及び図16を参照して説明する。
【0070】
図15に示す#文及び図16に示すwait for文は、100n秒の時間だけプロセスの実行をストップする動作を記述したものである。また、図15及び図16に示すwhile文は、いずれもクロックの間隔が10n秒であった場合のwhile文への変換結果を示している。10クロックサイクル数分だけwhileループを処理することとすれば、時間にして100n秒だけプロセスの実行がストップし、#文又はwait for文と等価な動作が得られる。
【0071】
このようにして#文又はwait for文をwhile文へ変換した後、状態遷移テーブル作成手段11、ノード設定手段12及びノードリンク手段13による処理を実施することにより、while文を決定グラフへ変換することができる。
【0072】
次に、タイミング制御として、ハードウェア記述言語verilog−HDLのデータにwait文が含まれているか、又はハードウェア記述言語VHDLのデータにwait until文が含まれている場合に、状態遷移テーブル作成手段11がこれらの文をwhile文へ変換する動作について、図17及び図18を参照して説明する。
【0073】
図17に示すwait文及び図18に示すwait until文は、信号cの値が「1」と等しくなるまでプロセスの実行をストップする動作を記述したものである。また、図17及び図18に示すwhile文は、いずれもwhile文への変換結果を示している。信号cの値が「1」と等しくなるまでの期間、whileループを処理することとすれば、信号cの値が「1」と等しくなるまでプロセスの実行がストップされ、wait文又はwait until文と等価な動作が得られる。
【0074】
このようにしてwait文又はwait until文をwhile文へ変換した後、状態遷移テーブル作成手段11、ノード設定手段12及びノードリンク手段13による処理を実施することにより、while文を決定グラフへ変換することができる。
【0075】
そして、これらの実施例により作成された決定グラフを用いて論理回路の入出力ポート及びラッチの状態を推定して得られる状態推定値と、テスタでのテスト結果及び機能シミュレーションにより得られる期待値とを比較し、フェイル伝搬経路を推定することにより、機能レベルでの故障箇所を推定することができる。
【0076】
なお、状態遷移テーブル作成手段11、ノード設定手段12及びノードリンク手段13による各処理は、例えばハードウェア記述言語で記述された論理回路を決定グラフに変換する装置を構成するコンピュータでプログラムを実行することで実現することができる。このプログラムを記録したコンピュータで読み取り可能な記録媒体、例えば磁気ディスク、光ディスク及び半導体メモリからそのプログラムをハードウェア記述言語で記述された論理回路を決定グラフに変換する装置のコンピュータに読み取り、主記憶部にロードして実行することにより、本発明を実施することができる。また、プログラムを記録した記録媒体を備えたサーバ等から通信回線を介してプログラムをハードウェア記述言語で記述された論理回路を決定グラフに変換する装置のコンピュータにダウンロードするようにしてもよい。このように記録媒体を用いることにより、プログラムの管理が容易となる。
【0077】
【発明の効果】
以上詳述したように、本発明によれば、論理回路を適切に決定グラフに変換できる。そして、論理回路の入出力ポート及びラッチにおいて、本発明で作成した決定グラフに基づいて推定した状態推定値と、機能シミュレーションにより得られる期待値とを比較し、フェイル伝搬経路を推定して故障の推定を行うことができる。つまり、機能レベルで故障が発生する箇所を推定することができる。従って、故障シミュレーションによる故障辞書を作成する必要がなく、短時間で故障箇所を推定することができる。また、ゲートレベルでの故障推定と比較しても、基本要素が少なくなるため、推定の処理数が減少し、推定処理の時間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の構成を示すブロック図である。
【図2】本発明の実施例に係る論理回路の故障箇所の推定における決定グラフへの変換装置の動作を示すフローチャートである。
【図3】カウンタ回路をハードウェア記述言語verilog−HDLで表現したものを示す図である。
【図4】図3に示すカウンタ回路の状態遷移テーブルである。
【図5】図3に示すこのカウンタ回路の決定グラフである。
【図6】verilog−HDLのalwaysブロック及びVHDLのprocess文の例を示す図である。
【図7】状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【図8】verilog−HDLのinitialブロックの例を示す図である。
【図9】状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【図10】verilog−HDL及びVHDLのwhile文の例を示す図である。
【図11】状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【図12】最終的に作成される決定グラフである。
【図13】verilog−HDLの手続的ノンブロッキング代入文及びVHDLのシーケンシャル信号代入文の例を示す図である。
【図14】状態遷移テーブル作成手段11により作成される状態遷移テーブルである。
【図15】#文とwhile文との関係を示す図である。
【図16】wait for文とwhile文との関係を示す図である。
【図17】wait文とwhile文との関係を示す図である。
【図18】wait until文とwhile文との関係を示す図である。
【図19】従来の故障箇所推定における決定グラフへ変換する方法を示すフローチャートである。
【符号の説明】
1;入力装置
2;データ処理装置
3;記憶装置
4;出力装置
11;状態遷移テーブル作成手段
12;ノード設定手段
13;ノードリンク手段[0001]
BACKGROUND OF THE INVENTION
The present invention records a conversion device, a conversion method, and a conversion program for a logic circuit decision graph suitable for conversion to a logic circuit decision graph described in a hardware description language when estimating a failure location at a function level. In particular, an apparatus, a conversion method, and a conversion method for converting a logic circuit into a decision graph that can be converted into a decision graph in a short time for a logic circuit having a large scale and multilayer wiring The present invention relates to a computer-readable recording medium on which a program is recorded.
[0002]
[Prior art]
The method of converting to a decision graph in failure location estimation is a method of converting a logic circuit described in a hardware description language into a decision graph in a system that estimates a failure location of a logic circuit at a functional level.
[0003]
In the conventional failure location estimation method, as shown in FIG. 19, a failure dictionary is created in advance using a failure simulator (step S101), the LSI is actually tested to obtain fail information (step S102), and the test result The failure dictionary is searched from the failure information (step S103), and the failure location is estimated (step S104).
[0004]
The fault simulator performs functional simulation or logic simulation assuming a fault in the LSI, collates the result with an expected value, and creates a fault dictionary that associates the assumed fault location with the test vector that detected the fault. create. Then, the failure dictionary is searched from the fail information obtained as a result of actually testing the LSI, the assumed failure location is obtained, and prioritization is performed from a plurality of assumed failures obtained using a plurality of fail information and path information. The failure location is estimated.
[0005]
As another failure location estimation method, there is a method in which the above-described procedure is performed hierarchically and internal observation is performed with an electron beam tester. In this method, the failure location is estimated in the order described above from the upper level, the inside is observed using an electron beam tester at the boundary of the level, and the failure location is narrowed down to the lower level. .
[0006]
Still another failure location estimation method is disclosed in JP-A-8-146093. This method is a method of estimating a failure location at the gate level. A combinational circuit that may propagate a fault to a fault output is dynamically extracted, and a logic state and a path through which the fault propagates are estimated for each combinational circuit. . The logic state is not only the logical value of one signal line, but all nodes in the circuit, that is, signal lines, gates, gate terminals and input / output terminals are 0, 1, X (Don't Care), Z ( It is a state having a logical value such as high impedance) or U (undefined).
[0007]
[Problems to be solved by the invention]
However, in the fault location estimation method using the fault simulator, it is necessary to create a fault dictionary in advance. However, since the creation of the fault dictionary requires a lot of fault simulation time, it is necessary to increase the scale of the LSI. There is a problem that the calculation time becomes enormous and the failure dictionary file becomes very large. In addition, failure models used in failure simulation are generally single stuck-at faults, so multiple failures such as bridge failures may not match the actual ones. If the failure simulation model is expanded to multiple failures, the processing time of failure simulation There is also a problem that this is not practical.
[0008]
The combined use of hierarchical failure simulation and an electron beam tester is effective because it narrows down the estimated locations while observing them sequentially. However, when the LSI becomes large-scale and becomes multi-layer wiring, the lower layer potential is observed. There is a problem that it becomes impossible.
[0009]
Although the failure location estimation method at the gate level is an effective method because the failure location can be estimated at the gate level, it cannot be said that the accuracy for a large-scale LSI is sufficient because of the estimation processing in units of gates. There is a problem that the time becomes longer.
[0010]
The present invention has been made in view of the above-mentioned problems, and its main purpose is to estimate a failure point at a functional level in a short time for a logic circuit that is increased in scale and multilayer wiring. An object of the present invention is to provide a device for converting a logic circuit described in a hardware description language into a decision graph, a conversion method, and a recording medium on which a conversion program is recorded.
[0011]
[Means for Solving the Problems]
According to the present invention, there is provided an apparatus for converting a logic circuit into a decision graph, wherein the logic circuit described in a hardware description language is converted into a decision graph. And a state transition table creating means for creating a state transition table including a state number, a determination condition, a next state number, and an operation content according to the processing order of the logic circuit, an input port, a state variable, The state number, variables and constants in the conditional expression, and variables and constants used in the evaluation of the expression on the right side of the assignment expression are set as read nodes, and assigned to the output port, state variable, and left side of the assignment expression Is set as a write node, and the operator used in the hardware description language is an operation node. Set by selecting one value corresponding to the true state from the given set and setting an allocation decision node corresponding to each write node for assigning the selected value to the write node. By linking the read node and the operation node as a data flow on the basis of the state transition table and the node setting means for setting the nodes of the graph, the output value and 2 of true / false corresponding to the output value are obtained. A node link that links each node by calculating a state result given by a value, linking the set of the output value and the state result to an assignment decision node, and linking the assignment decision node to a write node Means And the decision graph is a function level decision graph. It is characterized by that.
[0012]
The state transition table creating means includes a process statement of a hardware description language VHDL (VHSIC HDL: very high speed integrated circuit hardware description language) or a hardware description language as the loop process in the logic circuit described in the hardware description language. When a always-block of verilog-HDL (verilog-hardware description language) is included, a state transition table composed of the first and second states can be created. In this case, in the first state, An event generation determination process is assigned, and when the event occurs, a transition is made to the second state. In the second state, a process described in the process statement or always block is assigned, and the process statement or always block is assigned. When the processing described in It is possible to transition to the 1 state.
[0013]
In addition, the state transition table creation unit is configured to include a state including the third state and the fourth state when an initial block of the hardware description language verilog-HDL is included in the logic circuit described in the hardware description language. A transition table can be created. In this case, in the third state, an event occurrence determination process is assigned, and when the event occurs, the state transitions to the second state, and in the fourth state, the initial state. All processes can be completed by allocating the process described in the block and ending the process described in the initial block.
[0014]
Further, the state transition table creating means includes a logic statement described in the hardware description language including a while statement of a hardware description language VHDL or a hardware description language verilog-HDL as the loop processing. A state transition table composed of the fifth to seventh states can be created. In this case, in the fifth state, a loop condition is assigned and evaluation is performed with a binary value of true / false. If it is false, the process transitions to the seventh state. In the sixth state, the loop condition is assigned a process when the loop condition is true and the loop condition is assigned. If true is true, the sixth state is maintained. If false, the state transitions to the seventh state. In the seventh state, the sixth state is maintained. It can transition to state.
[0015]
Still further, the state transition table creating means includes a sequential signal assignment statement of the hardware description language VHDL or a procedural nonblocking assignment of the hardware description language verilog-HDL as the timing control in the logic circuit described in the hardware description language. When a sentence is included, a state transition table composed of the eighth and ninth states can be created. In this case, in the eighth state, the right side of the sequential signal assignment expression or the procedural nonblocking assignment expression After the evaluation of the expression is substituted into a temporary register, the state transits to the ninth state. In the ninth state, the value of the temporary register is changed to the left side of the sequential signal assignment expression or the procedural nonblocking assignment expression. Can be substituted into the signal.
[0016]
The state transition table creating means includes a logic circuit described in the hardware description language including a wait for statement in the hardware description language VHDL or a # statement in the hardware description language verilog-HDL as the timing control. If the waiting time indicated by the wait for statement or # statement is converted into the number of clock cycles before the state transition table including the fifth to seventh states is created, the number of clock cycles is determined. It may be converted into a conditional while statement, and the logic circuit described in the hardware description language includes a wait description statement in the hardware description language VHDL or a wait statement in the hardware description language verilog-HDL as the timing control. The fifth to seventh states. Before creating the state transition table may be converted into a while statement that the determination condition conditions the wait the until statement or wait statement.
[0017]
A method for converting a logic circuit into a decision graph according to the present invention is a method for converting a logic circuit described in a hardware description language into a decision graph. And a process of creating a state transition table including a state number, a determination condition, a next state number, and an operation content according to the processing order of the logic circuit, and an input port, a state variable, a state number, and a condition. Variables and constants in expressions, and variables and constants used in expression evaluation on the right side of assignment expressions are set as read nodes, and output ports, state variables, and variables assigned on the left side of assignment expressions are set as write nodes. And set the operator used in the hardware description language as the operation node. Setting a decision graph node by selecting one value corresponding to the true state from the set and setting an assignment decision node corresponding to each write node to assign the selected value to the write node And, based on the state transition table, link the read node and the operation node as a data flow to calculate an output value and a state result given as a true / false binary value corresponding to the output value. Linking the set of the output value and the state result to an allocation decision node, and linking the allocation decision node to a write node, thereby linking the nodes. And the decision graph is a function level decision graph. It is characterized by that.
[0018]
The step of creating the state transition table includes a process statement of the hardware description language VHDL or an always block of the hardware description language verilog-HDL as the loop processing in the logic circuit described in the hardware description language. In some cases, the method may include a step of creating a state transition table including a first state and a second state. In the first state, an event occurrence determination process is assigned, and when the event occurs, the second state is assigned. In the second state, the process described in the process statement or always block is assigned, and when the process described in the process statement or always block ends, the process transits to the first state. Can do.
[0019]
The state transition table is generated from the third and fourth states when the logic circuit described in the hardware description language includes an initial block of the hardware description language verilog-HDL. A state transition table can be created, and in the third state, an event occurrence determination process is assigned, and when the event occurs, the state transitions to the second state, and in the fourth state, All processes can be completed by assigning the process described in the initial block and ending the process described in the initial block.
[0020]
Further, in the step of creating the state transition table, when the logic circuit described in the hardware description language includes a while statement of the hardware description language VHDL or the hardware description language verilog-HDL as the loop processing In the fifth state, a loop condition is assigned and evaluated with a binary value of true / false, and if it is true, the state transition table comprising the fifth to seventh states can be created. Transition to the sixth state. If false, transition to the seventh state. In the sixth state, a process when the loop condition is true and a loop condition are assigned. If the loop condition is true, the sixth state is maintained. If the loop condition is false, the state transitions to the seventh state. In the seventh state, It can transition to the fifth state.
[0021]
Furthermore, the step of creating the state transition table includes a sequential signal assignment statement of the hardware description language VHDL or a procedural procedure of the hardware description language verilog-HDL as the timing control in the logic circuit described in the hardware description language. When a non-blocking assignment statement is included, the method may include a step of creating a state transition table including the eighth and ninth states. In the eighth state, a sequential signal assignment expression or a procedural non-blocking assignment expression After the evaluation of the expression on the right side in FIG. 9 is assigned to a temporary register, the state is shifted to the ninth state. In the ninth state, the value of the temporary register is changed to a sequential signal assignment expression or a procedural non-blocking assignment expression. Can be substituted into the signal on the left side of.
[0022]
The step of creating the state transition table includes a wait for statement in the hardware description language VHDL or a # statement in the hardware description language verilog-HDL as the timing control in the logic circuit described in the hardware description language. The waiting time indicated by the wait for statement or # statement is converted into the number of clock cycles before the step of creating the state transition table consisting of the fifth to seventh states. The logic circuit described in the hardware description language can be converted into a while statement using the number as a determination condition, and the wait description statement of the hardware description language VHDL or the hardware description language verilog- If an HDL wait statement is included, Before 5 to the step of creating a state transition table of the seventh state, may have a step of converting the while statement that the determination condition conditions the wait the until statement or wait statement.
[0023]
A computer-readable recording medium on which a conversion program for converting a logic circuit into a decision graph according to the present invention is recorded is a program for converting a logic circuit described in a hardware description language into a decision graph. In a recorded computer-readable recording medium, a state number and a process in each state are assigned for loop processing or timing control, and the state number, determination condition, next state number, and operation contents are included according to the processing order of the logic circuit The procedure for creating the transition table, input port, state variable, state number, variable and constant in the conditional expression, and the variable and constant used in the expression evaluation on the right side of the assignment expression are set as the read node, and the output port , State variables, and variables assigned on the left side of an assignment expression Set as the operation node, set the operator used in the hardware description language as the operation node, select one value corresponding to the true state from the given set, and write this selected value By setting an assignment decision node corresponding to each writing node to be assigned to the node, a procedure for setting a node of the decision graph, and based on the state transition table, the read node and the operation node are used as a data flow. By linking, the output value and the state result given by the true / false binary value corresponding to the output value are calculated, the set of the output value and the state result is linked to the assignment decision node, and the assignment is performed. Linking a decision node to a writing node to link each node together. It is executed by the data The decision graph is a decision graph of function level It is characterized by that.
[0024]
The procedure for creating the state transition table includes a process statement in the hardware description language VHDL or an always block in the hardware description language verilog-HDL as the loop processing in the logic circuit described in the hardware description language. In this case, a procedure for creating a state transition table composed of a first state and a second state may be included. In the first state, an event occurrence determination process is assigned, and when the event occurs, the second state is assigned. In the second state, the process described in the process statement or always block is assigned, and when the process described in the process statement or always block ends, the process transits to the first state. Can do.
[0025]
Further, the procedure for creating the state transition table includes the third and fourth states when the initial circuit of the hardware description language verilog-HDL is included in the logic circuit described in the hardware description language. A procedure for creating a state transition table can be included. In the third state, an event occurrence determination process is assigned, and when the event occurs, the state transitions to the second state. In the fourth state, All processes can be completed by assigning a process described in the initial block and ending the process described in the initial block.
[0026]
Further, the procedure for creating the state transition table is performed when the logic circuit described in the hardware description language includes a while statement of the hardware description language VHDL or hardware description language verilog-HDL as the loop processing. , And a procedure for creating a state transition table composed of fifth to seventh states. In the fifth state, a loop condition is assigned and evaluated with a binary value of true / false. Transition to the sixth state, and if false, transition to the seventh state. In the sixth state, a process and a loop condition are assigned when the loop condition is true, and the loop is executed after the process is true. If the condition is true, the sixth state is maintained. If the condition is false, the state transitions to the seventh state. In the seventh state, It can transition serial to the fifth state.
[0027]
Furthermore, the procedure for creating the state transition table includes a sequential signal assignment statement of the hardware description language VHDL or a procedural non-blocking of the hardware description language verilog-HDL as the timing control in the logic circuit described in the hardware description language. In the case where an assignment statement is included, a procedure for creating a state transition table composed of the eighth and ninth states can be included. In the eighth state, in the sequential signal assignment expression or the procedural non-blocking assignment expression After the evaluation of the expression on the right side is assigned to a temporary register, the state transitions to the ninth state. In the ninth state, the value of the temporary register is changed to a sequential signal assignment expression or a procedural non-blocking assignment expression. It can be assigned to the signal on the left side.
[0028]
The procedure for creating the state transition table includes a wait description statement in the hardware description language VHDL or a # statement in the hardware description language verilog-HDL as the timing control in the logic circuit described in the hardware description language. The waiting time indicated by the wait for statement or the # statement is converted into the number of clock cycles before the procedure for creating the state transition table comprising the fifth to seventh states. The logic circuit described in the hardware description language can have a procedure for converting into a while statement using the number as a determination condition, and the wait description statement of the hardware description language VHDL or the hardware description language verilog- If an HDL wait statement is included, Before 5 to steps to create a state transition table of the seventh state, it is possible to have a procedure for converting the while statement that the determination condition conditions the wait the until statement or wait statement.
[0029]
At the input / output ports and latches of the logic circuit, compare the estimated state value estimated based on the decision graph created in the present invention with the test result in the tester and the expected value obtained from the function simulation to estimate the fail propagation path Thus, the failure can be estimated. Also, compared with failure estimation at the gate level, the number of basic elements is reduced, so the number of estimation processes is reduced and the estimation process time is shortened.
[0030]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a conversion device, a conversion method, and a computer-readable recording medium on which a conversion program for a logic circuit according to an embodiment of the present invention is recorded will be described in detail with reference to the accompanying drawings. FIG. 1 is a block diagram showing the configuration of a conversion apparatus for converting to a decision graph in estimating a fault location of a logic circuit according to an embodiment of the present invention.
[0031]
In this embodiment, an
[0032]
The
[0033]
The
[0034]
The
[0035]
The
[0036]
Next, the operation of the conversion apparatus of the present embodiment configured as described above, that is, the conversion method to the decision graph in the estimation of the failure location of the logic circuit will be described. FIG. 2 is a flowchart showing the operation of the conversion device into the decision graph in the estimation of the failure location of the logic circuit according to the embodiment of the present invention.
[0037]
First, the state transition
[0038]
Next, the
[0039]
Next, the node link means 13 links the nodes (step S13). Specifically, the
[0040]
Next, a method for converting to a decision graph in estimating the fault location of the counter circuit expressed in the hardware description language verilog-HDL will be described. This counter circuit is assumed to be a circuit that counts up when the clock signal clk becomes “1” and outputs a count to the signal out. FIG. 3 is a diagram showing a counter circuit expressed in hardware description language verilog-HDL, FIG. 4 is a state transition table of the counter circuit, and FIG. 5 is a decision graph of the counter circuit.
[0041]
First, the operation of the state transition
[0042]
In the present embodiment, as shown in FIG. 3, an always block and a non-blocking assignment statement are described. For this reason, as shown in FIG. 4, the state transition table creating means 11 is assigned the process described in the state ST0 to which the event occurrence determination process of the always block is assigned, and in the non-blocking substitution expression. State ST1 in which processing for assigning the evaluation of the expression on the right side to the temporary register is assigned, and state ST2 in which processing for assigning the value held in the temporary register in state ST1 to the signal on the left side of the non-blocking assignment expression is assigned A state transition table showing these three states is created.
[0043]
When the process in the state ST0 is completed, the state transitions to the state ST1 as the next state. When the process in the state ST1 is completed, the state transitions to the state ST2 as the next state. When the process in the state ST2 is completed, the state ST0 is the next state. Transition to.
[0044]
Next, the operation of the
[0045]
The
[0046]
The
[0047]
Further, the
[0048]
Furthermore, the
[0049]
Next, the operation of the node link means 13 will be described using the operation corresponding to the state number ST2 as an example.
[0050]
The node link means 13 links the read node STATE that is a state variable and the read node ST2 that is a state number with an equal sign “=” that is an operation node. The node link means 13 links the read node reg and the assignment determination node reg_a as an output value, and links the assignment determination node reg_a and the write node reg as an output destination. Here, as a state result corresponding to the output value reg, the equal sign “=” linked to the read node ST2 is linked to the assignment determination node reg_a.
[0051]
The node link means 13 links the write node STATE and the assignment determination node STATE_a as the output destination. The node link means 13 links the assignment determination node STATE_a and the read nodes ST0, ST1, and ST2 that are state numbers as output values. Here, since the next state after the state ST2 is the state ST0, as a state result corresponding to the output value ST0 of the assignment determination node STATE_a, the equal sign “=” linked to the read node ST2 is linked to the assignment determination node STATE_a. .
[0052]
By linking the nodes in state ST0 and
[0053]
Next, as a loop process, the state transition
[0054]
When an always block or process statement as shown in FIG. 6 is included, the value of the signal y is substituted into the signal x when the signal clock is changed.
[0055]
In the verilog-HDL always block and the VHDL process statement, the state transition table has two states. In the state ST0, it is assumed that “change in signal clock” is assigned as an event occurrence determination process, and when the signal clock changes, the state transitions to the state ST1 as the next state. In the state ST1, an assignment expression x = y is assigned as a process described in an always block or a process statement, and when the process ends, the state ST0 is transitioned to.
[0056]
Next, an operation example of the state transition
[0057]
When an initial block as shown in FIG. 8 is included, when the reset signal changes to 1, 0 is substituted for the value of the signal a.
[0058]
In the veritilog-HDL initilla block statement, the state transition table has two states. In the state ST0, it is assumed that “change of the signal reset to 1” is assigned as the event occurrence determination process, and when the signal reset changes to 1, the state transitions to the state ST1 as the next state. In the state ST1, an assignment expression a = 0 is assigned as the process described in the initial block, and all processes are terminated when the process in the state ST1 is completed.
[0059]
Next, see FIG. 10, FIG. 11 and FIG. 12 for the conversion to a decision graph by the conversion device when the while statement is included in the data of the hardware description language verilog-HDL or the data of the hardware description language VHDL. To explain. FIG. 10 is a diagram showing examples of the verilog-HDL and VHDL while statements, FIG. 11 is a state transition table created by the state transition
[0060]
When the “while” statement as shown in FIG. 10 is included, the value of “b−a” is substituted into the signal b while “a <b” is established for the signal a and the signal b.
[0061]
The state transition table created by the state transition
[0062]
The
[0063]
The node link means 13 links the read node STATE that is a state variable and the read node ST1 that is a state number with an equal sign “=” that is an operation node at a location corresponding to the state ST1 in the state transition table. The allocation decision node b_a is linked to the write node b as an output destination. Since the calculated value of “b−a” is the output value of the allocation decision node b_a, the read nodes a and b are linked with the subtraction “−” that is the operation node. The subtraction “−” that is the operation node is linked as an output value to the assignment determination node b_a. Here, as a state result corresponding to the calculated value of “b−a” that is the output value, the equal sign “=” linked to the read node ST1 is linked to the assignment determination node b_a.
[0064]
The node link means 13 links the write node STATE as the output destination of the assignment determination node STATE_a. The assignment determination node STATE_a is linked to the read nodes ST0, ST1, and ST2 which are state numbers as output values. Here, in the state ST0 or the state ST1, when the loop condition “a <b” is true, the next state is the
[0065]
Similarly, for the state ST0 and the state ST2, the decision graph shown in FIG. 12 is created by linking the nodes. Here, “∪” in the figure means the logical operator or.
[0066]
Next, as timing control, state transition when hardware description language verilog-HDL data includes a procedural non-blocking assignment statement or hardware description language VHDL data includes a sequential signal assignment statement An example of the operation of the table creating means 11 will be described with reference to FIGS. FIG. 13 is a diagram showing an example of a verilog-HDL procedural non-blocking assignment statement and a VHDL sequential signal assignment statement, and FIG. 14 is a state transition table created by the state transition table creation means 11.
[0067]
When a procedural non-blocking statement or sequential signal assignment statement as shown in FIG. 13 is included, the value of the signal ct is held in a temporary register, and then whether or not ct is equal to “1111”. Thus, “0000” or “ct + 1” is substituted into ct. Then, the value of ct temporarily held in the register is substituted for the signal count.
[0068]
In the verilog-HDL procedural non-blocking assignment statement and the VHDL sequential signal assignment statement, the state transition table has two states. In the state ST0, the evaluation ct of the expression on the right side in the verilog-HDL procedural non-blocking assignment statement and the VHDL sequential signal assignment statement is assigned to the temporary register reg. Next, a value of “0000” or “ct + 1” is substituted into ct depending on whether or not ct is equal to “1111”. And it changes to state ST1 as the next state. In the state ST1, the temporary register reg value in the state ST0 is assigned to count.
[0069]
Next, as timing control, when the hardware description language verilog-HDL data includes a # statement or the hardware description language VHDL data includes a wait for statement, state transition table creation means The operation of converting these sentences into a while sentence will be described with reference to FIGS. 15 and 16.
[0070]
The # statement shown in FIG. 15 and the wait for statement shown in FIG. 16 describe an operation for stopping the execution of the process for a time of 100 nsec. Also, the while statement shown in FIGS. 15 and 16 shows the conversion result to the when statement when the clock interval is 10 nsec. If the while loop is processed for the number of 10 clock cycles, the execution of the process is stopped for 100 nsec in time, and an operation equivalent to a # statement or a wait for statement is obtained.
[0071]
After converting the # sentence or the wait for sentence into a while sentence in this way, the processing is performed by the state transition
[0072]
Next, as a timing control, when the wait statement is included in the data of the hardware description language verilog-HDL, or when the wait until statement is included in the data of the hardware description language VHDL, the state transition table creating unit The operation of converting these sentences into a while sentence will be described with reference to FIGS. 17 and 18.
[0073]
The wait statement shown in FIG. 17 and the wait until statement shown in FIG. 18 describe an operation for stopping the execution of the process until the value of the signal c becomes equal to “1”. Moreover, the while sentence shown in FIG.17 and FIG.18 has shown the conversion result to a while sentence. If the while loop is processed during the period until the value of the signal c becomes equal to “1”, the execution of the process is stopped until the value of the signal c becomes equal to “1”, and a wait statement or a wait until statement Equivalent operation is obtained.
[0074]
In this way, after converting the wait statement or wait until statement to the while statement, the processing is performed by the state transition
[0075]
The state estimation values obtained by estimating the states of the input / output ports and the latches of the logic circuit using the decision graph created by these embodiments, the test results in the tester, and the expected values obtained by the function simulation And the failure propagation path at the functional level can be estimated by estimating the fail propagation path.
[0076]
Each process performed by the state transition
[0077]
【The invention's effect】
As described above in detail, according to the present invention, a logic circuit can be appropriately converted into a decision graph. Then, in the input / output ports and latches of the logic circuit, the state estimated value estimated based on the decision graph created in the present invention is compared with the expected value obtained by the function simulation, the failure propagation path is estimated, and the failure Estimation can be performed. That is, it is possible to estimate a location where a failure occurs at the function level. Therefore, it is not necessary to create a failure dictionary by failure simulation, and the failure location can be estimated in a short time. In addition, since the number of basic elements is reduced compared to failure estimation at the gate level, the number of estimation processes is reduced, and the estimation process time can be shortened.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a conversion device to a decision graph in estimation of a failure location of a logic circuit according to an embodiment of the present invention.
FIG. 2 is a flowchart showing an operation of the conversion device into the decision graph in the estimation of the failure location of the logic circuit according to the embodiment of the present invention.
FIG. 3 is a diagram illustrating a counter circuit expressed in hardware description language verilog-HDL.
4 is a state transition table of the counter circuit shown in FIG. 3. FIG.
FIG. 5 is a determination graph of the counter circuit shown in FIG. 3;
FIG. 6 is a diagram illustrating examples of a verilog-HDL always block and a VHDL process statement;
7 is a state transition table created by state transition
FIG. 8 is a diagram illustrating an example of an initial block of verilog-HDL.
FIG. 9 is a state transition table created by the state transition
FIG. 10 is a diagram illustrating examples of “while” statements of verilog-HDL and VHDL.
FIG. 11 is a state transition table created by the state transition
FIG. 12 is a decision graph finally created.
FIG. 13 is a diagram illustrating an example of a verilog-HDL procedural non-blocking assignment statement and a VHDL sequential signal assignment statement;
FIG. 14 is a state transition table created by the state transition
FIG. 15 is a diagram illustrating a relationship between a # sentence and a while sentence.
FIG. 16 is a diagram illustrating a relationship between a wait for sentence and a while sentence.
FIG. 17 is a diagram illustrating a relationship between a wait sentence and a while sentence.
FIG. 18 is a diagram illustrating a relationship between a wait until sentence and a while sentence.
FIG. 19 is a flowchart showing a method of converting to a decision graph in conventional failure location estimation.
[Explanation of symbols]
1: Input device
2: Data processing device
3; Storage device
4; Output device
11: State transition table creation means
12: Node setting means
13: Node link means
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001397504A JP3957507B2 (en) | 2001-12-27 | 2001-12-27 | Device for converting logic circuit into decision graph, conversion method, and recording medium recording conversion program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001397504A JP3957507B2 (en) | 2001-12-27 | 2001-12-27 | Device for converting logic circuit into decision graph, conversion method, and recording medium recording conversion program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003194884A JP2003194884A (en) | 2003-07-09 |
JP3957507B2 true JP3957507B2 (en) | 2007-08-15 |
Family
ID=27603275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001397504A Expired - Fee Related JP3957507B2 (en) | 2001-12-27 | 2001-12-27 | Device for converting logic circuit into decision graph, conversion method, and recording medium recording conversion program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3957507B2 (en) |
-
2001
- 2001-12-27 JP JP2001397504A patent/JP3957507B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003194884A (en) | 2003-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7958470B1 (en) | Method and system for false path analysis | |
US7698674B2 (en) | System and method for efficient analysis of point-to-point delay constraints in static timing | |
JP2005092885A (en) | System and method for statistical timing analysis of digital circuits | |
US20050138585A1 (en) | Method and apparatus for solving sequential constraints | |
TWI266216B (en) | Design verification using formal techniques | |
US20040078175A1 (en) | Method and apparatus for modeling and simulating the effects of bridge defects in integrated circuits | |
US7888971B2 (en) | Verification support system and method | |
Ghosh | Behavioral-level fault simulation | |
US20050114805A1 (en) | Device, system and method for VLSI design analysis | |
Chakraborty et al. | On variable clock methods for path delay testing of sequential circuits | |
Westerman et al. | Discrete event system approach for delay fault analysis in digital circuits | |
US8943457B2 (en) | Simulating scan tests with reduced resources | |
Lingappan et al. | Test generation for non-separable RTL controller-datapath circuits using a satisfiability based approach | |
US7555687B2 (en) | Sequential scan technique for testing integrated circuits with reduced power, time and/or cost | |
US10234502B1 (en) | Circuit defect diagnosis based on sink cell fault models | |
JP3957507B2 (en) | Device for converting logic circuit into decision graph, conversion method, and recording medium recording conversion program | |
CN111241766A (en) | Test method and test system | |
US8468409B2 (en) | Speed-path debug using at-speed scan test patterns | |
JP2001021618A (en) | Method and device for failure propagation path estimation, and record medium | |
Chakraborty et al. | More accurate polynomial-time min-max timing simulation | |
KR20220141489A (en) | Computing devive and method for detecting clock domain crossing violation in design of memory device | |
Oh et al. | Efficient logic-level timing analysis using constraint-guided critical path search | |
JP3863423B2 (en) | Logic circuit failure location estimation method and logic circuit failure location estimation program | |
JP3908192B2 (en) | Logic circuit failure diagnosis apparatus, failure diagnosis method and program thereof | |
JP2000315221A (en) | Database for designing integrated circuit device and designing method for integrated circuit device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060228 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060530 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060629 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060727 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060809 |
|
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: 20070410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070508 |
|
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: 20100518 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100518 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100518 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130518 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |