(57)【特許請求の範囲】
【請求項１】
クロック信号に基づき動作する複数の論理回路によって構成されるクロックドメインを複数有し、
複数の前記クロックドメインのうち、制御信号に基づき選択される任意の前記クロックドメイン対して前記クロック信号を選択的に供給する制御回路を有し、
複数の前記クロックドメインは、動作周波数に基づき任意数の前記クロックドメインをグループ化した複数の第１のグループに分類され、さらに１つの前記第１のグループ内で互いに独立して動作する前記クロックドメインをグループ化した複数の第２のグループに分類され、
前記制御回路は、前記第２のグループ毎に供給する前記クロック信号を制御することを特徴とする半導体装置。
【請求項２】
クロック信号に基づき動作する複数の論理回路によって構成されるクロックドメインを複数有する半導体装置のテスト用回路の設計をコンピュータに実行させるためのプログラムであって、
前記テスト用回路を挿入する前の第１の回路情報と、前記クロックドメインに供給する前記クロック信号の周波数情報を示す第２の回路情報とを読み込み、複数の前記クロックドメインのうち同一の周波数の前記クロック信号でテストを行うクロックドメインをグループ化する第１のステップと、
前記第１のステップで生成されたグループ毎に、グループ内のクロックドメイン間でデータパス依存関係を持たないクロックドメインをさらにグループ化する第２のステップと、
前記第１の回路情報に対して、前記第１のステップで生成されたグループに対応して配置され、対応した前記第１のステップで生成されたグループ毎に前記クロック信号を供給し、制御信号に応じて前記第２のステップで生成されたグループ毎に前記クロック信号を分配する制御回路の情報を追加するステップとをコンピュータに実行させるプログラム。
【請求項３】
前記制御回路は、第１の制御信号に基づき、前記クロック信号を供給する前記第２のグループを少なくとも１つ選択することを特徴とする請求項２に記載のプログラム。
【請求項４】
コンピュータを用いて、クロック信号に基づき動作する複数の論理回路を有する複数のクロックドメインを有する半導体装置にテスト用回路を追加するテスト用回路追加方法であって、
前記テスト用回路を挿入する前の第１の回路情報を入力し、
クロックドメインに供給する前記クロック信号の周波数情報を示す第２の回路情報に基づき前記クロックドメインのテスト周波数情報を算出し、
前記第１の回路情報に基づき前記クロックドメイン間のデータの送受信関係を示すデータパス依存関係を抽出し、
前記第１の回路情報と前記テスト周波数情報とに基づき任意数のクロックドメインをグループ化した複数の第１のグループの情報を算出し、
前記データパス依存関係と前記第１のグループの情報とに基づき１つの前記第１のグループ内で互いに独立して動作する前記クロックドメインをグループ化した複数の第２のグループの情報を算出し、
接続される前記第１グループ内の前記第２のサブグループの数に応じた数の前記クロック信号の出力端子をそれぞれ有し、入力される前記クロック信号の供給先を前記第２グループ毎に制御する制御回路の情報を前記第１の回路情報に追加し、
前記制御回路が追加された第３の回路情報を出力するテスト用回路追加方法。
【請求項５】
前記制御回路は、前記第２のグループ毎に供給する前記クロック信号を制御することを特徴とする請求項４に記載のテスト用回路追加方法。
【請求項６】
前記制御回路は、第１の制御信号に基づき、前記クロック信号を供給する前記第２のグループを少なくとも１つ選択することを特徴とする請求項４又は５に記載のテスト用回路追加方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びそのテスト手法に関し、特に半導体装置の内部回路へのクロック供給を制御するクロック制御回路を有する半導体装置及びそのテスト手法に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）等の集積回路は、回路の大規模化、機能の複雑化、素子の微細化が進んでいる。また、ＬＳＩの動作スピードの不良が無視できない問題となっており、スピード不良をテストするために、機能テストにおいて遅延テストを含む機能テストの実施が必須となっている。ＬＳＩに対して検査を行う従来技術が特許文献１に開示されている。
【０００３】
しかしながら、近年の回路規模の大きなＬＳＩに対して、従来技術を用いた場合、機能テストを実施するために膨大なテストパターン数を生成しなければならない。あるいは、テストパターン数を削減して機能テストを行うために、多数の端子を追加しなければならない。そのため、膨大な数のテストパターンによってテストすることによるテスト時間、テストコストの増大、あるいは追加した端子によってチップ面積が増大することによるチップコストの増大が問題となっている。
【０００４】
従来例１として、端子数の増加を抑制するテスト手法を説明する。テスト対象となる半導体装置を図１９に示す。図１９に示すように、半導体装置は、外部から入力されるユーザークロックに基づき動作する外部クロックドメインと、内部で生成されるクロックを用いて動作する内部クロックドメインとを有している。また、外部クロックドメインと内部クロックドメインは、それぞれ同じクロックに基づき動作するグループに分類することができる。
【０００５】
従来例１では、外部クロックドメインは、周波数が１０ＭＨｚのクロックで動作する外部クロックドメイン１０１、周波数が２０ＭＨｚのクロックで動作する外部クロックドメイン１０２、周波数が３０ＭＨｚのクロックで動作する１０３、１０４、１０５に分類される。また、外部クロックドメイン１１１〜１１５は、それぞれユーザークロック端子Ｕ−ＣＬＫ１０１〜Ｕ−ＣＬＫ１０５と、ユーザーデータ入力端子Ｄ１０１〜Ｄ１０５とが接続されている。ユーザークロック端子Ｕ−ＣＬＫ１０１〜Ｕ−ＬＣＫ１０５は、それぞれ外部クロックドメイン１０１〜１０５にクロックを供給する端子である。ユーザーデータ入力端子Ｄ１０１〜Ｄ１０５は、それぞれ外部クロックドメイン１０１〜１０５にデータ信号を供給する端子である。
【０００６】
従来例１では、内部クロックドメインは、周波数が１０ＭＨｚのクロックで動作する内部クロックドメイン１１１、１１２、周波数が２０ＭＨｚのクロックで動作する外部クロックドメイン１１３、１１４、１１５に分類される。また、内部クロックドメイン１１１〜１１５は、データパスの依存関係を有している。例えば、内部クロックドメイン１１１は、内部クロックドメイン１１３からのデータに基づき動作している。内部クロックドメイン１１２は、内部クロックドメイン１１１からのデータに基づき動作している。内部クロックドメイン１１３は、内部クロックドメイン１１５からのデータに基づき動作している。内部クロックドメイン１１４は、内部クロックドメイン１１３からのデータに基づき動作している。
【０００７】
上記で説明したような、半導体装置に対して機能テストは、外部クロックドメイン１０１〜１０５は、ユーザークロック端子Ｕ−ＣＬＫ１０１〜Ｕ−ＣＬＫ１０５を介して入力するクロック信号と、ユーザーデータ入力端子Ｄ１０１〜Ｄ１０５を介して入力するデータ信号とに基づき論理回路を動作させることで実施される。内部クロックドメイン１１１〜１１５に対する機能テストは、内部クロックドメインで用いられるスキャンクロック信号をスキャンクロック供給用端子ＳＣＫｉｎから入力し、内部クロックドメイン１１１〜１１５をスキャンクロック信号に基づき動作させることで実施される。このようにスキャンクロック信号を内部クロックドメイン１１１〜１１５に入力するために、スキャンクロック供給用端子ＳＣＫｉｎとセレクタとを有するＤＦＴ（Design For Test）回路を追加することが一般的に行われている。
【０００８】
ＤＦＴ回路を追加する手順のフローチャートを図２０に示す。図２０に示すように、まず、ＤＦＴ回路挿入前回路情報Ｆ１０１を入力する（ステップＳ１０１）。次に、ＤＦＴ回路挿入前回路情報Ｆ１０１から内部クロックドメインを抽出する（ステップＳ１０２）。続いて、スキャンクロック信号ＳＣＫと内部クロック信号とを選択して、内部クロックドメインに供給するセレクタを抽出した内部クロックドメインに基づき回路情報に追加する（ステップＳ１０３）。また、ＤＦＴ回路挿入前回路情報Ｆ１０１にスキャンクロック供給用端子ＳＣＫｉｎを１つ追加する（ステップＳ１０４）。ステップＳ１０３、Ｓ１０４で追加したスキャンクロック供給用端子ＳＣＫｉｎとセレクタとを接続する（ステップＳ１０５）。その後、生成されたＤＦＴ回路挿入後回路情報Ｆ１０２を出力する（ステップＳ１０６）。このフローチャートに基づき、回路情報にセレクタとスキャンクロック供給用端子ＳＣＫｉｎとの情報を追加する。セレクタとスキャンクロック供給用端子ＳＣＫｉｎとの情報を追加した内部クロックドメイン部分の半導体装置のブロック図を図２１に示す。
【０００９】
図２１に示すように、セレクタとスキャンクロック供給用端子ＳＣＫｉｎとの情報を追加した半導体装置は、内部クロックドメイン１１１〜１１５のそれぞれにセレクタ１２１〜１２５が接続されている。セレクタ１２１〜１２５には、セレクタに入力される信号のうちいずれの信号を出力するかを指定するテストモード制御信号ＡＭＣが入力されている。また、セレクタ１２１〜１２５の"０"入力には対応する内部クロックが入力され、"１"入力は１つのスキャンクロック供給用端子ＳＣＫｉｎに接続されている。
【００１０】
図２１に示す半導体装置の内部クロックドメインに対する機能テストで用いられるテストパターンを生成する手順のフローチャートを図２２に示す。図２２に示すように、テストパターンの生成は、まずテストパターンを生成する対象となる内部クロックドメインが存在するかを判定する（ステップＳ１０７）。ステップＳ１０７で、テストパターンを生成する対象となる内部クロックドメインが存在する場合、その内部クロックドメインから対象となる内部クロックドメインを選択する（ステップＳ１０８）。続いて、テストパターンを生成する対象となっていない内部クロックドメインに対してテストパターンのマスク処理を行う（ステップＳ１０９）。その後、テストパターンを生成する対象となっている内部クロックドメインのテストパターンをＡＴＰＧ（Automatic Test Pattern Generation）によって自動生成する（ステップＳ１１０）。ＡＴＰＧを実施し、テストパターンが生成されると、ステップＳ１０７に戻る。全ての内部クロックドメインに対して、それぞれテストパターンを生成するまでステップＳ１０７からＳ１１０を繰り返す。ステップＳ１０７でテストパターンを生成する対象となる内部クロックドメインが存在しないと判定されると、テストパターンの生成が終了する。
【００１１】
図２２のフローチャートに基づいて生成されたテストパターンの一例を図２３に示す。図２３に示すように、テストパターンは、内部クロックドメイン１１１〜１１５のそれぞれに対応して生成されている。従来例１では、５つのパターンが生成される。ここで、それぞれのテストパターンのうち、"Ｘ"で示される値は、回路の動作を停止させるためのオフステイト値であって、例えば"Ｌｏｗ"が設定される。このオフステイト値は、図２２のフローチャートにおいてステップＳ１０９のマスク処理によって生成される。従来例１の半導体装置に対する機能テストは、図２３で示すテストパターンを図示しないスキャンチェーン回路を介して内部クロックドメイン１１１〜１１５に入力して行われる。
【００１２】
一方、図１９に示す半導体装置に対する機能テストの別の一例として、テストパターンの増加を抑制するテスト手法を説明する。このテスト手法を従来例２とする。従来例２におけるＤＦＴ回路の追加手順のフローチャートを図２４に示す。
【００１３】
図２４に示すように、従来例２では、まずＤＦＴ回路挿入前回路情報Ｆ１２１を入力する（ステップＳ１２１）。次に、ＤＦＴ回路挿入前回路情報Ｆ１２１から内部クロックドメインを抽出する（ステップＳ１２２）。続いて、スキャンクロック信号ＳＣＫと内部クロック信号とを選択して、内部クロックドメインに供給するセレクタを回路情報に追加する（ステップＳ１２３）。また、ＤＦＴ回路挿入前回路情報Ｆ１２１に複数個のスキャンクロック供給用端子ＳＣＫｉｎを追加する（ステップＳ１２４）。ステップＳ１２３、Ｓ１２４で追加した複数のスキャンクロック供給用端子ＳＣＫｉｎとセレクタとをそれぞれ接続する（ステップＳ１２５）。その後、生成されたＤＦＴ回路挿入後回路情報Ｆ１２２を出力する（ステップＳ１２６）。このフローチャートに基づき、回路情報にセレクタとスキャンクロック供給用端子ＳＣＫｉｎとの情報を追加する。セレクタとスキャンクロック供給用端子ＳＣＫｉｎとの情報を追加した半導体装置を図２５に示す。
【００１４】
図２５に示すように、従来例２においてセレクタとスキャンクロック供給用端子ＳＣＫｉｎとの情報を追加した半導体装置は、内部クロックドメイン１１１〜１１５のそれぞれにセレクタ１２１〜１２５が接続されている。セレクタ１２１〜１２５には、セレクタに入力される信号のうちいずれの信号を出力するかを指定するテストモード制御信号ＡＭＣが入力されている。また、セレクタ１２１〜１２５の"０"入力には対応する内部クロック信号が入力され、"１"入力は対応するスキャンクロック供給用端子ＳＣＫｉｎにそれぞれ接続されている。
【００１５】
図２５に示す半導体装置の内部クロックドメインに対する機能テストで用いられるテストパターンを生成する手順のフローチャートを図２６に示す。図２６に示すように、従来例２では、まず内部クロックドメイン間のデータパス依存関係を抽出する（ステップＳ１２７）。続いて、ステップＳ１２７で抽出されたデータパス依存関係に基づき、互いに影響を及ぼさない内部クロックドメインをグループ化し、内部クロックドメイングループを抽出する（ステップＳ１２８）。
【００１６】
その後、テストパターンを生成する対象となる内部クロックドメイングループが存在するかを判定する（ステップＳ１２９）。ステップＳ１２９で、テストパターンを生成する対象となる内部クロックドメイングループが存在する場合、その内部クロックドメイングループから対象となる内部クロックドメイングループを選択する（ステップＳ１３０）。続いて、テストパターンを生成する対象となっていない内部クロックドメイングループに対してテストパターンのマスク処理を行う（ステップＳ１３１）。その後、テストパターンを生成する対象となっている内部クロックドメイングループのテストパターンをＡＴＰＧによって自動生成する（ステップＳ１３２）。ＡＴＰＧを実施し、テストパターンが生成されると、ステップＳ１２９に戻る。全ての内部クロックドメイングループに対して、それぞれテストパターンを生成するまでステップＳ１２９からＳ１３２を繰り返す。ステップＳ１２９でテストパターンを生成する対象となる内部クロックドメインが存在しないと判定されると、テストパターンの生成が終了する。
【００１７】
図２６のフローチャートに基づいて生成されたテストパターンの一例を図２７に示す。図２７に示すように、テストパターンは、内部クロックドメイン間のデータパス依存関係に基づきグループ化された第１グループから第３グループに対応して３つのパターンとなっている。従来例２の半導体装置に対する機能テストは、図２７で示すテストパターンを図示しないスキャンチェーン回路を介して内部クロックドメイン１１１〜１１５に入力して行われる。
【特許文献１】特開２００２−１９６０４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
従来例１の半導体装置に対するテスト手法では、追加する端子数は１つであるものの、生成されるテストパターンの数が増大する。これによって、テスト時間の増加やテストコストが増大する問題がある。
【００１９】
また、従来例２の半導体装置に対するテスト手法では、テストパターンの数の増加は抑制できるものの、追加する端子数が増大するために、チップ面積が増大し、チップコストが増大する問題がある。
【課題を解決するための手段】
【００２０】
本発明にかかる半導体装置は、クロック信号に基づき動作する複数の論理回路によって構成されるクロックドメインを複数有し、複数の前記クロックドメインのうち、制御信号に基づき選択される任意の前記クロックドメイン対して前記クロック信号を選択的に供給する制御回路を有するものである。
【００２１】
一方、本発明にかかるテスト用回路追加方法は、コンピュータを用いて、クロック信号に基づき動作する複数の論理回路を有する複数のクロックドメインを有する半導体装置にテスト用回路を追加するテスト用回路追加方法であって、前記テスト用回路を挿入する前の第１の回路情報を入力し、クロックドメインに供給する前記クロック信号の周波数情報を示す第２の回路情報に基づき前記クロックドメインのテスト周波数情報を算出し、前記第１の回路情報に基づき前記クロックドメイン間のデータの送受信関係を示すデータパス依存関係を抽出し、前記第１の回路情報と前記テスト周波数情報とに基づき任意数のクロックドメインをグループ化した複数の第１のグループの情報を算出し、前記データパス依存関係と前記第１のグループの情報とに基づき１つの前記第１のグループ内で互いに独立して動作する前記クロックドメインをグループ化した複数の第２のグループの情報を算出し、接続される前記第１グループ内の前記第２のサブグループの数に応じた数の前記クロック信号の出力端子をそれぞれ有し、入力される前記クロック信号の供給先を前記第２グループ毎に制御する制御回路の情報を前記第１の回路情報に追加し、前記制御回路が追加された第３の回路情報を出力するものである。
【００２２】
本発明にかかる半導体装置は、上記テスト用回路の追加方法によって挿入された制御回路を有するものである。この制御回路は、複数のクロックドメインのうち外部から入力される制御信号に基づき選択される任意のクロックドメイン対して、外部から入力されるクロック信号を選択的に供給する。このように、複数の第１のグループのそれぞれに対応して制御回路を設けることで、異なる第１のグループに属するクロックドメインであれば、同時にテストパターンを実行して機能テストを行うことができる。従って、テスト時間を短縮することが可能である。さらに、同時に機能テストを行うことができるクロックドメインのテストパターンを合成して１つのテストパターンとして生成することが可能である。このことより、生成するテストパターンの数を削減することが可能である。
【００２３】
また、制御回路は、１つのクロック信号を任意のクロックドメインに選択的に供給することが可能である。これに対して、従来はクロックドメイン毎にスキャンクロック供給用端子を追加して、クロックドメインにスキャンクロック信号を供給していた。つまり、本発明の半導体装置は、機能テストのために追加する端子の数を第１のグループの数を同じにすることが可能であり、従来の半導体装置に比べて追加する第１のクロックの供給用端子の数を削減することが可能である。さらに、制御回路は、入力されるクロック信号の供給先を制御することができるため、既存の端子を利用することも可能である。これによって、さらに追加する端子数を削減することが可能である。
【発明の効果】
【００２４】
本発明にかかる半導体装置によれば、出荷検査のためのテストパターンの増加と端子の追加を抑制することが可能である。
【発明を実施するための最良の形態】
【００２５】
実施の形態１
以下、図面を参照して本発明の実施の態様について説明する。本発明は、半導体装置の論理回路のうち内部で生成される内部クロックに基づき動作する論理回路に対して機能テストを行う場合に、内部クロックに基づき動作する論理回路に外部から供給する第１のクロック（スキャンクロック信号）を供給するテスト用回路（例えば、ＤＦＴ（Design For Test）回路）を有するものである。
【００２６】
図１にＤＦＴ回路を追加していない実施の形態１にかかる半導体装置のブロック図を示す。図１に示す半導体装置は、複数の論理回路、ユーザーデータ入力端子Ｄ１１〜Ｄ１７、ユーザークロック端子Ｕ−ＣＬＫ１１〜Ｕ−ＣＬＫ１７を有している。論理回路は、供給されるクロックのうち同一のクロック信号に基づき動作する論理回路ごとにグループ化されている。ユーザーデータ入力端子Ｄ１１〜Ｄ１７は、外部からのデータ入力端子である。ユーザークロック端子Ｕ−ＣＬＫ１１〜Ｕ−ＣＬＫ１７は、外部からのクロック入力端子である。
【００２７】
また、本実施の形態では、複数の論理回路を供給されるクロック信号に基づきグループ化した外部クロックドメイン１１〜１７と内部クロックドメイン２１〜２７とを有している。外部クロックドメイン１１〜１７は、同じユーザークロック端子が接続される論理回路をそれぞれグループ化している。内部クロックドメイン２１〜２７は、内部で生成される内部クロック信号が供給される論理回路のうち同一の供給源から供給される内部クロック信号に基づき動作する論理回路をそれぞれグループ化している。本実施の形態では、外部クロックドメイン１１、１２は、周波数が１０ＭＨｚのクロック信号に基づき動作し、外部クロックドメイン１３、１４、１５は、周波数が２０ＭＨｚのクロック信号に基づき動作し、外部クロックドメイン１６、１７は、周波数が３０ＭＨｚのクロック信号に基づき動作している。また、内部クロックドメイン２１、２２は、周波数が１０ＭＨｚのクロック信号に基づき動作し、内部クロックドメイン２３、２４、２５は、周波数が２０ＭＨｚのクロック信号に基づき動作し、内部クロックドメイン２６、２７は、周波数が３０ＭＨｚのクロック信号に基づき動作している。
【００２８】
ここで、外部クロックドメイン１１〜１７に属する論理回路は、それぞれユーザーデータ入力端子Ｄ１１〜Ｄ１７からデータが入力される。内部クロックドメイン２１〜２７に属する論理回路は、それぞれ他の内部クロックドメインに属する論理回路、あるいは図示しない内部回路からデータが入力されている。ここで、一方のクロックドメインが、他方のクロックドメインから入力されるデータ基づき動作する関係をデータパス依存関係と称する。本実施の形態においては、内部クロックドメイン２２は、内部クロックドメイン２１とデータパス依存関係を有し、内部クロックドメイン２４は、内部クロックドメイン２３とデータパス依存関係を有し、内部クロックドメイン２５は、内部クロックドメイン２６とデータパス依存関係を有し、内部クロックドメイン２７は、内部クロックドメイン２６とデータパス依存関係を有している。
【００２９】
本発明は、図１に示す半導体装置に対して、ＤＦＴ回路を追加することで、内部クロックドメインに属する論理回路の機能テストを行うものである。実施の形態１にかかるＤＦＴ回路の追加手順のフローチャートを図２に示す。
【００３０】
図２に示すフローチャートは、例えばコンピュータのような装置によって実行される。実施の形態１にかかるＤＦＴ回路の追加手順は、まず図１に示す半導体装置の論理回路とその接続情報が記述された第１の回路情報（例えば、ＤＦＴ回路挿入前回路情報Ｆ１）を入力する（ステップＳ１）。続いて、ＤＦＴ回路挿入前回路情報Ｆ１に基づき内部クロックドメインを抽出する（ステップＳ２）。ステップＳ２で抽出された内部クロックドメインの情報に基づき、スキャンクロック信号供給用のセレクタをＤＦＴ回路挿入前回路情報Ｆ１に追加する（ステップＳ３）。
【００３１】
次に、機能テストで内部クロックドメインのそれぞれに供給するクロック周波数の情報である第２の回路情報（例えば、テスト周波数情報Ｆ２）を入力する（ステップＳ４）。ステップＳ４で入力されたテスト周波数情報Ｆ２は、テスト周波数記憶領域Ｍ１に記憶される。また、ステップＳ２で抽出された内部クロックドメイン間のデータパス依存関係を抽出し、その情報をデータパス依存関係記憶領域Ｍ２に記憶する（ステップＳ５）。さらに、ステップＳ２で抽出された内部クロックドメインの情報とテスト周波数記憶領域Ｍ１の情報とに基づき同一の周波数のクロックに基づいて機能テストを行う内部クロックドメインをグループ化した第１のグループ（例えば、周波数グループ）の情報を算出する（第１のステップ、例えばステップＳ６）。周波数グループ情報は、周波数グループ記憶領域Ｍ３に記憶される。
【００３２】
続いて、データパス依存関係記憶領域Ｍ２の情報と周波数グループ記憶領域Ｍ３の情報とに基づいて、同一の周波数グループに属する内部クロックドメインのうち互いに独立して動作する内部クロックドメインをグループ化した第２のグループ（例えば、周波数サブサブグループ）の情報を算出する（第２のステップ、例えばステップＳ７）。つまり、周波数サブグループは、同一の周波数グループに属する内部クロックドメインのうち互いにデータパス依存関係を有さない内部クロックドメインをグループ化したものである。ステップＳ７で算出された周波数サブグループ情報は、周波数サブグループ記憶領域Ｍ４に記憶される。
【００３３】
周波数グループ記憶領域Ｍ３の情報と周波数サブグループ記憶領域Ｍ４の情報とに基づき機能テストで用いるスキャンクロック信号を制御する制御回路と、スキャンクロック信号を供給するスキャンクロック供給用端子ＳＣＫｉｎとをＤＦＴ回路挿入前回路情報Ｆ１に追加する（制御回路追加ステップ、例えばステップＳ８）。例えば、制御回路は周波数グループの数と同数を追加し、追加された制御回路と同数のスキャンクロック供給用端子ＳＣＫｉｎを追加する。
【００３４】
周波数グループ記憶領域Ｍ３の情報、周波数サブグループ記憶領域Ｍ４の情報、追加された制御回路とスキャンクロック供給用端子ＳＣＫｉｎとセレクタとの情報に基づき、スキャンクロック供給用端子ＳＣＫｉｎ、制御回路、セレクタ、内部クロックドメインをそれぞれ接続する（ステップＳ９）。ステップＳ９によって、スキャンクロック供給用端子ＳＣＫｉｎと制御回路とセレクタとを有するＤＦＴ回路が追加された回路情報が生成される。この回路情報は、第３の回路情報（例えば、ＤＦＴ回路挿入後回路情報Ｆ３）として出力される（ステップＳ１０）。
【００３５】
図２に示すフローチャートに基づきＤＦＴ回路を追加した図１の半導体装置のブロック図を図３に示す。なお、図３に示す半導体装置のブロック図は、簡単化のため、外部クロックドメインと外部クロックドメインに接続されるユーザーデータ入力端子及びユーザークロック端子を図示していない。
【００３６】
図３を参照して、ＤＦＴ回路を追加した半導体装置について説明する。図３に示すように、内部クロックドメイン２１〜２７は、データパス依存関係とテスト周波数に基づきグループ化されている。本実施の形態では、テスト周波数に基づき、第１の周波数グループＦＧ１に内部クロックドメイン２１、２２が属し、第２の周波数グループＦＧ２に内部クロックドメイン２３、２４、２５が属し、第３の周波数グループＦＧ３に内部クロックドメイン２６、２７が属している。また、データパス依存関係に基づき、第１の周波数グループＦＧ１に属する内部クロックドメイン２１は、周波数サブグループＦＳＧ１１に分類され、内部クロックドメイン２２は、周波数サブグループＦＳＧ１２に分類される。第２の周波数グループＦＧ２に属する内部クロックドメイン２３は、周波数サブグループＦＳＧ２１に分類され、内部クロックドメイン２４、２５は、周波数サブグループＦＳＧ２２に分類される。第３の周波数グループＦＧ３に属する内部クロックドメイン２６は、周波数サブグループＦＳＧ３１に分類され、内部クロックドメイン２７は、周波数サブグループＦＳＧ３２に分類される。
【００３７】
内部クロックドメイン２１〜２７には、それぞれセレクタ３１〜３７が接続されている。セレクタ３１〜３７は、それぞれ"１"入力端子と"０"入力端子を有し、外部から入力されるテストモード制御信号ＡＭＣに応じていずれかの入力端子に入力される信号を出力する。例えば、テストモード制御信号ＡＭＣが"１"である場合、"１"入力端子に入力される信号を出力し、テストモード制御信号ＡＭＣが"０"である場合、"０"入力端子に入力される信号を出力する。また、セレクタ３１〜３７は、それぞれ"１"入力端子に対応する制御回路からスキャンクロック信号が供給され、"０"入力端子に内部クロック信号が供給される。
【００３８】
制御回路４１ａ〜４１ｃは、それぞれ第１の周波数グループから第３の周波数グループに対応して配置される。また、制御回路４１ａ〜４１ｃは、それぞれスキャンクロック供給用端子ＳＣＫinと、テスト制御信号（例えば、スキャンモード制御信号ＳＭＣ）を入力する制御端子と、選択信号（例えば、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬ）を入力する制御端子とが接続され、スキャンクロック出力端子ＳＣＫ１〜ＳＣＫｎ（ｎは、対応する周波数グループ内の周波数サブグループの数）を有している。
【００３９】
本実施の形態における制御回路とセレクタとの接続について説明する。制御回路４１ａのスキャンクロック出力端子ＳＣＫ１は、セレクタ３１を介して内部クロックドメイン２１にスキャンクロック信号を供給する。制御回路４１ａのスキャンクロック出力端子ＳＣＫ２は、セレクタ３２を介して内部クロックドメイン２２にスキャンクロック信号を供給する。制御回路４１ｂのスキャンクロック出力端子ＳＣＫ１は、セレクタ３３を介して内部クロックドメイン２３にスキャンクロック信号を供給する。制御回路４１ｂのスキャンクロック出力端子ＳＣＫ２は、セレクタ３４を介して内部クロックドメイン２４にスキャンクロック信号を供給し、さらにセレクタ３５を介して内部クロックドメイン２５にスキャンクロック信号を供給する。制御回路４１ｃのスキャンクロック出力端子ＳＣＫ１は、セレクタ３６を介して内部クロックドメイン２６にスキャンクロック信号を供給する。制御回路４１ｂのスキャンクロック出力端子ＳＣＫ２は、セレクタ３７を介して内部クロックドメイン２７にスキャンクロック信号を供給する。
【００４０】
上記説明の制御回路４１ａ〜４１ｃについて詳細に説明する。ここで、制御回路４１ａ〜４１ｃは、それぞれ実質的に同じものであるので、制御回路４１ａ〜４１ｃの一例として制御回路４１として説明する。まず、本実施の形態の制御回路４１に要求される機能を示す表を図４に示す。図４に示すように、制御回路４１の機能には、ＩＮ１、ＩＮ２、ＩＮ３ｎ（ｎは、テスト制御信号の種類の数）、ＳＣＫｎ（ｎは、対応する周波数グループ内の周波数サブグループの数）、Ｂｌｏｃｋ＿Ａ、Ｂｌｏｃｋ＿Ｂ、Ｆｕｎｃ１、Ｆｕｎｃ２がある。機能ＩＮ１は、スキャンクロック信号の入力端子の機能である。機能ＩＮ２は、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬ等の選択信号を入力する入力端子の機能である。機能ＩＮ３ｎは、スキャンモード制御信号ＳＭＣやテストモード制御信号ＡＭＣ等のテスト制御信号を入力する入力端子の機能である。機能ＳＣＫｎは、対応する周波数グループ内の周波数サブグループ毎にスキャンクロック信号を出力する出力端子の機能である。機能Ｂｌｏｃｋ＿Ａは、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬをデコードする機能である。機能Ｂｌｏｃｋ＿Ｂは、スキャンクロック信号を制御する機能である。機能Ｆｕｎｃ１は、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬに基づき選択された周波数サブグループにのみスキャンクロック信号を出力し、選択されなかった周波数サブグループにはオフステイト値"Ｘ"を出力する機能である。ここで、オフステイト値とは、信号が供給されるブロックを停止させる値であって、本実施の形態では"Ｘ"によって表される。機能Ｆｕｎｃ２は、テスト制御信号に基づき、機能テスト（例えば、スキャンテスト）時にデータをシフトさせるシフトサイクルと機能テスト時にデータをキャプチャするサイクルとユーザーモードにおけるクロック信号との制御を行う機能である。なお、機能Ｆｕｎｃ２の制御を行う信号の制御論理は実施例ごとに異なる。
【００４１】
次に、制御回路４１の回路図を図５に示す。制御回路４１は、入力端子ＩＮ１、ＩＮ２、ＩＮ３１、デコーダブロックＢｌｏｃｋ＿Ａ１、スキャンクロック制御ブロックＢｌｏｃｋ＿Ｂ２、スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２を有している。入力端子ＩＮ１は、機能ＩＮ１に相当しており、スキャンクロック供給用端子ＳＣＫｉｎが接続され、スキャンクロック信号が入力されている。入力端子ＩＮ２は、機能ＩＮ２に相当しており、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬを入力する制御端子が接続され周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが入力されている。入力端子ＩＮ３１は、機能ＩＮ３ｎに相当しており、スキャンモード制御信号ＳＭＣを入力する制御端子が接続されスキャンモード制御信号ＳＭＣが入力されている。
【００４２】
デコーダブロックＢｌｏｃｋ＿Ａ１は、機能Ｂｌｏｃｋ＿Ａに相当しており、インバータ４１１を有している。スキャンクロック制御ブロックＢｌｏｃｋ＿Ｂ１は、機能Ｂｌｏｃｋ＿Ｂに相当しており、ＡＮＤ回路４１２、４１３、セレクタ４１４、４１５を有している。
【００４３】
ＡＮＤ回路４１２の一方の入力端子には、スキャンクロック信号が入力されている。ＡＮＤ回路４１２の他方の入力端子には、インバータ４１１の出力が接続されている。ＡＮＤ回路４１２の出力は、セレクタ４１４の"０"入力端子に接続されている。セレクタ４１４の"１"入力端子には、スキャンクロック信号が入力されている。ＡＮＤ回路４１３の一方の端子には、スキャンクロック信号が入力されている。ＡＮＤ回路４１３の他方の端子にはデコーダブロックＢｌｏｃｋ＿Ａ１を介して周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが入力されている。ＡＮＤ回路４１３の出力はセレクタ４１５の"０"入力端子に接続さている。セレクタ４１５の"１"入力端子には、スキャンクロック信号が入力されている。セレクタ４１４、４１５は、それぞれ入力端子ＩＮ３１より入力されるスキャンモード制御信号ＳＭＣに基づき、"１"入力端子と"０"入力端子とに入力される信号のいずれか一方の信号を出力する。また、セレクタ４１４の出力は、スキャンクロック出力端子ＳＣＫ１に接続され、セレクタ４１５の出力は、スキャンクロック出力端子ＳＣＫ２に接続されている。
【００４４】
周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬとスキャンモード制御信号ＳＭＣとの状態と制御回路４１の出力信号の関係を図６に示し、図６を参照して制御回路４１の動作について説明する。図６に示すように、制御回路４１は、スキャンモード制御信号ＳＭＣが"Ｌｏｗ"（例えば、接地電位）である場合、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが"Ｌｏｗ"であれば、スキャンクロック出力端子ＳＣＫ１からスキャンクロック信号ＳＣＫを出力し、スキャンクロック出力端子ＳＣＫ２からオフステイト値"Ｘ"を出力する。また、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが"Ｈｉｇｈ"（例えば、電源電位）であれば、スキャンクロック出力端子ＳＣＫ２からスキャンクロック信号ＳＣＫを出力し、スキャンクロック出力端子ＳＣＫ１からオフステイト値"Ｘ"を出力する。一方、スキャンモード制御信号ＳＭＣが"Ｈｉｇｈ"である場合、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬの値に関わらず、スキャンクロック出力端子ＳＣＫ１及びスキャンクロック出力端子ＳＣＫ２からスキャンクロック信号ＳＣＫを出力する。
【００４５】
つまり、制御回路４１は、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬの値によってスキャンクロック信号を供給する周波数サブグループを選択することで機能Ｆｕｎｃ１を実現している。また、スキャンモード制御信号ＳＭＣの値によってスキャンクロック信号を制御することで機能Ｆｕｎｃ２を実現している。
【００４６】
図３に示すＤＦＴ回路を追加した半導体装置に対するテストパターンの生成の手順のフローチャートを図７に示す。図７を参照してテストパターンの生成手順について説明する。テストパターンの生成は、例えばコンピュータを用いてＡＴＰＧ（Automatic Test Pattern Generation）処理を実行することで行われる。図７に示すように、まずＤＦＴ回路挿入後回路情報Ｆ３を入力し、回路情報を取得する（ステップＳ１１）。続いて、回路情報からの故障モードを検証し、検出する対象となる故障モード（検出対象故障モード）を抽出する（ステップＳ１２）。また、抽出した検出対象故障モードが適用される周波数サブグループを抽出する（ステップＳ１３）。抽出した周波数サブグループに供給するクロック信号の設定を行う（ステップＳ１４）。ステップＳ１２〜Ｓ１４で得られた情報からテストパターンを自動生成するＡＴＰＧ処理を実行する（ステップＳ１５）。その後、未処理の故障モードが存在するかを判断する（ステップＳ１６）。未処理の故障モードが存在する場合は、ステップＳ１２に戻り、処理を繰り返す。未処理の故障モードが存在しない場合は、処理を終了する。なお、図示しないが、生成されたパターンは、短いテストパターンとなるように合成・圧縮処理される。
【００４７】
図７に示すフローチャートに従って生成されるテストパターンの一例を図８に示す。図８に示すように、生成されたパターンは、例えば周波数サブグループＦＳＧ１１、ＦＳＧ２１、ＦＳＧ３１を含む第１の周波数テストグループ用パターンと、周波数サブグループＦＳＧ１２、ＦＳＧ２２、ＦＳＧ３２を含む第１の周波数テストグループ用パターンとの２種類となる。なお、それぞれのテストグループ用パターンにおいて、テストを行わない周波数サブグループに対するテストパターンにはオフステイト値"Ｘ"が挿入されている。
【００４８】
図８に示すテストパターンを図示しないスキャンパターン回路に与え、制御回路４１ａ、４１ｂ、４１ｃを介してスキャンクロック信号を内部回路に与えることで内部クロックドメインに対する機能テストを行う。例えば、第１のテストグループ用パターンを用いた機能テストを行う場合は、制御回路４１ａ、４１ｂ、４１ｃのスキャンクロック出力端子ＳＣＫ１からそれぞれ対応する周波数のスキャンクロック信号を出力する。これによって、周波数サブグループＦＳＧ１１、ＦＳＧ２１、ＦＳＧ３１に属する内部クロックドメインが動作し、機能テストが行われる。また、第２のテストグループ用パターンを用いた機能テストを行う場合は、制御回路４１ａ、４１ｂ、４１ｃのスキャンクロック出力端子ＳＣＫ２からそれぞれ対応する周波数のスキャンクロック信号を出力する。これによって、周波数サブグループＦＳＧ１２、ＦＳＧ２２、ＦＳＧ３２に属する内部クロックドメインが動作し、機能テストが行われる。
【００４９】
上記説明より、実施の形態によれば、ＤＦＴ回路を挿入する場合に、テストする内部クロックドメインのテスト周波数に基づき周波数グループを抽出し、データパス依存関係に基づき周波数グループ内から周波数サブグループを抽出する。そして、周波数グループに基づき制御回路を回路情報に追加し、制御回路のスキャンクロック出力端子ＳＣＫｎの数を周波数サブグループに基づいて決定する。これによって、テスト周波数が異なり、互いにデータパス依存関係を有さない内部クロックドメイン同時にテストするテストパターンを生成と実行をすることが可能である。
【００５０】
例えば、従来例１では内部クロックドメインが７つある場合には７つの内部クロックドメインそれぞれにテストパターンを生成する必要があった。これに対し、実施の形態１にかかる半導体装置では、７つの内部クロックドメインをデータパス依存関係に基づきグループ化した周波数サブグループを抽出することで、２つのテストパターンを生成するだけでよい。これによって、実施の形態１の半導体装置は、従来例１の半導体装置に比べテスト時間を削減することが可能である。
【００５１】
また、制御回路に供給される周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬとスキャンモード制御信号ＳＭＣとによって内部クロックドメインに供給するスキャンクロック信号を制御できるため、内部クロックドメインごとにスキャンクロック供給用の端子を追加する必要がない。実施の形態１にかかる半導体装置では、７つの内部クロックドメインに対しスキャンクロック供給用の端子を３つと、制御用の端子を２つの合計５つの端子を追加している。これに対し、従来例２の半導体装置では、７つの内部クロックドメインに対し、７つのスキャンクロック供給用端子を追加しなければならない。つまり、実施の形態１にかかる半導体装置によれば、追加する端子を従来例２の半導体装置よりも削減し、チップ面積を削減することが可能である。
【００５２】
機能テストのために追加する端子が増加する影響は、内部クロックドメインの数が膨大であれば更に大きくなる。例えば、内部クロックドメインの数が１００個あり、テスト周波数が６種類であった場合、従来例２の半導体装置では１００個のスキャンクロック供給用端子を追加しなければならないのに対し、実施の形態１の半導体装置では、６つのクロック供給用端子と、２つの制御用端子との合計８つの端子を追加するのみでよい。
【００５３】
実施の形態２
実施の形態２にかかる半導体装置は、実施の形態１にかかる半導体装置における図２に示すＤＦＴ回路を追加するフローチャートのステップＳ４で入力する情報が実施の形態１とは異なる。実施の形態１と同様のものについては、同様の符号を付して説明を省略する。
【００５４】
実施の形態２にかかるＤＦＴ回路追加のフローチャートを図９に示す。図９に示すように、実施の形態２では、ステップＳ４に代えてステップＳ２０を実行し、半導体装置のユーザークロック端子Ｕ−ＣＬＫに入力されるクロック信号の周波数情報を示すクロック端子情報Ｆ２０を第２の回路情報として入力する。これに対し、実施の形態１では、図２に示すフローチャートのステップＳ４でテスト周波数を入力していた。
【００５５】
ステップＳ２０では、クロック端子情報Ｆ２０からユーザークロック端子Ｕ−ＣＬＫに入力されるクロック信号の周波数の情報を取得し、さらにＤＦＴ回路挿入前回路情報Ｆ１の情報より、分周器等の情報を取得する。これらの情報に基づき、内部クロックドメインのテスト周波数の情報を算出し、テスト周波数情報をテスト周波数記憶領域Ｍ１に記憶する。
【００５６】
テスト周波数を算出する一例を説明する。クロック端子情報Ｆ２０とＤＦＴ回路挿入前回路情報Ｆ１とに基づき抽出されたクロックドメインに対し制御回路を追加した回路一例を図１０に示す。図１０に示すように、内部クロックドメインは、周波数が２０ＭＨｚで動作する外部クロックドメインに対応するユーザークロック端子Ｕ−ＣＬＫに接続される２分周回路４２からのクロック信号の供給を受けている。したがって、内部クロックドメインのテスト周波数は１０ＭＨｚとなる。
【００５７】
つまり、実施の形態２にかかる半導体装置は、ユーザークロック端子に供給されるクロック信号の周波数の情報（クロック端子情報Ｆ２０）とＤＦＴ回路挿入前回路情報Ｆ１とに基づき内部クロックドメインのテスト周波数を算出する。これによって、内部クロックドメインのテスト周波数を予め計算することなく、すでに分かっているユーザークロック端子のクロック周波数情報から自動で内部クロックドメインのテスト周波数を算出することが可能である。
【００５８】
実施の形態３
実施の形態１にかかる半導体装置は、新たに追加したスキャンクロック供給用端子から制御回路にスキャンクロック信号を供給していた。これに対し、実施の形態３にかかる半導体装置は、外部クロックドメインに接続されるユーザークロック端子をスキャンクロック供給用端子として用いるものである。ここで、実施の形態１と同様のものについては、同じ符号を付して説明を省略する。
【００５９】
実施の形態３にかかる半導体装置のＤＦＴ回路追加手順のフローチャートを図１１に示す。図１１に示すように、実施の形態３にかかる半導体装置では、実施の形態１にかかる半導体装置におけるＤＦＴ回路追加手順のフローチャートにおけるステップＳ８に代えてステップＳ３０を実行する。ステップＳ３０は、制御回路の追加と、スキャンクロック供給用端子ＳＣＫｉｎとして兼用するユーザークロック端子Ｕ−ＣＬＫを抽出する。抽出するユーザークロック端子Ｕ−ＣＬＫは、例えば、内部クロックドメインのテスト周波数と同じ周波数のクロック信号が入力される端子を選択する。
【００６０】
図１１に示すフローチャートに従って生成されたＤＦＴ回路を追加した半導体装置のブロック図を図１２に示す。図１２に示すように、実施の形態３にかかる半導体装置では制御回路５１ａ、５１ｂ、５１ｃが追加されている。制御回路５１ａ、５１ｂ、５１ｃは、それぞれユーザークロック端子Ｕ−ＣＬＫ１１、Ｕ−ＣＬＫ１３、Ｕ−ＣＬＫ１６が接続されている。ユーザークロック端子Ｕ−ＣＬＫ１１は、外部クロックドメイン１１にクロック信号を供給する端子である。ユーザークロック端子Ｕ−ＣＬＫ１３は、外部クロックドメイン１３にクロック信号を供給する端子である。ユーザークロック端子Ｕ−ＣＬＫ１６は、外部クロックドメイン１６にクロック信号を供給する端子である。
【００６１】
また、制御回路５１ａ、５１ｂ、５１ｃは、それぞれ周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬ、スキャンモード制御信号ＳＭＣ、テストモード制御信号ＡＭＣが接続されている。さらに、制御回路５１ａ、５１ｂ、５１ｃは、スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２、ＳＣＫ３を有している。スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２は、実施の形態１と同じものである。スキャンクロック出力端子ＳＣＫ３は、制御回路に接続されるユーザークロック端子に対応する外部クロックドメインにクロック信号を供給する。
【００６２】
ここで、制御回路５１ａ、５１ｂ、５１ｃについて詳細に説明する。制御回路５１ａ、５１ｂ、５１ｃは、同じものであるため、以降では制御回路５１として説明する。制御回路５１の回路図の一例を図１３に示す。制御回路５１は、入力端子ＩＮ１、ＩＮ２、ＩＮ３１、ＩＮ３２、出力端子ＳＣＫ１、ＳＣＫ２、ＳＣＫ３、デコーダブロックＢｌｏｃｋ＿Ａ２、スキャンクロック制御ブロックＢｌｏｃｋ＿Ｂ２を有している。入力端子ＩＮ１には、ユーザークロック端子Ｕ−ＣＬＫが接続されている。入力端子ＩＮ２には、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬを入力する制御端子が接続されている。入力端子ＩＮ３１には、スキャンモード制御信号ＳＭＣが接続されている。入力端子ＩＮ３２には、テストモード制御信号ＡＭＣが接続されている。デコーダブロックＢｌｏｃｋ＿Ａ２は、インバータ５１１を有している。スキャンクロック制御ブロックＢｌｏｃｋ＿Ｂ２は、ＡＮＤ回路５１２〜５１５、ＯＲ回路５１６、セレクタ５１７〜５１９を有している。
【００６３】
制御回路５１は、これらの素子を用いて、図１４に示す制御論理で動作する。図１４に示すように、制御回路５１は、テストモード制御信号ＡＭＣが"Ｌｏｗ"である場合、スキャンモード制御信号ＳＭＣと周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬとの値に関わらず、スキャンクロック出力端子ＳＣＫ３のみからスキャンクロック信号を出力する。
【００６４】
また、テストモード制御信号ＡＭＣが"Ｈｉｇｈ"である場合は、スキャンモード制御信号ＳＭＣと、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬとに基づきスキャンクロック出力端子ＳＣＫ１、ＳＣＫ２、ＳＣＫ３からスキャンクロック信号を出力する。例えば、スキャンモード制御信号ＳＭＣが"Ｌｏｗ"であって、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが"Ｌｏｗ"である場合、スキャンクロック出力端子ＳＣＫ１及びスキャンクロック出力端子ＳＣＫ３からスキャンクロック信号を出力し、スキャンクロック出力端子ＳＣＫ２からオフステイト値"Ｘ"を出力するする。スキャンモード制御信号ＳＭＣが"Ｌｏｗ"であって、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが"Ｈｉｇｈ"である場合、スキャンクロック出力端子ＳＣＫ１及びスキャンクロック出力端子ＳＣＫ３からオフステイト値"Ｘ"を出力し、スキャンクロック出力端子ＳＣＫ２からスキャンクロック信号を出力する。また、スキャンモード制御信号ＳＭＣが"Ｈｉｇｈ"でる場合、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬの値に関わらず、スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２、ＳＣＫ３からスキャンクロック信号を出力する。
【００６５】
上記説明より、実施の形態３にかかる半導体装置は、スキャンクロック供給用端子ＳＣＫｉｎとして、ユーザークロック端子Ｕ−ＣＬＫを用いる。つまり、スキャンクロック信号を入力する端子を追加する必要がないため、実施の形態３にかかる半導体装置は、実施の形態１にかかる半導体装置よりも追加する端子を削減することができる。
【００６６】
実施の形態４
実施の形態１にかかる半導体装置は、新たに追加したスキャンクロック供給用端子から制御回路にスキャンクロック信号を供給していた。これに対し、実施の形態４にかかる半導体装置は、外部クロックドメインに接続されるユーザーデータ入力端子をスキャンクロック供給用端子として用いるものである。ここで、実施の形態１と同様のものについては、同じ符号を付して説明を省略する。
【００６７】
実施の形態４にかかる半導体装置のＤＦＴ回路追加手順のフローチャートを図１５に示す。図１５に示すように、実施の形態４にかかる半導体装置では、実施の形態１にかかる半導体装置におけるＤＦＴ回路追加手順のフローチャートにおけるステップＳ８に代えてステップＳ４０を実行する。ステップＳ４０は、制御回路の追加と、スキャンクロック供給用端子ＳＣＫｉｎとして兼用するユーザーデータ入力端子Ｄを抽出する。抽出するユーザーデータ入力端子Ｄは、例えば、内部クロックドメインのテスト周波数と同じ周波数のクロック信号が入力される端子を選択する。
【００６８】
図１５に示すフローチャートに従って生成されたＤＦＴ回路を追加した半導体装置のブロック図を図１６に示す。図１６に示すように、実施の形態４にかかる半導体装置では制御回路６１ａ、６１ｂ、６１ｃが追加されている。制御回路６１ａ、６１ｂ、６１ｃは、それぞれユーザーデータ入力端子Ｄ１１、Ｄ１３、Ｄ１６が接続されている。ユーザーデータ入力端子Ｄ１１は、外部クロックドメイン１１にデータ信号を供給する端子である。ユーザーデータ入力端子Ｄ１３は、外部クロックドメイン１３にデータ信号を供給する端子である。ユーザーデータ入力端子Ｄ１６は、外部クロックドメイン１６にデータ信号を供給する端子である。
【００６９】
また、制御回路６１ａ、６１ｂ、６１ｃは、それぞれ周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬ、スキャンモード制御信号ＳＭＣ、テストモード制御信号ＡＭＣが接続されている。さらに、制御回路６１ａ、６１ｂ、６１ｃは、スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２を有している。スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２は、実施の形態１と同じものである。
【００７０】
ここで、制御回路６１ａ、６１ｂ、６１ｃについて詳細に説明する。制御回路６１ａ、６１ｂ、６１ｃは、同じものであるため、以降では制御回路６１として説明する。制御回路６１の回路図の一例を図１７に示す。制御回路６１は、入力端子ＩＮ１、ＩＮ２、ＩＮ３１、ＩＮ３２、出力端子ＳＣＫ１、ＳＣＫ２デコーダブロックＢｌｏｃｋ＿Ａ３、スキャンクロック制御ブロックＢｌｏｃｋ＿Ｂ３を有している。入力端子ＩＮ１には、ユーザーデータ入力端子Ｄが接続されている。入力端子ＩＮ２には、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬを入力する制御端子が接続されている。入力端子ＩＮ３１には、スキャンモード制御信号ＳＭＣが接続されている。入力端子ＩＮ３２には、テストモード制御信号ＡＭＣが接続されている。デコーダブロックＢｌｏｃｋ＿Ａ３は、インバータ６１１を有している。スキャンクロック制御ブロックＢｌｏｃｋ＿Ｂ３は、ＡＮＤ回路６１２〜６１４、セレクタ６１５、６１６を有している。
【００７１】
制御回路６１は、これらの素子を用いて、図１８に示す制御論理で動作する。図１８に示すように、制御回路６１は、テストモード制御信号ＡＭＣが"Ｌｏｗ"である場合、スキャンモード制御信号ＳＭＣと周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬとの値に関わらず、スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２からオフステイト値"Ｘ"を出力する。
【００７２】
また、テストモード制御信号ＡＭＣが"Ｈｉｇｈ"である場合は、スキャンモード制御信号ＳＭＣと、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬとに基づきスキャンクロック出力端子ＳＣＫ１、ＳＣＫ２からスキャンクロック信号を出力する。例えば、スキャンモード制御信号ＳＭＣが"Ｌｏｗ"であって、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが"Ｌｏｗ"である場合、スキャンクロック出力端子ＳＣＫ１からスキャンクロック信号を出力し、スキャンクロック出力端子ＳＣＫ２からオフステイト値"Ｘ"を出力するする。スキャンモード制御信号ＳＭＣが"Ｌｏｗ"であって、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬが"Ｈｉｇｈ"である場合、スキャンクロック出力端子ＳＣＫ１からオフステイト値"Ｘ"を出力し、スキャンクロック出力端子ＳＣＫ２からスキャンクロック信号を出力する。また、スキャンモード制御信号ＳＭＣが"Ｈｉｇｈ"でる場合、周波数サブグループ選択信号ＦｒｅｑＳｕｂＣＴＬの値に関わらず、スキャンクロック出力端子ＳＣＫ１、ＳＣＫ２からスキャンクロック信号を出力する。
【００７３】
上記説明より、実施の形態４にかかる半導体装置は、スキャンクロック供給用端子として、ユーザーデータ入力端子Ｄを用いる。つまり、スキャンクロック信号を入力する端子を追加する必要がないため、実施の形態４にかかる半導体装置は、実施の形態１にかかる半導体装置よりも追加する端子を削減することができる。また、実施の形態４にかかる半導体装置は、外部クロックドメインへのクロック供給を必要としないため、実施の形態３にかかる半導体装置よりも制御回路を単純化することが可能である。
【００７４】
なお、本発明は上記実施の形態に限られたものではなく、本発明の趣旨を逸脱しない範囲で適宜変形することが可能である。例えば、図２に示すフローチャートのステップＳ４とＳ５の順序を入れ替えても良い。また、図２に示すフローチャートのステップＳ６とＳ７の順序を入れ替えても良い。
【図面の簡単な説明】
【００７５】
【図１】実施の形態１にかかる半導体装置においてＤＦＴ回路を追加していない場合のブロック図である。
【図２】実施の形態１にかかるＤＦＴ回路追加手順のフローチャートである。
【図３】実施の形態１にかかるＤＦＴ回路を追加した半導体装置のブロック図である。
【図４】実施の形態１にかかる制御回路の機能を示す表である。
【図５】実施の形態１にかかる制御回路の回路図である。
【図６】実施の形態１にかかる制御回路の制御論理を示す図である。
【図７】実施の形態１にかかるＡＴＰＧ処理のフローチャートである。
【図８】実施の形態１にかかる半導体装置に対して生成されるテストパターンを示す図である。
【図９】実施の形態２にかかるＤＦＴ回路追加手順のフローチャートである。
【図１０】実施の形態２にかかる外部クロックドメインと内部クロックドメインの関係を示すブロック図である。
【図１１】実施の形態３にかかるＤＦＴ回路追加手順のフローチャートである。
【図１２】実施の形態３にかかるＤＦＴ回路を追加した半導体装置のブロック図である。
【図１３】実施の形態３にかかるＤＦＴ回路の回路図である。
【図１４】実施の形態３にかかる制御回路の制御論理を示す図である。
【図１５】実施の形態４にかかるＤＦＴ回路追加手順のフローチャートである。
【図１６】実施の形態４にかかるＤＦＴ回路を追加した半導体装置のブロック図である。
【図１７】実施の形態４にかかるＤＦＴ回路の回路図である。
【図１８】実施の形態４にかかる制御回路の制御論理を示す図である。
【図１９】従来例１の半導体装置においてＤＦＴ回路を追加していない場合のブロック図である。
【図２０】従来例１のＤＦＴ回路追加手順のフローチャートである。
【図２１】従来例１のＤＦＴ回路を追加した半導体装置のブロック図である。
【図２２】従来例１のＡＴＰＧ処理のフローチャートである。
【図２３】従来例１の半導体装置に対して生成されるテストパターンを示す図である。
【図２４】従来例２のＤＦＴ回路追加手順のフローチャートである。
【図２５】従来例２のＤＦＴ回路を追加した半導体装置のブロック図である。
【図２６】従来例２のＡＴＰＧ処理のフローチャートである。
【図２７】従来例２の半導体装置に対して生成されるテストパターンを示す図である。
【符号の説明】
【００７６】
１１〜１７    外部クロックドメイン
２１〜２７    内部クロックドメイン
３１〜３７    セレクタ
４１、４１ａ〜４１ｃ、５１、５１ａ〜５１ｃ、６１、６１ａ〜６１ｃ  制御回路
４１１、５１１、６１１    インバータ
４１２、４１３、５１２〜５１５、６１２〜６１４    ＡＮＤ回路
４１４、４１５、５１７〜５１９、６１５、６１６    セレクタ
５１６    ＯＲ回路
Ｂｌｏｃｋ＿Ａ１、Ｂｌｏｃｋ＿Ａ２、Ｂｌｏｃｋ＿Ａ３    デコーダブロック
Ｂｌｏｃｋ＿Ｂ１、Ｂｌｏｃｋ＿Ｂ２、Ｂｌｏｃｋ＿Ｂ３    スキャンクロック制御ブロック
Ｄ１１〜Ｄ１７    ユーザーデータ入力端子
Ｕ−ＣＬＫ１１〜Ｕ−ＣＬＫ１７    ユーザークロック端子
Ｆ１    回路挿入前回路情報
Ｆ２    テスト周波数情報
Ｆ３    回路挿入後回路情報
Ｆ２０    クロック端子情報
ＦＧ１、ＦＧ２、ＦＧ３    周波数グループ
ＦＳＧ１１、ＦＳＧ１２、ＦＳＧ２１、ＦＳＧ２２、ＦＳＧ３１、ＦＳＧ３２    周波数サブグループ
ＳＭＣ    スキャンモード制御信号
ＡＭＣ    テストモード制御信号
ＦｒｅｑＳｕｂＣＴＬ    周波数サブグループ選択信号
ＳＣＫ    スキャンクロック信号
ＩＮ１    入力端子
ＩＮ２    入力端子
ＩＮ３１    入力端子
ＩＮ３２    入力端子
ＳＣＫ１〜ＳＣＫｎ    スキャンクロック出力端子
ＳＣＫｉｎ    スキャンクロック供給用端子
【図１】
0005160039.tif 000002
【図２】
0005160039.tif 000003
【図３】
0005160039.tif 000004
【図４】
0005160039.tif 000005
【図５】
0005160039.tif 000006
【図６】
0005160039.tif 000007
【図７】
0005160039.tif 000008
【図８】
0005160039.tif 000009
【図９】
0005160039.tif 000010
【図１０】
0005160039.tif 000011
【図１１】
0005160039.tif 000012
【図１２】
0005160039.tif 000013
【図１３】
0005160039.tif 000014
【図１４】
0005160039.tif 000015
【図１５】
0005160039.tif 000016
【図１６】
0005160039.tif 000017
【図１７】
0005160039.tif 000018
【図１８】
0005160039.tif 000019
【図１９】
0005160039.tif 000020
【図２０】
0005160039.tif 000021
【図２１】
0005160039.tif 000022
【図２２】
0005160039.tif 000023
【図２３】
0005160039.tif 000024
【図２４】
0005160039.tif 000025
【図２５】
0005160039.tif 000026
【図２６】
0005160039.tif 000027
【図２７】
0005160039.tif 000028