(57)【要約】【課題】テスト時の消費電力の低減と共に圧縮スキャンテストを容易に実現可能な半導体装置を提供する。【解決手段】例えば、ランストップ制御信号ＲＳを出力するランストップ回路ＲＵＮＳＴＯＰと、擬似乱数パターンを生成する第１乱数パターン発生回路ＲＤＧ＿ＰＴと、その出力を外部からのデータ入力信号Ｄｉｎの値に応じて反転させる反転制御部ＩＮＶ＿ＢＬＫと、ＩＮＶ＿ＢＬＫを介した出力がスキャン入力されるスキャンチェーン部ＳＣ＿ＢＬＫとを設ける。ＲＤＧ＿ＰＴは、ＲＳに応じて出力の更新ならびに保持を切り替え可能に構成される。このＲＤＧ＿ＰＴによって、活性化率（時系列的なデータの遷移数）が制御された擬似乱数パターンが生成され、これに対してＤｉｎに基づく制御を行うことで、ＡＴＰＧツールからの圧縮パターンに容易に適合させることが可能となる。【選択図】図１
2011089833.tif 000002
【特許請求の範囲】
【請求項１】
時系列的に入力される第１および第２信号を受け、前記第１信号に応じて擬似乱数パターンとなるＭビットの出力値を更新し、前記第２信号に応じて前記擬似乱数パターンとなる前記Ｍビットの出力値を維持する第１乱数パターン発生回路と、
Ｋ（Ｋ＜Ｍ）ビットのデータ入力信号が外部入力されるデータ入力端子と、
前記第１乱数パターン発生回路からの前記Ｍビットの出力値を受け、この各ビットを前記Ｋビットのデータ入力信号に応じて反転させるか否かを制御したのちＭビットの出力を行う反転制御部と、
前記反転制御部からの前記Ｍビットの出力がそれぞれ入力され、それぞれが、スキャン接続された複数のフリップフロップを含むＭ本のスキャンチェーンとを有することを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置において、
さらに、外部から値の設定が可能な設定レジスタを含み、前記設定レジスタの設定値に応じて前記第１信号および前記第２信号の時系列的な発生確率を制御する制御回路を有することを特徴とする半導体装置。
【請求項３】
請求項２記載の半導体装置において、
前記制御回路は、さらに、擬似乱数パターンを発生する第２乱数パターン発生回路を含み、前記設定レジスタからの複数ビットの設定値と、前記第２乱数パターン発生回路からの複数ビットの出力値とを論理演算することで、前記第１信号および前記第２信号の時系列的な発生確率を制御することを特徴とする半導体装置。
【請求項４】
請求項２記載の半導体装置において、
前記Ｋの値は１であり、
前記反転制御部は、前記１ビットのデータ入力信号の論理レベルに応じて、前記第１乱数パターン発生回路からの前記Ｍビットの出力値を全て反転させるか否かを制御することを特徴とする半導体装置。
【請求項５】
請求項２記載の半導体装置において、
前記Ｋの値は２≦Ｋ＜Ｍであり、
前記反転制御部は、前記Ｋビットのデータ入力信号の論理レベルに応じて、前記第１乱数パターン発生回路からの前記Ｍビットの出力値に対して一部のビットを反転させるか否か、ならびに他の一部のビットを反転させるか否かを制御することを特徴とする半導体装置。
【請求項６】
請求項５記載の半導体装置において、
前記反転制御部は、前記Ｋビットのデータ入力信号と、このＫビット中から２ビットを組み合わせ、この２ビットのＥＸＯＲ演算によって生成した制御信号とを用いて、前記第１乱数パターン発生回路からの前記Ｍビットの出力値に対して一部のビットを反転させるか否か、ならびに他の一部のビットを反転させるか否かを制御することを特徴とする半導体装置。
【請求項７】
時系列的に入力される第１および第２信号を受け、前記第１信号に応じて擬似乱数パターンとなるＭビットの出力値を更新し、前記第２信号に応じて前記擬似乱数パターンとなる前記Ｍビットの出力値を維持する第１乱数パターン発生回路と、
Ｋ（Ｋ＜Ｍ）ビットのデータ入力信号が外部入力されるデータ入力端子と、
前記第１乱数パターン発生回路からの前記Ｍビットの出力値を受け、この各ビットを前記Ｋビットのデータ入力信号に応じて反転させるか否かを制御したのちＭビットの出力を行う反転制御部と、
前記反転制御部からの前記Ｍビットの出力がそれぞれ入力され、それぞれがシリアル接続された複数のフリップフロップを含むＭ本のスキャンチェーンと、
外部から値の設定が可能な設定レジスタを含み、前記設定レジスタの設定値に応じて前記第１信号および前記第２信号の時系列的な発生確率を制御する制御回路とを有する半導体装置を対象に、コンピュータシステムによるプログラム処理を用いてテストパターンを生成する方法であって、
前記コンピュータシステムは、
ユーザによって入力された前記設定レジスタの設定値に基づいて、前記第１乱数パターン発生回路の時系列的な応答を算出する第１ステップと、
予め入力された故障リストから故障を選択し、この選択した故障に対応し、一部のビットのみがケアビットとして定められたケアビットパターンをＡＴＰＧアルゴリズムを用いて算出する第２ステップと、
前記第１ステップで算出された前記第１乱数パターン発生回路の時系列的な応答と、前記第２ステップで算出された前記ケアビットパターンとを比較し、前記第１乱数パターン発生回路の時系列的な応答に対して前記反転制御部による反転制御を行うことで前記ケアビットパターンを満たせる場合に、この反転制御に伴う前記Ｋビットのデータ入力信号を算出し、このデータ入力信号を実際の外部入力テストパターンとして保存する第３ステップとを実行することを特徴とする半導体装置のテストパターン生成方法。
【請求項８】
請求項７記載の半導体装置のテストパターン生成方法において、
前記コンピュータシステムは、前記第３ステップにおいて、前記ケアビットが存在しない時刻Ｔに対応する前記Ｋビットのデータ入力信号の値を、前記時刻Ｔの前クロックサイクルとなる時刻（Ｔ−１）における前記Ｋビットのデータ入力信号の値と同一の値に設定することを特徴とする半導体装置のテストパターン生成方法。
【請求項９】
請求項８記載の半導体装置のテストパターン生成方法において、
前記コンピュータシステムは、前記第２ステップにおいて、前記ＡＴＰＧアルゴリズムを用いて算出された前記ケアビットパターンを逐次保存し、前記第３ステップにおいて、前記第１ステップで算出された前記第１乱数パターン発生回路の時系列的な応答と、前記第２ステップで逐次保存された複数の前記ケアビットパターンとを比較することを特徴とする半導体装置のテストパターン生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置ならびに半導体装置のテストパターン生成方法に関し、特に、自己診断回路を備えた半導体装置ならびにこの半導体装置を対象としたテストパターン生成方法に適用して有効な技術に関する。
【背景技術】
【０００２】
例えば、特許文献１の図４には、ＬＦＳＲ（５２）と位相器（５０）で構成されたデコンプレッサー（３６）において、ＬＦＳＲ（５２）上の一部の箇所にインジェクター（４８ａ，４８ｂ）が挿入され、この箇所にテストパターンが外部入力される構成が示されている。このような構成によると、特許文献１の図７に示すように、インジェクター（４８ａ，４８ｂ）への外部入力パターンを関数とする方程式によってスキャンインデータを設定することができ、圧縮スキャンテストを容易に実現可能となる。
【０００３】
また、特許文献２の図１０には、ランストップ制御回路（３００）によってデータの変化率が制御される乱数発生回路（１００）と、その出力を反転制御回路（４００）からの制御信号に応じて反転し、スキャンインデータを出力する反転制御部（６００）とを備えた構成が示されている。このような構成によると、ランストップ制御回路（３００）に伴うデータ変換率の制御と共に、反転制御回路（４００）に伴いスキャンチェーン上のデータに生じ得る斜め方向の相関を防止することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００３−５１５８０９号公報
【特許文献２】特開２００９−１５６７６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的に、ロジック系のＬＳＩ（Large Scale Integration）などでは、通常の外部端子からのテストパターンによって大規模な論理回路を十分にテストすることは困難であるため、スキャン設計を利用したスキャンパターンでのテストが広く行われている。このスキャン設計では、全てのフリップフロップがシフトレジスタとして接続され、各フリップフロップが、スキャンイネーブル信号に応じてシフトレジスタ動作（スキャンイン、スキャンアウト）かユーザ動作（キャプチャ）を行うように構成される。テスト時には、スキャンインによって全てのフリップフロップにあるスキャンパターンが設定されたのち、キャプチャによって内部論理のテストが行われ、そのテスト結果がスキャンアウトによって取り出されるのと並行して次のスキャンパターンのスキャンインが行われる。
【０００６】
このスキャンパターンの設定とテスト結果の取り出しを行うシフトレジスタをスキャンチェーンという。スキャンチェーンは、論理規模に比例して増加するフリップフロップの数に伴い論理規模に比例して長くなり、さらに論理規模の増大に伴い設定パターンが増大することにより、スキャンパターンのサイズは論理規模の２乗に比例して大きくなる。そこで、近年の大規模なＬＳＩでは、スキャンパターンの増大に対応するため、圧縮スキャンテストが行われている。
【０００７】
圧縮スキャンテストでは、例えば特許文献１等に示されるように、ＬＳＩ内部にパターンの圧縮コードの展開するハードウェア（デコンプレッサー）とパターンを圧縮するハードウェアを持つ。ＬＳＩは、検査装置（ＡＴＥ：Automatic Test Equipment）から入力された圧縮コードをデコンプレッサーで展開したのちスキャンチェーンに印加し、またスキャンチェーンにおけるキャプチャ後のテスト結果を圧縮したのちＡＴＥに出力する。圧縮スキャンテストでは、ＡＴＰＧ（Automatic Test Pattern Generator）ツールによって算出されたケアビット（‘０’か‘１’の確定が必要なフリップフロップ）の数が全フリップフロップ数の５％未満程度であり、残りのフリップフロップはドントケア（‘０’でも‘１’でもよい）となることを利用して圧縮を行う。この圧縮スキャンテストでは、通常、ドントケアのビットに対してＬＦＳＲ（Linear Feedback Shift Register）を代表とする乱数パターン発生器の値を補完することにより高効率なパターン生成が行われる。
【０００８】
また、近年のＬＳＩでは、ゲーテッドクロックなどによる電力削減技術が多く導入され、ＬＳＩ内の活性化率を小さくした低消費電力設計が行われている。ところが、テスト時には全ての内部論理をテストする必要があるため、全てのフリップフロップに対してクロックの供給が行われると共に所定のデータが印加され、その結果、ＬＳＩの活性化率が非常に高くなり、消費電力が大きくなってしまう。テスト時の消費電力が通常動作時の消費電力よりも大きくなると、電源電流が増大し、例えば、内部電圧降下や動作周波数の低下などを招くため、テスト時の特性不良が必要以上に発生する。また、電源電流の増大に伴い電源ノイズが大きくなり、擬似的な不良を発生させ歩留まり低下の原因ともなる。さらに、テスト設備の面から見ても、テスト時の電源電流が増大すると、それに対応した設備が必要となるため、テスト設備のコストが増大し、ひいてはＬＳＩのテストコストの増大に繋がる。
【０００９】
こうした中、例えば、特許文献１に示すような技術を用いて圧縮スキャンテストを行った場合、ドントケアのビットがＬＦＳＲ等による乱数によって定められるため、ＬＳＩの活性化率が５０％程度となってしまい、前述したテスト時における消費電力の増大の問題を避けられない。一方、例えば、特許文献２に記載されているような技術を用いると、ＬＳＩの活性化率を調整可能となるが、特許文献２に示される構成では、圧縮スキャンテストに対応することができない。
【００１０】
そこで、本発明の目的の一つは、テスト時の消費電力の低減と共に圧縮スキャンテストを容易に実現可能な半導体装置を提供することにある。また、この半導体装置を対象としたテストパターン生成方法を提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００１２】
本実施の形態による半導体装置は、Ｍビットの出力値を持つ第１乱数パターン発生回路と、Ｋ（Ｋ＜Ｍ）ビットのデータ入力信号が外部入力されるデータ入力端子と、Ｍビットの入力および出力を持つ反転制御部と、Ｍ本のスキャンチェーンとを有するものとなっている。第１乱数パターン発生回路は、時系列的に入力される第１および第２信号を受け、第１信号に応じて擬似乱数パターンとなるＭビットの出力値を更新し、第２信号に応じてＭビットの出力値を維持する構成を備えている。反転制御部は、第１乱数パターン発生回路からのＭビットの出力値を受け、この各ビットをＫビットのデータ入力信号に応じて反転させるか否かを制御したのちＭビットの出力を行う。Ｍ本のスキャンチェーンは、それぞれ、スキャン接続された複数のフリップフロップを含み、反転制御部からのＭビットの出力がそれぞれ入力される。なお、前述した第１信号および第２信号の時系列的な発生確率は、設定レジスタの設定値に応じて変更可能となっている。
【００１３】
このような構成を用いると、第１乱数パターン発生回路によって活性化率（時系列的なデータ遷移の数）が低減された擬似乱数パターンを生成することができ、この擬似乱数パターンに対して外部からのデータ入力信号に基づいてデータ反転の制御を行うことで、ＡＴＰＧツールによって算出されたケアビットパターンに容易に適合させることが可能となる。これによって、テスト時の消費電力が低減できると共に、圧縮スキャンテストが容易に実現可能になる。
【００１４】
また、本実施の形態による半導体装置のテストパターン生成方法は、前述したような半導体装置を対象としてコンピュータシステムを用いたプログラム処理によって実現され、次の第１〜第３ステップを実行するものとなっている。第１ステップでは、ユーザによって入力された設定レジスタの設定値に基づいて、第１乱数パターン発生回路の時系列的な応答を算出する。第２ステップでは、予め入力された故障リストから故障を選択し、この選択した故障に対応し、一部のビットのみがケアビットとして定められたケアビットパターンをＡＴＰＧアルゴリズムを用いて算出する。第３ステップでは、第１ステップで算出された第１乱数パターン発生回路の時系列的な応答と、第２ステップで算出されたケアビットパターンとを比較し、第１乱数パターン発生回路の時系列的な応答に対して前述した反転制御部による反転制御を行うことでケアビットパターンを満たせる場合に、この反転制御に伴う前述したＫビットのデータ入力信号を算出し、このデータ入力信号を実際のテストパターンとして保存する。これによって、活性化率が制御された圧縮スキャンテスト用のテストパターンを容易に生成することが可能となる。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、テスト時の消費電力が低減できると共に、圧縮スキャンテストが容易に実現可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１による半導体装置において、その構成の一例を示すブロック図である。
【図２】図１の半導体装置をテストする際のテストシステムの構成例を示す概略図である。
【図３】図１の半導体装置において、その第１乱数パターン発生回路ならびに反転制御部の詳細な構成例を示す回路図である。
【図４】図１の半導体装置において、そのランストップ回路の詳細な構成例を示す回路図である。
【図５】図１の半導体装置を用いて圧縮スキャンテストを行う場合の動作原理を示す概念図である。
【図６】図１の半導体装置の簡略的な構成例を示す回路図である。
【図７】図６の構成例において、活性化率設定レジスタの設定値に応じた動作例を示す説明図である。
【図８】図６の構成例において、活性化率設定レジスタの設定値に応じた動作例を示す説明図である。
【図９】図６の構成例において、活性化率設定レジスタの設定値に応じた動作例を示す説明図である。
【図１０】本発明の実施の形態２による半導体装置において、その主要部の構成例を示す回路図である。
【図１１】図１０における反転制御部の一部を変形した構成例を示す回路図である。
【図１２】本発明の実施の形態３による半導体装置のテストパターン生成方法において、その処理内容の一例を示すフロー図である。
【図１３】本発明の実施の形態４による半導体装置のテストパターン生成方法において、その処理内容の一例を示すフロー図である。
【発明を実施するための形態】
【００１７】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１８】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
（実施の形態１）
図１は、本発明の実施の形態１による半導体装置において、その構成の一例を示すブロック図である。図１に示す半導体装置ＤＥＶは、ランストップ回路ＲＵＮＳＴＯＰと、第１乱数パターン発生回路ＲＤＧ＿ＰＴと、反転制御部ＩＮＶ＿ＢＬＫと、スキャンチェーン部ＳＣ＿ＢＬＫと圧縮回路ＣＯＭＰを備えている。ＲＵＮＳＴＯＰは、ＬＦＳＲ等を代表とする第２乱数パターン発生回路ＲＤＧ＿ＲＳと活性化率設定レジスタＳＲＥＧを備え、ＲＤＧ＿ＰＴに対してランストップ制御信号ＲＳを出力する。ＲＳは、ＲＤＧ＿ＲＳの出力がＳＲＥＧに基づいて制御されることで、‘１’または‘０’の発生確率がＳＲＥＧによって定められた擬似乱数パターンとなる。例えば、ＳＲＥＧによって‘１’の発生確率が２５％に設定された場合、ＲＳとなるシリアルなＮビットの中に、０．２５×Ｎ個の‘１’と、０．７５×Ｎ個の‘０’が長期的に含まれることになる。
【００２１】
第１乱数パターン発生回路ＲＤＧ＿ＰＴは、ＬＦＳＲ等を代表とする方式で擬似乱数パターンを発生する手段に加えて、例えばランストップ制御信号ＲＳが‘０’のクロックサイクルでは擬似乱数パターンの出力値を更新せず、‘１’のクロックサイクルにおいて擬似乱数パターンの出力値を更新する手段を備えたものとなっている。ＲＤＧ＿ＰＴにおける擬似乱数パターンを発生する手段は、乱数を発生できる方式であれば特に限定はされず、例えば、特許文献１等に示されるように、ＬＦＳＲと位相器を組み合わせたような方式であってもよい。反転制御部ＩＮＶ＿ＢＬＫは、第１乱数パターン発生回路ＲＤＧ＿ＰＴから出力されたｍビットの擬似乱数パターンを受け、外部データ入力端子Ｐ＿Ｄｉｎからのｋ（ｋ＜ｍ）ビットのデータ入力信号に応じて擬似乱数パターンの各ビットを反転するか否かを制御したのち、ｍビットの出力信号を生成する。
【００２２】
スキャンチェーン部ＳＣ＿ＢＬＫは、ｍ本のスキャンチェーンＳＣ［１］〜ＳＣ［ｍ］を備え、各スキャンチェーンは、図示はしないが広く知られているように、スキャンパスによって順次シリアル接続された複数のフリップフロップによって構成される。各スキャンチェーンＳＣ［１］〜ＳＣ［ｍ］に対しては、反転制御部ＩＮＶ＿ＢＬＫから出力されたｍビットの信号がそれぞれ初段のフリップフロップを介して並列に入力され、各スキャンチェーン内のシフト動作（スキャンイン）を介して最終段のフリップフロップに至るまでの各フリップフロップの値が順次設定される。圧縮回路ＣＯＭＰは、特に限定はされないが代表的にはＭＩＳＲ（Multiple Input Signature Register）等であり、シフト動作（スキャンアウト）を介して各スキャンチェーンＳＣ［１］〜ＳＣ［ｍ］の最終段のフリップフロップから順次並列出力されたｍビットの信号を圧縮し、その圧縮結果を外部データ出力端子Ｐ＿Ｄｏｕｔを介して出力する。
【００２３】
図２は、図１の半導体装置をテストする際のテストシステムの構成例を示す概略図である。前述した図１の半導体装置ＤＥＶは、検査装置ＡＴＥに接続された状態でテストされる。検査装置ＡＴＥは、活性化率設定データを含む各種初期値データＩＮＩ＿ＤＡＴをＤＥＶのいずれかの外部端子に対して出力し、この活性化率設定データをＤＥＶの活性化率設定レジスタＳＲＥＧに設定する。例えば、ＳＲＥＧをシフトレジスタで構成することで、１個の外部端子からＳＲＥＧに値を設定することができ、また、この外部端子は、ＤＥＶ内のモード切り替えによって外部データ入力端子Ｐ＿Ｄｉｎ等で兼用させることも可能である。ＡＴＥは、各種初期値データの設定を終えると、ＤＥＶのスキャンテストを開始し、例えば、内部メモリ等に格納されているスキャンインデータＳＩＮ＿ＤＡＴをクロックサイクル毎にＰ＿Ｄｉｎに対して順次出力する。また、これと並行して、外部データ出力端子Ｐ＿Ｄｏｕｔを介して順次出力されたテスト結果（Ｄｏｕｔ）をスキャンアウトデータＳＯＵＴ＿ＤＡＴとして内部メモリ等に格納し、そのデータを予め判明している期待値と比較することで不良の有無を検出する。
【００２４】
図３は、図１の半導体装置において、その第１乱数パターン発生回路ＲＤＧ＿ＰＴならびに反転制御部ＩＮＶ＿ＢＬＫの詳細な構成例を示す回路図である。図３に示すＲＤＧ＿ＰＴは、順次シリアル接続されると共に、最終段から初段への帰還経路を備えた複数のフリップフロップＦＦ［１］〜ＦＦ［ｍ］とこの帰還経路上に挿入された複数のＥＸＯＲ回路ＥＯＲ１，ＥＯＲ２からなる、所謂ＬＦＳＲの構成を備えている。この例では、ＥＯＲ２が、ＦＦ［ｍ］の出力とＦＦ［３］の出力を演算し、ＥＯＲ１が、ＥＯＲ２の出力とＦＦ［２］の出力を演算したのちＦＦ［１］の入力に帰還している。ＬＦＳＲでは、ｍ個のフリップフロップにより（２ｍ−１）個の値を循環する擬似乱数パターンを生成でき、初期値がわかれば、クロック信号ＣＬＫの印加回数によって擬似乱数パターンの出力値を容易に計算することができる。
【００２５】
また、このＲＤＧ＿ＰＴは、各フリップフロップＦＦ［１］〜ＦＦ［ｍ］の入力にそれぞれセレクタ回路ＳＥＬ［１］〜ＳＥＬ［ｍ］を備えている。各セレクタ回路（例えばＳＥＬ［ｍ］）は、前述したランストップ制御信号ＲＳが‘１’の場合には、前段のフリップフロップ（ＦＦ［ｍ−１］）からの出力を対応するフリップフロップ（ＦＦ［ｍ］）に入力することで、クロック信号ＣＬＫに同期して擬似乱数パターンの出力値を更新する。一方、ＲＳが‘０’の場合には、対応するフリップフロップ（ＦＦ［ｍ］）の出力をそのまま入力に戻すことで擬似乱数パターンの出力値を更新せずに維持する。なお、ここでは、各フリップフロップの入力にセレクタを挿入することで、出力値の保持ならびに更新を切り替える構成例を示したが、同一の機能を実現できれば特にこのような構成に限定されるものではない。例えば、ＣＬＫの経路にアンド回路を挿入し、ＲＳが‘０’の場合に、各フリップフロップへのＣＬＫの入力をマスクするように構成することなども可能である。
【００２６】
図３に示す反転制御部ＩＮＶ＿ＢＬＫ１は、複数のＥＸＯＲ回路ＥＯＲ［１］〜ＥＯＲ［ｍ］によって構成される。ＥＯＲ［１］は、データ入力信号Ｄｉｎと前述したＲＤＧ＿ＰＴ内のＦＦ［１］の出力とを演算し、ＥＯＲ［２］は、ＤｉｎとＦＦ［２］の出力とを演算し、以降同様にして、ＥＯＲ［ｍ］は、ＤｉｎとＦＦ［ｍ］の出力とを演算する。したがって、ＥＯＲ［１］〜ＥＯＲ［ｍ］のそれぞれは、Ｄｉｎが‘０’の場合には、対応するフリップフロップの出力をそのまま出力し、Ｄｉｎが‘１’の場合には、対応するフリップフロップの出力を反転して出力する。
【００２７】
図４は、図１の半導体装置において、そのランストップ回路ＲＵＮＳＴＯＰの詳細な構成例を示す回路図である。図４に示すＲＵＮＳＴＯＰは、前述した第２乱数パターン発生回路ＲＤＧ＿ＲＳおよび活性化率設定レジスタＳＲＥＧに加えて、複数のオア回路ＯＲ［１］〜ＯＲ［ｎ］と、ＯＲ［１］〜ＯＲ［ｎ］の出力を演算してランストップ制御信号ＲＳを出力するアンド回路ＡＤとを備えている。ＳＲＥＧは、任意に値を設定可能なｎビットのレジスタによって構成され、この各ビットがＯＲ［１］〜ＯＲ［ｎ］の一方の入力にそれぞれ接続される。ＲＤＧ＿ＲＳは、代表的にはＬＦＳＲ等であり、その各フリップフロップの出力の中から適宜選択したｎビットがＯＲ［１］〜ＯＲ［ｎ］の他方の入力にそれぞれ接続される。
【００２８】
ここで、ｎ＝３の場合を例として、図４のランストップ回路ＲＵＮＳＴＯＰの動作を説明する。例えば、活性化率設定レジスタＳＲＥＧの３ビットが“１１１”の場合、ランストップ制御信号ＲＳには、常に‘１’が出力される。その結果、前述した第１乱数パターン発生回路ＲＤＧ＿ＰＴは、常に出力値を更新することになる。次に、ＳＲＥＧの３ビット中のいずれか２ビットが‘１’の場合、‘０’となる残りの１ビットに対応する第２乱数パターン発生回路ＲＤＧ＿ＲＳの出力に応じて、ＲＳは１／２の確率で‘１’となる。その結果、ＲＤＧ＿ＰＴは、１／２の確率で出力値を更新することになる。続いて、ＳＲＥＧの３ビット中のいずれか１ビットが‘１’の場合、‘０’となる残りの２ビットに対応するＲＤＧ＿ＲＳの出力に応じて、ＲＳは１／４の確率で‘１’となる。その結果、ＲＤＧ＿ＰＴは、１／４の確率で出力値を更新することになる。
【００２９】
このように、活性化率設定レジスタＳＲＥＧの設定値に応じて、第１乱数パターン発生回路ＲＤＧ＿ＰＴにおける出力値の更新確率を制御することができ、その結果、半導体装置ＤＥＶの活性化率を制御することが可能となる。すなわち、ＳＲＥＧのｎビットにおいて‘０’を設定するビット数を増加させるほど、ＲＤＧ＿ＰＴにおける出力値の更新確率が下がり、これに伴いスキャンインにおける各スキャンチェーン上のデータの遷移が抑制されるため、半導体装置ＤＥＶの活性化率を低減できる。なお、ここでは、オア回路ＯＲとアンド回路ＡＤを用いたが、勿論、ナンド回路とアンド回路を用いる等、適宜変更可能である。
【００３０】
図５は、図１の半導体装置を用いて圧縮スキャンテストを行う場合の動作原理を示す概念図である。図５に示すように、ランストップ回路ＲＵＮＳＴＯＰを利用しない場合（例えば活性化率設定レジスタＳＲＥＧに全て‘１’を設定した場合）は、第１乱数パターン発生回路ＲＤＧ＿ＰＴによって‘０’と‘１’が長期的に見てそれぞれ１／２の確率で発生するため、結果として、時系列なデータの遷移が多く発生することになる。一方、ＲＵＮＳＴＯＰを用いると、この時系列なデータの遷移が抑制され、活性化率を低減することができる。
【００３１】
ここで、パターン生成ツールを用いて、予め、この活性化率を低減されたパターン（ここでは“１１１１１００００”）と、ＡＴＰＧツールによって算出された圧縮スキャンテスト用のケアビットパターン（ここでは“ｘｘｘｘｘ１０１１”、「ｘ」はドントケア）とを比較し、“０００００１０１１”をデータ入力信号Ｄｉｎとして定めておく。そうすると、このＤｉｎにおける‘１’の箇所が反転制御部ＩＮＶ＿ＢＬＫを介して反転するため、ＩＮＶ＿ＢＬＫを通過後のパターンは、“１１１１１１０１１”となる。このように、ＩＮＶ＿ＢＬＫを通過後のパターンは、ＡＴＰＧツールによるケアビットパターンを満たすと共に、活性化率が低減されたパターンとなる。
【００３２】
これによって、第１の効果として、テスト時の消費電力を低減した上での圧縮スキャンテストが実現可能となる。テスト時の消費電力は、静的電力（スタンバイ電流）、クロック電力、データ変化（活性化率）に比例する動的電力に分類できるが、図１の半導体装置を用いることで、活性化率を例えば従来の１／１０程度とした圧縮スキャンテストを行うことも可能である。消費電力が低減できると、前述したように、過剰な不良検出を抑制でき、また、供給電力を確保する観点でテスト設備のコストを低減することが可能となる。
【００３３】
第２の効果として、高圧縮率での圧縮スキャンテストが実現可能となる。例えば、図３の例では、１ビットのみのデータ入力信号Ｄｉｎによって圧縮スキャンテストを行うことができる。これによって、テスト時に必要な外部端子数が低減でき、また、テスト入力の保持に必要な検査装置のデータ量（すなわち図２のスキャンインデータＳＩＮ＿ＤＡＴに該当）も低減できるため、テスト設備のコストを低減することが可能となる。また、１台の検査装置から見ると、前述した消費電力、端子数、テストデータ量の低減に伴い、多数個の半導体装置ＤＥＶを同時にテストすることが可能となり、これに伴いテストコストの低減が図れる。
【００３４】
第３の効果として、ＬＳＩの活性化率の設定とＡＴＰＧツールによるケアビットパターンの反映とを容易に両立させながら圧縮スキャンテストを行うことができる。すなわち、テストの最適化ならびに容易化等が図れる。例えば、比較例として、特許文献１のように、乱数パターン発生回路（図１の第１乱数パターン発生回路ＲＤＧ＿ＰＴに該当）に対してテスト入力を行うような構成を用いた場合、ケアビットパターンの反映と活性化率設定を両立させることは極めて困難となる。一方、図１の半導体装置では、活性化率を設定したパターンを生成し、これに対してケアビットを反映させることができるため、この２つをそれぞれ独立して考慮することができ、この両立が極めて容易となる。なお、図５に示したように、ケアビットに応じてデータ入力信号Ｄｉｎによるデータ反転を行うと、この反転に伴いその前段階で設定した活性化率が変化する懸念がある。ただし、このケアビット数は、前述したように全フリップフロップ数の５％程度であるため、実使用上、この反転制御が必要な箇所は微少であり、活性化率に対する影響はほとんど生じない。
【００３５】
次に、図１の半導体装置のより具体的な動作例について、図６の構成例を用いて説明する。図６は、図１の半導体装置の簡略的な構成例を示す回路図である。ここでは、説明を容易にするため、前述したランストップ回路ＲＵＮＳＴＯＰにおける活性化率設定レジスタＳＲＥＧならびに第２乱数パターン発生回路ＲＤＧ＿ＲＳのビット数ｎが２となっている。また、第１乱数パターン発生回路ＲＤＧ＿ＰＴの出力ビット数は６（Ｄ１〜Ｄ６）であり、その内の４ビット（Ｄ１〜Ｄ４）が反転制御部ＩＮＶ＿ＢＬＫを介してスキャンチェーン部ＳＣ＿ＢＬＫに入力される構成となっている。ＳＣ＿ＢＬＫは、それぞれ４個のフリップフロップを含んだ４本のスキャンチェーンＳＣ［１］〜ＳＣ［４］によって構成され、全体として１６個のフリップフロップを備えている。また、圧縮回路ＣＯＭＰは、簡略的にＥＸＯＲ回路とされ、データ入力信号Ｄｉｎは１ビットとされている。
【００３６】
図７〜図９は、図６の構成例において、それぞれ、活性化率設定レジスタＳＲＥＧの設定値に応じた動作例を示す説明図である。まず、図７には、ＳＲＥＧ＝“１１”の場合（すなわちランストップ回路ＲＵＮＳＴＯＰによる活性化率の低減制御が無い場合）の動作例が示されている。この場合、ランストップ制御信号ＲＳは、常に‘１’となり、第１乱数パターン発生回路ＲＤＧ＿ＰＴによる擬似乱数パターンの出力値が各クロックサイクル（図７の時刻ｔ１〜ｔ１２）毎に更新される。そして、ＲＤＧ＿ＰＴ内の４ビット（Ｄ１〜Ｄ４）が反転制御部ＩＮＶ＿ＢＬＫに入力される。
【００３７】
一方、図７では、ＡＴＰＧによって算出されたケアビットパターンの例として、３個のケアビットパターンＣＰＡＴ１〜ＣＰＡＴ３が示されている。各ケアビットパターンは、１６ビット（４ビット×４クロックサイクル）からなり、その内の２ビットがケアビット（「−」はドントケア）となっている。この場合、ＣＰＡＴ１〜ＣＰＡＴ３を実行するための各クロックサイクル（ｔ１〜ｔ１２）毎に、ＲＤＧ＿ＰＴからの４ビット（Ｄ１〜Ｄ４）の出力値とケアビットパターンにおける４ビットとを対比し、図７に示すようなデータ入力信号Ｄｉｎの値を決定する。
【００３８】
例えば、時刻ｔ２では、ＲＤＧ＿ＰＴのＤ２の値がケアビットと一致するためＤｉｎ＝‘０’（反転無し）とし、時刻ｔ３では、ケアビットは存在しないがデータ反転に伴う不必要なデータ遷移を避けるため時刻ｔ２におけるＤｉｎ＝‘０’を維持し、時刻ｔ４では、ＲＤＧ＿ＰＴのＤ４の値がケアビットと不一致のためＤｉｎ＝‘１’（反転有り）とする。また、時刻ｔ５では、ＲＤＧ＿ＰＴのＤ３の値がケアビットと不一致のためＤｉｎ＝‘１’（反転有り）とし、時刻ｔ６では、ケアビットは存在しないが不必要なデータ遷移を避けるため時刻ｔ５におけるＤｉｎ＝‘１’を維持する。
【００３９】
このようにしてデータ入力信号Ｄｉｎの値を定めることで、図７に示すように、スキャンチェーン部ＳＣ＿ＢＬＫに対して各ケアビットパターンを満足するテストパターンＴＰＡＴ１１〜ＴＰＡＴ１３を設定可能となる。また、ＬＳＩの活性化率（トグル率）もほぼ設定通りとすることができる。具体的には、ＴＰＡＴ１１〜ＴＰＡＴ１３における各パターン毎の平均トグル数（‘０’から‘１’への遷移数と‘１’から‘０’への遷移数の合計値）は、６．３であり、各パターンは、４ビットを３回シフトすることで設定されるために、ＬＳＩの活性化率は５３％（＝６．３／１２）となる。擬似乱数パターンをそのまま用いると、その平均活性化率は理論的に５０％であるため、ほぼ設定通りとなる。
【００４０】
次いで、図８には、ＳＲＥＧ＝“０１”の場合（すなわちランストップ回路ＲＵＮＳＴＯＰにより活性化率を１／２に低減する設定を行った場合）の動作例が示されている。この場合、ランストップ制御信号ＲＳでは、各クロックサイクル（図８の時刻ｔ１〜ｔ１２）毎に‘０’と‘１’が１／２の確率で生じ、ＲＳが‘０’の場合には、第１乱数パターン発生回路ＲＤＧ＿ＰＴによる擬似乱数パターンの出力値が更新されずに維持される。また、ＡＴＰＧツールによって算出されたケアビットパターンは、図７と同様である。
【００４１】
この場合、図７と同様にして、各クロックサイクル（ｔ１〜ｔ１２）毎に、ＲＤＧ＿ＰＴからの４ビット（Ｄ１〜Ｄ４）の出力値とケアビットパターンにおける４ビットとを対比し、図８に示すようなデータ入力信号Ｄｉｎの値を決定する。このようにしてＤｉｎの値を定めることで、図８に示すように、スキャンチェーン部ＳＣ＿ＢＬＫに対して各ケアビットパターンを満足するテストパターンＴＰＡＴ２１〜ＴＰＡＴ２３を設定可能となる。また、ＬＳＩの活性化率（トグル率）もほぼ設定通りとすることができる。具体的には、ＴＰＡＴ２１〜ＴＰＡＴ２３における各パターン毎の平均トグル数は、３．７であり、ＬＳＩの活性化率は３０％（＝３．７／１２）となる。活性化率設定レジスタＳＲＥＧによって活性化率を１／２に低減しているため、その理論値は２５％であり、ほぼ設定通りとなる。
【００４２】
続いて、図９には、ＳＲＥＧ＝“００”の場合（すなわちランストップ回路ＲＵＮＳＴＯＰにより活性化率を１／４に低減する設定を行った場合）の動作例が示されている。この場合、ランストップ制御信号ＲＳでは、各クロックサイクル（図９の時刻ｔ１〜ｔ１２）毎に‘０’と‘１’が１／４の確率で生じ、ＲＳが‘０’の場合には、第１乱数パターン発生回路ＲＤＧ＿ＰＴによる擬似乱数パターンの出力値が更新されずに維持される。また、ＡＴＰＧツールによって算出されたケアビットパターンは、図７と同様である。
【００４３】
この場合、図７と同様にして、各クロックサイクル（ｔ１〜ｔ１２）毎に、ＲＤＧ＿ＰＴからの４ビット（Ｄ１〜Ｄ４）の出力値とケアビットパターンにおける所定の４ビットとを対比し、図９に示すようなデータ入力信号Ｄｉｎの値を決定する。このようにしてＤｉｎの値を定めることで、図９に示すように、スキャンチェーン部ＳＣ＿ＢＬＫに対して各ケアビットパターンを満足するテストパターンＴＰＡＴ３１〜ＴＰＡＴ３３を設定可能となる。また、ＬＳＩの活性化率（トグル率）もほぼ設定通りとすることができる。具体的には、ＴＰＡＴ３１〜ＴＰＡＴ３３における各パターン毎の平均トグル数は、１．０であり、ＬＳＩの活性化率は８％（＝１．０／１２）となる。活性化率設定レジスタＳＲＥＧによって活性化率を１／４に低減しているため、その理論値は１２．５％であり、ほぼ設定通りとなる。
【００４４】
これらの例のように、図１の半導体装置を用いることで、ＬＳＩの活性化率をほぼ設定値通りに制御しながらＡＴＰＧツールによって算出されたケアビットパターンを満たした状態でのテストパターン生成が可能となる。なお、図６〜図９の例では、各ケアビットパターン毎のケアビット数が２ビット／１６ビット（１２．５％）であったが、実際の半導体装置におけるケアビット数は、例えば数百万、数千万といった多数のビットの中の５％程度となるため、ＬＳＩの活性化率は、確率的により理論値に近づくことになる。
【００４５】
以上、本実施の形態１による半導体装置を用いることで、代表的には、テスト時の消費電力の低減と共に圧縮スキャンテストを容易に実現可能となる。
【００４６】
（実施の形態２）
前述した実施の形態１の図３等では、データ入力信号Ｄｉｎが１ビットである場合を例として説明を行ったが、本実施の形態２では、Ｄｉｎが複数ビットである場合について説明する。図１０は、本発明の実施の形態２による半導体装置において、その主要部の構成例を示す回路図であり、図３の変形例を示すものである。図１０には、第１乱数パターン発生回路ＲＤＧ＿ＰＴと、反転制御部ＩＮＶ＿ＢＬＫ２と、スキャンチェーン部ＳＣ＿ＢＬＫが示され、その内のＩＮＶ＿ＢＬＫ２が、図３の反転制御部ＩＮＶ＿ＢＬＫ１と異なった構成となっている。それ以外の構成に関しては、図３と同様であるため詳細な説明は省略する。
【００４７】
図１０の反転制御部ＩＮＶ＿ＢＬＫ２は、図３と同様のｍ個のＥＸＯＲ回路ＥＯＲ［１］〜ＥＯＲ［ｍ］に加えて１個のＥＸＯＲ回路ＥＯＲ３を備えており、ＥＯＲ［１］〜ＥＯＲ［ｍ］の一方の入力が、２ビットのデータ入力信号Ｄｉｎ［１］，Ｄｉｎ［２］またはその組み合わせによって定められる構成となっている。この例では、ＥＯＲ［１］，ＥＯＲ［２］の一方の入力がＤｉｎ［１］であり、ＥＯＲ［ｍ−１］，ＥＯＲ［ｍ］の一方の入力がＤｉｎ［２］であり、ＥＯＲ［３］の一方の入力が、Ｄｉｎ［１］とＤｉｎ［２］をＥＯＲ３で演算した結果となるＤｉｎ’［１２］となっている。
【００４８】
すなわち、データ入力信号Ｄｉｎがｋ本の場合、このｋ本のＤｉｎを、ｋ本とその組み合わせのＥＸＯＲ論理とによって（ｋ＋ｋ）Ｃ２本の制御線に拡張し、この拡張された制御線のいずれかによって、ＥＯＲ［１］〜ＥＯＲ［ｍ］が制御される構成となっている。図１１は、図１０における反転制御部ＩＮＶ＿ＢＬＫ２の一部を変形した構成例を示す回路図である。図１１に示すように、例えば、Ｄｉｎが３本の場合には、Ｄｉｎ［１］〜Ｄｉｎ［３］に加えて、Ｄｉｎ’［１２］、Ｄｉｎ’［２３］、Ｄｉｎ’［１３］からなる６本の制御線に拡張される。Ｄｉｎ’［１２］は、Ｄｉｎ［１］とＤｉｎ［２］をＥＸＯＲ回路ＥＯＲ３で演算した結果であり、Ｄｉｎ’［２３］は、Ｄｉｎ［２］とＤｉｎ［３］をＥＸＯＲ回路ＥＯＲ４で演算した結果であり、Ｄｉｎ’［１３］は、Ｄｉｎ［１］とＤｉｎ［３］をＥＸＯＲ回路ＥＯＲ５で演算した結果である。なお、このようにして拡張された制御線とＥＯＲ［１］〜ＥＯＲ［ｍ］との組み合わせ方法は、任意に定めてよい。
【００４９】
このように、複数ビットのデータ入力信号Ｄｉｎを用いることで、テストパターンのロスを少なくし、より効率的な（短時間での）テストが実現可能となる。すなわち、例えば、前述した図７等において、仮にある一つの時刻内にケアビットが複数存在する場合には、１ビットのＤｉｎでは、各ケアビットに対するデータ反転と非反転に矛盾が生じ、ケアビットパターンを満たすテストパターンの作成が困難となる可能性がある。なお、擬似乱数パターンの出力を時系列的に広範囲で探索すれば、矛盾が生じない箇所を検出できる可能性が高いが、その分、テスト時間や、テストパターン作成に要する時間が増大する恐れがある。そこで、本実施の形態２のようにＤｉｎを複数ビットとすることで、このような矛盾を容易に解消できる可能性が高くなり、テストパターンの作成が容易となる。ただし、Ｄｉｎのビット数を増加すると、その分、テストパターンの圧縮率が低下するため、可能な限り少ないビット数とすることが望ましい。
【００５０】
以上、本実施の形態２による半導体装置を用いることで、代表的には、実施の形態１と同様に、テスト時の消費電力の低減と共に圧縮スキャンテストを容易に実現可能となる。更に、データ入力信号を複数ビットとすることで、テストパターンのロスを低減できる。
【００５１】
（実施の形態３）
本実施の形態３では、実施の形態１や２で述べた半導体装置を対象としたテストパターンの生成方法について説明する。図１２は、本発明の実施の形態３による半導体装置のテストパターン生成方法において、その処理内容の一例を示すフロー図である。図１２に示すフローは、コンピュータシステムによるプログラム処理（ＡＴＰＧツールを含む）によって自動的に実行されるものである。
【００５２】
図１２においては、まず、ユーザが、テストパターンの活性化率（すなわち、ランストップ回路ＲＵＮＳＴＯＰにおける活性化率設定レジスタＳＲＥＧの値）をコンピュータシステムに入力する（Ｓ１２０１）。次いで、ユーザが、半導体装置内の想定故障箇所と故障モードを定めた故障リストを作成し、コンピュータシステムに入力する（Ｓ１２０２）。続いて、コンピュータシステムは、故障リストを参照し、未検出故障が無い場合には終了し、未検出故障が有る場合には、故障リストから故障を選択する（Ｓ１２０４）。そして、コンピュータシステムは、広く知られているＡＴＰＧアルゴリズムを用いて、この選択した故障を検出するためのケアビットパターン（図７等におけるＣＰＡＴ）を算出する（Ｓ１２０５）。
【００５３】
次いで、コンピュータシステムは、乱数パターン発生回路の応答を計算する（Ｓ１２０６）。すなわち、前述したＳ１２０１に伴うランストップ回路ＲＵＮＳＴＯＰの制御を反映した上で第１乱数パターン発生回路ＲＤＧ＿ＰＴの各クロックサイクル毎（図７の例では４クロックサイクル分）の出力を計算する。そして、このＲＤＧ＿ＰＴの出力と、Ｓ１２０５で算出したケアビットパターンとを比較し、図７等で述べたような考え方に基づいて、反転制御部ＩＮＶ＿ＢＬＫへのデータ入力信号Ｄｉｎの値を計算する（Ｓ１２０７）。
【００５４】
その後、Ｓ１２０７に伴いＩＮＶ＿ＢＬＫで変換されたテストパターン（図７等におけるＴＰＡＴ）を用いて故障シミュレーションを行い、その結果から検出可能な故障を求めると共に故障リストを更新し、この際のＤｉｎの値を実際の外部入力テストパターンとして登録する。この外部入力テストパターンは、図２におけるスキャンインデータＳＩＮ＿ＤＡＴとなる。そして、再びＳ１２０３へ戻ってループ処理を行う（Ｓ１２０８）。なお、Ｓ１２０７において、ＡＴＰＧのケアビットパターンを満たすＤｉｎが得られなかった場合には、当該故障は未検出故障として故障リストに残り、以降のループ処理の過程で、Ｓ１２０６の乱数パターン発生回路の応答が変わった段階で再び選択されることになる。
【００５５】
以上、本実施の形態３による半導体装置のテストパターン生成方法を用いることで、代表的には、実施の形態１および２の半導体装置を対象とした圧縮スキャンテスト用のテストパターンを容易に生成することが可能となる。
【００５６】
（実施の形態４）
本実施の形態４では、前述した実施の形態３で説明したテストパターン生成方法の変形例について説明する。図１３は、本発明の実施の形態４による半導体装置のテストパターン生成方法において、その処理内容の一例を示すフロー図である。図１３に示すフローは、図１２と同様に、コンピュータシステムによるプログラム処理（ＡＴＰＧツールを含む）によって自動的に実行されるものである。
【００５７】
図１３においては、図１２のＳ１２０１〜Ｓ１２０３と同様に、まず、パターン活性化率の設定（Ｓ１３０１）、故障リストの作成（Ｓ１３０２）、未検出故障有無の判断（Ｓ１３０３）が順に行われる。そして、未検出故障が有った場合、コンピュータシステムは、図１２のＳ１２０６と同様に設定された活性化率を加味した乱数パターン発生回路の応答を計算する（Ｓ１３０４）。次いで、コンピュータシステムは、図１２のＳ１２０４およびＳ１２０５と同様に、故障リストから故障を選択し（Ｓ１３０５）、当該故障を検出するためのケアビットパターンを計算する（Ｓ１３０６）。ここで、Ｓ１３０６では、図１２の場合と異なり、この計算したケアビットパターンを保存する。
【００５８】
次いで、コンピュータシステムは、この保存されたケアビットパターンを参照しながら、Ｓ１３０４で算出した擬似乱数パターンに対して反転制御部ＩＮＶ＿ＢＬＫによる反転制御（すなわちデータ入力信号Ｄｉｎによる制御）を加えることで対応可能となるケアビットパターンを探索する（Ｓ１３０７，Ｓ１３０８）。ここで、反転制御による対応が不可能であった場合には、Ｓ１３０５に戻り、反転制御による対応が可能となるまでループ処理が行われる（Ｓ１３０８）。すなわち、このループ処理の過程で、Ｓ１３０６により各故障に対応したケアビットパターンが逐次保存され、この複数のケアビットパターンの中から、Ｓ１３０４で算出した擬似乱数パターンに対して反転制御を加えることで対応可能なケアビットパターンが検出される。なお、ケアビットパターンが検出された場合には、当該ケアビットパターンは保存先から消去される。
【００５９】
コンピュータシステムは、Ｓ１３０８において反転制御による対応が可能なケアビットパターンを検出すると、図１２のＳ１２０８と同様に、このケアビットに対応する反転制御を加味したテストパターンを用いて故障シミュレーションを行う（Ｓ１３０９）。このＳ１３０９において、コンピュータシステムは、故障シミュレーションの結果から検出可能な故障を求めると共に故障リストを更新し、データ入力信号Ｄｉｎの値（すなわち反転制御を行う値）を実際の外部入力テストパターンとして登録し、再びＳ１３０３へ戻ってループ処理を行う。
【００６０】
図１３のようなフローを用いると、前述した図１２のフローと比較して、テストパターンの生成効率を向上させることが可能となる。すなわち、図１２のフローでは、一旦計算したＡＴＰＧのケアビットパターンが反転制御で対応できなかった場合、当該ケアビットパターンは破棄され、以降のループ処理で再び算出されていた。一方、図１３のフローでは、一旦計算したケアビットパターンが、反転制御によって対応可能となるまで保存されるため、ケアビットパターン計算の重複を避けることができる。また、Ｓ１３０４によって算出された擬似乱数パターンは、複数のケアビットパターンと照合されるため、結果的に、この擬似乱数パターンが無駄となる可能性が低くなり、テストパターンに結び付く可能性が高くなる。
【００６１】
以上、本実施の形態４による半導体装置のテストパターン生成方法を用いることで、実施の形態１および２の半導体装置を対象とした圧縮スキャンテスト用のテストパターンを容易に生成することが可能となる。さらに、実施の形態３の場合と比較して、テストパターンの生成効率を向上させることが可能となる。
【００６２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【産業上の利用可能性】
【００６３】
本実施の形態による半導体装置は、特に、低電力設計が必要なＳＯＣ（System On a Chip）製品、ＭＣＵ（Micro Controller Unit）製品等の半導体装置に適用して有益なものであり、これに限らず、ロジックを搭載した各種半導体装置に対して広く適用可能である。また、特に、低電力化が重要となるモバイル製品に適用すると、非常に有益な効果が得られる。
【符号の説明】
【００６４】
ＡＤ  アンド回路
ＡＴＥ  検査装置
ＣＬＫ  クロック信号
ＣＯＭＰ  圧縮回路
ＣＰＡＴ  ケアビットパターン
ＤＥＶ  半導体装置
Ｄｉｎ  データ入力信号
Ｄｏｕｔ  データ出力信号
ＥＯＲ  ＥＸＯＲ回路
ＦＦ  フリップフロップ
ＩＮＩ＿ＤＡＴ  初期値データ
ＩＮＶ＿ＢＬＫ  反転制御部
ＯＲ  オア回路
Ｐ＿Ｄｉｎ  外部データ入力端子
Ｐ＿Ｄｏｕｔ  外部データ出力端子
ＲＤＧ  乱数パターン発生回路
ＲＳ  ランストップ制御信号
ＲＵＮＳＴＯＰ  ランストップ回路
ＳＣ  スキャンチェーン
ＳＣ＿ＢＬＫ  スキャンチェーン部
ＳＥＬ  セレクタ回路
ＳＩＮ＿ＤＡＴ  スキャンインデータ
ＳＯＵＴ＿ＤＡＴ  スキャンアウトデータ
ＳＲＥＧ  活性化率設定レジスタ
ＴＰＡＴ  テストパターン
【図１】
2011089833.tif 000003
【図２】
2011089833.tif 000004
【図３】
2011089833.tif 000005
【図４】
2011089833.tif 000006
【図５】
2011089833.tif 000007
【図６】
2011089833.tif 000008
【図７】
2011089833.tif 000009
【図８】
2011089833.tif 000010
【図９】
2011089833.tif 000011
【図１０】
2011089833.tif 000012
【図１１】
2011089833.tif 000013
【図１２】
2011089833.tif 000014
【図１３】
2011089833.tif 000015