(57)【要約】【課題】既存の資源を生かして、従来のJTAGを拡張したJTAG拡張インタフェースを用いたテストシステムを提供する。【解決手段】複数個の入力回路４０in、及び複数個の出力回路４０outにより、バウンダリスキャンパスチェーン（BSPC)が形成されている。既存のI/Oバスの一部又は全部により代用されたテストバスである代用バス３２ａが設けられている。論理回路３１等の被テストシステムのテストに際し、各回路４０inのデータをBSPCに巡回させることにより初期状態を指定し、システムクロックsckを動作させた後に、回路４０inのデータを内部のシフトレジスタに取り込み、又は回路４０outのデータを内部のシフトレジスタに取り込み、且つ、クロックsckを動作させてBSPCから回路４０in又は回路４０outのデータを取り出す。BSPCに許可データを巡回させ、その許可データが有効なときにのみ回路４０outのデータを代用バス３２ａに出力する。【選択図】  図１
2006189368.tif 000002
【特許請求の範囲】
【請求項１】
システムクロックにより動作する被テストシステムと、
前記被テストシステムにおける入出力データの伝送を行う入／出力バスの一部又は全部により代用されるテストバスと、
前記システムクロックとは独立したシフトクロックにより動作する第１のシフトレジスタをそれぞれ有し、複数個の入力ポートからそれぞれ入力されたデータを前記テストバスを介して前記被テストシステムにそれぞれ入力する複数個の入力回路と、
前記シフトクロックにより動作する第２のシフトレジスタをそれぞれ有し、前記被テストシステムから前記テストバスへ出力されたデータを複数個の出力ポートへそれぞれ出力する複数個の出力回路とを備え、
前記複数個の第１のシフトレジスタ及び前記複数個の第２のシフトレジスタが直列に接続されてスキャンパスチェーンが形成されたテストシステムであって、
前記被テストシステムのテストに際し、前記入力回路のデータを前記スキャンパスチェーンに巡回させることにより初期状態を指定し、前記システムクロックを動作させた後に、前記入力回路のデータを前記第１のシフトレジスタに取り込み、又は前記出力回路のデータを前記第２のシフトレジスタに取り込み、且つ、前記シフトクロックを動作させて前記スキャンパスチェーンから前記入力回路又は前記出力回路のデータを取り出し、
前記スキャンパスチェーンに許可データを巡回させ、前記許可データが有効なときにのみ前記出力回路のデータを前記テストバスに出力する構成にしたことを特徴とするテストシステム。
【請求項２】
請求項１記載のテストシステムにおいて、
前記テストバスをｍビット（但し、ｍは１より大きな整数）とし、且つ、前記許可データを連続するｍビットの有効ビットを有しその前後に有効ビットを有しないデータとした場合で、
前記シフトクロックにより前記第１及び第２のシフトレジスタをｍビット毎にシフトすることにより、前記有効ビットを有する前記出力回路のｍビットデータを前記ｍビットのテストバスに出力する構成にしたことを特徴とするテストシステム。
【請求項３】
請求項１記載のテストシステムにおいて、
前記スキャンパスチェーン又は前記テストバスに接続されるテストデータ入力端子と、前記スキャンパスチェーン又は前記テストバスに接続されるテストデータ出力端子とを有し、
前記テストバスをｍビット（但し、ｍは１より大きな整数）とした場合に、
前記テストデータ入力端子をｍビット、且つ、前記テストデータ出力端子をｍビットとすることを特徴とするテストシステム。
【請求項４】
請求項１記載のテストシステムにおいて、
前記入／出力バスの一部を前記テストバスとして代用する場合に、
テストデータ入力端子及びテストデータ出力端子と、
前記テストデータ入力端子と前記入／出力バスの入力側との間に接続され、入力制御信号に基づいて前記入／出力バスを選択する入力側マルチプレクサと、
前記テストデータ出力端子と前記入／出力バスの出力側との間に接続され、出力制御信号に基づいて前記入／出力バスを選択する出力側マルチプレクサとを有し、
前記入力側マルチプレクサと前記出力側マルチプレクサとが選択する前記入／出力バスの一部を前記テストバスと一致させる構成にしたことを特徴とするテストシステム。
【請求項５】
請求項３又は４記載のテストシステムにおいて、
前記テストデータ入力端子から入力されたデータが、前記テストバスを経由して前記テストデータ出力端子にバイパスされて出力される構成にしたことを特徴とするテストシステム。
【請求項６】
請求項１記載のテストシステムにおいて、
前記入／出力バスの一部又は全部を前記テストバスとして代用するに際し、
前記スキャンパスチェーンから前記入力回路及び前記出力回路のデータを直接取り出すモードと、
前記許可データが有効なときにのみ前記入力回路及び前記出力回路のデータを前記テストバスに出力するモードと、
を切り替えるモード切替手段を有することを特徴とするテストシステム。
【請求項７】
システムクロックにより動作する被テストシステムと、
前記被テストシステムにおける入出力データの伝送を行う入／出力バスの一部又は全部により代用されるテストバスと、
前記テストバスに接続された第１の入力レジスタと、前記システムクロックとは独立したシフトクロックにより動作する第１のシフトレジスタと、をそれぞれ有し、複数個の入力ポートからそれぞれ入力されたデータを前記テストバスを介して前記被テストシステムにそれぞれ入力する複数個の入力回路と、
前記テストバスに接続された第２の入力レジスタと、前記シフトクロックにより動作する第２のシフトレジスタと、をそれぞれ有し、前記被テストシステムから前記テストバスへ出力されたデータを複数個の出力ポートへそれぞれ出力する複数個の出力回路とを備え、
前記複数個の第１のシフトレジスタ及び前記複数個の第２のシフトレジスタが直列に接続されてスキャンパスチェーンが形成されたテストシステムであって、
前記被テストシステムのテストに際し、前記テストバスの入出力データを前記第１及び第２の入力レジスタに設定することにより初期状態を指定し、前記システムクロックを動作させた後に、前記入力回路のデータを前記第１のシフトレジスタに取り込み、又は前記出力回路のデータを前記第２のシフトレジスタに取り込み、且つ、前記シフトクロックを動作させて前記スキャンパスチェーンから前記入力回路又は前記出力回路のデータを取り出す構成にしたことを特徴とするテストシステム。
【請求項８】
システムクロックにより動作する被テストシステムと、
前記被テストシステムにおける入出力データの伝送を行う入／出力バスの一部又は全部により代用されるテストバスと、
前記テストバスに接続された第１の入力レジスタと、前記システムクロックとは独立したシフトクロックにより動作する第１のシフトレジスタと、をそれぞれ有し、複数個の入力ポートからそれぞれ入力されたデータを前記テストバスを介して前記被テストシステムにそれぞれ入力する複数個の入力回路と、
前記テストバスに接続された第２の入力レジスタと、前記シフトクロックにより動作する第２のシフトレジスタと、をそれぞれ有し、前記被テストシステムから前記テストバスへ出力されたデータを複数個の出力ポートへそれぞれ出力する複数個の出力回路とを備え、
前記複数個の第１のシフトレジスタ及び前記複数個の第２のシフトレジスタが直列に接続されてスキャンパスチェーンが形成されたテストシステムであって、
前記被テストシステムのテストに際し、前記テストバスの入出力データを前記第１及び第２の入力レジスタに設定することにより初期状態を指定し、前記システムクロックを動作させた後に、前記入力回路又は前記出力回路のデータを前記テストバスに出力する構成にしたことを特徴とするテストシステム。
【請求項９】
システムクロックにより動作する被テストシステムと、
前記被テストシステムにおける入出力データの伝送を行う入／出力バスの一部又は全部により代用されるテストバスと、
前記テストバスに接続された第１の入力レジスタと、前記システムクロックとは独立したシフトクロックにより動作する第１のシフトレジスタと、をそれぞれ有し、複数個の入力ポートからそれぞれ入力されたデータを前記テストバスを介して前記被テストシステムにそれぞれ入力する複数個の入力回路と、
前記テストバスに接続された第２の入力レジスタと、前記シフトクロックにより動作する第２のシフトレジスタと、をそれぞれ有し、前記被テストシステムから前記テストバスへ出力されたデータを複数個の出力ポートへそれぞれ出力する複数個の出力回路とを備え、
前記複数個の第１のシフトレジスタ及び前記複数個の第２のシフトレジスタが直列に接続されてスキャンパスチェーンが形成されたテストシステムであって、
前記被テストシステムのテストに際し、前記テストバスの入出力データを前記第１及び第２の入力レジスタに設定することにより初期状態を指定し、前記システムクロックを動作させた後に、前記スキャンパスチェーンに許可データを巡回させ、前記第１及び第２のシフトレジスタの値が有効である場合には前記入力回路及び前記出力回路のデータを前記テストバスに出力するが、無効である場合には前記入力回路及び前記出力回路のデータを前記テストバスに出力しない構成にしたことを特徴とするテストシステム。
【請求項１０】
請求項９記載のテストシステムにおいて、
前記テストバスをｍビット（但し、ｍは１より大きな整数）とし、且つ、前記許可データを連続するｍビットの有効ビットを有しその前後に有効ビットを有しないデータとした場合で、前記第１及び第２のシフトレジスタをｍビット毎にシフトすることにより、前記有効ビットを有する前記出力回路のｍビットデータを前記ｍビットのテストバスに出力する構成にしたことを特徴とするテストシステム。          
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、従来のJTAG（Joint Test Action Group）を拡張したJTAG拡張インタフェースを用いたテストシステム、特に、論理回路等の被テストシステムを有する半導体チップ、プリント基板等に設けられ、該半導体チップ等の入出力データ及び許可データを巡回的に設定し若しくは取得して被テストシステムをテストするテストシステムに関するものである。
【背景技術】
【０００２】
JTAG若しくはバウンダリスキャン（Boundary Scan）と呼ばれる技術が１９９０年代の始めに開発され、多数の入出力ピンを有する集積回路、BGA（Ball GrID Array）、及び多層プリント基板（PCB；Printed CIRcuit Board）の一層の進化により引き起こされる物理的なアクセスの困難から生じるテストや検診の問題に役立ってきた。現在ではIEEE1149.1として標準化され、多層プリント基板上の不揮発性メモリヘの書き込み等にも使われている。
【０００３】
IEEE1149.1では、複雑な集積回路等にアクセスするための４端子（５端子目はオプションである。）のシリアルインタフェースを定義する。このIEEE1149.1に準拠したテストシステムとしては、例えば次のような文献等に記載されている。
【０００４】
【特許文献１】特開平９−１５３００号公報
【特許文献２】特開平１１−３２６４６０号公報
【０００５】
図１３は、特許文献１、２に記載された従来のテストシステムを搭載した集積回路からなるデバイスのアーキテクチャ（Architecture）の概念図、及び図１４は、図１３のデバイスを複数個搭載したバウンダリスキャン回路の構成図である。
【０００６】
図１３に示すデバイス１０は、被テストシステムである内部コア論理回路１１を有している。内部コア論理回路１１には、図示しない入／出力（以下「I/O」という。）バスを介して、複数個のデータ入力端子in及び複数個のデータ出力端子outが接続されている。内部コア論理回路１１と複数個のデータ入力端子inとの間、及び内部コア論理回路１１と複数個のデータ出力端子outとの間には、バウンダリスキャンの関数を実行するための複数個のバウンダリスキャンセル（Boundary Scan Cell、以下「BSC」という。）１２が設けられている。各BSC１２は、テストデータを設定できる１ビットのシフトレジスタ（shift register）であり、これらが直列に接続されてバウンダリスキャンパスチェーン（Boundary Scan Pass Chain、以下「BSPC」という。）が形成されている。BSPCの入出力を制御するために、テストアクセスポート（Test Access Port、以下「TAP」という。）１３が設けられている。TAP１３は、バイパスレジスタ、命令レジスタ（instruction Register；IR）、デバイス識別レジスタ（以下「IDレジスタ」という。）、及びTAP制御回路等により構成され、そのTAP制御回路内に、バウンダリスキャンの関数を実行するためのステートマシン（state machine）が設けられている。
【０００７】
TAP１３には、標準シリアルインタフェース用の例えば５本のテスト用のテストデータ入力端子（Test Date in；TDI）、テストデータ出力端子（Test Data out；TDI）、テストクロック入力端子（Test Clock；TCK）、テストモード選択端子（Test Mode Select；TMS）、及びテストロジックリセット入力端子（Test Logic Reset；TRST*）が接続されている。端子TDIを通してデバイス１０に入力するデータは、TAP１３内の命令レジスタ若しくはデータレジスタの１つに格納される。デバイス１０から出力されるデータは、端子TDOから送出される。複数個のBSC１２からなるBSPCは、端子TCKから入力されるテストクロックにより動作する。端子TCKのテストクロックは、デバイス１０を動作させるシステムクロックsckとは独立している。端子TMSの信号は、TAP１３の状態を制御する。端子TRST*の信号は、オプションであって、ハードウェア・リセット信号として使われる。
【０００８】
端子TCKのテストクロックに同期した端子TMSの信号により、内部コア論理回路１１の動作と、複数個のBSC１２及びTAP１３等で構成されたテスト回路の動作とが切り替えられる。即ち、テストデータが経由する内部スキャンパスのルートは、端子TMSの信号により、端子TDI→複数個のBSC１２→端子TDOか、又は、端子TDI→TAP１３内のバイパスレジスタ→端子TDOかに切り替えられる。テスト動作時には、端子TMSの信号により、端子TDI→複数個のシフトレジスタ１２→端子TDOのルートに切り替えられ、テストデータがBSC１２に設定され、そのテストデータにより内部コア論理回路１１がテストされる。
【０００９】
このようなデバイス１０を複数個（例えば、１０−１〜１０−６）用い、図１４に示すように、プリント基板２０上において互いに直列に接続することにより、バウンダリスキャンの鎖（chain）であるBSPCを形成でき、その結果、プリント基板２０上で「連鎖」を形成するように構成できる。即ち、各デバイス１０−１〜１０−６は、プリント基板２０上において、各端子TDI及び各端子TDOが直列に接続され、１本のスキャンパスを構成している。このスキャンパスの両端は、プリント基板２０のエッジコネクタ２１における端子ATDI、ATDOに接続されている。
【００１０】
バウンダリスキャン検査を行う外部のJTAG制御回路により、プリント基板２０の製造不良をテストするテストデータを被テストデバイス（例えば、デバイス１０−３のテストデータ設定点Ｐ）へ設定する場合、端子ATDIを通してスキャンパス上で初段となるデバイス１０−１の端子TDIからテストデータがシリアルに入力され、これがTAP１３内のバイパスレジスタを通して端子TDIから出力され、更に、デバイス１０−２の端子TDI、バイパスレジスタ及び端子TDOを介して、被テストデバイス１０−３の端子TDIから入力されてBSC１２にそのテストデータが設定される。テスト終了後のテストデータは、被テストデバイス１０−３の端子TDOから出力され、後段の全デバイス１０−４〜１０−５のバイパス回路を経由して最終段のデバイス１０−６の端子TDOからエッジコネクタ２１の端子ATDIへ出力される。
【００１１】
このようなスキャン動作は、プリント基板２０を製造する際の構造的な欠陥をテストする能力や、システムデバイス内部（in-system）のプログラミングを実行する能力を提供してくれる。その結果、プリント基板２０上で必要なテストをする箇所の個数が大幅に削減される。プリント基板２０の簡易なレイアウト、低コストのテスト設備、テスト時間の削減、標準インタフェースの更なる利用、及び市場への即応等の効果を直接的に享受できる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記のように優れた特徴を持つJTAGであるが、近年のデバイス１０若しくはPCBの大規模化でその限界も見える。
【００１３】
第１に、１ビットのデータ直列転送であるために、端子数（ピン数）が１００以上のデバイス１０等ではテストのために入力を指定し若しくは出力を取り出すための多数のクロックを必要とする。このため被テストデバイス（例えば、１０−３等）を制御する外部のJTAG制御回路には大きな負担がかかり、その上、テスト時間の削減にも限界がある。この他にも、バウンダリスキャン回路を利用したフラッシュメモリ（flash memory）等への書き込みの問題がある。この書き込み時間は、現在の技術では標準１ｍｓ／ページ（ページサイズは、例えば５１２バイト）程度であり、前記１ビットのデータ直列転送からページに変換する作業が必要になり、その処理負担等も大きい。
【００１４】
第２に、前記の問題を解決するために単純に複数ビットのデータ直列転送（言うならば、テストバス）を実現しようとしても、今度はテスト用の回路が増大し、デバイス１０のチップのコストが上昇する。テストバスを総ての入出力端子（ピン）の回りに配線しなければならないし、テスト用の端子も増加するからである。
【００１５】
本発明では、例えば、端子数（ピン数）が１００以上のデバイス１０若しくはPCBでのテスト等を目的とする。その場合、大規模システムのテストは益々困難に陥っており、テストに関するコストは益々重視されつつある。テストバスの採用により端子数が増加したとしても、そのコストの増加は今日では総端子数から見れば相対的に低く成りつつある。しかし、テストバスの採用により優れたJTAGの特徴を失うことがあってはならない。そこで本発明では、既存の資源を生かして、従来のJTAGを拡張したJTAG拡張インタフェースを用いたテストシステムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
請求項１〜６に係る発明のテストシステムでは、システムクロックにより動作する被テストシステムと、前記被テストシステムにおける入出力データの伝送を行うI/Oバスの一部又は全部により代用されるテストバスと、前記システムクロックとは独立したシフトクロックにより動作する第１のシフトレジスタをそれぞれ有し、複数個の入力ポートからそれぞれ入力されたデータを前記テストバスを介して前記被テストシステムにそれぞれ入力する複数個の入力回路と、前記シフトクロックにより動作する第２のシフトレジスタをそれぞれ有し、前記被テストシステムから前記テストバスへ出力されたデータを複数個の出力ポートへそれぞれ出力する複数個の出力回路とを備え、前記複数個の第１のシフトレジスタ及び前記複数個の第２のシフトレジスタが直列に接続されてスキャンパスチェーンが形成されている。
【００１７】
そして、前記被テストシステムのテストに際し、前記入力回路のデータを前記スキャンパスチェーンに巡回させることにより初期状態を指定し、前記システムクロックを動作させた後に、前記入力回路のデータを前記第１のシフトレジスタに取り込み、又は前記出力回路のデータを前記第２のシフトレジスタに取り込み、且つ、前記シフトクロックを動作させて前記スキャンパスチェーンから前記入力回路又は前記出力回路のデータを取り出す。更に、前記スキャンパスチェーンに許可データを巡回させ、前記許可データが有効なときにのみ前記出力回路のデータを前記テストバスに出力する。
【００１８】
請求項７に係る発明のテストシステムでは、システムクロックにより動作する被テストシステムと、前記被テストシステムにおける入出力データの伝送を行うI/Oバスの一部又は全部により代用されるテストバスと、前記テストバスに接続された第１の入力レジスタと、前記システムクロックとは独立したシフトクロックにより動作する第１のシフトレジスタと、をそれぞれ有し、複数個の入力ポートからそれぞれ入力されたデータを前記テストバスを介して前記被テストシステムにそれぞれ入力する複数個の入力回路と、前記テストバスに接続された第２の入力レジスタと、前記シフトクロックにより動作する第２のシフトレジスタと、をそれぞれ有し、前記被テストシステムから前記テストバスへ出力されたデータを複数個の出力ポートへそれぞれ出力する複数個の出力回路とを備え、前記複数個の第１のシフトレジスタ及び前記複数個の第２のシフトレジスタが直列に接続されてスキャンパスチェーンが形成されている。
【００１９】
そして、前記被テストシステムのテストに際し、前記テストバスの入出力データを前記第１及び第２の入力レジスタに設定することにより初期状態を指定し、前記システムクロックを動作させた後に、前記入力回路のデータを前記第１のシフトレジスタに取り込み、又は前記出力回路のデータを前記第２のシフトレジスタに取り込み、且つ、前記シフトクロックを動作させて前記スキャンパスチェーンから前記入力回路又は前記出力回路のデータを取り出す。
【００２０】
請求項８に係る発明のテストシステムでは、請求項７と同様のテストシステムにおいて、前記被テストシステムのテストに際し、前記テストバスの入出力データを前記第１及び第２の入力レジスタに設定することにより初期状態を指定し、前記システムクロックを動作させた後に、前記入力回路又は前記出力回路のデータを前記テストバスに出力する。
【００２１】
請求項９及び１０に係る発明のテストシステムでは、請求項７と同様のテストシステムにおいて、前記被テストシステムのテストに際し、前記テストバスの入出力データを前記第１及び第２の入力レジスタに設定することにより初期状態を指定し、前記システムクロックを動作させた後に、前記スキャンパスチェーンに許可データを巡回させ、前記第１及び第２のシフトレジスタの値が有効である場合には前記入力回路及び前記出力回路のデータを前記テストバスに出力するが、無効である場合には前記入力回路及び前記出力回路のデータを前記テストバスに出力しない。
【発明の効果】
【００２２】
請求項１〜６に係る発明によれば、例えば、既存のI/Oバスを利用して事実上のｍビットテストバスを作りだしたので、１クロックでｍビットシフトするシフトクロックにより入出力データの読み出しをｍ倍に高速化することができ、且つ、そのための回路量の増大を抑えることができる。出力回路においては、第２のシフトレジスタに取り込んだ出力データをテストバスに出力する機能を追加することができる。従来のJTAGの機能を維持しつつ、新たに事実上のテストバスを提供できたことで、JTAGの機能を拡張する実用性をも合わせ備えている。その結果、多ピン化し複雑化する集積回路、PCB、及び組み込み機器等のテストを一層容易にすることができる。なお、本発明では、資源の節約のために既存のI/Oバスを利用したが、集積回路等に余裕がある場合は新たにテストバスを導入することもできる。
【００２３】
請求項７〜１０に係る発明によれば、代用バスのテストバス化を更に進める方式として、代用バスから入出力データを入力することを可能にしている。その結果、回路量の増加にもかかわらず、入出力回路の初期設定が可能になり、且つ、指定する入出力回路において直接入出力データの読み出しができる機能を実現でき、テストの自由度を大きく増大させることができる。この場合にも、請求項１〜６に係る発明と同様に、例えば、既存のI/Oバスを利用して事実上のｍビットテストバスを作りだしたので、１クロックでｍビットシフトするシフトクロックにより入出力データの読み出しをｍ倍に高速化することができる。
【発明を実施するための最良の形態】
【００２４】
最良の形態の内の第１の実施形態では、既存のJTAGを拡張する手段を提供する。新たにテストバスを採用するが、既存のI/Oバスを利用する形（以下「代用バス」という。）にするので、テスト用回路の増大を抑えることができる。
【００２５】
例えば、バウンダリスキャンを行う際に、１ビットのシフトレジスタの鎖であるBSPCをシフトするデータの代わりに、スキャンパスチェーンを構成する複数個の入力回路及び複数個の出力回路により構成される複数個の入出力回路のデータを出力させるか否かを決定する許可データEnDataを巡回させる機能を追加する。許可データEnDataが入出力回路の入出力を許可する場合には、代用バスにその入出力データが出力され、新たに追加され、若しくは既存の入出力端子を利用したテスト用端子から出力されて、次のJTAGインタフェースのチェーンに接続され、最終的には外部JTAG制御回路等に送付されることになる。これに対し、許可データEnDataが入出力回路の入出力を許可しない場合には、その入出力回路は選択されていないことを意味する。なお、１ビットのシフトレジスタの鎖であるBSPCをシフトするデータと、許可データEnDataとの切り替えを行うために特別のレジスタ（モード切替レジスタ）を備える。
【００２６】
第２の実施形態では、代用バスから入出力回路への入力を可能にし、その入出力回路の初期設定等においても、代用バスを活用する方式を提供する。その結果、代用バスは独立したテストバスとして機能する。
【００２７】
このような第１、第２の実施形態では、次のような作用を行う。
テストは、従来最初に入出力回路を初期設定し、次に通常動作で動作させ、その後、動作結果をバウンダリスキャン回路で回収するという形で行われていた。しかし、本発明の第１の実施形態では、本発明に固有のテスト方式として、最初に入出力回路を初期設定し、次に通常動作で動作させ、その後、動作結果を代用バスで回収するという形で行うことができる。又、本発明の第２の実施形態では、本発明に固有のテスト方式として、最初に代用バスを介して入出力回路を初期設定し、次に通常動作で動作させ、その後、動作結果を代用バスで回収するという形で行うことができる。
【００２８】
本実施形態に係る入出力回路では、モード切替レジスタの設定により、シフトレジスタの鎖であるスキャンパスチェーンを流れるデータとして、具体的な入出力回路のデ−タを選択した場合には、従来のJTAGとして機能する。しかし、モード切替レジスタが許可データEnDataを選択した場合には、その許可データEnDataが選択する入出力回路のみが代用バスに入出力データを出力することができる。その際、巡回する許可データEnDataにおける許可ビットの数を代用バスのビット幅と一致させ、且つ、連続したビット列としておくと、代用バスを事実上のテストバスとして活用することができる。一般的には、巡回する許可データEnDataにおける許可ビットの数を代用バスのビット幅と一致させる必要はなく、その場合にはテストの自由度が増加する。又、必ずしも許可ビット列を１ビットシフトする必要はなく、複数ビットシフトの場合にはテスト効率を高めることができる。
【実施例１】
【００２９】
図１は、本発明の実施例１を示すテストシステムの概念図である。
このテストシステムは、従来のJTAGを拡張したJTAG拡張インタフェースを用いたものであり、例えば、端子数（ピン数）が１００以上の集積回路等で構成されたデバイスバス３０を有している。デバイス３０の外側には、外部からのデータを入力する複数個の入力ポートPI、外部へデータを出力する複数個の出力ポートPO、及び、JTAG拡張インタフェース信号用の端子TDIV，TDOV，TMS，TCK，TRST*が設けられ、このデバイス３０の内部に、システムクロックsckにより動作する被テストシステム（例えば、各種の回路で構成された内部コア論理回路）３１が設けられている。複数個の入力ポートPI及び複数個の出力ポートPOのピン数は、通常１００以上である。端子TDIVは、ｍビット（但し、ｍ；１より大きな任意の整数、例えば４）のテストデータ入力ベクトルを入力する端子、端子TDIVは、ｍビットのテストデータ出力ベクトルを出力する端子、端子TMSは、テストモード選択信号を入力する端子、端子TCKは、テストクロックを入力する端子、端子TRST*は、オプションであってテストロジックリセット信号を入力する端子である。
【００３０】
内部コア論理回路３１の周辺には、従来と同様に、この回路３１に対する入出力データの伝送を行うための１６ビット、３２ビット或いは６４ビット等で構成された図示しないI/Oバス３２が設けられている。本実施例１の特徴は、そのような既存のI/Oバス３２の一部又は全部をテストバスとして代用するｍビット（例えば、４ビット）の代用バス３２ａを用いることである。なお、既存のI/Oバス３２が利用できないときは、新たにテストバスが設けられる。このような代用バス３２ａは、信号線により内部コア論理回路３１と接続され、この内部コア論理回路３１に対するI/Oデータの伝送を行う。代用バス３２ａには、BSPCを構成する複数個の入力回路４０in及び複数個の出力回路４０outからなる入出力回路４０が接続されている。各入力回路４０in及び各出力回路４０outは、従来のBSCに相当する回路であり、内部にｍビット（例えば、４ビット）のシフトレジスタがそれぞれ設けられ、これらのシフトレジスタが直列に接続されている。
【００３１】
各入力回路４０inは、各入力ポートPIから入力される４ビットデータ、又はスキャンパス経由で送られてくる前段の４ビットデータのいずれか一方を選択して代用バス３２ａへ出力し、或いは、その前段の４ビットデータをシフトして後段へ転送する回路である。各出力回路４０outは、代用バス３２ａから入力される４ビットデータ、又はスキャンパス経由で送られてくる前段の４ビットデータのいずれか一方を選択して出力ポートPOへ出力し、或いは、その前段の４ビットデータをシフトして後段へ転送する回路である。これらの複数個の入出力回路４０の動作を制御するために、TAPが設けられている。TAPは、TAP制御回路５１、４ビット単位で入出力を行う命令レジスタ（IR）５２、４ビット単位で入出力を行うバイパスレジスタ５３、及び４ビット単位で入出力を行うデバイス識別レジスタ（以下「IDレジスタ」という。）５４等により構成されている。
【００３２】
TAP制御回路５１は、端子TMS，TCK，TRST*からの信号を入力し、許可データEnData、モード切替信号ModeCh、代用バス選択信号ベクトルBusInSel，BusOutSel等の各種の制御信号を出力する回路であり、制御信号ShClock，Wd，Wr，BusEn，Test/Norm等を出力するステートマシン５１ａ、及びモード切替信号ModeChを出力するモード切替手段（例えば、モード切替レジスタ）５１ｂ等を有している。このTAP制御回路５１では、命令レジスタ（IR）５２に格納された命令に従い、データレジスタ（DR）である各入出力回路４０内のシフトレジスタ、IDレジスタ５４、又はバイパスレジスタ５３の内のいずれか１つを選択して動作させる機能を有している。バイパスレジスタ５３は、ステートマシン５１ａがShift-DR（バイパス）状態のとき、端子TDIVからのデータを端子TDIVへ転送する機能を有している。IDレジスタ５４は、デバイス３０のパートナンバ、バージョン等を表す識別コードをデバイス３０からシリアルに読み出すために使用される。
【００３３】
端子TDIVには、入力切替回路６１を介して、データ選択用の入力側マルチプレクサ６３，６５と、TAP側のバイパスレジスタ５３、命令レジスタ（IR）５２及びIDレジスタ５４と、のいずれか一方が切替接続される。一方の入力側マルチプレクサ６３の出力側は初段の入力回路４０inに接続され、他方の入力側マルチプレクサ６５の出力側が代用バス３２ａに接続されている。一方の入力側マルチプレクサ６３は、モード切替レジスタ５１ｂから出力されるモード切替信号ModeChにより、入力切替回路６１からの入力データ、又はTAP制御回路５１からの許可データEnDataのいずれか一方を選択して、初段の入力回路４０inに与える回路である。他方の入力側マルチプレクサ６５は、TAP制御回路５１からの入力制御信号（例えば、代用バス選択信号ベクトル）BusInSelにより、入力切替回路６１からの入力データのビットを選択して代用バス３２ａへ与える回路である。
【００３４】
即ち、本実施例１でも、複数個の入出力回路４０によるBSPCはそのまま残されており、４ビットのTDIV信号の最下位ビット（LSB）は、従来の１ビットのTDI信号に対応している。マルチプレクサ６３は、モード切替レジスタ５１ｂから与えられるモード切替信号ModeChが無効（論理値“Ｌ”）のときに、入力切替回路６１からのTDIV信号のLSBを選択してBSPCに巡回させ、モード切替信号ModeChが有効（論理値“Ｈ”）のときに、TAP制御回路５１からの許可データEnDataを選択してBSPCに巡回させる。モード切替レジスタ５１ｂの設定は、TMS信号により、該モード切替レジスタ５１ｂを設定する状態（State）が選択されたときに行われる。
【００３５】
出力側でも同様の構成が採用されており、最終段の出力回路タ４０outに出力側マルチプレクサ６４が接続されると共に、代用バス３２aに出力側マルチプレクサ６６が接続され、これらのマルチプレクサ６４，６６と、TAP側のバイパスレジスタ５３、命令レジスタ（IR）５２及びIDレジスタ５４とのいずれか一方が、出力切替回路６２を介して４ビットの端子TDIVに接続されている。一方の出力側マルチプレクサ６４は、モード切替レジスタ５１ｂから出力されるモード切替信号ModeChにより、最終段の出力回路４０outの出力を選択して出力切替回路６２へ出力する回路である。他方の出力側マルチプレクサ６６は、TAP制御回路５１から出力される出力制御信号（例えば、代用バス選択信号ベクトル）BusOutSelにより、代用バス３２ａの出力を選択して出力切替回路６２へ出力する回路である。
【００３６】
４ビットのTDIV信号のLSBは、従来の１ビットのTDI信号に対応する。入力切替回路６１がTDIV信号のLSB入力をBSPCに巡回させる場合、モード切替レジスタ５１ｂから出力されるモード切替信号ModeChが無効（“Ｌ”）に設定される。モード切替信号ModeChが無効であると、マルチプレクサ６４は前記LSB入力を選択する。その結果、従来のJTAGと同様に、入力データを指定することができ、且つ、出力切替回路６２を介して対応する出力データを前記BSPCを通してTDI信号として取り出すことができる。即ち、本実施例１でもJTAG互換機能を維持することができる。
【００３７】
図２は、図１中のTAP制御回路５１の状態遷移図である。ここでは従来と同様に、１ビット制御による状態遷移図を示した。
【００３８】
TAP制御回路５１の状態は、例えば、TCK信号の立ち上がりエッジで、TMS信号が論理値“０”か“１”のどちらの値を取るかによって変化する。図２では、状態の遷移を示す矢印のわきにTMS信号の取る値が示されている。図２の左側のカラムは、データカラム（即ち、各入出力回路４０内のシフトレジスタ、IDレジスタ５４、バイパスレジスタ５３であるデータレジスタ（DR））で、右側のカラムは命令カラム（即ち、命令レジスタ（IR）５２）である。
【００３９】
例えば、TAP制御回路５１がTest-Logic-Reset状態において、TAP制御回路５１がTRST*信号によりReset状態の場合は、デフォルトとしてIDレジスタ５４が選択される。各入出力回路４０内のシフトレジスタの最上位（MSB）１ビットは、“０”にクリアされ、出力はディセーブルされる。TMS信号が“１”の期間は、TAP制御回路５１がTest-Logic-Reset状態を保持する。Test-Logic-Reset状態のときに端子TMSに“０”を入力すると、TAP制御回路５１はRun-Test/Idle状態に遷移する。
【００４０】
Run-Test/Idle状態において、組込自己テスト（BIST）命令など特定の命令が設定されているときのみ、デバイス３０はテストモードになる。Run-Test/Idle状態で実行されない命令に対しては、現在の命令により選択されているテストDRは前の状態を保持する。TMS信号が“０”の期間は、TAP制御回路５１がRun-Test/Idle状態を保持する。端子TMSに“１”を入力すると、TAP制御回路５１はSelect-DR-Scan状態に遷移する。
【００４１】
Select-DR-Scan状態は、TAP制御回路５１の一時的な状態であり、デバイス３０が特別な動作をしない。TAP制御回路５１がSelect-DR-Scan状態のとき端子TMSに“０”を入力すると、Capture-DR状態に遷移する。端子TMSに“１”を入力すると、命令カラムのSelect-IR-Scan状態に遷移する。
【００４２】
Select-IR-Scan状態は、TAP制御回路５１の一時的な状態であり、デバイス３０が特別な動作をしない。TAP制御回路５１がSelect-IR-Scan状態のとき、端子TMSに“１”を入力すると、TAP制御回路５１がTest-Logic-Reset状態に戻る。
【００４３】
一方、TAP制御回路５１がCapture-IR状態では、データが命令レジスタ（IR）５２にパラレルにロードされる。このCapture-IR状態は、命令レジスタ（IR）５２のテストに使用する。命令レジスタ（IR）５２の故障は、ロードされたデータをシフトアウトすることにより検出できる。TAP制御回路５１がCapture-IR状態のとき、端子TMSに“０”を入力すると、Sift-IR状態に遷移する。端子TMSに“１”を入力すると、TAP制御回路５１はExit-IR状態に遷移する。
【００４４】
本実施例１では、モード切替レジスタ(MR)５１ｂの設定は、前記状態遷移で設定される命令により行われる。MR-Set命令がモード切替レジスタ５１ｂをセットすると、本実施例１に係る拡張JTAGモードへ移行する。MR-Reset命令がモード切替レジスタ５１ｂをリセットすると、従来のJTAGモードへ移行する。従って、従来のJTAGの命令セットに加えて本実施例１に係る前記命令の追加が必要である。モード切替レジスタ５１ｂの設定は、状態遷移図の中でも行うことができるが、複雑になるのと従来のJTAGの拡張であることに鑑み採用しなかった。ここでは従来と同様に１ビット制御による状態遷移図を示したが、状態遷移を複数ビットの値に対応させて遷移させるように拡張することができる。例えば、TMS信号を２ビットにして、その２ビット値に対応して状態遷移することも可能である。
【００４５】
本実施例１の特徴は、代用バス３２ａを使うことにあり、既存のI/Oバス（例えば、１６ビット、３２ビット又は６４ビット等の構成）を利用する形で、事実上の汎用テストバスを作り出している。本実施例１では、テストポートである端子TDIV，TDOVを４ビット構成としたので、前記汎用テストバスが４ビット以上である場合には、マルチプレクサ６５において、代用バス選択信号ベクトルBusInSelを、テストバスとして利用する４ビットを選択するように指定する。
【００４６】
テストの際、既存のI/Oバスを利用するときは、このI/Oバスが内部コア論理回路３１等で利用されている場合には、バスの解放を行わなければならない。そこで、当該I/Oバスに接続する総ての入出力回路４０の入出力（テストポートを除く。）は一時的に切り離される。この切り離しは、TAP制御回路５１の出力するModeCh信号により行われる。
【００４７】
JTAGでは、デバイス３０での処理を行う場合はデータをバイパスさせることができ、TDI信号は１ビットのバイパスレジスタ５３を介してTDI信号として出力される。本実施例１では４ビットのTDIV信号を扱うので、バイパスレジスタ５３も４ビット単位で入出力を行う構成になっており、この出力は端子TDIVから、次のチェーンに繋がるデバイス３０に入力される。
【００４８】
マルチプレクサ６６において、代用バス選択信号ベクトルBusOutSelを、テストバスとして利用する４ビットを選択する場合は、マルチプレクサ６５において選択された入力側４ビットと、マルチプレクサ６６において選択された出力側４ビットとは、通常一致していなければならない。もっとも既存のI/Oバスが４ビット以上で前記４ビット以外も利用する使い方もできる。この場合、マルチプレクサ６５において選択された入力側４ビットと、マルチプレクサ６６において選択された出力側４ビットとは必ずしも一致しなくなる。その選択は、代用バス選択信号ベクトルBusInSel及びBusOutSelにより行われる。
【００４９】
このように、JTAGのバイパス機能を、本実施例１の代用バス３２ａによっても実現できる。但し、どの入出力端子を代用バス３２ａのどのビットに対応させ、且つ、その配線を行うかを予め定めておく必要がある。同様に、命令レジスタ（IR）５２やIDレジスタ５４も４ビット単位で入出力を行う構成になっている。
【００５０】
TAP制御回路５１から出力されるモード切替信号ModeChが有効（“Ｈ”）になっている場合には、本実施例１に固有の機能である拡張JTAGモードが有効になる。拡張JTAGモードにおいて、マルチプレクサ６３はTAP制御回路５１から出力される許可データEnDataを選択する。許可データEnDataは、該当する入出力データを代用バス３２aに出力するか否かを決定する。本実施例１では、４ビットの倍数（ｉ）分だけ連続する有効信号（“Ｈ”）を供給するが、この場合には、BSPCは１ビットシフトではなく、４ｉビット毎のシフトを行うと効率が良い。この制御はTAP制御回路５１により行われる。この結果、拡張JTAGモードでは「生データ」ではなく、TAP制御回路５１の供給する規則的なデータである許可データEnDataがBSPCを巡回する。
【００５１】
BSPCにおいて４ｉビット毎のシフトを行う場合には、各入出力に対して代用バス３２ａのどのビットに出力するかを予め配線で定めておく。許可データEnDataがバスでの衝突を防止するように排他的にシフトする場合には、総ての入出力回路４０に対して代用バス３２aの特定の４ビットのみの使用ができるが、これは実質的な、テストバスの実現を意味する。最も、本実施例１でのｍ＝４ビットはあくまで例示であって、容易に他のビット数ｍに拡張できる（但し、ｍは１より大きな整数であって代用するI/Oバスのビット数を超えないこと）。
【００５２】
図３は、図１中の入力回路４０inの一例を示す構成図である。
この入力回路４０inは、例えば、BSPCを流れる４ビット分の入力データＤinをシフトして４ビット分の出力データＤoutを出力する４ビット分の第１のシフトレジスタ４１（なお、図３では図面の簡略化を図るために１ビット分だけが図示されている。）と、入力ポートPIから入力されたデータと出力データＤoutとのいずれか一方を選択して代用バス３２aへ出力する複数個のゲート（即ち、バッファ４２−１、トライステートバッファ４２−２，４２−６、ANDゲート４２−３〜４２−５，４２−７）、及びマルチプレクサ４３−１と、を有している。シフトレジスタ４１は、TAP制御回路５１から出力されるシフトクロックShClockを入力するクロック端子φ、入力データＤinを入力する入力端子Ｄ、出力データＤoutを出力する出力端子Ｑ、セット端子Ｓ、及びリセット端子Ｒを有している。このシフトレジスタ４１は、クロック端子φから入力されるシフトクロックShClockに基づき、入力端子Ｄから入力される４ビット分の入力データＤinをシフトし、４ビット分の出力データＤoutを出力端子Ｑから出力する回路である。
【００５３】
バッファ４２−１は、入力ポートPIから入力されるデータを駆動する回路であり、この出力端子に、マルチプレクサ４３−１の第１入力端子が接続されている。マルチプレクサ４３−１は、第２入力端子がシフトレジスタ４１の出力端子Ｑに接続され、TAP制御回路５１から出力される制御信号Test/Normに基づき、第１入力端子又は第２入力端子のいずれか一方の入力信号を選択して出力する回路であり、この出力端子にトライステートバッファ４２−２が接続されている。トライステートバッファ４２−２は、ANDゲート４２−３から出力される制御信号PortEn1に基づきオン／オフ動作し、オン状態のときにマルチプレクサ４３−１の出力信号を代用バス３２ａへ出力する回路である。ANDゲート４２−３は、TAP制御回路５１から出力される制御信号Test/Normの反転信号と該TAP制御回路５１から出力される出力許可信号BusEnとの論理積を求め、制御信号PortEn1をトライステートゲート４２−２に与える回路である。
【００５４】
又、バッファ４２−１の出力端子と、TAP制御回路５１から出力されるデータ書き込み信号Wdの信号線とは、ANDゲート４２−４の入力端子に接続され、該ANDゲート４２−４の出力端子がシフトレジスタ４１のセット端子Ｓに接続されている。バッファ４２−１の出力信号を反転するインバータと、TAP制御回路５１から出力されるデータ書き込み信号Wdの信号線とは、ANDゲート４２−５の入力端子に接続され、該ANDゲート４２−５の出力端子がシフトレジスタ４１のリセット端子Ｒに接続されている。更に、バッファ４２−１の出力端子は、トライステートバッファ４２−６の入力端子に接続されている。トライステートバッファ４２−６は、ANDゲート４２−７から出力される制御信号PortEn2によりオン／オフ動作し、オン状態のときにバッファ４２−１の出力信号を代用バス３２ａに出力する回路である。ANDゲート４２−７は、シフトレジスタ４１の出力端子Ｑから出力される出力信号と、TAP制御回路５１から出力される制御信号ModeCh，Test/Norm，BusEnとの論理積を求め、制御信号PortEn2をトライステートバッファ４２−６に与える回路である。
【００５５】
このような図３の入力回路４０inにおいて、本実施例１の固有の機能（拡張JTAG仕様）は、トライステートバッファ４２−６及びANDゲート４２−７により実現されている。
【００５６】
通常動作の場合、TAP制御回路５１から出力される制御信号Test/Normは無効（“Ｌ”）になっており、マルチプレクサ４３−１はバッファ４２−１の出力側を選択している。又、ANDゲート４２−３において、TAP制御回路５１から出力される制御信号Test/Normが無効で出力許可信号BusEnが有効になると、制御信号PortEn1が有効になる状態にある。そこでこのとき入力ポートPIからの入力データは、このデータが他の処理に使われるときは、バッファ４２−１、マルチプレクサ４３−１、及びトライステートバッファ４２−２を介して代用バス３２aに出力される。
【００５７】
次に、図３のJTAGにおけるテスト動作、即ち代用バス３２aが本来のI/Oバス３２として機能する場合について説明する。
【００５８】
テスト動作では、TAP制御回路５１から出力される制御信号Test/Normが有効（“Ｈ”）になっており、マルチプレクサ４３−１はシフトレジスタ４１の出力端子Ｑ側を選択している。JTAGでは、入力回路４０inにおいては、テスト動作での初期設定において入力ポートPIからの実際の入力データの代わりに、シフトレジスタ４１のBSPCを通じて当該シフトレジスタ４１に初期設定データを取り込み、テスト動作中に当該データを入力データとして代用バス３２ａに出力する形で使用する。
【００５９】
例えば、図３において、TAP制御回路５１から出力される制御信号Test/Normが無効（“Ｌ”）で従来のJTAGの動作が選択され、且つ、テスト動作中でシフトレジスタ４１に初期設定データが既に取り込まれていたとする。この場合、シフトレジスタ４１に保持された初期設定データは、出力端子Ｑからマルチプレクサ４３−１及びトライステートバッファ４２−２を介して代用バス３２ａに出力される。このタイミングは、トライステートバッファ４２−２の制御信号PortEn1が有効になったときである。従って、入力データは、代用バス３２ａヘの出力許可信号ＢｕｓＥｎにより、通常動作における当該入力データと全く同じタイミングで、代用バス３２ａに出力できる。
【００６０】
同じく図３において、JTAGにおけるテスト動作終了時での入力ポートPIの値を、外部に取り出す方法につき説明する。
【００６１】
シフトレジスタ４１はJTAGでBSPCを構成するが、図３ではその１ビット分だけが示されている。BSPCを伝わるデータＤinは、シフトレジスタ４１の入力端子Ｄより入力され、出力端子Ｑより出力データＤoutが出力される。シフトレジスタ４１への入力データＤinの取り込みは、本実施例１では、該シフトレジスタ４１のセット・リセット機能を用いて行っている。即ち、TAP制御回路５１から出力されるデータ書き込み信号Wdが有効（“Ｈ”）な場合は、バッファ４２−１の出力信号の値に応じて、シフトレジスタ４１のセット端子Ｓに接続されるANDゲート４２−４、若しくはリセット端子Ｒに接続されるANDゲート４２−５の何れかが有効になる。この結果、バッファ４２−１の出力信号の値がそのままシフトレジスタ４１に移され、当該入力データＤinはシフトレジスタ４１に保持され、この出力端子Ｑから出力信号Ｄoutが出力される。
【００６２】
TAP制御回路５１において、データをシフトする状態が選択され、その結果、データシフト用のクロック信号ShClockが出力されると、シフトレジスタ４１に取り込まれた入力データＤinがBSPCを通してシフトして行く。シフトクロックShClockに従い、図１の端子TDIVから総ての入出力回路４０端子の値が順番に出力される。
【００６３】
同じく図３において、本実施例１に固有の方法により入出力データ等を外部に取り出す方法につき説明する。
【００６４】
この動作では信号Test/Normが有効であり、マルチプレクサ４３−１はシフトレジスタ４１の出力端子Ｑ側を選択する。シフトレジスタ４１に特定の初期設定データが取り込まれているが、これは生データではなく、許可データである。トライステートバッファ４２−６おいて、当該許可が出ていると、ANDゲート４２−７の出力信号である制御信号PortEn2が有効になる。このとき入力ポートPIの入力データは、バッファ４２−１及びトライステートバッファ４２−６を介して代用バス３２ａに出力される。逆に当該許可が出ていないと、トライステートバッファ４２−６おいて制御信号PortEn2が無効になり、入力ポートPIからの入力データの出力は禁止され、該入力ポ−トPIのデータはその出力を待たされている状態にある。
【００６５】
許可データが連続する４ビットの有効データであり、この前後に有効ビットを有せず、且つ、シフトレジスタ４１を４ビット毎にシフトすると、この紡果、許可データが入出力端子を４ビット毎に参照することができる。即ち、４ビットの代用バス３２ａに出力されるデータは、シフトの度に順番に入出力ポートの４端子分のデータを代用バス３２ａに現し、最終的には１００ピン以上の総ての端子を参照することが可能である。ここでは１クロックで４ビットのシフトを行うと、データ出力の速度を４倍に向上させることができるといった効果を奏する。
【００６６】
図４は、図１中の出力回路４０outの一例を示す構成図であり、図３の入力回路４０in中の要素と共通の要素には共通の符号が付されている。
【００６７】
この出力回路４０outは、例えば、BSPCを流れる４ビット分の入力データＤinをシフトして４ビット分の出力データＤoutを出力する４ビット分の第２のシフトレジスタ４１（なお、図４では図面の簡略化を図るために１ビット分だけが図示されている。）と、代用バス３２ａから出力されたデータと出力データＤoutとのいずれか一方を選択して出力ポートPOへ出力する複数個のゲート（即ち、ANDゲート４２−４，４２−５，４２−７，４２−９、トライステートバッファ４２−６，４２−６、バッファ４２−８）、マルチプレクサ４３−２及び出力出力レジスタ４４−１と、を有している。シフトレジスタ４１は、クロック端子φから入力されるシフトクロックShClockに基づき、入力端子Ｄから入力される４ビット分の入力データＤinをシフトし、４ビット分の出力データＤoutを出力端子Ｑから出力する回路である。
【００６８】
出力レジスタ４４は、代用バス３２ａのデータを入力する入力端子Ｄ、ANDゲート４２−９の出力信号を入力するクロック端子φ、及びデータを出力する出力端子Ｑを有し、クロック端子Ｑに入力されるANDゲート４２−９の出力信号に基づき、代用バス３２ａの信号をラッチして出力端子Ｑから出力する回路である。ANDゲート４２−９は、TAP制御回路５１から出力される制御信号Test/Normの反転信号と、該TAP制御回路５１から出力されるデータ書き込み信号Wrとの論理積を求めて、出力出力レジスタ４４−１のクロック端子φに与える回路である。出力出力レジスタ４４−１の出力端子Ｑと、シフトレジスタ４１の出力端子Ｑとは、マルチプレクサ４３−２の入力端子に接続されている。マルチプレクサ４３−２は、TAP制御回路５１から出力される制御信号Test/Normにより、出力出力レジスタ４４−１の出力信号又はシフトレジスタ４１の出力信号のいずれか一方を選択して出力する回路であり、この出力端子が、出力用バッファ４２−８を介して出力ポートPOに接続されている。
【００６９】
出力出力レジスタ４４−１の出力端子Ｑと、TAP制御回路５１から出力されるデータ書き込み信号Wdの信号線とは、ANDゲート４２−４を介して、シフトレジスタ４１のセット端子Ｓに接続されている。出力出力レジスタ４４−１の出力端子Ｑに接続されたインバータと、TAP制御回路５１から出力されるデータ書き込み信号Wdの信号線とは、ANDゲート４２−５を介して、シフトレジスタ４１のリセット端子Ｒに接続されている。
【００７０】
シフトレジスタ４１の出力信号と、TAP制御回路５１から出力される制御信号ModeCh，Test/Norm，BusEnとは、ANDゲート４２−７により論理積がとられ、この論理積信号PortEnがトライステートバッファ４２−６に与えられる。トライステートバッファ４２−６は、信号PortEnに基づきオン／オフ動作し、オン状態のときに出力出力レジスタ４４−１の出力信号を代用バス３２ａに出力する回路である。
【００７１】
このように、出力回路４０out側の出力ポートPOにおいても、本実施例１に固有の機能を付加することができる。本実施例１に固有の機能（拡張JTAG仕様）は、トライステートバッファ４２−６及びANDゲート４２−７により実現されている。
【００７２】
図４において、通常の出力ポートPOとしての機能は、出力レジスタ４４−１、マルチプレクサ４３−２及びバッファ４２−８を介して実現している。通常動作なので、TAP制御回路４１から出力される信号Test/Normは無効（“Ｌ”）になっており、ANDゲート４２−９において、TAP制御回路４１から出力される書き込み信号Wrを受け付け得る状態になっている。そこで、代用バス３２ａのデータは、書き込み信号Wrにより出力レジスタ４４−１に書き込まれる。
【００７３】
JTAGのテスト動作の際は、出力ポートPOではこのデータを参照するだけで、代用バス３２ａへ出力されない。他方、出力ポートPOに接続された外部機器ヘデータを供給する必要から、その初期設定を行う必要がある。そこで、テスト動作での初期設定において、実際の入力の代わりにシフトレジスタ４１のBSPCを通じて初期設定データを取り込む作業が行われる。取り込まれた出力データ（Ｄin）は、本来の出力レジスタ４４−１の出力に代わり、シフトレジスタ４１の出力端子Ｑ、マルチプレクサ４３−２、及びバッファ４２−８を通じて出力ポートPOに出力される。なお、出力レジスタ４４−１の出力は、その間保持される。
【００７４】
テスト動作終了後、出力レジスタ４４−１の出力端子Ｑに現れた出力データは、書き込み信号Wd、及びANDゲート４２−４，４２−５により、シフトレジスタ４１に取り込まれる。取り込まれたデータは、シフトクロックShClockにより、シフトレジスタ４１のBSPCを用いて外部に取り出される。
【００７５】
次に、図４において、本実施例１に固有の方法により当該出力データを外部に取り出す方法につき説明する。
【００７６】
シフトレジスタ４１のBSPCを通じて該シフトレジスタ４１に初期設定データを取り込む作業は同じである。テスト終了後にシフトレジスタ４１に特定のデータが取り込まれるが、それは生データではなく、許可データである。ANDゲート４２−７から許可信号PortEnが出ていると、出力レジスタ４４−１の出力端子Ｑから出力される出力信号は、トライステートバッファ４２−６を介して代用バス３２ａに出力される。許可信号PortEnの出力タイミングは、代用バス３２ａヘの出力許可信号BusEnと同じである。逆に許可信号PortEnが出ていないと、入力データの出力は禁止され、入力ポートPOのデータはその出力を待たされている状態にある。この結果、許可データを採用すれば、代用バス３２ａを介して、その出力データを端子TDIVから参照することができる。
【００７７】
図５は、図１における入出力データの読み出しタイミングを示す図である。
この図５を参照しつつ、図１の入力回路４０in及び出力回路４０outがどのようなタイミングで動作するかを明らかにする。
【００７８】
図５において、図１のデバイス３０に与えられるＣＰＵクロック等のシステムクロックsckは、JTAGのテスト動作の合間に供給されている。JTAGインタフェースがその入力を指定し、１ステート毎、若しくは１マシンサイクル毎にシステムクロックsckが供給された後に、該JTAGインタフェースを介して出力データを参照する場合である。システムクロックsckが供給されている間、信号ModeChは無効になっており、代用バス３２ａは通常通り使用することができる。システムクロックsckの供給停止後、信号ModeChが有効になると、本実施例１に固有の方法により入出力データを外部に取り出す作業が行われる。
【００７９】
最初にTAP制御回路５１からデータ書き込みクロックWdが出力されるが、この書き込みはシフトレジスタ４１にテスト結果である入出力データを取り込むために行われる。一般的に入力データは、JTAGのテスト動作終了後は、初期設定で設定した値に一致しない。出力データは、ここではテスト結果を意味する。
【００８０】
次に、入出力データを外部に取り出すために、シフトレジスタ４１に４つのシフトクロックShClockが供給される。テストにかかる４端子を指定するために許可データEnDataは４連続する有効データ（“Ｈ”）で構成される。本実施例１のように、シフトレジスタ４１が１ビットシフトではなく、４ビットシフトを採用する場合には、そのシフトクロックShClockは１クロックで足りる。この結果、４ビットの代用バス３２ａは、入出力データをマルチプレクサ６６を介して端子TDIVに送り出し、該入出力データがTDIV信号を構成することになる。図５に示したTDIV信号は、シフトクロックShClockに同期してそのデータを変更する。TDIV信号の他の成分も同様である。このTDIV信号は、デバイス３０の外部に設けられた図示しないJTAG制御回路の読み取り信号により読み取られるが、この読み取り信号の生成はTCK信号を基礎にして合成するごとができる。
【００８１】
４ビットの許可データEnDataが連続する４ビットの有効データであり、この前後に有効ビットを有せず、且つ、シフトレジスタ４１を４ビット毎にシフトすると、この結果、許可データEnDataが入出力端子を４ビット毎に参照することができる。この状態は、図５において、４ビット有効データEnDataのシフトとして表現されている。１００ピン以上の端子を有するデバイス３０において、Pin番号に従い、例えば端子TDIに近い順に該４ビット有効データの供給を受けると、入出力データが４ビットのTDIV信号として参照され、設定した入出力状態におけるテスト結果が判明する。
【００８２】
図６は、本実施例１の拡張JTAGと従来のJTAGとの入力ポートPIに期待される出力（即ち、入力ポートPIからのデータの流れ）を比較した図である。
【００８３】
従来のJTAG仕様の場合（ModeCh＝０）、通常動作（Test/Norm＝０）では入力ポートPIからの入力値が入力バッファ（図３のバッファ４２−１に相当）を介してI/Oバス（本実施例１の代用バス３２ａに相当）に出力される。又、テスト動作（Test/Norm＝１）の初期設定では、BSPCを介して取り込んだ入力値（Ｄin）であるレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤoutに相当）がI/Oバス（本実施例１の代用バス３２ａに相当）に出力される。テスト動作（Test/Norm＝１）の終了後は、入力ポートPIからの入力バッファ（図３のバッファ４２−１に相当）を介した入力値を取り込んだレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤout相当）がBSPCをシフトして行く。
【００８４】
これに対し、本実施例１の拡張JTAG仕様の場合（ModeCh＝１）、通常動作（Test/Norm＝０）では入力ポートPIからの入力値がバッファ４２−１を介して代用バス３２ａに出力される。又、テスト動作（Test/Norm＝１）の初期設定では、BSPCを介して取り込んだ入力値であるレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤout）が代用バス３２ａに出力される。テスト動作（Test/Norm＝１）の終了後は、入力ポートPIからの入力値を取り込んだレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤout）がBSPCをシフトする場合（JTAG仕様）と、入力ポートPIからのバッファ４２−１を介した入力値を代用バス３２ａに出力する場合（拡張JTAG仕様）との何れか若しくは双方を選択することができる。これは、テスト動作においてはTAP制御回路５１により、シフトクロックShClock若しくは書き込み信号Wd、又は出力許可信号（バスイネーブル信号BusEn）を独立して出力することができるからである。
【００８５】
なお、従来のJTAGのテスト動作の際は、出力ポートPOではそのデータを参照するだけで、I/Oバス（本実施例１の代用バス３２ａに相当）ヘの出力はされなかった。しかし、本実施例１では採用しなかったが、JTAGのテスト動作の際（ModeCh＝０且つTest/Norm＝１）にも図３の制御信号PortEn2を有効にすれば、バッファ４２−１を介した入力値を代用バス３２ａに出力することができる。この機能は従来のJTAGにないものであり、デバイス３０のテストの自由度を増加させるものである。
図７は、本実施例１の拡張JTAGと従来のJTAGとの出力ポートPOに期待される出力を比較した図である。
【００８６】
従来のJTAG仕様の場合（ModeCh＝０）、通常動作（Test/Norm＝０）ではI/Oバス（本実施例１の代用バス３２ａに相当）から出力レジスタ（図４の出力レジスタ４４−１に相当）に書き込まれた出力値（出力端子Ｑの値に相当）が出力ポートPOに出力される。又、テスト動作（Test/Norm＝１）の初期設定では、BSPCを介して取り込んだ出力値であるレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤoutに相当）が出カポートPOに出力される。テスト動作（Test/Norm＝１）の終了後は、出力レジスタ（図４の出力レジスタ４４−１に相当）に書き込まれた出力値を取り込んだレジスタ値（図４のシフトレジスタ４１の出力端子Ｑから出力される出力データＤoutに相当）がBSPCをシフトして行く。
【００８７】
これに対し、本実施例１の拡張JTAG仕様の場合（ModeCh＝１）、通常動作（Test/Norm＝０）では代用バス３２ａから出力レジスタ４４−１に書き込まれた出力値が出力ポートPOに出力される。又、テスト動作（Test/Norm＝１）の初期設定では、BSPCを介して取り込んだ出力値であるレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤout）が出力ポートPOに出力される。テスト動作（Test/Norm＝１）の終了後は、出力レジスタ４４−１からの出力値を取り込んだレジスタ値（シフトレジスタ４１の出力端子Ｑから出力される出力データＤout）がBSPCをシフトする場合（JTAG仕様）と、出力レジスタ４４−１の出力値を代用バス３２ａに出力する場合（拡張JTAG仕様）との何れか若しくは双方を選択することができる。これは、テスト動作においてはTAP制御回路５１により、シフトクロックShClock若しくは書き込み信号Wd若しくはWr、又は出力許可信号（バスイネーブル信号BusEn）を独立して出力することができるからである。
【００８８】
本実施例１では、次の（ａ）〜（ｃ）のような効果がある。
（ａ）  既存のI/Oバス３２を利用して事実上のｍビットのテストバスを作りだしたので、１クロックでｍビットシフトするシフトクロックにより入出力データの読み出しをｍ倍に高速化することができ、且つ、そのための回路量の増大を抑えることができる。
【００８９】
（ｂ）  出力回路４０outにおいては、シフトレジスタ４１に取り込んだ出力データＤoutをテストバスに出力する機能を追加することができる。従来のJTAGの機能を維持しつつ、新たに事実上のテストバスを提供できたことで、JTAGの機能を拡張する実用性をも合わせ備えている。その結果、多ピン化し複雑化する集積回路、PCB、及び組み込み機器等のテストを一層容易にすることができる。
【００９０】
（ｃ）  本実施例１では、資源の節約のために既存のI/Oバス３２を利用したが、集積回路等に余裕がある場合は新たにテストバスを導入することもできる。
【実施例２】
【００９１】
図８は、本発明の実施例２を示すテストシステムの概念図であり、実施例１を示す図１中の要素と共通の要素には共通の符号が付されている。
【００９２】
本実施例２では、代用バス３２ａのテストバス化を更に進める方式を採用している。実施例１では、入出力データを代用バス３２ａに出力することだけが行われたが、本実施例２では代用バス３２ａから入出力データを入力することを可能にする。これは、入出力ポートPI，POに設けた入出力回路４０Ａを初期設定するために入出力データをBSPCで巡回させる作業が必要でなくなり、更にテストを高速化することが可能になり、BSPCを巡回するのは許可データだけで済ませることができるからである。
【００９３】
本実施例２のデバイス３０Ａは、実施例１のデバイス３０とほぼ同様の構成であるが、BSPCを構成するために直列接続された複数個の入力回路４０Ａin及び複数個の出力回路４０Ａoutからなる複数個の入出力回路４０Ａにおいて、各入出力回路４０Ａが、代用バス３２ａに対するI/Oゲートを有していることが大きく異なっている。そのI/Oゲートは、入力ゲート及び出力ゲートからなり、何れもTAP制御回路５１内のモード切替レジスタ５１ｂが拡張JTAGモードを選択し、この結果、モード切替レジスタ５１ｂから出力されるモード切替信号ModeChが有効であるときにのみ、代用バス３２ａに対する入出力を行う構成になっている。即ち、各入出力回路４０Ａ内に設けられた出力ゲートは、TAP制御回路５１内のモード切替レジスタ５１ｂから出力されたモード切替信号ModeChとデータ出力信号との双方を入力とする。同様に、各入出力回路４０Ａ内に設けられた入力ゲートは、モード切替レジスタ５１ｂから出力されたモード切替信号ModeChとデータ入力信号との双方を入力とする。更に、何れの入力ゲート及び出力ゲートも、これらの内部に設けられるレジスタが、TAP制御回路５１から出力される許可データEnDataを保有し、且つ、該許可データEnDataが選択する入出力端子に限り、代用バス３２ａに対するアクセスが可能になる。
【００９４】
図９は、図８中の入力回路４０Ａinの一例を示す構成図であり、実施例１を示す図３中の要素と共通の要素には共通の符号が付されている。
【００９５】
この入力回路４０Ａinでは、図３の入力回路４０inに、ANDゲート４２−９、マルチプレクサ４３−３及び第１の入力レジスタ４４−２を追加し、代用バス３２ａからの入力を可能にした構成が異なっている。
【００９６】
ここで、ANDゲート４２−９は、TAP制御回路５１から出力される信号Wr及びTest/Normの論理積を求める回路であり、この出力端子が入力レジスタ４４−２のクロック端子φに接続されている。入力レジスタ４４−２は、クロック端子φから入力されるANDゲート４２−９の論理積に基づき、代用バス３２ａのデータを入力端子Ｄから取り込んで格納し、この格納したデータを出力端子Ｑから出力する回路である。入力レジスタ４４−２の出力端子Ｑと第１のシフトレジスタ４１の出力端子Ｑとは、マルチプレクサ４３−３の入力端子に接続されている。マルチプレクサ４３−３は、TAP制御回路５１内のモード切替レジスタ５１ｂから出力されるモード切替信号ModeChにより、入力レジスタ４４−２の出力信号又はシフトレジスタ４１の出力信号のいずれか一方を選択して出力する回路であり、この出力端子がマルチプレクサ４３−１の一方の入力端子に接続されている。
【００９７】
本実施例２に固有の機能（拡張JTAG仕様）は、マルチプレクサ４３−３、入力レジスタ４４−２、バッファ４２−６、及びANDゲート４２−７，４２−９により実現されている。実施例１による図３の入力回路４０inでは、テスト動作（Test/Norm＝１）におけるマルチプレクサ４３−１のテスト側入力端子に直接、シフトレジスタ４１の出力端子Ｑから出力される出力信号を入力していたが、本実施例２では、マルチプレクサ４３−３を新たに設け、この選択信号としてモード切替信号ModeChを用い、本実施例２に固有のモードで動作するときには、代用バス３２ａからの入力を選択する。この結果、入力ポートPIの初期設定において、BSPCを通してではなく、入力レジスタ４４−２により、代用バス３２ａからの初期データを設定することが可能になる。
【００９８】
図１０は、図８中の出力回路４０Ａoutの一例を示す構成図であり、実施例１を示す図４中の要素と共通の要素には共通の符号が付されている。
【００９９】
この出力回路４０Ａoutでは、図４の出力回路４０outに、ANDゲート４２−９、マルチプレクサ４３−４、及び第２の入力レジスタ４４−２を追加し、代用バス３２ａからの入力を可能にした構成が異なっている。
【０１００】
ここで、ANDゲート４２−９は、TAP制御回路５１から出力される信号Wr及びTest/Normの論理積を求める回路であり、この出力端子が入力レジスタ４４−２のクロック端子φに接続されている。入力レジスタ４４−２は、クロック端子φから入力されるANDゲート４２−９の論理積に基づき、代用バス３２ａのデータを入力端子Ｄから取り込んで格納し、この格納したデータを出力端子Ｑから出力する回路である。入力レジスタ４４−２の出力端子Ｑと第２のシフトレジスタ４１の出力端子Ｑとは、マルチプレクサ４３−３の入力端子に接続されている。マルチプレクサ４３−３は、TAP制御回路５１内のモード切替レジスタ５１ｂから出力されるモード切替信号ModeChにより、入力レジスタ４４−２の出力信号又はシフトレジスタ４１の出力信号のいずれか一方を選択して出力する回路であり、この出力端子がマルチプレクサ４３−２の一方の入力端子に接続されている。
【０１０１】
本実施例２に固有の機能（拡張JTAG仕様）は、マルチプレクサ４３−３、入力レジスタ４４−２、バッファ４２−６、及びANDゲート４２−７，４２−９により実現されている。実施例１による図４の出力回路４０outでは、テスト動作（Test/Norm＝１）におけるマルチプレクサ４３−２のテスト側入力端子に直接、シフトレジスタ４１の出力端子Ｑから出力される出力信号を入力していたが、本実施例２では、マルチプレクサ４３−３を新たに設け、この選択信号としてモード切替信号ModeChを用い、本実施例２に固有のモードで動作するときには、代用バス３２ａからの入力を選択する。この結果、出力ポートPOの初期設定において、BSPCを通してではなく、入力レジスタ４４−２により、代用バス３２ａからの初期データを設定することが可能になる。
【０１０２】
図１１は、本実施例２の拡張JTAGと従来のJTAGとの入力ポートPIに期待される出力（即ち、入力ポートPIからのデータの流れ）を比較した図である。
【０１０３】
従来のJTAG仕様の場合（ModeCh＝０）、通常動作（Test/Norm＝０）では、入力ポートPIからの入力値（図９のバッファ４２−１の入力値に相当）がI/Oバス（図９の代用バス３２ａに相当）に出力される。又、テスト動作（Test/Norm＝１）の初期設定では、BSPCを介して取り込んだ入力値であるレジスタ値（図９のシフトレジスタ４１の出力信号に相当）がI/Oバス（代用バス３２ａに相当）に出力される。テスト動作（Test/Norm＝１）の終了後は、入力ポートPIからのゲート（バッファ４２−１に相当）を介した入力値を取り込んだレジスタ値（シフトレジスタ４１の出力信号に相当）がBSPCをシフトして行く。
【０１０４】
これに対し、本実施例２の拡張JTAG仕様の場合（ModeCh＝１）、通常動作（Test/Norm＝０）では、入力ポートPIからの入力値が代用バス３２ａに出力される。又、テスト動作（Test/Norm＝１）の初期設定では、代用バス３２ａから取り込んだ入力値であるレジスタ値（入力レジスタ４４−２の出力信号）が代用バス３２ａに出力される。テスト動作（Test/Norm＝１）の終了後は、入力ポートPIからの入力値を取り込んだレジスタ値（シフトレジスタ４１の出力信号）がBSPCをシフトする場合（JTAG仕様）と、入力ポートPIからのバッファ４２−１を介した入力値を代用バス３２ａに出力する場合（拡張JTAG仕様）との何れか若しくは双方を選択することができる。これは、テスト動作においてはTAP制御回路５１により、シフトクロックShClock若しくは書き込み信号Wd、又は出力許可信号（バスイネ−ブル信号BusEn）を独立して出力することができるからである。
【０１０５】
図１２は、本実施例１の拡張JTAGと従来のJTAGとの出力ポートPOに期待される出力を比較した図である。
【０１０６】
従来のJTAG仕様の場合（ModeCh＝０）、通常動作（Test/Norm＝０）では、I/Oバス（図１０の代用バス３２ａに相当）から出力レジスタに書き込まれた出力値（図１０の出力レジスタ４４−１の出力信号に相当）が出力ポートPIに出力される。又、テスト動作（Test/Norm＝１）の初期設定では、BSPCを介して取り込んだ出力値であるレジスタ値（図１０のシフトレジスタ４１の出力信号に相当）が出力ポートPOに出力される。テスト動作（Test/Norm＝１）の終了後は、出力レジスタ（出力レジスタ４４−１に相当）に書き込まれた出力値を取り込んだレジスタ値（シフトレジスタ４１の出力信号に相当）がBSPCをシフトして行く。
【０１０７】
これに対し、本実施例２の拡張JTAG仕様の場合（ModeCh＝１）、通常動作（Test/Norm＝０）では、代用バス３２ａから出力レジスタ４４−１に書き込まれた出力値が出力ポートPOに出力される。又、テスト動作（Test/Norm＝１）の初期設定では、代用バス３２ａから取り込んだ出力値であるレジスタ値（入力レジスタ４４−２の出力信号）が出力ポートPOに出力される。テスト動作（Test/Norm＝１）の終了後は、出力レジスタ４４−１からの出力値を取り込んだレジスタ値（シフトレジスタ４１の出力信号）が、BSPCをシフトする場合（JTAG仕様）と、出力レジスタ４４−１の出力信号を代用バス３２ａに出力する場合（拡張JTAG仕様）との何れか若しくは双方を選択することができる。これは、テスト動作においては、TAP制御回路５１により、シフトクロックShClock若しくは書き込み信号Wd若しくはWr、又は出力許可信号（バスイネーブル信号BusEn）を独立して出力することができるからである。
【０１０８】
本実施例２では、代用バス３２ａからの入出力ポートPI，POの初期設定が可能になったことで、BSPCを通して行う初期設定は必ずしも必要ではない。即ち、テスト開始に先立ち入出力回路４０Ａのリセットを行った場合にも、実施例１では、対象とする入出力ポートPI，POを指定するためにその後BSPCを通して許可データの初期設定を行う必要がある。しかし、本実施例２では、代用バス３２ａから入力レジスタ４４−２に入力することが可能になるので、テストの際にI/Oアドレスを指定して許可データの初期設定を行い、且つ、テスト後にそのテスト結果を読み出すことができる。
【０１０９】
本実施例２では、次の（ａ）、（ｂ）のような効果がある。
（ａ）  代用バス３２ａのテストバス化を更に進める方式として、代用バス３２ａから入出力データを入力することを可能にしている。その結果、回路量の増加にもかかわらず、入出力回路４０Ａの初期設定が可能になり、且つ、指定する入出力回路４０Ａにおいて直接入出力データの読み出しができる機能を実現でき、テストの自由度を大きく増大させることができる。
【０１１０】
（ｂ）  実施例１と同様に、既存のI/Oバス３２を利用して事実上のｍビットテストバスを作りだしたので、１クロックでｍビットシフトするシフトクロックにより入出力データの読み出しをｍ倍に高速化することができる。
【実施例３】
【０１１１】
本発明は、上記実施例１、２に限定されず、種々の変形が可能である。この変形例であり実施例３としては、例えば、次の（１）、（２）のようなものがある。
【０１１２】
（１）  図１、図８の内部コア論理回路３１は、他の回路構成の被テストシステムであっても良い。
【０１１３】
（２）  図１、図８の各入力回路４０in，４０Ａinや各出力回路４０out，４０Ａoutは、図３、図４、図９、図１０以外の回路で構成しても良い。同様に、ＴＡＰも図１、図８以外の回路で構成しても良い。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施例１を示すテストシステムの概念図である。
【図２】図１中のTAP制御回路５１の状態遷移図である。
【図３】図１中の入力回路４０inの一例を示す構成図である。
【図４】図１中の出力回路４０outの一例を示す構成図である。
【図５】図１における入出力データの読み出しタイミングを示す図である。
【図６】本実施例１の拡張JTAGと従来のJTAGとの入力ポートPIに期待される出力を比較した図である。
【図７】本実施例１の拡張JTAGと従来のJTAGとの出力ポートPOに期待される出力を比較した図である。
【図８】本発明の実施例２を示すテストシステムの概念図である。
【図９】図８中の入力回路４０Ａinの一例を示す構成図である。
【図１０】図８中の出力回路４０Ａoutの一例を示す構成図である。
【図１１】本実施例２の拡張JTAGと従来のJTAGとの入力ポートPIに期待される出力を比較した図である。
【図１２】本実施例１の拡張JTAGと従来のJTAGとの出力ポートPOに期待される出力を比較した図である。
【図１３】従来のテストシステムを搭載した集積回路からなるデバイスのアーキテクチャの概念図である。
【図１４】図１３のデバイスを複数個搭載したバウンダリスキャン回路の構成図である。
【符号の説明】
【０１１５】
３０，３０Ａ            デバイス
３１                    内部コア論理回路
３２                    Ｉ／Ｏバス
３２ａ                  代用バス
４０，４０Ａ            入出力回路
４０Ａin                入力回路
４０Ａout                出力回路
４１                    シフトレジスタ
４４−１                出力レジスタ
４４−２                入力レジスタ
５１                    TAP制御回路
５１ａ                  ステートマシン
５１ｂ                  モード切替レジスタ
５２                    命令レジスタ
５３                    バイパスレジスタ
５４                    ＩＤレジスタ
６１                    入力切替回路
６２                    出力切替回路
６３，６４，６５，６６  マルチプレクサ
【図１】
2006189368.tif 000003
【図２】
2006189368.tif 000004
【図３】
2006189368.tif 000005
【図４】
2006189368.tif 000006
【図５】
2006189368.tif 000007
【図６】
2006189368.tif 000008
【図７】
2006189368.tif 000009
【図８】
2006189368.tif 000010
【図９】
2006189368.tif 000011
【図１０】
2006189368.tif 000012
【図１１】
2006189368.tif 000013
【図１２】
2006189368.tif 000014
【図１３】
2006189368.tif 000015
【図１４】
2006189368.tif 000016