JP2005201829A - 半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法 - Google Patents
半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法 Download PDFInfo
- Publication number
- JP2005201829A JP2005201829A JP2004009929A JP2004009929A JP2005201829A JP 2005201829 A JP2005201829 A JP 2005201829A JP 2004009929 A JP2004009929 A JP 2004009929A JP 2004009929 A JP2004009929 A JP 2004009929A JP 2005201829 A JP2005201829 A JP 2005201829A
- Authority
- JP
- Japan
- Prior art keywords
- value
- memory circuit
- pattern
- memory
- address
- 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.)
- Pending
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】 メモリ回路を含む半導体集積回路の各パスの動的な試験を行うことが可能となるテストパターン生成方法を提供することを目的とする。
【解決手段】 メモリ回路のデータラインから対象故障を選択(ステッフ゜-101)し、選択した対象故障に対応するテスト可能最長パスを選択(ステッフ゜-102)し、テスト可能最長パスの初期化パターン(ステッフ゜-103)と遷移パターン(ステッフ゜-104)を求め、続いてアドレスラインの初期化パターン(ステッフ゜-105)と遷移パターン(ステッフ゜-106)を求め、制御信号群の初期化パターン(ステッフ゜-107)と遷移パターン(ステッフ゜-108)を求め、メモリ回路に書きこまれた値を出力設定値スキャンFF群に読み出した値を期待値として求め(ステッフ゜-109)、上記ステップ−103〜109で求めたパターンをシリアルパターンとして生成する(ステッフ゜-110)。
【選択図】 図3
【解決手段】 メモリ回路のデータラインから対象故障を選択(ステッフ゜-101)し、選択した対象故障に対応するテスト可能最長パスを選択(ステッフ゜-102)し、テスト可能最長パスの初期化パターン(ステッフ゜-103)と遷移パターン(ステッフ゜-104)を求め、続いてアドレスラインの初期化パターン(ステッフ゜-105)と遷移パターン(ステッフ゜-106)を求め、制御信号群の初期化パターン(ステッフ゜-107)と遷移パターン(ステッフ゜-108)を求め、メモリ回路に書きこまれた値を出力設定値スキャンFF群に読み出した値を期待値として求め(ステッフ゜-109)、上記ステップ−103〜109で求めたパターンをシリアルパターンとして生成する(ステッフ゜-110)。
【選択図】 図3
Description
本発明は、メモリ回路を含む半導体集積回路の試験に用いられるテストパターン生成方法、特にメモリ周辺回路内のパス遅延故障を検出するためのテストパターン生成方法、および生成したテストパターンを使用した検査方法に関するものである。
従来のメモリ回路の実動作テストは、図28に示すようにメモリMへの入力経路上およびメモリ回路Mからの出力経路上に、論理回路部CCの機能経路(通常動作経路)とテスト用経路(テスト用AD,テスト用DI,テスト用NCE,テスト用NRE,テスト用NWE)を切替えることが出来る付加回路(セレクタS)を設け、セレクタSによりテスト経路を選択し、メモリBISTまたは外部からのダイレクトアクセスによって前記テスト経路からメモリ回路Mへテスト用パターンを印加することで行われている。図28に示す半導体集積回路は、論理回路部の一部のフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、メモリ回路Mに試験用の各値の設定を行うスキャン・フリップフロップ群(SFF群)と、メモリ回路Mの出力を受ける出力値設定スキャン・フリップフロップ群(出力値設定SFF群)を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能としている。しかし、上記テストでは、SFF群からメモリ回路Mへの経路およびメモリ回路Mから出力値設定SFF群への経路は試験の対象外となっていた。
そこで、このような経路を含めたメモリ回路の試験を行うことを可能とした試験方法が開発されている。すなわち、検査対象となる回路の入力端子から検査対象回路に内蔵されたメモリ回路のアドレス入力端子に至る入力パスとメモリ回路のデータ出力端子から検査対象回路の出力ピンに至る出力パスを確保し、検査対象回路の入力端子から入力端子を介して内蔵のメモリ回路のアドレス入力端子に与えられるメモリ読出しアドレスを切替え、内蔵メモリの読出しアドレスが切替えられてから予め設定された時間が経過するまでに出力ピンの信号値が変化したか否かを調べることでメモリの試験(遅延故障テスト)を行っている(例えば、特許文献1参照)。
また集積回路内のパス遅延故障を試験するためには、テストパターンを形成する必要がある。このような集積回路内のパス遅延故障を試験するためのテストパターン系列(一般に、遅延故障を試験するためには2つのテストパターンv1とv2が必要であり、テストパターンv2は図29に示すように組合せ回路を2時刻展開した回路でのテストパターン生成が必要であり、これら2つのテストパターンはテストパターン系列と呼ばれる)は、図30に示す経路活性化表や図31に示す含意表や図32に示す5値論理にしたがって、被検査回路(図28,29の論理回路部CC)内の各信号線に上記論理値を割り当てることによって生成されている。図32に示すように、図30と図31に示すS0はパターンv1とv2の何でも“0”であり、S1はパターンv1とv2の何でも“1”であり、U0はパターンv1で“x”、パターンv2で“0”であり、U1はパターンv1で“x”、パターンv2で“1”であり、xxはv1とv2の何れも“x”であることを示す。
また集積回路内のパス遅延故障を試験するためには、テストパターンを形成する必要がある。このような集積回路内のパス遅延故障を試験するためのテストパターン系列(一般に、遅延故障を試験するためには2つのテストパターンv1とv2が必要であり、テストパターンv2は図29に示すように組合せ回路を2時刻展開した回路でのテストパターン生成が必要であり、これら2つのテストパターンはテストパターン系列と呼ばれる)は、図30に示す経路活性化表や図31に示す含意表や図32に示す5値論理にしたがって、被検査回路(図28,29の論理回路部CC)内の各信号線に上記論理値を割り当てることによって生成されている。図32に示すように、図30と図31に示すS0はパターンv1とv2の何でも“0”であり、S1はパターンv1とv2の何でも“1”であり、U0はパターンv1で“x”、パターンv2で“0”であり、U1はパターンv1で“x”、パターンv2で“1”であり、xxはv1とv2の何れも“x”であることを示す。
図30(a)はANDゲートの一方の入力が“0”から“1”に変化した時に、出力の状態が変化する、つまり回路を活性化するのに必要な他方の入力信号値を示しており、この場合は“U1”にすればよい。また、図30(b)に示すようにORゲートの一方の入力が“1”から“0”に変化する場合は、出力の状態を変化させる(回路を活性化する)ために他方の入力は “U0”にすればよい。図30(c)にANDゲートまたはNANDゲート、およびORゲートまたはNORゲートの各一方の入力が“0”から“1”に立上った場合と、“1”から“0”に立下った場合における、これらゲートを活性化するのに必要な他方の入力信号値をそれぞれ示す。
図31(a)はANDゲートの二つの入力端子x1 ,x2 の各入力がそれぞれS0,U0,S1,U1,XXの何れかとなった場合の各組み合せにおける出力の状態を示している。例えばx1 がS0,x2 がU0のとき、パターンv1=<0,x>,パターンv2=<0,0>であるから出力は<0,0>=S0となることを示している。また図31(b)はNORゲートの二つの入力端子x1 ,x2 の各入力がそれぞれS0,U0,S1,U1,XXの何れかとなった場合の各組合せにおける出力の状態を示し、図31(c)はインバータの入力端子xの入力がS0,U0,S1,U1,XXである場合の出力端子zの出力がどのようになるかを示している。
スキャンFF群を使用してパス遅延故障を試験する集積回路の一例を図33に示す。図33の集積回路は、スキャンFF1〜9により遷移値設定SFF群が形成され、スキャンFF11〜18により初期値設定SFF群が形成され、またこれらスキャンFF1〜9,11〜18はシリアルに接続され、スキャンイネーブル信号がスキャンモード時はスキャンシフト動作を行い、通常モード時は通常動作を行う構成になっている。
図33に示すように、スキャンFF1の出力とスキャンFF2の出力はANDゲートg1に供給され、入力端子X1とスキャンFF3の出力がANDゲートg2に供給され、スキャンFF4の出力とスキャンFF5の出力はANDゲートg4に供給され、入力端子X3とスキャンFF6の出力がANDゲートg6に供給され、スキャンFF7の出力と入力端子X4がANDゲートg7に供給され、入力端子X5とスキャンFF9の出力はANDゲートg9の供給され、ANDゲートg1の出力とANDゲートg2の出力はORゲートg3に供給され、ORゲートg3の出力はスキャンFF11の入力に供給され、ANDゲートg2の出力はスキャンFF12の入力に供給され、入力端子X2とANDゲートg4の出力はORゲートg5に供給され、ORゲートg5の出力はスキャンFF13の入力に供給され、ANDゲートg4の出力はスキャンFF14の入力に供給され、ANDゲートg6の出力とANDゲートg7の出力はORゲートg8に供給され、ANDゲートg7の出力はスキャンFF16の入力に供給され、ORゲートg8の出力はスキャンFF15の入力に供給され、スキャンFF8の出力とANDゲートg9の出力はORゲートg10に供給され、ORゲートg10の出力はスキャンFF17の入力に供給され、ADNゲートg9の出力はスキャンFF18の入力に供給される。
さらに、スキャンFF13の出力はNOTゲートG2に供給され、スキャンFF12の出力とNOTゲートG2の出力はNANDゲートG1に供給され、NANDゲートG1とスキャンFF14の出力はNANDゲートG3に供給され、スキャンFF17の出力はNOTゲートG7に供給され、スキャンFF16の出力とNOTゲートG7の出力はNANDゲートG8に供給され、NANDゲートG8の出力とスキャンFF18の出力はNANDゲートG9に供給され、スキャンFF11の出力とNANDゲートG3の出力はNORゲートG4に供給され、スキャンFF15の出力とNANDゲートG3の出力はNANDゲートG5に供給され、NORゲートG4の出力とNANDゲートG5の出力はNORゲートG6に供給され、NORゲートG6の出力は外部端子X6に供給され、NANDゲートG5の出力は外部端子X7に供給され、NANDゲートG9の出力は外部端子X8に供給される。
このような回路において図中に太線で示すパス、つまりスキャンFF13−G2−G1−G3−G5−X7における“0”から“1”への立ちあがり遷移のパス遅延故障に対するテストパターンを生成するには、まず、図33に示すようにこの被試験パス上の各信号線に遷移信号を設定し、つぎに図34(a)に示すようにパス上の論理ゲートのパス上にない入力信号線(オフインプット;off-inputs)に図30(c)に示した経路活性化表を用いてパスの各ゲートを活性化する信号値を設定する。すなわち、スキャンFF11〜18に初期化パターンを形成する。初期化パターンは、<1,1,0,0,x,1,x,x,x>となる。次に、図34(b)に示すようにスキャンFF11〜18に遷移パターンを生成するためにスキャンSFF11〜18を疑似外部出力とする組合せ回路の各信号線の値を決定する。すなわち、スキャンFF1〜9,X1〜5に遷移パターンを形成する。遷移パターンは、<x,x,1,1,1,1,x,x,x,1,x,1,x,x>となる。よって図33の例では、図中に太線で示すパスの遅延故障を試験するテストパターン系列は、<スキャンFF1〜9,スキャンFF11〜18、X1〜5>=<x,x,1,1,1,1,x,x,x,1,1,0,0,x,1,x,x,x,1,x,1,x,x>と求められる。この場合は“x”は、“0”または“1”の任意の値を割り当てることが可能である(例えば、非特許文献1参照)。
特開平5−128015公報
Angela Krstic/Kwang-Ting (Tim) Cheng,"Delay Fault Testing for VLSI Circuits",(出版社;Kluwer Academic Publishers),(出版日;1998年9月1日),(引用ページ;pp.101-130)
従来の図28に示す機能経路(通常動作経路)とテスト経路を切替えてメモリ回路単体の試験を行う方法では、メモリ部分が試験対象の回路から切り出されるので、実際にそのメモリが使用されるパスが試験されず、しかも、テスト内容が縮退故障などの静的なものに限られるので、ディレイ故障などの動的な故障を検出できなかった。したがって、メモリのアドレス入力,データ入力,データ出力,制御入力のパスについて動的な試験を行って製品の動作を完全に保証することが不可能であった。
また特許文献1に記載された方法では、上記入力パスと出力パスを確保することが困難であり、さらに入力パス、メモリ、出力パスのいずれかに実際に遅延故障が発生しているのかを判定することが困難であった。
また、非特許文献1に記載された方法では、選択されたパスの遅延故障を検出できるが、このような検出方法だけでは、メモリ回路のすべてのアドレス入力やデータ入力やメモリ制御信号群の遅延故障を検査するためのテストパターンを生成することができず、すべての遅延故障を確実に検査することはできない。
本発明は、上記従来の課題を解決するものであり、メモリ回路を含む半導体集積回路の各パスの動的な試験を行うことが可能となるテストパターン生成方法およびこの生成したテストパターンを使用した検査方法を提供することを目的とする。
上記目的を達成するため、請求項1に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータラインから選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うデータライン初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うデータライン遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータライン遷移パターンに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めた制御値パターン系列に対する前記メモリ回路の制御値により、前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、求めた前記データライン初期化パターンと前記データライン遷移パターンと前記アドレスパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータラインから選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うデータライン初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うデータライン遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータライン遷移パターンに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めた制御値パターン系列に対する前記メモリ回路の制御値により、前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、求めた前記データライン初期化パターンと前記データライン遷移パターンと前記アドレスパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
これにより、メモリ回路のデータラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項2に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のアドレスラインから選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うアドレスライン初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うアドレスライン遷移パターンを求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値および前記制御値パターン系列に対する前記メモリ回路の制御値により前記メモリ回路への書き込みを行った後に、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、求めた前記アドレスライン初期化パターンと前記アドレスライン遷移パターンと前記データパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値と異なるアドレスを初期化アドレスとして求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、前記初期化アドレスに前記初期化データの書きこみができる前記メモリ回路の制御信号群の値を、初期化制御値として求める工程とを有することを特徴としている。
また請求項2に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のアドレスラインから選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うアドレスライン初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うアドレスライン遷移パターンを求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値および前記制御値パターン系列に対する前記メモリ回路の制御値により前記メモリ回路への書き込みを行った後に、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、求めた前記アドレスライン初期化パターンと前記アドレスライン遷移パターンと前記データパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値と異なるアドレスを初期化アドレスとして求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、前記初期化アドレスに前記初期化データの書きこみができる前記メモリ回路の制御信号群の値を、初期化制御値として求める工程とを有することを特徴としている。
これにより、メモリ回路のアドレスラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項3に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータアウトラインから対象故障を選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行う第1のメモリ初期化データを求める工程と、前記選択されたテスト可能最長パスの活性化を行う第2のメモリ初期化データを求める工程と、前記メモリ回路に前記第1のメモリ初期化データを書き込む第1のメモリ初期化アドレスを求める工程と、前記メモリ回路に前記第2のメモリ初期化データを書き込むアドレスを、前記第1のメモリ初期化データを書き込むアドレスとは異なるアドレスとする第2のメモリ初期化アドレスを求める工程と、前記メモリ回路に前記第1のメモリ初期化データと前記第2のメモリ初期化データを前記メモリ回路に書き込みができる値に設定するメモリ初期化制御値を求める工程と、前記第1のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト初期化パターンを求める工程と、前記第2のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト遷移パターンを求める工程と、前記データアウト遷移パターンにより活性化されたテスト可能最長パスの終点となる前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、前記データアウト初期化パターンと前記データアウト遷移パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
また請求項3に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータアウトラインから対象故障を選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行う第1のメモリ初期化データを求める工程と、前記選択されたテスト可能最長パスの活性化を行う第2のメモリ初期化データを求める工程と、前記メモリ回路に前記第1のメモリ初期化データを書き込む第1のメモリ初期化アドレスを求める工程と、前記メモリ回路に前記第2のメモリ初期化データを書き込むアドレスを、前記第1のメモリ初期化データを書き込むアドレスとは異なるアドレスとする第2のメモリ初期化アドレスを求める工程と、前記メモリ回路に前記第1のメモリ初期化データと前記第2のメモリ初期化データを前記メモリ回路に書き込みができる値に設定するメモリ初期化制御値を求める工程と、前記第1のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト初期化パターンを求める工程と、前記第2のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト遷移パターンを求める工程と、前記データアウト遷移パターンにより活性化されたテスト可能最長パスの終点となる前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、前記データアウト初期化パターンと前記データアウト遷移パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
これにより、メモリ回路のデータアウトラインから接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項4に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み不可から書き込み可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル遷移パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記ライトイネーブル初期化パターン系列と前記ライトイネーブル遷移パターン系列と前記アドレスパターン系列と前記データパターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値を初期化アドレスとして求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、前記初期化アドレスに前記初期化データを前記メモリ回路に書きこみができる前記メモリ回路の制御信号群の値を、メモリ初期化制御値として求める工程とを有することを特徴としている。
また請求項4に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み不可から書き込み可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル遷移パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記ライトイネーブル初期化パターン系列と前記ライトイネーブル遷移パターン系列と前記アドレスパターン系列と前記データパターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値を初期化アドレスとして求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、前記初期化アドレスに前記初期化データを前記メモリ回路に書きこみができる前記メモリ回路の制御信号群の値を、メモリ初期化制御値として求める工程とを有することを特徴としている。
これにより、メモリ回路のライトイネーブルラインに接続されるパスの書き込み不可から書き込み可能に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項5に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み可能から書き込み不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記テスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、前記テスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するテストパターン系列を求める工程と、前記ライトイネーブル初期化パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第1のメモリ初期化データを求める工程と、前記ライトイネーブル遷移パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第2のメモリ初期化データを、前記第1のメモリ初期化データと異なる値で求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めた第1のメモリ初期化データに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記ライトイネーブル初期化パターンと前記ライトイネーブル遷移パターンと前記アドレスパターン系列と前記第1のメモリ初期化データと前記第2のメモリ初期化データと前記制御値パターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み可能から書き込み不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記テスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、前記テスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するテストパターン系列を求める工程と、前記ライトイネーブル初期化パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第1のメモリ初期化データを求める工程と、前記ライトイネーブル遷移パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第2のメモリ初期化データを、前記第1のメモリ初期化データと異なる値で求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めた第1のメモリ初期化データに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記ライトイネーブル初期化パターンと前記ライトイネーブル遷移パターンと前記アドレスパターン系列と前記第1のメモリ初期化データと前記第2のメモリ初期化データと前記制御値パターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
これにより、メモリ回路のライトイネーブルラインに接続されるパスの書き込み可能から書き込み不可に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項6に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し不可から読出し可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路への書き込みができる値に設定する制御値初期化パターンを求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路からの読出しができる値に設定する制御値遷移パターンを求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値および前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記リードイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、前記期待値と異なる値を出力設定値パターンとして求める工程と、前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記アドレスパターン系列と前記データパターン系列と前記制御値初期化パターンと前記制御値遷移パターンと前記出力設定値パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し不可から読出し可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路への書き込みができる値に設定する制御値初期化パターンを求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路からの読出しができる値に設定する制御値遷移パターンを求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値および前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記リードイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、前記期待値と異なる値を出力設定値パターンとして求める工程と、前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記アドレスパターン系列と前記データパターン系列と前記制御値初期化パターンと前記制御値遷移パターンと前記出力設定値パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
これにより、メモリ回路のリードイネーブルラインに接続されるパスの読出し不可から読出し可能に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項7に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し可能から読出し不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、前記テスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める生成工程と、前記求めたリードイネーブル初期化パターンに対応する所定の第1のメモリ初期化アドレスを求める工程と、前記求めたリードイネーブル遷移パターンに対応する第2のメモリ初期化アドレスを、第1のメモリ初期化アドレスと異なる値で求める工程と、前記求めた第1のメモリ初期化アドレスにおいて前記メモリ回路へ所定のデータ書きこむための第1のメモリ初期化データを求める工程と、前記求めた第2のメモリ初期化アドレスにおいて前記メモリ回路へ書き込む第2のメモリ初期化データを、前記第1のメモリ初期化データとは異なる値で求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記第1のメモリ初期化データおよび前記第2のメモリ初期化データを書き込みができる値に設定するメモリ初期化制御値パターン系列を求める工程と、前記メモリ回路に書き込んだ第1のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する初期値スキャン・フリップフロップ群の値を求める工程と、前記メモリ回路に書き込んだ第2のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する遷移値スキャン・フリップフロップ群の値を求める工程と、前記メモリ回路に書き込んだデータを前記初期値スキャン・フリップフロップ群の値により読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記初期値スキャン・フリップフロップ群の値と前記遷移値スキャン・フリップフロップ群の値と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し可能から読出し不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、前記テスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める生成工程と、前記求めたリードイネーブル初期化パターンに対応する所定の第1のメモリ初期化アドレスを求める工程と、前記求めたリードイネーブル遷移パターンに対応する第2のメモリ初期化アドレスを、第1のメモリ初期化アドレスと異なる値で求める工程と、前記求めた第1のメモリ初期化アドレスにおいて前記メモリ回路へ所定のデータ書きこむための第1のメモリ初期化データを求める工程と、前記求めた第2のメモリ初期化アドレスにおいて前記メモリ回路へ書き込む第2のメモリ初期化データを、前記第1のメモリ初期化データとは異なる値で求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記第1のメモリ初期化データおよび前記第2のメモリ初期化データを書き込みができる値に設定するメモリ初期化制御値パターン系列を求める工程と、前記メモリ回路に書き込んだ第1のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する初期値スキャン・フリップフロップ群の値を求める工程と、前記メモリ回路に書き込んだ第2のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する遷移値スキャン・フリップフロップ群の値を求める工程と、前記メモリ回路に書き込んだデータを前記初期値スキャン・フリップフロップ群の値により読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記初期値スキャン・フリップフロップ群の値と前記遷移値スキャン・フリップフロップ群の値と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
これにより、メモリ回路のリードイネーブルラインに接続されるパスの読出し可能から読出し不可に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項8に記載の発明は、メモリ回路とメモリテスト回路とこれらメモリ回路およびメモリテスト回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障の有無を検査する検査方法であって、
メモリ初期化データを前記メモリテスト回路から前記メモリ回路へ印加する工程と、前記初期値設定スキャン・フリップフロップ群と遷移値設定スキャン・フリップフロップ群と出力値設定スキャン・フリップフロップ群に、テストパターンを設定する工程と、前記メモリ回路および前記スキャン・フリップフロップ群へ前記メモリ回路の実動作速度でクロックを印加する工程と、前記出力値設定スキャン・フリップフロップ群の値を読み出す工程とを有することを特徴としている。
メモリ初期化データを前記メモリテスト回路から前記メモリ回路へ印加する工程と、前記初期値設定スキャン・フリップフロップ群と遷移値設定スキャン・フリップフロップ群と出力値設定スキャン・フリップフロップ群に、テストパターンを設定する工程と、前記メモリ回路および前記スキャン・フリップフロップ群へ前記メモリ回路の実動作速度でクロックを印加する工程と、前記出力値設定スキャン・フリップフロップ群の値を読み出す工程とを有することを特徴としている。
これにより、上記請求項2に記載の発明または上記請求項3に記載の発明または上記請求項4に記載の発明または上記請求項7に記載の発明で生成したテストパターンを用いて遅延故障検査をすることが可能となる。
本発明は、回路内のパス上にメモリ回路が存在している場合であっても、このパスを試験してその遅延故障を検出でき、したがって回路内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
以下、本発明の実施の形態を図面に基づいて説明する。
まず、明細書で使用する用語の定義を行う。
「パス、パス遅延時間、パス遅延故障」
回路における信号遷移経路をパスと呼ぶ。パスの入力信号線から出力信号線まで信号が遷移する時間をパス遅延時間と呼び、パス遅延時間が所定の値より大きくなると回路は正常に動作しなくなる。これをパス遅延故障と呼ぶ。
「最長パス」
最長パスとは、信号遷移時間が最長であるパスを示す。例えば、メモリ回路MのデータラインDI[0]に対する最長パスは、スキャンFFの出力または外部入力からメモリ回路MのデータラインDI[0]までの信号遷移時間が最長であるパスを示す。同様に、メモリ回路MのデータアウトDO[0]に対する最長パスは、メモリ回路MのデータアウトDO[0]からスキャンFFの入力または外部出力までの信号遷移時間が最長であるパスを示す。
「テスト可能パス」
テスト可能パスとは、上記パス遅延故障に対するテストパターンが生成可能なパスを示す。
まず、明細書で使用する用語の定義を行う。
「パス、パス遅延時間、パス遅延故障」
回路における信号遷移経路をパスと呼ぶ。パスの入力信号線から出力信号線まで信号が遷移する時間をパス遅延時間と呼び、パス遅延時間が所定の値より大きくなると回路は正常に動作しなくなる。これをパス遅延故障と呼ぶ。
「最長パス」
最長パスとは、信号遷移時間が最長であるパスを示す。例えば、メモリ回路MのデータラインDI[0]に対する最長パスは、スキャンFFの出力または外部入力からメモリ回路MのデータラインDI[0]までの信号遷移時間が最長であるパスを示す。同様に、メモリ回路MのデータアウトDO[0]に対する最長パスは、メモリ回路MのデータアウトDO[0]からスキャンFFの入力または外部出力までの信号遷移時間が最長であるパスを示す。
「テスト可能パス」
テスト可能パスとは、上記パス遅延故障に対するテストパターンが生成可能なパスを示す。
次に、本実施の形態における半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法を使用するメモリ回路の一例を、図1に示す。
図1(a)に示すように、メモリ回路MのアドレスラインはAD[2:0]の3ビット、データラインはDI[2:0]の3ビット、データアウトラインはDO[2:0]の3ビットである。
図1(a)に示すように、メモリ回路MのアドレスラインはAD[2:0]の3ビット、データラインはDI[2:0]の3ビット、データアウトラインはDO[2:0]の3ビットである。
またチップイネーブル信号NCEが“0”のとき、メモリ回路Mへのアクセスが可能であり、チップイネーブル信号NCEが“1”のとき、メモリ回路Mへのアクセスは禁止となる。またライトイネーブル信号NWEが“0”のとき、メモリ回路Mへのライト動作が可能であり、ライトイネーブル信号NWEが“1”のとき、メモリ回路Mへのライト動作は禁止とする。さらに、リードイネーブル信号NREが“0”のとき、メモリ回路Mへのリード動作が可能であり、リードイネーブル信号NREが“1”のとき、メモリ回路Mへのリード動作は禁止とする。
またライトイネーブル信号NWEが“0”であり、リードイネーブル信号NREが“0”の場合はメモリ回路Mへのライト動作もリード動作も正しく行うことができないものとし、さらにライトイネーブル信号NWEが“1”であり、リードイネーブル信号NREが“1”の場合は、メモリ回路Mへのライト動作もリード動作も行われずデータアウトラインDO[2:0]の出力は、以前の状態を保持するものとしている。
またアドレスラインAD[2:0]とデータラインDI[2:0]と制御信号群(NCE,NWE,NRE)とクロック信号入力ライン(CLK)にそれぞれ、通常動作経路とテスト経路を切替えることができるセレクタS1〜S10が設けられ、これらセレクタS1〜S10によりメモリテスト回路Tが形成されている。クロック信号入力ラインのセレクタS10を除く他のセレクタS1〜S9は、テストモード信号が“L(0)”のとき、テスト経路が選択される。
クロック信号入力ラインのセレクタS10の制御信号に対して選択されるクロックを図1(b)に示す。テストモード信号が“L(0)”の場合は、スキャンモード信号(スキャンイネーブル信号)の値に関係なくテスト用クロックが選択され、テストモード信号が“H(1)”で、かつスキャンモード信号が“L”の場合は、スキャンクロックが選択され、さらにテストモード信号が“H”でかつスキャンモード信号が“H”の場合は、通常動作用クロックが選択される。
以下、本発明の半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法について説明する。
[実施の形態1]
実施の形態1として、メモリ回路Mのデータライン(DI)を検査するテストパターン生成方法について説明する。
[実施の形態1]
実施の形態1として、メモリ回路Mのデータライン(DI)を検査するテストパターン生成方法について説明する。
図2は、実施の形態1におけるデータラインのテストパターン生成方法を示す回路図である。この図2に示す集積回路は、図1の通常動作経路を成す論理回路部の回路図であり、論理回路部の一部(あるいは全てでもよい)のフリップフロップFFをスキャン・フリップフロップ(スキャンFF)に置き換え、これらスキャンFFにより、メモリ回路Mに初期値の設定を行う初期値設定スキャン・フリップフロップ群(スキャンFF群)と、この初期値設定スキャンFF群を介してメモリ回路Mに遷移値の設定を行う遷移値設定スキャン・フリップフロップ群(スキャンFF群)と、メモリ回路Mの出力を受ける出力値設定スキャン・フリップフロップ群(スキャンFF群)を形成し、これらスキャンFF群のスキャンFFをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能としている。
図2に示すように、スキャンFF1の出力とスキャンFF2の出力はANDゲートg1に供給され、入力端子X1とスキャンFF3の出力がANDゲートg2に供給され、スキャンFF4の出力とスキャンFF5の出力はANDゲートg4に供給され、入力端子X3とスキャンFF6の出力がANDゲートg6に供給され、スキャンFF8の出力と入力端子X4がANDゲートg7に供給され、入力端子X5とスキャンFF9の出力はANDゲートg9の供給される。
さらに、ANDゲートg1の出力とANDゲートg2の出力はORゲートg3に供給され、ORゲートg3の出力はスキャンFF11に供給され、ANDゲートg2の出力はスキャンFF12に供給され、入力端子X2とANDゲートg4の出力はORゲートg5に供給され、ORゲートg5の出力はスキャンFF13に供給され、ANDゲートg4の出力はスキャンFF14に供給され、ANDゲートg6の出力とANDゲートg7の出力はORゲートg8に供給され、ANDゲートg7の出力はスキャンFF16に供給され、ORゲートg8の出力はスキャンFF15に供給され、スキャンFF8の出力とANDゲートg9の出力はORゲートg10に供給され、ORゲートg10の出力はスキャンFF17に供給され、ADNゲートg9の出力はスキャンFF18に供給される。
さらに、スキャンFF13の出力はNOTゲートG2に供給され、スキャンFF12の出力とNOTゲートG2の出力はNANDゲートG1に供給され、NANDゲートG1とスキャンFF14の出力はNANDゲートG3に供給され、またスキャンFF17の出力はNOTゲートG7に供給され、スキャンFF16の出力とNOTゲートG7の出力はNANDゲートG8に供給され、NANDゲートG8の出力とスキャンFF18の出力はNANDゲートG9に供給され、スキャンFF11の出力とNANDゲートG3の出力はNORゲートG4に供給され、スキャンFF15の出力とNANDゲートG3の出力はNANDゲートG5に供給され、NORゲートG4の出力とNANDゲートG5の出力はNORゲートG6に供給される。
NORゲートG6の出力は、テスト用データラインDI[0](図1)とともにセレクタS4に供給され(入力され)、テストモード信号はセレクタS4の制御信号として供給され、セレクタS4の出力はメモリ回路MのデータラインDI[0]に供給される。またNANDゲートG5は、テスト用データラインDI[1](図1)はとともにセレクタS5に供給され、テストモード信号はセレクタS5の制御信号として供給され、セレクタS5の出力はメモリ回路MのデータラインDI[1]に供給される。さらにNANDゲートG9の出力は、テスト用データラインDI[2](図1)とともにセレクタS6に供給され、テストモード信号はセレクタS6の制御信号として供給され、セレクタS6の出力はメモリ回路MのデータラインDI[2]に供給される。
またスキャンFF20の出力はスキャンFF23に供給され、スキャンFF23の出力は、テスト用チップイネーブルNCE(図1)とともにセレクタS7に供給され、テストモード信号はセレクタS7の制御信号として供給され、セレクタS7の出力はメモリ回路MのチップイネーブルNCEに供給される。またスキャンFF21の出力はスキャンFF24に供給され、スキャンFF23の出力は、テスト用ライトイネーブルNWE(図1)とともにセレクタS8に供給され、テストモード信号はセレクタS8の制御信号として供給され、セレクタS8の出力はメモリ回路MのライトイネーブルNWEに供給される。さらにスキャンFF22の出力はスキャンFF25に供給され、スキャンFF25の出力は、テスト用リードイネーブルNRE(図1)とともにセレクタS9に供給され、テストモード信号はセレクタS9の制御信号として供給され、セレクタS9の出力はメモリ回路MのリードイネーブルNREに供給される。
さらにスキャンFF26の出力はスキャンFF29に供給され、スキャンFF29の出力は、テスト用AD[0](図1)とともにセレクタS1の入力に供給され、テストモード信号はセレクタS1の制御信号として供給され、セレクタS1の出力はメモリ回路MのアドレスラインAD[0]に供給される。またスキャンFF27の出力はスキャンFF30に供給され、スキャンFF30の出力は、テスト用AD[1](図1)とともにセレクタS2に供給され、テストモード信号はセレクタS2の制御信号として供給され、セレクタS2の出力はメモリ回路MのアドレスラインAD[1]に供給される。さらにスキャンFF28の出力はスキャンFF31の入力に供給され、スキャンFF31の出力は、テスト用AD[2](図1)とともにセレクタS3に供給され、テストモード信号はセレクタS3の制御信号として供給され、セレクタS3の出力はメモリ回路MのアドレスラインAD[2]に供給される。
また、メモリ回路のデータアウトラインDO[0]はスキャンFF32の入力に接続され、メモリ回路MのデータアウトラインDO[1]はスキャンFF33の入力に接続され、メモリ回路MのデータアウトラインDO[2]はスキャンFF34の入力に接続される。
また、クロックCLKとテスト用クロックTCLKとスキャン用クロックSCLKはそれぞれセレクタ10の入力に接続され、テストモード信号はセレクタS10の制御信号S1として接続され、スキャンモード信号(スキャンイネーブル信号)はセレクタS10の制御信号S2として接続され、セレクタ10の出力はメモリ回路のCLKに供給される。これらテストモード信号(制御信号S1)とスキャンモード信号(制御信号S2)により、上述したように、クロックが選択されてメモリ回路のCLKへ供給される。
また、スキャンFF1〜9,11〜18,20〜34はスキャンイネーブル信号がスキャンモード時はスキャンシフト動作を行い、通常モード時は通常動作を行う構成になっている。またスキャンFF1〜9とスキャンFF20〜22とスキャンFF26〜28により遷移値設定SFF群が構成され、スキャンFF11〜18とスキャンFF23〜25とスキャンFF29〜31により初期値設定SFF群が構成され、スキャンFF32〜34により出力値設定SFF群が構成されている。
次に、データライン(DI)を検査するテストパターン生成方法の処理手順を、図3に示すフローチャートを参照しながら説明する。
ステップ−101
まず、被検査半導体集積回路のメモリ回路Mに対するデータラインDI[2:0]から対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図2のデータラインのDI[1]の遷移rise(“0”から“1”への立ちあがり遅延故障)を選択する。
ステップ−102
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。例えば、図2の太線で示すテスト可能最長パス、スキャンFF13−G2−G1−G3−G5−DI[1]を選択する。テスト可能最長パスの選択方法は、文献「A.Murakami, S.Kajihara, T.Sasao, I.Pomeranz and S.M.Reddy, “Selection of Potenrially Testable Path Delay Faults for Test generation,”International Test Conf., pp.376-384, Oct.2000.」に示されている方法などを使用することで求められる。
ステップ−103
次に、テスト可能最長パスを初期化するための初期値をあたえるデータライン初期化パターン(テストパターン)を求める。すなわち、図2における初期値設定スキャンFF群11〜18の値を生成する。このときの初期値設定スキャンFF群11〜18の値は、それぞれ<1,1,0,x,1,x,x,x>となる。これが、データライン初期化パターンとなる。
ステップ−104
続いてテスト可能最長パスを活性化するためのデータライン遷移パターン(テストパターン)を求める。すなわち、図2における遷移値設定スキャンFF群1〜9、および入力端子X1〜X5の値を生成する。このときの遷移値設定スキャンFF群1〜9の値および入力端子X1〜X5の値はそれぞれ<x,x,1,1,1,1,x,x,x,1,x,1,x,x>となる。これが、データライン遷移パターンとなる。
ステップ−105
次に、アドレスライン[2:0]に任意の値を設定するための初期値設定スキャンFF群(アドレスライン初期化パターン)の値を求める。例えば、メモリ回路のアドレスを任意の値であるAD[2:0]=<0,0,0>になるように初期値設定スキャンFF29〜31の値を生成する。この時の初期値設定スキャンFF29〜31の値は<0,0,0>になる。
ステップ−106
続いて、アドレスラインの初期値設定スキャンFF群の値が変化しないように遷移値設定スキャンFF群(アドレスライン遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF26〜28の値を生成する。このときの遷移値設定スキャンFFの値は<0,0,0>になる。ステップ−105,106で生成したパターンがアドレスパターン系列になる。
ステップ−107
次に、メモリ回路の制御信号群を前記メモリ回路への書き込みが許可される値を設定するための初期値設定スキャンFF群(制御信号群初期化パターン)の値を求める。すなわち、メモリ回路の制御信号群であるNCE,NWE,NREに書き込み動作を許可するための値<0,0,1>になるように初期値設定スキャンFF23〜25の値を生成する。この時の初期値設定スキャンFF23〜25の値は<0,0,1>になる。
ステップ−108
次に、制御信号群の初期値設定スキャンFF群の値が変化しないように遷移値設定スキャンFF群(制御信号群遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF20〜22に値を生成する。この時の遷移値設定スキャンFF20〜22の値は<0,0,1>になる。ステップ−107,108で生成したパターンが制御値パターン系列になる。
ステップ−109
続いて、遷移値設定スキャンFFの値によりメモリ回路Mに書きこまれた値を、ステップ−105で設定したアドレスラインの任意の値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。例えば、メモリ回路に書きこまれたアドレスAD[2:0]=<0,0,0>を読み出した値DO[2:0]=<0,1,0>を出力値設定スキャンFF32〜34に受けたときの値<0,1,0>を期待値とする。
ステップ−110
次に、データライン初期化パターンとデータライン遷移パターンとアドレスパターン系列と制御値パターン系列と期待値をシフトパターンとして生成する。すなわち、遷移値設定スキャンFF群の値および初期値設定スキャンFF群の値と期待値をシリアルパターンとして生成する。以上で対象故障に対するテストパターン生成を終了する。
ステップ−101
まず、被検査半導体集積回路のメモリ回路Mに対するデータラインDI[2:0]から対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図2のデータラインのDI[1]の遷移rise(“0”から“1”への立ちあがり遅延故障)を選択する。
ステップ−102
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。例えば、図2の太線で示すテスト可能最長パス、スキャンFF13−G2−G1−G3−G5−DI[1]を選択する。テスト可能最長パスの選択方法は、文献「A.Murakami, S.Kajihara, T.Sasao, I.Pomeranz and S.M.Reddy, “Selection of Potenrially Testable Path Delay Faults for Test generation,”International Test Conf., pp.376-384, Oct.2000.」に示されている方法などを使用することで求められる。
ステップ−103
次に、テスト可能最長パスを初期化するための初期値をあたえるデータライン初期化パターン(テストパターン)を求める。すなわち、図2における初期値設定スキャンFF群11〜18の値を生成する。このときの初期値設定スキャンFF群11〜18の値は、それぞれ<1,1,0,x,1,x,x,x>となる。これが、データライン初期化パターンとなる。
ステップ−104
続いてテスト可能最長パスを活性化するためのデータライン遷移パターン(テストパターン)を求める。すなわち、図2における遷移値設定スキャンFF群1〜9、および入力端子X1〜X5の値を生成する。このときの遷移値設定スキャンFF群1〜9の値および入力端子X1〜X5の値はそれぞれ<x,x,1,1,1,1,x,x,x,1,x,1,x,x>となる。これが、データライン遷移パターンとなる。
ステップ−105
次に、アドレスライン[2:0]に任意の値を設定するための初期値設定スキャンFF群(アドレスライン初期化パターン)の値を求める。例えば、メモリ回路のアドレスを任意の値であるAD[2:0]=<0,0,0>になるように初期値設定スキャンFF29〜31の値を生成する。この時の初期値設定スキャンFF29〜31の値は<0,0,0>になる。
ステップ−106
続いて、アドレスラインの初期値設定スキャンFF群の値が変化しないように遷移値設定スキャンFF群(アドレスライン遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF26〜28の値を生成する。このときの遷移値設定スキャンFFの値は<0,0,0>になる。ステップ−105,106で生成したパターンがアドレスパターン系列になる。
ステップ−107
次に、メモリ回路の制御信号群を前記メモリ回路への書き込みが許可される値を設定するための初期値設定スキャンFF群(制御信号群初期化パターン)の値を求める。すなわち、メモリ回路の制御信号群であるNCE,NWE,NREに書き込み動作を許可するための値<0,0,1>になるように初期値設定スキャンFF23〜25の値を生成する。この時の初期値設定スキャンFF23〜25の値は<0,0,1>になる。
ステップ−108
次に、制御信号群の初期値設定スキャンFF群の値が変化しないように遷移値設定スキャンFF群(制御信号群遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF20〜22に値を生成する。この時の遷移値設定スキャンFF20〜22の値は<0,0,1>になる。ステップ−107,108で生成したパターンが制御値パターン系列になる。
ステップ−109
続いて、遷移値設定スキャンFFの値によりメモリ回路Mに書きこまれた値を、ステップ−105で設定したアドレスラインの任意の値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。例えば、メモリ回路に書きこまれたアドレスAD[2:0]=<0,0,0>を読み出した値DO[2:0]=<0,1,0>を出力値設定スキャンFF32〜34に受けたときの値<0,1,0>を期待値とする。
ステップ−110
次に、データライン初期化パターンとデータライン遷移パターンとアドレスパターン系列と制御値パターン系列と期待値をシフトパターンとして生成する。すなわち、遷移値設定スキャンFF群の値および初期値設定スキャンFF群の値と期待値をシリアルパターンとして生成する。以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図4のフローチャートと図5のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−201
まず上記生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。このスキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<0,0,0>、DI[2:0]=<1,0,0>になる。
ステップ−202
次に、スキャンモード信号を通常動作モードに切替える。スキャンイネーブル信号が“0”に設定される。
ステップ−203
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路MおよびスキャンFFにクロックを印加する(テスト可能最長パスの初期化)。このようにクロックが入力されると、メモリ回路Mのアドレス<0,0,0>にデータ<1,0,0>が書き込まれる。この時、DI[2:0]=<1,1,1>に変更される。
ステップ−204
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路MおよびスキャンFFにクロックを印加する(テスト可能最長パスの遷移)。このようにクロックが入力されると、メモリ回路のアドレス<0,0,0>にデータ<1,1,1>が書きこまれる。
ステップ−205
次に、テスト対象メモリ回路Mへ書きこんだ同一アドレスの値を読み出す。NWE=1,NRE=0に変更しメモリ回路のアドレス<0,0,0>を読み出す。ここでデータラインDI[1]に遅延故障が発生していなければ、メモリ回路Mに書きこんだ値<1,1,1>が読み出される。しかし、遅延故障が発生していた場合は、DI[1]のみ初期化パターンで書きこんだ値<0>が読み出される。
ステップ−206
次に、スキャンモード信号をスキャンモードに切替える。スキャンイネーブル信号が“1”に設定される。
ステップ−207
続いて、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較が行われ、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
ステップ−201
まず上記生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。このスキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<0,0,0>、DI[2:0]=<1,0,0>になる。
ステップ−202
次に、スキャンモード信号を通常動作モードに切替える。スキャンイネーブル信号が“0”に設定される。
ステップ−203
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路MおよびスキャンFFにクロックを印加する(テスト可能最長パスの初期化)。このようにクロックが入力されると、メモリ回路Mのアドレス<0,0,0>にデータ<1,0,0>が書き込まれる。この時、DI[2:0]=<1,1,1>に変更される。
ステップ−204
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路MおよびスキャンFFにクロックを印加する(テスト可能最長パスの遷移)。このようにクロックが入力されると、メモリ回路のアドレス<0,0,0>にデータ<1,1,1>が書きこまれる。
ステップ−205
次に、テスト対象メモリ回路Mへ書きこんだ同一アドレスの値を読み出す。NWE=1,NRE=0に変更しメモリ回路のアドレス<0,0,0>を読み出す。ここでデータラインDI[1]に遅延故障が発生していなければ、メモリ回路Mに書きこんだ値<1,1,1>が読み出される。しかし、遅延故障が発生していた場合は、DI[1]のみ初期化パターンで書きこんだ値<0>が読み出される。
ステップ−206
次に、スキャンモード信号をスキャンモードに切替える。スキャンイネーブル信号が“1”に設定される。
ステップ−207
続いて、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較が行われ、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するデータラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、このテスト可能最長パスを初期化するための初期値をあたえるデータライン初期化パターンを求め、続いてテスト可能最長パスを活性化するためのデータライン遷移パターンを求め、またアドレスパターン系列、制御値パターン系列を求め、遷移値設定スキャンFFの値によりメモリ回路Mに書きこまれた値を、アドレスラインの任意の値で読み出した時の出力設定値スキャンFF群の値を期待値として求め、これらデータライン初期化パターンとデータライン遷移パターンとアドレスパターン系列と制御値パターン系列と期待値を、スキャンFF群のシリアルパターンとして生成し(テストパターン生成を生成し)、その後、このシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群に設定し、クロック信号をスキャンクロック信号へ切換えを行い、アドレスパターン系列に設定したアドレスにデータライン初期化パターンと遷移パターンのデータを書き込み、続いて出力値設定スキャンFF群の値を呼び出し、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態1によれば、メモリ回路のデータラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
[実施の形態2]
実施の形態2として、メモリ回路Mのアドレスライン(AD)を検査するテストパターン生成方法について説明する。
[実施の形態2]
実施の形態2として、メモリ回路Mのアドレスライン(AD)を検査するテストパターン生成方法について説明する。
図6は、実施の形態2におけるアドレスラインのテストパターン生成方法を示す回路図である。この図6に示す集積回路は、図1の通常動作経路を成す論理回路部の回路図であり、実施の形態1と同様の遷移値設定SFF群と初期値設定SFF群と出力値設定SFF群を備えている。実施の形態1の図2との相違点について説明する。
図6に示すように、NORゲートG6の出力は、テスト用データラインAD[0]とともにセレクタS1に供給され、テストモード信号はセレクタS1に制御信号として供給され、セレクタS1の出力はメモリ回路MのデータラインAD[0]に供給される。またNANDゲートG5は、テスト用データラインAD[1]とともにセレクタS2に供給され、テストモード信号はセレクタS2に制御信号として供給され、セレクタS2の出力はメモリ回路MのデータラインAD[1]に供給される。さらにNANDゲートG9の出力は、テスト用データラインAD[2]とともにセレクタS3に供給され、テストモード信号はセレクタS3の制御信号として供給され、セレクタS3の出力はメモリ回路MのデータラインAD[2]に供給される。
またスキャンFF29の出力は、テスト用DI[0]とともにセレクタS4に供給され、テストモード信号はセレクタS4の制御信号として供給され、セレクタS4の出力はメモリ回路MのアドレスラインDI[0]に供給される。またスキャンFF30の出力は、テスト用DI[1]ともにセレクタS5に供給され、テストモード信号はセレクタS5の制御信号として供給され、セレクタS5の出力はメモリ回路MのアドレスラインDI[1]に供給される。さらにスキャンFF31の出力は、テスト用DI[2]とともにセレクタS6に供給され、テストモード信号はセレクタS6の制御信号として供給され、セレクタS6の出力はメモリ回路MのアドレスラインDI[2]に供給される。
次に、アドレスライン(AD)を検査するテストパターン生成方法の処理手順を、図7に示すフローチャートを参照しながら説明する。
ステップ−301
まず、被検査半導体集積回路のメモリ回路Mに対するアドレスラインから対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図6のアドレスラインのAD[1]の遷移rise(“0”から“1”への遅延故障)を選択する。
ステップ−302
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。アドレスラインのAD[1]が選択されていると、図6の太線で示すテスト可能最長パス、スキャンFF13−G2−G1−G3−G5−AD[1]を選択する。
ステップ−303
次に、テスト可能最長パスを初期化するための初期値をあたえるアドレスライン初期化パターンを求める。すなわち、初期値設定スキャンFF群11〜18の値を生成する。この時の初期値設定スキャンFF群11〜18の値はそれぞれ<1,1,0,x,1,x,x,x>となる。これが、アドレスライン初期化パターンとなる。
ステップ−304
続いて、テスト可能最長パスを活性化するためのアドレスライン遷移パターンを求める。すなわち、遷移値設定スキャンFF群1〜9および入力端子X1〜X5の値を生成する。この時の遷移値設定スキャンFF群1〜9の値および入力端子X1〜X5の値はそれぞれ<x,x,1,1,1,1,x,x,x,1,x,1,x,x>となる。これが、アドレスライン遷移パターンとなる。
ステップ−305
次に、データラインDI[2:0]に任意の値を設定するための初期値設定スキャンFF群(データライン初期化パターン)の値を求める。例えば、メモリ回路Mのデータを任意の値であるDI[2:0]=<0,0,0>になるように初期値設定スキャンFF29〜31の値を生成する。この時の初期値設定スキャンFF29〜31の値は<0,0,0>になる。
ステップ−306
次に、データラインの初期値設定スキャンFF群の値が変化しなように遷移値設定スキャンFF群(データライン遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF26〜28の値を生成する。この時の遷移値設定スキャンFFの値は<0,0,0>になる。ステップ−305,306で生成したパターンが、データパターン系列になる。
ステップ−307
次に、メモリ回路の制御信号群を前記メモリ回路への書き込みが許可される値を設定するための初期値設定スキャンFF群(制御信号群初期化パターン)の値を求める。すなわち、メモリ回路の制御信号群であるNCE,NWE,NREに書き込み動作を許可するための値<0,0,1>になるように初期値設定スキャンFF23〜25の値を生成する。この時の初期値設定スキャンFF23〜25の値は<0,0,1>になる。
ステップ−308
続いて、制御信号群の初期値設定スキャンFF群の値が変化しないように遷移値設定スキャンFF群(制御信号群遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF20〜22の値を生成する。この時の遷移値設定スキャンFF20〜22の値は<0,0,1>になる。ステップ−307,308で生成したパターンが、制御値パターン系列となる。
ステップ−309
次に遷移値設定スキャンFFの値によりメモリ回路Mに書きこまれた値をステップ−304で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。上記メモリ回路Mに書きこまれたアドレスAD[2:0]=<1,1,1>で読み出した値DO[2:0]=<0,0,0>を出力値設定スキャンFF32〜34に受けたときの値を、期待値とする。
ステップ−310
次にアドレスライン初期化パターンとアドレスライン遷移パターンとデータパターン系列と制御値パターン系列と期待値を、スキャンFF群のシフトパターンとして生成する。すなわち、遷移値設定スキャンFF1〜9,20〜22,26〜28および初期値設定スキャンFF11〜18,23〜25,29〜30の値および期待値をシリアルパターンとして生成する。
ステップ−311
次に、アドレスライン遷移パターンに対するメモリ回路のアドレスの対象故障のアドレスビットが反転したアドレスをメモリ初期化アドレスとして求める。すなわち、メモリ回路を初期化するためのメモリ初期化アドレスを生成する。このときのメモリ初期化アドレスの値は、アドレスライン遷移パターンでの書き込みアドレスの検査対象アドレスAD[1]を“1”から故障した場合の値“0”にしたAD[2:0]=<1,0,1>になる。
ステップ−312
次に、データパターンに対するメモリ回路のデータと異なるデータをメモリ初期化データとして求める。このときのメモリ初期化データは遷移パターンでの書き込みデータDI[2:0]=<0,0,0>以外の任意の値にする。この実施の形態ではDI[2:0]=<1,1,1>にする。
ステップ−313
次に、メモリ回路に書きこみができる値をメモリ初期化制御値として求める。このときのメモリ初期化制御値は、メモリ回路への書き込みが許可される値に設定する。本実施の形態では、NCE=0,NWE=0、NRE=1となる。ステップ−311,312,312で生成したメモリ初期化アドレスとメモリ初期化データとメモリ初期化制御値が、テスト用経路の初期化パターンとなる。
ステップ−301
まず、被検査半導体集積回路のメモリ回路Mに対するアドレスラインから対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図6のアドレスラインのAD[1]の遷移rise(“0”から“1”への遅延故障)を選択する。
ステップ−302
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。アドレスラインのAD[1]が選択されていると、図6の太線で示すテスト可能最長パス、スキャンFF13−G2−G1−G3−G5−AD[1]を選択する。
ステップ−303
次に、テスト可能最長パスを初期化するための初期値をあたえるアドレスライン初期化パターンを求める。すなわち、初期値設定スキャンFF群11〜18の値を生成する。この時の初期値設定スキャンFF群11〜18の値はそれぞれ<1,1,0,x,1,x,x,x>となる。これが、アドレスライン初期化パターンとなる。
ステップ−304
続いて、テスト可能最長パスを活性化するためのアドレスライン遷移パターンを求める。すなわち、遷移値設定スキャンFF群1〜9および入力端子X1〜X5の値を生成する。この時の遷移値設定スキャンFF群1〜9の値および入力端子X1〜X5の値はそれぞれ<x,x,1,1,1,1,x,x,x,1,x,1,x,x>となる。これが、アドレスライン遷移パターンとなる。
ステップ−305
次に、データラインDI[2:0]に任意の値を設定するための初期値設定スキャンFF群(データライン初期化パターン)の値を求める。例えば、メモリ回路Mのデータを任意の値であるDI[2:0]=<0,0,0>になるように初期値設定スキャンFF29〜31の値を生成する。この時の初期値設定スキャンFF29〜31の値は<0,0,0>になる。
ステップ−306
次に、データラインの初期値設定スキャンFF群の値が変化しなように遷移値設定スキャンFF群(データライン遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF26〜28の値を生成する。この時の遷移値設定スキャンFFの値は<0,0,0>になる。ステップ−305,306で生成したパターンが、データパターン系列になる。
ステップ−307
次に、メモリ回路の制御信号群を前記メモリ回路への書き込みが許可される値を設定するための初期値設定スキャンFF群(制御信号群初期化パターン)の値を求める。すなわち、メモリ回路の制御信号群であるNCE,NWE,NREに書き込み動作を許可するための値<0,0,1>になるように初期値設定スキャンFF23〜25の値を生成する。この時の初期値設定スキャンFF23〜25の値は<0,0,1>になる。
ステップ−308
続いて、制御信号群の初期値設定スキャンFF群の値が変化しないように遷移値設定スキャンFF群(制御信号群遷移パターン)の値を求める。すなわち、遷移値設定スキャンFF20〜22の値を生成する。この時の遷移値設定スキャンFF20〜22の値は<0,0,1>になる。ステップ−307,308で生成したパターンが、制御値パターン系列となる。
ステップ−309
次に遷移値設定スキャンFFの値によりメモリ回路Mに書きこまれた値をステップ−304で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。上記メモリ回路Mに書きこまれたアドレスAD[2:0]=<1,1,1>で読み出した値DO[2:0]=<0,0,0>を出力値設定スキャンFF32〜34に受けたときの値を、期待値とする。
ステップ−310
次にアドレスライン初期化パターンとアドレスライン遷移パターンとデータパターン系列と制御値パターン系列と期待値を、スキャンFF群のシフトパターンとして生成する。すなわち、遷移値設定スキャンFF1〜9,20〜22,26〜28および初期値設定スキャンFF11〜18,23〜25,29〜30の値および期待値をシリアルパターンとして生成する。
ステップ−311
次に、アドレスライン遷移パターンに対するメモリ回路のアドレスの対象故障のアドレスビットが反転したアドレスをメモリ初期化アドレスとして求める。すなわち、メモリ回路を初期化するためのメモリ初期化アドレスを生成する。このときのメモリ初期化アドレスの値は、アドレスライン遷移パターンでの書き込みアドレスの検査対象アドレスAD[1]を“1”から故障した場合の値“0”にしたAD[2:0]=<1,0,1>になる。
ステップ−312
次に、データパターンに対するメモリ回路のデータと異なるデータをメモリ初期化データとして求める。このときのメモリ初期化データは遷移パターンでの書き込みデータDI[2:0]=<0,0,0>以外の任意の値にする。この実施の形態ではDI[2:0]=<1,1,1>にする。
ステップ−313
次に、メモリ回路に書きこみができる値をメモリ初期化制御値として求める。このときのメモリ初期化制御値は、メモリ回路への書き込みが許可される値に設定する。本実施の形態では、NCE=0,NWE=0、NRE=1となる。ステップ−311,312,312で生成したメモリ初期化アドレスとメモリ初期化データとメモリ初期化制御値が、テスト用経路の初期化パターンとなる。
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図8のフローチャートと図9のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−401
まず、テストモード信号をテストモードに設定する。テストモード信号をテストモードである“0”に設定する。
ステップ−402
次に、生成したテスト用経路の初期化パターンを印加し、メモリ回路Mの初期化を行う。すなわち、テスト用経路からメモリ回路Mへの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<1,0,1>、DI[2:0]=<1,1,1>になり、メモリ回路Mのアドレス<1,0,1>にデータ<1,1,1>が書きこまれる。
ステップ−403
次に、スキャンイネーブル信号(SE信号)をスキャンモードに設定する。すなわちスキャンイネーブル信号をスキャンモード“1”に設定する。
ステップ−404
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<1,0,0>、DI[2:0]=<0,0,0>になる。
ステップ−405
次に、スキャンイネーブル信号(SE信号)とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−406
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスに遷移を発生)。クロックが入力されると、メモリ回路のアドレス<1,0,0>にデータ<0,0,0>が書きこまれる。この時、AD[2:0]=<1,1,1>に変更される。
ステップ−407
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスの遷移後の値をメモリ回路に書き込む)。クロックが入力されると、メモリ回路のアドレス<1,1,1>にデータ<0,0,0>が書きこまれる。
ステップ−408
次に、メモリ回路MのNRE=0、NWE=1に設定し、テスト対象メモリ回路Mへ書きこんだアドレスの値を読み出す。すなわち、NWE=1,NRE=0に変更しメモリ回路Mのアドレス<1,1,1>の値を読み出す。データラインAD[1]に遅延故障が発生していなければ、メモリ初期化パターンでメモリ回路に書きこんだアドレスAD[2:0]=<1,1,1>のデータDI[2:0]=<0,0,0>が読み出される。しかし、遅延故障が発生していた場合は、初期化パターンで書きこんだ値アドレスAD[2:0]=<1,0,1>のデータDI[2:0]=<1,1,1>が読み出される。
ステップ−409
次に、スキャンイネーブル信号SEをスキャンモードに設定する。すなわち、スキャンイネーブル信号を“1”に設定する。
ステップ−410
次に、スキャンシフト動作で外部端子に出力値設定スキャンFF群の値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
このように生成したテストパターンを使用した検査方法について、図8のフローチャートと図9のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−401
まず、テストモード信号をテストモードに設定する。テストモード信号をテストモードである“0”に設定する。
ステップ−402
次に、生成したテスト用経路の初期化パターンを印加し、メモリ回路Mの初期化を行う。すなわち、テスト用経路からメモリ回路Mへの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<1,0,1>、DI[2:0]=<1,1,1>になり、メモリ回路Mのアドレス<1,0,1>にデータ<1,1,1>が書きこまれる。
ステップ−403
次に、スキャンイネーブル信号(SE信号)をスキャンモードに設定する。すなわちスキャンイネーブル信号をスキャンモード“1”に設定する。
ステップ−404
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<1,0,0>、DI[2:0]=<0,0,0>になる。
ステップ−405
次に、スキャンイネーブル信号(SE信号)とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−406
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスに遷移を発生)。クロックが入力されると、メモリ回路のアドレス<1,0,0>にデータ<0,0,0>が書きこまれる。この時、AD[2:0]=<1,1,1>に変更される。
ステップ−407
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスの遷移後の値をメモリ回路に書き込む)。クロックが入力されると、メモリ回路のアドレス<1,1,1>にデータ<0,0,0>が書きこまれる。
ステップ−408
次に、メモリ回路MのNRE=0、NWE=1に設定し、テスト対象メモリ回路Mへ書きこんだアドレスの値を読み出す。すなわち、NWE=1,NRE=0に変更しメモリ回路Mのアドレス<1,1,1>の値を読み出す。データラインAD[1]に遅延故障が発生していなければ、メモリ初期化パターンでメモリ回路に書きこんだアドレスAD[2:0]=<1,1,1>のデータDI[2:0]=<0,0,0>が読み出される。しかし、遅延故障が発生していた場合は、初期化パターンで書きこんだ値アドレスAD[2:0]=<1,0,1>のデータDI[2:0]=<1,1,1>が読み出される。
ステップ−409
次に、スキャンイネーブル信号SEをスキャンモードに設定する。すなわち、スキャンイネーブル信号を“1”に設定する。
ステップ−410
次に、スキャンシフト動作で外部端子に出力値設定スキャンFF群の値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するアドレスラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、このテスト可能最長パスを初期化するための初期値をあたえるアドレスライン初期化パターンを求め、続いてテスト可能最長パスを活性化するためのアドレスライン遷移パターンを求め、またデータパターン系列、制御値パターン系列を求め、遷移値設定スキャンFFの値によりメモリ回路Mに書きこまれた値をアドレスラインの値で読み出した時の出力設定値スキャンFF群の値を期待値として求め、アドレスライン初期化パターンとアドレスライン遷移パターンとデータパターン系列と制御値パターン系列と期待値を、スキャンFF群のシリアルパターンとして生成し(テストパターン生成を生成し)、続いて、アドレスの対象故障のアドレスビットが反転したアドレスをメモリ初期化アドレスとして求め、データパターン系列に対するメモリ回路Mのデータと異なるデータをメモリ初期化データとして求め、さらにメモリ回路Mに書きこみができる値をメモリ初期化制御値として求めてテスト用経路の初期化パターンを形成する。
そして、テストモードにより、テスト用経路の初期化パターンをメモリ回路Mに書き込み、続いてスキャンモードによりシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群に設定し、スキャンクロック信号により、設定したアドレスにデータパターン系列のデータを書き込み、出力値設定スキャンFF群の値を取り出し、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態2によれば、メモリ回路のアドレスラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
なお、実施の形態2では、アドレスAD[2:0]を特定しメモリ回路のメモリ初期化パターンを印加しているが、メモリ回路すべてを初期化することも同じである。この場合、複数の遅延故障が発生した場合でも遅延故障テストが可能になる。
[実施の形態3]
実施の形態3として、メモリ回路Mのデータアウトライン(DO)を検査するテストパターン生成方法について説明する。
[実施の形態3]
実施の形態3として、メモリ回路Mのデータアウトライン(DO)を検査するテストパターン生成方法について説明する。
図10は、実施の形態3におけるアドレスラインのテストパターン生成方法を示す回路図である。この図10に示す集積回路は、図1の通常動作経路を成す論理回路部の回路図であり、実施の形態1と同様の遷移値設定SFF群と初期値設定SFF群と出力値設定SFF群を備えている。
図10に示すように、スキャンFF1の出力とスキャンFF2の出力はORゲートg3に供給され、入力端子X1とスキャンFF3の出力がORゲートg5に供給され、スキャンFF4の出力とスキャンFF5の出力はANDゲートg8に供給され、入力端子X2とスキャンFF6の出力がORゲートg10に供給される。
またORゲートg3の出力はスキャンFF11に供給され、スキャンFF2の出力はスキャンFF12に供給され、ORゲートg5の出力はスキャンFF13に供給され、ORゲートg8の出力はスキャンFF14に供給され、スキャンFF5の出力はスキャンFF15に供給され、ORゲートg10の出力はスキャンFF16に供給され、スキャンFF6の出力はスキャンFF17に供給される。
さらにスキャンFF13の出力はNOTゲートG2に供給され、スキャンFF12の出力とNOTゲートG2の出力はNANDゲートG1に供給され、NANDゲートG1とスキャンFF11の出力はNORゲートG4に供給され、スキャンFF14の出力とNANDゲートG1の出力はNANDゲートG5に供給され、スキャンFF16の出力はNOTゲートG7に供給され、スキャンFF15の出力とNOTゲートG7の出力はNANDゲートG8に供給され、NANDゲートG8の出力とスキャンFF17の出力はNANDゲートG9に供給される。
またNORゲートG4の出力は、テスト用データラインDI[0]とともにセレクタS4に供給され、テストモード信号はセレクタS4の制御信号として供給され、セレクタS4の出力はメモリ回路MのデータラインDI[0]に供給される。またNANDゲートG5は、テスト用データラインDI[1]とともにセレクタS5に供給され、テストモード信号はセレクタS5の制御信号として供給され、セレクタS5の出力はメモリ回路MのデータラインDI[1]に供給される。さらにNANDゲートG9の出力は、テスト用データラインDI[2]とともにセレクタS6に供給され、テストモード信号はセレクタS6の制御信号として供給され、セレクタS6の出力はメモリ回路MのデータラインDI[2]に供給される。
またスキャンFF20の出力はスキャンFF23に供給され、スキャンFF23の出力は、テスト用チップイネーブルNCEとともにセレクタS7に供給され、テストモード信号はセレクタS7の制御信号として供給され、セレクタS7の出力はメモリ回路MのチップイネーブルNCEに供給される。またスキャンFF21の出力はスキャンFF24に供給され、スキャンFF24の出力は、テスト用ライトイネーブルNWEとともにセレクタS8に供給され、テストモード信号はセレクタS8の制御信号として供給され、セレクタS8の出力はメモリ回路MのライトイネーブルNWEに供給される。さらにスキャンFF22の出力はスキャンFF25に供給され、スキャンFF25の出力は、テスト用リードイネーブルNREとともにセレクタS9に供給され、テストモード信号はセレクタS9の制御信号として供給され、セレクタS9の出力はメモリ回路MのリードイネーブルNREに供給される。
さらにスキャンFF26の出力はスキャンFF29に供給され、スキャンFF29の出力は、テスト用AD[0]とともにセレクタS1に供給され、テストモード信号はセレクタS1の制御信号として供給され、セレクタS1の出力はメモリ回路MのアドレスラインAD[0]に供給される。またスキャンFF27の出力はスキャンFF30に供給され、スキャンFF30の出力は、テスト用AD[1]とともにセレクタS2に供給され、テストモード信号はセレクタS2の制御信号として供給され、セレクタS2の出力はメモリ回路MのアドレスラインAD[1]に供給される。さらにスキャンFF28の出力はスキャンFF31の入力に供給され、スキャンFF31の出力は、テスト用AD[2]とともにはセレクタS3に供給され、テストモード信号はセレクタS3の制御信号として供給され、セレクタS3の出力はメモリ回路MのアドレスラインAD[2]に供給される。
またメモリ回路MのデータアウトラインDO[0]とメモリ回路MのデータアウトラインDO[1]はNANDゲートG10に供給され、メモリ回路MのデータアウトラインDO[1]とメモリ回路MのデータアウトラインDO[2]はANDゲートG11に供給され、NANDゲートG10の出力はスキャンFF32の入力に接続され、NANDゲートG10の出力はNOTゲートG12の入力に接続され、NOTゲートG12の出力はスキャンFF33の入力に接続され、NANDゲートG11の出力はスキャンFF34の入力に接続される。
また、クロックCLKとテスト用クロックTCLKとスキャン用クロックSCLKはそれぞれセレクタ10の入力に接続され、テストモード信号はセレクタS10の制御信号S1として接続され、スキャンモード信号はセレクタS10の制御信号S2として接続され、セレクタ10の出力はメモリ回路のCLKに供給される。これらテストモード信号(制御信号S1)とスキャンモード信号(制御信号S2)により、上述したように、クロックが選択されてメモリ回路のCLKへ供給される。
次に、データアウトライン(DO)を検査するテストパターン生成方法の処理手順を、図11に示すフローチャートを参照しながら説明する。
ステップ−501
まず、被検査半導体集積回路のメモリ回路Mに対するデータアウトラインから対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図10に太線で示すデータアウトラインのDO[0]の遷移rise(“0”から“1”への遅延故障)を選択する。
ステップ−502
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。データアウトラインのDO[0]を選択したとき、テスト可能最長パスとして、DO[0]−G10−G12−スキャンFF33を選択する。
ステップ−503
次に、テスト可能最長パスを初期化するための第1のメモリ初期化データを求める。データDO[2:0]=<0,0,0>となる。
ステップ−504
次に、テスト最長パスの活性化をするための第2のメモリ初期化データを求める。このときデータDO[2:0]=<1,1,0>となる。
ステップ−505
次に、第1のメモリ初期化データを書き込むための第1のメモリ初期化アドレスを生成する。例えば、第1のメモリ初期値アドレスAD[2:0]=<0,0,0>とする。
ステップ−506
次に、第2のメモリ初期化データを書き込むための第2のメモリ初期化アドレスを生成する。例えば、第2のメモリ初期化アドレスAD[2:0]=<1,1,1>とする。
ステップ−507
次に、第1のメモリ初期化データと第2のメモリ初期化データを書きこむためのメモリ初期化制御値を生成する。すなわち、第1のメモリ初期化データおよび第2のメモリ初期化データを書き込める制御値は、NCE=0、NWE=0、NRE=1となる。
ステップ−508
次に、第1のメモリ初期化データを読み出すためのアドレスと制御信号群の値を初期値設定スキャンFFに生成する(データアウト初期化パターンを生成する)。すなわち、メモリ回路のアドレスを第1のメモリ初期化データを書き込んだアドレスであるAD[2:0]=<0,0,0>を読み出せるように初期値設定スキャンFF23〜25、29〜31の値を生成する。この時の初期値設定スキャンFF23〜25、29〜31の値は<0,1,0,0,0,0>になる。
ステップ−509
次に、第2のメモリ初期化データパターンを読み出すためのアドレスと制御信号群の値を遷移値設定スキャンFFに生成する(データアウト遷移パターンを生成する)。すなわち、第2のメモリ初期化データを書き込んだアドレスであるAD[2:0]=<1,1,1>を読み出せるように遷移値設定スキャンFF20〜22、26〜28の値を生成する。このときの遷移値設定スキャンFF20〜22、26〜28の値は<0,1,0,1,1,1>になる。
ステップ−510
次に、第2のメモリ初期化データを第2のメモリ初期化アドレスで読み出した時の出力設定値スキャンFF群(出力設定値パターン)が受ける値を期待値として求める。すなわち、遷移値設定スキャンFFで読み出したアドレスAD[2:0]=<1,1,1>の値DO[2:0]=<1,1,0>を出力設定する。このときのスキャンFF32〜34に読み出した値は<0,1,0>になる。この値を期待値とする。
ステップ−511
次に、データアウト初期化パターンとデータアウト遷移パターンと期待値を、シフトパターンとして生成する。すなわち、遷移値設定スキャンFF20〜22,26〜28の値および初期値設定スキャンFF23〜25の値,29〜31および期待値をシリアルパターンとして生成し、対象故障に対するテストパターン生成を終了する。
ステップ−501
まず、被検査半導体集積回路のメモリ回路Mに対するデータアウトラインから対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図10に太線で示すデータアウトラインのDO[0]の遷移rise(“0”から“1”への遅延故障)を選択する。
ステップ−502
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。データアウトラインのDO[0]を選択したとき、テスト可能最長パスとして、DO[0]−G10−G12−スキャンFF33を選択する。
ステップ−503
次に、テスト可能最長パスを初期化するための第1のメモリ初期化データを求める。データDO[2:0]=<0,0,0>となる。
ステップ−504
次に、テスト最長パスの活性化をするための第2のメモリ初期化データを求める。このときデータDO[2:0]=<1,1,0>となる。
ステップ−505
次に、第1のメモリ初期化データを書き込むための第1のメモリ初期化アドレスを生成する。例えば、第1のメモリ初期値アドレスAD[2:0]=<0,0,0>とする。
ステップ−506
次に、第2のメモリ初期化データを書き込むための第2のメモリ初期化アドレスを生成する。例えば、第2のメモリ初期化アドレスAD[2:0]=<1,1,1>とする。
ステップ−507
次に、第1のメモリ初期化データと第2のメモリ初期化データを書きこむためのメモリ初期化制御値を生成する。すなわち、第1のメモリ初期化データおよび第2のメモリ初期化データを書き込める制御値は、NCE=0、NWE=0、NRE=1となる。
ステップ−508
次に、第1のメモリ初期化データを読み出すためのアドレスと制御信号群の値を初期値設定スキャンFFに生成する(データアウト初期化パターンを生成する)。すなわち、メモリ回路のアドレスを第1のメモリ初期化データを書き込んだアドレスであるAD[2:0]=<0,0,0>を読み出せるように初期値設定スキャンFF23〜25、29〜31の値を生成する。この時の初期値設定スキャンFF23〜25、29〜31の値は<0,1,0,0,0,0>になる。
ステップ−509
次に、第2のメモリ初期化データパターンを読み出すためのアドレスと制御信号群の値を遷移値設定スキャンFFに生成する(データアウト遷移パターンを生成する)。すなわち、第2のメモリ初期化データを書き込んだアドレスであるAD[2:0]=<1,1,1>を読み出せるように遷移値設定スキャンFF20〜22、26〜28の値を生成する。このときの遷移値設定スキャンFF20〜22、26〜28の値は<0,1,0,1,1,1>になる。
ステップ−510
次に、第2のメモリ初期化データを第2のメモリ初期化アドレスで読み出した時の出力設定値スキャンFF群(出力設定値パターン)が受ける値を期待値として求める。すなわち、遷移値設定スキャンFFで読み出したアドレスAD[2:0]=<1,1,1>の値DO[2:0]=<1,1,0>を出力設定する。このときのスキャンFF32〜34に読み出した値は<0,1,0>になる。この値を期待値とする。
ステップ−511
次に、データアウト初期化パターンとデータアウト遷移パターンと期待値を、シフトパターンとして生成する。すなわち、遷移値設定スキャンFF20〜22,26〜28の値および初期値設定スキャンFF23〜25の値,29〜31および期待値をシリアルパターンとして生成し、対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図12のフローチャートと図13のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−601
まず、テストモード信号をテストモードに設定する。テストモード信号をテストモードである“0”に設定する。
ステップ−602
次に、生成した第1のメモリ初期化アドレスに第1のメモリ初期化データを印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Mへ第1のメモリ初期化データの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<0,0,0>、DI[2:0]=<0,0,0>になり、メモリ回路Mのアドレス<0,0,0>にデータ<0,0,0>が書きこまれる。
ステップ−603
次に、生成した第2のメモリ初期化アドレスに第2のメモリ初期化データを印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Mへ第2のメモリ初期化データの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<1,1,1>、DI[2:0]=<1,1,0>になり、メモリ回路のアドレス<1,1,1>にデータ<1,1,0>が書きこまれる。
ステップ−604
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号をスキャンモード“1”に設定する。
ステップ−605
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフトで各スキャンFFに値が設定されると、メモリ回路Mの各端子はNCE=0,NWE=1,NRE=0,AD[2:0]=<0,0,0>、DI[2:0]=<X,X,X>になる。
ステップ−606
次に、スキャンイネーブル信号(SE信号)とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−607
次に、スキャンクロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスの初期化)。クロックが入力されると、メモリ回路Mのアドレス<0,0,0>のデータが読み出されデータアウトは<0,0,0>が出力される。この時、AD[2:0]=<1,1,1>に変更される。
ステップ−608
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスに遷移を発生)。クロックが入力されると、メモリ回路のアドレス<1,1,1>のデータが読み出されデータアウトは<1,1,0>が出力される。
ステップ−609
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスの遷移後の値を出力値設定スキャンFF群に取りこむ)。データアウトDO[1]に遅延故障が発生していなければ、出力値設定スキャンFF32〜34は<0,1,0>になる。しかし、遅延故障が発生していた場合は、出力値設定スキャンFF33のみがアドレスAD[2:0]=<0,0,0>で書きこんだ値<0>になる。
ステップ−610
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号を“1”に設定する。
ステップ−611
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
ステップ−601
まず、テストモード信号をテストモードに設定する。テストモード信号をテストモードである“0”に設定する。
ステップ−602
次に、生成した第1のメモリ初期化アドレスに第1のメモリ初期化データを印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Mへ第1のメモリ初期化データの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<0,0,0>、DI[2:0]=<0,0,0>になり、メモリ回路Mのアドレス<0,0,0>にデータ<0,0,0>が書きこまれる。
ステップ−603
次に、生成した第2のメモリ初期化アドレスに第2のメモリ初期化データを印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Mへ第2のメモリ初期化データの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<1,1,1>、DI[2:0]=<1,1,0>になり、メモリ回路のアドレス<1,1,1>にデータ<1,1,0>が書きこまれる。
ステップ−604
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号をスキャンモード“1”に設定する。
ステップ−605
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフトで各スキャンFFに値が設定されると、メモリ回路Mの各端子はNCE=0,NWE=1,NRE=0,AD[2:0]=<0,0,0>、DI[2:0]=<X,X,X>になる。
ステップ−606
次に、スキャンイネーブル信号(SE信号)とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−607
次に、スキャンクロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスの初期化)。クロックが入力されると、メモリ回路Mのアドレス<0,0,0>のデータが読み出されデータアウトは<0,0,0>が出力される。この時、AD[2:0]=<1,1,1>に変更される。
ステップ−608
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスに遷移を発生)。クロックが入力されると、メモリ回路のアドレス<1,1,1>のデータが読み出されデータアウトは<1,1,0>が出力される。
ステップ−609
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(テスト可能最長パスの遷移後の値を出力値設定スキャンFF群に取りこむ)。データアウトDO[1]に遅延故障が発生していなければ、出力値設定スキャンFF32〜34は<0,1,0>になる。しかし、遅延故障が発生していた場合は、出力値設定スキャンFF33のみがアドレスAD[2:0]=<0,0,0>で書きこんだ値<0>になる。
ステップ−610
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号を“1”に設定する。
ステップ−611
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路Mに対するデータアウトラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための第1のメモリ初期化データを求め、続けてテスト最長パスの活性化をするための第2のメモリ初期化データを求める。そして、第1のメモリ初期化データを書き込むためのアドレスを求める第1のメモリ初期化アドレスを生成し、続けて第2のメモリ初期化データを書き込むためのアドレスを求める第2のメモリ初期化アドレスを生成する。
次に、第1のメモリ初期化データと第2のメモリ初期化データを書きこむためのメモリ初期化制御値を生成し、第1のメモリ初期化データを読み出すためにアドレスと制御信号群の値を初期値設定スキャンFF群に生成し(第1の初期化パターンを生成し)、続けて第2のメモリ初期化データを読み出すためのアドレスと制御信号群の値を遷移値設定スキャンFF群に生成する(第2の初期化パターンを生成する)。
そして第2のメモリ初期化データを第2のメモリ初期化アドレスで読み出した時の出力設定値スキャンFF群の値を期待値として求める。
続いて第1の初期化パターンと第2の初期化パターンを、初期値設定スキャンFF群と遷移値設定スキャンFF群のシフトパターンとして生成する(テストパターン生成を生成する)。
続いて第1の初期化パターンと第2の初期化パターンを、初期値設定スキャンFF群と遷移値設定スキャンFF群のシフトパターンとして生成する(テストパターン生成を生成する)。
そして、テストモードにより、第1のメモリ初期化データをメモリ回路Mに書き込み、続いて第2のメモリ初期化データをメモリ回路Mに書き込む。そして、スキャンモードによりシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群に設定し、スキャンクロック信号により書き込んだ第1のメモリ初期化データと第2のメモリ初期化データを読み出し、遷移値設定スキャンFF群のアドレス設定によりテスト可能最長パスの遷移後の値を出力値設定スキャンFFに取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態3によれば、メモリ回路のデータアウトラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
[実施の形態4]
実施の形態4として、メモリ回路MのライトイネーブルNWEの書き込み不可から書き込み可能への遷移時“nonWrite→Write”における、ライトイネーブルラインのテストパターン生成方法について説明する。
[実施の形態4]
実施の形態4として、メモリ回路MのライトイネーブルNWEの書き込み不可から書き込み可能への遷移時“nonWrite→Write”における、ライトイネーブルラインのテストパターン生成方法について説明する。
図14は、実施の形態4におけるライトイネーブルラインのテストパターン生成方法を示す回路図である。この図14に示す集積回路は、図1の通常動作経路を成す論理回路部の回路図であり、実施の形態1と同様の遷移値設定SFF群と初期値設定SFF群と出力値設定SFF群を備えている。
スキャンFF1の出力とスキャンFF2の出力はANDゲートg3に供給され、スキャンFF2の出力はスキャンFF12に供給され、入力端子X1とスキャンFF3の出力がANDゲートg5に供給され、入力端子X2はスキャンFF14に供給され、入力端子X3はスキャンFF15に供給され、スキャンFF4の出力とスキャンFF5の出力はORゲートg8に供給され、入力端子X4とスキャンFF6の出力がORゲートg10に供給され、スキャンFF6の出力はスキャンFF18に供給され、ORゲートg3の出力はスキャンFF11に供給され、ORゲートg5の出力はスキャンFF13に供給され、ORゲートg8の出力はスキャンFF16に供給され、ORゲートg10の出力はスキャンFF17の入力に供給される。
またスキャンFF13の出力はNOTゲートG2に供給され、スキャンFF12の出力とNOTゲートG2の出力はNANDゲートG1に供給され、NANDゲートG1とスキャンFF11の出力はANDゲートG10に供給され、スキャンFF14の出力とスキャンFF15の出力はNANDゲートG5の入力に供給され、スキャンFF17の出力はNOTゲートG7に供給され、スキャンFF16の出力とNOTゲートG7の出力はNANDゲートG8に供給され、NANDゲートG8の出力とスキャンFF18の出力はNANDゲートG9に供給される。
またスキャンANDゲートG10の出力は、テスト用ライトイネーブルNWEとともにセレクタS8に供給され、テストモード信号はセレクタS8の制御信号として供給され、セレクタS8の出力はメモリ回路MのライトイネーブルNWEに供給される。またNANDゲートG5は、テスト用チップイネーブルNCEとともにセレクタS7に供給され、テストモード信号はセレクタS7の制御信号として供給され、セレクタS7の出力はメモリ回路MのチップイネーブルNCEに供給される。さらにNANDゲートG9の出力は、テスト用リードイネーブルNREとともにセレクタS9に供給され、テストモード信号はセレクタS9の制御信号として供給され、セレクタS9の出力はメモリ回路MのリードイネーブルNREに供給される。
さらにスキャンFF20の出力はスキャンFF23に供給され、スキャンFF23の出力は、テスト用DI[0]とともにセレクタS4に供給され、テストモード信号はセレクタS4の制御信号として供給され、セレクタS4の出力はメモリ回路MのDI[0]に供給される。またスキャンFF21の出力はスキャンFF24の入力に供給され、スキャンFF24の出力は、テスト用DI[1]とともにセレクタS5に供給され、テストモード信号はセレクタS5の制御信号として供給され、セレクタS5の出力はメモリ回路MのDI[1]に供給される。またスキャンFF22の出力はスキャンFF25に供給され、スキャンFF25の出力は、テスト用DI[2]とともにセレクタS6に供給され、テストモード信号はセレクタS6の制御信号として供給され、セレクタS9の出力はメモリ回路MのDI[2]に供給される。
またスキャンFF26の出力はスキャンFF29に供給され、スキャンFF29の出力は、テスト用AD[0]とともにセレクタS1に供給され、テストモード信号はセレクタS1の制御信号として供給され、セレクタS1の出力はメモリ回路MのアドレスラインAD[0]に供給される。またスキャンFF27の出力はスキャンFF30に供給され、スキャンFF30の出力は、テスト用AD[1]とともにセレクタS2に供給され、テストモード信号はセレクタS2の制御信号として供給され、セレクタS2の出力はメモリ回路MのアドレスラインAD[1]に供給される。さらにスキャンFF28の出力はスキャンFF31に供給され、スキャンFF31の出力は、テスト用AD[2]とともにセレクタS3に供給され、テストモード信号はセレクタS3の制御信号として供給され、セレクタS3の出力はメモリ回路MのアドレスラインAD[2]に供給される。
さらにメモリ回路MのデータアウトラインDO[0]はスキャンFF32の入力に接続され、メモリ回路MのデータアウトラインDO[1]はスキャンFF33の入力に接続され、メモリ回路MのデータアウトラインDO[2]はスキャンFF34の入力に接続される。
また、クロックCLKとテスト用クロックTCLKとスキャン用クロックSCLKはそれぞれセレクタ10の入力に接続され、テストモード信号はセレクタS10の制御信号S1として接続され、スキャンモード信号はセレクタS10の制御信号S2として接続され、セレクタ10の出力はメモリ回路のCLKに供給される。これらテストモード信号(制御信号S1)とスキャンモード信号(制御信号S2)により、上述したように、クロックが選択されてメモリ回路のCLKへ供給される。
次に、ライトイネーブルラインNWEのテストパターン生成方法“nonWrite→Write”の処理手順を、図15に示すフローチャートを参照しながら説明する。
ステップ−701
まず、被検査半導体集積回路のメモリ回路Mに対するライトイネーブルのメモリ回路への書き込み不可から書き込み可能へ遷移する故障を対応するテスト可能最長パスを選択する。例えば、対象故障として図14のライトイネーブルNWEの書き込み不可から書き込み可能への遷移fall(“1”から“0”への遅延故障)に対するテスト可能最長パスとして、スキャンFF13−G2−G1−G10−NWEを選択する。
ステップ−702
次に、テスト可能最長パスを初期化するための初期値をあたえるライトイネーブル初期化テストパターンを求める。すなわち、テスト可能最長パスに係る初期値設定スキャンFF11〜13に値を生成する。この時の初期値設定スキャンFF11〜13の値はそれぞれ<1,x,1>となる。
ステップ−703
続いて、テスト可能最長パスを活性化するためのライトイネーブル遷移テストパターンを求める。すなわち初期値設定スキャンFF11〜13に係る遷移値設定スキャンFF1〜3および入力端子X1に値を生成する。この時の遷移値設定スキャンFF1〜3に値および入力端子X1の値はそれぞれ<0,1,0,0>となる。
ステップ−704
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。例えば、アドレスを任意の値であるAD[2:0]=<0,1,0>になるように初期値設定スキャンFF29〜31および遷移値設定スキャンFF26〜28に値を生成する。この時の値は<0,1,0,0,1,0>になる。
ステップ−705
続いてデータラインに任意の値を設定するためのデータパターン系列を求める。例えば、メモリ回路のデータを任意の値であるDI[2:0]=<0,1,0>になるように初期値設定スキャンFF23〜25および遷移値設定スキャンFF20〜22に値を生成する。この時の<0,1,0,0,1,0>になる。
ステップ−706
次に、メモリ回路Mの制御信号群をメモリ回路Mへ書き込みできる値を設定するための制御値パターン系列を求める。すなわち、メモリ回路の制御信号群であるNCE、NREに書き込み動作を許可するための値<0,1>になるように初期値設定スキャンFF14〜18および遷移値設定スキャンFF4〜6および入力端子X2〜X4に値を生成する。この時の値は<1,1,x,x,0、x,x,0,1,1,x>になる。
ステップ−707
次に、遷移値設定スキャンFF群の値によりメモリ回路に書きこまれた値をステップ−704で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。すなわち、遷移値設定スキャンFF20〜22,26〜28に設定した値によりメモリ回路に書きこまれた値DI[2:0]=<0,1,0>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<0,1,0>になる。このときの値を期待値とする。
ステップ−708
次に、ライトイネーブル初期化パターン系列とライトイネーブル遷移パターン系列とアドレスパターン系列とデータパターン系列と期待値を、スキャンFF群のシリアルパターンして生成する。すなわち、初期値設定スキャンFF群と遷移値設定スキャンFF群に設定された値と期待値をシフトパターンとして生成する。
ステップ−709
続いて、ステップ−704で生成したアドレスパターンに対するアドレスライン値を初期化アドレスとして求める。このときのメモリ初期化アドレスは、ステップ−704で生成したアドレスパターン系列でのメモリ回路への書き込みアドレスAD[2:0]=<0,1,0>になる。
ステップ−710
次に、ステップ−705で生成したデータパターンに対するデータラインの値と異なるデータを初期化データとして求める。このときのメモリ初期化データは、ステップ−705で生成したデータパターン系列でのメモリ回路への書き込みデータDI[2:0]=<0,1,0>以外の任意の値にする。この実施の形態ではDI[2:0]=<1,0,1>にする。
ステップ−711
続いて、ステップ−709,710で生成したパターンがメモリ回路に書き込みができるようにメモリ回路の制御信号群のメモリ初期化制御値を求める。ステップ−709で生成したメモリ初期化アドレスに対してステップ−710で生成したメモリ初期化データをメモリ回路に書き込むためのメモリ回路制御群の値を求める。本実施の形態では、NCE=0,NWE=0、NRE=1となる。ステップ−709,710,711によりメモリ回路のテスト用経路の初期化パターンが生成される。
ステップ−701
まず、被検査半導体集積回路のメモリ回路Mに対するライトイネーブルのメモリ回路への書き込み不可から書き込み可能へ遷移する故障を対応するテスト可能最長パスを選択する。例えば、対象故障として図14のライトイネーブルNWEの書き込み不可から書き込み可能への遷移fall(“1”から“0”への遅延故障)に対するテスト可能最長パスとして、スキャンFF13−G2−G1−G10−NWEを選択する。
ステップ−702
次に、テスト可能最長パスを初期化するための初期値をあたえるライトイネーブル初期化テストパターンを求める。すなわち、テスト可能最長パスに係る初期値設定スキャンFF11〜13に値を生成する。この時の初期値設定スキャンFF11〜13の値はそれぞれ<1,x,1>となる。
ステップ−703
続いて、テスト可能最長パスを活性化するためのライトイネーブル遷移テストパターンを求める。すなわち初期値設定スキャンFF11〜13に係る遷移値設定スキャンFF1〜3および入力端子X1に値を生成する。この時の遷移値設定スキャンFF1〜3に値および入力端子X1の値はそれぞれ<0,1,0,0>となる。
ステップ−704
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。例えば、アドレスを任意の値であるAD[2:0]=<0,1,0>になるように初期値設定スキャンFF29〜31および遷移値設定スキャンFF26〜28に値を生成する。この時の値は<0,1,0,0,1,0>になる。
ステップ−705
続いてデータラインに任意の値を設定するためのデータパターン系列を求める。例えば、メモリ回路のデータを任意の値であるDI[2:0]=<0,1,0>になるように初期値設定スキャンFF23〜25および遷移値設定スキャンFF20〜22に値を生成する。この時の<0,1,0,0,1,0>になる。
ステップ−706
次に、メモリ回路Mの制御信号群をメモリ回路Mへ書き込みできる値を設定するための制御値パターン系列を求める。すなわち、メモリ回路の制御信号群であるNCE、NREに書き込み動作を許可するための値<0,1>になるように初期値設定スキャンFF14〜18および遷移値設定スキャンFF4〜6および入力端子X2〜X4に値を生成する。この時の値は<1,1,x,x,0、x,x,0,1,1,x>になる。
ステップ−707
次に、遷移値設定スキャンFF群の値によりメモリ回路に書きこまれた値をステップ−704で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。すなわち、遷移値設定スキャンFF20〜22,26〜28に設定した値によりメモリ回路に書きこまれた値DI[2:0]=<0,1,0>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<0,1,0>になる。このときの値を期待値とする。
ステップ−708
次に、ライトイネーブル初期化パターン系列とライトイネーブル遷移パターン系列とアドレスパターン系列とデータパターン系列と期待値を、スキャンFF群のシリアルパターンして生成する。すなわち、初期値設定スキャンFF群と遷移値設定スキャンFF群に設定された値と期待値をシフトパターンとして生成する。
ステップ−709
続いて、ステップ−704で生成したアドレスパターンに対するアドレスライン値を初期化アドレスとして求める。このときのメモリ初期化アドレスは、ステップ−704で生成したアドレスパターン系列でのメモリ回路への書き込みアドレスAD[2:0]=<0,1,0>になる。
ステップ−710
次に、ステップ−705で生成したデータパターンに対するデータラインの値と異なるデータを初期化データとして求める。このときのメモリ初期化データは、ステップ−705で生成したデータパターン系列でのメモリ回路への書き込みデータDI[2:0]=<0,1,0>以外の任意の値にする。この実施の形態ではDI[2:0]=<1,0,1>にする。
ステップ−711
続いて、ステップ−709,710で生成したパターンがメモリ回路に書き込みができるようにメモリ回路の制御信号群のメモリ初期化制御値を求める。ステップ−709で生成したメモリ初期化アドレスに対してステップ−710で生成したメモリ初期化データをメモリ回路に書き込むためのメモリ回路制御群の値を求める。本実施の形態では、NCE=0,NWE=0、NRE=1となる。ステップ−709,710,711によりメモリ回路のテスト用経路の初期化パターンが生成される。
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図16のフローチャートと図17のメモリ回路の各端子における波形図を参照しながら用いて説明する。
ステップ−801
まずテストモード信号をテストモードに設定する。すなわち、テストモード信号をテストモードである“0”に設定する。
ステップ−802
次に、生成したテスト用経路の初期化パターン(メモリ初期化アドレスおよびメモリ初期化データおよびメモリ初期化制御値)を印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Mのメモリ初期化アドレスにメモリ初期化データの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<1,0,1>になり、メモリ回路Mのアドレス<0,1,0>にデータ<1,0,1>が書きこまれる。
ステップ−803
次に、スキャンイネーブル信号(SE信号)をスキャンモードの設定する。すなわち、スキャンイネーブル信号をスキャンモードである“1”に設定する。
ステップ−804
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=1,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<0,1,0>になる。
ステップ−805
次に、スキャンイネーブル信号とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−806
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路およびスキャンFFにクロックを印加する(メモリ回路Mの非書き込み動作)。クロックが入力されると、ライトイネーブルNWE=0に設定される。
ステップ−807
次に、テスト対象メモリ回路の実動作クロック速度でテスト対象メモリ回路およびスキャンFFにクロックを印加する(メモリ回路Mの書き込み動作)。クロックが入力されると、メモリ回路Mのアドレス<0,1,0>のデータDI[2:0]=<0,1,0>がメモリ回路Mに書きこまれる。
ステップ−808
次に、メモリ回路MのNWE=1、NRE=0に設定し、テスト対象メモリ回路へ遷移パターンで書きこんだアドレスのデータの値を読み出す。アドレスAD[2:0]=<0,1,0>を読み出す。ライトイネーブルNWEに遅延故障が発生している場合、メモリ回路へのライト動作が正常に行われずメモリ初期化データDI[2:0]=<1,0,1>が読み出される。遅延故障が発生していない場合は、DI[2:0]=<0,1,0>が読み出される。
ステップ−809
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号を“1”に設定する。
ステップ−810
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
このように生成したテストパターンを使用した検査方法について、図16のフローチャートと図17のメモリ回路の各端子における波形図を参照しながら用いて説明する。
ステップ−801
まずテストモード信号をテストモードに設定する。すなわち、テストモード信号をテストモードである“0”に設定する。
ステップ−802
次に、生成したテスト用経路の初期化パターン(メモリ初期化アドレスおよびメモリ初期化データおよびメモリ初期化制御値)を印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Mのメモリ初期化アドレスにメモリ初期化データの書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<1,0,1>になり、メモリ回路Mのアドレス<0,1,0>にデータ<1,0,1>が書きこまれる。
ステップ−803
次に、スキャンイネーブル信号(SE信号)をスキャンモードの設定する。すなわち、スキャンイネーブル信号をスキャンモードである“1”に設定する。
ステップ−804
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=1,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<0,1,0>になる。
ステップ−805
次に、スキャンイネーブル信号とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−806
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路およびスキャンFFにクロックを印加する(メモリ回路Mの非書き込み動作)。クロックが入力されると、ライトイネーブルNWE=0に設定される。
ステップ−807
次に、テスト対象メモリ回路の実動作クロック速度でテスト対象メモリ回路およびスキャンFFにクロックを印加する(メモリ回路Mの書き込み動作)。クロックが入力されると、メモリ回路Mのアドレス<0,1,0>のデータDI[2:0]=<0,1,0>がメモリ回路Mに書きこまれる。
ステップ−808
次に、メモリ回路MのNWE=1、NRE=0に設定し、テスト対象メモリ回路へ遷移パターンで書きこんだアドレスのデータの値を読み出す。アドレスAD[2:0]=<0,1,0>を読み出す。ライトイネーブルNWEに遅延故障が発生している場合、メモリ回路へのライト動作が正常に行われずメモリ初期化データDI[2:0]=<1,0,1>が読み出される。遅延故障が発生していない場合は、DI[2:0]=<0,1,0>が読み出される。
ステップ−809
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号を“1”に設定する。
ステップ−810
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路Mに対するデータイネーブルラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえる初期化テストパターンを求め、テスト可能最長パスを活性化するための遷移テストパターンを求める。続いて、アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに任意の値を設定するためのデータパターン系列を求め、さらにメモリ回路Mの制御信号群をメモリ回路Mへ書き込みできる値を設定するための制御値パターン系列を求める。次に、遷移値設定スキャンFFの値によりメモリ回路に書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンFF群の値を期待値として求め、初期値設定スキャンFF群と遷移値設定スキャンFF群に設定された値と期待値によりシリアルパターンを生成する。
次に、アドレスパターン系列で生成したアドレスパターンに対するアドレスラインの値を初期化アドレスとして求め、データパターン系列で生成したデータパターンに対するデータラインの値と異なるデータを初期化データとして求め、続けて初期化データがメモリ回路Mに書き込みができるようにメモリ回路Mの制御信号群の値を求めるメモリ初期化制御値を求め、メモリ回路Mのテスト用経路の初期化パターンを生成する。
そして、テストモードにより、テスト用経路から初期化パターンをメモリ回路Mに書き込み、続いてスキャンモードによりシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群に設定し、スキャンクロック信号によりデータの書き込みを行い、テスト対象メモリ回路Mへ遷移パターンで書きこんだアドレスのデータの値を読み出し、続いて出力値設定スキャンFFに取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態4によれば、メモリ回路Mの“nonWrite→Write”時のライトイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
なお、実施の形態4では、メモリ回路の初期化においてアドレスAD[2:0]を特定しメモリ回路のメモリ初期化データを印加しているが、メモリ回路すべてを遷移値パターンでメモリ回路Mに書き込むデータ以外の値に初期化してもよい。
[実施の形態5]
実施の形態5として、メモリ回路MのライトイネーブルNWEの書き込み可能から書き込み不可への遷移時“Write→nonWrite”における、ライトイネーブルラインのテストパターン生成方法について説明する。なお、実施の形態5におけるライトイネーブルラインのテストパターン生成方法を示す回路図は、実施の形態4(図14)と同一であり、説明を省略する。
[実施の形態5]
実施の形態5として、メモリ回路MのライトイネーブルNWEの書き込み可能から書き込み不可への遷移時“Write→nonWrite”における、ライトイネーブルラインのテストパターン生成方法について説明する。なお、実施の形態5におけるライトイネーブルラインのテストパターン生成方法を示す回路図は、実施の形態4(図14)と同一であり、説明を省略する。
ライトイネーブルラインのテストパターン生成方法“Write→nonWrite”の処理手順を、図18に示すフローチャートを参照しながら説明する。
ステップ−1101
まず、被検査半導体集積回路のメモリ回路Mに対するライトイネーブルのメモリ回路への書き込み可能から書き込み不可へ遷移する故障を対応するテスト可能最長パスを選択する。例えば、対象故障として図15のライトイネーブルNWEの書き込み可能から書き込み不可への遷移rise(“0”から“1”への遅延故障)に対するテスト可能最長パスとして、スキャンFF13−G2−G1−G10−NWEを選択する。
ステップ−1102
次に、テスト可能最長パスを初期化するための初期値(NWE=0)をあたえるライトイネーブル初期化テストパターンを求める。すなわち、選択したテスト可能最長パスに係る初期値設定スキャンFF11〜13に値を生成する。この時の初期値設定スキャンFF群11〜13の値はそれぞれ<1,1,1>となる。
ステップ−1103
続いてテスト可能最長パスを活性化するためのライトイネーブル遷移テストパターンを求める。すなわち、初期値設定スキャンFF11〜13に係る遷移値設定スキャンFF1〜3および入力端子X1に値を生成する。NWE=1を与える遷移値設定スキャンFF1〜3に値および入力端子X1の値はそれぞれ<1,0,1,x>となる。
ステップ−1104
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。例えば、アドレスを任意の値であるAD[2:0]=<0,1,0>になるように初期値設定スキャンFF29〜31および遷移値設定スキャンFF26〜28に値を生成する。この時のアドレスパターン系列は<0,1,0,0,1,0>になる。
ステップ−1105
次に、ライトイネーブル初期化パターンとアドレスパターン系列に対応するメモリ回路Mに、所定の値に書きこむ第1のメモリ初期化データを求める。例えば、アドレスAD[2:0]=<0,1,0>に書き込む第1のメモリ初期化データDI[2:0]=<0,1,0>になるように初期値設定スキャンFF23〜25に値を生成する。
ステップ−1106
次に、ライトイネーブル遷移パターンとアドレスパターン系列に対応する前記メモリ回路Mに、所定の値に書きこむ第2のメモリ初期化データを、前記第1のメモリ初期化データと異なる値で求める。例えば、アドレスAD[2:0]=<0,1,0>に書き込む第1のメモリ初期化データと異なるデータDI[2:0]=<1,0,1>になるように遷移値設定スキャンFF20〜22に値を生成する。ステップ−1105とステップ−1106により生成されるデータパターン系列は<1,0,1,0,1,0>となる。
ステップ−1107
次に、メモリ回路の制御信号群をメモリ回路へ書き込みできる値を設定するための制御値パターン系列を求める。すなわち、メモリ回路の制御信号群であるNCE、NREに書き込み動作を許可するための値<0,1>になるように初期値設定スキャンFF14〜18および遷移値設定スキャンFF4〜6および入力端子X2〜X4に値を生成する。この時の値は<1,1,x,x,0、x,x,0,1,1,x>になる。
ステップ−1108
次に、初期化設定スキャンFF群の値によりメモリ回路Mに書きこまれた値をステップ−1104で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。すなわち、初期値設定スキャンFF23〜25,29〜31に設定した値によりメモリ回路Mに書きこまれた値DI[2:0]=<0,1,0>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<0,1,0>になる。このときの値を期待値とする。
ステップ−1109
次に、ライトイネーブル初期化パターンとライトイネーブル遷移パターンとアドレスパターン系列と第1のメモリ初期化データと第2のメモリ初期化データと制御値パターン系列と期待値を、スキャンFF群のシリアルパターンとして生成する。すなわち、初期値設定スキャンFF群と遷移値設定スキャンFF群に設定された値と、期待値をシリアルパターンとして生成する。
ステップ−1101
まず、被検査半導体集積回路のメモリ回路Mに対するライトイネーブルのメモリ回路への書き込み可能から書き込み不可へ遷移する故障を対応するテスト可能最長パスを選択する。例えば、対象故障として図15のライトイネーブルNWEの書き込み可能から書き込み不可への遷移rise(“0”から“1”への遅延故障)に対するテスト可能最長パスとして、スキャンFF13−G2−G1−G10−NWEを選択する。
ステップ−1102
次に、テスト可能最長パスを初期化するための初期値(NWE=0)をあたえるライトイネーブル初期化テストパターンを求める。すなわち、選択したテスト可能最長パスに係る初期値設定スキャンFF11〜13に値を生成する。この時の初期値設定スキャンFF群11〜13の値はそれぞれ<1,1,1>となる。
ステップ−1103
続いてテスト可能最長パスを活性化するためのライトイネーブル遷移テストパターンを求める。すなわち、初期値設定スキャンFF11〜13に係る遷移値設定スキャンFF1〜3および入力端子X1に値を生成する。NWE=1を与える遷移値設定スキャンFF1〜3に値および入力端子X1の値はそれぞれ<1,0,1,x>となる。
ステップ−1104
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。例えば、アドレスを任意の値であるAD[2:0]=<0,1,0>になるように初期値設定スキャンFF29〜31および遷移値設定スキャンFF26〜28に値を生成する。この時のアドレスパターン系列は<0,1,0,0,1,0>になる。
ステップ−1105
次に、ライトイネーブル初期化パターンとアドレスパターン系列に対応するメモリ回路Mに、所定の値に書きこむ第1のメモリ初期化データを求める。例えば、アドレスAD[2:0]=<0,1,0>に書き込む第1のメモリ初期化データDI[2:0]=<0,1,0>になるように初期値設定スキャンFF23〜25に値を生成する。
ステップ−1106
次に、ライトイネーブル遷移パターンとアドレスパターン系列に対応する前記メモリ回路Mに、所定の値に書きこむ第2のメモリ初期化データを、前記第1のメモリ初期化データと異なる値で求める。例えば、アドレスAD[2:0]=<0,1,0>に書き込む第1のメモリ初期化データと異なるデータDI[2:0]=<1,0,1>になるように遷移値設定スキャンFF20〜22に値を生成する。ステップ−1105とステップ−1106により生成されるデータパターン系列は<1,0,1,0,1,0>となる。
ステップ−1107
次に、メモリ回路の制御信号群をメモリ回路へ書き込みできる値を設定するための制御値パターン系列を求める。すなわち、メモリ回路の制御信号群であるNCE、NREに書き込み動作を許可するための値<0,1>になるように初期値設定スキャンFF14〜18および遷移値設定スキャンFF4〜6および入力端子X2〜X4に値を生成する。この時の値は<1,1,x,x,0、x,x,0,1,1,x>になる。
ステップ−1108
次に、初期化設定スキャンFF群の値によりメモリ回路Mに書きこまれた値をステップ−1104で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。すなわち、初期値設定スキャンFF23〜25,29〜31に設定した値によりメモリ回路Mに書きこまれた値DI[2:0]=<0,1,0>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<0,1,0>になる。このときの値を期待値とする。
ステップ−1109
次に、ライトイネーブル初期化パターンとライトイネーブル遷移パターンとアドレスパターン系列と第1のメモリ初期化データと第2のメモリ初期化データと制御値パターン系列と期待値を、スキャンFF群のシリアルパターンとして生成する。すなわち、初期値設定スキャンFF群と遷移値設定スキャンFF群に設定された値と、期待値をシリアルパターンとして生成する。
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図19のフローチャートと図20のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−1301
まず、スキャンイネーブル信号(SE信号)をスキャントモードに設定する。すなわち、スキャンモード信号をスキャンモードである“1”に設定する。
ステップ−1302
次に、上記生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。このスキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>,DI[2:0]=<0,1,0>になる。
ステップ−1303
次に、スキャンイネーブル信号とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−1304
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの書き込み動作)。クロックが入力されると、アドレス<0,1,0>にデータ<0,1,0>が書き込まれ、ライトイネーブルNWE=1に設定される。
ステップ−1305
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの非書き込み動作)。クロックが入力されると、メモリ回路の端子は、AD[2:0]=<0,1,0>,DI[2:0]=<1,0,1>になり、アドレス<0,1,0>に第2のメモリ初期化パターンのデータ<1,0,1>がメモリ回路に書きこまれようとする。
ステップ−1306
次に、メモリ回路のNWE=1、NRE=0に設定し、テスト対象メモリ回路へ遷移パターンで書きこんだアドレスのデータの値を読み出す。アドレスAD[2:0]=<0,1,0>を読み出す。ライトイネーブルNWEに遅延故障が発生している場合、メモリ回路への非書き込み動作が正常に行われず、書き換えられたデータDI[2:0]=<1,0,1>が読み出される。遅延故障が発生していない場合は、DI[2:0]=<0,1,0>が読み出される。
ステップ−1307
次に、スキャンイネーブル信号SEをスキャンモードに設定する。スキャンイネーブル信号を“1”に設定する。
ステップ−1308
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
このように生成したテストパターンを使用した検査方法について、図19のフローチャートと図20のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−1301
まず、スキャンイネーブル信号(SE信号)をスキャントモードに設定する。すなわち、スキャンモード信号をスキャンモードである“1”に設定する。
ステップ−1302
次に、上記生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。このスキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>,DI[2:0]=<0,1,0>になる。
ステップ−1303
次に、スキャンイネーブル信号とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−1304
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの書き込み動作)。クロックが入力されると、アドレス<0,1,0>にデータ<0,1,0>が書き込まれ、ライトイネーブルNWE=1に設定される。
ステップ−1305
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの非書き込み動作)。クロックが入力されると、メモリ回路の端子は、AD[2:0]=<0,1,0>,DI[2:0]=<1,0,1>になり、アドレス<0,1,0>に第2のメモリ初期化パターンのデータ<1,0,1>がメモリ回路に書きこまれようとする。
ステップ−1306
次に、メモリ回路のNWE=1、NRE=0に設定し、テスト対象メモリ回路へ遷移パターンで書きこんだアドレスのデータの値を読み出す。アドレスAD[2:0]=<0,1,0>を読み出す。ライトイネーブルNWEに遅延故障が発生している場合、メモリ回路への非書き込み動作が正常に行われず、書き換えられたデータDI[2:0]=<1,0,1>が読み出される。遅延故障が発生していない場合は、DI[2:0]=<0,1,0>が読み出される。
ステップ−1307
次に、スキャンイネーブル信号SEをスキャンモードに設定する。スキャンイネーブル信号を“1”に設定する。
ステップ−1308
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するデータイネーブルラインNWEから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえる初期化テストパターンを求め、テスト可能最長パスを活性化するための遷移テストパターンを求める。
続いて、アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに第1のメモリ初期化データと第2のメモリ初期化データを設定するためのデータパターン系列を求め、メモリ回路Mの制御信号群を、メモリ回路Mへ書き込み可能にできる値に設定する制御値パターン系列を求める。次に、初期値設定スキャンFF群の値によりメモリ回路Mに書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンFF群の値を期待値として求め、初期値設定スキャンFF群と遷移値設定スキャンFF群に設定された値と、期待値によりシリアルパターンを生成する。
そして、スキャンモードによりシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群に設定し、スキャンクロック信号によりデータの書き込みを行い、続いてテスト対象メモリ回路Mへ遷移値パターンで書き込もうとしたデータの値を読み出し、出力値設定スキャンFFに取りこみ、期待値と比較することによって、すなわち遷移値パターンではデータが書き換えられないことを確認することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態5によれば、メモリ回路Mの“Write→nonWrite”時のライトイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
[実施の形態6]
実施の形態4として、メモリ回路MのリードイネーブルNREの読み取り不可から読み取り可能への遷移時“nonRead→Read”における、リードネーブルラインのテストパターン生成方法について説明する。
[実施の形態6]
実施の形態4として、メモリ回路MのリードイネーブルNREの読み取り不可から読み取り可能への遷移時“nonRead→Read”における、リードネーブルラインのテストパターン生成方法について説明する。
図21は、実施の形態6におけるリードイネーブルラインのテストパターン生成方法を示す回路図である。この図21に示す集積回路は、図1の通常動作経路わ成す論理回路部の回路図であり、実施の形態1と同様の遷移値設定SFF群と初期値設定SFF群と出力値設定SFF群を備えている。
スキャンFF1の出力とスキャンFF2の出力はANDゲートg3に供給され、スキャンFF2の出力はスキャンFF12に供給され、入力端子X1とスキャンFF3の出力がANDゲートg5に供給され、入力端子X2はスキャンFF14に供給され、入力端子X3はスキャンFF15に供給され、スキャンFF4の出力とスキャンFF5の出力はORゲートg8に供給され、入力端子X4とスキャンFF6の出力がORゲートg10に供給され、スキャンFF6の出力はスキャンFF18に供給され、ORゲートg3の出力はスキャンFF11の入力に供給され、ORゲートg5の出力はスキャンFF13に供給され、ORゲートg8の出力はスキャンFF16に供給され、ORゲートg10の出力はスキャンFF17に供給される。
またスキャンFF13の出力はNOTゲートG2に供給され、スキャンFF12の出力とNOTゲートG2の出力はNANDゲートG1に供給され、NANDゲートG1とスキャンFF11の出力はANDゲートG10に供給され、スキャンFF14の出力とスキャンFF15の出力はNANDゲートG5の入力に供給され、スキャンFF17の出力はNOTゲートG7に供給され、スキャンFF16の出力とNOTゲートG7の出力はNANDゲートG8に供給され、スキャンFF18の出力はNOTゲートG11に供給され、NANDゲートG8の出力とNOTゲートG11の出力はNANDゲートG9に供給される。
またスキャンANDゲートG10の出力は、テスト用ライトイネーブルNWEとともにセレクタS8に供給され、テストモード信号はセレクタS8の制御信号として供給され、セレクタS8の出力はメモリ回路MのライトイネーブルNWEに供給される。またNANDゲートG5は、テスト用チップイネーブルNCEとともにセレクタS7に供給され、テストモード信号はセレクタS7の制御信号として供給され、セレクタS7の出力はメモリ回路MのチップイネーブルNCEに供給される。さらにNANDゲートG9の出力は、テスト用リードイネーブルNREとともにセレクタS9に供給され、テストモード信号はセレクタS9の制御信号として供給され、セレクタS9の出力はメモリ回路MのリードイネーブルNREに供給される。
またスキャンFF20の出力はスキャンFF23に供給され、スキャンFF23の出力は、テスト用DI[0]とともにセレクタS4に供給され、テストモード信号はセレクタS4の制御信号として供給され、セレクタS4の出力はメモリ回路MのDI[0]に供給される。またスキャンFF21の出力はスキャンFF24に供給され、スキャンFF24の出力は、テスト用DI[1]とともにセレクタS5に供給され、テストモード信号はセレクタS5の制御信号として供給され、セレクタS5の出力はメモリ回路MのDI[1]に供給されている。さらにスキャンFF22の出力はスキャンFF25に供給され、スキャンFF25の出力は、テスト用DI[2]とともにセレクタS6に供給され、テストモード信号はセレクタS6の制御信号として供給され、セレクタS9の出力はメモリ回路MのDI[2]に供給される。
またスキャンFF26の出力はスキャンFF29に供給され、スキャンFF29の出力は、テスト用AD[0]とともにセレクタS1に供給され、テストモード信号はセレクタS1の制御信号として供給され、セレクタS1の出力はメモリ回路MのアドレスラインAD[0]に供給される。またスキャンFF27の出力はスキャンFF30に供給され、スキャンFF30の出力は、テスト用AD[1]とともにセレクタS2に供給され、テストモード信号はセレクタS2の制御信号として供給され、セレクタS2の出力はメモリ回路MのアドレスラインAD[1]に供給される。さらにスキャンFF28の出力はスキャンFF31に供給され、スキャンFF31の出力は、テスト用AD[2]とともにセレクタS3に供給され、テストモード信号はセレクタS3の制御信号として供給され、セレクタS3の出力はメモリ回路MのアドレスラインAD[2]に供給される。
またメモリ回路MのデータアウトラインDO[0]はスキャンFF32の入力に接続され、メモリ回路MのデータアウトラインDO[1]はスキャンFF33の入力に接続され、メモリ回路MのデータアウトラインDO[2]はスキャンFF34の入力に接続される。
また、クロックCLKとテスト用クロックTCLKとスキャン用クロックSCLKはそれぞれセレクタ10の入力に接続され、テストモード信号はセレクタS10の制御信号S1として接続され、スキャンモード信号はセレクタS10の制御信号S2として接続され、セレクタ10の出力はメモリ回路のCLKに供給される。これらテストモード信号(制御信号S1)とスキャンモード信号(制御信号S2)により、上述したように、クロックが選択されてメモリ回路のCLKへ供給される。
次に、リードイネーブルラインNWEのテストパターン生成方法“nonRead→Read”の処理手順を、図22に示すフローチャートを参照しながら説明する。
ステップ−901
まず、被検査半導体集積回路のメモリ回路Mに対するリードイネーブルから読出し不可から読出し可能への遷移に対するテスト可能最長パスを選択する。例えば、対象故障として図21のライトイネーブルNREの読出し不可から読出し可能への遷移fall(“1”から“0”への遅延故障)に対するテスト可能最長パスとして、スキャンFF17−G7−G8−G9−NREを選択する。
ステップ−902
次に、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求める。すなわち、初期値設定スキャンFF群16〜18に値を生成する。この時の初期値設定スキャンFF群16〜18の値はそれぞれ<1,0,x>となる。
ステップ−903
次に、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。すなわち、遷移値設定スキャンFF群4〜6および入力端子X4に値を生成する。この時の遷移値設定スキャンFF群4〜6の値および入力端子X4の値はそれぞれ<1,1,0,1>となる。
ステップ−904
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。
アドレスを任意の値であるAD[2:0]=<0,1,0>になるように初期値設定スキャンFF29〜31および遷移値設定スキャンFF26〜28に値を生成する。この時の値は<0,1,0,0,1,0>になる。
ステップ−905
次に、データラインに任意の値を設定するためのデータパターン系列を求める。メモリ回路のデータを任意の値であるDI[2:0]=<0,1,0>になるように初期値設定スキャンFF23〜25及び遷移値設定スキャンFF20〜22に値を生成する。この時の<0,1,0,0,1,0>になる。
ステップ−906
次に、メモリ回路の制御信号群を前記メモリ回路へ書き込みできる値を初期値スキャンFFに設定するための制御値(制御信号群)初期化パターンを求める。すなわち、メモリ回路の制御信号群であるNCE、NWEに書き込み動作を許可するための値<0,0>になるように初期値設定スキャンFF11〜15に値を生成する。このときの値は、<0,x,x,1,1>になる。
ステップ−907
次に、メモリ回路の制御信号群を前記メモリ回路から読み出しができる値を遷移値スキャンFFに設定するための制御値(制御信号群)遷移パターンを求める。すなわち、メモリ回路の制御信号群であるNCE、NWEに読出し動作を許可するための値<0,1>になるように遷移値設定スキャンFF1〜3および入力端子X1〜X3に値を生成する。この時の値は<1,1,0,1,1,1>になる。
ステップ−908
次に、初期値設定スキャンFF群(リードイネーブル初期化パターン)の値によりメモリ回路に書きこまれた値をステップ−904で設定したアドレスライン値で読み出した時の出力設定値スキャンFF(出力設定値パターン)群の値を期待値として求める。すなわち、初期値設定スキャンFF23〜25,29〜30に設定した値によりメモリ回路Mに書きこまれた値DI[2:0]=<0,1,0>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<0,1,0>になる。このときの値を期待値とする。
ステップ−909
次に、期待値の反転値をテスト時の出力設定値FF群(出力値設定パターン)の値とする。ステップ−908で生成した期待値と異なる値を求める。期待値は<0,1,0>であるので、ここでは値は<1,0,1>とする。
ステップ−910
次に、リードイネーブル初期化パターンとリードイネーブル遷移パターンとアドレスパターン系列とデータパターン系列と制御値初期化パターンと制御値遷移パターンと出力設定値パターンと期待値を、スキャンFF群のシリアルパターンとして生成する。すなわち、遷移値設定スキャンFFと初期値設定スキャンFFと出力値設定スキャンFFに設定された値と、期待値をシリアルパターンとして生成する。
ステップ−901
まず、被検査半導体集積回路のメモリ回路Mに対するリードイネーブルから読出し不可から読出し可能への遷移に対するテスト可能最長パスを選択する。例えば、対象故障として図21のライトイネーブルNREの読出し不可から読出し可能への遷移fall(“1”から“0”への遅延故障)に対するテスト可能最長パスとして、スキャンFF17−G7−G8−G9−NREを選択する。
ステップ−902
次に、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求める。すなわち、初期値設定スキャンFF群16〜18に値を生成する。この時の初期値設定スキャンFF群16〜18の値はそれぞれ<1,0,x>となる。
ステップ−903
次に、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。すなわち、遷移値設定スキャンFF群4〜6および入力端子X4に値を生成する。この時の遷移値設定スキャンFF群4〜6の値および入力端子X4の値はそれぞれ<1,1,0,1>となる。
ステップ−904
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。
アドレスを任意の値であるAD[2:0]=<0,1,0>になるように初期値設定スキャンFF29〜31および遷移値設定スキャンFF26〜28に値を生成する。この時の値は<0,1,0,0,1,0>になる。
ステップ−905
次に、データラインに任意の値を設定するためのデータパターン系列を求める。メモリ回路のデータを任意の値であるDI[2:0]=<0,1,0>になるように初期値設定スキャンFF23〜25及び遷移値設定スキャンFF20〜22に値を生成する。この時の<0,1,0,0,1,0>になる。
ステップ−906
次に、メモリ回路の制御信号群を前記メモリ回路へ書き込みできる値を初期値スキャンFFに設定するための制御値(制御信号群)初期化パターンを求める。すなわち、メモリ回路の制御信号群であるNCE、NWEに書き込み動作を許可するための値<0,0>になるように初期値設定スキャンFF11〜15に値を生成する。このときの値は、<0,x,x,1,1>になる。
ステップ−907
次に、メモリ回路の制御信号群を前記メモリ回路から読み出しができる値を遷移値スキャンFFに設定するための制御値(制御信号群)遷移パターンを求める。すなわち、メモリ回路の制御信号群であるNCE、NWEに読出し動作を許可するための値<0,1>になるように遷移値設定スキャンFF1〜3および入力端子X1〜X3に値を生成する。この時の値は<1,1,0,1,1,1>になる。
ステップ−908
次に、初期値設定スキャンFF群(リードイネーブル初期化パターン)の値によりメモリ回路に書きこまれた値をステップ−904で設定したアドレスライン値で読み出した時の出力設定値スキャンFF(出力設定値パターン)群の値を期待値として求める。すなわち、初期値設定スキャンFF23〜25,29〜30に設定した値によりメモリ回路Mに書きこまれた値DI[2:0]=<0,1,0>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<0,1,0>になる。このときの値を期待値とする。
ステップ−909
次に、期待値の反転値をテスト時の出力設定値FF群(出力値設定パターン)の値とする。ステップ−908で生成した期待値と異なる値を求める。期待値は<0,1,0>であるので、ここでは値は<1,0,1>とする。
ステップ−910
次に、リードイネーブル初期化パターンとリードイネーブル遷移パターンとアドレスパターン系列とデータパターン系列と制御値初期化パターンと制御値遷移パターンと出力設定値パターンと期待値を、スキャンFF群のシリアルパターンとして生成する。すなわち、遷移値設定スキャンFFと初期値設定スキャンFFと出力値設定スキャンFFに設定された値と、期待値をシリアルパターンとして生成する。
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図23のフローチャートと図24のメモリ回路の各端子における波形図を参照しながら用いて説明する。
ステップ−1001
まず、スキャンイネーブル信号(SE信号)をスキャンモードに設定する。すなわち、スキャンモード信号をスキャンモードである“1”に設定する。
ステップ−1002
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<0,1,0>になる。
ステップ−1003
次に、スキャンイネーブル信号SEとテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−1004
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの書き込み動作)。クロックが入力されると、メモリ回路のアドレスAD[2:0]=<0,1,0>のデータDI[2:0]=<0,1,0>が書きこまれる。この時、NRE=0、NWE=1に設定される。
ステップ−1005
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの読み出し動作)。クロックが入力されると、メモリ回路のアドレス<0,1,0>のデータがメモリ回路から読み出される。リードイネーブルNREに遅延故障が発生している場合、メモリ回路Mへのリード動作が正常に行われず出力設定値FF群32〜34は期待値と異なる値である<1,0,1>になっている。遅延故障が発生していない場合は、DI[2:0]=<0,1,0>が読み出される。
ステップ−1006
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号をスキャンモードである“1”に設定する。
ステップ−1007
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
このように生成したテストパターンを使用した検査方法について、図23のフローチャートと図24のメモリ回路の各端子における波形図を参照しながら用いて説明する。
ステップ−1001
まず、スキャンイネーブル信号(SE信号)をスキャンモードに設定する。すなわち、スキャンモード信号をスキャンモードである“1”に設定する。
ステップ−1002
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<0,1,0>になる。
ステップ−1003
次に、スキャンイネーブル信号SEとテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−1004
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの書き込み動作)。クロックが入力されると、メモリ回路のアドレスAD[2:0]=<0,1,0>のデータDI[2:0]=<0,1,0>が書きこまれる。この時、NRE=0、NWE=1に設定される。
ステップ−1005
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mの読み出し動作)。クロックが入力されると、メモリ回路のアドレス<0,1,0>のデータがメモリ回路から読み出される。リードイネーブルNREに遅延故障が発生している場合、メモリ回路Mへのリード動作が正常に行われず出力設定値FF群32〜34は期待値と異なる値である<1,0,1>になっている。遅延故障が発生していない場合は、DI[2:0]=<0,1,0>が読み出される。
ステップ−1006
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号をスキャンモードである“1”に設定する。
ステップ−1007
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するリードイネーブルラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求め、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。続いて、アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに任意の値を設定するためのデータパターン系列を求め、メモリ回路の制御信号群を前記メモリ回路へ書き込みし、続いて読み出しできる値を設定するための制御値パターン系列(制御値初期化パターンと制御値遷移パターン)を求める。次に、初期値設定スキャンFF群の値によりメモリ回路に書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンFF群の値を期待値として求め、期待値の反転値を求めて出力値スキャンFF群(出力設定値パターン)の値とし、またリードイネーブル初期化パターンとリードイネーブル遷移パターンとアドレスパターン系列とデータパターン系列と制御値初期化パターンと制御値遷移パターンと出力設定値パターンと期待値によりシリアルパターンを生成する。
そして、スキャンモードによりシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群および出力設定値スキャンFF群に設定し、スキャンクロック信号により、テスト対象メモリ回路Mへ初期値パターンで書きこんだアドレスのデータの値を読み出し、出力値設定スキャンFFに取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態6によれば、メモリ回路Mの“nonRead→Read”時のリードイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
[実施の形態7]
実施の形態7として、メモリ回路MのリードイネーブルNREの読み取り可能から読み取り不可への遷移時“READ→nonREAD”における、ライトイネーブルラインのテストパターン生成方法について説明する。なお、実施の形態7におけるライトイネーブルラインのテストパターン生成方法を示す回路図は、実施の形態6(図21)と同一であり、説明を省略する。
[実施の形態7]
実施の形態7として、メモリ回路MのリードイネーブルNREの読み取り可能から読み取り不可への遷移時“READ→nonREAD”における、ライトイネーブルラインのテストパターン生成方法について説明する。なお、実施の形態7におけるライトイネーブルラインのテストパターン生成方法を示す回路図は、実施の形態6(図21)と同一であり、説明を省略する。
リードイネーブルラインのテストパターン生成方法“READ→nonREAD”の処理手順を、図25に示すフローチャートを参照しながら説明する。
ステップ−1201
まず、被検査半導体集積回路のメモリ回路Mに対するリードイネーブルから読出し可能から読出し不可への遷移に対するテスト可能最長パスを選択する。例えば、対象故障として図21のライトイネーブルNREの読出し可能から読出し不可への遷移rise(“0”から“1”への遅延故障)に対するテスト可能最長パスとして、スキャンFF17−G7−G8−G9−NREを選択する。
ステップ−1202
次に、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求める。すなわち、NRE=0となる初期値設定スキャンFF群16〜18に値を生成する。この時の初期値設定スキャンFF群16〜18の値はそれぞれ<x,1,0>となる。
ステップ−1203
次に、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。すなわち、NRE=1となる遷移値設定スキャンFF群4〜6および入力端子X4に値を生成する。この時の遷移値設定スキャンFF群4〜6の値および入力端子X4の値はそれぞれ<1,1,0,0>となる。
ステップ−1204
次に、初期化パターンでメモリ回路Mを読み出すための第1のメモリ初期化アドレスを求める。例えば、メモリ回路Mを初期化するための第1のメモリ初期化アドレスであるAD[2:0]=<0,1,0>を求める。
ステップ−1205
次に、遷移パターンでメモリ回路Mを読み出すための第1のメモリ初期化アドレスと異なる値である第2のメモリ初期化アドレスを求める。例えば、第1のメモリ初期化アドレスと異なる第2のメモリ初期化アドレスであるアドレスAD[2:0]=<1,0,1>を求める。
ステップ−1206
次に、第1のメモリ初期化アドレスでメモリ回路Mに書き込むためのデータである第1のメモリ初期化データを求める。例えば、第1のメモリ初期化アドレスであるAD[2:0]=<0,1,0>でメモリ回路Mに書き込む第1のメモリ初期化データであるDI[2:0]=<1,1,1>を求める。
ステップ−1207
次に、第2のメモリ初期化アドレスでメモリ回路Mに書き込むためのデータであり第1のメモリ初期化データと異なる値である第2のメモリ初期化データを求める。例えば、第2のメモリ初期化アドレスであるアドレスAD[2:0]=<1,0,1>でメモリ回路に書き込む第2のメモリ初期化データであるDI[2:0]=<0,0,0>を求める。
ステップ−1208
次に、メモリ回路の制御信号群を前記メモリ回路から読出しができる値を初期値スキャンFFに設定するためのメモリ初期化制御値を求める。すなわち、第1および第2のメモリ初期化アドレスに対してそれぞれ第1および第2のメモリ初期化データを書き込むために、メモリ回路の制御信号群であるNCE、NWEに書き込み動作を許可するためのNCE、NWE=<0,0>を求める。ステップ−1204〜1208によりテスト用経路の第1のメモリ初期化パターンと第2のメモリ初期化パターンが形成される。
ステップ−1209
次に、第1のメモリ初期化パターンのアドレスに書き込んだ第1のメモリ初期化データを読み出すために初期値設定スキャンFF群の値を設定する。第1のメモリ初期化アドレスのデータをメモリ回路Mから読出しが可能になるように、NCE、NWE=<0,1>とする初期値設定スキャンFF11〜15、29〜31に値を生成する。このときの各スキャンFFの値は<1,0、x、1,1,0,1,0>になる。
ステップ−1210
次に、第2メモリ初期化パターンのアドレスに書き込んだ第2のメモリ初期化データを読み出すために遷移値設定スキャンFF群の値を設定する。すなわち、第2のメモリ初期化アドレスのデータをメモリ回路から読出しが可能になるように、NCE、NWE=<0,1>とする遷移値設定スキャンFF1〜3、26〜28及び入力端子X1〜X3に値を生成する。このときの各スキャンFFの値および入力端子の値は<1,0,x,1,0,1,x,1,1>になる。
ステップ−1211
次に、第1のメモリ初期化パターンによりメモリ回路Mに書きこまれる値をステップ−1204で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。すなわち、第1のメモリ初期化アドレスAD[2:0]=<0,1,0>でメモリ回路Mに書き込まれる値<1,1,1>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<1,1,1>になる。このときの値を期待値とする。
ステップ−1212
次に、リードイネーブル初期化パターンとリードイネーブル遷移パターンと初期値設定スキャンFF群の値と遷移値設定スキャンFF群の値と期待値を、スキャンFF群のシリアルパターンとして生成する。
ステップ−1201
まず、被検査半導体集積回路のメモリ回路Mに対するリードイネーブルから読出し可能から読出し不可への遷移に対するテスト可能最長パスを選択する。例えば、対象故障として図21のライトイネーブルNREの読出し可能から読出し不可への遷移rise(“0”から“1”への遅延故障)に対するテスト可能最長パスとして、スキャンFF17−G7−G8−G9−NREを選択する。
ステップ−1202
次に、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求める。すなわち、NRE=0となる初期値設定スキャンFF群16〜18に値を生成する。この時の初期値設定スキャンFF群16〜18の値はそれぞれ<x,1,0>となる。
ステップ−1203
次に、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。すなわち、NRE=1となる遷移値設定スキャンFF群4〜6および入力端子X4に値を生成する。この時の遷移値設定スキャンFF群4〜6の値および入力端子X4の値はそれぞれ<1,1,0,0>となる。
ステップ−1204
次に、初期化パターンでメモリ回路Mを読み出すための第1のメモリ初期化アドレスを求める。例えば、メモリ回路Mを初期化するための第1のメモリ初期化アドレスであるAD[2:0]=<0,1,0>を求める。
ステップ−1205
次に、遷移パターンでメモリ回路Mを読み出すための第1のメモリ初期化アドレスと異なる値である第2のメモリ初期化アドレスを求める。例えば、第1のメモリ初期化アドレスと異なる第2のメモリ初期化アドレスであるアドレスAD[2:0]=<1,0,1>を求める。
ステップ−1206
次に、第1のメモリ初期化アドレスでメモリ回路Mに書き込むためのデータである第1のメモリ初期化データを求める。例えば、第1のメモリ初期化アドレスであるAD[2:0]=<0,1,0>でメモリ回路Mに書き込む第1のメモリ初期化データであるDI[2:0]=<1,1,1>を求める。
ステップ−1207
次に、第2のメモリ初期化アドレスでメモリ回路Mに書き込むためのデータであり第1のメモリ初期化データと異なる値である第2のメモリ初期化データを求める。例えば、第2のメモリ初期化アドレスであるアドレスAD[2:0]=<1,0,1>でメモリ回路に書き込む第2のメモリ初期化データであるDI[2:0]=<0,0,0>を求める。
ステップ−1208
次に、メモリ回路の制御信号群を前記メモリ回路から読出しができる値を初期値スキャンFFに設定するためのメモリ初期化制御値を求める。すなわち、第1および第2のメモリ初期化アドレスに対してそれぞれ第1および第2のメモリ初期化データを書き込むために、メモリ回路の制御信号群であるNCE、NWEに書き込み動作を許可するためのNCE、NWE=<0,0>を求める。ステップ−1204〜1208によりテスト用経路の第1のメモリ初期化パターンと第2のメモリ初期化パターンが形成される。
ステップ−1209
次に、第1のメモリ初期化パターンのアドレスに書き込んだ第1のメモリ初期化データを読み出すために初期値設定スキャンFF群の値を設定する。第1のメモリ初期化アドレスのデータをメモリ回路Mから読出しが可能になるように、NCE、NWE=<0,1>とする初期値設定スキャンFF11〜15、29〜31に値を生成する。このときの各スキャンFFの値は<1,0、x、1,1,0,1,0>になる。
ステップ−1210
次に、第2メモリ初期化パターンのアドレスに書き込んだ第2のメモリ初期化データを読み出すために遷移値設定スキャンFF群の値を設定する。すなわち、第2のメモリ初期化アドレスのデータをメモリ回路から読出しが可能になるように、NCE、NWE=<0,1>とする遷移値設定スキャンFF1〜3、26〜28及び入力端子X1〜X3に値を生成する。このときの各スキャンFFの値および入力端子の値は<1,0,x,1,0,1,x,1,1>になる。
ステップ−1211
次に、第1のメモリ初期化パターンによりメモリ回路Mに書きこまれる値をステップ−1204で設定したアドレスライン値で読み出した時の出力設定値スキャンFF群(出力設定値パターン)の値を期待値として求める。すなわち、第1のメモリ初期化アドレスAD[2:0]=<0,1,0>でメモリ回路Mに書き込まれる値<1,1,1>をDO[2:0]から読み出した値を出力値設定スキャンFF32〜34に設定する。この時の出力値設定スキャンFF32〜34の値は<1,1,1>になる。このときの値を期待値とする。
ステップ−1212
次に、リードイネーブル初期化パターンとリードイネーブル遷移パターンと初期値設定スキャンFF群の値と遷移値設定スキャンFF群の値と期待値を、スキャンFF群のシリアルパターンとして生成する。
このように生成したテストパターンを使用した検査方法について、図25のフローチャートと図26のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−1401
テストモード信号をテストモードに設定する。テストモード信号をテストモードである“0”に設定する。
ステップ−1402
次に、上記ステップ−1204〜ステップ−1207で生成した第1のメモリ初期化パターンおよび第2のメモリ初期化パターンを印加し、メモリ回路の初期化を行う。
ステップ−1401
テストモード信号をテストモードに設定する。テストモード信号をテストモードである“0”に設定する。
ステップ−1402
次に、上記ステップ−1204〜ステップ−1207で生成した第1のメモリ初期化パターンおよび第2のメモリ初期化パターンを印加し、メモリ回路の初期化を行う。
すなわち、まずテスト用経路からメモリ回路Mへ第1のメモリ初期化アドレスパターンおよび第1のメモリ初期化データパターンおよびメモリ初期化制御値によりメモリ回路Mに書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<0,1,0>、DI[2:0]=<1,1,1>になり、メモリ回路のアドレス<0,1,0>にデータ<1,1,1>が書きこまれる。続いて、テスト用経路からメモリ回路へ第2のメモリ初期化アドレスパターンおよび第2のメモリ初期化データパターンおよびメモリ初期化制御値によりメモリ回路Mに書きこみを行う。このときのメモリ回路Mの各端子は、NCE=0,NWE=0,NRE=1,AD[2:0]=<1,0,1>、DI[2:0]=<0,0,0>になり、メモリ回路のアドレス<1,0,1>にデータ<0,0,0>が書きこまれる。
ステップ−1403
次に、スキャンイネーブル信号(SE信号)をスキャンモードの設定する。すなわち、スキャンイネーブル信号をスキャンモードである“1”に設定する。
ステップ−1404
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=1,NRE=0,AD[2:0]=<0,1,0>、DI[2:0]=<x,x,x>になる。
ステップ−1405
次に、スキャンイネーブル信号とテストモード信号を通常動作モードに設定する。スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−1406
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路MおよびスキャンFFにクロックを印加する(メモリ回路Mの読み出し動作)。クロックが入力されると、アドレス<0,1,0>のDO[2:0]=<1,1,1>が出力され、続けてメモリ回路MのアドレスAD[2:0]=<1,0,1>、NRE=1、NWE=1に設定される。
ステップ−1407
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mへのアクセス動作「遅延故障発生時はリード動作が発生」)。クロックが入力されると、リードイネーブルNREに遅延故障が発生している場合、メモリ回路Mへのリード動作が行われ出力設定値FF群32〜34はアドレス<1,0,1>のDO[2:0]=<0,0,0>になる。遅延故障が発生していない場合は、メモリ回路Mへのリード動作は行われずステップ1406で読み出したD0[2:0]=<1,1,1>に対する出力設定値FF群32〜34=<1,1,1>を維持している。
ステップ−1408
次に、スキャンイネーブル信号をスキャンモードに設定する。スキャンイネーブル信号を“1”に設定する。
ステップ−1409
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
ステップ−1403
次に、スキャンイネーブル信号(SE信号)をスキャンモードの設定する。すなわち、スキャンイネーブル信号をスキャンモードである“1”に設定する。
ステップ−1404
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンFFに設定する。スキャンシフト動作で各スキャンFFに値が設定されると、メモリ回路の各端子はNCE=0,NWE=1,NRE=0,AD[2:0]=<0,1,0>、DI[2:0]=<x,x,x>になる。
ステップ−1405
次に、スキャンイネーブル信号とテストモード信号を通常動作モードに設定する。スキャンイネーブル信号を通常モードである“0”に設定する。また、テストモード信号を通常モードである“1”に設定する。
ステップ−1406
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路MおよびスキャンFFにクロックを印加する(メモリ回路Mの読み出し動作)。クロックが入力されると、アドレス<0,1,0>のDO[2:0]=<1,1,1>が出力され、続けてメモリ回路MのアドレスAD[2:0]=<1,0,1>、NRE=1、NWE=1に設定される。
ステップ−1407
次に、テスト対象メモリ回路Mの実動作クロック速度でテスト対象メモリ回路Mおよび各スキャンFFにクロックを印加する(メモリ回路Mへのアクセス動作「遅延故障発生時はリード動作が発生」)。クロックが入力されると、リードイネーブルNREに遅延故障が発生している場合、メモリ回路Mへのリード動作が行われ出力設定値FF群32〜34はアドレス<1,0,1>のDO[2:0]=<0,0,0>になる。遅延故障が発生していない場合は、メモリ回路Mへのリード動作は行われずステップ1406で読み出したD0[2:0]=<1,1,1>に対する出力設定値FF群32〜34=<1,1,1>を維持している。
ステップ−1408
次に、スキャンイネーブル信号をスキャンモードに設定する。スキャンイネーブル信号を“1”に設定する。
ステップ−1409
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するリードイネーブルラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求め、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。続いて、第1のメモリ初期化パターンと第2のメモリ初期化パターンを形成する(アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに任意の値を設定するためのデータパターン系列を求め、データパターン系列をメモリ回路Mへ書き込む制御信号群を求める)。次に、第1のメモリ初期化パターンによりメモリ回路Mに書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンFF群の値を期待値として求める。続いて、第1のメモリ初期化パターンと第2のメモリ初期化パターンによりメモリ回路Mに書きこまれた値を読み出す制御信号群を求め、これら制御信号群を含む初期値設定スキャンFF群の値と遷移値設定スキャンFF群の値と、リードイネーブル初期化パターンとリードイネーブル遷移パターンと期待値によりシリアルパターンを生成する。
そして、テストモードで、第1のメモリ初期化パターンと第2のメモリ初期化パターンをメモリ回路Mに書き込み、スキャンモードでシリアルパターンを遷移値設定スキャンFF群および初期値設定スキャンFF群に設定し、テスト対象メモリ回路Mへ第1のメモリ初期値パターンで書きこんだアドレスのデータの値を読み出し、続けて書き込んだデータを出力値設定スキャンFF群に取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
このように実施の形態7によれば、メモリ回路Mの“Read→nonRead”時のリードイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Mが存在している集積回路(LSI)内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
なお、上記実施の形態1〜7において、データラインまたはアドレスラインまたは制御信号群の値は初期値設定スキャンFFおよび遷移値設定スキャンFFにシリアルパターンを用いてスキャンシフト動作で値を設定しているが、テスト用経路またはメモリテスト回路から設定することも可能である。
また上記実施の形態1〜7において、制御信号群をNCE,NWE,NREとしているが、そのほかの制御端子に関してもメモリ回路の任意のアドレスに書きこめる、またはメモリ回路の任意のアドレスを読み出せる設定にすることで実現可能である。
また、上記実施の形態1〜7では、データアウトの値は、出力設定スキャンFF群にとりこみスキャンシフト動作で出力端子の値を観測し、期待値比較するようにしているが、メモリ回路Mの出力をテスト用経路から観測し期待値比較することまたはテスト回路で期待値比較することも可能である。
また、上記実施の形態1〜7によれば、集積回路(LSI)内のパス上にメモリ回路Mが存在していても、そのパス上の遅延試験を行え、したがって、集積回路(LSI)の動的な動作を保証して製品の信頼性を著しく高めることが可能となるが、従来の技術で記述したような静的な機能テストも併用することにより、回路内の動的な動作保証と静的な動作保証の双方を同時に行って製品の信頼性を飛躍的に向上させることが可能となる。
本発明にかかる半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法は、回路内のパス上にメモリ回路が存在している場合であっても、このパスを試験してその遅延故障を検出でき、したがって回路内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができるという効果を有し、半導体集積回路の新規開発あるいは改善等の用途にも適用できる。
1〜9 スキャン・フリップフロップ
11〜18 スキャン・フリップフロップ
20〜34 スキャン・フリップフロップ
S1〜S10 セレクタ回路
X1〜X5 入力端子
X6〜X8 出力端子
11〜18 スキャン・フリップフロップ
20〜34 スキャン・フリップフロップ
S1〜S10 セレクタ回路
X1〜X5 入力端子
X6〜X8 出力端子
Claims (8)
- メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータラインから選択する工程と、
前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うデータライン初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うデータライン遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めたデータライン遷移パターンに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めた制御値パターン系列に対する前記メモリ回路の制御値により、前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、
求めた前記データライン初期化パターンと前記データライン遷移パターンと前記アドレスパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のアドレスラインから選択する工程と、
前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うアドレスライン初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うアドレスライン遷移パターンを求める工程と、
前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値および前記制御値パターン系列に対する前記メモリ回路の制御値により前記メモリ回路への書き込みを行った後に、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、
求めた前記アドレスライン初期化パターンと前記アドレスライン遷移パターンと前記データパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値と異なるアドレスを初期化アドレスとして求める工程と、
前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、
前記初期化アドレスに前記初期化データの書きこみができる前記メモリ回路の制御信号群の値を、初期化制御値として求める工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータアウトラインから対象故障を選択する工程と、
前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行う第1のメモリ初期化データを求める工程と、
前記選択されたテスト可能最長パスの活性化を行う第2のメモリ初期化データを求める工程と、
前記メモリ回路に前記第1のメモリ初期化データを書き込む第1のメモリ初期化アドレスを求める工程と、
前記メモリ回路に前記第2のメモリ初期化データを書き込むアドレスを、前記第1のメモリ初期化データを書き込むアドレスとは異なるアドレスとする第2のメモリ初期化アドレスを求める工程と、
前記メモリ回路に前記第1のメモリ初期化データと前記第2のメモリ初期化データを前記メモリ回路に書き込みができる値に設定するメモリ初期化制御値を求める工程と、
前記第1のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト初期化パターンを求める工程と、
前記第2のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト遷移パターンを求める工程と、
前記データアウト遷移パターンにより活性化されたテスト可能最長パスの終点となる前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
前記データアウト初期化パターンと前記データアウト遷移パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み不可から書き込み可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、
前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル遷移パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
求めた前記ライトイネーブル初期化パターン系列と前記ライトイネーブル遷移パターン系列と前記アドレスパターン系列と前記データパターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、
前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値を初期化アドレスとして求める工程と、
前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、
前記初期化アドレスに前記初期化データを前記メモリ回路に書きこみができる前記メモリ回路の制御信号群の値を、メモリ初期化制御値として求める工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み可能から書き込み不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記テスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、
前記テスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するテストパターン系列を求める工程と、
前記ライトイネーブル初期化パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第1のメモリ初期化データを求める工程と、
前記ライトイネーブル遷移パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第2のメモリ初期化データを、前記第1のメモリ初期化データと異なる値で求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めた第1のメモリ初期化データに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
求めた前記ライトイネーブル初期化パターンと前記ライトイネーブル遷移パターンと前記アドレスパターン系列と前記第1のメモリ初期化データと前記第2のメモリ初期化データと前記制御値パターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し不可から読出し可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、
前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路への書き込みができる値に設定する制御値初期化パターンを求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路からの読出しができる値に設定する制御値遷移パターンを求める工程と、
前記データパターン系列に対する前記メモリ回路のデータラインの値および前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記リードイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
前記期待値と異なる値を出力設定値パターンとして求める工程と、
前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記アドレスパターン系列と前記データパターン系列と前記制御値初期化パターンと前記制御値遷移パターンと前記出力設定値パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し可能から読出し不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、
前記テスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める生成工程と、
前記求めたリードイネーブル初期化パターンに対応する所定の第1のメモリ初期化アドレスを求める工程と、
前記求めたリードイネーブル遷移パターンに対応する第2のメモリ初期化アドレスを、第1のメモリ初期化アドレスと異なる値で求める工程と、
前記求めた第1のメモリ初期化アドレスにおいて前記メモリ回路へ所定のデータ書きこむための第1のメモリ初期化データを求める工程と、
前記求めた第2のメモリ初期化アドレスにおいて前記メモリ回路へ書き込む第2のメモリ初期化データを、前記第1のメモリ初期化データとは異なる値で求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に前記第1のメモリ初期化データおよび前記第2のメモリ初期化データを書き込みができる値に設定するメモリ初期化制御値パターン系列を求める工程と、
前記メモリ回路に書き込んだ第1のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する初期値スキャン・フリップフロップ群の値を求める工程と、
前記メモリ回路に書き込んだ第2のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する遷移値スキャン・フリップフロップ群の値を求める工程と、
前記メモリ回路に書き込んだデータを前記初期値スキャン・フリップフロップ群の値により読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
求めた前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記初期値スキャン・フリップフロップ群の値と前記遷移値スキャン・フリップフロップ群の値と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。 - メモリ回路とメモリテスト回路とこれらメモリ回路およびメモリテスト回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障の有無を検査する検査方法であって、
メモリ初期化データを前記メモリテスト回路から前記メモリ回路へ印加する工程と、
前記初期値設定スキャン・フリップフロップ群と遷移値設定スキャン・フリップフロップ群と出力値設定スキャン・フリップフロップ群に、テストパターンを設定する工程と、
前記メモリ回路および前記スキャン・フリップフロップ群へ前記メモリ回路の実動作速度でクロックを印加する工程と、
前記出力値設定スキャン・フリップフロップ群の値を読み出す工程と、
を有することを特徴とする半導体集積回路の遅延故障検査方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004009929A JP2005201829A (ja) | 2004-01-19 | 2004-01-19 | 半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004009929A JP2005201829A (ja) | 2004-01-19 | 2004-01-19 | 半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005201829A true JP2005201829A (ja) | 2005-07-28 |
Family
ID=34822801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004009929A Pending JP2005201829A (ja) | 2004-01-19 | 2004-01-19 | 半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005201829A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008268185A (ja) * | 2007-03-22 | 2008-11-06 | Nec Electronics Corp | テスト回路、パタン生成装置、及びパタン生成方法 |
KR20160116931A (ko) * | 2015-03-31 | 2016-10-10 | (주)피델릭스 | 테스트 효율이 향상되는 반도체 메모리 장치 |
-
2004
- 2004-01-19 JP JP2004009929A patent/JP2005201829A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008268185A (ja) * | 2007-03-22 | 2008-11-06 | Nec Electronics Corp | テスト回路、パタン生成装置、及びパタン生成方法 |
KR20160116931A (ko) * | 2015-03-31 | 2016-10-10 | (주)피델릭스 | 테스트 효율이 향상되는 반도체 메모리 장치 |
KR101705589B1 (ko) | 2015-03-31 | 2017-04-04 | (주)피델릭스 | 테스트 효율이 향상되는 반도체 메모리 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200424842A (en) | Method and apparatus for testing embedded cores | |
US20070266278A1 (en) | Method for at-speed testing of memory interface using scan | |
US8645778B2 (en) | Scan test circuitry with delay defect bypass functionality | |
US20050204239A1 (en) | Method for testing semiconductor integrated circuit | |
JP2006236551A (ja) | テスト機能を有する半導体集積回路および製造方法 | |
US20030074616A1 (en) | ASIC BIST controller employing multiple clock domains | |
US20130275824A1 (en) | Scan-based capture and shift of interface functional signal values in conjunction with built-in self-test | |
JP2010256130A (ja) | 半導体集積回路、および半導体集積回路のテスト方法 | |
US20030074619A1 (en) | Memory bist employing a memory bist signature | |
EP1302777A2 (en) | Dual mode ASIC BIST Controller | |
JP2005332555A (ja) | テスト回路、テスト方法、及び半導体集積回路装置 | |
US7484154B2 (en) | Semiconductor integrated circuit, method for testing semiconductor integrated circuit, and computer readable medium for the same | |
JP2010102791A (ja) | 半導体装置およびそのテスト方法 | |
US20030074617A1 (en) | ASIC BIST employing stored indications of completion | |
US20030074620A1 (en) | Configurable asic memory bist controller employing multiple state machines | |
JP2008505310A (ja) | 回路装置、及び、前記回路装置に設けられたアプリケーション回路の試験方法 | |
JP2006048754A (ja) | 半導体装置 | |
JP2011099835A (ja) | スキャンテスト回路及びスキャンテスト方法 | |
JP2001297598A (ja) | 半導体集積回路装置、及び半導体集積回路装置の自己テスト方法 | |
JP2007272982A (ja) | 半導体記憶装置およびその検査方法 | |
JP2005201829A (ja) | 半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法 | |
JP4176944B2 (ja) | 半導体集積回路及び記録媒体 | |
JP4622443B2 (ja) | 半導体集積回路 | |
JP2005309787A (ja) | 中央演算処理装置及びマイクロコンピュータ | |
KR100684548B1 (ko) | 자체 기능 테스트 가능한 시스템 온 칩 및 그 기능 테스트방법 |