JP2013019744A - 故障箇所推定装置と方法並びにプログラム - Google Patents

故障箇所推定装置と方法並びにプログラム Download PDF

Info

Publication number
JP2013019744A
JP2013019744A JP2011152725A JP2011152725A JP2013019744A JP 2013019744 A JP2013019744 A JP 2013019744A JP 2011152725 A JP2011152725 A JP 2011152725A JP 2011152725 A JP2011152725 A JP 2011152725A JP 2013019744 A JP2013019744 A JP 2013019744A
Authority
JP
Japan
Prior art keywords
serial
region
parallel
circuit
area
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.)
Withdrawn
Application number
JP2011152725A
Other languages
English (en)
Inventor
Tetsuya Seiyama
哲也 精山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011152725A priority Critical patent/JP2013019744A/ja
Publication of JP2013019744A publication Critical patent/JP2013019744A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】スキャンテスト設計が施された機能ブロックと付加回路とを含む論理回路全体を故障診断を可能とし、診断処理時間を大幅に短縮可能とする装置、方法の提供。
【解決手段】論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報、論理回路の設計情報を入力データ1として入力し、論理回路においてパラレル領域以外の回路部をシリアル領域として抽出することで、前記論理回路を前記パラレル領域とシリアル領域に分割する回路分割手段2と、正常回路における論理値を期待値として求める期待値計算手段3と、テストパタンに対する論理回路のテスト出力を入力データ1として入力し、テスト出力および、シリアル領域とパラレル領域の期待値を用いて、パラレル領域およびシリアル領域を故障診断し、出力部に出力する故障診断手段4とを備える。
【選択図】図1

Description

本発明は、半導体装置の故障箇所の推定技術に関し、特に、スキャンテスト回路を備えた論理回路の故障箇所の推定方法、推定装置、及びプログラムに関する。
LSIのテスト容易化設計(DFT:Design For Testability)手法として、スキャンテストが用いられている。さらにテストコスト削減のため、半導体製品の論理回路にスキャンテスト手法を応用したパタン圧縮技術が採用されている。パタン圧縮技術は、スキャンチェーンの入出力部分にテストパタン生成器とテスト結果を圧縮する圧縮器とを配置することで、テスタのメモリサイズ、使用ピン数等のオーバーヘッドを小さくして、テストコストの削減を図る。
LSIの開発効率の向上が求められており、既存製品の回路を機能ブロック単位で再利用可能な形にまとめ、他の製品でも利用可な部分にも流用可能とした階層設計手法が一般的となっている。各機能ブロックには、それぞれ独立したスキャンテスト設計が施されていることが多い。検査対象となる機能ブロックを切り替えるためのコントローラ回路を論理回路に付加することで検査対象の回路全体をテストする。
以下、スキャンテスト、圧縮技術、階層設計について図面を参照して説明する。
<スキャンテスト>
スキャンテスト手法は、論理回路の故障検査手法の1つであり、スキャン・テストモード時に、LSI回路内に設けられた複数のスキャンフリップフロップ(「スキャンFF」あるいは「SFF」と略記される)をシリアルに接続してスキャンチェーンを構成し、外部スキャン入力(Scan In)端子からパタンをシリアルに供給し(スキャンイン動作)、被検査対象の組み合わせ回路の入力に出力が接続されたスキャンFFからパタンがパラレルに印加され、当該組み合わせ回路の出力が当該組み合わせ回路後段の複数のスキャンFFに取り込まれ(キャプチャ動作)、当該組み合せ回路の出力を取り込んだ複数のスキャンFFの出力を外部スキャンアウト(Scan Out)端子よりシリアルに出力し(スキャンアウト動作)、LSIテスタで当該出力パタンを取り込み期待値パタンと比較する。
図3は、スキャンテスト回路を備えた論理回路の典型的な構成の一例を示す図である。図3において、被検査回路300は、スキャンテスト手法のテスト対象回路となるユーザーロジック回路(UDL:User Defined Logic)303と、2本のスキャンチェーン304、305とを含む。スキャンFF306a、306b、306c、307a、307b、307cは、3ビットのスキャンチェーン304、305を構成し、それぞれの入力端子DはUDL回路303と接続している。なお、図3では、あくまで説明の簡単のため、2本のスキャンチェーンからなり各チェーンとも3個のスキャンFFを備えた構成を示しており、実際の構成(スキャンテスト回路を備えた論理回路)がかかる構成に制限されるものでないことは勿論である。
スキャンFFは、データ端子(D)とスキャンイン(SI)端子を有し、データ端子(D)とスキャンイン(SI)端子は内部のマルチプレクサに入力され、スキャンモード時(スキャンイン、スキャンアウト動作時)に、SI端子からの入力が選択され、それ以外(キャプチャ動作時、通常動作時等)は、D端子からの入力が選択され、マルチプレクサで選択された入力をクロックの例えば立ち上がりエッジに同期してサンプル出力する。なお、図3では簡単のためスキャンFFのクロック入力端子は省略されており、またスキャンFFの出力端子QとUDL303の入力との接続は省略されている。
スキャンチェーン304、305を構成するそれぞれのスキャンFFは、テスト出力端子302、309から数えて、
スキャンFF306cとスキャンFF307cとを1ビット目、
スキャンFF306bとスキャンFF307bとを2ビット目、
スキャンFF306aとスキャンFF307aとを3ビット目
とする(テスト入力端子301、308から数えると、上記3ビット目が初段となり、順番が逆になる。スキャンFFの段数は、通常、テスト入力端子301、308から数える)。3ビット目のスキャンFF306a、307aの入力端子SIは、テスト入力端子301、308とそれぞれ接続し、出力端子Qは、2ビット目のスキャンFF306b、307bの入力端子SIとそれぞれ接続する。
1ビット目のスキャンFF306c、307cの出力端子Qは、テスト出力端子302、309とそれぞれ接続し、入力端子SIは、2ビット目のスキャンFF306b、307bの出力端子Qとそれぞれ接続する。
スキャンシフト動作時に、各スキャンFFの出力は、次段のスキャンFFのSI端子に供給される(最終段のスキャンFFの出力はScan Out端子(テスト出力端子302、309)に出力される)が、通常動作時、各スキャンFFの出力はUDL回路303に入力され、UDL回路303の出力はスキャンFFのデータ端子Dに入力される。図3におけるスキャンテスト時の動作を具体的に説明する。
LSIテスタ(不図示)は、テストパタンをそれぞれテスト入力端子301、308からスキャンチェーン304、305に印加し、スキャンクロックに同期して、各スキャンFFの保持値(出力端子Qの値)を次段のスキャンFFのシリアル入力端子(SI)に転送することで、入力側から出力側へテストパタンを次々に受け渡すことを繰り返すことによって(スキャンシフト)、スキャンチェーン304、305を構成する各スキャンFFにテストパタンを設定する。
スキャンシフト動作でスキャンチェーン304、305を構成する各スキャンFFに設定されたテストパタンは、各スキャンFFの出力端子QからUDL回路303に入力され、UDL回路303から出力される信号は、UDL回路303の当該出力にデータ端子Dが接続されたスキャンFFのデータ端子Dに入力され、当該スキャンFFでは、スキャンクロックの立ち上がりでデータ端子Dの信号を取り込む(キャプチャ動作)。スキャンFFが取り込んだ信号をスキャンシフトによってテスト出力端子302、309より出力する。LSIテスタは、テスト出力端子302、309より出力された信号を受け、テストパタンに含まれる期待値と照合して、PASS(不良)/FAIL(不良)を判定する。
スキャンシフトによって、各スキャンFFにテストパタンを設定するタイミングを与えるパタンをシフトパタンという。スキャンFFに設定したテストパタンをスキャンFFの出力端子Qから、一斉に、UDL回路に入力し、また、UDL回路から出力する信号をスキャンFFが取り込むタイミングを与えるパタンをキャプチャパタンという。シフトパタンとキャプチャパタンとはテストパタンに含まれる。
例えば、UDL回路303中に故障が存在し、スキャンテストを実行した場合について説明する。
まず、シフトクロックによりテストパタンをスキャンFF306a〜306c、307a〜307cに設定する。
次に、キャプチャパタンによって、スキャンFF306a〜306c、307a〜307cに設定された入力パタンがテスト対象のUDL回路303に入力される。故障の影響を受けたUDL回路303の出力信号は、スキャンFF306a〜306c、307a〜307cのうち、該出力信号をデータ端子Dに受けるスキャンFFにスキャンクロックに応答して取り込まれることになる。
そして、次のシフトパタンにより、テスト出力端子302、309から1ビットずつスキャンFFが取り込んだ信号を出力され、LSIテスタのコンパレータにて、期待値パタンとテスト出力端子から出力された信号とが比較される。
スキャンテスト回路を備えた論理回路に対する故障検出手法は、スキャンイン(シリアル入力)、キャプチャ、スキャンアウト(シリアルアウト)の繰り返しで行われ、スキャンチェーンの長さに対応してシリアルスキャンのパタンが長大化するため、テスト時間が長大化する、という問題がある。また、これに対応したメモリ容量を備えたテスタが必要とされる。
<圧縮パタン技術>
スキャンテスト設計の応用技術として、パタン圧縮技術がある。パタン圧縮技術は、スキャンチェーンの入出力部分に、パタン生成器と圧縮器とを配置することで、テスタのメモリサイズ、使用ピン数等のオーバーヘッドを小さくして、テストコストの削減を図る。
パタン生成器と圧縮器は、論理回路で構成され、通常、組合せ回路や、LFSR(線形フィードバックシフトレジスタ)で構成される。なお、本明細書では、パタン生成器と圧縮器とを合わせて、「パタン圧縮回路」という。
図4は、スキャンテストにおいてパタン圧縮技術を採用した構成例を示す図である。図4を参照すると、パタン圧縮技術を採用した被検査回路400は、図3と同様に、UDL回路403と、2つのスキャンチェーン404、405とを含む。UDL回路403と、スキャンチェーン404、405とを合わせて「機能ブロック」414という。
スキャンチェーン404、405の入力端子(スキャン入力端子)410、412には、パタン生成回路401の出力が接続されている。
パタン生成器401は、テスト入力端子408から入力したテストパタンを元に、スキャンチェーン404、405にそれぞれシリアルに供給するテストパタンを生成し、生成したテストパタンをスキャン入力端子410、412にシリアルに出力する。
スキャンチェーン404、405の出力端子411、413には、圧縮器402が接続されている。
圧縮器402は、スキャンチェーン404、405から出力されるスキャンFFが取り込んだ信号をそれぞれ受け、1ビットずつ圧縮してテスト出力端子409からテスト結果として出力する。つまり、2つのスキャンチェーン404、405のテスト結果を1本のテスト結果に圧縮している。
図4の構成において、テスト時には、パタン生成器401にてテストパタンを生成し、圧縮器402にてスキャンチェーンの出力信号を圧縮して出力する以外は、図3のスキャンテスト時の動作と同様の動作で故障を検出することができる。
図4の構成において、パタン生成器401及び/又は圧縮器402内に故障が存在した場合であっても、当該故障を検出することができる。
例えば、パタン生成器401内に故障が存在すると、スキャンチェーン404、405に設定される値が既に故障の影響を受けた値となるため、テスト出力端子409から出力されるテスト結果出力は、期待値(正常回路の応答)と一致せず、FAILとなる。
また、圧縮器402内に故障が生じている場合、スキャンFFが取り込んだ信号は必ず圧縮器402を通過するため、テスト出力端子409から出力されるテスト結果出力は、期待値(正常回路の応答)と一致せず、FAILとなる。
<階層設計>
次に、開発効率向上のために用いられる階層設計について説明する。階層設計手法は既存製品の回路を機能ブロック単位で再利用可能な形にまとめ、他の製品に流用する方法である。各機能ブロックには、それぞれの独立したスキャンテスト設計が施されていることが多い。この場合、テスト対象となる機能ブロックを切り替えるためのコントローラ回路を論理回路に付加することで、被検査回路全体をテストする。
図5は、階層設計された被検査回路の構成例を示す図である。被検査回路500は、スキャンテスト設計が施された2つの機能ブロック502、503と、テスト対象となる機能ブロックを切り替えるコントローラ回路501とを含む。
機能ブロック502、503は、図3の被検査回路300、及び、図4の機能ブロック414のようなスキャン設計が施された回路から構成されている。コントローラ回路501と機能ブロック502、503とを接続している信号線504、505、506、507は、機能ブロック502、503が持つスキャンチェーンの本数分存在する。例えば、機能ブロック503が図3と同じ構成の場合、信号線504は2本存在し、図3のテスト入力端子301、308と接続する。同様に、信号線506は、2本存在し、図3のテスト出力端子302、309と接続する。コントローラ入力端子508とコントローラ出力端子509とはコントローラ回路500と、不図示のテスタの出力(ドライバ)と入力(コンパレータ)と接続される。
図5を参照して、階層設計された被検査回路のテスト時の動作を説明する。不図示のテスタからテストパタンがコントローラ入力端子508に印加される。コントローラ回路501は、そのテストパタンの一部より、テストすべき機能ブロックを選択する。選択された機能ブロックを例えば機能ブロック503とすると、コントローラ回路501に入力されたテストパタンは、信号線504を介して機能ブロック503に入力される。
機能ブロック503の中では、前述したスキャンテスト手法の動作が行われ、テスト結果は信号線506を介して、コントローラ回路501に入力される。
コントローラ回路501に入力されたテスト結果は、コントローラ出力端子509より、不図示のテスタへ出力され、テストパタンの期待値(正常回路の応答)と比較して、PASS/FAILが判定される。
この間、コントローラ回路501によって選択されなかった機能ブロック502は動作していない。
[追加1]
図5の構成において、コントローラ回路501内に故障が存在した場合であっても、その故障を検出することができる。
[追加2]
例えば、前述した階層設計された被検査回路のテスト時の動作では、機能ブロックの入出力はコントローラ回路を介してテスタへ出力する。このため、コントローラ回路内に故障が存在した場合、機能ブロックへの入力値が故障の影響を受けた値となる。または、機能ブロックの出力値が故障の影響を受けた値となる。そして、それらのテスト結果は、期待値(正常回路の応答)と一致せず、FAILとなる。
<故障診断>
次に、スキャンテスト設計が施された論理回路に対する故障診断について説明する。非特許文献1によると、故障診断手法には、
(A)原因−結果型の手法、及び、
(B)結果−原因型の手法、
がある。
前者(A)は、予め被検査回路の故障シミュレーションを実行することで、故障とそのテスト出力結果との対応を辞書化し、その辞書を参照することで故障箇所を推定する手法である。ただし、大規模回路に対しては作成する辞書が莫大となり現実的でない。
後者(B)の手法は、大規模回路にも適用可能であり、3つのステップからなる。
(1)まず、故障が存在する領域をすばやく絞り込むため、テスト出力結果の情報から故障の影響を取り込んだスキャンFFを特定し、特定したスキャンFFからUDL回路を入力方向へトレースして、トレースした領域を求める。
(2)次に、前記のトレースした領域に対して、複数回の故障シミュレーションを実行し、シミュレーション結果を得る。
(3)最後に、前記のシミュレーション結果から、テスト出力結果と一致度の高い順にランキングして、故障候補を求める。
スキャンテスト設計を備えた論理回路が階層設計のコントローラ回路を含む場合、該被検査回路に対する故障診断については、上記と同様の手法でUDL回路内の故障を診断することができるが、コントローラ回路内の故障は、診断対象とならない。
<UDL回路及びコントローラ回路の故障診断>
UDL回路だけでなくコントローラ回路も故障診断するための手法として、特許文献1に記載の方法が適用可能である。特許文献1では、実際の故障端子から入出力双方向にトレースを行い組合せ回路を抽出し、論理推定と論理シミュレーションとを組合せ回路の出力境界端子に対して繰返し行うことにより、故障端子からの論理推定だけでは一意に定まらない組合せ回路内部ノードを順次確定し、前記組合せ回路の入力境界での故障伝搬端子状態を推定し、他の組合せ回路の入出力境界値との時間的及び空間的な照合手順により推定の確度をあげつつ順次LSI内部へと遡り、故障箇所を推定する。すなわち、特許文献1では、まず、被検査回路全体を順序回路としてとらえ、その順序回路を、スキャンFF、FF、ラッチ、外部端子を境界として組み合わせ回路単位に分割する。次に、故障検出した外部端子から分割した組合せ回路内を入力方向へトレースし、分割した組合せ回路内の終端に到達すると、その終端に、空間的かつ時間的に接続のある組合せ回路情報を読み出し、入力方向へトレースを行う。この処理を繰り返すことによって故障診断する手法である。この手法によれば、スキャンテスト設計を備えた論理回路が階層設計のコントローラ回路を含む場合であっても、UDL回路とコントローラ回路とを同じレベルの組み合わせ回路として分割するため、UDL回路だけでなくコントローラ回路も故障診断することができる。
<パタン圧縮器を具備した論理回路の故障診断>
また、スキャンテスト設計を備えた論理回路がパタン圧縮技術を採用している場合、その被検査回路に対する故障診断が、例えば特許文献2、3に開示されている。特許文献2では、各スキャンFFの出力(つまり、ビット毎)に仮想化した圧縮器を配置し、UDL回路内で故障シミュレーションを実行し、そのシミュレーション結果とテスト結果とが一致する仮定故障箇所を故障候補として推測する。特許文献3では、圧縮器の動作を関数化し、その逆関数とテスト結果とから、故障の影響を取り込んだものと推測されるスキャンFFを求め、そのスキャンFFの候補に関係のあるUDL回路の領域を対象として、特許文献2と同様に、故障シミュレーションを実行して故障診断を行う。
<シミュレーション方式:シリアルシミュレーションとパラレルシミュレーション>
故障診断では、入力されたテストパタンに対する正常論理回路のシミュレーション値(正常回路の出力)を期待値として用いるため、故障診断対象となる論理回路のシミュレーション環境が必要である。シミュレーション環境は、コンピュータ上に被検査回路と同じ構造の論理回路を仮想的に構築する。論理回路のシミュレーション方式には、シリアルシミュレーションとパラレルシミュレーションとが存在する。
シリアルシミュレーションは、回路動作を忠実に再現する方式である。
パラレルシミュレーションは、スキャンチェーンのように、入力パタンに対してスキャンFFの値を一意に決定できる回路構造をシミュレーションする場合に用いられる。スキャンFFへの入力パタンの値の設定や、故障を検出したスキャンFFの特定など、スキャンシフトの処理を簡略化することができる。このため、シリアルシミュレーションよりも高速に処理できる。
例えば、シリアルシミュレーションでは100個のスキャンFFに論理値を設定するのに100クロック分のシミュレーション時間がかかるところを、パラレルシミュレーションでは、100個のスキャンFFに対して直接論理値を設定できるため、シミュレーション時間を大幅に短縮することができる。そのため、数10M(Mega)ゲート規模の論理回路では、シリアルシミュレーションの処理時間が膨大となるため、パラレルシミュレーション方式が採用される。
具体的に説明するために、図6に、スキャンシフトパタンのシリアルシミュレーションの例を示す。また、図7に、パラレルシミュレーションの例を示す。図6、図7は、スキャンシフトパタン“110”を、長さ3(1ビット目から3ビット目のスキャンFF)のスキャンチェーン601、701に設定する。つまり、シミュレーション完了後(図6の3パタン後)に、スキャンシフトパタン“110”の最初の“1”はスキャンチェーンの1ビット目のスキャンFFに設定され、最後の“0”は3ビット目のスキャンFFに設定される。シリアルシミュレーションでは、スキャンシフトの動作を忠実に再現するため、シリアルビットパタン“110”を、長さ3のスキャンチェーン601に設定するには、3パタン(3クロック)を要する。一方、パラレルシミュレーションでは、図7に示すように、1パタンで処理が完了する。パタン“110”をスキャンチェーン701の3つのスキャンFFにパラレルに1クロックで設定する。
特開平09−080126号公報 特開2008−249622号公報 特表2007−531875号公報
Wu-Tung Cheng et al, "Compactor Independent Direct Diagnosis," Proceedings of the 13th Asian Test Symposium (ATS 2004), IEEE, 2004, 15-17 Nov., pp.204-209
以下に関連技術の分析を与える。
特許文献1では、被検査回路全体を組み合わせ回路単位に分割して、故障診断するため、被検査回路全体のシリアルシミュレーションが必要となる。しかしながら、階層設計されたスキャンテスト回路を備えた論理回路など、大規模な回路に対してシリアルシミュレーションを実行することは処理時間が膨大となるため、現実的でない。
特許文献2では、主にUDL回路を故障診断の対象としており、圧縮器を診断するためには特許文献1と同じく、UDL回路と圧縮器回路とを含めたシリアルシミュレーションが必要となり処理時間が膨大となる。
特許文献3では、UDL回路部のみが故障診断の対象であるため、圧縮器の内部及びパタン生成器の内部は故障診断することができない。
本発明の目的は、スキャンテスト設計が施された機能ブロックと、その付加回路とを含む論理回路全体を故障診断可能とする、装置及びプログラムを提供することにある。
本発明によれば、概略以下の構成が提供される(ただし、以下に制限されるものでないことは勿論である)。
1つの側面によれば、スキャンテスト回路を備えた論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報を入力し、
前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれパラレル領域とし、前記論理回路において前記パラレル領域以外の1つ又は複数の回路部をそれぞれシリアル領域として抽出することで、前記論理回路をパラレル領域とシリアル領域に分割し、分割したパラレル領域とシリアル領域の回路情報を記憶部に記憶する回路分割手段と、
前記記憶部からシリアル領域とパラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の対の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記シリアル領域と前記パラレル領域の正常回路における論理値を期待値として求め、前記1つ又は複数の組み合せのシリアル領域とパラレル領域の期待値を記憶部に記憶する期待値計算手段と、
前記記憶部から前記シリアル領域と前記パラレル領域の期待値を読み出し、前記テストパタンに対する前記論理回路のテスト出力を入力し、前記テスト出力、及び、前記シリアル領域と前記パラレル領域の前記期待値を用いて、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う故障診断手段と、を備えた故障箇所推定装置が提供される。
あるいは、スキャンテスト回路を備えた論理回路の故障診断を、データ処理装置を用いて行う方法であって、
前記論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報を入力し、
前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれパラレル領域とし、前記論理回路において前記パラレル領域以外の1つ又は複数の回路部をそれぞれシリアル領域として抽出することで、前記論理回路を前記パラレル領域とシリアル領域に分割し、分割した前記パラレル領域と前記シリアル領域の回路情報を記憶部に記憶する回路分割ステップと、
前記記憶部から前記シリアル領域と前記パラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の対の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記1つ又は複数の組み合せのシリアル領域と前記パラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部に記憶する期待値計算ステップと、
前記記憶部から前記シリアル領域と前記パラレル領域の期待値を読み出し、前記テストパタンに対する前記論理回路のテスト出力を入力し、前記テスト出力、及び、前記シリアル領域と前記パラレル領域の前記期待値を用いて、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う故障診断ステップと、を含む故障箇所推方法が提供される。
あるいは、スキャンテスト回路を備えた論理回路の故障診断を行う装置を構成するコンピュータに、
前記論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報を入力し、
前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む回路部をパラレル領域とし、前記論理回路において前記パラレル領域以外の回路部をシリアル領域として抽出することで、前記論理回路を前記パラレル領域とシリアル領域に分割し、分割した前記パラレル領域と前記シリアル領域の回路情報を記憶部に記憶する回路分割処理と、
前記記憶部から前記シリアル領域と前記パラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の対の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記1つ又は複数の組み合せのシリアル領域と前記パラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部に記憶する期待値計算処理と、
前記記憶部から前記シリアル領域と前記パラレル領域の期待値を読み出し、前記テストパタンに対する前記論理回路のテスト出力を入力し、前記テスト出力、及び、前記シリアル領域と前記パラレル領域の前記期待値を用いて、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う故障診断処理と、を実行させるプログラムが提供される。
さらに、本発明によれば、上記プログラムを記録したコンピュータで読み出し可能な記録媒体(コンピュータで読み出し可能である、プログラム情報を担持可能な任意の媒体、任意のストレージ手段を含む)が提供される。
本発明によれば、スキャンテスト設計が施された機能ブロックと付加回路とを含む論理回路全体を故障診断することができる。また本発明によれば、診断処理時間を大幅に短縮することができる。本発明の特徴、効果等は上記に限定されるものでなく、以下の記載及び添付図面の内容からも当業者には明らかになるであろう。
実施形態1を示す図である。 実施形態1の動作を示す図である。 スキャンテスト設計が施された論理回路を示す図である。 パタン圧縮回路を含む論理回路を示す図である。 階層設計が施された論理回路を示す図である。 110パタンに対するシリアルシミュレーションの例を示す図である。 110パタンに対するパラレルシミュレーションの例を示す図である。 実施形態1においてテスト結果のフォーマットの例を示す図である。 実施形態1においてスキャンチェーンの構造情報の例を示す図である。 実施形態1においてスキャンテスト設計が施された論理回路に対するテストパタンの例を示す図である。 実施形態1においてパタン圧縮回路を含む論理回路に対するテストパタンの例を示す図である。 実施形態1においてパタン圧縮回路を含む論理回路に対する分割回路の例を示す図である。 実施形態1における期待値計算ステップの処理フローを示す図である。 実施形態1における故障診断ステップの処理フローを示す図である。 実施形態1の故障診断結果に対する出力データの例を示す図である。 実施形態1においてパタン圧縮回路に含まれる圧縮器の構造の例を示す図である。 実施形態1において圧縮器に含まれるX−tolerant機構の例を示す図である。 実施形態の作用効果を説明する図である。
本発明を実行するための好ましい形態について以下に説明する(但し以下に限定されない)。いくつかの好ましい形態によれば、装置/システムは、回路分割手段(2)と、期待値計算手段(3)と、故障診断手段(4)を含む。
回路分割手段(2)は、スキャンテスト回路を備えた論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報(入力データ1)を入力し、前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む回路部をパラレル領域とし、前記論理回路において前記パラレル領域以外の回路部をシリアル領域として抽出することで、前記論理回路を前記パラレル領域とシリアル領域に分割する。回路分割手段(2)は、分割した回路情報を記憶部(9)に記憶する。
期待値計算手段(3)は、前記記憶部(9)から前記シリアル領域と前記パラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の対の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記1つ又は複数の組み合せのシリアル領域と前記パラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部に記憶する。
より詳しくは、いくつかの好ましい形態において、期待値計算手段(3)は、例えば、入力したテストパタン(入力データ1)を用いて、予め定められた一つのシリアル領域(又は、一つのパラレル領域であってもよい)のシリアル(又はパラレル)シミュレーションを行い、前記シリアル(又はパラレル)シミュレーションを行った前記一つのシリアル領域(又は前記一つのパラレル領域)の出力に入力が接続された、別のパラレル領域(又は別のシリアル領域)が存在する場合、前記一つのシリアル領域(又は前記一つのパラレル領域)のシリアル(又はパラレル)シミュレーションの結果得られたパタンを用いて、前記別のパラレル領域(又は前記別のシリアル領域)のパラレル(又はシリアル)シミュレーションを行う。さらに、前記別のパラレル領域(又は前記別のシリアル領域)の出力に入力が接続された、さらに別のシリアル領域(又はさらに別のパラレル領域)が存在する場合には、前記別のパラレル領域(又は前記別のシリアル領域)のパラレル(又はシリアル)シミュレーションの結果得られたパタンを用いて、前記さらに別のシリアル領域(又は前記さらに別のパラレル領域)のシリアル(又はパラレル)シミュレーションを行う。このようにして、一方のシミュレーション結果を用いて他方のシミュレーションをシリアル領域とパラレル領域で交互に実行することで、前記シリアル領域と前記パラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部(10)に記憶する。
故障診断手段(4)は、前記テストパタンに対する前記論理回路のテスト出力(入力データ1)を入力し、前記テスト出力及び、前記シリアル領域と前記パラレル領域の前記期待値を記憶部(10)から読み出し、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う。なお、特に制限されるものでないが、いくつかの好ましい形態において、上記各手段(2、3、4等)はデータ処理装置(コンピュータ)上で実行されるプログラムによりその機能・処理を実現するようにしてもよい。この場合、データ処理装置(コンピュータ)には、コンピュータ読み出し可能な媒体(ストレージ媒体、あるいは有線又は無線ネットワーク等の伝送媒体)から当該プログラムをコンピュータに読み出し(ロードし)、当該プログラムを実行することで、上記各手段が実現される。
いくつかの好ましい形態において、前記回路分割手段(2)は、前記論理回路の全ノードの状態値を不定値を含む予め定められた所定の論理値で初期化し、
前記スキャンフリップフロップの保持する状態値を、初期化した前記所定の論理値と異なる論理値に設定し、
前記スキャンフリップフロップの保持する状態値が変化しないように回路動作及び前記テストパタンを制御しながら、前記論理回路のシミュレーションを実行し、
前記シミュレーションによって、前記スキャンフリップフロップの保持する前記状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを含む回路部(1つ又は複数)をそれぞれ前記パラレル領域として抽出し、前記論理回路中の前記パラレル領域以外の回路部(1つ又は複数)をそれぞれ前記シリアル領域として抽出する構成としてもよい。
いくつかの好ましい形態において、前記期待値計算手段(3)は、前記テストパタンを用いて、前記シリアル領域のうち、少なくとも前記スキャンチェーンの入力ノードと接続関係にある出力ノードを有する第1の回路部のシリアルシミュレーションを実行し、
前記シリアルシミュレーションの結果得られた、前記シリアル領域の前記第1の回路部の前記出力ノードからのパタンを、前記パラレル領域のうち、少なくとも、前記シリアル領域の出力ノードと接続関係にある入力ノードを有する前記スキャンチェーンのスキャンフリップフロップに設定してパラレルシミュレーションを実行し、
前記パラレルシミュレーションの結果得られたパタンを用いて、前記シリアル領域のうち、少なくとも、前記パラレル領域の前記スキャンチェーンの出力ノードと接続関係のある入力ノードを有する第2の回路部のシリアルシミュレーションを実行することで、前記シリアル領域と前記パラレル領域のノードの期待値を求める、構成としてもよい。
いくつかの好ましい形態において、前記故障診断手段(4)は、前記シリアル領域の故障候補を、前記シリアル領域の故障候補と接続関係にある前記パラレル領域の出力ノード又は前記スキャンフリップフロップに設定し、
前記パラレル領域の故障候補を、前記パラレル領域の故障候補と接続関係にある前記シリアル領域の出力ノードに設定する、構成としてもよい。
いくつかの好ましい形態において、前記回路分割手段(2)は、
(A)前記論理回路の全ノードの状態値を不定値を含む任意の論理値で初期化し、
(B)前記スキャンフリップフロップの保持する状態値を前記初期化した論理値と異なる論理値に設定し、
(C)前記論理回路のシミュレーションの実行にあたり、
(C−1)それぞれの前記スキャンチェーンの入力端子と出力端子と前記スキャンチェーンの入力端子と出力端子にそれぞれ接続するノードとの間を切断して前記論理回路のシミュレーションを実行し、
(D)前記シミュレーションによって、前記スキャンフリップフロップの保持する状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを前記パラレル領域として抽出し、前記パラレル領域以外の論理回路をシリアル領域として抽出する構成としてもよい。
あるいは、(C)前記論理回路のシミュレーションの実行にあたり、
(C−2)前記スキャンフリップフロップへのクロック信号を供給するノードを切断するか、又は前記テストパタンのクロック入力を削除し前記スキャンフリップフロップに対してクロックを供給せずに前記論理回路のシミュレーションを実行するようにしてもよい。
あるいは、(C)前記論理回路のシミュレーションの実行にあたり、
(C−3)前記スキャンフリップフロップに設定した状態値の変更を禁止して、前記論理回路のシミュレーションを実行するようにしてもよい。
いくつかの好ましい形態において、前記シリアル領域が、入力された前記テストパタンに応答して複数の前記スキャンチェーンの入力ノードへそれぞれ入力するパタンを生成する第1の回路部と、複数の前記スキャンチェーンの出力ノードからのパタンを受け圧縮して出力する第2の回路部と、を含む。
この形態において、前記期待値計算手段(3)は、前記シリアル領域の前記第1の回路に、前記テストパタンを印加してシリアルシミュレーションを実行し、前記シリアル領域の前記第1の回路から生成されるパタン出力データを取得し、
前記パラレル領域の回路情報を読み出し、前記パタン出力データを、前記スキャンチェーンの入力パタンとして、前記パラレル領域のパラレルシミュレーションを実行し、前記パラレル領域の出力を前記パラレル領域の期待値をとして取得し、
前記パラレル領域のシミュレーションで求めた前記パラレル領域の期待値を、前記シリアル領域の前記第2の回路に与え、且つ、前記シリアル領域の前記第1の回路には前記テストパタンを与えてシリアルシミュレーションを実行し、前記シリアル領域の期待値を求める構成としてもよい。
いくつかの好ましい形態において、前記故障診断手段(4)は、前記テスト出力に含まれる、故障の影響によって正常回路の期待値とは異なる値を出力する端子又は故障の影響によって正常回路の期待値とは異なる値を取り込むスキャンフリップフロップを含む故障出力端子が属する前記シリアル領域又は前記パラレル領域に対して故障診断を行い、
前記故障診断で得られた前記シリアル領域の故障候補に、
前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれる場合、
前記入力端子と接続関係にある前記パラレル領域の出力端子又は前記スキャンフリップフロップを故障出力端子として、前記パラレル領域内の故障診断を行い、
前記故障診断で得られた前記パラレル領域の故障候補に、
スキャンフリップフロップが含まれ、かつ、前記スキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にある、又は、
前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれる場合、
前記入力端子と接続関係にある前記シリアル領域の出力端子を故障出力端子として前記シリアル領域の故障診断を行い、
前記故障診断で得られた前記シリアル領域の故障候補に、
前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれない場合、
又は、
前記故障診断で得られた前記パラレル領域の故障候補に、
前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれず、かつ、スキャンフリップフロップが含まれない、又は、故障候補に含まれるスキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にない場合、
故障診断を終了する構成としてもよい。
前記故障診断手段(4)において、前記故障出力端子から故障伝播経路を入力側に追跡することで故障箇所を推定する、
故障を定義して論理回路のシミュレーションを実行して、シミュレーション結果と故障出力端子とが一致する箇所を故障箇所として推定する、
故障箇所と故障出力端子との対応が記述された辞書を用いて、テスト出力から故障箇所を推定する、
のいずれかを行うようにしてもよい。
いくつかの好ましい形態において、前記論理回路は、それぞれがスキャンテスト回路を備えた論理回路からなる機能ブロックと、前記機能ブロックを制御するコントローラ回路と、を含む。
いくつかの好ましい形態において、故障診断手段(4)は、前記パラレル領域の故障候補及び前記シリアル領域の故障候補を表示部(7)に出力する。前記表示部(7)は、前記論理回路のレイアウト上に、前記パラレル領域の故障候補と前記シリアル領域の故障候補を、判別を容易化する予め定められた所定の表示形態で表示する構成としてもよい。
好ましい形態によれば、スキャンテスト設計が施された機能ブロックとその他の回路とを含む論理回路に対して、スキャンテスト設計が施された機能ブロック(パラレル領域)と付加回路(シリアル領域)とに回路分割し、スキャンテスト設計が施された機能ブロックには、パラレルシミュレーション方式を採用し、付加回路にはシリアルシミュレーション方式を採用することで、診断処理時間を大幅に短縮することができる。
また、好ましい形態によれば、スキャンテスト設計が施された機能ブロックと付加回路とを含む論理回路全体を故障診断することができる。特に、スキャンテスト回路を有する論理回路がパタン圧縮回路を含んでいても、スキャンテスト設計が施された機能ブロック、及び、パタン圧縮回路を構成する圧縮器及びパタン生成器内を同時に故障診断可能としている。さらに、スキャンテスト回路を有する論理回路が階層設計のコントローラ回路を含む場合、スキャンテスト設計が施された機能ブロック及び、コントローラ回路を同時に故障診断することができる。以下いくつかの例示的な実施形態(exemplary embodiment)を説明する。
<実施形態1>
例示的な実施形態1について説明する。図1は、例示的な実施形態1の装置(システム)の構成を示す図である。図1を参照すると、実施形態1は、データ処理部8と、出力部5と、表示部7とを含む。データ処理部8は、回路分割手段2と、期待値計算手段3と、故障診断手段4と、分割回路データ記憶部9と、期待値データ記憶部10とを備えている。
回路分割手段2は、検査対象の論理回路全体(スキャンテスト設計が施された機能ブロックとその付加回路とを含む)を、スキャンテスト設計が施された機能ブロックとその他の付加回路とに分割し、分割した回路のデータを、分割回路データ記憶部9に記憶する。分割したスキャンテスト設計が施された機能ブロックを「パラレル領域」、その他の付加回路を「シリアル領域」ともいう。
期待値計算手段3は、分割回路データ記憶部9から分割回路データ(スキャンテスト設計が施された機能ブロックとその付加回路)を読み出し、分割した回路(スキャンテスト設計が施された機能ブロックとその付加回路)毎にシミュレーションを行う。分割した回路のシミュレーション結果から、論理回路全体(被検査回路全体)の期待値データを求め、期待値データ記憶部10に記憶する。
故障診断手段4は、期待値データ記憶部10の期待値データと、入力データ1に含まれるテスト結果を用いて、被検査回路全体の故障診断を実行する。
出力部5は、故障診断手段4の故障診断結果である被検査回路全体の故障候補をまとめて出力する。
表示部7は、出力部5でまとめた被検査回路全体の故障候補を表示媒体へ表示する。
<入力データ1>
入力データ1は、テスト結果と、スキャンチェーン構成データと、テストパタンと、設計データとを含む。以下、それぞれについて説明する。なお、図1では、単に説明の簡単のため、入力データ1を1つにまとめて表しているが、かかる構成に制限されるものでないことは勿論である。例えばテスト結果と、スキャンチェーン構成データと、テストパタンと、設計データを、個別のファイルあるいはデータとして入力する構成としてもよい。入力データ1の情報は記憶部から入力するようにしてもよいし、他のデータサーバ(不図示)等から情報をネットワーク等を介してダウンロードするようにしてもよい。
<入力データ:テスト結果>
テスト結果は、テスタにて被検査回路中の故障の有無を判定された結果ファイルである。すなわち、スキャンチェーンからLSIテスタに出力される値が、テストパタンの持つ期待値(正常回路の応答情報)と一致しない場合、その情報(フェイルログ情報)が記録される。
図8は、パラレルシミュレーション方式のテスト結果(情報)の一例を示す図である。テスト結果800は、
・故障を検出したパラレルシミュレーションのテストパタン番号(Test pat)801と、
・該故障影響を取り込んだスキャンFFのビット番号(scan bit)803と、
・該故障を検出したテスト結果出力端子名(pin name)802と、
を含む。より詳しくは、図8のテスト結果800は、
・スキャンチェーンのスキャンビット(scan bit)が2のスキャンFF(2ビット目のスキャンFF)が故障影響を取り込み、
・該2ビット目のスキャンFFが取り込んだ値がスキャンシフトパタン(Test pat)番号5において出力され、
・端子名(pin name):テスト出力端子1にて故障が検出された、
ことを示している。図8には、図示されないが、複数のパタン、及び、複数のビットにて故障が検出されている場合、複数行にわたってテスト結果が記述される。また、シリアルシミュレーション方式のテスト結果では、図8において、
・テストパタン番号801に故障を検出したシリアルシミュレーションのパタン番号と、その故障を検出したテスト結果出力端子名802とが記述され、スキャンFFのビット番号803は記述されない。
<入力データ:スキャンチェーン構成データ>
スキャンチェーン構成データは、
・スキャンチェーンを構成するスキャンFFのインスタンス名と、
・その並び順と、
・パタン生成器とスキャンチェーンとの境界の端子名と、
・圧縮器とスキャンチェーンとの境界の端子名と、
を含む。主に、製品の設計過程のテストパタン作成時などでレポートファイルとして得られる。
図9に、スキャンチェーンの構成例を示す。スキャンチェーン構成データ900は、
・スキャンチェーンを構成するスキャンFFのインスタンス名とその並び順903(スキャンチェーン1を構成するスキャンFFのインスタンス名と並び順 3:Top/macroA/sff3、2:Top/macroA/sff2、1:Top/macroA/sff1、スキャンチェーン2を構成するスキャンFFのインスタンス名と並び順 3:Top/macroB/sff3、2:Top/macroB/sff2、1:Top/macroB/sff1)と、
・パタン生成器とスキャンチェーンとの境界端子名901(スキャンチェーン1 decompressor1/Y、スキャンチェーン2 decompressor2/Y)と、
・圧縮器とスキャンチェーンとの境界端子名902(スキャンチェーン1 compressor1/A、スキャンチェーン2 compressor2/A)と、
を含む。図9において、階層設計のように、スキャンテスト設計が施された機能ブロックが複数存在する場合にはスキャンチェーンの構成データも機能ブロックの数だけ存在する。
<入力データ:テストパタン>
テストパタンは、LSIテスタから、検査対象の論理回路のテスト入力端子へ入力する“0”/“1”の系列と、入力系列に対する正常論理回路の応答情報(期待値)とを含む。また、スキャンテストのテストパタンは、シフトパタンとキャプチャパタンとが交互に配置される。
図10は、図3の被検査回路に対するテストパタンの構成の一例を示すである。テストパタン1000は、
・2つのテスト入力端子301、308に入力する“0”/“1”の系列1004、1005と、
・2つのテスト出力端子302、309から出力される信号に対応した正常論理回路の応答情報(期待値)1006、1007と
を含む。正常論理回路の応答情報は、“H”/“L”で表現し、“H”はテスト結果“1、“L”は“0”に対する応答情報である。
図10の系列1004、1005の同一列の2ビットが、2つのテスト入力端子301、308(図3参照)にパラレルに印加されるフォースパタンを構成し、同一列の1006、1007が、該フォースパタンに対応してテスト出力端子302、309(図3参照)から出力される信号と比較されるコンペアパタンであり、フォースパタンと対応するコンペアパタンが1つのテストベクトルを構成する。なお、簡単のため、2つのテスト入力端子301、308(スキャンチェーン304、305の入力)以外の入力端子に入力される信号(例えばスキャンクロック、制御信号等)のテストパタンは省略されている。テスト入力端子301に入力するスキャンシフトパタンの系列1001、1002、1003は、3ビットである。また、シフトパタン1001、1002、1003の隣接パタン間のパタンは、キャプチャパタンとなる。
<パタン圧縮器のテストパタン>
パタン圧縮技術に対するテストパタンは、スキャンテスト手法のテストパタンと同様の構成である。図11は、圧縮器を備えた図4の被検査回路に対するテストパタンを示す図である。
図11を参照すると、テストパタン1100はテスト入力端子408に入力する“0”/“1”の系列1104と、テスト出力端子409から出力される正常論理回路の応答情報1105(期待値)を備えている。系列1104は、パタン生成器401の入力パタンに対応し、正常論理回路の応答情報1105は、圧縮器402の出力値に対応する。
図1の故障診断システムは、入力データ1を用いて、コンピュータ上に、実製品と同じ構造をもつ回路を仮想的に構築し、テスト時の状態をシミュレーションする。特に、スキャンテスト設計が施された機能フロック回路と、その他の回路を含む論理回路全体を対象とした故障個所の推定(故障診断)を行う。
<実施形態の動作>
図2は、実施形態1の動作手順を示すフローチャートである。図1、図2、図4を参照して、実施形態1の動作について詳細に説明する。
まず、入力データ1より、
・テストパタンと、
・スキャンチェーンの構成情報と、
・設計データと
をデータ処理部8に入力し、コンピュータ上に、実製品と同じ構造をもつ論理回路を仮想的に構築する。次に、データ処理部8の各手段(処理)を、図2の3ステップ201〜203で実現する。設計データは、テスト対象となる回路の設計情報である。
<回路分割ステップ>
回路分割手段2(図1参照)による回路分割ステップ201(図2参照)では、被検査回路(論理回路全体)400(図4参照)を、パラレルシミュレーションを実行する機能ブロック414(パラレル領域)と、シリアルシミュレーションを実行する、機能ブロック414以外の付加回路(シリアル領域)とに分割する。そして、分割した回路情報(分割回路データ)を、分割回路データ記憶部9に記憶する。パラレル領域は、少なくとも、UDL回路403と、スキャンチェーン404、405とを含む機能ブロック414を含む。シリアル領域は、少なくともパタン生成器401と圧縮器402とを含む。
特に制限されるものでないが、以下では、回路分割の具体例について、図4のパタン圧縮技術を採用した被検査回路400を用いて説明する。
はじめに、被検査回路400の全てのノードを不定値“X”で初期化し、機能ブロック414の中にあるスキャンFF406a〜406c、407a〜407cの保持する状態値を“1”又は“0”に設定する。
次に、全てのスキャンチェーン(404、405)の入力端子(410、412)及びスキャンチェーン(404、405)の出力端子(411、413)に接続するノードを全て切断した上で、被検査回路400の1クロック分のシミュレーションを実行する。すなわち、スキャンチェーン(404、405)の入力端子(410、412)に接続するパタン生成器401の出力ノードを、該入力端子(410、412)から切断し、スキャンチェーン(404、405)の出力端子(411、413)に接続する圧縮器402の入力ノードを、該出力端子(411、413)から切断した状態で、被検査回路400の1クロック分のシミュレーションを実行する。このとき、スキャンFF406a〜406c、407a〜407cはそれぞれシリアルに接続しなくてもよい(スキャンモードに設定せず、スキャンFF内のマルチプレクサはスキャン入力端子SIでなくデータ端子Dを選択してもよい)。
回路分割手段2(図1参照)は、前記シミュレーションによって、
・スキャンFFの保持している状態値と同じ論理値に変化したノード、及び、
・前記ノードに接続するゲート、
をパラレル領域として抽出する。すなわち、被検査回路400において、スキャンチェーンの複数のスキャンFFの状態のパラレル出力の影響が及ぶ範囲の回路部は、パラレルシミュレーションが可能であるため、スキャンチェーンとともに、パラレル領域として抽出する。スキャンチェーンの複数のスキャンFFのパラレル値によって値が変化するノードや該ノードに接続するゲートを含む回路部としてスキャンFFの出力を入力とする組み合わせ回路(図4のUDL回路403)、及び該組み合せ回路の出力に接続される順序回路(例えばUDL回路403の出力に接続されるFF(スキャンFF))が含まれる。
回路分割手段2(図1参照)は、被検査回路400において、前記パラレル領域以外の回路(スキャンチェーン無し)をシリアル領域として抽出する。シリアル領域は、パラレル領域の入力ノードであるスキャンチェーン(図4の404、405)の入力に出力が接続された回路部(図4の401)と、スキャンチェーン(図4の404、405)の出力に入力が接続された回路部(図4の402)とを含む。
図12は、回路分割手段2(図1参照)によって、図4の被検査回路400を回路分割した後の構成を示す図である。パタン生成器1204と圧縮器1205は、シリアル領域1201である。機能ブロックはパラレル領域1210である。なお、パタン生成器の出力端子1206、1208は、パラレル領域の入力端子1211、1213と接続関係にあり、パラレル領域の出力端子1212、1214は、圧縮器の入力端子1207、1209と接続関係にある。
回路分割手段2では、被検査回路400をパラレル領域とシリアル領域に分割するために、スキャンFFの保持する状態値が変化しないように、回路動作及びテストパタンを制御しながら、シミュレーションを実行し、
・スキャンFFの保持する状態値と同じ論理値に変化したノード、及び、
・前記ノードに接続するゲート
をパラレル領域として抽出し、前記パラレル領域以外の論理回路をシリアル領域として抽出する。
より具体的な例として、例えば、次の(1)、あるいは(2)のような方法を用いても良い(但し、限定されない)。
<方法1>
(1−1)被検査回路400の全てのノードを“0”又は“1”で初期化し、被検査回路中の機能ブロックの中にある全てのスキャンFFの保持する状態値を“X”に設定する。
(1−2)次に前記スキャンFFへのクロック信号を供給するノードを切断するか、又は、入力データ1のテストパタンのクロック入力を削除して、被検査回路400の1クロック分のシミュレーションを実行する。
(1−3)前記シミュレーションによって、
・スキャンFFの保持している状態値と同じ論理値に変化したノード、及び、
・前記ノードに接続するゲート
をパラレル領域として抽出し、被検査回路400において、前記パラレル領域以外の回路をシリアル領域として抽出する。
<方法2>
(2−1)まず、被検査回路400の全てのノードを“0”又は“1”で初期化し、被検査回路中の機能ブロックの中にある全てのスキャンFFの保持する状態値を“X”に設定する。
(2−2)次に、前記スキャンFFの保持する状態値の書き換えを禁止して、被検査回路の1クロック分のシミュレーションを実行する。
(2−3)前記シミュレーションによって、
・スキャンFFの保持している状態値と同じ論理値に変化したノード、及び、
・前記ノードに接続するゲート
をパラレル領域として抽出し、被検査回路400において、前記パラレル領域以外の回路をシリアル領域として抽出する。
<期待値計算ステップ>
次に、期待値計算手段3(図1参照)による期待値計算ステップ202(図2参照)の一例について説明する。期待値計算ステップ202では、分割回路データ記憶部9(図1参照)より、図2の回路分割ステップ201で分割した回路情報を読み出す。
そして、入力データ1(図1参照)のテストパタンを用いてパラレル領域には、パラレルシミュレーションを実行し、シリアル領域には、シリアルシミュレーションを実行することで、シリアル領域とパラレル領域との期待値を求め、期待値データ記憶部10に記憶する。つまり、期待値データ記憶部10(図1参照)には、図12のシリアル領域1201の期待値と、図12のパラレル領域1210の期待値とが記憶される。
期待値計算ステップ202は、図13に示すように、3つのステップ1301〜1303を含む(期待値計算手段3(図1参照)は、ステップ1301〜1303を実行する)。図4と図12とを用いて、各ステップを以下に説明する。
ステップ1301のシリアル領域のシミュレーション(パラレル領域の入力パタン算出)では、分割回路データ記憶部9(図1参照)よりシリアル領域1201の回路情報を読み出し、入力データ1(図1参照)に含まれるテストパタンに基づき、シリアル領域1201におけるシミュレーションを実行し、シリアル領域1201内に存在するパタン生成器1204から生成されるパタンを得る。具体的には、入力データ1のテストパタンを、パタン生成器1204の入力端子1202に印加し、パタン生成器1204の出力端子1206、1208から出力される値を抽出する。
入力データ1に含まれるテストパタンのそれぞれについてシミュレーションが全て完了すると、ステップ1302のパラレル領域のシミュレーション(パラレル領域の期待値算出)へ移行する。
ステップ1302のパラレル領域のシミュレーションでは、まず、分割回路データ記憶部9(図1参照)よりパラレル領域1210の回路情報を読み出す。
次に、ステップ1301のシリアル領域のシミュレーションで求めたパタン生成器1204の出力端子1206、1208から出力される値(パタン生成器出力データ)を、スキャンチェーンの入力パタンとして用いることで、パラレル領域1210のパラレルシミュレーションを実行し、パラレル領域1210の出力(機能ブロックの出力:スキャンチェーンの出力)を、パラレル領域の期待値として、期待値データ記憶部10(図1参照)に記憶する。
スキャンチェーンの入力パタンの全てに関するシミュレーションが完了すると、ステップ1303のシリアル領域のシミュレーション(シリアル領域の期待値算出)へ移行する。
ステップ1302のパラレル領域のシミュレーションを、図13を参照して説明する。・ステップ1301のシリアル領域のシミュレーションで求めたパタン生成器1204の出力端子1206の出力値を、当該出力端子1206と接続関係にあるパラレル領域1210の入力端子1211に入力し、パタン生成器1204の出力端子1208の出力値を、当該出力端子1208と接続関係にあるパラレル領域1210の入力端子1213に入力する。入力データ1のテストパタンがシフトパタンである場合、パラレル領域1210内のスキャンチェーンのシフト動作を省略して、スキャンFFに、直接、入力パタンを設定する。キャプチャパタン時には、スキャンチェーンの入力端子に入力パタンを設定して、パラレルシミュレーションを行う。パラレル領域1210の出力端子1212、1214の出力は、期待値として、期待値データ記憶部10(図1参照)に記憶する。
ステップ1303のシリアル領域のシミュレーションでは、まず、分割回路データ記憶部9(図1参照)より、シリアル領域1201の回路情報を読み出す。次に、入力データ1(図1参照)のテストパタンを用いて、パタン生成器1204の入力1202に与え、ステップ1302のパラレル領域のシミュレーションで求めたパラレル領域1210の期待値(期待値データ記憶部10(図1参照)に記憶されている)を、圧縮器1205の入力1207、1209に与え、シリアルシミュレーションを実行し、パタン生成器1204の出力1206、1208、圧縮器1205の出力1203を、シリアル領域1201の期待値として求め、期待値データ記憶部10に記憶する。
パラレル領域1210の期待値を算出した後に、ステップ1303で、再び、シリアル領域1201のシミュレーションを実行することで、シリアル領域1201内の圧縮器1205の入力値が決定される。
ステップ1303のシリアル領域のシミュレーションを具体的に説明する。ステップ1302のパラレル領域のシミュレーションで求めたパラレル領域1210の出力端子1212の出力値を、該出力端子1212と接続関係にある圧縮器1205の入力端子1207に設定し、パラレル領域1210の出力端子1214の出力値を、該出力端子1214と接続関係にある圧縮器1205の入力端子1209に設定してシリアルシミュレーションを行う。このとき、ステップ1301のシリアル領域のシミュレーションと同様に、パタン生成器1204の入力端子1202には、入力データ1(図1参照)のテストパタンが入力される。そして、シリアル領域内の全ノードの期待値は、パラレル領域のシミュレーション1302と同様に、期待値データ記憶部10(図1参照)に記憶する。
入力データ1(図1参照)のテストパタンの全てのシミュレーションが完了すると、図2の期待値計算ステップ202が終了し、図2の故障診断ステップ203に移行する。
なお、図13では、シリアル領域、パラレル領域、シリアル領域の順で実行され、前段ステップのシミュレーションの結果得られたパタンを後段ステップのシミュレーションの入力パタンとして用いる例を説明したが、回路分割される論理回路の構成、及び回路分割の仕方によっては、パラレル領域、シリアル領域、パラレル領域の順で実行され、前段ステップのシミュレーションの結果得られたパタンを後段ステップのシミュレーションの入力パタンとして用い、シリアル領域、パラレル領域の期待値を取得するようにしてもよい。あるいは、シリアル領域、パラレル領域、シリアル領域、パラレル領域、・・・の順で交互にシミュレーションを行うようにしてもよい。同様に、パラレル領域、シリアル領域、パラレル領域、シリアル領域・・・の順で交互にシミュレーションを行うようにしてもよい。
<故障診断ステップ>
次に、故障診断手段4(図1参照)による故障診断ステップ203(図2参照)を説明する。故障診断ステップ203では、図2の期待値計算ステップ202で求めた期待値データを用いて、図14に示したフローに従い、スキャンテスト回路を備えた論理回路全体の故障診断を行う(故障診断手段4(図1参照)は図14に示した各ステップを実行する)。
まず、ステップ1401の診断対象領域の決定処理において、入力データ1(図1参照)のテスト結果に含まれる、
・故障の影響によって正常回路の期待値とは異なる値を出力する端子、又は、
・故障の影響によって正常回路の期待値とは異なる値を取り込むスキャンFF
が属するシリアル領域又はパラレル領域を、故障診断する対象領域(診断対象領域)に決定する。なお、入力データ1(図1参照)のテスト結果には、正常回路の期待値とは異なる値を出力した端子と、正常回路の期待値とは異なる値を出力したスキャンFFとが、故障出力端子と記載される。
次に、診断対象領域の決定ステップ1401で決定した診断対象領域が、シリアル領域(図12の1201)である場合、期待値データ記憶部10(図1参照)より、シリアル領域の期待値(図13のステップ1303のシリアル領域のシミュレーション(シリアル領域の期待値算出)で求められる)を読み出し、入力データ1(図1参照)の前記テスト結果に含まれる故障出力端子に故障を設定して、シリアル領域(図12の1201)の故障診断1403を実行する。
設定した診断対象領域がパラレル領域(図12の1210)である場合、期待値データ記憶部10(図1参照)よりパラレル領域の期待値(図13のステップ1302のパラレル領域のシミュレーション(パラレル領域の期待値算出)で求められる)を読み出し、入力データ1(図1参照)の前記テスト結果に含まれる故障出力端子に故障を設定して、パラレル領域の故障診断1405を実行する。
シリアル領域の故障診断1403の実行後は、シリアル領域の故障診断結果(故障候補)を基に、シリアル領域の終了条件1404を評価し、故障診断ステップ203を終了するか、パラレル領域の故障診断1405へ移行するかを決定する。
シリアル領域の終了条件1404は、
直前のステップ1403で求めたシリアル領域の故障診断結果(故障候補)に、
直前のステップ1403で求めた前記パラレル領域と接続関係のある前記シリアル領域の入力端子(図12の圧縮器1205の入力端子1207、1209)が含まれる場合に(シリアル領域の終了条件1404が成立せず、ステップ1404のNo分岐)、 前記シリアル領域の入力端子と接続関係にあるパラレル領域の出力端子(例えば図12のパラレル領域1210の出力端子1212、1214)又はスキャンFFを、故障出力端子に設定して、パラレル領域の故障診断1405へ移行する。
パラレル領域の故障診断1405へ移行しない場合(ステップ1404のYes分岐、シリアル領域の終了条件1404の否定)、すなわち、
直前のステップ1403で求めたシリアル領域の故障候補に、直前のステップ1403で求めた前記パラレル領域と接続関係のある前記シリアル領域の入力端子(図12の圧縮器1205の入力端子1207、1209)が含まれない場合に、故障診断ステップ203(図2参照)を終了し、終了するまで行った全ての領域の故障候補を出力部5(図1参照)へ出力する。
一方、パラレル領域の故障診断1405の実行後は、パラレル領域の故障候補を元に、パラレル領域の終了条件1406を評価し、故障診断ステップ203を終了するか、シリアル領域の故障診断1403へ移行するかを決定する。
パラレル領域の終了条件1406は、
直前のステップ1405で求めたパラレル領域(図12の1210)の故障候補に、
(c)前記パラレル領域と接続関係にあるシリアル領域の入力端子が含まれる、
又は、
直前のステップ1405で求めたパラレル領域の故障候補に、
(d−1)スキャンFFが含まれ、且つ、(d−2)前記スキャンFFが属するスキャンチェーンのスキャン入力端子が前記パラレル領域と接続関係にあるシリアル領域の入力端子である、
場合に、前記(c)、(d−2)の前記入力端子と接続関係にあるシリアル領域の出力端子(図12の1201の出力端子1203)を故障出力端子に設定して、シリアル領域の故障診断1403へ移行する。
シリアル領域の故障診断1403へ移行しない場合、すなわち、
(e)直前のステップ1405で求めたパラレル領域の故障候補に、前記パラレル領域と接続関係にあるシリアル領域の入力端子が含まれない場合、且つ、
(f−1)直前のステップ1405で求めたパラレル領域の故障候補にスキャンFFが存在しない、または、(f−2)直前のステップ1405で求めたパラレル領域の故障候補にスキャンFFが存在し、前記スキャンFFが属するスキャンチェーンの入力端子が、前記シリアル領域と接続関係にあるパラレル領域の入力端子ではない、
場合に、
故障診断ステップ203を終了し、終了するまでに行った全ての領域の故障候補を出力部5(図1参照)へ出力する。
<故障診断の詳細例>
次に、故障診断手段4(図1参照)による故障診断ステップ203(図2参照)を説明する。図4の論理回路(被検査回路400)と、前記論理回路に対して回路分割ステップ201を実行した図12の論理回路とを用いて、故障診断ステップ203を詳細に説明する。
図4において、パタン生成器401の内部に故障が生じ、その故障の影響がパタン生成器401、機能ブロック414、及び、圧縮器402を順に通過し、テスト出力端子409によって故障検出されたものとする。このとき、入力データ1に相当するテスト結果には、図8のような故障検出情報が含まれる。
まず、診断対象領域の決定(ステップ1401)にて入力データ1(図1参照)のテスト結果に記載の故障出力端子が属する領域を決定する。今回の例では、故障検出したテスト出力端子409は、図12のテスト出力端子1203に相当し、シリアル領域(図12の1201)が診断対象領域に決定する。
次に、シリアル領域の故障診断1403を実行する。ここでは、シリアル領域(図12の1201)の期待値を、期待値データ記憶部10(図1参照)より読み出し、圧縮器(図12の1205)の出力端子(図12の1203)を故障検出端子として、シリアル領域(図12の1201)の故障診断を行い、シリアル領域の故障候補を求める。
言い変えると、図12の圧縮器1205の故障診断を行い、圧縮器1205内の故障候補を求める。そして、シリアル領域の終了条件1404(図14)を判定する。
図12の圧縮器1205の入力端子1207が、シリアル領域1201の故障候補に含まれている場合、圧縮器1205の入力端子1207は、パラレル領域(図12の1210)と接続関係にあるため、図14のパラレル領域の故障診断1405へ移行する。
パラレル領域の故障診断1405は、図12のパラレル領域1210の期待値を期待値データ記憶部10(図1参照)より読み出し、圧縮器1205の入力端子1207と接続関係にあるパラレル領域1210の出力端子1212を故障検出端子として設定して故障診断を行う。パラレル領域1210の故障候補にスキャンFFが含まれ、そのスキャンFFが属するスキャンチェーンの入力端子が、例えばパラレル領域1210の入力端子1211であったとき、パラレル領域の終了条件1406(図14)を判定して、再度、シリアル領域の診断処理1403(図14)に移行する。
シリアル領域の故障診断1403では、図12のシリアル領域1201の期待値を期待値データ記憶部10(図1参照)より読み出し、前記故障診断で求まったスキャンチェーンの入力端子がパラレル領域1210の入力端子1211と接続関係にあるパタン生成器1204の出力端子1206を、故障検出端子として、パタン生成器1204の故障候補を求める。
そして、シリアル領域の終了条件1404を判定して、故障診断ステップ203(図2)が終了する。このとき、これまでの故障診断で求めたパラレル領域の故障候補とシリアル領域の故障候補とを全て出力部5(図1参照)へ出力する。
また、故障診断ステップ203(図2)において、シリアル領域とパラレル領域とを跨ぐ故障シミュレーションを実行して、故障診断精度を高めることができる。例えば、図12のパタン生成器1204の故障診断終了後、故障候補となったパタン生成器1204内のノードに対して、故障シミュレーションを実行する。
故障シミュレーションのために仮定した故障の影響は、図12のパタン生成器1204と機能ブロック1210と圧縮器1205とを通過し、圧縮器1205の出力端子1203(図4のテスト出力端子409)で観測される。
図4のテスト出力端子409で観測された故障シミュレーション結果と入力データ1のテスト結果とを比較し、比較した結果が、
完全に一致している場合、故障シミュレーション時に仮定した故障が真の故障である可能性が高く、
完全に一致していない場合、故障シミュレーション時に仮定した故障は真の故障である可能性が低い。
出力部5(図1参照)では、故障診断ステップ203(図2参照)によって求めたパラレル領域の故障候補と、シリアル領域の故障候補とをまとめ、出力データ6(図1参照)とする。
表示部7(図1参照)は、出力データ6を表示して、実行例の動作が完了する。表示部7では、出力データ6を、図15(a)のようにテキスト形式で表示し、図15(b)のように、被検査回路400のレイアウト図上に、故障候補をハイライトして表示する。図15(a)の故障候補リスト1500は、2つの領域の故障候補にて構成され、故障候補1501はパラレル領域の故障候補を示し、故障候補1502はシリアル領域の故障候補を示す。
また、図15(b)のレイアウト図1503は、パラレル領域の故障候補とシリアル領域の故障候補をハイライト表示した図である。パラレル領域の故障候補ノード1504とシリアル領域の故障候補1505ノードとは異なるハイライト色で区別して表示してもよい。
<実施形態2>
次に実施形態2について説明する。スキャンテスト回路を有する論理回路がパタン圧縮回路を含み、前記論理回路を故障診断する場合、図2の回路分割ステップ201、期待値計算ステップ202、故障診断ステップ203により、パタン圧縮回路に含まれる圧縮器をシリアル領域として故障診断するため、圧縮器の回路構成に依存せずに故障診断を行い、故障候補を求めることができる。圧縮器としては、例えば図16(A)の圧縮器1600のように、複数の2入力EXOR(Exclusive OR:排他的論理和回路)ゲート1601のツリー構造であってもよい。初段(ツリー末端)の2入力EXORの入力には、スキャンチェーンの出力端子がそれぞれ接続される(2入力EXORは2入力が一致したとき“0”、不一致のとき“1”を出力する)。図16(A)の例では、4本のスキャンチェーンの出力(スキャン出力端子)1601_1〜1601_4(2ビット×2の4ビット)が2個の2入力EXOR1601_1、1601_2に入力され、出力1603に接続されたEXOR1601_3から1ビット情報に圧縮されて出力される。
あるいは、図16(B)の圧縮器1604のように、フリップフロップ1605とEXORゲートで構成されるMISR(Multiple Input Signature Register)回路でもよい。3入力EXOR1608_1には、スキャンチェーンの出力1606_1が入力され、さらにEXOR1608_1の出力を入力とするフリップフロップ1605_1の出力(スキャン出力端子)と、EXOR1608_2の出力を入力とするフリップフロップ1605_2の出力が帰還入力され、3入力EXOR1608_2には、スキャンチェーンの出力(スキャン出力端子)1606_2が入力され、さらに、EXOR1608_2の出力を入力とするフリップフロップ1605_2と、フリップフロップ1605_1の出力が帰還入力される。なお、3入力EXORは3入力が一致した場合、“0”、それ以外の場合、“1”を出力する。
あるいは、圧縮器として、圧縮器回路内に不定値“X”の伝播を防ぐ仕組みを持つX−tolerant機構を含んでいてもよい。X−tolerant機構について、図17を用いて説明する。X−torelant機構を含む圧縮器1700は、圧縮器1702の入力側にX−torelant機構1701を備える。X−torelant機構1701は単純なANDゲートにて構成され、スキャンチェーンの出力端子(図4の411、413)に接続するノード1703、1704と、ANDゲート1708、1709を制御するノード1705、1706とが入力される。スキャンチェーンの出力端子(図4の411、413)から不定値“X”が伝搬する場合、X−torelant機構1701のANDゲート1708、1709には、当該ANDゲート1708、1709を制御するノード1705、1706から制御信号“0”が入力され、ANDゲート1708、1709の出力を強制的に“0”とする。ANDゲートの制御信号は、パタン生成器などスキャンロジック以外のシリアル領域が生成する。このような仕組みにより、不定値“X”の圧縮器1702への入力を防ぐ。
<実施形態3>
次に実施形態3について説明する。スキャンテスト回路を有する論理回路が、階層設計されコントローラ回路を含んでいても、スキャンテスト回路を有する論理回路全体を故障診断可能としている。例えば、図1、図2、図5を参照して、実施形態3の動作について詳細に説明する。
入力データ1より、テストパタンと、スキャンチェーンの構成情報と、設計データとをデータ処理部8(図1参照)に入力し、コンピュータ上に実製品と同じ構造をもつ論理回路を仮想的に構築する。本実施形態では、コントローラ回路が機能ブロック503(図5参照)を選択する入力データ1(図1参照)のテストパタンであるとし、データ処理部8の各手段を、図2に示す3つのステップで実現する。
回路分割手段2(図2の回路分割ステップ201)では、被検査回路500(図5参照)をパラレルシミュレーションを実行する機能ブロック503(図5参照)を含む回路(パラレル領域)、シリアルシミュレーションを実行するコントローラ回路を含む回路(シリアル領域)に分割し、分割回路データ記憶部9に記憶する。
期待値計算手段3(図2の期待値計算ステップ202)では、前記実施形態1と同様に、図13に示すフローに沿って被検査回路500全体の期待値を求める。
シリアル領域のシミュレーション1301では、分割回路データ記憶部9(図1参照)よりシリアル領域の回路情報を読み出し、入力データ1(図1参照)のテストパタンを入力としてシリアル領域のシミュレーションを実行してシリアル領域内に存在するコントローラ回路から出力される出力値を得る。例えば、コントローラ回路501(図5参照)の出力端子と接続のある信号線504(図5参照)を観測して出力値を抽出する。入力データ1の全てのテストパタンのパタンのシミュレーションが完了すると、パラレル領域のシミュレーション1302へ移行する。
パラレル領域のシミュレーション1302では、まず、分割回路データ記憶部9(図1参照)よりパラレル領域の回路情報を読み出す。
次に、シリアル領域のシミュレーション1301にて求めたコントローラ回路501の出力値を、信号線504と接続関係にある機能ブロック503中のスキャンチェーンのスキャン入力端子に設定して、パラレル領域のパラレルシミュレーションを実行する。そしてパラレル領域内の全ノードの期待値を期待値データ記憶部10(図1参照)に記憶する。全ての入力パタンのシミュレーションが完了すると、シリアル領域のシミュレーション1303へ移行する。
シリアル領域のシミュレーション1303では、まず、分割回路データ記憶部9(図1参照)よりシリアル領域の回路情報を読み出す。次に、入力データ1(図1参照)のテストパタンと、パラレル領域のシミュレーション1302処理にて求めたパラレル領域の期待値とを用いて、シリアルシミュレーションを実行し、シリアル領域の全ノードの期待値を求めて、期待値データ記憶部10(図1参照)に記憶する。
故障診断手段4(図2の故障診断ステップ203以降)の処理は、前記実施形態1と同様であるため、説明は省略する。
<実施形態4>
実施形態4においては、図5に示すように、スキャンテスト回路を有する論理回路が階層設計されコントローラ回路501を含んでおり、機能ブロック502、503はそれぞれ、パタン生成器(図4の401)と圧縮器(図4の402)を含んでいる。
コントローラ回路501はテスト対象となる機能ブロックを切り替える。コントローラ回路501と機能ブロック502、503とを接続している信号線504、505、506、507について、機能ブロック502、503が図4と同じ構成の場合、信号線504は、機能ブロック503のテスト入力端子(図4のテスト入力端子408(パタン生成器401の入力端子))と接続し、信号線506は、機能ブロック503のテスト出力端子(図4のテスト出力端子409(圧縮器402の出力端子))と接続する。信号線505は、機能ブロック502のテスト入力端子(図4のテスト入力端子408(パタン生成器401の入力端子))と接続し、信号線507は、機能ブロック502のテスト出力端子(図4のテスト出力端子409(圧縮器402の出力端子))と接続される。階層設計された被検査回路のテスト時の動作を説明する。不図示のテスタからテストパタンがコントローラ入力端子508に印加される。コントローラ回路501は、そのテストパタンの一部より、テストすべき機能ブロックを選択する。選択された機能ブロックを例えば機能ブロック503とすると、コントローラ回路501に入力されたテストパタンは、信号線504を介して機能ブロック503に入力される。
機能ブロック502、503の各々では、前記実施形態1と同様に動作で、回路分割ステップ201、期待値計算ステップ202、故障診断ステップ203が行われ、スキャンテスト回路を有する論理回路全体を故障診断が行われる。
<実施形態5>
図2の故障診断ステップ203において、故障診断は、故障出力端子から入力端子側に故障の伝播経路を推測しながら真の故障を追跡する故障診断法であってもよい。
また、診断対象の領域に故障を仮定してシミュレーションを行い、そのシミュレーション結果とテスト結果とが一致する箇所を故障候補とする故障シミュレーション法でもよい。
さらに、図2の故障診断ステップ203の実行の前に、分割回路データ記憶部9(図1)の分割回路を対象にした複数個所の故障シミュレーションを実行して故障辞書し、故障診断ステップ203時に、前記故障辞書とテスト出力とを比較して、故障箇所を推定することもできる。
<実施形態の作用効果>
図18は、上記実施形態の作用効果の一例を説明する図である。図18(A)は、2Mゲート規模と6Mゲート規模の論理回路の故障シミュレーションにおいて、パラレルシミュレーションとシリアルシミュレーションの実行時間(縦軸、ただし、対数スケール)の一例を示している。パラレルシミュレーションの導入により、シリアルシミュレーションと比較して、10の2又は3乗のオーダでシミュレーション時間を短縮している(図18(A))。なお、2M(Mega)ゲート規模と6M(Mega)ゲート規模のスキャンチェーン数は32、最大チェーン長は2151、5059、シミュレーションパタン数はともに10とされる(図18(B))。シミュレーションの実行環境は図18(C)に示したものとされる。回路規模が大きくなり、スキャンチェーンの長さが長いほど、パタンシミュレーションのシリアルシミュレーションに対するシミュレーション時間の短縮効果が顕著となる。一方、パタンシミュレーションの実行時間についてみると、6Mゲート規模は2Mゲート規模の2.5程度とされ、回路規模(最大チェーン数等)にほぼ線形に依存している。
このように、論理回路中のパラレルシミュレーションが実施可能な領域(パラレル領域)は積極的にパラレルシミュレーションを実施することで、現実的な時間での故障診断が可能となる。このために、論理回路をパラレル領域とシリアル領域とを分割する必要があり、また、シリアル領域に対してシリアルシミュレーションを行うことで、階層設計におけるコントローラ回路や、パタン圧縮回路におけるパタン生成器、圧縮器などの付加回路の故障診断が可能となる。
なお、上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 入力データ
2 回路分割手段
3 期待値計算手段
4 故障診断手段
5 出力部
6 出力データ
7 表示部
8 データ処理部
9 分割回路データ(記憶部)
10 期待値データ(記憶部)
300、400、500 被検査回路
301、308、408、508 テスト入力端子
302、309、409、509 テスト出力端子
303、403 ユーザロジック回路
304、305、404、405、601、701 スキャンチェーン
306a〜306c、307a〜307c、406a〜406c、407a〜407c スキャンフリップフロップ
401 パタン生成器
402 圧縮器
410、412 スキャン入力端子
411、413 スキャン出力端子
414、502、503 機能ブロック
501 コントローラ回路
504、505、506、507 信号線
508 コントローラ入力端子
603、703、1000、1100 テストパタン
800 テスト結果
801 テストパタン番号
802 テスト結果出力端子名
803 ビット信号
900 スキャンチェーン構成データ
901 パタン生成器とスキャンチェーンとの境界端子名
902 圧縮器とスキャンチェーンとの境界端子名
903 スキャンチェーンを構成するスキャンFFのインスタンス名とその並び順
1004、1005、1104 「0/1」の系列
1006、1007、1105 正常論理回路の応答情報
1001、1002、1003 シフトパタンの系列
1106、1107 キャプチャパタン系列
1201 シリアル領域
1202 パタン生成器の入力端子
1203 圧縮器の出力端子
1204 パタン生成器
1205 圧縮器
1206、1208 パタン生成器の出力端子
1207、1209 圧縮器の入力端子
1210 パラレル領域
1211、1213 パラレル領域の入力端子
1212、1214 パラレル領域の出力端子
1500 故障候補リスト
1501、1502 故障候補
1503 レイアウト図
1504 パラレル領域の故障候補ノード
1505 シリアル領域の故障候補ノード
1600 EXORゲートのツリー構造の圧縮器
1601_1、1601_2、1601_3 EXORゲート
1602_1、1602_2、1602_3、1602_4、1606_1、1606_2 スキャン出力端子
1603、1607 テスト出力端子
1604 MISR構造をもつ圧縮器
1605_1、1605_2 フリップフロップ
1608_1、1608_2 3入力EXOR
1700 X−torelant機構を含む圧縮器
1701 X−torelant機構
1702 圧縮器
1703、1704 スキャン出力端子に接続するノード
1705、1706 ANDゲートの制御信号を伝搬させるノード
1707 テスト出力端子
1708、1709 ANDゲート

