(57)【要約】【課題】自由度に富む新規なスキャンテスト技術を確立し、多様な機能マクロが搭載されるシステムオンチップＬＳＩのスキャンテストの効率を格段に向上させる。【解決手段】故障検出率が上昇しにくい機能マクロＢ（２２０）には、連結／分離が自在の２本のスキャンチェーン（２２２、２２４）を内蔵させ当初は、これらを連結させてテストを行い、機能マクロＡ（２１０）のテストが終了すると、スキャンチェーン（２２２、２２４）を分離すると共に、外部接続端子Ｔ１、Ｔ３の再割り当てを実行することで、余ったテスト資源を機能マクロＢに集中させ、機能マクロＢのスキャンテストを加速させる。【選択図】  図１
2005167055.tif 000002
【特許請求の範囲】
【請求項１】
スキャン設計された機能マクロを複数備える半導体集積回路であって、
複数のスキャンチェーン同士のシリアル接続あるいは分離を切り替えてスキャンチェーンの本数および１本のスキャンチェーンの長さを調整するスキャンチェーン切り替え手段と、
前記複数のスキャンチェーン同士のシリアル接続あるいは分離に対応して、前記複数のスキャンチェーンの少なくとも一つに外部接続端子を選択的に割り当てる外部接続端子割り当て手段と、
を備える半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路の機能マクロに対してスキャンテストを行う半導体集積回路のテスト方法であって、
複数の機能マクロから所定の故障検出率を達成した機能マクロを順次テスト対象から外す半導体集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン設計された複数の機能マクロに対するスキャンテスト技術に関する。
【背景技術】
【０００２】
大規模化がすすむロジックＬＳＩのテストに伴う負担（すなわち、テストパターン数が膨大となり、テスト時間が長時間化してコストが上昇するという負担）を軽減するために、「テスト容易化設計」が一般に採用されている。「テスト容易化設計」とは、故障テストの方針を回路設計の段階で固め、ＬＳＩ中にテスト回路を作り込んでおくことにより、故障診断、故障原因および故障箇所の特定等を容易化するという、回路の設計手法である。テスト容易化設計の手法の代表的なものとして、「スキャン設計」がある。「スキャン設計」とは、テストモード時において、ＬＳＩ内部に設けらた多数のフリップフロップをシリアルに接続してシフトレジスタを構成できるようにしておき、ＬＳＩテスタがこのシフトレジスタを直接制御することで、シフトレジスタを擬似的なテストパターンの発生器として利用したり、あるいは、このシフトレジスタに、内部ロジックからのデータを取り込んで外部に導出することで、内部ロジックの動作を外部から観測できるようにしたりし、また、テストモード時に、順序回路をすべて組み合わせ回路として取り扱えるように構成する、という設計手法のことである。テストモード時に構築される、シフトレジスタからなるテスト用の経路は、スキャンチェーン（あるいは、スキャンパス）と呼ばれ、また、このスキャンチェーンを用いたテストは、スキャンテストと呼ばれる。
【０００３】
一方、近年、複雑な機能マクロを一つのＬＳＩに集積するシステムオンチップと呼ばれる設計が進展してきている。ここで、「機能マクロ」とは、主に、ＬＳＩの機能設計の段階で使用される概念であり、所定の機能を実現するための一群の回路の集まりを一つのセル（ブロック）として認識したものであり、一般に、ＩＰ（設計資産）化されてライブラリーに登録されている。
【０００４】
機能マクロの各々は、回路規模、回路の性質や動作等が異なり、スキャンテストに必要なテストパターン数が異なることから、ＬＳＩテスタの負担が重く、したがって、各機能マクロのスキャンテストを効率的に行うことは、重要な課題となっている。複数の機能マクロが搭載されるＬＳＩとスキャンテストの効率化との関係を考察した従来技術としては、特許文献１に記載される技術がある。
【０００５】
特許文献１では、一つの機能マクロにおけるスキャンチェーンの長さが突出していると、そのことがネックとなって、他の機能マクロを含めたＬＳＩ全体のテスト効率が低下することがある点に着目し、複数の機能マクロ間で、スキャンチェーンの接続の変更を可能として、スキャンチェーンの長さを極力、均等化することで、ＬＳＩ全体のスキャンテスト時間の短縮を図っている。
【０００６】
【特許文献１】特開２０００−９２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術は、スキャンチェーンの長さの均等化により、ＬＳＩ全体としてのテスト時間の短縮を図っているが、集積される機能マクロは多種多様であり、スキャンチェーンの長さの均等化という観点からの対策のみでは、十分ではない場合がある。例えば、２つの機能マクロＡ、Ｂがあるとし、機能マクロＢは、故障検出率の上がりにくい機能マクロであり（つまり、故障判定を行えるようになるまでに必要なテストパターン長が極めて長い）、一方、機能マクロＡは、故障検出率が上がり易い機能マクロであるとする。この場合、故障検出率の上がりにくい機能マクロＢのテストパターン数が支配的となるため、テストパターン長が増大するのはやむを得ない。
【０００８】
一つの機能マクロのテストパターン長が極端に増大すると、ＬＳＩテスタにおけるテストパターンメモリの容量も極めて大きくしなければならず、ＬＳＩテスタの負担が大きくなる。また、機能マクロＡのテストが先に終了しても、結局、機能マクロＢのテストが終了するまで待たなくてはならないため、ＬＳＩ全体としてのテスト時間も機能マクロＢに支配されることになり、テスト時間の短縮を図ることもむずかしくなる。また、各機能マクロの本質的な差異が大きいほど、ＬＳＩ全体からみたスキャン設計（スキャンテストの容易性を考慮した設計）もむずかしくなる。
【０００９】
各機能マクロは、独自の設計がされた専用の回路ブロックであり、本質的に大きくことなるのが当然ということができ、したがって、テストに要するパターン長（パターンの総数）が大きくばらつくといった事態が生じるのは、やむを得ないということもできる。したがって、多様な機能マクロが搭載されるＬＳＩのスキャンテストも、状況の変化に柔軟に対応できる自由度や冗長性をもつことが望ましいが、現実には、これを実現するには多くの問題がある。
【００１０】
本発明は、このような考察に基づいてなされたものであり、各機能マクロが本質的に相違することを前提とした上で、それらの相違を吸収できるような、より自由度に富むスキャンテスト技術を確立し、ＬＳＩ全体としてのスキャンテストの効率を格段に向上させることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の半導体集積回路は、スキャン設計された機能マクロを複数備える半導体集積回路であって、複数のスキャンチェーン同士のシリアル接続あるいは分離を切り替えてスキャンチェーンの本数および１本のスキャンチェーンの長さを調整するスキャンチェーン切り替え手段と、前記複数のスキャンチェーン同士のシリアル接続あるいは分離に対応して、前記複数のスキャンチェーンの少なくとも一つに外部接続端子を選択的に割り当てる外部接続端子割り当て手段とを備える。
【００１２】
上記構成によれば、複数のスキャンチェーン（相互の接続、切り離しが自在である）を組み合わせてスキャンチェーンを構築していくという手法（ビルディング・チェーン方式）と、そのスキャンチェーンの構築状況に応じて、テスト対象のＬＳＩの外部接続端子をどのスキャンチェーンに接続するかをダイナミックに切り替える手法（外部接続端子の動的な割り当て）とを採用し、テスト資源を効果的に利用できる、柔軟で自由度に富んだスキャンテストを実現することができる。本発明の半導体集積回路を用い、テスト資源（ＬＳＩテスタのテスト能力や、テスト対象であるＬＳＩにおける使用可能な外部接続端子の数など）に余裕がないときは、スキャンチェーンを連結した状態でスキャンテストを行い、余裕があるときは、スキャンチェーンを分割して、より短いスキャンチェーンとしてシフト動作を少なくして処理を高速化し、同時に、分割された複数のスキャンチェーンの各々を並列に動作させて多様なテストを効率的に行うことで、スキャンテストを加速し、故障検出率が所定のしきい値に達するまでの時間の短縮を実現することができる。
【発明の効果】
【００１３】
本発明によれば、複数のスキャンチェーン（相互の接続、切り離しが自在である）を組み合わせてスキャンチェーンを構築していくという手法（ビルディング・チェーン方式）と、そのスキャンチェーンの構築状況に応じて、テスト対象のＬＳＩの外部接続端子をどのスキャンチェーンに接続するかをダイナミックに切り替える手法（外部接続端子の動的な割り当て）とを採用し、テスト資源を効果的に利用できる、柔軟で自由度に富んだスキャンテストを実現することができる。
【発明を実施するための最良の形態】
【００１４】
（第１の実施形態）
図１は本発明の第１の実施形態に係る半導体集積回路（ＬＳＩ）の構成を示す図であり、ＬＳＩテスタに接続された状態を示している。ＬＳＩ１００は、スキャンテスト動作を統括的に制御する制御回路１０２と、テストパターン書込回路１０４と、テストパターンメモリ１０６と、データ出力回路１０８と、期待値比較回路１１０とを備える。
【００１５】
データ出力回路１０８は、テストパターンメモリ１０６に蓄積されているテストパターンデータを、テスト対象のＬＳＩ２００に向けて出力するためのインタフェース回路である。期待値比較回路１１０は、テスト対象のＬＳＩ２００から出力されるスキャンアウトデータを取り込んで所定の期待値と比較し、故障判定を行う回路である。テストパターン書込回路１０４は、制御回路１０２の制御の下で、テストパターンデータを生成し、テストパターンメモリ１０６に書き込む働きをする。
【００１６】
テスト対象のＬＳＩ２００は、スキャン設計された機能マクロＡ（参照符号２１０）と、機能マクロＢ（参照符号２２０）と、外部接続端子Ｔ１〜Ｔ４（Ｔ１、Ｔ２はテストパターンデータの入力用の端子であり、Ｔ３、Ｔ３は、検査対象である内部ロジック回路（図１では不図示）からのデータをＬＳＩテスタ１００に向けて出力するための端子である）と、外部接続端子切り替え手段２３０とを備える。
【００１７】
外部接続端子切り替え手段２３０は、セレクタＳＬ２を内蔵する。セレクタＳＬ２は、セレクタ制御信号ＫＳが、“１”のときは、機能マクロＡ（参照符号２１０）から出力されるデータ（スキャンアウトデータ）を、外部接続端子Ｔ３を介してＬＳＩテスタ１００に向けて出力し、セレクタ制御信号ＫＳが、“０”のときは、機能マクロＢ（参照符号２２０）から出力されるデータ（スキャンアウトデータ）を、外部接続端子Ｔ４を介してＬＳＩテスタ１００に向けて出力する。
【００１８】
図１に示されるように、ＬＳＩテスタ１００のデータ出力回路１０８と、テスト対象のＬＳＩ２００の外部接続端子Ｔ１、Ｔ２は、信号線Ｌ１、Ｌ２を介して接続されている。同様に、ＬＳＩテスタ１００の期待値比較回路１１０と、テスト対象のＬＳＩ２００の外部接続端子Ｔ３、Ｔ４は、信号線Ｌ３、Ｌ４を介して接続されている。ここで、ＬＳＩ２００に搭載される機能マクロＡは、機能マクロＢに比べて故障検出率が上昇し易いものとする。機能マクロＡ（参照符号２１０）は、１本のスキャンチェーン２１２を内蔵する。機能マクロＢは、２本のスキャンチェーン２２２、２２４と、スキャンチェーン切り替え手段２２６とを備える。
【００１９】
スキャンチェーン切り替え手段２２６は、２入力のセレクタＳＬ１を内蔵している。セレクタＳＬ１が、２つの入力のうちのいずれを選択するかは、セレクタ制御信号ＫＳが“０”か“１”かによって決定される。スキャンチェーン切り替え手段２２６は、２本のスキャンチェーン２２２および２２４をシリアル接続したり、あるいは、それらを分離（切り離し）するという役割を果たすと同時に、外部接続端子Ｔ１を介してＬＳＩテスタ１００から供給されるテストパターンデータ（スキャンインデータ）を、機能マクロＢに内蔵されるスキャンチェーン２２４に与えるという、外部接続端子の割り当て手段としても機能する（すなわち、外部接続端子割り当て手段２３０と同様の機能も併せ持っている）。
【００２０】
スキャンチェーン２１２、２２２、２２４は、各々、単純な１本のチェーンとして描いてあるが、実際は、図６に示すように、スキャンイン側のシフトレジスタ（フリップフロップＤ１〜Ｄ３を含む）と、スキャンアウト側のシフトレジスタ（フリップフロップＤ４〜Ｄ７を含む）とが一対（一組）になっているのが通常である。すなわち、図１における、単純な１本のスキャンチェーン（２１２、２２２、２２４）は、図６のような一対（一組）のシフトレジスタを簡略化して描いたものである。図６において、フリップフロップＤ１〜Ｄ７は、通常の動作モード時では、例えば、データバッファとして機能するが、スキャンテストモード時では、フリップフロップＤ１〜Ｄ３、フリップフロップＤ４〜Ｄ７は、シリアル接続されてシフトレジスタ（スキャンチェーン）を構成する。図６のロジック回路５００は組み合わせ論理回路（テスト対象の回路）である。各フリップフロップ（Ｄ１〜Ｄ３、Ｄ４〜Ｄ７）をシリアルに接続するか、そのシリアル接続を解除するかは、セレクタＳＬ１０〜ＳＬ１２、ＳＬ１３〜ＳＬ１５の制御信号ＳＣを“０”とするか“１”とするかにより、適宜、選択することができる。
【００２１】
次に、図１に示されるテストシステムを用いて、ＬＳＩ２００に搭載される機能マクロＡ、Ｂのスキャンテストを行う場合の動作について説明する。まず、セレクタ制御信号ＫＳを、“０”に設定する。これにより、機能マクロＡ（参照符号２１２）に関しては、外部接続端子Ｔ１、機能マクロＡに内蔵されるスキャンチェーン２１２、外部接続端子割り当て手段２３０（セレクタＳＬ２）、外部接続端子Ｔ３、で構成されるデータ経路が形成される。説明の便宜上、この経路（機能マクロＡに関する経路）を「経路１」とする。
【００２２】
機能マクロＢ（参照符号２２０）については、外部接続端子Ｔ２、機能マクロＢに内蔵されるスキャンチェーン２２２、スキャンチェーン切り替え手段２２６（セレクタＳＬ１）、スキャンチェーン２２４、外部接続端子Ｔ４、で構成されるデータ経路が形成される。説明の便宜上、この経路（機能マクロＢに関する経路）を「経路２」とする。
【００２３】
この状態で、ＬＳＩテスタ１００のデータ出力回路１０８からテストパターンデータを出力させる。テストパターンデータ（スキャンインデータ）は、信号線Ｌ１、Ｌ２を介して、上述の経路１（機能ブロックＡに関する経路）および経路２（機能ブロックＢに関する経路）に入力される。経路１，２の各々から出力されるスキャンアウトデータは、信号線Ｌ３、Ｌ４を介して、ＬＳＩテスタ１００の期待値比較回路１１０に送られ、ここで期待値と比較され、故障判定がなされる。
【００２４】
このようなスキャンテストを続けていくと、時間の経過と共に、機能マクロＡ，Ｂの双方についての故障検出率は上昇していくが、機能マクロＡの方がその上昇が早く、したがって、機能マクロＡについての故障検出率が、所定のしきい値に早く到達する。機能マクロＡについての故障検出率が所定のしきい値に到達したということは、機能マクロＡのテストを終了してもよいことを意味するから、この時点で、機能マクロＡをスキャンテストの対象から除外する。そして、今まで機能マクロＡのテストのために用いられていたテスト資源を、今度は、機能マクロＢのテストのために用いるようにする。すなわち、機能マクロＢについてのテスト能力を増強し、機能マクロＢのスキャンテストを加速させる。
【００２５】
具体的には、セレクタ制御信号ＫＳを、“０”から“１”に変化させる。外部接続端子割り当て手段２３０のセレクタＳＬ２は、機能マクロＢのスキャンチェーン２２２からのデータを外部接続端子Ｔ３に供給するようになる。これにより、機能マクロＡのスキャンチェーン２１２とＬＳＩテスタ１００とを結ぶ信号経路（上述の経路１）が遮断され、機能マクロＡは、テスト対象から外れることになる。セレクタ制御信号ＫＳが“０”から“１”に変化すると、機能マクロＢに設けられているスキャンチェーン切り替え手段２２６のセレクタＳＬ１は、外部接続端子Ｔ１からのデータ（テストパターンデータ）をスキャンチェーン２２４に与えるようになる。これにより、機能マクロＢに内蔵される２本のスキャンチェーン２２２、２２４のシリアル接続が解除される（つまり、上述の経路２が消滅する）と同時に、新たに、２つの信号経路（経路３および経路４）が形成されることになる。すなわち、外部接続端子Ｔ２、機能マクロＢのスキャンチェーン２２２、外部接続端子割り当て手段２３０（セレクタＳＬ２）、外部接続端子Ｔ３で構成される経路（これが経路３である）が形成される。
【００２６】
同時に、外部接続端子Ｔ１、スキャンチェーン切り替え手段２２６（セレクタＳＬ１）、機能マクロＢのスキャンチェーン２２４、外部接続端子Ｔ４で構成される経路（これが経路４である）が形成される。すなわち、機能マクロＡがテスト対象から除外されると同時に、機能マクロＢに内蔵される２本のスキャンチェーン（２２２、２２４）のシリアル接続が解除されて２本の独立したスキャンチェーン２２２、２２４となり、同時に、独立したスキャンチェーン２２２に外部接続端子Ｔ１が割り当てられ（外部接続端子の動的な割り当て変更）、これによって新経路３が形成され、また、独立したスキャンチェーン２２４には外部接続端子Ｔ１が割り当てられ（外部接続端子の動的な割り当て変更）、これにより、新経路４が形成される。
【００２７】
各スキャンチェーン（２２２、２２４）の長さは、シリアル接続されていた状態に比べて半減しており、かつ、各スキャンチェーン（２２２、２２４）には、独立（併行）に、自由にテストパターンデータを入力することができる。シリアル接続された長いスキャンチェーンにシリアルにデータを入力する場合と比較して、シフトレジスタの段数が半減した各スキャンチェーン２２２、２２４に並列にデータを入力する方が、シフトレジスタのシフト回数が半減し、それだけ処理が高速化され、また、各スキャンチェーン２２２、２２４に、独立のテストパターンを入力することができることから、テストのバリエーションが増加する。したがって、機能ブロックＢについてのスキャンテストが効率化される。
【００２８】
ＬＳＩテスタ１００の制御回路１０２は、スキャンチェーン２２２、２２４が分割されて、外部接続端子Ｔ１、Ｔ３の再割り当てが行われると、これに対応するように、テストパターンメモリ１０６に書き込むテストパターンデータを、機能マクロＢ用のデータのみに変更し、また、データ出力回路１０８から、機能マクロＢ用のテストパターンデータを並列に出力させる。この機能マクロＢ用のテストパターンデータは、信号線Ｌ１、Ｌ２を介して、ＬＳＩ２００の外部接続端子Ｔ１、Ｔ２に与えられる。テスト対象のＬＳＩ２００（の外部接続端子Ｔ３、Ｔ４）から並列に出力される、機能マクロＢに関するスキャンアウトデータは、信号線Ｌ３、Ｌ４を介してＬＳＩテスタ１００に送られ、期待値比較回路１１０において期待値と比較され、これにより、機能マクロＢについての故障判定がなされる。
【００２９】
本来、短いシフトレジスタの接続／分離を制御することで、自由度の高いスキャンチェーンをビルディングしていくという設計思想に基づいたスキャン設計がなされているため、ＬＳＩテスタ１００側では、その短いシフトレジスタの段数を単位としてテストパターンを構築しておき、スキャンチェーン（シフトレジスタ）の分割や外部接続端子の再割り当てに伴い、そのテストパターンの出力先（どの外部接続端子に向けて出力するか）、および検査データの取り込み先（どの外部接続端子からどの機能マクロの検査データを受け取るか）を、適宜、切り替えるだけでよく、したがって、ＬＳＩテスタの負担が少なく、実現が容易である。
【００３０】
また、機能マクロの設計段階において、スキャンチェーン数（接続／分離が可能な短いシフトレジスタの数）を多めに設けておくだけで、その後の設計状況の変動等に柔軟に対処することが可能となる。したがって、機能マクロのスキャン設計も容易となる。
【００３１】
図２は、テストパターン数と故障検出率との関係を示す図である。図２において、横軸はテストパターン数であり、縦軸は故障検出率である。また、図中、テストパターン数が０〜Ｐ１までの期間は、機能マクロＡおよび機能マクロＢの双方についてのスキャンテストを行う期間である。テストパターン数がＰ１〜Ｐ２までの期間は、機能マクロＢについてのみ、スキャンテストを行う期間である。特性線Ｐ１は、機能マクロＡについての故障検出率の上昇特性を示し、特性線Ｐ２、Ｐ３は、図１に示される本発明の半導体集積回路を用いてテストを行った場合の、機能マクロＢについての故障検出率の上昇特性を示し、特性線Ｐ４、Ｐ５は、本発明を用いずに、従来どおりのスキャンテストを行った場合における、機能マクロＢについての故障検出率の上昇特性（比較例）を示す。
【００３２】
図２において、機能マクロＡ、Ｂについて同時にスキャンテストを開始し、テストパターン数がＰ１に至った時点で、機能マクロＡについての故障検出率が所定のしきい値（Ｄｔｈ）に達する（特性線Ｐ１）。このとき、機能マクロＢについての故障検出率（特性線Ｐ２）は、かなり上昇しているものの、しきい値（Ｄｔｈ）には達していない。この時点で、機能マクロＡをテスト対象から除外し、スキャンチェーン２２２，２２４の分割、外部接続端子の再割り当てを実施し、テスト資源（ＬＳＩテスタのハードウェア等やテストに使用可能な外部接続端子等を意味する）を、機能マクロＢに集中させて、より効率的に、機能マクロＢのテストを実施する。その結果、テストパターン数がＰ１〜Ｐ２の期間では、機能マクロＢについての故障検出率は急上昇し（特性線Ｐ３）、テストパターン数がＰ２に達した時点で、故障検出率が所定のしきい値（Ｄｔｈ）に到達する。
【００３３】
本発明の半導体集積回路を用いない場合には、機能マクロＡについての故障検出率が所定のしきい値（Ｄｔｈ）に達した後も、機能マクロＢに割り当てられるテスト資源はテスト開始当初と同じであるため（つまり、テスト資源のダイナミックな配分がなされず、当初から固定されたままであるため）、特性線Ｐ４、Ｐ５（図２中、点線で示される）ように、故障検出率の上昇は緩やかである。したがって、故障検出率が所定のしきい値Ｄｔｈに達するのは、テストパターン数がＰ３に達した時点である。
【００３４】
本発明を用いた場合には、テストパターン数はＰ２でよい。つまり、本発明によれば、テストパターンの総数を、従来に比べて、（Ｐ３−Ｐ２）だけ減少させることができる。したがって、テスト時間を短縮することができる。また、テストパターンの総数が減少することにより、無理なスキャン設計をする必要がなくなり、設計が容易化される。また、ＬＳＩテスタ１００の負担が軽減され、テストパターンメモリ１０６の容量を極端に増大する必要がなくなり、装置コストも抑制することができる。
【００３５】
（第２の実施形態）
図３は、本発明の第２の実施形態に係る半導体集積回路（ＬＳＩ）の構成を示す図である。ＬＳＩ３００は、外部接続端子Ｔ５〜Ｔ９と、外部接続端子割り当て手段３３０（セレクタＳＬ３を備える）と、スキャンチェーン切り替え手段３４０（セレクタＳＬ４を備え、スキャンチェーンの接続／分離を切り替えると共に、外部接続端子を割り当てる機能も併せ持つ）と、機能マクロＡ（参照符号３１０）と、機能マクロＢ（参照符号３２２）とを備える。機能マクロＡには、スキャンチェーン３１２が内蔵され、また、機能マクロＢには、スキャンチェーン３２２、３２４が内蔵される。
【００３６】
第１の実施形態と異なる点は、ＬＳＩ３００では、スキャンチェーン切り替え手段３４０が、機能マクロＢ（参照符号３２０）の外に設けられている点にある。これにより、機能マクロＢの設計が容易化される。また、外部接続端子Ｔ５〜Ｔ９がすべて、ＬＳＩ３００の左端部に設けられている。ＬＳＩのレイアウト設計では、種々の制約から、外部接続端子を自由に配置できない場合もある。このような場合でも、本発明は構成が簡単であるため、図３に示すように、柔軟なレイアウトができ、したがって、ＬＳＩのレイアウト設計上も有利である。図３のＬＳＩ３００では、機能マクロＡ、Ｂ（参照符号３１０、３２０）の各々に内蔵されるスキャンチェーン３１２、３２２および３２４は、折り曲げられた形状を有している。このように、スキャンチェーンの形状を工夫することで、外部接続端子の配置に、柔軟に対応することが可能となる。
【００３７】
（第３の実施形態）
本実施形態では、本発明のスキャンテスト方法（前掲の実施形態のように、機能マクロＡ，Ｂに限定されない、より一般化された方法）について説明する。前掲の実施形態では、２つの機能マクロＡ、Ｂを例にとって説明した。しかし、実際は、システムオンチップのＬＳＩの設計に際し、ライブラリーに登録されている、多種多様なＩＰ化された機能マクロが、多数用いられる可能性がある。
【００３８】
このような場合における、本発明のスキャンテストの手順をまとめると、図４に示すようになる。すなわち、まず、スキャン設計された複数（Ｎ個）の機能マクロについて、同時にスキャンテストを実行する（Ｓ４００）。次に、一つの機能マクロの故障検出率が所定のしきい値を越えたかを判定し（Ｓ４０２）、そうであれば、Ｓ４０２にすすみ、そうでなければ、Ｓ４００に戻る。
【００３９】
次に、テスト対象のすべての機能マクロについて、スキャンテストが終了したかを判定する（Ｓ４０４）。そうであれば、スキャンテストが終了し、そうでなければ、Ｓ４０６にすすむ。Ｓ４０６では、テストが終了した（すなわち、故障検出率が所定のしきい値に達した）機能マクロをテスト対象から外し、余ったテスト能力を、他の機能マクロに振り分けてスキャンテストを実行する。具体的には、スキャンチェーンを分割して１チェーン当たりのフリップフロップ（ＦＦ）数を減少させ、同時に各スキャンチェーンへの外部接続端子の再割り当てを行い、各スキャンチェーンに並列にテストパターンデータを供給してスキャンテストを行う（Ｓ４０６）。
【００４０】
図５は、４つの機能マクロ（ここでは、Ａ〜Ｄとする）について、図４に示したスキャンテストを実行した場合の、各機能マクロについての故障検出率の上昇特性を示す図である。機能マクロＡ、Ｂ、Ｃ、Ｄの順で、スキャンテストの困難性が高くなるものとする。図５において、特性線Ｐ６は、機能マクロＡの故障検出率の上昇特性を示す。また、特性線Ｐ７、Ｐ１０は、機能マクロＢの故障検出率の上昇特性を示す。また、特性線Ｐ８、Ｐ１１、Ｐ１３は、機能マクロＣの故障検出率の上昇特性を示す。また、特性線Ｐ９、Ｐ１２、Ｐ１４、Ｐ１５は、機能マクロＤの故障検出率の上昇特性を示す。
【００４１】
図示されるように、パターン数がＰ１に達した時点で、機能マクロＡの故障検出率（特性線Ｐ６）が所定のしきい値（Ｄｔｈ）に達する。この時点で、機能マクロＡをテスト対象から除外し、余ったテスト資源（テスト能力）を、他の機能マクロＢ〜Ｄに割り振る。
【００４２】
これにより、テストパターン数Ｐ１〜Ｐ２の期間では、機能マクロＢ〜Ｄについての故障検出率（特性線Ｐ１０、Ｐ１１、Ｐ１２）が向上する。そして、テストパターン数がＰ２の時点で、機能マクロＢについての故障検出率（特性線Ｐ１０）が所定のしきい値（Ｄｔｈ）に達する。この時点で、機能マクロＢをテスト対象から除外する。そして、今まで機能マクロＢのテストに使用されていたテスト資源を、他の機能マクロＣ、Ｄのテストに割り振る。
【００４３】
これにより、テストパターン数Ｐ２〜Ｐ３の期間では、機能マクロＣ、Ｄについての故障検出率（特性線Ｐ１３、Ｐ１４）が向上する。そして、テストパターン数がＰ３に到達した時点で、機能マクロＣについての故障検出率（特性線Ｐ１３）が所定のしきい値（Ｄｔｈ）に達する。この時点で、機能マクロＣをテスト対象から除外する。そして、今まで機能マクロＣのテストに使用されていたテスト資源を、残りの機能マクロＤのテストに割り振る。これにより、テストパターン数Ｐ３〜Ｐ４の期間では、機能マクロＤについての故障検出率（特性線Ｐ１５）が向上する。そして、テストパターン数がＰ４の時点で、機能マクロＤについての故障検出率（特性線Ｐ１５）が所定のしきい値（Ｄｔｈ）に達する。
【００４４】
本発明を用いない場合、機能マクロＢ〜Ｄの故障検出率は、特性線Ｐ７〜Ｐ９の延長上にあるカーブを描いて徐々に上昇するが、本発明では、一つの機能マクロの故障検出率が所定のしきい値（Ｄｔｈ）に達する毎に、テスト資源が他の機能マクロに割り振られていくため、時間経過と共にスキャンテストが加速され、したがって、スキャンテストに要するテストパターン総数およびテスト時間を格段に短縮することができる。
【産業上の利用可能性】
【００４５】
本発明の半導体集積回路は、複数のスキャンチェーン（相互の接続、切り離しが自在である）を組み合わせてスキャンチェーンを構築していくという手法（ビルディング・チェーン方式）と、そのスキャンチェーンの構築状況に応じて、テスト対象のＬＳＩの外部接続端子をどのスキャンチェーンに接続するかをダイナミックに切り替える手法（外部接続端子の動的な割り当て）とを採用し、テスト資源を効果的に利用できる、柔軟で自由度に富んだスキャンテストを実現することができるという効果を有し、スキャン設計された複数の機能マクロに対するスキャンテスト技術等として有用である。
【図面の簡単な説明】
【００４６】
【図１】本発明の第１の実施形態に係る半導体集積回路の構成を示す図
【図２】２つの機能マクロについてのテストパターン数と故障検出率との関係を示す図
【図３】本発明の第２の実施形態に係る半導体集積回路の構成を示す図
【図４】本発明のテスト方法の動作を示すフロー図
【図５】４つの機能マクロについてのテストパターン数と故障検出率との関係を示す図
【図６】スキャンチェーンの具体的な回路構成の一例を示す図
【符号の説明】
【００４７】
１００  ＬＳＩテスタ
１０２  制御回路
１０４  テストパターン書込回路
１０６  テストパターンメモリ
１０８  データ出力回路
１１０  期待値比較回路
２００  テスト対象の半導体集積回路（ＬＳＩ）
２１０  機能マクロＡ
２１２  スキャンチェーン
２２０  機能マクロＢ
２２２、２２４  スキャンチェーン
２２６  スキャンチェーン切り替え手段
２３０  外部接続端子割り当て手段
ＳＬ１、ＳＬ２  セレクタ
Ｔ１〜Ｔ４  外部接続端子
【図１】
2005167055.tif 000003
【図２】
2005167055.tif 000004
【図３】
2005167055.tif 000005
【図４】
2005167055.tif 000006
【図５】
2005167055.tif 000007
【図６】
2005167055.tif 000008