(57)【特許請求の範囲】
【請求項１】
一以上のスキャンフリップフロップがシリアルに接続された一以上のスキャンチェインと、組み合わせ回路とを備え、
前記スキャンフリップフロップが、前記スキャンチェイン内の前記スキャンフリップフロップをシフトレジスタとして動作させるスキャンシフト動作と、前記組み合わせ回路の出力をキャプチャするキャプチャ動作とを切り替え可能な半導体装置であって、
前記スキャンフリップフロップは、
前記スキャンシフト動作時において、外部から入力される外部入力テスト信号及び同じ前記スキャンチェイン内の前段のスキャンフリップフロップを介して入力されるシフトテスト信号のいずれかを選択する選択部と、
前記選択部によって選択された外部入力テスト信号又はシフトテスト信号を出力するフリップフロップと、
を有し、
前記半導体装置は、複数の前記スキャンチェインの出力側に接続され、複数の前記スキャンチェインからの出力を圧縮変換する圧縮器を備える、
半導体装置。
【請求項２】
前記スキャンフリップフロップに設定されるテストパターンに応じて、前記選択部が前記外部入力テスト信号又は前記シフトテスト信号のいずれを選択するかを制御する制御回路をさらに備える、
請求項１に記載の半導体装置。
【請求項３】
前記圧縮器は、前記スキャンチェインの本数に応じて圧縮率を変更する、
請求項１に記載の半導体装置。
【請求項４】
複数の前記スキャンチェインと前記圧縮器との間に設けられ、複数の前記スキャンチェインからの出力のうち、特定のテスト結果の一部の前記圧縮器への入力を遮断するマスク回路をさらに備える、
請求項１に記載の半導体装置。
【請求項５】
前記スキャンチェインは、前記スキャンシフト動作と前記キャプチャ動作とを切り替え可能なシフト用スキャンフリップフロップを含み、
前記シフト用スキャンフリップフロップは、
前記スキャンシフト動作時において、入力される前記外部入力テスト信号又は前記シフトテスト信号をそのまま出力する、
請求項１に記載の半導体装置。
【請求項６】
複数の前記スキャンチェインの入力側に接続され、前記外部入力テスト信号を前記スキャンチェインの本数に応じて伸張変換する伸張器をさらに備え、
前記シフト用スキャンフリップフロップは、前記伸張器に接続される、
請求項５に記載の半導体装置。
【請求項７】
複数の前記スキャンチェインの入力側に接続され、前記外部入力テスト信号を前記スキャンチェインの本数に応じて伸張変換する伸張器をさらに備える、
請求項１に記載の半導体装置。
【請求項８】
一以上のスキャンフリップフロップがシリアルに接続された一以上のスキャンチェイン内の該スキャンフリップフロップをシフトレジスタとして動作させるスキャンシフト動作と、組み合わせ回路の出力をキャプチャするキャプチャ動作とを切り替え可能なスキャンフリップフロップを備える半導体装置の設計装置であって、
予め設定されたプログラムに従って所定の処理を実行可能な演算処理装置を備え、
前記演算処理装置は、
前記スキャンシフト動作時において、外部から入力される外部入力テスト信号及び同じ前記スキャンチェイン内の前段のスキャンフリップフロップを介して入力されるシフトテスト信号のいずれかを出力するかを選択可能な前記スキャンフリップフロップを含む半導体装置を、ネットリストを参照して生成する回路生成処理を実行し、
更に、複数の前記スキャンチェインの出力側に、複数の前記スキャンチェインからの出力を圧縮変換する圧縮器を挿入する圧縮器挿入処理を実行する、
設計装置。
【請求項９】
前記演算処理装置は、
予め入力された故障リストから検出対象候補故障を選択し、当該検出対象候補故障に対応するケアビットを算出するケアビット算出処理と、
前記ケアビットに応じて、前記外部入力テスト信号又は前記シフトテスト信号のいずれを選択するかを制御し、前記スキャンチェインの構成を切り替える切替処理を実行する、
請求項８に記載の設計装置。
【請求項１０】
前記演算処理装置は、
切替えられた前記スキャンチェインの構成に応じて、テストステップ数が極小となるようなテストパターンを生成するテストパターン生成処理を更に実行する、
請求項９に記載の設計装置。
【請求項１１】
前記演算処理装置は、
切り替えられた前記スキャンチェインの構成における制約条件下で、他の故障を検出する追加ケアビットを生成する追加ケアビット生成処理を更に実行する、
請求項１０に記載の設計装置。
【請求項１２】
前記圧縮器は、前記スキャンチェインの本数に応じて圧縮率を変更する、
請求項８に記載の設計装置。
【請求項１３】
前記演算処理装置は、
複数の前記スキャンチェインと前記圧縮器との間に、複数の前記スキャンチェインからの出力のうち、特定のテスト結果の一部の前記圧縮器への入力を遮断するマスク回路をさらに挿入する処理を実行する、
請求項８に記載の設計装置。
【請求項１４】
前記演算処理装置は、
前記回路生成処理において、
前記スキャンシフト動作と前記キャプチャ動作とを切り替え可能であり、前記スキャンシフト動作時において、入力される前記外部入力テスト信号又は前記シフトテスト信号をそのまま出力するシフト用スキャンフリップフロップをさらに含む半導体装置を生成する、
請求項８に記載の設計装置。
【請求項１５】
前記演算処理装置は、
複数の前記スキャンチェインの入力側に、前記外部入力テスト信号を前記スキャンチェインの本数に応じて伸張変換する伸張器をさらに挿入し、
前記シフト用スキャンフリップフロップを、前記伸張器に接続する処理を実行する、
請求項１４に記載の設計装置。
【請求項１６】
前記演算処理装置は、
複数の前記スキャンチェインの入力側に、前記外部入力テスト信号を前記スキャンチェインの本数に応じて伸張変換する伸張器をさらに挿入する処理を実行する、
請求項８に記載の設計装置。
【請求項１７】
一以上のスキャンフリップフロップがシリアルに接続された一以上のスキャンチェイン内の該スキャンフリップフロップをシフトレジスタとして動作させるスキャンシフト動作と、組み合わせ回路の出力をキャプチャするキャプチャ動作とを切り替え可能なスキャンフリップフロップであって、
前記スキャンフリップフロップは、
前記スキャンシフト動作時において、外部から入力される外部入力テスト信号、又は、同じ前記スキャンチェイン内の前段のスキャンフリップフロップを介して入力されるシフトテスト信号を選択する選択部と、
前記選択部において選択された外部入力テスト信号又はシフトテスト信号を出力するフリップフロップと、
を備え、
前記選択部は、
前記外部入力テスト信号が入力される第１スキャンイン端子と、
前記シフトテスト信号が入力される第２スキャンイン端子と、
前記スキャンシフト動作と前記キャプチャ動作とを切り替える切替信号が入力される第１制御入力端子と、
前記外部入力テスト信号又は前記シフトテスト信号を選択する制御信号が入力される第２制御入力端子と、
を備える、
スキャンフリップフロップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及び設計装置に関し、例えば可変圧縮スキャンテスト可能な半導体装置及びその設計装置に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）の一般的なテスト手法としてスキャンテストがある。スキャンテストでは、回路内のフリップフロップ（ＦＦ）がスキャンＦＦと呼ばれるマルチプレクサ（ＭＵＸ）付のＦＦに置換される。ＭＵＸは、スキャンイネーブル信号により、テスト入力と通常動作入力とを切り替える。
【０００３】
スキャンテスト時には、スキャンＦＦがＬＳＩの外部入出力端子から制御可能なシフトレジスタ（これを「スキャンチェイン」と呼ぶ）として動作するように、スキャンＦＦ同士がシリアルに接続される。スキャンイネーブル信号に応じて、スキャンチェインをシフト動作（これを「スキャンシフト動作」と呼ぶ）させることによって、任意のテストパターンが各スキャンＦＦに設定される。
【０００４】
そして、スキャンイネーブル信号を切り替えることにより、通常動作入力からの値がスキャンＦＦに取り込まれる（これを「キャプチャ動作」と呼ぶ）。キャプチャ動作で取得された値は再びスキャンＦＦでシフトされ、応答が観測される（アンロード）。このアンロードと同時に、次のテストパターンの印加（ロード）が行われる。このようにしてスキャンテストが実行される。
【０００５】
スキャンテストでは、スキャンチェインに接続されているスキャンＦＦ数に対応したシフトサイクル数が必要であるため、非常に長いテストステップ数が必要となる。スキャンチェインの段数が大きい回路ではスキャンテスト時間が長くなり、テストコストに大きく影響してしまう。
【０００６】
特許文献１には、スキャンチェインにシフト動作をさせるためのテストパターン数を低減するスキャンチェインの構築方法が開示されている。特許文献１に記載のスキャンチェインでは、複数のスキャンＦＦ間にバイパス用のセレクタが挿入されている。この構築方法では、複数のスキャンＦＦにそれぞれ接続された組み合わせ回路のテストに必要なテストパターン数を算出し、該テストパターン数に対応して複数のスキャンＦＦがグループ化される。テストが終了した組み合わせ回路に接続されるスキャンＦＦをグループ単位でバイパスさせることで、シフト動作をパスさせてテストパターン数を低減する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−７７３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
スキャンテスト時間を削減する他の手法として、圧縮スキャンがある。圧縮スキャンでは、外部端子数よりも多くのスキャンチェインを内部に構築することで、スキャンチェイン１本辺りのスキャンＦＦの段数を削減する。そして、外部端子から供給した値を、伸張回路を経由して内部のスキャンチェイン本数分に展開し、各スキャンＦＦにテストパターンを印加する。また、スキャンチェインからの出力を圧縮回路で圧縮して外部出力チャネルで観測する。
【０００９】
圧縮スキャンでは、伸張回路及び圧縮回路を用いない場合と比較して、故障検出に必要なスキャンＦＦの設定値（ケアビット）を少ないシフトサイクル数で設定することができる。また、少ないシフトサイクル数で全スキャンＦＦの観測を行うことができ、外部入出力端子１ｂｉｔ（１サイクル） 辺りの故障検出数を増やし、テストステップ数を削減することができる。圧縮スキャンでの外部入出力端子ペア数とスキャンチェイン本数の比を圧縮率と呼ぶ。
【００１０】
従来の圧縮スキャンでは圧縮率を変更することができないため、テストパターン数が少なくなるような最適な圧縮率をユーザが考える必要がある。圧縮率を上げ過ぎると故障検出に必要なケアビットが設定できず、故障検出率が低下し、テストパターン毎の検出効率も落ちる。
【００１１】
特定のスキャンＦＦにおける故障検出に必要なケアビットは、他のスキャンＦＦの値との組み合わせで決定される。特許文献１では、複数の組み合わせ回路をテストするのに必要なテストパターン数に基づいてスキャンチェインの構成を変更している。効果的にスキャンチェイン段数を低減させるためには、ケアビットに応じてパタン毎にスキャンチェイン構成を変える必要があり、構成数が増え過ぎるために実用的な面積オーバーヘッドで実現できない。
【００１２】
また、圧縮スキャンで設定可能なケアビットは、スキャンチェインの構成によっても変化する。特許文献１では、圧縮スキャンを想定した手法とはなっておらず、圧縮スキャンの場合にスキャンチェインの段数を低減させることはできない。
【００１３】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
一実施の形態によれば、スキャンチェインを構成するスキャンフリップフロップは、スキャンシフト動作時において、外部から入力される外部入力テスト信号及び同じ前記スキャンチェイン内の前段のスキャンフリップフロップを介して入力されるシフトテスト信号のいずれかを選択して出力することが可能な論理構造を有する。
【００１５】
なお、上記実施の形態の半導体装置の設計装置、設計方法、設計方法の一部の処理をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。
【発明の効果】
【００１６】
前記一実施の形態によれば、テストパターン毎に圧縮率を変更することで、検出効率を低下させることなく、テストステップ数を低減させることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１に係る半導体装置の構成を示す図である。
【図２】実施の形態１に係る半導体装置の制御の一例を示す図である。
【図３】実施の形態１に係る半導体装置の制御の他の例を示す図である。
【図４】実施の形態１に係る半導体装置の動作を説明する図である。
【図５】実施の形態２に係る半導体装置の構成を示す図である。
【図６】実施の形態３に係る半導体装置の構成を示す図である。
【図７】実施の形態３に係る半導体装置の動作を説明する図である。
【図８】実施の形態４に係る半導体装置の構成を示す図である。
【図９】実施の形態５に係る半導体装置の構成を示す図である。
【図１０】実施の形態６に係る半導体装置の構成を示す図である。
【図１１】実施の形態６に係る半導体装置において、圧縮率が異なる場合のテストステップ数と故障検出率との関係を示すグラフである。
【図１２】実施の形態７に係る半導体装置の設計装置を示す図である。
【図１３】実施の形態７に係る半導体装置の設計フローの一例を示す図である。
【図１４】実施の形態７に係る半導体装置の設計フローの他の例を示す図である。
【図１５】比較例の半導体装置の構成を示す図である。
【図１６】比較例の半導体装置において、圧縮率が異なる場合のテストステップ数と故障検出率との関係を示すグラフである。
【図１７】比較例の半導体装置の設計フローを示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら、実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。以下の実施の形態に示す具体的な値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１９】
実施の形態は、圧縮スキャンテストが可能な半導体装置とその設計装置に関する。実施の形態に係る半導体装置は、外部入出力端子数とスキャンチェインの本数の比である圧縮率をテストパターンごとに切替えてスキャンテストを行うことが可能な論理構造を有する。スキャンチェインの本数を切替え可能な論理回路は、各スキャンチェインを構成するスキャンフリップフロップ（ＳＦＦ）を含む。このＳＦＦは、外部から入力される外部入力テスト信号及びスキャンチェイン上でシフトされるシフトテスト信号のいずれか一方を選択して出力することが可能な構成を有する。制御信号によってスキャンチェインの経路を変化させることで、スキャンチェイン本数が切替えられる。
【００２０】
以下、圧縮率を変更可能なスキャンテストを可変圧縮スキャンテストと呼ぶ。実施の形態は、スキャンテスト時間の削減が必要な、ＭＣＵ（Micro Controller Unit）やＳｏＣ（System-on-a-chip）等の半導体装置に適用可能である。また、実施の形態に係る設計装置は、可変圧縮スキャンテストを実現する半導体装置を設計するＥＤＡ（electronic design automation）ツールとして用いられる。
【００２１】
実施の形態１．
実施の形態１に係る半導体装置について、図１を参照して説明する。図１は、実施の形態に係る半導体装置１の構成を示す図である。図１に示すように、半導体装置１は、複数のＭＭＳＦＦ（マルチモード対応スキャンフリップフロップ）１０、マルチモード制御回路２０、圧縮器３０を備えている。ここでは、スキャンチェインの本数が異なる各スキャンチェイン構成をモードと呼び、複数のモードをマルチモードとする。マルチモード対応スキャンフリップフロップとは、外部入力テスト信号又はシフトテスト信号を選択して出力することにより、圧縮スキャンテストの圧縮率を変えた複数のスキャンチェイン構成をとることができるスキャンフリップフロップである。
【００２２】
半導体装置１では、一以上のＭＭＳＦＦ１０がシリアルに接続されることにより、一以上のスキャンチェインが構築される。複数のスキャンチェインの入力側には、伸張器が接続される。伸張器は、外部入力テスト信号をスキャンチェインの本数に応じて伸張変換する。なお、図１では、ファンアウト構成の伸張器を用いた例を示しており、伸張器の図示は省略されている。伸張器は、線形帰還シフトレジスタ（ＬＳＦＲ）や位相器を用いたものを用いることも可能である。
【００２３】
図１に示す例では、８個のＭＭＳＦＦ１０がシリアルに接続された状態を示している。各ＭＭＳＦＦ１０の出力は圧縮器３０に接続される。圧縮器３０は、複数のスキャンチェインからの出力を圧縮変換する。圧縮器３０は、ＸＯＲ（exclusive OR）ツリーで構成される。圧縮器３０は、各ＭＭＳＦＦ１０からの出力を１つの出力に圧縮する。最小のスキャンチェイン本数は外部入出力端子ペア数に対応する。図１の例では、最少のスキャンチェイン本数は１本であり、最大のスキャンチェイン本数は８本である。
【００２４】
ＭＭＳＦＦ１０は、スキャンチェイン内のＭＭＳＦＦ１０をシフトレジスタとして動作させるスキャンシフト動作と、組み合わせ回路からの出力をキャプチャするキャプチャ動作とを切り替えることが可能である。スキャンシフト動作では、各ＭＭＳＦＦ１０に値が設定される。キャプチャ動作では、シフト動作において各ＭＭＳＦＦ１０に設定された値が組み合わせ回路に供給され、組み合わせ回路での論理演算結果がキャプチャされる。ここで、スキャンシフト動作、キャプチャ動作で転送される値をテストパターンとする。
【００２５】
ＭＭＳＦＦ１０は、ＭＵＸ（マルチプレクサ）１１、ＦＦ（フリップフロップ）１２、データ端子ＤＡＴＡ、第１スキャンイン端子ＳＩＮ１、第２スキャンイン端子ＳＩＮ２、第１制御入力端子ＳＭＣ１、第２制御入力端子ＳＭＣ２、クロック端子ＣＬＫを有している。ＭＵＸ１１は、第１制御入力端子ＳＭＣ１から入力されるスキャンイネーブル信号（ｓｃａｎ−ｅｎ）により、スキャンシフト動作とキャプチャ動作とを切り替える。すなわち、スキャンイネーブル信号（ｓｃａｎ−ｅｎ）は、スキャンシフト動作とキャプチャ動作とを切り替える切替信号である。
【００２６】
また、ＭＵＸ１１は、スキャンシフト動作時において、伸張器から入力される外部入力テスト信号、又は、同じスキャンチェイン内の前段のスキャンフリップフロップから入力されるシフトテスト信号を選択する。外部入力テスト信号は、外部から入力される、圧縮スキャンテストを行うためのＭＭＳＦＦ１０への設定値である。シフトテスト信号は、外部入力テスト信号がＭＭＳＦＦ１０間をシフトされたものである。ＭＭＳＦＦ１０は、第１スキャンイン端子ＳＩＮ１と第２スキャンイン端子ＳＩＮ２の２系統のスキャンイン端子を有している。ＭＵＸ１１には、第１スキャンイン端子ＳＩＮ１から外部入力テスト信号が入力され、第２スキャンイン端子ＳＩＮ２からシフトテスト信号が入力される。
【００２７】
ＭＭＳＦＦ１０は、第１制御入力端子ＳＭＣ１に加えて、外部入力テスト信号とシフトテスト信号の選択制御用の第２制御入力端子ＳＭＣ２の２系統の制御入力端子を有している。ＭＭＳＦＦ１０の出力を切り替える圧縮率制御信号は、第２制御入力端子ＳＭＣ２から入力される。ＭＵＸ１１は、圧縮率制御信号に応じて、外部入力テスト信号又はシフトテスト信号を選択する。すなわち、圧縮率制御信号は、外部入力テスト信号及びシフトテスト信号のいずれかを選択する選択信号である。ＦＦ１２は、ＭＵＸ１１によって選択された外部入力テスト信号又はシフトテスト信号を保持し、クロック端子ＣＬＫから入力されるテストクロック信号に応じて出力する。
【００２８】
換言すると、ＭＭＳＦＦ１０は、伸張器又はスキャンチェイン内の前段のＭＭＳＦＦ１０と選択的に接続可能である。すなわち、ＭＭＳＦＦ１０は、伸張器と接続される第１の状態と、同じスキャンチェイン内の前段のＭＭＳＦＦ１０と接続される第２の状態とを切り替えることができる。ＭＭＳＦＦ１０には、テストパターン毎にマルチモード制御回路２０から圧縮率制御信号が供給される。ＭＭＳＦＦ１０は、テストパターンに応じて、接続先を伸張器か前段のＭＭＳＦＦ１０かに切り替える。
【００２９】
例えば、第１制御入力端子ＳＭＣ１から入力されるスキャンイネーブル信号が、ロウ（０）の時にデータ端子ＤＡＴＡが有効となり、ハイ（１）の時に第１スキャンイン端子ＳＩＮ１／第２スキャンイン端子ＳＩＮ２が有効となる。また、第２制御入力端子ＳＭＣ２から入力される圧縮率制御信号が、ロウ（０）の時に第１スキャンイン端子ＳＩＮ１の経路が有効となり、ハイ（１）の時に第２スキャンイン端子ＳＩＮ２の経路が有効となる。各ＭＭＳＦＦ１０の第１スキャンイン端子ＳＩＮ１は伸張器が接続され、第２スキャンイン端子ＳＩＮ２には同じスキャンチェインの前段のＭＭＳＦＦ１０の出力が接続される。
【００３０】
マルチモード制御回路２０は、ＭＭＳＦＦ１０に設定されるテストパターンに応じて、ＭＵＸ１１が外部入力テスト信号又はシフトテスト信号のいずれを選択するかを制御する制御回路である。マルチモード制御回路２０は、シフトレジスタ２１、ホールドレジスタ２２、デコーダ２３を有する。シフトレジスタ２１には、外部から外部入力テスト信号と圧縮率制御信号を含むスキャンイン信号（ｓｃａｎ＿ｉｎ）が入力される。
【００３１】
図１に示す例では、シフトレジスタ２１は、複数のＭＭＳＦＦ１０と直列接続されている。スキャンテスト動作期間において、外部入力テスト信号はシフトレジスタ２１内で転送され、図示しない伸張器を介してＭＭＳＦＦ１０に入力される。なお、マルチモード制御回路２０は必ずしも各ＭＭＳＦＦ１０と直列接続する必要はなく、マルチモード制御回路２０に専用の入力端子を設けて、各スキャンチェインを独立して制御する構成も可能である。
【００３２】
圧縮率制御信号はスキャンシフト動作時にシフトレジスタ２１に設定され、アップデート信号（ｕｐｄａｔｅ）信号でホールドレジスタ２２に取り込まれる。ホールドレジスタ２２は、スキャンシフト動作期間中は不変である。アップデート信号に応じて、ホールドレジスタ２２に取り込まれた圧縮率制御信号がデコーダ２３でデコードされ、各ＭＭＳＦＦ１０の第２制御入力端子ＳＭＣ２に供給される。
【００３３】
ここで、図２、３を参照して、実施の形態１に係る半導体装置の制御例について説明する。図２はスキャンチェインが２本のモードであり、図３はスキャンチェインが４本のモードである。図２に示す例では、圧縮率制御信号として、２番目のＭＭＳＦＦ１０から順に、「１１１０１１１」の７ビットの値が設定されている。この場合、先頭のＭＭＳＦＦ１０と、先頭から５番目のＭＭＳＦＦ１０とを先頭とした２本のスキャンチェインが構築される。各スキャンチェインは、４段のＭＭＳＦＦ１０からなる。先頭のＭＭＳＦＦ１０と先頭から５番目のＭＭＳＦＦ１０には外部入力テスト信号が入力され、他のＭＭＳＦＦ１０には前段のＭＭＳＦＦ１０からのシフトテスト信号が入力される。
【００３４】
図３に示す例では、圧縮率制御信号として、２番目のＭＭＳＦＦ１０から順に、「１０１０１０１」の７ビットの値が設定されている。この場合、先頭のＭＭＳＦＦ１０と、先頭から３番目、５番目、７番目のＭＭＳＦＦ１０とを先頭とした４本のスキャンチェインが構築される。各スキャンチェインは、２段のＭＭＳＦＦ１０からなる。先頭、３番目、５番目、７番目のＭＭＳＦＦ１０には外部入力テスト信号が入力され、他のＭＭＳＦＦ１０には前段のＭＭＳＦＦ１０からのシフトテスト信号が入力される。同様に、スキャンチェインを１本８段のモードとする場合は「１１１１１１」、８本１段のモードとする場合は、「０００００００」の圧縮率制御信号が入力される。
【００３５】
構成可能なマルチモード数は、マルチモード制御回路２０から出力可能な制御信号の組合せ数に依存する。例えば、ホールドレジスタ２２が２ビットであれば、４通りのマルチモードが選択できる。
【００３６】
ここで、図４を参照して、半導体装置１の動作について説明する。図４は、実施の形態１に係る半導体装置の動作を説明する図である。図４において、ｔｅｓｔ＿ｃｌｏｃｋはテストクロック信号、ｓｃａｎ＿ｅｎはスキャンイネーブル信号、ｕｐｄａｔｅはアップデート信号、ｓｃａｎ＿ｉｎはスキャンイン信号を示している。上述したように、スキャンイン信号は、外部入力テスト信号と圧縮率制御信号とを含む。ホールドレジスタ２２からの出力信号をmultimode control hold resisterとし、シフトレジスタ２１からの出力信号をmultimode control shift resisterと示している。ｓｈｉｆｔ１〜ｓｈｉｆｔ４は、スキャンシフト動作を行うスキャンシフト期間を示しており、ｃａｐｔｕｒｅ１〜ｃａｐｔｕｒｅ３は、キャプチャ動作を行うキャプチャ期間を示している。ｓｅｔ  ｕｐは、最初にスキャンチェインを構築するセットアップ期間である。
【００３７】
図１に示す回路構成では、マルチモード制御回路２０のシフトレジスタ２１とスキャンチェインとが直列に接続されているため、スキャンイン信号として外部入力テスト信号が入力された後に、次のテストパターンに対する圧縮率制御信号が入力される。外部入力テスト信号はスキャンシフト動作で各ＭＭＳＦＦ１０に印加される。
【００３８】
まず、セットアップ期間では、セットアップ期間に続くスキャンシフト期間ｓｈｉｆｔ１に入力されるテストパターンに対する圧縮率制御信号が入力される。この圧縮率制御信号は、シフトレジスタ２１に設定され、アップデート信号に応じてホールドレジスタ２２に取り込まれる。ホールドレジスタ２２に取り込まれた圧縮率制御信号は、第２制御入力端子ＳＭＣ２に出力される。ＭＭＳＦＦ１０は、第２制御入力端子ＳＭＣ２から入力された圧縮率制御信号に応じて、スキャンチェインの経路を変化させる。
【００３９】
上述の通り、圧縮率制御信号が１のときは同じスキャンチェイン内の前段のＭＭＳＦＦ１０、圧縮率制御信号が０のときは伸張器の出力が選択される。つまり、０の圧縮率制御信号が入力されるＭＭＳＦＦ１０は、スキャンチェインの起点となる。図４に示す例では、スキャンシフト期間ｓｈｉｆｔ１のテストパターンに対するマルチモード設定は、２倍設定となっている。セットアップ期間には、２本のスキャンチェインが構築される圧縮率制御信号がシフトレジスタ２１に設定される。
【００４０】
そして、アップデート信号に応じてシフトレジスタ２１に設定されていた圧縮率制御信号が、ホールドレジスタ２２に取り込まれる。この圧縮率制御信号は、スキャンシフト期間ｓｈｉｆｔ１中保持される。スキャンシフト期間ｓｈｉｆｔ１では、図２に示すように、２本／４段のスキャンチェインが構築されるモードとなる。
【００４１】
その後、スキャンイネーブル信号の立ち上がりに応じて、２本のスキャンチェインが構築されたモードでスキャンシフト動作が行われる。スキャンシフト期間ｓｈｉｆｔ１に入力されるスキャンイン信号は、当該期間で各ＭＭＳＦＦ１０に設定されるテストパターンに対応する外部入力テスト信号と、次のスキャンシフト期間ｓｈｉｆｔ２でＭＭＳＦＦ１０に設定されるテストパターンに対する圧縮率制御信号とを含む。スキャンシフト期間ｓｈｉｆｔ１では、まず外部入力テスト信号が入力された後に、次のテストパターンに対する圧縮率制御信号が入力される。
【００４２】
外部入力テスト信号は伸張器でスキャン本数分に伸張展開される。そして、スキャンチェインの本数に対応するスキャンシフト回数でスキャンシフト動作が実行され、各ＭＭＳＦＦ１０にそれぞれテストパターンが設定される。外部入力テスト信号が入力された後に、次のテストパターンに対する圧縮率制御信号が入力される。図４に示す例では、次のスキャンシフト期間ｓｈｉｆｔ２のテストパターンに対するマルチモードの設定は、４倍設定となっている。スキャンシフト期間ｓｈｉｆｔ１には、４本のスキャンチェインが構築される圧縮率制御信号がシフトレジスタ２１に設定される。
【００４３】
そして、スキャンイネーブル信号が立ち下がりに応じて、キャプチャ動作が行われる。キャプチャ期間には、データ端子ＤＡＴＡから通常動作信号が入力され、ＭＭＳＦＦ１０に設定されたテストパターンが図示しない組み合わせ回路に供給される。組み合わせ回路での論理演算結果は、ＭＭＳＦＦ１０に取り込まれる。キャプチャ動作で取得された値は再びスキャンＦＦでシフトされ、応答が観測される。
【００４４】
その後、アップデート信号に応じてシフトレジスタ２１に設定されていた圧縮率制御信号が、ホールドレジスタ２２に取り込まれる。この圧縮率制御信号は、スキャンシフト期間ｓｈｉｆｔ２中保持される。スキャンシフト期間ｓｈｉｆｔ２では、図３に示すように４本／２段のスキャンチェインが構築されるモードとなる。このように、前回のスキャンシフト期間ｓｈｉｆｔ１に、次のスキャンシフト期間ｓｈｉｆｔ２で設定されるテストパターンに対する圧縮率制御信号がシフトレジスタ２１に入力される。そして、スキャンシフト期間ｓｈｉｆｔ２では、スキャンイネーブル信号の立ち上がりに応じて、４本のスキャンチェインが構築されたモードでスキャンシフト動作が行われる。
【００４５】
同様に、スキャンシフト期間中ｓｈｉｆｔ２に、次のスキャンシフト期間中ｓｈｉｆｔ３で設定されるテストパターンに対する圧縮率制御信号が入力される。図４に示す例では、次のスキャンシフト期間ｓｈｉｆｔ３のテストパターンに対するマルチモードの設定は、１倍設定となっている。スキャンシフト期間ｓｈｉｆｔ２には、１本のスキャンチェインが構築される圧縮率制御信号が入力される。これにより、スキャンシフト期間ｓｈｉｆｔ３では、１本のスキャンチェインが構築されるモードとなる。
【００４６】
このように、実施の形態１の半導体装置１では、スキャンテスト時に、マルチモード制御回路２０から供給する圧縮率制御信号で、圧縮スキャンテストにおけるスキャンチェインの本数及び段数をテストパターン毎に任意に変化させることができる。すなわち、マルチモード制御回路２０は、テストパターン毎にスキャンチェインの経路を更新してスキャンテストを行う。これにより、スキャンシフト回数を変化させることが可能となる。
【００４７】
ここで、比較例の半導体装置について説明する。図１５は、比較例の半導体装置の構成を示す図である。図１５に示すように、比較例に係る半導体装置は、スキャンシフト動作とキャプチャ動作の切替えのみが可能なスキャンＦＦ１０１を有している。このようなスキャンＦＦ１０１を用いた圧縮スキャン設計では、外部端子数よりも多くのスキャンチェインが構成され、スキャンチェイン１本当たりのスキャンＦＦ１０１の段数が削減される。スキャンチェインの入力側には伸張器１０２が接続され、スキャンチェインの出力側には圧縮器１０３が接続されている。
【００４８】
このような比較例の圧縮スキャンテストでは、圧縮率を変更することができないため、ユーザが、テストステップ数が少なくなるように最適な圧縮率を考える必要がある。圧縮率を上げ過ぎると故障検出に必要なケアビットを設定することができないため、故障検出率が低下し、テストパターン毎の検出効率も落ちる。短いテストステップ数で高故障検出率のテストパターン集合は、各サイクルの各入出力端子の１ビット（１サイクル）辺りの同時検出故障数を上げることで実現できると考えられる。
【００４９】
比較例の従来の圧縮スキャンでは圧縮率が常に固定になるため、シフトサイクル数が一定になる。このスキャンシフトサイクル中には、故障検出に貢献できていないサイクルが発生している可能性がある。図１６に、比較例の半導体装置において、圧縮率が異なる場合のテストステップ数と故障検出率との関係を示す。図１６では、任意のテスト回路に対する高圧縮スキャン設計（圧縮率３０９倍）と、低圧縮スキャン設計（圧縮率３２倍）の結果を示している。なお、テスト時間は、テストステップ数に比例する。
【００５０】
図１６に示すように、故障検出率が９４％程度までは高圧縮スキャン設計の方が故障検出率の傾きが大きいのに対し、それ以降では低圧縮スキャン設計の方が故障検出率の傾きが大きくなった。これから、故障検出率の上昇率が大きくなるように、高圧縮スキャン設計と低圧縮スキャン設計とをテストパターンに応じて切り替えることができれば、テストステップ数を削減できる可能性があることがわかる。例えば、図１６の例で、故障検出率９４％付近で、高圧縮スキャン設計から低圧縮スキャン設計へと単純に切替えただけでも １０％程度のテストステップ数の削減が期待できる。
【００５１】
上述の通り、実施の形態１に係る半導体装置は、テストパターン毎に任意の圧縮率で圧縮スキャンテストを実行することが可能である。このため、より柔軟に高圧縮スキャン設計と低圧縮スキャン設計の構成を切替えて、故障対象の検出に最適な圧縮率を設定することが可能となる。これにより、さらにテストステップ数を削減し、より効率のよい圧縮スキャンテストを実行することが可能となる。例えば、検出容易な故障については高圧縮スキャン設計を適用することで、テストステップ数を大幅に削減できる．
【００５２】
なお、ＭＭＳＦＦ１０は、スキャンＦＦ１０１と比較して面積が１０％程度増加する。スキャンＦＦ１０１のチップの論理部に占める面積の割合が１０％程度である場合、全スキャンＦＦ１０１をＭＭＳＦＦ１０で置換すると、チップの論理部の面積は約１％増加することとなる。このように、ＭＭＳＦＦ１０を用いた場合でも、チップの面積増加への影響は少ない。このように、実施の形態１では、ＭＭＳＦＦ１０とマルチモード制御回路２０との組み合わせにより、複数のスキャンチェイン構成を切り替えることが可能な論理構造を、低面積で実現することが可能である。
【００５３】
実施の形態２．
実施の形態２に係る半導体装置について、図５を参照して説明する。図５は、実施の形態２に係る半導体装置１Ａの構成を示す図である。図５に示すように、半導体装置１Ａは、複数のＭＭＳＦＦ１０、マルチモード制御回路２０、圧縮率可変圧縮器３０Ａを備えている。実施の形態２において、実施の形態１と異なる点は、圧縮器３０の代わりに可変圧縮器３０Ａを備えている点である。
【００５４】
可変圧縮器３０Ａは、スキャンチェインの本数に応じて圧縮率を変更することができる。可変圧縮器３０Ａは、ＸＯＲ（exclusive OR）ツリーと、ＭＵＸ（マルチプレクサ）３１（３１ａ〜３１ｃ）とを備える。各ＭＭＳＦＦ１０からの出力は、ＸＯＲツリーを構成するＸＯＲゲートに入力される。例えば、図５に示すように、先頭と５番目のＭＭＳＦＦ１０の出力が第１ＸＯＲゲートに入力され、３番目と７番目のＭＭＳＦＦ１０の出力が第２ＸＯＲゲートに入力され、２番目と６番目のＭＭＳＦＦ１０の出力が第３ＸＯＲゲートに入力され、４番目と８番目のＭＭＳＦＦ１０の出力が第４ＸＯＲゲートに入力される。ＭＵＸ３１ａには、８番目のＭＭＳＦＦ１０の出力と第４ＸＯＲゲートの出力が入力される。
【００５５】
第１ＸＯＲゲートと第２ＸＯＲゲートの出力は２段目の一方のＸＯＲゲートに、第３ＸＯＲゲートと第４ＸＯＲゲートの出力は２段目の他方のＸＯＲゲートに入力される。ＭＵＸ３１ｂには、２段目の他方のＸＯＲゲートの出力と、ＭＵＸ３１ａの出力が入力される。２段目の２つのＸＯＲゲートの出力は、３段目のＸＯＲゲートに入力される。ＭＵＸ３１ｃには、３段目の他方のＸＯＲゲートの出力と、ＭＵＸ３１ｂの出力が入力される。
【００５６】
各ＭＵＸ３１には、マルチモード制御回路２０から圧縮率制御信号が入力される。ＭＵＸ３１は、圧縮率制御信号により、スキャンチェインの圧縮率と可変圧縮器３０Ａにおける圧縮率とが同一になるように制御される。したがって、同時に観測されるＭＭＳＦＦ１０数がスキャンチェインの本数に制限される。圧縮率制御信号により設定されたスキャンチェインの最終段のＭＭＳＦＦ１０からの出力は、可変圧縮器３０Ａにより圧縮される。
【００５７】
実施の形態１では、ＭＭＳＦＦ１０のいずれか１つに不定値（Ｘ）が取り込まれた場合、圧縮器３０の出力まで不定値が伝搬し、すべてのＭＭＳＦＦ１０の同時観測が不可能となる。この不定値の伝搬により、故障検出率が低下する、又は、テストパターン数が増加して、テスト時間が長くなるという問題が発生する場合がある。
【００５８】
これに対し、実施の形態２では、スキャンチェインの構成の切替えに合わせて、スキャンチェインの本数に対応するように、可変圧縮器３０Ａの圧縮率を変化させることができる。このように、可変圧縮器３０Ａの、圧縮率制御信号により設定されたスキャンチェインの最終段のＭＭＳＦＦ１０から外部スキャンアウト端子までの経路を変更することにより、不定値の影響により故障検出率の低下やテストパターン数の増加を抑制することが可能となる。
【００５９】
実施の形態３．
実施の形態３に係る半導体装置について、図６を参照して説明する。図６は、実施の形態３に係る半導体装置１Ｂの構成を示す図である。図６に示すように、半導体装置１Ｂは、複数のＭＭＳＦＦ１０、マルチモード制御回路２０、圧縮率可変圧縮器３０Ｂ、マスク制御回路４０を備えている。実施の形態３において、実施の形態２と異なる点は、可変圧縮器３０Ａに代えて可変圧縮器３０Ｂを備え、可変圧縮器３０Ｂを制御するマスク制御回路４０を有している点である。
【００６０】
可変圧縮器３０Ｂは、可変圧縮器３０Ａと同様に、ＭＵＸ３１（３１ａ〜３１ｃ）を有している。また、１段目の４つのＸＯＲゲートの入力側にはそれぞれマスク回路３２が設けられている。すなわち、マスク回路３２は、複数のスキャンチェインと圧縮器との間に設けられている。マスク回路３２は、複数のスキャンチェインからの出力のうち、特定の論理演算結果の一部の圧縮器への入力を遮断する。
【００６１】
マスク制御回路４０は、遮断する論理演算結果に応じてマスク回路３２の有効／無効を制御する。マスク制御回路４０は、シフトレジスタ４１、ホールドレジスタ４２、デコーダ４３を有している。シフトレジスタ４１は、マルチモード制御回路２０のシフトレジスタ２１と直列に接続されている。実施の形態３では、シフトレジスタ２１とシフトレジスタ４１とＭＭＳＦＦ１０とが直列に接続されている。したがって、実施の形態３では、スキャンイン信号は、外部入力テスト信号、圧縮率制御信号、マスク制御信号を含む。なお、マルチモード制御回路２０とマスク制御回路４０とスキャンチェインとを直列接続する必要はなく、別の入力端子を設けて外部より独立して制御する構成も可能である。
【００６２】
マスク制御信号がシフトレジスタ４１内で転送されることにより、各シフトレジスタにその値が設定される。マスク制御信号は、スキャンシフト期間中にシフトレジスタ４１に設定される。シフトレジスタ４１に設定されたマスク制御信号は、アップデート信号でホールドレジスタ４２に取り込まれる。ホールドレジスタ４２の設定値はデコーダ４３でデコードされ、マスク回路３２に供給される。マスク回路３２がマスク制御信号に応じて、スキャンチェインから入力される論理演算結果の一部を遮断する。
【００６３】
例えば、マスク回路３２は、スキャンチェインから入力される不定値の伝搬を阻止することができる。マスク回路３２は、所定のテストパターンでのキャプチャ動作で不定値を取り込んだＭＭＳＦＦ１０を含むスキャンチェインに対してマスクする。これにより、不定値の影響による故障検出率の低下やテストパターン数の増加を抑制することが可能となる。
【００６４】
また、所定のテストパターンでマスク対象としたスキャンチェインの故障観測のために、別のテストパターンではそのスキャンチェインのマスクを行わないように制御することができる。これにより、当該スキャンチェイン上の不定値を取り込むＭＭＳＦＦ１０以外のＭＭＳＦＦ１０の故障を観測することができる。
【００６５】
ここで、図７を参照して、半導体装置１Ｂの動作について説明する。図７は、実施の形態３に係る半導体装置１Ｂの動作を説明する図である。ホールドレジスタ４２からの出力信号をmask control hold resisterとし、シフトレジスタ２１からの出力信号をmask control shift resisterと示している。上述の通り、実施の形態３では、スキャンイン信号は、外部入力テスト信号、圧縮率制御信号、マスク制御信号を含む。なお、他の信号については、図４と同様である。
【００６６】
実施の形態３では、スキャンイン信号として外部入力テスト信号が入力された後に、次のテストパターンに対するマスク制御信号が入力され、その後、次のテストパターンに対する圧縮率制御信号が入力される。まず、セットアップ期間では、セットアップ期間に続くスキャンシフト期間ｓｈｉｆｔ１に入力されるテストパターンに対する圧縮率制御信号が入力される。スキャンシフト期間ｓｈｉｆｔ１では、２本のスキャンチェインが構築されるモードとなる。
【００６７】
その後、スキャンイネーブル信号の立ち上がりに応じて、２本のスキャンチェインが構築されたモードでスキャンシフト動作が行われる。スキャンシフト期間ｓｈｉｆｔ１に入力されるスキャンイン信号は、当該期間で各ＭＭＳＦＦ１０に設定されるテストパターンに対応する外部入力テスト信号と、次のスキャンシフト期間ｓｈｉｆｔ２でＭＭＳＦＦ１０に設定されるテストパターンに対するマスク制御信号と圧縮率制御信号とを含む。
【００６８】
外部入力テスト信号は伸張器でスキャン本数分に伸張展開され、スキャンシフト動作により、各ＭＭＳＦＦ１０にそれぞれ値が設定される。外部入力テスト信号が入力された後に、次のテストパターンに対するマスク制御信号が入力される。マスク制御信号はシフトレジスタ４１内で転送され、各シフトレジスタにその値が設定される。その後、次のテストパターンに対する圧縮率制御信号が入力される。
【００６９】
図７に示す例では、次のスキャンシフト期間ｓｈｉｆｔ２のテストパターンに対するマルチモードの設定は、４倍設定となっている。スキャンシフト期間ｓｈｉｆｔ１には、４本のスキャンチェインが構築される圧縮率制御信号がシフトレジスタ２１に設定される。そして、スキャンイネーブル信号が立ち下がりに応じて、キャプチャ動作が行われる。また、圧縮率制御信号はＭＵＸ３１ａ〜３１ｃにそれぞれ供給される。可変圧縮器３０Ｂの圧縮率は、スキャンチェインの圧縮率と同一になるように制御される。
【００７０】
その後、アップデート信号に応じて、ホールドレジスタ４２に設定されていたマスク制御信号が、ホールドレジスタ４２に取り込まれる。また、アップデート信号に応じて、シフトレジスタ２１に設定されていた圧縮率制御信号が、ホールドレジスタ２２に取り込まれる。このマスク制御信号、圧縮率制御信号は、スキャンシフト期間ｓｈｉｆｔ２中保持される。
【００７１】
スキャンシフト期間ｓｈｉｆｔ２では、４本のスキャンチェインが構築されるモードとなる。また、マスク制御信号に応じた、マスク回路３２の制御がなされ、任意の論理演算結果の圧縮器への入力が遮断される。以降、同様に、次のスキャンシフト期間中で設定されるテストパターンに対するマスク制御信号、圧縮率制御信号が設定される。
【００７２】
実施の形態２では、不定値を取り込んだＭＭＳＦＦ１０の観測サイクルにおいて、他のスキャンチェインの不定値を取り込んだＭＭＳＦＦ１０と同じ段数にあるすべてのＭＭＳＦＦ１０の観測が不可能であった。これに対し、実施の形態３では、スキャンチェイン毎に不定値の伝搬を遮断することができる。これにより、不定値の影響で観測不可能となっていたＭＭＳＦＦ１０の観測が可能となり、故障検出率の低下を抑制することが可能となる。
【００７３】
なお、実施の形態３では、可変圧縮器３０Ｂは、圧縮率を変更するＭＵＸ３１とマスク回路３２とを備える構成としたが、ＭＵＸ３１を備えず、マスク回路３２のみを備えた構成とすることも可能である。
【００７４】
実施の形態４．
実施の形態４に係る半導体装置について、図８を参照して説明する。図８は、実施の形態４に係る半導体装置１Ｃの構成を示す図である。図８に示すように、半導体装置１Ｃは、複数のＭＭＳＦＦ１０、マルチモード制御回路２０、圧縮率可変圧縮器３０Ｂ、マスク制御回路４０Ａを備えている。実施の形態４に係る半導体装置は、伸張器の圧縮率と可変圧縮器の圧縮率とを独立して制御可能な構造を有する。
【００７５】
実施の形態３では、可変圧縮器３０Ｂがマルチモード制御回路２０からの圧縮率制御信号で制御されていたのに対し、実施の形態４では、マスク制御回路４０Ａから供給される圧縮器制御信号により制御される。マスク制御回路４０Ａは、マスク回路３２を制御する機能に加えて、可変圧縮器３０Ｂの圧縮率の変更を制御する機能を有する。
【００７６】
マスク制御回路４０Ａは、シフトレジスタ４１Ａ、ホールドレジスタ４２Ａ、デコーダ４３Ａを有している。シフトレジスタ４１Ａは、マルチモード制御回路２０のシフトレジスタ２１と直列に接続されている。実施の形態３では、シフトレジスタ２１とシフトレジスタ４１とＭＭＳＦＦ１０とが直列に接続されている。
【００７７】
シフトレジスタ４１Ａには、マスク制御信号とともに、可変圧縮器３０Ｂの圧縮率を制御する圧縮器制御信号の値が、ＭＭＳＦＦ１０に入力される圧縮率制御信号とは別に設定される。したがって、実施の形態４では、スキャンイン信号は、外部入力テスト信号、圧縮率制御信号、マスク制御信号、圧縮器制御信号を含む。可変圧縮器３０Ｂは、スキャンチェインの圧縮率（伸張器の圧縮率）と異なる圧縮率に設定することが可能である。
【００７８】
実施の形態２、３では、伸張器と圧縮器とが同じ圧縮率となるため、前のテストパターンに対する圧縮率と次のテストパターンに対する圧縮率とに相互に依存関係があった。このように前後の圧縮率に依存関係が発生するため、テストパターンの値を各ＭＭＳＦＦ１０に設定するときに制限が生じる。
【００７９】
これに対し、実施の形態４では、伸張器と可変圧縮器３０Ｂの圧縮率を独立して制御するができる。このため、前のテストパターンに対する圧縮率の影響を受けることなく、次のテストパターンを各ＭＭＳＦＦ１０に設定することが可能となる。
【００８０】
例えば、マスク回路３２でマスクされるスキャンチェインを考慮して、可変圧縮器３０Ｂの圧縮率を変更することで、圧縮器３０の圧縮効率低下を抑制することが可能となる。すなわち、圧縮器３０の圧縮効率低下を抑制するような組み合わせで、可変圧縮器３０Ｂの圧縮率の変更とマスク回路３２の制御を行うことができる。
【００８１】
また、不定値が存在するスキャンチェインをマスクする場合、マスク回路３２による圧縮効率低下を抑制するような、可変圧縮器３０Ｂの圧縮率、マスク回路３２の制御を選択することができる。例えば、１本のスキャンチェインのみをマスクする場合、高圧縮スキャン構成の方がマスク対象となるＭＭＳＦＦ１０の数が少なくなる。このように、伸張器と圧縮器をそれぞれ異なる圧縮率とすることで、マスク回路３２によるマスク処理による圧縮効率低下を抑制することができ、テストパターン数を削減することが可能となる
【００８２】
実施の形態５．
実施の形態５に係る半導体装置について、図９を参照して説明する。図９は、実施の形態５に係る半導体装置１Ｄの構成を示す図である。図９に示すように、半導体装置１Ｄは、複数のＭＭＳＦＦ１０、複数のＳＦＦ（スキャンフリップフロップ）５０、マルチモード制御回路２０、圧縮率可変圧縮器３０Ｃ、マスク制御回路４０Ｂを備えている。テストステップ数削減の観点では、細か過ぎるマルチモード制御は不必要となる場合がある。実施の形態５では、スキャンチェインがＭＭＳＦＦ１０とＳＦＦ５０とを含み、実施の形態４よりも最大圧縮率を抑制している。
【００８３】
ＳＦＦ５０は、スキャンシフト動作とキャプチャ動作とを切り替え可能なシフト用スキャンフリップフロップであり、スキャンシフト動作時において、入力される外部入力テスト信号又はシフトテスト信号をそのまま出力する。図９に示すように、半導体装置１Ｄでは、先頭、２番目、４番目、６番目、８番目にＳＦＦ５０が配置されており、３番目、５番目、７番目にＭＭＳＦＦ１０が配置されている。
【００８４】
先頭のＳＦＦ５０は、外部から入力される外部入力テスト信号を後段のＳＦＦ５０にそのまま出力する。２番目のＳＦＦ５０は、先頭のＳＦＦ５０から入力されたシフトテスト信号を３番目のＭＭＳＦＦ１０に出力する。３番目のＭＭＳＦＦ１０は、圧縮率制御信号に応じて、外部入力テスト信号とシフトテスト信号のいずれか一方を出力する。
【００８５】
実施の形態４の半導体装置１ＣのようにすべてがＭＭＳＦＦ１０の場合と比較すると、実施の形態５の半導体装置１Ｄでは最大圧縮率が１／２となる。すなわち、図８の回路構成では最大圧縮率が８倍だったのに対し、図９の回路構成では最大圧縮率が４倍となる。任意の最大圧縮率に合わせて一部のＭＭＳＦＦ１０をＳＦＦ５０に置換することができる。全てＭＭＳＦＦ１０の場合に達成可能な最大圧縮率の１／Ｎ倍にする場合、最低圧縮率のスキャンチェイン構成のときにＮ個毎に１個ＭＭＳＦＦ１０を配置する。
【００８６】
実施の形態５によれば、すべてをＭＭＳＦＦ１０で構成した場合と比較して、面積を小さくすることができる。例えば、最大圧縮率を１／１０とすると、スキャンチェイン内のＭＭＳＦＦ１０による置換対象が１／１０となる。ＭＭＳＦＦ１０、ＳＦＦ５０のチップの論理部に占める面積の割合が１０％程度である場合、最大圧縮率を１/１０とするとチップの論理部に対する面積の影響は約０．１％となる。なお、先頭のＳＦＦ５０には外部入力テスト信号のみが入力されるため、先頭はＳＦＦ５０に固定することができる。当該ＳＦＦ５０は、伸張器に接続される。これにより、さらに半導体装置の面積の増加を抑制することができる。
【００８７】
実施の形態６．
実施の形態６に係る半導体装置について、図１０を参照して説明する。図１０は、実施の形態５に係る半導体装置１Ｅの構成を示す図である。図１０に示すように、半導体装置１Ｅは、複数のＭＭＳＦＦ１０、マルチモード制御回路２０、圧縮率可変圧縮器３０Ｂ、マスク制御回路４０Ａを備えている。実施の形態６に係る半導体装置１Ｅは、伸張器として、ファンアウト構成の伸張器ではなく、リングジェネレータ６０を有している。
【００８８】
リングジェネレータ６０は、マルチモード制御回路２０、マスク制御回路４０Ａと直列接続されている。外部から入力されたスキャンイン信号は、外部入力テスト信号、圧縮器制御信号、マスク制御信号、圧縮率制御信号を含む。外部入力制御信号が、マルチモード制御回路２０のシフトレジスタ２１、マスク制御回路４０Ａのシフトレジスタ４１Ａを抜けて、リングジェネレータ６０に供給される。外部入力テスト信号は、リングジェネレータ６０でスキャンチェインの本数に応じて伸張・展開され、各スキャンチェインの先頭のＭＭＳＦＦ１０に供給される。
【００８９】
図１１に、ファンアウト構成の伸張器を用いた場合とリングジェネレータを用いた場合の、テストステップ数と故障検出率の関係を示す。図１１に示すように、リングジェネレータを用いた場合、少ないテストステップ数で、故障検出率が高いことがわかる。このように、伸張器としてリングジェネレータを用いることで、ファンアウト構成の伸張器を用いる場合よりもテストステップ数の削減、故障検出率を向上させることができる。ただし、リングジェネレータを用いることで、ファンアウト構成の伸張器を用いた場合よりも面積が大きくなる。
【００９０】
実施の形態７．
実施の形態７に係る設計装置１００について、図１２を参照して説明する。設計装置１００は、スキャンチェイン本数を切替えながら圧縮スキャンテスト可能な半導体装置を設計し、その半導体装置を利用してスキャンチェイン本数をテストパターン毎に切替えながら圧縮スキャンテストを行うテストパターンを生成する設計装置である。
【００９１】
設計装置１００は、演算処理装置１１０、記憶装置１２０、制御入力装置１３０、表示出力装置１３１を有する。演算処理装置１１０は、半導体装置の設計に必要なプログラムをロードして設計に必要な各機能プロセスを実行可能な装置であり、ＣＰＵやメモリ等を含む。演算処理装置１１０は、スキャン化実行プログラム１１１、圧縮・制御回路付加プログラム１１２、ＡＴＰＧプログラム１１３を有している。
【００９２】
記憶装置１２０は、ネットリスト１２１、機能ライブラリ１２２、テスト制約ＤＢ１２３、スキャン化ネットリスト１２４、圧縮回路付加ネットリスト１２５、テストパターンＤＢ１２６を有している。記憶装置１２０は、ライブラリやネットリストの情報を保存するＨＤＤディスクやメモリなどの記憶媒体を指す。設計装置１００は、演算処理装置１１０のプログラムを使用し、記憶装置１２０のネットリストやライブラリを参照して、上述の実施の形態で説明した可変圧縮スキャンテスト可能な半導体装置を生成し、これのテストを行うためのテストパターンを生成する。
【００９３】
制御入力装置１３０は、ユーザが演算処理装置１１０及び記憶装置１２０を操作するための装置の総称で、キーボードやマウス等が挙げられる。表示出力装置１３１は、ユーザが演算処理装置１１０及び記憶装置１２０の動作を確認するためのもので、ディスプレイ等が挙げられる。
【００９４】
ネットリスト１２１には、ＡＮＤゲートや、ＯＲゲート、ＥＯＲゲート等のセル情報や端子間の接続情報等が記憶されている。機能ライブラリには、セルの機能や置換リスト等が記憶されている。置換リストには、例えば、スキャンチェインを構成するＳＦＦをＭＭＳＦＦで置換する情報が含まれる。演算処理装置１１０は、スキャン化プログラム１１１を実行することにより、ネットリスト１２１、機能ライブラリ１２２を参照して、可変圧縮スキャンテストが可能な半導体装置のスキャン化ネットリストを生成する。
【００９５】
スキャン化プログラム１１１は、一般的なスキャンチェインの構築機能に加えて、圧縮率制御信号によって複数のスキャンチェイン構成に切替可能な半導体装置を生成する。スキャンチェイン構成の切替えに必要な論理として、ＳＦＦ５０の挿入か又はＭＭＳＦＦ１０による置換を行う。また、スキャン化プログラム１１１は、図９のように、ＳＦＦ５０とＭＭＳＦＦ１０とを含むようにしてもよい。この場合、スキャン化プログラム１１１は、ＳＦＦ５０を伸張器に接続する処理を実行することも可能である。
【００９６】
また、演算処理装置１１０は、圧縮・制御回路付加プログラム１１２を実行することにより、スキャン化ネットリスト１２４、機能ライブラリ１２２を参照して、圧縮回路付加ネットリスト１２５を生成する。圧縮・制御回路付加プログラム１１２は、マルチモード制御回路２０の挿入や、圧縮率が変更可能な伸張器の挿入、圧縮率が変更可能な圧縮器の挿入、マルチモード制御回路２０とスキャンチェイン切替論理との接続、伸張器とスキャンチェインとの接続、圧縮器とスキャンチェインとの接続を行う。また、圧縮・制御回路付加プログラム１１２は、実施の形態２のように、スキャンチェインの本数に応じて可変圧縮器３０Ａの圧縮率を変更することも可能である。
【００９７】
さらに、演算処理装置１１０は、ＡＴＰＧプログラム１１３を実行することにより、圧縮回路付加ネットリスト１２５、機能ライブラリ１２２、テスト制約ＤＢ１２３を参照することにより、テストパターンを生成する。テスト制約ＤＢ１２３には、テスト時の回路動作に必要な情報が格納されている。テスト制約ＤＢ１２３に格納される情報には、例えば、外部出力端子を０に固定する等の情報が含まれる。
【００９８】
ＡＴＰＧプログラム１１３は、切替可能なスキャンチェイン構成を考慮して、テストパターン毎にスキャンチェイン構成を切替えることでテストステップ数が極小となるようなテストパターンを生成する機能を有する。生成されたテストパターンは、テストパターンＤＢ１２６に格納される。半導体装置では、テストパターンＤＢ１２６に保存されたテストパターンを用いて、可変圧縮スキャンテストが実行される。
【００９９】
ここで、図１３を参照して、半導体装置の設計フローについて説明する。図１３は、実施の形態７に係る半導体装置の設計フローの一例を示す図である。図１３に示すように、まずネットリスト１２１、機能ライブラリ１２２が入力される（ステップＳ１１）。その後、回路解析が行われ、当該回路の持つ切替可能なスキャンチェイン構成（圧縮率構成等）の回路情報が識別される（ステップＳ１２）。
【０１００】
そして、識別された回路に対して故障仮定が実行される（ステップＳ１３）。そして、予め入力された故障リストから検出対象候補故障を選択し（ステップＳ１４）、当該検出対象候補故障に対応するケアビットを算出するケアビット算出処理が実行される（ステップＳ１５）。ケアビットの生成に失敗した場合は、その故障を未検出故障として識別して故障リストから除外される。そして、別の検出対象候補故障が選択され、ケアビットの生成が成功するまで繰り返される。
【０１０１】
検出対象候補故障を検出可能なケアビットの生成が成功した場合は、そのケアビットを正当化可能な最大圧縮率構成が計算・決定される（ステップＳ１６）。ケアビットに応じて、外部入力テスト信号又はシフトテスト信号のいずれを選択するかを制御し、スキャンチェインの構成を切り替える切替処理が実行される。そして、その圧縮率制約条件下でケアビットを追加し、同時に検出可能な故障数を増やす（動的圧縮）（ステップＳ１７）。
【０１０２】
その後、生成したテストパターンに対する故障シミュレーションを行い（ステップＳ１８）、検出可能な範囲を識別し、故障リストから取り除く。そして、生成されたテストパターンをメモリ上に記憶するか、又は、ディスクに出力する。故障リストに検出対象候補故障が残っている場合は、再度ケアビット生成からテストパターンの保存までを繰り返す（ステップＳ１９）。故障リストに含まれる全ての故障を検出か未検出とし、検出対象候補故障となっていない未対象故障がなくなるとＡＴＰＧプログラム１１３が終了する（ステップＳ２０）。
【０１０３】
図１７に、比較例の圧縮スキャンでの設計フローを示す。図１７に示すように、圧縮率を変更できない圧縮スキャンテスト設計では、初めに、入力ネットリスト・機能ライブラリに対して回路解析を行い（ステップＳ１０１、１０２）、故障仮定が実行される（ステップＳ１０３）。そして、故障仮定の中から１個のケアビット検出対象候補故障を選択し、回路制約又は圧縮率制約下でその故障を検出可能なケアビットの生成を試みる（ステップＳ１０４）。回路制約又は圧縮率制約によりケアビットの生成に失敗した場合は、その故障が故障リストから除外される。そして、別の検出対象候補故障を選択し、ケアビットの生成が成功するまで繰り返す（ステップＳ１０５）。
【０１０４】
対象故障を検出可能なケアビットの生成が成功した場合は、ケアビットを追加することで同時に検出可能な故障数を増やす（ステップＳ１０６）。動的圧縮が終わった後は、故障シミュレーションを行い、生成したテストパターンによって検出可能な範囲が識別される（Ｓ１０７）。そして、生成したテストパターンをメモリ上に記憶するか、又は、ディスク出力する（Ｓ１０８）。故障リストに検出対象候補故障となっていない未対象故障が残っている場合は、再度ケアビット生成からテストパターンの保存までを繰り返す（ステップＳ１０９）。全ての故障を検出か未検出に判定し未対象故障がなくなると、ＡＴＰＧプログラムが終了する。このように比較例では、圧縮率を変更することができないため、短いテストステップ数で高故障検出率のテストパターンを生成することが難しい。
【０１０５】
これに対し、実施の形態７に係る設計装置を用いることで、スキャンチェイン本数を切替え可能な半導体装置を設計することができる。また、この半導体装置に対してスキャンチェイン本数をテストパターン毎に切替える制御を行いながら、圧縮スキャンテストを実行することが可能なテストパターンを生成することが可能となる。これにより、短いテストステップ数で高い故障検出率が達成可能な圧縮スキャンテストが実現できる。
【０１０６】
なお、圧縮・制御回路付加プログラム１１２は、複数のスキャンチェインと圧縮器との間に、複数のスキャンチェインからの出力のうち、特定のテスト結果の一部の圧縮器への入力を遮断するマスク回路をさらに挿入する処理を実行してもよい。図１４に、マスク回路３２を有する圧縮器を使用した場合の、半導体装置の設計フローが示される。このような回路構成の場合は、ケアビット生成後に生成ケアビットに対して適用可能な伸張器の最大圧縮構成を計算、適用し（ステップＳ３０）、ケアビットの追加（動的圧縮）後に、必要なマスク制御を決定する（ステップＳ３１）ことができる。なお、マスク制御とともに、可変圧縮器の圧縮率を計算して適用することが可能である。
【０１０７】
また、上述の実施の形態において、先頭のＳＦＦ５０には外部入力テスト信号のみが入力されるため、先頭はＳＦＦ５０に固定することも可能である。
【０１０８】
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１０９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１１０】
１  半導体装置
１Ａ〜１Ｄ  半導体装置
１０  ＭＭＳＦＦ
１１  ＭＵＸ
１２  ＦＦ
２０  マルチモード制御回路
２１  シフトレジスタ
２２  ホールドレジスタ
２３  デコーダ
３０  圧縮器
３０Ａ  可変圧縮器
３０Ｂ  可変圧縮器
３０Ｃ  可変圧縮器
３１  ＭＵＸ
３２  マスク回路
４０  マスク制御回路
４０Ａ  マスク制御回路
４０Ｂ  マスク制御回路
４１  シフトレジスタ
４１Ａ  シフトレジスタ
４１Ｂ  シフトレジスタ
４２  ホールドレジスタ
４２Ａ  ホールドレジスタ
４２Ｂ  ホールドレジスタ
４３  デコーダ
４３Ａ  デコーダ
４３Ｂ  デコーダ
５０  ＳＦＦ
６０  リングジェネレータ
１００  設計装置
１１０  演算処理装置
１１１  スキャン化プログラム
１１２  圧縮・制御回路付加プログラム
１１３  ＡＴＰＧプログラム
１２０  記憶装置
１２１  ネットリスト
１２２  機能ライブラリ
１２３  テスト制約ＤＢ
１２４  スキャン化ネットリスト
１２５  圧縮回路付加ネットリスト
１２６  テストパターンＤＢ
１３０  制御入力装置
１３１  表示出力装置
【図１】
0006544958.tif 000002
【図２】
0006544958.tif 000003
【図３】
0006544958.tif 000004
【図４】
0006544958.tif 000005
【図５】
0006544958.tif 000006
【図６】
0006544958.tif 000007
【図７】
0006544958.tif 000008
【図８】
0006544958.tif 000009
【図９】
0006544958.tif 000010
【図１０】
0006544958.tif 000011
【図１１】
0006544958.tif 000012
【図１２】
0006544958.tif 000013
【図１３】
0006544958.tif 000014
【図１４】
0006544958.tif 000015
【図１５】
0006544958.tif 000016
【図１６】
0006544958.tif 000017
【図１７】
0006544958.tif 000018