Claims (21)

  1. スキャンテスト回路を備えた論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報を入力し、
    前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれパラレル領域とし、前記論理回路において前記パラレル領域以外の1つ又は複数の回路部をそれぞれシリアル領域として抽出することで、前記論理回路をパラレル領域とシリアル領域に分割し、分割したパラレル領域とシリアル領域の回路情報を記憶部に記憶する回路分割手段と、
    前記記憶部からシリアル領域とパラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記1つ又は複数の組み合せのシリアル領域とパラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部に記憶する期待値計算手段と、
    前記記憶部から前記シリアル領域と前記パラレル領域の期待値を読み出し、前記テストパタンに対する前記論理回路のテスト出力を入力し、前記テスト出力、及び、前記シリアル領域と前記パラレル領域の前記期待値を用いて、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う故障診断手段と、
    を備えた故障箇所推定装置。
  2. 前記回路分割手段は、
    前記論理回路の全ノードの状態値を、不定値を含む予め定められた所定の論理値で初期化し、
    前記スキャンフリップフロップの保持する状態値を、初期化した前記論理値と異なる論理値に設定し、
    前記スキャンフリップフロップの保持する状態値が変化しないように回路動作及び前記テストパタンを制御しながら、前記論理回路のシミュレーションを実行し、
    前記論理回路のシミュレーションによって、
    前記スキャンフリップフロップの保持する前記状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれ前記パラレル領域として抽出し、
    前記論理回路中の前記パラレル領域以外の1つ又は複数の回路部をそれぞれ前記シリアル領域として抽出する、請求項1記載の故障箇所推定装置。
  3. 前記期待値計算手段は、
    入力されたテストパタンを用いて、予め定められた一つのシリアル領域又はパラレル領域のシリアル又はパラレルシミュレーションを実行し、
    前記シリアル又はパラレルシミュレーションの結果得られた前記一つのシリアル領域又はパラレル領域の出力パタンを用いて、前記一つのシリアル領域又はパラレル領域の出力と接続関係にある入力を有する別のパラレル領域又はシリアル領域のパラレル又はシリアルシミュレーションを実行し、
    前記パラレル又はシリアルパラレルシミュレーションの結果得られた前記別のシリアル領域又はパラレル領域の出力パタンを用いて、前記別のパラレル領域又はシリアル領域の出力と接続関係にある入力を有するさらに別のシリアル領域又はパラレル領域のシリアル又はパラレルシミュレーションを実行し、
    一方の領域のシミュレーション結果を用いた他方の領域のシミュレーションをシリアル領域とパラレル領域で交互に行い、前記シリアル領域と前記パラレル領域の期待値を求める、請求項1又は2記載の故障箇所推定装置。
  4. 前記期待値計算手段は、
    前記テストパタンを用いて、前記シリアル領域のうち、少なくとも前記スキャンチェーンの入力ノードと接続関係にある出力ノードを有する第1の回路部のシリアルシミュレーションを実行し、
    前記シリアルシミュレーションの結果得られた、前記シリアル領域の前記回路部の前記出力ノードからのパタンを、前記パラレル領域のうち、少なくとも、前記シリアル領域の出力ノードと接続関係にある入力ノードを有する前記スキャンチェーンのスキャンフリップフロップに設定してパラレルシミュレーションを実行し、
    前記パラレルシミュレーションの結果得られたパタンを用いて、前記シリアル領域のうち、少なくとも、前記パラレル領域の前記スキャンチェーンの出力ノードと接続関係のある入力ノードを有する第2の回路部のシリアルシミュレーションを実行することで、前記シリアル領域と前記パラレル領域のノードの期待値を求める、請求項1又は2記載の故障箇所推装置。
  5. 前記故障診断手段は、
    前記シリアル領域の故障候補を、前記シリアル領域の故障候補と接続関係にある前記パラレル領域の出力ノード又は前記スキャンフリップフロップに設定し、
    前記パラレル領域の故障候補を、前記パラレル領域の故障候補と接続関係にある前記シリアル領域の出力ノードに設定する、請求項1乃至4のいずれか1項に記載の故障箇所推定装置。
  6. 前記回路分割手段は、
    (A)前記論理回路の全ノードの状態値を不定値を含む任意の論理値で初期化し、
    (B)前記スキャンフリップフロップの保持する状態値を前記初期化した論理値と異なる論理値に設定し、
    (C)前記論理回路のシミュレーションの実行にあたり、
    (C−1)それぞれの前記スキャンチェーンの入力端子と出力端子と前記スキャンチェーンの入力端子と出力端子にそれぞれ接続するノードとの間を切断して前記論理回路のシミュレーションを実行、
    (C−2)前記スキャンフリップフロップへのクロック信号を供給するノードを切断するか、又は前記テストパタンのクロック入力を削除し前記スキャンフリップフロップに対してクロックを供給せずに前記論理回路のシミュレーションを実行、
    (C−3)前記スキャンフリップフロップに設定した状態値の変更を禁止して、前記論理回路のシミュレーションを実行、
    の前記(C−1)乃至(C−3)のいずれかを行い、
    (D)前記シミュレーションによって、前記スキャンフリップフロップの保持する状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを前記パラレル領域として抽出し、前記パラレル領域以外の論理回路をシリアル領域として抽出する、請求項1記載の故障箇所推定装置。
  7. 前記シリアル領域が、
    入力された前記テストパタンに応答して複数の前記スキャンチェーンの入力ノードへそれぞれ入力するパタンを生成する第1の回路部と、
    複数の前記スキャンチェーンの出力ノードからのパタンを受け圧縮して出力する第2の回路部と、
    を含み、
    前記期待値計算手段は、
    前記シリアル領域の前記第1の回路部に、前記テストパタンを印加してシリアルシミュレーションを実行し、前記シリアル領域の前記第1の回路部から生成されるパタン出力データを取得し、
    前記パラレル領域の回路情報を読み出し、前記パタン出力データを、前記スキャンチェーンの入力パタンとして、前記パラレル領域のパラレルシミュレーションを実行し、前記パラレル領域の出力を前記パラレル領域の期待値をとして取得し、
    前記パラレル領域のシミュレーションで求めた前記パラレル領域の期待値を、前記シリアル領域の前記第2の回路部に与え、且つ、前記シリアル領域の前記第1の回路部には前記テストパタンを与えてシリアルシミュレーションを実行し、前記シリアル領域の期待値を求める、請求項1記載の故障箇所推定装置。
  8. 前記故障診断手段は、
    前記テスト出力に含まれる、故障の影響によって正常回路の期待値とは異なる値を出力する端子又は故障の影響によって正常回路の期待値とは異なる値を取り込むスキャンフリップフロップを含む故障出力端子が属する前記シリアル領域又は前記パラレル領域に対して故障診断を行い、
    前記故障診断で得られた前記シリアル領域の故障候補に
    前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれる場合、
    前記入力端子と接続関係にある前記パラレル領域の出力端子又は前記スキャンフリップフロップを故障出力端子として、前記パラレル領域内の故障診断を行い、
    前記故障診断で得られた前記パラレル領域の故障候補に
    スキャンフリップフロップが含まれ、且つ、前記スキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にある、又は、
    前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれる場合、
    前記入力端子と接続関係にある前記シリアル領域の出力端子を故障出力端子として、前記シリアル領域の故障診断を行い、
    前記故障診断で得られた前記シリアル領域の故障候補に、
    前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれない場合、又は、
    前記故障診断で得られた前記パラレル領域の故障候補に、
    前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれず、且つ、スキャンフリップフロップが含まれない、又は、前記故障候補に含まれるスキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にない場合、
    故障診断を終了する、請求項1記載の故障箇所推定装置。
  9. 前記故障診断手段において、
    前記故障出力端子から故障伝播経路を入力側に追跡することで故障箇所を推定する、
    故障を定義して論理回路のシミュレーションを実行して、シミュレーション結果と故障出力端子とが一致する箇所を故障箇所として推定する、
    故障箇所と故障出力端子との対応が記述された辞書を用いて、テスト出力から故障箇所を推定する、
    のいずれかを行う、請求項1又は8記載の故障箇所推定装置。
  10. 前記論理回路が、
    それぞれがスキャンテスト回路を備えた論理回路からなる機能ブロックと、
    前記機能ブロックを制御するコントローラ回路と、
    を含む、請求項1乃至9のいずれか1項に記載の故障箇所推定装置。
  11. 前記故障診断手段から出力される前記パラレル領域の故障候補と前記シリアル領域の故障候補とを表示する表示部を備え、
    前記表示部は、前記論理回路のレイアウト上に、前記パラレル領域の故障候補と前記シリアル領域の故障候補を、判別を容易化する予め定められた所定の表示形態で表示する、請求項1、5、8、9のいずれか1項に記載の故障箇所推定装置。
  12. スキャンテスト回路を備えた論理回路の故障診断を、データ処理装置を用いて行う方法であって、
    前記論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報を入力し、
    前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれパラレル領域とし、前記論理回路において前記パラレル領域以外の1つ又は複数の回路部をそれぞれシリアル領域として抽出することで、前記論理回路を前記パラレル領域とシリアル領域に分割し、分割した前記パラレル領域と前記シリアル領域の回路情報を記憶部に記憶する回路分割ステップと、
    前記記憶部からシリアル領域とパラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記1つ又は複数の組み合せのシリアル領域とパラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部に記憶する期待値計算ステップと、
    前記記憶部から前記シリアル領域と前記パラレル領域の期待値を読み出し、前記テストパタンに対する前記論理回路のテスト出力を入力し、前記テスト出力、及び、前記シリアル領域と前記パラレル領域の前記期待値を用いて、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う故障診断ステップと、
    を含む故障箇所推方法。
  13. 前記回路分割ステップにおいて、
    前記論理回路の全ノードの状態値を、不定値を含む予め定められた所定の論理値で初期化し、
    前記スキャンフリップフロップの保持する状態値を、初期化した前記論理値と異なる論理値に設定し、
    前記スキャンフリップフロップの保持する状態値が変化しないように回路動作及び前記テストパタンを制御しながら、前記論理回路のシミュレーションを実行し、
    前記論理回路の前記シミュレーションによって、
    前記スキャンフリップフロップの保持する前記状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれ前記パラレル領域として抽出し、前記論理回路中の前記パラレル領域以外の1つ又は複数の回路部をそれぞれ前記シリアル領域として抽出し、
    前記期待値計算ステップにおいて、
    前記テストパタンを用いて、前記シリアル領域のうち、少なくとも前記スキャンチェーンの入力ノードと接続関係にある出力ノードを有する第1の回路部のシリアルシミュレーションを実行し、
    前記シリアルシミュレーションの結果得られた、前記シリアル領域の前記回路部の前記出力ノードからのパタンを、前記パラレル領域のうち、少なくとも、前記シリアル領域の出力ノードと接続関係にある入力ノードを有する前記スキャンチェーンのスキャンフリップフロップに設定してパラレルシミュレーションを実行し、
    前記パラレルシミュレーションの結果得られたパタンを用いて、前記シリアル領域のうち、少なくとも、前記パラレル領域の前記スキャンチェーンの出力ノードと接続関係のある入力ノードを有する第2の回路部のシリアルシミュレーションを実行することで、前記シリアル領域と前記パラレル領域のノードの期待値を求め、
    前記故障診断ステップにおいて、
    前記シリアル領域の故障候補を、前記シリアル領域の故障候補と接続関係にある前記パラレル領域の出力ノード又は前記スキャンフリップフロップに設定し、
    前記パラレル領域の故障候補を、前記パラレル領域の故障候補と接続関係にある前記シリアル領域の出力ノードに設定する、請求項12記載の故障箇所推方法。
  14. 前記回路分割ステップにおいて、
    (A)前記論理回路の全ノードの状態値を不定値を含む任意の論理値で初期化し、
    (B)前記スキャンフリップフロップの保持する状態値を前記初期化した論理値と異なる論理値に設定し、
    (C)前記論理回路のシミュレーションの実行にあたり、
    (C−1)それぞれの前記スキャンチェーンの入力端子と出力端子と前記スキャンチェーンの入力端子と出力端子にそれぞれ接続するノードとの間を切断して前記論理回路のシミュレーションを実行、
    (C−2)前記スキャンフリップフロップへのクロック信号を供給するノードを切断するか、又は前記テストパタンのクロック入力を削除し前記スキャンフリップフロップに対してクロックを供給せずに前記論理回路のシミュレーションを実行、
    (C−3)前記スキャンフリップフロップに設定した状態値の変更を禁止して、前記論理回路のシミュレーションを実行、
    の前記(C−1)乃至(C−3)のいずれかを行い、
    (D)前記シミュレーションによって、前記スキャンフリップフロップの保持する状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを前記パラレル領域として抽出し、前記パラレル領域以外の論理回路をシリアル領域として抽出する、請求項12記載の故障箇所推方法。
  15. 前記シリアル領域が、
    入力された前記テストパタンに応答して複数の前記スキャンチェーンの入力ノードへそれぞれ入力するパタンを生成する第1の回路部と、
    複数の前記スキャンチェーンの出力ノードからのパタンを受け圧縮して出力する第2の回路と、
    を含み、
    前記期待値計算ステップにおいて、
    前記シリアル領域の前記第1の回路部に、前記テストパタンを印加してシリアルシミュレーションを実行し、前記シリアル領域の前記第1の回路部から生成されるパタン出力データを取得し、
    前記パラレル領域の回路情報を読み出し、前記パタン出力データを、前記スキャンチェーンの入力パタンとして、前記パラレル領域のパラレルシミュレーションを実行し、前記パラレル領域の出力を前記パラレル領域の期待値をとして取得し、
    前記パラレル領域のシミュレーションで求めた前記パラレル領域の期待値を、前記シリアル領域の前記第2の回路部に与え、且つ、前記シリアル領域の前記第1の回路部には前記テストパタンを与えてシリアルシミュレーションを実行し、前記シリアル領域の期待値を求める、請求項12記載の故障箇所推方法。
  16. 前記故障診断ステップにおいて、
    前記テスト出力に含まれる、故障の影響によって正常回路の期待値とは異なる値を出力する端子又は故障の影響によって正常回路の期待値とは異なる値を取り込むスキャンフリップフロップを含む故障出力端子が属する前記シリアル領域又は前記パラレル領域に対して故障診断を行い、
    前記故障診断で得られた前記シリアル領域の故障候補に
    前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれる場合、
    前記入力端子と接続関係にある前記パラレル領域の出力端子又は前記スキャンフリップフロップを故障出力端子として、前記パラレル領域内の故障診断を行い、
    前記故障診断で得られた前記パラレル領域の故障候補に、
    スキャンフリップフロップが含まれ、且つ、前記スキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にある、又は、
    前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれる場合、
    前記入力端子と接続関係にある前記シリアル領域の出力端子を故障出力端子として、前記シリアル領域の故障診断を行い、
    前記故障診断で得られた前記シリアル領域の故障候補に、
    前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれない場合、又は、
    前記故障診断で得られた前記パラレル領域の故障候補に、
    前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれず、且つ、スキャンフリップフロップが含まれない、又は、前記故障候補に含まれるスキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にない場合、
    故障診断を終了する、請求項12記載の故障箇所推方法。
  17. スキャンテスト回路を備えた論理回路の故障診断を行う装置を構成するコンピュータに、
    前記論理回路内のスキャンフリップフロップで構成されるスキャンチェーンの構成情報及び前記論理回路の設計データ情報を入力し、
    前記論理回路において、前記スキャンチェーンを含み、前記スキャンチェーンのスキャンフリップフロップの出力によって値が設定されるノード及び前記ノードに接続するゲートを含む回路部をパラレル領域とし、前記論理回路において前記パラレル領域以外の回路部をシリアル領域として抽出することで、前記論理回路を前記パラレル領域とシリアル領域に分割し、分割した前記パラレル領域と前記シリアル領域の回路情報を記憶部に記憶する回路分割処理と、
    前記記憶部からシリアル領域とパラレル領域の回路情報を読み出し、出力と入力が接続関係にあるシリアル領域とパラレル領域の1つ又は複数の組み合せについて、前記出力を含む一方の領域に対してシリアル又はパラレルシミュレーションのうち対応する一方のシミュレーションを行い、前記シミュレーションの結果得られたパタンを用いて、前記入力を含む他方の領域に対してシリアル又はパラレルシミュレーションのうち対応する他方のシミュレーションを行うことで、前記1つ又は複数の組み合せのシリアル領域とパラレル領域の正常回路における論理値を期待値として求め、前記シリアル領域と前記パラレル領域の期待値を記憶部に記憶する期待値計算処理と、
    前記記憶部から前記シリアル領域と前記パラレル領域の期待値を読み出し、前記テストパタンに対する前記論理回路のテスト出力を入力し、前記テスト出力、及び、前記シリアル領域と前記パラレル領域の前記期待値を用いて、前記論理回路の前記パラレル領域及び前記シリアル領域の故障診断を行う故障診断処理と、
    を実行させるプログラム。
  18. 前記回路分割処理において、
    前記論理回路の全ノードの状態値を不定値を含む予め定められた所定の論理値で初期化し、
    前記スキャンフリップフロップの保持する状態値を、初期化した前記論理値と異なる論理値に設定し、
    前記スキャンフリップフロップの保持する状態値が変化しないように回路動作及び前記テストパタンを制御しながら、前記論理回路のシミュレーションを実行し、
    前記シミュレーションによって、
    前記スキャンフリップフロップの保持する前記状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを含む1つ又は複数の回路部をそれぞれ前記パラレル領域として抽出し、前記論理回路中の前記パラレル領域以外の1つ又は複数の回路部をそれぞれ前記シリアル領域として抽出し、
    前記期待値計算処理において、
    前記テストパタンを用いて、前記シリアル領域のうち、少なくとも前記スキャンチェーンの入力ノードと接続関係にある出力ノードを有する第1の回路部のシリアルシミュレーションを実行し、
    前記シリアルシミュレーションの結果得られた、前記シリアル領域の前記回路部の前記出力ノードからのパタンを、前記パラレル領域のうち、少なくとも、前記シリアル領域の出力ノードと接続関係にある入力ノードを有する前記スキャンチェーンのスキャンフリップフロップに設定してパラレルシミュレーションを実行し、
    前記パラレルシミュレーションの結果得られたパタンを用いて、前記シリアル領域のうち、少なくとも、前記パラレル領域の前記スキャンチェーンの出力ノードと接続関係のある入力ノードを有する第2の回路部のシリアルシミュレーションを実行することで、前記シリアル領域と前記パラレル領域のノードの期待値を求め、
    前記故障診断処理において、
    前記シリアル領域の故障候補を、前記シリアル領域の故障候補と接続関係にある前記パラレル領域の出力ノード又は前記スキャンフリップフロップに設定し、
    前記パラレル領域の故障候補を、前記パラレル領域の故障候補と接続関係にある前記シリアル領域の出力ノードに設定する、請求項17記載のプログラム。
  19. 前記回路分割処理において、
    (A)前記論理回路の全ノードの状態値を不定値を含む任意の論理値で初期化し、
    (B)前記スキャンフリップフロップの保持する状態値を前記初期化した論理値と異なる論理値に設定し、
    (C)前記論理回路のシミュレーションの実行にあたり、
    (C−1)それぞれの前記スキャンチェーンの入力端子と出力端子と前記スキャンチェーンの入力端子と出力端子にそれぞれ接続するノードとの間を切断して前記論理回路のシミュレーションを実行、
    (C−2)前記スキャンフリップフロップへのクロック信号を供給するノードを切断するか、又は前記テストパタンのクロック入力を削除し前記スキャンフリップフロップに対してクロックを供給せずに前記論理回路のシミュレーションを実行、
    (C−3)前記スキャンフリップフロップに設定した状態値の変更を禁止して、前記論理回路のシミュレーションを実行、
    の前記(C−1)乃至(C−3)のいずれかを行い、
    (D)前記シミュレーションによって、前記スキャンフリップフロップの保持する状態値と同じ論理値に変化したノード及び前記ノードに接続するゲートを前記パラレル領域として抽出し、前記パラレル領域以外の論理回路をシリアル領域として抽出する、請求項17記載のプログラム。
  20. 前記シリアル領域が、
    入力された前記テストパタンに応答して複数の前記スキャンチェーンの入力ノードへそれぞれ入力するパタンを生成する第1の回路部と、
    複数の前記スキャンチェーンの出力ノードからのパタンを受け圧縮して出力する第2の回路部と、
    を含み、
    前記期待値計算処理において、
    前記シリアル領域の前記第1の回路部に、前記テストパタンを印加してシリアルシミュレーションを実行し、前記シリアル領域の前記第1の回路から生成されるパタン出力データを取得し、
    前記パラレル領域の回路情報を読み出し、前記パタン出力データを、前記スキャンチェーンの入力パタンとして、前記パラレル領域のパラレルシミュレーションを実行し、前記パラレル領域の出力を前記パラレル領域の期待値をとして取得し、
    前記パラレル領域のシミュレーションで求めた前記パラレル領域の期待値を、前記シリアル領域の前記第2の回路部に与え、且つ、前記シリアル領域の前記第1の回路部には前記テストパタンを与えてシリアルシミュレーションを実行し、前記シリアル領域の期待値を求める、請求項17記載のプログラム。
  21. 前記故障診断処理において、
    前記テスト出力に含まれる、故障の影響によって正常回路の期待値とは異なる値を出力する端子又は故障の影響によって正常回路の期待値とは異なる値を取り込むスキャンフリップフロップを含む故障出力端子が属する前記シリアル領域又は前記パラレル領域に対して故障診断を行い、
    前記故障診断で得られた前記シリアル領域の故障候補に、
    前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれる場合、
    前記入力端子と接続関係にある前記パラレル領域の出力端子又は前記スキャンフリップフロップを故障出力端子として、前記パラレル領域内の故障診断を行い、
    前記故障診断で得られた前記パラレル領域の故障候補に、
    スキャンフリップフロップが含まれ、且つ、前記スキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にある、又は、
    前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれる場合、
    前記入力端子と接続関係にある前記シリアル領域の出力端子を故障出力端子として、前記シリアル領域の故障診断を行い、
    前記故障診断で得られた前記シリアル領域の故障候補に、
    前記パラレル領域と接続関係にある前記シリアル領域の入力端子が含まれない場合、又は、
    前記故障診断で得られた前記パラレル領域の故障候補に、
    前記シリアル領域と接続関係にある前記パラレル領域の入力端子が含まれず、且つ、スキャンフリップフロップが含まれない、又は、前記故障候補に含まれるスキャンフリップフロップが属するスキャンチェーンの入力端子が前記シリアル領域と接続関係にない場合、
    故障診断を終了する、請求項17記載のプログラム。
