(57)【要約】【課題】  メモリ回路を含む半導体集積回路の各パスの動的な試験を行うことが可能となるテストパターン生成方法を提供することを目的とする。【解決手段】  メモリ回路のデータラインから対象故障を選択（ステッフ゜-101）し、選択した対象故障に対応するテスト可能最長パスを選択（ステッフ゜-102）し、テスト可能最長パスの初期化パターン（ステッフ゜-103）と遷移パターン（ステッフ゜-104）を求め、続いてアドレスラインの初期化パターン（ステッフ゜-105）と遷移パターン（ステッフ゜-106）を求め、制御信号群の初期化パターン（ステッフ゜-107）と遷移パターン（ステッフ゜-108）を求め、メモリ回路に書きこまれた値を出力設定値スキャンＦＦ群に読み出した値を期待値として求め（ステッフ゜-109）、上記ステップ−103〜109で求めたパターンをシリアルパターンとして生成する（ステッフ゜-110）。【選択図】      図３
2005201829.tif 000002
【特許請求の範囲】
【請求項１】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータラインから選択する工程と、
前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うデータライン初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うデータライン遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めたデータライン遷移パターンに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めた制御値パターン系列に対する前記メモリ回路の制御値により、前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、
求めた前記データライン初期化パターンと前記データライン遷移パターンと前記アドレスパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項２】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のアドレスラインから選択する工程と、
前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うアドレスライン初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うアドレスライン遷移パターンを求める工程と、
前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値および前記制御値パターン系列に対する前記メモリ回路の制御値により前記メモリ回路への書き込みを行った後に、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、
求めた前記アドレスライン初期化パターンと前記アドレスライン遷移パターンと前記データパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値と異なるアドレスを初期化アドレスとして求める工程と、
前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、
前記初期化アドレスに前記初期化データの書きこみができる前記メモリ回路の制御信号群の値を、初期化制御値として求める工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項３】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータアウトラインから対象故障を選択する工程と、
前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行う第１のメモリ初期化データを求める工程と、
前記選択されたテスト可能最長パスの活性化を行う第２のメモリ初期化データを求める工程と、
前記メモリ回路に前記第１のメモリ初期化データを書き込む第１のメモリ初期化アドレスを求める工程と、
前記メモリ回路に前記第２のメモリ初期化データを書き込むアドレスを、前記第１のメモリ初期化データを書き込むアドレスとは異なるアドレスとする第２のメモリ初期化アドレスを求める工程と、
前記メモリ回路に前記第１のメモリ初期化データと前記第２のメモリ初期化データを前記メモリ回路に書き込みができる値に設定するメモリ初期化制御値を求める工程と、
前記第１のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト初期化パターンを求める工程と、
前記第２のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト遷移パターンを求める工程と、
前記データアウト遷移パターンにより活性化されたテスト可能最長パスの終点となる前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
前記データアウト初期化パターンと前記データアウト遷移パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項４】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み不可から書き込み可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、
前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル遷移パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
求めた前記ライトイネーブル初期化パターン系列と前記ライトイネーブル遷移パターン系列と前記アドレスパターン系列と前記データパターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、
前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値を初期化アドレスとして求める工程と、
前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、
前記初期化アドレスに前記初期化データを前記メモリ回路に書きこみができる前記メモリ回路の制御信号群の値を、メモリ初期化制御値として求める工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項５】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み可能から書き込み不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記テスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、
前記テスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するテストパターン系列を求める工程と、
前記ライトイネーブル初期化パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第１のメモリ初期化データを求める工程と、
前記ライトイネーブル遷移パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第２のメモリ初期化データを、前記第１のメモリ初期化データと異なる値で求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、
前記求めた第１のメモリ初期化データに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
求めた前記ライトイネーブル初期化パターンと前記ライトイネーブル遷移パターンと前記アドレスパターン系列と前記第１のメモリ初期化データと前記第２のメモリ初期化データと前記制御値パターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項６】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し不可から読出し可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、
前記選択されたテスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める工程と、
前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、
前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路への書き込みができる値に設定する制御値初期化パターンを求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路からの読出しができる値に設定する制御値遷移パターンを求める工程と、
前記データパターン系列に対する前記メモリ回路のデータラインの値および前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記リードイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
前記期待値と異なる値を出力設定値パターンとして求める工程と、
前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記アドレスパターン系列と前記データパターン系列と前記制御値初期化パターンと前記制御値遷移パターンと前記出力設定値パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項７】
メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し可能から読出し不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、
前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、
前記テスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める生成工程と、
前記求めたリードイネーブル初期化パターンに対応する所定の第１のメモリ初期化アドレスを求める工程と、
前記求めたリードイネーブル遷移パターンに対応する第２のメモリ初期化アドレスを、第１のメモリ初期化アドレスと異なる値で求める工程と、
前記求めた第１のメモリ初期化アドレスにおいて前記メモリ回路へ所定のデータ書きこむための第１のメモリ初期化データを求める工程と、
前記求めた第２のメモリ初期化アドレスにおいて前記メモリ回路へ書き込む第２のメモリ初期化データを、前記第１のメモリ初期化データとは異なる値で求める工程と、
前記メモリ回路の制御信号群を前記メモリ回路に前記第１のメモリ初期化データおよび前記第２のメモリ初期化データを書き込みができる値に設定するメモリ初期化制御値パターン系列を求める工程と、
前記メモリ回路に書き込んだ第１のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する初期値スキャン・フリップフロップ群の値を求める工程と、
前記メモリ回路に書き込んだ第２のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する遷移値スキャン・フリップフロップ群の値を求める工程と、
前記メモリ回路に書き込んだデータを前記初期値スキャン・フリップフロップ群の値により読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、
求めた前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記初期値スキャン・フリップフロップ群の値と前記遷移値スキャン・フリップフロップ群の値と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、
を有することを特徴とする半導体集積回路の遅延故障テストパターン生成方法。
【請求項８】
メモリ回路とメモリテスト回路とこれらメモリ回路およびメモリテスト回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障の有無を検査する検査方法であって、
メモリ初期化データを前記メモリテスト回路から前記メモリ回路へ印加する工程と、
前記初期値設定スキャン・フリップフロップ群と遷移値設定スキャン・フリップフロップ群と出力値設定スキャン・フリップフロップ群に、テストパターンを設定する工程と、
前記メモリ回路および前記スキャン・フリップフロップ群へ前記メモリ回路の実動作速度でクロックを印加する工程と、
前記出力値設定スキャン・フリップフロップ群の値を読み出す工程と、
を有することを特徴とする半導体集積回路の遅延故障検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ回路を含む半導体集積回路の試験に用いられるテストパターン生成方法、特にメモリ周辺回路内のパス遅延故障を検出するためのテストパターン生成方法、および生成したテストパターンを使用した検査方法に関するものである。
【背景技術】
【０００２】
従来のメモリ回路の実動作テストは、図２８に示すようにメモリＭへの入力経路上およびメモリ回路Ｍからの出力経路上に、論理回路部ＣＣの機能経路（通常動作経路）とテスト用経路（テスト用ＡＤ，テスト用ＤＩ，テスト用ＮＣＥ，テスト用ＮＲＥ，テスト用ＮＷＥ）を切替えることが出来る付加回路（セレクタＳ）を設け、セレクタＳによりテスト経路を選択し、メモリＢＩＳＴまたは外部からのダイレクトアクセスによって前記テスト経路からメモリ回路Ｍへテスト用パターンを印加することで行われている。図２８に示す半導体集積回路は、論理回路部の一部のフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、メモリ回路Ｍに試験用の各値の設定を行うスキャン・フリップフロップ群（ＳＦＦ群）と、メモリ回路Ｍの出力を受ける出力値設定スキャン・フリップフロップ群（出力値設定ＳＦＦ群）を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能としている。しかし、上記テストでは、ＳＦＦ群からメモリ回路Ｍへの経路およびメモリ回路Ｍから出力値設定ＳＦＦ群への経路は試験の対象外となっていた。
【０００３】
そこで、このような経路を含めたメモリ回路の試験を行うことを可能とした試験方法が開発されている。すなわち、検査対象となる回路の入力端子から検査対象回路に内蔵されたメモリ回路のアドレス入力端子に至る入力パスとメモリ回路のデータ出力端子から検査対象回路の出力ピンに至る出力パスを確保し、検査対象回路の入力端子から入力端子を介して内蔵のメモリ回路のアドレス入力端子に与えられるメモリ読出しアドレスを切替え、内蔵メモリの読出しアドレスが切替えられてから予め設定された時間が経過するまでに出力ピンの信号値が変化したか否かを調べることでメモリの試験（遅延故障テスト）を行っている（例えば、特許文献１参照）。
また集積回路内のパス遅延故障を試験するためには、テストパターンを形成する必要がある。このような集積回路内のパス遅延故障を試験するためのテストパターン系列（一般に、遅延故障を試験するためには２つのテストパターンｖ１とｖ２が必要であり、テストパターンｖ２は図２９に示すように組合せ回路を２時刻展開した回路でのテストパターン生成が必要であり、これら２つのテストパターンはテストパターン系列と呼ばれる）は、図３０に示す経路活性化表や図３１に示す含意表や図３２に示す５値論理にしたがって、被検査回路（図２８，２９の論理回路部ＣＣ）内の各信号線に上記論理値を割り当てることによって生成されている。図３２に示すように、図３０と図３１に示すＳ０はパターンｖ１とｖ２の何でも“０”であり、Ｓ１はパターンｖ１とｖ２の何でも“１”であり、Ｕ０はパターンｖ１で“ｘ”、パターンｖ２で“０”であり、Ｕ１はパターンｖ１で“ｘ”、パターンｖ２で“１”であり、ｘｘはｖ１とｖ２の何れも“ｘ”であることを示す。
【０００４】
図３０（ａ）はＡＮＤゲートの一方の入力が“０”から“１”に変化した時に、出力の状態が変化する、つまり回路を活性化するのに必要な他方の入力信号値を示しており、この場合は“Ｕ１”にすればよい。また、図３０（ｂ）に示すようにＯＲゲートの一方の入力が“１”から“０”に変化する場合は、出力の状態を変化させる（回路を活性化する）ために他方の入力は “Ｕ０”にすればよい。図３０（ｃ）にＡＮＤゲートまたはＮＡＮＤゲート、およびＯＲゲートまたはＮＯＲゲートの各一方の入力が“０”から“１”に立上った場合と、“１”から“０”に立下った場合における、これらゲートを活性化するのに必要な他方の入力信号値をそれぞれ示す。
【０００５】
図３１（ａ）はＡＮＤゲートの二つの入力端子ｘ1 ，ｘ2 の各入力がそれぞれＳ０，Ｕ０，Ｓ１，Ｕ１，ＸＸの何れかとなった場合の各組み合せにおける出力の状態を示している。例えばｘ1 がＳ０，ｘ2 がＵ０のとき、パターンｖ１＝＜０，ｘ＞，パターンｖ２＝＜０，０＞であるから出力は＜０，０＞＝Ｓ０となることを示している。また図３１（ｂ）はＮＯＲゲートの二つの入力端子ｘ1 ，ｘ2 の各入力がそれぞれＳ０，Ｕ０，Ｓ１，Ｕ１，ＸＸの何れかとなった場合の各組合せにおける出力の状態を示し、図３１（ｃ）はインバータの入力端子ｘの入力がＳ０，Ｕ０，Ｓ１，Ｕ１，ＸＸである場合の出力端子ｚの出力がどのようになるかを示している。
【０００６】
スキャンＦＦ群を使用してパス遅延故障を試験する集積回路の一例を図３３に示す。図３３の集積回路は、スキャンＦＦ１〜９により遷移値設定ＳＦＦ群が形成され、スキャンＦＦ１１〜１８により初期値設定ＳＦＦ群が形成され、またこれらスキャンＦＦ１〜９，１１〜１８はシリアルに接続され、スキャンイネーブル信号がスキャンモード時はスキャンシフト動作を行い、通常モード時は通常動作を行う構成になっている。
【０００７】
図３３に示すように、スキャンＦＦ１の出力とスキャンＦＦ２の出力はＡＮＤゲートｇ１に供給され、入力端子Ｘ１とスキャンＦＦ３の出力がＡＮＤゲートｇ２に供給され、スキャンＦＦ４の出力とスキャンＦＦ５の出力はＡＮＤゲートｇ４に供給され、入力端子Ｘ３とスキャンＦＦ６の出力がＡＮＤゲートｇ６に供給され、スキャンＦＦ７の出力と入力端子Ｘ４がＡＮＤゲートｇ７に供給され、入力端子Ｘ５とスキャンＦＦ９の出力はＡＮＤゲートｇ９の供給され、ＡＮＤゲートｇ１の出力とＡＮＤゲートｇ２の出力はＯＲゲートｇ３に供給され、ＯＲゲートｇ３の出力はスキャンＦＦ１１の入力に供給され、ＡＮＤゲートｇ２の出力はスキャンＦＦ１２の入力に供給され、入力端子Ｘ２とＡＮＤゲートｇ４の出力はＯＲゲートｇ５に供給され、ＯＲゲートｇ５の出力はスキャンＦＦ１３の入力に供給され、ＡＮＤゲートｇ４の出力はスキャンＦＦ１４の入力に供給され、ＡＮＤゲートｇ６の出力とＡＮＤゲートｇ７の出力はＯＲゲートｇ８に供給され、ＡＮＤゲートｇ７の出力はスキャンＦＦ１６の入力に供給され、ＯＲゲートｇ８の出力はスキャンＦＦ１５の入力に供給され、スキャンＦＦ８の出力とＡＮＤゲートｇ９の出力はＯＲゲートｇ１０に供給され、ＯＲゲートｇ１０の出力はスキャンＦＦ１７の入力に供給され、ＡＤＮゲートｇ９の出力はスキャンＦＦ１８の入力に供給される。
【０００８】
さらに、スキャンＦＦ１３の出力はＮＯＴゲートＧ２に供給され、スキャンＦＦ１２の出力とＮＯＴゲートＧ２の出力はＮＡＮＤゲートＧ１に供給され、ＮＡＮＤゲートＧ１とスキャンＦＦ１４の出力はＮＡＮＤゲートＧ３に供給され、スキャンＦＦ１７の出力はＮＯＴゲートＧ７に供給され、スキャンＦＦ１６の出力とＮＯＴゲートＧ７の出力はＮＡＮＤゲートＧ８に供給され、ＮＡＮＤゲートＧ８の出力とスキャンＦＦ１８の出力はＮＡＮＤゲートＧ９に供給され、スキャンＦＦ１１の出力とＮＡＮＤゲートＧ３の出力はＮＯＲゲートＧ４に供給され、スキャンＦＦ１５の出力とＮＡＮＤゲートＧ３の出力はＮＡＮＤゲートＧ５に供給され、ＮＯＲゲートＧ４の出力とＮＡＮＤゲートＧ５の出力はＮＯＲゲートＧ６に供給され、ＮＯＲゲートＧ６の出力は外部端子Ｘ６に供給され、ＮＡＮＤゲートＧ５の出力は外部端子Ｘ７に供給され、ＮＡＮＤゲートＧ９の出力は外部端子Ｘ８に供給される。
【０００９】
このような回路において図中に太線で示すパス、つまりスキャンＦＦ１３−Ｇ２−Ｇ１−Ｇ３−Ｇ５−Ｘ７における“０”から“１”への立ちあがり遷移のパス遅延故障に対するテストパターンを生成するには、まず、図３３に示すようにこの被試験パス上の各信号線に遷移信号を設定し、つぎに図３４（ａ）に示すようにパス上の論理ゲートのパス上にない入力信号線（オフインプット；off-inputs）に図３０（ｃ）に示した経路活性化表を用いてパスの各ゲートを活性化する信号値を設定する。すなわち、スキャンＦＦ１１〜１８に初期化パターンを形成する。初期化パターンは、＜１，１，０，０，ｘ，１，ｘ，ｘ，ｘ＞となる。次に、図３４（ｂ）に示すようにスキャンＦＦ１１〜１８に遷移パターンを生成するためにスキャンＳＦＦ１１〜１８を疑似外部出力とする組合せ回路の各信号線の値を決定する。すなわち、スキャンＦＦ１〜９，Ｘ１〜５に遷移パターンを形成する。遷移パターンは、＜ｘ，ｘ，１，１，１，１，ｘ，ｘ，ｘ，１，ｘ，１，ｘ，ｘ＞となる。よって図３３の例では、図中に太線で示すパスの遅延故障を試験するテストパターン系列は、＜スキャンＦＦ１〜９，スキャンＦＦ１１〜１８、Ｘ１〜５＞＝＜ｘ，ｘ，１，１，１，１，ｘ，ｘ，ｘ，１，１，０，０，ｘ，１，ｘ，ｘ，ｘ，１，ｘ，１，ｘ，ｘ＞と求められる。この場合は“ｘ”は、“０”または“１”の任意の値を割り当てることが可能である（例えば、非特許文献１参照）。
【特許文献１】特開平５−１２８０１５公報
【非特許文献１】Angela Krstic/Kwang-Ting (Tim) Cheng,“Delay Fault Testing for VLSI Circuits”,（出版社；Kluwer Academic Publishers）,（出版日；1998年９月１日）,（引用ページ；pp.101-130）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の図２８に示す機能経路（通常動作経路）とテスト経路を切替えてメモリ回路単体の試験を行う方法では、メモリ部分が試験対象の回路から切り出されるので、実際にそのメモリが使用されるパスが試験されず、しかも、テスト内容が縮退故障などの静的なものに限られるので、ディレイ故障などの動的な故障を検出できなかった。したがって、メモリのアドレス入力，データ入力，データ出力，制御入力のパスについて動的な試験を行って製品の動作を完全に保証することが不可能であった。
【００１１】
また特許文献１に記載された方法では、上記入力パスと出力パスを確保することが困難であり、さらに入力パス、メモリ、出力パスのいずれかに実際に遅延故障が発生しているのかを判定することが困難であった。
【００１２】
また、非特許文献１に記載された方法では、選択されたパスの遅延故障を検出できるが、このような検出方法だけでは、メモリ回路のすべてのアドレス入力やデータ入力やメモリ制御信号群の遅延故障を検査するためのテストパターンを生成することができず、すべての遅延故障を確実に検査することはできない。
【００１３】
本発明は、上記従来の課題を解決するものであり、メモリ回路を含む半導体集積回路の各パスの動的な試験を行うことが可能となるテストパターン生成方法およびこの生成したテストパターンを使用した検査方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、請求項１に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータラインから選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うデータライン初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うデータライン遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータライン遷移パターンに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めた制御値パターン系列に対する前記メモリ回路の制御値により、前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、求めた前記データライン初期化パターンと前記データライン遷移パターンと前記アドレスパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
【００１５】
これにより、メモリ回路のデータラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項２に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のアドレスラインから選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うアドレスライン初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うアドレスライン遷移パターンを求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリに書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値および前記制御値パターン系列に対する前記メモリ回路の制御値により前記メモリ回路への書き込みを行った後に、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を前記対象故障の期待値として求める工程と、求めた前記アドレスライン初期化パターンと前記アドレスライン遷移パターンと前記データパターン系列と前記制御値パターン系列と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程と、前記アドレスライン遷移パターンに対する前記メモリ回路のアドレスラインの値と異なるアドレスを初期化アドレスとして求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、前記初期化アドレスに前記初期化データの書きこみができる前記メモリ回路の制御信号群の値を、初期化制御値として求める工程とを有することを特徴としている。
【００１６】
これにより、メモリ回路のアドレスラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項３に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう対象故障を前記メモリ回路のデータアウトラインから対象故障を選択する工程と、前記選択された対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行う第１のメモリ初期化データを求める工程と、前記選択されたテスト可能最長パスの活性化を行う第２のメモリ初期化データを求める工程と、前記メモリ回路に前記第１のメモリ初期化データを書き込む第１のメモリ初期化アドレスを求める工程と、前記メモリ回路に前記第２のメモリ初期化データを書き込むアドレスを、前記第１のメモリ初期化データを書き込むアドレスとは異なるアドレスとする第２のメモリ初期化アドレスを求める工程と、前記メモリ回路に前記第１のメモリ初期化データと前記第２のメモリ初期化データを前記メモリ回路に書き込みができる値に設定するメモリ初期化制御値を求める工程と、前記第１のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト初期化パターンを求める工程と、前記第２のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群の値からなるデータアウト遷移パターンを求める工程と、前記データアウト遷移パターンにより活性化されたテスト可能最長パスの終点となる前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、前記データアウト初期化パターンと前記データアウト遷移パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
【００１７】
これにより、メモリ回路のデータアウトラインから接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
また請求項４に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み不可から書き込み可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めたデータパターン系列に対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル遷移パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記ライトイネーブル初期化パターン系列と前記ライトイネーブル遷移パターン系列と前記アドレスパターン系列と前記データパターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程と、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値を初期化アドレスとして求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値と異なるデータを初期化データとして求める工程と、前記初期化アドレスに前記初期化データを前記メモリ回路に書きこみができる前記メモリ回路の制御信号群の値を、メモリ初期化制御値として求める工程とを有することを特徴としている。
【００１８】
これにより、メモリ回路のライトイネーブルラインに接続されるパスの書き込み不可から書き込み可能に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
【００１９】
また請求項５に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の書き込み制御信号の書き込み可能から書き込み不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記テスト可能最長パスの初期化を行うライトイネーブル初期化パターンを求める工程と、前記テスト可能最長パスの活性化を行うライトイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するテストパターン系列を求める工程と、前記ライトイネーブル初期化パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第１のメモリ初期化データを求める工程と、前記ライトイネーブル遷移パターンと前記アドレスパターン系列に対応する前記メモリ回路に所定の値に書きこむ第２のメモリ初期化データを、前記第１のメモリ初期化データと異なる値で求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に書き込みができる値に設定する制御値パターン系列を求める工程と、前記求めた第１のメモリ初期化データに対する前記メモリ回路のデータラインの値および前記求めたアドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記求めたライトイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記ライトイネーブル初期化パターンと前記ライトイネーブル遷移パターンと前記アドレスパターン系列と前記第１のメモリ初期化データと前記第２のメモリ初期化データと前記制御値パターン系列と前記期待値を、前記フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
【００２０】
これにより、メモリ回路のライトイネーブルラインに接続されるパスの書き込み可能から書き込み不可に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
【００２１】
また請求項６に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し不可から読出し可能に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、前記選択されたテスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める工程と、前記メモリ回路のアドレスラインを所定の値に設定するアドレスパターン系列を求める工程と、前記メモリ回路のデータラインを所定の値に設定するデータパターン系列を求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路への書き込みができる値に設定する制御値初期化パターンを求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記データパターン系列に対する前記メモリ回路のデータラインの値による前記メモリ回路からの読出しができる値に設定する制御値遷移パターンを求める工程と、前記データパターン系列に対する前記メモリ回路のデータラインの値および前記アドレスパターン系列に対する前記メモリ回路のアドレスラインの値および前記リードイネーブル初期化パターンにより前記メモリ回路への書き込みを行った後に、前記アドレスパターン系列に対する前記メモリ回路のアドレスラインのアドレスの値を読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、前記期待値と異なる値を出力設定値パターンとして求める工程と、前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記アドレスパターン系列と前記データパターン系列と前記制御値初期化パターンと前記制御値遷移パターンと前記出力設定値パターンと前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
【００２２】
これにより、メモリ回路のリードイネーブルラインに接続されるパスの読出し不可から読出し可能に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
【００２３】
また請求項７に記載の発明は、メモリ回路とこのメモリ回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障を検出するため、前記スキャン・フリップフロップ群のテストパターンを生成する方法であって、
前記テストパターンの生成をおこなう前記メモリ回路の読出し制御信号の読出し可能から読出し不可に遷移する対象故障に対応するテスト可能最長パスを選択する工程と、前記選択されたテスト可能最長パスの初期化を行うリードイネーブル初期化パターンを求める工程と、前記テスト可能最長パスの活性化を行うリードイネーブル遷移パターンを求める生成工程と、前記求めたリードイネーブル初期化パターンに対応する所定の第１のメモリ初期化アドレスを求める工程と、前記求めたリードイネーブル遷移パターンに対応する第２のメモリ初期化アドレスを、第１のメモリ初期化アドレスと異なる値で求める工程と、前記求めた第１のメモリ初期化アドレスにおいて前記メモリ回路へ所定のデータ書きこむための第１のメモリ初期化データを求める工程と、前記求めた第２のメモリ初期化アドレスにおいて前記メモリ回路へ書き込む第２のメモリ初期化データを、前記第１のメモリ初期化データとは異なる値で求める工程と、前記メモリ回路の制御信号群を前記メモリ回路に前記第１のメモリ初期化データおよび前記第２のメモリ初期化データを書き込みができる値に設定するメモリ初期化制御値パターン系列を求める工程と、前記メモリ回路に書き込んだ第１のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する初期値スキャン・フリップフロップ群の値を求める工程と、前記メモリ回路に書き込んだ第２のメモリ初期化データを読み出すためのアドレスと前記メモリ回路の制御信号群を設定する遷移値スキャン・フリップフロップ群の値を求める工程と、前記メモリ回路に書き込んだデータを前記初期値スキャン・フリップフロップ群の値により読み出すときに、前記メモリ回路より前記出力値設定スキャン・フリップフロップ群が受ける値を期待値として求める工程と、求めた前記リードイネーブル初期化パターンと前記リードイネーブル遷移パターンと前記初期値スキャン・フリップフロップ群の値と前記遷移値スキャン・フリップフロップ群の値と前記期待値を、前記スキャン・フリップフロップ群のシリアルパターンとして生成する工程とを有することを特徴としている。
【００２４】
これにより、メモリ回路のリードイネーブルラインに接続されるパスの読出し可能から読出し不可に遷移するときの遅延故障を検出するためテストパターンを形成でき、遅延故障検査が可能になる。
【００２５】
また請求項８に記載の発明は、メモリ回路とメモリテスト回路とこれらメモリ回路およびメモリテスト回路に接続された論理回路部を備え、前記論理回路部の一部あるいは全てのフリップフロップをスキャン・フリップフロップに置き換え、これらスキャン・フリップフロップにより、前記メモリ回路に初期値の設定を行う初期値設定スキャン・フリップフロップ群と、この初期値設定スキャン・フリップフロップ群を介して前記メモリ回路に遷移値の設定を行う遷移値設定スキャン・フリップフロップ群と、前記メモリ回路の出力を受ける出力値設定スキャン・フリップフロップ群を形成し、これらスキャン・フリップフロップ群のスキャン・フリップフロップをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能とした半導体集積回路において、前記論理回路部と前記メモリ回路のパスの遅延故障の有無を検査する検査方法であって、
メモリ初期化データを前記メモリテスト回路から前記メモリ回路へ印加する工程と、前記初期値設定スキャン・フリップフロップ群と遷移値設定スキャン・フリップフロップ群と出力値設定スキャン・フリップフロップ群に、テストパターンを設定する工程と、前記メモリ回路および前記スキャン・フリップフロップ群へ前記メモリ回路の実動作速度でクロックを印加する工程と、前記出力値設定スキャン・フリップフロップ群の値を読み出す工程とを有することを特徴としている。
【００２６】
これにより、上記請求項２に記載の発明または上記請求項３に記載の発明または上記請求項４に記載の発明または上記請求項７に記載の発明で生成したテストパターンを用いて遅延故障検査をすることが可能となる。
【発明の効果】
【００２７】
本発明は、回路内のパス上にメモリ回路が存在している場合であっても、このパスを試験してその遅延故障を検出でき、したがって回路内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づいて説明する。
まず、明細書で使用する用語の定義を行う。
「パス、パス遅延時間、パス遅延故障」
回路における信号遷移経路をパスと呼ぶ。パスの入力信号線から出力信号線まで信号が遷移する時間をパス遅延時間と呼び、パス遅延時間が所定の値より大きくなると回路は正常に動作しなくなる。これをパス遅延故障と呼ぶ。
「最長パス」
最長パスとは、信号遷移時間が最長であるパスを示す。例えば、メモリ回路ＭのデータラインＤＩ［０］に対する最長パスは、スキャンＦＦの出力または外部入力からメモリ回路ＭのデータラインＤＩ［０］までの信号遷移時間が最長であるパスを示す。同様に、メモリ回路ＭのデータアウトＤＯ［０］に対する最長パスは、メモリ回路ＭのデータアウトＤＯ［０］からスキャンＦＦの入力または外部出力までの信号遷移時間が最長であるパスを示す。
「テスト可能パス」
テスト可能パスとは、上記パス遅延故障に対するテストパターンが生成可能なパスを示す。
【００２９】
次に、本実施の形態における半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法を使用するメモリ回路の一例を、図１に示す。
図１（ａ）に示すように、メモリ回路ＭのアドレスラインはＡＤ［２：０］の３ビット、データラインはＤＩ［２：０］の３ビット、データアウトラインはＤＯ［２：０］の３ビットである。
【００３０】
またチップイネーブル信号ＮＣＥが“０”のとき、メモリ回路Ｍへのアクセスが可能であり、チップイネーブル信号ＮＣＥが“１”のとき、メモリ回路Ｍへのアクセスは禁止となる。またライトイネーブル信号ＮＷＥが“０”のとき、メモリ回路Ｍへのライト動作が可能であり、ライトイネーブル信号ＮＷＥが“１”のとき、メモリ回路Ｍへのライト動作は禁止とする。さらに、リードイネーブル信号ＮＲＥが“０”のとき、メモリ回路Ｍへのリード動作が可能であり、リードイネーブル信号ＮＲＥが“１”のとき、メモリ回路Ｍへのリード動作は禁止とする。
【００３１】
またライトイネーブル信号ＮＷＥが“０”であり、リードイネーブル信号ＮＲＥが“０”の場合はメモリ回路Ｍへのライト動作もリード動作も正しく行うことができないものとし、さらにライトイネーブル信号ＮＷＥが“１”であり、リードイネーブル信号ＮＲＥが“１”の場合は、メモリ回路Ｍへのライト動作もリード動作も行われずデータアウトラインＤＯ［２：０］の出力は、以前の状態を保持するものとしている。
【００３２】
またアドレスラインＡＤ［２：０］とデータラインＤＩ［２：０］と制御信号群（ＮＣＥ，ＮＷＥ，ＮＲＥ）とクロック信号入力ライン（ＣＬＫ）にそれぞれ、通常動作経路とテスト経路を切替えることができるセレクタＳ１〜Ｓ１０が設けられ、これらセレクタＳ１〜Ｓ１０によりメモリテスト回路Ｔが形成されている。クロック信号入力ラインのセレクタＳ１０を除く他のセレクタＳ１〜Ｓ９は、テストモード信号が“Ｌ（０）”のとき、テスト経路が選択される。
【００３３】
クロック信号入力ラインのセレクタＳ１０の制御信号に対して選択されるクロックを図１（ｂ）に示す。テストモード信号が“Ｌ（０）”の場合は、スキャンモード信号（スキャンイネーブル信号）の値に関係なくテスト用クロックが選択され、テストモード信号が“Ｈ（１）”で、かつスキャンモード信号が“Ｌ”の場合は、スキャンクロックが選択され、さらにテストモード信号が“Ｈ”でかつスキャンモード信号が“Ｈ”の場合は、通常動作用クロックが選択される。
【００３４】
以下、本発明の半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法について説明する。
［実施の形態１］
実施の形態１として、メモリ回路Ｍのデータライン（ＤＩ）を検査するテストパターン生成方法について説明する。
【００３５】
図２は、実施の形態１におけるデータラインのテストパターン生成方法を示す回路図である。この図２に示す集積回路は、図１の通常動作経路を成す論理回路部の回路図であり、論理回路部の一部（あるいは全てでもよい）のフリップフロップＦＦをスキャン・フリップフロップ（スキャンＦＦ）に置き換え、これらスキャンＦＦにより、メモリ回路Ｍに初期値の設定を行う初期値設定スキャン・フリップフロップ群（スキャンＦＦ群）と、この初期値設定スキャンＦＦ群を介してメモリ回路Ｍに遷移値の設定を行う遷移値設定スキャン・フリップフロップ群（スキャンＦＦ群）と、メモリ回路Ｍの出力を受ける出力値設定スキャン・フリップフロップ群（スキャンＦＦ群）を形成し、これらスキャンＦＦ群のスキャンＦＦをシリアルに接続して半導体集積回路の外部から回路内の制御・観測を可能としている。
【００３６】
図２に示すように、スキャンＦＦ１の出力とスキャンＦＦ２の出力はＡＮＤゲートｇ１に供給され、入力端子Ｘ１とスキャンＦＦ３の出力がＡＮＤゲートｇ２に供給され、スキャンＦＦ４の出力とスキャンＦＦ５の出力はＡＮＤゲートｇ４に供給され、入力端子Ｘ３とスキャンＦＦ６の出力がＡＮＤゲートｇ６に供給され、スキャンＦＦ８の出力と入力端子Ｘ４がＡＮＤゲートｇ７に供給され、入力端子Ｘ５とスキャンＦＦ９の出力はＡＮＤゲートｇ９の供給される。
【００３７】
さらに、ＡＮＤゲートｇ１の出力とＡＮＤゲートｇ２の出力はＯＲゲートｇ３に供給され、ＯＲゲートｇ３の出力はスキャンＦＦ１１に供給され、ＡＮＤゲートｇ２の出力はスキャンＦＦ１２に供給され、入力端子Ｘ２とＡＮＤゲートｇ４の出力はＯＲゲートｇ５に供給され、ＯＲゲートｇ５の出力はスキャンＦＦ１３に供給され、ＡＮＤゲートｇ４の出力はスキャンＦＦ１４に供給され、ＡＮＤゲートｇ６の出力とＡＮＤゲートｇ７の出力はＯＲゲートｇ８に供給され、ＡＮＤゲートｇ７の出力はスキャンＦＦ１６に供給され、ＯＲゲートｇ８の出力はスキャンＦＦ１５に供給され、スキャンＦＦ８の出力とＡＮＤゲートｇ９の出力はＯＲゲートｇ１０に供給され、ＯＲゲートｇ１０の出力はスキャンＦＦ１７に供給され、ＡＤＮゲートｇ９の出力はスキャンＦＦ１８に供給される。
【００３８】
さらに、スキャンＦＦ１３の出力はＮＯＴゲートＧ２に供給され、スキャンＦＦ１２の出力とＮＯＴゲートＧ２の出力はＮＡＮＤゲートＧ１に供給され、ＮＡＮＤゲートＧ１とスキャンＦＦ１４の出力はＮＡＮＤゲートＧ３に供給され、またスキャンＦＦ１７の出力はＮＯＴゲートＧ７に供給され、スキャンＦＦ１６の出力とＮＯＴゲートＧ７の出力はＮＡＮＤゲートＧ８に供給され、ＮＡＮＤゲートＧ８の出力とスキャンＦＦ１８の出力はＮＡＮＤゲートＧ９に供給され、スキャンＦＦ１１の出力とＮＡＮＤゲートＧ３の出力はＮＯＲゲートＧ４に供給され、スキャンＦＦ１５の出力とＮＡＮＤゲートＧ３の出力はＮＡＮＤゲートＧ５に供給され、ＮＯＲゲートＧ４の出力とＮＡＮＤゲートＧ５の出力はＮＯＲゲートＧ６に供給される。
【００３９】
ＮＯＲゲートＧ６の出力は、テスト用データラインＤＩ［０］（図１）とともにセレクタＳ４に供給され（入力され）、テストモード信号はセレクタＳ４の制御信号として供給され、セレクタＳ４の出力はメモリ回路ＭのデータラインＤＩ［０］に供給される。またＮＡＮＤゲートＧ５は、テスト用データラインＤＩ［１］（図１）はとともにセレクタＳ５に供給され、テストモード信号はセレクタＳ５の制御信号として供給され、セレクタＳ５の出力はメモリ回路ＭのデータラインＤＩ［１］に供給される。さらにＮＡＮＤゲートＧ９の出力は、テスト用データラインＤＩ［２］（図１）とともにセレクタＳ６に供給され、テストモード信号はセレクタＳ６の制御信号として供給され、セレクタＳ６の出力はメモリ回路ＭのデータラインＤＩ［２］に供給される。
【００４０】
またスキャンＦＦ２０の出力はスキャンＦＦ２３に供給され、スキャンＦＦ２３の出力は、テスト用チップイネーブルＮＣＥ（図１）とともにセレクタＳ７に供給され、テストモード信号はセレクタＳ７の制御信号として供給され、セレクタＳ７の出力はメモリ回路ＭのチップイネーブルＮＣＥに供給される。またスキャンＦＦ２１の出力はスキャンＦＦ２４に供給され、スキャンＦＦ２３の出力は、テスト用ライトイネーブルＮＷＥ（図１）とともにセレクタＳ８に供給され、テストモード信号はセレクタＳ８の制御信号として供給され、セレクタＳ８の出力はメモリ回路ＭのライトイネーブルＮＷＥに供給される。さらにスキャンＦＦ２２の出力はスキャンＦＦ２５に供給され、スキャンＦＦ２５の出力は、テスト用リードイネーブルＮＲＥ（図１）とともにセレクタＳ９に供給され、テストモード信号はセレクタＳ９の制御信号として供給され、セレクタＳ９の出力はメモリ回路ＭのリードイネーブルＮＲＥに供給される。
【００４１】
さらにスキャンＦＦ２６の出力はスキャンＦＦ２９に供給され、スキャンＦＦ２９の出力は、テスト用ＡＤ［０］（図１）とともにセレクタＳ１の入力に供給され、テストモード信号はセレクタＳ１の制御信号として供給され、セレクタＳ１の出力はメモリ回路ＭのアドレスラインＡＤ［０］に供給される。またスキャンＦＦ２７の出力はスキャンＦＦ３０に供給され、スキャンＦＦ３０の出力は、テスト用ＡＤ［１］（図１）とともにセレクタＳ２に供給され、テストモード信号はセレクタＳ２の制御信号として供給され、セレクタＳ２の出力はメモリ回路ＭのアドレスラインＡＤ［１］に供給される。さらにスキャンＦＦ２８の出力はスキャンＦＦ３１の入力に供給され、スキャンＦＦ３１の出力は、テスト用ＡＤ［２］（図１）とともにセレクタＳ３に供給され、テストモード信号はセレクタＳ３の制御信号として供給され、セレクタＳ３の出力はメモリ回路ＭのアドレスラインＡＤ［２］に供給される。
【００４２】
また、メモリ回路のデータアウトラインＤＯ［０］はスキャンＦＦ３２の入力に接続され、メモリ回路ＭのデータアウトラインＤＯ［１］はスキャンＦＦ３３の入力に接続され、メモリ回路ＭのデータアウトラインＤＯ［２］はスキャンＦＦ３４の入力に接続される。
【００４３】
また、クロックＣＬＫとテスト用クロックＴＣＬＫとスキャン用クロックＳＣＬＫはそれぞれセレクタ１０の入力に接続され、テストモード信号はセレクタＳ１０の制御信号Ｓ１として接続され、スキャンモード信号（スキャンイネーブル信号）はセレクタＳ１０の制御信号Ｓ２として接続され、セレクタ１０の出力はメモリ回路のＣＬＫに供給される。これらテストモード信号（制御信号Ｓ１）とスキャンモード信号（制御信号Ｓ２）により、上述したように、クロックが選択されてメモリ回路のＣＬＫへ供給される。
【００４４】
また、スキャンＦＦ１〜９，１１〜１８，２０〜３４はスキャンイネーブル信号がスキャンモード時はスキャンシフト動作を行い、通常モード時は通常動作を行う構成になっている。またスキャンＦＦ１〜９とスキャンＦＦ２０〜２２とスキャンＦＦ２６〜２８により遷移値設定ＳＦＦ群が構成され、スキャンＦＦ１１〜１８とスキャンＦＦ２３〜２５とスキャンＦＦ２９〜３１により初期値設定ＳＦＦ群が構成され、スキャンＦＦ３２〜３４により出力値設定ＳＦＦ群が構成されている。
【００４５】
次に、データライン（ＤＩ）を検査するテストパターン生成方法の処理手順を、図３に示すフローチャートを参照しながら説明する。
ステップ−１０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するデータラインＤＩ［２：０］から対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図２のデータラインのＤＩ［１］の遷移ｒｉｓｅ（“０”から“１”への立ちあがり遅延故障）を選択する。
ステップ−１０２
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。例えば、図２の太線で示すテスト可能最長パス、スキャンＦＦ１３−Ｇ２−Ｇ１−Ｇ３−Ｇ５−ＤＩ［１］を選択する。テスト可能最長パスの選択方法は、文献「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.」に示されている方法などを使用することで求められる。
ステップ−１０３
次に、テスト可能最長パスを初期化するための初期値をあたえるデータライン初期化パターン（テストパターン）を求める。すなわち、図２における初期値設定スキャンＦＦ群１１〜１８の値を生成する。このときの初期値設定スキャンＦＦ群１１〜１８の値は、それぞれ＜１，１，０，ｘ，１，ｘ，ｘ，ｘ＞となる。これが、データライン初期化パターンとなる。
ステップ−１０４
続いてテスト可能最長パスを活性化するためのデータライン遷移パターン（テストパターン）を求める。すなわち、図２における遷移値設定スキャンＦＦ群１〜９、および入力端子Ｘ１〜Ｘ５の値を生成する。このときの遷移値設定スキャンＦＦ群１〜９の値および入力端子Ｘ１〜Ｘ５の値はそれぞれ＜ｘ，ｘ，１，１，１，１，ｘ，ｘ，ｘ，１，ｘ，１，ｘ，ｘ＞となる。これが、データライン遷移パターンとなる。
ステップ−１０５
次に、アドレスライン［２：０］に任意の値を設定するための初期値設定スキャンＦＦ群（アドレスライン初期化パターン）の値を求める。例えば、メモリ回路のアドレスを任意の値であるＡＤ［２：０］＝＜０，０，０＞になるように初期値設定スキャンＦＦ２９〜３１の値を生成する。この時の初期値設定スキャンＦＦ２９〜３１の値は＜０，０，０＞になる。
ステップ−１０６
続いて、アドレスラインの初期値設定スキャンＦＦ群の値が変化しないように遷移値設定スキャンＦＦ群（アドレスライン遷移パターン）の値を求める。すなわち、遷移値設定スキャンＦＦ２６〜２８の値を生成する。このときの遷移値設定スキャンＦＦの値は＜０，０，０＞になる。ステップ−１０５，１０６で生成したパターンがアドレスパターン系列になる。
ステップ−１０７
次に、メモリ回路の制御信号群を前記メモリ回路への書き込みが許可される値を設定するための初期値設定スキャンＦＦ群（制御信号群初期化パターン）の値を求める。すなわち、メモリ回路の制御信号群であるＮＣＥ，ＮＷＥ，ＮＲＥに書き込み動作を許可するための値＜０，０，１＞になるように初期値設定スキャンＦＦ２３〜２５の値を生成する。この時の初期値設定スキャンＦＦ２３〜２５の値は＜０，０，１＞になる。
ステップ−１０８
次に、制御信号群の初期値設定スキャンＦＦ群の値が変化しないように遷移値設定スキャンＦＦ群（制御信号群遷移パターン）の値を求める。すなわち、遷移値設定スキャンＦＦ２０〜２２に値を生成する。この時の遷移値設定スキャンＦＦ２０〜２２の値は＜０，０，１＞になる。ステップ−１０７，１０８で生成したパターンが制御値パターン系列になる。
ステップ−１０９
続いて、遷移値設定スキャンＦＦの値によりメモリ回路Ｍに書きこまれた値を、ステップ−１０５で設定したアドレスラインの任意の値で読み出した時の出力設定値スキャンＦＦ群（出力設定値パターン）の値を期待値として求める。例えば、メモリ回路に書きこまれたアドレスＡＤ［２：０］＝＜０，０，０＞を読み出した値ＤＯ［２：０］＝＜０，１，０＞を出力値設定スキャンＦＦ３２〜３４に受けたときの値＜０，１，０＞を期待値とする。
ステップ−１１０
次に、データライン初期化パターンとデータライン遷移パターンとアドレスパターン系列と制御値パターン系列と期待値をシフトパターンとして生成する。すなわち、遷移値設定スキャンＦＦ群の値および初期値設定スキャンＦＦ群の値と期待値をシリアルパターンとして生成する。以上で対象故障に対するテストパターン生成を終了する。
【００４６】
このように生成したテストパターンを使用した検査方法について、図４のフローチャートと図５のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−２０１
まず上記生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。このスキャンシフト動作で各スキャンＦＦに値が設定されると、メモリ回路の各端子はＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，０，０＞、ＤＩ［２：０］＝＜１，０，０＞になる。
ステップ−２０２
次に、スキャンモード信号を通常動作モードに切替える。スキャンイネーブル信号が“０”に設定される。
ステップ−２０３
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路ＭおよびスキャンＦＦにクロックを印加する（テスト可能最長パスの初期化）。このようにクロックが入力されると、メモリ回路Ｍのアドレス＜０，０，０＞にデータ＜１，０，０＞が書き込まれる。この時、ＤＩ［２：０］＝＜１，１，１＞に変更される。
ステップ−２０４
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路ＭおよびスキャンＦＦにクロックを印加する（テスト可能最長パスの遷移）。このようにクロックが入力されると、メモリ回路のアドレス＜０，０，０＞にデータ＜１，１，１＞が書きこまれる。
ステップ−２０５
次に、テスト対象メモリ回路Ｍへ書きこんだ同一アドレスの値を読み出す。ＮＷＥ＝１，ＮＲＥ＝０に変更しメモリ回路のアドレス＜０，０，０＞を読み出す。ここでデータラインＤＩ［１］に遅延故障が発生していなければ、メモリ回路Ｍに書きこんだ値＜１，１，１＞が読み出される。しかし、遅延故障が発生していた場合は、ＤＩ［１］のみ初期化パターンで書きこんだ値＜０＞が読み出される。
ステップ−２０６
次に、スキャンモード信号をスキャンモードに切替える。スキャンイネーブル信号が“１”に設定される。
ステップ−２０７
続いて、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較が行われ、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【００４７】
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するデータラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、このテスト可能最長パスを初期化するための初期値をあたえるデータライン初期化パターンを求め、続いてテスト可能最長パスを活性化するためのデータライン遷移パターンを求め、またアドレスパターン系列、制御値パターン系列を求め、遷移値設定スキャンＦＦの値によりメモリ回路Ｍに書きこまれた値を、アドレスラインの任意の値で読み出した時の出力設定値スキャンＦＦ群の値を期待値として求め、これらデータライン初期化パターンとデータライン遷移パターンとアドレスパターン系列と制御値パターン系列と期待値を、スキャンＦＦ群のシリアルパターンとして生成し（テストパターン生成を生成し）、その後、このシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群に設定し、クロック信号をスキャンクロック信号へ切換えを行い、アドレスパターン系列に設定したアドレスにデータライン初期化パターンと遷移パターンのデータを書き込み、続いて出力値設定スキャンＦＦ群の値を呼び出し、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【００４８】
このように実施の形態１によれば、メモリ回路のデータラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
［実施の形態２］
実施の形態２として、メモリ回路Ｍのアドレスライン（ＡＤ）を検査するテストパターン生成方法について説明する。
【００４９】
図６は、実施の形態２におけるアドレスラインのテストパターン生成方法を示す回路図である。この図６に示す集積回路は、図１の通常動作経路を成す論理回路部の回路図であり、実施の形態１と同様の遷移値設定ＳＦＦ群と初期値設定ＳＦＦ群と出力値設定ＳＦＦ群を備えている。実施の形態１の図２との相違点について説明する。
【００５０】
図６に示すように、ＮＯＲゲートＧ６の出力は、テスト用データラインＡＤ［０］とともにセレクタＳ１に供給され、テストモード信号はセレクタＳ１に制御信号として供給され、セレクタＳ１の出力はメモリ回路ＭのデータラインＡＤ［０］に供給される。またＮＡＮＤゲートＧ５は、テスト用データラインＡＤ［１］とともにセレクタＳ２に供給され、テストモード信号はセレクタＳ２に制御信号として供給され、セレクタＳ２の出力はメモリ回路ＭのデータラインＡＤ［１］に供給される。さらにＮＡＮＤゲートＧ９の出力は、テスト用データラインＡＤ［２］とともにセレクタＳ３に供給され、テストモード信号はセレクタＳ３の制御信号として供給され、セレクタＳ３の出力はメモリ回路ＭのデータラインＡＤ［２］に供給される。
【００５１】
またスキャンＦＦ２９の出力は、テスト用ＤＩ［０］とともにセレクタＳ４に供給され、テストモード信号はセレクタＳ４の制御信号として供給され、セレクタＳ４の出力はメモリ回路ＭのアドレスラインＤＩ［０］に供給される。またスキャンＦＦ３０の出力は、テスト用ＤＩ［１］ともにセレクタＳ５に供給され、テストモード信号はセレクタＳ５の制御信号として供給され、セレクタＳ５の出力はメモリ回路ＭのアドレスラインＤＩ［１］に供給される。さらにスキャンＦＦ３１の出力は、テスト用ＤＩ［２］とともにセレクタＳ６に供給され、テストモード信号はセレクタＳ６の制御信号として供給され、セレクタＳ６の出力はメモリ回路ＭのアドレスラインＤＩ［２］に供給される。
【００５２】
次に、アドレスライン（ＡＤ）を検査するテストパターン生成方法の処理手順を、図７に示すフローチャートを参照しながら説明する。
ステップ−３０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するアドレスラインから対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図６のアドレスラインのＡＤ［１］の遷移ｒｉｓｅ（“０”から“１”への遅延故障）を選択する。
ステップ−３０２
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。アドレスラインのＡＤ［１］が選択されていると、図６の太線で示すテスト可能最長パス、スキャンＦＦ１３−Ｇ２−Ｇ１−Ｇ３−Ｇ５−ＡＤ[１]を選択する。
ステップ−３０３
次に、テスト可能最長パスを初期化するための初期値をあたえるアドレスライン初期化パターンを求める。すなわち、初期値設定スキャンＦＦ群１１〜１８の値を生成する。この時の初期値設定スキャンＦＦ群１１〜１８の値はそれぞれ＜１，１，０，ｘ，１，ｘ，ｘ，ｘ＞となる。これが、アドレスライン初期化パターンとなる。
ステップ−３０４
続いて、テスト可能最長パスを活性化するためのアドレスライン遷移パターンを求める。すなわち、遷移値設定スキャンＦＦ群１〜９および入力端子Ｘ１〜Ｘ５の値を生成する。この時の遷移値設定スキャンＦＦ群１〜９の値および入力端子Ｘ１〜Ｘ５の値はそれぞれ＜ｘ，ｘ，１，１，１，１，ｘ，ｘ，ｘ，１，ｘ，１，ｘ，ｘ＞となる。これが、アドレスライン遷移パターンとなる。
ステップ−３０５
次に、データラインＤＩ［２：０］に任意の値を設定するための初期値設定スキャンＦＦ群（データライン初期化パターン）の値を求める。例えば、メモリ回路Ｍのデータを任意の値であるＤＩ［２：０］＝＜０，０，０＞になるように初期値設定スキャンＦＦ２９〜３１の値を生成する。この時の初期値設定スキャンＦＦ２９〜３１の値は＜０，０，０＞になる。
ステップ−３０６
次に、データラインの初期値設定スキャンＦＦ群の値が変化しなように遷移値設定スキャンＦＦ群（データライン遷移パターン）の値を求める。すなわち、遷移値設定スキャンＦＦ２６〜２８の値を生成する。この時の遷移値設定スキャンＦＦの値は＜０，０，０＞になる。ステップ−３０５，３０６で生成したパターンが、データパターン系列になる。
ステップ−３０７
次に、メモリ回路の制御信号群を前記メモリ回路への書き込みが許可される値を設定するための初期値設定スキャンＦＦ群（制御信号群初期化パターン）の値を求める。すなわち、メモリ回路の制御信号群であるＮＣＥ，ＮＷＥ，ＮＲＥに書き込み動作を許可するための値＜０，０，１＞になるように初期値設定スキャンＦＦ２３〜２５の値を生成する。この時の初期値設定スキャンＦＦ２３〜２５の値は＜０，０，１＞になる。
ステップ−３０８
続いて、制御信号群の初期値設定スキャンＦＦ群の値が変化しないように遷移値設定スキャンＦＦ群（制御信号群遷移パターン）の値を求める。すなわち、遷移値設定スキャンＦＦ２０〜２２の値を生成する。この時の遷移値設定スキャンＦＦ２０〜２２の値は＜０，０，１＞になる。ステップ−３０７，３０８で生成したパターンが、制御値パターン系列となる。
ステップ−３０９
次に遷移値設定スキャンＦＦの値によりメモリ回路Ｍに書きこまれた値をステップ−３０４で設定したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群（出力設定値パターン）の値を期待値として求める。上記メモリ回路Ｍに書きこまれたアドレスＡＤ［２：０］＝＜１，１，１＞で読み出した値ＤＯ［２：０］＝＜０，０，０＞を出力値設定スキャンＦＦ３２〜３４に受けたときの値を、期待値とする。
ステップ−３１０
次にアドレスライン初期化パターンとアドレスライン遷移パターンとデータパターン系列と制御値パターン系列と期待値を、スキャンＦＦ群のシフトパターンとして生成する。すなわち、遷移値設定スキャンＦＦ１〜９，２０〜２２，２６〜２８および初期値設定スキャンＦＦ１１〜１８，２３〜２５，２９〜３０の値および期待値をシリアルパターンとして生成する。
ステップ−３１１
次に、アドレスライン遷移パターンに対するメモリ回路のアドレスの対象故障のアドレスビットが反転したアドレスをメモリ初期化アドレスとして求める。すなわち、メモリ回路を初期化するためのメモリ初期化アドレスを生成する。このときのメモリ初期化アドレスの値は、アドレスライン遷移パターンでの書き込みアドレスの検査対象アドレスＡＤ［１］を“１”から故障した場合の値“０”にしたＡＤ［２：０］＝＜１，０，１＞になる。
ステップ−３１２
次に、データパターンに対するメモリ回路のデータと異なるデータをメモリ初期化データとして求める。このときのメモリ初期化データは遷移パターンでの書き込みデータＤＩ［２：０］＝＜０，０，０＞以外の任意の値にする。この実施の形態ではＤＩ［２：０］＝＜１，１，１＞にする。
ステップ−３１３
次に、メモリ回路に書きこみができる値をメモリ初期化制御値として求める。このときのメモリ初期化制御値は、メモリ回路への書き込みが許可される値に設定する。本実施の形態では、ＮＣＥ＝０，ＮＷＥ＝０、ＮＲＥ＝１となる。ステップ−３１１，３１２，３１２で生成したメモリ初期化アドレスとメモリ初期化データとメモリ初期化制御値が、テスト用経路の初期化パターンとなる。
【００５３】
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図８のフローチャートと図９のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−４０１
まず、テストモード信号をテストモードに設定する。テストモード信号をテストモードである“０”に設定する。
ステップ−４０２
次に、生成したテスト用経路の初期化パターンを印加し、メモリ回路Ｍの初期化を行う。すなわち、テスト用経路からメモリ回路Ｍへの書きこみを行う。このときのメモリ回路Ｍの各端子は、ＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜１，０，１＞、ＤＩ［２：０］＝＜１，１，１＞になり、メモリ回路Ｍのアドレス＜１，０，１＞にデータ＜１，１，１＞が書きこまれる。
ステップ−４０３
次に、スキャンイネーブル信号（ＳＥ信号）をスキャンモードに設定する。すなわちスキャンイネーブル信号をスキャンモード“１”に設定する。
ステップ−４０４
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。スキャンシフト動作で各スキャンＦＦに値が設定されると、メモリ回路の各端子はＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜１，０，０＞、ＤＩ［２：０］＝＜０，０，０＞になる。
ステップ−４０５
次に、スキャンイネーブル信号（ＳＥ信号）とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“０”に設定する。また、テストモード信号を通常モードである“１”に設定する。
ステップ−４０６
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（テスト可能最長パスに遷移を発生）。クロックが入力されると、メモリ回路のアドレス＜１，０，０＞にデータ＜０，０，０＞が書きこまれる。この時、ＡＤ［２：０］＝＜１，１，１＞に変更される。
ステップ−４０７
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（テスト可能最長パスの遷移後の値をメモリ回路に書き込む）。クロックが入力されると、メモリ回路のアドレス＜１，１，１＞にデータ＜０，０，０＞が書きこまれる。
ステップ−４０８
次に、メモリ回路ＭのＮＲＥ＝０、ＮＷＥ＝１に設定し、テスト対象メモリ回路Ｍへ書きこんだアドレスの値を読み出す。すなわち、ＮＷＥ＝１，ＮＲＥ＝０に変更しメモリ回路Ｍのアドレス＜１，１，１＞の値を読み出す。データラインＡＤ［１］に遅延故障が発生していなければ、メモリ初期化パターンでメモリ回路に書きこんだアドレスＡＤ［２：０］＝＜１，１，１＞のデータＤＩ［２：０］＝＜０，０，０＞が読み出される。しかし、遅延故障が発生していた場合は、初期化パターンで書きこんだ値アドレスＡＤ［２：０］＝＜１，０，１＞のデータＤＩ［２：０］＝＜１，１，１＞が読み出される。
ステップ−４０９
次に、スキャンイネーブル信号ＳＥをスキャンモードに設定する。すなわち、スキャンイネーブル信号を“１”に設定する。
ステップ−４１０
次に、スキャンシフト動作で外部端子に出力値設定スキャンＦＦ群の値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【００５４】
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するアドレスラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、このテスト可能最長パスを初期化するための初期値をあたえるアドレスライン初期化パターンを求め、続いてテスト可能最長パスを活性化するためのアドレスライン遷移パターンを求め、またデータパターン系列、制御値パターン系列を求め、遷移値設定スキャンＦＦの値によりメモリ回路Ｍに書きこまれた値をアドレスラインの値で読み出した時の出力設定値スキャンＦＦ群の値を期待値として求め、アドレスライン初期化パターンとアドレスライン遷移パターンとデータパターン系列と制御値パターン系列と期待値を、スキャンＦＦ群のシリアルパターンとして生成し（テストパターン生成を生成し）、続いて、アドレスの対象故障のアドレスビットが反転したアドレスをメモリ初期化アドレスとして求め、データパターン系列に対するメモリ回路Ｍのデータと異なるデータをメモリ初期化データとして求め、さらにメモリ回路Ｍに書きこみができる値をメモリ初期化制御値として求めてテスト用経路の初期化パターンを形成する。
【００５５】
そして、テストモードにより、テスト用経路の初期化パターンをメモリ回路Ｍに書き込み、続いてスキャンモードによりシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群に設定し、スキャンクロック信号により、設定したアドレスにデータパターン系列のデータを書き込み、出力値設定スキャンＦＦ群の値を取り出し、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【００５６】
このように実施の形態２によれば、メモリ回路のアドレスラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
【００５７】
なお、実施の形態２では、アドレスＡＤ［２：０］を特定しメモリ回路のメモリ初期化パターンを印加しているが、メモリ回路すべてを初期化することも同じである。この場合、複数の遅延故障が発生した場合でも遅延故障テストが可能になる。
［実施の形態３］
実施の形態３として、メモリ回路Ｍのデータアウトライン（ＤＯ）を検査するテストパターン生成方法について説明する。
【００５８】
図１０は、実施の形態３におけるアドレスラインのテストパターン生成方法を示す回路図である。この図１０に示す集積回路は、図１の通常動作経路を成す論理回路部の回路図であり、実施の形態１と同様の遷移値設定ＳＦＦ群と初期値設定ＳＦＦ群と出力値設定ＳＦＦ群を備えている。
【００５９】
図１０に示すように、スキャンＦＦ１の出力とスキャンＦＦ２の出力はＯＲゲートｇ３に供給され、入力端子Ｘ１とスキャンＦＦ３の出力がＯＲゲートｇ５に供給され、スキャンＦＦ４の出力とスキャンＦＦ５の出力はＡＮＤゲートｇ８に供給され、入力端子Ｘ２とスキャンＦＦ６の出力がＯＲゲートｇ１０に供給される。
【００６０】
またＯＲゲートｇ３の出力はスキャンＦＦ１１に供給され、スキャンＦＦ２の出力はスキャンＦＦ１２に供給され、ＯＲゲートｇ５の出力はスキャンＦＦ１３に供給され、ＯＲゲートｇ８の出力はスキャンＦＦ１４に供給され、スキャンＦＦ５の出力はスキャンＦＦ１５に供給され、ＯＲゲートｇ１０の出力はスキャンＦＦ１６に供給され、スキャンＦＦ６の出力はスキャンＦＦ１７に供給される。
【００６１】
さらにスキャンＦＦ１３の出力はＮＯＴゲートＧ２に供給され、スキャンＦＦ１２の出力とＮＯＴゲートＧ２の出力はＮＡＮＤゲートＧ１に供給され、ＮＡＮＤゲートＧ１とスキャンＦＦ１１の出力はＮＯＲゲートＧ４に供給され、スキャンＦＦ１４の出力とＮＡＮＤゲートＧ１の出力はＮＡＮＤゲートＧ５に供給され、スキャンＦＦ１６の出力はＮＯＴゲートＧ７に供給され、スキャンＦＦ１５の出力とＮＯＴゲートＧ７の出力はＮＡＮＤゲートＧ８に供給され、ＮＡＮＤゲートＧ８の出力とスキャンＦＦ１７の出力はＮＡＮＤゲートＧ９に供給される。
【００６２】
またＮＯＲゲートＧ４の出力は、テスト用データラインＤＩ［０］とともにセレクタＳ４に供給され、テストモード信号はセレクタＳ４の制御信号として供給され、セレクタＳ４の出力はメモリ回路ＭのデータラインＤＩ［０］に供給される。またＮＡＮＤゲートＧ５は、テスト用データラインＤＩ［１］とともにセレクタＳ５に供給され、テストモード信号はセレクタＳ５の制御信号として供給され、セレクタＳ５の出力はメモリ回路ＭのデータラインＤＩ［１］に供給される。さらにＮＡＮＤゲートＧ９の出力は、テスト用データラインＤＩ［２］とともにセレクタＳ６に供給され、テストモード信号はセレクタＳ６の制御信号として供給され、セレクタＳ６の出力はメモリ回路ＭのデータラインＤＩ［２］に供給される。
【００６３】
またスキャンＦＦ２０の出力はスキャンＦＦ２３に供給され、スキャンＦＦ２３の出力は、テスト用チップイネーブルＮＣＥとともにセレクタＳ７に供給され、テストモード信号はセレクタＳ７の制御信号として供給され、セレクタＳ７の出力はメモリ回路ＭのチップイネーブルＮＣＥに供給される。またスキャンＦＦ２１の出力はスキャンＦＦ２４に供給され、スキャンＦＦ２４の出力は、テスト用ライトイネーブルＮＷＥとともにセレクタＳ８に供給され、テストモード信号はセレクタＳ８の制御信号として供給され、セレクタＳ８の出力はメモリ回路ＭのライトイネーブルＮＷＥに供給される。さらにスキャンＦＦ２２の出力はスキャンＦＦ２５に供給され、スキャンＦＦ２５の出力は、テスト用リードイネーブルＮＲＥとともにセレクタＳ９に供給され、テストモード信号はセレクタＳ９の制御信号として供給され、セレクタＳ９の出力はメモリ回路ＭのリードイネーブルＮＲＥに供給される。
【００６４】
さらにスキャンＦＦ２６の出力はスキャンＦＦ２９に供給され、スキャンＦＦ２９の出力は、テスト用ＡＤ［０］とともにセレクタＳ１に供給され、テストモード信号はセレクタＳ１の制御信号として供給され、セレクタＳ１の出力はメモリ回路ＭのアドレスラインＡＤ［０］に供給される。またスキャンＦＦ２７の出力はスキャンＦＦ３０に供給され、スキャンＦＦ３０の出力は、テスト用ＡＤ［１］とともにセレクタＳ２に供給され、テストモード信号はセレクタＳ２の制御信号として供給され、セレクタＳ２の出力はメモリ回路ＭのアドレスラインＡＤ［１］に供給される。さらにスキャンＦＦ２８の出力はスキャンＦＦ３１の入力に供給され、スキャンＦＦ３１の出力は、テスト用ＡＤ［２］とともにはセレクタＳ３に供給され、テストモード信号はセレクタＳ３の制御信号として供給され、セレクタＳ３の出力はメモリ回路ＭのアドレスラインＡＤ［２］に供給される。
【００６５】
またメモリ回路ＭのデータアウトラインＤＯ［０］とメモリ回路ＭのデータアウトラインＤＯ［１］はＮＡＮＤゲートＧ１０に供給され、メモリ回路ＭのデータアウトラインＤＯ［１］とメモリ回路ＭのデータアウトラインＤＯ［２］はＡＮＤゲートＧ１１に供給され、ＮＡＮＤゲートＧ１０の出力はスキャンＦＦ３２の入力に接続され、ＮＡＮＤゲートＧ１０の出力はＮＯＴゲートＧ１２の入力に接続され、ＮＯＴゲートＧ１２の出力はスキャンＦＦ３３の入力に接続され、ＮＡＮＤゲートＧ１１の出力はスキャンＦＦ３４の入力に接続される。
【００６６】
また、クロックＣＬＫとテスト用クロックＴＣＬＫとスキャン用クロックＳＣＬＫはそれぞれセレクタ１０の入力に接続され、テストモード信号はセレクタＳ１０の制御信号Ｓ１として接続され、スキャンモード信号はセレクタＳ１０の制御信号Ｓ２として接続され、セレクタ１０の出力はメモリ回路のＣＬＫに供給される。これらテストモード信号（制御信号Ｓ１）とスキャンモード信号（制御信号Ｓ２）により、上述したように、クロックが選択されてメモリ回路のＣＬＫへ供給される。
【００６７】
次に、データアウトライン（ＤＯ）を検査するテストパターン生成方法の処理手順を、図１１に示すフローチャートを参照しながら説明する。
ステップ−５０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するデータアウトラインから対象故障を選択する。この対象故障は、人手で選択してもよく、あるいは回路情報から電子計算機により自動的に取出して作成してもよい。例えば、対象故障として図１０に太線で示すデータアウトラインのＤＯ［０］の遷移ｒｉｓｅ（“０”から“１”への遅延故障）を選択する。
ステップ−５０２
次に、上記選択した対象故障に対応するテスト可能最長パスを選択する。データアウトラインのＤＯ［０］を選択したとき、テスト可能最長パスとして、ＤＯ［０］−Ｇ１０−Ｇ１２−スキャンＦＦ３３を選択する。
ステップ−５０３
次に、テスト可能最長パスを初期化するための第１のメモリ初期化データを求める。データＤＯ［２：０］＝＜０，０，０＞となる。
ステップ−５０４
次に、テスト最長パスの活性化をするための第２のメモリ初期化データを求める。このときデータＤＯ［２：０］＝＜１，１，０＞となる。
ステップ−５０５
次に、第１のメモリ初期化データを書き込むための第１のメモリ初期化アドレスを生成する。例えば、第１のメモリ初期値アドレスＡＤ［２：０］＝＜０，０，０＞とする。
ステップ−５０６
次に、第２のメモリ初期化データを書き込むための第２のメモリ初期化アドレスを生成する。例えば、第２のメモリ初期化アドレスＡＤ［２：０］＝＜１，１，１＞とする。
ステップ−５０７
次に、第１のメモリ初期化データと第２のメモリ初期化データを書きこむためのメモリ初期化制御値を生成する。すなわち、第１のメモリ初期化データおよび第２のメモリ初期化データを書き込める制御値は、ＮＣＥ＝０、ＮＷＥ＝０、ＮＲＥ＝１となる。
ステップ−５０８
次に、第１のメモリ初期化データを読み出すためのアドレスと制御信号群の値を初期値設定スキャンＦＦに生成する（データアウト初期化パターンを生成する）。すなわち、メモリ回路のアドレスを第１のメモリ初期化データを書き込んだアドレスであるＡＤ［２：０］＝＜０，０，０＞を読み出せるように初期値設定スキャンＦＦ２３〜２５、２９〜３１の値を生成する。この時の初期値設定スキャンＦＦ２３〜２５、２９〜３１の値は＜０，１，０，０，０，０＞になる。
ステップ−５０９
次に、第２のメモリ初期化データパターンを読み出すためのアドレスと制御信号群の値を遷移値設定スキャンＦＦに生成する（データアウト遷移パターンを生成する）。すなわち、第２のメモリ初期化データを書き込んだアドレスであるＡＤ［２：０］＝＜１,１,１＞を読み出せるように遷移値設定スキャンＦＦ２０〜２２、２６〜２８の値を生成する。このときの遷移値設定スキャンＦＦ２０〜２２、２６〜２８の値は＜０，１，０，１，１，１＞になる。
ステップ−５１０
次に、第２のメモリ初期化データを第２のメモリ初期化アドレスで読み出した時の出力設定値スキャンＦＦ群（出力設定値パターン）が受ける値を期待値として求める。すなわち、遷移値設定スキャンＦＦで読み出したアドレスＡＤ［２：０］＝＜１,１,１＞の値ＤＯ［２：０］＝＜１，１，０＞を出力設定する。このときのスキャンＦＦ３２〜３４に読み出した値は＜０，１，０＞になる。この値を期待値とする。
ステップ−５１１
次に、データアウト初期化パターンとデータアウト遷移パターンと期待値を、シフトパターンとして生成する。すなわち、遷移値設定スキャンＦＦ２０〜２２，２６〜２８の値および初期値設定スキャンＦＦ２３〜２５の値，２９〜３１および期待値をシリアルパターンとして生成し、対象故障に対するテストパターン生成を終了する。
【００６８】
このように生成したテストパターンを使用した検査方法について、図１２のフローチャートと図１３のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−６０１
まず、テストモード信号をテストモードに設定する。テストモード信号をテストモードである“０”に設定する。
ステップ−６０２
次に、生成した第１のメモリ初期化アドレスに第１のメモリ初期化データを印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Ｍへ第１のメモリ初期化データの書きこみを行う。このときのメモリ回路Ｍの各端子は、ＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，０，０＞、ＤＩ［２：０］＝＜０，０，０＞になり、メモリ回路Ｍのアドレス＜０，０，０＞にデータ＜０，０，０＞が書きこまれる。
ステップ−６０３
次に、生成した第２のメモリ初期化アドレスに第２のメモリ初期化データを印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Ｍへ第２のメモリ初期化データの書きこみを行う。このときのメモリ回路Ｍの各端子は、ＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜１，１，１＞、ＤＩ［２：０］＝＜１，１，０＞になり、メモリ回路のアドレス＜１，１，１＞にデータ＜１，１，０＞が書きこまれる。
ステップ−６０４
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号をスキャンモード“１”に設定する。
ステップ−６０５
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。スキャンシフトで各スキャンＦＦに値が設定されると、メモリ回路Ｍの各端子はＮＣＥ＝０，ＮＷＥ＝１，ＮＲＥ＝０，ＡＤ［２：０］＝＜０，０，０＞、ＤＩ［２：０］＝＜Ｘ，Ｘ，Ｘ＞になる。
ステップ−６０６
次に、スキャンイネーブル信号（ＳＥ信号）とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“０”に設定する。また、テストモード信号を通常モードである“１”に設定する。
ステップ−６０７
次に、スキャンクロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（テスト可能最長パスの初期化）。クロックが入力されると、メモリ回路Ｍのアドレス＜０，０，０＞のデータが読み出されデータアウトは＜０，０，０＞が出力される。この時、ＡＤ［２：０］＝＜１，１，１＞に変更される。
ステップ−６０８
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（テスト可能最長パスに遷移を発生）。クロックが入力されると、メモリ回路のアドレス＜１，１，１＞のデータが読み出されデータアウトは＜１，１，０＞が出力される。
ステップ−６０９
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（テスト可能最長パスの遷移後の値を出力値設定スキャンＦＦ群に取りこむ）。データアウトＤＯ［１］に遅延故障が発生していなければ、出力値設定スキャンＦＦ３２〜３４は＜０，１，０＞になる。しかし、遅延故障が発生していた場合は、出力値設定スキャンＦＦ３３のみがアドレスＡＤ［２：０］＝＜０，０，０＞で書きこんだ値＜０＞になる。
ステップ−６１０
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号を“１”に設定する。
ステップ−６１１
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【００６９】
上記処理手順によれば、被検査半導体集積回路のメモリ回路Ｍに対するデータアウトラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための第１のメモリ初期化データを求め、続けてテスト最長パスの活性化をするための第２のメモリ初期化データを求める。そして、第１のメモリ初期化データを書き込むためのアドレスを求める第１のメモリ初期化アドレスを生成し、続けて第２のメモリ初期化データを書き込むためのアドレスを求める第２のメモリ初期化アドレスを生成する。
【００７０】
次に、第１のメモリ初期化データと第２のメモリ初期化データを書きこむためのメモリ初期化制御値を生成し、第１のメモリ初期化データを読み出すためにアドレスと制御信号群の値を初期値設定スキャンＦＦ群に生成し（第１の初期化パターンを生成し）、続けて第２のメモリ初期化データを読み出すためのアドレスと制御信号群の値を遷移値設定スキャンＦＦ群に生成する（第２の初期化パターンを生成する）。
【００７１】
そして第２のメモリ初期化データを第２のメモリ初期化アドレスで読み出した時の出力設定値スキャンＦＦ群の値を期待値として求める。
続いて第１の初期化パターンと第２の初期化パターンを、初期値設定スキャンＦＦ群と遷移値設定スキャンＦＦ群のシフトパターンとして生成する（テストパターン生成を生成する）。
【００７２】
そして、テストモードにより、第１のメモリ初期化データをメモリ回路Ｍに書き込み、続いて第２のメモリ初期化データをメモリ回路Ｍに書き込む。そして、スキャンモードによりシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群に設定し、スキャンクロック信号により書き込んだ第１のメモリ初期化データと第２のメモリ初期化データを読み出し、遷移値設定スキャンＦＦ群のアドレス設定によりテスト可能最長パスの遷移後の値を出力値設定スキャンＦＦに取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【００７３】
このように実施の形態３によれば、メモリ回路のデータアウトラインに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
［実施の形態４］
実施の形態４として、メモリ回路ＭのライトイネーブルＮＷＥの書き込み不可から書き込み可能への遷移時“nonWrite→Write”における、ライトイネーブルラインのテストパターン生成方法について説明する。
【００７４】
図１４は、実施の形態４におけるライトイネーブルラインのテストパターン生成方法を示す回路図である。この図１４に示す集積回路は、図１の通常動作経路を成す論理回路部の回路図であり、実施の形態１と同様の遷移値設定ＳＦＦ群と初期値設定ＳＦＦ群と出力値設定ＳＦＦ群を備えている。
【００７５】
スキャンＦＦ１の出力とスキャンＦＦ２の出力はＡＮＤゲートｇ３に供給され、スキャンＦＦ２の出力はスキャンＦＦ１２に供給され、入力端子Ｘ１とスキャンＦＦ３の出力がＡＮＤゲートｇ５に供給され、入力端子Ｘ２はスキャンＦＦ１４に供給され、入力端子Ｘ３はスキャンＦＦ１５に供給され、スキャンＦＦ４の出力とスキャンＦＦ５の出力はＯＲゲートｇ８に供給され、入力端子Ｘ４とスキャンＦＦ６の出力がＯＲゲートｇ１０に供給され、スキャンＦＦ６の出力はスキャンＦＦ１８に供給され、ＯＲゲートｇ３の出力はスキャンＦＦ１１に供給され、ＯＲゲートｇ５の出力はスキャンＦＦ１３に供給され、ＯＲゲートｇ８の出力はスキャンＦＦ１６に供給され、ＯＲゲートｇ１０の出力はスキャンＦＦ１７の入力に供給される。
【００７６】
またスキャンＦＦ１３の出力はＮＯＴゲートＧ２に供給され、スキャンＦＦ１２の出力とＮＯＴゲートＧ２の出力はＮＡＮＤゲートＧ１に供給され、ＮＡＮＤゲートＧ１とスキャンＦＦ１１の出力はＡＮＤゲートＧ１０に供給され、スキャンＦＦ１４の出力とスキャンＦＦ１５の出力はＮＡＮＤゲートＧ５の入力に供給され、スキャンＦＦ１７の出力はＮＯＴゲートＧ７に供給され、スキャンＦＦ１６の出力とＮＯＴゲートＧ７の出力はＮＡＮＤゲートＧ８に供給され、ＮＡＮＤゲートＧ８の出力とスキャンＦＦ１８の出力はＮＡＮＤゲートＧ９に供給される。
【００７７】
またスキャンＡＮＤゲートＧ１０の出力は、テスト用ライトイネーブルＮＷＥとともにセレクタＳ８に供給され、テストモード信号はセレクタＳ８の制御信号として供給され、セレクタＳ８の出力はメモリ回路ＭのライトイネーブルＮＷＥに供給される。またＮＡＮＤゲートＧ５は、テスト用チップイネーブルＮＣＥとともにセレクタＳ７に供給され、テストモード信号はセレクタＳ７の制御信号として供給され、セレクタＳ７の出力はメモリ回路ＭのチップイネーブルＮＣＥに供給される。さらにＮＡＮＤゲートＧ９の出力は、テスト用リードイネーブルＮＲＥとともにセレクタＳ９に供給され、テストモード信号はセレクタＳ９の制御信号として供給され、セレクタＳ９の出力はメモリ回路ＭのリードイネーブルＮＲＥに供給される。
【００７８】
さらにスキャンＦＦ２０の出力はスキャンＦＦ２３に供給され、スキャンＦＦ２３の出力は、テスト用ＤＩ［０］とともにセレクタＳ４に供給され、テストモード信号はセレクタＳ４の制御信号として供給され、セレクタＳ４の出力はメモリ回路ＭのＤＩ［０］に供給される。またスキャンＦＦ２１の出力はスキャンＦＦ２４の入力に供給され、スキャンＦＦ２４の出力は、テスト用ＤＩ［１］とともにセレクタＳ５に供給され、テストモード信号はセレクタＳ５の制御信号として供給され、セレクタＳ５の出力はメモリ回路ＭのＤＩ［１］に供給される。またスキャンＦＦ２２の出力はスキャンＦＦ２５に供給され、スキャンＦＦ２５の出力は、テスト用ＤＩ［２］とともにセレクタＳ６に供給され、テストモード信号はセレクタＳ６の制御信号として供給され、セレクタＳ９の出力はメモリ回路ＭのＤＩ［２］に供給される。
【００７９】
またスキャンＦＦ２６の出力はスキャンＦＦ２９に供給され、スキャンＦＦ２９の出力は、テスト用ＡＤ［０］とともにセレクタＳ１に供給され、テストモード信号はセレクタＳ１の制御信号として供給され、セレクタＳ１の出力はメモリ回路ＭのアドレスラインＡＤ［０］に供給される。またスキャンＦＦ２７の出力はスキャンＦＦ３０に供給され、スキャンＦＦ３０の出力は、テスト用ＡＤ［１］とともにセレクタＳ２に供給され、テストモード信号はセレクタＳ２の制御信号として供給され、セレクタＳ２の出力はメモリ回路ＭのアドレスラインＡＤ［１］に供給される。さらにスキャンＦＦ２８の出力はスキャンＦＦ３１に供給され、スキャンＦＦ３１の出力は、テスト用ＡＤ［２］とともにセレクタＳ３に供給され、テストモード信号はセレクタＳ３の制御信号として供給され、セレクタＳ３の出力はメモリ回路ＭのアドレスラインＡＤ［２］に供給される。
【００８０】
さらにメモリ回路ＭのデータアウトラインＤＯ［０］はスキャンＦＦ３２の入力に接続され、メモリ回路ＭのデータアウトラインＤＯ［１］はスキャンＦＦ３３の入力に接続され、メモリ回路ＭのデータアウトラインＤＯ［２］はスキャンＦＦ３４の入力に接続される。
【００８１】
また、クロックＣＬＫとテスト用クロックＴＣＬＫとスキャン用クロックＳＣＬＫはそれぞれセレクタ１０の入力に接続され、テストモード信号はセレクタＳ１０の制御信号Ｓ１として接続され、スキャンモード信号はセレクタＳ１０の制御信号Ｓ２として接続され、セレクタ１０の出力はメモリ回路のＣＬＫに供給される。これらテストモード信号（制御信号Ｓ１）とスキャンモード信号（制御信号Ｓ２）により、上述したように、クロックが選択されてメモリ回路のＣＬＫへ供給される。
【００８２】
次に、ライトイネーブルラインＮＷＥのテストパターン生成方法“nonWrite→Write”の処理手順を、図１５に示すフローチャートを参照しながら説明する。
ステップ−７０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するライトイネーブルのメモリ回路への書き込み不可から書き込み可能へ遷移する故障を対応するテスト可能最長パスを選択する。例えば、対象故障として図１４のライトイネーブルＮＷＥの書き込み不可から書き込み可能への遷移ｆａｌｌ（“１”から“０”への遅延故障）に対するテスト可能最長パスとして、スキャンＦＦ１３−Ｇ２−Ｇ１−Ｇ１０−ＮＷＥを選択する。
ステップ−７０２
次に、テスト可能最長パスを初期化するための初期値をあたえるライトイネーブル初期化テストパターンを求める。すなわち、テスト可能最長パスに係る初期値設定スキャンＦＦ１１〜１３に値を生成する。この時の初期値設定スキャンＦＦ１１〜１３の値はそれぞれ＜１，ｘ，１＞となる。
ステップ−７０３
続いて、テスト可能最長パスを活性化するためのライトイネーブル遷移テストパターンを求める。すなわち初期値設定スキャンＦＦ１１〜１３に係る遷移値設定スキャンＦＦ１〜３および入力端子Ｘ１に値を生成する。この時の遷移値設定スキャンＦＦ１〜３に値および入力端子Ｘ１の値はそれぞれ＜０，１，０，０＞となる。
ステップ−７０４
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。例えば、アドレスを任意の値であるＡＤ［２：０］＝＜０，１，０＞になるように初期値設定スキャンＦＦ２９〜３１および遷移値設定スキャンＦＦ２６〜２８に値を生成する。この時の値は＜０，１，０，０，１，０＞になる。
ステップ−７０５
続いてデータラインに任意の値を設定するためのデータパターン系列を求める。例えば、メモリ回路のデータを任意の値であるＤＩ［２：０］＝＜０，１，０＞になるように初期値設定スキャンＦＦ２３〜２５および遷移値設定スキャンＦＦ２０〜２２に値を生成する。この時の＜０，１，０，０，１，０＞になる。
ステップ−７０６
次に、メモリ回路Ｍの制御信号群をメモリ回路Ｍへ書き込みできる値を設定するための制御値パターン系列を求める。すなわち、メモリ回路の制御信号群であるＮＣＥ、ＮＲＥに書き込み動作を許可するための値＜０，１＞になるように初期値設定スキャンＦＦ１４〜１８および遷移値設定スキャンＦＦ４〜６および入力端子Ｘ２〜Ｘ４に値を生成する。この時の値は＜１，１，ｘ，ｘ，０、ｘ，ｘ，０，１，１，ｘ＞になる。
ステップ−７０７
次に、遷移値設定スキャンＦＦ群の値によりメモリ回路に書きこまれた値をステップ−７０４で設定したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群（出力設定値パターン）の値を期待値として求める。すなわち、遷移値設定スキャンＦＦ２０〜２２，２６〜２８に設定した値によりメモリ回路に書きこまれた値ＤＩ［２:０］＝＜０，１，０＞をＤＯ［２:０］から読み出した値を出力値設定スキャンＦＦ３２〜３４に設定する。この時の出力値設定スキャンＦＦ３２〜３４の値は＜０，１，０＞になる。このときの値を期待値とする。
ステップ−７０８
次に、ライトイネーブル初期化パターン系列とライトイネーブル遷移パターン系列とアドレスパターン系列とデータパターン系列と期待値を、スキャンＦＦ群のシリアルパターンして生成する。すなわち、初期値設定スキャンＦＦ群と遷移値設定スキャンＦＦ群に設定された値と期待値をシフトパターンとして生成する。
ステップ−７０９
続いて、ステップ−７０４で生成したアドレスパターンに対するアドレスライン値を初期化アドレスとして求める。このときのメモリ初期化アドレスは、ステップ−７０４で生成したアドレスパターン系列でのメモリ回路への書き込みアドレスＡＤ［２：０］＝＜０，１，０＞になる。
ステップ−７１０
次に、ステップ−７０５で生成したデータパターンに対するデータラインの値と異なるデータを初期化データとして求める。このときのメモリ初期化データは、ステップ−７０５で生成したデータパターン系列でのメモリ回路への書き込みデータＤＩ［２：０］＝＜０，１，０＞以外の任意の値にする。この実施の形態ではＤＩ［２：０］＝＜１，０，１＞にする。
ステップ−７１１
続いて、ステップ−７０９，７１０で生成したパターンがメモリ回路に書き込みができるようにメモリ回路の制御信号群のメモリ初期化制御値を求める。ステップ−７０９で生成したメモリ初期化アドレスに対してステップ−７１０で生成したメモリ初期化データをメモリ回路に書き込むためのメモリ回路制御群の値を求める。本実施の形態では、ＮＣＥ＝０，ＮＷＥ＝０、ＮＲＥ＝１となる。ステップ−７０９，７１０，７１１によりメモリ回路のテスト用経路の初期化パターンが生成される。
【００８３】
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図１６のフローチャートと図１７のメモリ回路の各端子における波形図を参照しながら用いて説明する。
ステップ−８０１
まずテストモード信号をテストモードに設定する。すなわち、テストモード信号をテストモードである“０”に設定する。
ステップ−８０２
次に、生成したテスト用経路の初期化パターン（メモリ初期化アドレスおよびメモリ初期化データおよびメモリ初期化制御値）を印加し、メモリ回路の初期化を行う。すなわち、テスト用経路からメモリ回路Ｍのメモリ初期化アドレスにメモリ初期化データの書きこみを行う。このときのメモリ回路Ｍの各端子は、ＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，１，０＞、ＤＩ［２：０］＝＜１，０，１＞になり、メモリ回路Ｍのアドレス＜０，１，０＞にデータ＜１，０，１＞が書きこまれる。
ステップ−８０３
次に、スキャンイネーブル信号（ＳＥ信号）をスキャンモードの設定する。すなわち、スキャンイネーブル信号をスキャンモードである“１”に設定する。
ステップ−８０４
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。スキャンシフト動作で各スキャンＦＦに値が設定されると、メモリ回路の各端子はＮＣＥ＝０，ＮＷＥ＝１，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，１，０＞、ＤＩ［２：０］＝＜０，１，０＞になる。
ステップ−８０５
次に、スキャンイネーブル信号とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“０”に設定する。また、テストモード信号を通常モードである“１”に設定する。
ステップ−８０６
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路およびスキャンＦＦにクロックを印加する（メモリ回路Ｍの非書き込み動作）。クロックが入力されると、ライトイネーブルＮＷＥ＝０に設定される。
ステップ−８０７
次に、テスト対象メモリ回路の実動作クロック速度でテスト対象メモリ回路およびスキャンＦＦにクロックを印加する（メモリ回路Ｍの書き込み動作）。クロックが入力されると、メモリ回路Ｍのアドレス＜０，１，０＞のデータＤＩ［２：０］＝＜０，１，０＞がメモリ回路Ｍに書きこまれる。
ステップ−８０８
次に、メモリ回路ＭのＮＷＥ＝１、ＮＲＥ＝０に設定し、テスト対象メモリ回路へ遷移パターンで書きこんだアドレスのデータの値を読み出す。アドレスＡＤ［２：０］＝＜０，１，０＞を読み出す。ライトイネーブルＮＷＥに遅延故障が発生している場合、メモリ回路へのライト動作が正常に行われずメモリ初期化データＤＩ［２：０］＝＜１，０，１＞が読み出される。遅延故障が発生していない場合は、ＤＩ［２：０］＝＜０，１，０＞が読み出される。
ステップ−８０９
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号を“１”に設定する。
ステップ−８１０
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【００８４】
上記処理手順によれば、被検査半導体集積回路のメモリ回路Ｍに対するデータイネーブルラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえる初期化テストパターンを求め、テスト可能最長パスを活性化するための遷移テストパターンを求める。続いて、アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに任意の値を設定するためのデータパターン系列を求め、さらにメモリ回路Ｍの制御信号群をメモリ回路Ｍへ書き込みできる値を設定するための制御値パターン系列を求める。次に、遷移値設定スキャンＦＦの値によりメモリ回路に書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群の値を期待値として求め、初期値設定スキャンＦＦ群と遷移値設定スキャンＦＦ群に設定された値と期待値によりシリアルパターンを生成する。
【００８５】
次に、アドレスパターン系列で生成したアドレスパターンに対するアドレスラインの値を初期化アドレスとして求め、データパターン系列で生成したデータパターンに対するデータラインの値と異なるデータを初期化データとして求め、続けて初期化データがメモリ回路Ｍに書き込みができるようにメモリ回路Ｍの制御信号群の値を求めるメモリ初期化制御値を求め、メモリ回路Ｍのテスト用経路の初期化パターンを生成する。
【００８６】
そして、テストモードにより、テスト用経路から初期化パターンをメモリ回路Ｍに書き込み、続いてスキャンモードによりシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群に設定し、スキャンクロック信号によりデータの書き込みを行い、テスト対象メモリ回路Ｍへ遷移パターンで書きこんだアドレスのデータの値を読み出し、続いて出力値設定スキャンＦＦに取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【００８７】
このように実施の形態４によれば、メモリ回路Ｍの“nonWrite→Write”時のライトイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
【００８８】
なお、実施の形態４では、メモリ回路の初期化においてアドレスＡＤ［２：０］を特定しメモリ回路のメモリ初期化データを印加しているが、メモリ回路すべてを遷移値パターンでメモリ回路Ｍに書き込むデータ以外の値に初期化してもよい。
［実施の形態５］
実施の形態５として、メモリ回路ＭのライトイネーブルＮＷＥの書き込み可能から書き込み不可への遷移時“Write→nonWrite”における、ライトイネーブルラインのテストパターン生成方法について説明する。なお、実施の形態５におけるライトイネーブルラインのテストパターン生成方法を示す回路図は、実施の形態４（図１４）と同一であり、説明を省略する。
【００８９】
ライトイネーブルラインのテストパターン生成方法“Write→nonWrite”の処理手順を、図１８に示すフローチャートを参照しながら説明する。
ステップ−１１０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するライトイネーブルのメモリ回路への書き込み可能から書き込み不可へ遷移する故障を対応するテスト可能最長パスを選択する。例えば、対象故障として図１５のライトイネーブルＮＷＥの書き込み可能から書き込み不可への遷移ｒｉｓｅ（“０”から“１”への遅延故障）に対するテスト可能最長パスとして、スキャンＦＦ１３−Ｇ２−Ｇ１−Ｇ１０−ＮＷＥを選択する。
ステップ−１１０２
次に、テスト可能最長パスを初期化するための初期値（ＮＷＥ＝０）をあたえるライトイネーブル初期化テストパターンを求める。すなわち、選択したテスト可能最長パスに係る初期値設定スキャンＦＦ１１〜１３に値を生成する。この時の初期値設定スキャンＦＦ群１１〜１３の値はそれぞれ＜１，１，１＞となる。
ステップ−１１０３
続いてテスト可能最長パスを活性化するためのライトイネーブル遷移テストパターンを求める。すなわち、初期値設定スキャンＦＦ１１〜１３に係る遷移値設定スキャンＦＦ１〜３および入力端子Ｘ１に値を生成する。ＮＷＥ＝１を与える遷移値設定スキャンＦＦ１〜３に値および入力端子Ｘ１の値はそれぞれ＜１，０，１，ｘ＞となる。
ステップ−１１０４
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。例えば、アドレスを任意の値であるＡＤ［２：０］＝＜０，１，０＞になるように初期値設定スキャンＦＦ２９〜３１および遷移値設定スキャンＦＦ２６〜２８に値を生成する。この時のアドレスパターン系列は＜０，１，０，０，１，０＞になる。
ステップ−１１０５
次に、ライトイネーブル初期化パターンとアドレスパターン系列に対応するメモリ回路Ｍに、所定の値に書きこむ第１のメモリ初期化データを求める。例えば、アドレスＡＤ［２：０］＝＜０，１，０＞に書き込む第１のメモリ初期化データＤＩ［２：０］＝＜０，１，０＞になるように初期値設定スキャンＦＦ２３〜２５に値を生成する。
ステップ−１１０６
次に、ライトイネーブル遷移パターンとアドレスパターン系列に対応する前記メモリ回路Ｍに、所定の値に書きこむ第２のメモリ初期化データを、前記第１のメモリ初期化データと異なる値で求める。例えば、アドレスＡＤ［２：０］＝＜０，１，０＞に書き込む第１のメモリ初期化データと異なるデータＤＩ［２：０］＝＜１，０，１＞になるように遷移値設定スキャンＦＦ２０〜２２に値を生成する。ステップ−１１０５とステップ−１１０６により生成されるデータパターン系列は＜１，０，１，０，１，０＞となる。
ステップ−１１０７
次に、メモリ回路の制御信号群をメモリ回路へ書き込みできる値を設定するための制御値パターン系列を求める。すなわち、メモリ回路の制御信号群であるＮＣＥ、ＮＲＥに書き込み動作を許可するための値＜０，１＞になるように初期値設定スキャンＦＦ１４〜１８および遷移値設定スキャンＦＦ４〜６および入力端子Ｘ２〜Ｘ４に値を生成する。この時の値は＜１，１，ｘ，ｘ，０、ｘ，ｘ，０，１，１，ｘ＞になる。
ステップ−１１０８
次に、初期化設定スキャンＦＦ群の値によりメモリ回路Ｍに書きこまれた値をステップ−１１０４で設定したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群（出力設定値パターン）の値を期待値として求める。すなわち、初期値設定スキャンＦＦ２３〜２５，２９〜３１に設定した値によりメモリ回路Ｍに書きこまれた値ＤＩ［２:０］＝＜０，１，０＞をＤＯ［２:０］から読み出した値を出力値設定スキャンＦＦ３２〜３４に設定する。この時の出力値設定スキャンＦＦ３２〜３４の値は＜０，１，０＞になる。このときの値を期待値とする。
ステップ−１１０９
次に、ライトイネーブル初期化パターンとライトイネーブル遷移パターンとアドレスパターン系列と第１のメモリ初期化データと第２のメモリ初期化データと制御値パターン系列と期待値を、スキャンＦＦ群のシリアルパターンとして生成する。すなわち、初期値設定スキャンＦＦ群と遷移値設定スキャンＦＦ群に設定された値と、期待値をシリアルパターンとして生成する。
【００９０】
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図１９のフローチャートと図２０のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−１３０１
まず、スキャンイネーブル信号（ＳＥ信号）をスキャントモードに設定する。すなわち、スキャンモード信号をスキャンモードである“１”に設定する。
ステップ−１３０２
次に、上記生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。このスキャンシフト動作で各スキャンＦＦに値が設定されると、メモリ回路の各端子はＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，１，０＞，ＤＩ［２：０］＝＜０，１，０＞になる。
ステップ−１３０３
次に、スキャンイネーブル信号とテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“０”に設定する。また、テストモード信号を通常モードである“１”に設定する。
ステップ−１３０４
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（メモリ回路Ｍの書き込み動作）。クロックが入力されると、アドレス＜０，１，０＞にデータ＜０，１，０＞が書き込まれ、ライトイネーブルＮＷＥ＝１に設定される。
ステップ−１３０５
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（メモリ回路Ｍの非書き込み動作）。クロックが入力されると、メモリ回路の端子は、ＡＤ［２：０］＝＜０，１，０＞，ＤＩ［２：０］＝＜１，０，１＞になり、アドレス＜０，１，０＞に第２のメモリ初期化パターンのデータ＜１，０，１＞がメモリ回路に書きこまれようとする。
ステップ−１３０６
次に、メモリ回路のＮＷＥ＝１、ＮＲＥ＝０に設定し、テスト対象メモリ回路へ遷移パターンで書きこんだアドレスのデータの値を読み出す。アドレスＡＤ［２：０］＝＜０，１，０＞を読み出す。ライトイネーブルＮＷＥに遅延故障が発生している場合、メモリ回路への非書き込み動作が正常に行われず、書き換えられたデータＤＩ［２：０］＝＜１，０，１＞が読み出される。遅延故障が発生していない場合は、ＤＩ［２：０］＝＜０，１，０＞が読み出される。
ステップ−１３０７
次に、スキャンイネーブル信号ＳＥをスキャンモードに設定する。スキャンイネーブル信号を“１”に設定する。
ステップ−１３０８
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【００９１】
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するデータイネーブルラインＮＷＥから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえる初期化テストパターンを求め、テスト可能最長パスを活性化するための遷移テストパターンを求める。
【００９２】
続いて、アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに第１のメモリ初期化データと第２のメモリ初期化データを設定するためのデータパターン系列を求め、メモリ回路Ｍの制御信号群を、メモリ回路Ｍへ書き込み可能にできる値に設定する制御値パターン系列を求める。次に、初期値設定スキャンＦＦ群の値によりメモリ回路Ｍに書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群の値を期待値として求め、初期値設定スキャンＦＦ群と遷移値設定スキャンＦＦ群に設定された値と、期待値によりシリアルパターンを生成する。
【００９３】
そして、スキャンモードによりシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群に設定し、スキャンクロック信号によりデータの書き込みを行い、続いてテスト対象メモリ回路Ｍへ遷移値パターンで書き込もうとしたデータの値を読み出し、出力値設定スキャンＦＦに取りこみ、期待値と比較することによって、すなわち遷移値パターンではデータが書き換えられないことを確認することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【００９４】
このように実施の形態５によれば、メモリ回路Ｍの“Write→nonWrite”時のライトイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
［実施の形態６］
実施の形態４として、メモリ回路ＭのリードイネーブルＮＲＥの読み取り不可から読み取り可能への遷移時“nonRead→Read”における、リードネーブルラインのテストパターン生成方法について説明する。
【００９５】
図２１は、実施の形態６におけるリードイネーブルラインのテストパターン生成方法を示す回路図である。この図２１に示す集積回路は、図１の通常動作経路わ成す論理回路部の回路図であり、実施の形態１と同様の遷移値設定ＳＦＦ群と初期値設定ＳＦＦ群と出力値設定ＳＦＦ群を備えている。
【００９６】
スキャンＦＦ１の出力とスキャンＦＦ２の出力はＡＮＤゲートｇ３に供給され、スキャンＦＦ２の出力はスキャンＦＦ１２に供給され、入力端子Ｘ１とスキャンＦＦ３の出力がＡＮＤゲートｇ５に供給され、入力端子Ｘ２はスキャンＦＦ１４に供給され、入力端子Ｘ３はスキャンＦＦ１５に供給され、スキャンＦＦ４の出力とスキャンＦＦ５の出力はＯＲゲートｇ８に供給され、入力端子Ｘ４とスキャンＦＦ６の出力がＯＲゲートｇ１０に供給され、スキャンＦＦ６の出力はスキャンＦＦ１８に供給され、ＯＲゲートｇ３の出力はスキャンＦＦ１１の入力に供給され、ＯＲゲートｇ５の出力はスキャンＦＦ１３に供給され、ＯＲゲートｇ８の出力はスキャンＦＦ１６に供給され、ＯＲゲートｇ１０の出力はスキャンＦＦ１７に供給される。
【００９７】
またスキャンＦＦ１３の出力はＮＯＴゲートＧ２に供給され、スキャンＦＦ１２の出力とＮＯＴゲートＧ２の出力はＮＡＮＤゲートＧ１に供給され、ＮＡＮＤゲートＧ１とスキャンＦＦ１１の出力はＡＮＤゲートＧ１０に供給され、スキャンＦＦ１４の出力とスキャンＦＦ１５の出力はＮＡＮＤゲートＧ５の入力に供給され、スキャンＦＦ１７の出力はＮＯＴゲートＧ７に供給され、スキャンＦＦ１６の出力とＮＯＴゲートＧ７の出力はＮＡＮＤゲートＧ８に供給され、スキャンＦＦ１８の出力はＮＯＴゲートＧ１１に供給され、ＮＡＮＤゲートＧ８の出力とＮＯＴゲートＧ１１の出力はＮＡＮＤゲートＧ９に供給される。
【００９８】
またスキャンＡＮＤゲートＧ１０の出力は、テスト用ライトイネーブルＮＷＥとともにセレクタＳ８に供給され、テストモード信号はセレクタＳ８の制御信号として供給され、セレクタＳ８の出力はメモリ回路ＭのライトイネーブルＮＷＥに供給される。またＮＡＮＤゲートＧ５は、テスト用チップイネーブルＮＣＥとともにセレクタＳ７に供給され、テストモード信号はセレクタＳ７の制御信号として供給され、セレクタＳ７の出力はメモリ回路ＭのチップイネーブルＮＣＥに供給される。さらにＮＡＮＤゲートＧ９の出力は、テスト用リードイネーブルＮＲＥとともにセレクタＳ９に供給され、テストモード信号はセレクタＳ９の制御信号として供給され、セレクタＳ９の出力はメモリ回路ＭのリードイネーブルＮＲＥに供給される。
【００９９】
またスキャンＦＦ２０の出力はスキャンＦＦ２３に供給され、スキャンＦＦ２３の出力は、テスト用ＤＩ［０］とともにセレクタＳ４に供給され、テストモード信号はセレクタＳ４の制御信号として供給され、セレクタＳ４の出力はメモリ回路ＭのＤＩ［０］に供給される。またスキャンＦＦ２１の出力はスキャンＦＦ２４に供給され、スキャンＦＦ２４の出力は、テスト用ＤＩ［１］とともにセレクタＳ５に供給され、テストモード信号はセレクタＳ５の制御信号として供給され、セレクタＳ５の出力はメモリ回路ＭのＤＩ［１］に供給されている。さらにスキャンＦＦ２２の出力はスキャンＦＦ２５に供給され、スキャンＦＦ２５の出力は、テスト用ＤＩ［２］とともにセレクタＳ６に供給され、テストモード信号はセレクタＳ６の制御信号として供給され、セレクタＳ９の出力はメモリ回路ＭのＤＩ［２］に供給される。
【０１００】
またスキャンＦＦ２６の出力はスキャンＦＦ２９に供給され、スキャンＦＦ２９の出力は、テスト用ＡＤ［０］とともにセレクタＳ１に供給され、テストモード信号はセレクタＳ１の制御信号として供給され、セレクタＳ１の出力はメモリ回路ＭのアドレスラインＡＤ［０］に供給される。またスキャンＦＦ２７の出力はスキャンＦＦ３０に供給され、スキャンＦＦ３０の出力は、テスト用ＡＤ［１］とともにセレクタＳ２に供給され、テストモード信号はセレクタＳ２の制御信号として供給され、セレクタＳ２の出力はメモリ回路ＭのアドレスラインＡＤ［１］に供給される。さらにスキャンＦＦ２８の出力はスキャンＦＦ３１に供給され、スキャンＦＦ３１の出力は、テスト用ＡＤ［２］とともにセレクタＳ３に供給され、テストモード信号はセレクタＳ３の制御信号として供給され、セレクタＳ３の出力はメモリ回路ＭのアドレスラインＡＤ［２］に供給される。
【０１０１】
またメモリ回路ＭのデータアウトラインＤＯ［０］はスキャンＦＦ３２の入力に接続され、メモリ回路ＭのデータアウトラインＤＯ［１］はスキャンＦＦ３３の入力に接続され、メモリ回路ＭのデータアウトラインＤＯ［２］はスキャンＦＦ３４の入力に接続される。
【０１０２】
また、クロックＣＬＫとテスト用クロックＴＣＬＫとスキャン用クロックＳＣＬＫはそれぞれセレクタ１０の入力に接続され、テストモード信号はセレクタＳ１０の制御信号Ｓ１として接続され、スキャンモード信号はセレクタＳ１０の制御信号Ｓ２として接続され、セレクタ１０の出力はメモリ回路のＣＬＫに供給される。これらテストモード信号（制御信号Ｓ１）とスキャンモード信号（制御信号Ｓ２）により、上述したように、クロックが選択されてメモリ回路のＣＬＫへ供給される。
【０１０３】
次に、リードイネーブルラインＮＷＥのテストパターン生成方法“nonRead→Read”の処理手順を、図２２に示すフローチャートを参照しながら説明する。
ステップ−９０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するリードイネーブルから読出し不可から読出し可能への遷移に対するテスト可能最長パスを選択する。例えば、対象故障として図２１のライトイネーブルＮＲＥの読出し不可から読出し可能への遷移ｆａｌｌ（“１”から“０”への遅延故障）に対するテスト可能最長パスとして、スキャンＦＦ１７−Ｇ７−Ｇ８−Ｇ９−ＮＲＥを選択する。
ステップ−９０２
次に、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求める。すなわち、初期値設定スキャンＦＦ群１６〜１８に値を生成する。この時の初期値設定スキャンＦＦ群１６〜１８の値はそれぞれ＜１，０，ｘ＞となる。
ステップ−９０３
次に、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。すなわち、遷移値設定スキャンＦＦ群４〜６および入力端子Ｘ４に値を生成する。この時の遷移値設定スキャンＦＦ群４〜６の値および入力端子Ｘ４の値はそれぞれ＜１，１，０，１＞となる。
ステップ−９０４
次に、アドレスラインに任意の値を設定するアドレスパターン系列を求める。
アドレスを任意の値であるＡＤ［２：０］＝＜０，１，０＞になるように初期値設定スキャンＦＦ２９〜３１および遷移値設定スキャンＦＦ２６〜２８に値を生成する。この時の値は＜０，１，０，０，１，０＞になる。
ステップ−９０５
次に、データラインに任意の値を設定するためのデータパターン系列を求める。メモリ回路のデータを任意の値であるＤＩ［２：０］＝＜０，１，０＞になるように初期値設定スキャンＦＦ２３〜２５及び遷移値設定スキャンＦＦ２０〜２２に値を生成する。この時の＜０，１，０，０，１，０＞になる。
ステップ−９０６
次に、メモリ回路の制御信号群を前記メモリ回路へ書き込みできる値を初期値スキャンＦＦに設定するための制御値（制御信号群）初期化パターンを求める。すなわち、メモリ回路の制御信号群であるＮＣＥ、ＮＷＥに書き込み動作を許可するための値＜０，０＞になるように初期値設定スキャンＦＦ１１〜１５に値を生成する。このときの値は、＜０，ｘ，ｘ，１，１＞になる。
ステップ−９０７
次に、メモリ回路の制御信号群を前記メモリ回路から読み出しができる値を遷移値スキャンＦＦに設定するための制御値（制御信号群）遷移パターンを求める。すなわち、メモリ回路の制御信号群であるＮＣＥ、ＮＷＥに読出し動作を許可するための値＜０，１＞になるように遷移値設定スキャンＦＦ１〜３および入力端子Ｘ１〜Ｘ３に値を生成する。この時の値は＜１，１，０，１，１，１＞になる。
ステップ−９０８
次に、初期値設定スキャンＦＦ群（リードイネーブル初期化パターン）の値によりメモリ回路に書きこまれた値をステップ−９０４で設定したアドレスライン値で読み出した時の出力設定値スキャンＦＦ（出力設定値パターン）群の値を期待値として求める。すなわち、初期値設定スキャンＦＦ２３〜２５，２９〜３０に設定した値によりメモリ回路Ｍに書きこまれた値ＤＩ［２:０］＝＜０，１，０＞をＤＯ［２:０］から読み出した値を出力値設定スキャンＦＦ３２〜３４に設定する。この時の出力値設定スキャンＦＦ３２〜３４の値は＜０，１，０＞になる。このときの値を期待値とする。
ステップ−９０９
次に、期待値の反転値をテスト時の出力設定値ＦＦ群（出力値設定パターン）の値とする。ステップ−９０８で生成した期待値と異なる値を求める。期待値は＜０，１，０＞であるので、ここでは値は＜１，０，１＞とする。
ステップ−９１０
次に、リードイネーブル初期化パターンとリードイネーブル遷移パターンとアドレスパターン系列とデータパターン系列と制御値初期化パターンと制御値遷移パターンと出力設定値パターンと期待値を、スキャンＦＦ群のシリアルパターンとして生成する。すなわち、遷移値設定スキャンＦＦと初期値設定スキャンＦＦと出力値設定スキャンＦＦに設定された値と、期待値をシリアルパターンとして生成する。
【０１０４】
以上で対象故障に対するテストパターン生成を終了する。
このように生成したテストパターンを使用した検査方法について、図２３のフローチャートと図２４のメモリ回路の各端子における波形図を参照しながら用いて説明する。
ステップ−１００１
まず、スキャンイネーブル信号（ＳＥ信号）をスキャンモードに設定する。すなわち、スキャンモード信号をスキャンモードである“１”に設定する。
ステップ−１００２
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。スキャンシフト動作で各スキャンＦＦに値が設定されると、メモリ回路の各端子はＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，１，０＞、ＤＩ［２：０］＝＜０，１，０＞になる。
ステップ−１００３
次に、スキャンイネーブル信号ＳＥとテストモード信号を通常モードに設定する。すなわち、スキャンイネーブル信号を通常モードである“０”に設定する。また、テストモード信号を通常モードである“１”に設定する。
ステップ−１００４
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（メモリ回路Ｍの書き込み動作）。クロックが入力されると、メモリ回路のアドレスＡＤ［２：０］＝＜０，１，０＞のデータＤＩ［２：０］＝＜０，１，０＞が書きこまれる。この時、ＮＲＥ＝０、ＮＷＥ＝１に設定される。
ステップ−１００５
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（メモリ回路Ｍの読み出し動作）。クロックが入力されると、メモリ回路のアドレス＜０，１，０＞のデータがメモリ回路から読み出される。リードイネーブルＮＲＥに遅延故障が発生している場合、メモリ回路Ｍへのリード動作が正常に行われず出力設定値ＦＦ群３２〜３４は期待値と異なる値である＜１，０，１＞になっている。遅延故障が発生していない場合は、ＤＩ［２：０］＝＜０，１，０＞が読み出される。
ステップ−１００６
次に、スキャンイネーブル信号をスキャンモードに設定する。すなわち、スキャンイネーブル信号をスキャンモードである“１”に設定する。
ステップ−１００７
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【０１０５】
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するリードイネーブルラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求め、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。続いて、アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに任意の値を設定するためのデータパターン系列を求め、メモリ回路の制御信号群を前記メモリ回路へ書き込みし、続いて読み出しできる値を設定するための制御値パターン系列（制御値初期化パターンと制御値遷移パターン）を求める。次に、初期値設定スキャンＦＦ群の値によりメモリ回路に書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群の値を期待値として求め、期待値の反転値を求めて出力値スキャンＦＦ群（出力設定値パターン）の値とし、またリードイネーブル初期化パターンとリードイネーブル遷移パターンとアドレスパターン系列とデータパターン系列と制御値初期化パターンと制御値遷移パターンと出力設定値パターンと期待値によりシリアルパターンを生成する。
【０１０６】
そして、スキャンモードによりシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群および出力設定値スキャンＦＦ群に設定し、スキャンクロック信号により、テスト対象メモリ回路Ｍへ初期値パターンで書きこんだアドレスのデータの値を読み出し、出力値設定スキャンＦＦに取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【０１０７】
このように実施の形態６によれば、メモリ回路Ｍの“nonRead→Read”時のリードイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
［実施の形態７］
実施の形態７として、メモリ回路ＭのリードイネーブルＮＲＥの読み取り可能から読み取り不可への遷移時“READ→nonREAD”における、ライトイネーブルラインのテストパターン生成方法について説明する。なお、実施の形態７におけるライトイネーブルラインのテストパターン生成方法を示す回路図は、実施の形態６（図２１）と同一であり、説明を省略する。
【０１０８】
リードイネーブルラインのテストパターン生成方法“READ→nonREAD”の処理手順を、図２５に示すフローチャートを参照しながら説明する。
ステップ−１２０１
まず、被検査半導体集積回路のメモリ回路Ｍに対するリードイネーブルから読出し可能から読出し不可への遷移に対するテスト可能最長パスを選択する。例えば、対象故障として図２１のライトイネーブルＮＲＥの読出し可能から読出し不可への遷移ｒｉｓｅ（“０”から“１”への遅延故障）に対するテスト可能最長パスとして、スキャンＦＦ１７−Ｇ７−Ｇ８−Ｇ９−ＮＲＥを選択する。
ステップ−１２０２
次に、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求める。すなわち、ＮＲＥ＝０となる初期値設定スキャンＦＦ群１６〜１８に値を生成する。この時の初期値設定スキャンＦＦ群１６〜１８の値はそれぞれ＜ｘ，１，０＞となる。
ステップ−１２０３
次に、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。すなわち、ＮＲＥ＝１となる遷移値設定スキャンＦＦ群４〜６および入力端子Ｘ４に値を生成する。この時の遷移値設定スキャンＦＦ群４〜６の値および入力端子Ｘ４の値はそれぞれ＜１，１，０，０＞となる。
ステップ−１２０４
次に、初期化パターンでメモリ回路Ｍを読み出すための第１のメモリ初期化アドレスを求める。例えば、メモリ回路Ｍを初期化するための第１のメモリ初期化アドレスであるＡＤ［２：０］＝＜０，１，０＞を求める。
ステップ−１２０５
次に、遷移パターンでメモリ回路Ｍを読み出すための第１のメモリ初期化アドレスと異なる値である第２のメモリ初期化アドレスを求める。例えば、第１のメモリ初期化アドレスと異なる第２のメモリ初期化アドレスであるアドレスＡＤ［２:０］＝＜１，０，１＞を求める。
ステップ−１２０６
次に、第１のメモリ初期化アドレスでメモリ回路Ｍに書き込むためのデータである第１のメモリ初期化データを求める。例えば、第１のメモリ初期化アドレスであるＡＤ［２：０］＝＜０，１，０＞でメモリ回路Ｍに書き込む第１のメモリ初期化データであるＤＩ［２：０］＝＜１，１，１＞を求める。
ステップ−１２０７
次に、第２のメモリ初期化アドレスでメモリ回路Ｍに書き込むためのデータであり第１のメモリ初期化データと異なる値である第２のメモリ初期化データを求める。例えば、第２のメモリ初期化アドレスであるアドレスＡＤ［２:０］＝＜１，０，１＞でメモリ回路に書き込む第２のメモリ初期化データであるＤＩ［２：０］＝＜０，０，０＞を求める。
ステップ−１２０８
次に、メモリ回路の制御信号群を前記メモリ回路から読出しができる値を初期値スキャンＦＦに設定するためのメモリ初期化制御値を求める。すなわち、第１および第２のメモリ初期化アドレスに対してそれぞれ第１および第２のメモリ初期化データを書き込むために、メモリ回路の制御信号群であるＮＣＥ、ＮＷＥに書き込み動作を許可するためのＮＣＥ、ＮＷＥ=＜０，０＞を求める。ステップ−１２０４〜１２０８によりテスト用経路の第１のメモリ初期化パターンと第２のメモリ初期化パターンが形成される。
ステップ−１２０９
次に、第１のメモリ初期化パターンのアドレスに書き込んだ第１のメモリ初期化データを読み出すために初期値設定スキャンＦＦ群の値を設定する。第１のメモリ初期化アドレスのデータをメモリ回路Ｍから読出しが可能になるように、ＮＣＥ、ＮＷＥ=＜０，１＞とする初期値設定スキャンＦＦ１１〜１５、２９〜３１に値を生成する。このときの各スキャンＦＦの値は＜１，０、ｘ、１，１，０，１，０＞になる。
ステップ−１２１０
次に、第２メモリ初期化パターンのアドレスに書き込んだ第２のメモリ初期化データを読み出すために遷移値設定スキャンＦＦ群の値を設定する。すなわち、第２のメモリ初期化アドレスのデータをメモリ回路から読出しが可能になるように、ＮＣＥ、ＮＷＥ=＜０，１＞とする遷移値設定スキャンＦＦ１〜３、２６〜２８及び入力端子Ｘ１〜Ｘ３に値を生成する。このときの各スキャンＦＦの値および入力端子の値は＜１，０，ｘ，１，０，１，ｘ，１，１＞になる。
ステップ−１２１１
次に、第１のメモリ初期化パターンによりメモリ回路Ｍに書きこまれる値をステップ−１２０４で設定したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群（出力設定値パターン）の値を期待値として求める。すなわち、第１のメモリ初期化アドレスＡＤ［２：０］＝＜０，１，０＞でメモリ回路Ｍに書き込まれる値＜１，１，１＞をＤＯ［２:０］から読み出した値を出力値設定スキャンＦＦ３２〜３４に設定する。この時の出力値設定スキャンＦＦ３２〜３４の値は＜１，１，１＞になる。このときの値を期待値とする。
ステップ−１２１２
次に、リードイネーブル初期化パターンとリードイネーブル遷移パターンと初期値設定スキャンＦＦ群の値と遷移値設定スキャンＦＦ群の値と期待値を、スキャンＦＦ群のシリアルパターンとして生成する。
【０１０９】
このように生成したテストパターンを使用した検査方法について、図２５のフローチャートと図２６のメモリ回路の各端子における波形図を参照しながら説明する。
ステップ−１４０１
テストモード信号をテストモードに設定する。テストモード信号をテストモードである“０”に設定する。
ステップ−１４０２
次に、上記ステップ−１２０４〜ステップ−１２０７で生成した第１のメモリ初期化パターンおよび第２のメモリ初期化パターンを印加し、メモリ回路の初期化を行う。
【０１１０】
すなわち、まずテスト用経路からメモリ回路Ｍへ第１のメモリ初期化アドレスパターンおよび第１のメモリ初期化データパターンおよびメモリ初期化制御値によりメモリ回路Ｍに書きこみを行う。このときのメモリ回路Ｍの各端子は、ＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜０，１，０＞、ＤＩ［２：０］＝＜１，１，１＞になり、メモリ回路のアドレス＜０，１，０＞にデータ＜１，１，１＞が書きこまれる。続いて、テスト用経路からメモリ回路へ第２のメモリ初期化アドレスパターンおよび第２のメモリ初期化データパターンおよびメモリ初期化制御値によりメモリ回路Ｍに書きこみを行う。このときのメモリ回路Ｍの各端子は、ＮＣＥ＝０，ＮＷＥ＝０，ＮＲＥ＝１，ＡＤ［２：０］＝＜１，０，１＞、ＤＩ［２：０］＝＜０，０，０＞になり、メモリ回路のアドレス＜１，０，１＞にデータ＜０，０，０＞が書きこまれる。
ステップ−１４０３
次に、スキャンイネーブル信号（ＳＥ信号）をスキャンモードの設定する。すなわち、スキャンイネーブル信号をスキャンモードである“１”に設定する。
ステップ−１４０４
次に、生成したシリアルパターンをスキャンシフト動作で各スキャンＦＦに設定する。スキャンシフト動作で各スキャンＦＦに値が設定されると、メモリ回路の各端子はＮＣＥ＝０，ＮＷＥ＝１，ＮＲＥ＝０，ＡＤ［２：０］＝＜０，１，０＞、ＤＩ［２：０］＝＜ｘ，ｘ，ｘ＞になる。
ステップ−１４０５
次に、スキャンイネーブル信号とテストモード信号を通常動作モードに設定する。スキャンイネーブル信号を通常モードである“０”に設定する。また、テストモード信号を通常モードである“１”に設定する。
ステップ−１４０６
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路ＭおよびスキャンＦＦにクロックを印加する（メモリ回路Ｍの読み出し動作）。クロックが入力されると、アドレス＜０，１，０＞のＤＯ［２：０］＝＜１，１，１＞が出力され、続けてメモリ回路ＭのアドレスＡＤ［２：０］＝＜１，０，１＞、ＮＲＥ＝１、ＮＷＥ＝１に設定される。
ステップ−１４０７
次に、テスト対象メモリ回路Ｍの実動作クロック速度でテスト対象メモリ回路Ｍおよび各スキャンＦＦにクロックを印加する（メモリ回路Ｍへのアクセス動作「遅延故障発生時はリード動作が発生」）。クロックが入力されると、リードイネーブルＮＲＥに遅延故障が発生している場合、メモリ回路Ｍへのリード動作が行われ出力設定値ＦＦ群３２〜３４はアドレス＜１，０，１＞のＤＯ［２：０］＝＜０，０，０＞になる。遅延故障が発生していない場合は、メモリ回路Ｍへのリード動作は行われずステップ１４０６で読み出したＤ０［２：０］＝＜１，１，１＞に対する出力設定値ＦＦ群３２〜３４＝＜１，１，１＞を維持している。
ステップ−１４０８
次に、スキャンイネーブル信号をスキャンモードに設定する。スキャンイネーブル信号を“１”に設定する。
ステップ−１４０９
次に、スキャンシフト動作で外部端子に値をシフトアウトし期待値と比較する。スキャンシフト動作を行い、期待値比較において、期待値と異なる値が観測された場合は、テスト対象故障に遅延故障があると判定される。
【０１１１】
上記処理手順によれば、被検査半導体集積回路のメモリ回路に対するリードイネーブルラインから対象故障を選択し、上記選択した対象故障に対応するテスト可能最長パスを選択し、テスト可能最長パスを初期化するための初期値をあたえるリードイネーブル初期化テストパターンを求め、テスト可能最長パスを活性化するためのリードイネーブル遷移テストパターンを求める。続いて、第１のメモリ初期化パターンと第２のメモリ初期化パターンを形成する（アドレスラインに任意の値を設定するアドレスパターン系列を求め、データラインに任意の値を設定するためのデータパターン系列を求め、データパターン系列をメモリ回路Ｍへ書き込む制御信号群を求める）。次に、第１のメモリ初期化パターンによりメモリ回路Ｍに書きこまれた値をアドレスパターン系列で生成したアドレスライン値で読み出した時の出力設定値スキャンＦＦ群の値を期待値として求める。続いて、第１のメモリ初期化パターンと第２のメモリ初期化パターンによりメモリ回路Ｍに書きこまれた値を読み出す制御信号群を求め、これら制御信号群を含む初期値設定スキャンＦＦ群の値と遷移値設定スキャンＦＦ群の値と、リードイネーブル初期化パターンとリードイネーブル遷移パターンと期待値によりシリアルパターンを生成する。
【０１１２】
そして、テストモードで、第１のメモリ初期化パターンと第２のメモリ初期化パターンをメモリ回路Ｍに書き込み、スキャンモードでシリアルパターンを遷移値設定スキャンＦＦ群および初期値設定スキャンＦＦ群に設定し、テスト対象メモリ回路Ｍへ第１のメモリ初期値パターンで書きこんだアドレスのデータの値を読み出し、続けて書き込んだデータを出力値設定スキャンＦＦ群に取りこみ、期待値と比較することによって、選択した対象故障に遅延故障があるかどうかを判定することができる。
【０１１３】
このように実施の形態７によれば、メモリ回路Ｍの“Read→nonRead”時のリードイネーブルに接続されるパスの遅延故障を検出するためテストパターンを形成でき、遅延故障検査を行うことができる。したがって、メモリ回路Ｍが存在している集積回路（ＬＳＩ）内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができる。
【０１１４】
なお、上記実施の形態１〜７において、データラインまたはアドレスラインまたは制御信号群の値は初期値設定スキャンＦＦおよび遷移値設定スキャンＦＦにシリアルパターンを用いてスキャンシフト動作で値を設定しているが、テスト用経路またはメモリテスト回路から設定することも可能である。
【０１１５】
また上記実施の形態１〜７において、制御信号群をＮＣＥ，ＮＷＥ，ＮＲＥとしているが、そのほかの制御端子に関してもメモリ回路の任意のアドレスに書きこめる、またはメモリ回路の任意のアドレスを読み出せる設定にすることで実現可能である。
【０１１６】
また、上記実施の形態１〜７では、データアウトの値は、出力設定スキャンＦＦ群にとりこみスキャンシフト動作で出力端子の値を観測し、期待値比較するようにしているが、メモリ回路Ｍの出力をテスト用経路から観測し期待値比較することまたはテスト回路で期待値比較することも可能である。
【０１１７】
また、上記実施の形態１〜７によれば、集積回路（ＬＳＩ）内のパス上にメモリ回路Ｍが存在していても、そのパス上の遅延試験を行え、したがって、集積回路（ＬＳＩ）の動的な動作を保証して製品の信頼性を著しく高めることが可能となるが、従来の技術で記述したような静的な機能テストも併用することにより、回路内の動的な動作保証と静的な動作保証の双方を同時に行って製品の信頼性を飛躍的に向上させることが可能となる。
【産業上の利用可能性】
【０１１８】
本発明にかかる半導体集積回路の遅延故障テストパターン生成方法および遅延故障検査方法は、回路内のパス上にメモリ回路が存在している場合であっても、このパスを試験してその遅延故障を検出でき、したがって回路内の動的な動作を保証でき、製品の信頼性を飛躍的に向上させることができるという効果を有し、半導体集積回路の新規開発あるいは改善等の用途にも適用できる。
【図面の簡単な説明】
【０１１９】
【図１】本発明の実施の形態１における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路とメモリテスト回路を示す図、およびメモリテスト回路のクロック制御図である。
【図２】同メモリ回路のデータラインのテストパターン生成方法を示す回路図である。
【図３】同メモリ回路のデータラインのテストパターン生成方法を示す図である。
【図４】同メモリ回路のデータラインの検査方法を示す図である。
【図５】同メモリ回路のデータライン検査方法を示すタイミング図である。
【図６】本発明の実施の形態２における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路のアドレスラインのテストパターン生成方法を示す回路図である。
【図７】同メモリ回路のアドレスラインのテストパターン生成方法を示す図である。
【図８】同メモリ回路のアドレスラインの検査方法を示す図である。
【図９】同メモリ回路のアドレスライン検査方法を示すタイミング図である。
【図１０】本発明の実施の形態３における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路のデータアウトラインのテストパターン生成方法を示す回路図である。
【図１１】同メモリ回路のデータアウトラインのテストパターン生成方法を示す図である。
【図１２】同メモリ回路のデータアウトラインの検査方法を示す図である。
【図１３】同メモリ回路のデータアウトライン検査方法を示すタイミング図である。
【図１４】本発明の実施の形態４における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路のライトイネーブルラインのテストパターン生成方法を示す回路図である。
【図１５】同メモリ回路のライトイネーブルラインのテストパターン生成方法を示す図である。
【図１６】同メモリ回路のライトイネーブルラインの検査方法を示す図である。
【図１７】同メモリ回路のライトイネーブルライン検査方法を示すタイミング図である。
【図１８】本発明の実施の形態５における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路のライトイネーブルラインのテストパターン生成方法を示す図である。
【図１９】同メモリ回路のライトイネーブルラインの検査方法を示す図である。
【図２０】同メモリ回路のライトイネーブルライン検査方法を示すタイミング図である。
【図２１】本発明の実施の形態６における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路のリードイネーブルラインのテストパターン生成方法を示す回路図である。
【図２２】同メモリ回路のリードイネーブルラインのテストパターン生成方法を示す図である。
【図２３】同メモリ回路のリードイネーブルラインの検査方法を示す図である。
【図２４】同メモリ回路のリードイネーブルライン検査方法を示すタイミング図である。
【図２５】本発明の実施の形態７における半導体集積回路の遅延故障テストパターン生成方法及び遅延故障検査方法を使用するメモリ回路のリードイネーブルラインのテストパターン生成方法を示す図である。
【図２６】同メモリ回路のリードイネーブルラインの検査方法を示す図である。
【図２７】同メモリ回路のリードイネーブルライン検査方法を示すタイミング図である。
【図２８】メモリ周辺回路を示す回路図である。
【図２９】メモリ周辺回路を２時刻展開した構成を示す回路図である。
【図３０】テストパターン生成に用いられる経路活性化表を示す図である。
【図３１】テストパターン生成に用いられる含意表を示す図である。
【図３２】テストパターン生成に用いられる５値論理を示す図である。
【図３３】パス遅延故障のテストパターン生成方法の一例を示す図である。
【図３４】パス遅延故障のテストパターン生成方法の一例を示す図である。
【符号の説明】
【０１２０】
１〜９  スキャン・フリップフロップ
１１〜１８  スキャン・フリップフロップ
２０〜３４  スキャン・フリップフロップ
Ｓ１〜Ｓ１０  セレクタ回路
Ｘ１〜Ｘ５  入力端子
Ｘ６〜Ｘ８  出力端子
【図１】
2005201829.tif 000003
【図２】
2005201829.tif 000004
【図３】
2005201829.tif 000005
【図４】
2005201829.tif 000006
【図５】
2005201829.tif 000007
【図６】
2005201829.tif 000008
【図７】
2005201829.tif 000009
【図８】
2005201829.tif 000010
【図９】
2005201829.tif 000011
【図１０】
2005201829.tif 000012
【図１１】
2005201829.tif 000013
【図１２】
2005201829.tif 000014
【図１３】
2005201829.tif 000015
【図１４】
2005201829.tif 000016
【図１５】
2005201829.tif 000017
【図１６】
2005201829.tif 000018
【図１７】
2005201829.tif 000019
【図１８】
2005201829.tif 000020
【図１９】
2005201829.tif 000021
【図２０】
2005201829.tif 000022
【図２１】
2005201829.tif 000023
【図２２】
2005201829.tif 000024
【図２３】
2005201829.tif 000025
【図２４】
2005201829.tif 000026
【図２５】
2005201829.tif 000027
【図２６】
2005201829.tif 000028
【図２７】
2005201829.tif 000029
【図２８】
2005201829.tif 000030
【図２９】
2005201829.tif 000031
【図３０】
2005201829.tif 000032
【図３１】
2005201829.tif 000033
【図３２】
2005201829.tif 000034
【図３３】
2005201829.tif 000035
【図３４】
2005201829.tif 000036