(57)【要約】【課題】テスト専用端子の増加を防ぎ、テストの長時間化を防止する。【解決手段】テストアクセスポートに入力されるテスト信号に応じて、回路ブロックの試験を行うテスト回路であって、第１のＴＡＰ制御部及びその制御下にある第２のＴＡＰ制御部と、第１のＴＡＰ制御部のテスト動作の無効と、記憶情報の書き換えを不可に制御する第１の情報を記憶する第１のレジスタと、第１の情報に応じて記憶情報の書き換えを不可に制御され、第２のＴＡＰ制御部のテスト動作の有効・無効の制御する第２の情報を記憶する第２のレジスタと、外部から入力されるＴＤＩ信号に応じて前記第１、２のレジスタが書き換え不可状態を解除する制御回路と、を有するテスト回路。【選択図】図１
2011252798.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９．１にて規定されるテストアクセスポートを備え、前記テストアクセスポートに入力されるテスト信号に応じて、回路ブロックの試験を行うテスト回路であって、
前記試験に応じたテスト信号が入力される第１のＴＡＰ制御部と、
前記第１のＴＡＰ制御部により制御され、前記テスト信号が入力される第２のＴＡＰ制御部と、を備え、
前記第１のＴＡＰ制御部は、
記憶する第１の情報が第１の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を有効とし、且つ、前記テスト信号のＴＤＩ情報のデータに応じて前記第１の情報を書き換え可能とし、
前記第１の情報が第２の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を無効とし、且つ、記憶する前記第１の情報を書き換え不可とする
ＴＡＰ設定レジスタと、
前記第１の情報が第１の値である場合、前記テスト信号のＴＤＩ情報のデータに応じて、記憶する第２の情報を書き換え可能とし、
前記第１の情報が第２の値である場合、記憶する前記第２の情報を書き換え不可とし、
前記第２のＴＡＰ制御部に対して前記テスト信号に応じた動作を有効とするための第１の制御値を前記第２の情報として記憶する
ＴＡＰ選択レジスタと、
前記ＴＡＰ設定レジスタの記憶する前記第１の情報が前記第２の値である場合でも、前記テスト信号のＴＤＩ情報の所定のインストラクションに応じて、前記ＴＡＰ選択レジスタとＴＡＰ設定レジスタの記憶する前記第１、第２の情報を書き換え可能とするインストラクション制御回路と、
を有するテスト回路。
【請求項２】
前記第１のＴＡＰ制御部は、ＩＥＥＥ Ｓｔｄ １１４９．１で規定された状態遷移に応じた動作を行うＴＡＰコントローラと、
前記ＴＡＰコントローラと、前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタとの間に接続された第１の論理回路と、を更に有し、
前記ＴＡＰコントローラは、状態遷移がデータレジスタ設定となる場合に、前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタを動作させる第１の動作信号を生成し、状態遷移がインストラクションレジスタ設定となる場合に、前記インストラクション制御回路を動作させる第２の動作信号を生成し、
前記第１の論理回路は、
前記ＴＡＰ設定レジスタが記憶する前記第１の情報が第１の値である場合、前記第１の動作信号を前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタへスルーし、
前記ＴＡＰ設定レジスタが記憶する前記第１の情報が第２の値である場合、前記第１の動作信号を前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタへスルーせず、第１の値に固定する
請求項１に記載のテスト回路。
【請求項３】
前記インストラクション制御回路は、前記テスト信号のＴＤＩ情報が有する所定のインストラクションに応じて、第１の制御信号を出力し、
前記第１の論理回路は、前記ＴＡＰ設定レジスタが記憶する第１の情報が第２の値であっても、前記第１の制御信号に応じて、前記第１の動作信号を前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタへスルーする
請求項２に記載のテスト回路。
【請求項４】
前記第１の論理回路は、第１、第２のＡＮＤ回路を有し、
前記第１のＡＮＤ回路は、一方の入力端子に前記第１の情報の値が入力され、他方の入力端子に前記第１の制御信号の反転信号が入力され、論理演算結果を出力し、
前記第２のＡＮＤ回路は、一方の入力端子に前記第１の動作信号が入力され、他方の入力端子に前記第１のＡＮＤ回路の出力信号の反転信号が入力され、論理演算結果を前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタに出力する
請求項３に記載のテスト回路。
【請求項５】
前記第１のＴＡＰ制御部は、第２の論理回路を更に有し、
前記インストラクション制御回路は、前記テスト信号のＴＤＩ情報の所定のインストラクションにより、前記第１のＴＡＰ制御部が制御する外部データレジスタのテスト制御信号を出力し、
前記第２の論理回路は、
前記第１の情報が第１の値である場合、前記テスト制御信号をスルーし、
前記第１の情報が第２の値である場合、前記テスト制御信号をスルーせず、第１の値に固定する
請求項２〜請求項４のいずれか１項に記載のテスト回路。
【請求項６】
前記第２の論理回路は、第３のＡＮＤ回路を有し、
前記第１の情報の第１、第２の値は互いに反転値であり、
前記第３のＡＮＤ回路は、一方の入力端子に前記第１の情報の反転した値が入力され、他方の入力端子に前記テスト制御信号が入力され、論理演算結果を出力する
請求項５に記載のテスト回路。
【請求項７】
前記第１のＴＡＰ制御部は、前記第１の論理回路と前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタへとの間に接続された第３の論理回路を更に有し、
前記インストラクション制御回路は、前記テスト信号のＴＤＩ情報の所定のインストラクションにより、第２の制御信号を出力し、
前記第３の論理回路は、前記第２の制御信号に応じて、前記第１の論理回路の出力信号を前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタへスルーするか第１の値に固定するかを制御する
請求項２〜請求項６のいずれか１項に記載のテスト回路。
【請求項８】
前記第３の論理回路は、第４のＡＮＤ回路を有し、
前記第４のＡＮＤ回路は、一方の入力端子に前記第２の制御信号を入力し、他方の入力端子に前記第１の論理回路の出力信号を入力し、論理演算結果を前記ＴＡＰ設定レジスタ及びＴＡＰ選択レジスタへ出力する
請求項７に記載のテスト回路。
【請求項９】
前記第２のＴＡＰ制御部と前記第１のＴＡＰ制御部との間に接続される第４の論理回路を有し、
前記第２のＴＡＰ制御部は、前記第４の論理回路を経由し、前記テスト信号のＴＤＩ情報、及び、前記第２のＴＡＰ制御部をリセットするＴＲＳＴ情報が入力され、
前記第４の論理回路は、前記ＴＡＰ選択レジスタの記憶する前記第２の情報に応じて、前記第２のＴＡＰ制御部が入力するＴＤＩ情報、及び、ＴＲＳＴ情報をスルーするか第１の値に固定するかを制御する
請求項１〜請求項８に記載のテスト回路。
【請求項１０】
ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９．１にて規定されるテストアクセスポートを備え、前記テストアクセスポートに入力されるテスト信号に応じて、回路ブロックの試験を行うテスト回路の制御方法であって、
前記テスト回路は、
第１の情報を記憶するＴＡＰ設定レジスタと、第２の情報を記憶するＴＡＰ選択レジスタとを有し、前記試験に応じたテスト信号が入力される第１のＴＡＰ制御部と、
前記第１のＴＡＰ制御部により制御され、前記テスト信号が入力される第２のＴＡＰ制御部と、を備え、
第２の情報に基づき、前記第２のＴＡＰ制御部に対して前記テスト信号に応じた動作の有効もしくは無効を設定し、
前記第１の情報が第１の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を有効とし、且つ、前記テスト信号のＴＤＩ情報に応じて前記第１、第２の情報を書き換え可能とし、もしくは、前記第１の情報が第２の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を無効とし、且つ、前記第１、第２の情報を書き換え不可とし、
前記テスト信号のＴＤＩ情報のインストラクションにより生成される第１の制御信号に応じて、前記第１の情報が前記第２の値であっても、前記ＴＡＰ選択レジスタとＴＡＰ設定レジスタの記憶する前記第１、第２の情報を書き換え可能とする
テスト回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト回路およびテスト回路の制御方法に関するものである。
【背景技術】
【０００２】
半導体集積回路の設計では、回路の大規模化に伴い、階層ごとに分けた設計を行う場合がある。その際、ＤＦＴ(Design for Test)において、下位階層とその上位階層にそれぞれＴＡＰ(Test Access Port）コントローラを持つ回路構成となることがある。
【０００３】
このＴＡＰコントローラに外部からテストデータを供給するために、ＩＥＥＥ１１４９．１に規定されたＴＡＰ端子（外部テスト端子）が必要となる。このＴＡＰ端子は、テスト専用端子である。このため、複数のＴＡＰコントローラに外部からテストデータを供給するためには複数のＴＡＰ端子が必要になる。
【０００４】
しかしながら、近年、チップ面積の減少に伴い、チップの入出力端子数にも制限がある。このため、通常動作時には使用しないテスト専用端子であるＴＡＰ端子の増加は、端子数の制限上望まれない。このことから、ＴＡＰ端子を増やさず、複数のＴＡＰコントローラを制御できる仕組みが望まれる。
【０００５】
例えば、図８に階層ごとにＴＡＰコントローラを有する半導体集積回路１のブロック構成を示す。図８に示すように、半導体集積回路１は、親ＴＡＰコントローラ１０と、子ＴＡＰコントローラ２０、３０と、データレジスタ１１、２１、３１と、コアロジック１２、２２、３２とを有する。
【０００６】
親ＴＡＰコントローラ１０は、データレジスタ１１、コアロジック１２、子ＴＡＰコントローラ２０、３０を制御する。親ＴＡＰコントローラ１０は、ＴＡＰ端子４１〜４４から、それぞれＴＣＫ（テストクロック信号）、ＴＭＳ（テストモードステート信号）、ＴＤＩ（テストデータイン信号）、ＴＲＳＴ(テストリセット信号)が入力される。また、親ＴＡＰコントローラ１０は、ＴＡＰ端子４５に、ＴＤＯ（テストデータアウト信号）を出力する。
【０００７】
親ＴＡＰコントローラ１０は、ＴＣＫ（テストクロック信号）を動作クロックとし、ＴＭＳ（テストモードステート信号）の値に応じて所定のシーケンス動作を行う。なお、この所定のシーケンス動作は、ＩＥＥＥ１１４９．１仕様におけるＪＴＡＧのステートに従うものとする。
【０００８】
データレジスタ１１は、例えば、バウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタである。この例の場合、データレジスタ１１は、ＴＤＩ（テストデータイン信号）に応じたデータを記憶する。
【０００９】
コアロジック１２は、所定の論理動作を行う論理回路である。例えば、バウンダリスキャンテストのとき、データレジスタ１１が記憶したＴＤＩ（テストデータイン信号）が入力され、論理演算結果をＴＤＯ（テストデータアウト信号）として出力する。
【００１０】
親ＴＡＰコントローラ１０は、選択レジスタ１３を有する。選択レジスタ１３は、子ＴＡＰコントローラ２０、３０が有効に動作するか否かの設定情報を記憶する。例えば、選択レジスタ１３が、子ＴＡＰコントローラ２０に対する第１の設定情報として「１」を記憶、子ＴＡＰコントローラ３０に対する第２の設定情報として「０」を記憶する場合、子ＴＡＰコントローラ２０が有効に動作し、子ＴＡＰコントローラ３０動作が無効となる。
【００１１】
また、例えば、選択レジスタ１３が、第１の設定情報として「０」を記憶、第２の設定情報として「１」を記憶する場合、子ＴＡＰコントローラ３０が有効に動作し、子ＴＡＰコントローラ２０動作が無効となる。選択レジスタ１３が、第１、第２の設定情報として「１」を記憶する場合、子ＴＡＰコントローラ２０、３０が両方有効に動作する。選択レジスタ１３が、第１、第２の設定情報として「０」を記憶する場合、子ＴＡＰコントローラ２０、３０が両方とも動作が無効となる。
【００１２】
なお、ここで、「有効」に動作するとは、例えば子ＴＡＰコントローラ２０、３０が、それぞれ制御下にあるレジスタ２１、３１、及び、コアロジック２２、３２に対して、入力されたＴＤＩで、ＴＣＫ、ＴＭＳに応じたテストを行うことが可能な状態のことを示すものとする。また、動作が「無効」となるとは、テストを行うことが不可能な状態のことを示すものとする。また、親ＴＡＰコントローラ１０や、後述する各ＴＡＰ制御部についても同様である。以下、本明細書で同様とする。
【００１３】
選択レジスタ１３が記憶する値の設定は、ＴＭＳ（テストモードステート信号）に応じて、ＴＤＩ（テストデータイン信号）により書き込み、及び、書き換えが行われる。
【００１４】
子ＴＡＰコントローラ２０、３０は、それぞれデータレジスタ２１、３１、コアロジック２２、３２を制御する。子ＴＡＰコントローラ２０、３０は、それぞれ親ＴＡＰコントローラ１０と同様、ＴＣＫ（テストクロック信号）を動作クロックとし、ＴＭＳ（テストモードステート信号）の値に応じて所定のシーケンス動作を行う。また、上述したように、親ＴＡＰコントローラ１０が有する選択レジスタ１３の記憶する値に応じて、テスト動作の有効、無効が制御される。
【００１５】
データレジスタ２１、３１は、それぞれデータレジスタ１１と同様、例えば、バウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタであり、ＴＤＩ（テストデータイン信号）に応じたデータを記憶する。
【００１６】
コアロジック２２、３２は、所定の論理動作を行う論理回路である。例えば、バウンダリスキャンテストのとき、それぞれデータレジスタ２１、３１が記憶したＴＤＩ（テストデータイン信号）が入力され、論理演算結果をＴＤＯ（テストデータイン信号）として出力する。
【００１７】
なお、図８では、親ＴＡＰコントローラ１０、子ＴＡＰコントローラ２０、３０を並列接続としているが、親ＴＡＰコントローラ１０、子ＴＡＰコントローラ２０、３０を直列接続としてもよい。但し、この場合、テスト動作が無効となったＴＡＰコントローラをバイパスする回路構成が必要となる。
【００１８】
なお、ＴＡＰ端子を増加させずに階層化した複数のＴＡＰコントローラを制御する技術が特許文献１、２に開示されている。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００９−１２８１０９号公報
【特許文献２】特表２００５−５２７９１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
ここで、従来の半導体集積回路１において、テストの対象として、子ＴＡＰコントローラ２０、３０を選択し、親ＴＡＰコントローラ１０を選択しない場合を考える。この場合、上述したように、親ＴＡＰコントローラ１０が有効状態のとき、入力されたＴＤＩ（テストデータイン信号）により選択レジスタ１３に第１、第２の設定情報を共に「１」を書き込む。その後、親ＴＡＰコントローラ１０は、ＴＡＰ端子４１〜４３に入力されるＴＤＩ、ＴＣＫ、ＴＭＳの各信号に対して反応しないように、自身の動作を無効状態とする。無効状態となった親ＴＡＰコントローラ１０は、ＴＡＰ端子４４からＴＲＳＴ（テストリセット信号）が入力されるまでは、入力信号を一切受け付けなくなる。そして、親ＴＡＰコントローラ１０が無効状態となった後は、有効状態の子ＴＡＰコントローラ２０、３０がＴＤＩ、ＴＣＫ、ＴＭＳに応じて、テストを行う。そして、そのテスト結果であるＴＤＯを出力する。
【００２１】
しかし、ここで、親ＴＡＰコントローラ１０が無効状態となることから、選択レジスタ１３が記憶する設定値も固定される。このため、例えば、子ＴＡＰコントローラ２０、３０をリセットしたり、有効状態から無効状態、逆に無効状態から有効状態としたい場合、一度、親ＴＡＰコントローラ１０を有効状態に復帰させる必要がある。但し、親ＴＡＰコントローラ１０の動作を有効状態に復帰するためには、ＴＡＰ端子４４からＴＲＳＴ（テストリセット信号）が入力され、親ＴＡＰコントローラ１０、子ＴＡＰコントローラ２０、３０を含めた半導体集積回路１全体に対してリセットをかける必要がある。
【００２２】
そして、その後、動作が有効となった親ＴＡＰコントローラ１０に対して、ＴＤＩ（テストデータイン信号）により、選択レジスタ１３に新たな設定情報を書き込む。つまり、無効としたい子ＴＡＰコントローラに対応する設定情報を「０」、有効としたい子ＴＡＰコントローラに対応する設定情報を「１」とする。そして、再度、親ＴＡＰコントローラ１０を無効状態とする。このように、従来の半導体集積回路１では、子ＴＡＰコントローラの有効、無効を設定するために、親ＴＡＰコントローラ１０を無効状態から有効状態に復帰させ、選択レジスタ１３に新たな設定情報を書き込む必要があり、テスト時間が長期化する問題がある。
【００２３】
この問題を解決するためには、図９の半導体集積回路２に示すように、子ＴＡＰコントローラ２０、３０にそれぞれ独立したリセット信号ＲＳＴ１、ＲＳＴ２を用意すればよい。このリセット信号ＲＳＴ１、ＲＳＴ２に応じて、子ＴＡＰコントローラ２０、３０をそれぞれ単独でリセットし、無効状態となるよう制御すればよい。しかし、半導体集積回路２では、リセット信号ＲＳＴ１、ＲＳＴ２が入力されるための専用の外部端子５１、５２が必要となる。
【００２４】
しかし、テスト専用端子の増加は、上述したように端子数の制限上望まれない。このことから、ＴＡＰ端子を増やさず、更には、テスト時間の増加を伴わず階層化された複数のＴＡＰコントローラを制御できる仕組みが望まれる。
【００２５】
なお、特許文献１でも親ＴＡＰコントローラと、複数の子ＴＡＰコントローラと、親ＴＡＰコントローラと子ＴＡＰコントローラのいずれかを１つを有効、または無効とする複数のラッチ回路を有する技術が開示されている。しかし、この特許文献１に開示される技術でも、ラッチ回路によりテスト対象となる子ＴＡＰコントローラを選択した後は、図８の半導体集積回路１と同様、親ＴＡＰコントローラが入力信号を一切受け付けなくなる。このため、ＴＲＳＴによりリセットをかけないと親ＴＡＰコントローラが有効状態に復帰できない。そして、このリセットにより同時に子ＴＡＰコントローラもリセットされ、新しい設定にてテストを行うためには、再度ＴＡＰ設定を行わなければならなくなる。このため、やはり半導体集積回路１と同様、テスト時間が長くなってしまう問題がある。
【００２６】
なお、特許文献１でも、テスト対象に選択した子ＴＡＰコントローラに対してリセット信号が入力させる外部端子を用意することで、テスト時間の長期化の問題が解決するが、上述した半導体集積回路２と同様、端子数が増加する問題が新たに発生する。
【課題を解決するための手段】
【００２７】
本発明の一態様は、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９．１にて規定されるテストアクセスポートを備え、前記テストアクセスポートに入力されるテスト信号に応じて、回路ブロックの試験を行うテスト回路であって、前記試験に応じたテスト信号が入力される第１のＴＡＰ制御部と、前記第１のＴＡＰ制御部により制御され、前記テスト信号が入力される第２のＴＡＰ制御部と、を備え、前記第１のＴＡＰ制御部は、記憶する第１の情報が第１の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を有効とし、且つ、前記テスト信号のＴＤＩ情報のデータに応じて前記第１の情報を書き換え可能とし、前記第１の情報が第２の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を無効とし、且つ、記憶する前記第１の情報を書き換え不可とするＴＡＰ設定レジスタと、前記第１の情報が第１の値である場合、前記テスト信号のＴＤＩ情報のデータに応じて、記憶する第２の情報を書き換え可能とし、前記第１の情報が第２の値である場合、記憶する前記第２の情報を書き換え不可とし、前記第２のＴＡＰ制御部に対して前記テスト信号に応じた動作を有効とするための第１の制御値を前記第２の情報として記憶するＴＡＰ選択レジスタと、前記ＴＡＰ設定レジスタの記憶する前記第１の情報が前記第２の値である場合でも、前記テスト信号のＴＤＩ情報の所定のインストラクションに応じて、前記ＴＡＰ選択レジスタとＴＡＰ設定レジスタの記憶する前記第１、第２の情報を書き換え可能とするインストラクション制御回路と、を有するテスト回路である。
【００２８】
本発明の他の態様は、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９．１にて規定されるテストアクセスポートを備え、前記テストアクセスポートに入力されるテスト信号に応じて、回路ブロックの試験を行うテスト回路の制御方法であって、前記テスト回路は、第１の情報を記憶するＴＡＰ設定レジスタと、第２の情報を記憶するＴＡＰ選択レジスタとを有し、前記試験に応じたテスト信号が入力される第１のＴＡＰ制御部と、前記第１のＴＡＰ制御部により制御され、前記テスト信号が入力される第２のＴＡＰ制御部と、を備え、第２の情報に基づき、前記第２のＴＡＰ制御部に対して前記テスト信号に応じた動作の有効もしくは無効を設定し、前記第１の情報が第１の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を有効とし、且つ、前記テスト信号のＴＤＩ情報に応じて前記第１、第２の情報を書き換え可能とし、もしくは、前記第１の情報が第２の値である場合、前記第１のＴＡＰ制御部の前記テスト信号に応じた動作を無効とし、且つ、前記第１、第２の情報を書き換え不可とし、前記テスト信号のＴＤＩ情報のインストラクションにより生成される第１の制御信号に応じて、前記第１の情報が前記第２の値であっても、前記ＴＡＰ選択レジスタとＴＡＰ設定レジスタの記憶する前記第１、第２の情報を書き換え可能とするテスト回路の制御方法である。
【００２９】
本発明にかかるテスト回路は、第１のＴＡＰ制御部が自身のテスト動作の有効／無効を制御する第１の情報を記憶するＴＡＰ設定レジスタと、第１のＴＡＰ制御部の制御下にある第２のＴＡＰ制御部のテスト動作の有効／無効を制御する第２の情報を記憶するＴＡＰ選択レジスタとを有している。このＴＡＰ設定レジスタの記憶する第１の情報が第２の値（例えば、「１」）である場合は、ＴＡＰ設定レジスタ、ＴＡＰ選択レジスタの保持する値を書き換えることが不可となり、且つ、第１のＴＡＰ制御部のテスト動作が無効となり、実質的にリセット状態と同様の状態なる。
【００３０】
しかし、所定のインストラクションを有するＴＤＩ情報に応じて、インストラクション制御回路が、ＴＡＰ選択レジスタとＴＡＰ設定レジスタの記憶する第１、第２の情報を書き換え可能とすることがきる。このことで、例えば、ＴＡＰ選択レジスタの第２の情報をＴＤＩ情報のデータレジスタ用データにより書き換えることで、第２のＴＡＰ制御部のテスト動作の有効／無効を切り替えることができる。また、例えば、ＴＡＰ設定レジスタの第１の情報をＴＤＩ情報のデータレジスタ用データにより書き換えることで、第１のＴＡＰ制御部のテスト動作の有効／無効を切り替えることができる。このため、第１、第２のＴＡＰ制御部のテスト動作の有効／無効を切り替えたい場合、テスト回路全体にリセットをかける必要がなく、従来技術で問題となっていたテスト期間の長期化を防ぐことができる。また、第２の制御部のテスト状態を有効から無効にするリセット信号を専用に用意する必要がないため、端子数の増加も防ぐことができる。
【発明の効果】
【００３１】
本発明は、テスト用外部端子数の増加を防ぎつつ、テスト時間の長期化を防止することが可能となる。
【図面の簡単な説明】
【００３２】
【図１】実施の形態１にかかる半導体集積回路のブロック構成である。
【図２】実施の形態１にかかる親ＴＡＰ制御部のブロック構成である。
【図３】一般的なＴＡＰコントローラの状態遷移図である。
【図４】実施の形態１にかかる半導体集積回路のより詳細なブロック構成である。
【図５】実施の形態１にかかる半導体集積回路の動作フローチャートである。
【図６】実施の形態２にかかる半導体集積回路のブロック構成である。
【図７】実施の形態３にかかる半導体集積回路のブロック構成の一部である。
【図８】従来の半導体集積回路のブロック構成である。
【図９】従来の半導体集積回路のブロック構成である。
【発明を実施するための形態】
【００３３】
発明の実施の形態１
【００３４】
以下、本発明を適用した具体的な実施の形態１について、図面を参照しながら詳細に説明する。この実施の形態１は、本発明をＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９．１にて規定されるテストアクセスポート（ＴＡＰ）を有し、そのテストアクセスポートに入力されるテスト信号に応じて、回路ブロックのテストを行うテスト回路に適用したものである。
【００３５】
図１に本実施の形態１にかかるテスト回路を備える半導体集積回路１００のブロック構成の一例を示す。図１に示すように、半導体集積回路１００は、親ＴＡＰ制御部１１０と、子ＴＡＰ制御部１２０、１３０と、データレジスタ１１１、１２１、１３１と、コアロジック１１２、１２２、１３２とを有する。
【００３６】
親ＴＡＰ制御部１１０は、データレジスタ１１１、コアロジック１１２、子ＴＡＰ制御部１２０、１３０を制御する。親ＴＡＰ制御部１１０は、ＴＡＰ端子１４１〜１４４から、それぞれＴＣＫ（テストクロック信号）、ＴＭＳ（テストモードステート信号）、ＴＤＩ（テストデータイン信号）、ＴＲＳＴ(テストリセット信号)が入力される。また、親ＴＡＰ制御部１１０は、ＴＡＰ端子１４５に、ＴＤＯ（テストデータアウト信号）を出力する。なお、ＴＲＳＴが入力されるＴＡＰ端子１４４は、必須の構成要素ではなく、削除可能である。
【００３７】
親ＴＡＰ制御部１１０は、ＩＥＥＥ Ｓｔｄ １１４９．１（ＪＴＡＧ）で規定されたシーケンスマップに従って動作するＴＡＰコントローラ１１６（後述）を有している。そして、ＴＣＫ（テストクロック信号）を動作クロックとし、ＴＭＳ（テストモードステート信号）の値に応じて、ＩＥＥＥ１１４９．１仕様におけるＪＴＡＧのステートに従った所定のシーケンス動作を行う。
【００３８】
例えば、ＴＡＰコントローラ１１６の状態遷移がインストラクションレジスタ（ＩＲ）設定状態である場合、ＴＤＩ（テストデータイン信号）が有するインストラクション（命令）をインストラクションレジスタに取り込む。なお、これ以降、特にことわらない限り、ＴＤＩ（テストデータイン信号）が有するインストラクションデータをインストラクションレジスタが取り込む場合は、ＴＡＰコントローラ１１６の状態遷移がインストラクションレジスタ（ＩＲ）設定状態であるとする。
【００３９】
また、例えば、ＴＡＰコントローラ１１６の状態遷移がデータレジスタ（ＤＲ）設定状態である場合、ＴＤＩ（テストデータイン信号）が有するデータをデータレジスタに取り込む。なお、これ以降、特にことわらない限り、ＴＤＩ（テストデータイン信号）が有するデータをデータレジスタが取り込む場合は、ＴＡＰコントローラ１１６の状態遷移がデータレジスタ（ＤＲ）設定状態であるとする。
【００４０】
更に、親ＴＡＰ制御部１１０は、子ＴＡＰ制御部１２０、１３０に対して、ＴＣＫ＿ＯＵＴ（テストクロック信号）、ＴＭＳ＿ＯＵＴ（テストモードステート信号）、ＴＤＩ＿ＯＵＴ（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)を出力する。なお、ＴＭＳ＿ＯＵＴ（テストモードステート信号）、ＴＤＩ＿ＯＵＴ（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)は、それぞれ親ＴＡＰ制御部１１０に入力されるＴＭＳ（テストモードステート信号）、ＴＤＩ（テストデータイン信号）、ＴＲＳＴ(テストリセット信号)をスルーして出力する。
【００４１】
なお、上述したようにＴＡＰ端子１４４が削除され、親ＴＡＰ制御部１１０がＴＲＳＴ(テストリセット信号)をスルーできない場合は、ＴＣＫ（テストクロック信号）、ＴＭＳ（テストモードステート信号）の組み合わせにより、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)を生成するようにしてもよい。例えば、ＴＣＫ（テストクロック信号）５クロック分、ＴＭＳ（テストモードステート信号）をハイレベルとすることでＴＲＳＴ＿ＯＵＴ(テストリセット信号)を生成する。
【００４２】
データレジスタ１１１は、例えば、バウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタである。この例の場合、データレジスタ１１１は、ＴＤＩ（テストデータイン信号）に応じたデータを記憶する。また、バウンダリスキャンテストにより、コアロジック１１２から出力された論理演算結果を記憶し、ＴＤＯ（テストデータアウト信号）として出力する。
【００４３】
コアロジック１１２は、所定の論理動作を行う論理回路である。例えば、バウンダリスキャンテストのとき、データレジスタ１１１が記憶したＴＤＩ（テストデータイン信号）が入力され、論理演算結果をデータレジスタ１１１に出力する。
【００４４】
親ＴＡＰ制御部１１０は、子ＴＡＰ選択レジスタ１１３と、親ＴＡＰ設定レジスタ１１４と、インストラクション制御回路１１５とを有する。
【００４５】
子ＴＡＰ選択レジスタ１１３は、子ＴＡＰ制御部１２０、１３０が有効に動作するか否かの設定情報を記憶する。例えば、子ＴＡＰ選択レジスタ１１３が、子ＴＡＰ制御部１２０に対する第１の設定情報として「１」を記憶、子ＴＡＰ制御部１３０に対する第２の設定情報として「０」を記憶する場合、子ＴＡＰ制御部１２０が有効に動作し、子ＴＡＰ制御部１３０動作が無効となる。
【００４６】
また、例えば、子ＴＡＰ選択レジスタ１１３が、第１の設定情報として「０」を記憶、第２の設定情報として「１」を記憶する場合、子ＴＡＰ制御部１３０が有効に動作し、子ＴＡＰ制御部１２０動作が無効となる。子ＴＡＰ選択レジスタ１１３が、第１、第２の設定情報として「１」を記憶する場合、子ＴＡＰ制御部１２０、１３０が両方有効に動作する。子ＴＡＰ選択レジスタ１１３が、第１、第２の設定情報として「０」を記憶する場合、子ＴＡＰ制御部１２０、１３０が両方とも動作が無効となる。
【００４７】
なお、子ＴＡＰ選択レジスタ１１３が記憶する設定情報の数は、半導体集積回路１００が備える子ＴＡＰ制御部の数に応じて増加する。本例では、子ＴＡＰ制御部が２個であるため、子ＴＡＰ選択レジスタ１１３が記憶する設定情報の数も２個となる。
【００４８】
親ＴＡＰ設定レジスタ１１４は、親ＴＡＰ制御部１１０が有効に動作するか否かの設定情報を記憶する。例えば、親ＴＡＰ設定レジスタ１１４が「０」を記憶している場合、親ＴＡＰ制御部１１０が有効に動作する。一方、親ＴＡＰ設定レジスタ１１４が「１」を記憶している場合、親ＴＡＰ制御部１１０の動作が無効となる。なお、親ＴＡＰ制御部１１０の動作が無効の場合、子ＴＡＰ選択レジスタ１１３及び親ＴＡＰ設定レジスタ１１４の書き換えが不可となる。但し、後述するインストラクション制御回路１１５からの制御信号（後述する第１の制御信号）により、親ＴＡＰ設定レジスタ１１４の書き換えが可能となる。
【００４９】
インストラクション制御回路１１５は、ＴＡＰ端子１４１から入力されるＴＤＩが有するインストラクション（命令）に応じて、後述する第１の制御信号を出力する。この第１の制御信号により、無効状態の親ＴＡＰ制御部１１０において、親ＴＡＰ設定レジスタ１１４が、書き換え可能な状態となる。
【００５０】
子ＴＡＰ制御部１２０、１３０は、それぞれデータレジスタ１２１、１３１、コアロジック１２２、１３２を制御する。子ＴＡＰ制御部１２０、１３０は、それぞれ親ＴＡＰ制御部１１０からＴＣＫ＿ＯＵＴ（テストクロック信号）、ＴＭＳ＿ＯＵＴ（テストモードステート信号）、ＴＤＩ＿ＯＵＴ（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)が入力される。
【００５１】
この子ＴＡＰ制御部１２０、１３０は、ＴＣＫ＿ＯＵＴ（テストクロック信号）を動作クロックとし、ＴＭＳ＿ＯＵＴ（テストモードステート信号）の値に応じて親ＴＡＰ制御部１１０と同様、所定のシーケンス動作を行う。更に、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)によりリセットされる。また、親ＴＡＰ制御部１１０が有する選択レジスタ１１３の記憶する第１、第２の設定値に応じて、テスト動作の有効、無効が制御される。
【００５２】
データレジスタ１２１、１３１は、それぞれデータレジスタ１１１と同様、例えば、バウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタであり、ＴＤＩ＿ＯＵＴ（テストデータイン信号）に応じたデータを記憶する。
【００５３】
コアロジック１２２、１３２は、所定の論理動作を行う論理回路である。例えば、バウンダリスキャンテストのとき、それぞれデータレジスタ１２１、１３１が記憶したＴＤＩ＿ＯＵＴ（テストデータイン信号）が入力され、論理演算結果をＴＤＯ（テストデータイン信号）として出力する。
【００５４】
なお、図１では、親ＴＡＰ制御部１１０の制御下にある子ＴＡＰ制御部１２０、１３０及びデータレジスタ１１１が、親ＴＡＰ制御部１１０に対して並列接続の関係となっているが、直列接続となっていてもよい。なお、後述する図４の半導体集積回路１００の構成は、子ＴＡＰ制御部１２０、１３０及びデータレジスタ１１１が、直列接続の構成であるとする。
【００５５】
図２に親ＴＡＰ制御部１１０の詳細なブロック構成を示す。図２に示すように、親ＴＡＰ制御部１１０は、子ＴＡＰ選択レジスタ１１３と、親ＴＡＰ設定レジスタ１１４と、インストラクション制御回路１１５と、ＴＡＰコントローラ１１６と、ＡＮＤ回路ＡＮＤ１１１〜ＡＮＤ１１６と、ＯＲ回路ＯＲ１１１と、マルチプレクサＭＵＸ１１１、ＭＵＸ１１２とを有する。なお、子ＴＡＰ選択レジスタ１１３と、親ＴＡＰ設定レジスタ１１４は共にシフトレジスタである。
【００５６】
インストラクション制御回路１１５は、インストラクションレジスタ１１７と、インストラクションデコーダ１１８とを有する。インストラクションレジスタ１１７は、シフトレジスタである。
【００５７】
ＴＡＰコントローラ１１６は、ＴＣＫ（テストクロック信号）とＴＭＳ（テストモードステート信号）の組み合わせにより、状態が変化するステートマシンである。このＴＡＰコントローラ１１６は、図３に示すシーケンスマップに従って動作する。なお、図３に示すシーケンスマップに関しては、ＩＥＥＥ Ｓｔｄ １１４９．１（ＪＴＡＧ）で規定されており、公知であるため詳細な説明は省略する。
【００５８】
ＴＡＰコントローラ１１６は、ＣＬＫＤＲ、ＳＨＩＦＴＤＲ、ＵＰＤＤＲ、ＲＢ、ＣＬＫＩＲ＿ＥＮ、ＣＬＫＩＲ、ＳＨＩＦＴＩＲ、ＵＰＤＩＲを出力する。ＣＬＫＩＲ、ＳＨＩＦＴＩＲ、ＵＰＤＩＲ、ＣＬＫＩＲ＿ＥＮは、ＴＡＰコントローラ１１６の状態遷移がインストラクションレジスタ（ＩＲ）設定状態の場合に出力される。また、ＣＬＫＤＲ、ＳＨＩＦＴＤＲ、ＵＰＤＤＲ、ＲＢは、ＴＡＰコントローラ１１６の状態遷移がデータレジスタ（ＤＲ）設定状態の場合に出力される。
【００５９】
各信号を簡単に説明すると、ＣＬＫＤＲは、親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３のシフトレジスタの動作クロックである。ＳＨＩＦＴＤＲは、ＣＬＫＤＲの立ち上がりエッジで、シフトレジスタ内の１ビットシフトを実行させる信号である。ＵＰＤＤＲは、ＣＬＫＤＲの立ち下がりエッジで、シフトレジスタの値を出力ラッチにセット（アップデート）させる。ＲＢは、シフトレジスタのリセット信号である。
【００６０】
ＣＬＫＩＲは、インストラクションレジスタ１１７、インストラクションデコーダ１１８の動作クロックである。ＳＨＩＦＴＩＲは、ＣＬＫＩＲの立ち上がりエッジで、シフトレジスタ内の１ビットシフトを実行させる信号である。ＵＰＤＩＲは、ＣＬＫＩＲの立ち下がりエッジで、シフトレジスタの値を出力ラッチにセット（アップデート）させる。ＣＬＫＩＲ＿ＥＮは、ＴＤＩが有するインストラクション（命令）をインストラクションレジスタ１１７に取り込む場合に、「１」となる信号である。
【００６１】
インストラクションレジスタ１１７は、ＴＤＩが有するインストラクション（命令）を記憶する。インストラクションデコーダ１１８は、インストラクションレジスタ１１７が記憶したインストラクション（命令）に応じたデータ信号を出力する。このデータ信号のうち所定の１ビットをそれぞれ第１、第２の制御信号とし、その他のビットを第３の制御信号とする。例えば、インストラクションデコーダ１１８が出力するデータ信号が１０ビットであるとすると、ＬＢＳを第１の制御信号、ＬＢＳから２ビット目を第２の制御信号、３ビット目〜ＭＢＳを第３の制御信号とする。
【００６２】
インストラクションレジスタ１１７、インストラクションデコーダ１１８は、ＣＬＫＩＲに応じて動作する。例えば、インストラクションレジスタ１１７は、ＳＨＩＦＴＩＲが活性化している場合、ＣＬＫＩＲに応じたシフト動作により、入力されるＴＤＩを記憶する。そして、ＵＰＤＩＲに応じてアップデート動作を行う。
【００６３】
ＡＮＤ回路ＡＮＤ１１１は、一方の入力端子にＣＬＫＤＲが入力され、他方の入力端子にノードＮ１に印加される信号の反転信号が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ノードＮ１に印加される信号が「０」の場合、ＡＮＤ回路ＡＮＤ１１１は、ＣＬＫＤＲを伝達するスルー回路となる。一方、ノードＮ１に印加される信号が「１」の場合、ＡＮＤ１１１は、ＣＬＫＤＲを伝達せず、「０」に固定された信号を出力する。
【００６４】
ＡＮＤ回路ＡＮＤ１１２は、一方の入力端子にＡＮＤ回路ＡＮＤ１１１の出力信号が入力され、他方の入力端子に第２の制御信号が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、第２の制御信号が「１」の場合、ＡＮＤ回路ＡＮＤ１１２は、ＡＮＤ回路ＡＮＤ１１１の出力信号を伝達するスルー回路となる。一方、第２の制御信号が「０」の場合、ＡＮＤ回路ＡＮＤ１１１の出力信号を伝達せず、「０」に固定された信号を出力する。
【００６５】
ＡＮＤ回路ＡＮＤ１１３は、一方の入力端子にＵＰＤＤＲが入力され、他方の入力端子にノードＮ１に印加される信号の反転信号が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ノードＮ１に印加される信号が「０」の場合、ＡＮＤ回路ＡＮＤ１１３は、ＵＰＤＤＲを伝達するスルー回路となる。一方、ノードＮ１に印加される信号が「１」の場合、ＡＮＤ１１１は、ＵＰＤＤＲを伝達せず、「０」に固定された信号を出力する。
【００６６】
ＡＮＤ回路ＡＮＤ１１４は、一方の入力端子にＡＮＤ回路ＡＮＤ１１３の出力信号が入力され、他方の入力端子に第２の制御信号が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、第２の制御信号が「１」の場合、ＡＮＤ回路ＡＮＤ１１４は、ＡＮＤ回路ＡＮＤ１１３の出力信号を伝達するスルー回路となる。一方、第２の制御信号が「０」の場合、ＡＮＤ回路ＡＮＤ１１３の出力信号を伝達せず、「０」に固定された信号を出力する。
【００６７】
ＡＮＤ回路ＡＮＤ１１５は、一方の入力端子にノードＮ２に印加される信号が入力され、他方の入力端子に第１の制御信号の反転信号が入力される。そして、積演算した演算結果を出力信号としてノードＮ１へ出力する。
【００６８】
ＡＮＤ回路ＡＮＤ１１６は、一方の入力端子にノードＮ２に印加される信号の反転信号が入力され、その他の入力端子に第３の制御信号が入力される。そして、積演算した演算結果をテスト制御信号として出力する。つまり、ノードＮ２に印加される信号が「０」の場合、ＡＮＤ回路ＡＮＤ１１６は、第３の制御信号を伝達するスルー回路となる。この第３の制御信号は、例えばデータレジスタ１１１やコアロジック１１２の制御を行うテスト制御信号となる。一方、ノードＮ２に印加される信号が「１」の場合、第３の制御信号を伝達せず、「０」に固定された信号を出力する。
【００６９】
ＯＲ回路ＯＲ１１１は、一方の入力端子にノードＮ２に印加される信号が入力され、他方の入力端子にＣＬＫＩＲ＿ＥＮが入力される。そして、和演算した演算結果をＴＡＰ＿ＳＷとして出力する。つまり、ＣＬＫＩＲ＿ＥＮが「０」の場合、ノードＮ２に印加される信号を伝達するスルー回路となる。一方、ＣＬＫＩＲ＿ＥＮが「１」の場合、ノードＮ２に印加される信号を伝達せず、「１」に固定された信号を出力する。
【００７０】
マルチプレクサＭＵＸ１１１は、一方の入力端子にＴＤＯ＿ＩＮが入力され、他方の入力端子に子ＴＡＰ選択レジスタ１１３から伝達されるＴＤＩが入力される。そして、第２の制御信号に応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、第２の制御信号が「０」の場合、ＴＤＯ＿ＩＮを選択して、出力し、第２の制御信号が「１」の場合、子ＴＡＰ選択レジスタ１１３から伝達されるＴＤＩを選択して、出力する。なお、ＴＤＯ＿ＩＮは、データレジスタ１１１、子ＴＡＰ制御部１２０もしくは１３０から出力されるＴＤＯである。
【００７１】
マルチプレクサＭＵＸ１１２は、一方の入力端子にマルチプレクサＭＵＸ１１１からの出力信号が入力され、他方の入力端子にインストラクションレジスタ１１７から伝達されるＴＤＩが入力される。そして、第４の制御信号に応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、ＴＤＯとして出力する。例えば、第４の制御信号が「０」の場合、マルチプレクサＭＵＸ１１１からの出力信号を選択して、出力し、第４の制御信号が「１」の場合、インストラクションレジスタ１１７から伝達されるＴＤＩを選択して、出力する。なお、第４の制御信号は、インストラクションデコーダ１１８からの信号であってもよいし、独立した信号であってもよい。
【００７２】
親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３は、それぞれＡＮＤ回路ＡＮＤ１１２、ＡＮＤ１１４の出力信号、ＳＨＩＦＴＤＲ、ＲＢが入力される。そして、親ＴＡＰ設定レジスタ１１４は、記憶する情報をノードＮ２に出力する。子ＴＡＰ選択レジスタ１１３は、記憶する第１の設定情報をＴＡＰ１＿ＥＮとして出力し、記憶する第２の設定情報をＴＡＰ２＿ＥＮとして出力する。
【００７３】
親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３は、それぞれＡＮＤ回路ＡＮＤ１１３がＣＬＫＤＲを出力する場合、そのＣＬＫＤＲに応じて動作する。例えば、ＳＨＩＦＴＤＲが活性化している場合、ＣＬＫＤＲに応じてビットシフトが実行され、入力されるＴＤＩを記憶する。また、親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３は、それぞれＡＮＤ回路ＡＮＤ１１３がＵＰＤＤＲを出力する場合、そのＵＰＤＤＲに応じてアップデート動作を行う。
【００７４】
なお、本例では、親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３を別レジスタとしているが、１つのレジスタで構成してもよい。この場合、レジスタの所定のビット桁がそれぞれノードＮ２に出力する信号、ＴＡＰ１＿ＥＮ、ＴＡＰ２＿ＥＮとなる。
【００７５】
親ＴＡＰ制御部１１０は、ＴＡＰ端子１４１、１４２、１４３、１４４から入力されるＴＤＩ、ＴＭＳ、ＴＣＫ、ＴＲＳＴをそれぞれ、ＴＤＩ＿ＯＵＴ、ＴＭＳ＿ＯＵＴ、ＴＣＫ＿ＯＵＴ、ＴＲＳＴ＿ＯＵＴとして出力する。なお、上述したように、ＴＡＰ端子１４４が削除される場合は、ＴＲＳＴを入力しない。
【００７６】
図４に半導体集積回路１００の更に詳細な構成を示す。図４に示すように、半導体集積回路１００は、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０、１３０の他にも、ＡＮＤ回路ＡＮＤ１５１〜ＡＮＤ１５６と、ＯＲ回路ＯＲ１５１と、マルチプレクサＭＵＸ１５１〜ＭＵＸ１５４とを有する。なお、上記ＡＮＤ回路ＡＮＤ１５１〜ＡＮＤ１５６、ＯＲ回路ＯＲ１５１、マルチプレクサＭＵＸ１５１〜ＭＵＸ１５４は、親ＴＡＰ制御部１１０が有していてもよい。
【００７７】
子ＴＡＰ制御部１２０、１３０は、それぞれ親ＴＡＰ制御部１１０と同様、ＴＡＰコントローラやインストラクションレジスタ、インストラクションデコーダ等を有する。そして、上述したようにデータレジスタ１２１、１３１、コアロジック１２２、１３２を制御する。なお、図４では、コアロジック１２２、１３２を省略している。
【００７８】
子ＴＡＰ制御部１２０、１３０は、それぞれ親ＴＡＰ制御部１１０からのＴＣＫ＿ＯＵＴ（テストクロック信号）、ＴＭＳ＿ＯＵＴ（テストモードステート信号）、ＴＤＩ＿ＯＵＴ（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)が、それぞれＴＣＫ（テストクロック信号）、ＴＭＳ（テストモードステート信号）、ＴＤＩ（テストデータイン信号）、ＴＲＳＴ (テストリセット信号)として入力される。
【００７９】
子ＴＡＰ制御部１２０、１３０が備えるＴＡＰコントローラは、それぞれＴＣＫ＿ＯＵＴ（テストクロック信号）を動作クロックとし、ＴＭＳ＿ＯＵＴ（テストモードステート信号）の値に応じてＴＡＰコントローラ１１６と同様の所定のシーケンス動作を行う。
【００８０】
例えば、データレジスタ１２１が、バウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタである場合、ＴＡＰコントローラの状態遷移がデータレジスタ（ＤＲ）設定状態のとき、ＴＤＩ＿ＯＵＴのデータをシフトインし、データレジスタ１２１に記憶させたり、バウンダリスキャンテストの結果を記憶したデータレジスタ１２１をシフトアウトさせＴＤＯとして出力する。また、ＴＡＰコントローラの状態遷移がインストラクションレジスタ（ＩＲ）設定状態のとき、ＴＤＩ＿ＯＵＴのインストラクション（命令）をシフトインし、インストラクションレジスタに記憶させる。また、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)により、子ＴＡＰ制御部１２０、１３０をリセットする。
【００８１】
ＡＮＤ回路ＡＮＤ１５１は、一方の入力端子にＴＤＩ＿ＯＵＴが入力され、他方の入力端子にＴＡＰ１＿ＥＮが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ１＿ＥＮが「１」の場合、ＡＮＤ回路ＡＮＤ１５１は、ＴＤＩ＿ＯＵＴを伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮが「０」の場合、ＴＤＩ＿ＯＵＴを伝達せず、「０」に固定された信号を出力する。子ＴＡＰ制御部１２０は、このＡＮＤ回路ＡＮＤ１５１の出力信号をＴＤＩとして入力される。
【００８２】
ＡＮＤ回路ＡＮＤ１５２は、一方の入力端子にＴＲＳＴ＿ＯＵＴが入力され、他方の入力端子にＴＡＰ１＿ＥＮが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ１＿ＥＮが「１」の場合、ＡＮＤ回路ＡＮＤ１５２は、ＴＲＳＴ＿ＯＵＴを伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮが「０」の場合、ＴＲＳＴ＿ＯＵＴを伝達せず、「０」に固定された信号を出力する。子ＴＡＰ制御部１２０は、このＡＮＤ回路ＡＮＤ１５２の出力信号をＴＲＳＴとして入力される。
【００８３】
なお、ＴＡＰ１＿ＥＮが「１」で、ＡＮＤ回路ＡＮＤ１５１、ＡＮＤ１５２が、それぞれＴＤＩ＿ＯＵＴ、ＴＲＳＴ＿ＯＵＴをスルーする場合を子ＴＡＰ制御部１２０に入力されるＴＤＩ、ＴＲＳＴが有効となっていると称す。
【００８４】
マルチプレクサＭＵＸ１５１は、一方の入力端子に子ＴＡＰ制御部１２０から出力されたＴＤＯが入力され、他方の入力端子にＴＤＩ＿ＯＵＴ（テストデータイン信号）が入力される。そして、ＴＡＰ１＿ＥＮに応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ１＿ＥＮが「０」の場合、ＴＤＩ＿ＯＵＴ（テストデータイン信号）を選択して、出力し、ＴＡＰ１＿ＥＮが「１」の場合、子ＴＡＰ制御部１２０のＴＤＯを選択して、データレジスタ１１１へ出力する。
【００８５】
マルチプレクサＭＵＸ１５２は、一方の入力端子にデータレジスタ１１１からの出力信号が入力され、他方の入力端子にＴＤＩ＿ＯＵＴ（テストデータイン信号）が入力される。そして、ＴＡＰ＿ＳＷに応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ＿ＳＷが「１」の場合、ＴＤＩ＿ＯＵＴ（テストデータイン信号）を選択して、出力し、ＴＡＰ＿ＳＷが「０」の場合、データレジスタ１１１からの信号を選択して、出力する。
【００８６】
ＡＮＤ回路ＡＮＤ１５３は、一方の入力端子にマルチプレクサＭＵＸ１５２からの出力信号が入力され、他方の入力端子にＴＡＰ２＿ＥＮが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ２＿ＥＮが「１」の場合、ＡＮＤ回路ＡＮＤ１５３は、マルチプレクサＭＵＸ１５２が出力した信号を伝達するスルー回路となる。一方、ＴＡＰ２＿ＥＮが「０」の場合、マルチプレクサＭＵＸ１５２が出力した信号を伝達せず、「０」に固定された信号を出力する。子ＴＡＰ制御部１３０は、このＡＮＤ回路ＡＮＤ１５３の出力信号をＴＤＩとして入力される。
【００８７】
ＡＮＤ回路ＡＮＤ１５４は、一方の入力端子にＴＲＳＴ＿ＯＵＴが入力され、他方の入力端子にＴＡＰ２＿ＥＮが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ２＿ＥＮが「１」の場合、ＡＮＤ回路ＡＮＤ１５４は、ＴＲＳＴ＿ＯＵＴを伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮが「０」の場合、ＴＲＳＴ＿ＯＵＴを伝達せず、「０」に固定された信号を出力する。子ＴＡＰ制御部１３０は、このＡＮＤ回路ＡＮＤ１５４の出力信号をＴＲＳＴとして入力される。
【００８８】
なお、ＴＡＰ２＿ＥＮが「１」で、ＡＮＤ回路ＡＮＤ１５３、ＡＮＤ１５４が、それぞれＴＤＩ＿ＯＵＴ、ＴＲＳＴ＿ＯＵＴをスルーする場合を子ＴＡＰ制御部１３０に入力されるＴＤＩ、ＴＲＳＴが有効となっていると称す。
【００８９】
マルチプレクサＭＵＸ１５３は、一方の入力端子に子ＴＡＰ制御部１２０のＴＤＯが入力され、他方の入力端子にマルチプレクサＭＵＸ１５２が出力した信号が入力される。そして、ＴＡＰ２＿ＥＮに応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ２＿ＥＮが「０」の場合、マルチプレクサＭＵＸ１５２が出力した信号を選択して、出力し、ＴＡＰ２＿ＥＮが「１」の場合、子ＴＡＰ制御部１３０のＴＤＯを選択して、マルチプレクサＭＵＸ１５４の一方の入力端子へ出力する。
【００９０】
ＡＮＤ回路ＡＮＤ１５５は、一方の入力端子にＴＡＰ１＿ＥＮが入力され、他方の入力端子に子ＴＡＰ制御部１２０のＴＤＯが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ１＿ＥＮが「１」の場合、ＡＮＤ回路ＡＮＤ１５５は、子ＴＡＰ制御部１２０のＴＤＯを伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮが「０」の場合、子ＴＡＰ制御部１２０のＴＤＯを伝達せず、「０」に固定された信号を出力する。
【００９１】
ＡＮＤ回路ＡＮＤ１５６は、一方の入力端子にＴＡＰ２＿ＥＮが入力され、他方の入力端子に子ＴＡＰ制御部１３０のＴＤＯが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ２＿ＥＮが「１」の場合、ＡＮＤ回路ＡＮＤ１５６は、子ＴＡＰ制御部１３０のＴＤＯを伝達するスルー回路となる。一方、ＴＡＰ２＿ＥＮが「０」の場合、子ＴＡＰ制御部１３０のＴＤＯを伝達せず、「０」に固定された信号を出力する。
【００９２】
ＯＲ回路ＯＲ１５１は、一方の入力端子にＡＮＤ回路ＡＮＤ１５５の出力信号が入力され、他方の入力端子にＡＮＤ回路ＡＮＤ１５６の出力信号が入力される。そして、和演算した演算結果を出力信号として、マルチプレクサＭＵＸ１５４の他方の入力端子へ出力する。
【００９３】
マルチプレクサＭＵＸ１５４は、一方の入力端子にマルチプレクサＭＵＸ１５３の出力信号が入力され、他方の入力端子にＯＲ回路ＯＲ１５１の出力信号が入力される。そして、ＴＡＰ＿ＳＷに応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、ＴＤＯ＿ＩＮとして親ＴＡＰ制御部１１０へ出力する。例えば、ＴＡＰ＿ＳＷが「０」の場合、マルチプレクサＭＵＸ１５３の出力信号を選択して、出力し、ＴＡＰ＿ＳＷが「１」の場合、ＯＲ回路ＯＲ１５１の出力信号を選択して、出力する。
【００９４】
以下、親ＴＡＰ制御部１１０の動作及びそれに伴う半導体集積回路１００全体の動作を説明する。図５に動作フローチャートを示す。
【００９５】
図５に示すように、まず、親ＴＡＰ制御部１１０のＴＡＰコントローラ１１６の状態遷移をインストラクションレジスタ（ＩＲ）設定状態とする。そして、ＴＤＩにより、子ＴＡＰ選択レジスタ１１３、親ＴＡＰ設定レジスタ１１４の設定を可能とする所定のインストラクションを指定する（Ｓ１０１）。この場合、インストラクションデコーダ１１８は、「１」の値の第１の制御信号を出力する。なお、第２の制御信号は、子ＴＡＰ選択レジスタ１１３、親ＴＡＰ設定レジスタ１１４の値を変えずに後述する他のデータレジスタの値を変えたいときに値を「０」とする制御信号である。本実施の形態１では、特にことわらない限り第２の制御信号の値は「１」となっているものとする。
【００９６】
上述したように、第１の制御信号が「１」となることから、ＡＮＤ回路ＡＮＤ１１５の他方の入力端子に第１の制御信号の反転信号、つまり「０」が入力される。よって、ＡＮＤ回路ＡＮＤ１１５は、ノードＮ１に「０」を出力する。この結果、ＡＮＤ回路ＡＮＤ１１１、ＡＮＤ１１３はスルー回路となる。一方、第２の制御信号が「１」となることから、ＡＮＤ回路ＡＮＤ１１２、ＡＮＤ１１４もスルー回路となる。よって、ＣＬＫＤＲ、ＵＰＤＤＲが親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３に供給され、親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３は、記憶する値が書き換え可能な状態となる。
【００９７】
次に、ＴＡＰコントローラ１１６の状態遷移をデータレジスタ（ＤＲ）設定状態とする。そして、ＴＡＰ端子１４１から入力されたＴＤＩにより、所定の値を子ＴＡＰ選択レジスタ１１３、親ＴＡＰ設定レジスタ１１４に記憶させ、レジスタをセットする（Ｓ１０２）。
【００９８】
例えば、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０のテスト動作を有効、子ＴＡＰ制御部１３０のテスト動作を無効にしたい場合、親ＴＡＰ設定レジスタ１１４に記憶させる値を「０」、子ＴＡＰ選択レジスタ１１３に記憶させる第１の設定情報を「１」、第２の設定情報を「０」となるよう、ＴＤＩのデータを指定する。
【００９９】
また、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１３０のテスト動作を有効、子ＴＡＰ制御部１２０のテスト動作を無効にしたい場合、親ＴＡＰ設定レジスタ１１４に記憶させる値を「０」、子ＴＡＰ選択レジスタ１１３に記憶させる第１の設定情報を「０」、第２の設定情報を「１」となるよう、ＴＤＩのデータを指定する。
【０１００】
更に、例えば、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０のテスト動作を無効、子ＴＡＰ制御部１３０のテスト動作を有効にしたい場合、親ＴＡＰ設定レジスタ１１４に記憶させる値を「１」、子ＴＡＰ選択レジスタ１１３に記憶させる第１の設定情報を「０」、第２の設定情報を「１」となるよう、ＴＤＩのデータを指定する。
【０１０１】
また、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１３０のテスト動作を無効、子ＴＡＰ制御部１２０のテスト動作を有効にしたい場合、親ＴＡＰ設定レジスタ１１４に記憶させる値を「１」、子ＴＡＰ選択レジスタ１１３に記憶させる第１の設定情報を「１」、第２の設定情報を「０」となるよう、ＴＤＩのデータを指定する。
【０１０２】
なお、図４の半導体集積回路１００の回路構成では、子ＴＡＰ制御部１２０、１３０のテスト動作を同時に有効にする場合を想定していない。但し、適切な回路構成とすることで、子ＴＡＰ制御部１２０、１３０のテスト動作を同時に有効にする場合も可能である。この場合、子ＴＡＰ選択レジスタ１１３に記憶させる第１、第２の設定情報を共に「１」となるよう、ＴＤＩのデータを指定する。
【０１０３】
上記のように親ＴＡＰ制御部１１０を無効にする、つまり親ＴＡＰ設定レジスタ１１４の値を「１」とした場合、ノードＮ２に印加される信号の値が「１」である。このため、ＡＮＤ回路ＡＮＤ１１５の一方の入力端子に「１」が入力され、第１の制御信号が「０」になれば、ＡＮＤ回路ＡＮＤ１１５は、ノードＮ１に「１」を出力する。
【０１０４】
ノードＮ１に印加される信号が「１」であるため、ＡＮＤ回路ＡＮＤ１１１、ＡＮＤ１１３は、「０」に固定された値を出力する。このため、ＣＬＫＤＲ、ＵＰＤＤＲが親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３に供給されず、親ＴＡＰ設定レジスタ１１４及び子ＴＡＰ選択レジスタ１１３は、値の書き換えが不可能な状態となる。よって、これ以降、新たに第１の制御信号が「１」となる復帰インストラクションを入れない限り、親ＴＡＰ制御部１１０は、外部から見て実質的なリセット状態となる。
【０１０５】
ここで、実質的なリセット状態とは、ＴＡＰコントローラ１１６は活性化状態を維持しているが、ＴＡＰコントローラ１１６により操作されるデータレジスタ（親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３及びデータレジスタ１１１等）の制御信号が不活性化（例えば、値が全て「０」固定）した状態を指すものとする。以後、本明細書で同様とする。
【０１０６】
また、復帰インストラクションとは、ステップＳ１０１と同様、インストラクションデコーダ１１８が第１の制御信号を「１」として出力するようにＴＤＩによりインストラクションが指定されることである。
【０１０７】
次に、ステップＳ１０２でテスト動作が有効とされた子ＴＡＰ制御部１２０、１３０、及び、親ＴＡＰ制御部１１０のＴＡＰコントローラの状態遷移をインストラクションレジスタ（ＩＲ）設定状態とする。ＴＤＩによりテストしたい内容のインストラクションをＴＡＰ端子１４１からパタン入力して指定する（Ｓ１０３）。なお、この際、ＴＡＰ端子１４１からの入力は親ＴＡＰ制御部１１０を通って子ＴＡＰ制御部１２０、１３０へ入力される。
【０１０８】
また、このときのインストラクションは、親ＴＡＰ制御部１１０のインストラクションデコーダ１１８から出力される第１の制御信号を「０」とするパタンが入力されるものとする。
【０１０９】
例えば、子ＴＡＰ制御部１３０のテスト動作が無効、子ＴＡＰ制御部１２０のテスト動作が有効、つまり、子ＴＡＰ選択レジスタ１１３の第１の設定情報が「１」、第２の設定情報が「０」の場合を考える。この場合、ＴＡＰ１＿ＥＮが「１」、ＴＡＰ２＿ＥＮが「０」であり、子ＴＡＰ制御部１２０に入力されるＴＤＩ、ＴＲＳＴが有効となる。また、子ＴＡＰ制御部１３０に入力されるＴＤＩ、ＴＲＳＴが「０」に固定される。このため、子ＴＡＰ制御部１３０はリセット状態となり、テスト動作は無効となる。
【０１１０】
一方、例えば、子ＴＡＰ制御部１２０のテスト動作が無効、子ＴＡＰ制御部１３０のテスト動作が有効、つまり、子ＴＡＰ選択レジスタ１１３の第１の設定情報が「０」、第２の設定情報が「１」の場合を考える。この場合、ＴＡＰ１＿ＥＮが「０」、ＴＡＰ２＿ＥＮが「１」であり、子ＴＡＰ制御部１３０に入力されるＴＤＩ、ＴＲＳＴが有効となる。また、子ＴＡＰ制御部１２０に入力されるＴＤＩ、ＴＲＳＴが「０」に固定される。このため、子ＴＡＰ制御部１２０はリセット状態となり、テスト動作は無効となる。
【０１１１】
更に、親ＴＡＰ制御部１１０のテスト動作が無効、つまり親ＴＡＰ設定レジスタ１１４が「１」の場合、ＴＡＰ＿ＳＷが「１」となり、マルチプレクサＭＵＸ１５２がＴＤＩ＿ＯＵＴを選択して出力し、マルチプレクサＭＵＸ１５４がＯＲ回路ＯＲ１５１の出力信号を選択し出力する。
【０１１２】
一方、例えば、親ＴＡＰ制御部１１０のテスト動作が有効、つまり親ＴＡＰ設定レジスタ１１４が「０」の場合、ＴＡＰ＿ＳＷが「０」となり、マルチプレクサＭＵＸ１５２が子ＴＡＰ制御部１２０からのＴＤＯを選択して出力し、マルチプレクサＭＵＸ１５４がマルチプレクサＭＵＸ１５３からの出力信号を選択し出力する。
【０１１３】
次に、テスト動作が有効となっている親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０、１３０において、指定されたインストラクションに応じたテスト制御信号が、それぞれ制御下にあるデータレジスタに出力される。例えば、子ＴＡＰ制御部１２０のみテスト動作が有効となっている場合、子ＴＡＰ制御部１２０から、子ＴＡＰ制御部１２０が対象とする回路がテストされる（Ｓ１０４）。なお、このインストラクションは、インストラクションデコーダ１１８から出力される第２の制御信号を「０」とするパタンが入力されるものとする。
【０１１４】
以下、子ＴＡＰ制御部１２０のみテスト動作が有効となっている場合を例に説明する。データレジスタ１２１がバウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタである場合、子ＴＡＰ制御部１２０は、データレジスタ１２１に対して、ＴＤＩ＿ＯＵＴとして入力されるバウンダリ・スキャンデータをシフトインさせる。その後、バウンダリスキャンテストをコアロジック１２２に対して行う。そして、コアロジック１２２からの論理演算結果をデータレジスタ１２１が記憶し、シフトアウトする。このデータレジスタ１２１からシフトアウトされたデータは、子ＴＡＰ制御部１２０のＴＤＯとして、ＡＮＤ回路ＡＮＤ１５５、ＯＲ回路ＯＲ１５１、マルチプレクサＭＵＸ１５４を経由して、ＴＤＯ＿ＩＮとして親ＴＡＰ制御部１１０に入力される。つまり、子ＴＡＰ制御部１３０、データレジスタ１１１はバイパスされることになる。なお、このＴＤＯ＿ＩＮは、親ＴＡＰ制御部１１０のＴＤＯとして出力される。
【０１１５】
なお、上記例では子ＴＡＰ制御部１２０のみテスト動作が有効となっているため、子ＴＡＰ制御部１３０、データレジスタ１１１がバイパスされている。また、例えば子ＴＡＰ制御部１３０のみテスト動作が有効となっている場合は、子ＴＡＰ制御部１２０、データレジスタ１１１がバイパスされる。以下同様に、親ＴＡＰ制御部１１０のみテスト動作が有効となっている場合は、子ＴＡＰ制御部１２０、１３０がバイパスされる。親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０のテスト動作が有効となっている場合は、子ＴＡＰ制御部１３０がバイパスされる。親ＴＡＰ制御部１１０、子ＴＡＰ制御部１３０のテスト動作が有効となっている場合は、子ＴＡＰ制御部１２０がバイパスされる。
【０１１６】
次に、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０、１３０のテスト動作の有効／無効を切り替えたい場合、もしくは、有効となっている子ＴＡＰ制御部１２０、１３０をリセットしたい場合（Ｓ１０５ＹＥＳ）、ステップＳ１０１に戻る。
【０１１７】
そして、ステップＳ１０１にて、ＴＡＰコントローラ１１６の状態遷移をインストラクションレジスタ（ＩＲ）設定状態とし、ＴＤＩにより、子ＴＡＰ選択レジスタ１１３、親ＴＡＰ設定レジスタ１１４の設定を可能とするインストラクションを指定する。このため、値が「１」の第１の制御信号がインストラクションデコーダ１１８から出力される。このことにより、書き換えが不可能だった親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値の書き換えが再び可能になる。つまり、外部から見て親ＴＡＰ制御部１１０は、実質的にリセット状態が解除されたことになる。
【０１１８】
そして、ステップＳ１０２にて、ＴＡＰコントローラ１１６の状態遷移をデータレジスタ（ＤＲ）設定状態とし、ＴＡＰ端子１４１から入力されたＴＤＩにより、所定の値を子ＴＡＰ選択レジスタ１１３、親ＴＡＰ設定レジスタ１１４に記憶させる。例えば、子ＴＡＰ制御部１２０のテスト動作が無効、子ＴＡＰ制御部１３０のテスト動作が有効となるよう切り替えたい場合、親ＴＡＰ設定レジスタ１１４に記憶させる値を「１」、子ＴＡＰ選択レジスタ１１３に記憶させる第１の設定情報を「０」、第２の設定情報を「１」となるよう、ＴＤＩのデータを設定する。
【０１１９】
また、単に子ＴＡＰ制御部１２０をリセットしたい場合では、第１の設定情報を「０」とするようＴＤＩのデータを設定する。このことにより、子ＴＡＰ制御部１２０がリセットされる。そして、再び第１の設定情報を「１」とするようＴＤＩのデータを設定し、子ＴＡＰ制御部１２０をテスト動作が有効となるようにする。
【０１２０】
更にまた、親ＴＡＰ制御部１１０のテスト動作が有効となる状態にしたい場合、親ＴＡＰ設定レジスタ１１４に記憶させる値を「０」とするようＴＤＩのデータを設定する。この場合、親ＴＡＰ設定レジスタ１１４が「０」を記憶し、ノードＮ２に印加される値も「０」となる。このため、ＡＮＤ回路ＡＮＤ１１５がノードＮ１に出力する値も「０」となり、ＡＮＤ回路ＡＮＤ１１１、ＡＮＤ１１３はスルー回路となる。この場合、入力されるＴＤＩのデータに応じて、親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値の書き換えも可能である。また、ＴＡＰ＿ＳＷの値も「０」となり、データレジスタ１１１にテストデータパターンのシフトインまたはデータレジスタ１１１からのテスト結果のシフトアウトも可能となる。
【０１２１】
以降、ステップＳ１０３、Ｓ１０４、Ｓ１０５に移行する。そして、テスト動作が終了するまで上記ステップを繰り返し行う。
【０１２２】
ここで、従来のＴＡＰコントローラを有する半導体集積回路１では、一度親ＴＡＰコントローラ１０を無効状態（リセット状態）とすると、親ＴＡＰコントローラ１０は、ＴＲＳＴ（テストリセット信号）が入力されるまでは、入力信号を一切受け付けなくなる。このため、選択レジスタ１３が記憶する設定値も固定され、子ＴＡＰコントローラ２０、３０をリセットし、動作を無効としたい場合、一度、親ＴＡＰコントローラ１０を復帰させる必要がある。しかし、親ＴＡＰコントローラ１０の復帰のためには、ＴＲＳＴ（テストリセット信号）の入力が必要となり、親ＴＡＰコントローラ１０、子ＴＡＰコントローラ２０、３０を含めた半導体集積回路１全体に対してリセットがかかってしまっていた。このように、従来の半導体集積回路１では、子ＴＡＰコントローラの有効、無効を設定するために、親ＴＡＰコントローラ１０を有効状態に復帰させ、選択レジスタ１３に新たな設定情報を書き込む必要があり、テスト時間が長期化する問題ある。このテスト時間の長期化する問題は、特許文献１の技術でも同様である。
【０１２３】
上記問題に対応するため、図９の半導体集積回路２に示すように、子ＴＡＰコントローラ２０、３０にそれぞれ独立したリセット信号ＲＳＴ１、ＲＳＴ２を用意することも考えられる。半導体集積回路２では、このリセット信号ＲＳＴ１、ＲＳＴ２に応じて、子ＴＡＰコントローラ２０、３０をそれぞれ単独でリセットし、無効状態となるよう制御する。しかし、半導体集積回路２では、リセット信号ＲＳＴ１、ＲＳＴ２が入力されるための専用の外部端子５１、５２が必要となり、テストだけに使用されるテスト専用端子が増加する問題があった。
【０１２４】
一方、本実施の形態１の半導体集積回路１００では、上述したように、親ＴＡＰ設定レジスタ１１４を備える。この親ＴＡＰ設定レジスタ１１４に記憶される情報により、親ＴＡＰ制御部１１０のテスト動作の有効／無効の制御、また、親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３等の制御下にあるデータレジスタの書き換え可否の制御が行われる。
【０１２５】
例えば、この親ＴＡＰ設定レジスタ１１４に「０」が記憶されていると、ノードＮ２に印加される信号の値に応じてＡＮＤ回路ＡＮＤ１１５が「０」を出力する。そして、この場合、ＡＮＤ回路ＡＮＤ１１５は、第１の制御信号の値に関係なく「０」を出力する。そして、ＡＮＤ回路ＡＮＤ１１１、ＡＮＤ１１２がスルー回路となり、ＴＡＰコントローラ１１６から出力されたＣＬＫＤＲ、ＵＰＤＤＲが親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３に入力される。よって、親ＴＡＰ設定レジスタ１１４に「０」が記憶されている場合、特に第１の制御信号の値に関係なく親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値が変更可能となる。
【０１２６】
また、親ＴＡＰ設定レジスタ１１４に「０」が記憶されている場合には、ＡＮＤ回路ＡＮＤ１１６がスルー回路となる。よって、インストラクションデコーダ１１８から出力される第３の制御信号がテスト制御信号として親ＴＡＰ制御部１１０から出力される。そして、このテスト制御信号は、親ＴＡＰ制御部１１０の制御下にあるデータレジスタ（データレジスタ１１１等）の制御に用いられる。
【０１２７】
一方、親ＴＡＰ設定レジスタ１１４に例えば「１」が記憶されていると、ノードＮ２に印加される信号の値に応じてＡＮＤ回路ＡＮＤ１１５が「０」を出力し、ＡＮＤ回路ＡＮＤ１１１、ＡＮＤ１１２の出力を「０」固定とする。よって、これは、ＴＡＰコントローラ１１６から親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３に入力されるＣＬＫＤＲ、ＵＰＤＤＲが無効状態（「０」固定の信号）となる。このため、親ＴＡＰ設定レジスタ１１４に「１」が記憶されている場合、親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値が変更不可となる。
【０１２８】
また、親ＴＡＰ設定レジスタ１１４に「１」が記憶されている場合には、親ＴＡＰ制御部１１０から出力される他のデータレジスタ等を制御するテスト制御信号を無効状態（「０」固定の信号）とする。この場合、親ＴＡＰ制御部１１０は、入力信号を受け付けなくなり、出力されるテスト制御信号も「０」固定となる。つまり、外部から見て親ＴＡＰ制御部１１０が、実質的なリセット状態となる。
【０１２９】
そして、この実質的なリセット状態から親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値の変更等を行う場合、ＴＡＰコントローラ１１６の状態遷移がインストラクションレジスタ（ＩＲ）設定状態のときに、所定のインストラクション情報を有するＴＤＩを入力し、インストラクションデコーダ１１８からの第１の制御信号を「１」とする。このことにより、ＡＮＤ回路ＡＮＤ１１１、ＡＮＤ１１２が親ＴＡＰ設定レジスタ１１４の記憶する値に関わらず強制的にスルー回路となり、ＣＬＫＤＲ、ＵＰＤＤＲが親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３に入力される。このため、ＴＡＰコントローラ１１６の状態遷移がデータレジスタ（ＤＲ）設定状態のときに、親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値がＴＤＩのデータにより書き換えが可能になる。後は、親ＴＡＰ制御部１１０のテスト動作が有効状態になるようを復帰させる場合、親ＴＡＰ設定レジスタ１１４を「０」に書き換えたり、子ＴＡＰ選択レジスタ１１３の第１、第２の設定情報を書き換えたりすることが可能となる。
【０１３０】
このように、本実施の形態１の半導体集積回路１００は、第１の制御信号が「１」となる所定のインストラクションを新たに用意し、そのインストラクションが入力されることで親ＴＡＰ制御部１１０の実質的なリセット状態を解除することが可能となる。これは、従来のように親ＴＡＰ制御部１１０を一端リセットした後、動作復帰させるのではなく、ＴＤＩのインストラクションにより実現している。
【０１３１】
そして、実質的なリセット状態の解除後、親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の値の変更等を行うことが可能となる。このため、従来の半導体集積回路１のように、子ＴＡＰ選択レジスタの値の変更等を行うため、一度半導体集積回路の全体をリセットする必要がない。よって、従来の半導体集積回路１や特許文献１の回路のように、テスト時間が長期化する問題を回避することができる。
【０１３２】
また、半導体集積回路の全体をリセットすることなしに、子ＴＡＰ選択レジスタ１１３の値を変更して、子ＴＡＰ制御部１２０、１３０のテスト動作の有効／無効を変更可能である。よって、複数の子ＴＡＰ制御部をリセットする専用のリセット信号及びその専用のリセット信号を入力する外部端子を必要としない。つまり、最低でも、ＴＣＫ（テストクロック信号）、ＴＭＳ（テストモードステート信号）、ＴＤＩ（テストデータイン信号）を入力するＴＡＰ端子１４１〜１４３があればよい。このため、従来の半導体集積回路２のテストだけに使用されるテスト専用端子が増加する問題も発生しない。
【０１３３】
発明の実施の形態２
【０１３４】
以下、本発明を適用した具体的な実施の形態２について、図面を参照しながら詳細に説明する。図６に本実施の形態２にかかる半導体集積回路２００の構成を示す。図６に示すように、半導体集積回路２００は、親ＴＡＰ制御部１１０と、子ＴＡＰ制御部１２０、１３０と、ＡＮＤ回路ＡＮＤ１５１〜ＡＮＤ１５４と、マルチプレクサＭＵＸ１５１〜ＭＵＸ１５３とを有する。なお、上記ＡＮＤ回路ＡＮＤ１５１〜ＡＮＤ１５４、マルチプレクサＭＵＸ１５１〜ＭＵＸ１５３は、親ＴＡＰ制御部１１０が有していてもよい。
【０１３５】
なお、図６に示された符号のうち、図４と同じ符号を付した構成は、図４と同じか又は類似の構成を示している。半導体集積回路２００は、図４に示す半導体集積回路１００から、ＡＮＤ回路ＡＮＤ１５５、ＡＮＤ１５６、ＯＲ回路ＯＲ１５１、マルチプレクサＭＵＸ１５４を削除した構成となっている。また、マルチプレクサＭＵＸ１５２の他方の入力される信号がマルチプレクサＭＵＸ１５１からの出力となっている点が実施の形態１と異なる。それ以外は、実施の形態１と同様であるため、本実施の形態２での説明は省略する。
【０１３６】
マルチプレクサＭＵＸ１５２は、一方の入力端子にデータレジスタ１１１からの信号が入力され、他方の入力端子にマルチプレクサＭＵＸ１５１からの出力が入力される。そして、ＴＡＰ＿ＳＷに応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ＿ＳＷが「１」の場合、マルチプレクサＭＵＸ１５１からの出力を選択して、出力し、ＴＡＰ＿ＳＷが「０」の場合、データレジスタ１１１からの信号を選択して、出力する。
【０１３７】
このような回路構成とすることで、実施の形態１と比較して、削除したＡＮＤ回路ＡＮＤ１５５、ＡＮＤ１５６、ＯＲ回路ＯＲ１５１、マルチプレクサＭＵＸ１５４分だけ回路規模を削減することが可能となる。更に、実施の形態１では想定していなかった、親ＴＡＰ制御部１１０、子ＴＡＰ制御部１２０、１３０の並列したテスト動作も可能となる。その他の効果は、実施の形態１と同様である。
【０１３８】
発明の実施の形態３
【０１３９】
以下、本発明を適用した具体的な実施の形態３について、図面を参照しながら詳細に説明する。この実施の形態３は、実施の形態１の子ＴＡＰ制御部１２０の構成を、親ＴＡＰ制御部１１０と同様の回路構成とする。このことにより、実施の形態３の半導体集積回路３００は、実施の形態１の半導体集積回路１００に対して、更に階層化を深めた構成とすることが可能となる。
【０１４０】
半導体集積回路３００は、親ＴＡＰ制御部１１０と、子ＴＡＰ制御部１２０、１３０と、孫ＴＡＰ制御部３２０、３３０と、ＡＮＤ回路ＡＮＤ１５１〜ＡＮＤ１５６と、ＯＲ回路ＯＲ１５１と、マルチプレクサＭＵＸ１５１〜ＭＵＸ１５４とを有する。更に、半導体集積回路３００は、孫ＴＡＰ制御部３２０、３３０と、ＡＮＤ回路ＡＮＤ３５１〜ＡＮＤ３５６と、ＯＲ回路ＯＲ３５１と、マルチプレクサＭＵＸ３５１〜ＭＵＸ３５４とを有する。
【０１４１】
図７に、図面の繁雑さを避けるため、半導体集積回路３００の一部構成を示す。よって、図７には、子ＴＡＰ制御部１２０及びその下位階層部分のみを記載する。なお、図７に示された符号のうち、図４と同じ符号を付した構成は、特に断りがない限り図４と同じか又は類似の構成を示している。また、図７に示される以外の回路構成は、図４と同様であり、説明等も省略する。
【０１４２】
子ＴＡＰ制御部１２０の構成は、図２に示した親ＴＡＰ制御部１１０と同様の構成である。よって、回路内の各構成要素とその接続関係及びその動作は親ＴＡＰ制御部１１０と同様である。ただし、親ＴＡＰ制御部１１０のインストラク制御部１１５が出力する第１〜第３の制御信号に対応した、子ＴＡＰ制御部１２０のインストラク制御部１１５が出力する制御信号をそれぞれ第５〜第７の制御信号とする。
【０１４３】
つまり、第５の制御信号の値は、子ＴＡＰ制御部１２０のＡＮＤ回路１１１、ＡＮＤ１１３をスルー回路とするか否かを制御する信号である。また、第６の制御信号の値は、子ＴＡＰ制御部１２０のＡＮＤ回路１１２、ＡＮＤ１１４をスルー回路とするか否かを制御する信号である。また、第７の制御信号の値は、子ＴＡＰ制御部１２０の制御下にあるデータレジスタ１２１等を制御するテスト制御信号となる信号である。ここで、親ＴＡＰ制御部１１０の親ＴＡＰ設定レジスタ１１４、子ＴＡＰ選択レジスタ１１３の保持する値を変更したくない場合には、第２の制御信号を「０」とするインストラクションを用意する。このことにより、本実施の形態３で増加した下位階層の制御が、上位階層とは別個に制御可能となる。
【０１４４】
但し、本実施の形態３の子ＴＡＰ制御部１２０が孫ＴＡＰ制御部３２０、３３０等へ出力する信号をそれぞれＴＣＫ＿ＯＵＴ２（テストクロック信号）、ＴＭＳ＿ＯＵＴ２（テストモードステート信号）、ＴＤＩ＿ＯＵＴ２（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ２(テストリセット信号)、ＴＡＰ１＿ＥＮ２、ＴＡＰ２＿ＥＮ２、ＴＡＰ＿ＳＷ２とする。上記信号は、それぞれ実施の形態１の親ＴＡＰ制御部１１０が出力するＴＣＫ＿ＯＵＴ（テストクロック信号）、ＴＭＳ＿ＯＵＴ（テストモードステート信号）、ＴＤＩ＿ＯＵＴ（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ(テストリセット信号)、ＴＡＰ１＿ＥＮ、ＴＡＰ２＿ＥＮ、ＴＡＰ＿ＳＷに対応する。
【０１４５】
また、子ＴＡＰ制御部１２０は、孫ＴＡＰ制御部３２０もしくは３３０、もしくはデータレジスタ１２１からＴＤＯ＿ＩＮ２が入力される。この信号は、実施の形態１の親ＴＡＰ制御部１１０が入力されるＴＤＯ＿ＩＮに対応する。
【０１４６】
孫ＴＡＰ制御部３２０、３３０は、それぞれ子ＴＡＰ制御部１２０と同様、ＴＡＰコントローラやインストラクションレジスタ、インストラクションデコーダ等を有する。そして、データレジスタ３２１、３３１、コアロジック３２２、３３２を制御する。なお、図７では、コアロジック３２２、３３２を省略している。
【０１４７】
孫ＴＡＰ制御部３２０、３３０は、それぞれＴＣＫ＿ＯＵＴ２（テストクロック信号）、ＴＭＳ＿ＯＵＴ２（テストモードステート信号）、ＴＤＩ＿ＯＵＴ２（テストデータイン信号）、ＴＲＳＴ＿ＯＵＴ２(テストリセット信号)が、それぞれＴＣＫ（テストクロック信号）、ＴＭＳ（テストモードステート信号）、ＴＤＩ（テストデータイン信号）、ＴＲＳＴ (テストリセット信号)として入力される。
【０１４８】
子ＴＡＰ制御部３２０、３３０が備えるＴＡＰコントローラは、それぞれＴＣＫ＿ＯＵＴ２（テストクロック信号）を動作クロックとし、ＴＭＳ＿ＯＵＴ２（テストモードステート信号）の値に応じて、実施の形態１で説明したＴＡＰコントローラ１１６と同様の所定のシーケンス動作を行う。
【０１４９】
例えば、データレジスタ３２１が、バウンダリ・スキャンパスで接続されたバウンダリ・スキャン・レジスタである場合、ＴＡＰコントローラの状態遷移がデータレジスタ（ＤＲ）設定状態のとき、ＴＤＩ＿ＯＵＴ２のデータをシフトインし、データレジスタ３２１に記憶させたり、バウンダリスキャンテストの結果を記憶したデータレジスタ３２１をシフトアウトさせＴＤＯとして出力する。また、ＴＡＰコントローラの状態遷移がインストラクションレジスタ（ＩＲ）設定状態のとき、ＴＤＩ＿ＯＵＴ２のインストラクション（命令）をシフトインし、インストラクションレジスタに記憶させる。また、ＴＲＳＴ＿ＯＵＴ２(テストリセット信号)により、孫ＴＡＰ制御部３２０、３３０をリセットする。
【０１５０】
ＡＮＤ回路ＡＮＤ３５１は、一方の入力端子にＴＤＩ＿ＯＵＴ２が入力され、他方の入力端子にＴＡＰ１＿ＥＮ２が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ１＿ＥＮ２が「１」の場合、ＡＮＤ回路ＡＮＤ３５１は、ＴＤＩ＿ＯＵＴ２を伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮ２が「０」の場合、ＴＤＩ＿ＯＵＴ２を伝達せず、「０」に固定された信号を出力する。孫ＴＡＰ制御部３２０は、このＡＮＤ回路ＡＮＤ３５１の出力信号をＴＤＩとして入力される。
【０１５１】
ＡＮＤ回路ＡＮＤ３５２は、一方の入力端子にＴＲＳＴ＿ＯＵＴ２が入力され、他方の入力端子にＴＡＰ１＿ＥＮ３が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ１＿ＥＮが２「１」の場合、ＡＮＤ回路ＡＮＤ３５２は、ＴＲＳＴ＿ＯＵＴ２を伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮ２が「０」の場合、ＴＲＳＴ＿ＯＵＴ２を伝達せず、「０」に固定された信号を出力する。孫ＴＡＰ制御部３２０は、このＡＮＤ回路ＡＮＤ３５２の出力信号をＴＲＳＴとして入力される。
【０１５２】
なお、ＴＡＰ１＿ＥＮ２が「１」で、ＡＮＤ回路ＡＮＤ３５１、ＡＮＤ３５２が、それぞれＴＤＩ＿ＯＵＴ２、ＴＲＳＴ＿ＯＵＴ２をスルーする場合を孫ＴＡＰ制御部３２０に入力されるＴＤＩ、ＴＲＳＴが有効となっていると称す。
【０１５３】
マルチプレクサＭＵＸ３５１は、一方の入力端子に孫ＴＡＰ制御部３２０のＴＤＯが入力され、他方の入力端子にＴＤＩ＿ＯＵＴ２（テストデータイン信号）が入力される。そして、ＴＡＰ１＿ＥＮ２に応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ１＿ＥＮ２が「０」の場合、ＴＤＩ＿ＯＵＴ２（テストデータイン信号）を選択して、出力し、ＴＡＰ１＿ＥＮ２が「１」の場合、孫ＴＡＰ制御部３２０のＴＤＯを選択して、データレジスタ１２１へ出力する。
【０１５４】
マルチプレクサＭＵＸ３５２は、一方の入力端子にデータレジスタ１１１からの信号が入力され、他方の入力端子にＴＤＩ＿ＯＵＴ２（テストデータイン信号）が入力される。そして、ＴＡＰ＿ＳＷ２に応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ＿ＳＷ２が「１」の場合、ＴＤＩ＿ＯＵＴ２（テストデータイン信号）を選択して、出力し、ＴＡＰ＿ＳＷ２が「０」の場合、データレジスタ１２１からの信号を選択して、出力する。
【０１５５】
ＡＮＤ回路ＡＮＤ３５３は、一方の入力端子にマルチプレクサＭＵＸ３５２が出力した信号が入力され、他方の入力端子にＴＡＰ２＿ＥＮ２が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ２＿ＥＮ２が「１」の場合、ＡＮＤ回路ＡＮＤ３５３は、マルチプレクサＭＵＸ３５２が出力した信号を伝達するスルー回路となる。一方、ＴＡＰ２＿ＥＮ２が「０」の場合、ＴＤＩ＿ＯＵＴ２を伝達せず、「０」に固定された信号を出力する。孫ＴＡＰ制御部３３０は、このＡＮＤ回路ＡＮＤ３５３の出力信号をＴＤＩとして入力される。
【０１５６】
ＡＮＤ回路ＡＮＤ３５４は、一方の入力端子にＴＲＳＴ＿ＯＵＴ２が入力され、他方の入力端子にＴＡＰ２＿ＥＮ２が入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ２＿ＥＮ２が「１」の場合、ＡＮＤ回路ＡＮＤ３５４は、ＴＲＳＴ＿ＯＵＴ２を伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮ２が「０」の場合、ＴＲＳＴ＿ＯＵＴ２を伝達せず、「０」に固定された信号を出力する。孫ＴＡＰ制御部３３０は、このＡＮＤ回路ＡＮＤ３５４の出力信号をＴＲＳＴとして入力される。
【０１５７】
なお、ＴＡＰ２＿ＥＮ２が「１」で、ＡＮＤ回路ＡＮＤ３５３、ＡＮＤ３５４が、それぞれＴＤＩ＿ＯＵＴ２、ＴＲＳＴ＿ＯＵＴ２をスルーする場合を孫ＴＡＰ制御部３３０に入力されるＴＤＩ、ＴＲＳＴが有効となっていると称す。
【０１５８】
マルチプレクサＭＵＸ３５３は、一方の入力端子に孫ＴＡＰ制御部３２０のＴＤＯが入力され、他方の入力端子にマルチプレクサＭＵＸ３５２が出力した信号が入力される。そして、ＴＡＰ２＿ＥＮ２に応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、出力する。例えば、ＴＡＰ２＿ＥＮ２が「０」の場合、マルチプレクサＭＵＸ３５２が出力した信号を選択して、出力し、ＴＡＰ２＿ＥＮ２が「１」の場合、孫ＴＡＰ制御部３３０のＴＤＯを選択して、マルチプレクサＭＵＸ３５４の一方の入力端子へ出力する。
【０１５９】
ＡＮＤ回路ＡＮＤ３５５は、一方の入力端子にＴＡＰ１＿ＥＮ２が入力され、他方の入力端子に孫ＴＡＰ制御部３２０のＴＤＯが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ１＿ＥＮ２が「１」の場合、ＡＮＤ回路ＡＮＤ３５５は、孫ＴＡＰ制御部３２０のＴＤＯを伝達するスルー回路となる。一方、ＴＡＰ１＿ＥＮ２が「０」の場合、ＴＤＩ＿ＯＵＴ２を伝達せず、「０」に固定された信号を出力する。
【０１６０】
ＡＮＤ回路ＡＮＤ３５６は、一方の入力端子にＴＡＰ２＿ＥＮ２が入力され、他方の入力端子に孫ＴＡＰ制御部３３０のＴＤＯが入力される。そして、積演算した演算結果を出力信号として出力する。つまり、ＴＡＰ２＿ＥＮ２が「１」の場合、ＡＮＤ回路ＡＮＤ３５６は、孫ＴＡＰ制御部３３０のＴＤＯを伝達するスルー回路となる。一方、ＴＡＰ２＿ＥＮ２が「０」の場合、ＴＤＩ＿ＯＵＴ２を伝達せず、「０」に固定された信号を出力する。
【０１６１】
ＯＲ回路ＯＲ３５１は、一方の入力端子にＡＮＤ回路ＡＮＤ３５５の出力信号が入力され、他方の入力端子にＡＮＤ回路ＡＮＤ３５６の出力信号が入力される。そして、和演算した演算結果を出力信号として、マルチプレクサＭＵＸ３５４の他方の入力端子へ出力する。
【０１６２】
マルチプレクサＭＵＸ３５４は、一方の入力端子にマルチプレクサＭＵＸ３５３の出力信号が入力され、他方の入力端子にＯＲ回路ＯＲ３５１の出力信号が入力される。そして、ＴＡＰ＿ＳＷ２に応じて、一方もしくは他方の入力端子に入力される信号のどちらかを選択して、ＴＤＯ＿ＩＮ２として子ＴＡＰ制御部１２０へ出力する。例えば、ＴＡＰ＿ＳＷ２が「０」の場合、マルチプレクサＭＵＸ３５３の出力信号を選択して、出力し、ＴＡＰ＿ＳＷ２が「１」の場合、ＯＲ回路ＯＲ３５１の出力信号を選択して、出力する。
【０１６３】
なお、子ＴＡＰ制御部１２０と孫ＴＡＰ制御部３２０、３３０との関係は、実施の形態１の親ＴＡＰ制御部１１０と子ＴＡＰ制御部１２０、１３０と同様であり、動作等も同様である。このため、ここでの動作の説明等は省略する。
【０１６４】
以上のように、実施の形態３の半導体集積回路３００は、子ＴＡＰ制御部１２０が親ＴＡＰ制御部１１０と同様の構成を持つことで、実施の形態１の半導体集積回路１００に対して、階層化を深めた構成とすることが可能となる。なお、本例では、子ＴＡＰ制御部１２０が制御する階層を図４と同様の回路構成としたが、図６に示す実施の形態２の回路構成と同様にしてもよい。
【０１６５】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態３の孫ＴＡＰ制御部３２０、３３０を親ＴＡＰ制御部１１０と同様の構成を持つことで更に階層を深めることも可能である。なお、この場合、実施の形態１、３で用意した、第２、第５の制御信号の値をそれぞれ個別に「０」とする別のインストラクションが必要となる。
【符号の説明】
【０１６６】
１００、２００、３００  半導体集積回路
１１０  親ＴＡＰ制御部
１２０、１３０  子ＴＡＰ制御部
３２０、３３０  孫ＴＡＰ制御部
１１１、１２１、１３１、３２１、３３１  データレジスタ
１１３  子選択レジスタ
１１４  親設定レジスタ
１１５  インストラクション制御回路
１１６  ＴＡＰコントローラ
１１７  インストラクションレジスタ
１１８  インストラクションデコーダ
ＡＮＤ１１１〜ＡＮＤ１１６、ＡＮＤ１５１〜ＡＮＤ１５６、ＡＮＤ３５１〜ＡＮＤ３５６  ＡＮＤ回路
ＯＲ１１１、ＯＲ１５１、ＯＲ３５１  ＯＲ回路
ＭＵＸ１１１、ＭＵＸ１１２、ＭＵＸ１５１〜ＭＵＸ１５４、ＭＵＸ３５１〜ＭＵＸ３５４  マルチプレクサ
【図１】
2011252798.tif 000003
【図２】
2011252798.tif 000004
【図３】
2011252798.tif 000005
【図４】
2011252798.tif 000006
【図５】
2011252798.tif 000007
【図６】
2011252798.tif 000008
【図７】
2011252798.tif 000009
【図８】
2011252798.tif 000010
【図９】
2011252798.tif 000011