JP2011152725A 2011-07-11 2011-07-11 故障箇所推定装置と方法並びにプログラム Withdrawn JP2013019744A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011152725A JP2013019744A (ja) 2011-07-11 2011-07-11 故障箇所推定装置と方法並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011152725A JP2013019744A (ja) 2011-07-11 2011-07-11 故障箇所推定装置と方法並びにプログラム

Publications (1)

Publication Number Publication Date
JP2013019744A true JP2013019744A (ja) 2013-01-31

Family

ID=47691326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011152725A Withdrawn JP2013019744A (ja) 2011-07-11 2011-07-11 故障箇所推定装置と方法並びにプログラム

Country Status (1)

Country Link
JP (1) JP2013019744A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018026797A (ja) * 2016-06-10 2018-02-15 ザ・ボーイング・カンパニーThe Boeing Company ハードウェアベースの高速且つセキュアな拡張・圧縮関数を提供するシステム及び方法
CN111507862A (zh) * 2020-04-08 2020-08-07 国网湖南省电力有限公司 特高压重要二次数据流的状态故障分析方法
CN114398206A (zh) * 2022-01-06 2022-04-26 北京德风新征程科技有限公司 信息存储方法、装置、电子设备和计算机可读介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018026797A (ja) * 2016-06-10 2018-02-15 ザ・ボーイング・カンパニーThe Boeing Company ハードウェアベースの高速且つセキュアな拡張・圧縮関数を提供するシステム及び方法
CN111507862A (zh) * 2020-04-08 2020-08-07 国网湖南省电力有限公司 特高压重要二次数据流的状态故障分析方法
CN111507862B (zh) * 2020-04-08 2023-08-15 国网湖南省电力有限公司 特高压重要二次数据流的状态故障分析方法
CN114398206A (zh) * 2022-01-06 2022-04-26 北京德风新征程科技有限公司 信息存储方法、装置、电子设备和计算机可读介质
CN114398206B (zh) * 2022-01-06 2022-11-11 北京德风新征程科技有限公司 信息存储方法、装置、电子设备和计算机可读介质

