JP3672546B2 - テストパターン発生器における最適初期値の決定方法および装置 - Google Patents

テストパターン発生器における最適初期値の決定方法および装置 Download PDF

Info

Publication number
JP3672546B2
JP3672546B2 JP2002265519A JP2002265519A JP3672546B2 JP 3672546 B2 JP3672546 B2 JP 3672546B2 JP 2002265519 A JP2002265519 A JP 2002265519A JP 2002265519 A JP2002265519 A JP 2002265519A JP 3672546 B2 JP3672546 B2 JP 3672546B2
Authority
JP
Japan
Prior art keywords
test
initial value
length
test length
minimum
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
Application number
JP2002265519A
Other languages
English (en)
Other versions
JP2004101419A (ja
Inventor
憲一 市野
雅之 新井
聡 福本
一彦 岩崎
剛史 正田
正幸 佐藤
Original Assignee
株式会社半導体理工学研究センター
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 株式会社半導体理工学研究センター filed Critical 株式会社半導体理工学研究センター
Priority to JP2002265519A priority Critical patent/JP3672546B2/ja
Priority to US10/400,911 priority patent/US7299394B2/en
Publication of JP2004101419A publication Critical patent/JP2004101419A/ja
Application granted granted Critical
Publication of JP3672546B2 publication Critical patent/JP3672546B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26—Functional testing
    • G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
    • G—PHYSICS
    • G01—MEASURING; TESTING
    • G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28—Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317—Testing of digital circuits
    • G01R31/3181—Functional testing
    • G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342—Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G—PHYSICS
    • G01—MEASURING; TESTING
    • G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28—Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317—Testing of digital circuits
    • G01R31/3181—Functional testing
    • G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318371—Methodologies therefor, e.g. algorithms, procedures
    • G—PHYSICS
    • G01—MEASURING; TESTING
    • G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28—Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317—Testing of digital circuits
    • G01R31/3172—Optimisation aspects, e.g. using functional pin as test pin, pin multiplexing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、大規模集積回路(VLSI)を含めた集積回路のテストにあたって、被テスト回路に印加するテストパターンを発生するためのテストパターン発生器において、効率的にテストを行うための最適な初期値を決定する方法に関する。
【0002】
【従来の技術】
半導体プロセスの微細化に従い、集積回路(LSI、VLSIを含む)のテストに対するコストが増加してきている。このままLSIの動作速度や集積度が上昇すると、現在よりも高価なテスタを長時間使用しなければならなくなる。高価なテスタの使用時間を減らす為に、スキャン設計方式や組込み自己テスト(Built−In・Self−Test)方式(以下、BIST方式)に代表されるテスト容易化設計によってテスタの負担を軽くする手法が研究されている。
【0003】
BIST方式は、テストパターン発生器(Test・Pattern・Generator、以下、TPG)とテスト応答圧縮器(Test・Response・Compactor、以下、TRC)、を被テスト回路と同一チップ上に集積しテストを行う。これによりチップ外部のテスタの負担を軽減することができる。TPGとして線形帰還シフトレジスタ(Linear・Feedback・Shift・Register、以下、LFSR)が、TRCとしてマルチプルインプットシグネチャーレジスタ(Multiple・Input・Signature・Register、以下、MISR)が使われることが多い。
【0004】
LFSRを使った擬似ランダムパターン発生器は、テスタを使わずにテストパターンを印加することができるが、95%を超えるような高い故障カバレージに到達するためには、大量のテストパターンを必要とし、その結果テストに要する時間、すなわちテスト長が長くなってしまう欠点がある。この欠点を克服する試みが数多く報告されている。重み付き擬似乱数発生手法は、被テスト回路(Circuit・Under・Test、以下CUT)に与えるテストパターンの各ビットに重み付けを行う方法であり、より多くの故障を検出できるように、“0”もしくは“1”の発生する確率を変える手法である。(例えば、非特許文献1参照。)
一方、観測点、検査点を挿入する方法は、観測点や検査点を被テスト回路に組み込み、可観測性、可制御性を改善しテスト品質を向上させる手法である。この方法はCUTに観測点や検査点を挿入するため、CUTの回路構造を変更することになり、遅延などを変える事になるという欠点がある。(例えば、非特許文献2参照。)
上記の手法だけでは限られたテスト長で十分な故障カバレージを得ることが困難である。そこで擬似乱数とATPG(Automatic・Test−Pattern・Generation)ベクトルを組み合わせるBISTも研究されている。(例えば、非特許文献3、4および5参照。)
テストキューブのドントケアを利用してLFSR用のシードとして符号化、これをチップ内のLFSRで復号化してテストを行う方法が研究されている。リシーディング法では、(テストキューブの特定されたビット数+20)ビットの長さのLFSRを使い、テストキューブの符号化を行っている。
【0005】
また複数の帰還多項式を持つLFSRをテストキューブの復号化に使う方法としてMP−LFSRがある。この方法は(テストキューブの特定されたビット数+4)ビットのMP−LFSRによって、テストキューブの符号化を行っている。(例えば、非特許文献6参照。)
ビットフリップBIST、およびビットフィックスBISTでは、LFSRの出力するテストパターンの中で、テストキューブに近いものを探し、一部のビットを反転、あるいは固定させることで、テストキューブをCUTに与える方法である。この方法はビットを反転、もしくは固定させる回路が必要となる。
【0006】
リシーディング法、ビットフリップBIST、ビットフィックスBISTを使ったBISTでは、まず検出の容易な故障を擬似ランダムテストによって検出してから、ATPGベクトルのリシードを行っている。これらの方法は、まず例えば1万パターン程度の擬似ランダムテストを行う。そして擬似ランダムテストによって検出できなかった残存故障に対して、ATPGベクトルを印加する。このテストベクトルの追加は、テスタもしくは、BISTでは内蔵したROMからATPGベクトルを与える必要があり、残存故障が多くなるとテストコストを増大させてしまう。
【0007】
ビットフリップBISTやビットフィックスBIST用回路のハードウエア量を減らすためには、擬似ランダムテストの品質を上げ、残存故障数を減らすことが望ましい。残存故障が少なくなると、テスタを使う場合は必要となるテスタのストレージ容量が減り、BISTでは内蔵するROMの規模が軽くなる。
【0008】
擬似ランダムテストの品質を上げるために、シードの選択によって擬似ランダムテストの品質を上げる方法が考えられる。あらかじめ求めたテストキューブを利用する方法が研究されている。これはLFSRの出力するテストパターンとテストキューブのハミング距離によってシードのテスト品質を評価している。これにより、妥当な計算量によって高いテスト品質のシードを得ている。(例えば、非特許文献7〜10参照。)
【0009】
【非特許文献1】
R.Kapur,S.Patil,T.J.Snethen,T.W.Williams,“Design・of・an・Efficient・Weighted・Random・Pattern・Generation・System,“Int’l.Test・Conf.,pp.491−500,1994)
【0010】
【非特許文献2】
H−C.Tsai,K−T.Cheng,S.Bhawmik,“Improving・The・Test・quality・for・Scan−based・BIST・Using・A・General・Test・Application・Scheme,”DA・Conf,pp.748−753,1999
【0011】
【非特許文献3】
G.Kiefer・and・H−J.Wunderlich,“Deterministic・BIST・with・Scan・Chains”,Int’l・Test・Conf,pp.1057−1064,1998
【0012】
【非特許文献4】
G.Kiefer,H.Vranken,E.J.Marinissen,H−J.Wunderlich,“Application・of・Deterministic・Logic・BIST・on・Industrial・Circuits”、Int’l・Test・Conf,pp.105−114,2000
【0013】
【非特許文献5】
D.Das、N.A.Touba,“Reducing・Test・Data・Volume・Using・External/LBIST・Hybrid・Test・Patterns”Int’l・Test・Conf,pp.115−122,2000
【0014】
【非特許文献6】
S.Hellebrand,S.Tarnick,J.Rajski、B.Courtois,“Generation・of・vector・patterns・Through・Reseeding・of・Multiple−Polynomial・Linear・Feedback・Shift・Registers”,Int’l.Test・Conf,pp.120−129,1992
【0015】
【非特許文献7】
I.Bayraktaroglu,K.Udawatta,A.Oraologlu,“An・Examination・of・PRPG・Selection・Approaches・for・Large,Industrial・Design”,Asia・Test・Symposium,pp.440−444,1998
【0016】
【非特許文献8】
I.Bayraktaroglu and A.Oraologlu,“Selecting・a・PRPG:Randomness,Primitiveness,or・Sheer・Luck?”,Asia・Test・Symposium,pp.373−379,2001
【0017】
【非特許文献9】
C.Fagot,O.Gascuel,P.Girard,C.Landrault、“A・Ring・Architecture・Strategy・for・BIST・Test・Pattern・Generation”、Asia・Test・Symposium,pp.418−423,1998
【0018】
【非特許文献10】
C.Fagot,O.Gascuel,P.Girard、C.Landrault,“On・Caluclating・Efficient・LFSR・Seeds・for・Built−In・Self・Test”Europe・Test・Conf,pp.4−14,1999
【0019】
【発明が解決しようとする課題】
LFSR等をテストパターン発生器として用いる上記のような集積回路のテスト方法において、テストパターン発生器に与える初期値が異なると、所定の故障カバレッジを達成するまでのテスト長が異なることが知られている。従って、テスト時間を最短にする初期値を予め選定することが出来れば、集積回路の量産時のテスト時間が短縮され、テストに要するコストの大幅削減が可能となる。
【0020】
ところがこれまで、パターン発生器の初期値については殆ど注意が払われず、単に適当な値、例えば、111…1(オール1)、が選択されているのみである。従って、このように特別な考慮を払うことなく選択した初期値が不適当なものであった場合、テスト長が長大になる可能性を有している。
【0021】
本発明はかかる点に注目して成されたものであり、テストパターン発生器において、目的の故障カバレージに最短テスト長で到達するテストパターン発生器に与える初期値の選定方法を提案する。本方法を用いると、初期値の計算に必要なオフラインの計算時間は必要であるものの、チップのハードウエアを増加させることなくテスト時間を短くすることができる。
【0022】
さらに本発明は、ある固定されたテスト長に対して最大故障検出数が得られるテストパターン初期値の選定方法を提案する。このことは残存故障数が小さくなることを意味する。本方法を用いると、オフラインでの計算時間を必要とするものの、ハードウエアの追加は無く、残存故障を減らすことができる。ビットフリップ法を適用する場合には、そのハードウエア量を削減することにつながる。
【0023】
【課題を解決するための手段】
本発明は、前記課題を解決するために、a)任意に与えられた第1の初期値を用いて故障シミュレーションおよび逆順故障シミュレーションを行って、予め決められたn個の故障を検出するための第1のテスト長および第1の極小テスト長を求めるステップと、b)前記第1の初期値、第1のテスト長および第1の極小テスト長に基づいて前記第1の極小テスト長よりも短いテスト長を得ることが可能な第2の初期値を算出するステップと、c)前記算出された第2の初期値を用いて第2の故障シミュレーションを行って前記n個の故障を検出するための第2のテスト長を求めるステップと、d)前記第2のテスト長と前記第1の極小テスト長を比較し、前記第2のテスト長が前記第1の極小テスト長と同じか長い場合は前記第1の極小テスト長を第2の極小テスト長とみなし、前記第2のテスト長が前記第1の極小テスト長より短い場合は、前記第2の故障シミュレーションに対して逆順故障シミュレーションを行って第2の極小テスト長を求めるステップと、e)前記第2の初期値、第2のテスト長および第2の極小テスト長を前記第1の初期値、第1のテスト長および第1の極小テスト長とみなして前記ステップb)、c)およびd)を繰り返して最小テスト長を求めるステップ、を具備し、前記ステップe)で求めた最小テスト長を提示する初期値を前記集積回路のテストにあたって前記テストパターン発生器における初期値として決定する事を特徴とする。
【0024】
前記第1の構成を有する本発明の方法によれば、テストパターン発生器に対して入力する初期値として、予め決められた数の故障を最短時間で検出することができる値を選択することができる。従って、この値を集積回路テストにあたってテストパターン発生器の初期値として選択すれば、初期値として特別な考慮を払わない場合に比べて、テスト時間を大幅に短縮することが出来、量産時のコスト削減効果が大きい。
【0025】
本発明はまた、前記課題を解決するために、a)任意に与えられた第1の初期値を用いて第1の故障シミュレーションを行って、予め決められた目標テスト長Lfixにおいて検出される第1の故障数nを求めるステップと、b)前記第1の故障シミュレーションに対して逆順故障シミュレーションを行って前記第1の故障数nを検出するのに必要な第1の極小テスト長を求めるステップと、c)前記第1の初期値、前記目標テスト長Lfixおよび第1の極小テスト長に基づいて、前記第1の極小テスト長を提示する第2の初期値を算出するステップと、d)前記算出された第2の初期値を用いて第2の故障シミュレーションを行って前記目標テスト長Lfixにおいて検出される第2の故障数ntを求めるためのステップと、e)前記第1および第2の故障数nおよびntを比較し、nt≦nの場合は前記第1の故障数nを極大の検出故障数とし、nt>nの場合、nt≦nと成るまで前記ステップb)〜d)を繰り返して極大の検出故障数を求めるステップと、f)前記極大の故障検出数を提示する初期値の、テストパターン系列における次の初期値を用いて、前記極大の検出故障数を検出するために必要なテスト長Lを第3の故障シミュレーションによって求めるステップと、g)前記テスト長Lを前記目標のテスト長Lfixと比較し、L≧Lfixの場合、前記第3の故障シミュレーションの初期値、テスト長Lおよび目標テスト長Lfixに基づいて、次に前記目標テスト長Lfixよりも短いテスト長の得られる可能性のある初期値を算出するステップと、h)前記ステップg)で算出された初期値に対して、L<Lfixと成るまで前記ステップf)およびg)を繰り返すステップと、i)前記ステップg)または前記ステップh)においてL<Lfixを提示する初期値を前記第1の初期値とみなして前記ステップa)〜h)を繰り返し、前記目標テスト長において検出される最大の故障数を得るためのステップ、を具備し、前記ステップi)で求めた最大故障検出数を提示する初期値を前記集積回路のテストにあたって前記テストパターン発生器における初期値として決定する事を特徴とする。
【0026】
前記第2の構成を有する本発明の方法によれば、テストパターン発生器に対して入力する初期値として、予め決められたテスト長の範囲内で最大個数の故障を検出することが可能な値を選択することができる。従って、この値を集積回路テストにあたってテストパターン発生器の初期値として選択すれば、初期値として特別な考慮を払わない場合に比べて、テストの品質を大幅に改善することができ、量産時のコスト削減効果が大きい。
【0027】
【発明の実施の形態】
擬似ランダムパターン発生器としてLFSRを使ったテストパターン発生器は、初期状態をセットした後にクロックを与えるとテストパターン系列を発生する。このようなテストパターン発生器を用いたBISTとして、図1に示されるようなtest−per−clock構成が挙げられる。図1において、1はLFSR2によって構成したテストパターン発生器、3はテストパターンが入力される被テスト回路(CUT)、さらに4はテスト応答圧縮器を示す。LFSR2内部のフリップフロップの状態が決定すると、その後出力されるテストパターン系列が一意に決まる。LFSR2のフリップフロップの初期状態を決定する情報をシードと呼ぶ。
【0028】
なお、テストパターン発生器1にLFSRを用いたtest−per−clock構成のBISTでは、LFSR2に入力されるシードとLFSR2からCUT3に出力されるテストパターンとは、同じ物となる。
【0029】
図1のようなLFSRを使った単一縮退故障テストを考える。単一縮退故障テストを対象とする、被テスト回路は組合せ回路である。
【0030】
m次の原始多項式によって構成されるLFSRはCUTに2m−1個の異なるテストパターンを出力する。LFSRからのmビット2元ベクトルは、GF(2m)上の元αi(0≦i≦2m-1−2)とみなすことができる。ここでiは指数を表す。
【0031】
シードα0に対して、LFSRはまず、テストパターンα0を出力し、つぎにα1、以下同様にα2、α3、…とテストパターンを出力する。シードがα1であるときテストパターンα1を出力し、続いてα2を出力する。シードαiに対してj番目に出力するテストパターンはαi+j-1と表される。
【0032】
CUTに存在しうる検出可能な単一縮退故障の集合をFとする。あるテストパターンの故障カバレージをC%と表すと、
【数1】
Figure 0003672546
個の故障が検出される。ただし||は集合の要素数を表す。
【0033】
Faは、Fに含まれる故障の中で、テストパターンαが検出する故障の集合である。
【0034】
シードαiに対し、テストパターンαi-1、αi-2・・・と発生させる方法を逆順テストパターン発生と呼ぶことにする。L(αi、nfix)はシードαiに対し目標故障検出数=ntを達成するテスト長を返す関数である。nfix=|F|となることが望ましいが、nfixとして|F|よりやや小さい値を設定することが現実的である。
【0035】
LR(αi+l、nfix)はシードαi+lに対し逆順テストパターン発生を行い、目標故障検出数nt を達成するテスト長を返す関数である。L(αi、nfix)、LR(αi+l、nfix)は故障シミュレーションを実行することにより求めることができる。
【0036】
あるCUTとその目標検出故障数nfix、およびLFSRの多項式が与えられたとき、テスト長が最も短くなるLFSRのシードを最短テスト長シードαi*と呼ぶ。このとき、i*=argmin{L(αi、nfix)}である。
【0037】
次に、シードとLFSRから出力されるテストパターン系列との関係について考察する。
【0038】
ISCAS89ベンチマークのs386回路の組合せ回路部分に、テスト/クロックのテストを適用することを考える。この回路の入力幅は13ビットである。各シードに対して100%故障カバレージを達成するテスト長についての実験結果を、図2に示す。s386回路の検出可能故障数は384個である。横軸はシード番号、縦軸は100%故障カバレージを達成するテスト長(クロック)を示す。例えばシードをα0とした時の100%故障カバレージを達成するテスト長Lは、図2よりL(α0、384)=1783であることが判る。
【0039】
図2から、LFSRを使ったテスト/クロック構成における、シードとテスト長に関する特徴がわかる。つまり指数が1つ増える度にテスト長は、
1)1つだけ短くなる、
2)同じ、または
3)より長くなる、
のいずれかである。
【0040】
この特徴をより理解しやすくするために、図3に、図2を簡略化した例を示す。図3において、縦軸は100%故障カバレージを達成するテスト長L、横軸はシードの指数iを示す。図3では、説明を簡単にするためCUTの検出可能故障数を100としている。
【0041】
図3において、シードα0の時のテスト長はL(α0、100)=8である事がわかる。次に、シードをα1とした時、α1からα7までの7パターンによって、α0によって検出される故障の全てが検出されたものとする。すなわち、
【0042】
【数2】
Figure 0003672546
とする。このときL(α1、100)=7となる。
【0043】
同様にα2からα7の6パターンが検出する故障が、α1によって検出される故障を全て含むとき、すなわち、
【0044】
【数3】
Figure 0003672546
とすると、α2がシードであるときのテスト長は、L(α2、100)=6となる。同様にしてシードがα3の場合のテスト長L(α3、100)=5である。
【0045】
一方、シードα4のとき、パターンα4からα7が検出する故障は100未満であって、シードα3が検出する故障に達しないものとする。すなわち、
【0046】
【数4】
Figure 0003672546
とする。このとき、シードα4に対して、シードα3が検出する故障を全て検出するまで、テスト長が延びることになる。図3の例ではテスト長は5から10に延びている。
【0047】
今、以下の条件、
L(αi、nfix)<L(αi+l、nfix)
が成立するとき、αiを極小テスト長シードと呼び、L(αi、nfix)を極小テスト長Lminと呼ぶ。以下、極小テスト長となるシードを極小テスト長シードαiminと表し、そのシードの指数をiminと表す。このようにして全指数に対してテストを行って見出した極小テスト長のうち、最小のものが最短テスト長Lsとなる。
【0048】
図3の例では、極小テスト長シードはα3であり、このとき極小テスト長は5である。図2の例では、極小テスト長は13個存在し、図中左から、1648、2104、1298、1466、2505、2211、2823、2283、2497、1866、1615、2000、1867であり、従って、最短テスト長Lsは1298となる。
【0049】
以上の様にして求めた最短テスト長Lを与えるシードを、図1の回路におけるLFSR2の初期シードとして選定すると、CUT3のテストは最短時間で終了することとなる。一方、CUT3のテストにおいて、従来のテスト方法で行われていたように、特にシードに注意を払わず任意のシードを選定した場合、図2の例では、例えばテスト長3000を超えるシードが選定される可能性がある。このようなシードを選択すると、VLSIの量産時においてテストに要する時間が長大となり、テストのコストが増加する。従って、最短テスト長を有するシードを選定することが、量産時のVLSIテストコスト削減に、大きく貢献する。
【0050】
しかしながら、図2に示す様に、テストパターン系列全てのシードに対してテスト長を求めることは、VLSIの回路規模が非常に大きなものであるため、実際には殆ど不可能である。従って、最適なシードを選定するための何らかの効率的で実際的な方法が希求されている。
【0051】
本発明では、上述した、シードとテスト長との関係における特徴を利用して、実際に利用可能な方法で最適初期値を選定するための方法を提供するものである。
【0052】
以下に、本発明の方法に従って、予め設定された数の故障nfixを最短テスト長によって求めるための初期シードを選定する手順について、図面を参照して説明する。なお、この場合のシードを最短テスト長シード選定方法と呼ぶ。
【0053】
まず、本選定方法を、極小テスト長を求めるステップAと、より短い極小テスト長の存在を確認するステップBに分けて説明する。iは現在の指数を表し、i=0と初期化する。つまり指数0のシードから処理をはじめる。
【0054】
[ステップA]
ステップAでは、極小テスト長とそのシードを求める。
【0055】
指数i以上で最も早く現れる極小テスト長を求める。まずシードαiのときのテスト長Li(αi、nfix)を、故障シミュレーションによって求める。次に、逆順テストパターン発生による故障シミュレーションを行い、LRi(αi+Li-1、nfix)を求める。これにより、極小テスト長Lmが求められる。極小テスト長となる指数imはテスト長Liから極小テスト長Lmを引いたものに、iを加えたもの、すなわち、Li−Lm+i、となる。
【0056】
図4にステップAの例を示す。まずStep−A−1でシードα0に対して、故障シミュレーションを行って、テスト長L(α0、nfix)を求める。このとき、図4の例では、テスト長L(α0、nfix)=8となる。続いて、Step−A−2で、最大故障検出数nfixを得たシードα7を初期シードとして逆順故障シミュレーションを行い、テスト長LR(α7、nfix)を求める。この値が極小テスト長Lmになる。図4に示す例ではLm=5となる。
【0057】
この極小テスト長Lmを実現する指数imは、L−Lm+i=8−5+0=3となる。この計算ステップをStep−A−3と表す。つまりシードαL−Lm+i、即ちα3が、極小テスト長5によって目標故障カバレージを達成するシードであるとわかる。
【0058】
[ステップB]
ステップBでは、ステップAで求めた極小テスト長よりも短い極小テスト長を達成するシードが存在するかどうか調べる。
【0059】
指数imin+1のシードは、極小テスト長Lmよりも長いテスト長となる。
【0060】
まず指数、i=imin+1、と設定し、テスト長l=L(αi、nfix)を求める。このテスト長Lから、次に極小テスト長lminよりも短いテスト長が現れる可能性のある指数が計算できる。その指数はi+l−lmin+1である。これを新たな指数iとする。計算したシードαiのテスト長l=(αi、nfix)を求める。テスト長lが極小テスト長lminよりも短ければ、Step−Aに戻り、再び極小テスト長を求める。そうでなければ、再び極小テスト長lminよりも短いテスト長が現れる可能性のある指数を計算する。これを、極小テスト長lminより短いテスト長が現れるまで続ける。これを、mビットのLFSRの場合、指数(2m−1)まで続ける。i=2m−2となったときの極小テスト長lminが目標故障カバレージを達成する最短テスト長l*であり、iminはその最短テスト長となるシードの指数i*を示す。
【0061】
図5及び図6によって、ステップBの動作を説明する。図5及び図6のいずれの場合も、すでにシードα3が極小テスト長lmin=5を達成するとする。つまりimin=3である。
【0062】
図5の場合を説明する。Step−B−1にて、シードα4に対するテスト長L(α4、nfix)を求める。図5の例では、10となる。極小テスト長lmin=5であるので、L(α4、nfix)、…L(α9、nfix)≧5である。すなわちα4からα9は最小テスト長を与えるシードの候補とはならない。
【0063】
Step−B−2で次にlminよりも短いテスト長となる可能性のあるシードの指数を求める。この場合、i=4+10−5+1=10となり、シードはα10となる。シードα10に対するテスト長L(α10、nfix)を求める。図5の例では、テスト長L=4である。つまり指数11のシードを使うことにより、さらに短いテスト長によって目標故障検出数nfixが得られる可能性がある。この場合ステップAに戻り、再び極小テスト長lminを求める。
【0064】
図6の場合を説明する。Step−B−1とStep−B−2の動作は図5と同じである。Step−B−1にて、シードα4に対するテスト長L(α4、nfix)を求める。図6の例ではテスト長は10となる。次にStep−B−2では直前のStep−Aで求めた極小テスト長lminよりも短いテスト長となる可能性のあるシードの指数を計算する。図6でも図5と同様、シードα10となる。Step−B−3においてこのシードα10のテスト長L(α10、nfix)を求める。図6の例ではL(α10、nfix)=7である。この場合、Setp−B−2に戻り、極小テスト長lminよりも短いテスト長となる可能性のあるシードの指数を再び求める。
【0065】
図7に最短テスト長シードをもとめるプログラムの一例を示す。
【0066】
図8および9は、以上に示した最短テスト長シードを求める手順を要約して示すフローチャートである。以下、このフローチャートに沿って説明する。
【0067】
まず、ステップS1でシードの指数iを0に設定する。次に、ステップS2において、シードをα0として故障シミュレーションを実行し、予め設定したnfix個の故障を検出するために必要となるテスト長Lを求める。図4の例ではテスト長Lは8である。
【0068】
次のステップS3では、ステップS2で実行した故障シミュレーションに対して、逆順故障シミュレーションを行って、nfix個の故障を検出するために必要な極小テスト長Lmを求める。図4の例では、極小テスト長Lmは5であることが判る。逆順故障シミュレーションの初期値iは、i=i+L−1である。
【0069】
ステップS3で極小テスト長Lmが求められると、ステップS4において、この極小テスト長Lmを与えるシードの指数を計算する。ステップS5では、ステップS4で計算された指数を有するシードを選定する。ステップS6において、シードαiで得られるテスト長Lmが、集積回路テストにおいて満足し得る値であるか否かを判断する。Lmの値が満足されるものである場合、ステップS7において処理を終了し、最適シードとしてステップS5で得られたαiを設定する。
【0070】
次に、ステップS8において、指数iがテストパターン系列Sの最終値に達しているか否かが判定される。達している場合(ステップS8のYES)は、ステップS9で処理を終了し、ステップS5で得られたシードを最適値として選択する。
【0071】
次に、ステップS10において、指数iを1進め、ステップS11でその指数がテストパターン系列Sの最終値に達していないことを確認した後、指数iを有するシードをステップS12において選択し、ステップS13で、ステップS2と同じ故障シミュレーションを行う。図5の例では、この故障シミュレーションは、シードα4に対して行われている。なお、ステップS11で指数iがテスト系列Sの最終値を超えている場合(ステップS11のYES)は、ステップS14で処理を終了し、ステップS5で求めたシードαiを最適値とする。
【0072】
ステップS13での故障シミュレーションによって、シードαi+L−Lm+1を用いた場合のテスト長Lが得られる。図5の場合、このテスト長Lは10である。
【0073】
図5のステップB−2で説明したように、ステップS13で新たなテスト長Lが得られると、今の指数iから、i=i+L−Lmまでの間のシードは、極小テスト長Lmよりも小さいテスト長を与えるシードとはなり得ない。従って、ステップS15で指数をi=i+L−Lm+1に進め、ステップS16でこの指数がテストパターン系列Sの最終値を超えないことを確かめた後、ステップS17でステップS2と同じ故障シミュレーションを行う。なお、ステップS16で指数iがテストパターン系列Sの最終値を超える場合は、ステップS18で処理を終了し、ステップS5で求めたシードαiを最適値とする。
【0074】
次のステップS19では、ステップS17で実行した故障シミュレーションの結果として得られたテスト長Lが極小テスト長Lmよりも短いか否かを判断する。実際はテスト長は1クロックずつ減少しているので、ステップS19ではL=Lm−1であるか否かを判断しても良い。ステップS19でYESの場合が図5の例に相当し、従ってこの場合は、ステップS3に戻って、逆順故障シミュレーションを行い、新たな極小テスト長Lmを求める。
【0075】
一方、ステップS19でNOの場合は、図6の例に相当するので、ステップS15に戻って、次に、極小テスト長Lmよりも短いテスト長を得る可能性のある指数を演算し、その指数に対してステップS16以下を繰り返して実行する。この繰り返しは、ステップS19においてL<Lmと判断されるまで行われる。
【0076】
以上の処理を繰り返して、最小(最短)のテスト長Lmを求める。
なお、図5のシードα4において、故障シミュレーションによりテスト長Lが求められると、この故障シミュレーションにおいてテストパターンα10までの逆順故障シミュレーションを行って、その間にこれまでに求めた極小テスト長よりも短い極小テスト長が存在するか否かを見ることもできる。もし、より短い極小テスト長が存在すれば、その値を用いて、より短いテスト長を得ることが可能な次のシードの指数を計算することができる。この方法を使えば、最短テスト長シードの計算時間をさらに短くすることも可能である。
【0077】
表1は、全シードに対して故障シミュレーションを行って最短テスト長シードを求めた場合と、上記本発明の最短テスト長シード選択法を適用した場合の比較を示している。実験は、s386回路、多項式20033について行っている。表1から明らかなように、全シードについて故障シミュレーションを行った場合は、8191回の故障シミュレーションを必要とし、その計算時間は約40分であった。一方、本発明の方法を適用した場合は、14回の故障シミュレーションしか必要とせず、その計算時間は約4秒であった。
【0078】
【表1】
Figure 0003672546
表2に、表1の実験で得られた最短テスト長シードによるテスト長と、シードの選択を考慮しなかった場合のテスト長の比較を示す。表1および表2より明らかなように、本発明の方法によれば、最短テスト長シードを非常に短い時間で得ることができるので、集積回路テストに要する時間が大幅に短縮される。
【0079】
【表2】
Figure 0003672546
図10は、図1に示したテスト/クロック構成のBISTとは異なる、テスト/スキャン構成のBISTを示す図である。本構成のBISTは、テストパターン発生器1を、LFSR2とスキャンチェーン5で構成した事を特徴とする。この構成によれば、被テスト回路(CUT)3の信号入力数とLFSR2のビット数が独立となるため、小さなビット数のLFSR2によって、集積度の高い回路のテストを行う事ができる利点を有している。例えば、1000ビットの入力のある被テスト回路を20ビットのLFSRでテストすることが可能となる。
【0080】
図10のテスト/スキャン構成もシードによって、出力するテストパターン系列を変化させることがでる。ところが、この構成ではLFSRのシードが、そのままテストパターンとして現れない。しかしシードによって、出力されるテストパターン系列が決定されることに代わりはない。LFSRの段数がm、スキャンチェーン5の長さがkビットであるとき、PRPGはkビットのテストパターンp0、p1、・・・を発生する。
【0081】
シードをLFSRに設定後にテストパターンpjを生成するシードをβjと表す。シードβj=α(jxk)mod(2m-1)となる。すなわちβ0=α0、β1=αk、β2=α2k、・・・である。このときkと、(2m−1)が互いに素である必要がある。互いに素となっていない場合は、スキャンチェーンにダミーのFlip・Flopを追加することで互いに素となるように調整する。
【0082】
図11の例では、シードβ0、・・・、β4がそれぞれ、10パターン目までに出力するテストパターンが示されている。例えばシードβ0は、まずテストパターンp0を出力する。続いてp1を出力する。シードβ0が10パターン目に出力するテストパターンはp9である。シードβ1は、まずp1を出力し、続いてp2を出力する。このようにすることによって、図10のようなtest−per−scan構成も図1のtest−per−clock構成と同様の手法によって、目標故障カバレージを達成する最短テスト長を得ることが出来る。
【0083】
以下、本発明の第2の実施形態について説明する。本実施形態は、ある固定されたテスト時間内に、最大の故障を検出することができる最適シードの選定方法に関する。複雑な回路の場合、95%を超える故障カバレージの達成が難しく、あるテスト長を設定し、そのテスト長lfixに対し、最も多くの故障を検出するシードを選ぶ方法が現実的である。このシード
【数5】
Figure 0003672546
を最大故障検出数シードと呼ぶ。
【0084】
最大故障検出数シードの選定法は、前記最短テスト長シードの選定法を拡張したものである。最短テスト長シードの選定法との違いは、極小テスト長を見つけるたびに、動的に目標故障検出数を更新していくところである。
【0085】
本方法の説明に先立ち、関数を定義する。D(αi、l)はシードαiに対しテスト長lのとき、検出される故障検出数を返す関数である。D(αi、l)はL(αi、nfix)LR(αi+l、nfix)、と同様に故障シミュレーションを実行することにより求めることができる。
【0086】
テスト長lfixを与えると、そのテスト長で最大故障検出数となるシードを選定する。あるテスト長lfixにおける目標故障検出数を求めるStep−A*と、より多くの故障が検出できるシードの存在を予測するStep−B*の2つのステップに分けられる。
【0087】
βjのシード番号をjとする。シード番号0のシードから選定処理を始めるので、j=0となる。
【0088】
Step−A*では、テスト長lfixにおける目標故障検出数を求める。
【0089】
まず、シードβjのテスト長lfixによる故障検出数を目標故障検出数ntとする。nt=D(βj、lfix)。次に、目標故障検出数ntとなる極小テスト長を
【数6】
Figure 0003672546
から求める。これにより、極小テスト長lminが求められる。極小テスト長となるシード番号jminは、jmin=j+lfix−lminとなる。このときのjminに対してシードβimin+1のテスト長がlfixよりも長くなるまでStep−A*を続ける。
【0090】
βimin+1のテスト長が、目標テスト長lfixよりも長いテスト長のときはStep−B*に移る。目標故障検出数nfixを達成するテスト長l=LF(βj、nfix)がlfixよりも短くなるシード番号を計算する。lが計算どおりのテスト長lfix−1となるまで、予測を繰り返し、予測どおりのテスト長となったとき、再び目標故障検出数ntを設定しなおす。
【0091】
これを、mビットのLFSRの場合、シード番号2m−2まで続ける。このときの目標故障検出数ntがあるテスト長lfixにおける最大故障検出数n*であり、シード番号jminが最大故障検出数シード番号j*となる。
【0092】
図12に最大故障検出数シードをもとめるプログラムの1例を示す。
【0093】
図13および14は、以上に示した最大故障検出数シードを求める手順を要約して示すフローチャートである。また、図15は、このフローチャートの説明のための図面である。以下、これらの図面を参照して、本発明の第2の実施形態を説明する。
【0094】
まず、ステップP1においてシード番号JをJ=0に設定する。次にステップP2で、シード番号0のシードβ0について故障シミュレーションを実行し、予め決められたテスト長Lfix(図15の場合は、Lfix=10)において検出される故障数nを求める。
【0095】
ステップP3では、ステップP2で求めたnの値が、最大故障数として満足できるものか否かを判断する。満足される場合は、ステップP4で処理を終了し、この最大故障数nを与えるシードβ0を、テストパターン発生器に入力する初期値とする。
【0096】
ステップP3でNOの場合は、ステップP5において、ステップP2で行われた故障シミュレーションに対し逆順故障シミュレーションを行って、n個の故障数を検出するのに必要となる極小テスト長Lmを求める。図15の場合、極小テスト長Lmは7である。この極小テスト長を与えるシードの番号は、J+Lfix−Lmとして計算される。ステップP6では、シード番号J+Lfix−Lmがテストパターン系列Sの最終値を超えるか否かを検出する。超える場合は、ステップP7で処理を終了し、最後に求めた極小テスト長を与えるシードを最適初期値として選定する。
【0097】
ステップP6で、シード番号J+Lfix−Lmがテストパターン系列Sの範囲内である場合(ステップP6のNO)、ステップP8において、シード番号Jを、J=J+Lfix−Lmとし、ステップP9においてこの番号のシードを用いて故障シミュレーションを行い、目標テスト長Lfix内で何個の故障が検出されるかを検出する。これは、最短テスト長シード検出方法の場合と異なり、極小テスト長Lmを与えるシードの場合、極小テスト長Lmから目標テスト長Lfixの間に新しい故障が見つかる可能性が存在するためである。
【0098】
図15の場合、シードβ3に対してテスト長10を与えて故障シミュレーションを行うと、テストパターンp10〜p12において新しい故障が発見される可能性がある。
【0099】
次のステップP10では、ステップP9で求めた故障数ntをステップP2で求めた故障数nと比較する。nt>nの場合は、ステップP11でnをntとした後、ステップP3を経てステップP5に戻って再び逆順故障シミュレーションを行って、故障数ntを検出するために必要となる極小テスト長を求める。さらに、ステップP6以下を実行して、新たな故障数ntを、nt≦tと成るまで求める。
【0100】
以上の処理によって、目標テスト長Lfixで検出される故障数nが極大となり、それ以上更新されなくなると、ステップP12において、極大故障数を提示するシードに対し、シード番号を1だけ進める。図15の例では、シードβ3で検出される故障数ntを、nt≦tとした場合、次のシードはβ4である。ステップP13においてこのシード番号がテストパターン系列の最終値を超えないか否かを判断し、超える場合はステップP14で処理を終了し、超えない場合はステップP15に進む。
【0101】
ステップP15では、新たな番号のシードに対して故障シミュレーションを実行して、これまでに求めた極大の故障数nを得るために必要なテスト長Lを求め、ステップP16でこのテスト長Lを目標テスト長Lfixと比較する。図15の場合、シードβ4のテスト長Lは13であるので、L>Lfixである。この場合、図15から明らかなように、シードβ8において初めてテスト長L<Lfixと成る可能性がある。ステップP17では、このような、次にテスト長L<Lfixとなる可能性のあるシードの番号を算出している。
【0102】
ステップP18で、ステップP17で算出されたシード番号がテストパターン系列の最終値を超えないか否かを判定して、超えない場合、ステップP15に戻って算出された番号のシードに対して故障シミュレーションを行う。このステップは、ステップP16において、テスト長LがL<Lfixと成るまで繰り返される。なお、ステップP18でYESの場合は、ステップP7、P13の場合と同様にステップP19で処理を終了する。
【0103】
ステップP16でテスト長L<Lfixとなると、このときのシードを用いて再びステップP2以下を実行することにより、さらに目標テスト長Lfix内で検出される新たな故障数が得られる。従って、このようにして得られた新たな故障数が予め決められた目標の故障検出数に達するか、あるいは、シード番号がテストパターン系列の最終値を超えるまで、上記の処理を繰り返して、最大故障検出数を得る。このときのシードがテストパターン発生器の最適初期値となる。
【0104】
なお、図15のシードβ4において、故障シミュレーションによりテスト長Lが求められると(図14のステップP15)、この故障シミュレーションにおいてテストパターンp14までの逆順故障シミュレーションを行って、その間にこれまでに求めた極小テスト長よりも短い極小テスト長が存在するか否かを見ることもできる。もし、より短い極小テスト長が存在すれば、その値を用いて、目標テスト長Lfix内でより多くの故障数を検出することが可能な次のシード番号を計算することができる。この方法を使えば、最大故障検出数シードの計算時間をさらに短くすることも可能である。
【0105】
上記最大故障検出数シードの選定に関する説明は、図10および図11に示すtest-per-scan構成に関して行っているが、この選定方法が、test−per−clock構成のBISTに関しても同様に適用できることは勿論である。
【0106】
表3は20ビット原始多項式LFSRを使ったc7552回路の20多項式に対して、シードα0と本発明の方法で求めた最大故障検出数シードの場合について比較する表である。本表では、シードα0(00・・01)と最大故障検出数シードの平均故障検出数と最小の残存故障数、1多項式あたりの処理時間を示す。
【0107】
【表3】
Figure 0003672546
目標テスト長1000で、シードα0を使った場合、平均の残存故障数は464であり、最小の残存故障数は418である。最大故障検出数シードは平均で369個、最小の残存故障数は359である。1多項式あたりの処理時間は4121秒であった。
【0108】
テスト長が10000の場合、20個の原始多項式の中で最も故障検出数の大きい最大故障検出数シードを持つ多項式は、残存故障数が227である。これは、シードα0の平均残存故障数の304よりも77個多くの故障を検出している。
【図面の簡単な説明】
【図1】テスト/クロック構成のBISTを示す図。
【図2】シードの指数とテスト長の関係を示す図。
【図3】図2のシードの指数とテスト長の関係を簡略化して示す図。
【図4】本発明の1実施形態に係る方法の説明に供する図。
【図5】本発明の1実施形態に係る方法の説明に供する図。
【図6】本発明の1実施形態に係る方法の説明に供する図。
【図7】本発明の1実施形態を実施するプログラムの一例を示す図。
【図8】本発明の1実施形態に係る方法の手順を示すフローチャートの前半部分を示す図。
【図9】図8に示すフローチャートの後半部分を示す図。
【図10】テスト/スキャン構成のBISTを示す図。
【図11】テスト/スキャン構成のBISTにおけるシードとテストパターンの関係を示す図。
【図12】本発明の他の実施形態を実施するプログラムの一例を示す図。
【図13】本発明の他の実施形態に係る方法の手順を示すフローチャートの前半部分を示す図。
【図14】図13に示すフローチャートの後半部分を示す図。
【図15】図13、14に示すフローチャートの説明に供する図。
【符号の説明】
1…テストパターン発生器
2…LFSR
3…被テスト回路
4…テスト応答圧縮器
5…スキャンチェーン

