(57)【要約】  集積回路のテスト回路は、スキャンインデータを第１信号線を介して集積回路に供給し、スキャンアウトデータを集積回路から第２信号線を介して受けるテスト制御部を有し、テスト制御部は、スキャンインデータが集積回路で折り返されるように集積回路を制御し、スキャンインデータを第１信号線を介して集積回路に供給する信号制御部と、集積回路に供給するスキャンインデータを信号制御部から受け、スキャンインデータの折り返しデータを集積回路から第２信号線を介して受け、スキャンインデータと折り返しデータとを比較して、折り返しデータが正しいか否かを判定する判定部とを有している。
2015198367.tif 000002
【特許請求の範囲】
【請求項１】
集積回路のテスト回路であって、
スキャンインデータを第１信号線を介して前記集積回路に供給し、スキャンアウトデータを前記集積回路から第２信号線を介して受けるテスト制御部を備え、
前記テスト制御部は、
前記スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、前記スキャンインデータを前記第１信号線を介して前記集積回路に供給する信号制御部と、
前記集積回路に供給する前記スキャンインデータを前記信号制御部から受け、前記スキャンインデータの折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する判定部と
を備えていることを特徴とするテスト回路。
【請求項２】
請求項１に記載のテスト回路において、
前記集積回路内に設けられ、前記スキャンインデータを受け、前記折り返しデータとして前記スキャンインデータをテスト用のクロックに同期して前記判定部に出力するフリップフロップを有し、
前記信号制御部は、前記テスト用のクロックを前記集積回路に供給する
ことを特徴とする集積回路のテスト回路。
【請求項３】
請求項２に記載の集積回路のテスト回路において、
前記判定部は、
前記信号制御部から受けた前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させて出力するタイミング調整部と、
前記所定のサイクル数分遅延させられた前記スキャンインデータを前記タイミング調整部から受け、前記折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較する比較部と
を備えていることを特徴とする集積回路のテスト回路。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の集積回路のテスト回路において、
前記判定部は、前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを受け、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト回路。
【請求項５】
集積回路と、前記集積回路をテストするテスト回路とを備え、
前記テスト回路は、スキャンインデータを第１信号線を介して前記集積回路に供給し、スキャンアウトデータを前記集積回路から第２信号線を介して受けるテスト制御部を有し、
前記テスト制御部は、
前記スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、前記スキャンインデータを前記第１信号線を介して前記集積回路に供給する信号制御部と、
前記集積回路に供給する前記スキャンインデータを前記信号制御部から受け、前記スキャンインデータの折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する判定部と
を備えていることを特徴とする情報処理装置。
【請求項６】
請求項５に記載の情報処理装置において、
前記集積回路は、前記スキャンインデータを受け、前記折り返しデータとして前記スキャンインデータをテスト用のクロックに同期して前記判定部に出力するフリップフロップを有し、
前記信号制御部は、前記テスト用のクロックを前記集積回路に供給する
ことを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置において、
前記判定部は、
前記信号制御部から受けた前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させて出力するタイミング調整部と、
前記所定のサイクル数分遅延させられた前記スキャンインデータを前記タイミング調整部から受け、前記折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較する比較部と
を備えていることを特徴とする情報処理装置。
【請求項８】
請求項５ないし請求項７のいずれか１項に記載の情報処理装置において、
前記判定部は、前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを受け、前記折り返しデータが正しいか否かを判定する
ことを特徴とする情報処理装置。
【請求項９】
集積回路のテスト方法であって、
スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、
前記スキャンインデータをテスト制御部から前記第１信号線を介して前記集積回路に転送し、
前記スキャンインデータの折り返しデータを前記集積回路から第２信号線を介して前記テスト制御部に転送し、
前記テスト制御部で保持している前記スキャンインデータと前記テスト制御部に転送された前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト方法。
【請求項１０】
請求項９に記載の集積回路のテスト方法において、
テスト用のクロックを前記テスト制御部から前記集積回路に転送し、
前記スキャンインデータを前記テスト制御部から前記第１信号線を介して前記集積回路内のフリップフロップに転送し、
前記スキャンインデータを受けた前記フリップフロップの出力信号を前記折り返しデータとして、前記集積回路から前記テスト制御部に前記テスト用のクロックに同期して転送する
ことを特徴とする集積回路のテスト方法。
【請求項１１】
請求項１０に記載の集積回路のテスト方法において、
前記テスト制御部に保持している前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させ、
前記集積回路から前記第２信号線を介して前記テスト制御部に転送された前記折り返しデータと、前記所定のサイクル数分遅延させられた前記スキャンインデータとを比較する
ことを特徴とする集積回路のテスト方法。
【請求項１２】
請求項９ないし請求項１１のいずれか１項に記載の集積回路のテスト方法において、
前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを前記集積回路から前記第２信号線を介して前記テスト制御部に転送し、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路のテスト回路、情報処理装置および集積回路のテスト方法に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）の高集積化やプリント基板の高密度化に伴い、ＬＳＩやプリント基板のテストが困難になってきている。このため、例えば、ＩＥＥＥ１１４９．１としてＪＴＡＧ（Joint Test Action Group）により標準化されたテスト手法に対応する集積回路が普及している。以下、ＩＥＥＥ１１４９．１をＪＴＡＧとも称する。ＪＴＡＧに対応した集積回路では、ＴＡＰ（Test Access Port）と呼ばれるインターフェース信号用の端子、ＴＡＰコントローラ、スキャン可能な命令レジスタ、スキャン可能な複数のデータレジスタ等を有している。【０００３】
ＴＡＰコントローラは、例えば、テストモードを選択するためのインターフェース信号ＴＭＳ（Test Mode Select）等を受け、命令レジスタやデータレジスタを制御するための制御信号を出力する。命令レジスタは、例えば、スキャン動作させるデータレジスタの選択に使用される。データレジスタは、例えば、ＴＡＰコントローラおよび命令レジスタからの制御信号等に基づいて、スキャン動作を実行する。【０００４】
これにより、集積回路のテストが実行される。例えば、スキャン動作では、インターフェース信号ＴＤＩ（Test Data In）の値（論理値）がデータレジスタに順次書き込まれる（スキャンイン）。そして、スキャンインによりデータレジスタに書き込まれた値は、インターフェース信号ＴＤＯ（Test Data Out）としてデータレジスタから順次読み出される（スキャンアウト）。例えば、集積回路のテスト装置は、スキャンインでデータレジスタに書き込んだ値と、スキャンアウトでデータレジスタから読み出した値とを比較して、エラーの有無を判定する。【０００５】
この種のテストでは、集積回路の本来の機能を実現する回路の異常かテスト回路の異常かを判別することは困難である。このため、ＴＡＰコントローラから出力される制御信号を外部から確認するための制御出力ピンを有する付加回路を追加したバウンダリスキャンテスト回路が提案されている（例えば、特許文献１参照）。例えば、ユーザは、付加回路の制御出力ピンをテスタ等で観測することにより、ＴＡＰコントローラの状態遷移が正常か否かを確認する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−７２２０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
集積回路のテスト装置と集積回路との間のインターフェース信号用の信号線に対するエラーチェック機能が設けられていない場合、テスト用インターフェース（例えば、インターフェース信号用の信号線）のエラー検出に時間がかかるおそれがある。例えば、集積回路のテスト装置は、スキャンインを実行した後にスキャンアウトを実行してエラーを検出する。この場合、スキャンインおよびスキャンアウトの２段階の処理を実行するため、テスト用インターフェースのエラーが判明するまでに時間がかかる。なお、付加回路の制御出力ピンを観測する方法では、集積回路等の端子数が増加する。【０００８】
１つの側面では、本件開示の集積回路のテスト回路、情報処理装置および集積回路のテスト方法は、テスト用インターフェースのエラー検出の時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
一観点によれば、集積回路のテスト回路は、スキャンインデータを第１信号線を介して集積回路に供給し、スキャンアウトデータを集積回路から第２信号線を介して受けるテスト制御部を有し、テスト制御部は、スキャンインデータが集積回路で折り返されるように集積回路を制御し、スキャンインデータを第１信号線を介して集積回路に供給する信号制御部と、集積回路に供給するスキャンインデータを信号制御部から受け、スキャンインデータの折り返しデータを集積回路から第２信号線を介して受け、スキャンインデータと折り返しデータとを比較して、折り返しデータが正しいか否かを判定する判定部とを有している。【００１０】
別の観点によれば、情報処理装置は、集積回路と、集積回路をテストするテスト回路とを有し、テスト回路は、スキャンインデータを第１信号線を介して集積回路に供給し、スキャンアウトデータを集積回路から第２信号線を介して受けるテスト制御部を有し、テスト制御部は、スキャンインデータが集積回路で折り返されるように集積回路を制御し、スキャンインデータを第１信号線を介して集積回路に供給する信号制御部と、集積回路に供給するスキャンインデータを信号制御部から受け、スキャンインデータの折り返しデータを集積回路から第２信号線を介して受け、スキャンインデータと折り返しデータとを比較して、折り返しデータが正しいか否かを判定する判定部とを有している。【００１１】
別の観点によれば、集積回路のテスト方法では、スキャンインデータが集積回路で折り返されるように集積回路を制御し、スキャンインデータをテスト制御部から第１信号線を介して集積回路に転送し、スキャンインデータの折り返しデータを集積回路から第２信号線を介してテスト制御部に転送し、テスト制御部で保持しているスキャンインデータとテスト制御部に転送された折り返しデータとを比較して、折り返しデータが正しいか否かを判定する。
【発明の効果】
【００１２】
本件開示の集積回路のテスト回路、情報処理装置および集積回路のテスト方法は、テスト用インターフェースのエラー検出の時間を短縮できる。
【図面の簡単な説明】
【００１３】
【図１】集積回路のテスト回路、情報処理装置および集積回路のテスト方法の一実施形態を示す図である。
【図２】図１に示した判定回路の一例を示す図である。
【図３】図１に示したＴＡＰコントローラの状態遷移の一例を示す図である。
【図４】図１に示したテスト回路の動作の一例を示す図である。
【図５】図１に示した各信号のタイムチャートの一例を示す図である。
【図６】図１に示した各信号のタイムチャートの別の例を示す図である。
【図７】図１に示した各信号のタイムチャートの別の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、実施形態を図面を用いて説明する。図１および図２の破線の矢印は、データや制御信号の流れの一例を示している。また、集積回路１００とテスト制御装置２００とを接続する信号線には、信号線に伝達される信号に付した符号と同じ符号を使用する。同様に、集積回路１００およびテスト制御装置２００の端子（図１の二重の丸印）にも、端子に伝達される信号に付した符号と同じ符号を使用する。端子は、例えば、半導体チップ上のパッド、あるいは半導体チップが収納されるパッケージのリードである。
【００１５】
図１は、集積回路のテスト回路、情報処理装置および集積回路のテスト方法の一実施形態を示している。この実施形態の情報処理装置１０は、例えば、ＩＥＥＥ１１４９．１としてＪＴＡＧ（Joint Test Action Group）により標準化されたテスト手法に対応するＬＳＩ（Large Scale Integration）等の集積回路１００を有している。以下、ＩＥＥＥ１１４９．１をＪＴＡＧとも称する。
【００１６】
例えば、情報処理装置１０は、ＪＴＡＧに対応したテスト回路を含む集積回路１００と、ＪＴＡＧに対応したテスト回路を制御するテスト制御装置２００と、テスト制御装置２００を制御するシステム制御装置３００とを有している。また、集積回路１００のテスト回路２０は、例えば、テスト制御装置２００と、集積回路１００内に設けられたテスト回路とを有している。
【００１７】
集積回路１００には、例えば、ＴＡＰ（Test Access Port）と呼ばれるインターフェース信号用の端子ＴＣＫ（Test ClocK）、ＴＭＳ（Test Mode Select）、ＴＲＳＴ（Test ReSeT）、ＴＤＩ（Test Data In）、ＴＤＯ（Test Data Out）が設けられている。例えば、集積回路１００の端子ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯは、信号線ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯにより、テスト制御装置２０の端子ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯに接続されている。なお、図１では、図を見やすくするために、集積回路１００の本来の機能を実現する回路の記載を省略している。
【００１８】
例えば、集積回路１００は、テスト回路２０の一部として、ＴＡＰコントローラ１１０、命令レジスタ１２０、データレジスタ１３０、セレクタ１５０、セレクタ制御回路１６０、フリップフロップ１７０およびループバック制御回路１８０を有している。以下、命令レジスタ１２０をＩＲ（Instruction Register）１２０とも称し、データレジスタ１３０をＤＲ（Data Register）１３０とも称する。
【００１９】
端子ＴＣＫには、インターフェース信号の１つであるテストクロックＴＣＫが伝達される。テストクロックＴＣＫは、例えば、集積回路１００内のステートマシーンの動作を同期させるクロック信号（テスト用のクロック）である。以下、テストクロックＴＣＫを信号ＴＣＫとも称する。なお、図１では、図を見やすくするために、信号ＴＣＫ等のクロックが伝達される信号線の一部の記載を省略している。
【００２０】
端子ＴＭＳには、インターフェース信号の１つであるテストモードセレクトＴＭＳが伝達される。テストモードセレクトＴＭＳは、ＴＡＰコントローラ１１０の状態遷移を制御するための信号である。すなわち、テストモードセレクトＴＭＳは、テストモードを選択するための信号である。例えば、テストモードセレクトＴＭＳは、テストクロックＴＣＫの立ち上がりで読み込まれる。以下、テストモードセレクトＴＭＳを信号ＴＭＳとも称する。
【００２１】
端子ＴＲＳＴには、インターフェース信号の１つであるテストリセットＴＲＳＴが伝達される。テストリセットＴＲＳＴは、ＴＡＰコントローラ１１０のステートマシーンをリセットする信号である。以下、テストリセットＴＲＳＴを信号ＴＲＳＴとも称する。なお、ＩＥＥＥ１１４９．１では、テストリセットＴＲＳＴは、オプション信号である。
【００２２】
端子ＴＤＩには、インターフェース信号の１つであるデータＴＤＩが伝達される。データＴＤＩは、例えば、集積回路１００にスキャンインされるデータである。例えば、データＴＤＩは、テストクロックＴＣＫの立ち上がりで読み込まれる。以下、データＴＤＩを、スキャンインデータＴＤＩあるいは信号ＴＤＩとも称する。
【００２３】
端子ＴＤＯには、インターフェース信号の１つであるデータＴＤＯが伝達される。データＴＤＯは、例えば、集積回路１００からのスキャンアウトデータである。例えば、データＴＤＯは、テストクロックＴＣＫの立ち下がりで出力される。以下、データＴＤＯを、スキャンアウトデータＴＤＯあるいは信号ＴＤＯとも称する。
【００２４】
ＴＡＰコントローラ１１０は、信号ＴＣＫ、ＴＭＳ、ＴＲＳＴにより制御される同期式のステートマシーンである。例えば、ＴＡＰコントローラ１１０は、信号ＴＣＫ、ＴＭＳ、ＴＲＳＴをテスト制御装置２００から受け、命令レジスタ１２０やデータレジスタ１３０を制御するための制御信号を出力する。例えば、ＴＡＰコントローラ１１０は、テストクロックＴＣＫの立ち上がりエッジで、テストモードセレクトＴＭＳの値に応じた状態遷移を実行する。各状態に応じて、ＪＴＡＧ回路（集積回路１００に含まれる部分のテスト回路２０）の動作が決定される。
【００２５】
命令レジスタ１２０は、例えば、スキャン動作させるデータレジスタ１３０（データレジスタ１３４、１３６、１３８、１３８のいずれか）の選択に使用される。例えば、命令レジスタ１２０は、信号ＣＡＰＴＵＲＥＩＲ、ＵＰＤＡＴＡＴＥＩＲ、ＩＲＡＣＫ、ＩＲＢＣＫ等の制御信号をＴＡＰコントローラ１１０から受け、命令コード等を示すデータＴＤＩをテスト制御装置２００から受ける。そして、命令レジスタ１２０は、例えば、セットされた命令コードを出力する。ここで、例えば、信号ＩＲＡＣＫ、ＩＲＢＣＫは、スキャンシフトを実行するためのスキャンクロックである。以下、信号ＩＲＡＣＫ、ＩＲＢＣＫをスキャンクロックＩＲＡＣＫ、ＩＲＢＣＫとも称する。
【００２６】
例えば、命令レジスタ１２０は、スキャンシフトが実行されるシフトレジスタと、シフトレジスタの値を保持するフリップフロップとを有している。すなわち、命令レジスタ１２０は、スキャン可能なレジスタである。例えば、ＴＡＰコントローラ１１０の状態がＣａｐｔｕｒｅ  ＩＲ状態に遷移したとき、ユーザ定義の固定値がシフトレジスタにセットされる。
【００２７】
また、ＴＡＰコントローラ１１０の状態がＳｈｉｆｔ  ＩＲ状態に遷移したとき、データＴＤＩの値がシフトレジスタにシフト動作により順次伝達される。これにより、命令コード等がシフトレジスタにセットされる。そして、ＴＡＰコントローラ１１０の状態がＵｐｄａｔｅ  ＩＲ状態に遷移したとき、シフトレジスタの値がフリップフロップにセットされ、フリップフロップの値が集積回路１００の内部に伝達される。
【００２８】
なお、この実施形態の命令レジスタ１２０には、ＩＥＥＥ１１４９．１に規定された必須の命令の他に、ユーザ定義の命令もセット可能である。例えば、この実施形態では、ＵＲスキャンイン命令（例えば、ＩＲ＝１１００）やループバック付きＵＲスキャンイン命令（例えば、ＩＲ＝１１０１）がユーザ定義の命令として実装されている。ループバック付きＵＲスキャンイン命令は、例えば、スキャンインデータＴＤＩがデータレジスタ１３８に書き込まれている期間に、スキャンインデータＴＤＩの折り返しデータを集積回路１００の端子ＴＤＯに出力させる命令である。
【００２９】
データレジスタ１３０は、例えば、ＴＡＰコントローラ１１０および命令レジスタ１２０からの制御信号等に基づいて、スキャン動作を実行する。例えば、データレジスタ１３０は、スキャン可能な複数のデータレジスタ１３２、１３４、１３６、１３８と、データレジスタ制御回路１４０と、セレクタ１４２とを有している。
【００３０】
データレジスタ１３２は、バウンダリスキャンレジスタである。以下、データレジスタ１３２をバウンダリスキャンレジスタ１３２あるいはＢＳ（Boundary Scan register）１３２とも称する。ＢＳ１３２は、例えば、集積回路１００の各端子に設けられたシフトレジスタである。例えば、テスト制御装置２００は、ＢＳ１３２をスキャン動作させることにより、集積回路１００の各端子に対する読み書きを実行できる。
【００３１】
データレジスタ１３４は、デバイス（例えば、集積回路１００）のＩＤ（IDentification）等の情報を保持するレジスタである。以下、データレジスタ１３４をＩＤＣＯＤＥレジスタ１３４あるいはＩＤＣＯＤＥ（ID CODE register）１３４とも称する。
【００３２】
データレジスタ１３６は、バイパスレジスタである。以下、データレジスタ１３６をバイパスレジスタ１３６あるいはＢＹＰＳ（BYPaSs register）１３６とも称する。ＢＹＰＳ１３６は、例えば、１段のシフトレジスタである。例えば、ＢＹＰＳ１３６は、データＴＤＩを順次受け、受けたデータＴＤＩをデータＴＤＯとして順次出力する。例えば、テスト制御装置２００は、複数のデバイスをスキャンチェーンに接続する際に、アクセス対象でないデバイスをＢＹＰＳ１３６でバイパスすることにより、スキャン動作によるアクセスを高速に実行できる。
【００３３】
データレジスタ１３８は、ユーザ定義のレジスタである。以下、データレジスタ１３８をユーザレジスタ１３８あるいはＵＲ（User Register）１３６とも称する。ＵＲ１３６は、例えば、集積回路１００の内部にスキャン動作でアクセスする際に使用される。
【００３４】
データレジスタ制御回路１４０は、例えば、信号ＳＨＩＦＴＤＲ等の制御信号をＴＡＰコントローラ１１０から受け、命令コード等を示す制御信号を命令レジスタ１２０から受ける。そして、データレジスタ制御回路１４０は、ＴＡＰコントローラ１１０および命令レジスタ１２０から受けた制御信号に基づいて、スキャン動作を実行するデータレジスタ１３２−１３８にスキャンクロックを供給するとともに、セレクタ１４２を制御する。
【００３５】
例えば、ＵＲ１３８がスキャン動作を実行する場合、データレジスタ制御回路１４０は、スキャンクロックＵＲＡＣＫ、ＵＲＢＣＫ（以下、信号ＵＲＡＣＫ、ＵＲＢＣＫとも称する）をＵＲ１３８に供給する。また、データレジスタ制御回路１４０は、ＵＲ１３８の出力信号（以下、スキャンアウト信号とも称する）がセレクタ１５０に伝達されるように、セレクタ１４２を制御する。
【００３６】
セレクタ１４２は、データレジスタ制御回路１４０により制御され、各データレジスタ１３２−１３８のスキャンアウト信号のいずれかを選択する。例えば、セレクタ１４２は、ＵＲ１３８がスキャン動作を実行する場合、ＵＲ１３８のスキャンアウト信号を選択し、選択したスキャンアウト信号をセレクタ１５０に出力する。なお、セレクタ１４２の状態として、各データレジスタ１３２−１３８の出力信号のいずれも選択していない状態が存在してもよい。
【００３７】
セレクタ制御回路１６０は、例えば、信号ＳＨＩＦＴＤＲ等の制御信号をＴＡＰコントローラ１１０から受け、命令コード等を示す制御信号を命令レジスタ１２０から受ける。そして、セレクタ制御回路１６０は、ＴＡＰコントローラ１１０および命令レジスタ１２０から受けた制御信号に基づいて、セレクタ１５０を制御する。
【００３８】
例えば、セレクタ制御回路１６０は、ＩＥＥＥ１１４９．１に規定された動作を実現するための選択制御に加えて、所定の条件を満たしたときにサイクルでフリップフロップ１７０の出力信号ＬＢＤＯを選択するようにセレクタ１５０を制御する。所定の条件は、例えば、ＩＲ１２０からの制御信号がループバック付きＵＲスキャンイン命令を示し（例えば、ＩＲ＝１１０１）、ＴＡＰコントローラ１１０からの制御信号ＳＨＩＦＴＤＲが前のサイクルでアサートされているときである。
【００３９】
セレクタ１５０は、例えば、セレクタ制御回路１６０により制御され、ＩＲ１２０、ＤＲ１３０（より詳細には、セレクタ１４２）およびフリップフロップ１７０のそれぞれの出力信号（スキャンアウト信号）のいずれかをデータＴＤＯとして選択する。そして、セレクタ１５０は、データＴＤＯ（選択したスキャンアウト信号）を端子ＴＤＯを介して集積回路１００の外部に出力する。
【００４０】
例えば、セレクタ１５０は、ＩＲ１２０からの制御信号がＵＲスキャンイン命令を示し（ＩＲ＝１１００）、ＴＡＰコントローラ１１０からの制御信号ＳＨＩＦＴＤＲがアサートされているとき、ＤＲ１３０の出力信号を選択する。また、例えば、セレクタ１５０は、ＩＲ１２０からの制御信号がループバック付きＵＲスキャンイン命令を示し（ＩＲ＝１１０１）、ＴＡＰコントローラ１１０からの制御信号ＳＨＩＦＴＤＲがアサートされているとき、次のサイクルで、信号ＬＢＤＯを選択する。信号ＬＢＤＯは、フリップフロップ１７０の出力信号であり、データＴＤＩの折り返しデータである。
【００４１】
なお、セレクタ１５０の状態として、ＩＲ１２０、ＤＲ１３０およびフリップフロップ１７０のそれぞれの出力信号のいずれも選択していない状態が存在してもよい。
【００４２】
ループバック制御回路１８０は、例えば、信号ＳＨＩＦＴＤＲ等の制御信号をＴＡＰコントローラ１１０から受け、命令コード等を示す制御信号を命令レジスタ１２０から受ける。そして、ループバック制御回路１８０は、ＴＡＰコントローラ１１０および命令レジスタ１２０から受けた制御信号に基づいて、フリップフロップ１７０のスキャンシフトを制御する。
【００４３】
例えば、ループバック制御回路１８０は、ループバック付きＵＲスキャンイン命令がセットされ、制御信号ＳＨＩＦＴＤＲがアサートされたとき、次のサイクルで、フリップフロップ１７０にスキャンクロックを供給する。これにより、フリップフロップ１７０のスキャンシフトが制御される。
【００４４】
フリップフロップ１７０は、スキャンインデータを折り返しデータとして、テスト用のクロックに同期して出力するフリップフロップの一例である。フリップフロップ１７０は、例えば、１ビット長のスキャンシフトレジスタである。例えば、フリップフロップ１７０は、スキャンクロック（例えば、信号ＵＲＡＣＫ、ＵＲＢＣＫと同一または同様のクロック）に同期して動作するＤ型フリップフロップ回路である。フリップフロップ１７０は、データＴＤＩを端子ＴＤＩを介してテスト制御装置２００から順次受け、受けたデータＴＤＩを信号ＬＢＤＯとしてセレクタ１５０に順次出力する。
【００４５】
このように、集積回路１００内に設けられたフリップフロップ１７０は、データＴＤＩの折り返しデータ（データＴＤＯ）として、信号ＬＢＤＯをセレクタ１５０、端子ＴＤＯ等を介してテスト制御装置２００に出力する。
【００４６】
システム制御装置３００は、例えば、制御バスにより、テスト制御装置２００に接続されている。例えば、システム制御装置３００は、制御バスおよびテスト制御装置２００を介して、集積回路１００内のレジスタ（例えば、ＩＲ１２０、ＤＲ１３０等）へのリード／ライト要求やデータ転送を実行する。
【００４７】
テスト制御装置２００は、スキャンインデータを第１信号線（例えば、信号線ＴＤＩ）を介して集積回路１００に供給し、スキャンアウトデータを集積回路１００から第２信号線（例えば、信号線ＴＤＯ）を介して受けるテスト制御部の一例である。例えば、テスト制御装置２００は、システム制御装置３００からの命令に応じて、集積回路１００内のテスト回路を制御する。テスト制御装置２００は、信号制御回路２１０および判定回路２２０を有している。
【００４８】
信号制御回路２１０は、スキャンインデータが集積回路で折り返されるように集積回路を制御し、スキャンインデータを第１信号線を介して集積回路に供給する信号制御部の一例である。例えば、信号制御回路２１０は、スキャンインデータＴＤＩが集積回路１００で折り返されるように、信号ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩを用いて集積回路１００を制御する。
【００４９】
例えば、信号制御回路２１０は、システム制御装置３００からの要求に応じて、信号ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩを信号線ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩを介して集積回路１００に出力する。また、信号制御回路２１０は、信号ＴＤＯ（スキャンアウトデータＴＤＯ）を集積回路１００から信号線ＴＤＯを介して受ける。
【００５０】
さらに、信号制御回路２１０は、信号ＴＤＩ（スキャンインデータＴＤＩ）および遅延有効信号ＤＥＮを判定回路２２０に出力し、不一致信号ＥＳＩＧを判定回路２２０から受ける。なお、信号制御回路２１０は、例えば、ループバック付きＵＲスキャンイン命令がＩＲ１２０にセットされている場合、ＵＲ１３８へのスキャンインデータＴＤＩを出力している間、遅延有効信号ＤＥＮをアサートする。
【００５１】
判定回路２２０は、スキャンインデータとスキャンインデータの折り返しデータとを比較して、折り返しデータが正しいか否かを判定する判定部の一例である。例えば、判定回路２２０は、スキャンインデータＴＤＩおよび遅延有効信号ＤＥＮを信号制御回路２１０から受け、スキャンインデータＴＤＩの折り返しデータとしてデータＴＤＯを集積回路１００から信号線ＴＤＯを介して受ける。そして、判定回路２２０は、スキャンインデータＴＤＩと折り返しデータＴＤＯとを比較して、折り返しデータＴＤＯが正しいか否かを判定する。
【００５２】
例えば、判定回路２２０は、遅延有効信号ＤＥＮに基づく判定期間において、スキャンインデータＴＤＩと折り返しデータＴＤＯとが一致していないとき（折り返しデータＴＤＯが異常な場合）、不一致信号ＥＳＩＧをアサートする。すなわち、不一致信号ＥＳＩＧは、スキャンインデータＴＤＩと折り返しデータＴＤＯとが一致している場合（折り返しデータＴＤＯが正しい場合）、ネゲートされる。
【００５３】
例えば、テスト制御装置２００は、スキャンインデータＴＤＩと折り返しデータＴＤＯとが不一致の場合、端子ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯ、信号線ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯ等のテスト用インターフェースに異常があると判定する。なお、スキャンインデータＴＤＩの折り返しデータＴＤＯは、例えば、ＵＲ１３８にスキャンインデータＴＤＩが書き込まれている期間に、判定回路２２０に到達する。
【００５４】
すなわち、判定回路２２０は、スキャンインデータＴＤＩが集積回路２００内のデータレジスタに書き込まれる期間に折り返しデータＴＤＯを受け、折り返しデータＴＤＯが正しいか否かを判定する。このため、判定回路２２０は、ＵＲ１３８に書き込まれた値（スキャンインデータＴＤＩの値）が読み出される前に、スキャンインデータＴＤＩの折り返しデータＴＤＯが正しいか否かを判定できる。したがって、テスト制御装置２００は、テスト用インターフェースのエラー検出のための端子をＴＡＰ（端子ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯ）から追加することなく、テスト用インターフェースのエラー検出の時間を短縮できる。
【００５５】
このように、集積回路１００のテスト回路２０は、テスト制御装置２００、ＴＡＰコントローラ１１０、ＩＲ１２０、ＤＲ１３０、セレクタ１５０、セレクタ制御回路１６０、フリップフロップ１７０およびループバック制御回路１８０を有している。なお、テスト回路２０は、集積回路１００内のテスト回路を除いて定義されてもよい。すなわち、テスト制御装置２００もテスト回路２０の一態様である。
【００５６】
また、集積回路１００のテスト回路２０および情報処理装置１０の構成は、この例に限定されない。例えば、システム制御装置３００は、テスト制御装置２００内に設けられてもよい。あるいは、システム制御装置３００は、情報処理装置１０の外部に設けられてもよい。
【００５７】
また、例えば、信号伝送の時間的制約を満足する場合、フリップフロップ１７０およびループバック制御回路１８０は、省かれてもよい。この場合、セレクタ１５０は、例えば、信号ＬＢＤＯの代わりに、信号ＴＤＩを端子ＴＤＩから受ける。あるいは、セレクタ１４２、１５０は、フリップフロップ１７０等が省かれた場合、ＢＹＰＳ１３６の出力信号を、スキャンインデータＴＤＩの折り返しデータＴＤＯとしてテスト制御装置２００に出力してもよい。
【００５８】
また、例えば、セレクタ制御回路１６０は、集積回路１００内の命令レジスタ１２０以外のレジスタにセットされた値に基づいて、スキャンインデータＴＤＩの折り返しデータＴＤＯ（例えば、信号ＬＢＤＯ）を端子ＴＤＯに出力するか否かを判定してもよい。あるいは、セレクタ制御回路１６０は、集積回路１００に供給される入力信号に基づいて、スキャンインデータＴＤＩの折り返しデータＴＤＯ（例えば、信号ＬＢＤＯ）を端子ＴＤＯに出力するか否かを判定してもよい。
【００５９】
図２は、図１に示した判定回路２２０の一例を示している。判定回路２２０は、例えば、遅延回路２２２および一致判定回路２２４を有している。
【００６０】
遅延回路２２２は、信号制御回路２１０から受けたスキャンインデータＴＤＩを、テスト用のクロック（テストクロックＴＣＫ）に同期して所定のサイクル数分遅延させて出力するタイミング調整部の一例である。例えば、遅延回路２２２は、テストクロックＴＣＫ、スキャンインデータＴＤＩおよび遅延有効信号ＤＥＮを信号制御回路２１０から受け、スキャンインデータＴＤＩおよび遅延有効信号ＤＥＮを遅延させる。そして、遅延回路２２２は、信号ＴＤＩ、ＤＥＮを遅延させた信号ＤＥＮｄｄ、ＴＤＩｄｄを一致判定回路２２４に出力する。
【００６１】
信号ＴＤＩ、ＤＥＮの遅延量は、例えば、テスト制御装置２００から出力されたスキャンインデータＴＤＩがフリップフロップ１７０、セレクタ１５０等を介してテスト制御装置２００に到達するまでの時間に対応する遅延量である。例えば、遅延回路２２２は、フリップフロップＤＦＦ１、ＤＦＦ２、ＤＦＦ３、ＤＦＦ４を有している。フリップフロップＤＦＦ１−ＤＦＦ４は、例えば、テストクロックＴＣＫに同期して動作するＤ型フリップフロップ回路である。
【００６２】
フリップフロップＤＦＦ１の入力端子Ｄは遅延有効信号ＤＥＮを受け、フリップフロップＤＦＦ１の出力端子ＱはフリップフロップＤＦＦ２の入力端子Ｄに接続されている。すなわち、フリップフロップＤＦＦ１は、遅延有効信号ＤＥＮを遅延させた信号ＤＥＮｄを、フリップフロップＤＦＦ２の入力端子Ｄに出力する。フリップフロップＤＦＦ２の出力端子Ｑは、一致判定回路２２４の論理積回路ＡＮＤ１の入力に接続されている。すなわち、フリップフロップＤＦＦ２は、信号ＤＥＮｄを遅延させた信号ＤＥＮｄｄを、論理積回路ＡＮＤ１に出力する。
【００６３】
フリップフロップＤＦＦ３の入力端子ＤはスキャンインデータＴＤＩを受け、フリップフロップＤＦＦ３の出力端子ＱはフリップフロップＤＦＦ４の入力端子Ｄに接続されている。すなわち、フリップフロップＤＦＦ３は、スキャンインデータＴＤＩを遅延させた信号ＴＤＩｄを、フリップフロップＤＦＦ４の入力端子Ｄに出力する。フリップフロップＤＦＦ４の出力端子Ｑは、一致判定回路２２４の排他的論理和回路ＥＸＯＲ１の入力に接続されている。すなわち、フリップフロップＤＦＦ４は、信号ＴＤＩｄを遅延させた信号ＴＤＩｄｄを、排他的論理和回路ＥＸＯＲ１に出力する。
【００６４】
一致判定回路２２４は、スキャンインデータＴＤＩと折り返しデータＴＤＯとを比較する比較部の一例である。例えば、一致判定回路２２４は、スキャンインデータＴＤＩの折り返しデータＴＤＯを集積回路１００から信号線ＴＤＯ等を介して受け、テストクロックＴＣＫを信号制御回路２１０から受ける。さらに、一致判定回路２２４は、遅延有効信号ＤＥＮをフリップフロップ２段分遅延させた信号ＤＥＮｄｄと、スキャンインデータＴＤＩをフリップフロップ２段分遅延させた信号ＴＤＩｄｄとを、遅延回路２２２から受ける。
【００６５】
そして、一致判定回路２２４は、遅延回路２２２から受けた信号ＤＥＮｄｄ（タイミング調整後の遅延有効信号ＤＥＮ）がアサートされている期間、タイミング調整後のスキャンインデータＴＤＩと折り返しデータＴＤＯとを比較する。例えば、一致判定回路２２４は、タイミング調整後のスキャンインデータＴＤＩと折り返しデータＴＤＯとが不一致の場合、不一致信号ＥＳＩＧをアサートする。この場合、テスト制御装置２００は、テスト用インターフェースのエラーと判定する。また、一致判定回路２２４は、タイミング調整後のスキャンインデータＴＤＩと折り返しデータＴＤＯとが一致している場合、不一致信号ＥＳＩＧをネゲートする。
【００６６】
例えば、一致判定回路２２４は、フリップフロップＤＦＦ５、排他的論理和回路ＥＸＯＲ１および論理積回路ＡＮＤ１を有している。フリップフロップＤＦＦ５は、例えば、テストクロックＴＣＫに同期して動作するＤ型フリップフロップ回路である。フリップフロップＤＦＦ５の入力端子Ｄは折り返しデータＴＤＯを受け、フリップフロップＤＦＦ５の出力端子Ｑは排他的論理和回路ＥＸＯＲ１の入力に接続されている。すなわち、フリップフロップＤＦＦ５は、折り返しデータＴＤＯを遅延させた信号ＴＤＯｄを、排他的論理和回路ＥＸＯＲ１に出力する。
【００６７】
排他的論理和回路ＥＸＯＲ１は、信号ＴＤＩｄｄと信号ＴＤＯｄとの排他的論理和を演算し、演算結果を論理積回路ＡＮＤ１に出力する。例えば、排他的論理和回路ＥＸＯＲ１は、信号ＴＤＩｄｄと信号ＴＤＯｄとが一致している場合、論理値”０”の信号を論理積回路ＡＮＤ１に出力し、信号ＴＤＩｄｄと信号ＴＤＯｄとが不一致の場合、論理値”１”の信号を論理積回路ＡＮＤ１に出力する。
【００６８】
論理積回路ＡＮＤ１は、排他的論理和回路ＥＸＯＲ１の演算結果（信号ＴＤＩｄｄと信号ＴＤＯｄとの排他的論理和）と信号ＤＥＮｄｄとの論理積を演算し、演算結果を不一致信号ＥＳＩＧとして信号制御回路２１０に出力する。例えば、論理積回路ＡＮＤ１は、信号ＤＥＮｄｄがネゲートされている場合、あるいは、信号ＴＤＩｄｄと信号ＴＤＯｄとが一致している場合、不一致信号ＥＳＩＧをネゲートする。また、例えば、論理積回路ＡＮＤ１は、信号ＤＥＮｄｄがアサートされ、かつ、信号ＴＤＩｄｄと信号ＴＤＯｄとが不一致の場合、不一致信号ＥＳＩＧをアサートする。
【００６９】
なお、判定回路２２０の構成は、この例に限定されない。例えば、図１に示したフリップフロップ１７０が省かれた場合、フリップフロップＤＦＦ１、ＤＦＦ２の一方およびフリップフロップＤＦＦ３、ＤＦＦ４の一方は、省かれてもよい。この場合、一致判定回路２２４は、遅延有効信号ＤＥＮをフリップフロップ１段分遅延させた信号（信号ＤＥＮｄ）と、スキャンインデータＴＤＩをフリップフロップ１段分遅延させた信号（信号ＴＤＩｄ）とを、遅延回路２２２から受ける。
【００７０】
図３は、図１に示したＴＡＰコントローラ１１０の状態遷移の一例を示している。図３では、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳの状態を、単に、テストモードセレクトＴＭＳの状態と称して説明する。
【００７１】
Ｔｅｓｔ  Ｌｏｇｉｃ  Ｒｅｓｅｔ状態ＳＴ１は、テスト論理は使用不可で、システム論理の通常動作が使用可能な状態である。例えば、信号ＴＲＳＴがアサートされることにより、ＴＡＰコントローラ１１０の状態は、状態ＳＴ１に戻る。また、テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｒｕｎ  Ｔｅｓｔ  Ｉｄｌｅ状態ＳＴ２に遷移する。なお、テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、状態ＳＴ１に維持される。
【００７２】
Ｒｕｎ  Ｔｅｓｔ  Ｉｄｌｅ状態ＳＴ２は、内蔵テストの実行状態またはスキャン動作中（スキャンオペレーション間）の中間状態である。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、状態ＳＴ２に維持される。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３に遷移する。
【００７３】
Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３では、データレジスタ１３０のスキャンシーケンスが選択される。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｃａｐｔｕｒｅ  ＤＲ状態ＳＴ５に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｅｌｅｃｔ  ＩＲ  Ｓｃａｎ状態ＳＴ４に遷移する。
【００７４】
Ｓｅｌｅｃｔ  ＩＲ  Ｓｃａｎ状態ＳＴ４では、命令レジスタ１２０のスキャンシーケンスが選択される。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｃａｐｔｕｒｅ  ＩＲ状態ＳＴ１１に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｔｅｓｔ  Ｌｏｇｉｃ  Ｒｅｓｅｔ状態ＳＴ１に遷移する。
【００７５】
Ｃａｐｔｕｒｅ  ＤＲ状態ＳＴ５では、データレジスタ１３０のシフトレジスタに集積回路１００の内部状態がセットされる。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｅｘｉｔ  ＤＲ状態ＳＴ７に遷移する。
【００７６】
Ｓｈｉｆｔ  ＤＲ状態ＳＴ６では、端子ＴＤＩと端子ＴＤＯとの間にデータレジスタ１３０が接続される。そして、データレジスタ１３０は、テストクロックＴＣＫの立ち上がりに同期して、データを１ビットずつ端子ＴＤＯへシフトする。このように、データレジスタ１３０のスキャンシフトが実行される。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、状態ＳＴ６に維持される。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｅｘｉｔ  ＤＲ状態ＳＴ７に遷移する。
【００７７】
Ｅｘｉｔ  ＤＲ状態ＳＴ７では、スキャンを終了する。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｐａｕｓｅ  ＤＲ状態ＳＴ８に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｕｐｄａｔａ  ＤＲ状態ＳＴ１０に遷移する。
【００７８】
Ｐａｕｓｅ  ＤＲ状態ＳＴ８では、端子ＴＤＩと端子ＴＤＯとの間のシリアルパスにおけるスキャンシフト動作を休止する。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、状態ＳＴ８に維持される。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｅｘｉｔ２  ＤＲ状態ＳＴ９に遷移する。
【００７９】
Ｅｘｉｔ２  ＤＲ状態ＳＴ９では、スキャンを終了する。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｕｐｄａｔａ  ＤＲ状態ＳＴ１０に遷移する。
【００８０】
Ｕｐｄａｔａ  ＤＲ状態ＳＴ１０では、データレジスタ１３０（例えば、データレジスタ１３２、１３４、１３６、１３８のいずれか）の値が集積回路１００の内部に伝達される。なお、例えば、ＢＳ１３２が選択されている場合は、ＢＳ１３２の値が集積回路１００の端子にセットされる。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｒｕｎ  Ｔｅｓｔ  Ｉｄｌｅ状態ＳＴ２に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３に遷移する。
【００８１】
Ｃａｐｔｕｒｅ  ＩＲ状態ＳＴ１１では、命令レジスタ１２０のシフトレジスタにデバイス（例えば、集積回路１００）で定義された固定パターンがセットされる。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｅｘｉｔ  ＩＲ状態ＳＴ１３に遷移する。
【００８２】
Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２では、端子ＴＤＩと端子ＴＤＯとの間に命令レジスタ１２０のシフトレジスタが接続される。そして、命令レジスタ１２０のシフトレジスタは、テストクロックＴＣＫの立ち上がりに同期して、データを１ビットずつ端子ＴＤＯへシフトする。このように、命令レジスタ１２０のシフトレジスタのスキャンシフトが実行される。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、状態ＳＴ１２に維持される。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｅｘｉｔ  ＩＲ状態ＳＴ１３に遷移する。
【００８３】
Ｅｘｉｔ  ＩＲ状態ＳＴ１３では、スキャンを終了する。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｐａｕｓｅ  ＩＲ状態ＳＴ１４に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｕｐｄａｔａ  ＩＲ状態ＳＴ１６に遷移する。
【００８４】
Ｐａｕｓｅ  ＩＲ状態ＳＴ１４では、端子ＴＤＩと端子ＴＤＯとの間のシリアルパスにおけるスキャンシフト動作を休止する。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、状態ＳＴ１４に維持される。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｅｘｉｔ２  ＩＲ状態ＳＴ１５に遷移する。
【００８５】
Ｅｘｉｔ２  ＩＲ状態ＳＴ１５では、スキャンを終了する。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｕｐｄａｔａ  ＩＲ状態ＳＴ１６に遷移する。
【００８６】
Ｕｐｄａｔａ  ＩＲ状態ＳＴ１６では、命令レジスタ１２０のシフトレジスタの値が命令レジスタ１２０のフリップフロップに保持される。すなわち、命令レジスタ１２０のシフトレジスタにスキャンインされたデータが命令レジスタ１２０のフリップフロップにラッチされる。命令レジスタ１２０のフリップフロップの値は、集積回路１００の内部に伝達される。テストモードセレクトＴＭＳの状態が論理値”０”の場合、ＴＡＰコントローラ１１０の状態は、Ｒｕｎ  Ｔｅｓｔ  Ｉｄｌｅ状態ＳＴ２に遷移する。テストモードセレクトＴＭＳの状態が論理値”１”の場合、ＴＡＰコントローラ１１０の状態は、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３に遷移する。
【００８７】
例えば、テスト制御装置２００は、ＴＡＰコントローラ１１０の状態をＳｈｉｆｔ  ＩＲ状態ＳＴ１２、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６等に遷移させて、命令レジスタ１２０やデータレジスタ１３０にアクセスする。命令レジスタ１２０およびデータレジスタ１３０に対するアクセス手順の一例を下記に示す。
【００８８】
先ず、テスト制御装置２００は、信号ＴＣＫ、ＴＭＳ、ＴＲＳＴ等を制御して、ＴＡＰコントローラ１１０の状態を、状態ＳＴ１、ＳＴ２、ＳＴ３、ＳＴ４、ＳＴ１１を経て状態ＳＴ１２に遷移させる。そして、状態ＳＴ１２において、テスト制御装置２００は、命令レジスタ１２０にセットする値を、集積回路１００の端子ＴＤＩにテストクロックＴＣＫに同期して出力する。なお、命令レジスタ１２０の値は、セレクタ１５０を介して集積回路１００の端子ＴＤＯに出力される。
【００８９】
そして、テスト制御装置２００は、ＴＡＰコントローラ１１０の状態を、状態ＳＴ１２から状態ＳＴ１３を経て状態ＳＴ１６に遷移させる。これにより、命令レジスタ１２０にセットされた命令コードが、命令レジスタ１２０からデータレジスタ制御回路１４０等に出力される。
【００９０】
次に、テスト制御装置２００は、ＴＡＰコントローラ１１０の状態を、状態ＳＴ１６から状態ＳＴ２を経て、あるいは、状態ＳＴ１６から直接、状態ＳＴ３に遷移させる。これにより、ＴＡＰコントローラ１１０の状態は、ＩＲリード／ライトシーケンス（状態ＳＴ４、ＳＴ１１−ＳＴ１３、ＳＴ１６等）からＤＲリード／ライトシーケンス（状態ＳＴ３、ＳＴ５−ＳＴ７、ＳＴ１０等）に遷移する。
【００９１】
リード／ライトの対象となるデータレジスタ１３０は、例えば、ＩＲリード／ライトシーケンスでセットされた命令レジスタ１２０の値（命令コード）に基づいて選択される。テスト制御装置２００は、ＴＡＰコントローラ１１０の状態を、状態ＳＴ３から状態ＳＴ５を経て状態ＳＴ６に遷移させる。
【００９２】
そして、状態ＳＴ６において、テスト制御装置２００は、データレジスタ１３０にセットする値を、集積回路１００の端子ＴＤＩにテストクロックＴＣＫに同期して出力する。なお、セレクタ１４２、１５０により選択されたデータレジスタ１３０（データレジスタ１３２−１３８のいずれか）の値は、集積回路１００の端子ＴＤＯに出力される。その後、テスト制御装置２００は、ＴＡＰコントローラ１１０の状態を、状態ＳＴ６から状態ＳＴ７、ＳＴ１０を経て状態ＳＴ２に遷移させる。このように、テスト制御装置２００は、信号ＴＣＫ、ＴＭＳ、ＴＲＳＴ、ＴＤＩ、ＴＤＯを用いて、命令レジスタ１２０およびデータレジスタ１３０にアクセスできる。
【００９３】
図４は、図１に示したテスト回路２０の動作の一例を示している。すなわち、図４は、集積回路１００のテスト方法の一形態を示している。図４の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。図４では、テスト回路２０のうちのテスト制御装置２００の動作を中心に説明する。
【００９４】
ステップＳ１００では、テスト制御装置２００の信号制御回路２１０は、ループバック付きＵＲスキャンイン命令を命令レジスタ１２０にセットする。例えば、テスト制御装置２００は、図３で説明したＩＲリード／ライトシーケンスにおいて、ループバック付きＵＲスキャンイン命令を示す命令コード（例えば、１１０１）を、命令レジスタ１２０にセットする。その後、テスト制御装置２００は、ＴＡＰコントローラ１１０の状態をＤＲリード／ライトシーケンスに遷移させる。このように、信号制御回路２１０は、スキャンインデータＴＤＩが集積回路１００で折り返されるように集積回路１００を制御する。
【００９５】
ステップＳ２００では、テスト制御装置２００の信号制御回路２１０は、スキャンインデータＴＤＩを集積回路１００に順次供給する。これにより、スキャンインデータＴＤＩがＵＲ１３８に順次書き込まれるとともに、スキャンインデータＴＤＩの折り返しデータＬＢＤＯがフリップフロップ１７０から順次出力される。
【００９６】
ステップＳ３００では、テスト制御装置２００は、スキャンインデータＴＤＩの折り返しデータＬＢＤＯをスキャンアウトデータＴＤＯとして、集積回路１００から順次取得する。例えば、テスト制御装置２００は、集積回路１００内のフリップフロップ１７０の出力信号ＬＢＤＯを、集積回路１００から順次受ける。
【００９７】
ステップＳ４００では、テスト制御装置２００の判定回路２２０は、ステップＳ２００で集積回路１００に供給したスキャンインデータＴＤＩと、ステップＳ３００で取得した折り返しデータＴＤＯとを比較する。例えば、判定回路２２０は、スキャンインデータＴＤＩおよび折り返しデータＴＤＯの比較タイミングを折り返しデータＴＤＯの遅延に合わせて調整し、タイミング調整後のスキャンインデータＴＤＩとタイミング調整後の折り返しデータＴＤＯとを比較する。
【００９８】
ステップＳ５００では、テスト制御装置２００の判定回路２２０は、スキャンインデータＴＤＩと折り返しデータＴＤＯとが一致しているか否かを判定する。スキャンインデータＴＤＩと折り返しデータＴＤＯとが一致しているとき（ステップＳ５００のＹｅｓ）、テスト制御装置２００の動作は、ステップＳ６００に移る。一方、スキャンインデータＴＤＩと折り返しデータＴＤＯとが一致していないとき（ステップＳ５００のＮｏ）、テスト制御装置２００の動作は、ステップＳ７００に移る。
【００９９】
ステップＳ６００では、テスト制御装置２００の判定回路２２０は、不一致信号ＥＳＩＧをネゲートする。この場合、テスト制御装置２００は、テスト用インターフェースに異常がないと判定する。
【０１００】
ステップＳ７００では、テスト制御装置２００の判定回路２２０は、不一致信号ＥＳＩＧをアサートする。この場合、テスト制御装置２００は、テスト用インターフェースに異常があると判定する。すなわち、テスト制御装置２００は、テスト用インターフェースのエラーを検出する。
【０１０１】
このように、テスト制御装置２００、ＵＲ１３８に書き込まれた値（スキャンインデータＴＤＩの値）が読み出される前に、スキャンインデータＴＤＩの折り返しデータＴＤＯが正しいか否かを判定できる。したがって、テスト制御装置２００は、テスト用インターフェースのエラー検出の時間を短縮できる。なお、テスト回路２０の動作は、この例に限定されない。
【０１０２】
図５は、図１に示した各信号のタイムチャートの一例を示している。図５の期間Ｔ３−Ｔ１０は、ＩＲライトシーケンス（ＩＲ１２０へのスキャンイン）に対応する。図５のＩＲ（ＳＨＩＦＴ）は、ＩＲ１２０のシフトレジスタの値を示し、ＩＲ（ＦＦ）は、ＩＲ１２０のフリップフロップの値（ＩＲ１２０にセットされた命令コード）を示している。
【０１０３】
例えば、ＩＲ１２０のシフトレジスタのうち、データＴＤＩを受けるレジスタの値は、ＩＲ（ＳＨＩＦＴ）の一番左側の値に対応し、データＴＤＯを出力するレジスタの値は、ＩＲ（ＳＨＩＦＴ）の一番右側の値に対応している。図５では、ＩＲ１２０のシフトレジスタのビット長を４ビットとして説明する。なお、ＩＲ１２０のシフトレジスタのビット長は、４ビットに限定されない。また、図のＳｅｌｅｃｔ  ＤＲは、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３を示し、Ｓｅｌｅｃｔ  ＩＲは、Ｓｅｌｅｃｔ  ＩＲ  Ｓｃａｎ状態ＳＴ４を示している。
【０１０４】
期間Ｔ０−Ｔ１では、ＴＡＰコントローラ１１０の状態は、Ｒｕｎ  Ｔｅｓｔ  Ｉｄｌｅ状態ＳＴ２である。ＴＡＰコントローラ１１０の状態は、図３に示したように、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳの状態に応じて、遷移する。例えば、ＴＡＰコントローラ１１０は、Ｒｕｎ  Ｔｅｓｔ  Ｉｄｌｅ状態ＳＴ２で、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳが論理値”１”であることを検出した場合、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３に遷移する（期間Ｔ２）。
【０１０５】
期間Ｔ２−Ｔ４では、テストモードセレクトＴＭＳの制御により、ＴＡＰコントローラ１１０の状態は、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３からＳｅｌｅｃｔ  ＩＲ  Ｓｃａｎ状態ＳＴ４を経て、Ｃａｐｔｕｒｅ  ＩＲ状態ＳＴ１１に遷移する。Ｃａｐｔｕｒｅ  ＩＲ状態ＳＴ１１（期間Ｔ４）では、ＩＲ１２０のシフトレジスタに所定の固定値（図５の例では、０００１）がセットされる。
【０１０６】
例えば、期間Ｔ４では、ＴＡＰコントローラ１１０は、信号ＣＡＰＴＵＲＥＩＲとして、１ショットのパルスをテストクロックＴＣＫの立ち下がりに同期してＩＲ１２０に出力する。これにより、所定の固定”０００１”が、ＩＲ１２０のシフトレジスタに信号ＣＡＰＴＵＲＥＩＲの立ち上がりに同期してセットされる。その後、ＴＡＰコントローラ１１０の状態は、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳが論理値”０”であるため、Ｃａｐｔｕｒｅ  ＩＲ状態ＳＴ１１からＳｈｉｆｔ  ＩＲ状態ＳＴ１２に遷移する（期間Ｔ５）
期間Ｔ５−Ｔ８では、ＴＡＰコントローラ１１０の状態は、Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２に維持される。そして、期間Ｔ９において、ＴＡＰコントローラ１１０の状態は、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳが論理値”１”であるため、Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２からＥｘｉｔ  ＩＲ状態ＳＴ１３に遷移する。例えば、Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２で、ＩＲ１２０のシフトレジスタのスキャンシフトが実行され、Ｅｘｉｔ  ＩＲ状態ＳＴ１３で、ＩＲ１２０のシフトレジスタのスキャンシフトが終了する。
【０１０７】
例えば、ＴＡＰコントローラ１１０は、スキャンクロックＩＲＡＣＫをテストクロックＴＣＫの立ち上がりに同期してＩＲ１２０に出力し、スキャンクロックＩＲＢＣＫをテストクロックＴＣＫの立ち下がりに同期してＩＲ１２０に出力する。スキャンクロックＩＲＡＣＫ、ＩＲＢＣＫは、例えば、Ｓｈｉｆｔ  ＩＲ状態ＳＴ１２に遷移した次のサイクル（期間Ｔ６）からＥｘｉｔ  ＩＲ状態ＳＴ１３のサイクル（期間Ｔ９）まで、ＩＲ１２０に供給される。
【０１０８】
ＩＲ１２０の各シフトレジスタは、例えば、保持している値（クロックＩＲＡＣＫの立ち上がり時に入力端子で受けていた値）を、クロックＩＲＢＣＫの立ち上がりに同期して次段に出力する。なお、ＩＲ１２０のシフトレジスタのうちの最終段のレジスタは、保持している値を、クロックＩＲＢＣＫの立ち上がりに同期してセレクタ１５０に出力する。
【０１０９】
図５の例では、データＴＤＩとして、ループバック付きＵＲスキャンイン命令を示す命令コード”１１０１”のシリアルデータ”１０１１”がテストクロックＴＣＫに同期して端子ＴＤＩに供給される。これにより、期間Ｔ９までに、ループバック付きＵＲスキャンイン命令を示す命令コード”１０１１”がＩＲ１２０のシフトレジスタにセットされる。
【０１１０】
また、期間Ｔ５の途中から期間Ｔ９の途中まで、セレクタ１５０は、ＩＲ１２０の出力信号を端子ＴＤＯに出力するデータＴＤＯとして選択している。このため、期間Ｔ５−Ｔ９の各期間では、ＩＲ（ＳＨＩＦＴ）の一番右側の値がデータＴＤＯとして出力される。
【０１１１】
期間Ｔ９では、ＴＡＰコントローラ１１０の状態がＥｘｉｔ  ＩＲ状態ＳＴ１３であるため、ＩＲ１２０のシフトレジスタへのスキャンインが終了する。また、ＴＡＰコントローラ１１０の状態は、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳが論理値”１”であるため、Ｅｘｉｔ  ＩＲ状態ＳＴ１３からＵｐｄａｔａ  ＩＲ状態ＳＴ１６に遷移する（期間Ｔ１０）。
【０１１２】
期間Ｔ１０では、ＴＡＰコントローラ１１０の状態がＵｐｄａｔａ  ＩＲ状態ＳＴ１６であるため、ＩＲ１２０のシフトレジスタの値がＩＲ１２０のフリップフロップに保持される。例えば、期間Ｔ１０では、ＴＡＰコントローラ１１０は、信号ＵＰＤＡＴＥＩＲとして、１ショットのパルスをテストクロックＴＣＫの立ち下がりに同期してＩＲ１２０に出力する。
【０１１３】
これにより、ＩＲ１２０のシフトレジスタの値”１１０１”が、ＩＲ１２０のフリップフロップに信号ＵＰＤＡＴＥＩＲの立ち上がりに同期してセットされる。すなわち、ループバック付きＵＲスキャンイン命令がＩＲ１２０にセットされる。
【０１１４】
このように、ＩＲライトシーケンスでは、ＩＲ１２０のシフトレジスタにスキャンインされたデータがＩＲ１２０のフリップフロップにラッチされる。ＩＲ１２０のフリップフロップの値は、集積回路１００の内部に伝達される。
【０１１５】
図６は、図１に示した各信号のタイムチャートの別の例を示している。図６の期間Ｔ１１−Ｔ１８は、図５に示したＩＲライトシーケンス（図５の期間Ｔ３−Ｔ１０）の後に実行されるＤＲライトシーケンス（ＵＲ１３８へのスキャンイン）に対応する。したがって、図６では、ループバック付きＵＲスキャンイン命令に基づく動作が実行される。図６のＩＲ（ＦＦ）、Ｓｅｌｅｃｔ  ＤＲの意味は、図５と同一または同様である。また、図６のＵＲは、ＵＲ１３８の値を示している。
【０１１６】
例えば、ＵＲ１３８の各レジスタのうち、データＴＤＩを受けるレジスタの値は、ＵＲの一番左側の値に対応し、データＴＤＯを出力するレジスタの値は、ＵＲの一番右側の値に対応している。図６では、ＵＲ１３８を４ビットのシフトレジスタとして説明する。なお、ＵＲ１３８（シフトレジスタ）のビット長は、４ビットに限定されない。
【０１１７】
期間Ｔ１０では、ＴＡＰコントローラ１１０の状態は、Ｕｐｄａｔａ  ＩＲ状態ＳＴ１６である。また、ＩＲ１２０には、ループバック付きＵＲスキャンイン命令を示す命令コード”１１０１”がセットされている。ＴＡＰコントローラ１１０の状態は、図３に示したように、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳの状態に応じて、遷移する。例えば、ＴＡＰコントローラ１１０は、Ｕｐｄａｔａ  ＩＲ状態ＳＴ１６で、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳが論理値”１”であることを検出した場合、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３に遷移する（期間Ｔ１１）。
【０１１８】
期間Ｔ１１−Ｔ１３では、テストモードセレクトＴＭＳの制御により、ＴＡＰコントローラ１１０の状態は、Ｓｅｌｅｃｔ  ＤＲ  Ｓｃａｎ状態ＳＴ３からＣａｐｔｕｒｅ  ＤＲ状態ＳＴ５を経て、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６に遷移する。Ｓｈｉｆｔ  ＤＲ状態ＳＴ６では、信号ＳＨＩＦＴＤＲがアサートされる。例えば、ＴＡＰコントローラ１１０は、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６の間、信号ＳＨＩＦＴＤＲをアサートする。
【０１１９】
期間Ｔ１３−Ｔ１６では、ＴＡＰコントローラ１１０の状態は、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６に維持される。そして、期間Ｔ１７において、ＴＡＰコントローラ１１０の状態は、テストクロックＴＣＫの立ち上がり時のテストモードセレクトＴＭＳが論理値”１”であるため、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６からＥｘｉｔ  ＤＲ状態ＳＴ７に遷移する。例えば、Ｓｈｉｆｔ  ＤＲ状態ＳＴ６で、ＵＲ１３８のスキャンシフトが実行され、Ｅｘｉｔ  ＤＲ状態ＳＴ７で、ＵＲ１３８のスキャンシフトが終了する。
【０１２０】
例えば、データレジスタ制御回路１４０およびループバック制御回路１８０は、ＴＡＰコントローラ１１０から受ける信号ＳＨＩＦＴＤＲとＩＲ１２０の値に基づいて、ＵＲ１３８およびフリップフロップ１７０のスキャンシフト動作をそれぞれ制御する。先ず、ＵＲ１３８のスキャンシフト動作について説明する。
【０１２１】
データレジスタ制御回路１４０は、例えば、信号ＳＨＩＦＴＤＲがアサートされた次のサイクル（期間Ｔ１４）から信号ＳＨＩＦＴＤＲがネゲートされるサイクル（期間Ｔ１７）まで、スキャンクロックＵＲＡＣＫ、ＵＲＢＣＫをＵＲ１３８に供給する。例えば、データレジスタ制御回路１４０は、スキャンクロックＵＲＡＣＫをテストクロックＴＣＫの立ち上がりに同期してＵＲ１３８に出力し、スキャンクロックＵＲＢＣＫをテストクロックＴＣＫの立ち下がりに同期してＵＲ１３８に出力する。
【０１２２】
ＵＲ１３８の各レジスタは、例えば、保持している値（クロックＵＲＡＣＫの立ち上がり時に入力端子で受けていた値）を、クロックＵＲＢＣＫの立ち上がりに同期して次段に出力する。なお、ＵＲ１３８のうちの最終段のレジスタは、保持している値を、クロックＵＲＢＣＫの立ち上がりに同期してセレクタ１４２に出力する。
【０１２３】
図６の例では、データＴＤＩとして、シリアルデータ”１００１”がテストクロックＴＣＫに同期して端子ＴＤＩに供給される。これにより、期間Ｔ１７までに、スキャンインデータ”１００１”がＵＲ１３８にセットされる。また、セレクタ１４２は、データレジスタ制御回路１４０の制御に基づいて、ＵＲ１３８の出力信号をセレクタ１５０に出力する信号として選択する。
【０１２４】
次に、フリップフロップ１７０のスキャンシフト動作について説明する。ループバック制御回路１８０は、ループバック付きＵＲスキャンイン命令を示す命令コード”１１０１”がＩＲ１２０にセットされているため、スキャンクロックＵＲＡＣＫ、ＵＲＢＣＫと同一または同様なスキャンクロックをフリップフロップ１７０に供給する。図６では、フリップフロップ１７０に供給されるスキャンクロックも、スキャンクロックＵＲＡＣＫ、ＵＲＢＣＫと称して説明する。
【０１２５】
例えば、ループバック制御回路１８０は、スキャンクロックＵＲＡＣＫをテストクロックＴＣＫの立ち上がりに同期してフリップフロップ１７０に出力する。また、ループバック制御回路１８０は、スキャンクロックＵＲＢＣＫをテストクロックＴＣＫの立ち下がりに同期してフリップフロップ１７０に出力する。フリップフロップ１７０は、例えば、クロックＵＲＡＣＫの立ち上がり時に入力端子で受けていたデータＴＤＩの値を、信号ＬＢＤＯとして、クロックＵＲＢＣＫの立ち上がりに同期して出力する。
【０１２６】
セレクタ制御回路１６０は、ＴＡＰコントローラ１１０から受ける信号ＳＨＩＦＴＤＲとＩＲ１２０の値に基づいて、セレクタ１５０を制御する。例えば、セレクタ制御回路１６０は、ＩＲ１２０の値がループバック付きＵＲスキャンイン命令を示す命令コード”１１０１”であるため、フリップフロップ１７０の出力信号ＬＢＤＯを選択するように、セレクタ１５０を制御する。
【０１２７】
これにより、例えば、セレクタ１５０は、信号ＳＨＩＦＴＤＲがアサートされた次のサイクル（期間Ｔ１４）のテストクロックＴＣＫの立ち下がりに同期して、フリップフロップ１７０の出力信号ＬＢＤＯをデータＴＤＯとして、端子ＴＤＯに出力する。そして、セレクタ１５０は、信号ＳＨＩＦＴＤＲがネゲートされた次のサイクル（期間Ｔ１８）のテストクロックＴＣＫの立ち下がりまで、フリップフロップ１７０の出力信号ＬＢＤＯをデータＴＤＯとして、端子ＴＤＯに出力し続ける。
【０１２８】
この結果、期間Ｔ１４の途中から期間Ｔ１８の途中まで、データＴＤＩの折り返しデータＬＢＤＯがデータＴＤＯとして集積回路１００からテスト制御装置２００に出力される。なお、ループバック付きＵＲスキャンイン命令では、セレクタ１５０がフリップフロップ１７０の出力信号ＬＢＤＯを選択しているため、ＵＲ１３８の値は端子ＴＤＯに出力されない。
【０１２９】
テスト制御装置２００の信号制御回路２２０は、スキャンインデータ”１００１”をデータＴＤＩとして出力している間（期間Ｔ１３の途中から期間Ｔ１７の途中まで）、遅延有効信号ＤＥＮをアサートする。
【０１３０】
遅延回路２２２は、遅延有効信号ＤＥＮおよびデータＴＤＩを、テストクロックＴＣＫに同期して２サイクル分遅延させる（図６の信号ＤＥＮｄｄ、ＴＤＩｄｄ）。例えば、遅延回路２２２は、フリップフロップＤＦＦ１、ＤＦＦ２を用いて遅延有効信号ＤＥＮを遅延させ、フリップフロップＤＦＦ３、ＤＦＦ４を用いてデータＴＤＩを遅延させる。
【０１３１】
また、例えば、一致判定回路２２４は、データＴＤＯをテストクロックＴＣＫに同期して１サイクル分遅延させる（図６の信号ＴＤＯｄ）。例えば、一致判定回路２２４は、フリップフロップＤＦＦ５を用いて遅延有効信号ＤＥＮを遅延させる。そして、一致判定回路２２４は、遅延有効信号ＤＥＮを遅延させた信号ＤＥＮｄｄがアサートされているとき、信号ＴＤＩｄｄの値と信号ＴＤＯｄの値とを比較する（期間Ｔ１５−Ｔ１８）。図６の例では、期間Ｔ１５−Ｔ１８の各期間で、信号ＴＤＩｄｄの値と信号ＴＤＯｄの値とが一致しているため、不一致信号ＥＳＩＧは、ネゲートされている。なお、信号ＴＤＩｄｄの値と信号ＴＤＯｄの値とが不一致の場合、不一致信号ＥＳＩＧは、アサートされる。
【０１３２】
例えば、テスト制御装置２００は、信号ＴＤＩｄｄの値と信号ＴＤＯｄの値との不一致を検出することにより、テスト用インターフェースである端子ＴＤＩ、ＴＤＯ、信号線ＴＤＩ、ＴＤＯ等に故障が生じていることを検出できる。なお、例えば、信号線ＴＣＫ、ＴＭＳ、ＴＲＳＴに故障が生じている場合では、テスト制御装置２００へのループバックが正常に実行されないため、信号線ＴＣＫ、ＴＭＳ、ＴＲＳＴの故障も、信号ＴＤＩｄｄの値と信号ＴＤＯｄの値との不一致として検出される。
【０１３３】
このように、テスト制御装置２００は、例えば、ＤＲライトシーケンス（スキャンイン）のみで、テスト用インターフェースのエラーを検出できる。したがって、この実施形態では、テスト用インターフェースのエラーを検出するための手順を簡略化できる。また、この実施形態では、テスト用インターフェースのエラーの検出にかかる処理時間を短縮できる。
【０１３４】
図７は、図１に示した各信号のタイムチャートの別の例を示している。図７の期間Ｔ３１−Ｔ３８は、ＤＲライトシーケンス（ＵＲ１３８へのスキャンイン）に対応する。なお、図７の例では、ＤＲライトシーケンスの前に実行されるＩＲライトシーケンスにより、ＵＲスキャンイン命令がＩＲ１２０にセットされている（ＩＲ＝１１００）。ＵＲスキャンイン命令をＩＲ１２０にセットするＩＲライトシーケンスは、データＴＤＩとして与えられるシリアルデータ“００１１”（命令コード“１１００”）を除いて、図５に示したＩＲライトシーケンスと同一または同様である。例えば、図５では、命令コード”１１０１”のシリアルデータ“１０１１”がデータＴＤＩとして与えられる。
【０１３５】
図７のＩＲ（ＦＦ）、ＵＲ、Ｓｅｌｅｃｔ  ＤＲの意味は、図６と同一または同様である。図６で説明した動作と同一または同様な動作については、詳細な説明を省略する。例えば、期間Ｔ３０−Ｔ４０は、図６の期間Ｔ１０−Ｔ２０に対応している。
【０１３６】
期間Ｔ３０では、ＴＡＰコントローラ１１０の状態は、Ｕｐｄａｔａ  ＩＲ状態ＳＴ１６である。また、ＩＲ１２０には、ＵＲスキャンイン命令を示す命令コード”１１００”がセットされている。そして、ＵＲ１３８は、データ”１００１”（例えば、図６のＤＲライトシーケンスによりＵＲ１３８にセットされたスキャンインデータ）を保持している。
【０１３７】
期間Ｔ３３−Ｔ３６では、例えば、データレジスタ制御回路１４０およびループバック制御回路１８０は、ＴＡＰコントローラ１１０から受ける信号ＳＨＩＦＴＤＲとＩＲ１２０の値に基づいて、ＵＲ１３８およびフリップフロップ１７０のスキャンシフト動作をそれぞれ制御する。なお、ループバック制御回路１８０は、ＵＲスキャンイン命令を示す命令コード”１１００”がＩＲ１２０にセットされているため、フリップフロップ１７０のスキャンシフト動作を実行しない。したがって、ＵＲ１３８のスキャンシフト動作について、図６の動作と異なる動作を中心に説明する。
【０１３８】
データレジスタ制御回路１４０は、例えば、信号ＳＨＩＦＴＤＲがアサートされた次のサイクル（期間Ｔ３４）から信号ＳＨＩＦＴＤＲがネゲートされるサイクル（期間Ｔ３７）まで、スキャンクロックＵＲＡＣＫ、ＵＲＢＣＫをＵＲ１３８に供給する。ＵＲ１３８の各レジスタは、例えば、保持している値（クロックＵＲＡＣＫの立ち上がり時に入力端子で受けていた値）を、クロックＵＲＢＣＫの立ち上がりに同期して次段に出力する。なお、ＵＲ１３８のうちの最終段のレジスタは、保持している値を、クロックＵＲＢＣＫの立ち上がりに同期してセレクタ１４２に出力する。
【０１３９】
図７の例では、データＴＤＩとして、シリアルデータ”０１１０”がテストクロックＴＣＫに同期して端子ＴＤＩに供給される。これにより、期間Ｔ３７までに、スキャンインデータ”０１１０”がＵＲ１３８にセットされる。また、セレクタ１４２は、データレジスタ制御回路１４０の制御に基づいて、ＵＲ１３８の出力信号（ＵＲ１３８の最終段のレジスタの値）をセレクタ１５０に出力する信号として選択する。
【０１４０】
セレクタ制御回路１６０は、例えば、ＩＲ１２０の値がＵＲスキャンイン命令を示す命令コード”１１００”であるため、ＤＲ１３０の出力信号（セレクタ１４２で選択されたＵＲ１３８の出力信号）を選択するように、セレクタ１５０を制御する。
【０１４１】
これにより、例えば、セレクタ１５０は、信号ＳＨＩＦＴＤＲがアサートされたサイクル（期間Ｔ３３）のテストクロックＴＣＫの立ち下がりに同期して、ＵＲ１３８の最終段のレジスタの値（ＵＲの一番右側の値）をデータＴＤＯとして、端子ＴＤＯに出力する。そして、セレクタ１５０は、信号ＳＨＩＦＴＤＲがネゲートされたサイクル（期間Ｔ３７）のテストクロックＴＣＫの立ち下がりまで、ＵＲ１３８の最終段のレジスタの値（ＵＲの一番右側の値）をデータＴＤＯとして、端子ＴＤＯに出力し続ける。
【０１４２】
この結果、データＴＤＯとして、図７のＤＲライトシーケンスが実行される前にＵＲ１３８に保持されていたデータ”１００１”が、集積回路１００からテスト制御装置２００に出力される（期間Ｔ３３−Ｔ３７）。なお、ＵＲスキャンイン命令では、セレクタ１５０がＤＲ１３０の出力信号を選択しているため、フリップフロップ１７０の出力信号ＬＢＤＯは端子ＴＤＯに出力されない。
【０１４３】
テスト制御装置２００の信号制御回路２２０は、ＵＲスキャンイン命令が実行されるため、遅延有効信号ＤＥＮをアサートしない。すなわち、遅延有効信号ＤＥＮは、ネゲートされている。このため、一致判定回路２２４は、信号ＴＤＩｄｄの値と信号ＴＤＯｄの値との比較を実行しない。したがって、ＵＲスキャンイン命令では、不一致信号ＥＳＩＧは、ネゲートされている。
【０１４４】
以上、図１から図７に示した実施形態の集積回路のテスト回路、情報処理装置および集積回路のテスト方法では、例えば、テスト制御装置２００は、スキャンインデータＴＤＩを信号線ＴＤＩを介して集積回路１００に供給する。そして、テスト制御装置２００は、スキャンインデータＴＤＩの折り返しデータをスキャンアウトデータＴＤＯとして集積回路１００から信号線ＴＤＯを介して受ける。また、テスト制御装置２００の判定回路２２２は、スキャンインデータＴＤＩと折り返しデータＴＤＯとを比較して、折り返しデータＴＤＯが正しいか否かを判定する。
【０１４５】
これにより、テスト制御装置２００は、テスト用インターフェースのエラーを検出できる。例えば、テスト制御装置２００は、折り返しデータＴＤＯが正しくないと判定回路２２２で判定された場合、テスト用インターフェースに故障が生じていると判定する。この実施形態では、スキャンインデータＴＤＩの折り返しデータＴＤＯが正しいか否かを判定しているため、スキャンインおよびスキャンアウトのうちのスキャンインのみで、テスト用インターフェースのエラーを検出できる。
【０１４６】
この結果、この実施形態では、テスト用インターフェースのエラーを検出するための手順を簡略化でき、テスト用インターフェースのエラーの検出にかかる処理時間を短縮できる。すなわち、この実施形態では、テスト用インターフェースのエラー検出の時間を短縮できる。
【０１４７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【図１】
2015198367.tif 000003
【図２】
2015198367.tif 000004
【図３】
2015198367.tif 000005
【図４】
2015198367.tif 000006
【図５】
2015198367.tif 000007
【図６】
2015198367.tif 000008
【図７】
2015198367.tif 000009
【手続補正書】
【提出日】平成27年6月18日(2015.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路のテスト回路であって、
スキャンインデータを第１信号線を介して前記集積回路に供給し、スキャンアウトデータを前記集積回路から第２信号線を介して受けるテスト制御部を備え、
前記テスト制御部は、
前記スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、前記スキャンインデータを前記第１信号線を介して前記集積回路に供給する信号制御部と、
前記集積回路に供給する前記スキャンインデータを前記信号制御部から受け、前記スキャンインデータの折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する判定部と
を備えていることを特徴とするテスト回路。
【請求項２】
請求項１に記載のテスト回路において、
前記集積回路内に設けられ、前記スキャンインデータを受け、前記折り返しデータとして前記スキャンインデータをテスト用のクロックに同期して前記判定部に出力するフリップフロップを有し、
前記信号制御部は、前記テスト用のクロックを前記集積回路に供給する
ことを特徴とする集積回路のテスト回路。
【請求項３】
請求項２に記載の集積回路のテスト回路において、
前記判定部は、
前記信号制御部から受けた前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させて出力するタイミング調整部と、
前記所定のサイクル数分遅延させられた前記スキャンインデータを前記タイミング調整部から受け、前記折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較する比較部と
を備えていることを特徴とする集積回路のテスト回路。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の集積回路のテスト回路において、
前記判定部は、前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを受け、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト回路。
【請求項５】
集積回路と、前記集積回路をテストするテスト回路とを備え、
前記テスト回路は、スキャンインデータを第１信号線を介して前記集積回路に供給し、スキャンアウトデータを前記集積回路から第２信号線を介して受けるテスト制御部を有し、
前記テスト制御部は、
前記スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、前記スキャンインデータを前記第１信号線を介して前記集積回路に供給する信号制御部と、
前記集積回路に供給する前記スキャンインデータを前記信号制御部から受け、前記スキャンインデータの折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する判定部と
を備えていることを特徴とする情報処理装置。
【請求項６】
集積回路のテスト方法であって、
スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、
前記スキャンインデータをテスト制御部から前記第１信号線を介して前記集積回路に転送し、
前記スキャンインデータの折り返しデータを前記集積回路から第２信号線を介して前記テスト制御部に転送し、
前記テスト制御部で保持している前記スキャンインデータと前記テスト制御部に転送された前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１４６
【補正方法】変更
【補正の内容】
【０１４６】
この結果、この実施形態では、テスト用インターフェースのエラーを検出するための手順を簡略化でき、テスト用インターフェースのエラーの検出にかかる処理時間を短縮できる。すなわち、この実施形態では、テスト用インターフェースのエラー検出の時間を短縮できる。
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
集積回路のテスト回路であって、
スキャンインデータを第１信号線を介して前記集積回路に供給し、スキャンアウトデータを前記集積回路から第２信号線を介して受けるテスト制御部を備え、
前記テスト制御部は、
前記スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、前記スキャンインデータを前記第１信号線を介して前記集積回路に供給する信号制御部と、
前記集積回路に供給する前記スキャンインデータを前記信号制御部から受け、前記スキャンインデータの折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する判定部と
を備えていることを特徴とするテスト回路。
（付記２）
付記１に記載のテスト回路において、
前記集積回路内に設けられ、前記スキャンインデータを受け、前記折り返しデータとして前記スキャンインデータをテスト用のクロックに同期して前記判定部に出力するフリップフロップを有し、
前記信号制御部は、前記テスト用のクロックを前記集積回路に供給する
ことを特徴とする集積回路のテスト回路。
（付記３）
付記２に記載の集積回路のテスト回路において、
前記判定部は、
前記信号制御部から受けた前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させて出力するタイミング調整部と、
前記所定のサイクル数分遅延させられた前記スキャンインデータを前記タイミング調整部から受け、前記折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較する比較部と
を備えていることを特徴とする集積回路のテスト回路。
（付記４）
付記１ないし付記３のいずれか１項に記載の集積回路のテスト回路において、
前記判定部は、前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを受け、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト回路。
（付記５）
集積回路と、前記集積回路をテストするテスト回路とを備え、
前記テスト回路は、スキャンインデータを第１信号線を介して前記集積回路に供給し、スキャンアウトデータを前記集積回路から第２信号線を介して受けるテスト制御部を有し、
前記テスト制御部は、
前記スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、前記スキャンインデータを前記第１信号線を介して前記集積回路に供給する信号制御部と、
前記集積回路に供給する前記スキャンインデータを前記信号制御部から受け、前記スキャンインデータの折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する判定部と
を備えていることを特徴とする情報処理装置。
（付記６）
付記５に記載の情報処理装置において、
前記集積回路は、前記スキャンインデータを受け、前記折り返しデータとして前記スキャンインデータをテスト用のクロックに同期して前記判定部に出力するフリップフロップを有し、
前記信号制御部は、前記テスト用のクロックを前記集積回路に供給する
ことを特徴とする情報処理装置。
（付記７）
付記６に記載の情報処理装置において、
前記判定部は、
前記信号制御部から受けた前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させて出力するタイミング調整部と、
前記所定のサイクル数分遅延させられた前記スキャンインデータを前記タイミング調整部から受け、前記折り返しデータを前記集積回路から前記第２信号線を介して受け、前記スキャンインデータと前記折り返しデータとを比較する比較部と
を備えていることを特徴とする情報処理装置。
（付記８）
付記５ないし付記７のいずれか１項に記載の情報処理装置において、
前記判定部は、前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを受け、前記折り返しデータが正しいか否かを判定する
ことを特徴とする情報処理装置。
（付記９）
集積回路のテスト方法であって、
スキャンインデータが前記集積回路で折り返されるように前記集積回路を制御し、
前記スキャンインデータをテスト制御部から前記第１信号線を介して前記集積回路に転送し、
前記スキャンインデータの折り返しデータを前記集積回路から第２信号線を介して前記テスト制御部に転送し、
前記テスト制御部で保持している前記スキャンインデータと前記テスト制御部に転送された前記折り返しデータとを比較して、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト方法。
（付記１０）
付記９に記載の集積回路のテスト方法において、
テスト用のクロックを前記テスト制御部から前記集積回路に転送し、
前記スキャンインデータを前記テスト制御部から前記第１信号線を介して前記集積回路内のフリップフロップに転送し、
前記スキャンインデータを受けた前記フリップフロップの出力信号を前記折り返しデータとして、前記集積回路から前記テスト制御部に前記テスト用のクロックに同期して転送する
ことを特徴とする集積回路のテスト方法。
（付記１１）
付記１０に記載の集積回路のテスト方法において、
前記テスト制御部に保持している前記スキャンインデータを、前記テスト用のクロックに同期して所定のサイクル数分遅延させ、
前記集積回路から前記第２信号線を介して前記テスト制御部に転送された前記折り返しデータと、前記所定のサイクル数分遅延させられた前記スキャンインデータとを比較する
ことを特徴とする集積回路のテスト方法。
（付記１２）
付記９ないし付記１１のいずれか１項に記載の集積回路のテスト方法において、
前記スキャンインデータが前記集積回路内のデータレジスタに書き込まれる期間に前記折り返しデータを前記集積回路から前記第２信号線を介して前記テスト制御部に転送し、前記折り返しデータが正しいか否かを判定する
ことを特徴とする集積回路のテスト方法。
【国際調査報告】
2015198367.tif 000010
2015198367.tif 000011