(57)【要約】【課題】テストパタン長を短縮できるテスト方法、テスト制御プログラム及び半導体装置を提供すること【解決手段】本発明にかかるテスト方法は、同一周波数のクロック信号で動作する複数のクロックドメインに対して、クロック供給回路４Ａ及び４Ｂからクロック信号を供給することによりテストを実行する論理回路のテスト方法である。複数のクロックドメインのそれぞれのテストパタン数を算出し、算出したテストパタン数に基づいて、複数のクロックドメインを複数のクロック供給回路グループに分類し、クロックドメインが分類されたクロック供給回路グループのそれぞれに対して独立したクロック供給回路４Ａ及び４Ｂを割り当てることである。【選択図】図１
2011007589.tif 000002
【特許請求の範囲】
【請求項１】
同一周波数のクロック信号で動作する複数のクロックドメインに対して、クロック供給回路からクロック信号を供給することによりテストを実行する論理回路のテスト方法であって、
前記複数のクロックドメインのそれぞれのテストパタン数を算出し、
前記算出したテストパタン数に基づいて、前記複数のクロックドメインを複数のグループに分類し、
前記クロックドメインが分類されたグループのそれぞれに対して独立したクロック供給回路を割り当てる、テスト方法。
【請求項２】
前記複数のクロックドメインを、前記グループ間で、前記テストパタン数が均等に近づくように当該グループに分類することを特徴とする請求項１記載のテスト方法。
【請求項３】
前記算出されたテストパタン数が多いクロックドメインから順に前記グループへ分類することを特徴とする請求項２記載のテスト方法。
【請求項４】
前記テストパタン数が最も少ないグループを選択し、
前記選択されたグループへ前記クロックドメインを分類することを特徴とする請求項３記載のテスト方法。
【請求項５】
前記テストパタン数は、データパス依存関係を有さない前記クロックドメインから構成されるサブグループ毎に算出され、
前記算出されたテストパタン数に基づいて、前記サブグループを前記グループに分類することを特徴とする請求項１〜４のいずれか１項に記載のテスト方法。
【請求項６】
前記クロック供給回路は、当該クロック供給回路にクロック信号を供給する端子を追加することができる数に応じて、割り当てられる数が決定されることを特徴とする請求項１〜５のいずれか１項に記載のテスト方法。
【請求項７】
前記テストパタン数は、前記クロックドメインが有するフリップフロップ回路数に基づいて算出されることを特徴とする請求項１〜６のいずれか１項に記載のテスト方法。
【請求項８】
同一周波数のクロック信号で動作する複数のクロックドメインに対して、クロック供給回路からクロック信号を供給することによりテストを実行する論理回路のテストをコンピュータに実行させるプログラムであって、
前記複数のクロックドメインのそれぞれのテストパタン数を算出するステップと、
前記算出したテストパタン数に基づいて、前記複数のクロックドメインを複数のグループに分類するステップと、
前記クロックドメインが分類されたグループのそれぞれに対して独立したクロック供給回路を割り当てるステップと、
前記クロック供給回路から前記クロックドメインが分類されたグループに対して前記クロック信号を供給するステップと、をコンピュータに実行させるテスト制御プログラム。
【請求項９】
前記複数のクロックドメインを、前記グループ間で、前記テストパタン数が均等に近づくように前記グループに分類することを特徴とする請求項８記載のテスト制御プログラム。
【請求項１０】
前記テストパタン数が多いクロックドメインから順に前記グループへ分類することを特徴とする請求項９記載のテスト制御プログラム。
【請求項１１】
前記テストパタン数が最も少ないグループを選択するステップと、をさらに有し、
前記選択されたグループへ前記クロックドメインを分類することを特徴とする請求項１０記載のテスト制御プログラム。
【請求項１２】
同一周波数のクロック信号で動作する第１のクロックドメインと、第２のクロックドメインとを備えた半導体装置であって、
前記第１のクロックドメインに対してテスト用クロックを供給する第１のクロック供給回路と、
前記第２のクロックドメインに対してテスト用クロックを供給する第２のクロック供給回路と、
前記第１のクロック供給回路に対してテスト用のクロックを入力する第１の端子と、
前記第２のクロック供給回路に対してテスト用のクロックを入力する第２の端子と、を備えた半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテスト方法、テスト制御プログラム及び半導体装置に関し、特にクロック信号を用いたテスト方法、テスト制御プログラム及び半導体装置に関する。
【背景技術】
【０００２】
半導体装置のテスト回路の設計に関する分野において、回路規模の増加やテスト手法の増加によってテストコストが高くなってきている。これに伴い、テストコスト削減に直結する、テストパタン長の短縮の要求（必要性）が、高まっている。
【０００３】
特許文献１には、半導体装置におけるテストパタン長の短縮を実現するテスト回路について開示されている。ここで、図８及び図９を用いて、特許文献１の内容について説明する。
【０００４】
特許文献１に開示されているＤＦＴ（Design For Test）回路の追加手順について、図８のフローチャートを用いて説明する。このフローチャートは例えばコンピュータのような装置によって実行される。
【０００５】
はじめに、コンピュータは、第１の回路情報（例えば、ＤＦＴ回路挿入前回路情報）を取得する（ステップＳ５０１）。続いて、コンピュータは、ＤＦＴ回路挿入前回路情報に基づき内部クロックドメインを抽出する（ステップＳ５０２）。ステップＳ５０２で抽出された内部クロックドメインの情報に基づき、コンピュータは、スキャンクロック信号供給用のセレクタをＤＦＴ回路挿入前回路情報に追加する（ステップＳ５０３）。
【０００６】
次に、コンピュータは、第２の回路情報（例えば、テスト周波数情報）を取得する（ステップＳ５０４）。テスト周波数情報とは、機能テストにおいて内部クロックドメインのそれぞれに供給するクロック周波数の情報である。ステップＳ５０４で取得されたテスト周波数情報は、テスト周波数記憶領域Ｍ１に記憶される。また、コンピュータは、ステップＳ５０２で抽出された内部クロックドメイン間のデータパス依存関係を抽出し、その情報をデータパス依存関係記憶領域Ｍ２に記憶する（ステップＳ５０５）。さらに、コンピュータは、ステップＳ５０２で抽出された内部クロックドメインの情報とテスト周波数記憶領域Ｍ１の情報とに基づき第１のグループ（例えば、周波数グループ）の情報を生成する（ステップＳ５０６）。周波数グループ情報とは、同一周波数のクロックに基づいて機能テストを行う内部クロックドメインをグループ化した情報である。周波数グループ情報は、周波数グループ記憶領域Ｍ３に記憶される。
【０００７】
次に、データパス依存関係記憶領域Ｍ２の情報と周波数グループ記憶領域Ｍ３の情報とに基づいて、コンピュータは、第２のグループ（例えば、周波数サブグループ）の情報を生成する（ステップＳ５０７）。周波数サブグループ情報とは、同一の周波数グループに属する内部クロックドメインのうち互いに独立して動作する内部クロックドメインをグループ化した情報である。つまり、周波数サブグループは、同一の周波数グループに属する内部クロックドメインのうち互いにデータパス依存関係を有さない内部クロックドメインがグループ化されている。
【０００８】
ステップＳ５０７で算出された周波数サブグループ情報は、周波数サブグループ記憶領域Ｍ４に記憶される。コンピュータは、周波数グループ記憶領域Ｍ３の情報と周波数サブグループ記憶領域Ｍ４の情報とに基づき機能テストで用いるスキャンクロック信号を制御する制御回路と、スキャンクロック信号を供給するスキャンクロック供給用端子ＳＣＫｉｎとをＤＦＴ回路挿入前回路情報に追加する（ステップＳ５０８）。例えば、制御回路は、周波数グループの数と同じ数だけ追加される。さらに、追加された制御回路と同数のスキャンクロック供給用端子ＳＣＫｉｎも追加される。周波数グループ記憶領域Ｍ３の情報と、周波数サブグループ記憶領域Ｍ４の情報と、追加された制御回路及びスキャンクロック供給用端子ＳＣＫｉｎと、セレクタとの情報に基づき、コンピュータは、スキャンクロック供給用端子ＳＣＫｉｎ、制御回路、セレクタ、内部クロックドメインをそれぞれ接続した情報を生成する（ステップＳ５０９）。
【０００９】
ステップＳ５０９によって、スキャンクロック供給用端子ＳＣＫｉｎと制御回路とセレクタとを有するＤＦＴ回路が追加された回路情報が、生成される。この回路情報は、第３の回路情報（例えば、ＤＦＴ回路挿入後回路情報Ｆ３）として出力される（ステップＳ５１０）。
【００１０】
次に、図９を参照して、ＤＦＴ回路を追加した半導体装置の構成例について説明する。図９に示すように、内部クロックドメイン２１〜２７は、データパス依存関係とテスト周波数とに基づきグループ化されている。図９の構成例では、テスト周波数に基づき、第１の周波数グループＦＧ１は、内部クロックドメイン２１及び２２を有し、第２の周波数グループＦＧ２は、内部クロックドメイン２３、２４及び２５を有し、第３の周波数グループＦＧ３は、内部クロックドメイン２６及び２７を有している。また、データパス依存関係に基づき、第１の周波数グループＦＧ１が有する内部クロックドメイン２１は、周波数サブグループＦＳＧ１０１に分類され、内部クロックドメイン２２は、周波数サブグループＦＳＧ１０２に分類される。第２の周波数グループＦＧ２が有する内部クロックドメイン２３は、周波数サブグループＦＳＧ２０１に分類され、内部クロックドメイン２４、２５は、周波数サブグループＦＳＧ２０２に分類される。第３の周波数グループＦＧ３が有する内部クロックドメイン２６は、周波数サブグループＦＳＧ３０１に分類され、内部クロックドメイン２７は、周波数サブグループＦＳＧ３０２に分類される。
【００１１】
内部クロックドメイン２１〜２７には、それぞれセレクタ３０１〜３０７が接続されている。セレクタ３０１〜３０７は、それぞれ「１」入力端子及び「０」入力端子を有し、外部から入力されるテストモード制御信号ＡＭＣに応じていずれかの入力端子に入力される信号を出力する。例えば、テストモード制御信号ＡＭＣが「１」である場合、セレクタは、「１」入力端子に入力される信号を出力し、テストモード制御信号ＡＭＣが「０」である場合、「０」入力端子に入力される信号を出力する。セレクタ３０１〜３０７は、それぞれ「１」入力端子に対応する制御回路からスキャンクロック信号が供給され、「０」入力端子に内部クロック信号が供給される。
【００１２】
制御回路４０１〜４０３は、それぞれ第１の周波数グループから第３の周波数グループに対応して配置される。また、制御回路４０１〜４０３は、それぞれスキャンクロック供給用端子ＳＣＫｉｎと、テスト制御信号（例えば、スキャンモード制御信号ＳＭＣ）を入力する制御端子と、選択信号（例えば、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬ）を入力する制御端子とが接続され、スキャンクロック出力端子ＳＣＫ１〜ＳＣＫｎ（ｎは、対応する周波数グループ内の周波数サブグループの数）を有している。
【００１３】
次に、制御回路とセレクタとの接続について説明する。制御回路４０１のスキャンクロック出力端子ＳＣＫ１は、セレクタ３０１を介して内部クロックドメイン２１にスキャンクロック信号を供給する。制御回路４０１のスキャンクロック出力端子ＳＣＫ２は、セレクタ３０２を介して内部クロックドメイン２２にスキャンクロック信号を供給する。
【００１４】
制御回路４０２は、スキャンクロック出力端子ＳＣＫ１と、セレクタ３０３とを介して内部クロックドメイン２３にスキャンクロック信号を供給する。制御回路４０２は、スキャンクロック出力端子ＳＣＫ２と、セレクタ３０４とを介して内部クロックドメイン２４にスキャンクロック信号を供給すると共に、セレクタ３０５を介して内部クロックドメイン２５にスキャンクロック信号を供給する。
【００１５】
制御回路４０３のスキャンクロック出力端子ＳＣＫ１は、セレクタ３０６を介して内部クロックドメイン２６にスキャンクロック信号を供給する。制御回路４０３のスキャンクロック出力端子ＳＣＫ２は、セレクタ３０７を介して内部クロックドメイン２７にスキャンクロック信号を供給する。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００７−２１２３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
特許文献１に開示されている半導体装置では、テスト周波数に基づき、内部クロックドメインをグループ化し、周波数グループが生成される。さらに、同一の周波数グループに属する内部クロックドメインのうち互いに独立して動作する内部クロックドメインをさらにグループ化し、周波数サブグループが生成される。また、制御回路は周波数グループの数と同数が追加され、追加された制御回路と同数のスキャンクロック供給端子ＳＣＫｉｎが追加される。
【００１８】
そのため、特許文献１の半導体装置では、同一の周波数に分類される周波数サブグループのうち、常に１つの周波数サブグループのみにスキャンクロック信号が供給される。これにより、周波数サブグループ毎にテストを行なうテストパタンを作成することになるため、回路全体のテストパタン長は周波数サブグループごとのテストパタン数を足したものとなり、テストパタン長が長くなるという問題がある。
【課題を解決するための手段】
【００１９】
本発明の第１の態様にかかるテスト方法は、同一周波数のクロック信号で動作する複数のクロックドメインに対して、クロック供給回路からクロック信号を供給することによりテストを実行する論理回路のテスト方法であって、前記複数のクロックドメインのそれぞれのテストパタン数を算出し、前記算出したテストパタン数に基づいて、前記複数のクロックドメインを複数のグループに分類し、前記クロックドメインが分類されたグループのそれぞれに対して独立したクロック供給回路を割り当てるものである。
【００２０】
このようなテスト方法により、同一周波数のクロック信号で動作する複数のクロックドメインを、複数のクロック供給回路を用いて同時にテストを行うことができるため、テストパタン長を短縮することができる。特に、複数のクロックドメインのそれぞれのテストパタン数に基づいてクロックドメインを複数のグループに分類しているため、全体のテストパタン長が短くなるようにグループ分けを実行することができる。
【００２１】
本発明の第２の態様にかかるテスト制御プログラムは、同一周波数のクロック信号で動作する複数のクロックドメインに対して、クロック供給回路からクロック信号を供給することによりテストを実行する論理回路のテストをコンピュータに実行させるプログラムであって、前記複数のクロックドメインのそれぞれのテストパタン数を算出するステップと、前記算出したテストパタン数に基づいて、前記複数のクロックドメインを複数のグループに分類するステップと、前記クロックドメインが分類されたグループのそれぞれに対して独立したクロック供給回路を割り当てるステップと、前記クロック供給回路から前記クロックドメインが分類されたグループに対して前記クロック信号を供給するステップと、をコンピュータに実行させるものである。
【００２２】
このようなテスト制御プログラムにより、同一周波数のクロック信号で動作する複数のクロックドメインを、複数のクロック供給回路を用いて同時にテストを行うことができるため、テストパタン長を短縮することができる。特に、複数のクロックドメインのそれぞれのテストパタン数に基づいてクロックドメインを複数のグループに分類しているため、全体のテストパタン長が短くなるようにグループ分けを実行することができる。
【００２３】
本発明の第３の実施の態様にかかる半導体装置は、同一周波数のクロック信号で動作する第１のクロックドメインと、第２のクロックドメインとを備えた半導体装置であって、前記第１のクロックドメインに対してテスト用クロックを供給する第１のクロック供給回路と、前記第２のクロックドメインに対してテスト用クロックを供給する第２のクロッ供給回路と、前記第１のクロック供給回路に対してテスト用のクロックを入力する第１の端子と、前記第２のクロック供給回路に対してテスト用のクロックを入力する第２の端子と、を備えるものである。
【００２４】
このような半導体装置により、同一周波数のクロック信号で動作する複数のクロックドメインを、複数のクロック供給回路を用いて同時にテストを行うことができるため、テストパタン長を短縮することができる。特に、このような半導体装置では、第１の端子と、第２の端子を設けたので、第１の端子と第２の端子とに入力するクロックを制御することによって、テストパタン長を短縮するモード、故障検出率を維持するモードを容易に選択することができる。
【発明の効果】
【００２５】
本発明により、テストパタン長を短縮できるテスト方法、テスト制御プログラム及び半導体装置を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態１にかかるＤＦＴ回路の追加に関するフローチャートである。
【図２】実施の形態１にかかるクロック供給回路グループ構築に関するフローチャートである。
【図３】実施の形態１にかかる周波数サブグループの再分類に関するフローチャートである。
【図４】実施の形態１にかかる半導体装置の構成図である。
【図５】実施の形態２にかかるクロック供給回路グループ構築に関するフローチャートである。
【図６】実施の形態２にかかる周波数サブグループの再分類に関するフローチャートである。
【図７】実施の形態１、２にかかる半導体装置を含むコンピュータシステム全体の構成図である。
【図８】従来のＤＦＴ回路の追加に関するフローチャートである。
【図９】従来の半導体装置の構成図である。
【発明を実施するための形態】
【００２７】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて、本発明の実施の形態１にかかるＤＦＴ回路の追加手順に関する処理の流れにつき説明する。図１に示す処理は、例えばコンピュータのような装置によって実行される。
【００２８】
はじめに、コンピュータは、第１の回路情報（例えば、ＤＦＴ回路挿入前回路情報）を取得する（ステップＳ１）。次に、コンピュータは、ＤＦＴ回路挿入前回路情報に基づき内部クロックドメインを抽出する（ステップＳ２）。内部クロックドメインは、同一の周波数クロックで動作する論理回路から構成される。内部クロックドメインは、複数の論理回路から構成されてもよく、ひとつの論理回路から構成されてもよい。次に、ステップＳ２で抽出された内部クロックドメインの情報に基づき、コンピュータは、スキャンクロック信号供給用のセレクタをＤＦＴ回路挿入前回路情報に追加する（ステップＳ３）。例えば、セレクタは、内部クロックドメイン毎に配置される。
【００２９】
次に、コンピュータは、第２の回路情報（例えば、テスト周波数情報）を取得する（ステップＳ４）。テスト周波数情報とは、機能テストで内部クロックドメインのそれぞれに供給するクロック周波数の情報である。ステップＳ４で取得したテスト周波数情報は、テスト周波数記憶領域Ｍ１に記憶される。次に、コンピュータは、ステップＳ２で抽出された内部クロックドメイン間のデータパス依存関係を抽出し、その情報をデータパス依存関係記憶領域Ｍ２に記憶する（ステップＳ５）。データパス依存関係とは、ある内部クロックドメインから出力された信号に基づいて、別の内部クロックドメインが動作する関係である。さらに、ステップＳ２で抽出された内部クロックドメインの情報とテスト周波数記憶領域Ｍ１の情報とに基づき、コンピュータは、第１のグループ（例えば、周波数グループ）の情報を生成する（ステップＳ６）。周波数グループ情報とは、同一の周波数クロックに基づいて機能テストを行う内部クロックドメインをグループ化した情報である。生成された周波数グループ情報は、周波数グループ記憶領域Ｍ３に記憶される。
【００３０】
次に、データパス依存関係記憶領域Ｍ２の情報と周波数グループ記憶領域Ｍ３の情報とに基づいて、コンピュータは、同一の周波数グループに属する内部クロックドメインのうち互いに独立して動作する内部クロックドメインをグループ化した第２のグループ（例えば、周波数サブグループ）の情報を生成する（ステップＳ７）。即ち、周波数サブグループ情報は、同一の周波数グループに属する内部クロックドメインのうち互いにデータパス依存関係を有さない内部クロックドメインをグループ化した情報である。ステップＳ７で生成された周波数サブグループ情報は、周波数サブグループ記憶領域Ｍ４に記憶される。
【００３１】
次に、周波数サブグループ記憶領域Ｍ４に格納されている情報を元に、コンピュータは、第３のグループ（例えば、クロック供給回路グループ）の情報を生成する（ステップＳ８）。クロック供給回路グループ情報は、１つのクロック供給回路からスキャンクロック信号の供給を受ける複数の周波数サブグループをグループ化した情報である。ステップＳ８で生成されたクロック供給回路グループ情報は、クロック供給回路グループ記憶領域Ｍ５に記憶される。クロック供給回路グループ情報の生成に関して、後に詳述する。
【００３２】
次に、コンピュータは、クロック供給回路グループ記憶領域Ｍ５に格納されたクロック供給回路グループ情報及び周波数グループ記憶領域Ｍ３に格納された周波数グループ情報に基づいて、クロック供給回路及びＳＣＫｉｎ端子をＤＦＴ回路挿入前回路情報に追加する（ステップＳ９）。ＳＣＫｉｎ端子は、クロック供給回路にスキャンクロック信号を供給する端子である。クロック供給回路及びＳＣＫｉｎ端子は、クロック供給回路グループの数と同じ数だけ追加される（ステップＳ９）。
【００３３】
次に、コンピュータは、周波数グループ記憶領域Ｍ３の情報と、クロック供給回路グループ記憶領域Ｍ５の情報と、追加されたクロック供給回路と、スキャンクロック供給用端子ＳＣＫｉｎと、セレクタとの情報に基づき、スキャンクロック供給用端子ＳＣＫｉｎ、クロック供給回路、セレクタ、内部クロックドメインをそれぞれ接続した情報を生成する（ステップＳ１０）。
【００３４】
ステップＳ１０によって、コンピュータは、セレクタと、スキャンクロック供給用端子ＳＣＫｉｎと、クロック供給回路とを有するＤＦＴ回路が追加された回路情報を生成する。コンピュータは、この回路情報を、第３の回路情報（例えば、ＤＦＴ回路挿入後回路情報）として出力する（ステップＳ１０）。
【００３５】
続いて、図２を用いて、図１のステップＳ８で実行するクロック供給回路グループ生成の詳細な処理の流れについて説明する。
【００３６】
はじめに、コンピュータは、各周波数サブグループのテストパタン数を計算する（ステップＳ２１）。各周波数サブグループのテストパタン数とは、その周波数サブグループのみにスキャンクロック信号を供給してテストパタンを作成したときに作成されるテストパタン数である。各周波数サブグループのテストパタンは、例えば、ＡＴＰＧ（Automatic Test Pattern Generation）によって自動生成される。
【００３７】
次に、コンピュータは、周波数グループ毎にクロック供給回路グループを用意し、全ての周波数サブグループを、テスト周波数が同一のクロック供給回路グループに分類する（ステップＳ２２）。次に、コンピュータは、外部端子の余裕数を変数Ｍにセットする（ステップＳ２３）。外部端子の余裕数とは、ＳＣＫｉｎ端子を追加することが可能な端子の数である。ＳＣＫｉｎ端子を追加することが可能な端子数は、例えば、回路を搭載する基板の面積又は搭載する回路の規模等に基づいて定められる。
【００３８】
次に、コンピュータは、Ｍの値が０より大きいか否かを判定する（ステップＳ２４）。Ｍの値が０である場合、処理を終了する。Ｍの値が０より大きい場合、ステップＳ２５の処理を実行する。
【００３９】
次に、ステップＳ２４において、Ｍの値が０より大きいと判定した場合、コンピュータは、クロック供給回路グループ毎にステップＳ２１で計算した周波数サブグループのテストパタン数の合計値（以下、クロック供給回路グループのテストパタン数）が、周波数グループの中で最大のものを１つ選択する（ステップＳ２５）。周波数グループ毎に、クロック供給回路グループがひとつのみ存在する場合は、コンピュータは、当該クロック供給回路グループを選択する。
【００４０】
次に、コンピュータは、ステップＳ２５で選択されたクロック供給回路グループに対応する周波数グループへ、新たに１つクロック供給回路グループを追加する（ステップＳ２６）。次に、コンピュータは、ステップＳ２５で選択されたクロック供給回路グループ内の周波数サブグループを、当該クロック供給回路グループ及びステップＳ２６で追加されたクロック供給回路グループに再分類する（ステップＳ２７）。
【００４１】
次に、コンピュータは、Ｍから１を引く（ステップＳ２８）。次に、コンピュータは、ステップＳ２４に戻り、Ｍの値が０より大きい関係を満たす間、ステップＳ２４からステップＳ２８の処理を繰り返す。即ち、コンピュータは、Ｍの値が０になるまで、ステップＳ２４からステップＳ２８の処理を繰り返す。
【００４２】
次に、図３を用いて、図２のステップＳ２７で実施する周波数サブグループの再分類手順に関する詳細な処理の流れにつき説明する。はじめに、コンピュータは、特定のクロック供給回路グループ（以下、再分類対象クロック供給回路グループ）を抽出する（Ｓ３１）。特定のクロック供給回路グループとは、新たに１つのクロック供給回路グループを追加された周波数グループが有する全てのクロック供給回路グループである。
【００４３】
次に、コンピュータは、再分類対象クロック供給回路グループと関連付けられている周波数サブグループとの関連付けをなくす（Ｓ３２）。
【００４４】
次に、コンピュータは、クロック供給回路グループに分類されていない周波数サブグループがあるか否かを判定する（ステップＳ３３）。周波数グループに、クロック供給回路グループが新たに追加された直後においては、すべての周波数サブグループは、クロック供給回路グループに分類されていない。また、分類されていない周波数サブグループが無い場合、即ち全ての周波数サブグループが制御回路接続グループに分類されている場合、コンピュータは、処理を終了する。分類されていない周波数サブグループがある場合は、コンピュータは、ステップＳ３４の処理を行う。
【００４５】
次に、ステップＳ３３において、分類されていない周波数サブグループがあると判定された場合、コンピュータは、各クロック供給回路グループ毎に算出される、周波数サブグループのテストパタン数の合計を比較する。さらに、コンピュータは、テストパタン数の合計が最小のクロック供給回路グループを選択する（ステップＳ３４）。周波数グループに、クロック供給回路グループが新たに追加された直後は、いずれの周波数サブグループも、クロック供給回路グループに分類されていない。そのため、全てのクロック供給回路グループのテストパタン数は、０となる。この場合、コンピュータは、任意のクロック供給回路グループを選択してもよい。また、クロック供給回路グループのテストパタン数が同一であるクロック供給回路グループが複数存在する場合においても、コンピュータは、当該複数のクロック供給回路グループの中で任意のクロック供給回路グループを選択してもよい。
【００４６】
次に、コンピュータは、分類されていない周波数サブグループの中でテストパタン数が最大の周波数サブグループを選択する（ステップＳ３５）。次に、コンピュータは、ステップＳ３５で選択した周波数サブグループをステップＳ３４で選択したクロック供給回路グループに分類する（ステップＳ３６）。次に、ステップＳ３３に戻り、分類されていない周波数サブグループがなくなるまで、コンピュータは、ステップＳ３３〜ステップＳ３６の処理を繰り返し実行する。
【００４７】
上述した図１〜図３の一連の処理を実行することにより、全ての周波数サブグループが、クロック供給回路グループに関連付けられる。
【００４８】
次に、図４を用いて、図１〜図３のクロック供給回路追加手順に従って、クロック供給回路が挿入された回路構成について説明する。図４に示されている回路は、内部クロックドメイン２Ａ〜２Ｅと、セレクタ３Ａ〜３Ｅと、クロック供給回路４Ａ及び４Ｂと、を備えている。
【００４９】
内部クロックドメイン２Ａ〜２Ｅは、同一の周波数クロックで動作する。例えば、内部クロックドメイン２Ａ〜２Ｅは、すべて４０ＭＨｚの周波数クロックで動作する。
【００５０】
ここで、内部クロックドメイン２Ａ〜２Ｅのデータパス依存関係について説明する。データパス依存関係とは、例えば、内部クロックドメイン２Ａが、内部クロックドメイン２Ｂから入力される信号に基づき動作する関係である。以下に、内部クロックドメイン２Ａ〜２Ｅのデータパス依存関係の具体例について説明する。例えば、内部クロックドメイン２Ａは、内部クロックドメイン２Ｂ及び２Ｅから入力される信号に基づいて動作し、内部クロックドメイン２Ｄに対して信号を出力する。また、内部クロックドメイン２Ｃは、内部クロックドメイン２Ｅから入力される信号に基づいて動作し、内部クロックドメイン２Ｄに対して信号を出力する。また、内部クロックドメイン２Ｄは、内部クロックドメイン２Ａ及び２Ｃから入力される信号に基づいて動作し、内部クロックドメイン２Ｅに対して信号を出力する。また、内部クロックドメイン２Ｅは、内部クロックドメイン２Ｄから入力された信号に基づいて動作し、内部クロックドメイン２Ａ及び２Ｃに対して信号を出力する。
【００５１】
このようなデータパス依存関係を有する場合、内部クロックドメイン２Ａは、周波数サブグループ（ＦＳＧ）５１に分類され、内部クロックドメイン２Ｂ及び２Ｃは、ＦＳＧ５２に分類され、内部クロックドメイン２Ｄは、ＦＳＧ５３に分類され、内部クロックドメイン２Ｅは、ＦＳＧ５４に分類される。
【００５２】
さらに、ＦＳＧ５１及びＦＳＧ５２は、クロック供給回路グループ（ＣＧ）６１に分類され、ＦＳＧ５３及びＦＳＧ５４は、ＣＧ６２に分類される。ここで、ＦＳＧ５１〜５４は、ＣＧ６１及びＣＧ６２が有するテストパタン数が均等に近づくように分類される。
【００５３】
内部クロックドメイン２Ａ〜２Ｅには、それぞれセレクタ３Ａ〜３Ｅが接続されている。セレクタ３Ａ〜３Ｅは、それぞれ「１」入力端子と「０」入力端子とを有している。セレクタ３Ａ〜３Ｅは、外部から入力されるテストモード制御信号ＡＭＣに応じていずれかの入力端子に入力される信号を出力する。例えば、テストモード制御信号ＡＭＣが「１」である場合、「１」入力端子に入力される信号を内部クロックドメインに出力し、テストモード制御信号ＡＭＣが「０」である場合、「０」入力端子に入力される信号を内部クロックドメインに出力する。セレクタ３Ａ〜３Ｅは、それぞれ「１」入力端子に対応する制御回路からスキャンクロック信号が供給され、「０」入力端子に内部クロック信号が供給される。
【００５４】
クロック供給回路４Ａ及び４Ｂは、ＣＧ６1及び６２に対応して配置された制御回路である。また、クロック供給回路４Ａ及び４Ｂは、それぞれスキャンクロック供給用端子ＳＣＫｉｎと、テスト制御信号（例えば、スキャンモード制御信号ＳＭＣ）を入力する制御端子と、選択信号（例えば、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬ）を入力する制御端子とが接続されている。さらに、クロック供給回路４Ａ及び４Ｂは、スキャンクロック出力端子ＳＣＫ１〜ＳＣＫｎ（ｎは、対応する周波数グループ内の周波数サブグループの数）を有している。スキャンモード制御信号ＳＭＣは、例えば、内部クロックドメインの機能テストにおいて、データをシフトさせるシフトサイクルと、データをキャプチャするサイクルと、を実施する制御を行う。
【００５５】
クロック供給回路４Ａは、ＳＣＫｉｎ端子から供給されるスキャンクロック信号を、周波数サブグループ毎に出力する。例えば、クロック供給回路４Ａは、ＳＣＫ１端子を介してＦＳＧ５１にスキャンクロック信号を出力している場合、ＦＳＧ５２にはスキャンクロック信号を出力しない。クロック供給回路４Ａは、ＳＣＫ２端子を介してＦＳＧ５２にスキャンクロック信号を出力している場合、ＦＳＧ５１にはスキャンクロック信号を出力しない。クロック供給回路４Ｂも同様の制御を行う。
【００５６】
次に、図４において説明した回路構成を用いた機能テストの方法について説明する。クロック供給回路４Ａ及び４Ｂは、ＳＣＫｉｎ端子から供給されたスキャンクロック信号を周波数サブグループに出力する。出力する周波数サブグループは、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬにより選択されたサブグループである。クロック供給回路４Ａ及び４Ｂは独立して動作するため、例えば、ＦＳＧ５１とＦＳＧ５３に同時にスキャンクロック信号を供給することができる。また、ＦＳＧ５１及びＦＳＧ５４、ＦＳＧ５２及びＦＳＧ５３、ＦＳＧ５２及びＦＳＧ５４の組み合わせでも、同時にスキャンクロック信号を供給することができる。
【００５７】
上述した組み合わせのうち、例えばＦＳＧ５１及びＦＳＧ５３、又は、ＦＳＧ５２及びＦＳＧ５４に同時にスキャンクロック信号を供給する場合について説明する。クロック供給回路４Ａ及び４Ｂは、はじめにＦＳＧ５１及びＦＳＧ５３、又は、ＦＳＧ５２及びＦＳＧ５４にスキャンクロック信号を供給する。ＦＳＧ５１及びＦＳＧ５３の機能テスト終了後、クロック供給回路４Ａ及び４Ｂは、ＦＳＧ５２及びＦＳＧ５４にスキャンクロック信号を供給する。これにより、内部クロックドメイン２Ａ〜２Ｅをテストする際のテストパタン長は、ＦＳＧ５１もしくはＦＳＧ５３が有するテストパタン数に、ＦＳＧ５２もしくはＦＳＧ５４が有するテストパタン数を加算することによって算出される。
【００５８】
以上説明したように、本発明の実施の形態１にかかるテスト方法を用いることにより、テストパタン長を短縮することができる。図４に示されるように、同一周波数グループに、ＦＳＧ５１〜５４を有する場合に、クロック供給回路を１つ用いてテストを行うと、テストパタン長は、それぞれの周波数サブグループが有するテストパタン数を加算することにより算出される。即ち、クロック供給回路が１つしか配置されていない場合、各周波数サブグループを同時にテストすることができないため、テストパタン長は、それぞれの周波数サブグループが有するテストパタン数を加算することにより算出される。
【００５９】
これに対して、本発明の実施の形態１のように、同一周波数グループに対して２つのクロック供給回路を配置した場合は、２つの周波数サブグループに対して同時にテストを行うことができる。そのため、クロック供給回路を１つのみ配置した場合と比較して、テストパタン長を約半分に短縮することができる。ここで、クロック供給回路は、同一周波数グループに対して配置される数は２つに限られず、複数配置することができる。
【００６０】
また、クロック供給回路グループに属する周波数サブグループのテストパタン数を均等に近づくように周波数サブグループを分類することにより、回路全体のテストパタン長を短くすることができる。
【００６１】
（実施の形態２）
本発明の実施の形態２にかかる半導体装置は、実施の形態１にかかる半導体装置におけるクロック供給回路グループの生成に用いる情報が、実施の形態１と異なる。
【００６２】
本発明の実施の形態２にかかるクロック供給回路グループ構築の詳細な処理の流れについて、図５及び図６を用いて説明する。図５において、実施の形態２では、図２のステップＳ２１に代えてステップＳ５１を実行し、ステップＳ２５に代えてステップＳ５５を実行する。その他の処理は図２と同様である。
【００６３】
ステップＳ５１では、コンピュータは、周波数サブグループのフリップフロップ回路数を算出する。具体的には、内部クロックドメインを構成する論理回路に含まれるフリップフロップ回路数を算出する。ステップＳ５５では、コンピュータは、フリップフロップ回路数を最も多く含むクロック供給グループを選択する。ステップ５５により、コンピュータは、フリップフロップ回路数に基づいて、クロック供給回路を追加する周波数グループを決定する。
【００６４】
次に、図６において、実施の形態２では、図３のステップＳ３４及びステップＳ３５に代えて、ステップＳ６４及びステップＳ６５を実行する。その他の処理は図３と同様である。
【００６５】
ステップＳ６４では、コンピュータは、フリップフロップ回路数が最小のクロック供給回路グループを選択する。ステップＳ６５では、コンピュータは、分類されていない周波数サブグループの中で、フリップフロップ数が最大のものを選択する。ステップＳ３６において、コンピュータは、ステップＳ６４で選択したクロック供給回路に、ステップＳ６５で選択した周波数グループを割り当てる。このように、コンピュータは、フリップフロップ回路数に基づいて、周波数サブグループをクロック供給回路に割り当てを行う。
【００６６】
以上説明したように、本発明の実施の形態２にかかるクロック供給回路グループの構築方法を用いることにより、フリップフロップ回路数に基づいて分類されたクロック供給回路グループを用いてテストを行うことができる。周波数サブグループにおけるテストパタン数の生成は、例えば、ＡＴＰＧ処理等により実際にテストパタンを作成する必要がある。そのため、テストパタン数の算出は、処理時間が長くなる場合がある。本発明の実施の形態２においては、テストパタン数の代わりに、フリップフロップ回路数を使用している。一般的に、フリップフロップ回路数が多くなれば、テストパタン数が大きくなる傾向にある。また、フリップフロップ回路数の算出は、テストパタンの生成よりも処理時間は短い。そのため、テストパタン数の代わりに、フリップフロップ回路数をクロック供給回路グループの生成時に用いることができる。
【００６７】
（実施の形態３）
本発明の実施の形態３にかかるテスト方法を、図４を用いて説明する。図４の回路は、クロック供給回路４Ａ及び４Ｂ毎に、ＳＣＫｉｎ端子が接続されている。これより、クロック供給回路４Ａにスキャンクロック信号を供給し、クロック供給回路４Ｂにはスキャンクロック信号を供給しない、というテストを行うことが可能である。即ち、クロック供給回路４Ａ及び４Ｂ両方にスキャンクロック信号を供給するか、クロック供給回路４Ａ及び４Ｂのどちらか一方にスキャンクロック信号を供給するかを選択することができる。本制御は、ＳＣＫｉｎ端子に制御回路を接続し、どちらか一方のＳＣＫｉｎ端子を選択して、スキャンクロック信号を供給する制御を行ってもよい。もしくは、クロック供給回路４Ａ及び４Ｂに制御回路を接続し、どちらか一方のＳＣＫｉｎ端子を介して供給されたスキャンクロック信号のみを周波数サブグループに供給する制御を行ってもよい。
【００６８】
以上説明したように、本発明の実施の形態３にかかるテスト方法を用いることにより、例えば、ＣＧ６１もしくはＣＧ６２のどちらか一方のみにスキャンクロック信号を出力してテストを行うことができる。これにより、例えば、ＦＳＧ５１とデータパス依存関係を有するＦＳＧ５３もしくはＦＳＧ５４とを別々にテストを行うことができる。そのため、故障検出率を低下させずにテストを行うことができる。また、ＣＧ６１及びＣＧ６２の両方にスキャンクロック信号を出力するようにした場合は、実施の形態１と同様、テストパタン長を短縮させることができる。このようにテスト方法を選択することができるため、回路規模もしくは回路の複雑性等に基づいて、より適切なテスト方法を選択することができる。
【００６９】
上述の実施の形態では、本発明は、任意の処理を、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）等を含むコンピュータにプログラムを実行させることにより実現することも可能であることを説明した。この場合、プログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＲＯＭカートリッジ、バッテリバックアップ付きＲＡＭメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性ＲＡＭカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
【００７０】
ここで、プログラムをインターネットその他の通信媒体を介して伝送することにより提供する場合のコンピュータシステムの構成例について、図７を用いて説明する。
【００７１】
コンピュータシステムは、コンピュータ１０と、入力装置１４と、出力装置１５と、媒体駆動装置１６と、サーバ１７とから構成されている。コンピュータ１０は、ＣＰＵ１１と、メモリ１２と、バス１３とを有する。媒体駆動装置１６及びサーバ１７は、ネットワーク１８を介して接続されている。
【００７２】
コンピュータ１０は、入力装置１４からの入力に従って、メモリ１２上のプログラムをＣＰＵ１１が実行する。コンピュータ１０は、そのプログラムの実行結果を出力装置１５に出力する。媒体駆動装置１６は、ＬＡＮなどのネットワーク１８を介してサーバ１８から送られてきたプログラムデータ信号を受信する。媒体駆動装置１６は、受信したプログラムデータを、バス１３を介してメモリ１２に記憶させる。また、媒体駆動装置１６は、メモリ１２に記憶しているプログラムデータをサーバ１８に送信する。
【００７３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７４】
１０  コンピュータ
１１  ＣＰＵ
１２  メモリ
１３  バス
１４  入力装置
１５  出力装置
１６  媒体駆動装置
１７  サーバ
１８  ネットワーク
３Ａ〜３Ｅ  セレクタ
４Ａ、４Ｂ  クロック供給回路
【図１】
2011007589.tif 000003
【図２】
2011007589.tif 000004
【図３】
2011007589.tif 000005
【図４】
2011007589.tif 000006
【図５】
2011007589.tif 000007
【図６】
2011007589.tif 000008
【図７】
2011007589.tif 000009
【図８】
2011007589.tif 000010
【図９】
2011007589.tif 000011