(57)【要約】【課題】スキャンパスを動的に切り換えることにより、スキャンパスの故障箇所を容易に特定することができる半導体装置を提供する。【解決手段】半導体装置１は、スキャン回路を有する半導体装置であって、スキャン回路は、縦続接続される複数のフリップフロップと、前段のフリップフロップの出力を後段のフリップフロップに選択的に出力する１つ以上の選択部と、を有するスキャンパスを複数具備し、選択部は、自己の属するスキャンパス以外のスキャンパスに含まれるフリップフロップの出力を後段のフリップフロップに選択的に出力する。【選択図】図２
2010032428.tif 000002
【特許請求の範囲】
【請求項１】
スキャン回路を有する半導体装置であって、
前記スキャン回路は、縦続接続される複数のフリップフロップと、前段の前記フリップフロップの出力を後段の前記フリップフロップに選択的に出力する１つ以上の選択部と、を有するスキャンパスを複数具備し、
前記選択部は、自己の属するスキャンパス以外のスキャンパスに含まれる前記フリップフロップの出力を前記後段の前記フリップフロップに選択的に出力することを特徴とする半導体装置。
【請求項２】
前記複数の選択部は、マルチプレクサ又はクロスバーであることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記選択部は、チップ外部端子より制御可能な制御信号に基づいて、前段の前記フリップフロップの出力又は自己の属するスキャンパス以外のスキャンパスに含まれるフリップフロップの出力のいずれか一方を前記後段のフリップフロップに出力することを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
スキャン回路を有する半導体装置であって、
前記スキャン回路は、縦続接続される複数のフリップフロップと、
前段の前記フリップフロップの出力を後段の前記フリップフロップに選択的に出力するか、又は、複数段前の前記フリップフロップの出力を前記後段の前記フリップフロップに選択的に出力する１つ以上の選択部と、
を具備することを特徴とする半導体装置。
【請求項５】
スキャン回路を用いた半導体装置の検査方法であって、
スキャンパスを構成する複数のフリップフロップに機能テストモードにより検査値を設定し、
検査対象区間を迂回するパスを介して前記スキャンパスにスキャンテストモードにより所定の値を設定し、
前記スキャンパスから前記スキャンテストモードにより前記検査値及び前記所定の値を取り出すことを特徴とする半導体装置の検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置の検査方法に関し、特に、スキャンパスを動的に切り換えて、スキャンパスの故障箇所を特定する半導体装置及び半導体装置の検査方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の微細化に伴って、回路規模の増大及び複雑化が進み、実チップでの回路のテストが困難になっている。そのため、テストの容易化及び故障検出率の向上のための１つの方法として、スキャン回路を用いたスキャンテストが行われる。
【０００３】
スキャン回路は、回路内のフリップフロップ（以下、ＦＦという）をスキャンＦＦに置き換え、このスキャンＦＦをシリアルに接続しスキャンパスを構成したものである。スキャンテストは、このように構成されたスキャンパスを用い、直接テスト用の入力端子から回路内部のＦＦに値を設定し、かつ、直接テスト用の出力端子からＦＦの値を観測する手法である。このスキャンパスを用いてデータを入出力することにより半導体集積回路内部の状態を直接制御し、かつ、観測することができるので、テストの容易化及び故障検出率の向上を図ることができる。
【０００４】
スキャンテストでは、最初にスキャンパスが正しく動作することの確認が行われるが、このスキャンパスに故障が発生するとスキャンテストが実行できない。そこで、スキャンパス中に故障が発生すると、故障箇所を特定するためのデバッグが行われることになる。ところが、１つのスキャンパスには設計の規模にもよるが、数千個のスキャンＦＦが接続されているため、どのスキャンＦＦに問題があるかを特定することが困難である。
【０００５】
故障箇所を特定するためのデバッグを行う場合、設計者等が、デバッグ用に作成した所定のスキャンデータをスキャンインから入力し、スキャンアウトから出力された結果を解析する。更に、この解析結果を元にデバッグ用にスキャンデータを作成するというループを何度も繰り返す必要があり、故障しているスキャンＦＦを特定するためには、多くの時間が必要となる。
【０００６】
そこで、スキャンパスを繋ぎかえることにより、並列計算機の巨大システムのスキャンテストを効率的に行うスキャン装置が提供されている（例えば、特許文献１参照）。しかし、この提案では、ネットワークのスキャンパスを対象としており、半導体集積回路内のスキャンパスには適用できないという問題がある。
【特許文献１】特開平１０−１３４０１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、スキャンパスを動的に切り換えることにより、スキャンパスの故障箇所を容易に特定することができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、スキャン回路を有する半導体装置であって、前記スキャン回路は、縦続接続される複数のフリップフロップと、前段の前記フリップフロップの出力を後段の前記フリップフロップに選択的に出力する１つ以上の選択部と、を有するスキャンパスを複数具備し、前記選択部は、自己の属するスキャンパス以外のスキャンパスに含まれる前記フリップフロップの出力を前記後段の前記フリップフロップに選択的に出力することを特徴とする半導体装置を提供することができる。
【０００９】
本発明の一態様によれば、スキャン回路を用いた半導体装置の検査方法であって、スキャンパスを構成する複数のフリップフロップに機能テストモードにより検査値を設定し、検査対象区間を迂回するパスを介して前記スキャンパスにスキャンテストモードにより所定の値を設定し、前記スキャンパスから前記スキャンテストモードにより前記検査値及び前記所定の値を取り出すことを特徴とする半導体装置の検査方法を提供することができる。
【発明の効果】
【００１０】
本発明の半導体装置によれば、スキャンパスを動的に切り換えることにより、スキャンパスの故障箇所を容易に特定することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
（第１の実施の形態）
図1は、本発明の第1の実施の形態に係る半導体装置の構成を示すブロック図である。本実施の形態の半導体装置１は、入力端子２ａ、２ｂ及び２ｃと、出力端子３ａ、３ｂ及び３ｃと、スキャンイン端子４と、スキャンアウト端子５と、複数のＦＦ６ａ〜６ｎと、複数の組合せ回路７ａ〜７ｎと、スキャン回路１０とを有して構成されている。また、検査装置８は、このように構成された半導体装置１を検査するための装置である。
【００１３】
入力端子２ａには、検査装置８から所定のデータが入力される。入力端子２ａは、入力されたデータをＦＦ６ａに出力する。ＦＦ６ａは、入力端子２ａからのデータを取り込み、取り込んだデータを組合せ回路７ａに出力する。組合せ回路７ａは、入力されたデータから得られたデータをＦＦ６ｆに出力する。
【００１４】
ＦＦ６ｆは、組合せ回路７ａからのデータを取り込み、取り込んだデータを組合せ回路７ｄに出力する。組合せ回路７ｄは、入力されたデータから得られたデータをＦＦ６ｇに出力する。ＦＦ６ｇは、組合せ回路７ｄからのデータを取り込み、取り込んだデータを出力端子３ａに出力する。出力端子３ａは、入力されたデータを検査装置８に出力する。
【００１５】
このように構成される入力端子２ａから出力端子３ａまでの実線の矢印で示すパスを通常パスという。
【００１６】
同様に、入力端子２ｂは、入力されたデータをＦＦ６ｂに出力する。ＦＦ６ｂ、組合せ回路７ｂ、ＦＦ６ｅ、組合せ回路７ｅ及びＦＦ６ｈを介して得られたデータは、出力端子３ｂに出力され、出力端子３ｂは、入力されたデータを検査装置８に出力する。
【００１７】
同様に、入力端子２ｃは、入力されたデータをＦＦ６ｃに出力する。ＦＦ６ｃ、組合せ回路７ｃ、ＦＦ６ｄ、組合せ回路７ｎ及びＦＦ６ｎを介して得られたデータは、出力端子３ｃに出力され、出力端子３ｃは、入力されたデータを検査装置８に出力する。
【００１８】
スキャン回路１０は、半導体装置１内のＦＦを通常パスとは異なるパスによりシリアルに接続し構成されている。ここで、通常パスとは異なるパスとは、破線の矢印により示すスキャンパスである。なお、図１において、スキャン回路１０の構成は、簡易的に示しており、スキャン回路１０の詳細の構成については、後述する図２を用いて説明する。
【００１９】
スキャンイン端子４には、検査装置８からデータが入力され、スキャンイン端子４は、このデータをＦＦ６ａに出力する。また、スキャンアウト端子５には、ＦＦ６ｎからデータが入力され、スキャンアウト端子５は、このデータを検査装置８に出力する。なお、スキャン回路１０の構成については、後述する図２を用い詳細に説明する。
【００２０】
このように構成された半導体装置１のファンクションテストを実施する場合、通常パスを用いることになる。即ち、検査装置８から所定のテストパターンが、入力端子２ａ、２ｂ及び２ｃにそれぞれ入力される。入力端子２ａに入力されたテストパターンは、通常パスにより接続されている各回路に入出力され、得られたデータが出力端子３ａから検査装置８に出力される。同様に、入力端子２ｂに入力されたテストパターンは、通常パスにより接続されている各回路に入出力され、得られたデータが出力端子３ｂから検査装置８に出力される。同様に、入力端子２ｃに入力されたテストパターンは、通常パスにより接続されている各回路に入出力され、得られたデータが出力端子３ｃから検査装置８に出力される。
【００２１】
検査装置８は、出力端子３ａ、３ｂ及び３ｃから入力されたデータと期待値との比較を行い、半導体装置１の故障の有無を判定する。
【００２２】
一方、スキャンテストを実施する場合、このスキャンパスを用い、スキャンイン端子４から半導体装置１内のＦＦに値が設定され、かつ、スキャンアウト端子５から半導体装置１内のＦＦの値が読み出される。即ち、検査装置８からスキャンイン端子４にデータが入力されることにより、スキャン回路１０内のＦＦに所定の値を設定でき、スキャンアウト端子５から出力されたデータを検査装置８に入力することにより、スキャン回路１０内のＦＦの値を観測することができる。
【００２３】
ここで、半導体装置１内のスキャン回路１０について詳細に説明する。図２は、半導体装置１内のスキャン回路１０の構成を示すブロック図である。スキャン回路１０は、スキャンパス１１ａ，１１ｂ，１１ｃ，１１ｄの４本のスキャンパスを有して構成されている。なお、スキャン回路１０では、説明の理解を容易にするためにスキャンパスが４本で構成されている例を示しているが、スキャンパスの本数は、４本に限定されることはない。
【００２４】
スキャンパス１１ａは、スキャンＦＦ２１ａ〜３６ａの１６個のスキャンＦＦとマルチプレクサ（以下、ＭＵＸという）４１ａ〜４３ａの３個のＭＵＸとを有して構成されている。同様に、スキャンパス１１ｂは、スキャンＦＦ２１ｂ〜３６ｂとＭＵＸ４１ｂ〜４３ｂとを有し、スキャンパス１１ｃは、スキャンＦＦ２１ｃ〜３６ｃとＭＵＸ４１ｃ〜４３ｃとを有し、スキャンパス１１ｄは、スキャンＦＦ２１ｄ〜３６ｄとＭＵＸ４１ｄ〜４３ｄとを有して構成されている。
【００２５】
スキャン回路１０の全てのスキャンＦＦは、図示しない同一クロックの立ち上がりエッジで動作する。なお、各スキャンパスには、説明の理解を容易にするためにスキャンＦＦが１６個とＭＵＸが３個とで構成されている例を示しているが、この構成に限定されることはない。
【００２６】
スキャン回路１０の全てのＭＵＸは、図示しない選択信号に基づいて、同一のスキャンパス内のスキャンＦＦの出力と異なるスキャンパス内のスキャンＦＦの出力とのどちらか一方を選択し、後段のスキャンＦＦに出力する。各ＭＵＸは、選択信号が０の場合、同一のスキャンパス内のスキャンＦＦの出力を選択し、選択信号が１の場合、異なるスキャンパス内のスキャンＦＦの出力を選択する。なお、選択信号は、チップ外部の端子から制御できるようにする。
【００２７】
ここで、スキャンパス１１ａの構成について、具体的に説明する。
【００２８】
スキャンＦＦ２１ａには、スキャンインからのデータが入力される。スキャンＦＦ２１ａは、このデータをクロックの立ち上がりエッジおいて取り込み、取り込んだデータをスキャンＦＦ２２ａに出力する。
【００２９】
スキャンＦＦ２２ａは、スキャンＦＦ２１ａからのデータを次のクロックの上がりエッジおいて取り込み、取り込んだデータをスキャンＦＦ２３ａに出力する。
【００３０】
スキャンＦＦ２３ａは、スキャンＦＦ２２ａからのデータを次のクロックの上がりエッジおいて取り込み、取り込んだデータをスキャンＦＦ２４ａに出力する。
【００３１】
スキャンＦＦ２４ａは、スキャンＦＦ２３ａからのデータを次のクロックの上がりエッジおいて取り込み、取り込んだデータをＭＵＸ４１ａに出力するとともに、ＭＵＸ４１ｂにも出力する。
【００３２】
このように、スキャンＦＦは、クロックが入力される毎に、前段のスキャンＦＦから出力されるデータを取り込み、後段のスキャンＦＦに取り込んだデータを出力するというスキャンシフトを繰り返す。
【００３３】
ＭＵＸ４１ａには、スキャンＦＦ２４ａから出力されるデータが入力されるとともに、スキャンＦＦ２４ｂから出力されるデータが入力される。ＭＵＸ４１ａは、選択信号に基づいて、スキャンＦＦ２４ａ又はスキャンＦＦ２４ｂの出力のどちらか一方を選択して、スキャンＦＦ２５ａに出力する。上述したように、選択信号が０の場合、ＭＵＸ４１ａは、同一のスキャンパス内のスキャンＦＦ、即ち、スキャンパス１１ａのスキャンＦＦ２４ａの出力を選択する。一方、選択信号が１の場合、ＭＵＸ４１ａは、異なるスキャンパス内のスキャンＦＦ、即ち、スキャンパス１１ｂのスキャンＦＦ２４ｂの出力を選択する。
【００３４】
スキャンＦＦ２５ａには、ＭＵＸ４１ａからのデータが入力される。スキャンＦＦ２５ａは、スキャンシフトを行うことにより、取り込んだデータをスキャンＦＦ２６ａに出力する。
【００３５】
同様に、スキャンＦＦ２６ａは、スキャンシフトを行うことにより、取り込んだデータをスキャンＦＦ２７ａに出力し、スキャンＦＦ２７ａは、スキャンシフトを行うことにより、取り込んだデータをスキャンＦＦ２８ａに出力する。
【００３６】
スキャンＦＦ２８ａは、取り込んだデータをＭＵＸ４２ａに出力するとともに、ＭＵＸ４２ｄにも出力する。
【００３７】
ＭＵＸ４２ａには、スキャンＦＦ２８ａから出力されるデータが入力されるとともに、スキャンＦＦ２８ｄから出力されるデータが入力される。ＭＵＸ４２ａは、選択信号に基づいて、スキャンＦＦ２８ａ又はスキャンＦＦ２８ｄの出力のどちらか一方を選択して、スキャンＦＦ２９ａに出力する。
【００３８】
以下、同様の構成になっており、スキャンシフトを行うことにより、スキャンＦＦ３６ａは、取り込んだデータをスキャンアウトから出力する。
【００３９】
スキャンパス１１ｂ、１１ｃ、１１ｄについても、スキャンパス１１ａと同様の構成になっている。
【００４０】
このように、本実施の形態では、スキャンパスの途中にＭＵＸを挿入することにより、異なるスキャンパスとの切り換えが行えるようになっている。
【００４１】
次に、このように構成された実施の形態の動作について説明する。
【００４２】
まず、スキャンパス１１ａに故障がないかのチェックを行うための簡単なテストを実行する。以下、簡単なテストをサニティーテストと呼ぶ。ＭＵＸ４１ａ〜４３ｂの選択信号に０を入力しておき、同一のスキャンパスを選択するようにしておく。スキャンインから０を入力し、スキャンシフトにより全てのスキャンＦＦ、即ち、スキャンＦＦ２１ａ〜３６ａに０を保持させる。その後、スキャンインから１を入力し、スキャンシフトにより想定したサイクル後にスキャンアウトから１が出力されるかを確認する。
【００４３】
スキャンパス１１ｂ、１１ｃ、１１ｄに対して、同様のサニティーテストを実行することにより、スキャンパスに故障がないか確認することができる。
【００４４】
ここで、一部のスキャンＦＦ、例えば、スキャンＦＦ３０ａに不良がある場合について説明する。この場合、上述したサニティーテストを実行すると、スキャンパス１１ａに故障があり、スキャンパス１１ｂ、１１ｃ、１１ｄに故障がないことが判明する。
【００４５】
このように、スキャンパス１１ａに故障があると判明した場合、スキャンパス１１ａのどのスキャンＦＦに故障があるかを特定するために、スキャンパスを動的に切り換えてテストを実行することになる。
【００４６】
スキャンパスを動的に切り換えるには、ＭＵＸに入力する選択信号を０から１に変更することにより行うことができる。
【００４７】
まず、スキャンパス１１ｂのＭＵＸ４３ｂに入力する選択信号を１にする。スキャンパス１１ａのスキャンインからデータを入力し、順次、スキャンシフトさせていく。スキャンＦＦ３２ａの出力は、ＭＵＸ４３ａに入力されるとともに、ＭＵＸ４３ｂにも入力される。ＭＵＸ４３ｂは、選択信号が１のため、スキャンＦＦ３２ａの出力を選択して、スキャンＦＦ３３ｂに出力する。その後、順次、スキャンシフトされてスキャンパス１１ｂのスキャンアウトからデータが出力される。この場合、テストパスに故障しているスキャンＦＦ３０ａが含まれているため、テストはＮＧとなる。
【００４８】
次に、スキャンパス１１ｄのＭＵＸ４２ｄに入力する選択信号を１にする。スキャンパス１１ａのスキャンインからデータを入力し、順次、スキャンシフトさせていく。スキャンＦＦ２８ａの出力は、ＭＵＸ４２ａに入力されるとともに、ＭＵＸ４２ｄにも入力される。ＭＵＸ４２ｄは、選択信号が１のため、スキャンＦＦ２８ａの出力を選択して、スキャンＦＦ２９ｄに出力する。その後、順次、スキャンシフトされてスキャンパス１１ｄのスキャンアウトからデータが出力される。この場合、テストパスに故障しているスキャンＦＦ３０ａが含まれていないため、テストはＰＡＳＳとなる。
【００４９】
この結果、故障箇所は、ＭＵＸ４２ａからＭＵＸ４３ａの間に存在することが判明する。
【００５０】
ここで、故障箇所を特定する処理の流れについて説明する。図３は、故障箇所を特定する処理の流れの例を示すフローチャートである。
【００５１】
まず、スキャン回路１０の全てのスキャンパスに対してサニティーテストが実行される（ステップＳ１）。次に、全てのスキャンパスがテストをＰＡＳＳしたか否かが検出される（ステップＳ２）。全てのスキャンパスがテストをＰＡＳＳしている場合、ＹＥＳとなり、処理を終了する。全てのスキャンパスがテストをＰＡＳＳしていない場合、ＮＯとなり、スキャンパスを切り換えてテストを実施する（ステップＳ３）。
【００５２】
最後に、スキャンパスを切り換えて実施したテスト結果がＰＡＳＳしたか否かが検出される（ステップＳ４）。テスト結果がＰＡＳＳしていない場合、ＮＯとなり、ステップＳ３に戻りスキャンパスを切り換える箇所を変更し、再度テストを実施する。テスト結果がＰＡＳＳしている場合、ＹＥＳとなり、処理を終了する。
【００５３】
以上の処理の結果、スキャンパスを切り換える箇所を変更してテストを実施し、テストがＰＡＳＳしたか否かを確認することにより、どのＭＵＸとどのＭＵＸとの間に不良があるかを検出することができる。
【００５４】
よって、本実施の形態の半導体装置１によれば、スキャンパスを動的に切り換えることにより、スキャンパスの故障箇所を容易に特定することができる。
【００５５】
（変形例１）
図４は、第１の実施の形態におけるスキャン回路１０の変形例１を示すブロック図である。図４において図２と同一の構成要素には同一符号を付して説明を省略する。
【００５６】
図４に示すスキャン回路１０ａは、図２のＭＵＸに代わりクロスバーを用いて構成されている。即ち、ＭＵＸ４１ａ〜ＭＵＸ４１ｄに代わりクロスバー５１ａ〜クロスバー５１ｄを用い、ＭＵＸ４２ａ〜ＭＵＸ４２ｄに代わりクロスバー５２ａ〜クロスバー５２ｄを用い、ＭＵＸ４３ａ〜ＭＵＸ４３ｄに代わりクロスバー５３ａ〜クロスバー５３ｄを用いて構成されている。
【００５７】
クロスバー５１ａには、スキャンＦＦ２４ａ、スキャンＦＦ２４ｂ、スキャンＦＦ２４ｃ及びスキャンＦＦ２４ｄから出力されるデータが入力される。クロスバー５１ａは、図示しない選択信号に基づいて、スキャンＦＦ２４ａ、スキャンＦＦ２４ｂ、スキャンＦＦ２４ｃ又はスキャンＦＦ２４ｄの出力の何れか１つのデータを選択して、スキャンＦＦ２５ａに出力する。他のクロスバーについてもクロスバー５１ａと同様の構成となっている。
【００５８】
このように、変形例１のスキャン回路１０ａは、クロスバーを用いることで全てのスキャンパスを切り換えることが可能となる。その結果、故障しているスキャンパスが複数ある場合にも、確実に故障していないスキャンパスに切り換えることが可能となり、スキャンパスの故障箇所を容易に特定することができる。
【００５９】
（変形例２）
図５は、第１の実施の形態におけるスキャン回路１０の変形例２を示すブロック図である。図５において図２と同一の構成要素には同一符号を付して説明を省略する。
【００６０】
図５に示すスキャン回路１０ｂは、図２のＭＵＸ４１ａ、ＭＵＸ４２ａ及びＭＵＸ４３ａに代わり、それぞれＭＵＸ６１ａ、ＭＵＸ６２ａ及びＭＵＸ６３ａを用いて構成されている。
【００６１】
ＭＵＸ６１ａには、スキャンＦＦ２４ａ及びスキャンインからのデータが入力される。ＭＵＸ６１ａは、図示しない選択信号に基づいて、スキャンＦＦ２４ａ又はスキャンインから入力されるデータのどちらか一方を選択して、スキャンＦＦ２５ａに出力する。
【００６２】
同様に、ＭＵＸ６２ａは、図示しない選択信号に基づいて、スキャンＦＦ２８ａ又はＭＵＸ６１ａから入力されるデータのどちらか一方を選択して、スキャンＦＦ２９ａに出力する。
【００６３】
同様に、ＭＵＸ６３ａは、図示しない選択信号に基づいて、スキャンＦＦ３２ａ又はＭＵＸ６２ａから入力されるデータのどちらか一方を選択して、スキャンＦＦ３３ａに出力する。
【００６４】
このように、変形例２のスキャン回路１０ｂは、ＭＵＸ６１ａ〜ＭＸＵ６３ａを用いることで、同一のスキャンパス内においてスキャンパスの構成を動的に切り換えることが可能となる。この結果、スキャン回路に１つのスキャンパスしか存在しない場合にも、スキャンパスを動的に切り換えることにより、スキャンパスの故障箇所を容易に特定することができる。
【００６５】
上述した実施の形態、変形例１及び変形例２において、スキャンパス内にＭＵＸ又はクロスバーを多く挿入することにより、スキャンＦＦの故障箇所の特定が容易になる。
【００６６】
また、同一のスキャンパスには、実配置の近いスキャンＦＦが接続されている可能性が高く、他のスキャンパスとは実配置が遠い可能性がある。そのため、他のスキャンパスに切り換えることによるクロックの速度が問題になることが考えられる。しかし、このスキャンパスの切り換えは、スキャン回路をデバッグすることを目的としており、テスト時間を短くする必要がある量産テストには使用しないため、クロックの速度は問題にならない。
【００６７】
（第２の実施の形態）
次に、第２の実施の形態について説明する。第２の実施の形態では、第１の実施の形態のスキャン回路１０を用い、特定のスキャンＦＦの値を容易に確認することができる半導体装置の検査方法について説明する。
【００６８】
例えば、実チップにおいて故障又は設計上の不具合が発生した場合、故障又は設計上の不具合についての解析を行うことになる。解析の方法としては、ファンクションテストのプログラムを所定の場所まで実行し、プログラムを停止する。このとき、回路内のＦＦには、所定の値が保持されている。
【００６９】
次に、スキャンテストのモードに切り換え、スキャンシフトさせることにより、ＦＦの値、即ちスキャンＦＦの値が、順次、スキャンアウトより出力される。スキャンアウトから出力された結果に基づいて、特定のスキャンＦＦの値、例えば、１００番目のスキャンＦＦの値を確認し、故障又は設計上の不具合の解析が行われる。
【００７０】
ところが、スキャンパスに故障がない場合でも、スキャンテスト用のクロック又はシフトイネーブルが入力されるタイミングにより、想定した出力結果より数サイクルずれてしまうことがある。即ち、１００番目のスキャンＦＦの値を確認するときに、実際に１００番目のスキャンＦＦの値であることの確証をとることが困難である。
【００７１】
そこで、特定のスキャンＦＦの値であることの確証をとるために、図２のスキャン回路１０を利用する。例えば、スキャンＦＦ３１ａの値を確認したい場合、ＭＵＸにより区切られたスキャンＦＦに０又は１等の値を保持させる。スキャンＦＦ２１ａ〜２４ａ及びスキャンＦＦ３３ａ〜３６ａには、０を保持させ、スキャンＦＦ２５ａ〜２８ａには、１を保持させる。スキャンＦＦ２９ａ〜３２ａには、ファンクションテスト時の所定の値を保持させておく。その後、スキャンシフトにより、順次、スキャンアウトからデータを取り出す。スキャンアウトから連続した０の値又は１の値とＭＵＸの挿入位置に基づいて、特定のスキャンＦＦの値を確認する。
【００７２】
具体的には、ファンクションテストのプログラムを所定の位置で停止させると、スキャンＦＦ２１ａ〜３６ａは、プログラムが停止したときの検査値を保持する。そして、スキャンテストのモードに切り換え、スキャンパス１１ａのスキャンインから０の値をスキャンＦＦ２１ａに入力する。ここで、ＭＵＸ４１ｂ及びＭＵＸ４３ａに他のスキャンパスを選択する選択信号を入力し、ＭＵＸ４２ｂに同一のスキャンパスを選択する選択信号を入力する。この場合、スキャンインから入力された０の値は、スキャンシフトによりスキャンＦＦ２４ａに取り込まれた後、ＭＵＸ４１ｂを介して、スキャンＦＦ２５ｂに出力される。スキャンＦＦ２５ｂに取り込まれた０の値は、スキャンシフトによりスキャンＦＦ３２ｂに取り込まれた後、ＭＵＸ４３ａを介して、スキャンＦＦ３３ａに出力される。スキャンＦＦ３３ａに取り込まれた０の値は、スキャンシフトによりスキャンＦＦ３６ａに取り込まれる。これにより、スキャンＦＦ２１ａ〜２４ａ及びスキャンＦＦ３３ａ〜３６ａには、０の値が保持されることになる。
【００７３】
次に、スキャンパス１１ｂのスキャンインから１の値をスキャンＦＦ２１ｂに入力する。ここで、ＭＵＸ４１ａに他のスキャンパスを選択する選択信号を入力する。この場合、スキャンインから入力された１の値は、スキャンシフトによりスキャンＦＦ２４ｂに取り込まれた後、ＭＵＸ４１ａを介して、スキャンＦＦ２５ａに出力される。スキャンＦＦ２５ａに取り込まれた１の値は、スキャンシフトによりスキャンＦＦ２８ａに取り込まれる。これにより、スキャンＦＦ２５ａ〜２８ａには、１の値が保持されることになる。なお、スキャンＦＦ２９ａ〜３２ａには、入力されるクロックを止めることにより、ファンクションテストのプログラムが停止したときの値が保持されることになる。
【００７４】
以上により、スキャンＦＦ２１ａ〜２４ａには０の値が保持され、スキャンＦＦ２５ａ〜２８ａには、１の値が保持され、スキャンＦＦ２９ａ〜３２ａにはファンクションテストのプログラムが停止したときの値が保持され、スキャンＦＦ３３ａ〜３６ａには、０の値が保持された状態となる。
【００７５】
ここで、ＭＵＸ４１ａ、４２ａ及び４３ａに同一のスキャンパスを選択する選択信号を入力し、スキャンシフトさせることにより、上述したスキャンＦＦ２１ａ〜３６ａに保持された値が、順次、スキャンパス１１ａのスキャンアウトから出力される。
【００７６】
スキャンアウトから出力されたデータには、検査対象区間であるスキャンＦＦ２９ａ〜３２ａの値以外は、連続した０の値又は１の値が格納されている。この連続した０の値又は１の値とＭＵＸの挿入位置に基づいて、特定のスキャンＦＦの値を容易に確認することができる。
【００７７】
ここで、特定のスキャンＦＦの値を確認する処理の流れについて説明する。図６は、特定のスキャンＦＦの値を確認する処理の流れの例を示すフローチャートである。
【００７８】
まず、ファンクションテストのプログラムを所定の場所まで実行し、プログラムを停止することにより、スキャンＦＦに検査値を設定させる（ステップＳ１）。次に、スキャンテストのモードに切り換え、値を確認したいスキャンＦＦがあるＭＵＸとＭＵＸで区切られた区間である検査対象区間以外に０又は１の値を保持させる（ステップＳ２）。次に、スキャンアウトから、順次、スキャンＦＦの値を取り出す（ステップＳ３）。最後に、スキャンアウトから出力される連続した０又は１の値とＭＵＸの挿入位置に基づいて、特定のスキャンＦＦの値を確認する（ステップＳ４）。
【００７９】
以上の処理の結果、スキャンアウトからのデータには、値を確認したいスキャンＦＦを含むＭＵＸで区切られた区間以外は、０又は１の値が格納されている。これにより、スキャンテスト用のクロック又はシフトイネーブルが入力されるタイミングにより、想定した出力結果より数サイクルずれたデータがスキャンアウトから出力された場合でも、連続した０又は１の値とＭＵＸの挿入位置に基づいて、特定のスキャンＦＦの値を確認することが可能になる。
【００８０】
よって、本実施の形態の半導体装置の検査方法によれば、特定のスキャンＦＦの値を容易に確認することができる。
【００８１】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００８２】
【図１】本発明の第1の実施の形態に係る半導体装置の構成を示すブロック図である。
【図２】半導体装置１内のスキャン回路１０の構成を示すブロック図である。
【図３】故障箇所を特定する処理の流れの例を示すフローチャートである。
【図４】第１の実施の形態におけるスキャン回路１０の変形例１を示すブロック図である。
【図５】第１の実施の形態におけるスキャン回路１０の変形例２を示すブロック図である。
【図６】特定のスキャンＦＦの値を確認する処理の流れの例を示すフローチャートである。
【符号の説明】
【００８３】
１…半導体装置、２ａ，２ｂ，２ｃ…入力端子、３ａ，３ｂ，３ｃ…出力端子、４…スキャンイン端子、５…スキャンアウト端子、６ａ〜６ｎ…ＦＦ、７ａ〜７ｎ…組合せ回路、８…検査装置、１０，１０ａ，１０ｂ…スキャン回路、１１ａ〜１１ｄ…スキャンパス、２１ａ〜３６ａ，２１ｂ〜３６ｂ，２１ｃ〜３６ｃ，２１ｄ〜３６ｄ…スキャンＦＦ、４１ａ〜４３ａ，４１ｂ〜４３ｂ，４１ｃ〜４３ｃ，４１ｄ〜４３ｄ…ＭＵＸ、５１ａ〜５３ａ，５１ｂ〜５３ｂ，５１ｃ〜５３ｃ，５１ｄ〜５３ｄ…クロスバー、６１ａ〜６３ａ…ＭＵＸ。
【図１】
2010032428.tif 000003
【図２】
2010032428.tif 000004
【図３】
2010032428.tif 000005
【図４】
2010032428.tif 000006
【図５】
2010032428.tif 000007
【図６】
2010032428.tif 000008