Claims (18)

  1. 集積回路テストのためにテストパターン発生器に入力する最適初期値を決定するための方法であって、
    a)任意に与えられた第1の初期値を用いて故障シミュレーションおよび逆順故障シミュレーションを行って、予め決められたn個の故障を検出するための第1のテスト長および第1の極小テスト長を求めるステップと、
    b)前記第1の初期値、第1のテスト長および第1の極小テスト長に基づいて前記第1の極小テスト長よりも短いテスト長を得ることが可能な第2の初期値を算出するステップと、
    c)前記算出された第2の初期値を用いて第2の故障シミュレーションを行って前記n個の故障を検出するための第2のテスト長を求めるステップと、
    d)前記第2のテスト長と前記第1の極小テスト長を比較し、前記第2のテスト長が前記第1の極小テスト長と同じか長い場合は前記第1の極小テスト長を第2の極小テスト長とみなし、前記第2のテスト長が前記第1の極小テスト長より短い場合は、前記第2の故障シミュレーションに対して逆順故障シミュレーションを行って第2の極小テスト長を求めるステップと、
    e)前記第2の初期値、第2のテスト長および第2の極小テスト長を前記第1の初期値、第1のテスト長および第1の極小テスト長とみなして前記ステップb)、c)およびd)を繰り返して最小テスト長を求めるステップ、
    を具備し、前記ステップe)で求めた最小テスト長を提示する初期値を前記集積回路のテストにあたって前記テストパターン発生器における初期値として決定する事を特徴とする、テストパターン発生器における最適初期値の決定方法。
  2. 前記ステップe)において、前記ステップb)、c)およびd)は、前記極小テスト長が予め決められた値に達するまで繰り返されるものであることを特徴とする、請求項1に記載の集積回路テストにおける最適初期値決定方法。
  3. 前記ステップe)において、前記ステップb)、c)およびd)は、前記第1または第2の初期値が予め選定されたテストパターン系列の最終値に到達するまで繰り返されることを特徴とする、請求項1に記載のテストパターン発生器における最適初期値の決定方法。
  4. 前記第1の初期値をテストパターン系列のi番目の値、第1のテスト長をL、第1の極小テスト長をLm、前記ステップb)における第2の初期値をテストパターン系列のi2番目とする場合、i2は、
    i2=i+L−Lm+1
    として算出されることを特徴とする、請求項1乃至3の何れか1項に記載の、テストパターン発生器における最適初期値の決定方法。
  5. 前記テストパターン発生器は、線形帰還シフトレジスタを用いたテスト/クロック構成を有することを特徴とする、請求項1乃至4の何れか1項に記載の、テストパターン発生器における最適初期値の決定方法。
  6. 前記テストパターン発生器は、線形帰還シフトレジスタとスキャンチェーンを組み合わせたテスト/スキャン構成を有することを特徴とする、請求項1乃至4の何れか1項に記載の、テストパターン発生器における最適初期値の決定方法。
  7. 被テスト回路と、テストパターン系列を発生して前記被テスト回路に出力するテストパターン発生器と、前記被テスト回路からのテスト結果を検出するテスト応答圧縮器とを1チップ内に組み込んだ集積回路のテスト装置において、前記テストパターン発生器は、
    a)任意に与えられた第1の初期値を用いて故障シミュレーションおよび逆順故障シミュレーションを行って、予め決められたn個の故障を検出するための第1のテスト長および第1の極小テスト長を求めるステップと、
    b)前記第1の初期値、第1のテスト長および第1の極小テスト長に基づいて前記第1の極小テスト長よりも短いテスト長を得ることが可能な第2の初期値を算出するステップと、
    c)前記算出された第2の初期値を用いて第2の故障シミュレーションを行って前記n個の故障を検出するための第2のテスト長を求めるステップと、
    d)前記第2のテスト長と前記第1の極小テスト長を比較し、前記第2のテスト長が前記第1の極小テスト長と同じか長い場合は前記第1の極小テスト長を第2の極小テスト長とみなし、前記第2のテスト長が前記第1の極小テスト長より短い場合は、前記第2の故障シミュレーションに対して逆順故障シミュレーションを行って第2の極小テスト長を求めるステップと、
    e)前記第2の初期値、第2のテスト長および第2の極小テスト長を前記第1の初期値、第1のテスト長および第1の極小テスト長とみなして前記ステップb)、c)およびd)を繰り返して最小テスト長を求めるステップ、
    を実行することにより求めた、前記最小テスト長を提示する初期値を備える事を特徴とする、集積回路のテスト装置。
  8. 前記テストパターン発生器は、線形帰還シフトレジスタを用いたテスト/クロック構成であることを特徴とする、請求項7に記載の集積回路のテスト装置。
  9. 前記テストパターン発生器は、線形帰還シフトレジスタとスキャンチェーンを組み合わせたテスト/スキャン構成であることを特徴とする、請求項7に記載の集積回路のテスト装置。
  10. 集積回路テストのためにテストパターン発生器に入力する最適初期値を決定するための方法であって、
    a)任意に与えられた第1の初期値を用いて第1の故障シミュレーションを行って、予め決められた目標テスト長Lfixにおいて検出される第1の故障数nを求めるステップと、
    b)前記第1の故障シミュレーションに対して逆順故障シミュレーションを行って前記第1の故障数nを検出するのに必要な第1の極小テスト長を求めるステップと、
    c)前記第1の初期値、前記目標テスト長Lfixおよび第1の極小テスト長に基づいて、前記第1の極小テスト長を提示する第2の初期値を算出するステップと、
    d)前記算出された第2の初期値を用いて第2の故障シミュレーションを行って前記目標テスト長Lfixにおいて検出される第2の故障数ntを求めるためのステップと、
    e)前記第1および第2の故障数nおよびntを比較し、nt≦nの場合は前記第1の故障数nを極大の検出故障数とし、nt>nの場合、nt≦nと成るまで前記ステップb)〜d)を繰り返して極大の検出故障数を求めるステップと、
    f)前記極大の故障検出数を提示する初期値の、テストパターン系列における次の初期値を用いて、前記極大の検出故障数を検出するために必要なテスト長Lを第3の故障シミュレーションによって求めるステップと、
    g)前記テスト長Lを前記目標のテスト長Lfixと比較し、L≧Lfixの場合、前記第3の故障シミュレーションの初期値、テスト長Lおよび目標テスト長Lfixに基づいて、次に前記目標テスト長Lfixよりも短いテスト長の得られる可能性のある初期値を算出するステップと、
    h)前記ステップg)で算出された初期値に対して、L<Lfixと成るまで前記ステップf)およびg)を繰り返すステップと、
    i)前記ステップg)または前記ステップh)においてL<Lfixを提示する初期値を前記第1の初期値とみなして前記ステップa)〜h)を繰り返し、前記目標テスト長において検出される最大の故障数を得るためのステップ、
    を具備し、前記ステップi)で求めた最大故障検出数を提示する初期値を前記集積回路のテストにあたって前記テストパターン発生器における初期値として決定する事を特徴とする、テストパターン発生器における最適初期値の決定方法。
  11. 前記ステップi)において、前記ステップa)〜h)は、検出された故障数が予め決められた望ましい値となるまで繰り返されるものであることを特徴とする、請求項10に記載の集積回路テストにおける最適初期値の決定方法。
  12. 前記ステップi)において、前記ステップa)〜h)は、前記何れかの初期値が予め選定されたテストパターン系列の最終値に到達するまで繰り返されることを特徴とする、請求項10に記載のテストパターン発生器における最適初期値の決定方法。
  13. 前記第1の初期値をテストパターン系列のi番目の値、予め決められた目標テスト長をLfix、第1の極小テスト長をLm、前記ステップc)における第2の初期値をテストパターン系列のi2番目の値とする場合、i2は、
    i2=i+Lfix−Lm
    として算出されることを特徴とする、請求項10乃至12の何れか1項に記載の、テストパターン発生器における最適初期値の決定方法。
  14. 前記テストパターン発生器は、線形帰還シフトレジスタを用いたテスト/クロック構成を有することを特徴とする、請求項10乃至13に記載の、テストパターン発生器における最適初期値の決定方法。
  15. 前記テストパターン発生器は、線形帰還シフトレジスタとスキャンチェーンを組み合わせたテスト/スキャン構成を有することを特徴とする、請求項10乃至13に記載の、テストパターン発生器における最適初期値の決定方法。
  16. 被テスト回路と、テストパターン系列を発生して前記被テスト回路に出力するテストパターン発生器と、前記被テスト回路からのテスト結果を検出するテスト応答圧縮器とを1チップ内に組み込んだ集積回路のテスト装置において、前記テストパターン発生器は、
    a)任意に与えられた第1の初期値を用いて第1の故障シミュレーションを行って、予め決められた目標テスト長Lfixにおいて検出される第1の故障数nを求めるステップと、
    b)前記第1の故障シミュレーションに対して逆順故障シミュレーションを行って前記第1の故障数nを検出するのに必要な第1の極小テスト長を求めるステップと、
    c)前記第1の初期値、前記目標テスト長Lfixおよび第1の極小テスト長に基づいて、前記第1の極小テスト長を提示する第2の初期値を算出するステップと、
    d)前記算出された第2の初期値を用いて第2の故障シミュレーションを行って前記目標テスト長Lfixにおいて検出される第2の故障数ntを求めるためのステップと、
    e)前記第1および第2の故障数nおよびntを比較し、nt≦nの場合は前記第1の故障数nを極大の検出故障数とし、nt>nの場合、nt≦nと成るまで前記ステップb)〜d)を繰り返して極大の検出故障数を求めるステップと、
    f)前記極大の故障検出数を提示する初期値の、テストパターン系列における次の初期値を用いて、前記極大の検出故障数を検出するために必要なテスト長Lを第3の故障シミュレーションによって求めるステップと、
    g)前記テスト長Lを前記目標のテスト長Lfixと比較し、L≧Lfixの場合、前記第3の故障シミュレーションの初期値、テスト長Lおよび目標テスト長Lfixに基づいて、次に前記目標テスト長Lfixよりも短いテスト長の得られる可能性のある初期値を算出するステップと、
    h)前記ステップg)で算出された初期値に対して、L<Lfixと成るまで前記ステップf)およびg)を繰り返すステップと、
    i)前記ステップg)または前記ステップh)においてL<Lfixを提示する初期値を前記第1の初期値とみなして前記ステップa)〜h)を繰り返し、前記目標テスト長において検出される最大の故障数を得るためのステップ、
    を実行することにより求めた、前記最大故障数を提示する初期値を備える事を特徴とする、集積回路のテスト装置。
  17. 前記テストパターン発生器は、線形帰還シフトレジスタを用いたテスト/クロック構成を有することを特徴とする、請求項16に記載の、集積回路のテスト装置。
  18. 前記テストパターン発生器は、線形帰還シフトレジスタとスキャンチェーンを組み合わせたテスト/スキャン構成を有することを特徴とする、請求項16に記載の、集積回路のテスト装置。
