(57)【要約】【課題】スキャンテスト時、特にキャプチャモード時におけるピーク消費電力を削減し、誤動作を防止する。【解決手段】互いにデータパス依存性のない複数の回路ブロックは、スキャンテスト時にスキャンチェーンを形成するスキャンフリップフロップと組み合わせ回路とを含む。複数の選択回路は、制御信号に基づいて、複数の回路ブロックのそれぞれに供給するクロック信号を実動作時に使用する内部クロック信号と、複数のブロックスキャンクロック信号との一方に切り替える。制御回路は、制御信号がスキャンチェーンにデータを入出力するスキャンシフト期間を示すときに、同じタイミングのシフトクロックを含むブロックスキャンクロック信号を生成し、組み合わせ回路の論理動作をテストするキャプチャ期間を示すときは複数の回路ブロック毎に異なるタイミングのパルスを含むブロックスキャンクロック信号を生成する。【選択図】図１
2012185127.tif 000002
【特許請求の範囲】
【請求項１】
スキャンテスト時にスキャンチェーンを形成するスキャンフリップフロップと組み合わせ回路とを含み、互いにデータパス依存性のない複数の回路ブロックと、
前記スキャンテストに使用され、外部から入力される制御信号に基づいて、前記複数の回路ブロック毎に供給される複数のブロックスキャンクロック信号を生成する制御回路と、
前記複数の回路ブロックのそれぞれに対応して設けられ、前記制御信号に基づいて、前記複数の回路ブロックのそれぞれに供給するクロック信号を実動作時に使用する内部クロック信号と、前記複数のブロックスキャンクロック信号との一方に切り替える複数の選択回路と
を具備し、
前記制御回路は、前記制御信号が前記スキャンチェーンにデータを入出力するスキャンシフト期間を示すときに、同じタイミングのシフトクロックを含む前記ブロックスキャンクロック信号を生成し、前記組み合わせ回路の論理動作をテストするキャプチャ期間を示すときは前記複数の回路ブロック毎に異なるタイミングのパルスを含む前記ブロックスキャンクロック信号を生成する
半導体装置。
【請求項２】
前記制御回路は、単一の入力端子を介して入力されるスキャンテストクロック信号に基づいて、前記ブロックスキャンクロック信号を生成する
請求項１に記載の半導体装置。
【請求項３】
前記キャプチャ期間は、前記複数の回路ブロックのうちの指定される回路ブロックに含まれる前記組み合わせ回路の前記論理動作をテストするキャプチャサイクルを連続して含む
請求項１または請求項２に記載の半導体装置。
【請求項４】
前記ブロックスキャンクロック信号は、前記キャプチャサイクルにおいて前記スキャンチェーンから前記組み合わせ回路にデータを出力するタイミングを示すラウンチパルスと、前記組み合わせ回路から前記論理動作をテストした結果を示すデータを前記スキャンチェーンに取り込むタイミングを示すキャプチャパルスとを含む
請求項３に記載の半導体装置。
【請求項５】
前記ラウンチパルスと前記キャプチャパルスとの間隔は、前記複数の回路ブロックのそれぞれの動作周波数に応じて異なる
請求項４に記載の半導体装置。
【請求項６】
前記制御信号は、
前記スキャンテストの実施を示すスキャンテスト信号と、
前記複数の回路ブロックのうちの前記論理動作をテストする回路ブロックを指定するスキャンモード制御信号と
を含む
請求項１から請求項５のいずれかに記載の半導体装置。
【請求項７】
前記スキャンモード制御信号は、
前記複数の回路ブロックのうちの第１回路ブロックの前記論理動作をテストすることを示す第１スキャンモード制御信号と、
前記複数の回路ブロックのうちの第２回路ブロックの前記論理動作をテストすることを示す第２スキャンモード制御信号と
を含む
請求項６に記載の半導体装置。
【請求項８】
前記スキャンモード制御信号は、コードによって前記論理動作をテストする前記回路ブロックを示し、
前記制御回路は、前記スキャンモード制御信号をデコードして前記論理動作をテストする前記回路ブロックを指定する
請求項６に記載の半導体装置。
【請求項９】
前記制御信号は、
前記スキャンシフト期間と前記キャプチャ期間とを示すスキャンモード制御信号と、
前記キャプチャ期間において、前記複数の回路ブロックのうちの前記論理動作をテストする回路ブロックを切り替えるタイミングを示すカウント信号と
を含む
請求項１から請求項５のいずれかに記載の半導体装置。
【請求項１０】
前記制御信号は、前記スキャンテストを実施中か否かを示すモード切替信号をさらに含む
請求項９に記載の半導体装置。
【請求項１１】
請求項１から請求項１０のいずれかに記載の半導体装置の前記スキャンテストを行うためのテスト用回路を追加する処理をコンピュータに実行させるためのプログラム。
【請求項１２】
前記テスト用回路を追加する前の回路を示す第１回路情報に基づいて、複数の部分回路を抽出するステップと、
前記複数の部分回路間のデータパス依存関係を算出するステップと、
算出された前記データパス依存関係に基づいて、依存関係のない複数の回路ブロックに分類するステップと、
前記複数の回路ブロックのそれぞれ毎に対応するように前記複数の選択回路を挿入するステップと、
前記複数の選択回路のそれぞれに供給する複数のブロックスキャンクロック信号を生成する制御回路を挿入するステップと
を具備する
請求項１１に記載のテスト用回路を追加する処理をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１から請求項１０のいずれかに記載の半導体装置のスキャンテストを行うためのテスト用回路を追加する方法であって、
前記テスト用回路を追加する前の回路を示す第１回路情報に基づいて、複数の部分回路を抽出するステップと、
前記複数の部分回路間のデータパス依存関係を算出するステップと、
算出された前記データパス依存関係に基づいて、依存関係のない複数の回路ブロックに分類するステップと、
前記複数の回路ブロックのそれぞれ毎に対応するように前記複数の選択回路を挿入するステップと、
前記複数の選択回路のそれぞれに供給する複数のブロックスキャンクロック信号を生成する制御回路を挿入するステップと
を具備する
テスト用回路を追加する方法。
【請求項１４】
請求項１から請求項１０のいずれかに記載の半導体装置のスキャンテストに用いられるテストパターンの生成方法であって、
前記複数の回路ブロックが同時に動作するように前記制御信号を設定することを第１前提条件とするステップと、
前記第１前提条件に基づいて、前記複数の回路ブロックが同時に動作することを前提として前記スキャンテストに用いられるテストパターンを生成するステップと、
前記複数の回路ブロックのうちの一つの回路ブロックが動作するように前記制御信号を設定することを第２前提条件とするステップと、
前記第２前提条件に基づいて、前記一つの回路ブロックが動作するキャプチャサイクルを前記キャプチャ期間に設けるステップと、
前記一つの回路ブロックを替えて前記第２前提条件とするステップおよび前記キャプチャサイクルを前記キャプチャ期間に設けるステップを繰り返すステップと
を具備する
テストパターンの生成方法。
【請求項１５】
請求項１４に記載のテストパターンの生成方法をコンピュータに実行させるためのプログラム。
【請求項１６】
スキャンテスト時にスキャンチェーンを形成するスキャンフリップフロップと組み合わせ回路とを含み、互いにデータパス依存性のない複数の回路ブロックを抽出するステップと、
前記スキャンテストに使用され、外部から入力される制御信号に基づいて、前記複数の回路ブロック毎に供給される複数のブロックスキャンクロック信号を生成する制御回路を設けるステップと、前記制御回路は、前記制御信号が前記スキャンチェーンにデータを入出力するスキャンシフト期間を示すときに、同じタイミングのシフトクロックを含む前記ブロックスキャンクロック信号を生成し、前記組み合わせ回路の論理動作をテストするキャプチャ期間を示すときは前記複数の回路ブロック毎に異なるタイミングのパルスを含む前記ブロックスキャンクロック信号を生成し、
前記制御信号に基づいて、前記複数の回路ブロックのそれぞれに供給するクロック信号を実動作時に使用する内部クロック信号と、前記複数のブロックスキャンクロック信号との一方に切り替える複数の選択回路を前記複数の回路ブロックのそれぞれに対応して設けるステップと、
前記スキャンフリップフロップがスキャンチェーンを形成するように前記制御信号を設定し、テストパターンを入力するステップと、
前記複数の回路ブロックのうちの一つの回路ブロックが動作するように前記制御信号を設定するステップと、
前記一つの回路ブロックにキャプチャ動作するように前記ブロックスキャンクロック信号を供給するステップと、
前記一つの回路ブロックを替えて前記制御信号を設定するステップおよび前記ブロックスキャンクロック信号を供給するステップを繰り返すステップと、
前記スキャンフリップフロップがスキャンチェーンを形成するように前記制御信号を設定し、テスト結果を出力するステップと
を具備する
半導体装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置およびそのテスト方法に関し、特に、スキャンテスト回路およびスキャンテスト方法に関する。
【背景技術】
【０００２】
近年の半導体装置の回路規模拡大により、必要となるスキャンテスト用クロック端子数が増加している。一方、テストコスト削減のために、テスト時に使用できる端子数が少なくなってきている。そのため、スキャンテストにおいては、同時並列テストを行う場合、１本のスキャンテスト用クロック端子で、多くのスキャンテスト用クロックドメインを動作させなければならない。しかし、１本のスキャンテスト用クロック端子で多くのスキャンテスト用クロックドメインを同時に動作させると、スキャンテスト時のピーク消費電力が増加する。一般的にシフトモード時のピーク消費電力削減については内部回路を停止させるなどの対策が施されているが、スキャンテストの特にキャプチャモード時には内部回路を停止させるわけにもいかず、ピーク消費電力を削減できるテスト手法の要求が高まっている。
【０００３】
特開２００７−２１２３３９号公報には、クロック信号に基づき動作する複数の論理回路によって構成されるクロックドメインを複数有する半導体装置のテスト方法が示されている。この半導体装置は、複数のクロックドメインのうち、制御信号に基づいて選択される任意のクロックドメイン対してクロック信号を選択的に供給する制御回路を有する。選択される任意のクロックドメイン毎にテストすることにより、出荷検査のためのテストパターンの増加と端子の追加を抑制することが可能となる。
【０００４】
しかし、この方法では、スキャンテスト用クロックドメイングループを構築するときに、通常動作時に同時には内部クロックが供給されない内部クロックドメインを判別せず、同じ周波数サブグループにまとめている。したがって、通常動作時に同時には内部クロックが供給されない内部クロックドメインに同時にスキャンテスト用クロックが供給されるため、ピーク消費電力が通常動作時よりもスキャンテスト時のほうが大きくなり、ＩＲドロップが大きくなる。そのため、スキャンテスト時に誤動作することがある。
【０００５】
また、特開２００５−０２４３５９号公報には、自己診断型論理回路の動的故障テスト方法が開示されている。この自己診断型論理回路は、組合せ回路と被検査回路としての複数の記憶素子とを有する。記憶素子をシフトレジスタ状のスキャンチェインに構成する動作モードに設定する制御信号に応答して、記憶素子はスキャンチェインを形成する。一つまたは複数の相のクロック信号源が各記憶素子に分配される。この動的故障テスト方法では、クロック信号によってスキャンチェイン上のデータのシフト動作と、組合せ回路からの信号値のキャプチャ動作と、記憶素子の保持する内容の組合せ回路へのリリース動作とがなされる。クロック信号源の少なくとも一つは、複数のクロック信号に分割されている。クロック制御回路は、各クロック信号の伝搬の許容と遮断とを制御する。被検査回路は、供給されるクロック信号によって複数のグループに分割される。１回のテストステップにおける動的故障テストは、被検査回路の一部のグループに限定して実施され、複数回のテストステップによって被検査回路の全てのグループに対して動的故障テストが行われる。
【０００６】
また、特開２００９−１０９１９２号公報には、ＬＳＩ内部において、クロックツリー系統毎に形成されるスキャンチェーン群に対して、スキャンチェーン群構造と、テストクロック入力機構と、入力クロックのオン/オフ機構とを備えてテストを行う方法が開示されている。スキャンチェーン群構造は、１系統のクロックツリーのクロック供給領域を複数に分割したクロック分配領域をまたがず、分配領域内において接続距離が短くなるように再接続処理が行われた構造である。テストクロック入力機構は、各分配領域への入力テストクロックを独立なサブクロック相とする。入力クロックのオン/オフ機構は、各分配領域への入力クロックの分配をオン/オフする。そして、同時に行われるスキャンイン/アウトとスキャンテストを１領域内または１領域間に限定して実施し、複数回のテストステップで各領域および各領域間全てのテストが行われる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２１２３３９号公報
【特許文献２】特開２００５−０２４３５９号公報
【特許文献３】特開２００９−１０９１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、スキャンテスト時、特にキャプチャモード時におけるピーク消費電力が削減される半導体装置およびそのテスト方法を提供する。
【課題を解決するための手段】
【０００９】
以下に、［発明を実施するための形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明の観点では、半導体装置は、互いにデータパス依存性のない複数の回路ブロック（１０、２０）と、制御回路（４０）と、複数の選択回路（５１、５２）とを具備する。複数の回路ブロック（１０、２０）は、スキャンテスト時にスキャンチェーンを形成するスキャンフリップフロップ（１１、１２、２１、２２）と組み合わせ回路（１８、２８）とを含む。制御回路（４０）は、スキャンテストに使用され、外部から入力される制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ）に基づいて、複数の回路ブロック（１０、２０）毎に供給される複数のブロックスキャンクロック信号（ＳＣＫ１、ＳＣＫ２）を生成する。複数の選択回路（５１、５２）は、複数の回路ブロック（１０、２０）のそれぞれに対応して設けられる。複数の選択回路（５１、５２）は、制御信号（ＳＴ）に基づいて、複数の回路ブロック（１０、２０）のそれぞれに供給するクロック信号（ＣＫ１、ＣＫ２）を実動作時に使用する内部クロック信号（ＩＣＫ１、ＩＣＫ２）と、複数のブロックスキャンクロック信号（ＳＣＫ１、ＳＣＫ２）との一方に切り替える。制御回路（４０）は、制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ）がスキャンチェーンにデータを入出力するスキャンシフト期間を示すときに、同じタイミングのシフトクロックを含むブロックスキャンクロック信号を生成し、組み合わせ回路（１８、２８）の論理動作をテストするキャプチャ期間を示すときは複数の回路ブロック毎に異なるタイミングのパルスを含むブロックスキャンクロック信号を生成する。
【００１１】
本発明の他の観点では、テスト用回路を追加する方法は、テスト用回路を追加する前の回路を示す第１回路情報（Ｆ１０）に基づいて、複数の部分回路を抽出するステップと、複数の部分回路間のデータパス依存関係を算出するステップと、算出されたデータパス依存関係に基づいて、依存関係のない複数の回路ブロック（１０、２０）に分類するステップと、複数の回路ブロック（１０、２０）のそれぞれ毎に対応するように複数の選択回路（５１、５２）を挿入するステップと、複数の選択回路（５１、５２）のそれぞれに供給する複数のブロックスキャンクロック信号（ＳＣＫ１、ＳＣＫ２）を生成する制御回路（４０）を挿入するステップとを具備する。
【００１２】
また、本発明の他の観点では、テストパターンの生成方法は、複数の回路ブロック（１０、２０）が同時に動作するように前記制御信号を設定することを第１前提条件とするステップと、第１前提条件に基づいて複数の回路ブロック（１０、２０）が同時に動作することを前提としてスキャンテストに用いられるテストパターンを生成するステップと、複数の回路ブロックのうちの一つの回路ブロックが動作するように制御信号を設定することを第２前提条件とするステップと、第２前提条件に基づいて、一つの回路ブロックが動作するキャプチャサイクルをキャプチャ期間に設けるステップと、一つの回路ブロックを替えて第２前提条件とするステップおよびキャプチャサイクルをキャプチャ期間に設けるステップを繰り返すステップとを具備する。
【００１３】
さらに、本発明の他の観点では、半導体装置のテスト方法は、スキャンテスト時にスキャンチェーンを形成するスキャンフリップフロップ（１１、１２、２１、２２）と組み合わせ回路（１８、２８）とを含み、互いにデータパス依存性のない複数の回路ブロック（１０、２０）を抽出するステップと、スキャンテストに使用され、外部から入力される制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ）に基づいて、複数の回路ブロック（１０、２０）毎に供給される複数のブロックスキャンクロック信号（ＳＣＫ１、ＳＣＫ２）を生成する制御回路（４０）を設けるステップと、制御信号（ＳＴ）に基づいて、前記複数の回路ブロック（１０、２０）のそれぞれに供給するクロック信号（ＣＫ１、ＣＫ２）を実動作時に使用する内部クロック信号（ＩＣＫ１、ＩＣＫ２）と、前記複数のブロックスキャンクロック信号（ＳＣＫ１、ＳＣＫ２）との一方に切り替える複数の選択回路（５１、５２）を前記複数の回路ブロック（１０、２０）のそれぞれに対応するように設けるステップとを備え、テスト対象の半導体装置が設計される。制御回路（４０）は、制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ）がスキャンチェーンにデータを入出力するスキャンシフト期間を示すときに、同じタイミングのシフトクロックを含むブロックスキャンクロック信号を生成し、組み合わせ回路（１８、２８）の論理動作をテストするキャプチャ期間を示すときは複数の回路ブロック毎に異なるタイミングのパルスを含むブロックスキャンクロック信号を生成する。さらに、スキャンフリップフロップ（１１、１２、２１、２２）がスキャンチェーンを形成するように前記制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ）を設定し、テストパターンを入力するステップと、複数の回路ブロック（１０、２０）のうちの一つの回路ブロックが動作するように制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ、ＰＣＮＴ）を設定するステップと、一つの回路ブロックにキャプチャ動作するようにブロックスキャンクロック信号を供給するステップと、一つの回路ブロックを替えて制御信号を設定するステップおよびブロックスキャンクロック信号を供給するステップを繰り返すステップと、スキャンフリップフロップ（１１、１２、２１、２２）がスキャンチェーンを形成するように制御信号（ＳＭＣ１、ＳＭＣ２、ＳＭＣ）を設定し、テスト結果を出力するステップとを具備し、半導体装置のテストが行われる。
【発明の効果】
【００１４】
本発明によれば、スキャンテスト時、特にキャプチャモード時におけるピーク消費電力が削減される半導体装置およびそのテスト方法を提供することができる。ピーク消費電力が削減されるため、ＩＲドロップによる誤動作を防止することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の第１の実施の形態に係る半導体装置の構成を示す回路図である。
【図２】図２は、本発明の第１の実施の形態に係る制御回路の構成を示す回路図である。
【図３】図３は、本発明の第１の実施の形態に係る制御回路の動作を示す真理値表である。
【図４】図４は、本発明の第１の実施の形態に係る半導体装置のスキャンテスト時の動作を示すタイミングチャートである。
【図５】図５は、本発明の第１の実施の形態に係る半導体装置のスキャンテスト時の動作の他の例を示すタイミングチャートである。
【図６】図６は、本発明の第１の実施の形態に係るスキャンチェーンの他の構成を示す回路図である。
【図７】図７は、本発明の第１の実施の形態に係るテスト用のデータ作成方法を説明するフローチャートである。
【図８】図８は、本発明の第１の実施の形態に係る追加回路の組み込み処理を説明するフローチャートである。
【図９】図９は、本発明の第１の実施の形態に係るテストパターンの加工処理を説明するフローチャートである。
【図１０】図１０は、本発明の第１の実施の形態に係るテストパターンを生成するときに想定される半導体装置のスキャンテスト時の動作を示すタイミングチャートである。
【図１１】図１１は、本発明の第２の実施の形態に係る制御回路の構成を示す図である。
【図１２】図１２は、本発明の第２の実施の形態に係る制御回路の動作を示す真理値表である。
【図１３】図１３は、本発明の第３の実施の形態に係る制御回路の構成を示す図である。
【図１４】図１４は、第３の実施の形態に係る制御回路により制御される半導体装置のスキャンテスト時の動作を示すタイミングチャートである。
【図１５】図１５は、本発明の第３の実施の形態に係るテストパターンを生成するときに想定される半導体装置のスキャンテスト時の動作を示すタイミングチャートである。
【図１６】図１６は、本発明の第３の実施の形態に係るテストパターンの加工処理を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
図面を参照して、本発明を実施するための形態が説明される。
【００１７】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る半導体装置の構成を示す回路図である。半導体装置は、被テスト回路である回路ブロック１０および回路ブロック２０と、制御回路４０と、選択回路５１、５２とを備える。
【００１８】
制御回路４０は、装置外部から入力端子を介して、スキャンクロック信号ＳＣＫ、スキャンモード制御信号ＳＭＣ１、ＳＭＣ２を入力する。制御回路４０は、スキャンモード制御信号ＳＭＣ、スキャンクロック信号ＳＣＫ１、ＳＣＫ２を生成する。スキャンモード制御信号ＳＭＣは、回路ブロック１０、２０に供給され、回路ブロック１０、２０に含まれるスキャンフリップフロップの動作モードを切り換える。スキャンクロック信号ＳＣＫ１は選択回路５１に、スキャンクロック信号ＳＣＫ２は選択回路５２に供給される。スキャンテストの実施を示すスキャンテスト信号ＳＴは、装置外部から入力端子を介して選択回路５１、５２に供給され、選択する信号を指定する。選択回路５１は、スキャンテスト信号ＳＴに応答して、装置内部のクロック信号ＩＣＫ１と、スキャンクロック信号ＳＣＫ１とのうちの一方を選択し、クロック信号ＣＫ１として回路ブロック１０に供給する。選択回路５２は、スキャンテスト信号ＳＴに応答して、装置内部のクロック信号ＩＣＫ２と、スキャンクロック信号ＳＣＫ２とのうちの一方を選択し、クロック信号ＣＫ２として回路ブロック２０に供給する。
【００１９】
回路ブロック１０は、フリップフロップ１１、１２と組み合わせ回路１８とを含む。フリップフロップ１１、１２は、スキャンフリップフロップであり、クロック信号ＣＫ１に同期してデータ入力ノードＤまたはスキャンシフト入力ノードＳＩからデータを取り込み、データ出力ノードＱまたはスキャンシフト出力ノードＳＯからデータを出力する。フリップフロップ１１、１２のデータ入力ノードＤおよびデータ出力ノードＱは、組み合わせ回路１８に接続される。回路ブロック２０は、フリップフロップ２１、２２と組み合わせ回路２８とを含む。フリップフロップ２１、２２は、スキャンフリップフロップであり、クロック信号ＣＫ２に同期してデータ入力ノードＤまたはスキャンシフト入力ノードＳＩからデータを取り込み、データ出力ノードＱまたはスキャンシフト出力ノードＳＯからデータを出力する。フリップフロップ２１、２２のデータ入力ノードＤおよびデータ出力ノードＱは、組み合わせ回路２８に接続される。
【００２０】
スキャンモード制御信号ＳＭＣは、データ入力ノードＤ、データ出力ノードＱによる入出力を有効にするか、スキャンシフト入力ノードＳＩ、スキャンシフト出力ノードＳＯによる入出力を有効にするかを示す。フリップフロップ１１、１２、２１、２２は、スキャンテスト時にスキャンチェーンを形成する。すなわち、スキャンモード制御信号ＳＭＣが“１”を示すとき、フリップフロップ１１、１２、２１、２２は、スキャンシフト入力ノードＳＩおよびスキャンシフト出力ノードＳＯによる入出力を有効にし、シフトレジスタを形成する。このスキャンチェーンは、装置外部から入力端子を介してスキャンデータ入力信号ＳＩＮを入力し、テスト結果を示すスキャンデータ出力信号ＳＯＵＴを装置外部に出力端子を介して出力する。
【００２１】
通常動作時、回路ブロック１０と回路ブロック２０との間に接続される信号線はない。すなわち、回路ブロック１０と回路ブロック２０との間にデータパス依存関係はない。回路ブロック１０と、回路ブロック２０とは独立的に動作可能である。
【００２２】
図２は、制御回路４０の構成を示す回路図である。制御回路４０は、クロックゲーティングセル４１、４２と、ＡＮＤ回路４００と、ＮＯＴ回路４１１、４２１とを備える。ＡＮＤ回路４００は、スキャンモード制御信号ＳＭＣ１およびＳＭＣ２を入力し、スキャンモード制御信号ＳＭＣを出力する。ＮＯＴ回路４１１は、スキャンモード制御信号ＳＭＣ１を入力してクロックイネーブル信号ＣＥＮ１をクロックゲーティングセル４１に出力する。ＮＯＴ回路４２１は、スキャンモード制御信号ＳＭＣ２を入力してクロックイネーブル信号ＣＥＮ２をクロックゲーティングセル４２に出力する。
【００２３】
クロックゲーティングセル４１は、ＯＲ回路４１４、ラッチ回路４１６、ＡＮＤ回路４１８を含む。ＯＲ回路４１４は、クロックイネーブル信号ＣＥＮ１とクロックモード制御信号ＳＭＣとを入力し、論理和を示す信号をラッチ回路４１６に出力する。ラッチ回路４１６は、クロックイネーブル信号ＣＥＮ１とクロックモード制御信号ＳＭＣとの論理和を示す信号をスキャンクロックＳＣＫの立ち下がりエッジに同期してラッチし、ラッチ内容をＡＮＤ回路４１８に出力する。ＡＮＤ回路４１８は、ラッチ回路４１６の出力とスキャンクロック信号ＳＣＫとを入力して、スキャンクロック信号ＳＣＫ１を出力する。すなわち、クロックゲーティングセル４１は、スキャンモード制御信号ＳＭＣとクロックイネーブル信号ＣＥＮ１とに基づいて、スキャンクロック信号ＳＣＫを断続したスキャンクロック信号ＳＣＫ１を生成して出力する。したがって、クロックゲーティングセル４１は、スキャンモード制御信号ＳＭＣまたはクロックイネーブル信号ＣＥＮ１がアクティブのとき、スキャンクロック信号ＳＣＫをスキャンクロック信号ＳＣＫ１として出力する。
【００２４】
クロックゲーティングセル４２は、ＯＲ回路４２４、ラッチ回路４２６、ＡＮＤ回路４２８を含む。ＯＲ回路４２４は、クロックイネーブル信号ＣＥＮ２とクロックモード制御信号ＳＭＣとを入力し、論理和を示す信号をラッチ回路４２６に出力する。ラッチ回路４２６は、クロックイネーブル信号ＣＥＮ２とクロックモード制御信号ＳＭＣとの論理和を示す信号をスキャンクロックＳＣＫの立ち下がりエッジに同期してラッチし、ラッチ内容をＡＮＤ回路４２８に出力する。ＡＮＤ回路４２８は、ラッチ回路４２６の出力とスキャンクロック信号ＳＣＫとを入力して、スキャンクロック信号ＳＣＫ２を出力する。すなわち、クロックゲーティングセル４２は、スキャンモード制御信号ＳＭＣとクロックイネーブル信号ＣＥＮ２とに基づいて、スキャンクロック信号ＳＣＫを断続したスキャンクロック信号ＳＣＫ２を生成して出力する。したがって、クロックゲーティングセル４２は、スキャンモード制御信号ＳＭＣまたはクロックイネーブル信号ＣＥＮ２がアクティブのとき、スキャンクロック信号ＳＣＫをスキャンクロック信号ＳＣＫ２として出力する。
【００２５】
図３は、制御回路４０の動作を示す真理値表である。図２に示される回路図は、図３に示される真理値表のドントケア論理（＊：ｄｏｎ’ｔ  ｃａｒe）を論理“０”として回路に展開したものである。図３に示されるように、制御回路４０は、スキャンモード制御信号ＳＭＣ１およびＳＭＣ２の状態に基づいて、４つの動作モードで半導体装置のスキャンテスト動作を制御する。スキャンモード制御信号ＳＭＣ１、ＳＭＣ２がともに“０”のとき、動作モードＭ０を示し、半導体装置はスキャンチェーンを解放して動作を行う。スキャンモード制御信号ＳＭＣ１、ＳＭＣ２がともに“１”のとき、動作モードＭＳを示し、各フリップフロップがスキャンチェーンを形成してスキャンシフト動作を行う。スキャンモード制御信号ＳＭＣ１が“０”でスキャンモード制御信号ＳＭＣ２が“１”のとき、動作モードＭ１を示し、回路ブロック１０のテスト動作を行う。スキャンモード制御信号ＳＭＣ１が“１”でスキャンモード制御信号ＳＭＣ２が“０”のとき、動作モードＭ２を示し、回路ブロック２０のテスト動作を行う。
【００２６】
図４は、図１に示される半導体装置のスキャンテスト時の動作を示すタイミングチャートである。
【００２７】
時刻ＣＴ０において、スキャンテスト信号ＳＴが“１”となり（図４（ａ））、スキャンテストが開始される。スキャンモード制御信号ＳＭＣ１、ＳＭＣ２が共に“１”となり（図４（ｂ）（ｃ））、動作モードＭＳのスキャンシフト期間を示す。スキャンモード制御信号ＳＭＣが“１”となり（図４（ｅ））、フリップフロップ１１、１２、２１、２２は、スキャンチェーンを形成する。また、選択回路５１、５２は、スキャンテスト信号ＳＴに応答して、スキャンクロック信号を選択する。スキャンクロック信号ＳＣＫの入力に伴って（図４（ｄ））、スキャンクロック信号ＳＣＫ１が選択回路５１を介してクロック信号ＣＫ１として回路ブロック１０に供給され（図４（ｆ））、スキャンクロック信号ＳＣＫ２が選択回路５２を介してクロック信号ＣＫ２として回路ブロック２０に供給される（図４（ｇ））。時刻ＣＴ０から時刻ＣＴ１までのシフト期間（動作モードＭＳ）において、スキャンクロック信号ＳＣＫ１、ＳＣＫ２に応答してフリップフロップ１１、１２、２１、２２にテストデータが入力される。
【００２８】
時刻ＣＴ１において、スキャンモード制御信号ＳＭＣ１が“０”になり、動作モードＭ１のキャプチャ期間を示す（図４（ｂ））。スキャンモード制御信号ＳＭＣは、“０”になり（図４（ｅ））、スキャンチェーンは開放される。動作モードＭ１では、制御回路４０は、スキャンクロック信号ＳＣＫ１にスキャンクロック信号ＳＣＫを反映させ、スキャンクロック信号ＳＣＫ２に反映させない（図４（ｄ）（ｆ））。回路ブロック１０は、スキャンクロック信号ＳＣＫ１のラウンチパルスとキャプチャパルスとに基づいて、組み合わせ回路１８の論理動作をテストする。すなわち、フリップフロップ１１、１２は、ラウンチパルスに応答して出力ノードＱからテストデータを組み合わせ回路１８に出力する。組み合わせ回路１８は、フリップフロップ１１、１２から出力されるデータに基づいて論理演算する。キャプチャパルスに応答して、フリップフロップ１１、１２は、組み合わせ回路１８から出力される結果データをデータ入力ノードＤから取り込む。このとき、回路ブロック２０は、クロック信号ＣＫ２が変化しないため、動作しない。
【００２９】
時刻ＣＴ２において、スキャンモード制御信号ＳＭＣ１が“１”、スキャンモード制御信号ＳＭＣ２が“０”になり（図４（ｂ）（ｃ））、動作モードＭ２のキャプチャ期間を示す。スキャンモード制御信号ＳＭＣは、“０”のままである（図４（ｅ））。制御回路４０は、スキャンクロック信号ＳＣＫ２にスキャンクロック信号ＳＣＫを反映させ、スキャンクロック信号ＳＣＫ１に反映させない（図４（ｄ）（ｇ））。回路ブロック２０は、スキャンクロック信号ＳＣＫ２のラウンチパルスとキャプチャパルスとに基づいて、組み合わせ回路２８の論理動作をテストする。すなわち、フリップフロップ２１、２２は、ラウンチパルスに応答して出力ノードＱからテストデータを組み合わせ回路２８に出力する。組み合わせ回路２８は、フリップフロップ２１、２２から出力されるデータに基づいて論理演算する。キャプチャパルスに応答して、フリップフロップ２１、２２は、組み合わせ回路２８から出力される結果データをデータ入力ノードＤから取り込む。このとき、回路ブロック１０は、クロック信号ＣＫ１が変化しないため、動作しない。
【００３０】
時刻ＣＴ３において、スキャンモード制御信号ＳＭＣ１、ＳＭＣ２が“１”になり（図４（ｂ）（ｃ））、動作モードＭＳのスキャンシフト期間を示す。スキャンモード制御信号ＳＭＣが“１”となり（図４（ｅ））、フリップフロップ１１、１２、２１、２２は、スキャンチェーンを形成する。スキャンクロック信号ＳＣＫの入力に伴って（図４（ｄ））、スキャンクロック信号ＳＣＫ１が選択回路５１を介してクロック信号ＣＫ１として回路ブロック１０に供給され（図４（ｆ））、スキャンクロック信号ＳＣＫ２が選択回路５２を介してクロック信号ＣＫ２として回路ブロック２０に供給される（図４（ｇ））。時刻ＣＴ３から時刻ＣＴ４までのシフト期間（動作モードＭＳ）において、フリップフロップ１１、１２、２１、２２に取り込まれたテスト結果がスキャンデータ出力信号ＳＯＵＴとして出力端子から出力される。
【００３１】
時刻ＣＴ４において、スキャンテスト信号ＳＴ、スキャンモード制御信号ＳＭＣ１、ＳＭＣ２は、“０”を示してスキャンテストを終了する（図４（ａ）（ｂ）（ｃ））。
【００３２】
このように、スキャンテストデータを与えられた回路をデータパス依存性のない複数の回路ブロックに分け、キャプチャ期間を延長してラウンチパルスとキャプチャパルスとの組を対象となる回路ブロック毎に供給することにより、消費電流を削減してスキャンテストすることができる。
【００３３】
上記では、回路ブロック１０と回路ブロック２０とは互いにデータパス依存性のない回路ブロックとしていたが、さらにクロックドメインが異なる回路ブロックであってもよい。例えば、回路ブロック１０は、動作周波数１００ＭＨｚのクロックドメインに属し、回路ブロック２０は、動作周波数１５０ＭＨｚのクロックドメインに属するものとする。回路ブロック１０と回路ブロック２０との間にデータパス依存性がないため、それぞれ単独に動作させても結果に変わりはない。したがって、図５に示されるように、回路ブロック１０に対するラウンチパルスとキャプチャパルスとの間隔を動作周波数１００ＭＨｚに相当する時間Ｔ１とし、回路ブロック２０に対するラウンチパルスとキャプチャパルスとの間隔を動作周波数１５０ＭＨｚに相当する時間Ｔ２とすることができる。
【００３４】
このように、キャプチャ期間に供給されるラウンチパルスとキャプチャパルスとの時間間隔を回路ブロック毎に変えることにより、一度のテストデータ入力によって複数の動作周波数に対応するテストができる。動作周波数毎にクロック入力端子を設ける必要もなく、テストに使用する端子数を削減することが可能となる。
【００３５】
また、図６に示されるように、スキャンチェーンは、スキャンクロック信号ＳＣＫに対して複数であってもよい。図６に示される回路では、回路ブロック１０のフリップフロップ１１、１２によって形成される第１のスキャンチェーンと、回路ブロック２０のフリップフロップ２１、２２によって形成される第２のスキャンチェーンとを備える。第１のスキャンチェーンは、入力端子を介してスキャンデータ入力信号ＳＩＮ１を入力し、出力端子を介してスキャンデータ出力信号ＳＯＵＴ１を出力する。第２のスキャンチェーンは、入力端子を介してスキャンデータ入力信号ＳＩＮ２を入力し、出力端子を介してスキャンデータ出力信号ＳＯＵＴ２を出力する。使用される入出力端子が増加するが、スキャンチェーンが短くなるため、スキャンシフト時間が短くなり、スキャンテスト時間を短縮することができる。ここでは、回路ブロック毎にスキャンチェーンを分割したが、どのように分割してもスキャンテストの結果は変わらない。
【００３６】
次に、図７、図８、図９を参照して、本発明の実施の形態に係るテスト用のデータ作成方法を説明する。
【００３７】
図７は、本発明の実施の形態に係るテスト用のデータ作成方法を説明するフローチャートである。テスト用のデータは、コンピュータであるテストデータ生成装置により生成される。テストデータ生成装置は、搭載されるプログラムを実行するＣＰＵ、プロクラムおよびデータを格納する記憶部、データを入出力する入出力部を備える。図７に示されるように、半導体装置の回路設計によりＤＦＴ前ネットリストＦ１０が生成され、テストデータ生成装置の記憶部に格納される。このＤＦＴ前ネットリストＦ１０に基づいて、追加回路すなわち半導体装置をテストするための制御回路４０等を組み込み（ステップＳ１０）、制御回路挿入後ネットリストＦ２０が生成され、記憶部に格納される。この追加回路の組み込みの詳細は後述する。
【００３８】
制御回路挿入後ネットリストＦ２０に基づいて、ＤＦＴ（Ｄｅｓｉｇｎ  Ｆｏｒ  Ｔｅｓｔ：テスト容易化設計）が行われる（ステップＳ２０）。ここで、スキャンチェーンが設定され、ＤＦＴ後ネットリストＦ３０が生成され、記憶部に格納される。ＤＦＴ後ネットリストＦ３０に基づいて、スキャンテストするためのテストパターンが生成される（ステップＳ３０）。生成されたテストパターンは、加工前テストパターンＦ４０として記憶部に格納される。加工前テストパターンＦ４０は、図１０に示されるように、スキャンモード制御信号ＳＭＣ１、ＳＭＣ２が同じ状態を示すことを前提に作成される。すなわち、加工前テストパターンＦ４０は、回路ブロック１０および回路ブロック２０が同時に動作するものとして作成される。
【００３９】
加工前テストパターンＦ４０に基づいて、テストパターンの加工が行われる（ステップＳ４０）。テストパターンの加工については後述するが、図１０に示される一括テストのタイミングを、図４に示される分散テストのタイミングになるように、テストパターンのデータが加工される。結果は、加工後テストパターンＦ５０として記憶部に格納される。加工後テストパターンＦ５０は、スキャンテストするテスタ装置に投入され、テストが行われる。
【００４０】
図８を参照して、追加回路の組み込み（ステップＳ１０）を説明する。テストデータ生成装置は、ＤＦＴ前ネットリストＦ１０に基づいて、任意の部分回路を抽出し、複数の部分回路に分割する（ステップＳ１１０）。キャプチャタイミングを回路ブロック毎に設定する場合には、クロックドメインに基づいて部分回路が抽出される。複数の部分回路が抽出されると、それぞれの部分回路間のデータパスについて依存関係が計算される（ステップＳ１２０）。計算されたデータパスの依存関係に基づいて、依存関係のある部分回路はまとめられ、同一のテストパターンを使用するグループとする（ステップＳ１３０）。同一のテストパターンが使用されるグループに属する部分回路は、キャプチャ期間のテストパルスを同時に印加する同時パルスグループに分類される（ステップＳ１４０）。この同時パルスグループは、部分回路が属するクロックドメインや部分回路が動作するときの消費電流等に基づいて決められる。すなわち、同じ動作周波数で動作する部分回路は、同じパルスが印加されることが好ましく、同じ同時パルスグループに分類される。しかし、同時パルスグループに属する部分回路が多くなると、一度に多くの部分回路が動作するため、消費電流が急激に増加してＩＲドロップによる誤動作が起きる可能性がある。したがって、消費電流が集中しないように同時パルスグループが分割されることが好ましい。この同時パルスグループに属する部分回路群は、図１に示される回路ブロック１０、２０に相当する。
【００４１】
部分回路を同時パルスグループに分類できると、それぞれのグループにクロック信号や制御信号を供給する制御回路が組み込まれる（ステップＳ１５０）。すなわち、図１に示される回路では、外部入力信号に基づいて、クロック信号や制御信号を生成する制御回路４０と、クロック信号を切り替える選択回路５１、５２とを追加する。制御回路４０は、図２に示されるように、回路ブロック毎に対応する回路（クロックゲーティングセル４１、４２およびＮＯＴ回路４１１、４２１）を有し、回路ブロックの数に応じて増減する。制御回路が組み込まれたネットリストは、制御回路挿入後ネットリストＦ２０として記憶部に格納される。
【００４２】
次に、図９を参照して、テストパターンの加工（ステップＳ４０）について説明する。テストデータ生成装置は、加工前テストパターンＦ４０として格納されるテストパターンを取り込む（ステップＳ４１０）。このテストパターンは、図１０に示されるように、スキャンモード制御信号ＳＭＣ１、２が共に“１”または“０”になることを前提に、従来の方法により生成されたテストパターンである。したがって、各回路ブロックに対するキャプチャサイクルが連続するようにキャプチャ期間が延長される（ステップＳ４２０）。図１に示される回路の場合には、回路ブロック１０、２０に対応するように、キャプチャ期間は２倍に延長される。
【００４３】
次に、キャプチャ期間に対応する回路ブロック毎にラウンチパルスとキャプチャパルスとが印加されるように、制御信号の入力値が設定される（ステップＳ４３０）。図１に示される回路の場合、キャプチャ期間の開始時点ＣＴ１１（図１０）において、図４に示されるキャプチャ期間の開始時点ＣＴ１に対応するように、スキャンモード制御信号ＳＭＣ１は“０”、スキャンモード制御信号ＳＭＣ２は“１”に設定される。この設定により動作モードＭ１としてスキャンクロック信号ＳＣＫは、回路ブロック１０に印加されるスキャンクロック信号ＳＣＫ１に反映され、回路ブロック２０に印加されるスキャンクロック信号ＳＣＫ２には反映されないことになる。このとき、回路ブロック１０の動作周波数に応じてスキャンクロック信号ＳＣＫを変更し、図５に示される時間Ｔ１となるようにラウンチパルスとキャプチャパルスとの間隔を調整することが可能である。
【００４４】
その後、図４に示される時点ＣＴ２に対応するように、スキャンモード制御信号ＳＭＣ１は“１”に、スキャンモード制御信号ＳＭＣ２は“０”に設定される。これにより、回路ブロック２０に対するキャプチャ期間が設定される。このとき、回路ブロック２０の動作周波数に応じてスキャンクロック信号ＳＣＫを変更し、図５に示される時間Ｔ２となるようにラウンチパルスとキャプチャパルスとの間隔を調整することが可能である。
【００４５】
次に、図４に示されるキャプチャ期間の終了時点ＣＴ３に対応するように、スキャンモード制御信号ＳＭＣ１、ＳＭＣ２はともに“１”に設定され、元のキャプチャ期間の終了時点ＣＴ１２（図１０）と同じ状態になる。テストパターンの加工が終わると、テストパターンは加工後テストパターンＦ５０として出力される（ステップＳ４５０）。
【００４６】
このように、本発明の実施の形態に係るテスト用のデータ作成方法では、通常のテストパターンと同じ方法によって加工前のテストパターンＦ４０が生成される。そのテストパターンＦ４０にキャプチャ期間の拡張と、それに対応する制御信号の設定とを加えることにより、本発明の第１の実施の形態に係る半導体装置をテストするためのテストパターンを生成することができる。
【００４７】
以上述べたように、本発明によれば、同じキャプチャ期間内においてラウンチパルスおよびキャプチャパルスを、互いにデータパス依存性のない回路ブロック１０、２０に対して、それぞれ別のタイミングで供給するため、スキャンテスト時のピーク消費電力を削減し、ＩＲドロップによる誤動作を防止することができる。すなわち、回路ブロックＡ、Ｂのスキャンテスト時の消費電力をそれぞれＰＡ、ＰＢとすると、回路ブロックＡ、Ｂを同時にテストする場合（それぞれの回路ブロックに同時にスキャンテスト用クロックすなわちラウンチパルスおよびキャプチャパルスが供給される）、ピーク消費電力は“ＰＡ＋ＰＢ”となる。本発明では、回路ブロックＡ、Ｂそれぞれに異なるタイミングでスキャンテスト用クロック（ラウンチパルスおよびキャプチャパルス）が供給されるため、キャプチャ期間のピーク消費電力は、ＰＡ、ＰＢのどちらか大きな値になる。したがって、キャプチャ期間のピーク消費電力を従来に比べて削減することができ、ＩＲドロップを減少させるため、ＩＲドロップによる誤動作を防止することができる。
【００４８】
（第２の実施の形態）
図１１は、本発明の第２の実施の形態に係る制御回路４０の構成を示す図である。第２の実施の形態に係る制御回路４０は、スキャンテストが実施される被テスト回路が互いにデータパス依存性のない６回路ブロックを制御する制御回路の構成例である。
【００４９】
制御回路４０は、ＡＮＤ回路４０１、ＮＯＲ回路４０３、デコーダ４０６、ＯＲ回路４５１〜４５６、クロックゲーティングセル４１〜４６を備える。クロックゲーティングセル４１〜４６は、第１の実施の形態において説明されたものと同じ回路であり、それぞれ、ＯＲ回路４１４、ラッチ回路４１６、ＡＮＤ回路４１８を含む。
【００５０】
ＡＮＤ回路４０１は、スキャンモード制御信号ＳＭＣ１〜ＳＭＣ３を入力し、スキャンモード制御信号ＳＭＣを生成してクロックゲーティングセル４１〜４６および被テスト回路に供給する。スキャンモード制御信号ＳＭＣは、スキャンモード制御信号ＳＭＣ１〜ＳＭＣ３の全てが“１”を示す場合のみ“１”を示す。ＮＯＲ回路４０３は、スキャンモード制御信号ＳＭＣ１〜ＳＭＣ３を入力し、出力信号をＯＲ回路４５１〜４５６に供給する。ＮＯＲ回路４０３の出力信号は、スキャンモード制御信号ＳＭＣ１〜ＳＭＣ３の全てが“０”を示す場合のみ“１”を示す。デコーダ４０６は、スキャンモード制御信号ＳＭＣ１〜ＳＭＣ３を入力し、デコードされた信号をそれぞれＯＲ回路４５１〜４５６に供給する。ＯＲ回路４５１〜４５６のそれぞれは、デコードされた信号と、ＮＯＲ回路４０３の出力信号とを入力し、クロックイネーブル信号ＣＥＮ１〜６を生成してクロックゲーティングセル４１〜４６に出力する。
【００５１】
制御回路４０は、図１２に示される真理値表のように、各信号を生成する。図１１に示される回路は、図１２に示される真理値表のドントケア論理値（＊：ｄｏｎ’ｔ  ｃａｒｅ）を“０”として展開した回路である。すなわち、スキャンモード制御信号ＳＭＣ１〜ＳＭＣ３は、回路ブロックに対応するキャプチャ期間をコード化して示す信号であり、スキャンテストのキャプチャ期間においては１つの回路ブロックを指定する。
【００５２】
図１２に示されるように、この制御回路４０は、全てのスキャンフリップフロップのスキャンシフト動作を示す動作モードＭＳ、回路ブロック毎のキャプチャ動作を示す動作モードＭ１〜Ｍ６、テストパターンの生成時の動作を示す動作モードＭ０とを有する。テストパターンの生成方法は、第１の実施の形態に係るテストパターンの生成方法と同じである。このように、第１の実施の形態と同じようにピーク電流を削減することができ、さらに、コード化された制御信号を入力することにより、制御信号を入力する入力端子の数を削減することができる。
【００５３】
（第３の実施の形態）
図１３は、本発明の第３の実施の形態に係る制御回路４０の構成を示す図である。本発明の第３の実施の形態では、半導体装置外部からスキャンモード制御信号ＳＭＣと、モード切替信号ＡＴＧＭと、カウント信号ＰＣＮＴとを入力し、回路ブロック毎にテストする。モード切替信号ＡＴＧＭは、テストパターン生成するモードと実際のテストを行うモードとを切り替える信号である。カウント信号ＰＣＮＴは、テストする回路ブロックの順番をカウントとする信号である。被テスト回路は、第１の実施の形態と同じように、互いにデータパス依存性のない回路ブロック１０、２０とする。
【００５４】
第３の実施の形態に係る制御回路４０は、パルスカウンタ４７０と、クロックゲーティングセル４１、４２とを備える。パルスカウンタ４７０には、装置外部から入力されるモード切替信号ＡＴＧＭと、カウント信号ＰＣＮＴとを入力し、クロックイネーブル信号ＣＥＮ１、ＣＥＮ２を生成してクロックゲーティングセル４１、４２に供給する。クロックゲーティングセル４１は、スキャンモード制御信号ＳＭＣと、クロックイネーブル信号ＣＥＮ１と、スキャンクロック信号ＳＣＫとを入力し、スキャンクロック信号ＳＫＣ１を生成して回路ブロック１０に出力する。クロックゲーティングセル４２は、スキャンモード制御信号ＳＭＣと、クロックイネーブル信号ＣＥＮ２と、スキャンクロック信号ＳＣＫとを入力し、スキャンクロック信号ＳＫＣ２を生成して回路ブロック２０に出力する。
【００５５】
パルスカウンタ４７０は、フリップフロップ４７１、４７２、４７３と、ＮＯＴ回路４７４と、ＡＮＤ回路４７５と、ＯＲ回路４７６、４７７とを含む。フリップフロップ４７１〜４７３のクロック入力ノードには、カウント信号ＰＣＮＴが入力される。フリップフロップ４７１は、スキャンモード制御信号ＳＭＣが入力されるセット入力ノードＳを備え、データ入力ノードＤは、論理“０”に固定され、データ出力ノードＱから出力信号Ｑ１が出力される。ＡＮＤ回路４７５は、フリップフロップ４７１の出力信号Ｑ１と、スキャンモード制御信号ＳＭＣがＮＯＴ回路４７４によって論理反転された信号とを入力し、それらの論理積を示す信号をフリップフロップ４７２のデータ入力ノードＤに供給する。
【００５６】
フリップフロップ４７２は、ＡＮＤ回路４７５の出力信号をカウント信号ＰＣＮＴに基づいて取り込み、出力信号Ｑ２を出力する。フリップフロップ４７３は、フリップフロップ４７２の出力信号Ｑ２をカウント信号ＰＣＮＴに基づいて取り込み、出力信号Ｑ３を出力する。ＯＲ回路４７６は、フリップフロップ４７２の出力信号Ｑ２と、モード切替信号ＡＴＧＭ信号とを入力し、クロックイネーブル信号ＣＥＮ１をクロックゲーティングセル４１に供給する。ＯＲ回路４７７は、フリップフロップ４７３の出力信号Ｑ３と、モード切替信号ＡＴＭＧとを入力し、クロックイネーブル信号ＣＥＮ２をクロックゲーティングセル４２に供給する。
【００５７】
図１３に示されるパルスカウンタ回路４７０は、互いにデータパス依存性のない回路ブロックが２回路である場合に対応する回路であり、回路ブロックが多くなると、フリップフロップおよびＯＲ回路が増加する。互いにデータパス依存性のない回路ブロックが３回路の場合には、回路ブロックに供給されるスキャンクロック信号ＳＣＫ３を生成するクロックゲーティングセルが設けられる。フリップフロップ４７３の出力信号Ｑ３を入力して出力信号Ｑ４を出力するフリップフロップがフリップフロップ４７３の後段に追加される。その出力信号Ｑ４とモード切替信号ＡＴＧＭとを入力してクロックイネーブル信号ＣＥＮ３を生成するＯＲ回路が追加される。
【００５８】
図１４は、第３の実施の形態に係る制御回路４０により制御される半導体装置のスキャンテスト時の動作を示すタイミングチャートである。
【００５９】
スキャンテスト時の動作であるため、モード切替信号ＡＴＧＭは、“０”を示し（図１４（ｂ））、クロックイネーブル信号ＣＥＮ１、ＣＥＮ２（図１４（ｈ）（ｉ））は、それぞれフリップフロップ４７２、４７３の出力信号Ｑ２、Ｑ３と同値を示す（図１４（ｆ）（ｇ））。
【００６０】
時刻ＣＴ２１は、シフトモードが終わる直前のタイミングを示し、最後のテストデータをシフトするパルスが入力される（図１４（ｄ）（ｊ）（ｋ））。
【００６１】
時刻ＣＴ２２では、スキャンモード制御信号ＳＭＣが“０”になり（図１４（ａ））、キャプチャモードの動作が開始される。スキャンモード制御信号ＳＭＣが“０”になるため、フリップフロップ４７１のセット入力ノードＳに“０”が入力される。ＮＯＴ回路４７４の出力が“１”となり、ＡＮＤ回路４７５の出力は“１”を示す。カウント信号ＰＣＮＴのパルスＰＣＮＴ１に応答して（図１４（ｃ））、フリップフロップ４７２は、ＡＮＤ回路４７５の出力を取り込んで出力信号Ｑ２に“１”を出力する（図１４（ｆ））。したがって、ＯＲ回路４７６は、クロックイネーブル信号ＣＥＮ１として“１”を出力する（図１４（ｈ））。また、フリップフロップ４７１は、論理値“０”を取り込み、出力信号Ｑ１に“０”を出力する（図１４（ｅ））。したがって、ＡＮＤ回路４７５の出力は“０”を示す。フリップフロップ４７３は変化せず“０”を出力するため、ＯＲ回路４７６は、クロックイネーブル信号ＣＥＮ２として“０”を出力する（図１４（ｉ））。
【００６２】
スキャンクロック信号ＳＣＫにラウンチパルスとキャプチャパルスとが与えられると（図１４（ｄ））、回路ブロック１０に供給されるスキャンクロック信号ＳＣＫ１にラウンチパルスとキャプチャパルスとが反映され（図１４（ｊ））、回路ブロック２０に供給されるスキャンクロック信号ＳＣＫ２には反映されない（図１４（ｋ））。
【００６３】
カウント信号ＰＣＮＴのパルスＰＣＮＴ２に応答して（図１４（ｃ））、フリップフロップ４７３は、フリップフロップ４７２の出力を取り込んで出力信号Ｑ３に“１”を出力する（図１４（ｇ））。したがって、ＯＲ回路４７７は、クロックイネーブル信号ＣＥＮ２として“１”を出力する（図１４（ｉ））。フリップフロップ４７２は、ＡＮＤ回路４７５の出力“０”を取り込んで、出力信号Ｑ２を“０”にする（図１４（ｆ））。フリップフロップ４７１は変わらず出力信号Ｑ１として“０”を出力する（図１４（ｅ））。スキャンクロック信号ＳＣＫにラウンチパルスとキャプチャパルスとが与えられると（図１４（ｄ））、回路ブロック２０に供給されるスキャンクロック信号ＳＣＫ２にラウンチパルスとキャプチャパルスとが反映され（図１４（ｋ））、回路ブロック１０に供給されるスキャンクロック信号ＳＣＫ１には反映されない（図１４（ｊ））。
【００６４】
時刻ＣＴ２３において、スキャンモード制御信号ＳＭＣが“１”になると（図１４（ａ））、テスト結果を出力するシフトモードになる。このとき、フリップフロップ４７１のセット入力ノードＳに“１”が入力され、フリップフロップ４７１は出力信号Ｑ１として“１”を出力する（図１４（ｅ））。また、ＮＯＴ回路４７４の出力とＡＮＤ回路４７５の出力とが“０”となる。その後、カウント信号ＰＣＮＴにパルスを供給し（ＰＣＮＴ３）、フリップフロップ４７２、４７３をクリアする。
【００６５】
スキャンモード制御信号ＳＭＣが“１”であるため（図１４（ａ））、スキャンクロック信号ＳＣＫにパルスが供給されると（図１４（ｄ））、クロックゲーティングセル４１、４２は、回路ブロック１０、２０にスキャンクロック信号ＳＣＫ１、ＳＣＫ２を供給する（図１４（ｊ）（ｋ））。このように、第１の実施の形態と同じように、回路ブロック１０、２０に異なるタイミングでキャプチャ期間を設定することができる。
【００６６】
次に、第３の実施の形態に係るテスト用のデータ作成方法を説明する。
第３の実施の形態に係るテスト用のデータ作成方法では、第１の実施の形態とは制御回路４０が異なるため、追加回路の組み込み（ステップＳ１０）の細部と、テストパターンの加工（ステップＳ４０）の細部とが異なるが、他は第１の実施の形態と同じである（図７）。テストパターンの生成においては、図１５に示されるように、モード切替信号ＡＴＧＭを“１”にしてクロックイネーブル信号ＣＥＮ１、ＣＥＮ２を常時“１”にする。これにより、各回路ブロックに共通にラウンチパルスとキャプチャパルスとを印加することができ、従来同様のテストパターン生成をすることができる。
【００６７】
追加回路の組み込み（ステップＳ１０）では、制御回路の組み込み（ステップＳ１５０）が異なるが、他は第１の実施の形態と同じである。図８に示されるように、部分回路を同時パルスグループに分類できると、それぞれのグループにクロック信号や制御信号を供給する制御回路が組み込まれる（ステップＳ１５０）。すなわち、外部入力信号に基づいて、クロック信号や制御信号を生成する制御回路４０と、クロック信号を切り替える選択回路５１、５２とを追加する。制御回路４０は、図１３に示されるように、回路ブロック毎に対応する回路（フリップフロップ４７２、４７３、クロックゲーティングセル４１、４２およびＯＲ回路４７６、４７７）を有し、回路ブロックの数に応じて増減する。このように、制御回路が組み込まれたネットリストは、制御回路挿入後ネットリストＦ２０として記憶部に格納される。
【００６８】
テストパターンの加工（ステップＳ４０）では、図１６に示されるように、カウント信号ＰＣＮＴの設定処理（ステップＳ４４０）が追加される。したがって、まず、テストデータ生成装置は、加工前テストパターンＦ４０として格納されるテストパターンを取り込む（ステップＳ４１０）。このテストパターンは、図１５に示されるように、スキャンモード制御信号ＳＭＣによってシフト動作とキャプチャ動作が指示されることを前提に、従来の方法により生成されたテストパターンである。したがって、各回路ブロックに対するキャプチャサイクルが連続するように回路ブロックの数に応じてキャプチャ期間が延長される（ステップＳ４２０）。
【００６９】
次に、キャプチャ期間に対応する回路ブロックにラウンチパルスとキャプチャパルスとが印加されるように、制御信号の入力値が設定される（ステップＳ４３０）。すなわち、モード切替信号ＡＴＧＭの入力値は“０”に設定される。ラウンチパルスとキャプチャパルスとが印加される回路ブロックの指定は、カウント信号ＰＣＮＴの入力により行う。したがって、回路ブロックを指定するカウント信号ＰＣＮＴを追加する（ステップＳ４４０）。ここでは、スキャンクロック信号ＳＣＫがラウンチパルスとキャプチャパルスとを示す前にパルスＰＣＮＴ１、ＰＣＮＴ２がそれぞれ追加される。さらに、スキャンクロック信号ＳＣＫがスキャンチェーンのデータをシフトさせるパルスの前に、制御回路４０内のフリップフロップ４７２、４７３をクリアするパルスＰＣＮＴ３が追加される。テストパターンの加工が終わると、テストパターンは加工後テストパターンＦ５０として出力される（ステップＳ４５０）。
【００７０】
このように、制御回路４０がパルスカウンタ回路４７０を備えることにより、カウント信号ＰＣＮＴの入力によりキャプチャ動作する回路ブロックを指定することができる。被テスト回路の回路ブロックの数によらずカウント信号ＰＣＮＴのパルス数により指定できるため、回路ブロックの数が多くなると、スキャンテストに使用する端子数を削減することができる。スキャンテスト時のピーク消費電力を削減し、ＩＲドロップによる誤動作を防ぐことができる。
【００７１】
以上、実施の形態を参照して本願発明を説明したが、上記実施の形態は、矛盾のない限り組み合わせて実施可能である。また、本願発明は上記実施の形態に限定されるものではなく、本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７２】
１０、２０  回路ブロック
１１、１２、２１、２２  フリップフロップ
１８、２８  組み合わせ回路
４０  制御回路
４１、４２、４３、４４、４５、４６  クロックゲーティングセル
５１、５２  選択回路
４００、４０１  ＡＮＤ回路
４０３  ＮＯＲ回路
４０６  デコーダ回路
４１１、４２１  ＮＯＴ回路
４１４、４２４  ＯＲ回路
４１６、４２６  ラッチ回路
４１８、４２８  ＡＮＤ回路
４５１、４５２、４５３、４５４、４５５、４５６  ＯＲ回路
４７０  パルスカウンタ回路
４７１、４７２、４７３  フリップフロップ
４７４  ＮＯＴ回路
４７５  ＡＮＤ回路
４７６、４７７  ＯＲ回路
Ｆ１０  ＤＴＦ前ネットリスト
Ｆ２０  制御回路挿入後ネットリスト
Ｆ３０  ＤＦＴ後ネットリスト
Ｆ４０  加工前テストパターン
Ｆ５０  加工後テストパターン
ＣＫ１、ＣＫ２  クロック信号
ＩＣＫ１、ＩＣＫ２  内部クロック信号
ＳＣＫ、ＳＣＫ１、ＳＣＫ２  スキャンクロック信号
ＳＭＣ、ＳＭＣ１、ＳＭＣ２  スキャンモード制御信号
ＳＩＮ、ＳＩＮ１、ＳＩＮ２  スキャンデータ入力信号
ＳＯＵＴ、ＳＯＵＴ１、ＳＯＵＴ２  スキャンデータ出力信号
【図１】
2012185127.tif 000003
【図２】
2012185127.tif 000004
【図３】
2012185127.tif 000005
【図４】
2012185127.tif 000006
【図５】
2012185127.tif 000007
【図６】
2012185127.tif 000008
【図７】
2012185127.tif 000009
【図８】
2012185127.tif 000010
【図９】
2012185127.tif 000011
【図１０】
2012185127.tif 000012
【図１１】
2012185127.tif 000013
【図１２】
2012185127.tif 000014
【図１３】
2012185127.tif 000015
【図１４】
2012185127.tif 000016
【図１５】
2012185127.tif 000017
【図１６】
2012185127.tif 000018