(57)【要約】【課題】回路規模の増加を抑制して、スキャン回路の不良原因を特定できるスキャン回路の実現。【解決手段】複数の第１フリップフロップが直列に接続された第１スキャンチェーンAと、複数の第２フリップフロップが直列に接続された第２スキャンチェーンBと、を有し、第１スキャンチェーンAは、第２スキャンチェーンBの少なくとも一つの第１フリップフロップの第１出力データを捕捉し、第２スキャンチェーンBは、第１スキャンチェーンAの少なくとも一つの第２フリップフロップの第２出力データを捕捉するスキャン回路。【選択図】図２
2014137292.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１フリップフロップが直列に接続された第１スキャンチェーンと、
複数の第２フリップフロップが直列に接続された第２スキャンチェーンと、を備え、
前記第１スキャンチェーンは、前記第２スキャンチェーンの少なくとも一つの前記第１フリップフロップの第１出力データを捕捉し、
前記第２スキャンチェーンは、前記第１スキャンチェーンの少なくとも一つの前記第２フリップフロップの第２出力データを捕捉する、ことを特徴とするスキャン回路。
【請求項２】
前記複数の第１フリップフロップは、第１クロックに同期して前記第１出力データを出力し、
前記複数の第２フリップフロップは、第２クロックに同期して前記第２出力データを出力する請求項１記載のスキャン回路。
【請求項３】
前記複数の第１フリップフロップの個数は、前記複数の第２フリップフロップの個数に等しい請求項２記載のスキャン回路。
【請求項４】
前記複数の第１フリップフロップの個数は前記複数の第２フリップフロップの個数よりｎ個多く（ｎは自然数）、前記第２スキャンチェーンは、ｎ個のダミーフリップフロップを備える請求項２記載のスキャン回路。
【請求項５】
前記第１スキャンチェーンは、ｎ個の前記ダミーフリップフロップに接続される補助出力端子を備える請求項２記載のスキャン回路。
【請求項６】
組合せ回路と、
スキャン回路と、を備え、
前記スキャン回路は、
複数の第１フリップフロップが直列に接続された第１スキャンチェーンと、
複数の第２フリップフロップが直列に接続された第２スキャンチェーンと、を備え、
前記第１スキャンチェーンは、前記第２スキャンチェーンの少なくとも一つの前記第１フリップフロップの第１出力データを捕捉し、
前記第２スキャンチェーンは、前記第１スキャンチェーンの少なくとも一つの前記第２フリップフロップの第２出力データを捕捉する、ことを特徴とする半導体装置。
【請求項７】
請求項６記載の半導体装置の試験方法であって、
前記第１および第２スキャンチェーンに、それぞれ”0”または”1”のスキャンデータを連続して入力し、前記第１および第２スキャンチェーンからそれぞれ出力されるスキャンデータを期待値と比較して前記第１および第２スキャンチェーンに故障があるかを推定し、
故障がないと推定された一方のスキャンチェーンを利用して、故障があると推定された他方のスキャンチェーンの故障の種類および故障発生位置を推定することを特徴とする半導体装置の試験方法。
【請求項８】
故障がないと推定された前記一方のスキャンチェーンに”0”または”1”のスキャンデータを連続して設定し、
故障があると推定された前記他方のスキャンチェーンが、前記一方のスキャンチェーンのデータを捕捉し、
前記一方のスキャンチェーンが、前記他方のスキャンチェーンのデータを捕捉し、
前記一方のスキャンチェーンが出力するデータを期待値と比較する、相互捕捉試験を含む請求項７記載の半導体装置の試験方法。
【請求項９】
故障があると推定された前記他方のスキャンチェーンに”0”または”1”のスキャンデータを連続して設定し、
前記一方のスキャンチェーンが、前記他方のスキャンチェーンのデータを捕捉し、
前記一方のスキャンチェーンが出力するデータを期待値と比較する、通常捕捉試験を含む請求項８記載の半導体装置の試験方法。
【請求項１０】
故障があると推定された前記他方のスキャンチェーンに”0”と”1”または”1”と”0”に交互に変化するスキャンデータを連続して設定し、
前記一方のスキャンチェーンが、前記他方のスキャンチェーンのデータを捕捉し、
前記一方のスキャンチェーンが出力するデータを期待値と比較する、通常捕捉試験を含む請求項９記載の半導体装置の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、スキャン回路、半導体装置および半導体装置の試験方法に関する。
【背景技術】
【０００２】
半導体装置の製造工程では、各工程で各種の試験（テスト）が行われ、不良品の除去および歩留まりの向上のためのテスト結果のフィードバックが行われる。例えば、半導体装置が電気的に正常に動作し、仕様を満たすかを検査する動作テストが行われ、合格したものだけが出荷される。
【０００３】
LSIの回路規模が大きくなるにつれ、内部の動作状態を検出するのが難しくなっており、内部の動作状態を検出するために、半導体装置内にスキャン回路を形成することが行われる。スキャン回路は、フリップフロップ回路（ＦＦ）をチェーン状に継続接続したシフトレジスタであり、各ＦＦは、前段からのデータまたはある時点で捕捉（キャプチャ）した組合せ回路（論理回路）のデータを、クロックに同期して次段に送る。初段のＦＦは、前段からのデータの替わりに入力端子に入力されたデータを次段に送る。また、最終段のＦＦは、出力データを出力端子に出力する。スキャン回路を利用することにより、組合せ回路に所望のデータを設定し、組合せ回路のある時点の状態（データ）を外部に出力することができる。これにより、所望の状態から組合せ回路を動作させ、所望の時点の組合せ回路の動作状態を知ることができる。
【０００４】
スキャン回路は、通常、半導体装置内で通常動作（システム動作）を行う際に使用されるＦＦで形成されるが、スキャン回路を形成するために設けたＦＦを使用する場合もある。大規模なLSIでは、スキャン回路を形成するＦＦ数が膨大になり、初段から最終段までデータをシフトするのに要する時間が長くなるため、例えば、複数のスキャンチェーンを形成する場合がある。ただし、スキャンチェーン数が増加すると、それに応じてスキャンチェーン用の入力および出力端子数も増加し、そのためのパッド数も増加するので、スキャンチェーン数は適宜設定される。
【０００５】
近年、大規模化および微細化したLSIにおいて、スキャン回路の不良が問題になっている。スキャン回路に不良が発生すると論理スキャン試験(LOGIC  SCANTEST)の結果が意味をなさなくなり、その結果LSIの故障個所の推定が困難になる。通常のスキャンチェーンによる試験回路では、LSI開発後でのスキャンチェーン不良解析が困難なため、スキャンチェーン不良の原因（製造起因、設計起因）を解明する機能を有するスキャン回路の必要性が高まって来ている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１４５２０４号公報
【特許文献２】特開平８−３６５０９号公報
【特許文献３】特開２０１１−７７６１号公報
【特許文献４】特開平９−３１１１５７号公報
【特許文献５】特開平６−２３００７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のように、通常のスキャンチェーンによるスキャン回路では、LSI開発後でのスキャンチェーン不良解析が困難である。そこで、任意の値に設定可能なＦＦでスキャンチェーンを形成したり、レジスタを付加したり、各ＦＦの値を選択的に出力できるようにして、スキャンチェーン不良解析を可能にすることが提案されている。
【０００８】
しかし、提案されているスキャン回路は、ＦＦを任意の値に設定するための回路、レジスタ、およびＦＦの値を選択的に外部に出力するための回路などを付加する必要があり、スキャンチェーンの段数大きくなると付加する回路が大規模になる。また、故障箇所がＦＦ本体なのかスキャンチェーンの配線なのかを区別できず、設計不具合もしくは製造不具合によるホールド時間が不良のＦＦを特定できないという課題があった。
【０００９】
実施形態によれば、回路規模の増加を抑制して、スキャン回路の不良原因を特定できるスキャン回路が実現される。
【課題を解決するための手段】
【００１０】
第１の態様によれば、スキャン回路は、複数の第１フリップフロップが直列に接続された第１スキャンチェーンと、複数の第２フリップフロップが直列に接続された第２スキャンチェーンと、を有し、第１スキャンチェーンは、第２スキャンチェーンの少なくとも一つの第１フリップフロップの第１出力データを捕捉し、第２スキャンチェーンは、第１スキャンチェーンの少なくとも一つの第２フリップフロップの第２出力データを捕捉する。
【発明の効果】
【００１１】
実施形態によれば、少ない回路規模の増加で、スキャン回路の不良原因を特定できるスキャン回路が実現される。
【図面の簡単な説明】
【００１２】
【図１】図１は、一般的なスキャン回路を有する半導体装置の構成を示す回路図であり、（Ａ）が基本回路構成を、（Ｂ）が動作説明図である。
【図２】図２は、第１実施形態の半導体装置の構成を示す図である。
【図３】図３は、第１実施形態の半導体装置で、TEST MODEを、組合せ回路の試験を行う通常テストに設定した場合の信号経路を示す図である。
【図４】図４は、第１実施形態の半導体装置で、TEST MODEを、スキャン回路の試験を行うスキャン回路テストに設定した場合の信号経路を示す図である。
【図５】図５は、選択回路および組合せ回路を除いて、図４の状態の第１実施形態の半導体装置を示す図である。
【図６】図６は、組合せ回路の通常テストおよびスキャン回路テストを含むテスト方法の処理を示すフローチャートである。
【図７】図７は、相互捕捉試験動作を示すフローチャートであり、（Ａ）が全データを”0”とする動作で、（Ｂ）が全データを”1”とする動作である。
【図８】図８は、通常捕捉試験動作を示すフローチャートであり、（Ａ）が全データを”0”とする動作で、（Ｂ）が全データを”1”とする動作である。
【図９】図９は、通常捕捉試験動作を示すフローチャートであり、（Ａ）がデータを“０１０１”とする動作で、（Ｂ）がデータを“１０１０”とする動作である。
【図１０】図１０は、第１実施形態の半導体装置で、２番目のフリップフロップに１固定故障が発生した場合を示す。
【図１１】図１１は、図１０の半導体装置に対して、全データを”0”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図１２】図１２は、正常な場合の図１１に対応するタイムチャートである。
【図１３】図１３は、第１実施形態の半導体装置で、１番目と２番目のフリップフロップ間の配線に１固定故障が発生した場合を示す。
【図１４】図１４は、図１３の半導体装置に対して、全データを”0”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図１５】図１５は、図１３の半導体装置に対して、全データを”1”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図１６】図１６は、図１３の半導体装置に対して、全データを”0”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図１７】図１７は、正常な場合の図１６に対応するタイムチャートである。
【図１８】図１８は、第１実施形態の半導体装置で、２番目のフリップフロップにホールド時間故障が発生した場合を示す。
【図１９】図１９は、図１８の半導体装置に対して、全データを”0”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図２０】図２０は、図１８の半導体装置に対して、全データを”1”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図２１】図２１は、図１８の半導体装置に対して、全データを”0”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図２２】図２２は、図１８の半導体装置に対して、全データを”1”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図２３】図２３は、図１８の半導体装置に対して、SCAN IN Aを”0101(LHLH)”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図２４】図２４は、正常な場合の図２３に対応するタイムチャートである。
【図２５】図２５は、図１８の半導体装置に対して、SCAN IN Aを”1010(HLHL)”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【図２６】図２６は、正常な場合の図２５に対応するタイムチャートである。
【図２７】図２７は、第２実施形態の半導体装置の構成を示す図である。
【図２８】図２８は、第３実施形態の半導体装置の構成を示す図である。
【発明を実施するための形態】
【００１３】
実施形態を説明する前に、一般的なスキャン回路について説明する。
図１は、一般的なスキャン回路を有する半導体装置の構成を示す回路図であり、（Ａ）が基本回路構成を、（Ｂ）が動作説明図である。
【００１４】
半導体装置は、組合せ回路（論理回路）１０と、スキャン回路と、を有する。図１の（Ａ）に示すスキャン回路は、２つのスキャンチェーン(SCANCHAIN)ＡおよびＢを有し、各スキャンチェーンが４個のフリップフロップ（ＦＦ）を継続接続した例を示す。
【００１５】
スキャンチェーンＡは、継続接続した４個のフリップフロップFF A1-FF A4を有し、スキャンチェーンＢは、継続接続した４個のフリップフロップFF B1-FF B4を有する。各ＦＦは、モード信号SCAN MODEによりテスト時の動作状態が制御される。SCAN MODE=Hの時には、各ＦＦは、クロックＣLＫに同期して、前段のＦＦの出力データをスキャン入力SIとして取り込み、後段に出力する。SCAN MODE=Lの時には、各ＦＦは、クロックＣLＫに同期して、組合せ回路（論理回路）１０の所定部分のデータをラッチし、後段に出力する。なお、FF A1は、第１入力端子に入力される第１スキャン入力データSCAN IN Aをスキャン入力SIとして取り込む。同様に、FF B1は、第２入力端子に入力される第２スキャン入力データSCAN IN Bをスキャン入力SIとして取り込む。また、FF A4は、出力データＱを、第１出力端子に第１スキャン出力データSCAN OUT Aとして出力する。FF B4は、出力データＱを、第２出力端子に第２スキャン出力データSCAN OUT Bとして出力する。
【００１６】
なお、図１は、４個のＦＦを継続接続したスキャンチェーンの例を示すが、通常は非常に多数のＦＦを継続接続してスキャンチェーンを形成するのが一般的である。また、スキャンチェーン数も２つに限定されない。
スキャン回路の動作については広く知られているので、説明は省略する。
【００１７】
図１の（Ａ）のスキャン回路で、スキャンチェーン自体の不良を検出について説明する。図１の（Ｂ）に示すように、第１スキャン入力データSCAN IN Aおよび第２スキャン入力データSCAN IN Bとして、１クロック周期（１ＵＩ）で交互にLとHに変化するデータを入力する。第１および第２スキャンチェーンＡ，Ｂに不良が無ければ、第１スキャン出力データSCAN OUT Aおよび第２スキャン出力データSCAN OUT Bとして、入力データと同じと１ＵＩで交互にLとHに変化するデータが出力される。
【００１８】
ここで、図１の（Ｂ）に示すように、第１スキャンチェーンＡの２番目のFF A2が１(H)固定不良になった場合を考える。第２スキャンチェーンＢには不良は無いとする。この場合、スキャンシフト動作を行っても第１スキャン出力データSCAN OUT Aは１固定になる。一方、第２スキャン出力データSCAN OUT Bは、正常であり、第２スキャン入力データSCAN IN Bと同じデータとなる。したがって、第１スキャンチェーンＡに不良が発生したことは判明するが、不良の発生したＦＦの位置を特定することはできない。
【００１９】
FF A2が０(L)固定不良になった場合には、第１スキャン出力データSCAN OUT Aは０固定になる。上記の現象は、第２スキャンチェーンＢで不良が発生した場合も同様である。また、ＦＦ自体の不良でなく、ＦＦ間の信号線に不良が発生した場合にも、同様に不良合の発生箇所を特定することはできない。
【００２０】
前述のように、スキャン回路における不良箇所を特定可能にしたスキャン回路が提案されている。しかし、提案されているスキャン回路は、ＦＦを任意の値に設定するための回路、レジスタ、およびＦＦの値を選択的に外部に出力するための回路などを付加する必要がある。スキャンチェーンの段数大きくなると、付加する回路が大規模になり、実現が困難であった。また、故障箇所がＦＦ本体なのかスキャンチェーンの配線なのかを十分に区別できず、設計不具合もしくは製造不具合によるホールド時間が不良のＦＦであるかも特定できないという課題などもあった。
【００２１】
そのため、これまでのスキャン回路の規模の増加をできるだけ抑制して、不良内容の特定が可能なスキャン回路が望まれていた。以下に説明する実施形態のスキャン回路は、回路規模の増加を抑制して、不良内容を特定する。特定する第１の事項は、スキャンチェーンを構成するフリップフロップ（ＦＦ）の固定不良（縮退故障）の特定であり、不良ＦＦの位置も特定する。特定する第２の事項は、スキャンシフト動作におけるホールド時間の不良（タイミングエラー）の特定である。特定する第３の事項は、ＦＦ本体の不良か、スキャンチェーンの配線不良かの切り分けである。
【００２２】
図２は、第１実施形態の半導体装置の構成を示す図である。
第１実施形態の半導体装置は、組合せ回路（論理回路）１０と、スキャン回路と、を有する。スキャン回路は、２つのスキャンチェーン(SCANCHAIN)ＡおよびＢと、を有する。ここでは、説明を容易にするために、各スキャンチェーンが４個のフリップフロップ（ＦＦ）を継続接続した例を示すが、これに限定されるものではない。
【００２３】
スキャンチェーンＡは、継続接続した４個のフリップフロップFF A1-FF A4と、選択回路（ＳＥL）SELA, SA1-SA4と、を有する。スキャンチェーンＡのフリップフロップFF A1-FF A4は、モード信号SCAN MODE Aによりテスト時の動作状態が制御される。SCAN MODE=Hの時には、FF A1-FF A4は、入力されるクロックに同期して、前段のＦＦの出力データをスキャン入力SIとして取り込み、後段に出力する。SCAN MODE A=Lの時には、FF A1-FF A4は、入力されるクロックに同期して、組合せ回路１０の所定部分のデータをラッチし、後段に出力する。なお、FF A1は、第１入力端子に入力される第１スキャン入力データSCAN IN Aをスキャン入力SIとして取り込む。また、FF A4は、出力データＱを、第１出力端子に第１スキャン出力データSCAN OUT Aとして出力する。
【００２４】
SELAは、テストモード信号TEST MODEに応じて、FF A1-FF A4に供給するクロックを、通常テスト時のユーザークロックUSER CLKとスキャン回路試験時の第１スキャンクロックCLK Aの間で切り替える。SA1-SA4は、TEST MODEに応じて、FF A1-FF A4に供給するデータを、組合せ回路１０のデータとFF B1-FF B4の出力データの間で切り替える。
【００２５】
スキャンチェーンＢは、継続接続した４個のフリップフロップFF B1-FF B4と、選択回路（ＳＥL）SELB, SB1-SB4と、を有する。スキャンチェーンＢのフリップフロップFF B1-FF B4は、モード信号SCAN MODE Bによりテスト時の動作状態が制御される。SCAN MODE B=Hの時には、FF B1-FF B4は、入力されるクロックに同期して、前段のＦＦの出力データをスキャン入力SIとして取り込み、後段に出力する。SCAN MODE B=Lの時には、FF B1-FF B4は、入力されるクロックに同期して、組合せ回路１０の所定部分のデータをラッチし、後段に出力する。なお、FF B1は、第２入力端子に入力される第２スキャン入力データSCAN IN Bをスキャン入力SIとして取り込む。また、FF B4は、出力データＱを、第２出力端子に第２スキャン出力データSCAN OUT Bとして出力する。
【００２６】
SELBは、テストモード信号TEST MODEに応じて、FF B1-FF B4に供給するクロックを、通常テスト時のユーザークロックUSER CLKとスキャン回路試験時の第２スキャンクロックCLK Bの間で切り替える。SB1-SB4は、TEST MODEに応じて、FF B1-FF B4に供給するデータを、組合せ回路１０のデータとFF A1-FF A4の出力データの間で切り替える。
【００２７】
図３は、第１実施形態の半導体装置で、TEST MODEを、組合せ回路１０の試験を行う通常テストに設定した場合の信号経路を示す図である。図３に示すように、FF A1-FF A4およびFF B1-FF B4には、ユーザークロックUSER CLKが供給され、スキャンチェーンＡおよびＢは、同じクロックに同期して動作する。また、FF A1-FF A4およびFF B1-FF B4のデータ入力には、組合せ回路１０の所定部分のデータが入力される。さらに、FF A1-FF A4およびFF B1-FF B4の出力Ｑは、後段のＦＦおよび組合せ回路１０に入力され、スキャンチェーンＡおよびＢが相互にデータを入出力することはない。
【００２８】
図３の回路状態は、SELA, SA1-SA4およびSELB, SB1-SB4を除けば、実質的に図１の（Ａ）の回路と同じであることが分かる。言い換えれば、第１実施形態の半導体装置は、図３の状態では、組合せ回路１０をテストする通常のスキャン回路と同じ状態になる。したがって、通常テスト時の動作については、説明を省略する。
【００２９】
図４は、第１実施形態の半導体装置で、TEST MODEを、スキャン回路の試験を行うスキャン回路テストに設定した場合の信号経路を示す図である。図４に示すように、FF A1-FF A4には、第１スキャンクロックCLK Aが供給され、FF A1-FF A4のデータ入力には、FF B1-FF B4の出力データが入力される。また、FF B1-FF B4には、第２スキャンクロックCLK Bが供給され、FF B1-FF B4のデータ入力には、FF A1-FF A4の出力データが入力される。
【００３０】
図５は、選択回路SELA, SA1-SA4, SELB, SB1-SB4および組合せ回路１０を除いて、図４の状態の第１実施形態の半導体装置を示す図である。言い換えれば、スキャン回路の試験を行う時の実質的なスキャン回路の構成を示す図である。以下、図５に基づいて、第１実施形態の半導体装置のスキャン回路テスト時の動作を説明する。
【００３１】
図５に示すように、スキャン回路は、スキャン回路テスト時には、スキャンチェーンＡおよびＢの対応するフリップフロップの出力Ｑとデータ入力Ｄを相互に接続した構成を有する。また、スキャンチェーンＡのFF A1-FF A4は、第１スキャンクロックCLK Aに同期して動作し、モード信号SCAN MODE Aにより動作状態が制御される。同様に、スキャンチェーンＢは、第２スキャンクロックCLK Bに同期して動作し、モード信号SCAN MODE Aにより動作状態が制御される。これにより、スキャンチェーンＡとＢは、それぞれスキャンチェーンごとに、スキャンシフトおよび捕捉(capture)動作が行える。
【００３２】
第１実施形態の半導体装置のスキャン回路は、以上の機能を有するので、２本のスキャンチェーンの正常動作するスキャンチェーンを利用して、故障しているスキャンチェーンの故障箇所を推定する。
【００３３】
図６は、組合せ回路１０の通常テストおよびスキャン回路テストを含むテスト方法の処理を示すフローチャートである。このテスト方法では、スキャン回路の固定故障（縮退故障）及びホールド時間(HOLD  TIME)不良の推定も行う。
【００３４】
ステップＳ１１では、通常スキャン回路テストを行い、２つのスキャンチェーンＡおよびＢの良／不良(PASS/FAIL)判定を行う。具体的には、スキャンチェーンＡとＢで、それぞれ全ＦＦが “0”をシフトしてすべて”0”の出力が得られるか、全ＦＦが “1”をシフトしてすべて”1”の出力が得られるか、判定する。ここで、良と判定された場合には、スキャン回路が正常に動作すると判定され、終了する。また、不良と判定された場合には、スキャンチェーンＡとＢの一方が不良であることが判明するので、その上でステップＳ１２に進む。
【００３５】
ステップＳ１２では、全データを”0”とし、スキャンチェーンＡとＢの間で２回捕捉動作を行う相互捕捉(Capture)試験を行い、良／不良(PASS/FAIL)を判定する。試験内容については後述する。Ｓ１２で不良と判定された場合には、不良の発生したアドレスに相当するフリップフロップ（ＦＦ）が、常に”1”を出力する１固定故障の可能性が有ると判断され、終了する。Ｓ１２で良と判定された場合には、ステップＳ１３に進む。
【００３６】
ステップＳ１３では、全データを”1”とし、スキャンチェーンＡとＢの間で２回捕捉動作を行う相互捕捉(Capture)試験を行い、良／不良(PASS/FAIL)を判定する。試験内容については後述する。Ｓ１３で不良と判定された場合には、不良の発生したアドレスに相当するフリップフロップ（ＦＦ）が、常に”0”を出力する０固定故障の可能性が有ると判断され、終了する。Ｓ１３で良と判定された場合には、ステップＳ１４に進む。
【００３７】
Ｓ１２およびＳ１３では、不良ＦＦが存在する場合に、不良ＦＦの位置（アドレス）が特定される。
【００３８】
ステップＳ１４では、全データを”0”とし、スキャンチェーンＡとＢの間で１回捕捉動作を行う通常捕捉(Capture)試験を行い、良／不良(PASS/FAIL)を判定する。試験内容については後述する。Ｓ１４で不良と判定された場合には、良と不良の境界のＦＦ間の配線が、１固定故障の可能性が有ると判断され、終了する。Ｓ１４で良と判定された場合には、さらにステップＳ１５に進む。
【００３９】
ステップＳ１５では、全データを”1”とし、スキャンチェーンＡとＢの間で１回捕捉動作を行う通常捕捉(Capture)試験を行い、良／不良(PASS/FAIL)を判定する。試験内容については後述する。Ｓ１５で不良と判定された場合には、良と不良の境界のＦＦ間の配線が、０固定故障の可能性が有ると判断され、終了する。Ｓ１５で良と判定された場合には、ステップＳ１６に進む。
【００４０】
ステップＳ１６では、全データを”0101…”とし、スキャンチェーンＡとＢの間で１回捕捉動作を行う通常捕捉(Capture)試験を行い、良／不良(PASS/FAIL)を判定し、判定結果を記憶し、ステップＳ１７に進む。試験内容については後述する。
【００４１】
ステップＳ１７では、全データを”1010…”とし、スキャンチェーンＡとＢの間で１回捕捉動作を行う通常捕捉(Capture)試験を行い、良／不良(PASS/FAIL)を判定し、判定結果を記憶し、ステップＳ１８に進む。試験内容については後述する。
【００４２】
ステップＳ１８では、Ｓ１６およびＳ１７の判定結果が両方とも良であるか判定し、両方とも良であれば、スキャン回路に故障は無いと判定されることになり、Ｓ１１の結果と矛盾するので、故障原因は不明と判定され、終了する。Ｓ１６およびＳ１７の少なくとも一方の判定結果が不良の場合には、ステップＳ１９に進む。
【００４３】
ステップＳ１９では、Ｓ１６およびＳ１７の判定結果である不良のアドレスをマージする。マージしたアドレスの良／不良境界のＦＦがホールド不良（所定のホールド時間データを維持できていない不良）の可能性有りと判定される。
【００４４】
次に、ステップＳ１２からＳ１７における動作について、図７から図９を参照して詳細に説明する。図７から図９は、スキャンチェーンＡに故障があるか試験する場合の例を示す。スキャンチェーンＡに故障があることは、Ｓ１１で判定済みであり、正常なスキャンチェーンＢを利用して、スキャンチェーンＡの故障箇所を特定する。
【００４５】
図７は、ステップＳ１２およびＳ１３における相互捕捉試験動作を示すフローチャートであり、（Ａ）がＳ１２の全データを”0”とする動作で、（Ｂ）がＳ１３の全データを”1”とする動作である。
【００４６】
ステップＳ２１では、SCAN IN AおよびSCAN IN Bとして “0”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。
【００４７】
ステップＳ２２では、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。
【００４８】
ステップＳ２３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。
【００４９】
ステップＳ２４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力したデータを期待値（この場合は”0”）と比較する。もし、期待値と異なる値（この場合は”1”）が出力された場合には、出力の順番からスキャンチェーンＡの１固定故障のＦＦの位置が特定される。
【００５０】
もし、スキャンチェーンＢに１固定故障があることが判定済みであれば、Ｓ２２からＳ２４を、スキャンチェーンＡとＢの関係を逆にして試験を実施する。
【００５１】
ステップＳ３１では、SCAN IN AおよびSCAN IN Bとして “1”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”1”を設定する。
【００５２】
ステップＳ３２では、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。
【００５３】
ステップＳ３３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。
【００５４】
ステップＳ３４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力したデータを期待値（この場合は”1”）と比較する。もし、期待値と異なる値（この場合は”0”）が出力された場合には、出力の順番からスキャンチェーンＡの０固定故障のＦＦの位置が特定される。
【００５５】
もし、スキャンチェーンＢに０固定故障があることが判定済みであれば、Ｓ３２からＳ３４を、スキャンチェーンＡとＢの関係を逆にして試験を実施する。
【００５６】
図８は、ステップＳ１４およびＳ１５における通常捕捉試験動作を示すフローチャートであり、（Ａ）がＳ１４の全データを”0”とする動作で、（Ｂ）がＳ１５の全データを”1”とする動作である。
【００５７】
ステップＳ４１では、SCAN IN AおよびSCAN IN Bとして “0”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。
【００５８】
ステップＳ４２では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。
【００５９】
ステップＳ４３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力したデータを期待値（この場合は”0”）と比較する。もし、期待値と異なる値（この場合は”1”）が出力された場合には、出力の順番から、１固定故障のスキャンチェーンＡの良／不良の境界位置が特定される。
【００６０】
もし、スキャンチェーンＢに１固定故障があることが判定済みであれば、Ｓ４２およびＳ４３を、スキャンチェーンＡとＢの関係を逆にして試験を実施する。
【００６１】
ステップＳ５１では、SCAN IN AおよびSCAN IN Bとして “1”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”1”を設定する。
【００６２】
ステップＳ５２では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。
【００６３】
ステップＳ５３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力したデータを期待値（この場合は”1”）と比較する。もし、期待値と異なる値（この場合は”0”）が出力された場合には、出力の順番から、１固定故障のスキャンチェーンＡの良／不良の境界位置が特定される。
【００６４】
もし、スキャンチェーンＢに１固定故障があることが判定済みであれば、Ｓ５２およびＳ５３を、スキャンチェーンＡとＢの関係を逆にして試験を実施する。
【００６５】
図９は、ステップＳ１６およびＳ１７における通常捕捉試験動作を示すフローチャートであり、（Ａ）がＳ１６のデータを”0101”とする動作で、（Ｂ）がＳ１７のデータを”1010”とする動作である。
【００６６】
ステップＳ６１では、SCAN IN Aとして ”0101”を、CLK Aに同期して供給し（ここでは４クロック分供給し）、スキャンチェーンＡのFF A1-FF A4に”0101”を設定する。なお、スキャンチェーンＢにはどのようなデータを設定してもよい。図９の（Ａ）では、SCAN IN Bとして”0101”をCLK Bに同期して供給し、スキャンチェーンＢのFF B1-FF B4に”0101”を設定するとしている。しかし、SCAN IN Bとして “0000”などを供給して、FF B1-FF B4に”0000”を設定してもよい。
【００６７】
ステップＳ６２では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。
【００６８】
ステップＳ６３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力したデータを期待値（この場合は”0101”）と比較する。もし、期待値と異なる値が出力された場合には、出力の順番から、ホールド(HOLD)故障のスキャンチェーンＡの不良のＦＦの位置が特定される。
【００６９】
もし、スキャンチェーンＢに故障があることが判定済みであれば、Ｓ６２およびＳ６３を、スキャンチェーンＡとＢの関係を逆にして試験を実施する。
【００７０】
ステップＳ７１では、SCAN IN Aとして “1010”を、CLK Aに同期して供給し（ここでは４クロック分供給し）、スキャンチェーンＡのFF A1-FF A4に”1010”を設定する。なお、スキャンチェーンＢにはどのようなデータを設定してもよい。図９の（Ｂ）では、SCAN IN Bとして”1010”をCLK Bに同期して供給し、スキャンチェーンＢのFF B1-FF B4に”1010”を設定するとしている。しかし、SCAN IN Bとして”0000”などを供給して、FF B1-FF B4に”0000”を設定してもよい。
【００７１】
ステップＳ７２では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。
【００７２】
ステップＳ７３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力したデータを期待値（この場合は”1010”）と比較する。もし、期待値と異なる値が出力された場合には、出力の順番から、ホールド(HOLD)故障のスキャンチェーンＡの不良のＦＦの位置が特定される。
【００７３】
もし、スキャンチェーンＢに故障があることが判定済みであれば、Ｓ６２およびＳ６３を、スキャンチェーンＡとＢの関係を逆にして試験を実施する。
【００７４】
次に、第１実施形態の半導体装置で、スキャンチェーンに故障が発生した場合の、Ｓ１１からＳ１７における各部のデータ変化を説明する。
図１０は、第１実施形態の半導体装置で、FF A2に１固定故障が発生した場合を示す。
【００７５】
図１１は、図１０の半導体装置に対して、Ｓ１２の全データを”0”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【００７６】
図示のように、Ｓ２１で、SCAN IN AおよびSCAN IN Bとして”0(L)”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”0”を保持し出力する状態になる。しかし、スキャンチェーンＡは、FF A2が１固定不良であるため、FF A1は”0”に設定されるが、FF A2は”1(H)”であり、FF A2以降のFF A3およびFF A4は、FF A2 から受け取るシフトデータが”1”のため、”1”となる。
【００７７】
ステップＳ２２で、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。これにより、FF A1, FF A3およびFF A4は、”0”を保持して”0”を出力する状態になるが、FF A2は１固定不良であるため”1”を出力する状態となる。
【００７８】
ステップＳ２３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1, FF B3およびFF B4は、”0”を保持して”0”を出力する状態になるが、FF B2は、”1”を保持して”1”を出力する状態になる。
【００７９】
ステップＳ２４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”0100(LHLL)”となる。出力データを期待値（この場合は”0000(LLLL)”と比較すると、３番目に出力されるデータが期待値と不一致となり、スキャンチェーンＡのFF A2が１固定不良である可能性が高いことが特定される。
【００８０】
参考として、FF A2が正常な場合の図１１に対応するタイムチャートを、図１２に示す。SCAN OUT Bとして出力される出力データは、すべて0(L)であり、期待値0と一致する。
【００８１】
図１３は、第１実施形態の半導体装置で、FF A1とFF A2間の配線に１固定故障が発生した場合を示す。
図１４は、図１３の半導体装置に対して、Ｓ１２の全データを”0”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【００８２】
図示のように、Ｓ２１で、SCAN IN AおよびSCAN IN Bとして “0(L)”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”0”を保持し出力する状態になる。しかし、スキャンチェーンＡは、FF A1とFF A2間の配線に１固定故障が発生しているため、FF A1は”0”に設定されるが、FF A2は”1(H)”であり、FF A2以降のFF A3およびFF A4は、FF A2 から受け取るシフトデータが”1”のため、”1”となる。
【００８３】
ステップＳ２２で、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。これにより、FF A1-FF A4は、すべて正常であるため、”0”を保持して”0”を出力する状態になる。
【００８４】
ステップＳ２３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”0”を保持して”0”を出力する状態になる。
【００８５】
ステップＳ２４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”0000(LLLL)”となり、期待値とすべて一致する。したがって、スキャンチェーンＡのFF A1とFF A2間の配線に１固定故障が発生していることは特定できない。
【００８６】
図１５は、図１３の半導体装置に対して、Ｓ１３の全データを”1”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【００８７】
図示のように、Ｓ３１で、SCAN IN AおよびSCAN IN Bとして”1(H)“を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”1”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”1”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A1とFF A2間の配線に１固定故障が発生しているが、FF A2はシフトデータとして”1(H)”を受け取り、出力も1となるので、FF A3およびFF A4は、”1”に設定される。
【００８８】
ステップＳ３２で、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。これにより、FF A1-FF A4は、すべて正常であるため、”1”を保持して”1”を出力する状態になる。
【００８９】
ステップＳ３３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”1”を保持して”1”を出力する状態になる。
【００９０】
ステップＳ３４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”1111(HHHH)”となり、期待値とすべて一致する。したがって、スキャンチェーンＡのFF A1とFF A2間の配線に１固定故障が発生していることは特定できない。
【００９１】
図１６は、図１３の半導体装置に対して、Ｓ１４の全データを”0”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【００９２】
図示のように、Ｓ４１で、SCAN IN AおよびSCAN IN Bとして”0(L)”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”0”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A1とFF A2間の配線に１固定故障が発生しているため、FF A2はシフトデータとして”1(H)”を受け取り、出力も1となるので、FF A3およびFF A4は、”1”に設定される。
【００９３】
ステップＳ４２で、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”0111(LHHH)”を保持して出力する状態になる。
【００９４】
ステップＳ４３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”0111(LHHH)”となり、１番目から３番目の出力データは期待値と不一致となり、４番目の出力データは期待値と一致する。したがって、良／不良境界がFF B1(FF A1)とFF B2(FF A2)なので、スキャンチェーンＡのFF A1とFF A2間の配線に１固定故障が発生している可能性が高いことが特定される。
【００９５】
参考として、FF A1とFF A2の間の配線が正常な場合の図１６に対応するタイムチャートを、図１７に示す。FF A1-FF A4のすべてに”0(L)”が設定され、スキャンチェーンＢはすべて”0(L)”のデータを捕捉してSCAN OUT Bとして出力するので、期待値0と一致する。
【００９６】
図１８は、第１実施形態の半導体装置で、FF A2にホールド時間故障（ホールド時間が不足して、異なるデータを取り込む）が発生した場合を示す。
図１９は、図１８の半導体装置に対して、Ｓ１２の全データを”0”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【００９７】
図示のように、Ｓ２１で、SCAN IN AおよびSCAN IN Bとして”0(L)”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”0”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A2にホールド時間故障が発生しているが、シフトされるのは連続した”0”であるため、FF A1-FF A4は”0”に設定される。
【００９８】
ステップＳ２２で、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。これにより、FF A2にホールド時間故障が発生しているが、保持しているデータは”0”であり、捕捉するデータも”0”なので、FF A1-FF A4は、すべて”0”を保持して”0”を出力する状態になる。
【００９９】
ステップＳ２３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”0”を保持して”0”を出力する状態になる。
【０１００】
ステップＳ２４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”0000(LLLL)”となり、期待値とすべて一致する。したがって、FF A2にホールド時間故障が発生していることは特定できない。
【０１０１】
図２０は、図１８の半導体装置に対して、Ｓ１３の全データを”1”とする相互捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【０１０２】
図示のように、Ｓ３１で、SCAN IN AおよびSCAN IN Bとして”1(H)”を供給した状態で、CLK AおよびCLK Bを供給する（ここでは４クロック分供給する）ことにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”1”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”1”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A2にホールド時間故障が発生しているが、シフトされるのは連続した”1”であるため、FF A1-FF A4は”1”に設定される。
【０１０３】
ステップＳ３２で、スキャンチェーンＡのFF A1-FF A4が、スキャンチェーンＢのFF B1-FF B4の出力データを捕捉(Capture)する。これにより、FF A1-FF A4は、FF A2にホールド時間故障が発生しているが、保持しているデータは”1”であり、捕捉するデータも”1”なので、FF A1-FF A4は、すべて”1”を保持して”1”を出力する状態になる。
【０１０４】
ステップＳ３３では、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”1”を保持して”1”を出力する状態になる。
【０１０５】
ステップＳ３４では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”1111(HHHH)”となり、期待値とすべて一致する。したがって、FF A2にホールド時間故障が発生していることは特定できない。
【０１０６】
図２１は、図１８の半導体装置に対して、Ｓ１４の全データを”0”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【０１０７】
図示のように、Ｓ４１で、SCAN IN AおよびSCAN IN Bとして”0(L)”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”0”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”0”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A2にホールド時間故障が発生しているが、シフトされるのは連続した”0”であるため、FF A1-FF A4は”0”に設定される。
【０１０８】
ステップＳ４２で、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”0000(LLLL)”を保持して出力する状態になる。
【０１０９】
ステップＳ４３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”0000(LLLL)”となり、期待値とすべて一致する。したがって、FF A2にホールド時間故障が発生していることは特定できない。
【０１１０】
図２２は、図１８の半導体装置に対して、Ｓ１５の全データを”1”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。
【０１１１】
図示のように、Ｓ５１で、SCAN IN AおよびSCAN IN Bとして”1(H)”を供給した状態で、CLK AおよびCLK Bを供給し（ここでは４クロック分供給し）することにより、スキャンチェーンＡおよびＢのFF A1-FF A4およびFF B1-FF B4に”1”を設定する。これに対して、スキャンチェーンＢは正常であり、FF B1-FF B4は”1”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A2にホールド時間故障が発生しているが、シフトされるのは連続した”1”であるため、FF A1-FF A4は”1”に設定される。
【０１１２】
ステップＳ５２で、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”1111(HHHH)”を保持して出力する状態になる。
【０１１３】
ステップＳ５３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”1111(HHHH)”となり、期待値とすべて一致する。したがって、FF A2にホールド時間故障が発生していることは特定できない。
【０１１４】
図２３は、図１８の半導体装置に対して、Ｓ１６のSCAN IN Aを”0101(LHLH)”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。なお、ここでは、SCAN IN Bとして”0000”を供給する。
【０１１５】
図示のように、Ｓ６１で、CLK Aに同期して、SCAN IN Aとして”0101”を供給することにより、スキャンチェーンＡのFF A1-FF A4に”0101”を設定する。また、CLK B に同期して、SCAN IN Bとして”0000”を供給することにより、スキャンチェーンＢのFF B1-FF B4に”0000”を設定する。スキャンチェーンＢは正常であり、FF B1-FF B4は”0000”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A2にホールド時間故障が発生しているため、FF A2はFF A1と同じデータを捕捉し、FF A3およびFF A4は、１クロック周期ずれて値が設定される。したがって、FF A1-FF A4は、”1101(HHLH)”に設定される。
【０１１６】
ステップＳ６２で、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”1101(HHLH)”を保持して出力する状態になる。
【０１１７】
ステップＳ６３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”1101(HHLH)”となり、１番目から３番目の出力データは期待値と不一致で、４番目のみ一致する。したがって、FF A1とFF A2の間に良／不良の境界があり、FF A2にホールド時間故障が発生している可能性が高いと特定される。
【０１１８】
参考として、FF A2にホールド時間故障が発生しておらず、正常な場合の図２３に対応するタイムチャートを、図２４に示す。FF A1-FF A4のすべてに”0101(LHLH)”が設定され、スキャンチェーンＢは”0101(LHLH)”のデータを捕捉してSCAN OUT Bとして出力するので、期待値と一致する。
【０１１９】
図２５は、図１８の半導体装置に対して、Ｓ１７のSCAN IN Aを”1010(HLHL)”とする通常捕捉試験を行った場合の各部のデータ変化を示すタイムチャートである。なお、ここでは、SCAN IN Bとして”0000”を供給する。
【０１２０】
図示のように、Ｓ７１で、CLK Aに同期して、SCAN IN Aとして”1010”を供給することにより、スキャンチェーンＡのFF A1-FF A4に”1010”を設定する。また、CLK B に同期して、SCAN IN Bとして”0000”を供給することにより、スキャンチェーンＢのFF B1-FF B4に”0000”を設定する。スキャンチェーンＢは正常であり、FF B1-FF B4は”0000”を保持し出力する状態になる。一方、スキャンチェーンＡは、FF A2にホールド時間故障が発生しているため、FF A2はFF A1と同じデータを捕捉し、FF A3およびFF A4は、１クロック周期ずれて値が設定される。したがって、FF A1-FF A4は、”0010(LLHL)”に設定される。
【０１２１】
ステップＳ７２で、スキャンチェーンＢのFF B1-FF B4が、スキャンチェーンＡのFF A1-FF A4の出力データを捕捉する。これにより、FF B1-FF B4は、”0010(LLHL)”を保持して出力する状態になる。
【０１２２】
ステップＳ７３では、スキャンチェーンＢが、FF B1-FF B4に保持しているデータをSCAN OUT Bとして出力し、出力データは、”0010(LLHL)”となり、１番目から３番目の出力データは期待値と不一致で、４番目のみ一致する。したがって、FF A1とFF A2の間に良／不良の境界があり、FF A2にホールド時間故障が発生している可能性が高いと特定される。
【０１２３】
参考として、FF A2にホールド時間故障が発生しておらず、正常な場合の図２５に対応するタイムチャートを、図２６に示す。FF A1-FF A4のすべてに”1010(HLHL)”が設定され、スキャンチェーンＢは “1010(HLHL)”のデータを捕捉してSCAN OUT Bとして出力するので、期待値と一致する。
【０１２４】
上記の図２３および図２５の不良が発生したアドレスをマージすると、FF B1(FF A1)とFF B2(FF A2)が良／不良の境界となるため、FF A2のシフトデータ入力SIとクロックCKの間のホールド時間エラーの可能性が高いことが分かる。
【０１２５】
第１実施形態の半導体装置では、２つのスキャンチェーンＡおよびＢを有する場合を説明したが、これに限定されず、スキャンチェーン数が、２の倍数であればよい。そのため、半導体装置にスキャンチェーンを形成する場合、スキャンチェーン数を２の倍数とし、２つのスキャンチェーンを対（ペア）にして、第１実施形態の構成を実現することが望ましい。
【０１２６】
また、第１実施形態の半導体装置では、スキャンチェーンＡを形成するＦＦの個数、すなわち段数と、スキャンチェーンＢの段数に等しい場合を説明した。半導体装置にスキャンチェーンを形成する場合、対にする２つのスキャンチェーンの段数を一致させることが望ましい。しかし、２つのスキャンチェーンの段数を一致させることができない場合も生じる。以下に説明する実施形態は、２つのスキャンチェーンの段数が一致しない場合に適用したものである。
【０１２７】
図２７は、第２実施形態の半導体装置の構成を示す図である。
第２実施形態の半導体装置は、スキャンチェーンＡが５個のＦＦで形成され、スキャンチェーンＢが４個のＦＦで形成されることが、第１実施形態と異なる。言い換えれば、第２実施形態の半導体装置は、スキャンチェーンＡの段数が５であるのに対して、スキャンチェーンＢの段数が４である。
【０１２８】
第２実施形態の半導体装置は、スキャンチェーンＡとスキャンチェーンＢの段数を一致させるために設けたダミーのフリップフロップFF B5を有する。スキャンチェーンＡの５番目のFF A5のデータ入力Ｄに入力するデータを、組合せ回路１０のデータとFF B5の出力データの間で選択する選択回路SA5が設けられる。しかし、FF B5は、組合せ回路１０のデータを捕捉する必要がないので、データ入力ＤにはFF A5の出力データが直接入力される。
【０１２９】
第２実施形態の半導体装置は、第１実施形態の半導体装置と同様に、スキャン回路（スキャンチェーンＡおよびＢ）の各種の故障および故障位置を推定することが可能である。スキャン回路の試験動作は、第１実施形態と同じなので、説明は省略する。
【０１３０】
図２８は、第３実施形態の半導体装置の構成を示す図である。
第３実施形態の半導体装置は、スキャンチェーンＡが５個のＦＦで形成され、スキャンチェーンＢが４個のＦＦで形成されることが、第１実施形態と異なる。言い換えれば、第３実施形態の半導体装置は、スキャンチェーンＡの段数が５であるのに対して、スキャンチェーンＢの段数が４である。
【０１３１】
第３実施形態の半導体装置は、スキャンチェーンＡの４段目のFF A4のデータ出力Ｑを外部にSCAN OUT A’として出力可能にしている。スキャンチェーンＡの５番目のFF A5のデータ入力Ｄには、組合せ回路１０のデータが直接入力される。
【０１３２】
第３実施形態の半導体装置では、スキャンチェーンＡの４段目までのＦＦとスキャンチェーンＢの試験は第１実施形態と同様に行われる。しかし、スキャンチェーンＡの５段目のFF A5についての試験は行えない。FF A5を含めたスキャンチェーンＡに故障が発生しているかは、図６のＳ１１の通常チェーン試験で判定可能である。スキャンチェーンＡに故障があると判定された場合に、スキャンチェーンＡの４段目までの試験を行い、故障が無ければ、FF A5に故障が発生したと推定できる。このように、第３実施形態の半導体装置では、FF A5に関係する故障の種類までは推定できないが、FF A5の良／不良は推定できるので、実用上は問題ない。第３実施形態の半導体装置は、第２実施形態のように、ダミーのＦＦを新たに設ける必要がないので、その分回路規模を小さくできる。
【０１３３】
以上説明した第１から第３実施形態の半導体装置は、スキャンチェーンの０／１固定故障によるスキャンデータの詰まり位置やホールド時間不良の故障推定が容易に行えるようになり、不良原因の早期原因究明に利用できる。
【０１３４】
特に、微細化が進む最新テクノロジーの製品開発時におけるスキャンチェーン不良にからむ検出不能な不具合の解析が、実施形態の回路を適用することにより容易になり、故障原因の特定をより精密に行えるようになる。
【０１３５】
さらに、実施形態の構成で原因究明されたプロセス不良及び設計不良原因を、実品種のプロセス及び設計にフィードバックすることで製品の不具合を未然に防げる。
実施形態で開示した技術は、製品にも適用できるが、ＴＥＧに適用することで試作段階での不具合解析の精度と速度を上げることが可能になる。
【０１３６】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【０１３７】
１０    組合せ回路（論理回路）
ＦＦ、FF A１−FF A５、FF B１−FF B５    フリップフロップ
ＳＥLＡ、ＳＥLＢ、ＳＡ１−ＳＡ５、ＳＢ１−ＳＢ４    選択回路
【図１】
2014137292.tif 000003
【図２】
2014137292.tif 000004
【図３】
2014137292.tif 000005
【図４】
2014137292.tif 000006
【図５】
2014137292.tif 000007
【図６】
2014137292.tif 000008
【図７】
2014137292.tif 000009
【図８】
2014137292.tif 000010
【図９】
2014137292.tif 000011
【図１０】
2014137292.tif 000012
【図１１】
2014137292.tif 000013
【図１２】
2014137292.tif 000014
【図１３】
2014137292.tif 000015
【図１４】
2014137292.tif 000016
【図１５】
2014137292.tif 000017
【図１６】
2014137292.tif 000018
【図１７】
2014137292.tif 000019
【図１８】
2014137292.tif 000020
【図１９】
2014137292.tif 000021
【図２０】
2014137292.tif 000022
【図２１】
2014137292.tif 000023
【図２２】
2014137292.tif 000024
【図２３】
2014137292.tif 000025
【図２４】
2014137292.tif 000026
【図２５】
2014137292.tif 000027
【図２６】
2014137292.tif 000028
【図２７】
2014137292.tif 000029
【図２８】
2014137292.tif 000030