(57)【要約】【課題】ＬｏｇｉｃＢＩＳＴの解析ＴＡＴを短縮する。【解決手段】本発明による半導体集積回路は、複数のＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３と、複数のＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３に対応して接続される複数のスキャンチェーン群Ｆ１、Ｆ２、Ｆ３を具備する。第１モードにおいて、複数のＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３は、複数のスキャンチェーン群Ｆ１、Ｆ２、Ｆ３からの出力信号を圧縮演算する１つのＭＩＳＲ回路として機能し、第２モードにおいて、複数のＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３のそれぞれは、複数のスキャンチェーン群Ｆ１、Ｆ２、Ｆ３のそれぞれの出力を個別に圧縮演算するＭＩＳＲ回路として機能する。【選択図】図２Ｂ
2012198078.tif 000002
【特許請求の範囲】
【請求項１】
複数のＭＩＳＲ回路と、
前記複数のＭＩＳＲ回路に対応して接続される複数のスキャンチェーン群と
を具備し、
第１モードにおいて、前記複数のＭＩＳＲ回路は、前記複数のスキャンチェーン群からの出力信号を圧縮演算する１つのＭＩＳＲ回路として機能し、第２モードにおいて、前記複数のＭＩＳＲ回路のそれぞれは、前記複数のスキャンチェーン群のそれぞれの出力を個別に圧縮演算するＭＩＳＲ回路として機能する
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記複数のＭＩＳＲ回路のそれぞれの間に接続された第１セレクタと、
前記複数のＭＩＳＲ回路における最終段のＭＩＳＲ回路と初段のＭＩＳＲ回路との間に接続された第２セレクタと
を更に具備し、
前記複数のＭＩＳＲ回路の各々は、複数のスキャンチェーン群のそれぞれにおける複数のスキャンチェーンからの出力信号を圧縮する演算回路を備え、
前記第１モードにおいて、
前記第１セレクタは、前記第１セレクタに対して前段のＭＩＳＲ回路における演算回路によるキャリーアウト信号を選択して、前記第１セレクタに対して後段のＭＩＳＲ回路における演算回路に出力し、
前記第２セレクタは、前記最終段のＭＩＳＲ回路における演算回路によるキャリーアウト信号を選択して前記初段のＭＩＳＲ回路における演算回路に出力し、
前記第２モードにおいて、
前記第１セレクタは、前記後段のＭＩＳＲ回路における演算回路によるキャリーアウト信号を選択して前記後段のＭＩＳＲ回路における演算回路に出力し、
前記第２セレクタは、前記初段のＭＩＳＲ回路における演算回路によるキャリーアウト信号を選択して前記初段のＭＩＳＲ回路における演算回路に出力する
半導体集積回路。
【請求項３】
請求項１又は２に記載の半導体集積回路において、
スキャンテストモードにおいて、前記複数のＭＩＳＲ回路は、前記複数のスキャンチェーン群から選択された少なくとも一のスキャンチェーン群の出力信号を圧縮せずに出力する
半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路において、
前記複数のＭＩＳＲ回路のそれぞれは、前記複数のスキャンチェーン群のそれぞれに含まれる複数のスキャンチェーンの各々からの出力信号と、前記出力信号の圧縮演算結果の一方を選択して出力する第３セレクタを備える
半導体集積回路。
【請求項５】
請求項４に記載の半導体集積回路において、
前記複数のＭＩＳＲ回路の各々は、自身が接続するスキャンチェーン群に含まれる複数のスキャンチェーンに対応する複数のフリップフロップ回路を備え、
前記複数のフリップフロップ回路は、前記第３セレクタによって選択された信号を保持し、保持した信号をシフトして順に出力する
半導体集積回路。
【請求項６】
請求項３から５のいずれか１項に記載の半導体集積回路において、
前記複数のスキャンチェーン群から選択された少なくとも一のスキャンチェーン群に含まれる複数のスキャンチェーンからの出力信号をパラレル出力する複数の端子を備える
半導体集積回路。
【請求項７】
請求項６に記載の半導体集積回路において、
前記複数の端子のそれぞれは、前記複数のＭＩＳＲ回路のそれぞれに対応して設けられ、
前記第２モードにおいて、前記複数のＭＩＳＲ回路のそれぞれは、それぞれの前記演算回路からの圧縮結果を、それぞれの端子から出力する
半導体集積回路。
【請求項８】
請求項１から７のいずれか１項に記載の半導体集積回路において、
前記第１モードにおいて、前記複数のＭＩＳＲ回路における一のＭＩＳＲ回路から、前記複数のスキャンチェーン群からの出力信号の圧縮結果が出力される
半導体集積回路。
【請求項９】
複数のスキャンチェーン群のそれぞれの出力信号を個別に圧縮した結果と期待値とを照合して、不良を有するスキャンチェーン群を特定するステップと、
特定されたスキャンチェーン群における複数のスキャンチェーンのそれぞれの出力信号と期待値とを照合して、不良を有するスキャンチェーンを特定するステップと
を具備するテスト方法。
【請求項１０】
請求項９に記載のテスト方法において、
前記不良を有するスキャンチェーン群を特定するステップの前に、複数のスキャンチェーン群の全ての出力信号の圧縮結果と期待値とを照合して不良の有無を検証するステップを更に具備し、
前記不良の有無を検証するステップにおいて、不良と判定された半導体集積回路に対し、前記不良を有するスキャンチェーン群を特定するテストを行う
テスト方法。
【請求項１１】
複数の端子を用意するステップと、
前記複数の端子のそれぞれに、複数のスキャンチェーンをスキャンチェーン群として割り当てるステップと、
ＭＩＳＲ回路を複数のＭＩＳＲ回路に分割し、複数の前記スキャンチェーン群のそれぞれに割り当てるステップと
を具備する半導体集積回路の設計方法。
【請求項１２】
請求項１１に記載の半導体集積回路の設計方法において、
前記複数のＭＩＳＲ回路を１つのＭＩＳＲ回路として使用する第１モードと、前記複数のＭＩＳＲ回路をそれぞれ個別のＭＩＳＲ回路として使用する第２モードとに切り替えるモード切替回路を、挿入するステップを更に具備する
半導体集積回路の設計方法。
【請求項１３】
請求項１１に記載の半導体集積回路の設計方法において、
前記複数のスキャンチェーン群からの出力信号と前記出力信号の圧縮結果の一方を選択して出力するセレクタを前記ＭＩＳＲ回路に挿入するステップを更に具備する
半導体集積回路の設計方法。
【請求項１４】
請求項１１から１３のいずれか１項をコンピュータに実行させる設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、その設計方法、及び半導体集積回路の故障診断方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路に搭載される機能の複雑化や、回路規模の増大により、ＬＳＩに対する故障診断テストに要する時間やコストが増大している。このようなテストコストの上昇を抑制するため、ＬｏｇｉｃＢＩＳＴ（ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ−ｔｅｓｔ）の技術導入が進められてきた。又、半導体集積回路における故障解析の容易性の向上や解析ＴＡＴの短縮化への要求が高まってきた。
【０００３】
ＬｏｇｉｃＢｉＳＴにおける解析ＴＡＴを短縮化する方法として、複数のスキャンチェーンの出力（スキャンデータ）をＭＩＳＲ（Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）回路を用いて圧縮して解析する方法が知られている。ＭＩＳＲ回路を利用した故障解析方法が、例えば特開２０００−３５２５７６に記載されている（特許文献１参照）。特許文献１では、複数のスキャンチェーンからＭＩＳＲ回路への出力を選択的にマスクすることで、解析対象となるスキャンチェーンを絞り込み、故障箇所を特定している。
【０００４】
図１は、特許文献１に記載の半導体集積回路の構成を示す図である。図１を参照して、特許文献１に記載の半導体集積回路は、複数のスキャンチェーン５０１と、複数のスキャンチェーンのそれぞれに対応して接続されたマスク回路５０２と、マスク回路５０２を介して出力されたスキャンチェーンの出力を圧縮するＭＩＳＲ回路５０３を具備する。複数のマスク回路５０２のそれぞれは、制御回路５００からの制御信号に応じて、そのマスク動作が制御され、ＭＩＳＲ回路５０３に出力されるスキャンチェーン出力を遮断又は通過させる。
【０００５】
ＭＩＳＲ回路５０３は、マスク回路５０２を介して選択的に出力されたスキャンチェーン５０１の出力を圧縮して、図示しない解析装置に出力する。これにより、特許文献１に記載の回路では、スキャンチェーン出力の圧縮結果を選択的に解析でき、故障箇所の絞り込みが可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−３５２５７６
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載の技術では、故障箇所を特定するための解析に時間がかかるという問題がある。例えば、マスク動作によるスキャンチェーンの選択、テストパタンの入力、及び圧縮出力の解析といった一連の動作を、故障箇所が特定されるまで繰り返す必要がある。このため、故障箇所を有するスキャンチェーンを特定するまでの時間が長大化してしまう。
【０００８】
又、特許文献１に記載の方法では、故障しているスキャンチェーンを特定することができるが、スキャンチェーン内において故障しているフリップフロップ回路を特定する場合、ＭＩＳＲ回路の出力結果を解析する必要がある。このため、故障箇所を特定するための解析が容易に行えるテスト方法や半導体集積回路が求められている。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１０】
本発明による半導体集積回路は、複数のＭＩＳＲ回路（Ｍ１、Ｍ２、Ｍ３）と、複数のＭＩＳＲ回路（Ｍ１、Ｍ２、Ｍ３）に対応して接続される複数のスキャンチェーン群（Ｆ１、Ｆ２、Ｆ３）とを具備する。第１モードにおいて、複数のＭＩＳＲ回路（Ｍ１、Ｍ２、Ｍ３）は、複数のスキャンチェーン群（Ｆ１、Ｆ２、Ｆ３）からの出力信号を圧縮演算する１つのＭＩＳＲ回路として機能し、第２モードにおいて、複数のＭＩＳＲ回路（Ｍ１、Ｍ２、Ｍ３）のそれぞれは、複数のスキャンチェーン群（Ｆ１、Ｆ２、Ｆ３）のそれぞれの出力を個別に圧縮演算するＭＩＳＲ回路として機能する。
【００１１】
本発明によるテスト方法は、複数のスキャンチェーン群（Ｆ１、Ｆ２、Ｆ３）のそれぞれの出力信号を個別に圧縮した結果と期待値とを照合して、不良を有するスキャンチェーン群を特定するステップと、特定されたスキャンチェーン群における複数のスキャンチェーンのそれぞれの出力信号と期待値とを照合して、不良を有するスキャンチェーンを特定するステップとを具備する。
【００１２】
本発明による半導体集積回路の設計方法は、複数の端子（ＴＯ１〜ＴＯ３）を用意するステップと、複数の端子（ＴＯ１〜ＴＯ３）のそれぞれに、複数のスキャンチェーンをスキャンチェーン群として割り当てるステップと、ＭＩＳＲ回路を複数のＭＩＳＲ回路（Ｍ１〜Ｍ３）に分割し、複数のスキャンチェーン群のそれぞれに割り当てるステップとを具備する。
【発明の効果】
【００１３】
本発明によれば、ＬｏｇｉｃＢＩＳＴの解析ＴＡＴを短縮することができる。
【００１４】
又、ＬｏｇｉｃＢＩＳＴの解析を容易化することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、従来技術による半導体集積回路の構成の一例を示す図である。
【図２Ａ】図２Ａは、本発明による半導体集積回路の構成の一例を示す図である。
【図２Ｂ】図２Ｂは、本発明による半導体集積回路の構成の一例を示す図である。
【図２Ｃ】図２Ｃは、本発明に係るモード制御信号生成回路及びシフト制御信号生成回路の一例を示す図である。
【図３】図３は、圧縮を行う演算回路の構成の一例を示す図である。
【図４】図４は、本発明によるＬｏｇｉｃＢＩＳＴにおける不良解析方法を示すフロー図である。
【図５】図５は、本発明によるＬｏｇｉｃＢＩＳＴ（全スキャンチェーンテスト）における半導体集積回路の動作の一例を示すタイミングチャートである。
【図６】図６は、本発明によるＬｏｇｉｃＢＩＳＴ（不良スキャンチェーン群絞り込みテスト）における半導体集積回路の動作の一例を示すタイミングチャートである。
【図７】図７は、本発明によるＬｏｇｉｃＢＩＳＴ（不良スキャンチェーン絞り込みテスト）における半導体集積回路の動作の一例を示すタイミングチャートである。
【図８Ａ】図８Ａは、本発明による半導体集積回路の構成の他の一例を示す図である。
【図８Ｂ】図８Ｂは、本発明に係るモード制御信号生成回路及びシフト制御信号生成回路の他の一例を示す図である。
【図９Ａ】図９Ａは、本発明による半導体集積回路の構成の更に他の一例を示す図である。
【図９Ｂ】図９Ｂは、本発明に係るモード制御信号生成回路及びシフト制御信号生成回路の他の一例を示す図である。
【図１０】図１０は、本発明による半導体集積回路設計支援装置の構成の一例を示す図である。
【図１１】図１１は、本発明による半導体集積回路設計支援プログラムを実行したときの機能の一例を示す図である。
【図１２】図１２は、本発明による半導体集積回路の設計方法の一例を示すフロー図である。
【図１３】図１３は、本発明に係るテストパタン生成方法の一例を示すフロー図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００１７】
（半導体集積回路の構造）
図２Ａから図３を参照して、本発明による半導体集積回路の構成の一例を説明する。図２Ａ〜図２Ｃは、本発明による半導体集積回路の構成の一例を示す図である。ここでは、９本のスキャンチェーンを３つのチェーン群Ｆ１、Ｆ２、Ｆ３に分割してテスト可能な、半導体集積回路を一例に説明する。
【００１８】
図２Ａ及び図２Ｂを参照して、本発明による半導体集積回路は、ＬＳＩに例示され、擬似ランダムパタン生成器１（ＰＲＰＧ：Ｐｓｅｕｄｏ．  Ｒａｎｄｏｍ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）、複数のスキャンチェーンＣＨ１１、ＣＨ１２、ＣＨ１３、ＣＨ２１、ＣＨ２２、ＣＨ２３、ＣＨ３１、ＣＨ３２、ＣＨ３３、複数のＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３、及び複数のセレクタＭＢ１、ＭＢ２、ＭＢ３を具備する。ここで、スキャンチェーンＣＨ１１は、それぞれがシリアル接続されたフリップフロップ回路Ｆ１１１〜Ｆ１１７を備え、スキャンチェーンＣＨ１２は、それぞれがシリアル接続されたフリップフロップ回路Ｆ１２１〜Ｆ１２７を備え、スキャンチェーンＣＨ１３は、それぞれがシリアル接続されたフリップフロップ回路Ｆ１３１〜Ｆ１３７を備える。同様に、スキャンチェーンＣＨ２１、ＣＨ２２、ＣＨ２３のそれぞれは、それぞれがシリアル接続されたフリップフロップ回路Ｆ２１１〜Ｆ２１７、Ｆ２２１〜Ｆ２２７、Ｆ２３１〜Ｆ２３７を備え、スキャンチェーンＣＨ３１、ＣＨ３２、ＣＨ３３のそれぞれは、それぞれがシリアル接続されたフリップフロップ回路Ｆ３１１〜Ｆ３１７、Ｆ３２１〜Ｆ３２７、Ｆ３３１〜Ｆ３３７を備える。
【００１９】
ＬｏｇｉｃＢＩＳＴの際、擬似ランダムパタン生成器１は、予め設定されたテストパタンデータＰ１１〜Ｐ１３、Ｐ２１〜Ｐ２３、Ｐ３１〜Ｐ３３を、対応するスキャンチェーンに出力する。スキャンチェーンＣＨ１１〜ＣＨ１３は、それぞれに入力されるテストパタンデータＰ１１〜Ｐ１３に応じた出力信号（スキャンデータＳ１１〜Ｓ１３）を出力する。同様に、スキャンチェーンＣＨ２１〜ＣＨ２３、ＣＨ３１〜ＣＨ３３は、テストパタンデータＰ２１〜Ｐ２３、Ｐ３１〜Ｐ３３に応じたスキャンデータＳ２１〜Ｓ２３、Ｓ３１〜Ｓ３３を出力する。
【００２０】
ＭＩＳＲ回路Ｍ１〜Ｍ３のそれぞれは、スキャンチェーンから入力される出力信号（スキャンデータ）を圧縮する演算回路Ｃ１〜Ｃ３を備える。詳細には、演算回路Ｃ１は、セレクタＭＢ１から出力されたキャリーイン信号ＭＣ０と、フリップフロップＭ１１〜Ｍ１３のそれぞれに保持された圧縮データＭＦ１１〜ＭＦ１３とに基づいて、スキャンチェーンＣＨ１１〜１３からのスキャンデータＳ１１〜Ｓ１３を圧縮し、圧縮信号（圧縮データＣ１１〜Ｃ１３）として出力する。この際、演算回路Ｃ１における最終段の全加算器から出力されたキャリーアウト信号ＣＭ１は、セレクタＭＢ２に出力される。又、キャリーアウト信号ＣＭ１は、図３に示すフリップフロップ回路Ｌ１で保持された後、キャリーアウト信号ＦＣＭ１としてセレクタＭＢ１に出力される。演算回路Ｃ２は、セレクタＭＢ２から出力されたキャリーイン信号ＭＣ１と、フリップフロップＭ２１〜Ｍ２３のそれぞれに保持された圧縮データＭＦ２１〜ＭＦ２３とに基づき、スキャンチェーンＣＨ２１〜２３からのスキャンデータＳ２１〜Ｓ２３を圧縮し、圧縮データＣ２１〜Ｃ２３として出力する。この際、演算回路Ｃ２における最終段の全加算器から出力されたキャリーアウト信号ＣＭ２は、セレクタＭＢ３に出力される。又、キャリーアウト信号ＣＭ２は、演算回路Ｃ１と同様にフリップフロップ回路で保持された後、キャリーアウト信号ＦＣＭ２としてセレクタＭＢ２に出力される。演算回路Ｃ３は、セレクタＭＢ３から出力されたキャリーイン信号ＭＣ２と、フリップフロップＭ３１〜Ｍ３３のそれぞれに保持された圧縮データＭＦ３１〜ＭＦ３３とに基づき、スキャンチェーンＣＨ３１〜３３からのスキャンデータＳ３１〜Ｓ３３を圧縮し、圧縮データＣ３１〜Ｃ３３として出力する。この際、演算回路Ｃ１における最終段の全加算器から出力されたキャリーアウト信号ＣＭ３は、セレクタＭＢ１に出力される。又、キャリーアウト信号ＣＭ３は、演算回路Ｃ１と同様に、フリップフロップ回路で保持された後、キャリーアウト信号ＦＣＭ３としてセレクタＭＢ１及びセレクタＭＢ３に出力される。
【００２１】
セレクタＭＢ１は、初段の演算回路Ｃ１から出力されるキャリーアウト信号ＦＣＭ１と、最終段の演算回路Ｃ３から出力されるキャリーアウト信号ＦＣＭ３の一方を、モード制御信号ＭＢＳに応じて選択し、演算回路Ｃ１へのキャリーイン信号ＭＣ０として出力する。セレクタＭＢ２は、初段の演算回路Ｃ１から出力されるキャリーアウト信号ＣＭ１と、演算回路Ｃ２から出力されるキャリーアウト信号ＦＣＭ２の一方を、モード制御信号ＭＢＳに応じて選択し、演算回路Ｃ２へのキャリーイン信号ＭＣ１として出力する。セレクタＭＢ３は、演算回路Ｃ２から出力されるキャリーアウト信号ＣＭ２と、最終段の演算回路Ｃ３から出力されるキャリーアウト信号ＦＣＭ３の一方を、モード制御信号ＭＢＳに応じて選択し、演算回路Ｃ３へのキャリーイン信号ＭＣ２として出力する。
【００２２】
ここで、セレクタＭＢ１、ＭＢ２、ＭＢ３のそれぞれが、キャリーアウト信号ＦＣＭ３、ＣＭ１、ＣＭ２をキャリーイン信号ＭＣ０、ＭＣ１、ＭＣ２として選択して演算回路Ｃ１、Ｃ２、Ｃ３に出力すると、演算回路Ｃ１〜Ｃ３は、１つの圧縮演算回路として機能し、スキャンデータＳ１１〜Ｓ１３、Ｓ２１〜Ｓ２３、Ｓ３１〜Ｓ３３を圧縮した信号を、圧縮データＣ１１〜Ｃ１３、Ｃ２１〜Ｃ２３、Ｃ３１〜Ｃ３３として出力する。一方、セレクタＭＢ１、ＭＢ２、ＭＢ３のそれぞれが、キャリーアウト信号ＦＣＭ３、ＦＣＭ１、ＦＣＭ２をキャリーイン信号ＭＣ０、ＭＣ１、ＭＣ２として選択して演算回路Ｃ１、Ｃ２、Ｃ３に出力すると、演算回路Ｃ１〜Ｃ３は、それぞれ個別の圧縮演算回路として機能する。この場合、演算回路Ｃ１は、スキャンデータＳ１１〜Ｓ１３を圧縮した信号を圧縮データＣ１１〜Ｃ１３として出力し、演算回路Ｃ２は、スキャンデータＳ２１〜Ｓ２３を圧縮した信号を圧縮データＣ２１〜Ｃ２３として出力し、演算回路Ｃ３は、スキャンデータＳ３１〜Ｓ３３を圧縮した信号を圧縮データＣ３１〜Ｃ３３として出力する。
【００２３】
図３は、演算回路Ｃ１の構成の一例を示す図である。演算回路Ｃ１は、全加算器ＦＡ１〜ＦＡ３、フリップフロップ回路Ｌ１を備える。全加算器ＦＡ１は、キャリーイン信号ＭＣ０が入力され、スキャンデータＳ１１と圧縮データＭＦ１１との加算結果を圧縮データＣ１１として出力する。又、全加算器ＦＡ１のキャリーアウト信号は、次段の全加算器ＦＡ２のキャリーインとして入力される。全加算器ＦＡ１は、スキャンデータＳ１２と圧縮データＭＦ１２との加算結果を圧縮データＣ１２として出力する。又、全加算器ＦＡ２のキャリーアウト信号は、次段（最終段）の全加算器ＦＡ３のキャリーインとして入力される。全加算器ＦＡ３は、スキャンデータＳ１３と圧縮データＭＦ１３との加算結果を圧縮データＣ１３として出力する。又、全加算器ＦＡ３のキャリーアウト信号は、キャリーアウト信号ＣＭとして出力されるとともに、フリップフロップ回路Ｌ１に一時保持された後、キャリーアウト信号ＦＣＭ１として出力される。
【００２４】
演算回路Ｃ２、Ｃ３も演算回路Ｃ１と同様な構成であり、それぞれ、スキャンチェーンからのスキャンデータＳ２１〜Ｓ２３、Ｓ３１〜Ｓ３３に基づいた圧縮データＣ２１〜Ｃ２３、Ｃ３１〜Ｃ３２を出力する。
【００２５】
ＭＩＳＲ回路Ｍ１〜Ｍ３のそれぞれは、図示しないテスタに接続されるテスト端子ＴＯ１〜ＴＯ３と、選択保持回路とを備える。例えばＭＩＳＲ回路Ｍ１の選択保持回路は、演算回路Ｃ１から出力される圧縮データＣ１１〜Ｃ１２と、スキャンチェーンＣＨ１１ＣＨ２１、ＣＨ３１からのスキャンデータＳ１１、Ｓ２１、Ｓ３１の一方を選択して保持するとともに、所定のタイミングでテスト端子ＴＯ１に出力する。
【００２６】
以下、ＭＩＳＲ回路Ｍ１〜Ｍ３のそれぞれに搭載される選択保持回路の構成の詳細を説明する。ＭＩＳＲ回路Ｍ１は、選択保持回路としてセレクタＭＢ１１〜１３、ＭＳ１１〜１３、及びフリップフロップ回路Ｍ１１〜Ｍ１３を備える。
【００２７】
セレクタＭＢ１１は、演算回路Ｃ１からの圧縮データＣ１１とスキャンチェーンＣＨ１１からのスキャンデータＳ１１の一方を、モード制御信号ＭＢＳ１［０］に応じて選択し、セレクタＭＳ１１に出力する。セレクタＭＳ１１は、初期値データとセレクタＭＢ１１からの出力信号の一方を、シフト制御信号ＳＦＳ１［０］に応じて選択し、フリップフロップ回路Ｍ１１に出力する。
【００２８】
セレクタＭＢ１２は、演算回路Ｃ１からの圧縮データＣ１２とスキャンチェーンＣＨ１２からのスキャンデータＳ１２の一方を、モード制御信号ＭＢＳ１［１］に応じて選択し、セレクタＭＳ１２に出力する。セレクタＭＳ１２は、前段のフリップフロップ回路Ｍ１１からの出力信号とセレクタＭＢ１２からの出力信号の一方を、シフト制御信号ＳＦＳ１［１］に応じて選択し、フリップフロップ回路Ｍ１２に出力する。
【００２９】
セレクタＭＢ１３は、演算回路Ｃ１からの圧縮データＣ１３とスキャンチェーンＣＨ１３からのスキャンデータＳ１３の一方を、モード制御信号ＭＢＳ１［２］に応じて選択し、セレクタＭＳ１３に出力する。セレクタＭＳ１３は、前段のフリップフロップ回路Ｍ１２からの出力信号とセレクタＭＢ１３からの出力信号の一方を、シフト制御信号ＳＦＳ１［２］に応じて選択し、フリップフロップ回路Ｍ１３に出力する。
【００３０】
フリップフロップ回路Ｍ１１〜Ｍ１３は、図示しないクロック信号に応じて前段のセレクタで選択された信号（データ）を一時保持するとともに次段のセレクタ及び演算回路Ｃ１に出力する。詳細には、フリップフロップ回路Ｍ１１は、セレクタＭＳ１１からの出力データを一時保持し、圧縮データＭＦ１１として次段のセレクタＭＳ１２及び演算回路Ｃ１に出力する。フリップフロップ回路Ｍ１２は、セレクタＭＳ１２からの出力データを一時保持し、圧縮データＭＦ１２として次段のセレクタＭＳ１３及び演算回路Ｃ１に出力する。フリップフロップ回路Ｍ１３は、セレクタＭＳ１３からの出力データを一時保持し、圧縮データＭＦ１３として次段のセレクタＭＳ２１及び演算回路Ｃ１に出力する。ここで、ＭＩＳＲ回路Ｍ１における最終段のフリップフロップ回路Ｍ１３の出力信号（圧縮データＭＦ１３）は、演算回路Ｃ１と、次段のＭＩＳＲ回路Ｍ２における初段のセレクタＭＳ２１に入力されるとともに、テスト端子ＴＯ１から出力される。
【００３１】
ＭＩＳＲ回路Ｍ２は、選択保持回路としてセレクタＭＢ２１〜２３、ＭＳ２１〜２３、及びフリップフロップ回路Ｍ２１〜Ｍ２３を備える。
【００３２】
セレクタＭＢ２１は、演算回路Ｃ２からの圧縮データＣ２１とスキャンチェーンＣＨ２１からのスキャンデータＳ２１の一方を、モード制御信号ＭＢＳ２［０］に応じて選択し、セレクタＭＳ２１に出力する。セレクタＭＳ２１は、前段のＭＩＳＲ回路Ｍ１における最終段のフリップフロップ回路Ｍ１３からの出力信号とセレクタＭＢ２１からの出力信号の一方を、シフト制御信号ＳＦＳ２［０］に応じて選択し、フリップフロップ回路Ｍ２１に出力する。
【００３３】
セレクタＭＢ２２は、演算回路Ｃ２からの圧縮データＣ２２とスキャンチェーンＣＨ２２からのスキャンデータＳ２２の一方を、モード制御信号ＭＢＳ２［１］に応じて選択し、セレクタＭＳ２２に出力する。セレクタＭＳ２２は、前段のフリップフロップ回路Ｍ２１からの出力信号とセレクタＭＢ２２からの出力信号の一方を、シフト制御信号ＳＦＳ２［１］に応じて選択し、フリップフロップ回路Ｍ２２に出力する。
【００３４】
セレクタＭＢ２３は、演算回路Ｃ２からの圧縮データＣ２３とスキャンチェーンＣＨ２３からのスキャンデータＳ２３の一方を、モード制御信号ＭＢＳ２［２］に応じて選択し、セレクタＭＳ２３に出力する。セレクタＭＳ２３は、前段のフリップフロップ回路Ｍ２２からの出力信号とセレクタＭＢ２３からの出力信号の一方を、シフト制御信号ＳＦＳ２［２］に応じて選択し、フリップフロップ回路Ｍ２３に出力する。
【００３５】
フリップフロップ回路Ｍ２１〜Ｍ２３は、図示しないクロック信号に応じて前段のセレクタで選択された信号（データ）を一時保持するとともに次段のセレクタ及び演算回路Ｃ２に出力する。詳細には、フリップフロップ回路Ｍ２１は、セレクタＭＳ２１からの出力データを一時保持し、圧縮データＭＦ２１として次段のセレクタＭＳ２２及び演算回路Ｃ１に出力する。フリップフロップ回路Ｍ２２は、セレクタＭＳ２２からの出力データを一時保持し、圧縮データＭＦ２２として次段のセレクタＭＳ２３及び演算回路Ｃ２に出力する。フリップフロップ回路Ｍ２３は、セレクタＭＳ２３からの出力データを一時保持し、圧縮データＭＦ２３として次段のセレクタＭＳ３１及び演算回路Ｃ２に出力する。ここで、ＭＩＳＲ回路Ｍ２における最終段のフリップフロップ回路Ｍ２３の出力信号（圧縮データＭＦ２３）は、演算回路Ｃ３と、次段のＭＩＳＲ回路Ｍ３における初段のセレクタＭＳ３１に入力されるとともに、テスト端子ＴＯ２から出力される。
【００３６】
ＭＩＳＲ回路Ｍ３は、選択保持回路としてセレクタＭＢ３１〜３３、ＭＳ３１〜２３、及びフリップフロップ回路Ｍ３１〜Ｍ３３を備える。
【００３７】
セレクタＭＢ３１は、演算回路Ｃ３からの圧縮データＣ３１とスキャンチェーンＣＨ３１からのスキャンデータＳ３１の一方を、モード制御信号ＭＢＳ３［０］に応じて選択し、セレクタＭＳ３１に出力する。セレクタＭＳ３１は、前段のＭＩＳＲ回路Ｍ２における最終段のフリップフロップ回路Ｍ２３からの出力信号とセレクタＭＢ３１からの出力信号の一方を、シフト制御信号ＳＦＳ３［０］に応じて選択し、フリップフロップ回路Ｍ３１に出力する。
【００３８】
セレクタＭＢ３２は、演算回路Ｃ２からの圧縮データＣ３２とスキャンチェーンＣＨ３２からのスキャンデータＳ３２の一方を、モード制御信号ＭＢＳ３［１］に応じて選択し、セレクタＭＳ３２に出力する。セレクタＭＳ３２は、前段のフリップフロップ回路Ｍ３１からの出力信号とセレクタＭＢ３２からの出力信号の一方を、シフト制御信号ＳＦＳ３［１］に応じて選択し、フリップフロップ回路Ｍ３２に出力する。
【００３９】
セレクタＭＢ３３は、演算回路Ｃ３からの圧縮データＣ３３とスキャンチェーンＣＨ３３からのスキャンデータＳ３３の一方を、モード制御信号ＭＢＳ３［２］に応じて選択し、セレクタＭＳ３３に出力する。セレクタＭＳ３３は、前段のフリップフロップ回路Ｍ３２からの出力信号とセレクタＭＢ３３からの出力信号の一方を、シフト制御信号ＳＦＳ３［２］に応じて選択し、フリップフロップ回路Ｍ３３に出力する。
【００４０】
フリップフロップ回路Ｍ３１〜Ｍ３３は、図示しないクロック信号に応じて前段のセレクタで選択された信号（データ）を保持するとともに次段のセレクタに出力する。詳細には、フリップフロップ回路Ｍ３１は、セレクタＭＳ３１からの出力データを一時保持し、圧縮データＭＦ３１として次段のセレクタＭＳ３２及び演算回路Ｃ３に出力する。フリップフロップ回路Ｍ３２は、セレクタＭＳ３２からの出力データを一時保持し、圧縮データＭＦ３２として次段のセレクタＭＳ３３及び演算回路Ｃ３に出力する。フリップフロップ回路Ｍ３３は、セレクタＭＳ３３からの出力データを一時保持し、圧縮データＭＦ３３として次段（ここでは初段）のセレクタＭＳ１１及び演算回路Ｃ３に出力する。ここで、ＭＩＳＲ回路Ｍ３における最終段のフリップフロップ回路Ｍ３３の出力信号（圧縮データＭＦ３３）は、演算回路Ｃ３と、次段（ここでは初段）のＭＩＳＲ回路Ｍ１における初段のセレクタＭＳ１１に入力されるとともに、テスト端子ＴＯ３から出力される。
【００４１】
ここで、モード制御信号ＭＢＳ、ＭＢＳ１［２：０］、ＭＢＳ２［２：０］、ＭＢＳ３［２：０］は、図２Ｃに示すモード制御信号生成回路２によって生成される。モード制御信号ＭＢＳ、ＭＢＳ１［２：０］、ＭＢＳ２［２：０］、ＭＢＳ３［２：０］は、ＬｏｇｉｃＢＩＳＴにおいてテストモードの切り替えに利用される。詳細には、モード制御信号ＭＢＳは、ＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３を１つのＭＩＳＲ回路として使用して、全てのスキャンチェーンの出力（スキャンデータ）を圧縮する第１モードと、ＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３をそれぞれ個別のＭＩＳＲ回路として使用して、スキャンチェーン群Ｆ１、Ｆ２、Ｆ３のそれぞれの出力（スキャンデータ）を圧縮する第２モードとを切り替える。
【００４２】
第１モードでは、セレクタＭＢ１は、演算回路Ｃ３からのキャリーアウト信号ＦＣＭ３をキャリーイン信号ＭＣ０として選択し、セレクタＭＢ２は、演算回路Ｃ１からのキャリーアウト信号ＣＭ１をキャリーイン信号ＭＣ１として選択し、セレクタＭＢ３は、演算回路Ｃ２からのキャリーアウト信号ＣＭ２をキャリーイン信号ＭＣ３として選択する。一方、第２モードでは、演算回路Ｃ１からのキャリーアウト信号ＦＣＭ１をキャリーイン信号ＭＣ０として選択し、セレクタＭＢ２は、演算回路Ｃ２からのキャリーアウト信号ＦＣＭ２をキャリーイン信号ＭＣ１として選択し、セレクタＭＢ３は、演算回路Ｃ３からのキャリーアウト信号ＦＣＭ３をキャリーイン信号ＭＣ２として選択する。
【００４３】
又、モード制御信号ＭＢＳ１［２：０］、ＭＢＳ２［２：０］、ＭＢＳ３［２：０］は、演算装置Ｃ１〜Ｃ３による圧縮データを解析対象信号としてテスト端子ＴＯ１〜ＴＯ３から出力する圧縮データテストモードと、スキャンチェーンＣＨ１１〜ＣＨ１３、ＣＨ２１〜ＣＨ２３、ＣＨ３１〜ＣＨ３３からの出力信号を解析対象信号としてテスト端子ＴＯ１〜ＴＯ３から出力するスキャンテストモードとを切り替える。圧縮データテストモードでは、セレクタＭＢ１１〜ＭＢ１３、ＭＢ２１〜ＭＢ２３、ＭＢ３１〜ＭＢ３３は、圧縮データＣ１１〜Ｃ１３、Ｃ２１〜Ｃ２３、Ｃ３１〜Ｃ３３を選択出力する。一方、スキャンテストモードでは、セレクタＭＢ１１〜ＭＢ１３、ＭＢ２１〜ＭＢ２３、ＭＢ３１〜ＭＢ３３は、スキャンチェーンからそれぞれに入力される出力信号（スキャンデータ）を選択出力する。
【００４４】
セレクタＭＢ１１〜ＭＢ１３、ＭＢ２１〜ＭＢ２３、ＭＢ３１〜ＭＢ３３に入力されるスキャンデータは、ＬｏｇｉｃＢＩＳＴにおいて解析対象となるスキャンチェーン群の出力（スキャンデータ）がテスト端子ＴＯ１〜ＴＯ３からパラレル出力されるように設定されることが好ましい。例えば、図２Ａ及び図２Ｂに示す一例では、セレクタＭＢ１１〜ＭＢ１３には、スキャンチェーン群Ｆ１〜Ｆ３のそれぞれの１列目のスキャンチェーンＣＨ１１、ＣＨ２１、ＣＨ３１からのスキャンデータＳ１１、Ｓ２１、Ｓ３１が入力される。又、セレクタＭＢ２１〜ＭＢ２３には、スキャンチェーン群Ｆ１〜Ｆ３のそれぞれの２列目のスキャンチェーンＣＨ１２、ＣＨ２２、ＣＨ３２からのスキャンデータＳ１２、Ｓ２２、Ｓ３２が入力される。更にセレクタＭＢ３１〜ＭＢ３３には、スキャンチェーン群Ｆ１〜Ｆ３のそれぞれの３列目のスキャンチェーンＣＨ１３、ＣＨ２３、ＣＨ３３からのスキャンデータＳ１３、Ｓ２３、Ｓ３３が入力される。これにより、スキャンテストモードの際、スキャンチェーン群Ｆ１〜Ｆ３から選択されたスキャンチェーン群からの出力は、ＭＩＳＲ回路Ｍ１〜Ｍ３のそれぞれのテスト端子ＴＯ１〜ＴＯ３からパラレル出力されることとなる。スキャンデータを複数の端子からパラレル出力することで、テスト時間を短縮することができる。
【００４５】
シフト制御信号ＳＦＳ１［２：０］、ＳＦＳ２［２：０］、ＳＦＳ３［２：０］は、図２Ｃに示すシフト制御信号生成回路３によって生成される。シフト制御信号ＳＦＳ１［２：０］、ＳＦＳ２［２：０］、ＳＦＳ３［２：０］は、フリップフロップＭ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３のそれぞれの前段セレクタを制御し、それぞれが取り込むデータを決定する。又、シフト制御信号ＳＦＳ１［２：０］、ＳＦＳ２［２：０］、ＳＦＳ３［２：０］によって、フリップフロップ回路Ｍ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ２１〜Ｍ２３の間の接続が制御される。これにより、フリップフロップＭ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３は所定の大きさのシフトレジスタとして機能する。例えば、フリップフロップＭ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３が、一連のシフトレジスタとして機能する。あるいは、フリップフロップＭ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３のそれぞれが、ＭＩＳＥＲ回路毎のシフトレジスタとして機能する。更には、選択された一部のフリップフロップ回路がテスト端子毎のシフトレジスタとして機能する。
【００４６】
（不良解析方法）
図２Ａ及び図２Ｂ、図４から図７、図１１、及び図１３を参照して、本発明によるＬｏｇｉｃＢＩＳＴにおける不良解析方法を説明する。図４は、本発明によるＬｏｇｉｃＢＩＳＴにおける不良解析方法を示すフロー図である。以下では、図２Ａ及び図２Ｂに示す半導体集積回路の不良を検出するための不良解析を一例として不良解析方法の詳細を説明する。
【００４７】
本発明による不良解析では、半導体集積回路の不良の有無を判定するための全スキャンチェーンテスト（ステップＳ１０４、Ｓ１０５）、不良スキャンチェーン群を特定するための不良スキャンチェーン群絞り込みテスト（ステップＳ１０６）、不良スキャンチェーンを特定するための不良スキャンチェーン絞り込みテスト（Ｓ１０７〜Ｓ１０９）、及び不良箇所の特定（ステップＳ１１０）が行われる。
【００４８】
先ず、不良解析に先立ち、図１０に示す半導体集積回路設計支援装置１０（以下、設計支援装置１０と称す）は、擬似ランダムパタン生成器１に入力する初期値と、図示しないテスタに記憶させる期待値（テストパタン）を作成する（ステップＳ１０１〜Ｓ１０３）。ここで、設計支援装置１０は、図１３に示すフローチャートに従い、全スキャンチェーンテストで使用するテストパタン（全ＭＩＳＲテストパタン４０１）、不良スキャンチェーン群絞り込みテストで使用するテストパタン（分割ＭＩＳＲテストパタン４０２）、及び不良スキャンチェーン絞り込みテストで使用するテストパタン（ＳＣＡＮテストパタン４０３）を作成する（ステップＳ１０１〜Ｓ１０３）。全ＭＩＳＲテストパタン４０１、分割ＭＩＳＲテストパタン４０２、及びＳＣＡＮテストパタン４０３の生成方法については後述する。
【００４９】
本発明によるＬｏｇｉｃＢＩＳＴでは、最初に全スキャンチェーンテストが行われる（ステップＳ１０４）。ここでは、全ＭＩＳＲ回路によるＬｏｇｉｃＢＩＳＴが行われる。詳細には、擬似ランダムパタン生成器１は、ステップＳ１０１において作成された初期値に応じたテストパタンデータを全てのスキャンチェーンに入力する。この際、半導体集積回路は、全てのＭＩＳＲ回路を１つのＭＩＳＲ回路として利用する第１モードに設定されるとともに、ＭＩＳＲ回路における圧縮データを解析対象とする圧縮データテストモードに設定される。
【００５０】
図２Ａ及び図２Ｂに示す一例では、全てのスキャンチェーンＣＨ１１〜ＣＨ１３、ＣＨ２１〜ＣＨ２３、ＣＨ３１〜ＣＨ３３にテストパタンデータＰ１１〜Ｐ１３、Ｐ２１〜Ｐ２３、Ｐ３１〜Ｐ３３が入力される。この際、半導体集積回路は、第１モード及び圧縮データテストモードに設定されることで、ＭＩＳＲ回路Ｍ１〜Ｍ３が１つのＭＩＳＲ回路として機能し、全てのスキャンチェーンからのスキャンデータＳ１１〜Ｓ１３、Ｓ２１〜Ｓ２３、Ｓ３１〜Ｓ３３の圧縮結果がフリップフロップ回路Ｍ３３〜Ｍ３１、Ｍ２３〜Ｍ２１、Ｍ１３〜Ｍ１１に格納される。続いて、セレクタＭＳ１１〜ＭＳ１３、ＭＳ２１〜ＭＳ２３、ＭＳ３１〜ＭＳ３３、及びフリップフロップ回路Ｍ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３は、シフト制御信号ＳＦＳ１〜ＳＦＳ３に応じて、一連のシフトレジスタとして機能する。これにより、図５に示すように、テスト端子ＴＯ３から、フリップフロップ回路Ｍ３３〜Ｍ３１、Ｍ２３〜Ｍ２１、Ｍ１３〜Ｍ１１に格納された圧縮結果が順に出力されることとなる。
【００５１】
図５は、本発明によるＬｏｇｉｃＢＩＳＴ（全スキャンチェーンテスト）における半導体集積回路の動作の一例を示すタイミングチャートである。図５を参照して、本発明による全スキャンチェーンテストの動作を説明する。ここでは、テスト開始時の時刻をＴ０とし、擬似ランダムパタン生成器１から入力されたテストパタンデータがスキャンチェーン群を経由し、ＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３による一連の圧縮演算が終了する時刻をＴＭ−１とする。全スキャンチェーンテストの期間中、ローレベルのモード制御信号ＭＢＳが入力されることにより、セレクタＭＢ１、ＭＢ２、ＭＢ３は、キャリーアウト信号ＦＣＭ３、ＣＭ１、ＣＭ２をキャリーイン信号ＣＭ０、ＣＭ１、ＣＭ２として選択出力する。これにより、全スキャンチェーンテストの期間中、演算回路Ｃ１、Ｃ２、Ｃ３は１つの圧縮回路として機能する（第１モード）。
【００５２】
時刻Ｔ０から時刻ＴＭ−１までの期間、“０００ｂ”のモード制御信号ＭＢＳ１［２：０］、ＭＢＳ２［２：０］、ＭＢＳ３［２：０］が入力され、“１１１ｂ”のシフト制御信号ＳＦＳ１［２：０］、ＳＦＳ２［２：０］、ＳＦＳ３［２：０］が入力される。これにより、演算回路Ｃ１からの圧縮データＣ１１〜Ｃ１３は、対応するフリップフロップ回路ＭＦ１１〜ＭＦ１３に保持され、演算回路Ｃ２からの圧縮データＣ２１〜Ｃ２３は、対応するフリップフロップ回路ＭＦ２１〜ＭＦ２３に保持され、演算回路Ｃ３からの圧縮データＣ３１〜Ｃ３３は、対応するフリップフロップ回路ＭＦ３１〜ＭＦ３３に保持される。この間、テスト端子ＴＯ１〜ＴＯ３から出力されるデータ値はドントケアとして不良判定には利用されない。
【００５３】
時刻ＴＭ以降は、ＬｏｇｉｃＢＩＳＴ機能による動作確認期間となり、ＭＩＳＲ回路による一連の圧縮結果がテスト端子ＴＯ３から出力され始める。詳細には、時刻ＴＭにおいて、シフト制御信号ＳＦＳ１［２：０］が“００１ｂ”、シフト制御信号ＳＦＳ２［２：０］、ＳＦＳ３［２：０］が“０００ｂ”に変更される。これにより、フリップフロップ回路Ｍ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３は、一連のシフトレジスタとして機能する。時刻ＴＭまでにフリップフロップ回路Ｍ１１〜Ｍ１３、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３のそれぞれに保持された圧縮データは、クロック信号ＣＬＫに応じて次段のフリップフロップ回路にシフトする。この結果、テスト端子ＴＯ３からは、時刻ＴＭ＋１以降、フリップフロップ回路Ｍ３３〜Ｍ３１、Ｍ２３〜Ｍ２１、Ｍ１３〜Ｍ１１に格納された圧縮データが、クロック信号ＣＬＫに応じて順に出力される。
【００５４】
図示しないテスタは、ＭＩＳＲ回路の最終段から出力された圧縮結果と、期待値とを比較し、良／不良の判定を行う（ステップＳ１０５）。図２Ａ、図２Ｂ及び図５に示す一例では、時刻ＴＭ以降にテスト端子ＴＯ３から出力された圧縮結果と期待値（全ＭＩＳＥＲテストパタン４０１）とを比較することで、不良の有無が判定される。この際、他のテスト端子ＴＯ１、ＴＯ２からの出力信号はドントケアとして不良判定には利用されない。
【００５５】
ステップＳ１０５における不良判定において、ＭＩＳＲ回路による圧縮結果と期待値（全ＭＩＳＥＲテストパタン４０１）とが全て一致する場合、良品と判定され、半導体集積回路に対する不良解析を終了する。一方、期待値（全ＭＩＳＥＲテストパタン４０１）に対して不一致となる圧縮結果がある場合、不良品と判定され、次の不良スキャンチェーン絞り込みテストに移行する（ステップＳ１０６）。
【００５６】
例えば、スキャンチェーンＣＨ２２のフリップフロップ回路Ｆ２２４に故障がある場合、擬似ランダムパタン生成器１から供給されたテストパタンデータＰ２２に従ってスキャンチェーンが動作するが、フリップフロップ回路Ｆ２２４による誤動作によりスキャンデータＳ２２はエラー値を含むこととなる。ＭＩＳＲ回路Ｍ２の演算回路Ｃ２は、当該スキャンデータＳ２２に対して圧縮演算を行なう為、故障したフリップフロップ回路Ｆ２２４の影響を受け誤動作する。更に、ＭＩＳＲ回路Ｍ２の演算結果であるキャリーアウト信号ＣＭ２を受けてＭＩＳＲ回路Ｍ１の演算回路Ｃ１、及びＭＩＳＲ回路Ｍ３の演算回路Ｃ３が圧縮演算を行なう為、演算回路Ｃ１、Ｃ２、Ｃ３の全てによって構成されるＭＩＳＲ回路の全体がその影響を受け誤動作することになる。この場合、テスト端子ＴＯ３から期待値と異なる圧縮結果が出力されることになり、不良品を検出することができる。
【００５７】
次に、ステップＳ１０６における不良スキャンチェーン群絞り込みテストを説明する。ここでは、分割ＭＩＳＲ回路によるＬｏｇｉｃＢＩＳＴが行われる。詳細には、擬似ランダムパタン生成器１は、ステップＳ１０２において作成された初期値に応じたテストパタンデータを全てのスキャンチェーンに入力する。この際、半導体集積回路は、第２モードに設定されるとともに、ＭＩＳＲ回路における圧縮データを解析対象とする圧縮データテストモードに設定される。これにより、ステップＳ１０４においてテストされたＭＩＳＲ回路は、複数のＭＩＳＲ回路に分割され、複数のスキャンチェーン群の出力群を個別に圧縮演算して不良検証を行うことが可能となる。ステップＳ１０６における不良検証結果は分割ＭＩＳＲテストＦＡＩＬデータ３０１として図示しないテスタの記憶装置に記録される。
【００５８】
図２Ａ及び図２Ｂに示す一例では、全てのスキャンチェーンＣＨ１１〜ＣＨ１３、ＣＨ２１〜ＣＨ２３、ＣＨ３１〜ＣＨ３３にテストパタンデータＰ１１〜Ｐ１３、Ｐ２１〜Ｐ２３、Ｐ３１〜Ｐ３３が入力される。この際、半導体集積回路は、第２モード及び圧縮データテストモードに設定されることで、ＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３が個別のＭＩＳＲ回路として機能し、スキャンチェーン群Ｆ１、Ｆ２、Ｆ３のそれぞれの出力信号を個別に圧縮する。それぞれの圧縮結果は、それぞれに搭載されるフリップフロップ回路Ｍ１１〜Ｍ１３、回路Ｍ２１〜Ｍ２３、回路Ｍ３１〜Ｍ３３に取り込まれる。又、セレクタＭＳ１１〜ＭＳ１３及びフリップフロップ回路Ｍ１１〜Ｍ１３は、シフト制御信号ＳＦＳ１に応じて１つのシフトレジスタとして機能し、セレクタＭＳ２１〜ＭＳ２３及びフリップフロップ回路Ｍ２１〜Ｍ２３は、シフト制御信号ＳＦＳ２に応じて１つのシフトレジスタとして機能し、セレクタＭＳ３１〜ＭＳ３３及びフリップフロップ回路Ｍ３１〜Ｍ３３は、シフト制御信号ＳＦＳ３に応じて１つのシフトレジスタとして機能する。これにより、図６に示すように、テスト端子ＴＯ１から、フリップフロップ回路Ｍ１３〜Ｍ１１に格納された圧縮結果が順に出力され、テスト端子ＴＯ２から、フリップフロップ回路Ｍ２３〜Ｍ２１に格納された圧縮結果が順に出力され、テスト端子ＴＯ３から、フリップフロップ回路Ｍ３３〜Ｍ３１に格納された圧縮結果が順に出力されることとなる。
【００５９】
図６は、本発明によるＬｏｇｉｃＢＩＳＴ（不良スキャンチェーン群絞り込みテスト）における半導体集積回路の動作の一例を示すタイミングチャートである。図７を参照して、本発明による不良スキャンチェーン群絞り込みテストの動作を説明する。ここでは、テスト開始時の時刻をＴ０とし、擬似ランダムパタン生成器１から入力されたテストパタンデータがスキャンチェーン群を経由し、ＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３のそれぞれにおける個別の圧縮演算が終了する時刻をＴＭ−１とする。不良スキャンチェーン群絞り込みテストの期間中、ハイレベルのモード制御信号ＭＢＳが入力されることにより、セレクタＭＢ１、ＭＢ２、ＭＢ３は、キャリーアウト信号ＦＣＭ１、ＦＣＭ２、ＦＣＭ３をキャリーイン信号ＣＭ０、ＣＭ１、ＣＭ２として選択出力する。これにより、不良スキャンチェーン群絞り込みテストの期間中、演算回路Ｃ１、Ｃ２、Ｃ３はそれぞれ個別の圧縮回路として機能する（第２モード）。
【００６０】
時刻Ｔ０から時刻ＴＭ−１までの期間、“０００ｂ”のモード制御信号ＭＢＳ１［２：０］、ＭＢＳ２［２：０］、ＭＢＳ３［２：０］が入力され、“１１１ｂ”のシフト制御信号ＳＦＳ１［２：０］、ＳＦＳ２［２：０］、ＳＦＳ３［２：０］が入力される。これにより、演算回路Ｃ１からの圧縮データＣ１１〜Ｃ１３は、対応するフリップフロップ回路ＭＦ１１〜ＭＦ１３に保持され、演算回路Ｃ２からの圧縮データＣ２１〜Ｃ２３は、対応するフリップフロップ回路ＭＦ２１〜ＭＦ２３に保持され、演算回路Ｃ３からの圧縮データＣ３１〜Ｃ３３は、対応するフリップフロップ回路ＭＦ３１〜ＭＦ３３に保持される。この間、テスト端子ＴＯ１〜ＴＯ３から出力されるデータ値はドントケアとして不良判定には利用されない。
【００６１】
時刻ＴＭ以降は、ＬｏｇｉｃＢＩＳＴ機能による動作確認期間となりＭＩＳＲ回路Ｍ１〜Ｍ３のそれぞれによる圧縮結果が、テスト端子ＴＯ１〜ＴＯ３のそれぞれから出力され始める。詳細には、時刻ＴＭにおいて、シフト制御信号ＳＦＳ１［２：０］が“００１ｂ”に変更される。これにより、フリップフロップ回路Ｍ１１〜Ｍ１３はシフトレジスタとして機能する。時刻ＴＭまでにフリップフロップ回路Ｍ３１〜Ｍ１１に保持された圧縮データは、クロック信号に応じて次段のフリップフロップ回路にシフトする。この結果、テスト端子ＴＯ１からは、時刻ＴＭ＋１以降、フリップフロップ回路Ｍ１３〜Ｍ１１に格納された圧縮データが、クロック信号ＣＬＫに応じて順に出力される。同様に、時刻ＴＭ＋１以降、テスト端子ＴＯ２からは、フリップフロップ回路Ｍ２３〜Ｍ２１に格納された圧縮データが、クロック信号ＣＬＫに応じて順に出力され、テスト端子ＴＯ３からは、フリップフロップ回路Ｍ３３〜Ｍ３１に格納された圧縮データが、クロック信号ＣＬＫに応じて順に出力される。
【００６２】
テスト端子ＴＯ１、ＴＯ２、ＴＯ３へ出力された結果は、図示しないテスタ等で期待値（分割ＭＩＳＲテストパタン４０２）と照合され、不良の有無が検証される。この照合結果、又は不良と判定された圧縮結果データは、分割ＭＩＳＲテストＦＡＩＬデータ３０１として記録される。ここで、圧縮結果を出力するＭＩＳＲ回路又はテスト端子は、解析対象のスキャンチェーン群に対応しているため、圧縮結果を検証することにより、不良箇所を含むスキャンチェーン群を特定することができる。このため、分割ＭＩＳＲテストＦＡＩＬデータ３０１には、不良スキャンチェーン群を特定する情報が記録されることが好ましい。
【００６３】
例えば、スキャンチェーンＣＨ２２のフリップフロップ回路Ｆ２２４に故障がある場合、擬似ランダムパタン生成器１から供給されたテストパタンデータＰ２２に従ってスキャンチェーンが動作するが、フリップフロップ回路Ｆ２２４による誤動作によりスキャンデータＳ２２はエラー値を含むこととなる。ＭＩＳＲ回路Ｍ２の演算回路Ｃ２は、当該スキャンデータＳ２２に対して圧縮演算を行なう為、故障したフリップフロップ回路Ｆ２２４の影響を受け誤動作する。この場合、テスト端子ＴＯ２から期待値と異なる圧縮結果が出力されることになり、スキャンチェーン群Ｆ２に不良箇所があることを検出できる。この際、他のＭＩＳＲ回路Ｍ１、Ｍ３はそれぞれ個別にスキャンチェーン群Ｆ１、Ｆ３の出力を圧縮しているため、テスト端子ＴＯ１、ＴＯ３に出力される圧縮結果は期待値と一致する。従って、本テストによって、スキャンチェーン群Ｆ２に不良箇所があることを特定することができる。
【００６４】
以上のように、本テストによれば、独立した個々のＭＩＳＲ回路でデータ圧縮した結果を期待値と照合することで、どのスキャンチェーン群に故障があるのかを絞込むことが可能となる。以下、不良箇所を含むと判定されたスキャンチェーン群を不良スキャンチェーン群と称して説明する。
【００６５】
不良スキャンチェーン群絞り込みテストの完了後、不良スキャンチェーン絞り込みテストが行われる。ここでは、解析に用いるテストパタンの選択（ステップＳ１０７）、及びスキャンチェーン毎の出力信号を解析対象とするスキャン部テスト（ステップＳ１０８）が、不良スキャンチェーン群に対して行われる。詳細には、ステップＳ１０７において、図示しないテスタは、テスト分割ＭＩＳＲテストＦＡＩＬデータ３０１を解析することで、テスト対象とする不良スキャンチェーン群を特定し、当該不良スキャンチェーン群をテストするためのＳＣＡＮテストパタン４０３を決定する（ステップＳ１０７）。ここで、不良スキャンチェーン群が複数ある場合、その中からテスト対象とする不良スキャンチェーンが選択されるとともに、当該不良スキャンチェーンに対するＳＣＡＮテストパタン４０３が選択される。ここでは、ステップＳ１０３において作成されたＳＣＡＮテストパタンデータの中から選択される。
【００６６】
次に、擬似ランダムパタン生成器１は、初期値に応じたテストパタンデータを不良スキャンチェーン群に対して入力し、スキャン部テストを実行する。この際、半導体集積回路は、スキャンテストモードに設定される。これにより、スキャンチェーン群からの出力信号が圧縮されずにテスト端子から出力される。図示しないテスタは、テスト端子から出力された各スキャンチェーンの信号と期待値（ＳＣＡＮテストパタン４０３）との一致判定を行うことで、不良箇所を有するスキャンチェーンを特定する。不良検証結果はＳＣＡＮ部テストＦＡＩＬデータ３０２として図示しないテスタの記憶装置に記録される。ＳＣＡＮ部テストＦＡＩＬデータ３０２には、不良スキャンチェーンを特定する情報とともに、当該不良スキャンチェーンから出力された全データが記録されることが好ましい。
【００６７】
ステップＳ１０７、Ｓ１０８における不良スキャンチェーン絞り込みテストは、ステップＳ１０６において不良箇所があると判定された全ての不良スキャンチェーン群に対して行われる（ステップＳ１０９、Ｓ１０７、Ｓ１０８）。ここで、全ての不良スキャンチェーン群に対する不良チェーン絞り込みテストが完了すると、続いて、図示しないテスタにおいて不良箇所を特定するための不良箇所解析が行われる（ステップＳ１１０）。ここでは、ＳＣＡＮ部テストＦＡＩＬデータ３０２を解析することで、不良スキャンチェーン内において故障しているフリップフロップ回路が特定される。
【００６８】
ステップＳ１０６において不良スキャンチェーン群としてスキャンチェーン群Ｆ２が特定された場合の不良スキャンチェーン絞り込みテスト及び不良箇所解析の動作を、図２Ａ、図２Ｂ及び図７を参照して説明する。先ず、不良スキャンチェーンＦ２内のスキャンチェーンＣＨ２１〜ＣＨ２３にテストパタンデータＰ２１〜Ｐ２３が入力される。ここでは、テスト開始時の時刻をＴ０とし、擬似ランダムパタン生成器１から入力されたテストパタンデータが不良スキャンチェーン群を経由し、ＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３に出力される時刻をＴＭ−１とする。全スキャンチェーンテストの期間中、モード制御信号ＭＢＳの信号レベルはハイレベル又はローレベルのどちらに設定されていても良い。ここでは、ローレベルのモード制御信号ＭＢＳが入力される。
【００６９】
時刻Ｔ０から時刻ＴＭ−１までの期間、検証対象のスキャンチェーン群Ｆ２に接続されたセレクタＭＢ１２、ＭＢ２２、ＭＢ３２には、“１”のモード制御信号ＭＢＳ１［１］、ＭＢＳ２［１］、ＭＢＳ３［１］が入力され、セレクタＭＳ１２、ＭＳ２２、ＭＳ３２には“１”のシフト制御信号ＳＦＳ１［１］、ＳＦＳ２［１］、ＳＦＳ３［１］が入力される。これにより、少なくともスキャンデータＳ２１、Ｓ２２、Ｓ２３が、フリップフロップＭ１２、Ｍ２２、Ｍ２３に保持されることとなる。この間、他のモード制御信号ＭＢＳ１〜ＭＢＳ３やシフト制御信号ＳＦＳ１〜ＳＦＳ３は、任意の値が設定される。例えば、  時刻Ｔ０から時刻ＴＭ−１までの期間、“０１０ｂ”のモード制御信号ＭＢＳ１［２：０］、ＭＢＳ２［２：０］、ＭＢＳ３［２：０］が入力され、“１１１ｂ”のシフト制御信号ＳＦＳ１［２：０］、ＳＦＳ２［２：０］、ＳＦＳ３［２：０］が入力される。これにより、セレクタＭＢ１２、ＭＢ２２、ＭＢ３２のみがスキャンデータＳ１２、Ｓ２２、Ｓ３２を選択出力し、他のセレクタは圧縮データを選択出力する。この結果、フリップフロップ回路Ｍ１２、Ｍ２２、Ｍ１３は、対応して入力されるスキャンデータＳ２１、Ｓ２２、Ｓ２３を保持し、他のフリップフロップ回路は、対応して入力される圧縮データを保持することとなる。この間、テスト端子ＴＯ１〜ＴＯ３から出力されるデータ値はドントケアとして不良判定には利用されない。
【００７０】
時刻ＴＭ＋１以降は、ＬｏｇｉｃＢＩＳＴ機能による動作確認期間となり、不良スキャンチェーン群を介したスキャンデータがテスト端子ＴＯ１〜ＴＯ３から出力され始める。詳細には、時刻ＴＭにおいて、シフト制御信号ＳＦＳ１［２：０］が“０１０ｂ”、シフト制御信号ＳＦＳ２［２：０］、ＳＦＳ３［２：０］が“０１０ｂ”に変更される。これにより、フリップフロップ回路Ｍ１２〜Ｍ１３は、スキャンデータＳ２１が入力され、テスト端子ＴＯ１を出力とするシフトレジスタとして機能する。
【００７１】
時刻ＴＭ−１までにフリップフロップ回路Ｍ１３に保持された圧縮データは、時刻ＴＭにおいてテスト端子ＴＯ１から出力される。このとき、時刻ＴＭ−１までにフリップフロップ回路Ｍ１２に保持されたスキャンデータＳ２１（フリップフロップ回路Ｆ２１７からの出力データ）が、フリップフロップ回路Ｍ１３にシフトするとともに、フリップフロップＭ１２は、次のスキャンデータＳ２１（フリップフロップ回路Ｆ２１７からの出力データ）を保持する。時刻ＴＭ＋１以降、クロック信号ＣＬＫに応じてスキャンデータＳ２１がフリップフロップ回路Ｍ１３、Ｍ１２をシフトしてテスト端子ＴＯ１から順に出力される。すなわち、時刻ＴＭ＋１以降、テストパタンデータＰ２２に応じてフリップフロップ回路Ｆ２１７〜Ｆ２２１Ｆに保持されたスキャンデータＳ２１が、出力端子ＴＯ１から順に出力されることとなる。同様に、時刻ＴＭ＋１以降、テスト端子ＴＯ２からは、フリップフロップ回路Ｆ２２７〜Ｆ２２１に保持されたスキャンデータＳ２２が、クロック信号ＣＬＫに応じて順に出力され、テスト端子ＴＯ３からは、フリップフロップ回路Ｆ２３７〜Ｍ２３１に保持されたスキャンデータＳ３２が、クロック信号ＣＬＫに応じて順に出力される。
【００７２】
テスト端子ＴＯ１、ＴＯ２、ＴＯ３へ出力された信号は、図示しないテスタ等で期待値（ＳＣＡＮテストパタン４０３）と照合され、不良箇所が特定される。ここでは、スキャンチェーン群Ｆ２が不良検証対象となっているため、スキャンデータＳ２１〜Ｓ２３についてのみ検証され、その他はドントケアとして検証対象とはならない。
【００７３】
不良解析の結果、不良と判定された出力信号に応じて、不良箇所（不良フリップフロップ回路）が特定される。特定された不良箇所に関する情報は、図示しないテスタの記憶装置に記録される。
【００７４】
例えば、スキャンチェーンＣＨ２２のフリップフロップ回路Ｆ２２６に故障がある場合、擬似ランダムパタン生成器１から供給されたテストパタンデータＰ２２に従ってスキャンチェーンが動作するが、フリップフロップ回路Ｆ２２６による誤動作によりスキャンデータＳ２２はエラー値を含むこととなる。この場合、時刻ＴＭ＋２においてテスト端子ＴＯ２から期待値と異なる出力信号が出力されることになり、スキャンチェーンＣＨ２２のシフト順を解析することで、フリップフロップ回路Ｆ２２６に不良箇所があることを特定することができる。
【００７５】
以上のように、本テストによれば、独立した個々のＭＩＳＲ回路でデータ圧縮した結果を期待値と照合することで、どのスキャンチェーン群に故障があるのかを絞込むことが可能となる。
【００７６】
本発明では、データの圧縮を行なわないテストにおいて、不一致が生じたタイミング（パターン数）を判定することにより、スキャンチェーン内のどのフリップフロップ回路が故障かを判別することができる。スキャンデータに対して圧縮演算を行わないでテストを行う場合、テスト対象となるスキャンチェーンの数に応じてテスト時間は増大する。しかし、本発明では、複数のスキャンチェーンを束ねたスキャンチェーン群毎のスキャンデータの圧縮結果を解析することで不良箇所の絞り込みを行うことで、圧縮演算を行わないスキャンデータによるテストにおいて検証対象となるスキャンチェーンの数を事前に削減している。これにより、解析データ数やテストパタン数は削減され、不良箇所の特定するためのテストが容易化されるとともに、その時間（解析ＴＡＴ）は短縮される。
【００７７】
又、本発明では、半導体集積回路の不良を発見するまでは、半導体集積回路における全てのスキャンチェーンからの出力信号の圧縮結果を解析することで半導体集積回路の不良判定を行っている。このように、本願発明では、半導体集積回路の不良を発見するまではスキャンデータの解析を行う必要がなく、不良箇所を特定するときのみ、特定のスキャンチェーン群に対してスキャンデータの解析を行っている。このため、ＬｏｇｉｃＢＩＳＴの解析ＴＡＴを短縮することが可能となる。
【００７８】
図４のステップＳ１０４における全ＭＩＳＲでのＬｏｇｉｃＢＩＳＴでは、例えば図５に示すタイミングチャートのように、テスト端子ＴＯ３からの圧縮出力の解析により、半導体集積回路の良否判定を行っていたが、これに限らない。例えば、テスト端子ＴＯ３のみならず、他のテスト端子ＴＯ１、ＴＯ２から出力された圧縮出力とそれぞれの期待値とを照合することで良否判定を行っても良い。この場合、テスト端子ＴＯ１〜ＴＯ３からは、図６に示すような圧縮データがパラレル出力されるため、テスト時間を更に短縮することができる。
【００７９】
又、図４に示す一例では、不良解析を開始する前にＳＣＡＮテストパタン４０３を作成していたがこれに限らず、ステップＳ１０６における不良スキャンチェーン群の絞り込みの後に作成してもよい。この場合、不必要なパタンを作成する必要がないため、テストパタンの作成時間を削除することができる。
【００８０】
更に、分割したＭＩＳＲ回路のテスト端子からの出力を、セレクタ等を用いて選択して出力させることでテスト端子数の削減も可能である。例えば、図２Ｂに示すテスト端子ＴＯ１〜ＴＯ３からの出力信号のいずれかを選択して１つの出力端子に出力するセレクタを設けることで、テスト端子を１つとすることができる。
【００８１】
図２Ａ及び図２Ｂに示す一例では、スキャンチェーン群Ｆ１〜Ｆ３のそれぞれにおけるスキャンチェーンの数と、分割されたＭＩＳＲ回路Ｍ１〜Ｍ３の数（テスト端子ＴＯ１〜ＴＯ３の数）は同数であったが、下記（１）〜（４）に示す条件に従えばこれに限らない。
【００８２】
（１）ＭＩＳＲ回路の分割数“ｍ”は、テスト端子数“ｎ”以下に設定される（ｍ≦ｎ）。
（２）スキャンチェーン群数“ｅ”とＭＩＳＲ回路の分割数“ｍ”は同数に設定される（ｅ＝ｍ）。
（３）スキャンチェーン群内のスキャンチェーンの数“ｈ”は、全てのスキャンチェーンの数“ａ”をスキャンチェーン群数“ｅ”で除したときの商“［ａ／ｅ］”に設定される（［  ］はガウス記号）。ただし、除算の結果、剰余“ｒ”がある場合、ｒ個のスキャンチェーン群のそれぞれのスキャンチェーン数“ｈ”は、商“［ａ／ｅ］”に１を加算した数“［ａ／ｅ］＋１”が設定され、他のスキャンチェーン群内のスキャンチェーン数“ｈ”は、“ｈ＝［ａ／ｅ］”が設定される。
（４）分割ＭＩＳＲ回路内においてデータを保持するフリップフロップ数（シフトレジスタの段数）“ｋ”は、スキャンチェーン群内のスキャンチェーン数“ｈ”と同数に設定される。
【００８３】
例えば、ＭＩＳＲ回路の分割数“ｍ”及びスキャンチェーン群数“ｅ”が２、端子の数“ｎ”が２、スキャンチェーン群内のスキャンチェーン数“ｈ”及び分割ＭＩＳＲ回路内のフリップフロップ数“ｋ”が３の場合、半導体集積回路は図８Ａのような構成となる。この場合、図２Ａ及び図２Ｂと同様な動作により、半導体集積回路の不良有無、不良スキャンチェーン群の特定、及び、不良フリップフロップ回路の特定を行うことができる。ここでは、不良スキャンチェーン群絞り込みテストにおけるＭＩＳＲ回路の分割数は２つであり、分割されたＭＩＳＲ回路Ｍ１、Ｍ２に保持されたデータは、それぞれに対応するテスト端子ＴＯ１、ＴＯ２から出力される。このため、図８Ｂに示すように、モード制御信号生成回路２は、３つのセレクタＭＢ１１〜ＭＢ１３を有するＭＩＳＲ回路Ｍ１用のモード制御信号ＭＢＳ１［２：０］と、３つのセレクタＭＢ２１〜ＭＢ２３を有するＭＩＳＲ回路Ｍ２用のモード制御信号ＭＢＳ２［２：０］を出力する。又、シフト制御信号生成回路３は、３つのセレクタＭＳ１１〜ＭＳ１３を有するＭＩＳＲ回路Ｍ１用のシフト制御信号ＳＦＳ１［２：０］と、３つのセレクタＭＳ２１〜ＭＳ２３を有するＭＩＳＲ回路Ｍ２用のシフト制御信号ＳＦＳ２［２：０］を出力する。
【００８４】
あるいは、図９Ａに示すように、端子数に基づいて分割されたスキャンチェーン群のそれぞれが全て等しい数のスキャンチェーンを含まなくても良い。端子数“ｎ”が３であるとき、ＭＩＳＲ回路の分割数“ｍ”は３以下に設定される。図９Ａではｍ＝３に設定される。このため、スキャンチェーン群の数“ｅ”も３に設定される。ここで、全スキャンチェーン数“ａ”は８本であるため、スキャンチェーン群内におけるチェーン数“ｈ”は３本又は２本となる。ここではスキャンチェーン群Ｆ１、Ｆ２が３本、スキャンチェーン群が２本のスキャンチェーンを備えるように設定される。このため、自身に接続するスキャンチェーン数に対応するように、ＭＩＳＲ回路Ｍ１、Ｍ２内には３つのフリップフロップ回路が設けられ、ＭＩＳＲ回路Ｍ３内には２つのフリップフロップ回路が設けられる。
【００８５】
この場合も、図２Ａ及び図２Ｂと同様な動作により、半導体集積回路の不良有無、不良スキャンチェーン群の特定、及び、不良フリップフロップ回路の特定を行うことができる。ここでは、不良スキャンチェーン群絞り込みテストにおけるＭＩＳＲ回路の分割数は３つであり、分割されたＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３に保持されたデータは、それぞれに対応するテスト端子ＴＯ１、ＴＯ２、ＴＯ３から出力される。このため、図９Ｂに示すように、モード制御信号生成回路２は、３つのセレクタＭＢ１１〜ＭＢ１３を有するＭＩＳＲ回路Ｍ１用のモード制御信号ＭＢＳ１［２：０］と、３つのセレクタＭＢ２１〜ＭＢ２３を有するＭＩＳＲ回路Ｍ２用のモード制御信号ＭＢＳ２［２：０］と、２つのセレクタＭＢ３１、ＭＢ３２を有するＭＩＳＲ回路Ｍ３用のモード制御信号ＭＢＳ３［１：０］とを出力する。又、シフト制御信号生成回路３は、３つのセレクタＭＳ１１〜ＭＳ１３を有するＭＩＳＲ回路Ｍ１用のシフト制御信号ＳＦＳ１［２：０］と、３つのセレクタＭＳ２１〜ＭＳ２３を有するＭＩＳＲ回路Ｍ２用のシフト制御信号ＳＦＳ２［２：０］と、２つのセレクタＭＳ１１、ＭＳ１２を有するＭＩＳＲ回路Ｍ３用のシフト制御信号ＳＦＳ１［１：０］とを出力する。
【００８６】
以上のように、本発明による半導体集積回路は、テスト端子の数や解析対象のスキャンチェーン数に応じた数のＭＩＳＲ回路に分割することで、当該分割数に応じた数のスキャンチェーン群毎に圧縮演算が実施できる。これにより、不良箇所を有するスキャンチェーン群が特定でき、スキャンデータによるテスト対象となるスキャンチェーン数を削減することができ、解析ＴＡＴを短縮することができる。
【００８７】
（半導体集積回路の設計方法）
図１０から図１３を参照して、本発明による半導体集積回路の設計支援装置、及び設計方法を説明する。
【００８８】
図１０及び図１１を参照して、本発明による半導体集積回路設計支援装置１０（以下、設計支援装置１０と称す）の実施の形態における構成を説明する。図１０は、本発明による設計支援装置１０の実施の形態における構成図である。設計支援装置１０は、バス１６を介して相互に接続されるＣＰＵ１１、ＲＡＭ１２、記憶装置１５、入力装置１３、出力装置１５を具備する。記憶装置１５はハードディスクやメモリ等に例示される外部記憶装置である。又、入力装置１３は、キーボードやマウス等のユーザによって操作されることで、各種データをＣＰＵ１１や記憶装置１５に出力する。出力装置１５は、モニタやプリンタに例示され、ＣＰＵ１１から出力される半導体装置のレイアウト結果をユーザに対し視認可能に出力する。
【００８９】
記憶装置１５は、半導体集積回路設計支援プログラム１００（以下、設計支援プログラムと称す）、ネットリスト２０１、ＴＯ端子情報２０２を格納する領域を有している。ＣＰＵ１１は、入力装置１３からの入力に応答して、記憶装置１５内の設計支援プログラム１００を実行し、半導体集積回路の設計を行う。この際、記憶装置１５からの各種データやプログラムはＲＡＭ１２に一時格納され、ＣＰＵ１１は、ＲＡＭ１２内のデータを用いて各種処理を実行する。
【００９０】
設計支援プログラム１００は、ＣＰＵ１１によって実行されることで、図１１に示すＬｏｇｉｃＢＩＳＴ挿入部１０１、ＭＩＳＲ分割部１０２、ＭＩＳＲパタン生成部１０３、及びＳＣＡＮパタン生成部１０４の各機能を実現する。
【００９１】
図１２を参照して、ＬｏｇｉｃＢＩＳＴ挿入部１０１、ＭＩＳＲ分割部１０２の動作及び本発明による設計方法の詳細を説明する。
【００９２】
図１２は、本発明による半導体集積回路の設計方法の一例を示すフロー図である。ここでは、図２Ａ〜図２Ｃに示す半導体集積回路を設計する方法を一例に説明する。ＬｏｇｉｃＢＩＳＴ回路の実装動作が開始されると、ＬｏｇｉｃＢＩＳＴ挿入部１０１は、予め設計された半導体集積回路のネットリスト２０１に対し、ＬｏｇｉｃＢＩＳＴ回路を挿入する（ステップＳ１）。挿入されるＬｏｇｉｃＢＩＳＴ回路は、擬似ランダムパタン生成器１、複数のスキャンチェーンＣＨ１１〜ＣＨ１３、ＣＨ２１〜ＣＨ２３、ＣＨ３１〜ＣＨ３３、当該複数のスキャンチェーンの全ての出力（スキャンデータ）を圧縮するＭＩＳＲ回路を含む。ここで挿入されるＭＩＳＲ回路は、全てのスキャンチェーンのスキャンデータを圧縮する演算回路と、演算回路からの出力をシフトして端子から順に出力するシフトレジスタ、及び当該シフトレジスタへの圧縮データの保持動作を制御するシフト制御信号生成回路３を備える。
【００９３】
ステップＳ１において、ＬｏｇｉｃＢＩＳＴ回路を挿入すると、ＬｏｇｉｃＢＩＳＴ挿入部１０１は、ＬｏｇｉｃＢＩＳＴ回路入りネットリスト２１１を記憶装置１５に記録するとともに、挿入したスキャンチェーンの数や、各スキャンチェーン内のフリップフロップ回路の数（段数）、スキャンチェーンに対する擬似ランダムパタン生成器１及びＭＩＳＲ回路との接続位置を、ＳＣＡＮＣｈａｉｎ情報２１２として記憶装置１５に記録する。又、ＬｏｇｉｃＢＩＳＴ挿入部１０１は、１０１ＬｏｇｉｃＢＩＳＴ回路として挿入したＭＩＳＲ回路の圧縮演算回路の回路構成や、スキャンチェーンとの接続位置に関する情報をＭＩＳＲ情報２１３として記憶装置１５に記録する。ここで、挿入されるＭＩＳＲ回路は、図２Ｂに示す演算回路Ｃ１〜Ｃ３が一体となった演算回路を備える。この演算回路では、演算回路Ｃ１からのキャリーアウト信号ＣＭ１は直接演算回路Ｃ２に入力され、演算回路Ｃ２からのキャリーアウト信号ＣＭ２は直接演算回路Ｃ３に入力され、演算回路Ｃ３からのキャリーアウト信号ＣＭ３は直接演算回路Ｃ１に入力される。
【００９４】
次に、ＭＩＳＲ分割部１０２は、スキャンチェーンをグループ化して各端子に割り当てるとともに、グループ毎のスキャンデータを圧縮演算するように、挿入したＭＩＳＲ回路を分割するための制御回路を挿入する（ステップＳ２〜Ｓ７）。
【００９５】
詳細には、ＭＩＳＲ分割部１０２は、ＴＯ端子情報２０２に基づいて、スキャンチェーンをグループ化して端子毎に割り当てる（ステップＳ２）。ここで、ＴＯ端子情報２０２は、テスト端子を特定する情報やその数に関する情報を含む。ＭＩＳＲ分割部１０２は、ＴＯ端子情報２０２に含まれる端子数に応じて、グループ化するスキャンチェーンの数を決定し、複数のスキャンチェーンを複数のスキャンチェーン群に分割する。複数のスキャンチェーン群は、複数の端子のそれぞれに対応付けられる。この際、グループ化されたスキャンチェーン群と端子とは対応付けられて、ＳｃａｎＣｈａｉｎグループ情報２１４として記憶装置１５に記録される。図２Ａ及び図２Ｂの一例では、スキャンチェーン群Ｆ１とテスト端子ＴＯ１、スキャンチェーン群Ｆ２とテスト端子ＴＯ２、スキャンチェーン群Ｆ３とテスト端子ＴＯ３が対応付けられて、ＳｃａｎＣｈａｉｎグループ情報２１４として記録される。
【００９６】
続いて、ＭＩＳＲ分割部１０２は、スキャンチェーン群毎にＭＩＳＲ回路を分割して割り当てる（ステップＳ３）。詳細には、ＭＩＳＲ分割部１０２は、ＳｃａｎＣｈａｉｎグループ情報２１４を参照して特定したスキャンチェーン群毎に、ステップＳ１において挿入されたＭＩＳＥＲ回路における演算回路を分割する。例えば、一体とした演算回路を、スキャンチェーン群Ｆ１に対応する演算回路Ｃ１、スキャンチェーン群Ｆ２に対応する演算回路Ｃ２、スキャンチェーン群Ｆ３に対応する演算回路Ｃ３に分割する。この際、ＭＩＳＥＲ分割部１０２は、分割されたＭＩＳＲ回路Ｍ１、Ｍ２、Ｍ３を作成するように指示するための回路作成指示ファイル２１５を生成する。
【００９７】
ＭＩＳＲ分割部１０２は、分割した演算回路の間に、当該演算回路同士を接続又は切断する分割回路を作成する（ステップＳ４）。ここで作成される分割回路は、分割した演算回路における最終段からの圧縮結果を、自身にフィードバックするか、あるいは次段の演算回路に入力するかを選択するセレクタを示す。図２Ｂに示す一例では、セレクタＭＢ１、ＭＢ２、ＭＢ３が分割回路として挿入される。分割回路は、複数のＭＩＳＲ回路（分割ＭＩＲＳ回路）を１つのＭＩＳＲ回路として使用する第１モードと、複数のＭＩＳＲ回路をそれぞれ個別のＭＩＳＲ回路として使用する第２モードとに切り替えるモード切替回路として機能する。ステップＳ４では、ＭＩＳＲ分割部１０２は、分割回路を複数の演算回路の間に挿入する指示を、回路作成指示ファイル２１５に追記する。
【００９８】
ＭＩＳＲ分割部１０２は、分割した演算回路の出力をバイパスするための選択回路を作成する（ステップＳ５）。この際、ＭＩＳＲ分割部１０２は、分割した演算回路からの出力信号と、対応するスキャンチェーンからの出力信号（スキャンデータ）の一方を選択するセレクタを選択回路として作成する。図２Ｂに示す一例では、セレクタＭＢ１１〜ＭＢ１３、ＭＢ２１〜ＭＢ２３、ＭＢ３１〜ＭＢ３３が選択回路として挿入される。この際、ＭＩＳＲ分割部１０２は、選択回路を挿入する指示や、当該選択回路において選択対象となる圧縮データ及びスキャンデータを指定する情報、あるいは当該選択回路の出力先を指定する情報を、回路作成指示ファイル２１５に追記する。
【００９９】
続いて、ＭＩＳＲ分割部１０２は、ステップＳ４において作成した分割回路とステップＳ５において作成した選択回路の選択動作を制御する制御回路を作成する（ステップＳ６）。例えば、ＭＩＳＲ分割部１０２は、モード制御信号生成回路２を作成するとともに、セレクタＭＢ１〜ＭＢ３、ＭＢを制御するモード制御信号ＭＢＳを規定し、セレクタＭＢ１１〜ＭＢ１３、ＭＢ２１〜ＭＢ２３、ＭＢ３１〜ＭＢ３３を制御するモード制御信号ＭＢＳ１〜ＭＢＳ３を規定する。この際、ＭＩＳＲ分割部１０２は、制御回路を挿入する指示や、当該制御回路からの制御信号の入力先、あるいは制御信号のタイミングを規定する情報を回路作成指示ファイル２１５に追記する。又、分割ＭＩＳＲ回路内の構造（演算回路、選択回路、バイパス用セレクタの接続情報等）が分割ＭＩＳＲ情報２１６として記憶装置１５に記録される。
【０１００】
ＭＩＳＲ分割部１０２は、回路作成指示ファイル２１５に従い、分割ＭＩＳＲ情報２１６を用いて分割ＭＩＳＲ回路の合成及びＬｇｉｃＢＩＳＴ回路への挿入を行う（ステップＳ７）。これにより、例えば図２Ａ及び図２Ｂに示す半導体集積回路を構成するためのネットリスト（分割ＬｏｇｉｃＢＩＳＴ入りネットリスト２１７）が生成され、記憶装置１５に記録される。
【０１０１】
以降、分割ＬｏｇｉｃＢＩＳＴ入りネットリスト２１７を利用したパタン生成工程に移行する。
【０１０２】
次に図１３を参照して、ＭＩＳＲパタン生成部１０３、及びＳＣＡＮパタン生成部１０４の動作を説明する。
【０１０３】
図１３は、本発明に係るテストパタン生成方法の一例を示すフロー図である。ＭＩＳＲパタン生成部１０３は、分割ＬｏｇｉｃＢＩＳＴ入りネットリスト２１７と回路作成指示ファイル２１５を用いて全ＭＩＳＲテストパタン４０１と分割ＭＩＳＲテストパタンを生成する（ステップＳ８）。詳細には、ＭＩＳＲパタン生成部１０３は、分割ＬｏｇｉｃＢＩＳＴ入りネットリスト２１７及び回路作成指示ファイル２１５に基づいて、スキャンチェーンの構造（例えばスキャンチェーン数、スキャンチェーンを構成するフリップフロップ回路数等）やＭＩＳＲ回路の構造（例えば、全加算器の段数（圧縮率）や圧縮データの出力先とのなるテスト端子位置等）を把握する。又、ＭＩＳＲパタン生成部１０３は、把握した構造に基づいて、全てのスキャンチェーンに入力する初期値と、当該初期値を入力したときのスキャンチェーンからの出力の圧縮演算結果の期待値を生成し、当該期待値を全ＭＩＳＲテストパタン４０１として記録する。更に、ＭＩＳＲパタン生成部１０３は、把握した構造に基づいて、スキャンチェーン群毎に入力する初期値と、当該初期値を入力したときのスキャンチェーン群毎の出力の圧縮演算結果の期待値を生成し、当該期待値を分割ＭＩＳＲテストパタン４０２として、スキャンチェーン群に対応付けて記録する。
【０１０４】
ＳＣＡＮパタン生成部１０４は、分割ＬｏｇｉｃＢＩＳＴ入りネットリスト２１７と回路作成指示ファイル２１５を用いてＳＣＡＮテストパタン４０３を生成する（ステップＳ９）。詳細には、ＳＣＡＮパタン生成部１０４は、分割ＬｏｇｉｃＢＩＳＴ入りネットリスト２１７と回路作成指示ファイル２１５に基づいて、スキャンチェーンの構造（例えばスキャンチェーン数、スキャンチェーンを構成するフリップフロップ回路数や、スキャンデータの出力先となるテスト端子位置等）を把握する。ＳＣＡＮパタン生成部１０４は、把握した構造に基づいて、スキャンチェーンに入力する初期値と、当該初期値を入力したときのスキャンチェーンからの出力の期待値を生成し、当該期待値をＳＣＡＮテストパタン４０３としてスキャンチェーン毎に記録する。
【０１０５】
以上のように、本発明による半導体集積回路の設計方法によれば、複数のスキャンチェーンからのスキャンデータを圧縮演算するＭＩＳＲ回路から端子に応じてグループ化したスキャンチェーン群毎に圧縮演算するＭＩＳＲ回路を分割する構成を挿入することで、スキャンチェーン群を個別にテストすることが可能なＢＩＳＴ回路を作成することが可能となる。又、スキャンデータと圧縮演算結果の一方を選択するセレクタをＬｏｇｉｃＢＩＳＴに追加することで、不良スキャンチェーン群からのスキャンデータを圧縮せずにテストできるため、少ない時間でスキャンチェーンにおける不良箇所（不良フリップフロップ回路）を特定することができる。
【０１０６】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【０１０７】
１  ：擬似ランダムパタン生成器
２  ：モード制御信号生成回路
３  ：シフト制御信号生成回路
ＣＨ１１〜ＣＨ１３、ＣＨ２１〜ＣＨ２３、ＣＨ３１〜ＣＨ３３  ：  スキャンチェーン
Ｆ１〜Ｆ３  ：  スキャンチェーン群
Ｃ１〜Ｃ３  ：  演算回路
Ｍ１〜Ｍ３：ＭＩＳＲ回路（分割ＭＩＳＲ回路）
ＭＢ１１〜ＭＢ１３、ＭＢ２１〜ＭＢ２３、ＭＢ３１〜ＭＢ３３、ＭＳ１１〜ＭＳ１３、ＭＳ２１〜ＭＳ２３、ＭＳ３１〜ＭＳ３３、ＭＢ１〜ＭＢ３  ：  セレクタ
Ｆ１１１〜Ｆ１１７、Ｆ１２１〜Ｆ１２７、Ｆ１３１〜Ｆ１３７、  Ｆ２１１〜Ｆ２１７、Ｆ２２１〜Ｆ２２７、Ｆ２３１〜Ｆ２３７、  Ｆ３１１〜Ｆ３１７、Ｆ３２１〜Ｆ３２７、Ｆ３３１〜Ｆ３３７、Ｍ１１〜Ｍ１２、Ｍ２１〜Ｍ２３、Ｍ３１〜Ｍ３３  ：  フリップフロップ回路
ＴＯ１〜ＴＯ３：テスト端子
１０：半導体集積回路設計支援装置
１３：記憶装置
１４：入力装置
１５：出力装置
１６：バス
１００：設計支援プログラム
１０１：ＬｏｇｉｃＢＩＳＴ挿入部
１０２：ＭＩＳＲ分割部
２０１：ネットリスト
２０２：ＴＯ端子情報
２１１：ＬｏｇｉｃＢＩＳＴ回路入りネットリスト
２１２：ＳＣＡＮＣｈａｉｎ情報
２１３：ＭＩＳＲ情報
２１４：ＳｃａｎＣｈａｉｎグループ情報
２１５：回路作成指示ファイル
２１６：分割ＭＩＳＲ情報
２１７：分割ＬｏｇｉｃＢＩＳＴ入りネットリスト
３０１：分割ＭＩＳＲテストＦＡＩＬデータ
３０２：ＳＣＡＮ部テストＦＡＩＬデータ
【図１】
2012198078.tif 000003
【図２Ａ】
2012198078.tif 000004
【図２Ｂ】
2012198078.tif 000005
【図２Ｃ】
2012198078.tif 000006
【図３】
2012198078.tif 000007
【図４】
2012198078.tif 000008
【図５】
2012198078.tif 000009
【図６】
2012198078.tif 000010
【図７】
2012198078.tif 000011
【図８Ａ】
2012198078.tif 000012
【図８Ｂ】
2012198078.tif 000013
【図９Ａ】
2012198078.tif 000014
【図９Ｂ】
2012198078.tif 000015
【図１０】
2012198078.tif 000016
【図１１】
2012198078.tif 000017
【図１２】
2012198078.tif 000018
【図１３】
2012198078.tif 000019