(57)【要約】【課題】従来では、複数のＴＡＰコントローラを制御する場合、ＩＥＥＥ１１４９に違反した制御を行なわなければならない問題があった。【解決手段】本発明にかかるテスト回路は、ＩＥＥＥ１１４９にて規定されるＴＡＰコントローラとテストアクセスポートとを有するテスト回路であって、ＴＭＳ信号に応じて第１の内部ＴＭＳ信号ＴＭＳ＿１〜ＴＭＳ＿３を生成するとともに第１の選択信号ＥＮ２、ＥＮ３に応じて第１の内部ＴＭＳ信号ＴＭＳ＿１〜ＴＭＳ＿３の出力を制御する選択回路４１０と、第１の内部ＴＭＳ信号ＴＭＳ＿１に基づいて内部状態を遷移させるとともに選択用命令コードに基づき第１の選択信号ＥＮ２、ＥＮ３を生成するＴＡＰコントローラ４００と、を有する第１のコントローラ４０と、第１の内部ＴＭＳ信号ＴＭＳ＿２、ＴＭＳ＿３信号に基づき内部状態を遷移させるＴＡＰコントローラ５００、６００を有する第２のコントローラとを備える。【選択図】図１
2008310792.tif 000002
【特許請求の範囲】
【請求項１】
ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９にて規定されるＴＡＰコントローラと、テストアクセスポートと、を有するテスト回路であって、
ＴＭＳ信号に応じて第１の内部ＴＭＳ信号を生成するとともに第１の選択信号に応じて前記第１の内部ＴＭＳ信号の出力先を選択する選択回路と、前記第１の内部ＴＭＳ信号に基づいて内部状態を遷移させるとともに選択用命令コードに基づき前記第１の選択信号を生成する第１のＴＡＰコントローラと、を有する第１のコントローラと、
前記第１の内部ＴＭＳ信号に基づき内部状態を遷移させる第２のＴＡＰコントローラを有する第２のコントローラと、
を備えるテスト回路。
【請求項２】
前記選択回路は、前記第１のＴＡＰコントローラの出力信号と前記第２のＴＡＰコントローラの出力信号とを前記選択信号に応じて選択して、選択した側の出力信号を前記テスト回路の出力信号として出力する出力選択回路を備える請求項１に記載のテスト回路。
【請求項３】
前記テスト回路は、前記第１の内部ＴＭＳ信号に応じて第２の内部ＴＭＳ信号を生成するとともに第２の選択信号に応じて前記第２の内部ＴＭＳ信号の出力先を選択する選択回路と、前記第２の内部ＴＭＳ信号に基づいて内部状態を遷移させるとともに選択用命令コードに基づき前記第２の選択信号を生成する第３のＴＡＰコントローラと、を有する第３のコントローラを備える請求項１又は２に記載のテスト回路。
【請求項４】
前記第１、第２の内部ＴＭＳ信号は、前記ＴＭＳ信号と実質的に同じ論理レベルを維持して変化する請求項１乃至３のいずれか１項に記載のテスト回路。
【請求項５】
前記テスト回路は、複数の前記第２のコントローラの出力信号の調停を行ない、前記第１のコントローラに調停後の当該出力信号を出力する調停回路を備える請求項１乃至４のいずれか１項に記載のテスト回路。
【請求項６】
前記テスト回路は、前記第２のコントローラの出力信号を命令コードとして動作する第４のＴＡＰコントローラを含む請求項１乃至５のいずれか１項に記載のテスト回路。
【請求項７】
前記第１のＴＡＰコントローラは、前記選択用命令コードをデコードして前記第１の選択信号を出力する選択信号生成回路を備える請求項１乃至６のいずれか１項に記載のテスト回路。
【請求項８】
前記第１のＴＡＰコントローラは、複数の前記第１の選択信号をアクティブ状態とし、前記選択回路は、複数の前記第１の選択信号に基づき複数の前記第１の内部ＴＭＳ信号を複数の前記第２のコントローラに出力する請求項１乃至７のいずれか１項に記載のテスト回路。
【請求項９】
前記第１のＴＡＰコントローラは、前記第１及び第２のＴＡＰコントローラから出力される出力信号のうちいずれを出力するかを指定する第３の選択信号を出力し、前記出力選択回路は、前記第３の選択信号に基づき前記第１及び第２のＴＡＰコントローラから出力される出力信号のいずれかを選択して出力する請求項３乃至８のいずれか１項に記載のテスト回路。
【請求項１０】
前記出力選択回路は、前記第３の選択信号に基づき前記第１及び第２のＴＡＰコントローラから出力される出力信号を選択する場合、クロック信号の論理値に応じて選択する出力信号を切り替える請求項９に記載のテスト回路。
【請求項１１】
前記出力選択回路は、前記第３の選択信号に基づき前記第１及び第２のＴＡＰコントローラから出力される出力信号を選択する場合、複数の前記出力信号の排他的論理和を前記出力選択回路の出力信号とする請求項９に記載のテスト回路。
【請求項１２】
前記出力選択回路は、前記第３の選択信号に基づき選択した前記第１又は第２のＴＡＰコントローラからの出力信号を他のＴＡＰコントローラへの命令コードとして出力する請求項９に記載のテスト回路。
【請求項１３】
前記出力選択回路は、前記第１及び第２のＴＡＰコントローラの出力信号及び外部から入力される命令コードが入力され、前記第３の選択信号に基づき選択した第１又は第２のＴＡＰコントローラからの出力信号を他のＴＡＰコントローラへの命令コードとして入力するとともに、前記第１又は第２のＴＡＰコントローラの出力信号を外部へ出力する請求項９又は１２に記載のテスト回路。
【請求項１４】
ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９にて規定されるＴＡＰコントローラと、テストアクセスポートと、を有するテスト回路であって、
ＴＭＳ信号に応じて第１の内部ＴＭＳ信号を生成するとともに複数の第１の選択信号に応じて前記複数の第１の内部ＴＭＳ信号の出力先をそれぞれ選択する選択回路と、前記第１の内部ＴＭＳ信号に基づいて内部状態を遷移させるとともに選択用命令コードに基づき前記複数の第１の選択信号を生成する前記ＴＡＰコントローラと、を有する第１のコントローラと、
前記複数の第１の内部ＴＭＳ信号のいずれか１つに基づき内部状態を遷移させる前記ＴＡＰコントローラを有する複数の第２のコントローラと、
を備えるテスト回路。
【請求項１５】
複数のＴＡＰコントローラの中から任意のＴＡＰコントローラを選択する選択用命令コードを含むコードをデコードする命令デコーダと、
前記命令デコーダのデコード結果に基づいて他のＴＡＰコントローラを制御する選択回路とを備え、ＩＥＥＥ１１４９において規定される標準仕様の他のＴＡＰコントローラを制御可能にしたＩＥＥＥ標準仕様上位互換のマスタＴＡＰコントローラを備えたテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテスト回路に関し、特にＩＥＥ１１４９にて規定されるＴＡＰ（Test Access Port）コントローラを有するテスト回路に関する。
【背景技術】
【０００２】
近年、半導体装置の回路規模が大規模化しており、半導体装置に対する試験を行なうための端子数も増大する傾向にある。端子数が増大すると、パッケージが大きくなり、小型化が困難である問題がある。そのため、この端子数を削減することが求められている。そこで、テスト端子数を削減するためにＩＥＥＥ（Institute of Electrical and Electronics Engineers）にてＩＥＥＥ１１４９が規格化された。このＩＥＥＥ１１４９のうちの１つであるＩＥＥＥ１１４９．１では、５つの端子と、ＴＡＰコントローラとを用いて半導体装置のテストを行なうことが可能である。５つの端子は、それぞれＴＤＩ端子、ＴＲＳＴ端子、ＴＣＫ端子、ＴＭＳ端子、ＴＤＯ端子と呼ばれる。以下の説明では、一組のＴＤＩ端子、ＴＲＳＴ端子、ＴＣＫ端子、ＴＭＳ端子、ＴＤＯ端子をテスト端子群と称す。また、ＴＡＰコントローラは、ＴＭＳ端子から入力されるＴＭＳ信号に基づき内部状態を遷移させるステートマシンを含み、ＴＤＩ端子から入力されるコマンドに基づき被テストブロックを制御する。
【０００３】
また、回路の大規模化に伴い、被テストブロックの数に応じて複数のＴＡＰコントローラを用いることが行なわれている。複数のＴＡＰコントローラをそのまま実装した場合、ＴＡＰコントローラの数に応じてテスト端子群を複数設ける必要があり、端子数が増大する問題がある。そこで、複数のＴＡＰコントローラを実装した場合であっても、端子数の増大を抑制する技術が特許文献１（以下、従来例１と称す）に開示されている。
【０００４】
従来例１に開示されている半導体装置１０００のブロック図を図２４に示す。図２４に示すように、半導体装置１０００は、ＴＡＰコントローラ１２００、１３００と、ＴＡＰコントローラ１２００、１３００とデバッグ実行部を介して接続されるＣＰＵ１２２０、１３２０を有している。また、半導体装置１０００では、２つのＴＡＰコントローラに対して一組のテスト端子群を有する。さらに、半導体装置１０００は、一組のテスト端子群とＴＡＰコントローラ１２００及びＴＡＰコントローラ１３００との接続経路を選択する選択回路１１００を有している。
【０００５】
より具体的には、選択回路１１００は、ＴＡＰコントローラ１１１０とレジスタ１１０１を有している。ＴＡＰコントローラ１１１０は、ＴＤＩ端子から入力される命令コードに応じて、レジスタ１１０１に格納される値を設定する。そして、選択回路１１００は、レジスタ１１０１に格納される値に応じてテスト端子群とＴＡＰコントローラ１２００及びＴＡＰコントローラ１３００との接続経路を選択する。
【０００６】
また、従来例１では、選択回路１１００内にＴＡＰコントローラを備えていない例も示されている。この場合、一組のテスト端子群に加えて、選択回路１１００への制御信号の入力端子を備える構成としている。
【０００７】
複数のＴＡＰコントローラの制御方法の他の例が特許文献２（以下、従来例２と称す）、及び特許文献３（以下、従来例３と称す）に開示されている。従来例２に開示される制御方法では、制御回路又はテスト端子群以外の端子を追加することで、複数のＴＡＰコントローラを制御している。従来例３に開示される制御方法においても、選択回路を追加して、この選択回路をテスト端子群からの信号に応じて制御することで複数のＴＡＰコントローラを制御する。また、複数のＴＡＰコントローラを制御する先行技術が特許文献４（以下、従来例４と称す）に開示されている。特許文献４では、ＴＡＰリンクモジュール（以下、制御回路と称す）を介して複数のＴＡＰコントローラを制御する。なお、特許文献５〜７は、特許文献４に対応する米国特許である。
【特許文献１】特開２００４−１６４３６７号公報
【特許文献２】特表２００５−５２７９１８号公報
【特許文献３】特開２００２−３７３０８６号公報
【特許文献４】特開平１０−１１５６６８号公報
【特許文献５】米国特許６，３２４，６６２
【特許文献６】米国特許６，７１１，７０７
【特許文献７】米国特許７，２１３，１７１
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来例１〜４に開示されている技術では、追加された選択回路又は制御回路に対して入力される命令コードがＩＥＥＥ１１４９．１の標準仕様に準拠していない。そのため、他の半導体装置と共に基板上に実装した場合に、他の半導体装置との間で命令コードの矛盾が生じ、システムの動作に不具合が生じる問題がある。
【０００９】
また、従来例２〜４では、選択回路又は制御回路の操作手順がＩＥＥＥ１１４９．１の標準仕様に準拠していない。そのため、他の半導体装置と共に基板上に実装した場合に、他の半導体装置との間で操作手順の矛盾が生じ、システムの動作に不具合が生じる問題がある。
【課題を解決するための手段】
【００１０】
本発明にかかるテスト回路は、ＩＥＥＥ１１４９にて規定されるＴＡＰコントローラと、テストアクセスポートと、を有するテスト回路であって、ＴＭＳ信号に応じて第１の内部ＴＭＳ信号を生成するとともに第１の選択信号に応じて前記第１の内部ＴＭＳ信号の出力先を選択する選択回路と、前記第１の内部ＴＭＳ信号に基づいて内部状態を遷移させるとともに選択用命令コードに基づき前記第１の選択信号を生成する第１のＴＡＰコントローラと、を有する第１のコントローラと、前記第１の内部ＴＭＳ信号に基づき内部状態を遷移させる第２のＴＡＰコントローラを有する第２のコントローラと、を備えるものである。
【００１１】
本発明にかかるテスト回路は、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１１４９にて規定されるＴＡＰコントローラと、テストアクセスポートと、を有するテスト回路であって、ＴＭＳ信号に応じて第１の内部ＴＭＳ信号を生成するとともに複数の第１の選択信号に応じて前記複数の第１の内部ＴＭＳ信号の出力先をそれぞれ選択する選択回路と、前記第１の内部ＴＭＳ信号に基づいて内部状態を遷移させるとともに選択用命令コードに基づき前記複数の第１の選択信号を生成する第１のＴＡＰコントローラと、を有する第１のコントローラと、前記複数の第１の内部ＴＭＳ信号のいずれか１つに基づき内部状態を遷移させる第２のＴＡＰコントローラを有する複数の第２のコントローラと、を備えるものである。
【００１２】
複数のＴＡＰコントローラの中から任意のＴＡＰコントローラを選択する選択用命令コードを含むコードをデコードする命令デコーダと、前記命令デコーダのデコード結果に基づいて他のＴＡＰコントローラを制御する選択回路とを備え、ＩＥＥＥ１１４９において規定される標準仕様の他のＴＡＰコントローラを制御可能にしたＩＥＥＥ標準仕様上位互換のマスタＴＡＰコントローラを備えたテスト回路。
【００１３】
本発明にかかるテスト回路は、選択回路が、複数のＴＡＰコントローラに対して共通に設けられるＴＭＳ端子から入力されるＴＭＳ信号に基づき内部ＴＭＳ信号を生成し、内部ＴＭＳ信号の出力先を制御する。また、第１、第２のコントローラ内に設けられるＴＡＰコントローラは、ＩＥＥＥ１１４９に準拠した動作を行なう。つまり、本発明にかかるテスト回路は、選択回路によって内部ＴＭＳ信号の出力先を制御して動作させるＴＡＰコントローラを選択することで、複数のＴＡＰコントローラのそれぞれをＩＥＥＥ１１４９の規格に違反することなく動作させる。
【発明の効果】
【００１４】
本発明にかかるテスト回路によれば、ＩＥＥＥ１１４９に準拠した命令コードと一組のテストアクセスポートとを用いて、複数のＴＡＰコントローラのそれぞれをＩＥＥＥ１１４９の標準仕様に違反することなく制御することが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下の説明では、ＩＥＥＥ１１４９で規格化されているもののうちＩＥＥＥ１１４９．１を例に本発明の説明を行なう。なお、本発明を利用可能なテスト回路はＩＥＥＥ１１４９．１に限られるものでははく、ＩＥＥＥ１１４９において規格化されている他の規格においても使用することが可能である。また、本発明にかかるテスト回路は、複数のＴＡＰコントローラを有するが、以下では、これらのＴＡＰコントローラがテスト対象となる回路と共に１つの半導体チップ上に実装されている場合について説明する。なお、本発明にかかるテスト回路は、テスト対象となる回路とは異なる半導体装置として評価ボード上に実装されるものでも良く、さらに、テスト回路に含まれる複数のＴＡＰコントローラも個別の半導体装置として実装されるものでも良い。以下、図面を参照して本発明の実施の形態について説明する。
【００１６】
実施の形態１
本実施の形態にかかる半導体装置１のブロック図を図１に示す。図１に示すように、半導体装置１は、ＴＤＩ端子１１、ＴＣＫ端子１２、ＴＲＳＴ端子１３、ＴＭＳ端子１４、ＴＤＯ端子１５、被テストブロック１００〜３００、第１のコントローラ（例えば、マスタＴＡＰコントローラ）４０、第２のコントローラ（例えば、標準ＴＡＰコントローラ）５００、６００を有している。なお、以下の実施の形態では、半導体装置１から被テストブロックを除く回路部分をテスト回路と称す。また、テスト回路は、選択用命令コードをデコードする機能を有する第１のＴＡＰコントローラと、選択用命令コードをデコードする機能を有する必要がない第２のＴＡＰコントローラと、を有する。以下の説明では、マスタＴＡＰコントローラに内蔵される標準ＴＡＰコントローラ４００が第１のＴＡＰコントローラに相当し、標準ＴＡＰコントローラ５００、６００が第２のコントローラに相当するものとする。但し、第１のＴＡＰコントローラと第２のＴＡＰコントローラは、ともにＩＥＥ１１４９．１において規定される規格を満たすものである。
【００１７】
ＴＤＩ端子１１、ＴＣＫ端子１２、ＴＲＳＴ端子１３、ＴＭＳ端子１４、ＴＤＯ端子１５は、ＩＥＥＥ１１４９において規定される端子である。なお、半導体装置１の外部端子として設けられるこれらの端子を、以下では共通テスト端子群と称す。ＴＤＩ端子１１は、命令コードの入力端子である。ＴＣＫ端子１２は、クロック信号の入力端子である。ＴＲＳＴ端子１３は、リセット信号の入力端子である。ＴＭＳ端子１４は、ＴＭＳ信号の入力端子である。ＴＤＯ端子は、テスト回路からの出力信号の出力端子である。
【００１８】
被テストブロック１００は、マスタＴＡＰコントローラ４０によってテストされる回路ブロックである。被テストブロック２００は、標準ＴＡＰコントローラ５００によってテストされる回路ブロックである。被テストブロック３００は、標準ＴＡＰコントローラ６００によってテストされる回路ブロックである。なお、被テストブロック１００〜３００は、それぞれが個別の動作をしても良く、互いに関係して動作するものであっても良いが、テスト時に独立して動作することが好ましい。
【００１９】
マスタＴＡＰコントローラ４０は、ＴＭＳ信号に応じて内部状態を遷移させると共に他の標準ＴＡＰコントローラに供給する第１の内部ＴＭＳ信号を生成する。また、マスタＴＡＰコントローラ４０は、接続される被テストブロック１００に対するテスト用命令信号を出力する。標準ＴＡＰコントローラ５００、６００は、ＩＥＥＥ１１４９．１に準拠した動作を行なう。つまり、第１の内部ＴＭＳ信号に応じて内部状態を遷移させながら、ＴＤＩ端子１１から入力される命令コードをデコードして被テストブロックにテスト用命令信号を出力する。なお、第１の内部ＴＭＳ信号は、ＴＭＳ信号と実質的に同じ論理レベルを維持して変化する信号である。
【００２０】
ここで、マスタＴＡＰコントローラ４０について詳細に説明する。マスタＴＡＰコントローラ４０のブロック図を図２に示す。図２に示すように、マスタＴＡＰコントローラ４０は、標準ＴＡＰコントローラ４００と選択回路４１０とを有している。また、マスタＴＡＰコントローラは、入力端子４１〜４３、４５ａ、４５ｂ、４８、出力端子４４ａ、４４ｂ、４７を有している。
【００２１】
標準ＴＡＰコントローラ４００は、ＩＥＥＥ１１４９．１に準拠した動作を行なう。標準ＴＡＰコントローラ４００は、第１の内部ＴＭＳ信号ＴＭＳ＿１に基づき内部状態を遷移させる。この第１の内部ＴＭＳ信号ＴＭＳ＿１は、後述する選択回路４１０が出力するものである。また、標準ＴＡＰコントローラ４００は、テスト用命令信号とは別に第１の選択信号ＥＮ２、ＥＮ３（以下、単に選択信号ＥＮ２、ＥＮ３と称す）を出力する。選択信号ＥＮ２、ＥＮ３は、ＩＥＥＥ１１４９．１において許容されている範囲内で定義される選択用命令コードに基づき生成される。本実施の形態では、選択信号ＥＮ２を生成するための選択用命令コードとして"０１００１"を定義し、選択信号ＥＮ３を生成するための選択用命令コードとして"１０００１"を定義する。
【００２２】
なお、標準ＴＡＰコントローラ４００〜６００は、実質的に同じ回路であって、複数の信号出力端子Ｄｏと、データ入力端子Ｄｉと、ＴＤＩ端子と、ＴＣＫ端子と、ＴＲＳＴ端子と、ＴＭＳ端子と、ＴＤＯ端子とを有する。複数の信号出力端子Ｄｏは、標準ＴＡＰコントローラから被テストブロック又は選択回路に出力される信号の出力端子である。データ入力端子Ｄｉは、テスト対象デバイスから読み出したテスト結果の入力端子である。なお、標準ＴＡＰコントローラ４００は、複数の信号出力端子Ｄｏのうち２つを選択信号ＥＮ２、ＥＮ３の出力端子として使用する。また、以下の説明ではデータ入力端子を１つとして説明するが、複数であっても良い。
【００２３】
標準ＴＡＰコントローラに設けられるＴＤＩ端子と、ＴＣＫ端子と、ＴＲＳＴ端子と、ＴＭＳ端子と、ＴＤＯ端子の機能は、半導体装置１の外部端子として用いられるこれら端子と実質的に同じ機能を有する。なお、標準ＴＡＰコントローラに設けられるＴＤＩ端子と、ＴＣＫ端子と、ＴＲＳＴ端子と、ＴＭＳ端子と、ＴＤＯ端子を半導体装置１の外部端子として用いられるこれら端子と区別するために、以下では個別テスト端子と称す。この個別テスト端子は、それぞれ対応する共通テスト端子に接続されている。
【００２４】
選択回路４１０は、選択信号ＥＮ２、ＥＮ３、ＴＭＳ信号に基づき第１の内部ＴＭＳ信号の生成及びその出力先の選択を行なう。選択回路４１０は、ＡＮＤゲート４１１、４１２ａ、４１２ｂ、出力選択回路４１３を有している。ＡＮＤゲート４１１は、入力端子４８から入力されるＴＭＳ信号と、選択信号ＥＮ２の反転信号と、選択信号ＥＮ３の反転信号と、の論理積を出力する。ＡＮＤゲート４１１の出力は、標準ＴＡＰコントローラ４００への第１の内部ＴＭＳ信号ＴＭＳ＿１となる。ＡＮＤゲート４１２ａは、入力端子４８から入力されるＴＭＳ信号と、選択信号ＥＮ２と、の論理積を出力する。ＡＮＤゲート４１２ａの出力は、出力端子４４ａから出力され、標準ＴＡＰコントローラ５００への第１の内部ＴＭＳ信号ＴＭＳ＿２となる。ＡＮＤゲート４１２ｂは、入力端子４８から入力されるＴＭＳ信号と、選択信号ＥＮ３と、の論理積を出力する。ＡＮＤゲート４１２ｂの出力は、出力端子４４ｂから出力され、標準ＴＡＰコントローラ６００への第１の内部ＴＭＳ信号ＴＭＳ＿３となる。
【００２５】
出力選択回路４１３は、入力端子４５ａから入力される標準ＴＡＰコントローラ５００の出力信号ＴＤＯ＿２と、入力端子４５ｂから入力される標準ＴＡＰコントローラ６００の出力信号ＴＤＯ＿３と、標準ＴＡＰコントローラ４００の出力信号ＴＤＯ＿１のうちいずれか１つを選択信号ＥＮ２、ＥＮ３に基づき選択して出力端子４７から出力する。
【００２６】
ここで、標準ＴＡＰコントローラとこれに接続される被テストブロックとについて説明する。本実施の形態にかかる標準ＴＡＰコントローラは、いずれも実質的に同じ構成であるため、標準ＴＡＰコントローラ５００を一例として標準ＴＡＰコントローラについて説明する。また、被テストブロックは、それぞれ異なる機能が実現された被テスト回路を有するが、被テスト回路に付随するテスト用回路は同じものである。被テスト回路については、本発明の本質部分ではないため説明を省略し、テスト用回路についての説明を行なう。以下の説明では、標準ＴＡＰコントローラ５００に接続される被テストブロック２００について説明を行なう。
【００２７】
標準ＴＡＰコントローラ５００と被テストブロック２００のブロック図を図３に示す。図３に示すように、標準ＴＡＰコントローラ５００は、個別テスト端子として、ＴＲＳＴ端子５０１と、ＴＣＫ端子５０２と、ＴＤＩ端子５０３と、ＴＤＯ端子５０４と、ＴＭＳ端子５０５とを有し、さらに、複数の信号出力端子Ｄｏと、データ入力端子Ｄｉを有する。また、標準ＴＡＰコントローラ５００は、ステートマシン５０６、複数の命令レジスタ５０７、命令デコーダ５０８、マルチプレクサ５０９を有している。
【００２８】
ステートマシン５０６は、ＴＭＳ端子５０５から入力されるＴＭＳ信号とＴＣＫ端子５０２から入力されるクロック信号ＴＣＫとに応じて内部状態を遷移させて、その状態遷移に基づいて出力信号を変化させる。ステートマシン５０６の状態遷移を図４に示す。図４に示すように、ステートマシン５０６は、ＴＭＳ信号の値に基づき次に遷移する状態が決定される。例えば、状態がＴｅｓｔ−Ｉｄｌｅ−Ｒｅｓｅｔである場合に、ＴＭＳ信号の値が"１"であれば、クロック信号ＴＣＫが入力されてもその状態を維持し、ＴＭＳ信号の値が"０"であれば、クロック信号の入力に応じて、状態をＲｕｎ−Ｔｅｓｔ／Ｉｄｌｅに遷移させる。このステートマシン５０６の動作は、ＩＥＥＥ１１４９．１にて規定されたものであるため、各状態における動作の説明は省略する。
【００２９】
複数の命令レジスタ５０７は、それぞれＴＤＩ端子５０３から入力される命令コードが格納される。命令コードを格納するに当たり、いずれの命令レジスタに命令コードを格納するかは、ステートマシン５０６が、Ｓｅｌｅｃｔ−ＩＲ−Ｓｃａｎ状態である場合に決定される。また、命令コードの格納は、ステートマシン５０６がＣａｐｔｕｒｅ−ＩＲ状態である場合に行なわれる。
【００３０】
命令デコーダ５０８は、複数の命令レジスタ５０７に格納された命令コードをデコードする。そして、このデコード結果は信号出力端子Ｄｏを介して出力される。なお、マスタＴＡＰコントローラ４０の標準ＴＡＰコントローラ４００では、このデコード結果のうち２つを選択信号ＥＮ２、ＥＮ３とする。なお、命令デコーダ５０８は、ステートマシン５０６の状態がＵｐｄａｔｅ−ＩＲとなった場合に命令コードのデコード処理を行なう。
【００３１】
マルチプレクサ５０９は、複数の命令レジスタ５０７に格納されているデータとデータ入力端子Ｄｉに入力されるテスト結果のうちいずれか１つをステートマシン５０６の状態に基づいて選択して、出力信号ＴＤＯとしてＴＤＯ端子５０４から出力する。
【００３２】
被テストブロック２００は、ＴＤＩ端子２０１と、被テスト回路２０２、複数のデータレジスタ２０３、マルチプレクサ２０４を有している。また、被テストブロック２００は、複数のデータ入力端子Ｄｉと、信号出力端子Ｄｏを有している。被テストブロック２００は、データ入力端子Ｄｉによって標準ＴＡＰコントローラ５００の出力信号を受信し、信号出力端子Ｄｏを介して、テスト結果を標準ＴＡＰコントローラ５００に送信する。なお、被テストブロック２００の被テスト回路２０２は、標準ＴＡＰコントローラ５００の命令デコーダ５０８のデコード結果に基づき動作する。また、被テストブロック２００の複数のデータレジスタ２０３及びマルチプレクサ２０４は、標準ＴＡＰコントローラ５００のステートマシン５０６の状態に基づき動作する。
【００３３】
ＴＤＩ端子２０１は、共通テスト端子のＴＤＩ端子１１と接続されており、命令コードが入力される。被テスト回路２０２は、テスト対象の回路である。複数のデータレジスタ２０３は、それぞれＴＤＩ端子２０１から入力されるテスト用データが格納される。テスト用データを格納するに当たり、いずれのデータレジスタにテスト用データを格納するかは、ステートマシン５０６が、Ｓｅｌｅｃｔ−ＤＲ−Ｓｃａｎ状態である場合に決定される。また、テスト用データの格納は、ステートマシン５０６がＣａｐｔｕｒｅ−ＤＲ状態である場合に行なわれる。テスト用データは、被テスト回路２０２のテストに用いられる被テスト回路２０２への入力データである。このテスト用データは、ステートマシン５０６がＵｐｄａｔｅ−ＤＲ状態である場合に、被テスト回路２０２に入力される。また、複数のデータレジスタ２０３は、被テスト回路２０２のテスト結果も格納される。
【００３４】
マルチプレクサ２０４は、複数のデータレジスタ２０３に格納されているデータのうちいずれか１つをステートマシン５０６の状態に基づいて選択して、被テストブロックの出力信号として信号出力端子Ｄｏから出力する。
【００３５】
次に、本実施の形態にかかる半導体装置１の動作について説明する。標準ＴＡＰコントローラを用いたテスト方法についてはＩＥＥＥ１１４９．１に準拠した動作となるため、ここでは、標準ＴＡＰコントローラを用いたテストに関する動作についての説明は省略する。以下では、主にマスタＴＡＰコントローラ４０を用いて標準ＴＡＰコントローラ５００、６００を制御する動作を説明する。
【００３６】
本実施の形態では、マスタＴＡＰコントローラ４０が標準ＴＡＰコントローラ５００、６００を制御するために選択用命令コードを用いる。選択用命令コードは、ＩＥＥＥ１１４９．１にて許可されている範囲内において定義した命令コードである。この選択用命令コードは、ＴＤＩ端子１１からマスタＴＡＰコントローラ４０内の標準ＴＡＰコントローラ４０に送信される。標準ＴＡＰコントローラ４０は、選択用命令コードを命令レジスタ５０７に格納し、選択用命令コードを命令デコーダでデコードすることで選択信号ＥＮ２、ＥＮ３のいずれかをハイレベル（例えば"１"）にする。
【００３７】
本実施の形態では、選択信号ＥＮ２をハイレベルにする選択用命令コードとして"０１００１"を定義し、選択信号ＥＮ３をハイレベルにする選択用命令コードとして"１０００１"を定義する。なお、選択信号ＥＮ２、ＥＮ３は、初期状態ではともにロウレベル（例えば、"０"）である。
【００３８】
まず、初期状態では、選択信号ＥＮ２、ＥＮ３はともにロウレベルであるため、選択回路４１０のＡＮＤゲート４１１は、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号を第１の内部ＴＭＳ信号ＴＭＳ＿１として出力する。つまり、第１の内部ＴＭＳ信号ＴＭＳ＿１は、ＴＭＳ信号と実質的に同じ論理レベルを維持して変化する。この第１の内部ＴＭＳ信号ＴＭＳ＿１は、マスタＴＡＰコントローラ４０内の標準ＴＡＰコントローラ４００に入力される。
【００３９】
一方、選択信号ＥＮ２、ＥＮ３がともにロウレベルであるため、選択回路４１０のＡＮＤゲート４１２ａ、４１２ｂは、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号を遮断する。つまり、第１の内部ＴＭＳ信号ＴＭＳ＿２、ＴＭＳ＿３はロウレベルを維持する。
【００４０】
従って、選択用命令コードが入力されるまで、マスタＴＡＰコントローラ４０内の標準ＴＡＰコントローラ４００は、ＴＭＳ信号の変化に基づきステートマシンを動作させる（つまり、ＩＥＥＥ１１４９．１に準拠した動作を行なう）。一方、標準ＴＡＰコントローラ５００、６００は、第１の内部ＴＭＳ信号ＴＭＳ＿２、ＴＭＳ＿３がロウレベルを維持するため、ステートマシンの状態をＴｅｓｔ−Ｌｏｇｉｃ−Ｒｅｓｅｔの状態で維持する。なお、この場合、出力選択回路４１３は、標準ＴＡＰコントローラ４００が出力する出力信号ＴＤＯ＿１を選択して、出力端子４７及びＴＤＯ端子１５を介してこの出力信号ＴＤＯ＿１を出力する。
【００４１】
次に、選択用命令コードとして"０１００１"が入力された場合について説明する。この場合、選択信号ＥＮ２がハイレベルとなる。このとき、選択信号ＥＮ３はロウレベルである。この選択信号の状態に基づき、ＡＮＤゲート４１１及びＡＮＤゲート４１２ｂは、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号を遮断して、第１の内部ＴＭＳ信号ＴＭＳ＿１及び第１の内部ＴＭＳ信号ＴＭＳ＿３をロウレベルとする。一方、ＡＮＤゲート４１２ａは、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号を第１の内部ＴＭＳ信号ＴＭＳ＿２として出力する。つまり。第１の内部ＴＭＳ信号ＴＭＳ＿３は、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号と実質的に同じ論理レベルを維持して変化する。
【００４２】
従って、マスタＴＡＰコントローラ４０内の標準ＴＡＰコントローラ４００に入力される第１の内部ＴＭＳ信号ＴＭＳ＿１及び標準ＴＡＰコントローラ６００に入力される第１の内部ＴＭＳ信号ＴＭＳ＿３は、ロウレベルで変化しない。これにより、標準ＴＡＰコントローラ４００、６００は、ステートマシンの状態をＴｅｓｔ−Ｌｏｇｉｃ−Ｒｅｓｅｔの状態で維持する。一方、標準ＴＡＰコントローラ５００への第１の内部ＴＭＳ信号ＴＭＳ＿２は、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号の変化に基づきステートマシンを動作させる（つまり、ＩＥＥＥ１１４９．１に準拠した動作を行なう）。なお、この場合、出力選択回路４１３は、標準ＴＡＰコントローラ５００が出力する出力信号ＴＤＯ＿２を選択して、出力端子４７及びＴＤＯ端子１５を介してこの出力信号ＴＤＯ＿２を出力する。
【００４３】
続いて、選択用命令コードとして"１０００１"が入力された場合について説明する。この場合、選択信号ＥＮ３がハイレベルとなる。このとき、選択信号ＥＮ２はロウレベルである。この選択信号の状態に基づき、ＡＮＤゲート４１１及びＡＮＤゲート４１２ａは、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号を遮断して、第１の内部ＴＭＳ信号ＴＭＳ＿１及び第１の内部ＴＭＳ信号ＴＭＳ＿２をロウレベルとする。一方、ＡＮＤゲート４１２ｂは、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号を第１の内部ＴＭＳ信号ＴＭＳ＿３として出力する。つまり。第１の内部ＴＭＳ信号ＴＭＳ＿３は、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号と実質的に同じ論理レベルを維持して変化する。
【００４４】
従って、マスタＴＡＰコントローラ４０内の標準ＴＡＰコントローラ４００に入力される第１の内部ＴＭＳ信号ＴＭＳ＿１及び標準ＴＡＰコントローラ５００に入力される第１の内部ＴＭＳ信号ＴＭＳ＿２は、ロウレベルで変化しない。これにより、標準ＴＡＰコントローラ４００、５００は、ステートマシンの状態をＴｅｓｔ−Ｌｏｇｉｃ−Ｒｅｓｅｔの状態で維持する。一方、標準ＴＡＰコントローラ６００への第１の内部ＴＭＳ信号ＴＭＳ＿３は、ＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号の変化に基づきステートマシンを動作させる（つまり、ＩＥＥＥ１１４９．１に準拠した動作を行なう）。なお、この場合、出力選択回路４１３は、標準ＴＡＰコントローラ６００が出力する出力信号ＴＤＯ＿３を選択して、出力端子４７及びＴＤＯ端子１５を介してこの出力信号ＴＤＯ＿３を出力する。
【００４５】
上記説明より、本実施の形態にかかるテスト回路は、マスタＴＡＰコントローラ４０が選択用命令コードに基づき選択信号を出力することが可能な標準ＴＡＰコントローラ４００と、選択信号に基づきＴＭＳ端子１４及び入力端子４８を介して入力されるＴＭＳ信号の出力先を選択する選択回路と、有する。
【００４６】
これによって、テスト回路は、複数の標準ＴＡＰコントローラのうち動作させるもののみを選択用命令コードに基づき選択し、選択した標準ＴＡＰコントローラをＩＥＥＥ１１４９．１に準拠した動作で使用することが可能になる。また、本実施の形態にかかる選択用命令コードは、ＩＥＥＥ１１４９．１の規定に違反することはない。つまり、本実施の形態にかかるテスト回路は、選択用命令コードを追加してもＩＥＥＥ１１４９．１の規定に違反することはなく、ＩＥＥＥ１１４９．１に準拠した動作によって複数の標準ＴＡＰコントローラを制御することが可能である。従って、本発明にかかるテスト回路を有する半導体装置１は、他の半導体装置とともに基板上に搭載される場合であっても、他の半導体装置とＩＥＥＥ１１４９．１の規格において不整合を起こすことなく動作させることが可能である。
【００４７】
さらに、本実施の形態では、半導体装置１には、一組の共通テスト端子を備えるのみであり、複数の標準ＴＡＰコントローラを制御するためにその他の端子を追加する必要がない。つまり、複数の標準ＴＡＰコントローラを最小限の端子で制御することが可能である。
【００４８】
実施の形態２
実施の形態２にかかる半導体装置２のブロック図を図５に示す。図５に示すように、実施の形態２にかかるテスト回路は、マスタＴＡＰコントローラ４０に加えて、第３のコントローラ（例えば、サブマスタＴＡＰコントローラ）５０を有する。サブマスタＴＡＰコントローラ５０は、マスタＴＡＰコントローラが出力する第１の内部ＴＭＳ信号ＴＭＳ＿２と選択用命令コードとに基づき標準ＴＡＰコントローラ８００に第２の内部ＴＭＳ信号ＴＭＳ＿４を出力する。なお、サブマスタＴＡＰコントローラ５０は、選択用命令コードをデコードする機能を有する第３のＴＡＰコントローラを有する。本実施の形態では、サブマスタＴＡＰコントローラ５０に内蔵される標準ＴＡＰコントローラ５００が第３のＴＡＰコントローラに相当するものである。
【００４９】
図６にサブマスタＴＡＰコントローラのブロック図を示す。図６に示すように、サブマスタコントローラは、標準ＴＡＰコントローラ５００と選択回路５１０を有している。実施の形態２における標準ＴＡＰコントローラ５００は、実施の形態１にかかる標準ＴＡＰコントローラ５００に出力信号として第２の選択信号ＥＮ４（以下、単に選択信号ＥＮ４と称す）を出力する機能を持たせたものである。なお、選択信号ＥＮ４は、複数の出力信号のうちの１つの信号として出力されるものである。また、選択信号ＥＮ４を出力するための選択用命令コードとしては、例えば"００１００"を用いる。
【００５０】
選択回路５１０は、実施の形態１にかかる選択回路４１０に対して、選択可能なＴＭＳ信号の種類を削減したものである。選択回路５１０は、ＡＮＤゲート５１１、５１２、出力選択回路５１３を有している。ＡＮＤゲート５１１は、入力端子５８から入力される第１のＴＭＳ信号ＴＭＳ＿２と、選択信号ＥＮ４の反転信号と、の論理積を出力する。ＡＮＤゲート５１１の出力は、標準ＴＡＰコントローラ５００への第２の内部ＴＭＳ信号ＴＭＳ＿２ａとなる。ＡＮＤゲート５１２は、入力端子５８から入力される第１のＴＭＳ信号ＴＭＳ＿２と、選択信号ＥＮ４と、の論理積を出力する。ＡＮＤゲート５１２の出力は、出力端子５４から出力され、標準ＴＡＰコントローラ８００への第２の内部ＴＭＳ信号ＴＭＳ＿４となる。
【００５１】
出力選択回路５１３は、入力端子５５から入力される標準ＴＡＰコントローラ８００の出力信号ＴＤＯ＿４と、標準ＴＡＰコントローラ５００の出力信号ＴＤＯ＿２のうちいずれか１つを選択信号ＥＮ４に基づき選択して出力端子５７から出力する。
【００５２】
上記説明より、実施の形態２にかかるテスト回路では、マスタＴＡＰコントローラに従属接続されるＴＡＰコントローラであっても、他の標準ＴＡＰコントローラを制御することが可能である。上記説明のサブマスタＴＡＰコントローラは複数存在していても良い。このサブマスタＴＡＰコントローラを設けることで、テスト回路におけるＴＡＰコントローラの制御性をさらに高めることが可能である。
【００５３】
実施の形態３
実施の形態３にかかる半導体装置３のブロック図を図７に示す。図７に示すように、実施の形態３にかかるテスト回路においては、第１の内部ＴＭＳ信号ＴＭＳ＿３が標準ＴＡＰコントローラ６００、８００の２つの標準ＴＡＰコントローラに入力されるものである。この場合、マスタＴＡＰコントローラ４０では、出力信号ＴＤＯを３つまでしか選択することができないため、調停回路としてＯＲゲート９００を用いて、出力信号ＴＤＯ＿３と出力信号ＴＤＯ＿４との調停を行なう。
【００５４】
このように、調停回路によって出力信号ＴＤＯの調停を行なうことによって、１つの第１の内部ＴＭＳ信号を複数の標準ＴＡＰコントローラに入力することも可能である。
【００５５】
実施の形態４
実施の形態４にかかる半導体装置４のブロック図を図８に示す。図８に示すように、実施の形態４にかかるテスト回路は、第１の内部ＴＭＳ信号ＴＭＳ＿３が第４のＴＡＰコントローラ（例えば、標準ＴＡＰコントローラ６００）と、第２のコントローラ（例えば、標準ＴＡＰコントローラ８００）の２つの標準ＴＡＰコントローラに入力され、標準ＴＡＰコントローラ８００の出力信号を標準ＴＡＰコントローラ６００の命令コードとするものである。つまり、命令コードに関して標準ＴＡＰコントローラを従属接続関係としても、本発明の効果を得ることは可能である。
【００５６】
実施の形態５
実施の形態５にかかる標準ＴＡＰコントローラ４００ａのブロック図を図９に示す。標準ＴＡＰコントローラ４００ａは、実施の形態１にかかる標準ＴＡＰコントローラ４００に代えて使用されるものである。図９に示すように、標準ＴＡＰコントローラ４００ａは、標準ＴＡＰコントローラ４００に選択信号生成回路４２０を加えたものである。
【００５７】
選択信号生成回路４２０は、ＴＡＰセレクトレジスタ４２１と、ＴＡＰセレクトデコーダ４２２を有している。ＴＡＰセレクトレジスタ４２１は、選択用命令コードを格納する。ＴＡＰセレクトデコーダ４２２は、ＴＡＰセレクトレジスタ４２１に格納されている選択用命令コードをデコードして選択信号ＥＮ２、ＥＮ３を出力する。なお、ＴＡＰセレクトレジスタ４２１にはＴＤＩ端子４０３から選択用命令コードが入力され、ＴＣＫ端子４０２からクロック信号が入力され、ＴＲＳＴ端子からリセット信号が入力され、ステートマシン４０６からステートマシン４０６がＲｕｎ−Ｔｅｓｔ／Ｉｄｌｅであることを示す信号が入力される。
【００５８】
ここで、ＴＡＰセレクトレジスタ４２１のブロック図を図１０に示し、ＴＡＰセレクトレジスタ４２１の動作について説明する。図１０に示すように、ＴＡＰセレクトレジスタ４２１は、ＡＮＤゲート４４０、Ｄフリップフロップ４４１〜４４５を有している。ＡＮＤゲート４４０は、ステートマシン４０６がＲｕｎ−Ｔｅｓｔ／Ｉｄｌｅであることを示す信号がハイレベルである場合に、クロック信号をＤフリップフロップ４４１〜４４５に出力する。一方、ＡＮＤゲート４４０は、ステートマシン４０６がＲｕｎ−Ｔｅｓｔ／Ｉｄｌｅであることを示す信号がロウレベルである場合に、Ｄフリップフロップ４４１〜４４５へのクロック信号の出力を停止する。
【００５９】
Ｄフリップフロップ４４１〜４４５は、それぞれが直列に接続されたシフトレジスタ構成になっている。このシフトレジスタは、クロック信号の立ち上がりに応じて、選択用命令コードのデータをシフトさせながら記憶する。また、Ｄフリップフロップ４４１〜４４５は、リセット信号がハイレベルになると出力をロウレベルとする。なお、Ｄフリップフロップ４４１〜４４５の出力は、それぞれ出力端子４３５〜４３９を介してＴＡＰセレクトデコーダ４２２に接続される。
【００６０】
上記構成により、選択信号生成回路４２０は、ステートマシン４０６がＲｕｎ−Ｔｅｓｔ／Ｉｄｌｅの状態であるときに、選択用命令コードの入力とデコードを行なう。標準ＴＡＰコントローラ４００に対して選択信号生成回路４２０を追加しても、標準ＴＡＰコントローラ４００ａのＩＥＥＥ１１４９．１に関する動作は何ら規格を違反するものではない。つまり、選択信号生成回路４２０を標準ＴＡＰコントローラに追加することで、標準ＴＡＰコントローラに選択信号を出力する機能を追加可能である。従って、この選択信号生成回路４２０を予め準備することで、本発明にかかる標準ＴＡＰコントローラを容易に設計することが可能である。
【００６１】
実施の形態６
実施の形態６は、実施の形態１の半導体装置１におけるマスタＴＡＰコントローラの変形例を示すものである。実施の形態４において、マスタＴＡＰコントローラ４０から出力される第１の内部ＴＭＳ信号ＴＭＳ＿３を標準ＴＡＰコントローラ６００と、標準ＴＡＰコントローラ８００とに入力することで２つの標準ＴＡＰコントローラを選択する例を示した。これに対して、実施の形態６は、マスタＴＡＰコントローラ４０の変形例を示すものである。実施の形態６におけるマスタＴＡＰコントローラ４０ａは、内蔵される標準ＴＡＰコントローラ４００に与える選択用命令コード及び選択回路の構成を変更することで、１つの内部ＴＭＳ信号を複数の標準ＴＡＰコントローラに同時に与えることなく、複数のＴＡＰコントローラを選択するものである。また、実施の形態４においては、ＴＡＰコントローラとは別にＯＲ回路を設けることで複数の標準コントローラの出力を１つの出力信号としたが、実施の形態６では、任意の出力信号を選択できる出力選択回路を有する。以下、実施の形態６におけるマスタＴＡＰコントローラ４０ａについて詳細に説明する。
【００６２】
実施の形態６にかかるマスタＴＡＰコントローラ４０ａのブロック図を図１１に示す。マスタＴＡＰコントローラ４０ａは、標準ＴＡＰコントローラ４００及び選択回路４１０ａを有する。標準ＴＡＰコントローラ４００は、上記実施の形態で使用したものと同じものであるが、与えられる選択用命令コードの構成の変更に応じて複数の出力信号Ｄｏのうち６つを選択信号として用いる。また、６つの選択信号のうち３つの第１の選択信号（例えば、選択信号ＴＥ１〜ＴＥ３）を第１の内部ＴＭＳ信号の選択に用い、第１の選択信号のうち残る３つの信号を第３の選択信号（例えば、選択信号ＯＥ１〜ＯＥ３）として出力信号ＴＤＯの選択に用いる。なお、本実施の形態においても、標準ＴＡＰコントローラ４００に入力される選択用命令コードは、ＩＥＥＥ１１４９．１において許容されている範囲内で定義される。本実施の形態で用いる選択用命令コードの詳細は後述する。
【００６３】
選択回路４１０ａは、ＡＮＤゲート４１１ａ、４１２ａ、４１２ｂ、出力選択回路４１３ａを有する。ＡＮＤゲート４１１ａは、一方の入力端子に入力端子４８を介してＴＭＳ信号ＴＭＳが入力され、他方の入力端子に標準ＴＡＰコントローラ４００が出力する選択信号ＴＥ１が入力される。そして、ＡＮＤゲート４１１ａは、入力される信号の論理積を第１の内部ＴＭＳ信号ＴＭＳ＿１として出力する。ＡＮＤゲート４１２ａは、選択信号ＴＥ２が一方の入力端子に入力され、入力端子４８を介して入力されるＴＭＳ信号が他方の入力端子に入力される。そして、ＡＮＤゲート４１２ａは、入力される信号の論理積を第１の内部ＴＭＳ信号ＴＭＳ＿２として出力する。ＡＮＤゲート４１２ｂは、選択信号ＴＥ３が一方の入力端子に入力され、入力端子４８を介して入力されるＴＭＳ信号が他方の入力端子に入力される。そして、ＡＮＤゲート４１２ｂは、入力される信号の論理積を第１の内部ＴＭＳ信号ＴＭＳ＿３として出力する。
【００６４】
出力選択回路４１３ａは、選択信号ＯＥ１〜ＯＥ３の値に基づき、出力信号ＴＤＯ＿１〜ＴＤＯ＿３のいずれか１つを選択して最終的な出力信号ＴＤＯとして出力端子４７に出力する。ここで、出力選択回路４１３ａの真理値表の一例を図１２に示す。図１２に示すように、出力選択回路４１３ａは、選択信号ＯＥ１の論理値が"１"であれば出力信号ＴＤＯ＿１を最終的な出力信号ＴＤＯとして出力する。選択信号ＯＥ２の論理値が"１"であれば出力信号ＴＤＯ＿２を最終的な出力信号ＴＤＯとして出力する。選択信号ＯＥ３の論理値が"１"であれば出力信号ＴＤＯ＿３を最終的な出力信号ＴＤＯとして出力する。なお、以下の説明では、論理値が"１"となる状態を選択信号のアクティブ状態と称す。
【００６５】
ここで、実施の形態６における選択用命令コードについて説明する。実施の形態６で用いる選択用命令コードの一例を図１３に示す。図１３に示すように、実施の形態６では、５ビットの命令長を有する命令コードを用いる。図１３に示す例では選択用命令コードのうち左側の値を上位ビットとした場合、選択用命令コードは、上位２ビットが選択信号ＯＥ１〜ＯＥ３のアクティブ状態を制御する値として定義され、下位３ビットが選択信号ＴＥ１〜ＴＥ３のアクティブ状態を制御する値として定義される。
【００６６】
図１３に示す例では、上位２ビットの値が"０１"であれば選択信号ＯＥ１がアクティブとなり、"１０"であれば選択信号ＯＥ２がアクティブとなり、"１１"であれば、選択信号ＯＥ３がアクティブとなる。また、下位３ビットのうち最も上位のビットが"１"であれば、選択信号ＴＥ１がアクティブとなり、下位３ビットのうち上位２ビット目が"１"であれば選択信号ＴＥ２がアクティブとなり、下位３ビットのうち最も下位のビットが"１"であれば選択信号ＴＥ３がアクティブとなる。なお、図１３に示す選択用命令コードにおいては、選択信号ＴＥ１及びＯＥ１がアクティブになる"００１０１"がリセット初期値として設定される。このリセット初期値は、別の選択用命令コードに設定しても良く、例えば、図１４に示すように選択信号ＴＥ１、ＴＥ２及びＯＥ１がアクティブになる"０１１１０"をリセット初期値としても良い。
【００６７】
選択用命令コードをこのように定義することで、例えば、選択用命令コードが"０１１１０"であった場合、選択信号ＴＥ１、ＴＥ２、ＯＥ２がアクティブとなる。そのため、テスト回路の動作としては、マスタＴＡＰコントローラ４０ａと標準ＴＡＰコントローラ５００がアクティブになり、マスタＴＡＰコントローラ４０ａは最終的な出力信号として標準ＴＡＰコントローラ５００が出力する出力信号ＴＤＯ＿２を出力する。
【００６８】
実施の形態６におけるテスト回路では、選択用命令コードの構成を変更することで、複数の第１の内部ＴＭＳ信号をアクティブにすることができる。また、出力選択回路４１３ａは、選択信号ＯＥ１〜ＯＥ３の値に応じて複数の出力信号ＴＤＯ＿１〜ＴＤＯ＿３のいずれか１つを選択できる構成とした。これにより、実施の形態６におけるテスト回路は、複数の標準ＴＡＰコントローラにより、同時に被テスト回路に対するテストを実施し、いずれか１つの標準ＴＡＰコントローラの出力を任意に選択して取り出すことができる。つまり、実施の形態６にかかるテスト回路は、選択用命令コードの定義によって、複数の標準ＴＡＰコントローラをアクティブにするものであり、上記実施の形態よりも自由度の高いテストを実施することが可能である。
【００６９】
実施の形態７
実施の形態６では、出力選択回路４１３ａは３つの出力信号のうち１つを選択するものであったが、実施の形態７の出力選択回路４１３ｂは、３つの出力信号のうち２つを選択できる構成としたものである。この出力選択回路４１３ｂを有するマスタＴＡＰコントローラ４０ｂのブロック図を図１５に示す。図１５においては、出力選択回路４１３ｂを有する選択回路を選択回路４１０ｂとした。
【００７０】
出力選択回路４１３ｂの真理値表を図１６に示す。図１５に示すように、出力選択回路４１３ｂは、選択信号ＯＥ１〜ＯＥ３及び出力信号ＴＤＯ＿１〜ＴＤＯ３に加えてクロック信号ＴＣＫが入力される。そして、図１６の真理値表に示すように、３つの選択信号のうち２つがアクティブになった場合、出力選択回路４１３ｂは、クロック信号ＴＣＫの論理値に応じて出力する出力信号を切り替える。図１６に示す例では、選択信号ＯＥ１〜ＯＥ３のいずれか１つがアクティブである場合、出力選択回路４１３ｂは、選択信号に応じていずれか１つの出力信号を選択する。一方、選択信号ＯＥ１〜ＯＥ３のうち２つがアクティブであった場合、クロック信号の論理値が"０"のときに選択指定された出力信号のうち小さい数字の出力信号を選択し、クロック信号の論理値が"１"のときに選択指定された出力信号のうち大きな数字の出力信号を選択する。例えば、選択信号ＯＥ１及びＯＥ２がアクティブであった場合、クロック信号の論理値が"１"のときに出力信号ＴＤＯ＿１を選択し、クロック信号の論理値が"０"であった場合に出力信号ＴＤＯ＿２を選択する。
【００７１】
また、実施の形態７では、選択信号ＯＥ１〜ＯＥ３のうち２つの選択信号をアクティブにするために、選択用命令コードとして６ビットの命令長の命令コードを用いる。実施の形態７において用いる選択用命令コードの例を図１７に示す。図１７に示す例では選択用命令コードのうち左側の値を上位ビットとした場合、選択用命令コードは、上位３ビットが選択信号ＯＥ１〜ＯＥ３のアクティブ状態を制御する値として定義され、下位３ビットが選択信号ＴＥ１〜ＴＥ３のアクティブ状態を制御する値として定義される。
【００７２】
図１７に示す例では、上位３ビットのうち最も上位のビットが"１"であれば、選択信号ＯＥ１がアクティブとなり、上位３ビットのうち上位２ビット目が"１"であれば選択信号ＯＥ２がアクティブとなり、上位３ビットのうち最も下位のビットが"１"であれば選択信号ＯＥ３がアクティブとなる。また、下位３ビットのうち最も上位のビットが"１"であれば、選択信号ＴＥ１がアクティブとなり、下位３ビットのうち上位２ビット目が"１"であれば選択信号ＴＥ２がアクティブとなり、下位３ビットのうち最も下位のビットが"１"であれば選択信号ＴＥ３がアクティブとなる。なお、図１７に示す選択用命令コードにおいては、選択信号ＴＥ１及びＯＥ１がアクティブになる"００１００１"がリセット初期値として設定される。
【００７３】
実施の形態６では、選択信号ＯＥ１〜ＯＥ３はいずれか１つしかアクティブにすることができなかった。しかし、選択用命令コードをこのように定義することで、実施の形態７では、選択信号ＯＥ１〜ＯＥ３のうち２つをアクティブにすることができる。例えば、選択用命令コードが"０１１０１１"であった場合は、選択信号ＴＥ１、ＴＥ２、ＯＥ１、ＯＥ２をアクティブにすることができる。
【００７４】
上記説明より、実施の形態７にかかるテスト回路は、２つの標準ＴＡＰコントローラを同時にアクティブにし、アクティブになった標準ＴＡＰコントローラのそれぞれの出力信号をクロック信号の値に応じて交互に取り出すことができる。つまり、実施の形態７にかかるテスト回路は、上記実施の形態よりも、上記実施の形態よりも自由度の高いテストを実施し、かつ、テスト結果の高い観測性を実現することが可能である。
【００７５】
実施の形態８
実施の形態８にかかるマスタＴＡＰコントローラ４０ｃのブロック図を図１８に示す。図１８に示すようにマスタＴＡＰコントローラ４０ｃは、実施の形態６におけるマスタＴＡＰコントローラ４０ａの出力選択回路４１３ａに代えて出力選択回路４１３ｃを有する。出力選択回路４１３ｃは、入力される出力信号ＴＤＯ＿１〜ＴＤＯ３のうち選択された出力信号の排他的論理和（ＸＯＲ）を最終的な出力信号として出力端子４７を介して出力する。図１８においては、出力選択回路４１３ｃを有する選択回路を選択回路４１０ｃとした。
【００７６】
ここで、出力選択回路４１３ｃの真理値表を図１９に示す。図１９に示すように、出力選択回路４１３ｃは、選択信号ＯＥ１〜ＯＥ３に応じて選択された出力信号の排他的論理和を最終的な出力信号ＴＤＯとして出力する。つまり、出力選択回路４１３ｃは、出力信号ＴＤＯ＿１〜ＴＤＯ３の排他的論理和を演算することで、複数の出力信号のデータの圧縮を行なう。
【００７７】
なお、実施の形態８では、選択用命令コードとして６ビットの命令長の命令コードを使用する。実施の形態８において用いる選択用命令コードの例を図２０に示す。図２０に示すように、実施の形態８において使用する選択用命令コードは、図１７に示した実施の形態７で用いる選択用命令コードに"１１１１１１"となるコードを追加したものである。選択用命令コードが"１１１１１１"であった場合、選択信号ＴＥ１〜ＴＥ３及びＯＥ１〜ＯＥ３がすべてアクティブとなる。
【００７８】
上記説明より、実施の形態８にかかるテスト回路は、出力選択回路４１３ｃにおいて、出力信号のデータの圧縮を行なう。そのため、実施の形態８にかかるテスト回路は、複数の標準ＴＡＰコントローラの出力を一度に読み出すことができる。つまり、実施の形態８にかかるテスト回路は、他の実施例よりもテスト結果を高速に読み出すことが可能ある。
【００７９】
実施の形態９
実施の形態９にかかる半導体装置５のブロック図を図２１に示す。図２１に示すように、実施の形態９にかかる半導体装置５は、マスタＴＡＰコントローラ４０ｄを有する。上記実施の形態では、各標準ＴＡＰコントローラへの命令コードを共通テスト端子として設定されるＴＤＩ端子から入力していた。これに対して、実施の形態９にかかるテスト回路では、共通テスト端子として設定されるＴＤＩ端子から入力される命令コードはマスタＴＡＰコントローラ４０ｄにのみ入力され、他の標準ＴＡＰコントローラには、マスタＴＡＰコントローラ４０ｄを介して命令コード（例えば、ＴＤＩ＿２、ＴＤＩ＿３）が入力される。
【００８０】
このマスタＴＡＰコントローラ４０ｄのブロック図を図２２に示す。図２２に示すように、マスタＴＡＰコントローラ４０ｄは、実施の形態６のマスタＴＡＰコントローラ４０ａにおける出力選択回路４１３ａに代えて出力選択回路４１３ｄを有する。また、マスタＴＡＰコントローラ４０ｄは、他の標準ＴＡＰコントローラに命令コードを出力する出力端子４３ａ及び４３ｄが追加されている。図２２においては、出力選択回路４１３ｄを有する選択回路を選択回路４１０ｄとした。
【００８１】
出力選択回路４１３は、非選択信号として、出力信号ＴＤＯ＿１〜ＴＤＯ３に加えて命令コードが入力端子４３から入力される。出力選択回路４１３ｄは、選択信号ＯＥ１〜ＯＥ３の値に応じて、出力信号ＴＤＯ＿１〜ＴＤＯ３及び命令コードを命令コードＴＤＩ＿２、ＴＤＩ＿３及び出力信号ＴＤＯのいずれかとして出力する。出力選択回路４１３ｄの真理値表の一例を図２３に示す。図２３に示す例では、選択信号ＯＥ１〜ＯＥ３のいずれか１つがアクティブであった場合、出力選択回路４１３ｄは、選択信号の値に応じて選択された出力信号ＴＤＯ＿１〜ＴＤＯ３の１つを出力信号ＴＤＯとして出力し、命令コードＴＤＩ＿２、ＴＤＯ＿３として、外部から入力される命令コードＴＤＩを出力する。一方、選択信号ＯＥ１〜ＯＥ３のうち複数の選択信号がアクティブであった場合、いずれか１つの出力信号を他の標準ＴＡＰコントローラへの命令コードとして出力する。
【００８２】
図２３の真理値表の例では、選択信号ＯＥ１及びＯＥ２がアクティブであった場合、標準ＴＡＰコントローラ４００の出力信号ＴＤＯ＿１を標準ＴＡＰコントローラ５００への命令コードＴＤＩ＿２とする。そして、標準ＴＡＰコントローラ５００の出力信号ＴＤＯ＿２を最終的な出力信号ＴＤＯとする。このとき、命令コードＴＤＩ＿３として外部から入力される命令コードＴＤＩを出力する。
【００８３】
選択信号ＯＥ２及びＯＥ３がアクティブであった場合、標準ＴＡＰコントローラ５００の出力信号ＴＤＯ＿２を標準ＴＡＰコントローラ６００への命令コードＴＤＩ＿３とする。そして、標準ＴＡＰコントローラ６００の出力信号ＴＤＯ＿３を最終的な出力信号ＴＤＯとする。このとき、命令コードＴＤＩ＿２として外部から入力される命令コードＴＤＩを出力する。
【００８４】
選択信号ＯＥ１及びＯＥ３がアクティブであった場合、標準ＴＡＰコントローラ４００の出力信号ＴＤＯ＿１を標準ＴＡＰコントローラ６００への命令コードＴＤＩ＿３とする。そして、標準ＴＡＰコントローラ６００の出力信号ＴＤＯ＿３を最終的な出力信号ＴＤＯとする。このとき、命令コードＴＤＩ＿２として外部から入力される命令コードＴＤＩを出力する。
【００８５】
選択信号ＯＥ１、ＯＥ２及びＯＥ３がアクティブであった場合、標準ＴＡＰコントローラ４００の出力信号ＴＤＯ＿１を標準ＴＡＰコントローラ５００への命令コードＴＤＩ＿２とする。また、標準ＴＡＰコントローラ５００の出力信号ＴＤＯ＿２を標準ＴＡＰコントローラ６００への命令コードＴＤＩ＿３とする。そして、標準ＴＡＰコントローラ６００の出力信号ＴＤＯ＿３を最終的な出力信号ＴＤＯとする。
【００８６】
上記説明より、実施の形態９にかかるテスト回路では、複数の選択信号がアクティブとした場合、標準ＴＡＰコントローラをそれぞれ縦続的に接続できる。言い換えると、実施の形態９にかかる半導体装置１では、標準ＴＡＰコントローラをチェーン接続の形態とすることができる。これによって、例えば複数の標準ＴＡＰコントローラをスキャンチェーンのように用いることができる。つまり、複数の標準ＴＡＰコントローラに対して１つのデータ列を用いて命令コードを設定し、複数の標準ＴＡＰコントローラで得られたテスト結果を１つのデータ列として取り出すことができる。このように標準ＴＡＰコントローラをチェーン接続することで、複数の被テスト回路を互いに協調動作させるようなテストに対するテストパターン作成の容易化とテストの実行性の向上とを実現することができる。
【００８７】
以上述べたように、本発明によれば、複数のＴＡＰコントローラの中から任意のＴＡＰコントローラを選択する選択用命令コードを新設した。また、マスタＴＡＰコントローラにその選択用命令コードをデコードする命令デコーダと、その命令デコーダのデコード結果に基づいて他のＴＡＰコントローラを制御する選択回路を設けた。そのようにすることにより、マスタＴＡＰコントローラ、サブマスタコントローラ以外の他の標準仕様のＴＡＰコントローラの仕様変更及びＩＥＥＥ１１４９に規定される１つの端子群（例えば、ＴＤＩ端子１１、ＴＣＫ端子１２、ＴＲＳＴ端子１３、ＴＭＳ端子１４、及び、ＴＤＯ端子１５により構成される端子群）への新たな端子の追加を行なうことなく、複数のＴＡＰコントローラを実装することができる。また、マスタＴＡＰコントローラ、サブマスタＴＡＰコントローラも、標準仕様のＴＡＰコントローラに選択用命令コードをデコードする機能を付加したものであるので、標準仕様のＴＡＰコントローラとして用いることができる。
【００８８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、選択用命令コードは上記実施の形態において示したものに限らず、ＩＥＥＥ１１４９の規格に準拠したものであれば特に制限なく定義することが可能である。また、実施の形態６〜９における選択回路と同等のものをサブマスタＴＡＰコントローラ５０に使用することも可能である。
【図面の簡単な説明】
【００８９】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかるマスタＴＡＰコントローラのブロック図である。
【図３】実施の形態１にかかる標準ＴＡＰコントローラと被テストブロックのブロック図である。
【図４】実施の形態１にかかるステートマシンの状態遷移図である。
【図５】実施の形態２にかかる半導体装置の図である。
【図６】実施の形態２にかかるサブマスタＴＡＰコントローラのブロック図である。
【図７】実施の形態３にかかる半導体装置のブロック図である。
【図８】実施の形態４にかかる半導体装置のブロック図である。
【図９】実施の形態５にかかるマスタＴＡＰコントローラのブロック図である。
【図１０】実施の形態５にかかるマスタＴＡＰコントローラにおけるＴＡＰセレクトレジスタのブロック図である。
【図１１】実施の形態６にかかるマスタＴＡＰコントローラのブロック図である。
【図１２】実施の形態６にかかる出力選択回路の真理値表である。
【図１３】実施の形態６にかかる標準ＴＡＰコントローラへの選択用命令コードとこれに対応してアクティブになる選択信号の関係を示す図である。
【図１４】実施の形態６にかかる標準ＴＡＰコントローラへの選択用命令コードとこれに対応してアクティブになる選択信号の別の関係を示す図である。
【図１５】実施の形態７にかかるマスタＴＡＰコントローラのブロック図である。
【図１６】実施の形態７にかかる出力選択回路の真理値表である。
【図１７】実施の形態７にかかる標準ＴＡＰコントローラへの選択用命令コードとこれに対応してアクティブになる選択信号の関係を示す図である。
【図１８】実施の形態８にかかるマスタＴＡＰコントローラのブロック図である。
【図１９】実施の形態８にかかる出力選択回路の真理値表である。
【図２０】実施の形態８にかかる標準ＴＡＰコントローラへの選択用命令コードとこれに対応してアクティブになる選択信号の関係を示す図である。
【図２１】実施の形態９にかかる半導体装置のブロック図である。
【図２２】実施の形態９にかかるマスタＴＡＰコントローラのブロック図である。
【図２３】実施の形態９にかかる出力選択回路の真理値表である。
【図２４】従来の半導体装置の図である。
【符号の説明】
【００９０】
１〜５    半導体装置
１００〜３００、７００    被テストブロック
４００〜６００    、８００、４００ａ    標準ＴＡＰコントローラ
４０、４０ａ〜４０ｄ    マスタＴＡＰコントローラ
５０    サブマスタＴＡＰコントローラ
１１、２０１、４０３、４３４、５０３    ＴＤＩ端子
１２、４０２、５０２、４３３    ＴＣＫ端子
１３、４０１、５０１、４３１    ＴＲＳＴ端子
１４、４０５、５０５    ＴＭＳ端子
１５、４０４、５０４    ＴＤＯ端子
４３ａ、４３ｂ、４４ａ、４４ｂ、４７、５４、５７、４３５〜４３９    出力端子
４１〜４３、４５ａ、４５ｂ    、４８、５５、５８、４３２    入力端子
４４１〜４４５    Ｄフリップフロップ
２０２    被テスト回路
２０３    データレジスタ
２０４    マルチプレクサ
４０６    ステートマシン
４１０、４１０ａ〜４１０ｄ、５１０    選択回路
４１１、４１１ａ、４１２ａ、４１２ｂ、４４０、５１１、５１２    ＡＮＤゲート
４１３、４１３ａ〜４１３ｄ、５１３    出力選択回路
４２０    選択信号生成回路
４２１    セレクトレジスタ
４２２    セレクトデコーダ
５０６    ステートマシン
５０７    命令レジスタ
５０８    命令デコーダ
５０９    マルチプレクサ
９００    ＯＲゲート
Ｄｉ    データ入力端子
Ｄｏ    信号出力端子
ＥＮ２〜ＥＮ３、ＴＥ１〜ＴＥ３、ＯＥ１〜ＯＥ３    選択信号
ＴＣＫ    クロック信号
ＴＤＯ    出力信号
ＴＤＯ＿１〜ＴＤＯ＿４    出力信号
ＴＭＳ＿１〜ＴＭＳ＿４    内部ＴＭＳ信号
【図１】
2008310792.tif 000003
【図２】
2008310792.tif 000004
【図３】
2008310792.tif 000005
【図４】
2008310792.tif 000006
【図５】
2008310792.tif 000007
【図６】
2008310792.tif 000008
【図７】
2008310792.tif 000009
【図８】
2008310792.tif 000010
【図９】
2008310792.tif 000011
【図１０】
2008310792.tif 000012
【図１１】
2008310792.tif 000013
【図１２】
2008310792.tif 000014
【図１３】
2008310792.tif 000015
【図１４】
2008310792.tif 000016
【図１５】
2008310792.tif 000017
【図１６】
2008310792.tif 000018
【図１７】
2008310792.tif 000019
【図１８】
2008310792.tif 000020
【図１９】
2008310792.tif 000021
【図２０】
2008310792.tif 000022
【図２１】
2008310792.tif 000023
【図２２】
2008310792.tif 000024
【図２３】
2008310792.tif 000025
【図２４】
2008310792.tif 000026