(57)【要約】【課題】  スキャンテストに必要なテストパタン数（クロック数）、メモリ容量及び処理時間を削減可能なスキャンテスト方法を提供する。【解決手段】  組み合わせ回路１０、１１、１２と、スキャンチェーン２０を構成するフリップフロップと、を備える集積回路１のスキャンテストを行う方法である。フリップフロップにテスト用の初期値をシリアルスキャン入力により設定する初期入力工程を行う。次に、フリップフロップの値を組み合わせ回路１０、１１、１２を通して他のフリップフロップにキャプチャーするキャプチャー動作工程と、スキャンチェーン２０におけるシフト動作を行う時に該スキャンチェーン２０からの出力値を該スキャンチェーン２０の入力側へ帰還させて入力する帰還入力シフト工程と、を交互に繰り返し行う。次に、スキャンチェーン２０からの出力値をその期待値と照合する照合工程を行う。【選択図】    図１
2005134180.tif 000002
【特許請求の範囲】
【請求項１】
組み合わせ回路と、スキャンチェーンを構成するフリップフロップと、を備える集積回路のスキャンテストを行う方法において、
前記スキャンチェーンを構成するフリップフロップにテスト用の初期値をシリアルスキャン入力により設定する初期入力工程を行い、
次に、
前記フリップフロップに設定した値が与えられた前記組み合わせ回路からの出力を、他のフリップフロップにキャプチャーするキャプチャー動作工程と、
前記スキャンチェーンにおけるシフト動作を行う時に該スキャンチェーンからの出力値を該スキャンチェーンの入力側へ帰還させて入力する帰還入力シフト工程と、
を交互に繰り返し行い、
次に、
前記スキャンチェーンからの出力値をその期待値と照合する照合工程を行うことを特徴とするスキャンテスト方法。
【請求項２】
前記スキャンチェーンを構成するフリップフロップ数をＮ（Ｎは２以上の正の整数）とすると、毎回の前記帰還入力シフト工程における前記シフト動作の回数を、１回以上（Ｎ−１）回以下の範囲内にすることを特徴とする請求項１に記載のスキャンテスト方法。
【請求項３】
前記キャプチャー動作工程と前記帰還入力シフト工程とを交互に繰り返す途中で、前記初期入力工程によって前記スキャンチェーンを構成するフリップフロップにテスト用の他の初期値を再設定することを特徴とする請求項１又は２に記載のスキャンテスト方法。
【請求項４】
組み合わせ論理回路と、スキャンチェーンを構成するフリップフロップと、を備える集積回路において、
前記スキャンチェーンからの出力値を変化させずに該スキャンチェーンの入力側へ帰還させて入力するためのスイッチ回路を備えることを特徴とする集積回路。
【請求項５】
組み合わせ論理回路と、スキャンチェーンを構成するフリップフロップと、を備えるスキャンテスト回路において、
前記スキャンチェーンからの出力値を変化させずに該スキャンチェーンの入力側へ帰還させて入力するためのスイッチ回路を備えることを特徴とするスキャンテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンテスト方法、集積回路及びスキャンテスト回路に関する。
【背景技術】
【０００２】
集積回路のテスト（不良検出）にはスキャンテストという手法がある。スキャンテストを行うためには集積回路内にスキャンチェーンを設ける。スキャンチェーンは集積回路内のフリップフロップをシフトレジスタ動作可能に直列に接続する回路を付加して構成される。
【０００３】
組み合わせ回路は、入力を与えたら出力が一義的に定まる。このため、組み合わせ回路に値を与え、更にこの組み合わせ回路からの出力値をキャプチャー動作によりフリップフロップに取り込み、その取り込んだ値をスキャンチェーンよりシリアルに出力して期待値と照合することによって、組み合わせ回路における不良の有無を検出することができる。
【０００４】
図５及び図６に示すように、スキャンテストが可能な従来の集積回路１００は、組み合わせ回路１０１ａ、１０１ｂ、１０１ｃと、組み合わせ回路１０１ａ、１０１ｂ、１０１ｃ間に配置されたフリップフロップ１１１、１１２、１１３、１１４と、を備えている。これらフリップフロップ１１１〜１１４は、シフトレジスタ動作可能に相互に直列に接続され、スキャンチェーン１１０を構成している。なお、各フリップフロップ１１１〜１１４は、例えば、シフトレジスタ動作が可能な動作モードと、組み合わせ回路を通したキャプチャー動作が可能な動作モードと、に切り換えるためのマルチプレクサ（図示略）を備えるスキャンセルである。このマルチプレクサは、通常動作時には組み合わせ回路からの出力を、シフトレジスタ動作時には前段フリップフロップの出力を、選択的に後段フリップフロップであるスキャンセルへ入力するものである。
【０００５】
図５はマルチプレクサの切り替えの結果、シフトレジスタ動作が可能な状態を示し、図６はマルチプレクサの切り替えの結果、キャプチャー動作が可能な状態を示す。
【０００６】
また、図５及び図６においては、簡単のため、スキャンチェーン１１０の数を１つ、スキャンチェーン１１０を構成するフリップフロップの数を４つ、組み合わせ回路の数を３つとしている。しかし、実際には、例えば、左側の組み合わせ回路１０１ａよりも図５及び図６における左側、並びに、右側の組み合わせ回路１０１ｃよりも図５及び図６における右側にも、スキャンチェーンを構成するフリップフロップと、組み合わせ回路が存在しているものとする。なお、スキャンチェーン数や、各スキャンチェーンを構成するフリップフロップの数は、集積回路１００の回路規模により増減する。
【０００７】
次に、図７を参照して、集積回路１００のスキャンテストについて説明する。
【０００８】
＜初期設定（ステップＳ１０１）＞
スキャンテストを行うには、先ず、図５の動作モードにおいて、スキャンチェーン１１０を構成する全てのフリップフロップ１１１〜１１４にテスト用の値（各フリップフロップ１１１〜１１４に「１」又は「０」、具体的には、例えば「１，１，１，１」）を設定する。そのためには、スキャンチェーン１１０の入力端子１１０ａから該スキャンチェーン１１０の各フリップフロップ１１１〜１１４に値をシリアル入力する。すなわち、図示しないクロック入力端子より各フリップフロップ１１１〜１１４に入力されるクロック信号と同期させて、スキャンチェーン１１０の入力端子１１０ａから次々と値を入力するシフト動作を、スキャンチェーン１１０を構成するフリップフロップ１１１〜１１４の段数分だけ繰り返す。これにより、全てのフリップフロップ１１１〜１１４に値が設定（セット）される。
【０００９】
＜キャプチャー動作（ステップＳ１０２）＞
次に、図６の動作モードにおいて、先のステップＳ１０１にてセットされたフリップフロップ１１１〜１１４の内容（値）を、組み合わせ回路１０１ａ〜１０１ｃを通して他のフリップフロップに取り込む（キャプチャーする）。これにより、各フリップフロップ１１１〜１１４の内容が書き換えられる。なお、このキャプチャー動作の方向は、図６の矢印Ｂ方向の一方向である。
【００１０】
＜出力・照合、並びに、再設定（ステップＳ１０３）＞
次に、図５の動作モードにおいて、フリップフロップ１１１〜１１４の内容をスキャンチェーン１１０の出力端子１１０ｂから出力させ、その内容（出力値）が期待値と一致しているかの照合を行う。また、出力と並行して入力端子１１０ａから次の値（上記の「１，１，１，１」とは別の値（例えば、「１，１，１，０」））を入力し、再度、スキャンチェーン１１０を構成するフリップフロップ１１１〜１１４に値を設定する（つまり、フリップフロップ１１１〜１１４の値を更新・設定する）。
【００１１】
なお、上記のステップＳ１０２及びＳ１０３は、例えば、組み合わせ回路１０１ａ〜１０１ｃの全ての箇所における不良を検出可能となるような必要回数を繰り返し行う。つまり、図７のステップＳ１０４では、その繰り返し回数が、予めセットされた必要回数に達したか否かを判定し、達していなければステップＳ１０２からの処理を繰り返し行い、達していれば図７の処理を終了する。
【００１２】
そして、複数回行われる何れかの照合結果において、出力値が期待値と異なる場合、集積回路１００に不良があると判定する一方、何れの出力値も期待値と等しい場合には集積回路１００が良品であると判定する。
【００１３】
なお、期待値は、入力値及び組み合わせ回路の構成に基づいてシミュレーションにより予め求めておいた、良品の場合の出力値である。
【００１４】
また、従来のスキャンテスト方法として、例えば、特許文献１に示す技術もある。この技術では、スキャンチェーンの出力を論理回路Ｌ１（図１）或いはＬ２（図２）を介して該スキャンチェーンの入力端子に戻し再入力することにより、テストパタン（特許文献１ではスキャンパス用テストベクトル）のデータ容量を圧縮可能としている。すなわち、特定のフリップフロップへの再入力値を論理回路Ｌ１（或いはＬ２）により反転させることによって、新たなテストパタンを入力することなく各フリップフロップの値の更新・設定を可能としている。
【特許文献１】特開平５−１３４００７号公報（図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【００１５】
図５及び図６に示す従来の集積回路１００の場合、キャプチャー動作の回数をｍ、スキャンパスによるシリアルデータ入力に要するクロック数に相当するスキャンチェーン１１０を構成するフリップフロップ数をｎ、１回のキャプチャー動作に要するクロック数をｃとすると、必要なテストパタン数（クロック数）は、
ｍ×（ｎ＋ｃ）＋ｎ・・・（１）
となる。なお、上記の（１）式において、ｍ、ｎ、ｃは正の整数である。このうち、ｍは例えば３０００回〜１００００回、ｎは例えば１００００個〜２０００００個、ｃは例えば１である。つまり、ｎが最もテストパタン数に影響を与える傾向があるといえる。
【００１６】
集積回路１００の場合、１回のキャプチャー動作を行うためには、その都度、前もって新たな値（入力値）をスキャンチェーンの入力端子から入力し、各フリップフロップに設定する必要がある。このため、非常に多くのテストパタン数（クロック数）を要するとともに、テスト時間も長時間となる。また、各回の入力値を全て記憶しておく必要があり、大きなメモリ容量を要する。しかも、１回のキャプチャー動作を行う度に、スキャンチェーンからの出力値を期待値と照合するので、照合用の期待値も数多く必要で、それら期待値の記憶用のメモリも膨大な容量となる。さらに、照合の処理量も膨大となり、その処理時間も長くなる。
【００１７】
また、特許文献１の場合には、特定のフリップフロップへの再入力値を反転させて更新する必要がある。このため、論理回路Ｌ１（或いはＬ２）を備える必要がある上、該特許文献１の段落番号１８、１９に記載のように、テストベクトルメモリＭＥＭ１（或いはＭＥＭ２）から論理回路Ｌ１（或いは論理回路Ｌ２）の入力端子ＤＡＴ１（或いはＤＡＴ２）へ信号“１”または“０”のどちらの信号を入れるか、のデータを必要とする。よって、必要なデータ容量の削減効果が十分ではない。
【００１８】
本発明は、上記のような問題点を解決するためになされたもので、スキャンテストに必要なテストパタン数（クロック数）、メモリ容量及び処理時間を削減可能なスキャンテスト方法、集積回路及びスキャンテスト回路を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するため、本発明のスキャンテスト方法は、組み合わせ回路と、スキャンチェーンを構成するフリップフロップと、を備える集積回路のスキャンテストを行う方法において、前記スキャンチェーンを構成するフリップフロップにテスト用の初期値をシリアルスキャン入力により設定する初期入力工程を行い、次に、前記フリップフロップに設定した値が与えられた組み合わせ回路からの出力を、他のフリップフロップにキャプチャーするキャプチャー動作工程と、前記スキャンチェーンにおけるシフト動作を行う時に該スキャンチェーンからの出力値を該スキャンチェーンの入力側へ帰還させて入力する帰還入力シフト工程と、を交互に繰り返し行い、次に、前記スキャンチェーンからの出力値をその期待値と照合する照合工程を行うことを特徴としている。
【００２０】
本発明のスキャンテスト方法においては、前記スキャンチェーンを構成するフリップフロップ数をＮ（Ｎは２以上の正の整数）とすると、毎回の前記帰還入力シフト工程における前記シフト動作の回数を、１回以上（Ｎ−１）回以下の範囲内にすることが好ましい。
【００２１】
本発明のスキャンテスト方法においては、前記キャプチャー動作工程と前記帰還入力シフト工程とを交互に繰り返す途中で、前記初期入力工程によって前記スキャンチェーンを構成するフリップフロップにテスト用の他の初期値を再設定することも好ましい。
【００２２】
また、本発明の集積回路は、組み合わせ論理回路と、スキャンチェーンを構成するフリップフロップと、を備える集積回路において、前記スキャンチェーンからの出力値を変化させずに該スキャンチェーンの入力側へ帰還させて入力するためのスイッチ回路を備えることを特徴としている。
【００２３】
また、本発明のスキャンテスト回路は、組み合わせ論理回路と、スキャンチェーンを構成するフリップフロップと、を備えるスキャンテスト回路において、前記スキャンチェーンからの出力値を変化させずに該スキャンチェーンの入力側へ帰還させて入力するためのスイッチ回路を備えることを特徴としている。
【発明の効果】
【００２４】
本発明のスキャンテスト方法によれば、キャプチャー動作工程と、帰還入力シフト工程と、を交互に繰り返し行うので、組み合わせ回路を通したキャプチャー動作によりフリップフロップに取り込んだ値を、再度、組み合わせ回路を通したキャプチャー動作に用いることになる。このため、スキャンチェーンの入力側から新たな値（テストパタン）を入力しなくても、キャプチャー動作の繰り返しによりフリップフロップの値をランダムに順次更新していくことができ、組み合わせ回路を好適にチェックすることが可能となる。
【００２５】
よって、従来技術（図５〜図７）の場合と比べて、スキャンテストに必要なテストパタン数（クロック数）、テスト時間及びメモリ容量を削減することができる。しかも、キャプチャー動作工程と帰還入力シフト工程とを交互に繰り返し行った後に照合工程を行うので、１回のキャプチャー動作を行う度に照合する従来技術（図５〜図７）の場合と比べて、照合用の期待値及びその記憶用メモリも削減でき、さらに、照合の処理時間も削減できる。
【００２６】
また、他方の従来技術（特許文献１）の場合とは異なり、論理回路Ｌ１（或いはＬ２）を備える必要がない上、その論理回路の入力端子ＤＡＴ１（或いはＤＡＴ２）へ信号“１”または“０”のどちらの信号を入れるか、のデータも必要としない。よって、この従来技術（特許文献１）と比べても、必要なデータ容量を確実に削減することができ、そのデータを記憶するためのメモリ容量を削減できる。
【００２７】
なお、本発明の場合には、スキャンチェーンを構成するフリップフロップへの毎回の設定値が、必ずしも所望の値とはならないので、十分な不良検出効果が得られない場合もあり得る。そのような場合には、前記キャプチャー動作工程と前記帰還入力シフト工程とを交互に繰り返す途中で、前記初期入力工程によって前記スキャンチェーンを構成するフリップフロップにテスト用の他の初期値を再設定することにより、十分な水準まで不良検出率を向上させることができる。この場合にも、キャプチャー動作と帰還入力シフト工程との繰り返しによりフリップフロップの値をランダムに順次更新していくのは同様であるため、従来技術（図５〜図７、或いは、特許文献１）の場合と比べて、テストパタン数（クロック数）及びメモリ容量を削減できる。
【００２８】
また、本発明の集積回路及びスキャンテスト回路によれば、前記スキャンチェーンからの出力値を変化させずに該スキャンチェーンの入力側へ帰還させて入力するためのスイッチ回路を備えるので、前記スキャンチェーンにおけるシフト動作を行う時に該スキャンチェーンからの出力値を該スキャンチェーンの入力側へ帰還させて入力する帰還入力シフト工程を好適に実行することができる。つまり、本発明のスキャンテスト方法を好適に実行することができ、本発明のスキャンテスト方法と同様の効果を得ることができる。
【００２９】
すなわち、従来技術（図５〜図７）の場合と比べて、スキャンテストに必要なテストパタン数（クロック数）及びメモリ容量を削減することができる。
【００３０】
また、他方の従来技術（特許文献１）の場合とは異なり、論理回路Ｌ１（或いはＬ２）を備える必要がない上、その論理回路の入力端子ＤＡＴ１（或いはＤＡＴ２）へ信号“１”または“０”のどちらの信号を入れるか、のデータも必要としない。よって、この従来技術（特許文献１）と比べても、必要なデータ容量を確実に削減することができ、そのデータを記憶するためのメモリ容量を削減できる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照して、本発明に係る実施形態について説明する。
【００３２】
〔第１の実施形態〕
第１の実施形態に係る集積回路１は、図１乃至図３に示すように、組み合わせ回路１０、１１、１２と、組み合わせ回路１０〜１２間に配置されたフリップフロップ２１、２２、２３、２４と、を備えている。これらフリップフロップ２１〜２４は、シフトレジスタ動作可能に相互に直列に接続され、スキャンチェーン２０を構成している。なお、各フリップフロップ２１〜２４は、例えば、シフトレジスタ動作が可能な動作モードと、組み合わせ回路を通したキャプチャー動作が可能な動作モードと、に切り換えるためのマルチプレクサ（図示略）を備えるスキャンセルである。マルチプレクサとは、通常動作時には組み合わせ回路からの出力を、シフトレジスタ動作時には前段フリップフロップの出力を、選択的に後段フリップフロップであるスキャンセルへ入力するものである。
【００３３】
図１はマルチプレクサの切り替えの結果、シフトレジスタ動作（シフト動作）が可能な状態を示し、図２はマルチプレクサの切り替えの結果、キャプチャー動作が可能な状態を示す。
【００３４】
更に、集積回路１は、スキャンチェーン２０の出力端子２０ｂからの出力値を該スキャンチェーン２０の入力端子２０ａに帰還させて入力させるための配線（伝達経路）３１と、該配線３１に設けられたスイッチ回路であるリレー（切換手段）３２と、を備えている。このリレー３２は、出力端子２０ｂからの出力値を配線３１を介して入力端子２０ａに入力可能な状態（以下、クローズ状態）と不可能な状態（以下、オープン状態）とに切り換えるためのものであり、入力端子３２ａから入力される制御信号により切り替え制御される。リレー３２がクローズ状態のときには、スキャンチェーン２０の出力端子２０ｂと入力端子２０ａとが直接的に接続（例えば、他の回路を介することなく接続）され、この状態でスキャンチェーン２０におけるシフト動作を行うことにより、スキャンチェーン２０からの出力値を変化させずに該スキャンチェーン２０の入力側へ帰還させて入力することができる。すなわち、配線３１及びリレー３２により帰還入力手段が構成されている。
【００３５】
図３はリレー３２をクローズ状態とすることにより、帰還入力手段を介したシフト動作が可能な状態を示す。
【００３６】
なお、図１乃至図３においては、簡単のため、スキャンチェーン２０の数を１つ、スキャンチェーン２０を構成するフリップフロップの数を４つ、組み合わせ回路の数を３つとしている。しかし、実際には、例えば、組み合わせ回路１０よりも図１乃至図３の左側、並びに、組み合わせ回路１２よりも図１乃至図３の右側にも、スキャンチェーンを構成するフリップフロップと、組み合わせ回路が存在しているものとする。なお、スキャンチェーン数や、各スキャンチェーンを構成するフリップフロップの数は、集積回路１の回路規模により増減する。
【００３７】
次に、図４を参照して、集積回路１のスキャンテストについて説明する。
【００３８】
＜初期設定（初期入力工程）＞
スキャンテストを行うには、先ず、リレー３２をオープン状態にして図１のスキャンパスの動作モードとし（ステップＳ１）、スキャンチェーン２０を構成する全てのフリップフロップ２１〜２４にテスト用の値（各フリップフロップ２１〜２４に「１」又は「０」、具体的には、例えば「１，１，１，１」）を設定する（ステップＳ２）。そのためには、図１にテスト用の信号の流れを矢印で示すようにスキャンチェーン２０の入力端子２０ａから該スキャンチェーン２０の各フリップフロップ２１〜２４に値を入力する。すなわち、図示しないクロック入力端子より各フリップフロップ２１〜２４に入力されるクロック信号と同期させて、スキャンチェーン２０の入力端子２０ａから次々と値を入力するシフト動作を、スキャンチェーン２０を構成するフリップフロップ２１〜２４の段数分だけ繰り返す。
【００３９】
ここで、図１の動作モードにおいては、１回目のシフト動作（１クロック分）により、先ず、先頭のフリップフロップ２１に値が設定される。また、２回目のシフト動作を行うことにより、各フリップフロップの値は図１の時計回りに１つずつずれる。つまり、フリップフロップ２１の値はフリップフロップ２２に入力され、フリップフロップ２１には次の値が設定され、それぞれラッチされる。同様に、３回目のシフト動作を行うことにより、フリップフロップ２１には更に次の値が設定されるとともに、フリップフロップ２１にそれまでラッチされていた値はフリップフロップ２２に、フリップフロップ２２にそれまでラッチされていた値はフリップフロップ２３に、それぞれ入力しラッチされる。また、４回目のシフト動作を行うことにより、フリップフロップ２１には更に次の値が設定されるとともに、フリップフロップ２１にそれまでラッチされていた値はフリップフロップ２２に、フリップフロップ２２にそれまでラッチされていた値はフリップフロップ２３に、フリップフロップ２３にそれまでラッチされていた値はフリップフロップ２４に、それぞれ入力しラッチされる。これにより、全てのフリップフロップ２１〜２４に値が設定（セット）される。
【００４０】
＜キャプチャー動作＞
次に、図２の組み合わせ回路を用いる通常の動作モードにおいて、信号の流れを矢印で示すように先のステップＳ１にてセットされたフリップフロップ２１〜２４の内容（値）を、組み合わせ回路１１或いは１２を通して他のフリップフロップに取り込む（キャプチャーする；ステップＳ３）。つまり、フリップフロップ２１〜２４の値を、組み合わせ回路１１或いは１２に与え、該組み合わせ回路１１或いは１２からの出力を他のフリップフロップにキャプチャーする。これにより、各フリップフロップ２１〜２４の内容が書き換えられる。なお、このキャプチャー動作の方向は、図２の矢印Ａ方向の一方向である。
【００４１】
具体的には、フリップフロップ２１及び２２に取り込まれるのは、組み合わせ回路１０の出力であり、元々は（上記ステップＳ１の段階では）組み合わせ回路１０の左側のフリップフロップ（図示略）にラッチされていた値が組み合わせ回路１０に与えられ、該組み合わせ回路１０を通ることにより更新された出力である。また、フリップフロップ２３及び２４に取り込まれるのは、組み合わせ回路１１の出力であり、元々は（上記ステップＳ１の段階では）組み合わせ回路１１の左側のフリップフロップ２２、２１にラッチされていた値が与えられた組み合わせ回路１１を通ることにより更新された値である。なお、元々（上記ステップＳ１の段階で）フリップフロップ２３及び２４にラッチされていた値は、組み合わせ回路１２に与えられ、該組み合わせ回路１２を通ることにより更新された値となって、組み合わせ回路１２の右側のフリップフロップ（図示略）に取り込まれる。
【００４２】
このように、キャプチャー動作では、フリップフロップの値が、組み合わせ回路を通して更新された値となって、他のフリップフロップにキャプチャーされる（取り込まれる）。
【００４３】
なお、図２の動作モードでもリレー３２はオープン状態となっている。
【００４４】
＜帰還入力シフト工程＞
次に、リレー３２をクローズ状態にして図３の動作モードとし（ステップＳ４）、信号の流れを矢印で示すようにスキャンチェーン２０におけるシフト動作を行いながら、該スキャンチェーン２０からの出力値を変化させずに（その値のままで）該スキャンチェーンの入力側へ帰還させて入力する（帰還入力シフト工程）。このように、帰還入力シフト工程は、スキャンチェーン２０の出力側（出力端子２０ｂ）を入力側（入力端子２０ａ）へ直接的に接続した状態で行う。
【００４５】
ここで、１回のシフト動作（１クロック分）を行うことにより、各フリップフロップ２１〜２４の値は、図３における時計回りに１つずつずれる。すなわち、フリップフロップ２１の値は１つずれてフリップフロップ２２に入力しラッチされる。同様に、フリップフロップ２２にそれまでラッチされていた値はフリップフロップ２３にラッチされ、フリップフロップ２３にそれまでラッチされていた値はフリップフロップ２４にラッチされる。また、フリップフロップ２４にそれまでラッチされていた値は配線３１及びリレー３２を介してフリップフロップ２１に入力しラッチされる（ステップＳ５）。
【００４６】
ここで、１回の帰還入力シフト工程におけるシフト動作の回数（クロック数）は、スキャンチェーンを構成するフリップフロップ数をＮとすると、（Ｎ−１）回以下の何れかの正の整数に設定する。すなわち、図１乃至図３に示すスキャンチェーン２０の場合、フリップフロップ数が４であるので、１回の帰還入力シフト工程におけるシフト回数は、１回〜３回の何れかとする。これにより、各フリップフロップ２１〜２４の値が１周して元の値に戻ることが防止される。なお、本実施形態の場合のシフト回数は、例えば１回とし、その回数は、以後複数回繰り返し行われる帰還入力シフト工程でも固定とする。すなわち、スキャンチェーンを構成するフリップフロップ数をＮ（Ｎは２以上の正の整数）とすると、毎回の帰還入力シフト工程におけるシフト動作の回数を、１回以上（Ｎ−１）回以下の範囲内の一定回数に固定する。
【００４７】
＜繰り返し＞
上記のキャプチャー動作と帰還入力シフト工程とは、予め設定された所望の回数繰り返し行う。このようにキャプチャー動作と帰還入力シフト工程とを繰り返し行うことで、キャプチャー繰り返し工程（ステップＳ４〜Ｓ８の繰り返し）を行う。
【００４８】
ここで、帰還入力シフト工程に続くキャプチャー動作（ステップＳ７）は、リレー３２をオープン状態とした（ステップＳ６）後で行う。また、ステップＳ８では、予めセットされた所望の繰り返し回数に達したか否かを判定し、達していない場合にはステップＳ４〜Ｓ８を繰り返し、達した場合には次のステップＳ９に移行する。
【００４９】
なお、キャプチャー繰り返し工程を行うことにより、スキャンチェーン２０を構成する各フリップフロップ２１〜２４の値はランダムに更新される。このため、キャプチャー動作を繰り返す毎に、高確率で順次異なる値（テストパタン）を各フリップフロップ２１〜２４に設定することが可能となる。
【００５０】
＜照合工程＞
所望の繰り返し回数のキャプチャー繰り返し工程を終えたら、図１のモード（リレー３２はオープン状態）においてスキャンチェーン２０を構成するフリップフロップ２１〜２４の内容（値）を出力端子２０ｂから出力させ、その内容すなわち出力値が期待値と一致しているかどうかの照合を行う（ステップＳ９）。
【００５１】
ここで、期待値は、「入力する初期値」、「組み合わせ回路１０，１１，１２の回路構成（どのような回路構成であるか）」、「キャプチャー動作の繰り返し回数」及び「シフト回数」に基づいて、シミュレーションにより予め求めておく。
【００５２】
出力値が期待値と等しい場合は、集積回路１は良品であると判定し、出力値が期待値と異なる場合は、集積回路１００が不良品であると判定する。
【００５３】
このように、本実施形態に係るスキャンテスト方法では、先ず、スキャンチェーン２０を構成するフリップフロップ２１〜２４にテスト用の初期値を入力する初期入力工程を行い、次に、フリップフロップの値を与えた組み合わせ回路からの出力を他のフリップフロップにキャプチャーするキャプチャー動作工程と、スキャンチェーン２０におけるシフト動作を行う時に該スキャンチェーン２０からの出力値を該スキャンチェーン２０の入力側へ帰還させて入力する帰還入力シフト工程と、を交互に繰り返し行い、次に、スキャンチェーン２０からの出力値をその期待値と照合する照合工程を行う。
【００５４】
また、初期入力工程、キャプチャー動作工程と帰還入力シフト工程との繰り返し工程（キャプチャー繰り返し工程）、及び照合工程からなる一連の工程を、１回のみ行う。よって、照合工程は、スキャンテストにおける最終工程としての１回だけとなる。
【００５５】
以上のような第１の実施形態によれば、キャプチャー繰り返し工程を行うことにより、組み合わせ回路の出力をキャプチャーする動作によりフリップフロップに取り込んだ値を、再度、組み合わせ回路へ入力して次のキャプチャー動作に用いることになる。このため、スキャンチェーンの入力側から新たな値（テストパタン）を入力しなくても、キャプチャー動作の繰り返しによりフリップフロップの値をランダムに順次更新していくことができ、組み合わせ回路を好適にチェックすることが可能となる。
【００５６】
よって、スキャンテストに必要なテストパタン数（クロック数）及びメモリ容量を確実に削減することができる。しかも、一連のキャプチャー繰り返し工程を行った後に１回だけ照合工程を行うので、１回のキャプチャー動作を行う度に照合する従来と比べて、照合用の期待値及びその記憶用メモリも削減でき、さらに、照合の処理時間も削減できる。
【００５７】
本実施形態の場合、スキャンチェーンのフリップフロップに初期値を設定するのは初期設定時だけであり、フリップフロップの内容（出力値）を期待値と照合するのは最後の１回だけである。よって固有値として最低限必要な情報（テストパタン数）はスキャンパスによるシリアルデータ入力と出力に要するクロック数に相当する「フリップフロップ数×２」である。
【００５８】
キャプチャー動作の回数をＭ、スキャンチェーン２０を構成するフリップフロップの数をＮ、１回のキャプチャー動作に要するクロック数をＣ、１回の帰還入力シフト工程でのシフト回数をＳとすると、必要なクロック数は、
Ｍ×｛Ｓ＋Ｃ｝＋（２×Ｎ）・・・（２）
となる。
【００５９】
ここで、上記の（２）式において、Ｍ、Ｓ、Ｃ、Ｎはそれぞれ正の整数である。Ｎは従来技術と同様に例えば１００００個〜２０００００個、Ｃも従来技術と同様に例えば１、Ｓは本実施形態の場合、例えば１である。Ｍは従来技術における３０００回〜１００００回よりは増加が見込まれるがＮほどは大きくならないと考えられる。このため、Ｎが最もテストパタン数（クロック数）に影響を与える傾向があるといえるが、上記（２）式における第１項においては、従来技術における（１）式とは異なり、Ｎがキャプチャー回数Ｍと乗算されない。よって、本実施形態の場合、クロック数を従来の場合よりも削減でき、テスト時間も短縮可能となる。
【００６０】
本実施形態の場合、このように１回の帰還入力シフト工程におけるシフト回数として、効率の良い数（例えば、最小値の１など）を選択することにより、必要なクロック数及びテスト時間を好適に削減・短縮できる。
【００６１】
なお、本実施形態の場合に、最後の１回の照合だけで集積回路１の良否判定が可能であるのは以下の理由による。
【００６２】
すなわち、本実施形態では、キャプチャー繰り返し工程を行うことにより、組み合わせ回路の出力をキャプチャー動作によって後段のフリップフロップに取り込んだ値を、再度、組み合わせ回路へ入力して次のキャプチャー動作に用いることになる。このことは、フリップフロップの値を上記のようにランダムに順次更新していくということだけでなく、組み合わせ回路をテストした結果を継承した出力値を用いて引き続き次の組み合わせ回路のテストを順次行うことをも意味する。このため、一度でも不良な回路を通った出力値は、最終的にも期待値とは異なる値となるので、上記のように最後の１回の照合だけで集積回路１の良否判定が可能となるのである。
【００６３】
なお、本実施形態に係るスキャンテスト方法では、その性質上、不良がある場合であっても、出力値が偶然的に期待値と等しい値となる可能性もあるが、その可能性は極めて低く、かなりの高い確率で不良検出が可能であると考えられる。つまり、高確率の不良検出を、確実に少ないパタン数で実行することができる。
【００６４】
〔第２の実施形態〕
上記第１の実施形態に係るスキャンテスト方法では、出力値が偶然的に期待値と等しい値となる可能性を除いても、不良検出率が従来技術よりも劣る場合が考えられる。このような場合には、以下に説明するように、入力工程、キャプチャー繰り返し工程及び照合工程からなる一連の工程を、各回、或いは所定回数に１回の割合で初期値を変更しながら繰り返し行うと良い。つまり、図４のステップＳ２〜Ｓ９を所望の回数繰り返し行う。
【００６５】
ここで、各回の一連の工程では、スキャン（チェック）に抜けが生じる箇所が「入力する初期値」、「組み合わせ回路１０，１１，１２の回路構成」、「キャプチャー動作の繰り返し回数」及び「シフト回数」に基づいて、シミュレーションにより分かる。このため、次回の一連の工程の際に入力する初期値としては、その抜けの部分をチェックするための値を選択する。
【００６６】
なお、各回のキャプチャー繰り返し工程におけるキャプチャー動作は、例えば、シミュレーションにより予め求めた最適回数だけ繰り返し行う。ここでのシミュレーションは、「入力する初期値」、「組み合わせ回路１０，１１，１２の回路構成」及び「シフト回数」に基づいて行う。より具体的には、キャプチャー繰り返し工程におけるキャプチャー動作の最適回数は、１回のキャプチャー繰り返し工程におけるキャプチャー動作を更に繰り返しても不良検出率の向上に寄与しなくなるような回数である。
【００６７】
以上のような第２の実施形態によれば、入力工程、キャプチャー繰り返し工程及び照合工程からなる一連の工程を、各回で初期値を変更しながら複数回繰り返して行うので、十分な水準まで不良検出率を向上させることができ、確実に集積回路１のテストを行うことができる。
【００６８】
要するに、第２の実施形態によれば、上記第１の実施形態の特徴を生かしてクロック数及びテスト時間を削減しながらも、より高確率の不良検出を行うことが可能となる。
【００６９】
なお、上記の各実施形態では、集積回路１の内部に帰還入力手段（配線３１及びリレー３２）を設ける例を説明したが、帰還入力手段は、集積回路１の外部に設けても良い。すなわち、帰還入力手段は、スキャンテストを行うためのテストボード（スキャンテスト回路）に設けることとして良く、この場合にも、上記と同様の効果が得られる。
【００７０】
また、上記においては、帰還入力シフト工程におけるシフト回数が毎回一定である例を説明したが、シフト回数は毎回適宜の値に設定しても良い。
【００７１】
また、集積回路内におけるスキャンチェーンの数は任意である。スキャンチェーンが複数の場合には、帰還入力手段（伝達経路及び切換手段）は、各スキャンチェーン毎に備えるものとする。更に、この場合、各スキャンチェーンを構成するフリップフロップの数は、各スキャンチェーンで相互に異なっていても良い。
【００７２】
また、スキャンチェーンを構成するフリップフロップは、スキャンテストとユーザ論理用に兼用のもの（製品として機能する際にも動作するもの）であっても良いし、或いは、スキャンテストのためだけのもの（製品出荷前の検査のためだけに用いられ、製品として機能する際には動作しないもの）であっても良い。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態に係る集積回路を示す模式図であり、特に、テストパタンをスキャンチェーンに入出力する状態を示す。
【図２】図１の集積回路においてキャプチャー動作を行う状態を示す図である。
【図３】図１の集積回路において帰還入力手段を介したシフト動作を行う状態を示す図である。
【図４】図１の集積回路におけるスキャンテストの流れを示すフローチャートである。
【図５】スキャンテストが可能に構成された従来の集積回路を示す模式図であり、特に、テストパタンをスキャンチェーンに入出力する状態を示す。
【図６】図５の集積回路においてキャプチャー動作を行う状態を示す図である。
【図７】図５の集積回路におけるスキャンテストの流れを示すフローチャートである。
【符号の説明】
【００７４】
１    集積回路
１０、１１、１２  組み合わせ回路
２０  スキャンチェーン
２０ａ  入力端子
２０ｂ  出力端子
２１、２２、２３、２４  フリップフロップ
３２    リレー（スイッチ回路）
【図１】
2005134180.tif 000003
【図２】
2005134180.tif 000004
【図３】
2005134180.tif 000005
【図４】
2005134180.tif 000006
【図５】
2005134180.tif 000007
【図６】
2005134180.tif 000008
【図７】
2005134180.tif 000009