(57)【特許請求の範囲】
【請求項１】
データ入力およびスキャン入力を有する複数の第１スキャンフリップフロップを含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、前記第１ユーザロジックの出力に接続される第１入力を有する第１論理ゲートと、少なくとも１つの第１スキャンフリップフロップを含み、前記第１論理ゲートの出力に接続された第３ユーザロジックと、前記第２ユーザロジックと前記第１論理ゲートとの間に挿入された制御点とを有し、前記制御点は、前記第２ユーザロジックまたは前記第３ユーザロジックの前記第１スキャンフリップフロップの１つのデータ出力がデータ入力に接続された第２スキャンフリップフロップと、一対の入力が前記第２スキャンフリップフロップのデータ出力および前記第２ユーザロジックの出力にそれぞれ接続され、出力が前記第１論理ゲートの第２入力に接続された第２論理ゲートとを有する論理回路の故障検出方法であって、
前記スキャン入力を有効にし、前記第１および第２スキャンフリップフロップをシフトレジスタとして動作させるスキャンシフト期間に、前記第２ユーザロジックまたは前記第３ユーザロジックの前記第１スキャンフリップフロップの前記１つおよび前記第２スキャンフリップフロップに同じ論理を設定し、前記第１入力に直列に接続される前記第１ユーザロジックの一対の前記第１スキャンフリップフロップに互いに異なる論理を設定し、
前記データ入力を有効にするキャプチャ期間に、前記第１および第２スキャンフリップフロップに２つのクロックパルスを供給し、前記第３ユーザロジックの前記第１スキャンフリップフロップに保持される論理が変化しないときに前記第１入力を含む信号パスの遅延故障を検出すること
を特徴とする論理回路の故障検出方法。
【請求項２】
前記スキャンシフト期間に前記第２ユーザロジックまたは前記第３ユーザロジックの前記第１スキャンフリップフロップの前記１つおよび前記第２スキャンフリップフロップに互いに異なる論理を設定し、前記一対の第１スキャンフリップフロップに同じ論理を設定し、前記キャプチャ期間に、前記第１および第２スキャンフリップフロップに２つのクロックパルスを供給し、前記第３ユーザロジックの前記第１スキャンフリップフロップに保持される論理が変化しないときに前記第２入力を含む信号パスの遅延故障を検出すること
を特徴とする請求項１に記載の論理回路の故障検出方法。
【請求項３】
前記制御点は、前記第２スキャンフリップフロップのデータ出力と前記第２論理ゲートとの間に配置され、前記テストモード中に、前記第２スキャンフリップフロップからの出力信号を前記第２論理ゲートに伝達し、前記テストモードを除く期間に、前記出力信号の前記第２論理ゲートへの伝達をマスクするとともに、前記第２ユーザロジックからの出力信号を前記第２論理ゲートを介して前記第１論理ゲートに伝達するための論理値を前記第２論理ゲートに出力するマスク回路を備え、
前記スキャンシフト期間および前記キャプチャ期間の動作を、前記テストモード中に実施すること
を特徴とする請求項１または請求項２に記載の論理回路の故障検出方法。
【請求項４】
複数のフリップフロップを含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、前記第１ユーザロジックの出力に接続される第１入力および第２ユーザロジックの出力に接続される第２入力を有する第１論理ゲートと、前記第１論理ゲートの出力に接続され、少なくとも１つのフリップフロップを含む第３ユーザロジックとを有する論理回路のテスト回路挿入方法であって、
前記フリップフロップをデータ入力およびスキャン入力を各々有する第１スキャンフリップフロップに置き換える処理と、
データ入力およびスキャン入力を有する第２スキャンフリップフロップと、一対の入力が前記第２スキャンフリップフロップのデータ出力および前記第２ユーザロジックの出力にそれぞれ接続され、出力が前記第２入力に接続された第２論理ゲートとを有する制御点を、前記第２ユーザロジックと前記第１論理ゲートとの間に挿入する処理と、
前記第２スキャンフリップフロップのデータ入力に前記第２ユーザロジックまたは前記第３ユーザロジックの前記第１スキャンフリップフロップの１つのデータ出力を接続する処理と
を含むことを特徴とする論理回路のテスト回路挿入方法。
【請求項５】
テストモード中に、前記第２スキャンフリップフロップからの出力信号を前記第２論理ゲートに伝達し、前記テストモードを除く期間に、前記出力信号の前記第２論理ゲートへの伝達をマスクするとともに、前記第２ユーザロジックからの出力信号を前記第２論理ゲートを介して前記第１論理ゲートに伝達するための論理値を前記第２論理ゲートに出力するマスク回路を、前記第２スキャンフリップフロップのデータ出力と前記第２論理ゲートとの間に配置する処理を含むこと
を特徴とする請求項４に記載の論理回路のテスト回路挿入方法。
【請求項６】
複数のフリップフロップを含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、前記第１ユーザロジックの出力に接続される第１入力および第２ユーザロジックの出力に接続される第２入力を有する第１論理ゲートと、前記第１論理ゲートの出力に接続され、少なくとも１つのフリップフロップを含む第３ユーザロジックとを有する論理回路のテスト回路挿入装置であって、
前記フリップフロップをデータ入力およびスキャン入力を各々有する第１スキャンフリップフロップに置き換える処理と、
データ入力およびスキャン入力を有する第２スキャンフリップフロップと、一対の入力が前記第２スキャンフリップフロップのデータ出力および前記第２ユーザロジックの出力にそれぞれ接続され、出力が前記第２入力に接続された第２論理ゲートとを有する制御点を、前記第２ユーザロジックと前記第１論理ゲートとの間に挿入する処理と、
前記第２スキャンフリップフロップのデータ入力に前記第２ユーザロジックまたは前記第３ユーザロジックの前記第１スキャンフリップフロップの１つのデータ出力を接続する処理と
を実施することを特徴とする論理回路のテスト回路挿入装置。
【請求項７】
テストモード中に、前記第２スキャンフリップフロップからの出力信号を前記第２論理ゲートに伝達し、前記テストモードを除く期間に、前記出力信号の前記第２論理ゲートへの伝達をマスクし、前記第２ユーザロジックからの出力信号を前記第２論理ゲートを介して前記第１論理ゲートに伝達するための論理値を前記第２論理ゲートに出力するマスク回路を、前記第２スキャンフリップフロップのデータ出力と前記第２論理ゲートとの間に配置する処理を実施すること
を特徴とする請求項６に記載の論理回路のテスト回路挿入装置。
【請求項８】
データ入力およびスキャン入力を有する複数の第１スキャンフリップフロップを含む第１ユーザロジックと、
少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、
前記第１ユーザロジックの出力に接続される第１入力を有する第１論理ゲートと、
少なくとも１つの第１スキャンフリップフロップを含み、前記第１論理ゲートの出力に接続された第３ユーザロジックと、
前記第２ユーザロジックまたは前記第３ユーザロジックの前記第１スキャンフリップフロップの１つのデータ出力がデータ入力に接続された第２スキャンフリップフロップと、一対の入力が前記第２スキャンフリップフロップのデータ出力およびテストモードを示すテストモード端子に接続されたマスク回路と、一対の入力が前記マスク回路の出力および前記第２ユーザロジックの出力にそれぞれ接続され、出力が前記第１論理ゲートの第２入力に接続された第２論理ゲートとを有する制御点と
を備え、
前記マスク回路は、前記テストモード中に、前記第２スキャンフリップフロップからの出力信号を前記第２論理ゲートに伝達し、前記テストモードを除く期間に、前記出力信号の前記第２論理ゲートへの伝達をマスクするとともに、前記第２ユーザロジックからの出力信号を前記第２論理ゲートを介して前記第１論理ゲートに伝達するための論理値を前記第２論理ゲートに出力すること
を特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路の故障検出方法、テスト回路挿入方法、テスト回路挿入装置および半導体集積回路に関する。
【背景技術】
【０００２】
ロジックＬＳＩ（Large Scale Integration）等の論理回路を含む半導体集積回路では、故障検出率を向上するために、テスト回路である観測点や制御点が論理回路中に挿入される。観測点は、所定のノードの信号値を観測するために論理回路中に挿入され、制御点は、所定のノードに信号値を与えるために論理回路中に挿入される。例えば、観測点または制御点を挿入するときの故障検出率をそれぞれ求め、単位面積当たりの故障検出率の向上効果が高いテスト回路を論理回路内に挿入する手法が提案されている（例えば、特許文献１参照。）。
【０００３】
また、論理回路中の全てのフリップフロップをスキャンフリップフロップに置き換えるフルスキャン設計において、テストパターン数が所定値を超える回路ブロックに観測点や制御点を挿入する手法が提案されている（例えば、特許文献２参照。）。マクロとユーザロジックとの間の遅延故障を検出するために、マクロの入力端子に接続された制御点にトグル動作する機能を追加する手法が提案されている（例えば、特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−８４４２７号公報
【特許文献２】特開２００１−３１２５２９号公報
【特許文献３】特開２００９−２０５４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
論理ゲートの一方の入力にユーザロジックの出力が接続され、論理ゲートの他方の入力に制御点を介して別のユーザロジックの出力が接続される場合、一方の入力を含む信号パスの遅延故障と、他方の入力を含む信号パスの遅延故障とを、１つの制御点を用いて検出できない。具体的には、一方の入力を含む信号パスの遅延故障を検出するために、出力論理を固定する機能を有する制御点を設ける場合、制御点から互いに異なる論理を連続して出力できないため、他方の入力を含む信号パスの遅延故障を検出できない。また、他方の入力を含む信号パスの遅延故障を検出するために、出力論理を順に変化する機能を有する制御点を設ける場合、制御点から同じ論理を連続して出力できないため、一方の入力を含む信号パスの遅延故障を検出できない。
【０００６】
本発明の目的は、論理ゲートの一方の入力を含む信号パスの遅延故障と、論理ゲートの他方の入力を含む信号パスの遅延故障とを、１つの制御点により検出できる論理回路の故障検出方法、テスト回路挿入方法、テスト回路挿入装置および半導体集積回路を提供することである。
【課題を解決するための手段】
【０００７】
本発明の論理回路の故障検出方法の一形態では、データ入力およびスキャン入力を有する複数の第１スキャンフリップフロップを含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、第１ユーザロジックの出力に接続される第１入力を有する第１論理ゲートと、少なくとも１つの第１スキャンフリップフロップを含み、第１論理ゲートの出力に接続された第３ユーザロジックと、第２ユーザロジックと第１論理ゲートとの間に挿入された制御点とを有し、制御点は、第２ユーザロジックまたは第３ユーザロジックの第１スキャンフリップフロップの１つのデータ出力がデータ入力に接続された第２スキャンフリップフロップと、一対の入力が第２スキャンフリップフロップのデータ出力および第２ユーザロジックの出力にそれぞれ接続され、出力が第１論理ゲートの第２入力に接続された第２論理ゲートとを有する論理回路の故障検出方法であって、スキャン入力を有効にし、第１および第２スキャンフリップフロップをシフトレジスタとして動作させるスキャンシフト期間に、第２ユーザロジックまたは第３ユーザロジックの第１スキャンフリップフロップの１つおよび第２スキャンフリップフロップに同じ論理を設定し、第１入力に直列に接続される第１ユーザロジックの一対の第１スキャンフリップフロップに互いに異なる論理を設定し、データ入力を有効にするキャプチャ期間に、第１および第２スキャンフリップフロップに２つのクロックパルスを供給し、第３ユーザロジックの第１スキャンフリップフロップに保持される論理が変化しないときに第１入力を含む信号パスの遅延故障を検出することを特徴とする。
【０００８】
本発明の論理回路のテスト回路挿入方法の一形態では、複数のフリップフロップを含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、第１ユーザロジックの出力に接続される第１入力および第２ユーザロジックの出力に接続される第２入力を有する第１論理ゲートと、第１論理ゲートの出力に接続され、少なくとも１つのフリップフロップを含む第３ユーザロジックとを有する論理回路のテスト回路挿入方法であって、フリップフロップをデータ入力およびスキャン入力を各々有する第１スキャンフリップフロップに置き換える処理と、データ入力およびスキャン入力を有する第２スキャンフリップフロップと、一対の入力が第２スキャンフリップフロップのデータ出力および第２ユーザロジックの出力にそれぞれ接続され、出力が第２入力に接続された第２論理ゲートとを有する制御点を、第２ユーザロジックと第１論理ゲートとの間に挿入する処理と、第２スキャンフリップフロップのデータ入力に第２ユーザロジックまたは第３ユーザロジックの第１スキャンフリップフロップの１つのデータ出力を接続する処理とを含むことを特徴とする。
【０００９】
本発明の論理回路のテスト回路挿入装置の一形態では、複数のフリップフロップを含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、第１ユーザロジックの出力に接続される第１入力および第２ユーザロジックの出力に接続される第２入力を有する第１論理ゲートと、第１論理ゲートの出力に接続され、少なくとも１つのフリップフロップを含む第３ユーザロジックとを有する論理回路のテスト回路挿入装置であって、フリップフロップをデータ入力およびスキャン入力を各々有する第１スキャンフリップフロップに置き換える処理と、データ入力およびスキャン入力を有する第２スキャンフリップフロップと、一対の入力が第２スキャンフリップフロップのデータ出力および第２ユーザロジックの出力にそれぞれ接続され、出力が第２入力に接続された第２論理ゲートとを有する制御点を、第２ユーザロジックと第１論理ゲートとの間に挿入する処理と、第２スキャンフリップフロップのデータ入力に第２ユーザロジックまたは第３ユーザロジックの第１スキャンフリップフロップの１つのデータ出力を接続する処理とを実施することを特徴とする。
【００１０】
本発明の半導体集積回路の一形態では、データ入力およびスキャン入力を有する複数の第１スキャンフリップフロップをそれぞれ含む第１ユーザロジックと、少なくとも１つの第１スキャンフリップフロップを含む第２ユーザロジックと、第１ユーザロジックの出力に接続される第１入力を有する第１論理ゲートと、少なくとも１つの第１スキャンフリップフロップを含み、第１論理ゲートの出力に接続された第３ユーザロジックと、第２ユーザロジックまたは第３ユーザロジックの第１スキャンフリップフロップの１つのデータ出力がデータ入力に接続された第２スキャンフリップフロップと、一対の入力が第２スキャンフリップフロップのデータ出力およびテストモードを示すテストモード端子に接続されたマスク回路と、一対の入力がマスク回路の出力および第２ユーザロジックの出力にそれぞれ接続され、出力が第１論理ゲートの第２入力に接続された第２論理ゲートとを有する制御点とを備え、マスク回路は、テストモード中に、第２スキャンフリップフロップからの出力信号を第２論理ゲートに伝達し、テストモードを除く期間に、出力信号の第２論理ゲートへの伝達をマスクするとともに、第２ユーザロジックからの出力信号を第２論理ゲートを介して第１論理ゲートに伝達するための論理値を第２論理ゲートに出力することを特徴とする。
【発明の効果】
【００１１】
第１論理ゲートの第１入力を含む信号パスの遅延故障と、第１論理ゲートの第２入力を含む信号パスの遅延故障とを、１つの制御点により検出できる。
【図面の簡単な説明】
【００１２】
【図１】論理回路の故障検出方法、論理回路のテスト回路挿入方法および論理回路のテスト回路挿入装置の一実施形態を示している。
【図２】図１に示したテスト回路が挿入された論理回路の故障検出方法の例を示している。
【図３】論理回路の故障検出方法、論理回路のテスト回路挿入方法および論理回路のテスト回路挿入装置の別の実施形態および半導体集積回路の一実施形態を示している。
【図４】図３に示した論理回路にテスト回路を挿入する前の論理回路の例を示している。
【図５】図４に示した論理回路から図３に示した論理回路を生成するテスト回路挿入装置の例を示している。
【図６】図５に示したテスト回路挿入装置の動作の例を示している。
【図７】図３に示した論理回路を有する半導体集積回路をテストするテストシステムの例を示している。
【図８】図３に示した論理回路の遅延故障を検出するためのテストの例を示している。
【図９】図３に示した論理回路の遅延故障を検出するためのテストの別の例を示している。
【図１０】論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。
【図１１】図１０に示した論理回路の遅延故障を検出するためのテストの例を示している。
【図１２】図１０に示した論理回路の遅延故障を検出するためのテストの別の例を示している。
【図１３】論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。
【図１４】図１３に示した論理回路の遅延故障を検出するためのテストの例を示している。
【図１５】図１３に示した論理回路の遅延故障を検出するためのテストの別の例を示している。
【図１６】論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。
【図１７】図１６に示した論理回路の遅延故障を検出するためのテストの例を示している。
【図１８】図１６に示した論理回路の遅延故障を検出するためのテストの別の例を示している。
【図１９】論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。
【図２０】１９に示した論理回路の遅延故障を検出するためのテストの例を示している。
【図２１】図１９に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの別の例を示している。
【発明を実施するための形態】
【００１３】
以下、図面を用いて実施形態を説明する。図中、信号が伝達される信号線には、信号名と同じ符号を使用する。
【００１４】
図１は、論理回路の故障検出方法、論理回路のテスト回路挿入方法および論理回路のテスト回路挿入装置の一実施形態を示している。図１の左側は、ユーザにより設計された論理回路ＬＯＧＩＣの例を示している。図１の右側は、論理回路ＬＯＧＩＣにテスト回路を挿入することで生成された論理回路ＬＯＧＩＣＴの例を示している。
【００１５】
論理回路ＬＯＧＩＣは、ユーザロジックＵＬ１、ＵＬ２、ＵＬ３および論理ゲートＬ１を有している。ユーザロジックＵＬ１は、複数のフリップフロップＦＦ（ＦＦ１、ＦＦ２）を含んでいる。ユーザロジックＵＬ３は、少なくとも１つのフリップフロップＦＦ３を含んでいる。フリップフロップＦＦ１−ＦＦ３は、”＞”印で示すクロック入力で共通のクロックを受けて動作する。なお、図が複雑になることを避けるため、クロック配線は省略している。
【００１６】
ユーザロジックＵＬ１、ＵＬ２の出力は、論理ゲートＬ１の入力Ｉ１、Ｉ２にそれぞれ接続されている。論理ゲートＬ１の出力は、ユーザロジックＵＬ３の入力に接続されている。なお、論理ゲートＬ１は、オアゲートに限定されず、アンドゲート、ノアゲート、ナンドゲート等でもよい。
【００１７】
例えば、フリップフロップＦＦ１のデータ出力Ｑは、フリップフロップＦＦ２のデータ入力Ｄに接続されている。フリップフロップＦＦ２のデータ出力Ｑは、論理ゲートＬ１の入力Ｉ１に接続されている。すなわち、フリップフロップＦＦ１、ＦＦ２は、直列に接続されている。なお、フリップフロップＦＦ１のデータ出力Ｑは、組み合わせ回路を介してフリップフロップＦＦ２のデータ入力Ｄに接続されてもよい。フリップフロップＦＦ２のデータ出力Ｑは、組み合わせ回路を介して入力Ｉ１に接続されてもよい。論理ゲートＬ１の出力は、フリップフロップＦＦ３のデータ入力Ｄに接続されている。なお、論理ゲートＬ１の出力は、組み合わせ回路を介してフリップフロップＦＦ３のデータ入力Ｄに接続されてもよい。
【００１８】
この例では、ユーザロジックＵＬ２の出力（すなわち、論理ゲートＬ１の入力Ｉ２）は、論理１になりやすいとする。このため、入力ノードＩ１を含む信号パスの縮退故障や遅延故障を検出するため、あるいは、入力ノードＩ２を含む信号パスの縮退故障や遅延故障を検出するために、図１の右側に示すようにテスト回路が挿入される。
【００１９】
論理回路ＬＯＧＩＣＴは、フリップフロップＦＦから置き換えられたスキャンフリップフロップＳＦＦ（ＳＦＦ１、ＳＦＦ２、ＳＦＦ３）と、ユーザロジックＵＬ２の出力と論理ゲートＬ１の入力Ｉ２との間に挿入された制御点ＣＰとを有している。制御点ＣＰは、論理ゲートＬ１の入力Ｉ２の論理値を制御するためのテスト回路の一例であり、スキャンフリップフロップＳＦＦ４および論理ゲートＬ２を有している。
【００２０】
各スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、データ入力Ｄの他にスキャン入力ＳＩＮおよびスキャンモード入力ＳＭを有している。なお、図が複雑になることを避けるため、スキャンモード入力ＳＭに接続される配線は省略している。スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、スキャンモード入力ＳＭで第１論理（例えば、論理０）を受けているキャプチャ期間に、データ入力Ｄで受ける論理をクロックに同期してラッチし、ラッチした論理をデータ出力Ｑから出力する。
【００２１】
スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、スキャンモード入力ＳＭで第２論理（例えば、論理１）を受けているスキャンシフト期間に、スキャン入力ＳＩＮで受ける論理をクロックに同期してラッチし、ラッチした論理をデータ出力Ｑから出力する。なお、各スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、データ入力Ｄまたはスキャン入力ＳＩＮのいずれかを選択するマルチプレクサを、各フリップフロップＦＦ１−ＦＦ４のデータ入力Ｄに接続することにより形成されてもよい。
【００２２】
論理回路ＬＯＧＩＣＴに太線で示した信号線は、スキャンシフト期間にスキャンフリップフロップＳＦＦ１−ＳＦＦ４に伝達される信号の経路を示している。各スキャンフリップフロップＳＦＦのスキャン入力ＳＩＮは、別のスキャンフリップフロップＳＦＦのデータ出力Ｑに接続される。太い信号線により、スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、スキャンシフト期間にシフトレジスタとして動作する。なお、スキャンシフト期間中の信号の伝達経路は、スキャンフリップフロップＳＦＦ１−ＳＦＦ４の順でなくてもよい。テストの容易性を向上させるために、上述のように通常のフリップフロップＦＦをシフトレジスタとして動作可能なスキャンフリップフロップＳＦＦに置き換えることをスキャン設計と称する。
【００２３】
この例では、ユーザロジックＵＬ２の出力が論理１になりやすいため、論理ゲートＬ２としてアンドゲートが使用される。例えば、ユーザロジックＵＬ２の出力が論理０になりやすいとき、論理ゲートＬ２としてオアゲートが使用される。なお、論理ゲートＬ２として、アンドゲートの代わりにナンドゲートが使用されてもよく、オアゲートの代わりにノアゲートが使用されてもよい。例えば、論理回路ＬＯＧＩＣにおいて、ユーザロジックＵＬ２と論理ゲートＬ１の入力Ｉ２との間にインバータ等の反転論理が配置されている場合、論理回路ＬＯＧＩＣＴにおいて、ユーザロジックＵＬ２と反転論理の間に、ナンドゲートまたはノアゲートが配置される。
【００２４】
制御点ＣＰは、ユーザロジックＵＬ２の出力が論理１に設定されているときに、論理ゲートＬ１の入力Ｉ２を論理０に設定可能にするために設けられる。この種の制御点ＣＰは、”０制御点”と称される。一方、ユーザロジックＵＬ２の出力が論理０になりやすいときに挿入されるオアゲートを含む制御点は、”１制御点”と称される。制御点ＣＰの挿入により、入力ノードＩ２の論理をスキャンフリップフロップＳＦＦ４により任意に設定でき、故障検出率を向上できる。
【００２５】
スキャンフリップフロップＳＦＦ１−ＳＦＦ４のスキャンモード入力ＳＭには、共通のスキャンモード入力信号ＳＭが供給される。スキャンフリップフロップＳＦＦ１−ＳＦＦ４に”＞”印で示すクロック入力には、共通のクロックが供給される。なお、図が複雑になることを避けるため、スキャンモード信号ＳＭの信号線およびクロック配線の記載は省略している。
【００２６】
制御点ＣＰに形成されるスキャンフリップフロップＳＦＦ４のデータ入力Ｄは、制御点ＣＰ以外に形成されるスキャンフリップフロップＳＦＦ１−ＳＦＦ３のいずれかのデータ出力Ｑに接続される。この例では、スキャンフリップフロップＳＦＦ４のデータ入力Ｄは、スキャンフリップフロップＳＦＦ３のデータ出力Ｑに接続されている。
【００２７】
例えば、ユーザにより設計された論理回路ＬＯＧＩＣへのテスト回路の挿入は、ワークステーション等のコンピュータシステムがテスト回路挿入プログラムを実行することにより実施される。換言すれば、テスト回路挿入プログラムの実行により、論理回路ＬＯＧＩＣにテスト回路を挿入するコンピュータシステムは、テスト回路挿入装置として機能する。そして、テスト回路挿入装置の動作により、論理回路ＬＯＧＩＣにテスト回路を挿入するテスト回路挿入方法が実施される。
【００２８】
テスト回路挿入装置は、テスト回路挿入プログラムを実行することにより、以下に示す少なくとも３つの処理１−処理３を実施し、論理回路ＬＯＧＩＣにテスト回路を挿入して論理回路ＬＯＧＩＣＴを生成する。なお、テスト回路挿入装置は、処理１、処理２をこの順で実施してもよく、逆順で実施してもよい。また、テスト回路挿入装置は、処理１、処理２を同時に実施してもよい。
（処理１）論理回路ＬＯＧＩＣのフリップフロップＦＦ１−ＦＦ３を、シフトレジスタとして機能させるために、データ入力Ｄおよびスキャン入力ＳＩＮを各々有するスキャンフリップフロップＳＦＦ１−ＳＦＦ３に置き換える。
（処理２）テストを容易化するために制御点ＣＰの挿入が必要なノードと、挿入する制御点ＣＰの論理を求める。この例では、制御点ＣＰは、ユーザロジックＵＬ２と論理ゲートＬ１との間に挿入され、データ入力Ｄおよびスキャン入力ＳＩＮを有するスキャンフリップフロップＳＦＦ４と、論理ゲートＬ２とを有する。論理ゲートＬ２は、一対の入力がスキャンフリップフロップＳＦＦ４のデータ出力ＱおよびユーザロジックＵＬ２の出力にそれぞれ接続される。
（処理３）スキャンフリップフロップＳＦＦ４のデータ入力Ｄに、制御点ＣＰ以外に形成されるスキャンフリップフロップＳＦＦ１−ＳＦＦ３のデータ出力Ｑを接続する。この例では、スキャンフリップフロップＳＦＦ４のデータ入力Ｄは、スキャンフリップフロップＳＦＦ３のデータ出力Ｑに接続される。
【００２９】
図２は、図１に示したテスト回路が挿入された論理回路ＬＯＧＩＣＴの故障検出方法の例を示している。例えば、図２に示す故障検出方法は、論理回路ＬＯＧＩＣＴを含む半導体集積回路の製造工程内のテスト工程において、ＬＳＩ（large Scale Integration）テスタ等のテスト装置を用いて、良品と不良品とを識別するために実施される。スキャンフリップフロップＳＦＦ１、ＳＦＦ２、ＳＦＦ３、ＳＦＦ４の中に括弧で示した論理値は、スキャン入力ＳＩＮを有効にし、スキャンフリップフロップＳＦＦ１−ＳＦＦ４をシフトレジスタとして動作させるスキャンシフト期間中に設定される論理値を示している。
【００３０】
図２の左側は、論理ゲートＬ１の入力ノードＩ１を含む信号パス（スキャンフリップフロップＳＦＦ２のデータ出力Ｑ以降の信号パス）の遅延故障を検出するための方法を示している。図２の右側は、論理ゲートＬ１の入力ノードＩ２を含む信号パス（論理ゲートＬ２の出力以降の信号パス）の遅延故障を検出するための方法を示している。
【００３１】
なお、Ｘ印を付けた符号Ｆ１、Ｆ２は、遅延故障の存在を示している。但し、Ｘ印は、遅延故障Ｆ１、Ｆ２が発生している位置を示しているとは限らない。例えば、遅延故障Ｆ１は、スキャンフリップフロップＳＦＦ２のデータ出力ＱからスキャンフリップフロップＳＦＦ３のデータ入力Ｄまでの信号パスのいずれかに局所的に発生する。あるいは、遅延故障Ｆ１は、スキャンフリップフロップＳＦＦ２のデータ出力ＱからスキャンフリップフロップＳＦＦ３のデータ入力Ｄまでの信号パス上に分散して発生する。
【００３２】
同様に、遅延故障Ｆ２は、論理ゲートＬ２の出力からスキャンフリップフロップＳＦＦ３のデータ入力Ｄまでの信号パスのいずれかに局所的に発生する。あるいは、遅延故障Ｆ２は、論理ゲートＬ２の出力からスキャンフリップフロップＳＦＦ３のデータ入力Ｄまでの信号パス上に分散して発生する。一般に、局所的に発生する遅延故障は遷移遅延故障と称され、分散して発生する遅延故障はパス遅延故障と称される。
【００３３】
図の左側において、制御点ＣＰに接続されない入力Ｉ１を含む信号パスの遅延故障を検出する場合、テスト装置は、スキャンシフト期間に移行するために、スキャンモード入力ＳＭを第２論理に設定する。スキャンシフト期間では、各スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、クロックに同期してスキャン入力ＳＩＮで受ける論理をラッチし、ラッチした論理をデータ出力Ｑから出力する。
【００３４】
テスト装置は、スキャンシフト期間にスキャンフリップフロップＳＦＦ１−ＳＦＦ４をシフト動作し、論理１、論理０、論理０、論理０を、スキャンフリップフロップＳＦＦ１、ＳＦＦ２、ＳＦＦ３、ＳＦＦ４にそれぞれ設定する。すなわち、テスト装置は、入力Ｉ１に直列に接続される一対のスキャンフリップフロップＳＦＦ１、ＳＦＦ２に互いに異なる論理を設定し、スキャンフリップフロップＳＦＦ３、ＳＦＦ４に同じ論理を設定する。
【００３５】
ここで、スキャンフリップフロップＳＦＦ１、ＳＦＦ２は、論理０、論理１にそれぞれ設定されてもよい。スキャンフリップフロップＳＦＦ３、ＳＦＦ４に設定される論理０は、ユーザロジックＵＬ２から出力される論理に依存せず、論理ゲートＬ１の入力Ｉ２を論理０に固定するために必要である。入力Ｉ２を論理０に固定することにより、スキャンフリップフロップＳＦＦ２、ＳＦＦ１に設定された論理０、論理１を論理ゲートＬ１の出力に順に伝達できる。
【００３６】
次に、テスト装置は、スキャンシフト期間からキャプチャ期間に移行するために、スキャンモード入力ＳＭを第１論理に設定する。キャプチャ期間では、各スキャンフリップフロップＳＦＦ１−ＳＦＦ４は、クロックに同期してデータ入力Ｄで受ける論理を順にラッチし、ラッチした論理をデータ出力Ｑから出力する。テスト装置は、キャプチャ期間に２つのクロックパルスを発生する。論理ゲートＬ１の入力Ｉ１は、最初のクロックパルスにより論理０から論理１に変化する。
【００３７】
遅延故障Ｆ１のない論理回路では、スキャンフリップフロップＳＦＦ３は、最初のクロックパルスに同期してスキャンフリップフロップＳＦＦ２に初期設定された論理０をラッチし、２番目のクロックパルスに同期してスキャンフリップフロップＳＦＦ１に初期設定された論理１をラッチする。
【００３８】
一方、遅延故障Ｆ１のある論理回路では、スキャンフリップフロップＳＦＦ２のデータ出力Ｑの論理０から論理１への遷移は、スキャンフリップフロップＳＦＦ３に遅れて伝わる。このため、スキャンフリップフロップＳＦＦ３は、２番目のクロックパルスに同期してスキャンフリップフロップＳＦＦ１に初期設定された論理１をラッチできず、スキャンフリップフロップＳＦＦ２に初期設定された論理０を再びラッチする。
【００３９】
この後、テスト装置は、キャプチャ期間からスキャンシフト期間に移行し、スキャンフリップフロップＳＦＦ３に保持されている論理を読み出す。そして、テスト装置は、スキャンフリップフロップＳＦＦ３に論理１が保持されているときに、遅延故障Ｆ１が存在しないことを検出し、スキャンフリップフロップＳＦＦ３に論理０が保持されているときに、遅延故障Ｆ１が存在することを検出する。すなわち、スキャンフリップフロップＳＦＦ３に保持される論理が、２番目のクロックパルスの前後で変化しないときに、入力Ｉ１を含む信号パスの遅延故障Ｆ１が検出される。
【００４０】
一方、図の右側において、制御点ＣＰに接続される入力Ｉ２を含む信号パスの遅延故障Ｆ２を検出する場合、テスト装置は、スキャンシフト期間に、論理０、論理０、論理１、論理０を、スキャンフリップフロップＳＦＦ１、ＳＦＦ２、ＳＦＦ３、ＳＦＦ４にそれぞれ設定する。すなわち、テスト装置は、入力Ｉ１に直列に接続される一対のスキャンフリップフロップＳＦＦ１、ＳＦＦ２に同じ論理を設定し、スキャンフリップフロップＳＦＦ３、ＳＦＦ４に互いに異なる論理を設定する。
【００４１】
ここで、スキャンフリップフロップＳＦＦ３、ＳＦＦ４は、論理０、論理１にそれぞれ設定されてもよい。スキャンフリップフロップＳＦＦ１、ＳＦＦ２に設定される論理０は、スキャンフリップフロップＳＦＦ４、ＳＦＦ３に設定された論理０、論理１を論理ゲートＬ１の出力に順に伝達するために必要である。
【００４２】
次に、テスト装置は、キャプチャ期間に、論理ゲートＬ１の入力Ｉ２を論理０から論理１に変化し、論理ゲートＬ１の出力値をスキャンフリップフロップＳＦＦ３にラッチするために、２つのクロックパルスを発生する。図２の左側の動作と同様に、遅延故障Ｆ２のない論理回路では、スキャンフリップフロップＳＦＦ３は、２番目のクロックパルスに同期してスキャンフリップフロップＳＦＦ１に初期設定された論理１をラッチする。一方、遅延故障Ｆ２のある論理回路では、スキャンフリップフロップＳＦＦ３は、２番目のクロックパルスに同期してスキャンフリップフロップＳＦＦ１に初期設定された論理１をラッチできず、スキャンフリップフロップＳＦＦ２に初期設定された論理０を再びラッチする。
【００４３】
この後、テスト装置は、図２の左側の動作と同様に、キャプチャ期間にスキャンフリップフロップＳＦＦ３に保持されている論理を読み出す。そして、テスト装置は、スキャンフリップフロップＳＦＦ３に論理１が保持されているときに、遅延故障Ｆ２が存在しないことを検出し、スキャンフリップフロップＳＦＦ３に論理０が保持されているときに、遅延故障Ｆ２が存在することを検出する。すなわち、スキャンフリップフロップＳＦＦ３に保持される論理が、２番目のクロックパルスの前後で変化しないときに、入力Ｉ２を含む信号パスの遅延故障Ｆ２が検出される。
【００４４】
なお、図２の左側の故障検出方法の実施により、遅延故障Ｆ１だけでなく、入力Ｉ１を含む信号パスの縮退故障を検出できる。図２の右側の故障検出方法の実施により、遅延故障Ｆ２だけでなく、入力Ｉ２を含む信号パスの縮退故障を検出できる。また、スキャンフリップフロップＳＦＦ１−ＳＦＦ４への論理値の設定および遅延故障Ｆ１、Ｆ２の検出は、テスト装置に用いずに、論理回路ＬＯＧＩＣＴを含む半導体集積回路に搭載されるＢＩＳＴ（Built-In Self Test）回路等により実施されてもよい。
【００４５】
以上、この実施形態では、検出する遅延故障Ｆ１、Ｆ２の位置に応じて、キャプチャ期間に制御点ＣＰの出力の論理を固定し、あるいは論理を変化させることができる。これにより、論理ゲートＬ１の入力Ｉ１の論理変化を後段の論理に伝達でき、あるいは論理ゲートＬ１の入力Ｉ２の論理変化を後段の論理に伝達できる。この結果、論理ゲートＬ１の入力Ｉ１を含む信号パスの遅延故障Ｆ１と、論理ゲートＬ１の入力Ｉ２を含む信号パスの遅延故障Ｆ２とを、１つの制御点ＣＰにより検出できる。すなわち、遅延故障Ｆ１、Ｆ２を１つの制御点ＣＰにより検出できる論理回路の故障検出方法、テスト回路挿入方法およびテスト回路挿入装置を提供できる。
【００４６】
図３は、論理回路の故障検出方法、論理回路のテスト回路挿入方法および論理回路のテスト回路挿入装置の別の実施形態および半導体集積回路の一実施形態を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。図３は、テスト回路の一例である制御点ＣＰが挿入された論理回路ＬＯＧＩＣＴを示している。テスト回路を挿入前の論理回路ＬＯＧＩＣは、図４に示す。
【００４７】
この実施形態では、論理回路ＬＯＧＩＣＴは、ユーザロジックＵＬ１、ＵＬ２、ＵＬ３、オアゲートＯＲ１および制御点ＣＰを有している。ユーザロジックＵＬ１の出力は、オアゲートＯＲ１の入力Ｉ１に接続されている。ユーザロジックＵＬ２の出力は、制御点ＣＰを介してオアゲートＯＲ１の入力Ｉ２に接続されている。オアゲートＯＲ１の出力は、ユーザロジックＵＬ３に接続されている。
【００４８】
なお、オアゲートＯＲ１は、アンドゲート、ノアゲート、ナンドゲート等でもよい。アンドゲートおよびナンドゲートの場合、入力Ｉ２を論理１に固定し、入力Ｉ１の論理を変化させることで、入力Ｉ１を含む信号パスの遅延故障Ｆ１を検出できる。また、入力Ｉ１を論理１に固定し、入力Ｉ２の論理を変化させることで、入力Ｉ２を含む信号パスの遅延故障Ｆ２を検出できる。ノアゲートの場合、オアゲートＯＲ１と同様に、入力Ｉ２を論理０に固定し、入力Ｉ１の論理を変化させることで、入力Ｉ１を含む信号パスの遅延故障Ｆ１を検出できる。また、入力Ｉ１を論理０に固定し、入力Ｉ２の論理を変化させることで、入力Ｉ２を含む信号パスの遅延故障Ｆ２を検出できる。遅延故障の検出方法については、図８および図９で説明する。
【００４９】
例えば、ユーザロジックＵＬ１は、複数のスキャンフリップフロップＳＦＦ（ＳＦＦａ、ＳＦＦｂ）を含んでいる。スキャンフリップフロップＳＦＦａのデータ出力Ｑは、ノードＮＤａを介してスキャンフリップフロップＳＦＦｂのデータ入力Ｄおよびスキャン入力ＳＩＮに接続されている。スキャンフリップフロップＳＦＦｂのデータ出力Ｑは、ノードＮＤｂを介してオアゲートＯＲ１の入力Ｉ１およびスキャンフリップフロップＳＦＦｃのスキャン入力ＳＩＮに接続されている。なお、スキャンフリップフロップＳＦＦｂのデータ出力Ｑは、組み合わせ回路を介して入力Ｉ１に接続されてもよい。
【００５０】
例えば、ユーザロジックＵＬ２は、複数のスキャンフリップフロップＳＦＦ（ＳＦＦｃ、ＳＦＦｃ）および組み合わせ回路等の回路ＣＣ１を含んでいる。この例では、回路ＣＣ１の出力（すなわち、ノードＮＤｅ）は、論理１になりやすいとする。換言すれば、ユーザロジックＵＬ２の動作中に、ノードＮＤｅが論理１になる確率は、ノードＮＤｅが論理０になる確率よりも十分に高い。このため、ノードＮＤｅが論理１のときにオアゲートＯＲ１の入力Ｉ２を任意の論理に設定可能にするために、制御点ＣＰが挿入されている。
【００５１】
スキャンフリップフロップＳＦＦｃのデータ出力Ｑは、ノードＮＤｃを介してスキャンフリップフロップＳＦＦｄのデータ入力Ｄおよびスキャン入力ＳＩＮに接続されている。スキャンフリップフロップＳＦＦｄのデータ出力Ｑは、スキャンフリップフロップＳＦＦｆのスキャン入力ＳＩＮに接続され、回路ＣＣ１を介してノードＮＤｅに接続されている。
【００５２】
例えば、ユーザロジックＵＬ３は、組み合わせ回路等の回路ＣＣ２および少なくとも１つのスキャンフリップフロップＳＦＦｅを有している。回路ＣＣ２の入力は、ノードＮＤｈを介してオアゲートＯＲ１の出力に接続されている。例えば、回路ＣＣ２は、ノードＮＤｈの論理を反転してノードＮＤｉに出力する。スキャンフリップフロップＳＦＦｅのデータ入力Ｄは、ノードＮＤｉを介して回路ＣＣ２の出力に接続されている。スキャンフリップフロップＳＦＦｅのスキャン入力ＳＩＮは、スキャンフリップフロップＳＦＦｆのデータ出力Ｑに接続されている。スキャンフリップフロップＳＦＦｅのデータ出力Ｑは、ノードＳＯＵＴおよびスキャンフリップフロップＳＦＦｆのデータ入力Ｄに接続されている。
【００５３】
制御点ＣＰは、テスト回路の一例であり、スキャンフリップフロップＳＦＦｆ、ナンドゲートＮＡＮＤ１およびアンドゲートＡＮＤ１を有している。スキャンフリップフロップＳＦＦｆのデータ出力Ｑは、ナンドゲートＮＡＮＤ１の一方の入力およびスキャンフリップフロップＳＦＦｅのスキャン入力ＳＩＮに接続されている。ナンドゲートＮＡＮＤ１の他方の入力は、テストモード信号を受けるテストモード端子ＴＭに接続されている。ナンドゲートＮＡＮＤ１の出力は、ノードＮＤｆを介してアンドゲートＡＮＤ１の一方の入力に接続されている。アンドゲートＡＮＤ１の他方の入力は、ノードＮＤｅを介して回路ＣＣ１の出力に接続されている。アンドゲートＡＮＤ１の出力は、ノードＮＤｇを介してオアゲートＯＲ１の入力Ｉ２に接続されている。
【００５４】
この例では、テストモード端子ＴＭは、遅延故障を検出するためのテストモード中に論理１に設定され、論理回路ＬＯＧＩＣＴがユーザシステムの一部として動作するシステムモード中に論理０に設定される。テストモード端子ＴＭの論理１により、ナンドゲートＮＡＮＤ１の信号伝達機能は有効になり、ナンドゲートＮＡＮＤ１は、スキャンフリップフロップＳＦＦｆの出力Ｑの論理を反転してアンドゲートＡＮＤ１に出力する。一方、テストモード端子ＴＭの論理０により、ナンドゲートＮＡＮＤ１の信号伝達機能は無効になり、ナンドゲートＮＡＮＤ１の出力であるノードＮＤｆは論理１に固定される。
【００５５】
これにより、システムモード中（ＴＭ＝論理０）に、データ入力Ｄで受ける論理に応じて動作するスキャンフリップフロップＳＦＦｆのデータ出力Ｑの論理がアンドゲートＡＮＤ１に伝達されることを防止でき、ユーザロジックＵＬ３等の誤動作を防止できる。ナンドゲートＮＡＮＤ１がノードＮＤｆに論理１を出力することで、回路ＣＣ１の出力であるノードＮＤｅの論理は、アンドゲートＡＮＤ１を介してオアゲートＯＲ１に伝達される。このように、スキャンフリップフロップＳＦＦｆをテストモード信号ＴＭにより制御されるナンドゲートＮＡＮＤ１を介してアンドゲートＡＮＤ１に接続することで、システムモード中のスキャンフリップフロップＳＦＦｆの動作による誤動作を防止できる。
【００５６】
図１と同様に、太線で示した信号線は、スキャンシフト期間にスキャンフリップフロップＳＦＦａ、ＳＦＦｂ、ＳＦＦｃ、ＳＦＦｄ、ＳＦＦｆ、ＳＦＦｅに伝達される信号の経路を示している。Ｘ印を付けた符号Ｆ１、Ｆ２は、遅延故障の存在を示している。但し、遅延故障Ｆ１、Ｆ２は、確率的に同時に発生しないものとして扱われる。また、図２で説明したように、Ｘ印は、遅延故障Ｆ１、Ｆ２が発生している位置を示しているとは限らない。
【００５７】
なお、各スキャンフリップフロップＳＦＦａ−ＳＦＦｆは、データ入力またはスキャン入力のいずれかを選択するマルチプレクサを、フリップフロップのデータ入力に接続することにより形成されてもよい。
【００５８】
図４は、図３に示した論理回路ＬＯＧＩＣＴにテスト回路を挿入する前の論理回路ＬＯＧＩＣの例を示している。論理回路ＬＯＧＩＣは、ユーザにより設計された回路である。論理回路ＬＯＧＩＣは、図３のスキャンフリップフロップＳＦＦａ、ＳＦＦｂ、ＳＦＦｃ、ＳＦＦｄ、ＳＦＦｅの代わりにフリップフロップＦＦａ、ＦＦｂ、ＦＦｃ、ＦＦｄ、ＦＦｅが配置されている。論理回路ＬＯＧＩＣは、制御点ＣＰを含まない。このため、論理回路ＬＯＧＩＣでは、ユーザロジックＵＬ２の出力は、オアゲートＯＲ１の入力Ｉ２に直接接続されている。
【００５９】
図５は、図４に示した論理回路ＬＯＧＩＣから図３に示した論理回路ＬＯＧＩＣＴを生成するテスト回路挿入装置ＣＡＤの例を示している。例えば、テスト回路挿入装置ＣＡＤは、ワークステーション等のコンピュータシステムにより実現される。
【００６０】
テスト回路挿入装置ＣＡＤは、図３に示した制御点ＣＰ等のテスト回路を挿入するテスト回路挿入プログラム等を記憶するメモリ装置ＭＥＭと、テスト回路挿入プログラムを実行するプロセッサＣＰＵとを有している。メモリ装置ＭＥＭは、例えば、半導体メモリ装置やハードディスクドライブ装置である。テスト回路挿入装置ＣＡＤは、ディスプレイＤＩＳＰ、キーボードやマウス等の入力デバイスＩＮＰＵＴ、ディスクドライブ装置ＤＲＶおよび入出力デバイスＩＮＯＵＴを有している。
【００６１】
ディスプレイＤＩＳＰは、入力デバイスＩＮＰＵＴおよびディスクドライブ装置ＤＲＶから入力された情報や、テスト回路挿入プログラムにより生成された論理回路ＬＯＧＩＣＴの論理図やネットリスト等を表示する。ディスクドライブ装置ＤＲＶには、テスト回路挿入プログラムあるいは図４に示した論理回路ＬＯＧＩＣのネットリストが記録されたＣＤ−ＲＯＭ、ＤＶＤ等の記録媒体がセットされる。テスト回路挿入プログラムやネットリストは、ディスクドライブ装置ＤＲＶを介してメモリ装置ＭＥＭにダウンロードされる。
【００６２】
そして、プロセッサＣＰＵがテスト回路挿入プログラムを実行することにより、テスト回路挿入方法が実施され、図４の論理回路ＬＯＧＩＣから図３の論理回路ＬＯＧＩＣＴ（ネットリスト）が生成される。生成されたネットリストは、メモリ装置ＭＥＭからメモリカード等のシリコンディスク、磁気テープ装置、あるいはハードディスクドライブ装置等の入出力デバイスＩＮＯＵＴに書き込まれる。
【００６３】
なお、ディスクドライブ装置ＤＲＶの代わりに、入出力デバイスＩＮＯＵＴを用いて、テスト回路挿入プログラムやネットリストをメモリ装置ＭＥＭに転送してもよい。あるいは、テスト回路挿入プログラムやネットリストは、ネットワークを介してメモリ装置ＭＥＭに入出力されてもよい。
【００６４】
図６は、図５に示したテスト回路挿入装置ＣＡＤの動作の例を示している。図６は、テスト回路挿入方法のフローを示しており、テスト回路挿入装置ＣＡＤがテスト回路挿入プログラムを実行することにより実現される。
【００６５】
先ず、ステップＳ１０において、テスト回路挿入装置ＣＡＤは、ユーザにより設計された論理回路ＬＯＧＩＣのネットリストを解析し、制御点ＣＰの挿入が必要なノードと、挿入する制御点ＣＰの論理を求める。テスト回路挿入装置ＣＡＤは、必要に応じて、観測点の挿入が必要な挿入するノードと、挿入する観測点の論理を求める。観測点は、テスト回路の一種であり、遅延故障を検出するための論理値を得るために挿入が必要なスキャンフリップフロップ等である。求めた制御点ＣＰの情報および観測点の情報は、挿入されるテスト回路の情報としてメモリ装置ＭＥＭ等に書き込まれる。
【００６６】
次に、ステップＳ２０において、テスト回路挿入装置ＣＡＤは、求めた制御点ＣＰの情報に基づいて、制御点ＣＰのスキャンフリップフロップＳＦＦ（例えば、図３のＳＦＦｆ）のデータ入力Ｄに接続するスキャンフリップフロップＳＦＦを選択する。例えば、ステップＳ２０では、制御点ＣＰの下流側（出力側）が順に探索され、制御点ＣＰからの論理段数が最も少ないスキャンフリップフロップＳＦＦが選択される。あるいは、制御点ＣＰの上流側（入力側）が順に探索され、制御点ＣＰからの論理段数が最も少ないスキャンフリップフロップＳＦＦが選択される。これにより、制御点ＣＰのスキャンフリップフロップＳＦＦのデータ入力Ｄは、制御点ＣＰ以外に形成されるスキャンフリップフロップＳＦＦのいずれかのデータ出力Ｑに接続される。選択されたスキャンフリップフロップＳＦＦの情報は、メモリ装置ＭＥＭ等に書き込まれる。
【００６７】
次に、ステップＳ３０において、テスト回路挿入装置ＣＡＤは、論理回路ＬＯＧＩＣのネットリストを用いて、ネットリスト上のフリップフロップＦＦをスキャンフリップフロップＳＦＦに置き換える。次に、テスト回路挿入装置ＣＡＤは、制御点ＣＰの情報を用いて、ネットリスト上に制御点ＣＰを挿入する。また、テスト回路挿入装置ＣＡＤは、ステップＳ２０で選択したスキャンフリップフロップＳＦＦの情報を用いて、挿入した制御点ＣＰのスキャンフリップフロップＳＦＦ（図３のＳＦＦｆ）のデータ入力Ｄに、選択したスキャンフリップフロップＳＦＦのデータ出力Ｑを接続する。そして、図３に示した論理回路ＬＯＧＩＣＴ（ネットリスト）が生成される。
【００６８】
テスト回路挿入装置ＣＡＤは、必要に応じて、観測点の情報に基づいて、ネットリスト上に観測点を挿入する。テスト回路挿入装置ＣＡＤは、テスト回路が挿入された論理回路ＬＯＧＩＣＴのネットリストを生成する。そして、生成されたネットリストを用いて、トランジスタ等の素子の配置および素子間の配線を実施するプログラムが実行され、半導体集積回路ＬＳＩを製造するためのフォトマスクのデータが生成される。素子の配置、配線およびフォトマスクのデータ生成は、テスト回路挿入装置ＣＡＤが別のプログラムを実行することで実施されてもよく、大型計算機等を用いて実施されてもよい。
【００６９】
この後、フォトマスクのデータを用いてフォトマスクが製作され、フォトマスクを用いて半導体製造工程が実施され、図３に示した論理回路ＬＯＧＩＣＴを有する半導体集積回路ＬＳＩが製造される。製造された半導体集積回路ＬＳＩは、図７に示すテストシステムＴＳＹＳによりテストされ、遅延故障の有無が検出される。
【００７０】
図７は、図３に示した論理回路ＬＯＧＩＣＴを有する半導体集積回路ＬＳＩをテストするテストシステムＴＳＹＳの例を示している。なお、後述する実施形態においても、図７と同じテストシステムＴＳＹＳが使用される。テストシステムＴＳＹＳは、半導体集積回路ＬＳＩの製造工程におけるテスト工程で使用される。
【００７１】
まず、半導体製造工程により半導体ウエハＷＡＦ上に複数の半導体集積回路ＬＳＩが形成される。半導体集積回路ＬＳＩは、ウエハＷＡＦから切り出される前にテスタＴＥＳＴ等のテスト装置によりテストされる。テストシステムＴＳＹＳによる半導体集積回路ＬＳＩのテストにより、論理回路ＬＯＧＩＣＴの故障検出方法が実現される。すなわち、テスタＴＥＳＴは、論理回路ＬＯＧＩＣＴの故障検出装置として動作する。
【００７２】
半導体集積回路ＬＳＩは、例えば、プローブカードのプローブＰＲＢを介してテスタＴＥＳＴに接続される。図７では、１つの半導体集積回路ＬＳＩがテスタＴＥＳＴに接続されているが、複数の半導体集積回路ＬＳＩをテスタＴＥＳＴに一度に接続してもよい。テスタＴＥＳＴに一度に接続する半導体集積回路ＬＳＩの数は、テスタＴＥＳＴの端子数と半導体集積回路ＬＳＩの端子数に依存する。
【００７３】
例えば、テスタＴＥＳＴは、論理回路ＬＯＧＩＣＴの遅延故障を検出するための故障検出プログラムを実行し、クロックＣＬＫ、テストモード信号ＴＭ、スキャンモード入力信号ＳＭおよびスキャン入力信号ＳＩＮを半導体集積回路ＬＳＩに出力する。そして、テスタＴＥＳＴは、論理回路ＬＯＧＩＣＴ内の所定のスキャンフリップフロップＳＦＦ（例えば、図３のＳＦＦｅ）に保持されている論理をスキャンアウト端子ＳＯＵＴを介して読み出し、遅延故障の有無を検出する。遅延故障が検出された半導体集積回路ＬＳＩは、不良品として扱われる。なお、テスタＴＥＳＴは、パッケージングされた半導体集積回路ＬＳＩをテストするために使用されてもよい。
【００７４】
図８は、図３に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの例を示している。図８の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図３に示した遅延故障Ｆ１を検出するために実施される。換言すれば、図８は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。
【００７５】
図８および以降の波形図において、１番目から６番目のクロックサイクルおよび９番目のクロックサイクルは、スキャンモード入力ＳＭが論理１に設定されるスキャンシフト期間を示している。７番目および８番目のクロックサイクルは、スキャンモード入力ＳＭが論理０に設定されるキャプチャ期間を示している。７番目のクロックサイクルの長さは、遅延故障Ｆ１またはＦ２を判断する信号パスの遅延時間に合わせて設定される。換言すれば、信号パスの遅延時間が７番目のクロックサイクルの長さより長いときに、遅延故障Ｆ１またはＦ２の発生が検出される。ここで、７番目のクロックサイクルの長さは、７番目のクロックＣＬＫの立ち上がりエッジから８番目のクロックＣＬＫの立ち上がりエッジまでの期間である。また、スキャンフリップフロップＳＦＦｆから出力される論理（遷移エッジ）をオアゲートＯＲ１に伝達するために、テストモード端子ＴＭはテストモード中に論理１に設定される。７番目から９番目のクロックサイクルにおいて、破線で示した波形は、遅延故障が存在するときの動作を示している。
【００７６】
この例では、スキャンフリップフロップＳＦＦｅ、ＳＦＦｆ、ＳＦＦｄ、ＳＦＦｃ、Ｓｆｆｂ、Ｓｆｆａに所望の論理を設定するために、１番目から６番目のクロックサイクルにおいてスキャン入力ＳＩＮに論理１、論理１、論理０、論理０、論理０、論理１が順に供給される。スキャン入力ＳＩＮの波形上に示したスキャンフリップフロップ名は、６番目のクロックサイクルで設定される論理との対応を示している。キャプチャ期間の直前の６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、論理０、論理１、論理１、論理１にそれぞれ設定される。
【００７７】
すなわち、６番目のクロックサイクルにおいて、オアゲートＯＲ１の入力Ｉ１にデータ入力Ｄ経由で直列に接続されるスキャンフリップフロップＳＦＦｂ、ＳＦＦａは、互いに異なる論理を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂに保持される論理を論理０から論理１に変化でき、オアゲートＯＲ１の入力Ｉ１を論理０から論理１に変化できる。
【００７８】
また、６番目のクロックサイクルにおいて、ナンドゲートＮＡＮＤ１およびアンドゲートＡＮＤ１を介し、かつデータ入力Ｄ経由でオアゲートＯＲ１の入力Ｉ２に直列に接続されるスキャンフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに同じ論理を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｆに保持される論理を、１クロックサイクル前にスキャンフリップフロップＳＦＦｅに保持されている論理を用いて論理１に維持できる。したがって、スキャンフリップフロップＳＦＦｆの出力ノードに接続されるオアゲートＯＲ１の入力Ｉ２を論理０に維持できる。なお、スキャンフリップフロップＳＦＦｆに保持されている論理は、ナンドゲートＮＡＮＤ１により反転されて、ノードＮＤｆおよびオアゲートＯＲ１の入力Ｉ２に伝達される。
【００７９】
遅延故障Ｆ１が存在しないとき、スキャンフリップフロップＳＦＦｂの論理変化は、オアゲートＯＲ１の入力Ｉ１、オアゲートＯＲ１の出力ノードＮＤｈに直ちに伝達される。回路ＣＣ２は、出力ノードＮＤｈの論理０から論理１への変化に応答して、出力ノードＮＤｉを論理１から論理０に直ちに変化する。このため、スキャンフリップフロップＳＦＦｅは、キャプチャ期間の８番目のクロックサイクルにおいて、論理０をラッチし、ラッチした論理０をスキャンアウト端子ＳＯＵＴに出力する。そして、スキャンシフト期間の９番目のクロックサイクルにおいて、図７に示したテスタＴＥＳＴは、スキャンアウト端子ＳＯＵＴの論理０を読み込むことにより、遅延故障Ｆ１が存在しないことを検出する。
【００８０】
なお、実際の回路では、スキャンフリップフロップＳＦＦｅの出力は、複数のスキャンフリップフロップを介してスキャンアウト端子ＳＯＵＴに接続されることが多い。この場合、スキャンアウト端子ＳＯＵＴは、例えば、シフトレジスタを構成する最終のスキャンフリップフロップの出力Ｑに接続され、遅延故障Ｆ１の有無は、９番目のクロックサイクルより後のクロックサイクルで判定される。
【００８１】
一方、遅延故障Ｆ１が存在するとき、スキャンフリップフロップＳＦＦｂの論理変化は、破線で示すように、オアゲートＯＲ１の入力Ｉ１、オアゲートＯＲ１の出力ノードＮＤｈあるいは回路ＣＣ２の出力ノードＮＤｉに遅れて伝達される。信号の遅延により、キャプチャ期間の８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅがノードＮＤｉの論理０をラッチできないとき、スキャンアウト端子ＳＯＵＴは論理１に維持される。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理１を読み込むことにより、遅延故障Ｆ１が存在することを検出する。
【００８２】
図９は、図３に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの別の例を示している。図９の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図３に示した遅延故障Ｆ２を検出するために実施される。換言すれば、図９は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８と同じ動作については、詳細な説明は省略する。
【００８３】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理０、論理１、論理０、論理０、論理０、論理０が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、論理０、論理０、論理１、論理０にそれぞれ設定される。すなわち、６番目のクロックサイクルにおいて、オアゲートＯＲ１の入力Ｉ１に直列に接続されるスキャンフリップフロップＳＦＦｂ、ＳＦＦａは、互いに同じ論理を保持する。ナンドゲートＮＡＮＤ１およびアンドゲートＡＮＤ１を介してオアゲートＯＲ１の入力Ｉ２に直列に接続されるスキャンフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに異なる論理を保持する。
【００８４】
これにより、キャプチャ期間の７番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｆに保持される論理を、１クロックサイクル前にスキャンフリップフロップＳＦＦｅに保持されている論理を用いて、論理１から論理０に変更できる。スキャンフリップフロップＳＦＦｅに保持されている論理は、ナンドゲートＮＡＮＤ１により反転される。すなわち、７番目のクロックサイクルにおいて、オアゲートＯＲ１の入力Ｉ１を論理０に維持した状態で、オアゲートＯＲ１の入力Ｉ２を論理０から論理１に変化できる。
【００８５】
遅延故障Ｆ２が存在しないとき、スキャンフリップフロップＳＦＦｆの論理変化は、オアゲートＯＲ１の入力Ｉ２および出力ノードＮＤｈに直ちに伝達される。図８と同様に、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて論理０をラッチし、テスタＴＥＳＴは、９番目のクロックサイクルにおいてスキャンアウト端子ＳＯＵＴの論理０を読み込む。これにより、遅延故障Ｆ２が存在しないことが検出される。
【００８６】
一方、遅延故障Ｆ２が存在するとき、破線で示すように、スキャンフリップフロップＳＦＦｆの論理変化は、オアゲートＯＲ１の入力Ｉ１、オアゲートＯＲ１の出力ノードＮＤｈあるいは回路ＣＣ２の出力ノードＮＤｉに遅れて伝達される。そして、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅがノードＮＤｉの論理０をラッチできないとき、スキャンアウト端子ＳＯＵＴは論理１に維持される。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理１を読み込むことにより、遅延故障Ｆ２が存在することを検出する。
【００８７】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、論理ゲートＬ１の入力Ｉ１を含む信号パスの遅延故障Ｆ１と、論理ゲートＬ１の入力Ｉ２を含む信号パスの遅延故障Ｆ２とを、１つの制御点ＣＰにより検出できる半導体集積回路ＬＳＩを提供できる。また、スキャンフリップフロップＳＦＦｆのデータ出力Ｑを、テストモード信号ＴＭにより制御されるナンドゲートＮＡＮＤ１を介してアンド回路ＡＮＤ１に接続することで、システムモード中にスキャンフリップフロップＳＦＦｆのデータ出力Ｑの論理がアンドゲートＡＮＤ１に伝達されることを防止できる。この結果、論理回路ＬＯＧＩＣＴが誤動作することを防止できる。
【００８８】
図１０は、論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００８９】
この実施形態の論理回路ＬＯＧＩＣＴは、図３の回路ＣＣ１の代わりに回路ＣＣ３を有している。また、制御点ＣＰは、図３に示したナンドゲートＮＡＮＤ１の代わりにアンドゲートＡＮＤ２を有し、図３に示したアンドゲートＡＮＤ１の代わりにオアゲートＯＲ２を有している。論理回路ＬＯＧＩＣＴのその他の構成は、図３と同様である。図１０の論理回路ＬＯＧＩＣは、図５に示したテスト回路挿入装置ＣＡＤがテスト回路挿入プログラムを実行し、図６に示した処理を実施することにより生成される。
【００９０】
この実施形態では、回路ＣＣ３の出力（すなわち、ノードＮＤｅ）は、論理０になりやすいとする。換言すれば、ユーザロジックＵＬ２の動作中に、ノードＮＤｅが論理０になる確率は、ノードＮＤｅが論理１になる確率よりも十分に高い。このため、オアゲートＯＲ１の入力Ｉ２を任意の論理に設定可能にし、故障検出率を向上するために、図３と異なる制御点ＣＰが挿入されている。制御点ＣＰのオアゲートＯＲ２は、回路ＣＣ３の出力が論理０に設定されているときに、オアゲートＬ１の入力Ｉ２を論理１に設定可能にするために設けられる。
【００９１】
テストモード中（ＴＭ＝論理１）、アンドゲートＡＮＤ２の信号伝達機能は有効になり、アンドゲートＡＮＤ２は、スキャンフリップフロップＳＦＦｆの出力Ｑの論理をオアゲートＯＲ２に出力する。一方、システムモード中（ＴＭ＝論理０）、アンドゲートＡＮＤ２の信号伝達機能は無効になり、アンドゲートＡＮＤ２の出力であるノードＮＤｆは論理０固定される。これにより、システムモード中に、データ入力Ｄで受ける論理に応じて動作するスキャンフリップフロップＳＦＦｆのデータ出力Ｑの論理がオアゲートＯＲ２に伝達されることを防止でき、ユーザロジックＵＬ３等の誤動作を防止できる。アンドゲートＡＮＤ２がノードＮＤｆに論理０を出力することで、回路ＣＣ３の出力であるノードＮＤｅの論理は、オアゲートＯＲ２を介してオアゲートＯＲ１に伝達される。このように、スキャンフリップフロップＳＦＦｆをテストモード信号ＴＭにより制御されるアンドゲートＡＮＤ２を介してオアゲートＯＲ２に接続することで、システムモード中のスキャンフリップフロップＳＦＦｆの動作による誤動作を防止できる。
【００９２】
図１１は、図１０に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの例を示している。図１１の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１０に示した遅延故障Ｆ１を検出するために実施される。換言すれば、図１１は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８と同じ動作については、詳細な説明は省略する。
【００９３】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理０、論理０、論理０、論理０、論理０、論理１が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、論理０、論理１、論理０、論理０にそれぞれ設定される。すなわち、６番目のクロックサイクルにおいて、オアゲートＯＲ１の入力Ｉ１に直列に接続されるスキャンフリップフロップＳＦＦｂ、ＳＦＦａは、互いに異なる論理を保持する。これにより、図８と同様に、キャプチャ期間の７番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂに保持される論理を論理０から論理１に変化でき、オアゲートＯＲ１の入力Ｉ１を論理０から論理１に変化できる。
【００９４】
６番目のクロックサイクルにおいて、アンドゲートＡＮＤ２およびオアゲートＯＲ２を介してオアゲートＯＲ１の入力Ｉ２に直列に接続されるスキャンフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに同じ論理を保持する。これにより、キャプチャ期間の７番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｆに保持される論理を、１クロックサイクル前にスキャンフリップフロップＳＦＦｅに保持されている論理を用いて論理０に維持できる。ここで、図１０の制御点ＣＰは、ナンドゲートＮＡＮＤ１（図３）の代わりにアンドゲートＡＮＤ２を有しているため、制御点ＣＰを”０制御点”として動作させるために、スキャンフリップフロップＳＦＦｆ、ＳＦＦｅは、論理０を設定される。制御点ＣＰにより、スキャンフリップフロップＳＦＦｆの出力ノードに接続されるオアゲートＯＲ１の入力Ｉ２を論理０に維持できる。
【００９５】
遅延故障Ｆ１が存在しないとき、図８と同様に、スキャンフリップフロップＳＦＦｂの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れる。スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチし、ラッチした論理０をスキャンアウト端子ＳＯＵＴに出力する。図７に示したテスタＴＥＳＴは、スキャンアウト端子ＳＯＵＴの論理０を読み込むことにより、遅延故障Ｆ１が存在しないことを検出する。
【００９６】
一方、遅延故障Ｆ１が存在するとき、図８と同様に、スキャンフリップフロップＳＦＦｂの論理変化は、出力ノードＮＤｉに遅れて伝達される。８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅがノードＮＤｉの論理０をラッチできないとき、スキャンアウト端子ＳＯＵＴは論理１に維持される。図７に示したテスタＴＥＳＴは、スキャンアウト端子ＳＯＵＴの論理１を読み込むことにより、遅延故障Ｆ１が存在することを検出する。
【００９７】
図１２は、図１０に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの別の例を示している。図１２の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１０に示した遅延故障Ｆ２を検出するために実施される。換言すれば、図１２は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８および図９と同じ動作については、詳細な説明は省略する。
【００９８】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理１、論理０、論理０、論理０、論理０、論理０が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｅは、論理０、論理０、論理０、論理１にそれぞれ設定される。すなわち、６番目のクロックサイクルにおいて、オアゲートＯＲ１の入力Ｉ１に直列に接続されるスキャンフリップフロップＳＦＦｂ、ＳＦＦａは、互いに同じ論理を保持する。アンドゲートＡＮＤ２およびオアゲートＯＲ２を介してオアゲートＯＲ１の入力Ｉ２に直列に接続されるスキャンフリップフロップＳＦＦｆ、ＳＦＦｅは、互いに異なる論理を保持する。
【００９９】
これにより、キャプチャ期間の７番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｆに保持される論理を、１クロックサイクル前にスキャンフリップフロップＳＦＦｅに保持されている論理を用いて、論理０から論理１に変更できる。すなわち、７番目のクロックサイクルにおいて、オアゲートＯＲ１の入力Ｉ１を論理０に維持した状態で、オアゲートＯＲ１の入力Ｉ２を論理０から論理１に変化できる。
【０１００】
遅延故障Ｆ２が存在しないとき、スキャンフリップフロップＳＦＦｆの論理変化は、オアゲートＯＲ１の入力Ｉ２およびノードＮＤｈ、ＮＤｉに直ちに伝達される。スキャンフリップフロップＳＦＦｅは、図９と同様に、８番目のクロックサイクルにおいて論理０をラッチし、テスタＴＥＳＴは、９番目のクロックサイクルにおいてスキャンアウト端子ＳＯＵＴの論理０を読み込む。これにより、遅延故障Ｆ２が存在しないことが検出される。
【０１０１】
一方、遅延故障Ｆ２が存在するとき、スキャンフリップフロップＳＦＦｆの論理変化は、オアゲートＯＲ１の入力ノードＩ２、オアゲートＯＲ１の出力ノードＮＤｈあるいは回路ＣＣ２の出力ノードＮＤｉに遅れて伝達される。そして、図９と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅがノードＮＤｉの論理０をラッチできないとき、スキャンアウト端子ＳＯＵＴは論理１に維持される。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理１を読み込むことにより、遅延故障Ｆ２が存在することを検出する。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
【０１０２】
図１３は、論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１０３】
この実施形態の論理回路ＬＯＧＩＣＴでは、制御点ＣＰのスキャンフリップフロップＳＦＦｆのデータ入力Ｄは、図３に示したスキャンフリップフロップＳＦＦｅのデータ出力Ｑではなく、スキャンフリップフロップＳＦＦｄのデータ出力Ｑに接続されている。論理回路ＬＯＧＩＣＴのその他の構成は、図３と同様である。図１３の論理回路ＬＯＧＩＣは、図５に示したテスト回路挿入装置ＣＡＤがテスト回路挿入プログラムを実行し、図６に示した処理を実施することにより生成される。
【０１０４】
図１４は、図１３に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの例を示している。図１４の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１３に示した遅延故障Ｆ１を検出するために実施される。換言すれば、図１４は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８と同じ動作については、詳細な説明は省略する。
【０１０５】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理１、論理１、論理１、論理１、論理０、論理１が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｄは、論理０、論理１、論理１、論理１にそれぞれ設定される。そして、遅延故障Ｆ１が存在しないとき、図８と同様に、スキャンフリップフロップＳＦＦｂの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れ、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチする。遅延故障Ｆ１が存在するとき、図８と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅは、ノードＮＤｉの論理０をラッチできない。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理を読み込むことにより、遅延故障Ｆ１の有無を検出する。
【０１０６】
図１５は、図１３に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの別の例を示している。図１５の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１３に示した遅延故障Ｆ２を検出するために実施される。換言すれば、図１５は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８および図９と同じ動作については、詳細な説明は省略する。
【０１０７】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理１、論理１、論理０、論理０、論理０、論理０が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｄは、論理０、論理０、論理１、論理０にそれぞれ設定される。そして、遅延故障Ｆ２が存在しないとき、図９と同様に、スキャンフリップフロップＳＦＦｆの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れ、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチする。遅延故障Ｆ２が存在するとき、図９と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅは、ノードＮＤｉの論理０をラッチできない。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理を読み込むことにより、遅延故障Ｆ２の有無を検出する。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
【０１０８】
図１６は、論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１０９】
この実施形態の論理回路ＬＯＧＩＣＴでは、制御点ＣＰのスキャンフリップフロップＳＦＦｆのデータ入力Ｄは、図１０に示したスキャンフリップフロップＳＦＦｅのデータ出力Ｑではなく、スキャンフリップフロップＳＦＦｄのデータ出力Ｑに接続されている。論理回路ＬＯＧＩＣＴのその他の構成は、図１０と同様である。図１６の論理回路ＬＯＧＩＣは、図５に示したテスト回路挿入装置ＣＡＤがテスト回路挿入プログラムを実行し、図６に示した処理を実施することにより生成される。
【０１１０】
図１７は、図１６に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの例を示している。図１７の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１６に示した遅延故障Ｆ１を検出するために実施される。換言すれば、図１７は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８および図１１と同じ動作については、詳細な説明は省略する。
【０１１１】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理０、論理０、論理０、論理０、論理０、論理１が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｄは、論理０、論理１、論理０、論理０にそれぞれ設定される。そして、遅延故障Ｆ１が存在しないとき、図１１と同様に、スキャンフリップフロップＳＦＦｂの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れ、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチする。遅延故障Ｆ１が存在するとき、図１１と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅは、ノードＮＤｉの論理０をラッチできない。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理を読み込むことにより、遅延故障Ｆ１の有無を検出する。
【０１１２】
図１８は、図１６に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの別の例を示している。図１８の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１６に示した遅延故障Ｆ２を検出するために実施される。換言すれば、図１５は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８、図９および図１２と同じ動作については、詳細な説明は省略する。
【０１１３】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理０、論理０、論理１、論理１、論理０、論理０が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｄは、論理０、論理０、論理０、論理１にそれぞれ設定される。そして、遅延故障Ｆ２が存在しないとき、図１２と同様に、スキャンフリップフロップＳＦＦｆの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れ、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチする。遅延故障Ｆ２が存在するとき、図１２と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅは、ノードＮＤｉの論理０をラッチできない。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理を読み込むことにより、遅延故障Ｆ２の有無を検出する。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
【０１１４】
図１９は、論理回路の故障検出方法、論理回路のテスト回路挿入方法、論理回路のテスト回路挿入装置および半導体集積回路の別の実施形態を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１１５】
この実施形態の論理回路ＬＯＧＩＣＴでは、制御点ＣＰのスキャンフリップフロップＳＦＦｆのデータ入力Ｄは、図３に示したスキャンフリップフロップＳＦＦｅのデータ出力Ｑではなく、スキャンフリップフロップＳＦＦｃのデータ出力Ｑに接続されている。論理回路ＬＯＧＩＣＴのその他の構成は、図３と同様である。図１９の論理回路ＬＯＧＩＣは、図５に示したテスト回路挿入装置ＣＡＤがテスト回路挿入プログラムを実行し、図６に示した処理を実施することにより生成される。
【０１１６】
図２０は、図１９に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの例を示している。図２０の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１９に示した遅延故障Ｆ１を検出するために実施される。換言すれば、図２０は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８および図１４と同じ動作については、詳細な説明は省略する。
【０１１７】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理１、論理１、論理１、論理１、論理０、論理１が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｃは、論理０、論理１、論理１、論理１にそれぞれ設定される。そして、遅延故障Ｆ１が存在しないとき、図１４と同様に、スキャンフリップフロップＳＦＦｂの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れ、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチする。遅延故障Ｆ１が存在するとき、図１４と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅは、ノードＮＤｉの論理０をラッチできない。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理を読み込むことにより、遅延故障Ｆ１の有無を検出する。
【０１１８】
図２１は、図１９に示した論理回路ＬＯＧＩＣＴの遅延故障を検出するためのテストの別の例を示している。図２１の動作は、図７に示したテスタＴＥＳＴが故障検出プログラムを実行することで実現され、図１９に示した遅延故障Ｆ２を検出するために実施される。換言すれば、図２１は、論理回路ＬＯＧＩＣＴの遅延故障の故障検出方法を示し、半導体集積回路ＬＳＩの製造方法を示している。図８、図９および図１５と同じ動作については、詳細な説明は省略する。
【０１１９】
この例では、１番目から６番目のクロックサイクルにスキャン入力ＳＩＮに論理１、論理１、論理０、論理０、論理０、論理０が順に供給される。６番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｂ、ＳＦＦａ、ＳＦＦｆ、ＳＦＦｃは、論理０、論理０、論理１、論理０にそれぞれ設定される。そして、遅延故障Ｆ２が存在しないとき、図１５と同様に、スキャンフリップフロップＳＦＦｆの論理変化は、出力ノードＮＤｉの論理変化として直ちに現れ、スキャンフリップフロップＳＦＦｅは、８番目のクロックサイクルにおいて、論理０をラッチする。遅延故障Ｆ２が存在するとき、図１５と同様に、８番目のクロックサイクルにおいて、スキャンフリップフロップＳＦＦｅは、ノードＮＤｉの論理０をラッチできない。図７に示したテスタＴＥＳＴは、スキャンシフト期間の９番目のクロックサイクルにおいて、スキャンアウト端子ＳＯＵＴの論理を読み込むことにより、遅延故障Ｆ２の有無を検出する。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
【０１２０】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１２１】
ＣＡＤ‥テスト回路挿入装置；ＣＣ１、ＣＣ２‥回路；ＣＰ‥制御点；ＣＰＵ‥プロセッサ；ＤＩＳＰ‥ディスプレイ；ＤＲＶ‥ディスクドライブ装置；ＦＦ１−ＦＦ４、ＦＦａ−ＦＦｆ‥フリップフロップ；ＩＮＯＵＴ‥入出力デバイス；ＩＮＰＵＴ‥入力デバイス；Ｌ１、Ｌ２‥論理ゲート；ＬＳＩ‥半導体集積回路；ＬＯＧＩＣ、ＬＯＧＩＣＴ‥論理回路；ＭＥＭ‥メモリ装置；ＰＲＢ‥プローブ；ＳＦＦ１−ＳＦＦ４、ＳＦＦａ−ＳＦＦｆ‥スキャンフリップフロップ；ＳＩＮ‥スキャン入力；ＳＭ‥スキャンモード入力；ＴＥＳＴ‥テスタ；ＴＳＹＳ‥テストシステム；ＵＬ１、ＵＬ２、ＵＬ３‥ユーザロジック；ＷＡＦ‥半導体ウエハ
【図１】
0005803561.tif 000002
【図２】
0005803561.tif 000003
【図３】
0005803561.tif 000004
【図４】
0005803561.tif 000005
【図５】
0005803561.tif 000006
【図６】
0005803561.tif 000007
【図７】
0005803561.tif 000008
【図８】
0005803561.tif 000009
【図９】
0005803561.tif 000010
【図１０】
0005803561.tif 000011
【図１１】
0005803561.tif 000012
【図１２】
0005803561.tif 000013
【図１３】
0005803561.tif 000014
【図１４】
0005803561.tif 000015
【図１５】
0005803561.tif 000016
【図１６】
0005803561.tif 000017
【図１７】
0005803561.tif 000018
【図１８】
0005803561.tif 000019
【図１９】
0005803561.tif 000020
【図２０】
0005803561.tif 000021
【図２１】
0005803561.tif 000022