Similar Documents

Publication Publication Date Title
US8280687B2 (en) Direct fault diagnostics using per-pattern compactor signatures
Ko et al. Algorithms for state restoration and trace-signal selection for data acquisition in silicon debug
US7239978B2 (en) Compactor independent fault diagnosis
US20190311290A1 (en) Deep Learning Based Test Compression Analyzer
US8280688B2 (en) Compactor independent direct diagnosis of test hardware
US7124342B2 (en) Smart capture for ATPG (automatic test pattern generation) and fault simulation of scan-based integrated circuits
CN105631077B (zh) 具有增大的故障覆盖率的集成电路
US8356218B2 (en) Fault location estimation device, fault location estimation method, and program
US11555854B2 (en) Deterministic stellar built-in self test
US10509072B2 (en) Test application time reduction using capture-per-cycle test points
JP6654456B2 (ja) テストポイント回路、シーケンシャルテスト用スキャンフリップフロップ、半導体装置及び設計装置
US9864004B1 (en) System and method for diagnosing failure locations in electronic circuits
Tang et al. Diagnosis of multiple physical defects using logic fault models
JP2013019744A (ja) 故障箇所推定装置と方法並びにプログラム
US10078114B2 (en) Test point circuit, scan flip-flop for sequential test, semiconductor device and design device
US11408938B2 (en) Bidirectional scan cells for single-path reversible scan chains
Chen et al. The ATPG conflict-driven scheme for high transition fault coverage and low test cost
US11320487B1 (en) Programmable test compactor for improving defect determination
JP5549622B2 (ja) 故障診断方法、故障診断装置、テストシステム及びプログラム
Jiang Enhanced Design for Testability Circuitry for Test
Praveen et al. A Novel Techniques to Reduce the Test Data Volume and Test Time for General Configurations by Embedded Deterministic Testing
Jha Compaction mechanism to reduce test pattern counts and segmented delay fault testing for path delay faults
Sugathan et al. Optimized Test Pattern Generation for Digital Circuits using SAT-Based ATPG and Scan Insertion Method
Tehranipoor et al. Introduction to Diagnosis
Pomeranz et al. On functional broadside tests with functional propagation conditions

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141007