JP2002265519A 2002-09-11 2002-09-11 テストパターン発生器における最適初期値の決定方法および装置 Expired - Fee Related JP3672546B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002265519A JP3672546B2 (ja) 2002-09-11 2002-09-11 テストパターン発生器における最適初期値の決定方法および装置
US10/400,911 US7299394B2 (en) 2002-09-11 2003-03-28 Method and apparatus for determining optimum initial value for test pattern generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002265519A JP3672546B2 (ja) 2002-09-11 2002-09-11 テストパターン発生器における最適初期値の決定方法および装置

Publications (2)

Publication Number Publication Date
JP2004101419A JP2004101419A (ja) 2004-04-02
JP3672546B2 true JP3672546B2 (ja) 2005-07-20

Family

ID=32170859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002265519A Expired - Fee Related JP3672546B2 (ja) 2002-09-11 2002-09-11 テストパターン発生器における最適初期値の決定方法および装置

Country Status (2)

Country Link
US (1) US7299394B2 (ja)
JP (1) JP3672546B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4230880B2 (ja) * 2003-10-17 2009-02-25 株式会社東芝 欠陥検査方法
US7870453B2 (en) * 2004-06-30 2011-01-11 Nxp B.V. Circuit arrangement and method of testing an application circuit provided in said circuit arrangement
US20060236185A1 (en) * 2005-04-04 2006-10-19 Ronald Baker Multiple function results using single pattern and method
US20090210761A1 (en) * 2008-02-15 2009-08-20 Forlenza Donato O AC Scan Diagnostic Method and Apparatus Utilizing Functional Architecture Verification Patterns
JP5397254B2 (ja) * 2010-02-12 2014-01-22 富士ゼロックス株式会社 擬似ランダム信号発生装置、通信システム、及び画像形成システム
US9734033B2 (en) 2014-12-08 2017-08-15 International Business Machines Corporation Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads
JP6534913B2 (ja) * 2015-11-06 2019-06-26 日立オートモティブシステムズ株式会社 情報処理装置および不正メッセージ検知方法
JP7083728B2 (ja) * 2018-08-24 2022-06-13 ルネサスエレクトロニクス株式会社 自己診断装置、半導体装置及び自己診断方法
CN113009311A (zh) * 2019-12-19 2021-06-22 鸿富锦精密电子(天津)有限公司 电路板智能检测方法、装置、系统及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991909A (en) 1996-10-15 1999-11-23 Mentor Graphics Corporation Parallel decompressor and related methods and apparatuses
JP3732708B2 (ja) 2000-03-27 2006-01-11 株式会社東芝 テストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体
JP4228061B2 (ja) 2000-12-07 2009-02-25 富士通マイクロエレクトロニクス株式会社 集積回路の試験装置および試験方法
JP3833982B2 (ja) 2002-10-03 2006-10-18 株式会社東芝 テストパターン選択装置、テストパターン選択方法、及びテストパターン選択プログラム

