JPH11223664A - 論理回路のテスト集合圧縮方法 - Google Patents

論理回路のテスト集合圧縮方法

Info

Publication number
JPH11223664A
JPH11223664A JP10320218A JP32021898A JPH11223664A JP H11223664 A JPH11223664 A JP H11223664A JP 10320218 A JP10320218 A JP 10320218A JP 32021898 A JP32021898 A JP 32021898A JP H11223664 A JPH11223664 A JP H11223664A
Authority
JP
Japan
Prior art keywords
subsequence
state
test
fault
relaxed
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.)
Granted
Application number
JP10320218A
Other languages
English (en)
Other versions
JP3365325B2 (ja
Inventor
Chakladder Slimatt
チャクラッダー スリマット
Haashio Michael
ハーシオ マイケル
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPH11223664A publication Critical patent/JPH11223664A/ja
Application granted granted Critical
Publication of JP3365325B2 publication Critical patent/JP3365325B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318335Test pattern compression or decompression
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318371Methodologies therefor, e.g. algorithms, procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

(57)【要約】 【課題】 短い実行時間で極めて高度な圧縮が達成され
る部分列除去方法を提供すること。 【解決手段】 有限状態を有する順序回路において高速
静的圧縮を行なう方法であり、機械の出力状態を緩和す
るステップと、削除候補の再帰部分列を識別するステッ
プと、故障シミュレーション解析を行なって部分列が削
除可能かどうかを判定するステップと、部分列を削除、
および/または削除のための次の再帰部分列候補を識別
するステップを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、論理回路、特に順
序回路のためのテスト集合を圧縮する方法に関する。特
に、順序回路における高速静的圧縮のための状態緩和に
基づく部分列削除方法に関する。
【0002】本出願は、本発明の譲受人に譲渡され、本
明細書中に参考として取り入れる、“Partitio
ning and Recording Method
sfor Static Test Sequence
Compactionof Sequential
Circuits”と題する米国特許出願第09/00
1542号(出願日1997年12月31日)に関連し
ている。
【0003】
【従来の技術】順序回路のテスト適用時間(TAT)
は、テスト集合のテストベクトル数に比例し、テストの
コストに直接的な影響を与える。このため、より短いテ
ストシーケンスが望まれる。圧縮技術には、2種類、す
なわち、動的圧縮と静的圧縮がある。動的圧縮技術で
は、テスト生成プロセスと同時に圧縮が行なわれ、テス
トジェネレータの変更を必要とすることが多い。一方、
静的テストシーケンス圧縮は、テスト生成後の後処理ス
テップである。静的圧縮技術は、テスト生成アルゴリズ
ムとは関係なく、テストジェネレータの変更を必要とし
ない。動的圧縮がテスト生成中に行なわれたとしても、
静的圧縮により、テスト生成後に得られたテスト集合の
大きさをさらに縮小させることができる。
【0004】順序回路のためのいくつかの静的圧縮法
が、以下の論文に提案されている。すなわち、T.M.
Niermannらによる“Test Compact
ionfor Sequential Circuit
s”(IEEE Trans. Computer−A
ided Design、Vol.11、No.2、2
60〜67頁、1992年2月)や、B.Soによる
“Time−efficient Automatic
Test Pattern Generation
System”(Ph.D.Thesis、EE De
pt.Univ.of Wisconsin−Madi
son、1994年)、I.Pomeranzらによる
“On Static Compaction of
TestSequences for Synchro
nous Sequential Circuits"
(Proc Design Automation C
onf.、215−20頁、1996年6月)、M.
S.Hsiaoらによる“Fast Algorith
ms for Static Compaction
of Sequential Circuit Tes
t Vectors”(Proc. IEEE VLS
I Test Symp.、188−195頁、199
5年4月)などである。
【0005】最近の提案には、個々の故障にターゲット
を定めて得られたテストシーケンスを重ね合わせたり、
並べかえたりして圧縮を達成することが含まれている
(Niermann及びSo)。しかしながら、このよ
うな手法を、ランダムあるいはシミュレーションに基づ
くテストジェネレータにより生成されるテストシーケン
スに用いることはできない。
【0006】ベクトルの挿入、削除、又は選択に基づく
静的圧縮も研究されている(Pomeranz)。この
ような方法では、多数の故障シミュレーションパスが必
要となる。このような方法では、元のテスト集合を用い
て得ることができる故障検出率を低下させることなく、
テスト集合からベクトルを削除する。ベクトルを削除あ
るいは交換するとき、テストシーケンスに対する変更に
よって故障検出率が影響を受けないことを確実にするた
めに、故障シミュレータが起動される。途方もなく長い
実行時間を費やせば、非常に圧縮されたテスト集合を得
ることができる。
【0007】テストベクトルの部分列削除に基づく順序
回路の高速静的圧縮技術が最近報告されている(Hsi
ano)。この手法は、次の2つの知見に基づいてい
る。すなわち、(1)テストシーケンスは、繰り返し現
れる状態の小集合をトラバースする。(2)ある条件の
もとではサイクルに対応する部分列をテスト集合から削
除してもよい。しかしながら、テスト集合に、繰り返し
現れる状態がほとんどあるいは全くなければ、部分列削
除アルゴリズムはあまり効果がない。図1は、いくつか
のISCAS89ベンチマーク回路について、HITE
Cテスト集合によりトラバースされたベクトルと状態の
数を示す表である。このようなテスト集合と回路に関す
る情報は、以下の論文に見出だすことができる:T.
M. Niermannらによる“HITEC: A
Test Generation Package f
or Sequential Circuits”(P
roc.European Conf. Design
Automation(EDAC)、214〜218
頁、1991年)と、T.M. Niermannらに
よる“Method for Automatical
ly Generating Test Vector
s for Digital Integrated
Circuits”(米国特許第5,377,197
号、1994年)と、F.Brglezらによる“Co
mbinational Profilesof Se
quential Benchmark Circui
ts”(Int. Symposium on Cir
cuits and Systems、1929〜34
頁、1989年)。他のテストジェネレータによって生
成されたテスト集合においても同様な傾向が見られる。
【0008】
【発明が解決しようとする課題】繰り返し現れる状態を
もたないテスト集合Tについて考えてみる。このテスト
集合にはサイクルがない。明らかに、Hsiaoに報告
されている部分列削除アルゴリズムでは、このテスト集
合を圧縮することはできない。しかしながら、状態緩和
を用いることによって、削除し得る部分列を識別するこ
とができる。
【0009】ここで、本発明でいう「状態緩和」の意味
について以下に説明する。例えば、テスト集合Tがある
状態を繰り返すことなく、有限状態機械を状態S
initial からSfinal に遷移させるものと仮定する。有
限状態機械を状態Sから状態Sに遷移させるテスト
集合Tの部分列をTsub とすれば、このテスト集合はサ
イクルをもたないため、状態SとSは異なっていな
ければならない。部分列Tsub を用いて状態Sに到達
するために、状態Sにおける値すべてを指定すること
が必須であるとは限らない。したがって、状態Sにお
いて必須でないビットを指定しないことにより、状態S
を緩和することができる。同様に、有限状態機械を状
態Sfinal に遷移させるために、状態Sにおけるビッ
トすべてを指定する必要はない。
【0010】一般性を失うことなく、状態SとS
それぞれ、10110と00100と仮定する。状態S
をX01X0に緩和できると仮定すると、第1及び第
4の状態ビット(フリップフロップ値)は指定されな
い。状態緩和は、部分列Tsubをテスト集合から削除し
ても、修正されたシーケンスを用いて、有限状態機械を
状態Sfinal に遷移させることができることを保証する
ものである。部分列Tsub を削除するということは、ベ
クトルV〜Vj-1 をテスト集合Tから削除することを
意味する。ここで、部分列Tsub の最後のベクトル(ベ
クトルV)は、依然として、テスト集合の一部をなし
ている。別の言い方をすれば、緩和された状態Sは状
態Sをカバーし、部分列Tsub は、圧縮を達成するた
めに削除し得るサイクルを生成している。以上が本発明
でいう「状態緩和」の意味である。
【0011】状態の緩和は、A.Raghunatha
nによる“Acceleration Techniq
ues for Dynamic Vector Co
mpaction”(Proc.Intl.Conf.
Computer−Aided Design、31
0−317頁)と題する論文に述べられているようなサ
ポート集合アルゴリズムを用いて効率的に計算すること
ができる。サポート集合は、線形の時間・領域計算量と
して計算することができ、これにより、緩和法は非常に
実現可能なものとなる。テスト集合がサイクルをもって
いる場合には、状態緩和は、より大きいサイクルを見出
だすために用いることができる。サイクルのサイズは、
そのサイクルを生じる部分列内のベクトルの数である。
【0012】
【課題を解決するための手段】本発明の基本ステップ
は、(1)有限状態機械の出力状態を緩和させること、
(2)削除候補としての再帰[recurrent] 部分列を識別
すること、(3)故障シミュレーション解析を実行し
て、この部分列が削除可能かどうかを判定すること、
(4)この部分列を削除、および/または削除のために
次の再帰部分列候補を識別することである。
【0013】本発明にはいくつかの利点がある。サイク
ルをもたないために既存の部分列削除技術では圧縮でき
なかったテスト集合を圧縮することができる。テスト集
合におけるサイクルのサイズを状態緩和により著しく増
大させることができ、より大きいサイクルを削除するこ
とで、より良好な圧縮が達成される。本発明によれば、
多数の故障シミュレーションパスを必要とする試行・再
試行法と比較して、わずか2つの故障シミュレーション
パスしか必要としない。現在知られている部分列削除方
法と比較して、短い実行時間で、極めて高度な圧縮が達
成される。ISCAS89順序ベンチマーク回路といく
つかの合成回路における実験によれば、公知の部分列削
除方法と比較して、本発明では、常に、短い実行時間で
極めて高度な圧縮が達成される。
【0014】
【発明の実施の形態】以下、本発明の好ましい実施の形
態を図面を参照して説明する。n個のベクトルV〜V
からなる順序回路テストベクトル集合Tを考える。集
合Tのi番目のベクトルからj番目のベクトル(0≦i
≦j≦n)までの部分列を、T[V,Vi+1 ,…,V
]であらわす。ここで、VとVとは、それぞれ、
テストベクトル集合Tにおけるi番目のベクトルおよび
j番目のベクトルである。重要な用語について、以下に
説明する。
【0015】再帰部分列Trec は、有限状態機械をある
初期状態から同じ状態に遷移させる。再帰部分列Trec
は、必ず、有限状態機械の初期状態を再訪する。この部
分列は、有限状態機械の状態図におけるサイクルをトラ
バースする役割をもつ。
【0016】再帰部分列は、テスト集合Tの、故障ドロ
ッピングをともなう故障シミュレーション中に、この部
分列内に故障が検出されなければ、不活性部分列(T
inert)である。故障ドロッピングとは、テスト集合を
圧縮する際に、最終圧縮テストベクトル集合中に残るこ
とになるテストベクトルにより検出される故障を、残り
の未圧縮テストベクトルにより検出しなければならない
故障のプールから排除することを意味する。不活性部分
列は、ある条件のもとで、故障検出率に悪影響を与えず
にテスト集合から削除することができる。例えば、上記
に引用したHsiaoを参照されたい。
【0017】ドントケア値Xを割り当てられたフリップ
フロップは、指定されていないとみなされる。状態S
を部分的に指定した場合には、状態Sのドントケア
(未割り当て)値を数え上げることにより、状態の網羅
集合[exhaustive set]を得ることができる。例えば、状
態X01は部分的に指定されたものであり、これは、2
つの状態001と101を表わす。
【0018】状態Sは、状態Sにより表わされる状
態のグループが状態Sによって表わされる状態の部分
集合であるならば、状態Sをカバーする。例えば、そ
れぞれ、ビットベクトルX01と00Xで表わされる2
つの状態SおよびSについて考えてみる。状態S
は状態Sをカバーしない。これは、状態Sが2つの
状態000と001を表わし、状態Sには状態000
が含まれていないからである。状態SとSとを完全
に指定するならば、状態SとSが同一のときのみ、
状態SはSをカバーする。
【0019】フリップフロップは、その値が0あるいは
1からドントケア値Xに変化するならば、緩和される。
【0020】状態S、Sとこれらの緩和状態
、S について考えてみる。緩和状態S
は、S が非緩和状態Sをカバーするならば、
緩和状態S を完全にカバーする。ここで、緩和状態
は、S をカバーするかもしれないし、カバー
しないかもしれない。例えば、緩和状態S をX0
1、S を00Xとする。緩和状態S はS
カバーしていない。しかしながら、緩和前には状態S
が001であったならば、緩和状態S は状態S
カバーする。したがって、緩和状態S は、S
完全にカバーする。
【0021】2つの緩和状態S とS について考
えてみよう。緩和再帰部分列Trelaxed_rec は、有限状
態機械を緩和状態S がS を完全にカバーするよ
うに緩和状態S から緩和状態S に遷移させる。
【0022】緩和不活性部分列Trelaxed_inert は、テ
スト集合Tの故障シミュレーション(故障ドロッピング
をともなう)中に、この部分列内に故障が検出されない
ならば、緩和再帰部分列である。
【0023】状態Sが与えられると、サポート集合を
とり出すことによりその緩和状態を算出することができ
る。サポート集合をとり出す方法は周知である。例え
ば、本明細書中に参考として取り入れた、A.Ragh
unathanらによる“Acceleration
techniques for dynamic ve
ctor compaction”(Proc.Int
l.conf.Computer−Aided Des
ign、310−317頁、1995年)を参照された
い。組み合わせ回路の一次出力Zにおける応答v(0あ
るいは1)を生成する入力ベクトルについて考えてみ
る。入力ベクトルは完全に指定されていてもされていな
くともよい。ベクトルは、一次入力のいくつかが指定さ
れていなければ(これらの入力には、ドントケア値Xが
割り当てられる)、完全には指定されない。一次出力Z
のサポート集合は、以下の条件すべてを満たす信号の任
意の集合(一次入力を含む)である。
【0024】SS1 集合におけるすべての信号は、論
理値0あるいは1をとる(すなわち、どの信号も、未知
の値をとらない)。
【0025】SS2 一次出力Zは、集合の構成要素で
ある。
【0026】SS3 サポート集合における一次入力信
号以外の任意の信号の論理値は、サポート集合内の別の
信号の論理値によってのみ、一義的に決定される。
【0027】条件SS2あるいはSS3に反することな
く、集合内の信号を削除することができなければ、サポ
ート集合は最小である。この最小サポート集合は、最小
基数[least cardinality] のサポート集合である。最小
サポート集合はまた、極小であるが、その逆は真ではな
い。
【0028】入力ベクトルにより、回路のいくつかの一
次出力に既知の値をとらせることができる。一次出力が
多数の場合には、条件SS2は、一次出力の各々がサポ
ート集合に含まれることを必要とするように修正され
る。サポート集合は、ある任意の入力ベクトルについて
所望の次の状態を生成するのに十分な、現在の状態にお
けるフリップフロップ値の集合を計算するために用いる
ことができる。
【0029】図2に示すISCAS89順序ベンチマー
ク回路s27について考えてみる。この回路は、4つの
一次入力(G1、G2、G3、G4)と、1つの一次出
力(G17)と、3個のフリップフロップ(G5、G
6、G7)と、中間論理素子G8、G9、G10、G1
1、G12、G13、G14、G15、G16とを有す
る。回路への入力をベクトル<G1,G2,G3,G4
>で表わす。順序回路の状態は、ベクトル<G5,G
6,G7>で与えられる。回路の初期状態を100と
し、入力ベクトル1X10を与えると、回路は出力値1
を出力する。入力ベクトルは、順序回路を状態100に
遷移させる。論理シミュレーションは、有限状態機械の
初期状態が以下の3つの状態、すなわち、101、11
0、あるいは、111のいずれかであったならば、同一
の次の状態および一次出力値が得られることを示す。こ
の例は、ある入力ベクトルについて、順序回路を同一の
次の状態および一次出力値に遷移させるいくつかの初期
状態があり得ることを示すものである。例えば、初期状
態の集合を状態ベクトル1XXで簡潔に表わすことがで
きる。この状態は、4つの初期状態のすべての緩和状態
である。
【0030】状態緩和により、故障シミュレーションに
おいて顕著な利点が得られる。緩和値を有するフリップ
フロップにおける故障結果が、一次出力やフリップフロ
ップのどれかに伝搬することはあり得ない。これは、緩
和フリップフロップ上の0あるいは1の値が一次出力や
次の状態値に何の影響も与えないからである。もう一
度、図2に例示した回路s27について検討してみる。
緩和フリップフロップG7上での故障結果が一次出力や
フリップフロップに伝搬することはあり得ない。これ
は、制御値G16=0により、一次出力やフリップフロ
ップG5およびG6に故障結果が伝搬するのが妨げら
れ、制御値G3=1により、フリップフロップG7へ故
障結果が伝搬するのを妨げられるからである。
【0031】状態緩和は、いくつかの手法を用いて達成
することができる。緩和状態を効率的に導き出すため
に、サポート集合が用いられる。サポート集合の算出
は、線形の時間・領域計算量を有する。再び、図2に示
した回路s27について考えてみる。信号(G3=1)
のみが割り当て(G13=0)のためのサポート集合で
ある。一方、信号(G5=1,G9=1,G16=0,
G4=0,G8=0,G14=0,G1=1)が組み合
わさって、(G11=0)のためのサポート集合を形成
する。
【0032】理論上、テスト集合Tの論理シミュレーシ
ョン中に逆の順番で緩和される状態について考慮する必
要がある。このことは、緩和フリップフロップ値の数を
最大化する。テスト集合をT[V,…,V]とし、
(1≦i≦n)を、ベクトルVをシミュレートす
る際の機械の状態とする。緩和値を最大にするために、
…Sの順に状態を緩和することができる。フリッ
プフロップ上の次の状態値が現在の状態に対して可能な
緩和の程度を決定するため、すべての状態S(1≦i
≦j)について考慮する前に、まず状態Sを緩和する
ことが有用である。しかしながら、逆順での緩和のため
のメモリ記憶のコストは、非常に高い。これは、テスト
集合T内のベクトルすべてについて信号値の論理値を記
憶することを必要とする。
【0033】これに代わる、より経済的な方法は、テス
ト集合Tの論理シミュレーション中に状態が現れるのと
同じ順序で、状態を緩和することである。このことは、
次の状態がまだ緩和されていないため、各状態は、完全
に指定された次の状態に対して緩和されることを意味す
る。
【0034】テスト集合全体について数回にわたり状態
を反復緩和させることにより、サポート集合内のフリッ
プフロップ数をさらに減少させることができる。第一回
目の反復では、完全に指定された次の状態に対して各状
態を緩和し、第二回目の反復では、第一回目の反復にお
いて計算されたすでに緩和された継続する状態に対して
対応するサポート集合を計算することによりあらゆる状
態をさらに緩和させる、などである。しかしながら、状
態の反復緩和は、実行時間を増大させてしまう。実験結
果によれば、以降の完全に指定された状態に基づく最小
サポート集合がテスト集合を大幅に圧縮するのに十分で
あることが示されている。
【0035】フリップフロップは、正常な回路と故障回
路について異なるブール値(0あるいは1)を有するな
らば、故障結果を有する。フリップフロップが正常な回
路において1(0)の値を有し、故障回路において0
(1)の値を有するならば、この値の組み合わせはD
(Dバー(図3においてDの上にバーが付された記号
で、Dの反転値を表すものとする))として表わされ
る。フリップフロップは、部分列Tsub において第1の
ベクトルを印加する前にすでに故障結果を有し得る。同
様に、フリップフロップは、部分列が与えられた後にも
故障結果を有し得る。
【0036】不活性部分列Tsub について考えてみる。
この部分列はある条件のもとでは、故障検出率を全く低
下させずに、テスト集合から削除することができる。不
活性部分列を与える前と与えた後でフリップフロップ上
の故障結果が同一(図3(a)参照)であるならば、こ
の部分列を問題なく削除することができる。しかしなが
ら、部分列を与える前と与えた後で故障結果が異なる
(図3(b)参照)こともある。この状況では、部分列
を削除する前に、さらなる解析が必要となる。
【0037】例えば、部分列を与える前には故障結果を
もたないが、部分列のシミュレーション後には、故障結
果を示すフリップフロップを考えてみよう。テスト集合
Tにおける残りのベクトルによって、故障結果を一次出
力に伝搬し得ないことが証明できる場合にのみ、部分列
の削除は可能である。
【0038】再帰部分列は、(1)この部分列が不活性
部分列について指定されたすべての条件を満たし、
(2)部分列内で検出された故障がテスト集合T内のど
こか他のところでも検出できるならば、削除することが
できる。
【0039】基本的な部分列削除アルゴリズムは以下の
とおりである。
【0040】 basic_subsequence_removal() (基本部分列削除) /* FIRST FAULT Simulation PASS */ (第1の故障シミュレーションパス) Collect recurrent & inert subsequences (再帰・不活性部分列収集) /* SECOND FAULT SIMULATION PASS */ (第2の故障シミュレーションパス) For each subsequence Tsubi collected (収集された各部分列Tsubiについて) If any of the removal criteria satisfied (削除基準のいずれかが満たされたならば) Remove Tsubi from the test set (テスト集合からTsubiを削除) このアルゴリズムは、2つのパスからなる。第1の故障
シミュレーションパスは、故障のない機械を仮定して不
活性および再帰部分列を識別し、収集するために用いら
れる。第2の故障シミュレーションパスは、故障のある
機械を解析することにより、不活性および再帰部分列が
部分列を削除するために指定された条件すべてを満足す
るかどうかを判断する。このツーパスアルゴリズムは、
第2のパスにおいてのみ故障状態を記録すればよいた
め、メモリを大幅に節約する。故障状態は、各不活性あ
るいは再帰部分列の境界においてのみ記録される。
【0041】ベクトルV…Vからなる部分列Tsub
について考えてみる。部分列の論理シミュレーションに
おいてベクトルVをシミュレートする際の、機械の初
期状態をSとする。図4に示された場合について検討
すると、部分列Tsub は、初期状態S(1011)が
部分列Tsub の最終状態Sj+1 (0110)と異なるた
め、再帰部分列ではない。状態緩和によって、状態S
の第1のフリップフロップ値および状態Sの第2のフ
リップフロップ値を緩和することが可能となると仮定す
る(すなわち、これらのフリップフロップの緩和は、こ
れらのフリップフロップ値が、対応する次の状態Si+1
あるいはSj+1 にそれぞれ到達するために必要ないこと
を示す)。ここで、緩和状態S は、状態Sにおけ
る第1のフリップフロップの非緩和値が1であるため、
緩和状態S を完全にカバーする。部分列Tsub をテ
スト集合から削除するとしても、回路の現在の状態がS
ではなくSである場合には、ベクトルVj+1 を与え
ることにより、状態Sj+1に到達することは依然として
可能である。部分列Tsub 内に故障が検出されなけれ
ば、部分列Tsub は単に緩和不活性部分列であり、境界
条件が以下の具体例に述べられているとおりであれば、
その削除が故障検出率に影響を及ぼすことはない。故障
が部分列Tsub 内に検出されたとしても、この部分列内
に検出された故障がテストシーケンス中の他のベクトル
によっても検出できるのであれば、部分列Tsub を削除
することは依然として可能である。
【0042】緩和部分列削除技術もやはり、2つの故障
シミュレーションパスを必要とする。第1のパスにおい
て、テスト集合によりトラバースされる無故障状態が緩
和される。このパスではさらに、緩和された不活性およ
び再帰部分列を識別する。第2の故障シミュレーション
パスにおいて、緩和された不活性あるいは再帰部分列を
それぞれ削除するための境界条件が調べられる。
【0043】故障マスキングが不活性部分列内に生じる
ことがあり得る。また、緩和された不活性部分列が故障
をマスキングすることもあり得る。ここで、緩和された
不活性部分列は、対応する不活性部分列が故障をマスキ
ングしない場合であっても、故障をマスキングし得る。
ベクトルV…Vからなる部分列Tsub を用いて、図
5(a)および5(b)に示された例について考えてみ
る。図5(a)の状態SとSについて、いくつかの
関連するフリップフロップ値が示されている。故障回路
におけるこれらのフリップフロップ値を、図5(b)に
示す。フリップフロップ値は、正常な回路において1
(0)の値とし、故障回路では0(1)の値をとるとす
ると、D(Dバー)で表わされる。故障シミュレーショ
ン中に、状態Sにおける2つのフリップフロップが、
それぞれ、DおよびDバーの故障結果を有すると仮定し
よう。ANDゲートは、ANDゲートの入力における故
障結果が互いをマスキングするため、故障結果を示さな
い。しかしながら、部分列Tsub のシミュレーションの
過程において、両方のフリップフロップが同一の故障結
果Dバーを有し、結果としてANDゲートを越えて故障
結果が伝搬する可能性がある。この場合には、故障結果
は、ANDゲートによりマスキングされず、ANDゲー
トの出力側にとりだされた故障結果はさらに、一次出力
に伝搬する。
【0044】次に、状態緩和シナリオについて考えてみ
る。状態Sの状態緩和により、図5(a)に示す状態
が得られると仮定する。部分列Tsub の削除は、
ベクトルV…Vj-1 が削除されることを意味する。し
たがって、ベクトルVには、部分列の削除後、現在の
状態Sが加えられることになる(図5(b))。変更
されたシーケンスにおいて、故障マスキングにより、A
NDゲートの出力に故障結果が現れることはない。まれ
にではあるが、テストシーケンス圧縮後の故障検出率
が、故障マスキングにより、若干低くなることがある。
【0045】次に、図6を参照して、本方法のより具体
的な例について説明する。15個のテストベクトルから
なるテスト集合を仮定する(パートA)。出力状態の欄
は、各テストベクトルが加えられた後の、無故障機械の
一次出力を反映している。テストベクトル3〜12は再
帰部分列を表わす。これはテストベクトル3と12の両
方を加えた後の、機械の出力状態が同一であるからであ
る。テストベクトル2〜11もやはり再帰部分列であ
る。
【0046】第1のステップは、出力状態を緩和するこ
とである。緩和状態の欄は、緩和の結果を示している。
次のステップは、緩和再帰部分列を識別することによ
り、削除候補の部分列を識別することである。このよう
な部分列の1つはテストベクトル2〜14からなる。緩
和によって、より大きい部分列候補を識別することが可
能となる。
【0047】ここで、この部分列候補が削除可能かどう
かを判断するために部分列の境界条件を調べなければな
らない。第1に、パートBに示すように、テストベクト
ル2〜13をテスト集合から削除する。次に、識別され
たすべての故障(この例では5個)について故障シミュ
レーションを実行し、出力状態を緩和させる。テストベ
クトル14を加えることで、各故障について故障のない
機械と同じ出力状態が生成されるのであれば(緩和状態
の欄)、境界条件が満たされ、部分列候補をテストベク
トル集合から永久的に削除できる。しかしながら、パー
トBに示すように、故障2を有するテストベクトル14
を与えると、異なる出力状態(00)が生成される。
【0048】このことは、部分列を削除できないことを
意味するものではないが、さらなる解析が必要とされ
る。部分列は、故障2がテストベクトルの別の部分列に
より見出だされるか、あるいは、故障2が集合内のどの
テストベクトルによっても見出だされなければ、まだ削
除可能である。ここで、テストベクトル集合のほとんど
すべてが、機械における故障すべてを検出することはな
い。これらの条件のどちらも満たさなければ、部分列候
補は削除できず、次の部分列候補が解析される。
【0049】この例において、別の部分列候補はテスト
ベクトル2〜13からなる。パートCは、テストベクト
ル2〜12を削除した後の故障シミュレーションの結果
を示している。ここで、故障シミュレーション後、テス
トベクトル14を加えることで、故障のない機械と同じ
出力状態が生成される(緩和状態の欄)。したがって、
境界条件が満たされ、部分列候補をテストベクトル集合
から永久的に削除することが可能となる。
【0050】このプロセスは、部分列候補のすべてを調
べ終えるまで続けられる。
【0051】実験結果 緩和再帰部分列削除アルゴリズムは、C言語において実
現された。ISCAS89順序ベンチマーク回路といく
つかの合成回路が、アルゴリズムの有効性を評価するた
めに用いられた。256MビットのRAMを備えたSu
n UltraSPARC上で、すべての実験が行なわ
れた。2個のテストジェネレータ(HITECとSTR
ATEGATE)によって生成されたテスト集合は、静
的に圧縮された。HITECは、順序回路のための決定
論的テストジェネレータであり、STRATEGATE
は、テストベクトルを生成するために発生論的アルゴリ
ズムを用いている。
【0052】HITECとSTRATEGATEテスト
ベクトルについての圧縮結果を図7と図8にそれぞれ示
す。回路の故障の総数は、図7のみに示されている。ベ
クトルと故障検出率の元の数が各図に示されており、上
述したHsiaoの論文に述べられた従来の手法と、本
発明とによる圧縮結果を合わせて示す。圧縮結果には、
圧縮後の故障検出率と、元のテスト集合サイズに対する
縮小率(%)と、実行時間(秒)が含まれている。圧縮
法は、テスト集合すべてについて、不活性部分列削除と
それに続く再帰部分列削除を組み合わせた手法を用い
た。緩和再帰部分列削除アルゴリズムは、非緩和削除ア
ルゴリズムより実行時間が若干長い。これは、サポート
集合を計算するためと、削除するのに適したものとなっ
たより多くの部分列候補について検討するために余分な
時間が必要となるからである。
【0053】ほとんどの回路について、テスト集合の大
きさが著しく縮小することが観察された。例えば、回路
s1488とs1494において、HITECテストベ
クトルの縮小率はそれぞれ、7.95%から34.2
%、8.67%から42.7%に増加した。s3593
2については、縮小率は4.44%から40.0%に増
加した。同様な傾向が他の多くの回路についても観察さ
れる。回路s1423とs5378では、HITECテ
スト集合の元々のベクトル数が少なく、故障検出率も低
い。そこで、これらについては考察しなかった。
【0054】STRATEGATEテストベクトルにつ
いても大幅な縮小が達成される。例えば、s1423テ
ストベクトルにおいて、テスト集合は、すでに38.1
%の縮小を達成していた従来の技術よりさらに23%縮
小し、故障検出率が低下することはなかった。例えば、
回路s298とs344では、緩和再帰部分列削除によ
り、テスト集合の縮小率は、これらの2つの回路につい
てそれぞれ、0%から7.7%、8.1%から25.6
%に増加した。
【0055】圧縮テストベクトル集合のうちには、元の
テスト集合に比べて故障検出率が若干低くなるものもい
くつかあった。これは、故障マスキングの現象によるも
のである。先に引用したHsiaoに記載されているオ
リジナル部分列削除圧縮技術にも、この問題は存在し
た。しかし、故障検出率の低下はごくわずかである。
【0056】緩和再帰部分列削除に基づく静的テスト集
合圧縮フレームワークについて説明してきた。従来公知
の技術に比べてテスト集合の大きさの大幅な縮小が短い
実行時間で達成される。故障検出率に悪影響を与えず
に、完全に特定されたそれぞれ異なる状態に始まって終
わる部分列を削除するための十分な条件がわかった。試
行及び再試行に基づく静的圧縮法に比べて、本圧縮技術
においては、2つの故障シミュレーションパスしか必要
とされない。その結果、大規模なテスト集合と回路を、
この技術によって迅速に処理できる。さらに、状態緩和
技術は、最近提案されている多くの静的圧縮技術を大幅
に向上させるためにも用いることができる一般的なアプ
ローチである。
【0057】以上、本発明を好ましい実施の形態につい
て説明したが、本発明の趣旨および範囲を逸脱すること
なく種々の変形が可能であることはいうまでもない。
【0058】
【発明の効果】本発明によれば、サイクルをもたないた
めに既存の部分列削除技術では圧縮できなかったテスト
集合を圧縮することができる。また、テスト集合におけ
るサイクルのサイズを状態緩和により著しく増大させる
ことができ、より大きいサイクルを削除することで、よ
り良好な圧縮が達成される。
【0059】本発明によればまた、多数の故障シミュレ
ーションパスを必要とする試行・再試行法と比較して、
わずか2つの故障シミュレーションパスしか必要としな
い。現在知られている部分列削除方法と比較して、短い
実行時間で、極めて高度な圧縮が達成される。
【図面の簡単な説明】
【図1】HITECテスト集合によりトラバースされた
状態の数を示す図である。
【図2】ISCAS89順序ベンチマーク回路s27を
示す図である。
【図3】部分列に入出力される故障結果が同一である場
合(図3(a))、及び部分列に入出力される故障結果
が異なる場合(図3(b))を示す図である。
【図4】緩和された部分列の削除を示す図である。
【図5】無故障状態緩和(図5(a))、及び部分列削
除後の故障マスキング(図5(b))を示す図である。
【図6】テストベクトル集合に本発明を適用した例を示
す図である。
【図7】HITECテスト集合についての圧縮結果を示
す図である。
【図8】STRATEGATEテスト集合についての圧
縮結果を示す図である。
【符号の説明】
、S 状態 V、V ベクトル

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 テストベクトル集合からテストベクトル
    の部分列を削除することにより、有限状態を有する論理
    回路のテスト集合圧縮を行なう方法において、 (a)論理回路有限状態を緩和するステップと、 (b)削除のためにテストベクトルの部分列候補を識別
    するステップと、 (c)上記テストベクトルの部分列候補を一時的に削除
    するステップと、 (d)残りのテストベクトルに対して故障シミュレーシ
    ョンを実行するステップと、 (e)故障シミュレーション結果を一組の削除基準に照
    らして検査するステップと、 (f)上記一組の削除基準が満たされた場合に、上記部
    分列候補を永久に削除するステップと、 (g)上記一組の削除基準が満たされない場合に、上記
    部分列候補を置き換えるステップと、 (h)テストベクトルのすべての部分列候補が識別され
    るまで、ステップ(a)〜(g)を繰り返すステップと
    を有する圧縮方法。
  2. 【請求項2】 上記論理回路有限状態は、サポート集合
    をとり出すことにより緩和されることを特徴とする請求
    項1記載の圧縮方法。
  3. 【請求項3】 上記サポート集合は、逆順にとり出され
    ることを特徴とする請求項2記載の圧縮方法。
  4. 【請求項4】 上記サポート集合は、正順にとり出され
    ることを特徴とする請求項2記載の圧縮方法。
  5. 【請求項5】 上記サポート集合は、繰り返してとり出
    されることを特徴とする請求項2記載の圧縮方法。
  6. 【請求項6】 上記一組の削除基準は、 (a)上記部分列候補が、不活性であること、 (b)上記部分列候補により検出される故障が、上記テ
    ストベクトル集合内のどこか別の箇所で検出可能である
    こと、 (c)故障結果が、上記テストベクトル集合におけるど
    のテストベクトルによっても検出できない故障の結果で
    あること、の少なくとも一つからなることを特徴とする
    請求項1記載の圧縮方法。
JP32021898A 1997-12-31 1998-11-11 順序回路のテスト集合圧縮方法 Expired - Fee Related JP3365325B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/001543 1997-12-31
US09/001,543 US6145106A (en) 1997-12-31 1997-12-31 State relaxation based subsequence removal method for fast static compaction in sequential circuits

Publications (2)

Publication Number Publication Date
JPH11223664A true JPH11223664A (ja) 1999-08-17
JP3365325B2 JP3365325B2 (ja) 2003-01-08

Family

ID=21696591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32021898A Expired - Fee Related JP3365325B2 (ja) 1997-12-31 1998-11-11 順序回路のテスト集合圧縮方法

Country Status (2)

Country Link
US (1) US6145106A (ja)
JP (1) JP3365325B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI403746B (zh) * 2008-10-22 2013-08-01 國立臺灣大學 測試圖案最佳化的方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314540B1 (en) * 1999-04-12 2001-11-06 International Business Machines Corporation Partitioned pseudo-random logic test for improved manufacturability of semiconductor chips
US6532559B1 (en) * 2000-01-26 2003-03-11 Motorola, Inc. Method and apparatus for testing a circuit
US6546513B1 (en) * 2000-06-02 2003-04-08 Advanced Micro Devices Data processing device test apparatus and method therefor
US6820243B1 (en) * 2001-09-19 2004-11-16 Nassda Corporation Hybrid system of static analysis and dynamic simulation for circuit design

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI403746B (zh) * 2008-10-22 2013-08-01 國立臺灣大學 測試圖案最佳化的方法

Also Published As

Publication number Publication date
JP3365325B2 (ja) 2003-01-08
US6145106A (en) 2000-11-07

Similar Documents

Publication Publication Date Title
JP3552093B2 (ja) ベクトル・セット生成方法、試験システム及び試験プログラムを格納する記録媒体
Hsu et al. A new path-oriented effect-cause methodology to diagnose delay failures
JPH09145800A (ja) テストパターン生成方式
Hsiao et al. State relaxation based subsequence removal for fast static compaction in sequential circuits
US6836867B2 (en) Method of generating a pattern for testing a logic circuit and apparatus for doing the same
US8359565B2 (en) Method and apparatus for generating test patterns for use in at-speed testing
KR100966010B1 (ko) 하나 이상의 중복 테스트 제거 및 하나 이상의 비효율적테스트 재배열 방법
JPH10283394A (ja) 故障シミュレーション方法
JP3365325B2 (ja) 順序回路のテスト集合圧縮方法
Venkataraman et al. Dynamic diagnosis of sequential circuits based on stuck-at faults
JP2701753B2 (ja) Lsiの故障箇所推定方法
US6212655B1 (en) IDDQ test solution for large asics
Kajihara et al. Efficient techniques for multiple fault test generation
El-Maleh et al. A fast sequential learning technique for real circuits with application to enhancing ATPG performance
Allen et al. DORA: CAD interface to automatic diagnostics
JP3312605B2 (ja) 逆論理展開システム及び逆論理展開方法並びにプログラムを記録した機械読み取り可能な記録媒体
Pomeranz Multicycle Tests for Functionally Possible Two-Cycle Gate-Exhaustive Faults
Seshadri et al. Accelerating diagnostic fault simulation using z-diagnosis and concurrent equivalence identification
JPH01156680A (ja) 論理回路の故障診断方法
Konemann A pattern skipping method for weighted random pattern testing
JP3547559B2 (ja) テストパターン圧縮方法
Higami et al. Diagnosis of Double Faults Consisting of a Stuck-at Fault and a Transition Fault
JP2672893B2 (ja) 故障シミュレーション処理装置
Wang et al. Diagnosis of delay faults due to resistive bridges, delay variations and defects
JP3126833B2 (ja) 集積回路の故障診断装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021001

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

Free format text: PAYMENT UNTIL: 20081101

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081101

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091101

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091101

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101101

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111101

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111101

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121101

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20131101

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees