(57)【要約】【課題】本発明の課題は、外部端子を増やさずに複数のＴＡＰコントローラを切り換えられるＴＡＰコントローラ装置を提供することを目的とする。【解決手段】上記課題は、回路ブロックの試験を行う制御装置において、  前記試験に応じたテスト信号が入力される親の制御部と、  前記テスト信号が入力される複数の子の制御部と、  入出力端子がチェイン状に接続され、前記親の制御部と前記複数の子の制御部とのいずれか１つの動作を有効又は無効にするためのイネーブル信号を出力する複数のラッチ回路と、  前記試験をリセットするための第一テストリセット信号と、前記イネーブル信号によって動作が有効となった特定の子の制御部を無効にするための外部端子から入力される第二テストリセット信号との論理積をとった信号を、前記複数の子の制御部へ供給する複数の子リセット回路部とを有することにより達成される。【選択図】図２
2009128109.tif 000002
【特許請求の範囲】
【請求項１】
回路ブロックの試験を行う制御装置において、
前記試験に応じたテスト信号が入力される親の制御部と、
前記テスト信号が入力される複数の子の制御部と、
入出力端子がチェイン状に接続され、前記親の制御部と前記複数の子の制御部とのいずれか１つの動作を有効又は無効にするためのイネーブル信号を出力する複数のラッチ回路と、
前記試験をリセットするための第一テストリセット信号と、前記イネーブル信号によって動作が有効となった特定の子の制御部を無効にするための外部端子から入力される第二テストリセット信号との論理積をとった信号を、前記複数の子の制御部へ供給する複数の子リセット回路部とを有することを特徴とする制御装置。
【請求項２】
前記各子リセット回路部は、前記イネーブル信号と前記第二テストリセット信号との論理積をとった信号を新たに第二テストリセット信号とし、更に前記第二テストリセット信号と前記第一テストリセット信号との論理積をとることを特徴とする請求項１記載の制御装置。
【請求項３】
前記第二テストリセット信号が入力される外部端子はテスト以外で使用される端子を共有して利用することを特徴とする請求項１又は２記載の制御装置。
【請求項４】
前記第一テストリセット信号はリセット用外部端子から入力されることを特徴とする請求項１乃至３のいずれか一項記載の制御装置。
【請求項５】
回路ブロックの試験を行う複数の制御装置の制御方法であって、
前記制御装置における親の制御部と、前記制御装置における前記複数の子の制御部とのいずれか１つの動作を有効又は無効にするためのイネーブル信号を出力し、
前記試験をリセットするための第一テストリセット信号と、前記イネーブル信号によって動作が有効となった特定の子の制御部を無効にするための外部端子から入力される第二テストリセット信号との論理積をとった信号を、前記複数の子の制御部へ供給することを特徴とする制御方法。
【請求項６】
前記イネーブル信号と前記第二テストリセット信号との論理積をとった信号を新たに第二テストリセット信号とし、更に前記第二テストリセット信号と前記第一テストリセット信号との論理積をとった信号が前記複数の子のＴＡＰコントローラへ供給することを特徴とする請求項５記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路ブロックの試験に用いられる複数のＴＡＰコントローラからなるＴＡＰコントローラ装置及びその制御方法に関する。
【背景技術】
【０００２】
半導体集積回路の設計では、階層単位、機能単位などで複数のブロックに分けて設計が行われる。半導体集積回路の動作試験は試験用コントローラを用いて回路ブロック単位で行われる。
【０００３】
特許文献１には、回路ボード試験システムにおいて、境界走査マスタ仮想機械が、試験・診断ホストプロセッサから出力されるコマンドに従って複数の回路ボードに対して試験プログラムを実行させることが記載されている。
【０００４】
特許文献２には、マルチプロセッサシステムにおいて、２個のＴＡＰコントローラを切り換えて２個のＣＰＵのデバッグを行うことが記載されている。
【０００５】
特許文献３には、テストアクセスポートを有する最上位レベル試験制御装置とその最上位レベル試験制御装置と接続される複数の下位レベル試験制御回路とを備える集積回路において、回路ブロックの試験動作を下位レベルから上位レベルまたはその反対に行うことが記載されている。
【特許文献１】特開平７−１８１２３１号公報
【特許文献２】特開２００４−１６４３６７号公報
【特許文献３】特表２００４−５００７１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、半導体集積回路の動作試験では、回路を複数のブロックに分け、各ブロック単位の試験が複数のＴＡＰ（Test Access Port）コントローラを用いて行われる。ＴＡＰコントローラには外部からテストデータ、テストクロック信号等を供給するためのＴＡＰ端子（外部端子）が必要となるが、そのＴＡＰ端子はテスト専用端子となるのでＴＡＰ端子の数を増やすことは望ましくない。
【０００７】
そのため、従来、以下の２つの方法が採用されていた。
（１）上位のＴＡＰコントローラと下位のＴＡＰコントローラを設け、外部端子から上位のＴＡＰコントローラに所定のインストラクションを与え、その上位のＴＡＰコントローラから下位のＴＡＰコントローラにインストラクションを与えて各ブロックのテストを行う。
（２）複数のＴＡＰコントローラのテストデータ端子、テストクロック端子等をセレクタを介して外部端子に接続し、セレクタにより選択したＴＡＰコントローラにブロックの試験を行わせる。
【０００８】
しかしながら上記（１）の方法は、下位のＴＡＰコントローラに上位のＴＡＰコントローラから与えられるインストラクションを解釈する機能が必要となるので、下位のＴＡＰコントローラの回路規模が大きくなるという問題点があった、
また、上記（２）の方法は、セレクタにどのＴＡＰコントローラを選択させるかを切り換える制御信号を供給するための外部端子が必要となる。従って、ＴＡＰコントローラの数が増えると、外部端子の数もそれに応じて増やす必要があり、半導体集積回路を小型化する上で問題となる。
【０００９】
本発明の課題は、外部端子を増やさずに複数のＴＡＰコントローラを切り換えられるようにすることである。
【課題を解決するための手段】
【００１０】
本発明は、回路ブロックの試験を行う制御装置において、前記試験に応じたテスト信号が入力される親の制御部と、前記テスト信号が入力される複数の子の制御部と、入出力端子がチェイン状に接続され、前記親の制御部と前記複数の子の制御部とのいずれか１つの動作を有効又は無効にするためのイネーブル信号を出力する複数のラッチ回路と、前記試験をリセットするための第一テストリセット信号と、前記イネーブル信号によって動作が有効となった特定の子の制御部を無効にするための外部端子から入力される第二テストリセット信号との論理積をとった信号を、前記複数の子の制御部へ供給する複数の子リセット回路部とを有するように構成される。
【００１１】
このような制御装置では、親の制御部が複数の子の制御部の内の特定の子の制御部の動作を有効にして、回路ブロックのテストに用いる制御部を切り換えることができる。これにより、制御部を切り換えるための切り換え信号を入力する外部端子が不要となる。また、この特定の子の制御部のみを無効とすることができる。
【発明の効果】
【００１２】
本発明によれば、外部端子を増やさずに複数の制御部（例えばＴＡＰコントローラ）を切り換えて回路ブロックの試験を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１４】
図１は、本発明の一実施例に係るＴＡＰコントローラ装置の原理構成を示す図である。図１において、ＴＡＰコントローラ装置１１は、複数のＴＡＰコントローラ１２及び１３−１から１３−ｎからなり、バイポーラトランジスタ又はＭＯＳ（Metal Oxide Semiconductor）トランジスタ等からなる半導体集積回路（ＬＳＩ）上に形成される。ＴＡＰコントローラ１２及び１３−１から１３−ｎは、半導体集積回路の回路ブロックのテストを行うためのものである。
【００１５】
ＴＡＰコントローラ装置１１は、親のＴＡＰコントローラ１２と、複数の子のＴＡＰコントローラ１３−１から１３−ｎと、子のＴＡＰコントローラ１３−１から１３−ｎを有効又は無効にするイネーブル用ＦＦ（フリップフロップ）１５−１から１５−ｎと、親のＴＡＰコントローラ１２を有効又は無効にするイネーブル用ＦＦ（フリップフロップ）１７と、子のＴＡＰコントローラ１３−１から１３−ｎの出力と入力の一方を選択するセレクタ１８−１から１８−ｎと、親のＴＡＰコントローラ１２の出力とセレクタ１８−ｎの出力の一方を選択してテストデータ出力端子ＴＤＯに出力するセレクタ２０等から構成される。
【００１６】
イネーブル用ＦＦ１５−１から１５−ｎとイネーブル用ＦＦ１７とは、順にそれぞれ出力端子と入力端子がチェイン状に接続される構成とする。
【００１７】
ＴＡＰコントローラ装置１１が実装される半導体集積回路には、回路ブロックのテストに使用されるテスト信号を入出力するための外部端子（ＴＡＰ端子）が設けられており、各ＴＡＰコントローラ１２、１３−１から１３−ｎは、バウンダリスキャンで使用されるテストデータ入力信号ＴＤＩ（Test Data In)、テストクロック信号ＴＣＫ（Test Clock)、テストモード選択信号ＴＭＳ（Test Mode Select)、テストリセット信号ＴＲＳＴ(Test ReSeT)の入力用の４端子と、テストデータ出力信号ＴＤＯ（Test Data Output）の出力用の１端子の計５端子が備えられている。以下、この５端子をＴＡＰ５端子という。ここでは、原理説明を簡潔にするため、入力用の４端子のうちテストデータ入力信号ＴＤＩとテストデータ出力信号ＴＤＯの２端子を示す。
【００１８】
どの子のＴＡＰコントローラをイネーブルにするかを指定するコマンドをテストデータ入力信号ＴＤＩとして外部から親のＴＡＰコントローラ１２に入力し、さらに特定の子のＴＡＰコントローラをイネーブルにするためのテストデータ入力信号ＴＤＩを入力する。親のＴＡＰコントローラ１２は、外部から与えられるコマンドを解析し、さらにテストデータ入力信号ＴＤＩに基づいて特定の子のＴＡＰコントローラをイネーブルにするイネーブル信号ＦＦ用Scan Chain信号ＳＣを子のＴＡＰコントローラ１３−１のイネーブル用ＦＦ１５−１へと出力する。
【００１９】
親のＴＡＰコントローラ１２は、イネーブル信号ＦＦ用Scan Chain信号ＳＣとして特定のタイミングでハイレベルの信号を出力し、そのハイレベルの信号をクロック信号に同期したタイミングで各イネーブル用ＦＦ１５−１から１５−ｎを順にシフトさせる。そして、特定のイネーブル用ＦＦの出力をハイレベルに設定して特定の子のＴＡＰコントローラの動作を有効にする。さらに、最終段のイネーブル用ＦＦ１７の出力をハイレベルにして親のＴＡＰコントローラ１２を無効にする。これにより、任意の子のＴＡＰコントローラをイネーブルにして所望の回路ブロックのテストを行うことができる。
【００２０】
イネーブル用ＦＦ１５−１からは子のＴＡＰコントローラ１３−１のＡＮＤゲート１６−１とセレクタ１８−１とにイネーブルＦＦ信号ｅｆ１が供給され、イネーブル用ＦＦ１５−２からは子のＴＡＰコントローラ１３−２のＡＮＤゲート１６−２とセレクタ１８−２とにイネーブルＦＦ信号ｅｆ２が供給され、・・・、イネーブル用ＦＦ１５−ｎからは子のＴＡＰコントローラ１３−ｎのＡＮＤゲート１６−ｎとセレクタ１８−ｎとにイネーブルＦＦ信号ｅｆｎが供給される。子のＴＡＰコントローラ１３−１から１３−ｎに対しては、対応するイネーブルＦＦ信号ｅｆ１からｅｆｎが「１」で有効となる。
【００２１】
イネーブル用ＦＦ１７からは親のＴＡＰコントローラ１２とテストデータ出力信号ＴＤＯを出力するセレクタ２０とにイネーブルＦＦ信号ｅｆ０が供給され、親又は選択された子からのＴＤＯが出力される。親のＴＡＰコントローラ１２に対しては、イネーブルＦＦ信号ｅｆ０が「０」で有効となる。
【００２２】
基本の実施手順を概説する。先ず、親のＴＡＰコントローラ１２へＴＡＰコントローラ装置１１のＴＤＩの端子から所定のインストラクションを設定する。
【００２３】
次に、ＴＤＩから試験したい子のＴＡＰコントローラ１３−１から１３−ｎの１つを識別するＩＤが入力されると、親のＴＡＰコントローラ１２は、受信したＴＤＩからのデータをデコードしてイネーブル信号ＦＦ用Scan Chain信号ＳＣを用いて、子のＴＡＰコントローラ１３−１から１３−ｎの各イネーブルＦＦ信号ｅｆ１からｅｆｎをシフトで設定する。この場合、上述したように親のＴＡＰコントローラ１２に供給されるイネーブルＦＦ信号ｅｆ０が「０」で有効となり、子のＴＡＰコントローラ１３−１から１３−ｎに対しては、対応するイネーブルＦＦ信号ｅｆ１からｅｆｎが「１」で有効となる。
【００２４】
イネーブル信号ＦＦ用Scan Chain信号ＳＣの最終段となるイネーブル用ＦＦ１７に特定の値が設定されると親のＴＡＰコントローラ１２自信が無効化される。この場合、イネーブルＦＦ信号ｅｆ０が「１」で親のＴＡＰコントローラ１２に供給され、クロック信号ＥＦＣＫが供給されず状態固定となる。
【００２５】
ＩＤで指定された子のＴＡＰコントローラ１３−１から１３−ｎのうち１つの５端子が有効となり試験が行われる。
【００２６】
その後、ＴＡＰコントローラ装置１１全体がリセット（テストリセット信号ＴＲＳＴ入力）されると、イネーブル信号ＦＦ用Scan Chain信号ＳＣの最終段のイネーブル用ＦＦ１７がリセットされることによって、親のＴＡＰコントローラ１２が復帰し、通常の状態となる。
【００２７】
このような基本動作によって、５端子のみで複数のＴＡＰコントローラ１２及び１３−１から１３−ｎを共有でき、かつ、子のＴＡＰコントローラ１３−１から１３−ｎには特別な構成を必要としないため、試験時にはＴＡＰコントローラ装置１１の外部端子のＴＡＰ５端子が、有効となった子のＴＡＰコントローラに直結している状態にできる。
【００２８】
次に、ＴＡＰコントローラ装置１１の構成について詳述する。以下、子のＴＡＰコントローラ１３−１及び１３−２が備えられる構成で説明するが、３以上の子のＴＡＰコントローラが備えられる場合であっても同様に構成できる。上述した基本の実施手順では、ＴＡＰコントローラ装置１１全体をリセットする手順で説明したが、以下に詳述される構成及び手順によって、ＴＡＰコントローラ１２及び１３−１から１３−ｎのうち所定の１つをリセットすることが可能となる。
【００２９】
図２は、本発明の一実施例に係るＴＡＰコントローラ装置の図１に示す原理構成に基づく回路構成の一例を示す図である。図２において、ＴＡＰコントローラ装置１１は、半導体集積回路上に形成され、図１に示す原理構成に基づいて構成される
ＴＡＰコントローラ装置１１は、ＯＲ回路１０と、親のＴＡＰコントローラ１２と、子のＴＡＰコントローラ１３−１及び１３−２と、子のＴＡＰコントローラ１３−１及び１３−２の出力と入力の一方を選択するセレクタ１８−１及び１８−２と、親のＴＡＰコントローラ１２の出力とセレクタ１８−２の出力の一方を選択してテストデータ出力端子ＴＤＯに出力するセレクタ２０と、ＡＮＤゲート３１ａから３１ｄと、ＡＮＤゲート３２ａから３２ｄと、ＡＮＤゲート４１及び４２等から構成される。
【００３０】
ＴＡＰコントローラ装置１１が実装される半導体集積回路には、上述したテストデータ入力信号ＴＤＩ、テストクロック信号ＴＣＫ、テストモード選択信号ＴＭＳ、テストリセット信号ＴＲＳＴの外部入力４端子とテストデータ出力信号ＴＤＯの外部出力端子とのＴＡＰ５端子の他に、子のＴＡＰコントローラをリセットするための子のリセット信号ＣＴＲＳＴの入力端子とが外部入力端子として備えられる。子のＴＡＰコントローラをリセットするための外部入力端子は、専用に備える代わりに、既に備えられているデータ入力可能であってテストに使用されない端子を共有して利用してもよい。また、ＴＡＰコントローラ装置１１に備えられる各ＴＡＰコントローラ１３−１及び１３−２にはこれらＴＡＰ５端子のみが備えられ、それ以外の端子を必要としない。
【００３１】
親のＴＡＰコントローラ１２の入力端子は、それらの外部入力４端子と接続されており、テストデータ入力信号ＴＤＩと、テストクロック信号ＴＣＫと、テストモード選択信号ＴＭＳと、テストリセット信号ＴＲＳＴが入力する。ただし、テストクロック信号ＴＣＫの外部入力端子と親のＴＡＰコントローラ１２のテストクロック信号ＴＣＫの入力端子との間にはＯＲ回路１０が備えられる。ＯＲ回路１０が備えることによって、親のＴＡＰコントローラ１２は、子のＴＡＰコントローラ１３−１及び１３−２の夫々のイネーブル用ＦＦ１５−１及び１５−２、及び自信のＦＦ１７へ供給するイネーブル信号ＦＦ用クロック信号（ＥＦＣＫ）を容易に制御することができる。詳細は後述される。
【００３２】
イネーブル用ＦＦ１５−１及び１５−２とイネーブル用ＦＦ１７とには、それぞれ出力端子と入力端子がチェイン状に接続される。イネーブル用ＦＦ１５−１のデータ入力端子Ｄには、親のＴＡＰコントローラ１２から出力されるイネーブル信号ＦＦ用Scan Chain信号ＳＣが入力する。各イネーブル用ＦＦ１５−１、１５−２、１７のクロック端子ＣＫには、親のＴＡＰコントローラ１２から出力されるイネーブル信号ＦＦ用クロック信号（ＥＦＣＫ）が入力し、リセット端子Ｒにはテストリセット信号ＴＲＳＴが入力する。
【００３３】
各イネーブル用ＦＦ１５−１及び１５−２は２個の出力端子Ｑ１及びＱ２を有しているが、この２個の出力端子Ｑ１及びＱ２には同じ信号が出力される。各イネーブル用ＦＦ１５−１及び１５−２に２系統の出力信号線を設けることで、出力側の負荷に応じて信号線毎にバッファを挿入することができる。
【００３４】
イネーブル用ＦＦ１５−２のデータ入力端子Ｄには、チェイン接続された前段のイネーブル用ＦＦ１５−１の出力信号が入力し、クロック端子ＣＫには、親のＴＡＰコントローラ１２から出力されるイネーブル信号ＦＦ用クロック信号（ＥＦＣＫ）が入力する。
【００３５】
親のＴＡＰコントローラ１２に入力するテストデータ入力信号ＴＤＩ、テストクロック信号ＴＣＫ、テストモード選択信号ＴＭＳ、テストリセット信号ＴＲＳＴは、それぞれＡＮＤゲート３１ａから３１ｄの一方の入力端子に入力する。
【００３６】
ＡＮＤゲート３１ａから３１ｃの他方の入力端子には、イネーブル用ＦＦ１５−１のイネーブルＦＦ信号ｅｆ１が入力し、ＡＮＤゲート３１ａから３１ｃの出力は、子のＴＡＰコントローラ１３−１の３個の入力端子ＩＮ１１からＩＮ１３に入力する。従って、イネーブル用ＦＦ１５−１から出力されるイネーブルＦＦ信号ｅｆ１が「１」のときには、テストデータ入力信号ＴＤＩと、テストクロック信号ＴＣＫと、テストモード選択信号ＴＭＳとが子のＴＡＰコントローラ１３−１に入力される。
【００３７】
一方、イネーブル用ＦＦ１５−１のイネーブルＦＦ信号ｅｆ１はＡＮＤゲート４１の一方の入力端子にも入力される。ＡＮＤゲート４１の他方の入力端子には、子のＴＡＰコントローラ用のリセット信号ＣＴＲＳＴを入力する。ＡＮＤゲート４１から、イネーブルＦＦ信号ｅｆ１が「１」のときにリセット信号ＣＴＲＳＴがＡＮＤゲート３１ｄの他方の入力端子に入力する。ＡＮＤゲート３１ｄの出力は、子のＴＡＰコントローラ１３−１の４番目の入力端子ＩＮ１４（以下においてリセット端子ＩＮ１４として参照される）に入力する。従って、イネーブル用ＦＦ１５−１から出力されるイネーブルＦＦ信号ｅｆ１が「１」、かつ、リセット信号ＣＴＲＳＴが「０」の場合にリセットの対象となり、子のＴＡＰコントローラ１３−１のみをリセットすることが可能となる。
【００３８】
子のＴＡＰコントローラ１３−１の出力端子ＯＵＴ１０からの出力信号は、セレクタ１８−１の一方の入力端子（１側入力）に入力している。セレクタ１８−１の他方の入力端子（０側入力）にはテストデータ入力信号ＴＤＩが入力している。
【００３９】
セレクタ１８−１の制御端子には、セレクタ１８−１の選択動作を制御する制御信号としてイネーブルＦＦ信号ｅｆ１がイネーブル用ＦＦ１５−１から入力している。セレクタ１８−１は、制御信号が「０」のとき、０側入力を選択して出力し、制御信号が「１」のとき、つまりイネーブル用ＦＦ１５−１から出力されるイネーブルＦＦ信号ｅｆ１が「１」のとき、１側入力の子のＴＡＰコントローラ１３−１の出力信号を選択してＡＮＤゲート３２ａに出力する。
【００４０】
セレクタ１８−１からＡＮＤゲート３２ａには、外部入力端子から入力されたテストデータ入力信号ＴＤＩ自身又は子のＴＡＰコントローラ１３−１から出力されるテストデータ出力信号ＴＤＯの何れかが入力される。
【００４１】
ＡＮＤゲート３２ａの入力端子には上記のセレクタ１８−１の出力信号が入力し、ＡＮＤゲート３２ｂの入力端子にはテストクロック信号ＴＣＫが、ＡＮＤゲート３２ｃの入力端子にはテストモード選択信号ＴＭＳが、ＡＮＤゲート３２ｄの入力端子にはテストリセット信号ＴＲＳＴが入力する。
【００４２】
ＡＮＤゲート３２ａから３２ｃの他方の入力端子には、イネーブル用ＦＦ１５−２のイネーブルＦＦ信号ｅｆ２が入力し、ＡＮＤゲート３２ａから３２ｃの出力は、子のＴＡＰコントローラ１３−２の３個の入力端子ＩＮ２１からＩＮ２３に入力する。従って、イネーブル用ＦＦ１５−２から出力されるイネーブルＦＦ信号ｅｆ２が「１」のときには、テストデータ入力信号ＴＤＩと、テストクロック信号ＴＣＫと、テストモード選択信号ＴＭＳとが子のＴＡＰコントローラ１３−２に入力される。
【００４３】
一方、イネーブル用ＦＦ１５−２のイネーブルＦＦ信号ｅｆ２はＡＮＤゲート４２の一方の入力端子にも入力される。ＡＮＤゲート４２の他方の入力端子には、子のＴＡＰコントローラ用のリセット信号ＣＴＲＳＴを入力する。ＡＮＤゲート４２から、イネーブルＦＦ信号ｅｆ２が「１」のときに子のリセット信号ＣＴＲＳＴがＡＮＤゲート３２ｄの他方の入力端子に入力する。ＡＮＤゲート３２ｄの出力は、子のＴＡＰコントローラ１３−２の４番目の入力端子ＩＮ２４（以下においてリセット端子ＩＮ２４として参照される）に入力する。従って、イネーブル用ＦＦ１５−２から出力されるイネーブルＦＦ信号ｅｆ２が「１」、かつ、リセット信号ＣＴＲＳＴが「０」の場合にリセットの対象となり、子のＴＡＰコントローラ１３−２のみをリセットすることが可能となる。
【００４４】
子のＴＡＰコントローラ１３−２の出力信号は、セレクタ１８−２の一方の入力端子（１側入力）に入力している。セレクタ１８−２の他方の入力端子（０側入力）にはテストデータ入力信号ＴＤＩが入力している。
【００４５】
セレクタ１８−２の制御端子には、セレクタ１８−２の選択動作を制御する制御信号としてイネーブルＦＦ信号ｅｆ２がイネーブル用ＦＦ１５−２から入力している。セレクタ１８−２は、制御信号が「０」のとき、０側入力を選択して出力し、制御信号が「１」のとき、つまりイネーブル用ＦＦ１５−２から出力されるイネーブルＦＦ信号ｅｆ２が「１」のとき、１側入力の子のＴＡＰコントローラ１３−２の出力信号を選択してセレクタ２０に出力する。
【００４６】
セレクタ１８−２からセレクタ２０には、外部入力端子から入力されたテストデータ入力信号ＴＤＩ自身、子のＴＡＰコントローラ１３−１から出力されるテストデータ出力信号ＴＤＯ、或いは、子のＴＡＰコントローラ１３−２から出力されるテストデータ出力信号ＴＤＯの何れかが１側入力に入力される。
【００４７】
イネーブル用ＦＦ１７のデータ入力端子Ｄには、イネーブル用ＦＦ１５−２の出力信号が入力し、クロック端子ＣＫには、親のＴＡＰコントローラ１２から出力されるイネーブル信号ＦＦ用クロック信号（ＥＦＣＫ）が入力する。イネーブル用ＦＦ１７の出力端子Ｑからの出力信号は、セレクタ２０の制御端子と親のＴＡＰコントローラ１２のＯＲゲート１０に入力している。
【００４８】
親のＴＡＰコントローラ１２は、イネーブル用ＦＦ１７の出力信号が「０」のときイネーブルとなり、「１」のときテストクロック信号ＴＣＫが「０」になり状態が固定される。イネーブル用ＦＦ１７は、テストリセット信号ＴＲＳＴがイネーブルとなったとき出力信号が「０」となり、このとき親のＴＡＰコントローラ１２が有効となる。
【００４９】
セレクタ２０の０側入力には親のＴＡＰコントローラ１２の出力端子ＯＵＴからの出力信号が入力し、１側入力には、セレクタ１８−２の出力信号が入力する。セレクタ２０の選択動作を制御する制御端子にはイネーブル用ＦＦ１７の出力端子Ｑからの出力信号が供給されている。
【００５０】
イネーブル用ＦＦ１５−１、１５−２、１７の出力状態は、親のＴＡＰコントローラ１２から出力されるイネーブル信号ＦＦ用Scan Chain信号ＳＣと、イネーブル信号ＦＦ用クロック信号（ＥＦＣＫ）により決定される。すなわち、イネーブル信号ＦＦ用Scan Chain信号ＳＣとして特定のタイミングでハイレベルの信号を出力し、そのハイレベルの信号をクロック信号（ＥＦＣＫ）に同期したタイミングで各イネーブル用ＦＦ１５−１、１５−２及び１７を順にシフトさせる。そして、特定のイネーブル用ＦＦの出力をハイレベルに設定して特定の子のＴＡＰコントローラ１３−１又は１３−２の動作を有効にする。さらに、最終段のイネーブル用ＦＦ１７の出力をハイレベルにして親のＴＡＰコントローラ１２を無効にする。これにより、任意の子のＴＡＰコントローラ１３−１又は１３−２をイネーブルにして所望の回路ブロックのテストを行うことができる。
【００５１】
また、例えば、子のＴＡＰコントローラ１３−１が有効なときには、セレクタ１８−１は１側入力の子のＴＡＰコントローラ１３−１から出力されるテストデータ入力信号ＴＤＩを選択してセレクタ１８−２に出力する。セレクタ１８−２は、子のＴＡＰコントローラ１３−１が無効のとき、０側入力のセレクタ１８−１の出力信号を選択してセレクタ２０に出力する。セレクタ２０は、このときイネーブル用ＦＦ１７の出力信号が「１」となっているので、１側入力、つまりセレクタ１８−２の出力信号を選択してテストデータ出力信号ＴＤＯを外部出力端子に出力する。
【００５２】
従って、子のＴＡＰコントローラ１３−１が有効なときには、子のＴＡＰコントローラ１３−１から出力されるテストデータ入力信号ＴＤＩが、セレクタ１８−１、１８−２及び２０を介してテストデータ出力信号ＴＤＯとして出力され、回路ブロックのテストが行われる。このように複数の子のＴＡＰコントローラ１３−１、１３−２と親のＴＡＰコントローラ１２の出力をセレクタ１８−１、１８−２及び２０で選択して出力することでテストデータをテストデータ出力信号ＴＤＯとして外部出力端子に出力する回路の構成を簡素に実現できる。
【００５３】
また、子のリセット信号ＣＴＲＳＴ「０」が入力された場合であって子のＴＡＰコントローラ１３−１が有効なときには、ＡＮＤゲート４１からは「０」が出力される。ＴＡＰコントローラ１３−１及び１３−２のいずれか１個が有効である場合、テストリセット信号ＴＲＳＴは「１」を示すが、テストリセット信号ＴＲＳＴが入力されるＡＮＤゲート３１ｄからはＡＮＤゲート４１からの「０」の出力信号によって「０」が出力され、動作中の子のＴＡＰコントローラ１３−１のみがリセットされる。一方、子のリセット信号ＣＴＲＳＴが「１」で子のＴＡＰコントローラ１３−１が有効なときには、子のＴＡＰコントローラ１３−１の動作状態を保持させる。
【００５４】
同様に、子のリセット信号ＣＴＲＳＴ「０」が入力された場合であって子のＴＡＰコントローラ１３−２が有効なときには、ＡＮＤゲート４２からは「０」が出力される。そして、テストリセット信号ＴＲＳＴが入力されるＡＮＤゲート３２ｄからはＡＮＤゲート４２からの「０」の出力信号によって「０」が出力され、動作中の子のＴＡＰコントローラ１３−２のみがリセットされる。一方、子のリセット信号ＣＴＲＳＴが「１」で子のＴＡＰコントローラ１３−２が有効なときには、子のＴＡＰコントローラ１３−２の動作状態を保持させる。
【００５５】
有効な状態の子のＴＡＰコントローラのみをリセット可能とし、また、子のリセット信号ＣＴＲＳＴを「０」から「１」への切り換えによって、リセットされた子のＴＡＰコントローラを有効とすることができる。
【００５６】
リセット信号ＴＲＳＴ「０」の入力によってＴＡＰコントローラ装置１１全体がリセットされる。従って、イネーブル信号ＦＦ用Scan Chain信号ＳＣが供給される最終段のイネーブル用ＦＦ１７がリセットされることによって、親のＴＡＰコントローラ１２が復帰し、通常の状態となる。
【００５７】
上述したように、子のＴＡＰコントローラ１３−１及び１３−２はＴＡＰ５端子を備えるのみで、個々に有効又は無効に制御可能となる。また、子のリセット信号ＣＴＲＳＴと子のイネーブル信号との論理積、更に、その出力とリセット信号ＴＲＳＴとの論理積とによって、子のＴＡＰコントローラ１３−１及び１３−２を個々にリセットすることが可能となる。また、子のリセット信号ＣＴＲＳＴの端子は専用で備える必要がないため、テストで使用されない他の機能端子と共有することもできる。
【００５８】
次に、子のＴＡＰコントローラのみをリセット可能とする実施手順を状態遷移で説明する。図３は、ＴＡＰコントローラ装置における状態遷移を示す図である。ＴＡＰコントローラ装置１１は、図３に示すように状態１から状態５までの状態遷移を行い、状態毎に、主要な信号及び端子からの出力信号の状態を説明する。以下説明において、任意のローレベル又はハイレベル（「０」又は「１」）が「Ｘ」で示される。
【００５９】
図３において、リセット信号ＴＲＳＴ「０」の入力によって、親のＴＡＰコントローラ１２がリセットされると共に、各イネーブル用ＦＦ１５−１、１５−２、１７も同時にリセットされることにより各子のＴＡＰコントローラ１３−１及び１３−２が無効となる（状態１）。
【００６０】
状態１：通常の状態のうちリセット中の状態である。
【００６１】
リセット信号ＴＲＳＴ「０」の入力によって、状態１では、
・親のＴＡＰコントローラ１２へのイネーブルＦＦ信号ｅｆ０は、「Ｘ」から「０」へ変化し、
・子１のＴＡＰコントローラ１３−１へのイネーブルＦＦ信号ｅｆ１は、「Ｘ」から「０」へ変化し、
・子２のＴＡＰコントローラ１３−２へのイネーブルＦＦ信号ｅｆ２は、「Ｘ」から「０」へ変化し、
・各イネーブルＦＦ用信号クロックは、「Ｘ」で固定され、
・子のＴＡＰコントローラ１３−１及び１３−２への子のリセット信号ＣＴＲＳＴは、「Ｘ」で入力となる。
【００６２】
状態１にてリセット信号ＴＲＳＴ「１」が入力されると、親のＴＡＰコントローラ１２のみが有効となる（状態２）。親のＴＡＰコントローラ１２が有効であるが、各イネーブルＦＦ信号ｅｆ０からｅｆ２の「０」固定により子のＴＡＰコントローラ１３−１及び１３−２は無効な状態となる（状態２）。
【００６３】
状態２：通常の状態のうち親のＴＡＰコントローラ１２が処理中の状態である。
【００６４】
リセット信号ＴＲＳＴ「１」の入力によって、状態２では、
・親のＴＡＰコントローラ１２へのイネーブルＦＦ信号ｅｆ０は、「０」を出力し、
・子１のＴＡＰコントローラ１３−１へのイネーブルＦＦ信号ｅｆ１は、「０」を出力し、
・子２のＴＡＰコントローラ１３−２へのイネーブルＦＦ信号ｅｆ２は、「０」を出力し、
・各イネーブルＦＦ用信号クロックは、固定されたままであり、
・子のＴＡＰコントローラ１３−１及び１３−２への子のリセット信号ＣＴＲＳＴは、「Ｘ」で入力される。
【００６５】
親のＴＡＰコントローラ１２のみが有効な状態２にて、リセット信号ＴＲＳＴ「１」が入力された場合、状態１へと戻る。
【００６６】
一方、状態２にて子のＴＡＰコントローラ１３−１又は１３−２を有効にするためのインストラクションが入力されると、親のＴＡＰコントローラ１２は、イネーブル信号ＦＦ用クロックＥＦＣＫを出力して各イネーブル用ＦＦ１５−１、１５−２、１７へ供給する。イネーブル信号ＦＦ用クロックＥＦＣＫが供給された各イネーブル用ＦＦ１５−１、１５−２、１７は、ＩＤで指定される子のＴＡＰコントローラのみを有効とするためのシフトモードとなる（状態３）。
【００６７】
状態３：親のＴＡＰコントローラ１２は有効であり、各イネーブル用ＦＦ１５−１、１５−２、１７からイネーブルＦＦ信号ｅｆ１、ｅｆ２、ｅｆ０の送出が開始されシフトモードとなった状態である。この状態では、イネーブルＦＦ信号ｅｆ１、ｅｆ２、ｅｆ０が設定完了されていないため、全ての子のＴＡＰコントローラ１３−１及び１３−２は無効な状態である。
【００６８】
特定の子のＴＡＰコントローラを有効にするためのインストラクションの入力によって、状態３では、
・リセット信号ＴＲＳＴは「１」固定となり、
・親のＴＡＰコントローラ１２へのイネーブルＦＦ信号ｅｆ０、子１のＴＡＰコントローラ１３−１へのイネーブルＦＦ信号ｅｆ１、及び、子２のＴＡＰコントローラ１３−２へのイネーブルＦＦ信号ｅｆ２は、シフト中となり、
・各イネーブルＦＦ用信号クロックは、テストクロック信号ＴＣＫと連動するパルスＰを出力し、
・子のＴＡＰコントローラ１３−１及び１３−２への子のリセット信号ＣＴＲＳＴは、「Ｘ」で入力される。
【００６９】
状態３にてイネーブルＦＦ信号ｅｆ０、ｅｆ１、ｅｆ２が設定完了（シフトが完了）すると、親のＴＡＰコントローラ１２は無効の状態となり、ＩＤで指定された子のＴＡＰコントローラ１３−１又は１３−２のみが有効となる（状態４）。
【００７０】
状態４：親のＴＡＰコントローラ１２は無効であり、各イネーブルＦＦ信号ｅｆ０、ｅｆ１、ｅｆ２は固定されて、ＩＤで指定された子のＴＡＰコントローラ１３−１又は１３−２のみが有効となった状態である。
【００７１】
イネーブルＦＦ信号ｅｆ０、ｅｆ１、ｅｆ２によるシフトの完了に応じて、状態４では、
・リセット信号ＴＲＳＴは「１」固定となり、
・親のＴＡＰコントローラ１２へのイネーブルＦＦ信号ｅｆ０は、「１」を出力し、
・子１のＴＡＰコントローラ１３−１へのイネーブルＦＦ信号ｅｆ１は、「１」を出力し、
・子２のＴＡＰコントローラ１３−２へのイネーブルＦＦ信号ｅｆ２は、「０」を出力し、
・各イネーブルＦＦ用信号クロックは、「１」を出力し、
・子のＴＡＰコントローラ１３−１及び１３−２への子のリセット信号ＣＴＲＳＴは、「１」で入力される。
【００７２】
親のＴＡＰコントローラ１２が無効かつＩＤで指定された子のＴＡＰコントローラ１３−１又は１３−２が有効となり処理中となった状態４にて、リセット信号ＴＲＳＴ「０」が入力されると、状態１へと戻る。上述したように状態１から状態２へと遷移することによって、親のＴＡＰコントローラ１２のみが有効な状態とすることができる。
【００７３】
一方、状態４にて子のリセット信号ＣＴＲＳＴ「０」が入力されると、ＩＤで指定された子のＴＡＰコントローラ１３−１又は１３−２がリセットされる（状態５）。
【００７４】
状態５：親のＴＡＰコントローラ１２は無効であり、各イネーブルＦＦ信号ｅｆ０、ｅｆ１、ｅｆ２は固定されて、有効な子のＴＡＰコントローラ１３−１又は１３−２のみがリセットされた状態である。
【００７５】
イネーブルＦＦ信号ｅｆ０、ｅｆ１、ｅｆ２によるシフト完了後に有効な子のＴＡＰコントローラ１３−１又は１３−２のみがリセットされると、状態５では、
・リセット信号ＴＲＳＴは「１」固定となり、
・親のＴＡＰコントローラ１２へのイネーブルＦＦ信号ｅｆ０は、「１」を出力し、
・子１のＴＡＰコントローラ１３−１へのイネーブルＦＦ信号ｅｆ１は、「１」を出力し、
・子２のＴＡＰコントローラ１３−２へのイネーブルＦＦ信号ｅｆ２は、「０」を出力し、
・各イネーブルＦＦ用信号クロックは、「１」を出力し、
・子のＴＡＰコントローラ１３−１及び１３−２への子のリセット信号ＣＴＲＳＴは、「０」で入力される。
【００７６】
有効な子のＴＡＰコントローラ１３−１又は１３−２のみがリセットされた状態５にて、子のリセット信号ＣＴＲＳＴ「１」が入力されると、ＩＤで指定された子のＴＡＰコントローラ１３−１又は１３−２が有効となり状態４へと戻る。
【００７７】
また、この状態５にてリセット信号ＴＲＳＴ「０」が入力されることによって状態１へと戻り、親のＴＡＰコントローラ１２に係る通常の状態となる。
【００７８】
次に、図３で説明した状態遷移に応じた親及び子のＴＡＰコントローラの状態を図４から図１１で説明する。図４から図１１において、説明に必要な部分のみを示し他は省略される。
【００７９】
図４は、通常の状態でリセットされた親のＴＡＰコントローラの状態１を説明するための図である。図４において、リセット信号ＴＲＳＴが「０」で入力されると、親のＴＡＰコントローラ１２がリセットされると共に、イネーブル用ＦＦ１７もリセットされる。子のＴＡＰコントローラ１３−１及び１３−２と、そのイネーブル用ＦＦ１５−１及び１５−２も同時にリセットされる。ＴＡＰコントローラ装置１１が初期状態となる。
【００８０】
リセット信号ＴＲＳＴ「０」の入力によって親のＴＡＰコントローラ１２がリセットされるため、イネーブル用ＦＦ１７（及び１５−１、１５−２）に供給するイネーブル信号ＦＦ用クロックＥＦＣＫが固定となる。
【００８１】
また、イネーブル用ＦＦ１７では、親のＴＡＰコントローラ１２から供給されるイネーブル信号ＦＦ用クロックＥＦＣＫの値が、リセット信号ＴＲＳＴ「０」の入力によって現在値で固定となる。
【００８２】
一方、同時にイネーブル用ＦＦ１７もリセットされるため、親のＴＡＰコントローラ１２へのイネーブルＦＦ信号ｅｆ０が「０」へと変化しホールドされ、イネーブルＦＦ信号ｅｆ０とテストクロック信号ＴＣＫとを入力するＯＲゲート１０からは、テストクロック信号ＴＣＫがそのまま親のＴＡＰコントローラ１２へと提供される。
【００８３】
図５は、親のＴＡＰコントローラが有効で試験中の状態２を説明するための図である。図５において、リセット信号ＴＲＳＴが「１」で入力されると、親のＴＡＰコントローラ１２のみが有効となる。親のＴＡＰコントローラ１２による試験中の状態となる。
【００８４】
イネーブル信号ＦＦ用クロックＥＦＣＫは固定されたまま保持され、イネーブル用ＦＦ１７からは「０」のイネーブルＦＦ信号ｅｆ０が出力された状態であるので、図３４に示す状態１と同様に、ＯＲゲート１０からは、テストクロック信号ＴＣＫがそのまま親のＴＡＰコントローラ１２へと提供される。
【００８５】
図６は、子のＴＡＰコントローラを有効にするためのインストラクション入力後の親のＴＡＰコントローラの状態３を説明するための図である。図６において、リセット信号ＴＲＳＴが「１」固定で入力され、かつ、特定の子のＴＡＰコントローラ１３−１又は１３−２を有効にするためのインストラクションがテストデータ入力信号ＴＤＩから入力されると、親のＴＡＰコントローラ１２は、イネーブル信号ＦＦ用クロックＥＦＣＫを出力してイネーブル用ＦＦ１５−１、１５−２、１７に供給する。
【００８６】
イネーブル用ＦＦ１７に親のＴＡＰコントローラ１２から出力されたイネーブル信号ＦＦ用クロックＥＦＣＫが入力されるが、リセット信号ＴＲＳＴが「１」固定で入力されるため、イネーブルＦＦ信号ｅｆ０は「０」で出力される。イネーブル用ＦＦ１５−１、１５−２についても同様である。イネーブル用ＦＦ１５−１、１５−２、１７に信号を設定する準備が整い、シフト開始する。
【００８７】
図７は、特定の子のＴＡＰコントローラが有効のため親のＴＡＰコントローラが無効となる状態４を説明するための図である。図７において、特定の子のＴＡＰコントローラ１３−１又は１３−２が有効となり、イネーブルＦＦ信号ｅｆ０が「１」で出力されることにより、ＯＲゲート１０によって「１」が出力される状態となり、テストクロック信号ＴＣＫが親のＴＡＰコントローラ１２へ供給されなくなる。このＯＲゲート１０からの出力「１」に応じて、親のＴＡＰコントローラ１２は「１」のイネーブル信号ＦＦ用クロックＥＦＣＫを出力する状態になる。
【００８８】
親のＴＡＰコントローラ１２から「１」のイネーブル信号ＦＦ用クロックＥＦＣＫは供給されるイネーブル用ＦＦ１５−１、１５−２、１７では、現在値で固定される。イネーブル用１７から出力されるイネーブルＦＦ信号ｅｆ０は「１」で固定され、各子のイネーブル用ＦＦ１５−１又は１５−２では、有効で試験中の場合は「１」で固定され、無効な場合は「０」で固定される。
【００８９】
図８は、通常の状態でリセットされた子のＴＡＰコントローラの状態１を説明するための図である。図８中、子のＴＡＰコントローラ１３−１で説明するが、子のＴＡＰコントローラ１３−２についても同様である。図８において、リセット信号ＴＲＳＴ「０」の入力によって、イネーブル用ＦＦ１５−１がリセットされ、「０」のイネーブルＦＦ信号ｅｎ１が出力されるため、子のリセット信号ＣＴＲＳＴの値に関わらず、子のＴＡＰコントローラ１３−１は、常時リセットされている状態となる。
【００９０】
リセットされたイネーブル用ＦＦ１５−１は、「０」のイネーブルＦＦ信号ｅｎ１をＡＮＤゲート４１に出力する。ＡＮＤゲート４１での論理積によって、子のリセット信号ＣＴＲＳＴの値に関わらず「０」が出力され、かつ、ＡＮＤゲート３１ｄでのリセット信号ＴＲＳＴ「０」との論理積によって、子のＴＡＰコントローラ１３−１は、常時リセットされる。
【００９１】
また、イネーブル用ＦＦ１５−１がリセットされることにより、イネーブル信号ＦＦ用クロックＥＦＣＫが現在値で固定される。図４に示すように、親のＴＡＰコントローラ１２からイネーブル用ＦＦ１５−１に供給されるイネーブル信号ＦＦ用クロックＥＦＣＫは固定されている。
【００９２】
図９は、子のＴＡＰコントローラが有効で試験中の状態４を説明するための図である。図９において、リセット信号ＴＲＳＴが「１」固定で入力され、シフト完了後にイネーブルＦＦ信号ｅｆ１が「１」で出力されると、子のＴＡＰコントローラ１３−１は有効となり、子のリセット信号ＣＴＲＳＴが「１」で出力されている間は、試験中となる。
【００９３】
ＡＮＤゲート４１からイネーブルＦＦ信号ｅｆ１「１」と子のリセット信号ＣＴＲＳＴ「１」との論理積の結果「１」がＡＮＤゲート３１ｄへ出力され、その結果「１」とリセット信号ＴＲＳＴ「１」固定の入力との論理積の結果「１」が子のＴＡＰコントローラ１３−１へ出力されることにより、子のリセット信号ＣＴＲＳＴが「１」で出力されている間は、試験中となる。
【００９４】
この状態４では、子のリセット信号ＣＴＲＳＴを「０」で入力するのみで、子のＴＡＰコントローラ１３−１をリセットすることができる。
【００９５】
図１０は、有効な状態でリセットされた子のＴＡＰコントローラの状態５を説明するための図である。図１０において、リセット信号ＴＲＳＴが「１」固定で入力され、イネーブルＦＦ信号ｅｆ１が「１」で出力されている状態にて、子のリセット信号ＣＴＲＳＴが「０」で出力されると、子のＴＡＰコントローラ１３−１のみがリセットされ無効となる。
【００９６】
親のＴＡＰコントローラ１２は無効の状態であるので、状態５においても図７に示すようにイネーブル信号ＦＦ用クロックＥＦＣＫは「１」固定で出力され、子のＴＡＰコントローラ１３−１のイネーブル用ＦＦ１５−１に供給される。そのため、イネーブル用ＦＦ１５−１からはイネーブルＦＦ信号ｅｆ１が現在値で固定されて出力される。つまり、図９に示す状態４で子のＴＡＰコントローラ１３−１がリセットされると、イネーブルＦＦ信号ｅｆ１は「１」でＡＮＤゲート４１へ出力される。
【００９７】
子のリセット信号ＣＴＲＳＴ「０」の入力によって、ＡＮＤゲート４１からイネーブルＦＦ信号ｅｆ１「１」と子のリセット信号ＣＴＲＳＴ「０」との論理積の結果「０」がＡＮＤゲート３１ｄへ出力される。その結果「０」とリセット信号ＴＲＳＴ「１」固定の入力との論理積の結果「０」が子のＴＡＰコントローラ１３−１へ出力されることにより、子のリセット信号ＣＴＲＳＴ「０」が子のＴＡＰコントローラ１３−１にそのまま供給されて子のＴＡＰコントローラ１３−１のみがリセットされる。従って、特定の子のＴＡＰコントローラ１３−１のみをリセットすることができる。
【００９８】
図１１は、対象外の子のＴＡＰコントローラの状態４及び状態５を説明するための図である。図１１において、子のＴＡＰコントローラ１３−１が有効の場合、対象外の子のＴＡＰコントローラ１３−２は無効となる。リセット信号ＴＲＳＴが「１」固定で入力されるが、イネーブルＦＦ信号ｅｆ２では「０」が出力されているため、子のリセット信号ＣＴＲＳＴの値に関わらず、対象外の子のＴＡＰコントローラ１３−２は、無効な状態を維持する。
【００９９】
子のリセット信号ＣＴＲＳＴの値に関わらず、イネーブルＦＦ信号ｅｆ２「０」との論理積によりＡＮＤゲート４２から結果「０」がＡＮＤゲート３２ｄへ出力される。その結果「０」とリセット信号ＴＲＳＴ「１」固定の入力との論理積の結果「０」が子のＴＡＰコントローラ１３−２へ出力されることにより、子のＴＡＰコントローラ１３−２は、状態４及び状態５にて常時リセット状態となる。
【０１００】
次に、ＩＥＥＥ１１４９ではテストモード選択信号ＴＭＳをハイレベルで５クロック間保つとリセットを発生させることが規定されている。親のＴＡＰコントローラ１２がこのリセットを発生させる機能を実装していない場合に、親のＴＡＰコントローラ１２に代わって、リセットを発生させるリセット発生器を備えるようにしたＴＡＰコントローラ装置の構成について図１２で説明する。
【０１０１】
図１２は、リセット発生器を備えた構成例を示す図である。図１２中、説明に必要な構成部分のみを示す。図１２に示すＴＡＰコントローラ装置１１ａにおいて、ＮＯＴゲート９ａと、ＯＲゲート９ｂと、リセット発生回路８とが更に構成される。
【０１０２】
イネーブル用ＦＦ１７から出力されるイネーブルＦＦ信号ｅｆ０は、ＯＲゲート１０とＮＯＴゲート９ａとに入力される。ＮＯＴゲート９ａは、入力されたイネーブルＦＦ信号ｅｆ０を反転させてＯＲゲート９ｂへ出力する。
【０１０３】
テストクロック信号ＴＣＫとテストモード選択信号ＴＭＳとをファンアウトさせてリセット発生器８へと入力するように配線する。この場合、テストクロック信号ＴＣＫはＯＲゲート９ｂを介してリセット発生器８へと供給される。ＯＲゲート９ｂは、ＮＯＴゲート９ａによって反転されたイネーブルＦＦ信号ｅｆ０とテストモード選択信号ＴＭＳとの論理和による結果をリセット発生器８に出力する。
【０１０４】
親のＴＡＰコントローラ１２が無効な場合、「１」を示すイネーブルＦＦ信号ｅｆ０がＮＯＴゲート９ａで反転されることによって「０」で出力されるため、ＯＲゲート９ｂからテストクロック信号ＴＣＫがそのままリセット発生器８に供給される。一方、親のＴＡＰコントローラ１２が有効な場合、「０」を示すイネーブルＦＦ信号ｅｆ０がＮＯＴゲート９ａで反転されることによって「１」で出力されるため、ＯＲゲート９ｂからはテストクロック信号ＴＣＫが「１」固定でリセット発生器８に供給される。
【０１０５】
リセット発生器８は、テストクロック信号ＴＣＫをハイレベルでＮ回（Ｎ>５）クロック以上を保つとテストリセット信号ＴＲＳＴを発生させる。
【０１０６】
特定の子のＴＡＰコントローラ１３−１又は１３−２が有効（即ち、親のＴＡＰコントローラ１２が無効）な場合、親のＴＡＰコントローラ１２のイネーブルＦＦ信号ｅｆ０は「１」で出力され、ＯＲゲート１０を介してテストクロック信号ＴＣＫは「１」固定となって親のＴＡＰコントローラ１２に入力される。そのため親のＴＡＰコントローラ１２ではテストクロック信号ＴＣＫが停止した状態となる。
【０１０７】
従って、親のＴＡＰコントローラ１２が無効な状態でリセット発生器８がテストリセット信号ＴＲＳＴを発生させた場合、入力端子ＩＮ２からテストクロック信号ＴＣＫを得られないため、親のＴＡＰコントローラ１２自信がリセットされることはない。一方、入力端子ＩＮ４に入力されるテストリセット信号ＴＲＳＴは、親のＴＡＰコントローラ１２の出力端子ＴＲＳＴから出力されて各イネーブル用ＦＦ１５−１、１５−２、１７をリセットする。イネーブル用ＦＦ１７はリセットされるが、イネーブル信号ｅｆ０が「０」出力で親のＴＡＰコントローラ１２が有効となるため、親のＴＡＰコントローラ１２のみが有効となり、子のＴＡＰコントローラ１３−１及び１３−２はリセットされ無効となる。
【０１０８】
一方、親のＴＡＰコントローラ１２が有効な状態でリセット発生器８がテストリセット信号ＴＲＳＴを発生させた場合、入力端子ＩＮ２からテストクロック信号ＴＣＫを得られるため、入力端子ＩＮ４に入力されるテストリセット信号ＴＲＳＴによって、親のＴＡＰコントローラ１２自信と子のＴＡＰコントローラ１３−１及び１３−２とをリセットする。よって、ＴＡＰコントローラ装置１１全体がリセットされる。
【０１０９】
図１２に示す構成は、子のＴＡＰコントローラ１３−１及び１３−２にテストリセット信号ＴＲＳＴの入力端子が備えられていない場合にも適応可能である。
【０１１０】
次に、特定の子のＴＡＰコントローラ１３−１を有効とした後にテストリセット信号ＴＲＳＴによってリセットされる場合と、子のリセット信号ＣＴＲＳＴによって子のＴＡＰコントローラ１３−１のみがリセットされる場合のＴＡＰコントローラ装置１１の動作について図１３及び図１４で説明する。
【０１１１】
図１３は、テストリセット信号ＴＲＳＴによってリセットされる場合のＴＡＰコントローラ装置の動作タイミングを示す図である。図１３中、縦軸は信号のレベルを示し、横軸は時間を示している。時間軸は矢印ｔで示す方向（水平左方向）に時間が経過することを表している。縦軸には、外部入力端子のＴＡＰ端子から入力されるテストリセット信号ＴＲＳＴ（ａ）、テストクロック信号ＴＣＫ（ｂ）、及びテストデータ入力信号ＴＤＩ（ｃ）と、親のＴＡＰコントローラ１２から出力されるイネーブル信号ＦＦ用クロックＥＦＣＫ（ｄ）と、イネーブル用ＦＦ１５−１から出力されるイネーブルＦＦ信号ｅｆ１（ｅ）と、イネーブル用ＦＦ１５−２から出力されるイネーブルＦＦ信号ｅｆ２（ｆ）と、イネーブル用ＦＦ１７から出力されるイネーブルＦＦ信号ｅｆ０（ｇ）と、共有して利用される外部入力端子から入力される子のリセット信号ＣＴＲＳＴ（ｈ）とが示されている。
【０１１２】
最初に各ＴＡＰコントローラ１２、１３−１、１３−２を初期化する初期化フェイズを実行する。この初期化フェイズでは、外部入力端子のＴＡＰ端子からイネーブル信号を入力し、所定のインストラクションを与えて動作モードを設定する。このとき、イネーブルにする子のＴＡＰコントローラ１３−１又は１３−２を指定するコマンドをテストデータ入力信号ＴＤＩとして外部から親のＴＡＰコントローラ１２に入力し、さらに特定の子のＴＡＰコントローラをイネーブルにするためのテストデータ入力信号ＴＤＩを入力する。
【０１１３】
親のＴＡＰコントローラ１２は、外部から与えられるコマンドを解析し、さらにテストデータ入力信号ＴＤＩに基づいて特定の子のＴＡＰコントローラをイネーブルにするイネーブル信号ＦＦ用Scan Chain信号ＳＣと、イネーブル信号ＦＦ用クロックＥＦＣＫを生成して出力する。
【０１１４】
ハイレベルのイネーブル信号ＦＦ用Scan Chain信号ＳＣはイネーブル信号ＦＦ用クロックＥＦＣＫの立ち上がり（時刻ｔ１）に同期してイネーブル用ＦＦ１５−１にラッチされる。その結果、時刻ｔ１で、イネーブルＦＦ信号ｅｆ１がハイレベルになる。ハイレベルのイネーブルＦＦ信号ｅｆ１は、イネーブル用ＦＦ１５−１の出力信号であるので、ＡＮＤゲート３１ａから３１ｃの一方の入力が全て「１」となり、他方の入力端子に入力するテストデータ入力信号ＴＤＩ、テストクロック信号ＴＣＫ、及びテストモード選択信号ＴＭＳが子のＴＡＰコントローラ１３−１に入力する。
【０１１５】
同様に、ハイレベルのイネーブルＦＦ信号ｅｆ１は、ＡＮＤゲート４１の一方に入力され、子のリセット信号ＣＴＲＳＴがＡＮＤゲート３２ｄへと入力され、従って、リセット信号ＴＲＳＴ又は子のリセット信号ＣＴＲＳＴが子のＴＡＰコントローラ１３−１に入力される。
【０１１６】
このとき、イネーブル用ＦＦ１５−２のイネーブルＦＦ信号ｅｆ２とイネーブル用ＦＦ１７のイネーブルＦＦ信号ｅｆ０は両方とも時刻ｔ１でローレベルとなっている。
【０１１７】
従って、時刻ｔ１においては、子のＴＡＰコントローラ１３−１はイネーブル、子のＴＡＰコントローラ１３−２はディセーブル、親のＴＡＰコントローラ１２はイネーブルになっている。
【０１１８】
次のイネーブル信号ＦＦ用クロックＥＦＣＫの１周期で、イネーブル信号ＦＦ用Scan Chain信号ＳＣがローレベルに変化すると、そのローレベルの信号がイネーブル信号ＦＦ用クロックＥＦＣＫの立ち上がり（時刻ｔ２）でイネーブル用ＦＦ１５−１にラッチされ、イネーブル用ＦＦ１５−１のイネーブルＦＦ信号ｅｆ１がローレベルに変化する。
【０１１９】
時刻ｔ２の前の時点では、イネーブル用ＦＦ１５−１のイネーブルＦＦ信号ｅｆ１はハイレベルであったので、時刻ｔ２のタイミングでイネーブル用ＦＦ１５−２のイネーブルＦＦ信号ｅｆ２は、ローレベルからハイレベルに変化する。このとき、イネーブル用ＦＦ１７のイネーブルＦＦ信号ｅｆ０はローベルの状態を維持する。
【０１２０】
従って、時刻ｔ２において、子のＴＡＰコントローラ１３−１はディセーブル、子のＴＡＰコントローラ１３−２はイネーブル、親のＴＡＰコントローラ１２はイネーブルになる。
【０１２１】
次のイネーブル信号ＦＦ用クロックＥＦＣＫの１周期の間で、イネーブル信号ＦＦ用Scan Chain信号ＳＣがハイレベルに変化すると、そのハイレベルの信号がイネーブル信号ＦＦ用クロックＥＦＣＫの立ち上がり（時刻ｔ３）でイネーブル用ＦＦ１５−１にラッチされ、イネーブル用ＦＦ１５−１のイネーブルＦＦ信号ｅｆ１がハイレベルに変化する。同時に、共有の外部入力端子より子のリセット信号ＣＴＲＳＴがハイレベルで入力される。
【０１２２】
時刻ｔ３の前の時点では、イネーブル用ＦＦ１５−１のイネーブルＦＦ信号ｅｆ１はローレベルであったので、時刻ｔ３のタイミングでイネーブル用ＦＦ１５−２のイネーブルＦＦ信号ｅｆ２はローレベルに変化する。
【０１２３】
また、時刻ｔ３の前の時点では、イネーブル用ＦＦ１５−２のイネーブルＦＦ信号ｅｆ２はハイレベルであったので、時刻ｔ３のタイミングでイネーブル用ＦＦ１７のイネーブルＦＦ信号ｅｆ０がハイレベルに変化する。
【０１２４】
上記のようにして子のＴＡＰコントローラ１３−１をイネーブルに設定し、さらに親のＴＡＰコントローラ１２をディセーブルに設定することで、動作対象を子のＴＡＰコントローラ１３−１に切り換え、その子のＴＡＰコントローラ１３−１にテストデータを供給して所望の回路ブロックのテストを行うことができる。
【０１２５】
その後、時刻ｔ４でリセット信号ＴＲＳＴがローレベルで入力されると、ＴＡＰコントローラ装置１１全体がリセットされる。
【０１２６】
図１３において、時刻ｔ１までが図３に示す状態１から状態２における動作タイミングを示し、時刻ｔ１から時刻ｔ３までが状態３の動作タイミングを示し、時刻ｔ３から時刻ｔ４までが状態４の動作タイミングを示し、時刻ｔ４以降は状態１へ戻ったことを示している。
【０１２７】
上記の説明は、子のＴＡＰコントローラ１３−１をイネーブルにするときの設定手順について説明したが、子のＴＡＰコントローラ１３−２をイネーブルにするときの手順も同様である。また、テストリセット信号ＴＲＳＴをイネーブルにすれば、イネーブル用ＦＦ１７の出力をローレベルにして親のＴＡＰコントローラ１２をイネーブルにすることができる。
【０１２８】
図１４は、子のリセット信号ＣＴＲＳＴによってリセットされる場合のＴＡＰコントローラ装置の動作タイミングを示す図である。図１４中、図１３に示す信号の状態（ａ）から（ｈ）に加え、子のＴＡＰコントローラ１３−１のリセット端子ＩＮ１４の信号の状態（ｉ）と、子のＴＡＰコントローラ１３−２のリセット端子ＩＮ２４の信号の状態（ｊ）とが更に示される。信号の状態（ａ）から（ｈ）は、状態４に遷移した後の時刻ｔ５まで図１３に示す動作タイミングと同様であるので、その説明を省略する。
【０１２９】
時刻ｔ３の前の時点では、子のリセット信号ＣＴＲＳＴはローレベルであるので、子のＴＡＰコントローラ１３−１のリセット端子ＩＮ１４及び子のＴＡＰコントローラ１３−２のリセット端子ＩＮ２４へはローレベルで信号が入力される。時刻ｔ３の時点では子のリセット信号ＣＴＲＳＴはハイレベルで入力されるため、子のＴＡＰコントローラ１３−１による処理中の状態が継続される。
【０１３０】
時刻ｔ５で子のリセット信号ＣＴＲＳＴがローレベルとなると、子のＴＡＰコントローラ１３−１のリセット端子ＩＮ１４へはローレベルで信号が入力されることにより、子のＴＡＰコントローラ１３−１がリセットされ無効となる。この場合、リセット信号ＴＲＳＴによるリセットではないため、子のＴＡＰコントローラ１３−１へのイネーブルＦＦ信号ｅｆ１はハイレベルで入力された状態を維持している。従って、再度子のリセット信号ＣＴＲＳＴがハイレベルで入力されると、子のＴＡＰコントローラ１３−１が有効となり処理を再開する。このように、ＴＡＰコントローラ装置１１全体をリセットすることなく、特定の子のＴＡＰコントローラ１３−１のみを有効又は無効とすることができる。
【０１３１】
一方、イネーブルＦＦ信号ｅｆ２がローレベルで入力されている子のＴＡＰコントローラ１３−２は、子のリセット信号ＣＴＲＳＴのハイレベル又はローレベルの入力に寄らず、無効の状態を維持する。
【０１３２】
その後、時刻ｔ６でリセット信号ＴＲＳＴがローレベルで入力されると、ＴＡＰコントローラ装置１１全体がリセットされる。
【０１３３】
図１４において、時刻ｔ１までが図３に示す状態１から状態２における動作タイミングを示し、時刻ｔ１から時刻ｔ３までが状態３の動作タイミングを示し、時刻ｔ３から時刻ｔ５までが状態４の動作タイミングを示し、時刻ｔ５から時刻ｔ６までが状態６の動作タイミングを示し、時刻ｔ６以降は状態１へ戻ったことを示している。
【０１３４】
上述より、ＬＳＩに複数のＴＡＰコントローラが実装されている場合に、複数のＴＡＰコントローラを切り換えるためのセレクタ回路の切り換え信号を外部から入力するための外部端子を設ける必要がなくなる。これにより回路テスト用の外部端子の数を減らし、その外部端子を他の信号に割当ることが可能となる。また、親のＴＡＰコントローラから子のＴＡＰコントローラに命令を与えてＴＡＰコントローラを切り換える方法のように子のＴＡＰコントローラに親からの命令を解析する機能を設ける必要が無いので子ＴＡＰコントローラの回路を簡素にできる。
【０１３５】
以上の説明に関し、更に以下の項を開示する。
（付記１）
回路ブロックの試験を行う制御装置において、
前記試験に応じたテスト信号が入力される親の制御部と、
前記テスト信号が入力される複数の子の制御部と、
入出力端子がチェイン状に接続され、前記親の制御部と前記複数の子の制御部とのいずれか１つの動作を有効又は無効にするためのイネーブル信号を出力する複数のラッチ回路と、
前記試験をリセットするための第一テストリセット信号と、前記イネーブル信号によって動作が有効となった特定の子の制御部を無効にするための外部端子から入力される第二テストリセット信号との論理積をとった信号を、前記複数の子の制御部へ供給する複数の子リセット回路部とを有することを特徴とする制御装置。
（付記２）
前記各子リセット回路部は、前記イネーブル信号と前記第二テストリセット信号との論理積をとった信号を新たに第二テストリセット信号とし、更に前記第二テストリセット信号と前記第一テストリセット信号との論理積をとることを特徴とする付記１記載の制御装置。
（付記３）
前記第二テストリセット信号が入力される外部端子はテスト以外で使用される端子を共有して利用することを特徴とする付記１又は２記載の制御装置。
（付記４）
前記第一テストリセット信号はリセット用外部端子から入力されることを特徴とする付記１乃至３のいずれか一項記載の制御装置。
（付記５）
テストクロック信号とテストモード選択信号とを用いて前記第一テストリセット信号を発生して前記親の制御部に供給するリセット発生器を更に有し、
前記親の制御部は、前記複数のラッチ回路へ前記第一テストリセット信号を出力し、該親の制御部が無効の場合、自身をリセットせず前記複数の子の制御部をリセットすることを特徴とする付記１記載の制御装置。
（付記６）
前記親の制御部は、前記特定の子の制御部を指定するインストラクションに応じて、前記特定のラッチ回路の出力を所望の値に設定する信号を先頭のラッチ回路に出力すると共に、該信号に同期してラッチさせるためのクロック信号を前記複数のラッチ回路に出力して、該信号に同期したタイミングで順次シフトさせて前記特定のラッチ回路に保持させることを特徴とする付記１乃至５のいずれか一項記載の制御装置。
（付記７）
前記親の制御部が有効な場合にテスト用クロック信号を該親の制御部へ供給する親のクロック信号供給回路部を更に有し、
前記親の制御部は、前記インストラクションに応じて、前記クロック信号として前記テスト用クロック信号を前記複数のラッチ回路に出力することを特徴とする付記６記載の制御装置。
（付記８）
前記親のクロック信号供給回路部は、前記親の制御部が無効な間、該親の制御部へ所定値を維持して供給し、
前記親の制御部は、前記クロック信号として前記所定値を前記複数のラッチ回路に出力することを特徴とする付記６又は７記載の制御装置。
（付記９）
前記複数の子の制御部は、少なくとも第１及び第２の子の制御部からなり、前記第１の子の制御部の出力側と前記第２の子の制御部の入力側との間に接続される第１のセレクタと、
前記第２の子の制御部の出力側に接続される第２のセレクタとを有することを特徴とする付記１乃至８のいずれか一項記載の制御装置。
（付記１０）
前記複数の子の制御部は、少なくとも第１及び第２の子の制御部からなり、前記第１の子の制御部の出力側と前記第２の子の制御部の入力側との間に接続される第１のセレクタと、
前記第２の子の制御部の出力側に接続される第２のセレクタと、
前記親の制御部の出力と前記第２のセレクタの出力とが入力され、一方の入力を選択してテスト端子に出力する第３のセレクタとを有することを特徴とする付記１乃至９のいずれか一項記載の制御装置。
（付記１１）
回路ブロックの試験を行う複数の制御装置の制御方法であって、
前記制御装置における親の制御部と、前記制御装置における前記複数の子の制御部とのいずれか１つの動作を有効又は無効にするためのイネーブル信号を出力し、
前記試験をリセットするための第一テストリセット信号と、前記イネーブル信号によって動作が有効となった特定の子の制御部を無効にするための外部端子から入力される第二テストリセット信号との論理積をとった信号を、前記複数の子の制御部へ供給することを特徴とする制御方法。
（付記１２）
前記イネーブル信号と前記第二テストリセット信号との論理積をとった信号を新たに第二テストリセット信号とし、更に前記第二テストリセット信号と前記第一テストリセット信号との論理積をとった信号が前記複数の子のＴＡＰコントローラへ供給することを特徴とする付記１１記載の制御方法。
（付記１３）
前記複数のラッチ回路のうちの特定のラッチ回路の出力信号を所望の値に設定する信号を前記親の制御部から出力して、前記複数の子の制御部の中の特定の子の制御部を有効にすることを特徴とする付記１１又は１２記載の制御方法。
【０１３６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【０１３７】
【図１】本発明の一実施例に係るＴＡＰコントローラ装置の原理構成を示す図である。
【図２】本発明の一実施例に係るＴＡＰコントローラ装置の図１に示す原理構成に基づく回路構成の一例を示す図である。
【図３】ＴＡＰコントローラ装置における状態遷移を示す図である。
【図４】通常の状態でリセットされた親のＴＡＰコントローラの状態１を説明するための図である。
【図５】親のＴＡＰコントローラが有効で試験中の状態２を説明するための図である。
【図６】子のＴＡＰコントローラを有効にするためのインストラクション入力後の親のＴＡＰコントローラの状態３を説明するための図である。
【図７】特定の子のＴＡＰコントローラが有効のため親のＴＡＰコントローラが無効となる状態４を説明するための図である。
【図８】通常の状態でリセットされた子のＴＡＰコントローラの状態１を説明するための図である。
【図９】子のＴＡＰコントローラが有効で試験中の状態４を説明するための図である。
【図１０】有効な状態でリセットされた子のＴＡＰコントローラの状態５を説明するための図である。
【図１１】対象外の子のＴＡＰコントローラの状態４及び状態５を説明するための図である。
【図１２】リセット発生器を備えた構成例を示す図である。図１２中、説明に必要な構成部分のみを示す。
【図１３】テストリセット信号ＴＲＳＴによってリセットされる場合のＴＡＰコントローラ装置の動作タイミングを示す図である。
【図１４】子のリセット信号ＣＴＲＳＴによってリセットされる場合のＴＡＰコントローラ装置の動作タイミングを示す図である。
【符号の説明】
【０１３８】
８            リセット発生回路
９ａ          ＮＯＴゲート
９ｂ          ＯＲゲート
１０          ＯＲゲート
１１          ＴＡＰコントローラ装置
１２          親のＴＡＰコントローラ
１３−１から１３−ｎ    子のＴＡＰコントローラ
１５−１から１５−ｎ    イネーブル用ＦＦ
１６−１から１６−ｎ    ＡＮＤゲート
１８−１から１８−ｎ    セレクタ
２０          セレクタ
３１ａから３１ｄ、３２ａから３２ｄ      ＡＮＤゲート
４１、４２    ＡＮＤゲート
【図１】
2009128109.tif 000003
【図２】
2009128109.tif 000004
【図３】
2009128109.tif 000005
【図４】
2009128109.tif 000006
【図５】
2009128109.tif 000007
【図６】
2009128109.tif 000008
【図７】
2009128109.tif 000009
【図８】
2009128109.tif 000010
【図９】
2009128109.tif 000011
【図１０】
2009128109.tif 000012
【図１１】
2009128109.tif 000013
【図１２】
2009128109.tif 000014
【図１３】
2009128109.tif 000015
【図１４】
2009128109.tif 000016