Also Published As

Publication number Publication date
US20040088626A1 (en) 2004-05-06
US7299394B2 (en) 2007-11-20
JP2004101419A (ja) 2004-04-02

Similar Documents

Publication Publication Date Title
US6327687B1 (en) Test pattern compression for an integrated circuit test environment
JP4177807B2 (ja) 回路テストシステム
US7610539B2 (en) Method and apparatus for testing logic circuit designs
JP2554410B2 (ja) テストパターンビットシーケンス生成回路及びディジタル回路デバイスのテスト方法
Wang et al. Test data compression for IP embedded cores using selective encoding of scan slices
JP2004500558A (ja) テスト応答を選択的に圧縮する方法及び装置
Zhang et al. Putting wasted clock cycles to use: Enhancing fortuitous cell-aware fault detection with scan shift capture
Gopalsamy et al. Fully deterministic storage based logic built-in self-test
JP2004101419A (ja) テストパターン発生器における最適初期値の決定方法および装置
Shiao et al. A test-per-cycle BIST architecture with low area overhead and no storage requirement
Lai et al. A reseeding technique for LFSR-based BIST applications
Lien et al. An efficient on-chip test generation scheme based on programmable and multiple twisted-ring counters
Liu et al. On X-variable filling and flipping for capture-power reduction in linear decompressor-based test compression environment
Kim et al. Test-decompression mechanism using a variable-length multiple-polynomial LFSR
Gao et al. BIST using Cellular Automata as test pattern generator and response compaction
Liu et al. An efficient controlled LFSR hybrid BIST scheme
Lee et al. Scan BIST targeting transition faults using a Markov source
Wu et al. Power supply noise reduction for at-speed scan testing in linear-decompression environment
Ichino et al. A seed selection procedure for LFSR-based random pattern generators
Prabhu et al. A novel SMT-based technique for LFSR reseeding
Hatayama et al. Application of high-quality built-in test to industrial designs
Shailaja et al. Automatic Seed Generation for Weighted Test Pattern Generation
Fiser Pseudo-random pattern generator design for column-matching BIST
Shailaja et al. Weighted test pattern generator (TPG) for built-in self-test (BIST)
Kongtim et al. Parallel lfsr reseeding with selection register for mixed-mode bist

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040916

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: 20050322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050419

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: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees