(57)【要約】【課題】半導体装置のスキャンテストにおいて、パターンメモリへのスキャンテストパターンのリロードを防ぐことで、テスト時間を短縮すること。【解決手段】コンピュータが、半導体装置に対するスキャンテストにおいて、スキューの異なる複数のスキャンシフトクロック信号を生成する工程と、スキャンパスに含まれる複数のスキャンフリップフロップをスキャンシフトクロック信号の個数に応じて複数の組に分割し、複数の組のそれぞれに含まれるスキャンフリップフロップに対して、複数のスキャンシフトクロック信号をそれぞれ割り当てる工程と、複数の組のうちのいずれか１つの組に含まれるスキャンフリップフロップに対するスキャンテストパターンを生成する工程と、スキャンテストパターンのパターン長がテスタのパターンメモリサイズ以下となるように、スキャンシフトクロック信号の個数を調整する工程と、を含む。【選択図】図３
2014001937.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、半導体装置に対するスキャンテストにおいて、スキューの異なる複数のスキャンシフトクロック信号を生成する工程と、
スキャンパスに含まれる複数のスキャンフリップフロップを前記複数のスキャンシフトクロック信号の個数に応じて複数の組に分割し、前記複数の組のそれぞれに含まれるスキャンフリップフロップに対して、前記複数のスキャンシフトクロック信号をそれぞれ割り当てる工程と、
前記複数の組のうちのいずれか１つの組に含まれるスキャンフリップフロップに対する第１のスキャンテストパターンを生成する工程と、
前記第１のスキャンテストパターンのパターン長がテスタのパターンメモリサイズ以下となるように、前記複数のスキャンシフトクロック信号の個数を調整する工程と、を含む、スキャンテスト方法。
【請求項２】
前記コンピュータが、前記１つの組に含まれるスキャンフリップフロップを用いた前記半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、前記第１のスキャンテストパターンを調整する工程を含む、請求項１に記載のスキャンテスト方法。
【請求項３】
前記コンピュータが、前記第１のスキャンテストパターンを複製することで、前記複数の組のすべての組に含まれるスキャンフリップフロップに対する第２のスキャンテストパターンを生成する工程と、
前記複数の組のすべての組に含まれるスキャンフリップフロップを用いた、前記第２のテストパターンに基づく、前記半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、前記複数のスキャンシフトクロック信号の個数、および、前記第１のスキャンテストパターンの少なくともいずれかを調整する工程と、を含む、請求項２に記載のスキャンテスト方法。
【請求項４】
前記コンピュータが、前記複数の組のすべての組に含まれるスキャンフリップフロップを用いた、前記第１のテストパターンに基づく、前記半導体装置のスキャンテストのスキャンシフト動作において、前記複数のスキャンシフトクロック信号の周期を、前記複数のスキャンシフトクロック信号の個数に応じて変更する工程を含む、請求項２に記載のスキャンテスト方法。
【請求項５】
前記スキャンパスに含まれる複数のスキャンフリップフロップに対して前記スキャンパスに沿って順に番号を割り振った場合に、割り振られた番号を前記複数のスキャンシフトクロック信号の個数で除したときの剰余が等しいスキャンフリップフロップは、前記複数の組のうちの同一の組に属する、請求項４に記載のスキャンテスト方法。
【請求項６】
前記コンピュータが、前記複数の組のすべての組に含まれるスキャンフリップフロップと単一のスキャンシフトクロック信号に基づいて、前記半導体装置のスキャンテストを行うための第３のスキャンテストパターンを生成する工程と、
前記第１のスキャンテストパターンおよび前記第３のスキャンテストパターンの合計パターン長が前記パターンメモリサイズ以下となるように、前記複数のスキャンシフトクロック信号の個数を調整する工程と、を含む、請求項２に記載のスキャンテスト方法。
【請求項７】
前記コンピュータが、前記複数の全ての組に含まれるスキャンフリップフロップを用いた、前記第３のテストパターンに基づく、前記半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、前記第３のスキャンテストパターンを調整する工程を含む、請求項６に記載のスキャンテスト方法。
【請求項８】
半導体装置に対するスキャンテストにおいて、スキューの異なる複数のスキャンシフトクロック信号を生成する処理と、
スキャンパスに含まれる複数のスキャンフリップフロップを前記複数のスキャンシフトクロック信号の個数に応じて複数の組に分割し、前記複数の組のそれぞれに含まれるスキャンフリップフロップに対して、前記複数のスキャンシフトクロック信号をそれぞれ割り当てる処理と、
前記複数の組のうちのいずれか１つの組に含まれるスキャンフリップフロップに対する第１のスキャンテストパターンを生成する処理と、
前記第１のスキャンテストパターンのパターン長がテスタのパターンメモリサイズ以下となるように、前記複数のスキャンシフトクロック信号の個数を調整する処理と、をコンピュータに実行させる、プログラム。
【請求項９】
前記１つの組に含まれるスキャンフリップフロップを用いた前記半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、前記第１のスキャンテストパターンを調整する処理を、前記コンピュータに実行させる、請求項８に記載のプログラム。
【請求項１０】
前記複数の組のすべての組に含まれるスキャンフリップフロップを用いた、前記第１のテストパターンに基づく、前記半導体装置のスキャンテストのスキャンシフト動作おいて、前記複数のスキャンシフトクロック信号の周波数を、前記複数のスキャンシフトクロック信号の個数に応じて逓倍する処理を、前記コンピュータに実行させる、請求項９に記載のプログラム。
【請求項１１】
前記複数の組のすべての組に含まれるスキャンフリップフロップと単一のスキャンシフトクロック信号に基づいて、前記半導体装置のスキャンテストを行うための第３のスキャンテストパターンを生成する処理と、
前記第１のスキャンテストパターンおよび前記第３のスキャンテストパターンの合計パターン長が前記パターンメモリサイズ以下となるように、前記複数のスキャンシフトクロック信号の個数を調整する処理と、を前記コンピュータに実行させる、請求項９に記載のプログラム。
【請求項１２】
スキャンパス上に設けられた複数のスキャンフリップフロップと、
半導体装置に対するスキャンテストにおいてスキューの異なる３つ以上のスキャンシフトクロック信号を生成し、前記スキャンパスに含まれる複数のスキャンフリップフロップを前記複数のスキャンシフトクロック信号の個数に応じて複数の組に分割したときの各組に含まれるスキャンフリップフロップに対して、前記複数のスキャンシフトクロック信号をそれぞれ供給するスキャンシフトクロック制御回路と、を備える、スキャンテスト回路。
【請求項１３】
前記スキャンパスに含まれる複数のスキャンフリップフロップに対して前記スキャンパスに沿って順に番号を割り振った場合に、割り振られた番号を前記複数のスキャンシフトクロック信号の個数で除したときの剰余が等しいスキャンフリップフロップは、前記複数の組のうちの同一の組に属する、請求項１２に記載のスキャンテスト回路。
【請求項１４】
前記スキャンシフトクロック制御回路は、それぞれ、遅延素子および反転素子を有し、前記複数のスキャンシフトクロック信号のいずれかを生成する第１ないし第３の回路を備える、請求項１３に記載のスキャンテスト回路。
【請求項１５】
前記第１ないし第３の回路は、それぞれ、クロック信号および制御信号を受信し、前記遅延素子を用いて前記クロック信号を遅延させた第１の信号、前記反転素子を用いて前記クロック信号を反転させた第２の信号、ならびに、前記遅延素子および前記反転素子を用いて前記クロック信号を遅延させるとともに反転させた第３の信号を生成し、前記クロック信号および前記第１ないし第３の信号のうちのいずれかの信号を前記制御信号に応じて選択し、選択した信号を前記複数のスキャンシフトクロック信号のいずれかとして出力する、請求項１４に記載のスキャンテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンテスト方法、プログラムおよびスキャンテスト回路に関し、例えば、半導体装置（ＬＳＩ：Large Scale Integration）のテスト容易化設計（ＤＦＴ：Design For Test）技術である、スキャンテスト方法、プログラムおよびスキャンテスト回路に関する。
【背景技術】
【０００２】
近年、高集積化・大規模化しているＬＳＩの設計において、テスト（試験）に要するコストを削減する観点から、スキャンテストを適用することが必要不可欠となっている。
【０００３】
例えば、特許文献１には、スキャンテストにおいて、スキャンシフトの動作速度を高速化する技術が記載されている。また、特許文献２には、スキャンシフト動作におけるフリップフロップの動作個数を削減し、スキャンシフト動作時の消費電力の増加を抑止する技術が記載されている。さらに、特許文献３には、スキャンテスト回路の回路規模を簡素化する技術が記載されている。
【０００４】
また、関連技術として、非特許文献１には、ＩＲＦ（Inline Resistance Fault）モデルを用いた遅延故障の解析方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−００２２６１号公報
【特許文献２】特開２００４−２３３１３３号公報
【特許文献３】特開２００６−００３３１７号公報
【非特許文献】
【０００６】
【非特許文献１】B. Benware, et al., "Affordable and Effective Screening of Delay Defects in ASICs using the Inline Resistance Fault Model," IEEE 2004, pp.1285-1294.[online], [平成24年5月2日検索], インターネット<URL:http://www.itcprogramdev.org/itc2004proc/Papers/PDFs/0045_3.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明者によってなされたものである。
【０００８】
回路規模が増大したＬＳＩのテストにおいて、高い故障検出率（テスト品質）を実現するために、スキャンテストパターンが長大となり、ＬＳＩテスタにおけるパターンメモリの消費量が増大している。
【０００９】
ＬＳＩテスタのパターンメモリ容量は有限であるため、ＬＳＩテスタのパターンメモリ容量を超えるスキャンテストパターン長のテストを行うときには、パターンメモリに対してパターンを複数回ロード（リロード）する必要がある。例えば、ＬＳＩテスタのパターンメモリ容量よりも長大となったスキャンテストパターンが１回のテスト中にすべてのスキャンテストパターンをロードできなくなったとき、スキャンテストパターンのリロードが行われる。
【００１０】
しかし、スキャンテストパターンのリロードは、ＬＳＩテスタのハードディスクとパターンメモリとのアクセスを発生させるため、スキャンテストパターンのリロードを行うと、アクセスタイム分だけテスト時間が長くなり、全体としてのテスト時間も増大する。したがって、テスト中のスキャンパターンのリロードを抑えるために、スキャンテストパターンを短縮することが好ましい。
【００１１】
特許文献１に記載されたスキャンテスト回路の設計方法においては、スキャンチェーン情報に基づいて、隣り合うスキャンフリップフロップ（以下、「スキャンＦＦ」という。）のスキャンシフトクロック信号が逆相となるよう反転クロック制御回路を挿入する。さらに、タイミング検証を実施して、スキャンＦＦ間でセットアップ時間が不足している場合には、セットアップ時間が不足しているスキャンＦＦ間のスキャンシフトクロック信号が同相となるように正転／反転クロック制御回路を挿入する。
【００１２】
特許文献１に記載されたスキャン構築方法によると、スキャンテストパターンを短縮する効果は、最大でも元のスキャンテストパターン長の１／２に過ぎない。その理由は、特許文献１に記載された方法では、正転／反転の高々２種類のスキャンシフトクロック信号しか生成されないからである。
【００１３】
非特許文献１に記載された配線遅延故障（ＩＲＦ）の理論によると、信号線の遅延故障の多くは、高抵抗オープンによるものと推察され、立上りまたは立下りのいずれかで故障検出することが可能である。この理論を特許文献１に適用すると、スキャンテストパターン長を、スキャンチェーンを構成するスキャンＦＦの個数の半分にすることができる。しかしながら、特許文献１に記載された技術によると、正転／反転クロック制御回路の挿入により、正転／反転の２種類のスキャンシフトクロック信号しか生成されない。
【００１４】
したがって、特許文献１に記載された技術によると、スキャンテストパターンの短縮の割合は、最大でも元のスキャンテストパターン長の１／２となる。このとき、パターンメモリに収まらないスキャンテストパターンは、ＬＳＩのテスト時にリロードする必要があり、テスト時間が長くなるおそれがある。
【００１５】
そこで、半導体装置のスキャンテストにおいて、パターンメモリに対するスキャンテストパターンのリロードを防ぐことで、テスト時間を短縮することが課題となる。なお、その他の課題および新規な特徴は、本明細書の記載および添付図面から明らかにされる。
【課題を解決するための手段】
【００１６】
一実施の形態によれば、スキャンテスト方法は、
コンピュータが、半導体装置に対するスキャンテストにおいて、スキューの異なる複数のスキャンシフトクロック信号を生成する工程と、
スキャンパスに含まれる複数のスキャンＦＦを前記複数のスキャンシフトクロック信号の個数に応じて複数の組に分割し、前記複数の組のそれぞれに含まれるスキャンＦＦに対して、前記複数のスキャンシフトクロック信号をそれぞれ割り当てる工程と、
前記複数の組のうちのいずれか１つの組に含まれるスキャンＦＦに対する第１のスキャンテストパターンを生成する工程と、
前記第１のスキャンテストパターンのパターン長がテスタのパターンメモリサイズ以下となるように、前記複数のスキャンシフトクロック信号の個数を調整する工程と、を含む。
【００１７】
他の実施形態によれば、プログラムは、
半導体装置に対するスキャンテストにおいて、スキューの異なる複数のスキャンシフトクロック信号を生成する処理と、
スキャンパスに含まれる複数のスキャンＦＦを前記複数のスキャンシフトクロック信号の個数に応じて複数の組に分割し、前記複数の組のそれぞれに含まれるスキャンＦＦに対して、前記複数のスキャンシフトクロック信号をそれぞれ割り当てる処理と、
前記複数の組のうちのいずれか１つの組に含まれるスキャンＦＦに対する第１のスキャンテストパターンを生成する処理と、
前記第１のスキャンテストパターンのパターン長がテスタのパターンメモリサイズ以下となるように、前記複数のスキャンシフトクロック信号の個数を調整する処理と、をコンピュータに実行させる。
【００１８】
さらに他の実施の形態によれば、スキャンテスト回路は、
スキャンパス上に設けられた複数のスキャンＦＦと、
半導体装置に対するスキャンテストにおいてスキューの異なる３つ以上のスキャンシフトクロック信号を生成し、前記スキャンパスに含まれる複数のスキャンＦＦを前記複数のスキャンシフトクロック信号の個数に応じて複数の組に分割したときの各組に含まれるスキャンＦＦに対して、前記複数のスキャンシフトクロック信号をそれぞれ供給するスキャンシフトクロック制御回路と、を備える。
【発明の効果】
【００１９】
前記一実施の形態に係るスキャンテスト方法、前記他の実施の形態に係るプログラム、および、前記さらに他の実施の形態に係るスキャンテスト回路によると、半導体装置のスキャンテストにおいて、パターンメモリに対するスキャンテストパターンのリロードを防ぐことで、テスト時間を短縮することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係るスキャンテスト方法を実施するためのシステム構成を一例として示す図である。
【図２】第１の実施形態に係るスキャンテスト方法を一例として示すフロー図である。
【図３】第１および第２の実施形態に係るスキャンテスト方法を実施するためのスキャンテスト回路の構成を一例として示すブロック図である。
【図４】第１の実施形態に係るスキャンテスト方法を実施するためのスキャンシフトクロック制御回路の構成を一例として示す回路図である。
【図５】第１および第２の実施形態に係るスキャンテスト方法において、スキャンテストパターンを変換する様子を例示する図である。
【図６】第１および第２の実施形態に係るスキャンテスト方法におけるスキャンシフト動作を例示するタイミング図である。
【図７】第２の実施形態に係るスキャンテスト方法を一例として示すフロー図である。
【発明を実施するための形態】
【００２１】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２２】
本発明は、テスト容易化設計（ＤＦＴ：Design For Test）技術であるスキャンテスト分野において好適に適用することができる。本発明に係るスキャンテスト方法は、半導体装置（ＬＳＩ）のスキャンパス構築において、スキューの異なるスキャンシフトクロック信号を生成する工程と、スキャンフリップフロップ（スキャンＦＦ）をスキューの異なるスキャンシフトクロック信号毎に分類する工程と、スキャンＦＦによる故障検出率を確認し、故障検出率が目標値に達するまでスキャンテストパターンを作成する工程と、スキャンテストパターンのパターン長とテスタのパターンメモリサイズを比較する工程と、を含み、スキャンテストパターンのパターン長がテスタのパターンメモリサイズより小さくなるまで、スキューの異なるスキャンシフトクロック信号の個数、および、スキャンＦＦの分類数を増やす。
【００２３】
かかるスキャンテスト方法によると、スキャンテストパターンをパターンメモリサイズに収めることが可能となり、ＬＳＩのテスト時にパターンメモリにスキャンテストパターンをリロードする必要がなくなり、テスト時間を短縮することが可能となる。
【００２４】
図２は、本発明に係るスキャンテスト方法を一例として示すフロー図である。また、図３は、本発明に係るスキャンテスト方法におけるスキャンパスおよびスキャンＦＦの接続構成を一例として示す図である。
【００２５】
図２および図３を参照すると、スキャンテスト方法は、コンピュータが、半導体装置に対するスキャンテストにおいて、スキューの異なる複数のスキャンシフトクロック信号（ＳＣ１〜ＳＣ４）を生成する工程（ステップＳ１０４）と、スキャンパスに含まれる複数のスキャンＦＦ（７０３〜７１０）をスキャンシフトクロック信号の個数（例えば、４個）に応じて複数の組（例えば、４個の組）に分割し、複数の組のそれぞれに含まれるスキャンＦＦに対して、複数のスキャンシフトクロック信号（ＳＣ１〜ＳＣ４）をそれぞれ割り当てる工程と（ステップＳ１０４〜Ｓ１０８）、複数の組のうちのいずれか１つの組（例えば、４ｍ番目のスキャンＦＦから成る組、ｍ＝１、２、…）に含まれるスキャンＦＦ（７０６、７１０）に対する第１のスキャンテストパターン（Ｄ１０５）を生成する工程（ステップＳ１１０）と、第１のスキャンテストパターン（Ｄ１０５）のパターン長がテスタのパターンメモリサイズ以下となるように、スキャンシフトクロック信号の個数を調整する工程（ステップＳ１１５）と、を含む。
【００２６】
図２を参照すると、スキャンテスト方法は、コンピュータが、上記１つの組（例えば、４ｍ番目のスキャンＦＦから成る組）に含まれるスキャンＦＦ（７０６、７１０）を用いた半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、第１のスキャンテストパターン（Ｄ１０５）を調整する工程（ステップＳ１１３）を含んでいてもよい。
【００２７】
図５は、一部のスキャンＦＦ（例えば、図３の７０６、７１０）を用いてスキャンテストに対する第１のスキャンテストパターン（Ｄ１０５）を複製することで、すべてのスキャンＦＦ（７０３〜７１０）を用いたスキャンテストに対する第２のスキャンテストパターン（Ｄ１０７）を生成する方法を例示する図である。
【００２８】
図２および図５を参照すると、スキャンテスト方法は、コンピュータが、第１のスキャンテストパターン（Ｄ１０５、図５の上段）を複製（コピー）することで、複数の組のすべての組に含まれるスキャンＦＦ（７０３〜７１０）に対する第２のスキャンテストパターン（Ｄ１０７、図５の下段）を生成する工程と（ステップＳ１１６）、複数の組のすべての組に含まれるスキャンＦＦ（７０３〜７１０）を用いた、第２のテストパターン（Ｄ１０７）に基づく、半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、スキャンシフトクロック信号の個数、および、第１のスキャンテストパターン（Ｄ１０５）の少なくともいずれかを調整する工程（ステップＳ１１９）と、を含んでいてもよい。
【００２９】
かかるスキャンテスト方法によると、スキャンテストパターンをパターンメモリサイズに収めることが可能となり、半導体装置のテスト時にパターンメモリにスキャンテストパターンをリロードする必要がなくなり、テスト時間を短縮することが可能となる。なぜなら、スキャンテストパターンがパターンメモリに収まるように、スキャンシフトクロック信号の個数を任意の個数に調整することができるからである。また、スキャンテストパターンによる故障検出率を所望の値以上とすることで、半導体装置に対する信頼性の高い試験が可能となる。
【００３０】
図６は、本発明に係るスキャンテスト方法におけるスキャンシフト動作を一例として示すタイミング図である。図６を参照すると、スキャンテスト方法は、コンピュータが、複数の組のすべての組に含まれるスキャンＦＦ（７０３〜７１０）を用いた、第１のテストパターン（Ｄ１０５）に基づく、半導体装置のスキャンテストのスキャンシフト動作において、複数のスキャンシフトクロック信号（ＳＣ１〜ＳＣ４）の周期を、スキャンシフトクロック信号の個数に応じて変更する（例えば、４倍する）工程を含んでいてもよい。
【００３１】
かかるスキャンテスト方法によると、スキャンテストに含まれるスキャンシフト動作を短時間で行うことができ、半導体装置のテストに要する時間を大幅に短縮することが可能となる。
【００３２】
図２および図３を参照すると、スキャンパスに含まれる複数のスキャンＦＦ（７０３〜７１０）に対してスキャンパスに沿って順に番号を割り振った場合に、割り振られた番号をスキャンシフトクロック信号の個数（例えば、４個）で除したときの剰余が等しいスキャンＦＦは、複数の組のうちの同一の組に属するようにしてもよい。ただし、スキャンＦＦを複数の組に分類する方法は、かかる方法に限定されない。
【００３３】
図７は、本発明に係るスキャンテスト方法を一例として示すフロー図である。図７を参照すると、スキャンテスト方法は、コンピュータが、前記複数の組のすべての組に含まれるスキャンＦＦ（７０３〜７１０）と単一のスキャンシフトクロック信号（例えばＳＣ１）に基づいて、半導体装置のスキャンテストを行うための第３のスキャンテストパターン（Ｄ３０１）を生成する工程（ステップＳ３０５）と、第１のスキャンテストパターン（Ｄ１０５）および第３のスキャンテストパターン（Ｄ３０１）の合計パターン長がパターンメモリサイズ以下となるように、スキャンシフトクロック信号の個数を調整する工程（ステップＳ１１５）と、を含んでいてもよい。
【００３４】
図７を参照すると、スキャンテスト方法は、コンピュータが、複数の組のすべての組に含まれるスキャンＦＦ（７０３〜７１０）を用いた、第３のテストパターン（Ｄ３０１）に基づく、半導体装置のスキャンテストの故障検出率が所定の目標値以上となるように、第３のスキャンテストパターン（Ｄ３０１）を調整する工程（ステップＳ３０８）を含んでいてもよい。
【００３５】
かかるスキャンテスト方法によると、パターン長が相対的に短いものの故障検出率が相対的に低いスキャンテストパターン（Ｄ１０５）と、パターン長は相対的に長いものの故障検出率が相対的に高いスキャンテストパターン（Ｄ３０１）とを組み合わせたスキャンテストが可能となる。この方法によると、テストパターンのパターン長がパターンメモリに収まるようにしつつ、所望の故障検出率を実現することが、図２に示した方法と比較してさらに容易となる。
【００３６】
図３は、本発明に係るスキャンテスト回路の構成を一例として示すブロック図である。また、図４は、スキャンテスト回路に設けられたスキャンシフトクロック制御回路（７０２）の回路構成を一例として示す回路図である。
【００３７】
図３および図４を参照すると、スキャンテスト回路は、スキャンパス上に設けられた複数のスキャンＦＦ（７０３〜７１０）と、スキャンシフトクロック制御回路（７０２）と、を備える。スキャンシフトクロック制御回路（７０２）は、半導体装置に対するスキャンテストにおいてスキューの異なる少なくとも３つ以上のスキャンシフトクロック信号（例えば、ＳＣ１〜ＳＣ４）を生成し、スキャンパスに含まれる複数のスキャンＦＦをスキャンシフトクロック信号の個数（例えば、４個）に応じて複数の組（４個の組）に分割したときの各組に含まれるスキャンＦＦに対して、複数のスキャンシフトクロック信号をそれぞれ供給する。
【００３８】
かかるスキャンテスト回路によると、スキューの異なる所定の個数のスキャンシフトクロック信号を生成することができ、スキャンテストパターンがパターンメモリサイズに収まるように、スキャンシフトクロック信号の個数を調整することが可能となる。したがって、かかるスキャンテスト回路によると、半導体装置のテスト時にパターンメモリにスキャンテストパターンをリロードする必要がなくなり、テスト時間を短縮することが可能となる。
【００３９】
図３を参照すると、スキャンパスに含まれる複数のスキャンＦＦ（７０３〜７１０）に対してスキャンパスに沿って順に番号を割り振った場合に、割り振られた番号をスキャンシフトクロック信号の個数（例えば、４個）で除したときの剰余が等しいスキャンＦＦは、前記複数の組のうちの同一の組に属するようにしてもよい。例えば、図３においては、スキャンＦＦ７０３、７０７は同一の組に属し、スキャンＦＦ７０４、７０８は同一の組に属し、スキャンＦＦ７０５、７０９は同一の組に属し、スキャンＦＦ７０６、７１０は同一の組に属する。
【００４０】
図４を参照すると、スキャンシフトクロック制御回路（７０２）は、それぞれ、遅延素子（８０１）および反転素子（８０５）を有し、複数のスキャンシフトクロック信号（ＳＣ１〜ＳＣ４）のいずれかを生成する複数の回路（Ｃ１〜Ｃ４）を備えていてもよい。また、複数の回路（Ｃ１〜Ｃ４）は、それぞれ、クロック信号（ＣＬＫ＿ＩＮ）および制御信号（ＳＣｍ＿ＣＴＲＬｎ；ｍ＝１〜４、ｎ＝１、２）を受信し、遅延素子（８０１）を用いてクロック信号（ＣＬＫ＿ＩＮ）を遅延させた第１の信号、反転素子（８０５）を用いてクロック信号（ＣＬＫ＿ＩＮ）を反転させた第２の信号、ならびに、遅延素子（８０１）および反転素子（８０５）を用いてクロック信号（ＣＬＫ＿ＩＮ）を遅延させるとともに反転させた第３の信号を生成し、クロック信号（ＣＬＫ＿ＩＮ）および第１ないし第３の信号のうちのいずれかの信号を制御信号（ＳＣｍ＿ＣＴＲＬｎ）に応じて選択し、選択した信号をスキャンシフトクロック信号（ＳＣ１〜ＳＣ４）として出力してもよい。ただし、スキャンシフトクロック制御回路の構成は、図３および図４に示した構成に限定されない。
【００４１】
（実施形態１）
第１の実施形態に係るスキャンテスト方法について、図面を参照して説明する。図１は、本実施形態に係るスキャンテスト方法を実行する環境を一例として示すシステム構成図である。図１を参照すると、実行環境は、コンピュータ装置１０と、サーバ装置１４と、記録媒体１５と、ネットワーク１６とを有する。
【００４２】
サーバ装置１４に設けられた記録媒体１５は、実行プログラムを保持する。サーバ装置１４は、インターネット、ＬＡＮ（Local Area Network）などのネットワーク１６を介してエンジニアリングワークステーション（ＥＷＳ：Engineering Workstation）、ＰＣ（Personal Computer）等のコンピュータ装置１０に接続される。記録媒体１５に格納されている実行プログラムは、ネットワーク１６を介してコンピュータ装置１０にダウンロードされる。ダウンロードされたプログラムは、コンピュータ装置１０のローカルなハードディスク、メモリなどに格納（ストア）されて、コンピュータ装置１０に処理を実行させる。
【００４３】
図２は、本実施形態に係るスキャンテスト方法、特に、スキャンテスト回路の設計方法およびテストパターンの設計方法を表すフロー図である。
【００４４】
まず、半導体装置のネットリストＤ１０１を読み込み、スキャン回路を挿入する（ステップＳ１０１）。スキャン回路の挿入方式として、例えば、従来技術のマルチスキャン方式、圧縮スキャン方式などを採用することができる。
【００４５】
次に、スキャン回路に挿入されたスキャンＦＦに関する情報として、スキャンチェーン情報Ｄ１０２を得る（ステップＳ１０２）。スキャンチェーン情報Ｄ１０２は、スキャン入力（スキャンイン）端子ＳＩＮから順に連続する番号を割り振られたスキャンＦＦに関する情報を含む。
【００４６】
次に、スキューの異なるスキャンシフトクロック信号の種類の数を仮決めする（ステップＳ１０３）。本実施形態では、一例として、スキャンシフトクロック信号の種類の数は４種類に仮決めしている。
【００４７】
次に、スキャンシフトクロック制御回路Ｄ１０３をスキャン回路中に挿入する（ステップＳ１０４）。スキャンシフトクロック制御回路Ｄ１０３は、一例として、図４に示したスキャンシフトクロック制御回路７０２の構成を有する。
【００４８】
ステップＳ１０２で番号を割り振ったスキャンＦＦのうちの４ｍ−３（ｍは１以上の整数）番目のスキャンＦＦのクロック端子Ｃに対して、１種類目のスキャンクシフトロック信号のノードＳＣ１を選択する（ステップＳ１０５）。
【００４９】
同様に、ステップＳ１０２で番号を割り振ったスキャンＦＦのうちの４ｍ−２番目のスキャンＦＦのクロック端子Ｃに対して、２種類目のスキャンシフトクロック信号のノードＳＣ２を選択する（ステップＳ１０６）。
【００５０】
同様に、ステップＳ１０２で番号を割り振ったスキャンＦＦのうちの４ｍ−１番目のスキャンＦＦのクロック端子Ｃに対して、３種類目のスキャンシフトクロック信号のノードＳＣ３を選択する（ステップＳ１０７）。
【００５１】
同様に、ステップＳ１０２で番号を割り振ったスキャンＦＦのうちの４ｍ番目のスキャンＦＦのクロック端子Ｃに対して、４種類目のスキャンシフトクロック信号のノードＳＣ４を選択する（ステップＳ１０８）。
【００５２】
すべてのスキャンＦＦに対して、スキャンシフトクロック信号の選択が完了すると、再接続情報としてシフトクロックチェーンＤ１０４が得られる。
【００５３】
次に、４種類のスキャンシフトクロック信号から選択したスキャンシフトクロック信号を、スキャンＦＦのすべてに対して再接続し、スキャン回路を再構築する（ステップＳ１０９）。
【００５４】
次に、スキャンチェーン情報Ｄ１０２から、４ｍ番目のスキャンＦＦのみを有効としたスキャンパターンを生成し、テストパターンＤ１０５を得る（ステップＳ１１０）。
【００５５】
次に、テストパターンＤ１０５から故障検出率を算出し、故障検出率Ｄ１０６を得る（ステップＳ１１１）。故障検出率の算出には、例えば、従来技術の遷移遅延故障、配線遅延故障などの故障検出率の算出方法を採用することができる。
【００５６】
次に、故障検出率Ｄ１０６を参照し、４ｍ番目のスキャンＦＦのみ対象とした故障検出率を確認する（ステップＳ１１２）。
【００５７】
次に、故障検出率が目標値以上かどうか判定する（ステップＳ１１３）。故障検出率が目標値以上であれば（ステップＳ１１３のＹｅｓ）、ステップＳ１１４に進む。一方、故障検出率が目標値未満であれば（ステップＳ１１３のＮｏ）、ステップＳ１１０に戻り、再度テストパターンを作成し、上記の処理を繰り返す。
【００５８】
次に、テストパターンＤ１０５を参照し、テストパターン長を確認する（ステップＳ１１４）。
【００５９】
次に、テストパターン長がＬＳＩテスタのパターンメモリ容量以下かどうかを判定する（ステップＳ１１５）。テストパターン長がパターンメモリ容量以下であれば（ステップＳ１１５のＹｅｓ）、ステップＳ１１６に進む。一方、テストパターン長がパターンメモリ容量より大きい場合（ステップＳ１１５のＮｏ）、ステップＳ１０３に戻り、スキャンシフトクロック信号の種類の数を増やし、処理を繰り返す。または、ステップＳ１１０に戻りテストパターンＤ１０５を作り直す。
【００６０】
次に、シフトクロックチェーンＤ１０４に基づいて、テストパターンＤ１０５をパターン変換し、検証率確認用のテストパターンＤ１０７を得る（ステップＳ１１６）。
【００６１】
パターン変換として、図５に示すように、元のテストパターンＤ１０５の１パターンをスキャンシフトクロック数分コピーする。図５は、スキャンシフトクロックが４種類であるときのパターンコピーを例示する。なお、テストパターンＤ１０７は故障検出率確認のために用いられる故障検証用のテストパターンであり、半導体装置でスキャンテストを行う際にはテストパターンＤ１０５を使用する。
【００６２】
次に、検証率確認用のテストパターンＤ１０７に基づいて故障検出率を算出し、故障検出率Ｄ１０８を得る（ステップＳ１１７）。故障検出率の算出には、例えば、従来技術の遷移遅延故障、配線遅延故障などの故障検出率の算出方法を用いることができる。
【００６３】
次に、故障検出率Ｄ１０８を参照し、すべてのスキャンＦＦを対象とした故障検出率を確認する（ステップＳ１１８）。
【００６４】
次に、故障検出率が目標値以上かどうかを判定する（ステップＳ１１９）。故障検出率が目標値以上である場合（ステップＳ１１９のＹｅｓ）、処理を終了する。一方、故障検出率が目標値未満である場合（ステップＳ１１９のＮｏ）、ステップＳ１０３に戻り、スキャンシフトクロックの種類の数を減らし、処理を繰り返す。または、ステップＳ１１０に戻り、テストパターンＤ１０５を作り直すようにしてもよい。
【００６５】
以上のフローにより、実際にＬＳＩテスタでのスキャンテストを行うパターンとして、テストパターンＤ１０５が得られる。
【００６６】
図３は、本実施形態のスキャンテストを実施するためのスキャン回路の構成を一例として示すブロック図である。図３は、一例として、スキャンシフトクロックが４種類のときの回路接続例を示す。
【００６７】
図３を参照すると、スキャンシフトクロック制御回路７０２は、ノードＣＬＫ＿ＩＮからクロック信号を入力し、入力端子ＳＭＣからスキャンモードの制御を行う信号を入力し、入力端子ＳＣ１＿ＣＴＲＬ１、ＳＣ１＿ＣＴＲＬ２、ＳＣ２＿ＣＴＲＬ１、ＳＣ２＿ＣＴＲＬ２、ＳＣ３＿ＣＴＲＬ１、ＳＣ３＿ＣＴＲＬ２、ＳＣ４＿ＣＴＲＬ１、ＳＣ４＿ＣＴＲＬ２からスキャンシフトクロック制御を行う信号を入力し、スキューと位相が異なるスキャンシフトクロック信号をノードＳＣ１〜ＳＣ４に出力する。
【００６８】
ノードＳＣ１は、スキャンＦＦ７０３のクロック端子ＣとスキャンＦＦ７０７のクロック端子Ｃに接続されている。ノードＳＣ２は、スキャンＦＦ７０４のクロック端子ＣとスキャンＦＦ７０８のクロック端子Ｃに接続されている。ノードＳＣ３は、スキャンＦＦ７０５のクロック端子ＣとスキャンＦＦ７０９のクロック端子Ｃに接続されている。ノードＳＣ４は、スキャンＦＦ７０６のクロック端子ＣとスキャンＦＦ７１０のクロック端子Ｃに接続されている。
【００６９】
スキャンＦＦ７０３は、データ入力端子ＤＩＮがデータ入力端子ＤＡＴＡと接続され、スキャンイン端子Ｓ＿ＩＮが入力端子ＳＩＮと接続され、クロック端子ＣがノードＳＣ１と接続され、出力端子がノードＤＡＴＡ７０３に接続されている。
【００７０】
スキャンＦＦ７０４は、データ入力端子ＤＩＮがユーザロジック（図３のlogic）を介してノードＤＡＴＡ７０３に接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０３に接続され、クロック端子ＣがノードＳＣ２に接続され、出力端子がノードＤＡＴＡ７０４に接続されている。
【００７１】
スキャンＦＦ７０５は、データ入力端子ＤＩＮがユーザロジックを介してノードＤＡＴＡ７０４に接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０４に接続され、クロック端子ＣがノードＳＣ３と接続され、出力端子がノードＤＡＴＡ７０５に接続されている。
【００７２】
スキャンＦＦ７０６は、データ入力端子ＤＩＮがユーザロジックを介してノードＤＡＴＡ７０５と接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０５と接続され、クロック端子ＣがノードＳＣ４と接続され、出力端子がノードＤＡＴＡ７０５と接続されている。
【００７３】
スキャンＦＦ７０７は、データ入力端子ＤＩＮがユーザロジックを介してノードＤＡＴＡ７０６に接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０６と接続され、クロック端子ＣがノードＳＣ１と接続され、出力端子がノードＤＡＴＡ７０５と接続されている。
【００７４】
スキャンＦＦ７０８は、データ入力端子ＤＩＮがユーザロジックを介してノードＤＡＴＡ７０７と接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０７と接続され、クロック端子ＣがノードＳＣ２と接続され、出力端子がノードＤＡＴＡ７０５と接続されている。
【００７５】
スキャンＦＦ７０９は、データ入力端子ＤＩＮがユーザロジックを介してノードＤＡＴＡ７０８と接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０８と接続され、クロック端子ＣがノードＳＣ３と接続され、出力端子がノードＤＡＴＡ７０５と接続されている。
【００７６】
スキャンＦＦ７１０は、データ入力端子ＤＩＮがユーザロジックを介してノードＤＡＴＡ７０９と接続され、スキャンイン端子Ｓ＿ＩＮがノードＤＡＴＡ７０９と接続され、クロック端子ＣがノードＳＣ４と接続され、出力端子が出力端子ＯＵＴと接続されている。
【００７７】
図４は、図３に示したスキャンシフトクロック制御回路７０２の回路構成を一例として示す回路図である。
【００７８】
モジュールＣ１と、モジュールＣ２〜Ｃ４とは、同一の構成を有する。モジュールＣ１は、セルライブラリとして準備しておき、図２に示したフロー図に基づいて配置すべき個数を決める。図４は、一例として、モジュールＣ１を４並列とした構成を示す。なお、本発明においては、位相の異なる複数のクロック信号が生成されればよいので、スキャンシフトクロック制御回路７０２の構成は、図４に示した回路構成には限定されない。
【００７９】
図４を参照すると、モジュールＣ１の遅延素子８０１の入力端子はノードＣＬＫ＿ＩＮに接続されている。また、遅延素子８０１の出力端子はセレクタ８０４のポート“１”に接続されている。
【００８０】
アンド回路８０２の入力端子は入力端子ＳＭＣと入力端子ＳＣ１＿ＣＴＲＬ１とに接続されている。また、アンド回路８０２の出力端子はセレクタ８０４のポート“ＥＮ”と接続されている。
【００８１】
アンド回路８０３の入力端子は入力端子ＳＭＣと入力端子ＳＣ１＿ＣＴＲＬ２とに接続されている。また、アンド回路８０３の出力端子はセレクタ８０６のポート“ＥＮ”と接続されている。
【００８２】
セレクタ８０４のポート“０”は、ノードＣＬＫ＿ＩＮと接続されている。また、セレクタ８０４のポート“１”は、遅延素子８０１の出力端子と接続されている。さらに、セレクタ８０４のポート“ＥＮ”は、アンド回路８０２の出力端子と接続されている。また、セレクタ８０４の出力端子は、セレクタ８０６のポート“０”とインバータ８０５の入力端子と接続されている。
【００８３】
インバータ８０５の入力端子は、セレクタ８０４の出力端子と接続されている。また、インバータ８０５の出力端子は、セレクタ８０６のポート“１”と接続されている。
【００８４】
セレクタ８０６のポート“０”は、セレクタ８０４の出力端子に接続されている。また、セレクタ８０６のポート“１”は、インバータ８０５の出力端子と接続されている。さらに、セレクタ８０６の出力端子は、ノードＳＣ１と接続されている。
【００８５】
モジュールＣ２の入力端子は、ノードＣＬＫ＿ＩＮと入力端子ＳＭＣと入力端子ＳＣ２＿ＣＴＲＬ１と入力端子ＳＣ２＿ＣＴＲＬ２とに接続されている。また、モジュールＣ２の出力端子は、ノードＳＣ２と接続されている。
【００８６】
モジュールＣ３の入力端子は、ノードＣＬＫ＿ＩＮと入力端子ＳＭＣと入力端子ＳＣ３＿ＣＴＲＬ１と入力端子ＳＣ３＿ＣＴＲＬ２とに接続されている。また、モジュールＣ３の出力端子は、ノードＳＣ３と接続されている。
【００８７】
モジュールＣ４の入力端子は、ノードＣＬＫ＿ＩＮと入力端子ＳＭＣと入力端子ＳＣ４＿ＣＴＲＬ１と入力端子ＳＣ４＿ＣＴＲＬ２とに接続されている。また、モジュールＣ４の出力端子は、ノードＳＣ４と接続されている。
【００８８】
ここでは、モジュールＣ１〜Ｃ４に入力されるクロック信号ＣＬＫ＿ＩＮの位相と遅延（スキュー）は、揃っているものとする。
【００８９】
遅延素子８０１は、ノードＣＬＫ＿ＩＮからの信号を任意の時間だけ遅延する。
【００９０】
アンド回路８０２は、スキャンモードの制御を行う入力端子ＳＭＣからの信号が「１」のときに、スキャンシフトクロック制御を行う入力端子ＳＣ１＿ＣＴＲＬ１からの信号の制御が有効となる。
【００９１】
アンド回路８０３は、入力端子ＳＭＣからの信号が「１」のときに、入力端子ＳＣ１＿ＣＴＲＬ２からの信号の制御が有効となる。
【００９２】
セレクタ８０４は、ノードＣＬＫ＿ＩＮからの信号と遅延素子８０１で遅延させた信号の一方を、アンド回路８０２の出力信号に応じて選択する。
【００９３】
インバータ８０５は、セレクタ８０４の出力からの信号を反転させる。
【００９４】
セレクタ８０６は、セレクタ８０４の出力からの信号とセレクタ８０４の出力を反転させたインバータ８０５の出力の一方を、アンド回路８０３の出力信号に応じて選択する。
【００９５】
入力端子ＳＭＣからの信号が「１」のとき、スキャンモードがスキャンシフトモードとなり、アンド回路８０２の出力は入力端子ＳＣ１＿ＣＴＲＬ１から入力した値となる。このとき、入力端子ＳＣ１＿ＣＴＲＬ１の値が「１」であれば、セレクタ８０４はノードＣＬＫ＿ＩＮからの信号を遅延素子８０１の遅延時間分だけ遅らせた信号を選択し、入力端子ＳＣ１＿ＣＴＲＬ１から入力した値が「０」であれば、セレクタ８０４の出力はノードＣＬＫ＿ＩＮからの信号を選択する。
【００９６】
入力端子ＳＭＣからの信号が「１」のとき、スキャンモードがスキャンシフトモードとなり、アンド回路８０３の出力は入力端子ＳＣ１＿ＣＴＲＬ２から入力した値となる。このとき、入力端子ＳＣ１＿ＣＴＲＬ２の値が「１」であれば、セレクタ８０６は、セレクタ８０４の出力を反転したインバータ８０５からの出力信号を選択し、入力端子ＳＣ１＿ＣＴＲＬ２から入力した値が「０」であれば、セレクタ８０４から出力された信号を選択する。
【００９７】
入力端子ＳＭＣからの信号が「１」のとき、入力端子ＳＣ１＿ＣＴＲＬ１の値が「０」で、入力端子ＳＣ１＿ＣＴＲＬ２の値が「０」とすると、ノードＳＣ１の出力は、入力端子ＣＬＫからの信号の値となる。
【００９８】
入力端子ＳＭＣからの信号が「１」のとき、入力端子ＳＣ２＿ＣＴＲＬ１の値が「１」で、入力端子ＳＣ２＿ＣＴＲＬ２の値が「０」とすると、ノードＳＣ２の出力は、入力端子ＣＬＫからの信号の値を遅延素子８０１の遅延量で遅延させたクロック信号となる。
【００９９】
入力端子ＳＭＣからの信号が「１」のとき、入力端子ＳＣ３＿ＣＴＲＬ１の値が「０」で、入力端子ＳＣ３＿ＣＴＲＬ２の値が「１」とすると、ノードＳＣ３の出力は、入力端子ＣＬＫからの信号の値をインバータ８０５で反転した信号となる。
【０１００】
入力端子ＳＭＣからの信号が「１」のとき、入力端子ＳＣ４＿ＣＴＲＬ１の値が「１」で、入力端子ＳＣ４＿ＣＴＲＬ２の値が「１」とすると、ノードＳＣ４の出力は、入力端子ＣＬＫから信号の値を遅延素子８０１の遅延量で遅延させた信号をインバータ８０５で反転させた信号となる。
【０１０１】
スキャンシフトクロック制御回路７０２がノードＳＣ１〜ＳＣ４に対してスキューの異なるクロックを出力することで、スキャンチェーン上で隣り合うスキャンＦＦに対するクロック信号はスキューの異なるものとなる。
【０１０２】
また、ノードＳＣ１〜ＳＣ４ごとに用意するスキャンシフトクロック制御のための入力端子ＳＣ１＿ＣＴＲＬ１〜ＳＣ４＿ＣＴＲＬ１、ＳＣ１＿ＣＴＲＬ２〜ＳＣ４＿ＣＴＲＬ２の信号を、Ｉ２Ｃ（Inter-Integrated Circuit）やＪＴＡＧ（Joint Test Action Group）で読み書き可能なレジスタを用いて実装することで、スキャンテストのためにテスト用の外部端子を増やすことなく、本実施形態のスキャンテスト方法を実現することができる。
【０１０３】
図６は、本実施形態のスキャンテスト方法におけるスキャンシフト動作を一例として示すタイミング図である。図６を参照して、スキャンシフトクロックが４種類のときの動作について説明する。
【０１０４】
図６のＳＣ１は、ノードＳＣ１の信号を示す。図６のＳＣ２は、ノードＳＣ２のタイミングを示す。ノードＳＣ２におけるスキャンシフトクロック信号は、ノードＳＣ１におけるスキャンシフトクロック信号に対して期間Ｔ１０１の遅延時間分だけ遅れた信号に相当する。図６のＳＣ３は、ノードＳＣ３の信号を示す。ノードＳＣ３におけるスキャンシフトクロック信号は、ノードＳＣ１におけるスキャンシフトクロック信号をインバータ８０５で反転させた信号に相当する。期間Ｔ１０２は、ノードＳＣ１におけるスキャンシフトクロック信号を反転をさせることなく、「０」とする期間を示す。図６のＳＣ４は、ノードＳＣ４の信号を示す。ノードＳＣ４におけるスキャンシフトクロック信号は、ノードＳＣ２におけるスキャンシフトクロック信号をインバータ８０５で反転させた信号に相当する。
【０１０５】
入力端子ＳＩＮは、スキャン挿入回路に外部から入力するスキャンデータである。ＤＡＴＡ７０３は、図３に示したスキャン回路構成におけるスキャンＦＦ７０３の出力信号を表す。ＤＡＴＡ７０４は、図３に示したスキャン回路構成におけるスキャンＦＦ７０４の出力信号を表す。ＤＡＴＡ７０５は、図３に示したスキャン回路構成におけるスキャンＦＦ７０５の出力信号を表す。ＤＡＴＡ７０６は、図３に示したスキャン回路構成におけるスキャンＦＦ７０６の出力信号を表す。
【０１０６】
Ｐ０１は、１パターン長を表す。同様に、Ｐ０２、Ｐ０３も、１パターン長を表す。
【０１０７】
１パターン長Ｐ０１では、入力端子ＳＩＮからパターンＳＩＮ０１を入力し、１パターン目のスキャンシフト動作を行う。スキャンシフト動作において、まず、ノードＳＣ１の立ち上がりエッジで、スキャンＦＦ７０３の出力からパターンＳＩＮ０１を出力する。次に、ＳＣ２の立ち上がりエッジで、スキャンＦＦ７０４の出力からパターンＳＩＮ０１を出力する。次に、ノードＳＣ３の立ち上がりエッジで、スキャンＦＦ７０５の出力からパターンＳＩＮ０１を出力する。次に、ＳＣ４の立ち上がりエッジで、スキャンＦＦ７０６の出力からパターンＳＩＮ０１を出力する。
【０１０８】
次に、１パターン長Ｐ０２では、入力端子ＳＩＮからパターンＳＩＮ０２を入力する。２パターン目のスキャンシフト動作は、１パターン長Ｐ０１のときと同様に行う。次に、１パターン長Ｐ０３では、入力端子ＳＩＮからパターンＳＩＮ０３を入力する。３パターン目のスキャンシフト動作は、１パターン長Ｐ０１のときと同様に行う。以降、スキャンテストパターン分だけ、同様のスキャンシフト動作を行うことができる。
【０１０９】
本実施形態では、１パターン長の中でスキューの異なるスキャンシフトクロックを用意し、１パターン長の期間でそれぞれのスキャンＦＦがスキャンシフト動作することにより、用意したスキャンシフトクロックの数に応じてスキャンテストパターン長を削減することが可能となる。
【０１１０】
本実施形態では、フリップフロップナンバ４ｍに着目し、配線遅延故障（ＩＲＦ）の理論を用いて故障検証を行うことで、故障検出率を維持したまま、スキャンテストパターン長を削減することができる。特許文献１に記載された技術では、スキャンシフトクロックが２種類しか生成できないため、スキャンテストパターン長を１／２にまでしか短縮できない。しかし、本実施形態によると、パターンメモリサイズに収まるようにスキャンシフトクロックを増やすことが可能となり、半導体装置（ＬＳＩ）のテスト時にパターンメモリにスキャンテストパターンをリロードする必要がなくなり、テスト時間を短縮することができる。
【０１１１】
さらに、本実施形態によると、設計段階でスキャン回路の挿入時にスキャンＦＦの番号を割り振り、かつ、スキャンシフトクロック制御回路を回路中に挿入しておくことで、ＬＳＩができ上がった後にも回路構成を変えずにスキャンシフトクロックの種類を変更することができる。したがって、ＬＳＩができ上がった後でも、テストパターン長を変更することが可能となる。
【０１１２】
（実施形態２）
実施形態２の構成は、実施形態１と同じである。
【０１１３】
図７は、第２の実施形態に係るスキャンテスト方法（特に、スキャンテスト回路の設計方法およびテストパターンの設計方法）を示すフロー図である。
【０１１４】
本実施形態では、第１の実施形態に係るスキャンテスト方法に対して、スキャンシフトクロック信号の分割時のスキャンテストパターンと、スキャンシフトクロック信号の非分割時の従来のスキャンテストパターンとを組合せて、故障検出率を満足するパターンを構築する工程が付加される。
【０１１５】
ステップＳ１０１〜Ｓ１１２までの動作は、第１の実施形態における動作と同様である。
【０１１６】
ステップＳ１１２において故障検出率を確認し、ステップＳ３０１において故障検出率の目標値の判断を行う際に故障検出率の目標値を第１の実施形態１と比較して十分に低い値に設定しておく。例えば、第１の実施形態では９０％であった目標値を７０％に設定し、７０％を目標値（１）とする。ただし、故障検出率の目標値は、これらの値に限定されない。
【０１１７】
次に、故障検出率が目標値（１）以上かどうかを判定する（ステップＳ３０１）。目標値（１）以上であれば（ステップＳ３０１のＹｅｓ）、ステップＳ１１４に進む。一方、目標値（１）未満であれば（ステップＳ３０１のＮｏ）、ステップＳ１１０に戻り、再度スキャンテストパターンを作成し、処理を繰り返す。
【０１１８】
次に、第１の実施形態と同様に、テストパターン長を確認する（ステップＳ１１４）。
【０１１９】
次に、ステップＳ１１４で確認したテストパターン長がＬＳＩテスタのパターンメモリ容量に入るかどうかを判定する（ステップＳ３０２）。ここで、予めパターンメモリの空き容量の割合を設定しておく。例えば、テストパターン長がパターンメモリの容量の５０％と設定する。テストパターン長がＬＳＩテスタのパターンメモリの容量の５０％以下である場合（ステップＳ３０２のＹｅｓ）、ステップＳ１１６に進む。一方、テストパターン長がＬＳＩテスタのパターンメモリの容量の５０％より大きい場合（ステップＳ３０２のＮｏ）、ステップＳ１０３に戻り、スキャンシフトクロック信号の種類を増やし、処理を繰り返す（ステップＳ３０２）。または、ステップＳ１１０に戻り、テストパターンＤ１０５を作り直すようにしてもよい。ただし、パターンメモリの空き容量の設定値はこれらの値に限定されない。
【０１２０】
ステップＳ１１６〜Ｓ１１８までの動作は、第１の実施形態における動作と同様である。
【０１２１】
次に、故障検出率を確認する（ステップＳ１１８）。
【０１２２】
ステップＳ３０３において故障検出率の目標値の判断を行う際、故障検出率の目標値を第１の実施形態で設定していた故障検出率の目標値とする。例えば、故障検出率の目標値を９０％と設定し、９０％を目標値（２）とする。
【０１２３】
次に、故障検出率が目標値（２）以上かどうかを判定する（ステップＳ３０３）。故障検出率が目標値（２）以上であれば（ステップＳ３０３のＹｅｓ）、フローを終了し、検証率確認用テストパターンＤ１０７を得る。
【０１２４】
一方、故障検出率が目標値（２）未満である場合（ステップＳ３０３のＮｏ）、スキャンシフトクロック制御回路Ｄ１０３をコントロールし、すべてのスキャンＦＦが、例えば、ノードＳＣ１の同一のスキャンシフトクロックでスキャンシフト動作するようにする（ステップＳ３０４）。
【０１２５】
次に、テストパターンＤ１０５の情報を引き継ぎ、かつ、スキャンシフトクロックが１種類のテストパターンを作成してスキャンテストパターンＤ３０１を得る（ステップＳ３０５）。
【０１２６】
次に、テストパターンＤ１０５の情報を引き継いだスキャンテストパターンＤ３０１による故障検出率を算出し、故障検出率Ｄ３０２を得る（ステップＳ３０６）。
【０１２７】
故障検出率Ｄ３０２を確認し（ステップＳ３０７）、故障検出率が目標値（２）以上かどうかを判定する（ステップＳ３０８）。故障検出率が目標値（２）以上である場合（ステップＳ３０８のＹｅｓ）、ステップＳ３０９に進む。
【０１２８】
一方、故障検出率が目標値未満である場合（ステップＳ３０８のＮｏ）、ステップＳ１０３に戻り、スキャンシフトクロックの種類の数を減らし、処理を繰り返す。なお、ステップＳ３０８においてＮｏの場合、ステップＳ１１０に戻り、スキャンテストパターンＤ１０５を作り直すようにしてもよいし、ステップＳ３０５に戻り、テストパターンＤ３０１を作り直すようにしてもよい。
【０１２９】
次に、テストパターンＤ１０５と、テストパターンＤ３０１を合わせたテストパターン長を確認し（ステップＳ３０９）、テストパターンＤ１０５と、テストパターンＤ３０１を合わせたテストパターン長がＬＳＩテスタのパターンメモリ容量に入るかどうかを判定する（ステップＳ１１５）。テストパターンＤ１０５と、テストパターンＤ３０１を合わせたテストパターン長がＬＳＩテスタのパターンメモリ容量に収まる場合（ステップＳ１１５のＹｅｓ）、処理を終了する。
【０１３０】
一方、テストパターンＤ１０５と、テストパターンＤ３０１を合わせたテストパターン長がＬＳＩテスタのパターンメモリ容量に収まらない場合（ステップＳ１１５のＮｏ）、ステップＳ１０３に戻り、スキャンシフトクロックの種類の数を増やし、処理を繰り返す。なお、ステップＳ１１５においてＮｏの場合、ステップＳ１１０に戻り、テストパターンＤ１０５を作り直すようにしてもよいし、ステップＳ３０５に戻り、テストパターンＤ３０１を作り直すようにしてもよい。
【０１３１】
図７のフローに従って処理を完了すると、実際にＬＳＩテスタでのスキャンテストを行うパターンとして、テストパターンＤ１０５およびテストパターンＤ３０１が得られる。
【０１３２】
図３に示したスキャンシフトクロック制御回路７０２において、入力端子ＳＣ１＿ＣＴＲＬ１〜ＳＣ４＿ＣＴＲＬ１、ＳＣ１＿ＣＴＲＬ２〜ＳＣ４＿ＣＴＲＬ２に入力する信号を切替えることによって、ノードＳＣ１〜ＳＣ４のスキャンシフトクロック信号をそれぞれスキューが異なる複数のクロック信号とする場合と、スキューが１種類のスキャンシフトクロック信号とする場合とを切替えて、それぞれのテストパターンを作成することが可能となる。
【０１３３】
本実施形態によると、スキャンシフトクロックが複数のときのテストパターンの故障検出率を低く設定することで、スキャンシフトクロックが複数のときのテストパターン長を短くすることができ、本来の目標とする故障検出率はスキャンシフトクロックを１種類とした従来のスキャンテストパターンで補填することで故障検出率を下げることなく、全体のテストパターン長を小さくすることが可能となる。
【０１３４】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１３５】
１０    コンピュータ装置
１４    サーバ装置
１５    記録媒体
１６    ネットワーク
７０２    スキャンシフトクロック制御回路
７０３〜７１０    スキャンフリップフロップ（スキャンＦＦ）
８０１    遅延素子
８０２、８０３  アンド回路
８０４、８０６    セレクタ
８０５    反転素子（インバータ）
Ｃ    クロック端子
Ｃ１〜Ｃ４    モジュール
ＣＬＫ    入力端子
ＣＬＫ＿ＩＮ        ノード
Ｄ１０１    ネットリスト
Ｄ１０２    スキャンチェーン情報
Ｄ１０３    スキャンシフトクロック制御回路
Ｄ１０４    シフトクロックチェーン
Ｄ１０５、Ｄ１０７、Ｄ３０１    テストパターン
Ｄ１０６、Ｄ１０８、Ｄ３０２    故障検出率
ＤＡＴＡ    データ入力端子
ＤＡＴＡ７０３〜ＤＡＴＡ７０９    ノード
ＤＩＮ    データ入力端子
ＯＵＴ    出力端子
Ｐ０１〜Ｐ０３    １パターン長
ＳＣ１〜ＳＣ４    ノード
ＳＣ１＿ＣＴＲＬ１〜ＳＣ４＿ＣＴＲＬ１    入力端子
ＳＣ１＿ＣＴＲＬ２〜ＳＣ４＿ＣＴＲＬ２    入力端子
ＳＩＮ      入力端子
Ｓ＿ＩＮ    スキャンイン端子
ＳＭＣ    入力端子
Ｔ１０１、Ｔ１０２    期間
【図１】
2014001937.tif 000003
【図２】
2014001937.tif 000004
【図３】
2014001937.tif 000005
【図４】
2014001937.tif 000006
【図５】
2014001937.tif 000007
【図６】
2014001937.tif 000008
【図７】
2014001937.tif 000009